KR20050028245A - Method and system of remote updating of the embedded software on the devices, working under linux operating system control - Google Patents

Method and system of remote updating of the embedded software on the devices, working under linux operating system control Download PDF

Info

Publication number
KR20050028245A
KR20050028245A KR1020030064862A KR20030064862A KR20050028245A KR 20050028245 A KR20050028245 A KR 20050028245A KR 1020030064862 A KR1020030064862 A KR 1020030064862A KR 20030064862 A KR20030064862 A KR 20030064862A KR 20050028245 A KR20050028245 A KR 20050028245A
Authority
KR
South Korea
Prior art keywords
update
software
file
update process
value
Prior art date
Application number
KR1020030064862A
Other languages
Korean (ko)
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 KR1020030064862A priority Critical patent/KR20050028245A/en
Publication of KR20050028245A publication Critical patent/KR20050028245A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • 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
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation

Landscapes

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

Abstract

A method for remotely updating embedded software loaded on a device using a Linux system from other device is provided to reliably update the embedded software in a remote place, and return to the past software in case that an update process is failed in an embedded system or an error is generated in the embedded system. A user side of the second device connects to an initial update web page offered from a web server of the device by using a web browser(S601). It is checked that the new software is present in an update server(S602). In the case that the new software is present, the update process for the corresponding software is advanced(S608). The final test for the newly updated software is performed(S610). In the case that the update is judged as successful based on a test result, new files of the updated software are copied to a spare folder and success of the update process is displayed on the web page(S615). In the case that the update is unsuccessful, the system is returned to the past system and failure of the update process is displayed(S620).

Description

리눅스 시스템을 사용하는 디바이스의 엠베디드 소프트웨어를 원격으로 업데이트하는 방법{Method And System of Remote Updating of the Embedded Software on the Devices, Working under Linux Operating System Control}Method and System of Remote Updating of the Embedded Software on the Devices, Working under Linux Operating System Control}

본 발명은 OS를 기반으로 동작하는 소프트웨어를 업데이트하는 방법에 관한 것으로, 보다 상세하게는 리눅스 시스템을 이용하는 디바이스에 탑재된 엠베디드 소프트웨어(embedded software)를 다른 디바이스에서 원격으로 업데이트할 수 있는 방법에 관한 것이다.The present invention relates to a method for updating software operating based on an OS, and more particularly, to a method for remotely updating embedded software embedded in a device using a Linux system from another device. will be.

근래에 많은 디바이스들은 인터넷에 의하여 원격으로 제어될 수 있도록 내부에 웹서버를 탑재하여 제작되고 있다. 상기 웹 서버가 인터넷 산업 표준을 따르는 경우에는 사용자는 임의의 브라우저를 통하여 그 디바이스의 내부에 접근할 수가 있다.In recent years, many devices have been manufactured with a web server installed therein so that they can be remotely controlled by the Internet. If the web server complies with Internet industry standards, the user can access the interior of the device through any browser.

제조자는 원격으로 네트워크 세팅 및 기타의 디바이스 세팅을 변경할 수 있도록 설계하여야 한다. 이를 위한 진보한 방법 중의 하나는 대상 디바이스의 시스템과 어플리케이션 소프트웨어를 원격으로 업데이트하는 방법으로서, 이를 이용하면 사용자와 제조자 모두에게 편리함을 제공할 수 있다.Manufacturers should design so that they can change network settings and other device settings remotely. One of the advanced ways to do this is to remotely update the system and application software of the target device, which can provide convenience for both users and manufacturers.

그러나 엠베디드 소프트웨어를 탑제한 디바이스에 대하여는, 이러한 구동 시스템(Operating System)과 어플리케이션 소프트웨어를 업데이트 하고, 업데이트 실패시에는 다시 구 버전으로 돌아가는 방법, 그리고 업데이트는 완료되었으나 업데이트 과정상의 오류로 시스템이 제대로 동작하지 않는 경우에 대한 대책 등이 나와있지 않다. 따라서 엠베디드 소프트웨어 분야에 있어서 상기한 문제에 대한 해결책을 강구할 필요가 있다.However, for devices with embedded software, the operating system and application software can be updated, and if the update fails, the method will return to the old version and if the update is completed, the system will operate properly due to an error in the update process. There are no countermeasures for not doing so. Therefore, there is a need to find a solution to the above problem in the field of embedded software.

본 발명은 상기한 문제점을 고려하여 창안된 것으로, 임의의 엠베디드 소프트웨어를 원격으로 업데이트할 수 있는 신뢰성 있는 방법을 제공하는 것을 목적으로 있다. The present invention was devised in view of the above problems, and an object thereof is to provide a reliable method for remotely updating any embedded software.

또한 본 발명은 엠베디드 시스템에서 업데이트 과정이 실패하거나 시스템에 이상이 생긴 경우에 과거의 소프트웨어로 돌아갈 수 있는 방법을 제공하는 것을 목적으로 한다.It is another object of the present invention to provide a method for returning to the past software when the update process fails or an error occurs in the embedded system.

