KR102517251B1 - Embedded system, patch server, and method for updating the embedded system - Google Patents

Embedded system, patch server, and method for updating the embedded system Download PDF

Info

Publication number
KR102517251B1
KR102517251B1 KR1020160049477A KR20160049477A KR102517251B1 KR 102517251 B1 KR102517251 B1 KR 102517251B1 KR 1020160049477 A KR1020160049477 A KR 1020160049477A KR 20160049477 A KR20160049477 A KR 20160049477A KR 102517251 B1 KR102517251 B1 KR 102517251B1
Authority
KR
South Korea
Prior art keywords
patch
embedded system
version
file
stream
Prior art date
Application number
KR1020160049477A
Other languages
Korean (ko)
Other versions
KR20170120922A (en
Inventor
김보은
이승호
Original Assignee
주식회사 엘지유플러스
주식회사 다산네트웍솔루션즈
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엘지유플러스, 주식회사 다산네트웍솔루션즈 filed Critical 주식회사 엘지유플러스
Priority to KR1020160049477A priority Critical patent/KR102517251B1/en
Publication of KR20170120922A publication Critical patent/KR20170120922A/en
Application granted granted Critical
Publication of KR102517251B1 publication Critical patent/KR102517251B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 일 실시예에 따른 임베디드 시스템(embedded system)의 업데이트 방법은, 패치 스트림(patch stream) 전송을 위한 멀티캐스트 채널의 가입을 요청하는 채널 조인 메시지(channel join message)를 패치 서버로 전송하는 단계; 상기 멀티캐스트 채널을 통해 패치 스트림을 수신하여, 시스템 업데이트에 필요한 패치 파일을 저장하는 단계; 및 상기 저장된 패치 파일로부터 구성되는 패치 모듈에 의해, 재부팅(rebooting)없이 런타임 패치(runtime)를 수행하는 단계를 포함할 수 있다.An update method of an embedded system according to an embodiment of the present invention includes transmitting a channel join message requesting joining of a multicast channel for transmitting a patch stream to a patch server. step; receiving a patch stream through the multicast channel and storing a patch file required for system update; and performing a runtime patch without rebooting by a patch module configured from the stored patch file.

Description

임베디드 시스템, 패치 서버, 및 상기 임베디드 시스템의 업데이트 방법{EMBEDDED SYSTEM, PATCH SERVER, AND METHOD FOR UPDATING THE EMBEDDED SYSTEM}Embedded system, patch server, and update method of the embedded system

본 발명은 임베디드 시스템, 패치 서버, 및 상기 임베디드 시스템의 업데이트 방법에 관한 것으로, 더욱 상세하게는 시스템의 중단 없이 시스템 업데이트를 수행할 수 있는 임베디드 시스템, 패치 서버, 및 상기 임베디드 시스템의 업데이트 방법에 관한 것이다.The present invention relates to an embedded system, a patch server, and a method for updating the embedded system, and more particularly, to an embedded system capable of performing a system update without stopping the system, a patch server, and a method for updating the embedded system. will be.

임베디드 시스템(Embedded System, 내장형 시스템)은 시스템을 동작시키는 소프트웨어를 하드웨어에 내장하여 특수한 기능만을 수행하는 컴퓨터 시스템이다. 상기 임베디드 시스템은 개인용 컴퓨터(PC)와는 달리 특정한 요구 사항을 가지고 있으며, 미리 정의된 작업(task)만을 수행한다. 상기 개인용 컴퓨터는 하드 디스크와 같은 대용량 저장장치에 운영 체제(Operating System; OS)를 내장하고 있다. 그에 반해, 상기 임베디드 시스템은 운영 체제와 응용 프로그램들이 비휘발성 메모리(Non-volatile memory)(예: ROM, flash memory 등)에 이미지(image) 형태로 저장되어 있다가, 시동과 동시에 램 디스크(RAM Disk)를 만든 다음, 램 디스크 위에 운영 체제와 응용 프로그램들이 구성되고 구동되는 시스템이다.An embedded system is a computer system that performs only special functions by embedding software for operating the system in hardware. Unlike a personal computer (PC), the embedded system has specific requirements and performs only predefined tasks. The personal computer has an operating system (OS) embedded in a mass storage device such as a hard disk. On the other hand, in the embedded system, the operating system and application programs are stored in the form of images in non-volatile memory (e.g., ROM, flash memory, etc.) Disk) is created, and then the operating system and application programs are configured and run on the RAM disk.

상기 임베디드 시스템은 필요에 따라 업데이트(update)될 수 있으며, 시스템 운용자는 업데이트를 위한 갱신 소프트웨어를 제공하는 서버에 접속하여 특정 임베디드 시스템의 시스템 종류에 따른 소프트웨어 버전을 확인하여, 갱신 소프트웨어의 존재 및 적용 여부를 판단함에 의해 시스템 업데이트가 진행될 수 있다. The embedded system can be updated as needed, and the system operator connects to a server providing updated software for updating and checks the software version according to the system type of the specific embedded system to determine the existence and application of the updated software. System update may proceed by determining whether or not.

또한, 임베디드 시스템에서 운영 소프트웨어는 비휘발성 메모리에 저장되는 단일 이미지로 관리되는데, 시스템 업데이트 시 운영 소프트웨어 내의 특정 모듈, 애플리케이션의 변경이 필요한 경우 단일 이미지를 새로 생성해야 하고 임베디드 시스템을 재부팅하여야 변경된 소프트웨어로 동작할 수 있게 된다. 이 경우, 임베디드 시스템의 동작이 중단될 수 밖에 없으므로 24시간 운용되어야 하는 시스템에서는 품질 저하를 가져오게 된다.In addition, in the embedded system, the operating software is managed as a single image stored in non-volatile memory. When updating the system, if a specific module or application within the operating software needs to be changed, a new single image must be created and the embedded system must be rebooted to restore the changed software. be able to operate. In this case, the operation of the embedded system is inevitably stopped, resulting in quality degradation in a system that must be operated 24 hours a day.

본 발명은 시스템 중단 없이 업데이트를 진행할 수 있는 임베디드 시스템, 패치 서버, 및 상기 임베디드 시스템의 업데이트 방법을 제공하기 위한 것이다.An object of the present invention is to provide an embedded system capable of performing an update without system interruption, a patch server, and a method for updating the embedded system.

본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다. The technical problems to be achieved in the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art from the description below. You will be able to.

상기와 같은 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 임베디드 시스템(embedded system)의 업데이트 방법은, 패치 스트림(patch stream) 전송을 위한 멀티캐스트 채널의 가입을 요청하는 채널 조인 메시지(channel join message)를 패치 서버로 전송하는 단계; 상기 멀티캐스트 채널을 통해 패치 스트림을 수신하여, 시스템 업데이트에 필요한 패치 파일을 저장하는 단계; 및 상기 저장된 패치 파일로부터 구성되는 패치 모듈에 의해, 재부팅(rebooting)없이 런타임 패치(runtime)를 수행하는 단계를 포함할 수 있다.In order to solve the above technical problem, a method for updating an embedded system according to an embodiment of the present invention includes a channel join message requesting subscription of a multicast channel for transmitting a patch stream ( channel join message) to the patch server; receiving a patch stream through the multicast channel and storing a patch file required for system update; and performing a runtime patch without rebooting by a patch module configured from the stored patch file.

실시예에 따라, 상기 멀티캐스트 채널은, 시스템과 패치 버전 별로 개설될 수 있다.Depending on the embodiment, the multicast channel may be established for each system and patch version.

실시예에 따라, 상기 채널 조인 메시지는 상기 임베디드 시스템의 시스템 식별 정보 및 패치 버전 정보를 포함하고, 상기 멀티캐스트 채널은 상기 시스템 식별 정보에 따른 시스템에 대해 상기 패치 버전 정보에 따른 현재 버전 이후의 최신 버전의 패치에 대응하는 채널일 수 있다.According to an embodiment, the channel join message includes system identification information and patch version information of the embedded system, and the multicast channel is the latest version after the current version according to the patch version information for the system according to the system identification information. It may be a channel corresponding to the patch of the version.

