KR20250020091A - 장치 소프트웨어의 간접 업데이트 방법, 장치, 및 시스템 - Google Patents
장치 소프트웨어의 간접 업데이트 방법, 장치, 및 시스템 Download PDFInfo
- Publication number
- KR20250020091A KR20250020091A KR1020230101534A KR20230101534A KR20250020091A KR 20250020091 A KR20250020091 A KR 20250020091A KR 1020230101534 A KR1020230101534 A KR 1020230101534A KR 20230101534 A KR20230101534 A KR 20230101534A KR 20250020091 A KR20250020091 A KR 20250020091A
- Authority
- KR
- South Korea
- Prior art keywords
- functional unit
- software
- update
- communication
- terminal
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 50
- 238000004891 communication Methods 0.000 claims abstract description 136
- 230000006870 function Effects 0.000 claims abstract description 67
- 230000015654 memory Effects 0.000 claims abstract description 67
- 238000009434 installation Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 13
- 230000010365 information processing Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Abstract
본 발명은 셋톱박스(set-top box)와 같은 정보처리장치의 운용에 관련된 것으로, 구체적으로는 상기 장치에 설치된 소프트웨어의 업데이트에 관한 것이다. 본 발명의 일 실시예에 따른 소프트웨어의 업데이트가 가능한 셋톱박스 장치는, 연산 기능을 가진 프로세서, 시스템 영역 메모리, 데이터 영역 메모리, 통신부, 및 상기 시스템 영역 및 상기 데이터 영역 중 적어도 하나에 기록된 제1 기능부, 상기 시스템 영역 및 상기 데이터 영역 중 적어도 하나에 기록된 제2 기능부를 포함하고, 상기 제1 기능부는, 상기 제2 기능부를 업데이트하는 기능을 포함할 수 있다.
Description
본 발명은 셋톱박스(set-top box)와 같은 정보처리장치의 운용에 관련된 것으로, 구체적으로는 상기 장치에 설치된 소프트웨어의 업데이트에 관한 것이다.
정보통신 멀티미디어 서비스를 제공하기 위하여 셋톱박스의 형태로 다수의 단말기 장치가 생산, 공급, 및 사용되고 있다. 셋톱박스는 텔레비전 등 수상기(受像機)에 연결됨으로써 부가적인 영상 서비스를 제공하는 데 사용되며, 특히 유선 방송통신 서비스, 예를 들어 케이블 TV, 위성 TV, 및 인터넷 TV(IPTV로도 통칭된다) 서비스의 제공에 사용되고 있다.
상기 셋톱박스에는 상기 방송통신 서비스를 제공하기 위한 단말기용 소프트웨어가 설치될 수 있다. 상기 단말기용 소프트웨어는 펌웨어(firmware) 또는 미들웨어(middleware)로 호칭될 수도 있다. 상기 단말기용 소프트웨어는 방송통신 서비스 서버와 소정의 방법으로 통신하며 상기 방송통신 서비스에 속하는 다양한 정보를, 특히 영상 기반 정보를 수신하여 표시하도록 설계된다. 상기 단말기용 소프트웨어는 단일 소프트웨어로 구성될 수도 있으나, 셋톱박스 단말기가 지원하는 정보통신 서비스의 다변화에 따라서 복수의 서로 독립적인 소프트웨어로 구성될 수도 있다. 예를 들어, 하나의 통신 회선을 통하여 제1 영상 서비스와 제2 영상 서비스가 동시에 및/또는 선택적으로 제공될 수 있는 경우, 상기 제1 영상 서비스에 대응하는 제1 기능부와 상기 제2 영상 서비스에 대응하는 제2 기능부가 소프트웨어와 같은 형태로 각기 상기 단말기에 설치될 수 있다.
상기 단말기용 기능부는 지속적으로 업데이트될 수 있다. 상기 업데이트의 주체는 상기 단말기 장치의 생산자이거나 또는 상기 단말기 장치에 대하여 정보통신 서비스를 제공하는 통신사업자일 수 있다. 이 중 상기 통신사업자는 상기 단말기 장치에 대하여 항시 유효한 통신 연결을 보유하고 있으므로 업데이트 주체로서 유리한 위치에 있다. 따라서 상기 통신사업자는, 이론적으로, 상기 단말기에 설치된 모든 소프트웨어 기능부에 대하여 적절한 업데이트를 실행할 수 있다.
일례를 들어, 만약 상기 통신사업자가 상기 제1 영상 서비스의 공급자인 경우, 상기 제1 기능부를 자사 서버를 통하여 업데이트 가능하도록 설계할 수 있다. 그러나 역시 일례를 들면, 상기 제2 영상 서비스는 상기 통신사업자와 무관할 수 있다. 따라서, 상기 제2 영상 서비스에 대응하는 상기 제2 기능부의 업데이트가 곤란할 수 있다.
일례를 들어, 상기 제2 기능부는 업데이트 가능하도록 설계되지 아니할 수 있다. 다른 일례를 들어, 상기 제2 기능부는 상기 통신사업자별로 적합한 업데이트 규격에 따라 맞춤 개발되는 소프트웨어를 사용하여야 할 수 있다. 이 때 상기 제2기능부 소프트웨어의 유지보수가 중단되는 경우, 상기 맞춤 개발된 소프트웨어가 장기적으로 사용 불능이 되는 경우도 존재한다. 또다른 일례를 들어, 상기 제2 기능부는 단말기의 전체 기능부 소프트웨어를 일괄 갱신하는 펌웨어 갱신 과정에서 업데이트되도록 구성될 수 있다. 그러나 이 경우 단말기의 구동을 지원하는 전체 기능에 대한 전수검사가 필요한 것으로써, 통신사업자가 단독으로 업데이트를 수행하기 곤란한 문제가 발생한다.
즉, 통신사업자가 상기 제2 기능부와 기능부를 보다 자유로이 업데이트할 수 있는 수단이 요구되게 된다.
본 발명은 상술한 기술적 과제의 해결을 위하여 통신사업자에 의해 제어되는 제1 기능부로부터 그렇지 아니한 제2 기능부를 간접적으로 업데이트할 수 있는 방법을 제공하고, 그러한 장치를 제공하며, 또한 그러한 시스템을 제공한다.
상술한 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 기능부 소프트웨어의 업데이트가 가능한 셋톱박스 장치는, 연산 기능을 가진 프로세서, 시스템 영역 메모리, 데이터 영역 메모리, 통신부, 및 상기 시스템 영역 및 상기 데이터 영역 중 적어도 하나에 기록된 제1 기능부, 상기 시스템 영역 및 상기 데이터 영역 중 적어도 하나에 기록된 제2 기능부를 포함하고, 상기 제1 기능부는, 상기 제2 기능부를 업데이트하는 기능을 포함할 수 있다.
상기 제1 기능부는, 상기 통신부를 통하여 상기 제2 기능부에 대한 버전 검사 통신을 송신하고, 그 응답으로 상기 제2 기능부의 최신 버전에 대한 정보를 포함하는 응답을 수신하도록 구성될 수 있다.
상기 통신부는, 상기 제2 기능부에 대한 업데이트 통신을 수신하도록 구성되고, 상기 업데이트 통신은, 새로운 버전의 제2 기능부에 대한 정보를 포함하고, 상기 제1 기능부는, 상기 업데이트 통신에 기반하여, 상기 제2 기능부를 업데이트하도록 구성될 수 있다.
상기 제1 기능부는, 상기 새로운 버전의 제2 기능부에 대한 정보를 상기 데이터 영역 메모리에 기록함으로써 상기 제2 기능부를 업데이트하도록 구성될 수 있다.
상기 통신부는, 상기 제1 기능부에 대한 업데이트 통신을 수신하도록 구성되고, 상기 업데이트 통신은, 새로운 버전의 제1 기능부의 새로운 버전에 대한 정보를 포함하고, 상기 제1 기능부는, 상기 업데이트 통신에 기반하여 새로운 버전으로 업데이트될 수 있다.
상기 제1 기능부는, 상기 새로운 버전의 제1 기능부에 대한 정보를 상기 데이터 영역 메모리에 기록함으로써 상기 제1 기능부를 업데이트하도록 구성될 수 있다.
상기 통신부는, 신규 기능부에 대한 설치 통신을 수신하도록 구성되고, 상기 설치 통신은, 상기 신규 기능부에 대한 정보를 포함하고, 상기 제1 기능부는, 상기 업데이트 통신에 기반하여, 상기 신규 기능부를 설치하도록 구성될 수 있다.
상기 제1 기능부는, 상기 신규 기능부에 대한 정보를 상기 데이터 영역 메모리에 기록함으로써 상기 신규 기능부를 설치하도록 구성될 수 있다.
상기 제1 기능부 및 상기 제2 기능부는, 상기 프로세서에 의하여 실행되는 소프트웨어로 구성되는 것을 특징으로 할 수 있다.
상기 제1 기능부 및 상기 제2 기능부는, 적어도 하나의 버전이 상기 시스템 영역 메모리에 기록된 펌웨어(firmware)에 포함되고, 새로운 버전이 상기 데이터 영역 메모리에 기록된 경우, 상기 새로운 버전이 실행되도록 구성되는 것을 특징으로 할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 셋톱박스 단말기의 기능부 소프트웨어를 업데이트하는 방법은, 상기 단말기에 제1 기능부를 위한 제1 소프트웨어의 기본 버전 및 제2 기능부를 위한 제2 소프트웨어의 기본 버전을 구비하는 단계, 업데이트 서버가 상기 단말기에 새로운 버전의 제2 소프트웨어를 포함하는 업데이트 통신을 전송하는 단계, 상기 단말기에 포함된 제1 소프트웨어가 상기 업데이트 통신을 수신하는 단계, 및 상기 제1 소프트웨어가 상기 업데이트 통신에 기반하여 상기 단말기에 상기 새로운 버전의 제2 소프트웨어를 업데이트하는 단계를 포함할 수 있다.
상기 업데이트하는 단계는, 상기 단말기의 데이터 영역 메모리에, 상기 제1 소프트웨어가 상기 새로운 버전의 제2 소프트웨어에 대한 정보를 기록하는 단계를 포함할 수 있다.
상기 방법은, 업데이트 서버가 상기 단말기에 새로운 버전의 제1 소프트웨어를 포함하는 업데이트 통신을 전송하는 단계, 상기 단말기에 포함된 제1 소프트웨어가 상기 업데이트 통신을 수신하는 단계, 및 상기 제1 소프트웨어가 상기 업데이트 통신에 기반하여 새로운 버전으로 업데이트되는 단계를 포함할 수 있다.
상기 업데이트되는 단계는, 상기 단말기의 데이터 영역 메모리에, 상기 제1 소프트웨어가 상기 새로운 버전의 제1 소프트웨어에 대한 정보를 기록하는 단계를 포함할 수 있다.
상기 방법은, 상기 제1 소프트웨어가 상기 업데이트 서버에 상기 제2 소프트웨어의 버전 검사 통신을 전송하는 단계, 상기 업데이트 서버가 상기 단말기에 상기 제2 소프트웨어의 최신 버전에 대한 정보를 포함하는 응답을 송신하는 단계, 및 상기 제1 소프트웨어가 상기 제2 소프트웨어의 업데이트 필요 여부를 판단하는 단계를 더 포함할 수 있다.
상기 방법에 있어서, 상기 버전 검사 통신을 전송하는 단계, 상기 응답을 송신하는 단계, 및 상기 업데이트 필요 여부를 판단하는 단계는, 주기적으로 반복되는 것을 특징으로 할 수 있다.
상기 방법은, 업데이트 서버가 상기 단말기에, 신규 소프트웨어에 대한 정보를 포함하는 설치 통신을 전송하는 단계, 상기 단말기가 상기 설치 통신을 수신하는 단계, 및 상기 제1 소프트웨어가 상기 설치 통신에 기반하여 상기 단말기에 상기 신규 소프트웨어를 설치하는 단계를 더 포함할 수 있다.
상기 설치하는 단계는, 상기 단말기의 데이터 영역 메모리에, 상기 제1 소프트웨어가 상기 신규 소프트웨어에 대한 정보를 기록하는 단계를 포함할 수 있다.
상기 업데이트하는 단계는, 상기 제2 소프트웨어가 실행 중인 경우, 상기 제2 소프트웨어가 중지됨을 상기 단말기를 통해 표시하고, 상기 제2 소프트웨어를 중지하는 단계, 및 상기 제2 소프트웨어가 종료 단계인 경우, 상기 제2 소프트웨어의 종료로부터 대기 시간을 두고 업데이트를 실행하는 단계를 포함할 수 있다.
상술한 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 셋톱박스 단말기 장치의 소프트웨어 업데이트가 가능한 시스템은, 통신부를 포함하는, 업데이트 서버, 및 통신부, 제1 기능부, 및 제2 기능부를 포함하는, 단말기를 포함하고, 상기 업데이트 서버는 상기 단말기에, 상기 단말기의 상기 제2 기능부의 새로운 버전에 대한 정보를 포함하는 업데이트 통신을 송신하도록 구성되고, 상기 단말기는, 상기 업데이트 통신을 수신하고, 상기 업데이트 통신에 포함된 상기 제2 기능부의 새로운 버전에 대한 정보에 기반하여, 상기 제1 기능부에 의해 상기 제2 기능부를 업데이트하도록 구성될 수 있다.
본 발명에 의하면, 통신사업자에 의해 제어되는 제1 기능부로부터 그렇지 아니한 제2 기능부를 간접적으로 업데이트할 수 있는 방법이 제공되어, 펌웨어의 업데이트 주기와 무관하게 자유로운 기능부 소프트웨어의 업데이트 적용이 가능해질 수 있다.
도 1은 본 발명의 일 실시예에 따른 셋톱박스 단말기의 블록도,
도 2a 내지 2d는 본 발명의 일 실시예에 따른 제1 기능부의 업데이트 과정에 대한 개념도,
도 3a 내지 3c는 본 발명의 일 실시예에 따른 제2 기능부의 업데이트 과정에 대한 개념도, 그리고
도 4는 본 발명의 일 실시예에 따른 신규 기능부의 설치 과정에 대한 개념도이다.
도 2a 내지 2d는 본 발명의 일 실시예에 따른 제1 기능부의 업데이트 과정에 대한 개념도,
도 3a 내지 3c는 본 발명의 일 실시예에 따른 제2 기능부의 업데이트 과정에 대한 개념도, 그리고
도 4는 본 발명의 일 실시예에 따른 신규 기능부의 설치 과정에 대한 개념도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제 1, 제 2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함하며, 또한, 달리 지시되지 않는 한 비배타적이다. 본 출원에 항목을 열거하는 경우 그것은 본 출원 발명의 사상과 가능한 실시 방법들을 용이하게 설명하기 위한 예시적 서술에 그치며, 따라서, 본 발명의 실시예 범위를 한정하는 의도를 가지지 아니한다.
본 명세서에서 "A 또는 B(A or B)"는 "오직 A", "오직 B" 또는 "A와 B 모두"를 의미할 수 있다. 달리 표현하면, 본 명세서에서 "A 또는 B(A or B)"는 "A 및/또는 B(A and/or B)"으로 해석될 수 있다. 예를 들어, 본 명세서에서 "A, B 또는 C(A, B or C)"는 "오직 A", "오직 B", "오직 C", 또는 "A, B 및 C의 임의의 모든 조합(any combination of A, B and C)"를 의미할 수 있다.
본 명세서에서 사용되는 슬래쉬(/)나 쉼표(comma)는 "및/또는(and/or)"을 의미할 수 있다. 예를 들어, "A/B"는 "A 및/또는 B"를 의미할 수 있다. 이에 따라 "A/B"는 "오직 A", "오직 B", 또는 "A와 B 모두"를 의미할 수 있다. 예를 들어, "A, B, C"는 "A, B 또는 C"를 의미할 수 있다.
본 명세서에서 "적어도 하나의 A 및 B(at least one of A and B)"는, "오직 A", "오직 B" 또는 "A와 B 모두"를 의미할 수 있다. 또한, 본 명세서에서 "적어도 하나의 A 또는 B(at least one of A or B)"나 "적어도 하나의 A 및/또는 B(at least one of A and/or B)"라는 표현은 "적어도 하나의 A 및 B(at least one of A and B)"와 동일하게 해석될 수 있다.
또한, 본 명세서에서 "적어도 하나의 A, B 및 C(at least one of A, B and C)"는, "오직 A", "오직 B", "오직 C", 또는 "A, B 및 C의 임의의 모든 조합(any combination of A, B and C)"를 의미할 수 있다. 또한, "적어도 하나의 A, B 또는 C(at least one of A, B or C)"나 "적어도 하나의 A, B 및/또는 C(at least one of A, B and/or C)"는 "적어도 하나의 A, B 및 C(at least one of A, B and C)"를 의미할 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 이용하고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
본 출원에서 발명을 설명함에 있어, 실시예들은 설명된 기능 또는 기능들을 수행하는 단위 블록들의 측면에서 설명되거나 예시될 수 있다. 상기 블록들이란 본 출원에서 하나 또는 복수의 장치, 유닛, 모듈, 부 등으로 표현될 수 있다. 상기 블록들은 하나 또는 복수의 논리 게이트, 집적 회로, 프로세서, 컨트롤러, 메모리, 전자 부품 또는 이에 한정되지 않는 정보처리 하드웨어의 구현 방법에 의하여 하드웨어적으로 실시될 수도 있다. 또는, 상기 블록들은 응용 소프트웨어, 운영 체제 소프트웨어, 펌웨어, 또는 이에 한정되지 않는 정보처리 소프트웨어의 구현 방법에 의하여 소프트웨어적으로 실시될 수도 있다. 하나의 블록은 동일한 기능을 수행하는 복수의 블록들로 분리되어 실시될 수도 있으며, 반대로 복수의 블록들의 기능을 동시에 수행하기 위한 하나의 블록이 실시될 수도 있다. 상기 블록들은 또한 임의의 기준에 의하여 물리적으로 분리되거나 결합되어 실시될 수 있다. 상기 블록들은 통신 네트워크, 인터넷, 클라우드 서비스, 또는 이에 한정되지 않는 통신 방법에 의해 물리적 위치가 특정되지 않고 서로 이격되어 있는 환경에서 동작하도록 실시될 수도 있다. 상기의 모든 실시 방법은 동일한 기술적 사상을 구현하기 위하여 정보통신 기술 분야에 익숙한 통상의 기술자가 취할 수 있는 다양한 실시예의 영역이므로, 여하의 상세한 구현 방법은 모두 본 출원상 발명의 기술적 사상 영역에 포함되는 것으로 해석되어야 한다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다. 또한 복수의 실시예들은 서로 배타적이 아니며, 일부 실시예들이 새로운 실시예들을 형성하기 위해 하나 이상의 다른 실시예들과 조합될 수 있음을 전제로 한다.
도 1은 본 발명의 일 실시예에 따른 셋톱박스 단말기의 블록도이다. 도 1을 참조하면, 본 발명의 일 실시예에 따른 소프트웨어의 업데이트가 가능한 셋톱박스 단말기 장치(100)는, 연산 기능을 가진 프로세서(110), 통신부(120), 데이터 영역 메모리(130), 및 시스템 영역 메모리(140)를 포함할 수 있다. 또한, 상기 단말기(100)는 제1 기능부(155)와 제2 기능부(165)를 포함할 수 있다.
상기 프로세서(110)는, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 의미할 수 있다.
이해의 편의를 위하여 상기 프로세서(110)가 단수로 표현되는 경우라 할지라도, 해당 기술분야에서 통상의 지식을 가진 자는, 상기 프로세서(110)가 복수 개의 처리요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 본 발명의 일 실시예에 따른 장치는 상기 프로세서(110)로서 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 상기 프로세서(110)는 병렬 프로세서(parallel processor)나 멀티-코어 프로세서(multi-core processor)와 같이, 다양한 처리 구성(processing configuration)에 의하여 구현될 수 있다.
상기 프로세서(110)는, 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어(software)를 수행하도록 구성될 수 있다. 또한, 상기 프로세서(110)는 상기 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 상기 소프트웨어는, 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함하 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 상기 소프트웨어는, 상기 상기 프로세서(110)에 의하여 해석되거나 상기 상기 프로세서(110)에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 상기 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다.
상기 소프트웨어는 또한, 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 상기 데이터 영역 메모리(130) 및/또는 상기 시스템 영역 메모리(140)에 기록되거나 저장될 수 있다. 상기 각각의 메모리(130, 140)는 컴퓨터 판독 가능 기록 매체일 수 있으며, 상기 컴퓨터 판독 가능 기록 매체에는 프로그램 명령, 데이터 파일, 데이터 구조 등이 단독으로 또는 조합되어 기록될 수도 있다. 상기 각각의 메모리(130, 140)에 저장되는 프로그램 명령은 본 발명의 실시예를 위하여 특별히 설계되고 구성된 명령 체계에 기반하거나, 또는 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 명령 체계, 예를 들어 어셈블리어(Assembly), C, C++, Java, Python 언어 등으로 예시되는 명령 체계를 따를 수도 있다. 상기 명령 체계 및 그에 의한 프로그램 명령은 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 본 발명의 일 실시예에 따른 장치 및/또는 상기 프로세서에 의해서 실행될 수 있는 고급 언어 코드를 포함하는 것으로 이해되어야 한다.
상기 각각의 메모리(130, 140)를 포함하여 본 발명의 일 실시예에 따른 장치를 구성하는 컴퓨터 판독 가능 기록 매체는, 프로세서 캐시(Cache), 램(RAM), 플래시 메모리와 같이 상기 프로세서(110)가 동작하는 동안만 유지되는 일시적 또는 휘발성 기록 매체를 포함할 수 있고, 또는 하드 디스크, 플로피 디스크, 및 자기 테이프와 같은 자기체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 또는 정적 상태 메모리(solid state memory)와 같이 상대적으로 비휘발성적이거나 장기 기록이 가능한 기록 매체를 포함할 수 있고, 또는 하드웨어 상에 배치된 롬(ROM)과 같은 읽기 전용의 기록 매체를 포함할 수 있으며, 나아가 회로배선에 의한 하드-와이어드(hard-wired) 구조에 의하여 일련의 프로그램 명령과 등가의 동작을 수행하도록 구성된 하드웨어 그 자체 또한, 본 발명의 실시예를 구현하는 상기 동작을 수행하기 위한 각 단계가 상기 하드웨어 부품의 연결과 배치에 의하여 기록되어 있다고 볼 수 있으므로, 그 연결 및 배치방법이 곧 상기 각각의 메모리(130, 140) 중 어느 하나와 등가인 것으로 간주될 수 있음은 통상의 기술자에게 자명하다.
본 발명의 일 실시예에 있어서, 상기 데이터 영역 메모리(130)는 상술한 실시예 가운데 읽고 쓰기가 상대적으로 자유로운 기록 매체 중에서 선택될 수 있다. 본 발명에 있어서, 상기 데이터 영역 메모리(130)는 용이하게 기록이 이루어질 수 있는 형태를 취하는 것이 바람직할 수 있다. 반면에, 상기 시스템 영역 메모리(140)는 상술한 대부분의 실시예로서 구현이 가능한 것으로서, 읽고 쓰기가 상대적으로 곤란하거나 불가능한 메모리 중에서도 제한 없이 선택될 수 있는 것으로 이해될 수 있다.
상기 프로세서(110) 및 상기 각각의 메모리(130, 140)에 대하여 상술한 실시예는 상호 배타적이지 않으며, 필요에 따라 선택되거나 결합되어 실시될 수 있다. 예를 들어, 하나의 하드웨어 장치는 본 발명 실시예의 동작을 수행하기 위해 하나 이상의 상기 소프트웨어로 구성된 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. 또 다른 예를 들어, 본 명세서에 있어서, 어떠한 기능부에 할당된 동작의 전부 또는 일부는 본 발명의 일 실시예에 따른 장치에(바람직하게는, 상기 데이터 영역 메모리(130)와 상기 시스템 영역 메모리(140)를 포함하는 어느 하나의 기록 매체에) 저장된 하나 이상의 상기 소프트웨어에 의하여 구현되어, 상기 프로세서(110)에 의하여 실행되도록 구성될 수 있으며, 이러한 경우, 상기와 같은 기능부는 상기 프로세서(110)에 "포함되는" 기능부로서 칭해질 수 있다.
상기 통신부(120)는 적어도 하나의 유선 및 무선 통신 방식에 의하여 외부 통신망과 연결되어, 바람직하게는 다른 단말 장치 및/또는 서버 장치와 통신할 수 있도록 구성되는 정보통신 목적의 기능부일 수 있다. 상기 통신부(120)의 유선 통신 방식은 RJ-11 규격의 전화선이나 RJ-45 규격의 다양한 카테고리에 속하는 이더넷(ethernet) 케이블, 그 밖의 동축 케이블, 금속 케이블, 광 케이블, 및 그 밖의 다양한 유선 매체에 의하여 외부 통신망에 연결되는 방식일 수 있다. 상기 통신부(120)의 무선 통신 방식은, 실시예에 따라서 블루투스, Wi-Fi, Zigbee, NFC(near field communication)를 포함하는 근거리 무선 통신 방법을 포함하거나, 또는 Wibro, WiMax, Global Systems for Mobile Communications (GSM), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Long-Term Evolution (LTE), New Radio(NR), 그 밖에 2G, 3G, 4G, 5G, 6G 등의 통신 규격 세대명으로 통칭되는 무선 통신 기술의 명칭, 및 IMT-2000, IMT-Adcanced, IMT-2020, IMT-2030 등의 국제 표준 무선 통신 규격의 명칭으로 지칭될 수 있는 장거리 무선 통신 방법을 포함할 수 있다. 물론 그 외에 종래의 또는 새로이 개발되는 어떠한 유선 또는 무선 통신의 수단, 방법, 규격, 및 프로토콜이 상기 통신부(120)의 구현에 적용된다 하여도, 정보통신 장치에 있어서의 송수신을 수행하도록 구성된 기능부이거나, 정보통신 장치의 송수신 동작을 지시할 수 있는 인터페이스에 해당할 수 있는 한 본 발명의 목적 달성에는 지장이 없다. 또한 하나의 통신부가 하나 이상의 유선 및/또는 무선 규격에 의하여 통신을 수행하도록 구성될 수 있음은 자명하다.
본 발명의 바람직한 일 실시예에 따르면, 상기 제1 기능부(155) 및 상기 제2 기능부(165)는 모두 상기 프로세서(110)에 의하여 실행되는 소프트웨어로서 구현될 수 있다. 따라서, 상기 제1 기능부(155)는 "제1 소프트웨어"로 호칭될 수도 있고, 상기 제2 기능부(165)는 "제2 소프트웨어"로 호칭될 수도 있으나, 보다 넓고 제한되지 않는 실시 가능성의 설명을 위하여 본 명세서에서는 주로 "기능부"로 호칭하기로 한다.
상기 제1 기능부(155) 및/또는 상기 제2 기능부(165)는 서로 다른 복수의 버전이 하나의 단말기(100)에 포함되어 있을 수 있다.
본 발명의 바람직한 일 실시예에 있어서, 상기 제1 기능부(155) 및 상기 제2 기능부(165)는 각각 상기 시스템 영역 메모리(140)에 기본 버전(150, 160)이 펌웨어(firmware)로서의 소프트웨어로 기록되어 있는 형태로 구성될 수 있다. 상기 펌웨어는 상기 단말기(100)가 생산될 때 상기 시스템 영역 메모리(140)에 기록되는 소프트웨어일 수 있다.
또한 본 발명의 일 실시예에 있어서, 상기 제1 기능부(155) 및 상기 제2 기능부(165)는 각각 상기 데이터 영역 메모리(130)에 그 업데이트된 버전(151, 161)이 소프트웨어로 기록되어 있는 형태로 구성될 수 있다. 상기 업데이트된 버전(151, 161)은 상기 단말기(100)가 배포된 뒤 사후적으로 제공된 업데이트 소프트웨어에 해당할 수 있다.
상기 제1 기능부(155) 및 상기 제2 기능부(165)는, 상기 단말기(100) 내에 복수의 버전이 존재할 경우, 그 중 하나만이 동작하도록 구성될 수 있다. 예를 들어, 각각의 기능부는 각각의 기능부에 대한 소프트웨어에 있어 그 갱신 버전(version)이 높은 것을 우선적으로 동작시키도록 구성될 수 있다. 상기 버전이란 일종의 연번(連番)이거나 또는 갱신된 소프트웨어의 갱신 일자를 나타내는 일시(日時)의 표시일 수 있다. 또는, 각각의 기능부는 상기 시스템 영역 메모리(140)에 저장된 것을 기본 버전으로, 상기 데이터 영역 메모리(130)에 저장된 것을 새로운 버전으로 간주하여, 상기 데이터 영역 메모리(130)의 소프트웨어를 우선적으로 동작시키도록 구성될 수 있다.
실시예에 따라서, 상기 데이터 영역 메모리(130) 및 상기 시스템 영역 메모리(140)에는 상기 제1 기능부(155) 및 상기 제2 기능부(165)에 속하는 기능부들 이외에 다른 기능부(170, 171)가 더 포함되어 있을 수도 있으나, 본 발명의 설명에 있어서는 생략한다.
상기 제1 기능부(155)는 상기 제1 기능부(155) 및 상기 제2 기능부(165)를 업데이트하는 기능을 포함할 수 있다. 반면에, 상기 제2 기능부(165)는 상기 업데이트하는 기능을 포함하지 아니할 수 있다.
본 발명의 바람직한 일 실시예에 따르면, 상기 제1 기능부(155)는, 상기 셋톱박스 단말기(100)에 포함되고 상기 단말기(100)의 배포 및 운영 주체가 되는 통신사업자용의 제어 및 서비스용 소프트웨어를 의미할 수 있다. 또한, 상기 제2 기능부(165)는, 상기 셋톱박스 단말기(100)에 포함되는 통신사업자 이외의 공급자에 의한 제어 및 서비스용 소프트웨어를 의미할 수 있다.
본 발명의 바람직한 일 실시예에 따르면, 상기 제1 기능부(155)에 의한 업데이트하는 기능은 상기 통신사업자의 업데이트 통신 제어에 의하여 실행될 수 있는 것으로써, 상기 제2 기능부(165)가 상기 업데이트하는 기능을 포함하지 아니한다 함은, 상기 통신사업자의 업데이트 통신 제어에 응답하는 기능을 포함하지 아니함을 의미할 수 있다.
도 2a 내지 2d는 본 발명의 일 실시예에 따른 제1 기능부의 업데이트 과정에 대한 개념도이다.
먼저 도 2a를 참조하면, 제1 기능부의 기본 버전(150)은 업데이트가 필요한지의 여부를 검사하는 통신을 송신하도록 상기 통신부(120)에 요청(211)할 수 있다. 상기 통신부(120)는 상기 요청(211)에 기반하여 업데이트 서버(210)에 버전 검사 통신을 송신(212)할 수 있다. 상기 버전 검사 통신(212)은 현재 단말기(100)에 포함되어 있는 상기 제1 기능부(150)의 버전이 최신 상태인지의 여부를 검사하기 위한 것일 수 있다.
본 발명의 일 실시예에 있어서, 상기 업데이트 서버(210)는 상기 셋톱박스 단말기(100)의 배포 및 운영 주체가 되는 통신사업자의 업데이트 목적 서버를 의미할 수 있다.
본 발명의 일 실시예에 있어서, 상기 요청(211) 및/또는 상기 버전 검사 통신(212)에는, 상기 제1 기능부의 기본 버전(150)이 가지는 버전 정보가 포함될 수 있다. 상기 버전 정보는 일종의 연번(連番)이거나 또는 갱신된 소프트웨어의 갱신 일자를 나타내는 일시(日時)의 표시일 수 있다. 또한, 상기 요청(211) 및/또는 상기 버전 검사 통신(212)에는, 상기 버전 정보가 유래하는 상기 제1 기능부(150)의 기능부 식별 정보가 포함될 수 있다. 상기 기능부 식별 정보는, 예를 들어, 소프트웨어 패키지 식별자를 의미할 수 있다.
상기 버전 검사 통신(212)에 대응하여, 상기 업데이트 서버(210)는 상기 제1 기능부(150)에 대응하는 기능부의 새로운 버전에 대한 정보를 포함하는 응답을 상기 통신부(120)로 송신할 수 있다. 만약 상기 새로운 버전에 대한 정보를 상기 제1 기능부의 현재 버전과 비교하였을 때, 더욱 새로운 버전이 존재하는 것이 확인된다면, 상기 제1 기능부(150)의 업데이트가 필요한 상황으로 간주할 수 있다. 본 발명의 일 실시예에서, 상기 제1 기능부(150)는 상기 새로운 버전에 대한 정보를 상기 통신부(120)를 경유하여 수신(213)하고, 상기 업데이트 필요의 여부에 대한 판단을 내리도록 구성될 수 있다.
상기 버전 검사 통신(212, 214)의 교환 및 상기 제1 기능부(150)의 업데이트 필요의 여부에 대한 판단은 주기적으로 실행될 수 있다.
도 2b를 참조하면, 상기 제1 기능부의 기본 버전(150)은, 상기 업데이트 필요의 여부에 대한 판단에 기반하여 업데이트를 요청하는 통신을 상기 통신부(120)에 요청(215)할 수 있다. 상기 통신부(120)는 업데이트 요청 통신을 상기 업데이트 서버(210)로 송신(216)하고, 그 결과로 상기 업데이트 서버(210)로부터 새로운 버전의 제1 기능부에 대한 정보를 포함하는 업데이트 통신을 수신(218)할 수 있다. 상기 새로운 버전의 제1 기능부에 대한 정보란, 본 발명의 바람직한 일 실시예에 따르면, 상기 새로운 버전의 제1 기능부 소프트웨어의 동작 명령어 그 자체를 의미하는 것으로써, 이른바 실행 가능 바이너리(executable binary)에 해당하는 정보를 의미할 수 있다.
본 발명의 일 실시예에 따르면, 상기 실행 가능 바이너리 정보는 업데이트를 위하여 상기 제1 기능부의 기본 버전(150)에 전달(222)될 수 있다. 상기 제1 기능부의 기본 버전(150)은 앞서 상기 제1 기능부의 기능에 대해 설명한 바와 같이 상기 제1 기능부 스스로를 업데이트하는 기능을 가지도록 구성될 수 있다. 도 2b에 나타난 예시에 따르면, 상기 제1 기능부의 기본 버전(150)은 상기 실행 가능 바이너리 정보를 데이터 영역 메모리(130)에 기록(224)함으로써 소프트웨어적으로 설치할 수 있다.
상술한 바와 같이, 상기 제1 기능부는 상기 단말기(100) 내에 복수의 버전이 존재할 경우, 그 중 하나만이 동작하도록 구성될 수 있다. 따라서, 상기와 같은 설치가 진행되면, 상기 시스템 영역 메모리(140)에 저장된 기본 버전(150)을 실행되지 아니하고, 상기 데이터 영역 메모리(130)에 저장된 새로운 버전(151)이 우선적으로 동작하게 됨으로써, 실질적으로 새로운 버전으로의 업데이트 효과가 달성될 수 있다.
본 발명의 실시예에 따라서는 다른 업데이트 방법들이 존재할 수 있다. 도 2c를 참조하면, 상기 데이터 영역 메모리(130)에는 이미 한 차례 업데이트가 실행되어 새로운 버전으로 갱신된 제1 기능부(151)가 기록되어 있을 수 있다. 이 때 더욱 새로운 버전으로 업데이트를 진행하는 경우, 상기 더욱 새로운 버전의 실행 가능 바이너리 정보는 업데이트를 위하여 상기 제1 기능부의 새로운 버전(151)에 전달(226)될 수 있다. 상기 제1 기능부의 새로운 버전(151)은 상기 실행 가능 바이너리 정보를 데이터 영역 메모리(130)에 기록(228)함으로써 소프트웨어적으로 설치할 수 있으며, 실시예에 따라서는, 이 과정에서 기존의 새로운 버전(151)을 덮어쓰거나 삭제하도록 구성될 수 있다. 상술한 예시와 같은 방법으로 상기 데이터 영역 메모리(130)에 저장된 새로운 버전(151)이 갱신됨으로써, 실질적으로 새로운 버전으로의 업데이트 효과가 달성될 수 있다.
본 발명의 또다른 일 실시예에 있어서는, 상기 시스템 영역 메모리(140)에 포함되는 일 기능부로서 설치 기능부(280)가 존재할 수 있다. 상기 설치 기능부(280)는 기능부의 실행 가능 바이너리 정보를 수신하여 상기 데이터 영역 메모리(130)에 설치하는 것을 주요한 기능으로 하는 시스템 기능부를 의미할 수 있다. 도 2d를 참조하면, 상기 실행 가능 바이너리 정보는 업데이트를 위하여 상기 설치 기능부(280)에 전달(232)될 수 있고, 상기 설치 기능부(280)는 상기 실행 가능 바이너리 정보를 데이터 영역 메모리(130)에 기록(234)함으로써 소프트웨어적으로 설치할 수 있다. 상술한 예시와 같은 방법으로 상기 데이터 영역 메모리(130)에 새로운 버전의 제1 기능부(151)가 기록 또는 갱신됨으로써, 실질적으로 새로운 버전으로의 업데이트 효과가 달성될 수 있다.
도 3a 내지 3c는 본 발명의 일 실시예에 따른 제2 기능부의 업데이트 과정에 대한 개념도이다. 상기 도 2a 내지 도 3D를 통하여 상술한 제1 기능부의 실시예가 상기 제2 기능부의 업데이트에 관한 실시예로 준용될 수 있는 것은 자명하며, 도 3a 및 3b에서는 특히 상기 제1 기능부가 상기 제2 기능부의 업데이트를 대신 수행함에 있어서 설명되어야 하는 예시적 설명을 제공한다.
도 3a를 참조하면, 제1 기능부의 기본 버전(150)은 제2 기능부의 기본 버전(160)이 업데이트가 필요한지의 여부를 검사하는 통신을 송신하도록 상기 통신부(120)에 요청(311)할 수 있다. 이 때, 본 발명의 실시예에 따라서는, 상기 제1 기능부(150)는 상기 제2 기능부(160)의 현재 버전을 확인하는 내부 통신(315)을 수행할 수 있다. 상기 통신부(120)는 상기 요청(311)에 기반하여 상기 업데이트 서버(210)에 버전 검사 통신을 송신(312)할 수 있다. 상기 버전 검사 통신(312)은 현재 단말기(100)에 포함되어 있는 상기 제2 기능부(160)의 버전이 최신 상태인지의 여부를 검사하기 위한 것일 수 있다.
본 발명의 일 실시예에 있어서, 상기 요청(311) 및/또는 상기 버전 검사 통신(212)에는, 상기 제2 기능부의 기본 버전(160)이 가지는 버전 정보가 포함될 수 있다. 상기 버전 정보는 일종의 연번(連番)이거나 또는 갱신된 소프트웨어의 갱신 일자를 나타내는 일시(日時)의 표시일 수 있다. 또한, 상기 요청(311) 및/또는 상기 버전 검사 통신(312)에는, 상기 버전 정보가 유래하는 상기 제2 기능부(160)의 기능부 식별 정보가 포함될 수 있다. 상기 기능부 식별 정보는, 예를 들어, 소프트웨어 패키지 식별자를 의미할 수 있다. 또한, 상기 요청(311) 및/또는 상기 버전 검사 통신(312)에는, 상기 업데이트 통신에 포함된 정보를 최종적으로 수신하여 처리하게 되는 업데이트의 주체, 즉 상기 제1 기능부(150)의 기능부 식별 정보가 포함될 수 있다.
상기 버전 검사 통신(312)에 대응하여, 상기 업데이트 서버(210)는 상기 제2 기능부(160)에 대응하는 기능부의 새로운 버전에 대한 정보를 포함하는 응답을 상기 통신부(120)로 송신할 수 있다. 만약 상기 새로운 버전에 대한 정보를 상기 제2 기능부의 현재 버전과 비교하였을 때, 더욱 새로운 버전이 존재하는 것이 확인된다면, 상기 제2 기능부(160)의 업데이트가 필요한 상황으로 간주할 수 있다. 본 발명의 일 실시예에서, 상기 제1 기능부(150)는 상기 새로운 버전에 대한 정보를 상기 통신부(120)를 경유하여 수신(313)하고, 상기 제2 기능부(160)의 업데이트 필요의 여부에 대한 판단을 내리도록 구성될 수 있다.
상기 버전 검사 통신(312, 314)의 교환 및 상기 상기 제2 기능부(160)의 업데이트 필요의 여부에 대한 판단은 주기적으로 실행될 수 있다.
도 3b를 참조하면, 상기 제1 기능부의 기본 버전(150)은, 상기 업데이트 필요의 여부에 대한 판단에 기반하여 업데이트를 요청하는 통신을 상기 통신부(120)에 요청(315)할 수 있다. 상기 통신부(120)는 업데이트 요청 통신을 상기 업데이트 서버(210)로 송신(316)하고, 그 결과로 상기 업데이트 서버(310)로부터 새로운 버전의 제2 기능부에 대한 정보를 포함하는 업데이트 통신을 수신(318)할 수 있다. 상기 새로운 버전의 제2 기능부에 대한 정보란, 본 발명의 바람직한 일 실시예에 따르면, 상기 새로운 버전의 제2 기능부 소프트웨어의 동작 명령어 그 자체를 의미하는 것으로써, 이른바 실행 가능 바이너리(executable binary)에 해당하는 정보를 의미할 수 있다.
본 발명의 일 실시예에 따르면, 상기 실행 가능 바이너리 정보는 업데이트를 위하여 상기 제1 기능부의 기본 버전(150)에 전달(322)될 수 있다. 상기 제1 기능부의 기본 버전(150)은 앞서 상기 제1 기능부의 기능에 대해 설명한 바와 같이 상기 제2 기능부를 업데이트하는 기능을 가지도록 구성될 수 있다. 도 3b에 나타난 예시에 따르면, 상기 제1 기능부의 기본 버전(150)은 상기 새로운 버전의 제2기능부의 실행 가능 바이너리 정보를 데이터 영역 메모리(130)에 기록(324)함으로써 소프트웨어적으로 설치할 수 있다.
상술한 바와 같이, 상기 제2 기능부는 상기 단말기(100) 내에 복수의 버전이 존재할 경우, 그 중 하나만이 동작하도록 구성될 수 있다. 따라서, 상기와 같은 설치가 진행되면, 상기 시스템 영역 메모리(140)에 저장된 기본 버전(160)을 실행되지 아니하고, 상기 데이터 영역 메모리(130)에 저장된 새로운 버전(161)이 우선적으로 동작하게 됨으로써, 실질적으로 새로운 버전으로의 업데이트 효과가 달성될 수 있다. 결론적으로, 상기 제2 기능부의 기본 버전(160)은 스스로 업데이트를 실행하는 능력을 보유하지 아니함에도, 상기 제1 기능부(150)에 의하여 간접적으로 업데이트될 수 있게 되는 것이다.
본 발명의 실시예에 따라서는 다른 간접적 업데이트 방법들이 존재할 수 있다. 도 3c를 참조하면, 상기 데이터 영역 메모리(130)에는 이미 한 차례 업데이트가 실행되어 새로운 버전으로 갱신된 제1 기능부(151)가 기록되어 있을 수 있다. 이 때 상기 제2 기능부(160)의 업데이트를 실시하는 경우, 상기 새로운 버전의 제2기능부의 실행 가능 바이너리 정보는 업데이트를 위하여 상기 제1 기능부의 새로운 버전(151)에 전달(326)될 수 있다. 상기 제1 기능부의 새로운 버전(151)은 상기 실행 가능 바이너리 정보를 데이터 영역 메모리(130)에 기록(328)함으로써 소프트웨어적으로 설치할 수 있으며, 실시예에 따라서는, 이 과정에서 기존에 존재하였던 상기 제2기능부의 새로운 버전(161)을 덮어쓰거나 삭제하도록 구성될 수 있다. 상술한 예시와 같은 방법으로 상기 데이터 영역 메모리(130)에 저장된 상기 제2기능부의 새로운 버전(161)이 갱신됨으로써, 실질적으로 상기 제1 기능부에 의한 간접 업데이트 효과가 달성될 수 있다.
본 발명의 또다른 일 실시예에 있어서는, 상기 시스템 영역 메모리(140)에 포함되는 일 기능부로서 설치 기능부(도 2의 280)가 존재할 수 있다. 상기 설치 기능부를 이용하여 상기 제2 기능부를 업데이트하는 경우의 실시예는, 앞서 제1 기능부의 업데이트와 관련하여 서술한 것과 동일 또는 유사한 절차로 이루어질 수 있다.
도 4는 본 발명의 일 실시예에 따른 신규 기능부의 설치 과정에 대한 개념도이다. 도 4를 참조하면, 업데이트 서버(210)는 필요에 따라서 새로운 기능부(예를 들어, 새로운 소프트웨어)의 설치를 상기 단말기(100)에 요청하는 설치 통신(412)을 송신할 수 있고, 상기 통신부(120)는 이를 수신할 수 있다. 상기 설치 통신은 신규 기능부에 대한 정보를 포함할 수 있다. 상기 신규 기능부에 대한 정보란, 본 발명의 바람직한 일 실시예에 따르면, 상기 신규 기능부 소프트웨어의 동작 명령어 그 자체를 의미하는 것으로써, 이른바 실행 가능 바이너리(executable binary)에 해당하는 정보를 의미할 수 있다.
본 발명의 일 실시예에 따르면, 상기 실행 가능 바이너리 정보는 신규 설치를 위하여 상기 제1 기능부에 전달(422)될 수 있다. 상기 제1 기능부(150)는 기존의 기능부에 대한 업데이트 뿐 아니라 새로운 기능부를 설치하는 기능을 가지도록 구성될 수 있다. 상기 제1 기능부의 기본 버전(150)은 상기 실행 가능 바이너리 정보를 데이터 영역 메모리(130)에 기록(424)함으로써 소프트웨어적으로 설치할 수 있다. 상기와 같은 실시방법에 의하여, 신규 기능부(480)를 설치함으로써 단말기(100)의 기능 자체를 업데이트하는 효과가 달성될 수 있다.
본 발명의 또다른 일 실시예에 있어서는, 상기 시스템 영역 메모리(140)에 포함되는 일 기능부로서 설치 기능부(도 2의 280)가 존재할 수 있다. 상기 설치 기능부를 이용하여 상기 신규 기능부(480)를 설치하는 경우의 실시예는, 앞서 제1 기능부의 업데이트와 관련하여 서술한 것과 동일 또는 유사한 절차로 이루어질 수 있다.
본 발명의 일 실시예에 따라서, 상술한 실시예에 의한 상기 제1 기능부 또는 상기 제2 기능부의 업데이트는 해당하는 기능부가 동작 중인 경우에 실행될 수 있다. 그러한 경우, 상기 단말기는 업데이트의 대상이 되는 기능부의 동작이 (예를 들어, 해당 기능부를 구현하는 소프트웨어의 동작이) 중지됨을 상기 단말기의 사용자에게 표시 등의 방법으로 통지하고, 상기 동작을 중지하도록 제어될 수 있다.
본 발명의 일 실시예에 따라서, 상술한 실시예에 의한 상기 제1 기능부 또는 상기 제2 기능부의 업데이트는 해당하는 기능부의 동작이 종료되는 시점에 실행될 수 있다. 그러한 경우, 상기 단말기는 업데이트의 대상이 되는 기능부의 동작이 종료된 뒤 소정의 대기 시간을 갖고 상기 업데이트를 실행하도록 구성될 수 있다. 상기 소정의 대기 시간은 상기 기능부의 동작 종료에 뒤따르는 시스템의 부하로부터 상기 업데이트 절차를 분리하기 위해 정해지는 것으로써, 본 발명의 일 실시예에 따르면, 약 1 내지 10초의 간격을 의미할 수 있다.
이상 본 발명에 대하여 도면 및 실시예를 참조하여 설명하였으나, 이미 상술한 바와 같이 본 발명의 보호범위가 상기 제시된 도면 또는 실시예에 의해 한정되는 것을 의미하지는 않으며, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
Claims (20)
- 기능부 소프트웨어의 업데이트가 가능한 셋톱박스 장치에 있어서,
연산 기능을 가진 프로세서;
시스템 영역 메모리;
데이터 영역 메모리;
통신부; 및
상기 시스템 영역 및 상기 데이터 영역 중 적어도 하나에 기록된 제1 기능부;
상기 시스템 영역 및 상기 데이터 영역 중 적어도 하나에 기록된 제2 기능부;를 포함하고,
상기 제1 기능부는, 상기 제2 기능부를 업데이트하는 기능을 포함하는, 장치.
- 제 1 항에 있어서,
상기 제1 기능부는,
상기 통신부를 통하여 상기 제2 기능부에 대한 버전 검사 통신을 송신하고, 그 응답으로 상기 제2 기능부의 최신 버전에 대한 정보를 포함하는 응답을 수신하도록 구성되는, 장치.
- 제 1 항에 있어서,
상기 통신부는, 상기 제2 기능부에 대한 업데이트 통신을 수신하도록 구성되고,
상기 업데이트 통신은, 새로운 버전의 제2 기능부에 대한 정보를 포함하고,
상기 제1 기능부는, 상기 업데이트 통신에 기반하여, 상기 제2 기능부를 업데이트하도록 구성되는, 장치.
- 제 4 항에 있어서,
상기 제1 기능부는,
상기 새로운 버전의 제2 기능부에 대한 정보를 상기 데이터 영역 메모리에 기록함으로써 상기 제2 기능부를 업데이트하도록 구성되는, 장치.
- 제 1 항에 있어서,
상기 통신부는, 상기 제1 기능부에 대한 업데이트 통신을 수신하도록 구성되고,
상기 업데이트 통신은, 새로운 버전의 제1 기능부의 새로운 버전에 대한 정보를 포함하고,
상기 제1 기능부는, 상기 업데이트 통신에 기반하여 새로운 버전으로 업데이트되는, 장치.
- 제 4 항에 있어서,
상기 제1 기능부는,
상기 새로운 버전의 제1 기능부에 대한 정보를 상기 데이터 영역 메모리에 기록함으로써 상기 제1 기능부를 업데이트하도록 구성되는, 장치.
- 제 1 항에 있어서,
상기 통신부는, 신규 기능부에 대한 설치 통신을 수신하도록 구성되고,
상기 설치 통신은, 상기 신규 기능부에 대한 정보를 포함하고,
상기 제1 기능부는, 상기 업데이트 통신에 기반하여, 상기 신규 기능부를 설치하도록 구성되는, 장치.
- 제 7 항에 있어서,
상기 제1 기능부는, 상기 신규 기능부에 대한 정보를 상기 데이터 영역 메모리에 기록함으로써 상기 신규 기능부를 설치하도록 구성되는, 장치.
- 제 1 항에 있어서,
상기 제1 기능부 및 상기 제2 기능부는, 상기 프로세서에 의하여 실행되는 소프트웨어로 구성되는 것을 특징으로 하는, 장치.
- 제 1 항에 있어서,
상기 제1 기능부 및 상기 제2 기능부는, 적어도 하나의 버전이 상기 시스템 영역 메모리에 기록된 펌웨어(firmware)에 포함되고, 새로운 버전이 상기 데이터 영역 메모리에 기록된 경우, 상기 새로운 버전이 실행되도록 구성되는 것을 특징으로 하는, 장치.
- 셋톱박스 단말기의 기능부 소프트웨어를 업데이트하는 방법에 있어서,
상기 단말기에 제1 기능부를 위한 제1 소프트웨어의 기본 버전 및 제2 기능부를 위한 제2 소프트웨어의 기본 버전을 구비하는 단계;
업데이트 서버가 상기 단말기에 새로운 버전의 제2 소프트웨어를 포함하는 업데이트 통신을 전송하는 단계;
상기 단말기에 포함된 제1 소프트웨어가 상기 업데이트 통신을 수신하는 단계; 및
상기 제1 소프트웨어가 상기 업데이트 통신에 기반하여 상기 단말기에 상기 새로운 버전의 제2 소프트웨어를 업데이트하는 단계;를 포함하는, 방법.
- 제 11 항에 있어서,
상기 업데이트하는 단계는,
상기 단말기의 데이터 영역 메모리에, 상기 제1 소프트웨어가 상기 새로운 버전의 제2 소프트웨어에 대한 정보를 기록하는 단계;를 포함하는, 방법.
- 제 11 항에 있어서,
업데이트 서버가 상기 단말기에 새로운 버전의 제1 소프트웨어를 포함하는 업데이트 통신을 전송하는 단계;
상기 단말기에 포함된 제1 소프트웨어가 상기 업데이트 통신을 수신하는 단계; 및
상기 제1 소프트웨어가 상기 업데이트 통신에 기반하여 새로운 버전으로 업데이트되는 단계;를 포함하는, 방법.
- 제 13 항에 있어서,
상기 업데이트되는 단계는,
상기 단말기의 데이터 영역 메모리에, 상기 제1 소프트웨어가 상기 새로운 버전의 제1 소프트웨어에 대한 정보를 기록하는 단계;를 포함하는, 방법.
- 제 11 항에 있어서,
상기 제1 소프트웨어가 상기 업데이트 서버에 상기 제2 소프트웨어의 버전 검사 통신을 전송하는 단계;
상기 업데이트 서버가 상기 단말기에 상기 제2 소프트웨어의 최신 버전에 대한 정보를 포함하는 응답을 송신하는 단계; 및
상기 제1 소프트웨어가 상기 제2 소프트웨어의 업데이트 필요 여부를 판단하는 단계;를 더 포함하는, 방법.
- 제 15 항에 있어서,
상기 버전 검사 통신을 전송하는 단계, 상기 응답을 송신하는 단계, 및 상기 업데이트 필요 여부를 판단하는 단계는, 주기적으로 반복되는 것을 특징으로 하는, 방법.
- 제 11 항에 있어서,
업데이트 서버가 상기 단말기에, 신규 소프트웨어에 대한 정보를 포함하는 설치 통신을 전송하는 단계;
상기 단말기가 상기 설치 통신을 수신하는 단계; 및
상기 제1 소프트웨어가 상기 설치 통신에 기반하여 상기 단말기에 상기 신규 소프트웨어를 설치하는 단계;를 더 포함하는, 방법.
- 제 17 항에 있어서,
상기 설치하는 단계는,
상기 단말기의 데이터 영역 메모리에, 상기 제1 소프트웨어가 상기 신규 소프트웨어에 대한 정보를 기록하는 단계;를 포함하는, 방법.
- 제 11 항에 있어서,
상기 업데이트하는 단계는,
상기 제2 소프트웨어가 실행 중인 경우, 상기 제2 소프트웨어가 중지됨을 상기 단말기를 통해 표시하고, 상기 제2 소프트웨어를 중지하는 단계; 및
상기 제2 소프트웨어가 종료 단계인 경우, 상기 제2 소프트웨어의 종료로부터 대기 시간을 두고 업데이트를 실행하는 단계;를 포함하는, 방법.
- 셋톱박스 단말기 장치의 소프트웨어 업데이트가 가능한 시스템에 있어서,
통신부를 포함하는, 업데이트 서버; 및
통신부, 제1 기능부, 및 제2 기능부를 포함하는, 단말기;를 포함하고,
상기 업데이트 서버는 상기 단말기에, 상기 단말기의 상기 제2 기능부의 새로운 버전에 대한 정보를 포함하는 업데이트 통신을 송신하도록 구성되고,
상기 단말기는, 상기 업데이트 통신을 수신하고, 상기 업데이트 통신에 포함된 상기 제2 기능부의 새로운 버전에 대한 정보에 기반하여, 상기 제1 기능부에 의해 상기 제2 기능부를 업데이트하도록 구성되는, 시스템.
Publications (1)
Publication Number | Publication Date |
---|---|
KR20250020091A true KR20250020091A (ko) | 2025-02-11 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105791387B (zh) | 车辆控制更新方法和系统 | |
CN106897086B (zh) | 用于升级机器人操作系统的方法、装置及系统 | |
US9471300B2 (en) | Wireless firmware upgrades to an alarm security panel | |
US9268552B1 (en) | Patching improvement for executables in memory constrained devices | |
KR101541112B1 (ko) | Fota 시스템 및 그 실행 방법 | |
KR20080007132A (ko) | 단말 시스템의 버전정보 갱신 장치 및 방법 | |
CN103716390A (zh) | 一种数据分享方法及终端 | |
CN110659053A (zh) | 程序更新方法、装置、存储介质及电子设备 | |
CN104834541B (zh) | 功能模块挂载方法、挂载系统及更新挂载系统的方法 | |
KR102474437B1 (ko) | 임베디드 가입자 식별 모듈에서의 프로파일의 설치 | |
EP3091435A1 (en) | Resource management method and device for terminal system | |
CN110610080B (zh) | 应用的隔离实现方法、移动终端、计算机设备和存储介质 | |
CN106293790B (zh) | 基于Firefox操作系统的应用程序升级方法和装置 | |
CN109617713A (zh) | 资源分发的实现方法及服务器 | |
KR20250020091A (ko) | 장치 소프트웨어의 간접 업데이트 방법, 장치, 및 시스템 | |
CN113094064A (zh) | 网关软件模块升级方法、装置、设备及存储介质 | |
JP2015099547A (ja) | ソフトウェア更新方法、ソフトウェア更新装置、ソフトウェア更新プログラム、及びソフトウェア更新システム | |
CN109840156B (zh) | 一种数据缓存方法及其设备、存储介质、终端 | |
KR101461319B1 (ko) | 셋탑박스의 펌웨어 업그레이드 방법 및 펌웨어 업그레이드 장치 | |
KR20210000965A (ko) | IoT 동시 실행을 위한 서비스 서버의 동작 방법 및 서비스 서버 | |
CN113434233B (zh) | 界面跳转方法、装置、存储介质及电子装置 | |
CN113076117B (zh) | 一种ota升级方法、装置、电子设备及存储介质 | |
CN110221880B (zh) | 应用程序编程接口调用方法、装置、设备及介质 | |
CN115913941A (zh) | 蓝牙耳机升级方法、蓝牙设备及存储介质 | |
US20140215456A1 (en) | Method and apparatus for maintaining wireless network devices in wireless networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20230803 |
|
PA0201 | Request for examination |
Patent event code: PA02011R01I Patent event date: 20230803 Comment text: Patent Application |
|
PG1501 | Laying open of application | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20250212 Patent event code: PE09021S01D |