상기한 목적을 달성하기 위하여, 본 발명에 따른 엠베디드 소프트웨어를 내장한 제1 디바이스의 소프트웨어를 상기 제1 디바이스와 인터넷으로 연결된 제2 디바이스에서 원격으로 업데이트하는 방법은, 상기 제2 디바이스의 사용자측에서 웹브라우저를 이용하여 상기 디바이스의 웹 서버가 제공하는 초기 업데이트 웹 페이지에 접속하는 제1단계; 업데이트 서버에 새로운 소프트웨어가 존재하는 지를 체크하는 제2단계; 상기 체크한 결과 새로운 소프트웨어가 존재하는 경우에 해당 소프트웨어에 대한 업데이트 과정을 진행하는 제3단계; 상기 새로 업데이트된 소프트웨어에 대한 최종 테스트를 수행하는 제4단계; 및 상기 테스트 결과, 업데이트가 성공적으로 된 경우에는 상기 업데이트 된 소프트웨어의 새로운 파일들을 예비 폴더에 복사하고 웹 페이지에 업데이트 과정이 성공적이었음을 표시하는 제5단계, 및 상기 테스트 결과, 업데이트가 성공적으로 되지 않은 경우에는 기존의 시스템으로 돌아가고 웹 페이지에 업데이트 과정이 실패하였음을 표시하는 제6단계를 포함하는 것을 특징으로 한다.In order to achieve the above object, the method of remotely updating the software of the first device embedded with embedded software according to the present invention from the second device connected to the first device and the Internet, at the user side of the second device A first step of accessing an initial update web page provided by a web server of the device using a web browser; A second step of checking whether new software exists in the update server; A third step of performing an update process for the corresponding software when the new software exists as a result of the checking; A fourth step of performing a final test on the newly updated software; And the fifth step of copying new files of the updated software to a spare folder if the update is successful, and indicating that the update process was successful on the web page, and the test result, the update is not successful. If not, the method returns to the existing system and includes a sixth step indicating that the update process has failed on the web page.

상기한 목적을 달성하기 위하여, 상기 제2단계는 상기 업데이트 서버측의 데이터베이스 파일을 다운로드하여 상기 제1 디바이스측의 데이터베이스 파일과 비교함으로서 이루어지는 것이 바람직하다.In order to achieve the above object, the second step is preferably performed by downloading the database file on the update server side and comparing it with the database file on the first device side.

또한, 상기 제3단계는 상기 업데이트 서버로부터 새로운 파일을 다운받아 압축을 해제하고 이를 표준 폴더에 복사하는 단계; 소정의 파일의 값을 업데이트 과정이 시작된다는 의미를 갖는 값으로 세팅하는 단계; 및 상기 표준 폴더에 복사한 새로운 파일을 이용하여 새로운 모듈을 재로드하고, 새로운 데몬 및 어플리케이션을 재시작하여 업데이트를 수행하는 단계를 포함하는 것이 바람직하다.The third step may include downloading a new file from the update server, decompressing the file, and copying it to a standard folder; Setting a value of a predetermined file to a value meaning that an update process is started; And reloading a new module using the new file copied to the standard folder, restarting the new daemon and the application, and performing an update.

그리고, 상기 제5단계는 상기 새로운 파일들을 예비 폴더에 복사하는 단계; 소정의 파일의 값을 업데이트 과정이 종료되었다는 의미를 갖는 값으로 세팅하는 단계; 상기 단계들을 수행하는 동안 생성된 필요 없는 임시 파일들을 삭제하는 단계; 및 웹 페이지에 업데이트 과정이 성공적이었음을 사용자에게 표시해 주는 단계를 포함하는 것이 바람직하다.The fifth step may include copying the new files to a spare folder; Setting a value of a predetermined file to a value meaning that the update process is finished; Deleting unnecessary temporary files created while performing the steps; And indicating to the user that the update process was successful on the web page.

그리고, 상기 제6단계는, 예비 폴더에 저장되어 있는 기존의 파일들을 표준 폴더로 복사하는 단계; 상기 표준 폴더에 복사된 파일을 이용하여 새로운 모듈을 재로드하고, 새로운 데몬 및 어플리케이션을 재시작함으로써 기존의 시스템으로 rollback 하는 단계; 소정의 파일의 값을 업데이트 과정이 종료되었다는 의미를 갖는 값으로 세팅하는 단계; 및 웹 페이지에 업데이트 과정이 실패하였음을 사용자에게 표시해 주는 단계를 포함하는 것이 바람직하다.The sixth step may include copying existing files stored in the spare folder into a standard folder; Reloading a new module using the file copied to the standard folder, and rolling back to an existing system by restarting a new daemon and application; Setting a value of a predetermined file to a value meaning that the update process is finished; And indicating to the user that the update process has failed on the web page.

또한, 상기 단계들 중 어느 하나의 단계를 수행한 후에 시스템 크러쉬가 발생한 경우에는, 상기 크러쉬가 발생한 단계 이후에 제2 디바이스의 시스템을 수동으로 재시작하는 단계; 업데이트 과정이 종료되었는지 여부를 알려주는 소정의 파일의 값을 체크하는 단계; 상기 파일의 값이 업데이트 과정이 종료되었음을 나타내는 값이면 나머지 부팅과정을 수행하는 단계; 상기 파일의 값이 업데이트 과정이 종료되지 않았음을 나타내는 값이면 예비 폴더에 저장되어 있는 기존의 파일들을 표준 폴더로 복사하는 단계; 상기 파일의 값이 업데이트 과정이 종료되었음을 나타내는 값으로 세팅하는 단계; 및 그 이외의 나머지 부팅과정을 진행하는 단계를 더 포함하는 것이 바람직하다.In addition, if a system crash occurs after performing any one of the above steps, manually restarting the system of the second device after the crash occurs; Checking a value of a predetermined file indicating whether the update process is finished; If the value of the file is a value indicating that the update process is completed, performing the remaining booting process; Copying existing files stored in the spare folder to the standard folder if the value of the file indicates that the update process is not finished; Setting a value of the file to a value indicating that an update process is finished; And it is preferable to further include the step of proceeding to the other booting process.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 일 실시예를 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명이 동작하는 전체적 환경을 개략적으로 나타낸 블록도이다.1 is a block diagram schematically showing the overall environment in which the present invention operates.