실시예에 따라, 상기 패치 스트림은, 패치가 설치될 수 있는 시스템 종류와 시스템 버전 호환 여부에 대한 패치 대상 시스템 정보, 상기 패치 파일의 버전 정보, 상기 패치 파일의 전체 크기 및 상기 패치 파일의 인덱스를 포함할 수 있다.According to an embodiment, the patch stream may include patch target system information on the type of system on which the patch can be installed and whether the system version is compatible, version information of the patch file, the total size of the patch file, and the index of the patch file. can include

실시예에 따라, 상기 패치 파일을 저장하는 단계는, 상기 패치 대상 시스템 정보로부터 상기 임베디드 시스템에 설치될 수 있는 패치 파일인지 판단하는 단계; 상기 임베디드 시스템에 설치될 수 있는 패치 파일인 경우, 상기 패치 파일의 버전 정보를 현재 상기 임베디드 시스템에 설치된 패치의 패치 버전 정보와 비교하여, 패치 설치 필요 여부를 판단하는 단계; 및 상기 수신된 패치 파일의 버전이 현재 상기 임베디드 시스템에 설치된 패치의 패치 버전보다 높은 버전일 경우, 상기 패치 파일의 인덱스를 기초로 이미 수신된 패치 파일인지 여부를 판단하는 단계를 포함할 수 있다.According to an embodiment, the storing of the patch file may include determining whether the patch file can be installed in the embedded system from the patch target system information; If the patch file can be installed in the embedded system, comparing version information of the patch file with patch version information of a patch currently installed in the embedded system, determining whether a patch needs to be installed; and if the version of the received patch file is higher than the patch version of the patch currently installed in the embedded system, determining whether the patch file has already been received based on the index of the patch file.

실시예에 따라, 상기 런타임 패치를 수행하는 단계는, 상기 패치 모듈에 의해 실행 중인 운영체제 또는 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트(pin-point) 방식으로 수정하는 단계를 포함할 수 있다.According to embodiments, the performing of the runtime patch may include modifying a code region or data region of an operating system or a specific program being executed by the patch module in a pin-point manner.

실시예에 따라, 상기 패치 서버의 동작 불능시, L3 스위치로부터 패치 스트림을 수신하여, 상기 패치 파일을 저장하는 단계를 더 포함할 수 있다.According to an embodiment, the method may further include receiving a patch stream from an L3 switch and storing the patch file when the patch server is inoperable.

본 발명의 다른 실시예에 따른 임베디드 시스템(embedded system)의 업데이트 방법은, 임베디드 시스템의 시스템 식별 정보 및 패치 버전 정보를 포함하고, 패치 스트림(patch stream) 전송을 위한 멀티캐스트 채널의 가입을 요청하는 채널 조인 메시지(channel join message)를 수신하는 단계; 상기 시스템 식별 정보에 따른 시스템에 대해 상기 패치 버전 정보에 따른 현재 버전 이후의 최신 버전의 패치에 대응하는 멀티캐스트 채널을 상기 임베디드 시스템에 할당하는 단계; 및 재부팅(rebooting)없이 런타임 패치(runtime)를 수행할 수 있도록, 상기 멀티캐스트 채널을 통해 패치 스트림을 상기 임베디드 시스템에 전송하는 단계를 포함할 수 있다.An update method of an embedded system according to another embodiment of the present invention includes system identification information and patch version information of the embedded system, and requests subscription to a multicast channel for transmitting a patch stream. Receiving a channel join message; allocating to the embedded system a multicast channel corresponding to a patch of a latest version after the current version according to the patch version information for the system according to the system identification information; and transmitting a patch stream to the embedded system through the multicast channel so as to perform a runtime patch without rebooting.

상기와 같이 구성되는 본 발명의 일 실시예에 따른 임베디드 시스템의 업데이트 방법에 의하면, 핀포인트 방식으로 패치를 진행함으로써 소프트웨어 전체를 교체할 필요 또는 재부팅할 필요 없이도 시스템 업데이트가 가능하다.According to the update method of an embedded system according to an embodiment of the present invention configured as described above, system update is possible without the need to replace or reboot the entire software by patching in a pinpoint method.

또한, 전체 시스템을 업데이트하는데 소요되는 시간을 단축할 수 있으며, 시스템 이미지를 수정하는데 따르는 위험을 줄일 수 있고, 패치 적용 실패시에도 전체 시스템을 다시 업데이트 하지 않고 해당 영역에 대한 패치를 집중적으로 다시 시도할 수 있다.In addition, the time required to update the entire system can be shortened, the risk of modifying the system image can be reduced, and even if the patch application fails, the patch for that area is intensively retried without updating the entire system again. can do.

아울러, 패치 서버가 멀티캐스트 채널을 운영하여 패치 스트림을 전송함으로써 동시에 여러 임베디드 시스템들에 대한 패치가 가능하다. In addition, the patch server operates a multicast channel and transmits a patch stream so that multiple embedded systems can be patched at the same time.

마지막으로, 패치 서버의 장애시에도 다른 스위치에서 패치 스트림을 제공함으로써 정상적으로 패치를 완료할 수 있다.Lastly, even when the patch server fails, patching can be completed normally by providing patch streams from other switches.

본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the present invention are not limited to the effects mentioned above, and other effects not mentioned can be clearly understood by those skilled in the art from the description below. will be.

도 1은 본 발명의 일 실시예에 따른 임베디드 시스템의 업데이트 방법을 나타낸 흐름도이다.
도 2는 도 1에 도시된 패치 스트림의 일 예를 나타낸 도면이다.
도 3은 도 1에서 패치가 적용되는 방법을 설명하기 위한 도면이다.
도 4는 도 3의 방법을 이용해 패치가 적용되는 일 예에 대한 도면이다.
도 5는 본 발명의 다른 실시예에 따른 임베디드 시스템의 업데이트 방법을 나타낸 흐름도이다.
1 is a flowchart illustrating an update method of an embedded system according to an embodiment of the present invention.
FIG. 2 is a diagram showing an example of the patch stream shown in FIG. 1 .
FIG. 3 is a diagram for explaining a method of applying a patch in FIG. 1 .
FIG. 4 is a diagram of an example in which a patch is applied using the method of FIG. 3 .
5 is a flowchart illustrating an update method of an embedded system according to another embodiment of the present invention.

이하, 본 발명과 관련된 적어도 하나의 실시 예에 대하여 도면을 참조하여 보다 상세하게 설명한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.Hereinafter, at least one embodiment related to the present invention will be described in more detail with reference to the drawings. The suffixes "module" and "unit" for components used in the following description are given or used together in consideration of ease of writing the specification, and do not have meanings or roles that are distinct from each other by themselves.

도 1은 본 발명의 일 실시예에 따른 임베디드 시스템의 업데이트 방법을 나타낸 흐름도이다. 도 2는 도 1에 도시된 패치 스트림의 일 예를 나타낸 도면이다. 도 3은 도 1에서 패치가 적용되는 방법을 설명하기 위한 도면이다. 도 4는 도 3의 방법을 이용해 패치가 적용되는 일 예에 대한 도면이다.1 is a flowchart illustrating an update method of an embedded system according to an embodiment of the present invention. FIG. 2 is a diagram showing an example of the patch stream shown in FIG. 1 . FIG. 3 is a diagram for explaining a method of applying a patch in FIG. 1 . FIG. 4 is a diagram of an example in which a patch is applied using the method of FIG. 3 .

도 1을 참조하면, 제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)은 시스템을 동작시키는 소프트웨어를 하드웨어에 내장하여 특수한 기능만을 수행하는 컴퓨터 시스템이다. 제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)은 각각 네트워크를 통해 스위치A(30)와 연결될 수 있다.Referring to FIG. 1 , the first embedded system 10 and the second embedded system 20 are computer systems that perform only special functions by embedding software for operating the system in hardware. The first embedded system 10 and the second embedded system 20 may be connected to the switch A 30 through a network, respectively.

