KR20070034239A - 소프트웨어 업데이트 방법 및 시스템과 그 방법을 기록한컴퓨터 판독 가능한 기록매체 - Google Patents

소프트웨어 업데이트 방법 및 시스템과 그 방법을 기록한컴퓨터 판독 가능한 기록매체 Download PDF

Info

Publication number
KR20070034239A
KR20070034239A KR1020050088691A KR20050088691A KR20070034239A KR 20070034239 A KR20070034239 A KR 20070034239A KR 1020050088691 A KR1020050088691 A KR 1020050088691A KR 20050088691 A KR20050088691 A KR 20050088691A KR 20070034239 A KR20070034239 A KR 20070034239A
Authority
KR
South Korea
Prior art keywords
component
information
update
transaction
changing
Prior art date
Application number
KR1020050088691A
Other languages
English (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 KR1020050088691A priority Critical patent/KR20070034239A/ko
Priority to US11/507,471 priority patent/US20070074201A1/en
Priority to EP06120167A priority patent/EP1770512A3/en
Priority to CNA2006101595151A priority patent/CN1936844A/zh
Publication of KR20070034239A publication Critical patent/KR20070034239A/ko

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

Landscapes

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

Abstract

본 발명은 소프트웨어 업데이트 방법 및 시스템과 그 방법을 기록한 컴퓨터 판독 가능한 기록매체에 대한 것으로,
업데이트 트랜잭션의 상태 정보와 컴포넌트의 상태 정보를 관리하면서, 서버로부터 신규 버전의 컴포넌트를 다운로드하고, 업데이트할 컴포넌트에 신규 버전의 컴포넌트를 덮어쓰는 트랜잭션을 수행하며, 리소스를 업데이트할 때는 어플리케이션을 먼저 업데이트 한 후 리소스는 삭제하지 않은 채 신규 버전의 리소스를 다운로드하여 저장하고, 재부팅 후 리소스의 업데이트를 완료하는 것을 특징으로 한다.
상기와 같은 본 발명의 구성에 의해, 저장 공간이 부족한 휴대 단말과 같은 장치에서도 소프트웨어 업데이트 및 복구를 효율적으로 수행할 수 있으며, 소프트웨어 업데이트에 따른 어플리케이션과 리소스 간의 버전 호환성 문제도 해결할 수 있다.
소프트웨어, 컴포넌트, 어플리케이션, 리소스, 자동 업데이트, 저장 공간 부족.

Description

소프트웨어 업데이트 방법 및 시스템과 그 방법을 기록한 컴퓨터 판독 가능한 기록매체{Method and system for software update, and computer readable medium recording the method}
도 1a, 1b 및 1c는 종래 소프트웨어 업데이트 방법에 의한 메모리 내용 변경 과정을 도시한 도면,
도 2a 및 도 2b는 본 발명에 따른 소프트웨어 업데이트 방법의 흐름도,
도 3은 다수의 소프트웨어 컴포넌트를 업데이트하는 동작 흐름도,
도 4a, 4b, 4c, 4d, 4e 및 4f는 본 발명에 따른 소프트웨어 업데이트 방법에 의한 메모리 내용 변경 과정을 도시한 도면,
도 5는 어플리케이션과 리소스를 함께 업데이트하는 경우의 동작 흐름도,
도 6은 어플리케이션과 리소스를 함께 업데이트하는 경우 시스템 재부팅시 동작 흐름도,
도 7a, 7b, 7c, 7d, 7e 및 7f는 어플리케이션과 리소스를 함께 업데이트하는 경우 메모리 내용 변경 과정을 도시한 도면,
도 8은 본 발명에 따른 소프트웨어 업데이트 에러 복구 메커니즘 흐름도,
도 9는 본 발명에 따른 소프트웨어 업데이트 시스템 구성도.
본 발명은 소프트웨어 업데이트(software update)에 관한 것으로, 더욱 상세하게는 저장 공간이 충분하지 않은 장치에서의 소프트웨어 업데이트 방법 및 시스템과 그 방법을 기록한 컴퓨터 판독 가능한 기록매체에 관한 것이다.
최근 이동통신 단말, PDA(Personal Digital Assistance), 윈도우즈 CE 디바이스 등의 각종 휴대 단말은 급속한 발전을 거듭하고 있으며, 디지털 컨버전스(Digital Convergence)가 이루어짐에 따라 휴대 단말에 각종 기능이 새로이 융합되고 있을 뿐만 아니라, 모델 교체 주기도 F아지는 추세이다. 이에 따라, 휴대 단말의 개발 과정 중에 기능상의 오류가 포함되어 시중에 유통되는 경우가 발생할 가능성이 높아지고 있다. 또한, 휴대 단말의 개발 완료 이후에도 추가적인 기능 제공을 위해 업그레이드(upgrade)된 소프트웨어가 릴리즈(release)되는 경우가 발생하게 되었다.
이러한 요구에 의해 휴대 단말에서의 소프트웨어 자동 업데이트 기능이 개발되고 있으나, 대부분의 휴대 단말은 충분한 저장 공간을 제공하지 못하기 때문에, 업데이트 시스템 개발에 어려움이 있을 뿐만 아니라 메모리 부족으로 사업자가 제공하는 소프트웨어 업데이트 기능을 사용하지 못하는 경우도 많다.
도 1a, 1b 및 1c는 종래 소프트웨어 업데이트 방법에 의한 메모리 내용 변경 과정을 도시한 것이다. 도 1a를 참조하면, 먼저 불휘발성 메모리(100)에 어플리케이션(application) App.1(110)과 어플리케이션 App.2(120)라는 소프트웨어 컴포넌 트가 설치되어 있다. 도 1b에서와 같이, 먼저 App.1(110)을 백업 파일인 App.1.bck(110b)로 변환한 뒤 새로운 버전의 App.1(110n)을 다운로드 받아 저장한 후, 도 1c에서와 같이, App.2(120)를 백업 파일인 App.2.bck(120b)로 변환한 뒤 새로운 버전의 App.2(120n)을 다운로드 받아 저장하는 과정에 의해 두 소프트웨어 컴포넌트가 자동 업데이트된다.
상기 방법의 문제점은 전술한 바와 같이, 기존의 파일을 백업본으로 저장하고 새로운 파일을 받기 때문에, 메모리가 각 컴포넌트 크기의 두 배가 소요된다는 점이다. 종래에 이러한 방법을 사용하는 이유는 업데이트 도중 외부적인 요소로 인해 업데이트가 중단되어 실패할 경우 시스템을 복구하기 위함이다. 그러나 이 방법에 의하면, 적어도 메모리 크기가 소프트웨어 크기의 두 배가 되지 않는 장치에서는 자동 업데이트 기능이 동작하지 않는다는 문제가 있다. 이는 메모리 크기가 한정적인 휴대 단말에서는 심각한 문제가 될 수 있다.
또한, 다이나믹 로딩(dynamic loading) 기능으로 인한 버전 호환성 문제를 대부분의 휴대용 단말에서 해결하지 못하고 있다. 즉, 리소스(resouce) A와 이를 사용하는 어플리케이션 B가 업데이트되는 경우, 디바이스가 재부팅되기 전까지는 램(RAM, Random Access Memory)에 존재하는 이전 버전의 어플리케이션 B가 업데이트된 리소스 A를 사용하게 되어 호환성 문제가 발생할 수 있다.
본 발명은 상기와 같은 문제를 해결하여, 저장 공간이 충분하지 못한 디바이스에서도 효율적으로 소프트웨어 컴포넌트를 자동 업데이트하고, 업데이트 중단이 발생했을 때 이를 복구할 수 있고, 리소스와 어플리케이션 간의 호환성 문제가 발생하지 않도록 업데이트하는 소프트웨어 업데이트 방법 및 시스템과 그 방법을 기록한 컴퓨터 판독 가능한 기록매체를 제공하는 것을 목적으로 한다.
상기 목적의 달성을 위해 본 발명은, 소프트웨어 업데이트시 소프트웨어 컴포넌트의 백업본을 저장하지 않음으로써 저장 공간이 충분하지 않은 장치에서도 유용하게 사용될 수 있을 뿐만 아니라, 컴포넌트 구성 DB를 사용함으로써 업데이트 도중 업데이트 트랜잭션의 중단으로 시스템이 크래시(crash)될 경우라도 효율적인 복구(recovery)가 가능하고 리소스와 어플리케이션의 호환성 문제를 해결한 소프트웨어 업데이트 방법 및 시스템과 그 방법을 기록한 컴퓨터 판독 가능한 기록매체를 제공한다.
본 발명의 특징은, 서버와 연결된 장치에 설치된 소프트웨어 컴포넌트를 업데이트하는 소프트웨어 업데이트 방법에 있어서, 업데이트 트랜잭션의 상태 정보와 컴포넌트의 상태 정보를 관리하면서, 상기 서버로부터 신규 버전의 컴포넌트를 다운로드하고, 업데이트할 컴포넌트에 상기 신규 버전의 컴포넌트를 덮어쓰는 트랜잭션을 수행하는 단계를 포함하는 것이다.
바람직하게는 상기 트랜잭션 수행 단계에서, 상기 트랜잭션의 상태 정보를 '시작'으로 기록하는 트랜잭션 시작 단계; 상기 업데이트할 컴포넌트의 상태 정보를 '다운로드'로 변경하고, 상기 컴포넌트의 이전 정보를 상기 컴포넌트의 현재 정보로 변경하고, 상기 서버로부터 상기 신규 버전의 컴포넌트를 다운로드하고, 상기 컴포넌트를 삭제한 후 상기 신규 버전의 컴포넌트를 저장하는 다운로드 단계; 상기 컴포넌트의 상태 정보를 '업데이트'로 변경하고, 상기 컴포넌트의 현재 정보를 상기 신규 버전의 컴포넌트에 대한 신규 정보로 변경하는 업데이트 단계; 상기 컴포넌트의 상태 정보를 '완료'로 변경하는 완료 단계; 및 상기 트랜잭션의 상태 정보를 '종료'로 변경하는 트랜잭션 종료 단계를 포함한다.
바람직하게는, 상기 이전 정보, 상기 현재 정보 및 상기 신규 정보가 해당 컴포넌트의 버전 정보와 주소를 포함한다.
바람직하게는, 상기 장치에 설치된 컴포넌트의 현재 버전 정보와 상기 서버에 저장되어 있는 컴포넌트 버전 정보를 비교하여 업데이트할 컴포넌트를 결정하는 단계를 더 포함한다.
바람직하게는, 상기 업데이트할 컴포넌트가 복수인 경우, 상기 트랜잭션 시작 단계 후 상기 트랜잭션 종료 단계 전, 상기 각 컴포넌트에 대해, 상기 다운로드 단계, 상기 업데이트 단계 및 상기 완료 단계를 수행하는 단계를 더 포함한다.
본 발명의 다른 특징은, 서버와 연결된 장치에 설치된 어플리케이션과 상기 어플리케이션이 사용하는 리소스를 업데이트하는 소프트웨어 업데이트 방법에 있어서, 상기 서버로부터 신규 버전의 어플리케이션을 다운로드하여 상기 어플리케이션을 업데이트하는 단계; 및 상기 서버로부터 신규 버전의 리소스를 다운로드하여 저장하고, 상기 장치의 재부팅 후 상기 리소스의 현재 정보를 상기 신규 버전의 리소스에 대한 정보로 변경하는 단계를 포함하는 것이다.
본 발명의 또 다른 특징은, 서버와 연결된 장치에 설치된 어플리케이션과 상 기 어플리케이션이 사용하는 리소스를 업데이트하는 소프트웨어 업데이트 방법에 있어서, 트랜잭션의 상태 정보를 '시작'으로 기록하여 트랜잭션을 시작하는 단계; 상기 서버로부터 신규 버전의 어플리케이션을 다운로드하여 상기 어플리케이션을 업데이트하는 단계; 상기 리소스의 상태 정보를 '다운로드'로 변경하고, 상기 리소스의 이전 정보를 상기 리소스의 현재 정보로 변경하고, 상기 서버로부터 신규 버전의 리소스를 다운로드하여 저장하는 단계; 및 상기 리소스의 상태 정보를 '보류중'으로 변경하는 단계;를 포함하는 것이다.
바람직하게는, 상기 장치의 재부팅시, 상기 '보류중' 상태의 리소스의 현재 정보를 상기 신규 버전의 리소스에 대한 정보로 변경하고, 상기 리소스의 상태 정보를 '완료'로 변경하는 단계; 및 상기 트랜잭션의 상태 정보를 '종료'로 변경하여 트랜잭션을 종료하는 단계를 더 포함한다.
바람직하게는, 상기 이전 버전의 리소스를 삭제하는 단계를 더 포함한다.
본 발명의 또 다른 특징은, 서버와 연결된 장치에 설치된 소프트웨어 컴포넌트를 업데이트하는 소프트웨어 업데이트 방법에 있어서, 소프트웨어 업데이트가 트랜잭션 종료 전 중단되었는지 여부를 판단하는 단계; 상기 트랜잭션이 중단된 경우는, 컴포넌트의 상태 정보를 확인하여 상기 업데이트가 중단된 컴포넌트를 판단하고, 상기 중단된 컴포넌트의 상태 정보에 따라 상기 업데이트가 중단된 이후의 과정을 수행함으로써 상기 트랜잭션의 복구를 수행하는 단계;를 포함하는 것이다.
바람직하게는 상기 중단 여부 판단 단계가, 상기 트랜잭션의 상태 정보를 읽고 상기 트랜잭션 상태 정보가 '시작'이면 중단된 것으로 판단하는 단계를 포함한 다.
바람직하게는, 상기 복구 수행 단계가, 상기 중단된 컴포넌트의 상태 정보가 존재하지 않는 경우, 상기 컴포넌트의 상태 정보를 '다운로드'로 변경하고, 상기 컴포넌트의 이전 정보를 상기 컴포넌트의 현재 정보로 변경하고, 상기 서버로부터 신규 버전의 컴포넌트를 다운로드하여 상기 컴포넌트에 덮어쓰고, 상기 컴포넌트의 상태 정보를 '업데이트'로 변경하고, 상기 컴포넌트의 현재 정보를 상기 신규 버전의 컴포넌트에 대한 신규 정보로 변경하고, 상기 컴포넌트의 상태 정보를 '완료'로 변경하는 단계; 상기 중단된 컴포넌트의 상태 정보가 '다운로드'인 경우, 상기 컴포넌트의 이전 정보를 현재 정보로 변경하고, 상기 서버로부터 신규 버전의 컴포넌트를 다운로드하여 상기 컴포넌트에 덮어쓰고, 상기 컴포넌트의 상태 정보를 '업데이트'로 변경하고, 상기 컴포넌트의 현재 정보를 상기 신규 정보로 변경하고, 상기 컴포넌트의 상태 정보를 '완료'로 변경하는 단계; 상기 중단된 컴포넌트의 상태 정보가 '업데이트'인 경우, 상기 컴포넌트의 현재 정보를 상기 신규 정보로 변경하고, 상기 컴포넌트의 상태 정보를 '완료'로 변경하는 단계; 및 상기 중단된 컴포넌트의 상태 정보가 '보류중'인 경우, 상기 컴포넌트의 현재 정보를 상기 신규 정보로 변경하고, 상기 컴포넌트의 상태 정보를 '완료'로 변경하는 단계를 더 포함한다.
바람직하게는, 상기 장치에 설치된 컴포넌트의 현재 버전 정보와 상기 서버에 저장되어 있는 컴포넌트 버전을 비교하여 업데이트할 컴포넌트를 결정하는 단계; 및 상기 중단된 컴포넌트 외에 업데이트할 컴포넌트가 더 존재하는 경우, 상기 업데이트할 각 컴포넌트에 대해, 상기 업데이트할 컴포넌트의 상태 정보를 '다운로드'로 변경하고, 상기 업데이트할 컴포넌트의 이전 정보를 현재 정보로 변경하고, 상기 서버로부터 신규 버전의 컴포넌트를 다운로드하여 상기 업데이트할 컴포넌트에 덮어쓰고, 상기 업데이트할 컴포넌트의 상태 정보를 '업데이트'로 변경하고, 상기 업데이트할 컴포넌트의 현재 정보를 상기 신규 정보로 변경하고, 상기 업데이트할 컴포넌트의 상태 정보를 '완료'로 변경하는 단계를 더 포함한다.
본 발명의 또 다른 특징은, 설치되어 있는 소프트웨어 컴포넌트를 업데이트하는 소프트웨어 업데이트 시스템에 있어서, 서버로부터 신규 버전의 컴포넌트를 다운로드하기 위한 네트웍 접속 수단; 하나 이상의 소프트웨어 컴포넌트, 상기 각 컴포넌트의 업데이트에 대한 정보를 포함하는 구성 정보, 상기 구성 정보를 이용하여 상기 컴포넌트를 상기 다운로드된 컴포넌트로 업데이트하는 업데이트 엔진을 저장하는 비휘발성 메모리; 상기 컴포넌트 및 상기 업데이트 엔진을 임시 저장하는 램; 및 상기 컴포넌트 및 상기 업데이트 엔진을 상기 램에 로드하여 실행하는 프로세서;를 포함하는 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명한다.
도 2a는 본 발명에 따른 소프트웨어 업데이트 방법의 일실시예를 도시한 흐름도이다. 본 발명에 따르면, 업데이트 트랜잭션의 상태 정보와 컴포넌트의 상태 정보를 관리하면서, 서버로부터 신규 버전의 컴포넌트를 다운로드하고(S43), 업데이트할 컴포넌트에 다운로드된 신규 버전의 컴포넌트를 덮어쓰는(overwrite)(S44) 트랜잭션을 수행함으로써, 소프트웨어 컴포넌트를 업데이트한다. 이때, 업데이트 트랜잭션의 처리 상태에 따라 트랜잭션의 상태 정보를 변경하고, 컴포넌트의 처리 상태에 따라 컴포넌트의 상태 정보를 변경하면서, 컴포넌트의 처리 상태에 따라 컴포넌트의 업데이트를 수행한다.
도 2b는 본 발명에 따른 소프트웨어 업데이트 방법의 구체적인 실시예를 도시한 흐름도이다. 본 발명에서는 업데이트 트랜잭션의 상태 정보와 설치되어 있는 소프트웨어 컴포넌트들에 대한 정보를 이용하여 소프트웨어 컴포넌트들에 대한 업데이트를 수행하며, 이들 정보는 컴포넌트 구성 DB에 저장된다. 이 DB에 저장되는 구성 정보에는, 업데이트 트랜잭션의 시작과 종료를 표시하는 트랜잭션의 상태 정보와, 각 컴포넌트에 대한 식별자, 현재 설치되어 있는 버전과 메모리 상의 주소 등을 기록한 현재 정보, 컴포넌트 업데이트의 현재 상태를 기록한 컴포넌트 상태 정보 및 업데이트 이전의 버전과 주소 등을 기록한 이전 정보 등이 포함될 수 있다. 트랜잭션의 상태는 '시작' 또는 '종료'이며, 컴포넌트의 상태는 '다운로드', '업데이트', '완료' 등이 될 수 있다.
먼저, 업데이트를 시작하기 전에, 트랜잭션의 상태 정보를 '시작'으로 기록하여, 소프트웨어 업데이트를 위한 트랜잭션을 시작한다(S30).
그런 후, 업데이트할 컴포넌트의 상태 정보에 해당하는 항목을 '다운로드'로 변경하고(S41), 컴포넌트의 이전 정보를 현재 설치되어 있는 컴포넌트에 대한 현재 정보로 변경한다(S42). 이 현재 정보는 구성 DB의 현재 정보를 읽음으로써 구할 수 있다. 그리고 네트웍을 통해 서버로부터 신규 버전의 컴포넌트를 다운로드한 후(S43) 현재 설치되어 있는 컴포넌트를 메모리로부터 삭제하고 다운로드 받은 신 규 버전의 컴포넌트를 저장한다(S44). 이렇게 기존 파일에 대한 백업본을 만들지 않고 새로운 파일을 기존 파일에 덮어쓰기 때문에, 저장 공간이 부족한 장치에서도 효율적인 소프트웨어 업데이트가 가능하다.
새로운 컴포넌트를 저장하고 나면, 컴포넌트의 상태 정보를 '업데이트'로 변경하고(S45), 컴포넌트의 현재 정보를 신규 버전의 컴포넌트에 대한 정보로 변경한다(S46). 즉, 신규로 다운로드 받은 컴포넌트의 버전과 메모리 상의 저장 주소 등을 구성 DB의 현재 정보 항목에 기록한다. 이렇게 컴포넌트의 업데이트가 이루어지고 나면, 해당 컴포넌트의 상태 정보를 '완료'로 변경하여(S47) 업데이트가 완료되었음을 표시하고, 트랜잭션의 상태 정보를 '종료'로 변경하여 트랜잭션을 종료한다(S70).
상기와 같이 트랜잭션의 상태 정보를 유지하고, 컴포넌트의 상태 정보를 절차에 따라 변경하는 이유는 소프트웨어 업데이트가 종료되기 전에 중단되었을 때 복구를 하기 위함이다. 상술한 바와 같이 이 실시예에서, 트랜잭션의 상태 정보는 '시작' 또는 '종료'이며, 컴포넌트의 상태 정보는 '다운로드', '업데이트' 또는 '완료'이다.
도 3은 다수의 소프트웨어 컴포넌트를 업데이트하는 동작 흐름도이다. 업데이트할 컴포넌트의 결정은 서버와의 통신을 통해, 장치에 설치된 컴포넌트의 현재 버전 정보와 서버에 저장되어 있는 컴포넌트 버전을 비교함으로써 수행될 수 있다(S10).
업데이트할 컴포넌트가 있으면, 트랜잭션을 시작하고(S30), 도 2b에 도시된 절차에 따라 컴포넌트의 업데이트를 수행한다(S41~S47). 업데이트할 컴포넌트가 여러 개인 경우, 즉 업데이트 안된 컴포넌트가 또 존재하는 경우는(S60)는 업데이트 과정(S41~S47)을 반복한 후, 더 이상 업데이트할 컴포넌트가 없을 때 트랜잭션을 종료한다(S70).
도 4a, 4b, 4c, 4d, 4e 및 4f는 본 발명에 따른 소프트웨어 업데이트 방법에 의한 메모리 내용 변경 과정의 예이다.
이 예에서는 불휘발성 메모리(401)에 소프트웨어 컴포넌트 3개(App.1(도시되지 않음), App.2(420), App.3(430))가 설치되어 있으며, 이들에 대한 구성 정보가 컴포넌트 구성 DB(Config DB, 402)에 기록되어 있다. 구성 정보에는 트랜잭션의 상태 정보(PackageCommit, 440)와, 각 컴포넌트에 대한 식별자(COMP, 450), 현재 버전 정보(VER, 460), 상태 정보(STATE, 470) 및 이전 버전 정보(PREVIOUS, 480) 등이 포함될 수 있다.
도 4a에 의하면, 먼저 트랜잭션 상태 정보에 해당하는 PackageCommit(440)이 'NO'로 설정된다(S41). 이는 트랜잭션이 시작되었음을 의미하는 것이다. 다음에, 업데이트 대상인 App.1의 상태 정보(470)가 '다운로드(Download)'로 변경되고(S42), 이전 버전 정보(480)가 현재 버전 정보(460)인 '1.0'으로 변경되며(S43), 이전 버전의 App.1이 삭제되고 대신 신규 버전의 App.1(New App.1, 410n)이 다운로드되어 저장된다(S44).
도 4b를 참조하면, 다음 단계로 App.1의 상태 정보(470)가 '업데이트(Update)'로 변경되고(S45), 현재 버전 정보(460)가 새로 다운로드 받은 컴포넌트 의 버전인 '1.1'로 변경된다(S46).
도 4c를 참조하면, 다음 단계로 App.1의 상태 정보(470)가 '완료(Done)'로 변경되어(S47), App.1에 대한 업데이트가 성공적으로 끝났음이 표시된다.
도 4d, 4e 및 4f는 유사한 방법으로 다음 업데이트할 컴포넌트인 App.2(420)를 업데이트하는 과정을 도시한 것이다. App.1과 마찬가지로, 상태 정보(470)가 '다운로드(Download)'로 변경되고(S48), 이전 버전 정보(480)가 현재 버전 정보(460)인 '2.0'으로 변경되며(S49), 이전 버전의 App.2가 삭제되고 대신 신규 버전의 App.2(New App.2, 420n)이 다운로드되어 저장된다(S50). 다음 단계로 App.2의 상태 정보(470)가 '업데이트(Update)'로 변경되고(S51), 현재 버전 정보(460)가 새로 다운로드 받은 컴포넌트의 버전인 '2.1'로 변경된다(S52). 그런 후, 상태 정보(470)가 '완료(Done)'로 변경되어(S53), 업데이트가 성공적으로 끝났음이 표시되고, PackageCommit(440)이 'YES'로 설정된다(S54). 이는 업데이트 트랜잭션이 모두 종료되었음을 의미하는 것이다.
도 5는 리소스를 함께 업데이트하는 경우의 동작 흐름도이다. 리소스는 어플리케이션과는 달리 필요할 때만 램에 로드되는 컴포넌트이며, 본 발명에 따르면 어플리케이션과 어플리케이션이 사용하는 리소스를 업데이트하는 경우 다음의 절차를 따른다. 이 실시예에서, 트랜잭션의 상태는 '시작' 또는 '종료'이며, 컴포넌트의 상태는 '다운로드', '업데이트', '완료' 또는 '보류중' 등이 될 수 있다.
먼저, 트랜잭션의 상태 정보를 '시작'으로 기록하여 트랜잭션을 시작하고(S30), 네트웍을 통해 서버로부터 신규 버전의 어플리케이션을 다운로드하여 상기 어플리케이션을 업데이트한다(S41~47). 어플리케이션의 업데이트는 상술한 도 2b에서와 같은 방법으로 수행될 수 있다.
다음으로, 리소스의 상태 정보를 '다운로드'로 변경하고(S51), 리소스의 이전 정보를 현재 저장되어 있는 리소스에 대한 정보인 현재 정보로 변경하고(S52), 서버로부터 신규 버전의 리소스를 다운로드하여 저장한다(S53). 즉, 리소스의 경우는 기존의 파일을 삭제하지 않으며, 리소스의 상태 정보를 '보류중'으로 변경하고(S54) 업데이트 과정을 마친다. 일반 어플리케이션의 업데이트와 같이 기존 리소스를 삭제한다면, 기존에 램에 로드되어 실행되고 있는 업데이트 이전의 어플리케이션이 새로운 버전의 리소스를 사용할 수 있게 되어 호환성 문제가 발생하기 때문이다.
도 6은 리소스를 함께 업데이트하는 경우 시스템 재부팅시 동작 흐름도이다. 상기와 같은 이유로 리소스가 '보류중' 상태로 업데이트가 끝난 경우, 장치의 재부팅시(S55) 트랜잭션이 종료되지 않은 채 업데이트가 끝났음을 인식할 수 있다.
이 경우, 상태 정보가 '보류중'인 컴포넌트(리소스)의 현재 정보를 신규 버전의 리소스에 대한 정보로 변경함으로써(S56), 재부팅시 메모리에 로드되어 실행중인 신규 버전의 어플리케이션이 신규 버전의 리소스를 사용할 수 있도록 한다. 그리고 리소스의 상태 정보를 '완료'로 변경하여 리소스에 대한 업데이트가 끝났음을 표시한 후(S57), 트랜잭션의 상태 정보를 '종료'로 변경하여 트랜잭션을 종료한다(S70). 이때, 이전 버전의 리소스가 삭제될 수 있다(S81).
도 7a, 7b, 7c, 7d, 7e 및 7f는 리소스를 함께 업데이트하는 경우 메모리 내 용 변경 과정을 도시한 예이다.
이 예에서는 불휘발성 메모리(401)에 소프트웨어 컴포넌트가 2개, 즉 어플리케이션(App.1, 도시되지 않음)과 이 어플리케이션이 사용하는 리소스(Res.1, 720)가 설치되어 있으며, 이들에 대한 구성 정보가 컴포넌트 구성 DB(402)에 기록되어 있다. 구성 정보에는 트랜잭션의 상태 정보(PackageCommit, 440)와 각 컴포넌트에 대한 식별자(COMP, 450), 현재 버전 정보(VER, 460), 상태 정보(STATE, 470) 및 이전 버전 정보(PREVIOUS, 480) 등이 포함될 수 있다.
도 7a, 7b 및 7c는 App.1의 업데이트 과정을 도시한 것이다. 먼저 트랜잭션 상태 정보에 해당하는 PackageCommit(440)이 'NO'로 설정된다(S71). 이는 트랜잭션이 시작되었음을 의미하는 것이다. 그런 후, App.1의 상태 정보(470)가 '다운로드(Download)'로 변경되고(S72), 이전 버전 정보(480)가 현재 버전 정보(460)인 '1.0'으로 변경되며(S73), 이전 버전의 App.1가 삭제되고 대신 신규 버전의 App.1(New App.1, 710n)이 다운로드되어 저장된다(S74). 다음 단계로, App.1의 상태 정보(470)가 '업데이트(Update)'로 변경되고(S75), 현재 버전 정보(460)가 새로 다운로드 받은 컴포넌트의 버전인 '1.1'로 변경된다(S76). 그런 후, 상태 정보(470)가 '완료(Done)'로 변경되어(S77), 업데이트가 성공적으로 끝났음이 표시된다.
도 7d, 7e 및 7f는 다음 업데이트할 컴포넌트인 Res.1(720)을 업데이트하는 과정을 도시한 것이다.
도 7d에 의하면, 먼저 Res.1의 상태 정보(470)가 '다운로드(Download)'로 변 경되고(S78), 이전 버전 정보(480)가 현재 버전 정보(460)인 '1.0'으로 변경되며(S79), 이전 버전의 Res.1(720)가 그대로 유지된 채 신규 버전의 Res.1(New Res.1, 720n)이 다운로드되어 저장된다(S80).
도 7e를 참조하면, 다음 단계로 Res.1의 상태 정보(470)가 '보류중(Pending)'으로 변경된다(S81).
도 7f에 도시된 과정은 장치의 재부팅 후에 수행된다. '보류중'인 상태의 컴포넌트에 대해 현재 버전 정보(460)가 도 7d에서 새로 다운로드 받은 컴포넌트(720n)의 버전인 '1.1'로 변경된 후(S82), 상태 정보(470)가 '완료(Done)'로 변경되어(S83), Resp.1에 대한 업데이트가 성공적으로 끝났음이 표시된다. 또한, PackageCommit(440)이 'YES'로 설정되며(S84), 이전 버전의 리소스(720)가 삭제된다(S85).
도 8은 본 발명에 따른 소프트웨어 업데이트 에러 복구 메커니즘 흐름도이다.
먼저, 소프트웨어 업데이트가 트랜잭션 종료 전 중단되었는지 여부를 판단하는데, 이는 트랜잭션 상태 정보를 읽고 트랜잭션의 상태 정보가 '시작'이면 중단된 것으로 판단할 수 있다(S20).
업데이트 트랜잭션이 중단된 경우는(S21), 컴포넌트의 상태 정보를 확인하여 업데이트가 중단된 컴포넌트를 판단하고, 중단된 컴포넌트의 상태 정보에 따라 업데이트 트랜잭션의 복구를 수행하게 된다(S22). 소프트웨어 업데이트시 각 절차에 따라 각 컴포넌트의 업데이트 상태 정보를 갱신했기 때문에, 업데이트가 중단된 컴 포넌트의 현재 상태 이후의 과정을 수행하여 업데이트 트랜잭션의 복구를 할 수 있다.
먼저, 중단된 컴포넌트의 상태 정보가 존재하지 않는 경우, 즉 'null' 값인 경우가 있을 수 있다. 이는 업데이트가 아직 수행되지 않고 트랜잭션만 시작된 채 중단된 경우이므로 해당 컴포넌트의 업데이트 과정을 처음부터 계속하면 된다(S41~S47).
중단된 컴포넌트의 상태 정보가 '다운로드'인 경우는, 해당 컴포넌트에 대한 업데이트가 이전 버전의 컴포넌트 파일을 삭제하거나 새로운 파일을 다운로드하려다 실패한 것으로 판단할 수 있다. 따라서, 이전 버전 정보의 변경 단계부터 진행하면 된다(S42~47).
한편, 중단된 컴포넌트의 상태 정보가 '업데이트'인 경우는, 신규 버전의 컴포넌트를 성공적으로 다운로드하여 저장한 경우이므로, 컴포넌트의 현재 정보를 신규 버전의 컴포넌트에 대한 정보로 변경하고(S46), 컴포넌트의 상태 정보를 '완료'로 변경하면 된다(S47).
중단된 컴포넌트의 상태 정보가 '완료'인 경우는, 해당 컴포넌트의 업데이트가 성공적으로 끝난 것이므로, 업데이트 안된 컴포넌트가 더 존재하는지 판단하여(S60) 다음 업데이트할 컴포넌트를 처리하면 된다.
중단된 컴포넌트의 상태 정보가 '보류중'인 경우는, 리소스의 다운로드 후 시스템 크래시로 업데이트가 중단되었거나 정상적으로 시스템이 종료된 후 재부팅된 경우이다. 이때는 컴포넌트의 현재 정보를 신규 버전의 리소스에 대한 정보로 변경하고(S46), 해당 리소스 컴포넌트의 상태 정보를 '완료'로 변경하면 된다(S47).
상기와 같이 중단된 컴포넌트에 대한 업데이트 복구를 수행하고 나면, 아직 업데이트가 안된 컴포넌트가 존재하는지 판단하고(S60) 업데이트가 필요한 추가의 컴포넌트를 모두 업데이트한 경우, 트랜잭션의 상태 정보를 '종료'로 변경하여 트랜잭션을 종료한다(S70).
도 9는 본 발명에 따른 소프트웨어 업데이트 시스템 구성도로서, 비휘발성 메모리(910), 프로세서(920), 램(930), 네트웍 접속 수단(940)으로 구성되어 있으며 네트웍 접속 수단(940)을 통해 서버(950)와 연결된다.
비휘발성 메모리(910)에는, 하나 이상의 소프트웨어 컴포넌트(911), 각 컴포넌트의 업데이트에 대한 정보를 포함하는 구성 정보(921), 이 구성 정보를 이용하여 소프트웨어 업데이트를 수행하는 업데이트 엔진(913)이 저장된다. 컴포넌트 구성 정보는 구체적으로, 업데이트 트랜잭션의 상태 변화에 대한 상태 정보와, 각 컴포넌트의 식별자, 이전 정보, 현재 정보 및 상태에 대한 정보를 포함한다. 또한, 서버(950)로부터 신규 버전의 컴포넌트를 다운로드하기 위한 네트웍 접속 수단(940)과, 컴포넌트(911) 및 업데이트 엔진(912) 등이 임시 저장되는 램(930)이 구비된다.
프로세서(930)는 소프트웨어 컴포넌트(911) 및 업데이트 엔진(912) 등을 램(930)에 로드하여 실행한다. 업데이트 엔진(913)은, 네트웍 접속 수단(940)을 통해 다운로드한 신규 버전의 컴포넌트를 비휘발성 메모리(910)에 저장하고, 구성 정 보(912)를 변경하면서 컴포넌트 업데이트 과정을 수행하는 프로그램이다.
업데이트 엔진(913)은, 업데이트할 컴포넌트의 상태 정보를 '다운로드'로 변경하고, 컴포넌트의 이전 정보를 현재 정보로 변경하고, 컴포넌트를 삭제한 후 신규 버전의 컴포넌트를 저장하고, 상태 정보를 '업데이트'로 변경하고, 현재 정보를 신규 버전의 컴포넌트에 대한 정보로 변경한 후, 상태 정보를 '완료'로 변경함으로써 컴포넌트의 업데이트를 수행한다.
또한, 업데이트 엔진은(913), 업데이트할 컴포넌트에 어플리케이션 및 상기 어플리케이션이 사용하는 리소스가 포함되는 경우, 어플리케이션을 먼저 업데이트 한 후, 리소스는 삭제하지 않은 채 네트웍 접속 수단(940)을 통해 서버(950)로부터 신규 버전의 리소스를 다운로드하여 저장하고, 리소스의 상태 정보를 '보류중'으로 변경한다. 추후 시스템(900)의 재부팅시, '보류중' 상태의 리소스의 현재 정보를 신규 버전의 리소스에 대한 정보로 변경하고, 리소스의 상태 정보를 '완료'로 변경함으로써, 리소스에 대한 업데이트를 끝낸다.
또한, 업데이트 엔진은(913), 시스템의 부팅시, 메모리(910)의 구성 정보(912)를 읽어 이전에 컴포넌트 업데이트가 완료되기 전에 중단되었는지 판단하고, 업데이트가 중단되었으면 컴포넌트의 상태 정보를 확인하여 중단된 컴포넌트를 판단하고, 상기 중단된 컴포넌트의 상태 정보에 따라 상기 업데이트가 중단된 이후의 과정을 수행함으로써 에러가 발생한 업데이트의 복구를 수행한다.
상술한 바와 같은 본 발명에 따른 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
이상에서 설명한 바와 같은 본 발명의 구성에 의하면, 저장 공간이 부족한 휴대 단말과 같은 장치에서도 소프트웨어 업데이트 및 복구를 효율적으로 수행할 수 있으며, 소프트웨어 업데이트에 따른 어플리케이션과 리소스 간의 버전 호환성 문제도 해결할 수 있다.

Claims (27)

  1. 서버와 연결된 장치에 설치된 소프트웨어 컴포넌트를 업데이트하는 소프트웨어 업데이트 방법에 있어서,
    업데이트 트랜잭션의 상태 정보와 컴포넌트의 상태 정보를 관리하면서, 상기 서버로부터 신규 버전의 컴포넌트를 다운로드하고, 업데이트할 컴포넌트에 상기 신규 버전의 컴포넌트를 덮어쓰는 트랜잭션을 수행하는 단계를 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  2. 제1항에 있어서, 상기 트랜잭션 수행 단계는,
    상기 업데이트 트랜잭션의 처리 상태에 따라 상기 트랜잭션의 상태 정보를 변경하는 단계;
    상기 컴포넌트의 처리 상태에 따라 상기 컴포넌트의 상태 정보를 변경하는 단계; 및
    상기 컴포넌트의 처리 상태에 따라 상기 컴포넌트의 업데이트를 수행하는 단계를 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  3. 제1항에 있어서, 상기 트랜잭션 수행 단계는,
    상기 트랜잭션의 상태 정보를 '시작'으로 기록하는 트랜잭션 시작 단계;
    상기 업데이트할 컴포넌트의 상태 정보를 '다운로드'로 변경하고, 상기 컴포 넌트의 이전 정보를 상기 컴포넌트의 현재 정보로 변경하고, 상기 서버로부터 상기 신규 버전의 컴포넌트를 다운로드하고, 상기 컴포넌트를 삭제한 후 상기 신규 버전의 컴포넌트를 저장하는 다운로드 단계;
    상기 컴포넌트의 상태 정보를 '업데이트'로 변경하고, 상기 컴포넌트의 현재 정보를 상기 신규 버전의 컴포넌트에 대한 신규 정보로 변경하는 업데이트 단계;
    상기 컴포넌트의 상태 정보를 '완료'로 변경하는 완료 단계; 및
    상기 트랜잭션의 상태 정보를 '종료'로 변경하는 트랜잭션 종료 단계를 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  4. 제3항에 있어서,
    상기 이전 정보, 상기 현재 정보 및 상기 신규 정보는 해당 컴포넌트의 버전 정보를 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  5. 제4항에 있어서,
    상기 이전 정보, 상기 현재 정보 및 상기 신규 정보는 해당 컴포넌트의 주소를 더 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  6. 제4항에 있어서,
    상기 장치에 설치된 컴포넌트의 현재 버전 정보와 상기 서버에 저장되어 있는 컴포넌트 버전 정보를 비교하여 업데이트할 컴포넌트를 결정하는 단계를 더 포 함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  7. 제6항에 있어서,
    상기 업데이트할 컴포넌트가 복수인 경우, 상기 트랜잭션 시작 단계 후 상기 트랜잭션 종료 단계 전, 상기 각 컴포넌트에 대해, 상기 다운로드 단계, 상기 업데이트 단계 및 상기 완료 단계를 수행하는 단계를 더 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  8. 서버와 연결된 장치에 설치된 어플리케이션과 상기 어플리케이션이 사용하는 리소스를 업데이트하는 소프트웨어 업데이트 방법에 있어서,
    상기 서버로부터 신규 버전의 어플리케이션을 다운로드하여 상기 어플리케이션을 업데이트하는 단계; 및
    상기 서버로부터 신규 버전의 리소스를 다운로드하여 저장하고, 상기 장치의 재부팅 후 상기 리소스의 현재 정보를 상기 신규 버전의 리소스에 대한 정보로 변경하는 단계를 포함하는 것을 특징으로 하는 것을 소프트웨어 업데이트 방법.
  9. 서버와 연결된 장치에 설치된 어플리케이션과 상기 어플리케이션이 사용하는 리소스를 업데이트하는 소프트웨어 업데이트 방법에 있어서,
    트랜잭션의 상태 정보를 '시작'으로 기록하여 트랜잭션을 시작하는 단계;
    상기 서버로부터 신규 버전의 어플리케이션을 다운로드하여 상기 어플리케이 션을 업데이트하는 단계;
    상기 리소스의 상태 정보를 '다운로드'로 변경하고, 상기 리소스의 이전 정보를 상기 리소스의 현재 정보로 변경하고, 상기 서버로부터 신규 버전의 리소스를 다운로드하여 저장하는 단계; 및
    상기 리소스의 상태 정보를 '보류중'으로 변경하는 단계;를 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  10. 제9항에 있어서,
    상기 장치의 재부팅시, 상기 '보류중' 상태의 리소스의 현재 정보를 상기 신규 버전의 리소스에 대한 정보로 변경하고, 상기 리소스의 상태 정보를 '완료'로 변경하는 단계; 및
    상기 트랜잭션의 상태 정보를 '종료'로 변경하여 트랜잭션을 종료하는 단계를 더 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  11. 제10항에 있어서,
    상기 이전 버전의 리소스를 삭제하는 단계를 더 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  12. 제11항에 있어서, 상기 어플리케이션 업데이트 단계는,
    상기 어플리케이션의 상태 정보를 '다운로드'로 변경하고, 상기 어플리케이 션의 이전 정보를 상기 어플리케이션의 현재 정보로 변경하고, 상기 서버로부터 신규 버전의 어플리케이션을 다운로드하여 상기 어플리케이션에 덮어쓰기 하는 단계;
    상기 어플리케이션의 상태 정보를 '업데이트'로 변경하고, 상기 어플리케이션의 현재 정보를 상기 신규 버전의 어플리케이션에 대한 정보로 변경하는 단계; 및
    상기 어플리케이션의 상태 정보를 '완료'로 변경하는 단계;를 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  13. 제12항에 있어서,
    상기 이전 정보, 상기 현재 정보, 상기 신규 버전의 리소스에 대한 정보, 상기 신규 버전의 어플리케이션에 대한 정보는 해당 컴포넌트의 버전 정보를 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  14. 제13항에 있어서,
    상기 이전 정보, 상기 현재 정보, 상기 신규 버전의 리소스에 대한 정보, 상기 신규 버전의 어플리케이션에 대한 정보는 해당 컴포넌트의 주소를 더 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  15. 서버와 연결된 장치에 설치된 소프트웨어 컴포넌트를 업데이트하는 소프트웨어 업데이트 방법에 있어서,
    소프트웨어 업데이트가 트랜잭션 종료 전 중단되었는지 여부를 판단하는 단계;
    상기 트랜잭션이 중단된 경우는, 컴포넌트의 상태 정보를 확인하여 상기 업데이트가 중단된 컴포넌트를 판단하고, 상기 중단된 컴포넌트의 상태 정보에 따라 상기 업데이트가 중단된 이후의 과정을 수행함으로써 상기 트랜잭션의 복구를 수행하는 단계;를 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  16. 제15항에 있어서, 상기 중단 여부 판단 단계는,
    상기 트랜잭션의 상태 정보를 읽고 상기 트랜잭션 상태 정보가 '시작'이면 중단된 것으로 판단하는 단계를 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  17. 제15항에 있어서, 상기 복구 수행 단계는,
    상기 중단된 컴포넌트의 상태 정보가 존재하지 않는 경우, 상기 컴포넌트의 상태 정보를 '다운로드'로 변경하고, 상기 컴포넌트의 이전 정보를 상기 컴포넌트의 현재 정보로 변경하고, 상기 서버로부터 신규 버전의 컴포넌트를 다운로드하여 상기 컴포넌트에 덮어쓰고, 상기 컴포넌트의 상태 정보를 '업데이트'로 변경하고, 상기 컴포넌트의 현재 정보를 상기 신규 버전의 컴포넌트에 대한 신규 정보로 변경하고, 상기 컴포넌트의 상태 정보를 '완료'로 변경하는 단계;
    상기 중단된 컴포넌트의 상태 정보가 '다운로드'인 경우, 상기 컴포넌트의 이전 정보를 현재 정보로 변경하고, 상기 서버로부터 신규 버전의 컴포넌트를 다운로드하여 상기 컴포넌트에 덮어쓰고, 상기 컴포넌트의 상태 정보를 '업데이트'로 변경하고, 상기 컴포넌트의 현재 정보를 상기 신규 정보로 변경하고, 상기 컴포넌트의 상태 정보를 '완료'로 변경하는 단계;
    상기 중단된 컴포넌트의 상태 정보가 '업데이트'인 경우, 상기 컴포넌트의 현재 정보를 상기 신규 정보로 변경하고, 상기 컴포넌트의 상태 정보를 '완료'로 변경하는 단계; 및
    상기 중단된 컴포넌트의 상태 정보가 '보류중'인 경우, 상기 컴포넌트의 현재 정보를 상기 신규 정보로 변경하고, 상기 컴포넌트의 상태 정보를 '완료'로 변경하는 단계를 더 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  18. 제17항에 있어서,
    상기 이전 정보, 상기 현재 정보 및 상기 신규 정보는 해당 컴포넌트의 버전 정보를 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  19. 제18항에 있어서,
    상기 이전 정보, 상기 현재 정보 및 상기 신규 정보는 해당 컴포넌트의 주소를 더 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  20. 제18항에 있어서,
    상기 장치에 설치된 컴포넌트의 현재 버전 정보와 상기 서버에 저장되어 있는 컴포넌트 버전을 비교하여 업데이트할 컴포넌트를 결정하는 단계; 및
    상기 중단된 컴포넌트 외에 업데이트할 컴포넌트가 더 존재하는 경우, 상기 업데이트할 각 컴포넌트에 대해, 상기 업데이트할 컴포넌트의 상태 정보를 '다운로드'로 변경하고, 상기 업데이트할 컴포넌트의 이전 정보를 현재 정보로 변경하고, 상기 서버로부터 신규 버전의 컴포넌트를 다운로드하여 상기 업데이트할 컴포넌트에 덮어쓰고, 상기 업데이트할 컴포넌트의 상태 정보를 '업데이트'로 변경하고, 상기 업데이트할 컴포넌트의 현재 정보를 상기 신규 정보로 변경하고, 상기 업데이트할 컴포넌트의 상태 정보를 '완료'로 변경하는 단계를 더 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  21. 제20항에 있어서,
    상기 트랜잭션의 상태 정보를 종료로 변경하여 상기 트랜잭션을 종료하는 단계;를 더 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
  22. 제1항 내지 제21항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
  23. 설치되어 있는 소프트웨어 컴포넌트를 업데이트하는 소프트웨어 업데이트 시스템에 있어서,
    서버로부터 신규 버전의 컴포넌트를 다운로드하기 위한 네트웍 접속 수단;
    하나 이상의 소프트웨어 컴포넌트, 상기 각 컴포넌트의 업데이트에 관한 정보를 포함하는 구성 정보, 상기 구성 정보를 이용하여 상기 컴포넌트를 상기 다운로드된 컴포넌트로 업데이트하는 업데이트 엔진을 저장하는 비휘발성 메모리;
    상기 컴포넌트 및 상기 업데이트 엔진을 임시 저장하는 램; 및
    상기 컴포넌트 및 상기 업데이트 엔진을 상기 램에 로드하여 실행하는 프로세서;를 포함하는 것을 특징으로 하는 소프트웨어 업데이트 시스템.
  24. 제23항에 있어서, 상기 구성 정보는,
    업데이트 트랜잭션의 상태 정보와, 상기 각 컴포넌트의 식별자, 이전 정보, 현재 정보 및 상태 정보를 포함하는 것을 특징으로 하는 소프트웨어 업데이트 시스템.
  25. 제24항에 있어서, 상기 업데이트 엔진은,
    상기 업데이트할 컴포넌트의 상태 정보를 '다운로드'로 변경하고, 상기 업데이트할 컴포넌트의 이전 정보를 현재 정보로 변경하고, 상기 업데이트할 컴포넌트에 상기 신규 버전의 컴포넌트를 덮어쓰고, 상기 업데이트할 컴포넌트의 상태 정보를 '업데이트'로 변경하고, 상기 업데이트할 컴포넌트의 현재 정보를 상기 신규 버전의 컴포넌트에 대한 정보로 변경하고, 상기 업데이트할 컴포넌트의 상태 정보를 '완료'로 변경하는 것을 특징으로 하는 소프트웨어 업데이트 시스템.
  26. 제25항에 있어서, 상기 업데이트 엔진은,
    상기 업데이트할 컴포넌트에 어플리케이션 및 상기 어플리케이션이 사용하는 리소스가 포함되는 경우, 상기 어플리케이션을 먼저 업데이트 한 후, 상기 리소스는 삭제하지 않은 채 상기 네트웍 접속 수단을 통해 상기 서버로부터 신규 버전의 리소스를 다운로드하여 저장하고, 상기 리소스의 상태 정보를 '보류중'으로 변경하고,
    상기 장치의 재부팅시, 상기 '보류중' 상태의 리소스의 현재 정보를 상기 신규 버전의 리소스에 대한 정보로 변경하고, 상기 리소스의 상태 정보를 '완료'로 변경하는 것을 특징으로 하는 소프트웨어 업데이트 시스템.
  27. 제25항에 있어서, 상기 업데이트 엔진은,
    상기 시스템의 부팅시, 상기 구성 정보를 읽어 이전에 컴포넌트 업데이트가 완료되기 전에 중단되었는지 판단하고, 업데이트가 중단되었으면 컴포넌트의 상태 정보를 확인하여 중단된 컴포넌트를 판단하고, 상기 중단된 컴포넌트의 상태 정보에 따라 상기 업데이트가 중단된 이후의 과정을 수행하는 것을 특징으로 하는 소프트웨어 업데이트 시스템.
KR1020050088691A 2005-09-23 2005-09-23 소프트웨어 업데이트 방법 및 시스템과 그 방법을 기록한컴퓨터 판독 가능한 기록매체 KR20070034239A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020050088691A KR20070034239A (ko) 2005-09-23 2005-09-23 소프트웨어 업데이트 방법 및 시스템과 그 방법을 기록한컴퓨터 판독 가능한 기록매체
US11/507,471 US20070074201A1 (en) 2005-09-23 2006-08-22 Method and system for updating software and computer readable recording medium storing the method
EP06120167A EP1770512A3 (en) 2005-09-23 2006-09-06 Method and system for updating software
CNA2006101595151A CN1936844A (zh) 2005-09-23 2006-09-25 用于更新软件的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050088691A KR20070034239A (ko) 2005-09-23 2005-09-23 소프트웨어 업데이트 방법 및 시스템과 그 방법을 기록한컴퓨터 판독 가능한 기록매체

Publications (1)

Publication Number Publication Date
KR20070034239A true KR20070034239A (ko) 2007-03-28

Family

ID=37025228

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050088691A KR20070034239A (ko) 2005-09-23 2005-09-23 소프트웨어 업데이트 방법 및 시스템과 그 방법을 기록한컴퓨터 판독 가능한 기록매체

Country Status (4)

Country Link
US (1) US20070074201A1 (ko)
EP (1) EP1770512A3 (ko)
KR (1) KR20070034239A (ko)
CN (1) CN1936844A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190061865A (ko) * 2017-11-28 2019-06-05 엘지전자 주식회사 공기조화시스템의 중앙제어장치 및 그의 소프트웨어 업데이트 방법
US10489148B1 (en) 2018-06-22 2019-11-26 TmaxSoft Co., Ltd. Unnecessary resource recognition and release plan in application hot deploy on distributed system
US10545754B2 (en) 2018-06-22 2020-01-28 TmaxSoft Co., Ltd. Application hot deploy method to guarantee application version consistency and computer program stored in computer readable medium therefor

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080088877A1 (en) * 2006-10-16 2008-04-17 Michael Cacenco System and Method for Updating Reference to a Data-Source In a Component-Based Application
KR20080112914A (ko) * 2007-06-22 2008-12-26 삼성전자주식회사 이벤트 메시지 수신 방법, 이벤트 메시지 전송 방법,피제어 장치 및 제어 포인트
US7857222B2 (en) 2007-08-16 2010-12-28 Hand Held Products, Inc. Data collection system having EIR terminal interface node
US9323519B2 (en) * 2007-08-31 2016-04-26 Red Hat, Inc. Packaging an application
US8606765B2 (en) * 2007-11-30 2013-12-10 Red Hat, Inc. Systems and methods for updating software appliances
US8924920B2 (en) 2008-02-29 2014-12-30 Red Hat, Inc. Providing a software appliance based on a role
US8458658B2 (en) * 2008-02-29 2013-06-04 Red Hat, Inc. Methods and systems for dynamically building a software appliance
US8935687B2 (en) 2008-02-29 2015-01-13 Red Hat, Inc. Incrementally updating a software appliance
CN101252759B (zh) * 2008-04-03 2011-12-21 华为终端有限公司 一种组件安装的处理方法、系统和装置
US9092243B2 (en) * 2008-05-28 2015-07-28 Red Hat, Inc. Managing a software appliance
US8868721B2 (en) * 2008-05-29 2014-10-21 Red Hat, Inc. Software appliance management using broadcast data
US10657466B2 (en) 2008-05-29 2020-05-19 Red Hat, Inc. Building custom appliances in a cloud-based network
US8943496B2 (en) * 2008-05-30 2015-01-27 Red Hat, Inc. Providing a hosted appliance and migrating the appliance to an on-premise environment
US9032367B2 (en) 2008-05-30 2015-05-12 Red Hat, Inc. Providing a demo appliance and migrating the demo appliance to a production appliance
CN101377744B (zh) * 2008-09-24 2012-02-15 华为终端有限公司 一种终端设备软件升级恢复方法及装置
US9210173B2 (en) * 2008-11-26 2015-12-08 Red Hat, Inc. Securing appliances for use in a cloud computing environment
CN101782855B (zh) * 2009-01-15 2013-03-20 华为技术有限公司 一种按配置删除软件的方法和设备
CN101807149B (zh) * 2009-02-18 2013-08-21 联咏科技股份有限公司 可安全复原的固件更新方法及其嵌入式电子装置
CN101593121B (zh) * 2009-06-23 2014-03-05 中兴通讯股份有限公司 软件在线升级的方法、装置及系统
US8504443B2 (en) * 2009-08-31 2013-08-06 Red Hat, Inc. Methods and systems for pricing software infrastructure for a cloud computing environment
CN101706727B (zh) * 2009-11-19 2014-12-10 中兴通讯股份有限公司 升级方法及装置
US9497092B2 (en) 2009-12-08 2016-11-15 Hand Held Products, Inc. Remote device management interface
US8533701B2 (en) * 2010-03-15 2013-09-10 Microsoft Corporation Virtual machine image update service
JP5392203B2 (ja) * 2010-08-19 2014-01-22 株式会社リコー 情報処理装置、情報処理システム、インストール支援方法、及びインストール支援プログラム
CN101969384B (zh) * 2010-10-11 2012-07-25 北京星网锐捷网络技术有限公司 针对主备主控板切换的兼容性判断方法、装置及网络设备
CN102456152B (zh) * 2010-11-01 2013-12-18 上海华虹Nec电子有限公司 Rfid系统的电子标签的电源产生电路
CN102281160A (zh) * 2011-09-15 2011-12-14 苏州阔地网络科技有限公司 一种功能自动升级的方法、系统及服务器
US9286052B1 (en) * 2011-09-15 2016-03-15 Emc Corporation Upgrading software on a pair of nodes in a clustered environment
US8539123B2 (en) 2011-10-06 2013-09-17 Honeywell International, Inc. Device management using a dedicated management interface
US8621123B2 (en) 2011-10-06 2013-12-31 Honeywell International Inc. Device management using virtual interfaces
US8612516B2 (en) * 2011-11-28 2013-12-17 Wyse Technology Inc. Deployment of a driver or an application on a client device having a write-filter
US8606892B2 (en) 2011-11-28 2013-12-10 Wyse Technology Inc. Deployment and updating of applications and drivers on a client device using an extensible markup language (XML) configuration file
US20130139139A1 (en) * 2011-11-28 2013-05-30 Wyse Technology Inc. Automatic updating of an application or a driver on a client device using a deployment configuration file
CN103186401B (zh) * 2011-12-31 2016-04-20 北京新媒传信科技有限公司 一种软件系统及其配置更新方法
JP5821640B2 (ja) * 2012-01-06 2015-11-24 株式会社リコー 情報処理装置
CN103777976B (zh) * 2012-10-25 2018-06-22 海尔集团公司 单片机及其在线升级方法和在线升级装置
US9213806B2 (en) * 2012-11-08 2015-12-15 Bank Of America Corporation Managing and providing access to applications in an application-store module
CN103440166A (zh) * 2013-08-30 2013-12-11 西安电子科技大学 一种从远程组件仓库按需下载的软件现场组装系统
US9201933B2 (en) * 2014-04-01 2015-12-01 BizDox, LLC Systems and methods for documenting, analyzing, and supporting information technology infrastructure
KR102261815B1 (ko) * 2014-10-30 2021-06-07 삼성전자주식회사 펌웨어 업데이트 시간을 줄일 수 있는 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
CN104881311B (zh) * 2015-05-28 2018-06-08 南京南瑞继保电气有限公司 一种版本兼容的判断方法及装置
US9652218B2 (en) * 2015-06-17 2017-05-16 International Business Machines Corporation Feature exploitation evaluator
CN105119944B (zh) * 2015-09-23 2019-01-18 北京金山安全软件有限公司 一种应用的启动方法和相关装置
KR20170127138A (ko) * 2016-05-11 2017-11-21 현대자동차주식회사 업데이트 소프트웨어 제공 시스템 및 그 방법
CN110955441B (zh) 2018-09-27 2021-11-26 华为技术有限公司 一种算法的更新方法及装置
CN109343881A (zh) * 2018-10-11 2019-02-15 珠海格力电器股份有限公司 固件升级更新方法、装置和空调
CN117270914B (zh) * 2023-11-17 2024-04-16 西安第六镜网络科技有限公司 一种终端设备的系统升级方法、装置、设备和介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6301708B1 (en) * 1998-11-12 2001-10-09 Hewlett-Packard Company Software installation process using abstract data and program files
US6397355B1 (en) * 1999-03-29 2002-05-28 International Business Machines Corporation System, method, and program for automatic error detection while utilizing a software state machine for carrying out the process flow of a software program
US6598225B1 (en) * 1999-03-29 2003-07-22 International Business Machines Corporation System, method, and program for utilizing a software state machine carrying out the process flow of a software program
US6457122B1 (en) * 1999-06-18 2002-09-24 Phoenix Technologies Ltd. Fault tolerant process for the delivery of programs to writeable storage device utilizing pre-operating system software/firmware

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190061865A (ko) * 2017-11-28 2019-06-05 엘지전자 주식회사 공기조화시스템의 중앙제어장치 및 그의 소프트웨어 업데이트 방법
US10489148B1 (en) 2018-06-22 2019-11-26 TmaxSoft Co., Ltd. Unnecessary resource recognition and release plan in application hot deploy on distributed system
US10545754B2 (en) 2018-06-22 2020-01-28 TmaxSoft Co., Ltd. Application hot deploy method to guarantee application version consistency and computer program stored in computer readable medium therefor

Also Published As

Publication number Publication date
EP1770512A2 (en) 2007-04-04
CN1936844A (zh) 2007-03-28
EP1770512A3 (en) 2009-01-21
US20070074201A1 (en) 2007-03-29

Similar Documents

Publication Publication Date Title
KR20070034239A (ko) 소프트웨어 업데이트 방법 및 시스템과 그 방법을 기록한컴퓨터 판독 가능한 기록매체
KR100750132B1 (ko) 부팅, 소프트웨어 자동 업데이트 및 에러 복원 방법과 그시스템, 그 방법을 기록한 컴퓨터 판독 가능한 기록매체
KR101143112B1 (ko) 페일세이프 방식으로 맞춤 소프트웨어 영상 갱신을불휘발성 저장 장치에 적용하는 시스템 및 방법
US9804933B2 (en) System differential upgrade method, apparatus, and mobile terminal
US8196130B2 (en) Tri-phase boot process in electronic devices
US9081639B2 (en) System and method for remotely re-imaging a computer system
US20050132351A1 (en) Updating electronic device software employing rollback
US20100235617A1 (en) System recovery method and embedded system with automatic recovery function
TWI396076B (zh) 無線終端機、無線終端機之非揮發性記憶體及診斷資訊之故障安全保存方法
US20230393840A1 (en) File update method and apparatus, device and storage medium
CN113032032B (zh) 一种系统管理方法、装置、计算设备及可读存储介质
CN111562934A (zh) 一种基于热补丁的软件系统升级方法、终端及存储介质
WO2015127730A1 (zh) 版本文件的运行方法及装置
US20130086572A1 (en) Generation apparatus, generation method and computer readable information recording medium
WO2018049798A1 (zh) 一种缓存分区重构的方法和装置
CN108664255B (zh) 一种软件升级方法及装置
CN115951949A (zh) 一种bios的配置参数的恢复方法、装置及计算设备
KR100832269B1 (ko) 무선 통신 단말의 프로그램 갱신 방법 및 시스템
CN110795113A (zh) 一种Redis集群服务的安装方法、服务器和介质
CN112631637B (zh) 基于rtos的ota升级方法、系统、设备及存储介质
CN104750579A (zh) 制作内存镜像的方法和装置
JP5784792B1 (ja) 通信機器及びプログラム
CN117270914B (zh) 一种终端设备的系统升级方法、装置、设备和介质
CN115599405A (zh) 一种基于docker的扩展服务管理方法及相关装置
CN115951909A (zh) 一种片内动态加载应用软件的在线升级固化方法

Legal Events

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