본 발명은 제어 디바이스(300)측에서 웹 브라우저(310)라고 불리는 실행 모듈(executable modules)을 통하여 사용자가 명령을 전달함으로써 작동된다. 상기 제어 디바이스(300)는 엠베디드 소프트웨어를 내장한 대상 디바이스(target device; 200)를 원격으로 제어하기 위한 별도의 디바이스이다.The invention works by the user passing a command through executable modules called web browsers 310 on the control device 300 side. The control device 300 is a separate device for remotely controlling a target device 200 having embedded software.

웹 서버(210)에서는 동적 웹 페이지(dynamic web page)를 표현하기 위하여는 CGI, 또는 ASP를 이용한다. 이와 같이 표현되는 동적 웹 페이지는 도 4, 도 6, 및 도 7의 예에서 볼 수 있다. CGI, ASP 또는 기타 실행가능한 모듈들(executable modules)은 동적 웹 페이지를 통하여 호출하면 웹 서버 내에서 해당 함수들이 실행된다.The web server 210 uses CGI or ASP to represent a dynamic web page. The dynamic web page represented in this way can be seen in the examples of FIGS. 4, 6, and 7. When CGI, ASP or other executable modules are called through a dynamic web page, the functions are executed within the web server.

리눅스 구동 시스템(Linux Operating System; 220)은 다양한 종류의 엠베디드 디바이스의 OS로서 가장 많이 사용된다. 리눅스는 공개된 소스를 이용한 OS로서 무료로 구할 수 있어서 누구나 사용할 수 있고, 그 기능을 개선하기가 용이하기 때문이다. 이러한 리눅스는 패키지화 하여 배포되고 있는데, 그 예로는 Red Hat, Slackware, SuSE, Debian 등이 있다. The Linux operating system 220 is most commonly used as an OS of various kinds of embedded devices. Linux is an open source OS that is freely available for everyone to use and easy to improve. Linux is packaged and distributed, for example Red Hat, Slackware, SuSE, and Debian.

웹 서버(210)는 상기 리눅스 구동 시스템(220)을 기반으로 작동하는 별도의 소프트웨어이다. 본 실시예에서 이용하는 웹 서버(210)는, 엠베디드 웹 서버로 잘 알려져 있는 'GoAhead?Software'사의 'GoAhead WebServerTM'이용할 수 있다. 상기 웹 서버는 공개된 소스로 된 프로그램으로서 리눅스 시스템에서 동작하며, 인터넷 산업 표준을 따라 설계되었다. 따라서, 동적 웹 페이지를 구현하기 위한 ASP(Active Server Page), CGI(common gateway interface) 등을 지원한다. 상기 웹 서버(210)과 웹 브라우저(310) 간의 통신은 HTTP(Hypertext Transfer Protocol)을 통하여 이루어진다.The web server 210 is separate software that operates based on the Linux driving system 220. The web server 210 used in the present embodiment can use GoAhead WebServer TM of GoAhead Software, which is well known as an embedded web server. The web server is an open source program that runs on a Linux system and is designed according to Internet industry standards. Therefore, it supports Active Server Page (ASP), common gateway interface (CGI), etc. to implement dynamic web pages. The communication between the web server 210 and the web browser 310 is made through Hypertext Transfer Protocol (HTTP).

상기 웹 서버(210)는 외부의 업데이트 서버(100)로부터 업데이트할 새로운 파일이 있는지를 체크하여 새로운 파일이 있으면 이를 저장소(Repository; 230)에 저장하고, 상기 저장된 파일을 이용하여 대상 디바이스의 소프트웨어를 업데이트할 수 있다.The web server 210 checks whether there is a new file to update from an external update server 100, and if there is a new file, stores it in the repository 230 and uses the stored file to install software of the target device. You can update it.

도 2는 본 발명의 동작 과정 중 웹 서버에서 수행되는 과정을 나타낸 흐름도이다.2 is a flowchart illustrating a process performed in a web server during the operation of the present invention.

먼저, 사용자가 대상 디바이스(200) 내의 웹 서버(210)에 접속하고 초기 업데이트 페이지를 웹 브라우저에 나타낸다(S601). 만약, 상기 웹 서버(210)에 접속하기 위하여 인증이 필요한 경우에는 도 3과 같은 창이 나타나 사용자 ID 및 암호를 묻는다. 사용자가 유효한 사용자 ID 및 암호를 입력하면, 초기 업데이트 페이지가 웹 브라우저에 나타난다.First, a user accesses a web server 210 in a target device 200 and displays an initial update page in a web browser (S601). If authentication is required to access the web server 210, a window as shown in FIG. 3 appears asking for a user ID and password. When the user enters a valid user ID and password, the initial update page appears in the web browser.