스위치A(30)와 스위치B(40)는 임베디드 시스템들(10, 20)과 패치 서버(50) 사이에서 라우팅(routing)을 수행할 수 있다. 스위치A(30)와 스위치B(40)는 L3 스위치로 구현될 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.Switch A 30 and switch B 40 may perform routing between the embedded systems 10 and 20 and the patch server 50 . Switch A 30 and switch B 40 may be implemented as L3 switches, but the scope of the present invention is not limited thereto.

패치 서버(50)는 임베디드 시스템들(예컨대, 10, 20)의 업데이트(update)를 위한 패치 스트림(patch stream)을 제공하는 서버로서, 시스템과 패치 버전 별로 멀티캐스트(multi-cast) 채널을 개설하고 멀티캐스트 방식으로 해당 패치 스트림을 전송할 수 있다.The patch server 50 is a server that provides a patch stream for updating embedded systems (eg, 10 and 20), and establishes a multi-cast channel for each system and patch version. and transmit the corresponding patch stream in a multicast method.

제1 임베디드 시스템(10)은 채널 조인 메시지(channel join message)를 스위치A(30)와 스위치B(40)를 통해 패치 서버(50)로 전송할 수 있다(S110). 상기 채널 조인 메시지는 멀티캐스트 채널 가입을 요청하는 메시지로서, 제1 임베디드 시스템(10)의 시스템 식별 정보 및 현재 제1 임베디드 시스템(10)에 설치된 패치의 패치 버전 정보를 포함할 수 있다. 또한, 상기 채널 조인 메시지는 제1 임베디드 시스템(10)에 수신된 패치 스트림이 존재하는 경우, 수신된 패치 스트림의 인덱스(index)를 포함할 수 있다.The first embedded system 10 may transmit a channel join message to the patch server 50 through the switch A 30 and the switch B 40 (S110). The channel join message is a message requesting multicast channel subscription, and may include system identification information of the first embedded system 10 and patch version information of a patch currently installed in the first embedded system 10 . In addition, the channel join message may include an index of the received patch stream if there is a patch stream received in the first embedded system 10 .

제1 임베디드 시스템(10)은 시스템 관리자에 의해 미리 설정된 주기(예컨대, 3일)마다 채널 조인 메시지를 생성할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.The first embedded system 10 may generate a channel join message at intervals preset by the system manager (eg, every 3 days), but the scope of the present invention is not limited thereto.

패치 서버(50)는 수신된 채널 조인 메시지를 기초로 쿼리 메시지(query message)를 생성하여 스위치A(30)와 스위치B(40)를 통해 제1 임베디드 시스템(10)으로 전송할 수 있다(S120). 상기 쿼리 메시지는 멀티캐스트 채널 가입의 요청에 대한 응답 메시지이다. The patch server 50 may generate a query message based on the received channel join message and transmit it to the first embedded system 10 through the switch A 30 and the switch B 40 (S120). . The query message is a response message to a request for multicast channel subscription.

패치 서버(50)는 제1 임베디드 시스템(10)의 시스템 식별 정보 및 패치 버전 정보를 확인하여 시스템 식별 정보에 따른 시스템에 대해 패치 버전 정보에 따른 현재 버전 이후의 최신 버전의 패치가 존재하는지 판단할 수 있다. 업데이트가 필요한 최신 버전의 패치가 존재할 경우, 패치 서버(50)는 자신의 주소 정보와 함께 패치 파일을 가지고 있다는 정보를 포함하는 쿼리 메시지를 생성하여 제1 임베디드 시스템(10)으로 전송하게 된다.The patch server 50 checks the system identification information and the patch version information of the first embedded system 10 to determine whether a patch of the latest version after the current version according to the patch version information exists for the system according to the system identification information. can When a patch of the latest version requiring update exists, the patch server 50 generates a query message including information indicating that it has a patch file along with its own address information and transmits it to the first embedded system 10 .

또한, 패치 서버(50)는 상기 시스템 식별 정보와 상기 최신 버전의 패치에 대응하는 멀티캐스트 채널에 대한 제1 임베디드 시스템(10)의 접속을 허용할 수 있으며, 이를 위해 상기 쿼리 메시지에는 상기 멀티캐스트 채널에 대한 접속을 위한 정보가 포함될 수 있다. 이에 따라 제1 임베디드 시스템(10)은 상기 쿼리 메시지를 수신하여 상기 멀티캐스트 채널에 접속할 수 있다.In addition, the patch server 50 may permit the first embedded system 10 to access a multicast channel corresponding to the system identification information and the patch of the latest version. To this end, the query message includes the multicast Information for access to the channel may be included. Accordingly, the first embedded system 10 may receive the query message and access the multicast channel.

제2 임베디드 시스템(20)은 채널 조인 메시지를 스위치A(30)와 스위치B(40)를 통해 패치 서버(50)로 전송할 수 있다(S130).The second embedded system 20 may transmit the channel join message to the patch server 50 through the switch A 30 and the switch B 40 (S130).

패치 서버(50)는 수신된 채널 조인 메시지를 기초로 쿼리 메시지를 생성하여 스위치A(30)와 스위치B(40)를 통해 제2 임베디드 시스템(20)으로 전송할 수 있다(S140).The patch server 50 may generate a query message based on the received channel join message and transmit it to the second embedded system 20 through the switch A 30 and the switch B 40 (S140).

S130 단계와 S140 단계의 동작은 제1 임베디드 시스템(10)에서 제2 임베디드 시스템(20)으로 변경된 것 이외에는 실질적으로 차이가 없으므로, 이에 대한 설명은 생략하기로 한다. 다만, 제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)은 동일한 멀티캐스트 채널에 가입하여 패치 스트림을 수신한다고 가정하고 설명하기로 하며, 제1 임베디드 시스템(10)에서의 패치 스트림 수신 및 적용을 중심으로 설명하기로 한다.There is no substantial difference between the operations of steps S130 and S140 except for the change from the first embedded system 10 to the second embedded system 20, so description thereof will be omitted. However, it will be described on the assumption that the first embedded system 10 and the second embedded system 20 subscribe to the same multicast channel and receive a patch stream. The explanation will focus on application.

제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)은 패치 서버(50)가 제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)이 가입한 멀티캐스트 채널로 전송하는 첫번째 패치 스트림을 수신할 수 있다(S150).The first embedded system 10 and the second embedded system 20 transmit the first patch stream transmitted from the patch server 50 to the multicast channel to which the first embedded system 10 and the second embedded system 20 subscribe. It can be received (S150).

도 2에서, 패치 스트림(100)은 헤더(header) 및 바디(body)를 포함할 수 있다. In FIG. 2 , the patch stream 100 may include a header and a body.

상기 헤더는 패치 스트림(100)의 시작을 알려주는 매직 코드(magic code), 패치가 설치될 수 있는 시스템 종류와 시스템 버전 호환 여부에 대한 패치 대상 시스템 정보, 패치 파일의 버전 정보, 패치 업로드(upload) 날짜, 패치 파일의 전체 크기, 패치 파일의 인덱스, 오류 확인 정보(예컨대, CRC) 등을 포함할 수 있다.The header includes a magic code indicating the start of the patch stream 100, patch target system information on the type of system in which the patch can be installed and whether the system version is compatible, patch file version information, and patch upload. ) date, total size of the patch file, index of the patch file, error checking information (eg, CRC), and the like.

상기 바디는 임베디드 시스템(10, 20)의 업데이트를 위한 패치 파일의 적어도 일부를 포함할 수 있다. 상기 바디는 단일 기능 단위의 바이너리(binary) 형태의 복수의 파일들(binary#1~binary#n(n은 2이상의 정수))을 포함할 수 있다. 상기 패치 파일은 도 4의 패치 모듈(400)을 구성할 수 있다.The body may include at least a part of a patch file for updating the embedded systems 10 and 20 . The body may include a plurality of binary files (binary#1 to binary#n (n is an integer of 2 or more)) of a single functional unit. The patch file may configure the patch module 400 of FIG. 4 .

제1 임베디드 시스템(10)은 패치 서버(50)가 멀티캐스트 채널로 전송하는 패치 스트림의 패치 대상 시스템 정보로부터 제1 임베디드 시스템(10)에 설치될 수 있는 패치 파일인지 판단할 수 있다.The first embedded system 10 can determine whether a patch file can be installed in the first embedded system 10 from patch target system information of a patch stream transmitted by the patch server 50 through a multicast channel.

만일, 제1 임베디드 시스템(10)에 설치될 수 없는 패치 파일인 경우, 제1 임베디드 시스템(10)은 해당 패치 스트림을 무시할 수 있다.If it is a patch file that cannot be installed in the first embedded system 10, the first embedded system 10 may ignore the corresponding patch stream.

그러나 제1 임베디드 시스템(10)에 설치될 수 있는 패치 파일인 경우, 제1 임베디드 시스템(10)은 패치 파일의 버전 정보를 현재 제1 임베디드 시스템(10)에 설치된 패치의 패치 버전 정보와 비교하여, 패치 설치 필요 여부를 판단할 수 있다.However, in the case of a patch file that can be installed in the first embedded system 10, the first embedded system 10 compares the version information of the patch file with the patch version information of the patch currently installed in the first embedded system 10. , it can determine whether patch installation is necessary.

만일, 수신된 패치 파일의 버전이 현재 제1 임베디드 시스템(10)에 설치된 패치의 패치 버전과 동일하거나 낮은 버전일 경우, 제1 임베디드 시스템(10)은 해당 패치 스트림을 무시할 수 있다.If the version of the received patch file is the same as or lower than the patch version of the patch currently installed in the first embedded system 10, the first embedded system 10 may ignore the corresponding patch stream.

그러나 수신된 패치 파일의 버전이 현재 제1 임베디드 시스템(10)에 설치된 패치의 패치 버전보다 높은 버전일 경우, 제1 임베디드 시스템(10)은 패치 파일의 인덱스를 기초로 이미 수신된 패치 파일인지 여부를 판단할 수 있다.However, if the version of the received patch file is higher than the patch version of the patch currently installed in the first embedded system 10, the first embedded system 10 determines whether the patch file has already been received based on the index of the patch file. can judge

만일, 이미 저장되어 있는 패치 파일의 인덱스와 수신된 패치 파일의 인덱스가 동일한 경우, 제1 임베디드 시스템(10)은 해당 패치 스트림을 무시할 수 있다.If the index of the patch file already stored is the same as the index of the received patch file, the first embedded system 10 may ignore the corresponding patch stream.

그러나, 이미 저장되어 있는 패치 파일의 인덱스와 수신된 패치 파일의 인덱스가 동일하지 않은 경우, 제1 임베디드 시스템(10)은 해당 패치 스트림을 비휘발성 메모리(예컨대, 도 4의 플래시 메모리(200))에 저장할 수 있다.However, if the index of the patch file already stored and the index of the received patch file are not the same, the first embedded system 10 transfers the corresponding patch stream to a non-volatile memory (e.g., the flash memory 200 of FIG. 4). can be stored in

도 1의 실시예에서는 패치 서버(50)가 패치 파일을 4회에 나누어 전송한다고 가정하며, 제1 임베디드 시스템(10)은 S150에서 이미 저장되어 있는 패치 파일의 인덱스가 존재하지 않을 경우, 패치 파일의 시작을 검출해 낼 수 있다.In the embodiment of FIG. 1 , it is assumed that the patch server 50 divides the patch file into four times and transmits the patch file. can detect the start of

또한, 제1 임베디드 시스템(10)은 전체 파일의 크기와 현재까지 수신된 패치 파일의 인덱스를 기초로 패치 파일이 모두 수신되었는지 판단할 수 있다. 예컨대, 전체 파일의 크기가 100MByte이며, 현재까지 수신된 패치 파일의 인덱스가 지시하는 용량이 50MByte 인 경우, 제1 임베디드 시스템(10)은 패치 파일이 모두 수신되지 않았다고 판단할 수 있다.In addition, the first embedded system 10 may determine whether all patch files have been received based on the size of all files and the indexes of patch files received so far. For example, if the size of the entire file is 100 MByte and the capacity indicated by the index of patch files received so far is 50 MByte, the first embedded system 10 may determine that all patch files have not been received.

제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)은 패치 서버(50)가 제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)이 가입한 멀티캐스트 채널로 전송하는 두번째, 세번째, 그리고 네번째 패치 스트림을 수신할 수 있다(S152, S154, S156).The first embedded system 10 and the second embedded system 20 are transmitted by the patch server 50 through the multicast channel to which the first embedded system 10 and the second embedded system 20 subscribe. And a fourth patch stream can be received (S152, S154, S156).

제1 임베디드 시스템(10)은 S152, S154 및 S156 단계에서 S150 단계와 동일한 동작에 의해 패치 스트림(100)에 포함된 패치 파일을 저장할 수 있다.The first embedded system 10 may store patch files included in the patch stream 100 through the same operation as in step S150 in steps S152, S154, and S156.

S156 단계에서 제1 임베디드 시스템(10)은 전체 파일의 크기와 현재까지 수신된 패치 파일의 인덱스를 기초로 패치 파일이 모두 수신되었는지 판단하며, 4회의 패치 파일 수신이 완료되었으므로 패치 파일의 마지막을 검출할 수 있다.In step S156, the first embedded system 10 determines whether all patch files have been received based on the size of the entire file and the index of the patch files received so far, and detects the end of the patch files since four patch files have been received. can do.

패치 파일이 모두 수신되었다고 판단되면, 제1 임베디드 시스템(10)은 해당 패치 파일을 적용할 수 있다(S160).If it is determined that all patch files have been received, the first embedded system 10 can apply the corresponding patch files (S160).

도 3을 참조하면, 제1 임베디드 시스템(10)은 패치 파일을 비휘발성 메모리인 플래시 메모리(200)에 저장하며, 수신이 완료된 패치 파일은 패치 모듈(400)을 구성하게 된다. 패치 파일은 별도의 실행 과정을 통해 패치 모듈(400)로 동작할 수 있으나, 본 발명의 범위는 이에 한정되지 않는다.Referring to FIG. 3 , the first embedded system 10 stores patch files in the flash memory 200, which is a non-volatile memory, and the received patch files configure the patch module 400. The patch file may operate as the patch module 400 through a separate execution process, but the scope of the present invention is not limited thereto.

패치 모듈(400)은 제1 임베디드 시스템(10)과의 연동을 통해 패치가 필요한 영역의 주소(논리 주소 또는 물리 주소)를 획득하여 패치 동작을 수행할 수 있다.The patch module 400 may obtain an address (logical address or physical address) of an area requiring a patch through interworking with the first embedded system 10 to perform a patch operation.

플래시 메모리(200)는 패치 파일 이외에 제1 임베디드 시스템(10)의 이미지(image)인 네트워크 운영체제(Network Operating System, 300)를 포함할 수 있다. 즉, 플래시 메모리(200)는 제1 임베디드 시스템(10)이 동작하는 상위 시스템의 구성이며, 제1 임베디드 시스템(10)은 플래시 메모리(200)에 이미지 형태인 NOS(300)로 저장되어 있다가, 시동과 동시에 램 디스크(RAM Disk, 600)를 생성한 뒤, 램 디스크(600) 상에 운영 체제와 응용 프로그램들이 구성되고 구동되는 시스템이다. The flash memory 200 may include a network operating system 300, which is an image of the first embedded system 10, in addition to a patch file. That is, the flash memory 200 is a component of the upper system in which the first embedded system 10 operates, and the first embedded system 10 is stored in the flash memory 200 as the NOS 300 in the form of an image. , After creating a RAM disk (RAM Disk, 600) at the same time as booting, it is a system in which an operating system and application programs are configured and driven on the RAM disk (600).