상기 초기 업데이트 페이지는 도 4와 같이 구성될 수 있다. 사용자는 이 화면에서 업데이트 서버(update server)의 IP 주소(IP address)를 입력하고, 업데이트 서버에 접속하기 위한 사용자 ID 및 암호를 입력한 후 OK 버튼을 누르면 웹 서버(210)는 업데이트 서버(100)에 새로운 소프트웨어가 존재하는지를 체크하게 된다(S602). 상기 체크하는 방법은 업데이트 서버(100)의 데이터베이스에서 각각의 파일을 다운받은 후 대상 디바이스의 데이터베이스에 존재하는 해당 파일과 비교하는 방법을 사용하면 될 것이다. 구체적으로 보면, 업데이트 서버와 대상 디바이스는 각각 자신이 가지고 있는 소프트웨어의 정보를 담고 있는 데이터베이스 파일(database file)을 갖고 있다. 결국, 새로운 소프트웨어가 존재하는 지는 상기 업데이트 서버측의 데이터베이스 파일을 다운로드하여 대상 디바이스측의 데이터베이스 파일과 비교함으로써 알 수 있다. 대상 디바이스에서 성공적으로 업데이트를 마치면 상기 대상 디바이스측의 데이터베이스 파일의 내용은 새로운 항목들로 다시 기록된다. 도 5는 이와 같은 데이터베이스 파일의 예를 나타낸 것이다.The initial update page may be configured as shown in FIG. 4. In this screen, the user inputs an IP address of the update server, enters a user ID and password for accessing the update server, and then presses the OK button. In step S602, it is checked whether new software exists. The checking method may be a method of downloading each file from the database of the update server 100 and comparing the file with the corresponding file in the database of the target device. Specifically, the update server and target device each have a database file that contains information about their software. As a result, it can be known whether new software exists by downloading the database file on the update server side and comparing it with the database file on the target device side. Upon successful update at the target device, the contents of the database file on the target device side are rewritten with new entries. 5 shows an example of such a database file.

상기 체크한 결과 업데이트 서버에 새로운 소프트웨어가 존재하지 않는 것으로 판단되면(S603의 '아니오') 그대로 전체 과정을 종료한다. 새로운 소프트웨어가 존재하는 것으로 판단되면(S603의 '예') 새로운 소프트웨어의 리스트를 나타내는 웹 페이지를 나타낸다. 상기 웹 페이지를 구성하는 방법은, 업데이트 서버측의 데이터베이스 파일과 대상 디바이스측의 데이터베이스 파일을 비교하여 서로 다른 버전을 갖는 소프트웨어에 대해서만 웹 페이지에 출력하면 된다. 도 6은 이러한 소프트웨어의 리스트를 나타낸 웹 페이지로서, 각각의 파일에 대하여, 소프트웨어의 명칭과, 버전(version) 정보와, 소프트웨어가 저장될 디렉토리 정보 및, 각각의 소프트웨어가 수행하는 명령 등이 표로서 나타나있다.If it is determined that no new software exists in the update server as a result of the check (No in S603), the whole process is terminated as it is. If it is determined that new software exists (YES in S603), a web page showing a list of new software is displayed. In the method for constructing the web page, the database file on the update server side and the database file on the target device side need to be compared and output to the web page only for software having different versions. FIG. 6 is a web page showing a list of such software. For each file, the name of the software, the version information, the directory information where the software is to be stored, and the instructions performed by each software are shown in a table. Appear.

상기 웹 페이지에서 사용자는 새로운 소프트웨어를 인스톨(install)할지 여부를 결정할 수 있다. 상기 웹 페이지에서 'cancel'버튼을 누르면 새로운 소프트웨어가 인스톨되지 않고 전체 과정이 종료된다. 반면에, 'install'버튼을 누르면 웹 서버(210)는 업데이트 서버(100)로부터 새로운 파일을 대상 디바이스(200)의 데이터베이스(230)로 다운로드한다. 상기 다운로드한 파일이 압축된 파일이면 압축을 해제한 후, 이를 표준 폴더에 복사한다(S606).The web page allows the user to decide whether to install new software. Pressing the “cancel” button on the web page completes the entire process without installing any new software. On the other hand, when the 'install' button is pressed, the web server 210 downloads a new file from the update server 100 to the database 230 of the target device 200. If the downloaded file is a compressed file, after decompression, it is copied to a standard folder (S606).

다음으로 'state'의 값을 1로 세팅한다(S607). 이 값은 업데이트 과정이 시작된다는 것을 의미하는 것이다. 그리고, 업데이트 과정을 수행한다(S608). 상기 업데이트 과정은 새로운 모듈들을 재로드(reload)한 후, 새로운 데몬(daemon) 및 어플리케이션 등을 재시작하는 과정을 포함한다.Next, set the value of 〈state〉 to 1 (S607). This value means that the update process begins. Then, an update process is performed (S608). The update process includes reloading new modules and restarting new daemons and applications.

상기 업데이트 과정을 수행하는 도중 또는 업데이트 과정을 완료한 후에 시스템이 크러쉬(crush)되는지를 판단하여(S609), 시스템의 크러쉬가 발생하면 도 8의 단계를 수행한다.While performing the update process or after completing the update process, it is determined whether the system is crushed (S609), and if a system crash occurs, the process of FIG. 8 is performed.

만약, 시스템의 크러쉬가 발생하지 않으면, 새로운 파일에 대한 최종 테스트를 수행한다(S610). 상기 테스트 수행결과 시스템이 정상적으로 작동하면 최종 테스트 결과는 'success'가 되고, 정상적으로 작동하지 않으면 'fail'이 된다. If a system crash does not occur, a final test is performed on the new file (S610). As a result of the test performance, if the system operates normally, the final test result is 'success', and if it does not operate normally, 'fail'.

상기 결과가 'success'이면(S611의 예) 새로운 파일을 예비 폴더(reserved folder)에 복사한다(S612). 그리고 'state'를 0으로 세팅한다(S613). 이 값은 업데이트 과정이 종료되었다는 것을 의미하는 것이다. 그 후, 상기 과정을 통하여 생성된 필요없는 임시 파일들을 삭제하고(S614), 웹 페이지에 업데이트 과정이 'success'임을 나타내는 메시지를 출력한다(S615).If the result is "success" (YES in S611), a new file is copied to a reserved folder (S612). And set 세팅 state 'to 0 (S613). This value means that the update process has ended. Thereafter, unnecessary temporary files generated through the process are deleted (S614), and a message indicating that the update process is “success” is output to the web page (S615).