또한, 제1 임베디드 시스템(10)은 커널(kernel, 500)을 통해 상기 상위 시스템의 하드웨어(예컨대, 200)에 액세스(access)할 수 있다. 상기 설명된 제1 임베디드 시스템(10)이 패치 파일을 플래시 메모리(200)에 저장하는 동작 역시 커널(500)을 통해 수행될 수 있다.In addition, the first embedded system 10 may access hardware (eg, 200) of the upper system through a kernel 500. An operation of storing the patch file in the flash memory 200 by the first embedded system 10 described above may also be performed through the kernel 500 .

패치 모듈(400)은 커널(500)을 통해 상기 상위 시스템의 하드웨어(예컨대, 200)에 액세스함으로써, 제1 임베디드 시스템(10)의 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트(pin-point) 방식으로 수정할 수 있다.The patch module 400 pin-points the code area or data area of a specific program of the first embedded system 10 by accessing the hardware (eg, 200) of the upper system through the kernel 500. way can be modified.

또한, 패치 모듈(400)은 램디스크(600) 상에서 실행 중인 운영체제 또는 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트 방식으로 수정할 수 있다.In addition, the patch module 400 may modify a code area or data area of an operating system or a specific program running on the RAM disk 600 in a pinpoint manner.

이처럼, 패치 모듈(400)이 커널(500) 및 램디스크(600)가 정상적으로 동작하는 도중 핀포인트 방식으로 재부팅 없이 해당 코드를 즉시 수정 및 적용하는 것을 런타임 패치(runtime patch)라 한다.As such, when the patch module 400 immediately corrects and applies the corresponding code without rebooting in a pinpoint manner while the kernel 500 and the RAM disk 600 are normally operating, it is called a runtime patch.

런타임 패치를 위해, 패치 모듈(400)은 코드 수정의 대상인 영역이 액세스되고 있는지 모니터링(monitoring)할 수 있고, 모니터링 결과 해당 영역이 액세스되지 않고 패치 진행 도중 액세스될 가능성이 없을 경우에만 코드 수정을 진행할 수 있다.For runtime patching, the patch module 400 may monitor whether a region subject to code modification is being accessed, and as a result of the monitoring, the code modification is performed only when the corresponding region is not accessed and there is no possibility of access during the patching process. can

도 4에서, 패치 모듈(400)이 실행되면, 패치 모듈(400)은 제1 임베디드 시스템(10)으로부터 패치가 필요한 영역에 대한 메모리 주소(0x100002fc ~ 0x10000318)를 획득하며, 메모리 주소(0x100002fc ~ 0x10000318)에 대해 핀포인트 방식으로 수정함으로써 런타임 패치를 진행할 수 있다. 상기 핀포인트 방식은 패치가 필요한 영역에만 이레이즈(erase) 및 프로그램(program) 동작을 수행하여 해당 영역의 코드를 교체하는 방식을 의미한다.In FIG. 4 , when the patch module 400 is executed, the patch module 400 acquires memory addresses (0x100002fc to 0x10000318) for areas requiring patches from the first embedded system 10, and obtains memory addresses (0x100002fc to 0x10000318). ), it is possible to proceed with runtime patching by modifying in a pinpoint manner. The pinpoint method refers to a method of replacing a code in a corresponding area by performing an erase and program operation only in an area requiring a patch.

예컨대, 런타임 패치에 의해 메모리 주소(0x10000310)에 저장된 코드는 “38 0a 00 01”에서 “11 0a 00 a0”으로 교체될 수 있다. For example, the code stored at the memory address (0x10000310) by the runtime patch may be replaced with “11 0a 00 a0” from “38 0a 00 01”.

해당 영역의 코드 수정이 완료되면, 제1 임베디드 시스템(10)은 수정된 영역을 실행할 수 있는 파일로 변경하는 빌드(build) 동작을 수행할 수 있다. 제1 임베디드 시스템(10)은 빌드된 파일을 실행하여 정상적으로 동작하는지 검증할 수 있으며, 검증 결과 정상 동작이 확인되면 S160 단계를 완료할 수 있다.When the code modification of the corresponding area is completed, the first embedded system 10 may perform a build operation to change the modified area into an executable file. The first embedded system 10 may execute the built file to verify normal operation, and if normal operation is confirmed as a result of the verification, step S160 may be completed.

그러나, 검증 결과 정상적으로 동작되지 않을 경우, 제1 임베디드 시스템(10)은 패치 서버(50)로 해당 패치 파일을 다시 요청할 수 있으며, 해당 영역에 대한 패치 스트림 재수신 및 패치 적용 단계를 다시 수행할 수 있다.However, if it does not operate normally as a result of the verification, the first embedded system 10 may request the corresponding patch file from the patch server 50 again, and re-receive the patch stream and apply the patch to the corresponding area again. there is.

기존의 임베디드 시스템의 업데이트 방식은 이미지 형태의 NOS(300)를 수정 또는 교체하여 재부팅이 필수적이었으므로 서비스 제공이 중단될 수 밖에 없었다.In the existing update method of the embedded system, the NOS 300 in the form of an image was modified or replaced and rebooting was essential, so the provision of the service had to be stopped.

그러나, 본 발명의 일 실시예에 따른 임베디드 시스템의 업데이트 방법에 의하면, 핀포인트 방식으로 패치를 진행함으로써 소프트웨어 전체를 교체할 필요 또는 재부팅할 필요 없이도 시스템 업데이트가 가능하다.However, according to the update method of an embedded system according to an embodiment of the present invention, system update is possible without the need to replace or reboot the entire software by patching in a pinpoint method.

또한, 전체 시스템을 업데이트하는데 소요되는 시간을 단축할 수 있으며, NOS(300)를 수정하는데 따르는 위험을 줄일 수 있다.In addition, the time required to update the entire system can be reduced, and the risk of modifying the NOS 300 can be reduced.

아울러, 패치 적용 실패시에도 전체 시스템을 다시 업데이트 하지 않고 해당 영역에 대한 패치를 집중적으로 다시 시도할 수 있다.In addition, even if the patch application fails, the patch for the corresponding area can be intensively retried without updating the entire system again.

패치 적용 완료 후, 제1 임베디드 시스템(10)은 채널 리브 메시지(channel leave message)를 스위치A(30)와 스위치B(40)를 통해 전송할 수 있다(S170). 상기 채널 리브 메시지는 패치 스트림 수신을 위한 멀티캐스트 채널에 대한 해지를 요청하는 메시지이다. After the application of the patch is completed, the first embedded system 10 may transmit a channel leave message through switch A 30 and switch B 40 (S170). The channel leave message is a message requesting cancellation of a multicast channel for receiving a patch stream.

상기 채널 리브 메시지를 수신한 패치 서버(50)는 제1 임베디드 시스템(10)에 대한 멀티캐스트 채널을 해지하며, 패치 스트림을 제2 임베디드 시스템(20)으로 전송할 수 있다(S180).Upon receiving the channel live message, the patch server 50 may cancel the multicast channel for the first embedded system 10 and transmit the patch stream to the second embedded system 20 (S180).

본 발명의 일 실시예에 따른 임베디드 시스템의 업데이트 방법에 의하면, 패치 서버가 멀티캐스트 채널을 운영하여 패치 스트림을 전송함으로써 동시에 여러 임베디드 시스템들에 대한 패치가 가능하다. According to the update method of an embedded system according to an embodiment of the present invention, a patch server operates a multicast channel and transmits a patch stream, so that multiple embedded systems can be patched at the same time.