한편, 상기 S611의 판단 결과가 'fail(시스템이 정지되지는 않았으나 업데이트가 실패한 경우를 의미한다)'이면 이전 버전의 소프트웨어로 돌아가는 과정(rollback)을 수행하여야 한다. 이와 같은 rollback 과정을 살펴보면, 먼저 예비 폴더로부터 기존의 파일들을 표준 폴더에 복사한다(S616). 다음으로, 모듈을 재로드(reload)하고 데몬과 어플리케이션을 재시동(restart)한다(S617). 그리고 'state'를 업데이트 과정이 종료되었다는 것을 의미하는 값, 즉 0으로 세팅한다(S618). 그 후, 필요없는 임시 파일들을 삭제한다(S619). 웹 페이지에 업데이트 과정이 'fail'임을 나타내는 메시지를 출력한다(S620).On the other hand, if the determination result of the S611 is "fail (meaning that the update has failed, but the system is not stopped)" 'should rollback to the previous version of the software. Looking at such a rollback process, first copy the existing files from the spare folder to the standard folder (S616). Next, the module is reloaded and the daemon and the application are restarted (S617). The state ''' is set to a value indicating that the update process is completed, that is, 0 (S618). Thereafter, unnecessary temporary files are deleted (S619). A message indicating that the update process is “fail” is output on the web page (S620).

상기 S606에서 새로운 파일을 다운로드하는 과정, 다운로드한 파일의 압축을 해제하는 과정, 및 표준 폴더에 상기 압축을 해제한 파일을 복사하는 과정을 나타내는 웹 페이지의 예는 도 7에 나타나 있다. 아울러 상기 도 7에는 상기 S610에서 최종 테스트를 하기 위하여 새로 설치한 모듈들을 재로드하는 과정, 그리고 상기 테스트 결과 성공 여부를 나타내는 메시지 등이 나타나 있다.An example of a web page showing a process of downloading a new file, a process of decompressing a downloaded file, and a process of copying the decompressed file to a standard folder is shown in FIG. In addition, FIG. 7 illustrates a process of reloading newly installed modules for the final test in S610, and a message indicating whether the test result is successful.

도 8은 본 발명의 동작 과정 중 시스템 크러쉬가 발생한 경우에 리눅스 시스템에서 수행되는 과정을 나타낸 흐름도이다. 시스템 크러쉬가 발생한 경우에는 먼저, 대상 디바이스(200)의 시스템을 수동으로 재시작한다(S801). 다음으로, 루트 파일 시스템을 마운팅(mounting)함으로써 시스템의 초기화를 시작한다(S802). 그리고, 소정의 디렉토리에 저장된 파일의 내용인 'state' 값을 체크한다(S803). 상기 'state' 값이 1이 아니면(S804의 아니오), 그냥 단순히 나머지 부팅과정을 수행하면 된다(S809).8 is a flowchart illustrating a process performed in the Linux system when a system crash occurs during the operation of the present invention. If a system crash occurs, first, the system of the target device 200 is manually restarted (S801). Next, initialization of the system is started by mounting the root file system (S802). In operation S803, a value of “state”, which is the content of a file stored in a predetermined directory, is checked. If the value of 〈state〉 is not 1 (No in S804), it may simply perform the remaining booting process (S809).

그러나, 상기 'state' 값이 1이면(S804의 예), 이전 버전의 소프트웨어로 돌아가는 과정(rollback)을 수행하여야 한다. 상기 rollback 과정을 살펴보면, 먼저, 예비 폴더로부터 표준 폴더로 기존의 파일을 복사한다(S805). 그리고, 'state' 값을 0으로 세팅한다(S806). 그리고 필요없는 임시 파일들을 삭제한다(S807). However, if the value of 'state' is 1 (YES in S804), a rollback to the previous version of the software should be performed. Looking at the rollback process, first, the existing file is copied from the spare folder to the standard folder (S805). Then, the state value is set to 0 (S806). And delete unnecessary temporary files (S807).

그 후 나머지 부팅과정을 수행한다(S808). 모듈을 재로드하고 데몬과 어플리케이션을 재시동하는 과정은 상기 부팅과정에 포함되므로 별도로 실행할 필요는 없다.Thereafter, the rest of the booting process is performed (S808). Reloading the module and restarting the daemon and application are included in the booting process and do not need to be executed separately.

도 9a는 표준 리눅스 루트 디렉토리 구조를 나타낸 것이다. 본 발명에 따른 리눅스 루트 디렉토리 구조는 도 9b와 같이 구성된다. 예비 디렉토리의 형태는 표준 디렉토리의 형태와 동일하며 그 내부에 있는 파일 또한 동일하다. 사용자는 루트 디렉토리의 모든 일반적인 폴더를 복사한 디렉토리를 생성하여야 한다. 예를 들어, '/bin'폴더는 통상의 사용자 명령(common user commnads)들을 담고 있고, '/sbin'폴더는 관리 명령(administrative commands)을 담고 있다. 그리고, 'lib'폴더는 로딩할 수 있는 모듈들(loadable moduls)을 담고 있다. 이러한 각 모듈에 대한 완전 경로는'lib/modules/xx.xx.xx-xx/drivers/..'와 같은 형태로 된다. 'usr'폴더는 데몬들(daemons)을 담고 있다(실제 경로는 '/usr/sbin'). 상기 폴더내의 파일들은 업데이트될 수 있으며, 정상적인 업데이트가 이루어지면 상기 폴더와 동일한 각각의 폴더 예들 들어, '/bin1', '/sbin1', '/lib1', 및 '/usr1'가 생성되고, 각각의 폴더내에 표준 폴더에서와 동일한 파일들이 복사된다.9A shows a standard Linux root directory structure. Linux root directory structure according to the present invention is configured as shown in Figure 9b. The shape of the spare directory is the same as that of the standard directory, and the files inside it are the same. You should create a directory where you have copied all the usual folders in the root directory. For example, the '/ bin' folder contains common user commnads, and the '/ sbin' folder contains administrative commands. The lib folder contains loadable moduls. The full path to each of these modules will be something like lib / modules / xx.xx.xx-xx / drivers / .. The usr folder contains daemons (actual path is / usr / sbin). The files in the folder can be updated, and if a normal update is made, respective folders identical to the folder, for example, '/ bin1', '/ sbin1', '/ lib1', and '/ usr1' are generated, respectively. The same files as in the standard folder are copied into the folder of.

도 9c는 시스템의 소정의 위치에 'state' 파일이 기록된 디렉토리 구조를 나타낸 것이다. 상기 'state' 파일은 이전의 업데이트 과정이 성공적이었는지 여부를 체크하는 flag 파일이다. 이러한 체크 과정은 시스템이 부팅될 때 수행되는데, 상기 'state' 파일은 2개의 값 중 하나를 가질 수 있다. 상기 'state'파일이 가질 수 있는 값 중에서 '1'은 이전의 업데이트가 올바르게 되지 않았음을 의미하는 것이고, '0'은 이전의 업데이트가 올바르게 되었음을 의미하는 것이다. Fig. 9C shows a directory structure in which a 〈state〉 file is recorded at a predetermined position of the system. The 〈state〉 file is a flag file that checks whether the previous update process was successful. This check process is performed when the system is booted. The 〈state〉 file may have one of two values. Among the values that the 'state' file may have, '1' means that the previous update is not correct, and '0' means that the previous update is correct.

이와 같이 시스템 부팅시에 'state'의 상태값을 체크하는 명령은 시스템 부팅시에 작동하는 초기화 시작 스크립트(initialization startup script)에 기록되어 있다. 예를 들어, 'Red Hat Linux'의 경우에는 '/etc/rc.d/rc.sysinit'파일이 상기 스크립트 파일에 해당한다. 'state' 파일의 값이 '1'인 경우에는 이전 버전의 소프트웨어를 예비 폴더로부터 표준 폴더로 복사하여야 한다. 그 후 상기 값을 '0'으로 바꾸고 이후의 부팅과정을 계속하게 된다.As such, the command to check the state value of 〈state〉 at system boot is recorded in an initialization startup script that operates at system boot. For example, in Red Hat Linux, the script file is /etc/rc.d/rc.sysinit. If the value of the "state" file is "1", you must copy the previous version of the software from the spare folder to the standard folder. The value is then changed to '0' and the subsequent boot process continues.

이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구의 범위에 의하여 나타내어지며, 특허청구의 범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Although embodiments of the present invention have been described above with reference to the accompanying drawings, those skilled in the art to which the present invention pertains may implement the present invention in other specific forms without changing the technical spirit or essential features thereof. I can understand that. Therefore, it should be understood that the embodiments described above are exemplary in all respects and not restrictive. The scope of the present invention is indicated by the scope of the following claims rather than the detailed description, and all changes or modifications derived from the meaning and scope of the claims and the equivalent concept are included in the scope of the present invention. Should be interpreted.

본 발명에 따르면, 엠베디드 시스템에서의 다양한 소프트웨어를 원격으로 업데이트 할 수 있다. 이러한 소프트웨어에는 Loadable modules, administrative commands, common user commands, daemons, 및 기타의 어플리케이션 소프트웨어 등이 포함될 수 있다.According to the present invention, various software in the embedded system can be updated remotely. Such software may include Loadable modules, administrative commands, common user commands, daemons, and other application software.

본 발명에 따르면, 엠베디드 시스템에서 업데이트 과정이 실패하거나 리눅스 시스템에 호환되지 않는 소프트웨어가 설치되는 경우에는 과거의 소프트웨어로 돌아갈 수 있으며, 더욱이 시스템 자체가 정지한 경우에도 과거의 소프트웨어로 돌아갈 수 있도록 한다.According to the present invention, when the update process fails in an embedded system or when an incompatible software is installed in a Linux system, the user can return to the old software, and even if the system itself is stopped, the user can return to the old software. .

도 1은 본 발명이 동작하는 전체적 환경을 개략적으로 나타낸 블록도.1 is a block diagram schematically illustrating the overall environment in which the present invention operates.

도 2는 본 발명의 동작 과정 중 웹 서버에서 수행되는 과정을 나타낸 흐름도.2 is a flowchart illustrating a process performed in a web server during the operation of the present invention.

도 3은 웹 서버에 접속하기 위한 인증을 요구하는 창을 나타낸 도면.3 shows a window requesting authentication for accessing a web server.

도 4는 웹 서버에 접속하였을 때 표시되는 초기의 업데이트 웹 페이지를 나타낸 도면.4 shows an initial update web page displayed when a web server is connected.

도 5는 데이터베이스 파일의 형식을 나타낸 도면.5 shows the format of a database file.

도 6은 업데이트 가능한 소프트웨어의 리스트를 표시하는 웹 페이지를 나타낸 도면.6 shows a web page displaying a list of updatable software.

도 7은 업데이트 과정을 사용자에게 나타내 주는 웹 페이지를 나타낸 도면.7 shows a web page showing the update process to the user.