또한, 시스템 관리자의 개입없이 자동적으로 패치가 진행되어 신속한 시스템 업그레이드와 함께 시스템 관리자의 편의성이 높아질 수 있다.In addition, patching is performed automatically without intervention of the system manager, so that the convenience of the system manager can be increased along with rapid system upgrade.

도 5는 본 발명의 다른 실시예에 따른 임베디드 시스템의 업데이트 방법을 나타낸 흐름도이다.5 is a flowchart illustrating an update method of an embedded system according to another embodiment of the present invention.

도 1 및 도 5를 참조하면, 패치 서버(50)가 어떠한 이유(예컨대, 서버 자체 점검 또는 오류, 통신 상의 장애 등)로 쿼리 메시지 및 패치 스트림 등의 데이터의 전송이 불가능한 상태라 가정한다.Referring to FIGS. 1 and 5 , it is assumed that the patch server 50 is unable to transmit data such as query messages and patch streams for some reason (eg, server self-check or error, communication failure, etc.).

제1 임베디드 시스템(10)은 채널 조인 메시지를 스위치A(30)와 스위치B(40)를 통해 패치 서버(50)로 전송할 수 있다(S210). 그러나, 패치 서버(50)는 데이터 전송이 불가한 상태이므로, 스위치B(40)는 쿼리 메시지를 수신하지 못한다.The first embedded system 10 may transmit the channel join message to the patch server 50 through the switch A 30 and the switch B 40 (S210). However, since the patch server 50 cannot transmit data, the switch B 40 does not receive the query message.