도 8은 본 발명의 동작 과정 중 시스템 크러쉬가 발생한 경우에 리눅스 시스템에서 수행되는 과정을 나타낸 흐름도.8 is a flowchart illustrating a process performed in the Linux system when a system crash occurs during the operation of the present invention.

도 9a는 표준 리눅스 루트 디렉토리 구조를 나타낸 도면.9A shows a standard Linux root directory structure.

도 9b는 본 발명에 따른 리눅스 루트 디렉토리 구조를 나타낸 도면. 9b illustrates a Linux root directory structure in accordance with the present invention.

도 9c는 시스템의 소정의 위치에 'state' 파일이 기록된 디렉토리 구조를 나타낸 도면.Fig. 9C is a diagram showing a directory structure in which a 〈state〉 file is recorded at a predetermined position of the system.

Claims (6)

엠베디드 소프트웨어를 내장한 제1 디바이스의 소프트웨어를 상기 제1 디바이스와 인터넷으로 연결된 제2 디바이스에서 원격으로 업데이트하는 방법에 있어서,A method of remotely updating software of a first device incorporating embedded software in a second device connected to the first device and the Internet, 상기 제2 디바이스의 사용자측에서 웹브라우저를 이용하여 상기 디바이스의 웹 서버가 제공하는 초기 업데이트 웹 페이지에 접속하는 제1단계;A first step of accessing an initial updated web page provided by a web server of the device by using a web browser on a user side of the second device; 업데이트 서버에 새로운 소프트웨어가 존재하는 지를 체크하는 제2단계;A second step of checking whether new software exists in the update server; 상기 체크한 결과 새로운 소프트웨어가 존재하는 경우에 해당 소프트웨어에 대한 업데이트 과정을 진행하는 제3단계;A third step of performing an update process for the corresponding software when the new software exists as a result of the checking; 상기 새로 업데이트된 소프트웨어에 대한 최종 테스트를 수행하는 제4단계;A fourth step of performing a final test on the newly updated software; 상기 테스트 결과, 업데이트가 성공적으로 된 경우에는 상기 업데이트 된 소프트웨어의 새로운 파일들을 예비 폴더에 복사하고 웹 페이지에 업데이트 과정이 성공적이었음을 표시하는 제5단계; 및A fifth step of copying new files of the updated software to a spare folder if the update is successful, and indicating that the update process was successful on a web page; And 상기 테스트 결과, 업데이트가 성공적으로 되지 않은 경우에는 기존의 시스템으로 돌아가고 웹 페이지에 업데이트 과정이 실패하였음을 표시하는 제6단계를 포함하는 것을 특징으로 하는 엠베디드 소프트웨어를 원격으로 업데이트하는 방법.And if the update is not successful, returning to the existing system and displaying a failed update process on the web page. 제1항에 있어서, 상기 제2단계는The method of claim 1, wherein the second step 상기 업데이트 서버측의 데이터베이스 파일을 다운로드하여 상기 제1 디바이스측의 데이터베이스 파일과 비교함으로서 이루어지는 것을 특징으로 하는 엠베디드 소프트웨어를 원격으로 업데이트하는 방법.Downloading the database file on the update server side and comparing the database file on the first device side to remotely update embedded software. 제1항에 있어서, 상기 제3단계는The method of claim 1, wherein the third step 상기 업데이트 서버로부터 새로운 파일을 다운받아 압축을 해제하고 이를 표준 폴더에 복사하는 단계;Downloading a new file from the update server, decompressing it, and copying it to a standard folder; 소정의 파일의 값을 업데이트 과정이 시작된다는 의미를 갖는 값으로 세팅하는 단계; 및Setting a value of a predetermined file to a value meaning that an update process is started; And 상기 표준 폴더에 복사한 새로운 파일을 이용하여 새로운 모듈을 재로드하고, 새로운 데몬 및 어플리케이션을 재시작하여 업데이트를 수행하는 단계를 포함하는 것을 특징으로 하는 엠베디드 소프트웨어를 원격으로 업데이트하는 방법.Reloading a new module using a new file copied to the standard folder, restarting a new daemon and application, and performing an update. 제1항에 있어서, 상기 제5단계는The method of claim 1, wherein the fifth step 상기 새로운 파일들을 예비 폴더에 복사하는 단계;Copying the new files to a spare folder; 소정의 파일의 값을 업데이트 과정이 종료되었다는 의미를 갖는 값으로 세팅하는 단계;Setting a value of a predetermined file to a value meaning that the update process is finished; 상기 단계들을 수행하는 동안 생성된 필요 없는 임시 파일들을 삭제하는 단계; 및Deleting unnecessary temporary files created while performing the steps; And 웹 페이지에 업데이트 과정이 성공적이었음을 사용자에게 표시해 주는 단계를 포함하는 것을 특징으로 하는 엠베디드 소프트웨어를 원격으로 업데이트하는 방법.A method of remotely updating embedded software, comprising: indicating to a web page that the update process was successful to the user. 제1항에 있어서, 상기 제6단계는 The method of claim 1, wherein the sixth step 예비 폴더에 저장되어 있는 기존의 파일들을 표준 폴더로 복사하는 단계;Copying the existing files stored in the spare folder to the standard folder; 상기 표준 폴더에 복사된 파일을 이용하여 새로운 모듈을 재로드하고, 새로운 데몬 및 어플리케이션을 재시작함으로써 기존의 시스템으로 rollback 하는 단계;Reloading a new module using the file copied to the standard folder, and rolling back to an existing system by restarting a new daemon and application; 소정의 파일의 값을 업데이트 과정이 종료되었다는 의미를 갖는 값으로 세팅하는 단계; 및Setting a value of a predetermined file to a value meaning that the update process is finished; And 웹 페이지에 업데이트 과정이 실패하였음을 사용자에게 표시해 주는 단계를 포함하는 것을 특징으로 하는 엠베디드 소프트웨어를 원격으로 업데이트하는 방법.And indicating to the user that the update process has failed on the web page. 제1항에 있어서, 상기 단계들 중 어느 하나의 단계를 수행한 후에 시스템 크러쉬가 발생한 경우에는, 상기 크러쉬가 발생한 단계 이후에The method of claim 1, wherein if a system crash occurs after performing any one of the above steps, 제2 디바이스의 시스템을 수동으로 재시작하는 단계;Manually restarting the system of the second device; 업데이트 과정이 종료되었는지 여부를 알려주는 소정의 파일의 값을 체크하는 단계;Checking a value of a predetermined file indicating whether the update process is finished; 상기 파일의 값이 업데이트 과정이 종료되었음을 나타내는 값이면 나머지 부팅과정을 수행하는 단계;If the value of the file is a value indicating that the update process is completed, performing the remaining booting process; 상기 파일의 값이 업데이트 과정이 종료되지 않았음을 나타내는 값이면 예비 폴더에 저장되어 있는 기존의 파일들을 표준 폴더로 복사하는 단계;Copying existing files stored in the spare folder to the standard folder if the value of the file indicates that the update process is not finished; 상기 파일의 값이 업데이트 과정이 종료되었음을 나타내는 값으로 세팅하는 단계; 및Setting a value of the file to a value indicating that an update process is finished; And 상기 단계들 이외의 나머지 부팅과정을 진행하는 단계를 더 포함하는 것을 특징으로 하는 엠베디드 소프트웨어를 원격으로 업데이트하는 방법.Remotely updating the embedded software, characterized in that it further comprises the step of proceeding to the other boot process.
KR1020030064862A 2003-09-18 2003-09-18 Method and system of remote updating of the embedded software on the devices, working under linux operating system control KR20050028245A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030064862A KR20050028245A (en) 2003-09-18 2003-09-18 Method and system of remote updating of the embedded software on the devices, working under linux operating system control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030064862A KR20050028245A (en) 2003-09-18 2003-09-18 Method and system of remote updating of the embedded software on the devices, working under linux operating system control

Publications (1)

Publication Number Publication Date
KR20050028245A true KR20050028245A (en) 2005-03-22

Family

ID=37385239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030064862A KR20050028245A (en) 2003-09-18 2003-09-18 Method and system of remote updating of the embedded software on the devices, working under linux operating system control

Country Status (1)

Country Link
KR (1) KR20050028245A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100898968B1 (en) * 2008-07-03 2009-05-28 이승호 Automatic complete delete method for temporary files used in applications
KR101055287B1 (en) * 2009-05-14 2011-08-09 (주) 애니컴페니언 How to manage temporary files used by applications
US8271969B2 (en) 2007-08-09 2012-09-18 Research In Motion Limited Method and apparatus for determining the state of a computing device

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271969B2 (en) 2007-08-09 2012-09-18 Research In Motion Limited Method and apparatus for determining the state of a computing device
KR100898968B1 (en) * 2008-07-03 2009-05-28 이승호 Automatic complete delete method for temporary files used in applications
WO2010002185A2 (en) * 2008-07-03 2010-01-07 (주) 애니컴페니언 Method for automatically and completely deleting temporary files used in application programs
WO2010002185A3 (en) * 2008-07-03 2010-03-25 (주) 애니컴페니언 Method for automatically and completely deleting temporary files used in application programs
KR101055287B1 (en) * 2009-05-14 2011-08-09 (주) 애니컴페니언 How to manage temporary files used by applications

Similar Documents

Publication Publication Date Title
US6993642B2 (en) Method and system for creating and employing an operating system having selected functionality
US8037198B2 (en) Firmware upgrade for thin clients using one or more servers
US8032881B2 (en) Method and system for upgrading a plurality of devices
US9213537B2 (en) Robust firmware update with recovery logic
EP2668586B1 (en) State-based provisioning of a client
EP2668602B1 (en) Transferring configuration data from a public cloud server and applying onto a mobile client
US6408434B1 (en) System and method for using a substitute directory to automatically install an update program
JP5307706B2 (en) Operating system gradual boot process
KR100675518B1 (en) Modular bios update mechanism
US7664834B2 (en) Distributed operating system management
EP2668559B1 (en) Configuring and customizing a specific-purpose client having a windows-based embedded image using extensible markup language (xml) configuration
EP2668587B1 (en) Client configuration history for self-provisioning of configuration and obviating reinstallation of embedded image
US7650490B2 (en) Embedded device for implementing a boot process on a host
US20020095522A1 (en) System and method for automatic provision of an application
EP2668589B1 (en) Generating and validating custom extensible markup language (xml) configuration on a client embedded image
WO2000068836A2 (en) Methods for managing the distribution of client bits to client computers
EP2668601B1 (en) Self-provisioning of configuration for a client
JP2001051833A (en) Method and device for generating and distributing smaller application of microsoft windows (registered) for automatic constitution of computer device
EP2668588B1 (en) Retrieval, parsing and application of a configuration for a client having a windows-based embedded image
KR20200090010A (en) Method for updating firmware, electronic device and storage medium therefor
US7444412B2 (en) Data processing system and method
CN112486508B (en) Deployment method of operating system, server and computer storage medium
KR20050028245A (en) Method and system of remote updating of the embedded software on the devices, working under linux operating system control
CN111475210A (en) Method and system for booting PXE (PCI extensions for instrumentation) by using memory without disk
Cisco Working with the IOS File System, Configuration Files, and Software Images

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application