스위치B(40)는 시스템과 패치 버전 별 패치 파일을 일부 저장할 수 있다. 즉, 스위치(B(40)는 패치 서버(50)의 제어에 따라 상기 패치 파일을 저장할 수 있거나, 패치 스트림을 패치 서버(50)와 스위치A(30) 사이에서 전달하는 과정에서 스스로의 판단에 의해 저장할 수도 있다.The switch B 40 may store some patch files for each system and patch version. That is, the switch (B) 40 may store the patch file under the control of the patch server 50 or, in the process of transferring the patch stream between the patch server 50 and the switch A 30, switch B 40 may use its own judgment. can also be saved by

스위치B(40)는 상기 채널 조인 메시지에 포함되는 제1 임베디드 시스템(10)의 시스템 식별 정보 및 패치 버전 정보를 확인하여, 시스템 식별 정보에 따른 시스템에 대해 패치 버전 정보에 따른 현재 버전 이후의 최신 버전의 패치를 저장하고 있는지 판단할 수 있다.The switch B 40 checks the system identification information and patch version information of the first embedded system 10 included in the channel join message, and for the system according to the system identification information, the latest version after the current version according to the patch version information. You can determine if you are saving the version of the patch.

또한, 스위치B(40)는 상기 채널 조인 메시지의 수신된 패치 스트림의 인덱스를 확인하여 제1 임베디드 시스템(10)이 필요한 패치를 저장하고 있는지 판단할 수 있다.In addition, the switch B 40 may determine whether the first embedded system 10 stores a necessary patch by checking the index of the patch stream received in the channel join message.

제1 임베디드 시스템(10)이 필요한 패치를 저장하고 있는 경우, 스위치B(40)는 자신의 주소 정보와 함께 패치 파일을 가지고 있다는 정보를 포함하는 쿼리 메시지를 생성하여 제1 임베디드 시스템(10)으로 전송하게 된다(S220).When the first embedded system 10 stores the required patch, the switch B 40 generates a query message including information indicating that it has the patch file along with its own address information, and sends it to the first embedded system 10. It is transmitted (S220).

제2 임베디드 시스템(20)은 채널 조인 메시지를 스위치A(30)와 스위치B(40)를 통해 패치 서버(50)로 전송할 수 있다(S230).The second embedded system 20 may transmit the channel join message to the patch server 50 through the switch A 30 and the switch B 40 (S230).

S220 단계와 동일하게, 스위치B(40)는 제1 임베디드 시스템(10)이 필요한 패치를 저장하고 있는 경우, 수신된 채널 조인 메시지를 기초로 쿼리 메시지를 생성하여 스위치A(30)를 통해 제2 임베디드 시스템(20)으로 전송할 수 있다(S240).Similarly to step S220, switch B 40 generates a query message based on the received channel join message when the first embedded system 10 stores a necessary patch, and sends the second embedded system 10 through switch A 30. It can be transmitted to the embedded system 20 (S240).

제1 임베디드 시스템(10)과 제2 임베디드 시스템(20)은 스위치B(40)로부터 첫번째 패치 스트림을 수신할 수 있다(S250).The first embedded system 10 and the second embedded system 20 may receive the first patch stream from the switch B 40 (S250).

이후의 단계들(S252~S280) 각각은 도 1의 S152~S180 단계들 각각과 실질적으로 동일하므로, 상세한 설명은 설명의 중복을 피하기 위해 생략하기로 한다.Since each of the subsequent steps (S252 to S280) is substantially the same as each of the steps S152 to S180 of FIG. 1, detailed descriptions will be omitted to avoid duplication of description.

본 발명의 다른 실시예에 따른 임베디드 시스템의 업데이트 방법에 의하면, 패치 서버의 장애시에도 다른 스위치에서 패치 스트림을 제공함으로써 정상적으로 패치를 완료할 수 있다.According to the method for updating an embedded system according to another embodiment of the present invention, patching can be normally completed by providing a patch stream from another switch even when a patch server fails.

상기와 같이 설명된 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래쉬 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다. The method described above can be implemented as computer readable codes on a computer readable recording medium. Computer-readable recording media includes all types of recording media in which data that can be decoded by a computer system is stored. For example, there may be read only memory (ROM), random access memory (RAM), magnetic tape, magnetic disk, flash memory, optical data storage device, and the like. In addition, the computer-readable recording medium may be distributed to computer systems connected through a computer communication network, and stored and executed as readable codes in a distributed manner.

또한, 상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.In addition, although the above has been described with reference to preferred embodiments of the present invention, those skilled in the art can make the present invention within the scope not departing from the spirit and scope of the present invention described in the claims below. It will be appreciated that various modifications and variations may be made.

Claims (18)

패치 스트림(patch stream) 전송을 위한 멀티캐스트 채널의 가입을 요청하는 채널 조인 메시지(channel join message)를 패치 서버로 전송하는 단계;
상기 멀티캐스트 채널을 통해 패치 스트림을 수신하여, 시스템 업데이트에 필요한 패치 파일을 저장하는 단계; 및
상기 저장된 패치 파일로부터 구성되는 패치 모듈에 의해, 재부팅(rebooting)없이 런타임 패치(runtime)를 수행하는 단계를 포함하고,
상기 런타임 패치를 수행하는 단계는,
상기 패치 모듈에 의해 실행 중인 운영체제 또는 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트(pin-point) 방식으로 수정하는 단계를 포함하고,
상기 핀포인트(pin-point) 방식으로 수정하는 단계는,
코드 수정의 대상인 해당 영역이 액세스되고 있는지 여부를 모니터링(monitoring)하고, 상기 모니터링의 결과에 기초하여 상기 해당 영역이 액세스되지 않고, 패치 진행 도중 액세스될 가능성이 없을 경우에만 상기 해당 영역에 대한 코드 수정을 진행하는 임베디드 시스템(embedded system)의 업데이트 방법.
Transmitting a channel join message requesting subscription to a multicast channel for transmitting a patch stream to a patch server;
receiving a patch stream through the multicast channel and storing a patch file required for system update; and
Performing a runtime patch without rebooting by a patch module configured from the stored patch file;
The step of performing the runtime patch,
Modifying a code area or data area of an operating system or a specific program being executed by the patch module in a pin-point manner;
The step of correcting by the pin-point method,
It monitors whether the corresponding area, which is the target of code modification, is being accessed, and based on the result of the monitoring, the code for the corresponding area is modified only when the corresponding area is not accessed and there is no possibility of access during the patching process. Update method of an embedded system that proceeds.
제1항에 있어서,
상기 멀티캐스트 채널은, 시스템과 패치 버전 별로 개설되는 임베디드 시스템의 업데이트 방법.
According to claim 1,
The method of updating an embedded system in which the multicast channel is established for each system and patch version.
제2항에 있어서,
상기 채널 조인 메시지는 상기 임베디드 시스템의 시스템 식별 정보 및 패치 버전 정보를 포함하고,
상기 멀티캐스트 채널은 상기 시스템 식별 정보에 따른 시스템에 대해 상기 패치 버전 정보에 따른 현재 버전 이후의 최신 버전의 패치에 대응하는 채널인 임베디드 시스템의 업데이트 방법.
According to claim 2,
The channel join message includes system identification information and patch version information of the embedded system,
The multicast channel is a channel corresponding to a patch of a latest version after the current version according to the patch version information for the system according to the system identification information.
제1항에 있어서,
상기 패치 스트림은,
패치가 설치될 수 있는 시스템 종류와 시스템 버전 호환 여부에 대한 패치 대상 시스템 정보, 상기 패치 파일의 버전 정보, 상기 패치 파일의 전체 크기 및 상기 패치 파일의 인덱스를 포함하는 임베디드 시스템의 업데이트 방법.
According to claim 1,
The patch stream,
A method for updating an embedded system, including information about a system type to which a patch can be installed and system versions to be patched, information about the version of the patch file, total size of the patch file, and an index of the patch file.
제4항에 있어서,
상기 패치 파일을 저장하는 단계는,
상기 패치 대상 시스템 정보로부터 상기 임베디드 시스템에 설치될 수 있는 패치 파일인지 판단하는 단계;
상기 임베디드 시스템에 설치될 수 있는 패치 파일인 경우, 상기 패치 파일의 버전 정보를 현재 상기 임베디드 시스템에 설치된 패치의 패치 버전 정보와 비교하여, 패치 설치 필요 여부를 판단하는 단계; 및
상기 수신된 패치 파일의 버전이 현재 상기 임베디드 시스템에 설치된 패치의 패치 버전보다 높은 버전일 경우, 상기 패치 파일의 인덱스를 기초로 이미 수신된 패치 파일인지 여부를 판단하는 단계를 포함하는 임베디드 시스템의 업데이트 방법.
According to claim 4,
The step of storing the patch file is,
determining whether the patch file can be installed in the embedded system from the patch target system information;
If the patch file can be installed in the embedded system, comparing version information of the patch file with patch version information of a patch currently installed in the embedded system, determining whether a patch needs to be installed; and
If the version of the received patch file is higher than the patch version of the patch currently installed in the embedded system, determining whether the patch file has already been received based on the index of the patch file. method.
삭제delete 제1항에 있어서,
상기 패치 서버의 동작 불능시, L3 스위치로부터 패치 스트림을 수신하여, 상기 패치 파일을 저장하는 단계를 더 포함하는 임베디드 시스템의 업데이트 방법.
According to claim 1,
The method of updating an embedded system further comprising receiving a patch stream from an L3 switch and storing the patch file when the patch server is inoperable.
임베디드 시스템의 시스템 식별 정보 및 패치 버전 정보를 포함하고, 패치 스트림(patch stream) 전송을 위한 멀티캐스트 채널의 가입을 요청하는 채널 조인 메시지(channel join message)를 수신하는 단계;
상기 시스템 식별 정보에 따른 시스템에 대해 상기 패치 버전 정보에 따른 현재 버전 이후의 최신 버전의 패치에 대응하는 멀티캐스트 채널을 상기 임베디드 시스템에 할당하는 단계; 및
재부팅(rebooting)없이 런타임 패치(runtime)를 수행할 수 있도록, 상기 멀티캐스트 채널을 통해 패치 스트림을 상기 임베디드 시스템에 전송하는 단계를 포함하고,
상기 임베디드 시스템은,
전송된 상기 런타임 패치를 수행하도록 패치 모듈에 의해 실행 중인 운영체제 또는 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트(pin-point) 방식으로 수정하고,
코드 수정의 대상인 해당 영역이 액세스되고 있는지 여부를 모니터링(monitoring)하고, 상기 모니터링의 결과에 기초하여 상기 해당 영역이 액세스되지 않고, 패치 진행 도중 액세스될 가능성이 없을 경우에만 상기 해당 영역에 대한 코드 수정을 진행하는 임베디드 시스템(embedded system)의 업데이트 방법.
Receiving a channel join message including system identification information and patch version information of an embedded system and requesting subscription to a multicast channel for transmitting a patch stream;
allocating to the embedded system a multicast channel corresponding to a patch of a latest version after the current version according to the patch version information for the system according to the system identification information; and
Transmitting a patch stream to the embedded system through the multicast channel so that runtime patching can be performed without rebooting;
The embedded system,
Modifying a code area or data area of an operating system or a specific program being executed by a patch module in a pin-point manner to perform the transmitted runtime patch;
It monitors whether the corresponding area, which is the target of code modification, is being accessed, and based on the result of the monitoring, the code for the corresponding area is modified only when the corresponding area is not accessed and there is no possibility of access during the patching process. Update method of an embedded system that proceeds.
제8항에 있어서,
상기 멀티캐스트 채널은, 시스템과 패치 버전 별로 개설되는 임베디드 시스템의 업데이트 방법.
According to claim 8,
The method of updating an embedded system in which the multicast channel is established for each system and patch version.
제8항에 있어서,
상기 패치 스트림은,
패치가 설치될 수 있는 시스템 종류와 시스템 버전 호환 여부에 대한 패치 대상 시스템 정보, 패치 파일의 버전 정보, 패치 파일의 전체 크기 및 패치 파일의 인덱스를 포함하는 임베디드 시스템의 업데이트 방법.
According to claim 8,
The patch stream,
The update method of the embedded system, which includes information about the type of system on which the patch can be installed and system version compatibility, the version information of the patch file, the total size of the patch file, and the index of the patch file.
패치 스트림(patch stream) 전송을 위한 멀티캐스트 채널의 가입을 요청하는 채널 조인 메시지(channel join message)를 패치 서버로 전송하고, 상기 멀티캐스트 채널을 통해 패치 스트림을 수신하여, 시스템 업데이트에 필요한 패치 파일을 저장하고, 상기 저장된 패치 파일로부터 구성되는 패치 모듈에 의해, 재부팅(rebooting)없이 런타임 패치(runtime)를 수행하고,
상기 런타임 패치는,
상기 패치 모듈에 의해 실행 중인 운영체제 또는 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트(pin-point) 방식으로 수정하되,
코드 수정의 대상인 해당 영역이 액세스되고 있는지 여부를 모니터링(monitoring)하고,
상기 모니터링의 결과에 기초하여 상기 해당 영역이 액세스되지 않고, 패치 진행 도중 액세스될 가능성이 없을 경우에만, 상기 해당 영역에 대한 코드 수정을 진행하는 임베디드 시스템(embedded system).
A patch file necessary for system update is transmitted by sending a channel join message requesting subscription to a multicast channel for transmitting a patch stream to a patch server and receiving a patch stream through the multicast channel. is stored, and a runtime patch is performed without rebooting by a patch module configured from the stored patch file,
The runtime patch,
The code area or data area of an operating system or a specific program being executed by the patch module is modified in a pin-point manner,
monitoring whether the area subject to code modification is being accessed;
Based on the result of the monitoring, the embedded system proceeds with code modification for the corresponding region only when the corresponding region is not accessed and there is no possibility of access during patching.
제11항에 있어서,
상기 멀티캐스트 채널은, 시스템과 패치 버전 별로 개설되는 임베디드 시스템.
According to claim 11,
The multicast channel is established for each system and patch version.
제12항에 있어서,
상기 채널 조인 메시지는 상기 임베디드 시스템의 시스템 식별 정보 및 패치 버전 정보를 포함하고,
상기 멀티캐스트 채널은 상기 시스템 식별 정보에 따른 시스템에 대해 상기 패치 버전 정보에 따른 현재 버전 이후의 최신 버전의 패치에 대응하는 채널인 임베디드 시스템.
According to claim 12,
The channel join message includes system identification information and patch version information of the embedded system,
The multicast channel is a channel corresponding to a patch of a latest version after the current version according to the patch version information for the system according to the system identification information.
제11항에 있어서,
상기 패치 스트림은,
패치가 설치될 수 있는 시스템 종류와 시스템 버전 호환 여부에 대한 패치 대상 시스템 정보, 상기 패치 파일의 버전 정보, 상기 패치 파일의 전체 크기 및 상기 패치 파일의 인덱스를 포함하는 임베디드 시스템.
According to claim 11,
The patch stream,
An embedded system including patch target system information on the type of system to which the patch can be installed and whether the system version is compatible, version information of the patch file, total size of the patch file, and an index of the patch file.
제14항에 있어서,
상기 패치 대상 시스템 정보로부터 상기 임베디드 시스템에 설치될 수 있는 패치 파일인지 판단하고,
상기 임베디드 시스템에 설치될 수 있는 패치 파일인 경우, 상기 패치 파일의 버전 정보를 현재 상기 임베디드 시스템에 설치된 패치의 패치 버전 정보와 비교하여, 패치 설치 필요 여부를 판단하고,
상기 수신된 패치 파일의 버전이 현재 상기 임베디드 시스템에 설치된 패치의 패치 버전보다 높은 버전일 경우, 상기 패치 파일의 인덱스를 기초로 이미 수신된 패치 파일인지 여부를 판단하는 임베디드 시스템.
According to claim 14,
Determining whether the patch file can be installed in the embedded system from the patch target system information;
In the case of a patch file that can be installed in the embedded system, version information of the patch file is compared with patch version information of a patch currently installed in the embedded system to determine whether the patch needs to be installed;
If the version of the received patch file is higher than the version of the patch currently installed in the embedded system, the embedded system determines whether the patch file has already been received based on the index of the patch file.
제11항에 있어서,
상기 패치 모듈에 의해 실행 중인 운영체제 또는 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트(pin-point) 방식으로 수정하는 임베디드 시스템.
According to claim 11,
An embedded system that modifies a code area or data area of an operating system or a specific program being executed by the patch module in a pin-point manner.
제11항에 있어서,
상기 패치 서버의 동작 불능시, L3 스위치로부터 패치 스트림을 수신하여, 상기 패치 파일을 저장하는 임베디드 시스템.
According to claim 11,
An embedded system configured to receive a patch stream from an L3 switch and store the patch file when the patch server is inoperable.
임베디드 시스템의 시스템 식별 정보 및 패치 버전 정보를 포함하고, 패치 스트림(patch stream) 전송을 위한 멀티캐스트 채널의 가입을 요청하는 채널 조인 메시지(channel join message)를 수신하고, 상기 시스템 식별 정보에 따른 시스템에 대해 상기 패치 버전 정보에 따른 현재 버전 이후의 최신 버전의 패치에 대응하는 멀티캐스트 채널을 상기 임베디드 시스템에 할당하고, 재부팅(rebooting)없이 런타임 패치(runtime)를 수행할 수 있도록, 상기 멀티캐스트 채널을 통해 패치 스트림을 상기 임베디드 시스템에 전송하고,
상기 임베디드 시스템은,
전송된 상기 런타임 패치를 수행하도록 패치 모듈에 의해 실행 중인 운영체제 또는 특정 프로그램의 코드 영역 또는 데이터 영역을 핀포인트(pin-point) 방식으로 수정하고,
코드 수정의 대상인 해당 영역이 액세스되고 있는지 여부를 모니터링(monitoring)하고, 상기 모니터링의 결과에 기초하여 상기 해당 영역이 액세스되지 않고, 패치 진행 도중 액세스될 가능성이 없을 경우에만 상기 해당 영역에 대한 코드 수정을 진행하는 패치 서버.
A system that includes system identification information and patch version information of an embedded system, receives a channel join message requesting subscription to a multicast channel for transmitting a patch stream, and receives a system according to the system identification information , a multicast channel corresponding to a patch of the latest version after the current version according to the patch version information is allocated to the embedded system, and a runtime patch is performed without rebooting. Sending a patch stream to the embedded system through,
The embedded system,
Modifying a code area or data area of an operating system or a specific program being executed by a patch module in a pin-point manner to perform the transmitted runtime patch;
It monitors whether the corresponding area, which is the target of code modification, is being accessed, and based on the result of the monitoring, the code for the corresponding area is modified only when the corresponding area is not accessed and there is no possibility of access during the patching process. The patch server that runs the .
KR1020160049477A 2016-04-22 2016-04-22 Embedded system, patch server, and method for updating the embedded system KR102517251B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160049477A KR102517251B1 (en) 2016-04-22 2016-04-22 Embedded system, patch server, and method for updating the embedded system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160049477A KR102517251B1 (en) 2016-04-22 2016-04-22 Embedded system, patch server, and method for updating the embedded system

Publications (2)

Publication Number Publication Date
KR20170120922A KR20170120922A (en) 2017-11-01
KR102517251B1 true KR102517251B1 (en) 2023-04-03

Family

ID=60382912

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160049477A KR102517251B1 (en) 2016-04-22 2016-04-22 Embedded system, patch server, and method for updating the embedded system

Country Status (1)

Country Link
KR (1) KR102517251B1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100598074B1 (en) * 2004-10-19 2006-07-10 한국전자통신연구원 Method of transmitting broadcast streaming data in ip based broadcasting service system
KR20080037450A (en) * 2006-10-26 2008-04-30 웹싱크 주식회사 System and method for processing update software run on mobile terminal platform
KR20120015681A (en) * 2010-08-12 2012-02-22 (주)네오위즈게임즈 Method, server, recording medium and terminal for file patch
US9152410B2 (en) * 2012-06-21 2015-10-06 Vaibhav KHANDELWAL Auto-update while running client interface with handshake

Also Published As

Publication number Publication date
KR20170120922A (en) 2017-11-01

Similar Documents

Publication Publication Date Title
US10466999B2 (en) Software hot upgrading method and device
US10628205B2 (en) Virtual machine placement with automatic deployment error recovery
US11243792B2 (en) Image file conversion method and apparatus
TWI579769B (en) Virtual machine migration tool
US8245217B2 (en) Management of software and operating system updates required for the process of creating a virtual machine facsimile of an existing physical or virtual machine
US10462250B2 (en) Distributed caching cluster client configuration
US20180307569A1 (en) Data retracement method, apparatus, and system
US11231919B2 (en) Live updates of stateful components
US8635425B1 (en) Upgrading computing devices
US20200117478A1 (en) Method, apparatus, and computer program product for managing service container
US10409999B2 (en) Communication between key manager and storage subsystem kernel via management console
US20200150950A1 (en) Upgrade managers for differential upgrade of distributed computing systems
JPWO2017145272A1 (en) Data migration method and computer system
US20220413968A1 (en) Devices and methods for fast backup
US11295018B1 (en) File system modification
KR102517251B1 (en) Embedded system, patch server, and method for updating the embedded system
EP3647953B1 (en) System and method for data backup in mixed disk environment
US10972343B2 (en) System and method for device configuration update
US10635544B1 (en) Assigning VMware local proxy host-datastore groups for consistently optimized access
US9270530B1 (en) Managing imaging of multiple computing devices
US10848405B2 (en) Reporting progress of operation executing on unreachable host
US11853560B2 (en) Conditional role decision based on source environments
US11704071B1 (en) Delegating low priority tasks to a passive storage controller
US20240104114A1 (en) Techniques for upgrading and accessing metadata
US8065737B1 (en) Virus scanning for block-level distributed application management

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant