KR20050074993A - 업그레이드 중 발생하는 장애 및 오류로부터의 자동 복구를포함하는 전자식 파일의 업그레이드 - Google Patents

업그레이드 중 발생하는 장애 및 오류로부터의 자동 복구를포함하는 전자식 파일의 업그레이드 Download PDF

Info

Publication number
KR20050074993A
KR20050074993A KR1020057008434A KR20057008434A KR20050074993A KR 20050074993 A KR20050074993 A KR 20050074993A KR 1020057008434 A KR1020057008434 A KR 1020057008434A KR 20057008434 A KR20057008434 A KR 20057008434A KR 20050074993 A KR20050074993 A KR 20050074993A
Authority
KR
South Korea
Prior art keywords
upgrade
communication device
file
portable communication
software component
Prior art date
Application number
KR1020057008434A
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 이노패스 소프트웨어, 아이엔시.
Publication of KR20050074993A publication Critical patent/KR20050074993A/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/42136Administration or customisation of services
    • H04M3/42178Administration or customisation of services by downloading data to substation equipment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/38Transceivers, i.e. devices in which transmitter and receiver form a structural unit and in which at least one part is used for functions of transmitting and receiving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72406User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by software upgrading or downloading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

휴대용 통신장치는 하나 이상의 무선 결합을 통하여 업그레이드 파일을 수신하도록 제공된다. 상기 업그레이드 파일의 콘텐츠는 상기 휴대용 통신장치의 소프트웨어 구성요소 내의 오류를 수리하기 위한 정보 및/또는 상기 휴대용 통신장치의 기능을 업그레이드하기 위한 정보를 포함한다. 상기 휴대용 통신장치는 상기 업그레이드 파일 콘텐츠를 이용하여 상기 소프트웨어 구성요소를 자동으로 업그레이드한다. 상기 휴대용 통신장치는 상기 자동 업그레이드 동안 장애 또는 오류를 검출할 때, 하나의 운영 상태로 자동으로 복구된다. 게다가 상기 휴대용 통신장치는 상기 오류 또는 장애 이후에 상기 자동 업그레이드를 계속 진행하거나 또는 다시 시작한다.

Description

업그레이드 중 발생하는 장애 및 오류로부터의 자동 복구를 포함하는 전자식 파일의 업그레이드{UPGRADING OF ELECTRONIC FILES INCLUDING AUTOMATIC RECOVERY FROM FAILURE AND ERRORS OCCURRING DURING THE UPGRADE}
본 발명은 전자식 파일(electronic files)의 업그레이딩(upgrading) 및 유지 보수(maintaining)에 관한 것이다.
호스트 장치(host device) 내에 기능성(functionality)을 제공하기 위하여 프로세서 또는 중앙처리장치(CPU)에서 실행되는 소프트웨어는 종종 시간이 지나면서 변한다. 상기 변화는 소프트웨어 파일 내의 버그(bugs) 또는 오류를 수정하고, 발전하는 기술에 적응하며, 또는 새로운 특징 및 기능을 부가할 필요성에서 생긴다. 특히, 이동 무선장치 상에 호스트된 내장 소프트웨어 구성요소들은 종종 교정을 필요로 하는 다수의 소프트웨어 버그를 포함한다.
도 1 은 실시예에 따른 파일 업그레이드 시스템의 블록 다이어그램(block diagram).
도 2 는 파일 업그레이드 시스템 실시예의 구성요소(components)를 포함하는 예시적인 서비스 제공자 기반구조(service provider infrastructure)의 블록 다이어그램.
도 3 은 실시예에 따른 클라이언트 장치 구조의 정보 검색(accessing information)을 위한 플로우 다이어그램(flow diagram).
도 4 는 실시예에 따른 클라이언트 장치 구성파일(configuration files)을 업그레이드하기 위한 플로우 다이어그램.
도 5A 및 5B 는 실시예에 따른 서로 다른 파일을 이용하는 임계 소프트웨어(critical software) 구성요소를 업그레이드하기 위한 플로우 다이어그램.
도 6 은 도 5의 실시예에 따른 서로 다른 파일을 이용하는 임계 소프트웨어 구성요소에 대한 블록 다이어그램 표현.
도 7A 및 7B 는 대체적인 실시예에 따른 서로 다른 파일을 이용하는 임계 소프트웨어 구성요소를 업그레이드하기 위한 플로우 다이어그램.
도 8 은 도 7A 및 7 B의 실시예에 따른 서로 다른 파일을 이용하는 임계 소프트웨어 구성요소 업그레이드에 대한 블록 다이어그램 표현.
도 9 는 실시예에 따른 새로운 파일을 이용하는 임계 소프트웨어 구성요소를 업그레이드하기 위한 플로우 다이어그램.
도 10 은 도 9의 실시예에 따른 새로운 파일을 이용하는 임계 소프트웨어 구성요소 업그레이드에 대한 블록 다이어그램 표현.
도 11 은 실시예에 따른 서로 다른 파일을 이용하는 임계 구성요소 업그레이드 동안 오류로부터 클라이언트 장치(client device)를 복구(recovering)하기 위한 플로우 다이어그램.
도 12 는 실시예에 따른 서로 다른 파일을 이용하는 비-임계(non-critical) 구성요소 업그레이드 동안 오류로부터 클라이언트 장치(client device)를 복구(recovering)하기 위한 플로우 다이어그램.
도 13 은 실시예에 따른 새로운 파일을 이용하는 임계 구성요소 업그레이드 동안 오류로부터 클라이언트 장치(client device)를 복구(recovering)하기 위한 플로우 다이어그램.
도 14 는 실시예 따른 새로운 파일을 이용하는 비-임계 구성요소 업그레이드 동안 오류로부터 클라이언트 장치(client device)를 복구(recovering)하기 위한 플로우 다이어그램.
상기 도면에서, 같은 참조부호(reference number)는 동일한 또는 실질적으로 유사한 소자(elements) 또는 행동(acts)을 식별한다. 어떠한 특정한 소자 또는 행동에 대한 설명을 쉽게 식별하기 위하여, 참조부호에서 가장 중요한 숫자(digit) 또는 숫자들(digits)은 그와 같은 소자가 처음 도입되는 도면부호(figure number)를 참조한다(즉, 소자(116)는 도 1에서 처음 도입되고, 도 1에 대하여 설명된다).
만일 아래에서 다르게 기술되지 않는다면, 상기 도면에서 도시되는 다양한 블록(blocks) 및 구조(structures)의 구성(construction)과 연산(operation)은 통상적인 디자인 형태이다. 결과적으로, 그와 같은 블록들은 그들이 당업자에 의해 이해될 것이기 때문에 이곳에서 더욱 상세히 기술될 필요가 없다. 그와 같은 더욱 상세한 부분은 간결함을 위해 그리고 본 발명의 상세한 설명을 불명료하게 하지 않기 위해 생략되었다. 상기 도면에 필요한 어떠한 수정들은 이곳에서 제시되는 상세한 설명에 기초하여 당업자에 의해 쉽게 만들어질 수 있다.
도 3, 4, 5A, 5B, 7A, 7B, 9 및 11-14를 참조하면, 플로우 다이어그램의 연산은 하나 이상의 프로세서(processor)에 의해 제어되나, 그런 식으로만 제한되지는 않는다. 이와 같은 플로우 다이어그램에서 기술되는 각각의 블록들은 당해 기술 분야에서 잘 알려진 유형이고, 이곳에서 기술될 필요가 없는 일련의 연산들을 그것 자체가 포함할 수 있다. 당업자들은 소스 코드(source code), 마이크로코드(microcode), 프로그램 논리 배열(program logic array)을 생성할 수 있고, 또는 이와 같은 플로우 다이어그램 및 이곳에서 제공된 상세한 설명을 기반으로 하여 본 발명을 구현할 수 있다. 이와 같은 플로우 다이어그램에 따른 알고리즘 또는 루틴 연산(routine operating)은 결합된 프로세서의 부분을 형성하는 비휘발성 메모리(도시되지 않음), 결합된 메모리 영역(associated memory areas), 디스크(disks) 같은 분리성 매체(removable media)(도시되지 않음)에 저장되거나 또는 EEPROM 반도체 칩과 같은 칩(도시되지 않음), 이와 같은 구성요소의 특정한 결합 내에 사전에 프로그램 되거나 또는 하드와이어(hardwired)되나, 그와 같은 것에 제한되지 않는다.
소프트웨어는 하나 이상의 인간이 읽을 수 있는(human-readable) 아스키(American standard code for information interchange, ASCII) 보통 문서 파일(plain text files) 또는 이진 코드(binary code)를 포함한다. 소프트웨어 파일은 종종 모듈(modules) 또는 구성요소로서 지칭되는 더 작은 유닛(units)으로 분리될 수 있다. UNIX 플랫폼(flatform) 또는 개인용 컴퓨터(PC)는 다중(multiple) 소프트웨어 구성요소를 포함하고, 상기 소프트웨어 구성요소 각각은 상응하는 운영 시스템(operating system, OS)에 의해 지원되는 파일 시스템을 통해 독립적으로 처리되고, 업데이트 된다. UNIX 플랫폼 또는 PC에 호스트된 소프트웨어 파일 또는 소프트웨어 구성요소를 업데이트하기 위해 이용되는 정보는 인터넷을 통하여 전송되거나 또는 플로피디스크, 콤팩트디스크 롬(CD-ROM) 또는 콤팩트 플래시 카드(compact flash card) 같은 제 2 저장 매체로부터 공급될 수 있다.
대조적으로 이동 무선장치에서는, 모든 소프트웨어 구성요소가 단일한 거대 파일(single large file)로서 연결된 실시간 운영 시스템(real-time operating system, RTOS)이 통상적으로 이용된다. 게다가 이와 같은 이동 무선장치 내에는 어떠한 파일 시스템 지원도 통상적으로 제공되지 않는다. 또한 상기 단일한 거대 파일은 상기 장치 속으로 로드(load)되거나 또는 내장될 필요가 있으며, 무선 통신연결 또는 라디오 연결(radio link)과 같은 무선(over-the-air, OTA)연결을 이용하여 업데이트될 필요가 있다. 결과적으로 소프트웨어 파일 업데이트를 셀룰러 폰 및 다른 이동 통신장치(mobile communication device)와 같은 이동 장치(mobile device), 개인 휴대정보 단말기(personal digital assistants, PDAs), 그리고 개인용 컴퓨터에 공급하는 것에 관한 문제점들이 발생한다.
상기 이동 장치의 파일을 업데이트 하는데 이용하기 위하여 이동 장치에 거대 파일을 전달하는 문제점에 대한 하나의 해결법은 차이파일(difference files)을 발생하기 위하여 차이프로그램(difference program)을 이용한다. 상기 차이파일은 개정된(revised) 또는 새로운 파일이 원시파일(original files)과 어떻게 차이가 나는지에 대한 데이터를 포함한다. 비록 상기 다양한 차이프로그램의 사용이 상기 전송된 파일의 사이즈를 줄이는데 도움이 될지라도, 상기 이동장치에 상기 업데이트 제공과 관련된 신뢰성(reliability)에 관한 문제점들이 남아있게 된다.
예를 들면, OTA 연결을 통한 파일 전달 및 업데이트는 그것과 함께 증가된 장애 개연성(probability)을 전달한다. 이와 같은 장애들은 일반적으로 서비스 제공자의 통신망의 구성요소 및/또는 상기 업데이트를 수신해야 하는 다수의 이동장치의 구성요소와 관련된 장애와 관련된다. 일어날 수 있는 장애 유형의 예들은 이동장치 하드웨어 장애, 소프트웨어 장애, 전력(배터리) 고갈에 관한 장애, 그리고 상기 업데이트 프로세스동안 통신망으로부터 상기 이동장치의 접속이 끊어짐 결과로서의 장애를 포함한다. 업데이트 장애의 원인에 관계없이, 장치 제조업자 및 서비스 제공자는, 무선으로(OTA) 상기 이동장치에 소프트웨어 업데이트를 제공할 때, 상기 이동장치가 상기 업데이트 프로세스 동안 장애로부터 완전히 복구될 수 있다는 것을 보증해야 한다.
시스템 및 결합된 방법들(associated methods)은 이동장치(mobile devices)를 포함하는 클라이언트 장치(client devices) 내에서 장애시 안전 소프트웨어 업그레이드(fail-safe software upgrades)를 제공하기 위하여 아래에 제공된다. 소프트웨어 업그레이드 동안, 업그레이드의 성공적인 완성을 방해하는 장애(failure)가 발생하는 경우에, 실시예의 업그레이드 시스템(upgrade system)은 상기 클라이언트 장치를 업데이트 이전(pre-update) 상태로 회복시킨다. 상기 업그레이드 시스템은 그 다음에 오류시 진행상태에 있었던 상기 업데이트를 다시 계속하거나(resumes) 또는 다시 시작한다(re-initiates).
다음의 설명에서, 많은 특정한 세부사항들이 본 발명의 실시예의 철저한 이해 및 가능한 설명을 제공하기 위해 도입된다. 그러나 당업자는 본 발명은 하나 이상의 특정한 세부사항 없이 또는 다른 구성요소, 시스템등과 함께 실시될 수 있다는 것을 알 것이다. 다른 예에서는, 본 발명의 특징들(aspects)을 불명확하게 하는 것을 피하기 위해, 잘 알려진 구성 또는 연산들이 도시되지 않거나 또는 상세히 기술되지 않는다.
도 1 은 상기 발명에 따른 파일 업그레이드 시스템(file upgrade system)의 블록 다이어그램이다. 일반적으로 상기 파일 업그레이드 시스템(100)은 제1 컴퓨터 시스템(102) 또는 호스트 시스템(host system)과 클라이언트 장치 또는 컴퓨터(122)를 포함하는 하나 이상의 제 2 컴퓨터 시스템을 포함한다. 상기 호스트 시스템(102) 및 상기 클라이언트 장치(122)는 각각 프로그램 제어(program control) 아래서 연산되는 하나 이상의 프로세서(104 및 124)를 포함하나, 그런 식으로만 제한되지는 않는다. 상기 호스트 시스템(102) 및 클라이언트 장치(122)는 각각 통신 경로(communication path, 199)를 통해 통신한다. 이와 같은 컴퓨터 시스템(102 및 122)은, 당해 기술분야에서 알려진 것처럼, 함께 연산되는 계산 장치(computing devices)의 어떠한 집합(collection)을 포함한다. 상기 컴퓨터 시스템(102 및 104)은 또한 더 큰 컴퓨터 시스템 내의 구성요소를 포함할 수 있다.
상기 호스트 시스템(102)의 프로세서(104)는, 프로그램 제어 하에서, 데이터베이스(database, 106) 및 파일 차이알고리즘(file differencing algorithm, 114) 과 결합된다. 택일적으로, 상기 호스트 시스템(102)의 다양한 다른 구성요소들은 상기 프로세서(104), 상기 데이터베이스(106) 및 상기 파일 차이알고리즘(114)과 결합할 수 있고, 프로그램 제어 하에서 파일 업데이트 기능(file updating functions)을 제공할 수 있다. 비록 하나의 프로세서(104), 하나의 데이터베이스(106) 및 하나의 파일 차이알고리즘(114)이 도시되었지만, 다양한 택일적 실시예들은 당업자에 의해 심사숙고된 다양한 배열에 결합된 이와 같은 특정한 수 및/또는 유형의 구성요소 각각을 포함할 수 있다. 게다가 비록 상기 프로세서(104), 데이터베이스(106) 및 파일 차이알고리즘(114)이 분리된 블록으로서 도시되었지만, 몇몇 또는 모든 이와 같은 블록들은 단일한 칩에 통일되게(monolithically) 집적될 수 있고, 호스트 시스템의 다수의 칩 또는 구성요소들 중에 분배될 수 있으며, 그리고/또는 몇몇 알고리즘 조합에 의해 제공될 수 있다. 상기 파일 차이알고리즘(114)은 소프트웨어 알고리즘, 펌웨어(firmware), 하드웨어 그리고 소프트웨어, 펌웨어 및 하드웨어의 특정한 조합으로 구현될 수 있다. 여기서 일반적으로 사용되는 “프로세서(processor)"라는 용어는 하나 이상의 중앙처리장치(CPUs), 디지털신호프로세서(digital signal processors, DSPs), 주문형 반도체(application-specific integrated circuits, ASIC) 등과 같은 어떠한 논리 프로세싱 장치(logic processing unit)를 지칭한다.
마찬가지로, 실시예의 클라이언트 장치(122)는 프로그램 제어 하에서 장치 메모리(device memory, 130) 및 파일 업데이트 알고리즘(file updating algorithm, 128)과 결합한 프로세서(124)를 포함한다. 택일적으로, 상기 클라이언트 장
치(122)의 다양한 다른 구성요소들은 상기 프로세서(124), 상기 장치 메모리(130) 및 상기 파일 업데이트 알고리즘(128)과 결합할 수 있고, 프로그램 제어 하에서 파일 업데이트 기능(file updating functions)을 제공할 수 있다. 비록 하나의 프로세서(124), 하나의 장치 메모리(130) 및 하나의 파일 업데이트 알고리즘(128)이 도시되었지만, 다양한 택일적 실시예들은 당업자에 의해 심사숙고된 다양한 배열에 결합된 이와 같은 어떤 수 및/또는 유형의 구성요소 각각을 포함한다. 게다가 비록 상기 프로세서(124), 장치 메모리(130) 및 파일 업데이트 알고리즘(128)은 분리된 블록으로서 도시되었지만, 몇몇 또는 모든 이와 같은 블록들은 단일한 칩에 통일되게(monolithically) 집적될 수 있고, 호스트 시스템의 다수의 칩 또는 구성요소들 중에 분배될 수 있으며, 그리고/또는 몇몇 알고리즘 조합에 의해 제공될 수 있다. 상기 파일 차이알고리즘(114)은 소프트웨어 알고리즘, 펌웨어(firmware), 하드웨어 그리고 소프트웨어, 펌웨어 및 하드웨어의 특정한 조합으로 구현될 수 있다.
상기 통신 경로(199)는 상기 컴퓨터 시스템(102 및 122)들 사이에서 파일을 전송하고 또는 통신하기 위한 특정한 매체를 포함한다. 그러므로 이 경로(199)는 무선 접속(wireless connections), 유선 접속(wired connections) 및 혼성(hybrid) 무선/유선 접속을 포함한다. 상기 통신 경로(199)는 또한 구내 정보 통신망(local area networks, LANs), 대도시 통신망(metropolitan area networks, MANs), 광역 통신망(wide area networks, WANs), 사유 통신망(proprietary networks), 국간 또는 백엔드 통신망(interoffice or backend networks) 및 인터넷을 포함하는 통신망에의 결합 또는 접속을 포함한다. 게다가 상기 통신 경로(199)는 플로피 디스크, 하드 디스크 드라이브 및 CD-ROM 디스크뿐만 아니라 플래시 램(flash ram), 유니버설 시리엘 버스(universal serial bus, USB) 접속, RS-232 접속, 전화선(telephone lines), 버스(buses) 및 전자 메일 메시지(electronic mail messages)와 같은 분리 가능한 고정된 매체를 포함한다.
상기 호스트 시스템(102) 및 상기 클라이언트 시스템(122)은 각각 여기서 원시 파일(original file) 또는 구파일(old file)로 지칭되는 전자식 파일(electronic file)의 원시 버전(original version, 110)을 포함한다. 상기 호스트 시스템(102)은 상기 원시 파일(110)을 데이터베이스(106) 또는 다른 메모리 영역(memory area) 또는 메모리 영역 또는 장치(devices)의 조합에 저장하나, 그런 식으로만 제한되지는 않는다. 상기 클라이언트 장치(122)는 상기 원시 파일(110)을 연산 중에 사용하기 위해 장치 메모리에 저장한다.
예를 들면 추가적인 기능을 제공하기 위해 또는 소프트웨어 버그(bug)를 수정하기 위해 소프트웨어 제공자(software provider)가 상기 원시 파일(110)을 업그레이드하는 때에, 상기 전자식 파일의 새로운 버전(112)이 발생된다. 상기 새로운 파일(112)은 일반적으로 원시 파일(110)의 업데이트 된 또는 개정된 버전이지만, 그런 식으로만 제한되지는 않는다. 상기 소프트웨어 제공자는 상기 새로운 파일(112)을 상기 호스트 시스템(102)에 제공한다.
상기 전자식 파일(110 및 112)은 동적연결 라이브러리 파일(dynamic link library files), 공유 목적 파일(shared object file), 내장 소프트웨어 구성요소(embedded software components, EBSCs), 펌웨어 파일(firmware files), 실행가능 파일(executable files), 마술 데이터 파일(hex data files)을 포함하는 데이터 파일, 시스템 배열 파일(system configuration files) 및 개인사용 데이터(personal use data)를 포함하는 파일을 포함하는 소프트웨어 파일을 포함하나, 그런 식으로만 제한되지는 않는다. 특정한 유형의 파일은 바이트 스트림(byte stream)으로 간주될 수 있기 때문에, 앞으로 파일은 바이트 스트림으로서 기술될 수 있다.
하나 이상의 프로세서(104)를 포함하는 상기 호스트 시스템(102)의 구성요소들은, 상기 클라이언트 장치(122)의 호스트된 원시 파일(hosted original files, 110)을 업그레이드 하는데 사용하기 위한 업그레이드 정보를 발생하기 위하여, 상기 새로운 파일(112)을 수신하고(receive), 처리한다(process). 하나의 실시예에서, 상기 프로세서(104)는 업그레이드 정보를 상기 클라이언트 장치(122)에 전송하는데 사용하기 위한 업그레이드 파일(118)을 발생한다. 상기 업그레이드 파일(118)은 상기 새로운 파일(112) 및 상기 원시 파일(110) 사이의 차이를 코드화하는 차이파일(difference file)을 포함할 수 있거나, 또는 택일적으로 상기 새로운 파일(112)의 구성요소 또는 모듈(modules)의 특정한 수 및/또는 조합을 포함할 수 있다. 상기 호스트 시스템(102)은 상기 통신 경로(199)를 가로질러 상기 업그레이드 파일(118)의 전송을 통해 상기 업그레이드 정보를 상기 클라이언트 장치(122)에 전달한다.
상기 업그레이드 파일(118)이 차이파일(difference file)을 포함하는 실시예에서, 상기 프로세서(104)와 상기 파일 차이알고리즘(114)을 포함하는 상기 호스트 시스템(102)의 구성요소들은 상기 새로운 파일(112) 및 상응하는 원시 파일(110) 사이의 비교(comparison)를 처리하며, 그것에 의해 상기 새로운 파일(112) 및 상기 원시 파일(110) 사이의 차이를 계산한다. 상기 파일 차이 알고리즘(114)은 비교 과정 동안 상기 차이파일을 발생하고, 상기 차이파일을 상기 업그레이드 파일(118)에 기록한다.
상기 업그레이드 파일(118)은 상기 통신 경로(199)를 통해 상기 클라이언트 장치에 전송되거나(transfer) 또는 송신된다(transmit). 전송되기 전에, 상기 업그레이드 파일(118)은 당해 분야에서 잘 알려진 많은 압축기법들 중 하나를 이용하여 압축될 수 있으나, 그런 식으로만 제한되지는 않는다.
상기 프로세서(124)와 상기 업그레이드 클라이언트(126)를 포함하는 클라이언트 장치(122)의 구성요소들은 상기 업그레이드 파일(118)을 수신하고, 상기 업그레이드 파일을 이용하여 상기 원시 파일의 업그레이드를 제어한다. 하나의 실시예에서, 상기 파일 업데이트 알고리즘(128)을 포함하는 상기 업그레이드 클라이언트(126)는 새로운 파일(152)의 카피(copy)를 발생하기 위해 상기 호스트된 원시 파일(110)과 함께 상기 업그레이드 파일(118)의 정보를 처리한다. 그 다음에 상기 새로운 파일(152)의 카피는 상기 클라이언트 장치(122) 상에 호스트된 표적 원시 파일(targeted original file, 110)을 업그레이드하기 위하여 상기 업그레이드 클라이언트(126)에 의해 이용된다. 아래 및 관련 응용분야에서 기술되는 것처럼, 실시예의 업그레이드 클라이언트(126)는 업데이트 되는 파일유형과 이와 같은 업데이트를 지원하기 위하여 상기 클라이언트 장치 제조자에 의해 할당되는 자원(resources)에 의존하는 EBSCs를 업데이트 하기 위한 많은 방법들을 이용한다. 이와 같은 업데이트 처리를 완성했을 때, 상기 클라이언트 장치(122) 상에 저장되는 상기 원시 파일(110)은 상기 호스트 시스템(102)에 수신되는 새로운 파일(112)과 같다.
당업자들은 상기 업그레이드 시스템(100)과 결합된 그와 같은 기능뿐만 아니라 상기 업그레이드 시스템(100)에 대하여 이곳에서 기술된 다른 기능 및 방법들이 상기 호스트 시스템(102)의 구성요소, 상기 클라이언트 장치(122)의 구성요소에 의해 수행될 수 있으며, 또는 상기 호스트 시스템(102)과 상기 클라이언트 장치(122) 구성요소의 조합 중에 분배될 수 있다. 상기 호스트 시스템(102)과 클라이언트 장치(122)의 구성요소는 디지털 신호 프로세싱(DSP) 집적 회로에 의해 및/또는 통상적인 프로그램된 논리 배열(programmed logic array) 또는 회로소자(circuit element)를 통해, 주문형 반도체(ASICs)로서 구현될 수 있다. 이곳에서 기술되는 상기 실시예는 하나 이상의 프로세서 상에서 실행되는 하드웨어, 펌웨어 및 소프트웨어의 특정한 조합을 이용하여 구동될 수 있으며, 여기서 상기 소프트웨어는 반도체 칩에 저장된 마이크로코드(microcode)와 같은 소정의 적절한 컴퓨터-판독가능 매체(computer-readable medium) 상에, 컴퓨터-판독가능 디스크 상에 저장될 수 있거나 또는 서버(sever)로부터 다운로드 될 수 있으며 그리고 클라이언트에 국부적으로 저장될 수 있다.
도 2 는 실시예의 파일 업그레이드 시스템(100)의 구성요소를 포함하는 서비스 제공자 기반구조(service provider infrastructure, 200) 실시예에 대한 블록 다이어그램이다. 이 실시예에서 상기 서비스 제공자 기반구조(100)는 셀룰러 폰(cellular telephone) 통신망 또는 기반구조의 컨텍스트(context) 내에서 기술되나, 택일적인 실시예가 그런 식으로만 제한되지는 않는다. 상기 서비스 제공자 기반구조(200)는 소프트웨어 구성요소 분배기(Software Component Distributor, SCD, 202), 서비스 제공자 업그레이드 구성요소(service provider upgrade components, 203-205) 및 상기 클라이언트 장치(122) 상에 호스트된 업그레이드 클라이언트(126)를 포함한다(그러나 그런 식으로만 제한되지는 않는다). 상기 서비스 제공자 업그레이드 구성요소(203-205)는 소프트웨어 구성요소 인증 서버(software component certification server, 203) 및 업그레이드 관리자(upgrade manager, 205) 중에 결합되는 업그레이드 서버(upgrade server, 204)를 포함한다.
도 1 을 추가로 참조하면, 상기 서비스 제공자 기반구조(200)에 대한 실시예의 SCD(202)는 상기 호스트 시스템(102)의 구성요소 또는 기능을 포함한다. 택일적인 실시예에서, 상기 서비스 제공자 업그레이드 구성요소(203-205)는 상기 호스트 시스템(102)의 구성요소 또는 기능을 호스트한다. 다른 택일적 실시예에서, 상기 호스트 시스템(102)의 구성요소 또는 기능은 상기 SCD(202)의 구성요소 및 상기 서비스 제공자 업그레이드 구성요소(203-205) 중에 배열된다.
실시예의 서비스 제공자 기반구조(200)는 상기 업그레이드 시스템 구성요소와 상기 서비스 제공자의 무선 기반구조를 통하여 이동 전자 장치(mobile electronic devices), 이동 통신 장치(mobile communication devices), 셀룰러 폰, 개인 휴대정보 단말기(personal digital assistants), 컴퓨터 및 다른 프로세서-기반 장치를 포함하는 클라이언트 장치(122) 상의 업그레이드 구성요소 또는 소프트웨어 파일의 많은 유형을 지원한다. 이 시스템은 소프트웨어 분배기(software distributor)로부터 새롭고 개선된 소프트웨어를 수신하고, 상기 새로운 소프트웨어로부터 업그레이드 파일을 발생하며, 그리고 상기 서비스 제공자 기반구조를 통해 상기 클라이언트 장치(122)에 상기 업그레이드 파일을 전송함으로써 기능을 수행한다. 상기 클라이언트 장치(122)의 업그레이드 클라이언트(126)는 상기 클라이언트 장치(122) 상에 호스트된 표적 소프트웨어(targeted software)를 업데이트 하기 위해 상기 업그레이드 파일을 이용한다.
실시예의 SCD(202)는 사용자 인터페이스(user interface)를 제공하며, 그것에 의해 소프트웨어 제공자는 새로운 내장 장치 소프트웨어 구성요소(new embedded device software components)를 패키지하고 릴리스(release)한다. 상기 SCD(202)의 기능은 장치 정보를 기록하고, 장치 정보를 상기 소프트웨어 구성요소 인증 서버에 제출한다. 또한, 상기 SCD(202)는 새롭고 원시의 EBSCs를 수신하고, 상기 새롭고 원시의 EBSCs를 이용하여 파일 차이(file difference)를 계산하거나 또는 발생하며, 내장 소프트웨어를 기록하며 패키지하고, 그리고 상기 내장 소프트웨어 패키지를 상기 소프트웨어 구성요소 인증 서버(203)에 제출한다. 새롭거나 또는 개선된 소프트웨어는, 릴리스 이후에, 상기 서비스 제공자 업그레이드 구성요소(203-205)에 유선, 무선 또는 혼성 유/무선 통신망 결합 또는 접속(220)을 통해 제공되나, 그런 식으로만 제한되지는 않는다.
실시예의 SCD(202)는 상기 클라이언트 장치 제조자의 프로세싱 시스템 상에 호스트된다. 대안적인 실시예에서, 상기 SCD(202)는 응용 또는 시스템 소프트웨어 제공자의 프로세싱 시스템 상에 호스트된다. 또 다른 대안적인 실시예에서, 상기 SCD(202)는 상기 서비스 사업자(carrier) 또는 제공자의 프로세싱 시스템 상에 호스트되는데, 예를 들면, 상기 업그레이드 구성요소(203-205) 중에 호스트되거나 또는 배열된다.
상기 서비스 제공자 업그레이드 구성요소(203-205)는 상기 소프트웨어 구성요소 분배기(202), 상기 클라이언트 장치(122) 및 상기 서비스 제공자의 기반구조(210-218)의 현존의 구성요소(existing components)들과 결합되며, 상기 서비스 제공자의 기반구조(210-218)는 현존의 게이트웨이(210) 및 통신 기반구조(212), 요금 서버(billing server, 214), 기록 서버(logging server, 216), 그리고 인증 서버(authentication server, 218)를 포함한다.
상기 소프트웨어 구성요소 인증 서버(203)는 클라이언트 장치의 제조자에게 인터페이스를 제공하며, 그러므로 장치 제조자로부터 내장 소프트웨어 패키지 상의 새로운 장치 정보를 수신한다. 상기 소프트웨어 구성요소 인증 서버(203)는 또한 업그레이드 서버에 승인된 소프트웨어 패키지(approved software packages)를 재 패키지하고, 분배한다.
상기 업그레이드 관리자(205)는, 비록 상기 소프트웨어 구성요소 인증 서버(203) 및 상기 업그레이드 서버(204) 중에서 인터페이스로서 기능하지만, 최적의 장치 관리를 위한 소프트웨어 및 데이터 패키징을 배열하고, 원격 변화 통지(remote change notification)를 표로 만들며, 업데이트 정책 감시 시스템(update policy monitor system)을 제어한다. 게다가, 상기 업그레이드 관리자(205)는 현존 기반구조의 시스템 통합을 제공한다.
상기 업그레이드 서버(204)는 내장 소프트웨어 구성요소 업그레이드를 수행하기 위하여 이동 클라이언트 장치(122)와의 인증(authenticating), 접속(connecting), 그리고 통신(communicating)을 포함하는 기능을 제공한다. 클라이언트 장치(122)와의 통신은 상응하는 서비스 제공자에 적당한 무선 연결, 유선 연결, 혼성 유/무선 연결, 그리고 다른 통신망 결합유형을 포함하는 상기 클라이언트 장치(122)와 결합(212)을 통해 발생한다. 또한 상기 업그레이드 서버(204)는 상기 서비스 제공자의 현존 요금, 데이터 수집, 그리고 기록 서비스를 지원한다.
업그레이드 파일이 상기 업그레이드 서버(204)로부터 클라이언트 장치(122)로의 전송에 이용될 수 있을 때, 상기 업그레이드 서버(204) 및 클라이언트 장치(122)들 사이의 통신에 대한 예로서, 상기 서버(204)는 상기 클라이언트 장치 사용자에게 업데이트를 위해 이용될 수 있는 소프트웨어 구성요소가 존재한다는 것을 통지하기 위하여 사용자 통지(user notification)를 보낸다. 상기 사용자 통지는 짧은 메시지 서비스(Short Message Service, SMS) 푸시 규약(push protocol), 하이퍼텍스트 전송 규약(Hypertext Transfer Protocol, HTTP), 또는 무선 응용 통신 규약(Wireless Application Protocol, WAP)을 통한 텍스트 메시지(text message) 형태를 취할 수 있으나, 그런 식으로만 제한되지는 않는다. 송수화기(handset) 사용자로부터 확인을 받자마자, 상기 업그레이드 서버(204)는 상기 업그레이드 파일을 요구하는 송수화기(requesting handset)에 전달하기 위하여 원시 송수화기 데이터 통신 프로토콜(original handset data communication protocol)을 이용한다.
상기 송수화기로부터 확인의 수신에 대응하여, 상기 업그레이드 서버(204)는 사용자 및/또는 요구하는 장치를 인증하고(authenticate), 인가하며(authorize), 그리고 상기 요구하는 장치의 사전에 필요한 능력(capabilities) 및 제한(limitations)을 검증한다. 인증 다음에 상기 업그레이드 서버(204)는 클라이언트 장치 구성 데이터의 관리자(manager of client device configuration data)로서, 상기 요구하는 장치(104)의 내장 소프트웨어 구성요소의 현재 버전을 확인하고, 적당한 델타 파일(delta files)을 상기 요구하는 장치(104)에 전송하며, 상기 업그레이드 트랜잭션(transaction)의 상태를 기록하고(log), 그리고 상기 결과를 상기 업그레이드 관리자(205)에 보고한다. 또한 상기 업그레이드 서버(204)는 무선으로(over the air) 상기 소프트웨어 업그레이드 서비스를 활성화/비활성화 시키고, 소프트웨어 변화를 원격 사용자에게 통지한다.
도 1을 참조하면, 상기 업그레이드 클라이언트(126)는 상기 클라이언트 장치(122)에 내장되나, 그런 식으로만 제한되지는 않는다. 상기 업그레이드 클라이언트(126)는 상기 클라이언트 장치(122)의 구성 데이터를 저장하고, 유지하며, 그리고 상기 파일 업데이트 알고리즘(128)을 이용하여 내장된 장치 소프트웨어 구성요소의 유지(maintenance) 및 업그레이드(upgrading)를 제공한다. 상기 업그레이드 클라이언트(126)는 간단한 사용자 인터페이스를 지원하고, 이동 장치 소프트웨어(mobile device software)에 통합된다. 실행 중에, 상기 업그레이드 클라이언트(126)는 자동적으로 특정한 내장 소프트웨어 구성요소의 원격 변화를 검출하고, 사용자에게 내장 소프트웨어 구성요소 업그레이드를 통지하며, 그리고 특정한 서비스 제공자에 적당한, 반송파(carriers) 및/또는 사용자 제어(user control)를 기반으로 소프트웨어 구성요소를 업그레이드 한다.
실시예에 대한 상기 업그레이드 시스템(100) 및 서비스 제공자 기반구조(200)는 많은 유형의 소프트웨어 파일 또는 실행 가능한 파일(executable files), 바이트 스트림 파일(byte stream files) 및 데이터 파일(data files)로의 업데이트를 포함하는 업데이트 구성요소(component update)를 지원하나, 그런 식으로만 제한되지는 않는다. 상기 실행 가능한 파일은, 도는 이미지 파일(image files)은 운영 시스템(operating system, OS), 하드웨어 장치 드라이버 및 K 가상 기계(K Virtual Machine, KVM) 파일과 같은 작업을 수행하기 위하여 상기 클라이언트 장치에 이용되는 소프트웨어 파일을 포함한다. 상기 바이트 스트림 파일은 아이콘 파일(icon files), 로고 파일(logo files) 및 MP3 파일과 같은 다른 실행 가능한 파일에 의해 이용되는 파일을 포함한다. 데이터 파일은 교정 구성파일(calibration configuration files), 프로토콜 독립 멀티캐스트(Protocol Independent Multicast, PIM) 파일, 및 시스템 구성파일(system configuration files)과 같은, 개인이용 데이터(personal use data)와 송수신 참조 데이터(handset reference data)를 담고 있는 파일을 포함한다.
실시예에 대한 상기 업그레이드 클라이언트는 관련된 응용에서 기술되는 것처럼, 업데이트 되는 파일 유형과 이와 같은 업데이트를 지원하기 위해 상기 클라이언트 장치 제조자에 의해 할당되는 자원(resources)에 의존하면서 EBSCs를 업데이트 하기 위한 많은 방법들을 이용한다. 실시예에 대한 이와 같은 업데이트 방법들은 비-임계 구성요소 업데이트(non-critical component updates) 및 임계 구성요소 업데이트(critical component updates)를 포함하는데, 여기서 상기 카테고리들은 업데이트를 위해 목표된 상기 소프트웨어 구성요소에 의해 제공되는 기능을 기반으로 한다.
비-임계 구성요소는 상기 업데이트 프로세스 동안 장애 다음에 무선으로 쉽게 복구되는 내장 소프트웨어 구성요소(EBSCs)를 포함한다. 비-임계 구성요소의 실시예는 브라우저(browsers) 및 KVM 파일을 포함하나, 그런 식으로만 제한되지는 않는다. 임계 구성요소는 업데이트 절차(update procedure) 또는 장치 연산(device operation)에 임계적인 EBSCs에 이용되는 소프트웨어 구성요소를 포함한다. 게다가 임계 구성요소들은 상기 업데이드 프로세스 동안 장애 다음에 무선으로 쉽게 복구될 수 없다. 임계 구성요소들의 실시예들은 운영체계 파일(operating system files), 프로토콜 스택(protocol stacks), 상기 업그레이드 클라이언트 파일, 통신 라이브러리(communication libraries) 및 디스플레이 또는 LCD 드라이버 파일을 포함하나, 그런 식으로만 제한되지는 않는다.
상기 클라이언트 장치(122)는 업데이트 절차에 참여하기 전에 다수의 장치 파라미터의 상태를 결정한다. 이것은 상기 업데이트 절차를 위한 장치를 사전에 알맞게 만들기 위하여, 또는 상기 클라이언트 장치의 조건이 상기 업데이트 절차가 일단 시작하면 완성될 수 있도록 되었는지를 검증하기 위하여 이루어진다. 상기 클라이언트 장치의 사전 자격조건(qualification)은 상기 클라이언트 장치가 초기 또는 충전(charging) 모드에 있는지, 상기 클라이언트 장치가 직렬 케이블(serial cable)에 연결되었는지, 상기 배터리 충전 상태가 상기 업데이트 프로세스를 수행하기에 충분한지, 상기 수신신호 강도지시(Received Signal Strength Indication, RSSI) 또는 신호 강도(signal strength)가 데이터 전송을 위해 충분한지, 그리고 표적 EBSC가 현재 사용 중인지를 결정하는 것을 포함하나, 그런 식으로만 제한되지는 않는다.
상기 업데이트 절차를 위한 클라이언트 장치(122)를 사전에 알맞게 함에도 불구하고, 상기 업데이트 에서의 장애들은 몇 가지만 예를 들자면 하드웨어 장애, 전력(배터리) 장애 및 통신망 연결 장애의 결과로서 발생한다. 실시예의 상기 업그레이드 시스템(100)은 상기 클라이언트 장치(122)를 업데이트 이전 상태로 복구함으로써 그리고 장애가 있을 때 진행 중이었던 업데이트를 다시 계속하거나 또는 다시 시작함으로써, 장애시-안전한 소프트웨어 파일 업데이트(fail-safe software file updates)를 제공한다. 상기 업그레이드 서버(204)의 구성요소 및 상기 업그레이드 클라이언트(126)는 다음에 기술되는 것처럼 장애시-안전한 업데이트를 제공하는 자동 복구 메커니즘(automatic failure recovery)을 포함한다.
실시예의 클라이언트 장치는 여기서 파일 구성 데이터(file configuration data)로서 지칭되는 상기 클라이언트 장치 소프트웨어의 EBSCs 간의 관계 데이터(data of relationship)를 모듈-기반 메모리 관리(module-based memory management, MBMM) EBSC에 저장한다. 상기 MBMM EBSC는 여기서 구성파일로서 지칭된다. 상기 구성 데이터는 또한 업그레이드 상태 정보를 포함한다. 상기 업그레이드 상태 정보는 시도된 업그레이드 중에 장애 또는 오류가 일어나는 장소에 관한 정보와 같은 것을 포함하는 클라이언트 장치 소프트웨어에 업그레이드 상태를 연관시키는 상세한 정보를 포함한다. 상기 클라이언트 장치의 연산에 대한 상기 구성 데이터의 중요성 때문에, 상기 업그레이드 클라이언트는 정확한 구성 데이터에 접속을 제공할 뿐만 아니라, 다음과 같이 파일 업그레이드를 통해 상기 구성 데이터를 유지한다.
도 3 은 실시예에 따른 클라이언트 장치 구성파일의 구성 데이터 접속을 위한 플로우 다이어그램(300)이다. 상기 업그레이드 클라이언트는 블록 (302)에서 검증 계산 또는 알고리즘을 이용하여 원시 구성 데이터의 정확도를 검증한다. 비록 이곳에서 기술된 상기 실시예는 검사 합 값(checksum value) 또는 순환 잉여코드( Cyclic Redundancy Codes, CRCs)와 같은 것을 이용하는 검증 프로세스 또는 알고리즘의 이용을 포함하지만, 상기 실시예는 당업자에 의해 심사숙고된 임의의 검증 프로세스 또는 알고리즘을 이용할 수 있다. 상기 검증 계산 또는 알고리즘은 상기 검사 합 또는 CRC를 적절하게 다시 계산하고, 그것을 원시 구성 데이터를 가지는 클라이언트 장치에 저장된 상응하는 값과 비교한다. 만약 상기 검증이 블록 (304)에서 상기 원시 구성 데이터가 정확하고, 오류가 없다고 표시하면, 그 다음에 상기 업그레이드 클라이언트는 블록 (306)에서 상기 원시 구성 데이터를 이용하여 연산을 진행한다.
만약 상기 검증이 상기 원시 구성 데이터가 오류를 포함하고 있다고 지시하면, 그 다음에 상기 업그레이드 클라이언트는 블록 (308)에서 백업(backup) 구성 데이터가 상기 클라이언트 장치에서 이용할 수 있는지를 결정한다. 백업 구성 데이터가 상기 클라이언트 장치에서 이용할 수 있을 때, 상기 업그레이드 클라이언트는 블록 (310)에서 오류 복구 프로세스를 진행한다. 다음에 추가로 기술되는 것처럼, 상기 오류 복구 프로세스는 정확한 구성 데이터를 상기 구성파일에 다시 저장한다. 백업 구성 데이터가 상기 클라이언트 장치에서 이용할 수 없을 때, 상기 업그레이드 클라이언트는 블록 (312)에서 상기 오류를 상기 클라이언트 장치 사용자 및 서비스 제공자의 업그레이드 서버에 보고하기 위하여 상기 클라이언트 장치의 자원을 이용한다.
상기 구성 데이터에 읽기 접속(read access)을 제공할 뿐만 아니라, 상기 업그레이드 클라이언트는 그것이 상기 클라이언트 장치의 다른 EBSCs에 하는 것처럼 구성파일을 유지하고, 업데이트 한다. 도 4 는 실시예에 따른 클라이언트 장치 구성파일을 업그레이드하기 위한 플로우 다이어그램(400)이다. 상술된 것처럼, 상기 업그레이드 클라이언트는 원시 구성 데이터를 업그레이드 하는데 이용하기 위한 업그레이드 파일을 수신한다. 상기 업그레이드 파일의 수신에 대응하여, 상기 업그레이드 클라이언트는 블록 (402)에서 검사 합 또는 순환 잉여 검사(Cyclic redundancy Check, CRC)와 같은 검증 계산/알고리즘을 이용하여 상기 클라이언트 장치에 현재 저장된 원시 구성 데이터의 정확성을 검증한다. 만약 상기 검증이 블록 (404)에서 상기 원시 구성 데이터가 정확하거나 또는 오류가 없다고 표시하면, 그 다음에 상기 업그레이드 클라이언트는 블록 (406)에서 원시 구성 데이터의 백업 버전을 클라이언트 장치 메모리(ROM) 내의 백업 구성파일에 기록함으로써 상기 원시 구성 데이터 업데이트를 진행한다. 상기 업그레이드 클라이언트는 또한 블록 (406)에서 상기 백업 구성파일에 기록된 상기 백업 구성 데이터에 대한 검증 계산을 수행하며, 블록 (408)에서 상기 백업 구성 데이터의 정확도를 검증한다. 상기 검증이 블록 (408)에서 상기 백업 구성 데이터에 오류가 없다고 나타낼 때, 상기 업그레이드 클라이언트는 블록 (410)에서 상기 업그레이드 파일의 정보를 이용하여 상기 구성파일의 원시 구성 데이터를 업그레이드 한다. 상기 업그레이드 클라이언트는 블록 (412)에서 상기 업그레이드된 또는 새로운 구성 데이터의 정확도를 검증하고, 만약 상기 업그레이드된 구성 데이터가 오류가 없다면 상기 업그레이드 프로세스를 종결한다.
블록 (406)에서 상기 백업 구성파일에 상기 백업 구성 데이터를 기록한 다음에, 상기 검증 결과가 블록 (408)에서 상기 백업 구성 데이터에 오류가 있음을 지시할 때, 상기 업그레이드 클라이언트는 상기 원시 구성 데이트를 상기 백업 구성파일에 기록하고, 상기 검증 계산을 수행하는 프로세스를 반복한다. 이와 같은 재기록(rewriting) 및 재계산(recalculation) 프로세스는 상기 백업 구성 데이터가 상기 백업 구성파일에 성공적으로 기록되거나 또는 상기 프로세스가 사전에 특정된 횟수(N)로 반복될 때까지 수행된다. 블록 (422)에서 상기 재기록이 성공하지 못한 채 사전에 특정된 횟수(N)로 수행되었을 때, 상기 업그레이드 클라이언트는 블록 (426)에서 상기 오류를 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 보고하기 위하여 상기 클라이언트 장치의 자원을 이용하고, 상기 업그레이드 프로세스를 종결한다.
블록 (410)에서 상기 구성 데이터의 업그레이드 이후에, 상기 검증 결과가 블록 (412)에서 상기 새로운 구성 데이터에 오류가 있음을 지시할 때, 상기 업그레이드 클라이언트는 상기 원시 구성 데이터의 업그레이드 및 상기 검증 계산의 수행 프로세스를 반복한다. 이와 같은 재기록 및 재계산 프로세스는 상기 원시 구성 데이터가 상기 새로운 구성 데이터에 성공적으로 업그레이드되거나 또는 상기 프로세스가 사전에 결정된 회수(N)로 반복될 때까지 수행된다. 블록 (424)에서 상기 재기록이 성공하지 못한 채 사전에 결정된 회수(N)로 수행될 때, 상기 업그레이드 클라이언트는 블록 (426)에서 상기 오류를 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 보고하기 위하여 상기 클라이언트 장치의 자원을 이용하고, 상기 업그레이드 프로세스를 종결한다.
만약 상기 검증이 블록 (404)에서 구성 테이블 데이터(configuration table data)가 오류를 포함하고 있다고 지시한다면, 그 다음에 상기 업그레이드 클라이언트는 블록 (432)에서 백업 구성 데이터가 상기 클라이언트 장치 내에서 이용될 수 있는지를 결정한다. 백업 구성 데이터가 상기 클라이언트 장치에서 이용될 수 있을 때, 상기 업그레이드 클라이언트는 블록 (434)에서 상기 오류 복구 프로세스를 진행한다. 상기 오류 복구 프로세스는 상기 백업 구성파일로부터의 상기 백업 구성 데이터를 상기 구성파일에 기록하고, 그러므로 블록 (436)에서 상기 백업 구성 데이터를 상기 오류가 있는 구성 데이터에 덮어씀으로써 상기 구성파일에 정확한 구성 데이터를 다시 저장한다. 상기 업그레이드 클라이언트는 또한 블록 (402)에서 상기 백업 구성 데이터에 검증 계산을 수행한다.
백업 구성 데이터가 블록 (432)에서 상기 클라이언트 장치 내에서 이용될 수 없을 때, 상기 업그레이드 클라이언트는 블록 (426)에서 상기 오류를 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 보고하기 위하여 상기 클라이언트 장치의 자원을 이용한다. 그 다음에 상기 클라이언트 장치는 상기 업그레이드 프로세스를 종결한다.
상술한 것처럼, 상기 구성파일을 업그레이드할 뿐만 아니라, 상기 업그레이드 클라이언트의 실시예는 상기 클라이언트 장치 상에 호스트된 소프트웨어의 EBSCs에 대한 업그레이드를 수행한다. 상기 업그레이드는 다음에 기술되는 것처럼 차이파일(difference files) 및 완전히 새로운 파일(entire new files) 모두를 이용한 업그레이드를 포함한다.
도 5A 및 5B는 실시예에 따른, 차이파일을 이용하여 임계 구성요소를 포함하는 소프트웨어 구성요소를 업그레이드하기 위한 플로우 다이어그램(500)이다. 상술된 것처럼, 상기 업그레이드 클라이언트는 업그레이드 파일에 상응하는 원시 EBSC를 업그레이드 하는 데 이용하기 위한 업그레이드 파일을 수신한다. 이 실시예에서, 상기 업그레이드 파일은 차이파일을 포함하나, 상기 실시예는 그런 식으로만 제한되지는 않는다. 상기 업그레이드 파일의 수신에 대응하여, 상기 업그레이드 클라이언트는 블록 (502)에서 검증 알고리즘을 이용하여 업그레이드 파일 콘텐츠(contents)의 정확도를 검증한다. 만약 상기 검증이 상기 업그레이드 파일 콘텐츠에 오류가 없다고 표시하면, 그 다음에 상기 업그레이드 클라이언트는 블록 (504)에서 클라이언트 장치 롬(ROM)으로부터의 원시 EBSC를 램(RAM)에 복사함으로써 상기 원시 EBSC 업그레이드를 진행한다.
택일적으로, 상기 원시 EBSC는 클라이언트 장치 메모리의 임의 영역으로부터 클라이언트 장치 메모리의 다른 임의 영역으로 또는 상기와 같은 메모리 영역의 서로 다른 세그먼트(segments)로 복사될 수 있다. 상기 업그레이드 클라이언트는 구(old) EBSC 및 상기 업그레이드 파일을 이용하여 새로운 EBSC를 발생하고, 블록 (506)에서 상기 새로운 EBSC에 대한 검증 계산을 수행한다. 상기 새로운 EBSC의 백업 버전은 상기 새로운 EBSC가 임계 구성요소일 때, 블록 (508)에서 발생되고, 검증된다.
블록 (510)에서 상기 클라이언트 장치의 선택적(optional) 리셋(reset) 또는 재시동(reboot)을 수행할 때, 상기 업그레이드 클라이언트는 블록 (512)에서 상기 구성파일의 상기 구성파일 데이터를 백업 구성파일에 복사함으로써, 상기 클라이언트 ROM 소자에 백업 구성파일을 발생한다. 상기 백업 구성 파일의 정확도는 검증될 수 있지만, 상기 실시예는 그런 식으로만 제한되지는 않는다. 상기 업그레이드 파일은 그 다음에 상기 클라이언트 장치 메모리로부터의 원시 EBSC를 삭제하고, 상기 새로운 EBSC를 상기 원시 EBSC가 이전에 차지했던 클라이언트 장치 메모리 영역에 기록하며, 그리고 블록 (514)에서 클라이언트 장치 메모리에 기록된 상기 새로운 EBSC의 정확도를 검증한다.
새로운 EBSC의 발생에 대응하여, 상기 업그레이드 클라이언트는 상기 새로운 EBSC에 따라 원시 구성 데이터를 업그레이드 하고, 블록 (516)에서 상기 업그레이드된 또는 새로운 구성 데이터의 정확도를 검증한다. 만약 상기 EBSC 업그레이드가 성공적이고, 상기 업그레이드된 구성 데이터가 오류가 없다면, 상기 업그레이드 클라이언트는 블록 (520)에서 상기 새로운 EBSC의 백업 복사를 지우고, 블록 (522)에서 상기 백업 구성 파일을 지운다. 추가적인 업그레이드 파일이 블록 (524)에서 추가적인 EBSC를 업그레이드 하는데 이용하기 위해 사용될 수 있을 때, 연산(operation)은 상기 추가적인 업그레이드를 처리하기 위하여 블록 (502)로 복귀하며, 그렇지 않다면 상기 업그레이드 프로세스는 완성된다.
상기 업그레이드된 구성 데이터가 블록 (518)에서 오류를 포함하고 있을 때, 상기 업그레이드 클라이언트는 블록 (526)에서 오류 복구를 시작한다. 상기 오류 복구 프로세스는 다음에 추가로 기술된다.
도 6은 도 5의 실시예에 따른 차이파일을 이용하여 임계 소프트웨어 구성요소 업그레이드에 대한 블록 다이어그램 표현(depiction)이다. 이 실시예의 업그레이드 프로세스는 ROM(602)과 RAM(604) 메모리 내의 저장 위치(storage location)를 이용하나, 대안적인 실시예는 클라이언트 장치 메모리 내의 어떠한 영역의 조합 또는 상기와 같은 메모리 영역의 특정한 수의 서로 다른 세그먼트를 이용할 수 있다.
상기 업그레이드 프로세스는 상기 업그레이드 클라이언트가 업그레이드 파일(610)에 상응하는 원시 EBSC를 업그레이드 하는데 이용하기 위한 업그레이드 파일(610)을 수신한다. 이 실시예를 위하여, 상기 업그레이드 파일(610)은 차이파일을 포함하나, 택일적으로 상기 업그레이드 파일(610)은 차이파일과 완전히 새로운 파일 또는 새로운 EBSCs를 포함할 수 있다. 상기 업그레이드 클라이언트는 램(604)에 상기 업그레이드 파일(610)을 저장하고(630), 검증 알고리즘을 이용하여 상기 업그레이드 파일 콘텐츠의 정확도를 검증한다. 만약 상기 업그레이드 파일(610)이 오류가 없다면, 그 다음에 상기 업그레이드 클라이언트는 상기 원시 EBSC(614)의 복사본(copy)을 램(604)에 발생 또는 기록(632)함으로써 상기 원시 EBSC(612) 업그레이드를 진행한다. 상기 업그레이드 클라이언트는 상기 원시 EBSC(614)과 상기 업그레이드 파일(610)의 복사본을 이용하여 상기 새로운 EBSC(616)를 발생하고, 상기 새로운 EBSC(616)를 RAM(604)에 기록한다. 상기 새로운 EBSC(616)의 정확도가 검증되고, 상기 새로운 EBSC(616)가 임계 구성요소일 때 상기 새로운 EBSC(618)의 백업 버전이 발생되며, ROM(602)에 기록된다(636).
임계 소프트웨어 구성요소의 업그레이드를 수행할 때, 실시예의 업그레이드 클라이언트는 특정 파일의 백업 복사본을 발생하고, 이 백업 복사본을 상기 클라이언트 장치 메모리에 저장한다. 상기 클라이언트 장치는 상기 서비스 제공자로부터의 정보 또는 추가적인 파일을 다운로드할 필요없이, 상기 업그레이드 프로세스 동안 오류 또는 장애를 빠르고 자동적으로 복구하기 위하여 상기 구성 파일의 업그레이드 상태 정보와 함께 상기 백업 복사본을 이용한다.
예를 들면, 상기 클라이언트 장치를 리셋(reset)하자마자, 상기 업그레이드 클라이언트는 백업 구성파일(620)을 상기 ROM(602)과 같은 클라이언트 장치 메모리 내의 위치에 기록한다(638). 상기 백업 구성파일(620)은 상기 원시 구성파일(622)의 구성 데이터를 ROM(602) 내의 상기 백업 구성파일(620)에 복사함으로써 발생된다. 상기 업그레이드 클라이언트는 그 다음에 상기 ROM(602)으로부터의 원시 EBSC(612)를 삭제하고, ROM(602) 내의 새로운 EBSC(612)에 대한 백업 버전으로부터 상기 새로운 EBSC를 원시 EBSC(612)가 이전에 차지한 메모리 영역에 기록하며(640), 그리고 기록된 상기 새로운 EBSC의 정확도를 검증한다. 상기 업그레이드 클라이언트는 그 다음에 상기 새로운 EBSC에 따라 상기 원시 구성 데이터(622)를 업데이트 한다. 만약 상기 EBSC 업그레이드가 성공적이고, 상기 업그레이드된 구성 데이터가 오류가 없다면, 상기 업그레이드 클라이언트는 ROM(602)로부터 상기 새로운 EBSC(618) 및 상기 백업 구성파일(620)의 백업 버전을 삭제한다.
도 7A 및 7B 는 대안적인 실시예에 따른, 차이파일을 이용하여 임계 소프트웨어 구성요소를 업그레이드하기 위한 플로우 다이어그램(700)이다. 상술된 것처럼, 상기 업그레이드 클라이언트는 업그레이드 파일에 상응하는 원시 EBSC를 업그레이드 하는데 이용하기 위한 차이파일을 포함하는 업그레이드 파일을 수신한다. 상기 업그레이드 파일의 수신에 대응하여, 상기 업그레이드 클라이언트는 블록 (702)에서 검증 알고리즘을 이용하여 상기 업그레이드 파일 콘텐츠의 정확도를 검증한다. 만약 상기 검증이 상기 업그레이드 파일에 오류가 없다고 표시하면, 그 다음에 상기 업그레이드 클라이언트는 블록 (704)에서 클라이언트 ROM 소자에 상기 업그레이드 파일의 백업 버전을 발생함으로써 상기 원시 EBSC 업그레이드를 진행한다.
블록 (706)에서 상기 클라이언트 장치의 선택적인 리셋 또는 리부트를 수행하자마자, 상기 업그레이드 클라이언트는 블록 (708)에서 ROM으로부터 상기 업그레이드 파일의 백업 버전을 RAM에 복사한다. 상기 업그레이드 클라이언트는 블록 (710)에서 상기 원시 EBSC의 백업 버전을 발생하고, 블록 (512)에서 백업 구성파일을 발생하며, 두개 모두 클라이언트 ROM 소자 내의 백업 파일에 기록된다. 상기 업그레이드 클라이언트는 또한 블록 (714)에서 클라이언트 ROM 소자로부터의 상기 원시 EBSC를 RAM에 복사 한다.
상기 업그레이드 클라이언트는 블록 (716)에서 클라이언트 장치 RAM에 저장된 상기 업그레이드 파일 및 상기 원시 EBSC를 이용하여 상기 새로운 EBSC를 발생한다. 상기 업그레이드 클라이언트는 또한 상기 새로운 EBSC에 대하여 검증 계산을 수행하나, 그런 방식으로만 제한되지는 않는다. 상기 업그레이드 클라이언트는 다음에 상기 클라이언트 ROM 소자로부터 원시 EBSC를 삭제하고, 상기 원시 EBSC가 이전에 차지했던 ROM 영역에 RAM으로부터의 새로운 EBSC를 기록하며, 그리고 블록 (718)에서 ROM에 기록된 상기 새로운 EBSC의 정확도를 검증한다.
상기 새로운 EBSC의 발생에 대응하여, 상기 업그레이드 클라이언트는 상기 새로운 EBSC에 따라 상기 원시 구성 데이터를 업그레이드하고, 블록 (720)에서 상기 업그레이드된 또는 새로운 구성 데이터의 정확도를 검증한다. 만약 상기 EBSC 업그레이드가 성공적이고, 상기 업그레이드된 구성 데이터에 오류가 없다면, 상기 업그레이드 클라이언트는 블록 (724)에서 상기 원시 EBSC의 백업 복사본을 지우고, 블록 (726)에서 상기 백업 구성파일을 지운다. 추가적인 업그레이드 파일이 블록 (728)에서 추가적인 EBSCs를 업그레이드 하는데 이용하기 위하여 사용될 수 있을 때, 연산은 상기 추가적인 업그레이드를 처리하기 위하여 블록 (702)로 복귀하고, 그렇지 않다면 상기 업그레이드 프로세스는 완결된다.
상기 업그레이드된 구성 데이터가 블록 (722)에서 오류를 포함할 때, 상기 업그레이드 클라이언트는 블록 (730)에서 오류 복구를 시작한다. 상기 오류 복구 프로세스는 다음에 추가적으로 기술된다.
도 8 은 도 7A 및 7B의 실시예에 따른, 차이파일을 이용하여 임계 소프트웨어 구성요소 업그레이드에 대한 블록 다이어그램 표현(depiction)이다. 상기 실시예의 업그레이드 구성요소는 상기 클라이언트 장치 메모리의 ROM(802) 및 RAM(804) 내의 저장 위치를 이용하나, 대안적인 실시예는 상기 클라이언트 장치 메모리(130)의 임의 영역의 조합 또는 상기와 같은 메모리 영역의 특정한 수의 서로 다른 세그먼트를 이용할 수 있다.
상기 업그레이드 프로세스는 상기 업그레이드 클라이언트가 상기 업그레이드 파일(810)에 상응하는 원시 EBSC(812)를 업그레이드 하는데 이용하기 위한 업그레이드 파일(810)을 수신할 때 시작한다. 이와 같은 실시예를 위하여, 상기 업그레이드 파일(810)은 차이파일을 포함하지만, 택일적으로 상기 업그레이드 파일(810)은 차이 파일과 완전히 새로운 파일 또는 새로운 EBSCs를 포함할 수 있다. 상기 업그레이드 클라이언트는 상기 업그레이드 파일(810)을 RAM(804)에 저장 또는 기록하고(830), 검증 알고리즘을 이용하여 상기 업그레이드 파일 콘텐츠의 정확도를 검증한다. 만약 상기 업그레이드 파일(810)에 오류가 없다면, 상기 업그레이드 클라이언트는 상기 업그레이드 파일(824)의 백업 버전을 클라이언트 ROM 소자(802)에 발생 및 저장(832)함으로써 상기 원시 EBSC(812) 업그레이드를 진행한다.
상기 클라이언트 장치를 리셋하자마자, 상기 업그레이드 클라이언트는 ROM(802)으로부터 상기 업그레이드 파일(824)의 백업 버전을 RAM(804)에 기록한다(834). 상기 업그레이드 클라이언트는 그 다음에 상기 원시 EBSC(826)의 백업 버전을 ROM에 기록하고(836), 백업 구성파일(820)을 ROM(802)에 기록한다(838). 상기 업그레이드 클라이언트는 또한 상기 원시 EBSC(814)의 복사본을 ROM(802) 내의 상기 원시 EBSC(812)로부터 RAM(804)에 기록한다(840).
상기 업그레이드 클라이언트는 RAM(804)에 저장된 상기 업그레이드 파일(810) 및 상기 원시 EBSC(814)의 복사본을 이용하여 상기 새로운 EBSC(816)을 발생한다. 상기 업그레이드 클라이언트는 또한 상기 새로운 ENSC(816)에 대하여 검증 계산을 수행하나, 그런 식으로만 제한되지는 않는다. 상기 업그레이드 클라이언트는 그 다음에 ROM(802)로부터 상기 원시 EBSC(812)를 삭제하고, RAM(804)으로부터 상기 새로운 EBSC(816)를 상기 원시 EBSC(812)가 이전에 차지했던 ROM 영역에 기록하며, 그리고 ROM(802)에 기록된 상기 새로운 EBSC의 정확도를 검증한다.
상기 새로운 EBSC(816)의 발생에 대응하여, 상기 업그레이드 클라이언트는 또한 상기 새로운 EBSC(816)에 따라 상기 원시 구성 데이터(822)를 업그레이드 하고, 상기 업그레이드된 또는 새로운 구성 데이터의 정확도를 검증한다. 만약 상기 EBSC 업그레이드가 성공적이고, 상기 업그레이드된 구성 데이터에 오류가 없다면, 상기 업그레이드 클라이언트는 상기 원시 EBSC(826) 및 상기 백업 구성파일(820)의 백업 복사본을 지우고, 상기 업그레이드 프로세스를 종결한다.
도 9 는 실시예에 따른, 새로운 파일을 이용하여 임계 소프트웨어 구성요소를 업그레이드하기 위한 플로우 다이어그램(900)이다. 상기 업그레이드 클라이언트는 업그레이드 파일에 상응하는 원시 파일을 업그레이드 하는데 이용하기 위한 업그레이드 파일을 수신하고, 블록 (902)에서 검증 알고리즘을 이용하여 상기 업그레이드 파일 콘텐츠의 정확도를 검증한다. 이와 같은 실시예에서, 상기 업그레이드 파일은 완전히 새로운 EBSC 또는 파일을 포함하나, 상기 실시예는 그런 식으로만 제한되지는 않는다. 만약 상기 검증이 상기 새로운 파일 콘텐츠에 오류가 없다고 표시하면, 그 다음에 상기 업그레이드 클라이언트는 상기 새로운 파일이 임계 소프트웨어 구성요소일 때, 블록 (904)에서 새로운 파일의 백업 버전을 발생하고, 새로운 파일의 백업 버전의 정확도를 검증함으로써 상기 원시 파일 업그레이드를 진행한다.
블록 (906)에서 시기가 선택적인 상기 클라이언트 장치의 리셋 또는 리부트를 수행하자마자, 상기 업그레이드 클라이언트는 상기 구성파일의 상기 구성 파일 데이터를 백업 구성파일에 복사함으로써, 블록 (908)에서 상기 클라이언트 ROM 소자 내의 백업 구성 파일을 발생한다. 상기 백업 구성 파일의 정확도는 검증될 수 있으나, 상기 실시예는 그런 방식으로만 제한되지는 않는다. 상기 업그레이드 클라이언트는 그 다음에 상기 새로운 파일의 백업 버전을 상기 클라이언트 장치에 의해 사용되기 위한 클라이언트 장치 메모리의 적당한 영역에 기록하고, 블록 (910)에서 기록된 상기 새로운 파일의 정확도를 검증한다.
만약 상기 검증이 상기 새로운 파일 콘텐츠에 오류가 없다고 표시하면, 그 다음에 상기 업그레이드 클라이언트는 상기 새로운 파일에 따라 상기 원시 구성 데이터를 업그레이드함으로써 진행되고, 블록 (912)에서 상기 업그레이드된 또는 새로운 구성 데이터의 정확도를 검증한다. 만약 상기 새로운 파일 업그레이드가 성공적이고, 상기 업그레이드된 구성데이터에 오류가 없다면, 상기 업그레이드 클라이언트는 블록 (916)에서 상기 새로운 파일의 백업 복사본을 지우고, 블록 (918)에서 상기 백업 구성파일을 지운다. 블록 (920)에서 추가적인 파일을 업그레이드 하는데 이용하기 위해 추가적인 업그레이드 파일이 사용될 수 있을 때, 연산은 상기 추가적인 업그레이드를 처리하기 위해 블록 (902)로 복귀하고, 그렇지 않다면 상기 업그레이드 프로세스는 완성된다.
상기 업그레이드된 구성 데이터가 블록 (914)에서 오류를 포함하고 있을 때, 상기 업그레이드 클라이언트는 블록 (922)에서 오류 복구를 시작한다. 상기 오류 복구 프로세스는 다음에 추가적으로 기술된다.
도 10 은 도 9의 실시예에 따른, 새로운 파일을 이용하여 임계 소프트웨어 구성요소 업그레이드에 대한 블록 다이어그램 표현이다. 이와 같은 실시예의 업그레이드 프로세스는 ROM(1002) 및 RAM(1004) 내의 저장 위치를 이용하나, 대안적인 실시예는 클라이언트 장치 메모리(130)의 임의 영역의 조합 또는 상기와 같은 메모리 영역의 특정한 수의 서로 다른 세그먼트를 이용할 수 있다.
상기 업그레이드 프로세스는 상기 업그레이드 클라이언트가 클라이언트 장치 소프트웨어를 업그레이드 하는데 이용하기 위한 업그레이드 파일(1010)을 수신할 때 시작된다. 이와 같은 실시예를 위하여, 상기 업그레이드 파일(1010)은 완전히 새로운 파일을 포함하나, 그런 방식으로만 제한되지는 않으며, 서로 다른 파일 및/또는 특정한 수의 새로운 EBSCs를 포함할 수 있다. 상기 업그레이드 클라이언트는 상기 새로운 파일(1010)을 RAM(1004)에 기록하고(1030), 검증 알고리즘을 이용하여 상기 새로운 파일 콘텐츠의 정확도를 검증한다.
만약 상기 새로운 파일(1010)에 오류가 없다면, 그 다음에 상기 업그레이드 클라이언트는 상기 새로운 파일(1012)의 백업 버전을 ROM(1002)에 발생하고, 기록함으로써(1032) 상기 클라이언트 장치 소프트웨어 파일 업그레이드를 진행한다. 상기 새로운 파일(1012)의 백업 버전에 대한 정확도는 상기 새로운 파일이 임계 소프트웨어 구성요소일 때 검증된다.
시기가 선택적인 상기 클라이언트 장치를 리셋하자마자, 상기 업그레이드 클라이언트는 백업 구성파일(1016)을 ROM(1002)에 발생한다(1034). 상기 백업 구성파일(1016)은 상기 원시 구성파일(1014)의 구성 데이터를 상기 백업 구성파일(1016)에 복사함으로써 발생된다. 상기 업그레이드 클라이언트는 그 다음에 상기 새로운 파일(1012)의 백업 버전을 상기 클라이언트 장치에 의해 이용되기 위한 클라이언트 장치 메모리의 적당한 영역(1018)에 기록하고, 기록된 상기 새로운 파일의 정확도를 검증한다. 상기 업그레이드 클라이언트는 그 다음에 상기 새로운 파일에 따라 상기 원시 구성 데이터(1014)를 업그레이드한다. 만약 상기 파일 업그레이드가 성공적이고, 상기 업그레이드된 구성 데이터에 오류가 없다면, 상기 업그레이드 클라이언트는 상기 새로운 파일(1012) 및 상기 백업 구성파일(1016)의 백업 버전을 지운다.
상기 업그레이드 클라이언트에 의해 이용되는 상기 업그레이드 방법에 관계없이, 상기 업그레이드 시스템은 소프트웨어 업그레이드 동안 장애에 대응하여 상기 클라이언트 장치를 미리 결정된 상태로 복구함으로써, 클라이언트 장치 내에 장애시-안전한 소프트웨어 업그레이드를 제공한다. 실시예의 업그레이드 시스템은 상기 클라이언트 장치를 업데이트 이전 상태로 복구하고, 장애가 발생할 때 진행 중이었던 상기 업데이트를 다시 계속하거나 또는 다시 시작한다. 상기 복구 프로세스는 아래에서 기술되는 것처럼 차이 파일을 이용하여 임계 구성요소 업그레이드 동안 오류로부터 복구하고, 차이파일을 이용하여 비-임계 구성요소 업그레이드 동안 오류로부터 복구하며, 새로운 파일을 이용하여 임계 구성요소 업그레이드 동안 오류로부터 복구하고, 그리고 새로운 파일을 이용하여 비-임계 구성요소 업그레이드 동안 오류로부터 복구하기 위한 알고리즘을 포함한다.
도 11 은 실시예에 따른 차이파일을 이용하여 임계 구성요소 업그레이드 동안 업그레이드 프로세스에서 발생하는 오류로부터 클라이언트 장치를 복구하기 위한 플로우 다이어그램(1100)이다. 파일 업그레이드를 수행할 때, 상기 업그레이드 클라이언트는 상기 파일 업그레이드가 새로운 파일의 이용가능성에 대응하여 최초로 수행되고 있는지를 결정함으로써 또는 상기 클라이언트 장치가 블록 (1102)에서 이전의 업그레이드 시도 중에 발생하는 오류로부터 복구 중인지를 결정함으로써 시작된다.
최초로 파일 업그레이드를 수행할 때, 상기 업그레이드 클라이언트는 블록 (1104)에서 상기 업그레이드 파일에 상응하는 원시 EBSC를 업그레이드 하는데 이용하기 위한 차이 파일 형태의 업그레이드 파일을 수신한다. 상기 차이파일의 수신에 대응하여, 상기 업그레이드 클라이언트는 블록 (1106)에서 상기 차이파일 콘텐츠에 오류가 없는지를 결정하기 위하여 상기 차이파일의 검사 합 값을 이용한다. 이와 같은 상기 차이파일을 수신하고, 상기 파일 콘텐츠의 정확도를 평가하는 프로세스는 에러-없는 차이 파일이 수신될 때 또는 상기 프로세스가 사전에 특정된 횟수(N)로 반복될 때까지 반복된다. 블록 (1130)에서, 성공하지 못한 채 사전에 특정된 횟수(N)로 상기 프로세스를 반복하였을 때, 상기 업그레이드 클라이언트는 블록 (1140)에서 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용하고, 블록 (1126)에서 상기 업그레이드 프로세스를 종결한다.
블록 (1104)에서 정확한 차이 파일의 수신에 대응하여, 상기 업그레이드 클라이언트는 블록 (1108)에서 원시 EBSC 콘텐츠의 정확도를 검증한다. 만약 상기 윈시 EBSC의 검사 합 값이 블록 (1110)에서 부정확하다고 결정된다면, 상기 원시 EBSC의 검사 합을 계산하는 프로세스는 정확한 검사 합 값이 계산될 때까지, 또는 상기 프로세스가 사전에 특정된 횟수(N)로 반복될 때가지 반복된다. 블록 (1130)에서, 성공하지 못한 채 사전에 특정된 횟수(N)로 상기 프로세스가 반복될 때, 상기 업그레이드 클라이언트는 블록 (1140)에서 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용하고, 블록 (1126)에서 상기 업그레이드 프로세스를 종결한다.
상기 원시 EBSC 콘텐츠가 블록 (1110)에서 정확하다고 결정될 때, 상기 업그레이드 클라이언트는 블록 (1112)에서 상기 원시 EBSC 및 상기 차이 파일을 이용하여 상기 새로운 EBSC를 발생한다. 상기 업그레이드 클라이언트는 또한 상기 새로운 EBSC의 콘텐츠에 대한 검증 계산을 수행한다. 만약 상기 새로운 EBSC의 검사 합 값이 블록 (1114)에서 부정확하다고 결정된다면, 상기 새로운 EBSC를 발생하고, 상기 검사 합을 계산하는 프로세스는 정확한 검사 합 값이 계산될 때까지, 또는 상기 프로세스가 사전에 특정된 횟수(N)로 반복될 때까지 반복된다. 블록 (1134)에서, 성공하지 못한 채 사전에 특정된 횟수(N)로 상기 프로세스를 반복할 때, 상기 업그레이드 클라이언트는 블록 (1140)에서 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용하고, 블록 (1126)에서 상기 업그레이드 프로세스를 종결한다.
상기 업그레이드 클라이언트가 블록 (1114)에서 새로운 EBSC의 콘텐츠가 정확하다고 결정할 때, 상기 새로운 EBSC의 백업 버전이 블록 (1116)에서 장치 메모리에 발생되고, 기록된다. 상기 새로운 EBSC의 백업 버전에 대한 정확도는 또한 검사 합 값을 이용하여 검증된다. 만약 상기 새로운 EBSC 블록의 백업 버전에 대한 검사 합 값이 블록 (1118)에서 부정확하다고 결정된다면, 상기 새로운 EBSC의 백업 버전을 발생하고, 상기 검사 합을 계산하는 프로세스는 정확한 검사 합 값이 계산될 때까지, 또는 상기 프로세스가 사전에 특정된 회수(N)로 반복될 때까지 반복된다. 블록 (1136)에서, 성공하지 못한 채 사전에 특정된 횟수(N)로 상기 프로세스를 반복할 때, 상기 업그레이드 클라이언트는 블록 (1140)에서 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용하고, 블록 (1126)에서 상기 업그레이드 프로세스를 종결한다.
블록 (1118)에서 상기 새로운 EBSC의 백업 버전에 대한 정확도를 검증할 때, 상기 업그레이드 클라이언트는 블록 (1120)에서 ROM 소자 내의 상기 원시 EBSC를 상기 새로운 EBSC와 교체한다. 검사 합 계산은 파일의 정확도를 검증하기 위하여 상기 ROM 소자에 기록된 새로운 EBSC에 대하여 수행된다. 만약 상기 새로운 EBSC의 검사 합 값이 블록 (1122)에서 부정확하다고 결정되면, ROM 소자에 새로운 EBSC를 기록하고, 상기 검사 합을 계산하는 프로세스는, 상기 새로운 EBSC가 ROM 소자에 적절하게 기록되었다는 것을 지시하면서, 정확한 검사 합이 계산될 때까지 또는 상기 프로세스가 사전에 특정된 횟수(N)로 반복될 때까지 반복된다. 블록 (1138)에서, 성공하지 못한 채 사전에 특정된 횟수(N)로 상기 프로세스를 반복할 때, 상기 업그레이드 클라이언트는 블록 (1140)에서 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용하고, 블록 (1126)에서 상기 업그레이드 프로세스를 종결한다.
블록 (1122)에서 상기 ROM 소자에 기록된 새로운 EBSC의 정확도를 검증할 때, 상기 업그레이드 클라이언트는 블록 (1124)에서 추가적인 차이 파일이 상응하는 원시 EBSCs를 업그레이드 하는데 이용하기 위하여 사용될 수 있는지를 결정한다. 연산은 특정한 추가적인 차이파일를 처리하기 위하여 블록 (1106)으로 복귀하고, 그렇지 않다면 상기 업그레이드 프로세스는 블록 (1126)에서 종결한다.
상기 업그레이드 클라이언트가 블록 (1102)에서 상기 장치가 이전의 업그레이드 시도 중에 발생한 오류로부터 복구되고 있는 중이라고 결정할 때, 상기 업그레이드 클라이언트는 블록 (1140)에서 백업 구성파일이 상기 클라이언트 장치에서 이용될 수 있는지를 결정함으로써 복구를 시작한다. 상술된 것처럼, 상기 백업 구성 파일은 백업 구성 데이터를 포함한다. 백업 구성 데이터가 이용될 수 있을 때, 상기 업그레이드 클라이언트는 블록 (1142)에서 연관된 검사 합 값(associated checksum value)을 계산함으로써 상기 백업 구성 데이터가 정확한지를 결정한다. 만약 백업 구성 데이터가 블록 (1140)에서 상기 클라이언트 장치 내에서 이용될 수 없다면, 또는 만약 백업 구성 데이터가 블록 (1142)에서 이용될 수 있고, 상기 검사 합 값이 상기 데이터에 오류가 있다고 지시한다면, 상기 업그레이드 클라이언트는 블록 (1160)에서 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용한다. 그 다음에 상기 업그레이드 클라이언트는 블록 (1162)에서 상기 업그레이드 프로세스를 종결한다.
오류가 없는 백업 구성 데이터가 상기 클라이언트 장치에서 이용될 수 있을 때, 상기 업그레이드 클라이언트는 블록 (1144)에서 상기 백업 구성 데이터를 상기 원시 구성파일 내의 상기 원시 구성 데이터 위에 기록한다. 상기 업그레이드 클라이언트는 그 다음에 블록 (1146)에서 상기 클라이언트 장치 내의 새로운 EBSC에 대한 백업 버전의 이용 가능성을 결정한다.
상기 새로운 EBSC의 백업 버전이 상기 클라이언트 장치에서 이용될 수 있다면, 상기 업그레이드 클라이언트는 블록 (1148)에서 상기 새로운 EBSC의 백업 버전을 장치 메모리 내의 상응하는 원시 EBSC 위에 기록함으로써 상기 원시 EBSC를 업그레이드 한다. 상기 구성 데이터가 그 다음에 블록 (1150)에서 새로운 EBSC에 따라 업그레이드된다. 상기 업그레이드 클라이언트는 그 다음에 추가적인 차이 파일이 블록 (1152)에서 다른 원시 EBSCs를 업그레이드 하는데 이용하기 위하여 사용될 수 있는지를 결정한다. 연산은 특정한 추가적인 차이 파일을 처리하기 위하여 블록 (1106)에 복귀하고, 그렇지 않다면 상기 업그레이드 프로세스는 블록 (1126)에서 종결된다.
만약 새로운 EBSC의 백업 버전이 블록 (1146)에서 상기 클라이언트 장치에서 이용될 수 없다고 밝혀지면, 그 다음에 상기 업그레이드 클라이언트는 블록 (1164)에서 상기 업그레이드 서버로부터 상응하는 원시 EBSC를 검색한다. 상기 원시 EBSC를 수신할 때, 상기 업그레이드 클라이언트는 상술한 것처럼 블록 (1110)에서 새로운 EBSC의 재발생(re-generating)을 진행한다.
도 12 는 실시예에 따른, 차이파일을 이용하여 비-임계 구성요소 업그레이드 동안 상기 업그레이드 프로세스에서 발생하는 오류로부터 클라이언트 장치를 복구하기 위한 플로우 다이어그램(1200)이다. 파일 업그레이드를 수행할 때, 상기 업그레이드 클라이언트는 상기 파일 업그레이드가 새로운 파일의 이용 가능성에 대응하여 최초로 수행되고 있는 지, 또는 상기 클라이언트 장치가 블록 (1202)에서 이전의 업그레이드 시도 중에 발생한 오류로부터 복구되고 있는 중인지를 결정함으로써 시작한다.
최초로 파일 업그레이드를 수행할 때, 상기 업그레이드 클라이언트는 블록 (1204)에서 상기 업그레이드 파일에 상응하는 원시 EBSC를 업그레이드 하는데 이용하기 위한 차이파일 형태의 업그레이드 파일을 수신한다. 상기 차이파일의 수신에 대응하여, 상기 업그레이드 클라이언트는 블록 (1206)에서 상기 차이파일 콘텐츠에 오류가 없는지를 결정하기 위하여 상기 차이파일의 검사 합 값을 이용한다. 이와 같은 상기 차이파일을 수신하고, 상기 파일 콘텐츠의 정확도를 계산하는 프로세스는 오류가 없는 차이파일이 수신될 때까지, 또는 상기 프로세스가 사전에 특정된 횟수(N)로 반복될 때가지 반복된다. 블록 (1230)에서, 성공하지 못한 채 사전에 특정된 횟수(N)로 상기 프로세스를 반복할 때, 상기 업그레이드 클라이언트는 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용하고, 블록 (1236)에서 상기 업그레이드 프로세스를 종결한다.
블록 (1204)에서 정확한 차이 파일의 수신에 대응하여, 상기 업그레이드 클라이언트는 블록 (1208)에서 원시 EBSC 및 차이 파일을 이용하여 새로운 EBSC를 발생한다. 상기 업그레이드 클라이언트는 또한 상기 새로운 EBSC의 콘텐츠에 대한 검증 계산을 수행한다. 만약 상기 새로운 EBSC의 검사 합 값이 블록 (1210)에서 부정확하다고 결정되면, 상기 새로운 EBSC를 발생하며, 상기 검사 합을 계산하는 프로세스는 정확한 검사 합 값이 계산될 때까지, 또는 상기 프로세스가 사전에 특정된 회수(N)로 반복될 때까지 반복된다. 블록 (1234)에서, 성공하지 못한 채 사전에 특정된 횟수(N)로 상기 프로세스를 반복할 때, 상기 업그레이드 클라이언트는 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용하고, 블록 (1236)에서 상기 업그레이드 프로세스를 종결한다.
상기 업그레이드 클라이언트가 블록 (1210)에서 새로운 EBSC의 콘텐츠가 정확한지를 결정할 때, 상기 업그레이드 클라이언트는 블록 (1212)에서 상기 ROM 소자 내의 상기 원시 EBSC를 상기 새로운 EBSC와 교체한다. 검사 합 계산은 블록 (1214)에서 파일의 정확도를 검증하기 위하여 상기 ROM 소자에 기록된 새로운 EBSC에 대하여 수행된다. 만약 상기 새로운 EBSC의 검사 합 값이 블록 (1216)에서 부정확하다고 결정되면, 상기 클라이언트 ROM 소자에 기록된 상기 새로운 EBSC의 검사 합을 계산하는 프로세스는, 상기 새로운 EBSC가 ROM 소자에 적절하게 기록되었음을 지시하면서, 정확한 검사 합 값이 수신될 때까지, 또는 상기 프로세스가 사전에 특정된 횟수(N)로 반복될 때까지 반복된다. 블록 (1234)에서, 성공하지 못한 채 사전에 특정된 횟수(N)로 상기 프로세스를 반복할 때, 상기 업그레이드 클라이언트는 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용하고, 블록 (1236)에서 상기 업그레이드 프로세스를 종결한다.
블록 (1216)에서 상기 ROM 소자에 기록된 새로운 EBSC의 정확도를 검증할 때, 상기 업그레이드 클라이언트는 추가적인 차이파일이 블록 (2118)에서 상응하는 원시 EBSCs를 업그레이드 하는데 이용하기 위하여 사용될 수 있는지를 결정한다. 연산은 어떠한 추가적인 차이파일을 처리하기 위하여 블록 (1206)으로 복귀하고, 그렇지 않다면 상기 업그레이드 프로세스는 블록 (1220)에서 종결된다.
상기 업그레이드 클라이언트가 블록 (1202)에서 이전의 업그레이드 시도 중에 발생된 오류로부터 상기 장치가 복구 중에 있다고 결정할 때, 상기 업그레이드 클라이언트는 블록 (1240)에서 백업 구성파일이 상기 클라이언트 장치에서 이용될 수 있는지를 결정함으로써 복구를 시작한다. 상술된 것처럼, 상기 백업 구성파일은 백업 구성 데이터를 포함한다. 백업 구성 데이터가 이용될 수 있을 때, 상기 업그레이드 클라이언트는 블록 (1242)에서 연관된 검사 합 값을 계산함으로써, 상기 백업 구성 데이터가 정확한지를 결정한다. 만약 백업 구성 데이터가 블록 (1240)에서상기 클라이언트 장치에서 이용될 수 없다면, 또는 블록 (1242)에서 백업 구성 데이터가 이용될 수 있고, 상기 검사 합 값이 상기 데이터에 오류가 있다고 지시한다면, 상기 업그레이드 클라이언트는 블록 (1260)에서 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용한다. 그 다음에 상기 업그레이드 클라이언트는 블록 (1262)에서 상기 업그레이드 프로세스를 종결한다.
오류가 없는 백업 구성 데이터가 상기 클라이언트 장치에서 이용될 수 있을 때, 상기 업그레이드 클라이언트는 블록 (1244)에서 상기 백업 구성 데이터를 상기 원시 구성파일 내의 상기 원시 구성 데이터 위에 기록한다. 상기 업그레이드 클라이언트는 그 다음에 블록 (1246)에서 상기 업그레이드 서버로부터 상응하는 원시 EBSC를 검색한다. 상기 원시 EBSC를 수신할 때, 상기 업그레이드 클라이언트는 상술한 것처럼, 블록 (1210)에서 상기 새로운 EBSC의 재발생을 진행한다.
도 13 은 실시예에 따른 새로운 파일 또는 EBSCs를 이용하여 임계 구성요소 업그레이드 동안 상기 업그레이드 프로세스에서 발생하는 오류로부터 클라이언트 장치를 복구하기 위한 플로우 다이어그램(1300)이다. 파일 업그레이드를 수행할 때, 상기 업그레이드 클라이언트는 새로운 EBSCs의 이용 가능성에 대응하여 상기 파일 업그레이드가 최초로 수행되고 있는 중이라는 것인지를, 또는 상기 장치 디바이스가 블록 (1302)에서 이전의 업그레이드 시도 동안 발생된 오류로부터 복구되고 있는 중인지를 결정함으로써 시작된다.
최초로 파일 업그레이드를 수행할 때, 상기 업그레이드 클라이언트는 블록 (1304)에서 상기 업그레이드 파일에 상응하는 원시 EBSC를 업그레이드 하는데 이용하기 위한 새로운 EBSC 형태의 업그레이드 파일을 수신한다. 상기 새로운 EBSC의 수령에 대응하여, 상기 업그레이드 클라이언트는 블록 (1206)에서 상기 새로운 EBSC의 콘텐츠에 오류가 없는지를 결정하기 위하여 상기 새로운 EBSC의 검사 합 값을 이용한다. 이와 같은 상기 새로운 EBSC를 수신하고, 상기 파일 콘텐츠의 정확도를 계산하는 프로세스는 오류가 없는 새로운 파일이 수신될 때까지, 또는 상기 프로세스가 사전에 특정된 횟수(N)로 반복될 때까지 반복된다. 블록 (1330)에서, 성공하지 못한 채 사전에 특정된 횟수(N)로 상기 프로세스를 반복할 때, 상기 업그레이드 클라이언트는 블록 (1336)에서 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용하고, 블록 (1318)에서 상기 업그레이드 프로세스를 종결한다.
블록 (1304)에서 정확한 새로운 EBSC의 수신에 대응하여, 상기 업그레이드 클라이언트는 블록 (1308)에서 상기 새로운 EBSC의 백업 버전을 발생하고, 상기 백업 버전에 상응하는 검사 합 값을 계산한다. 만약 상기 새로운 EBSC의 백업 버전에 대한 상기 검사 합 값이 블록 (1310)에서 부정확하다고 결정되면, 상기 새로운 EBS의 백업 버전을 발생하고, 상기 상응하는 검사 합을 계산하는 프로세스는 정확한 검사 합 값이 계산될 때가지, 또는 상기 프로세스가 사전에 특정된 회수(N)로 반복될 때까지 반복된다. 블록 (1332)에서, 성공하지 못한 채 사전에 특정된 횟수(N)로 상기 프로세스를 반복할 때, 상기 업그레이드 클라이언트는 블록 (1336)에서 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용하고, 블록 (1318)에서 상기 업그레이드 프로세스를 종결한다.
상기 새로운 EBSC 콘텐츠가 블록 (1310)에서 정확하다고 결정될 때, 상기 업그레이드 클라이언트는 블록 (1312)에서 상기 장치 내의 상기 원시 EBSC를 상기 새로운 EBSC와 교체한다. 검사 합 계산은 파일의 정확도를 검증하기 위하여 상기 ROM 소자에 기록된 상기 새로운 EBSC에 대하여 수행된다. 만약 상기 새로운 EBSC의 검사 합 값이 블록 (1314)에서 부정확하다고 결정되면, ROM 장치에 상기 새로운 EBSC를 기록하고, 상기 검사 합을 계산하는 프로세스는, 상기 새로운 EBSC가 ROM 소자에 적절하게 기록되었다는 것을 지시하면서, 정확한 검사 합 값이 계산될 때가지, 또는 상기 프로세스가 사전에 특정된 수(N)로 반복될 때까지 반복된다. 블록 (1334)에서, 성공하지 못한 채 사전에 특정된 횟수(N)로 상기 프로세스를 반복할 때, 상기 업그레이드 클라이언트는 블록 (1336)에서 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용하고, 블록 (1318)에서 상기 업그레이드 프로세스를 종결한다.
블록 (1314)에서 상기 ROM 소자에 기록된 새로운 EBSC의 정확도를 검증할 때, 상기 업그레이드 클라이언트는 블록 (1316)에서 상응하는 원시 EBSCs를 업그레이드 하는데 이용하기 위하여 사용될 수 있는지를 결정한다. 연산은 어떠한 추가적인 새로운 EBSC를 처리하기 위하여 블록 (1304)로 복귀하고, 그렇지 않으면 블록 (1318)에서 상기 업그레이드 프로세스는 종결된다.
상기 업그레이드 클라이언트가 블록 (1302)에서 이전의 업그레이드 시도 중에 발생된 오류로부터 상기 장치가 복구되고 있는 중에 있는지를 결정할 때, 상기 업그레이드 클라이언트는 블록 (1340)에서 백업 구성파일이 상기 클라이언트 장치에 이용될 수 있는지를 결정함으로써 복구를 시작한다. 백업 구성 데이터가 백업 구성파일에서 이용될 수 있을 때, 상기 업그레이드 클라이언트는 블록 (1342)에서 연관된 검사 합 값을 평가함으로써, 상기 백업 구성 데이터가 정확한지를 결정한다. 만약 백업 구성 데이터가 블록 (1340)에서 상기 클라이언트 장치에서 이용될 수 없다면, 또는 블록 (1342)에서 만약 백업 구성 데이터가 이용될 수 있고, 상기 검사 합 값이 상기 데이터에 오류가 있다고 지시하면, 상기 업그레이드 클라이언트는 블록 (1360)에서 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용한다. 그 다음에 상기 업그레이드 클라이언트는 블록 (1362)에서 상기 업그레이드 프로세스를 종결한다.
오류가 없는 백업 구성 데이터가 상기 클라이언트 장치에서 이용될 수 있을 때, 상기 업그레이드 클라이언트는 블록 (1344)에서 상기 원시 구성파일 내의 상기 원시 구성 데이터 위에 상기 백업 구성 데이터를 기록한다. 상기 업그레이드 클라이언트는 그 다음에 블록 (1346)에서 상기 클라이언트 장치 내의 새로운 EBSC에 대한 백업 버전의 이용 가능성을 결정한다.
만약 상기 새로운 EBSC의 백업 버전이 상기 클라이언트 장치에서 이용될 수 있다면, 상기 업그레이드 클라이언트는 블록 (1348)에서 장치 메모리 내의 상응하는 원시 EBSC 위에 새로운 EBSC의 백업 버전을 기록함으로써 상기 원시 EBSC를 업그레이드 한다. 상기 구성 데이터는 그 다음에 블록 (1350)에서 상기 새로운 EBSC에 따라 업그레이드된다. 상기 업그레이드 클라이언트는 그 다음에 블록 (1316)에서 추가적인 새로운 EBSCs가 다른 원시 EBSCs를 업그레이드 하는데 이용하기 위하여 사용될 수 있는지를 결정한다.
만약 상기 새로운 EBSC의 백업 버전이 블록 (1346)에서 상기 클라이언트 장치 내에서 이용될 수 없다고 알려지면, 그 다음에 상기 업그레이드 클라이언트는 블록 (1304)에서 상기 업그레이드 서버로부터 상기 새로운 EBSC를 검색한다. 상기 새로운 EBSC를 수신할 때, 상기 업그레이드 클라이언트는 상술된 것처럼 상기 업그레이드를 진행한다.
도 14 는 실시예에 따른 새로운 파일을 이용하여 비-임계 구성요소 업그레이드 동안 상기 업그레이드 프로세스 내에서 발생하는 오류로부터 클라이언트 장치를 복구하기 위한 플로우 다이어그램(1400)이다. 파일 업그레이드를 수행할 때, 상기 업그레이드 클라이언트는 블록 (1402)에서 상기 파일 업그레이드가 새로운 파일의 이용 가능성에 대응하여 최초로 수행되고 있는지를, 또는 상기 클라이언트 장치가 이전의 업그레이드 시도 동안 발생한 오류로부터 복구 중에 있는지를 결정함으로써 시작된다.
파일 업그레이드가 최초로 수행될 때, 상기 업그레이드 클라이언트는 블록 (1404)에서 상기 업그레이드 파일에 상응하는 원시 EBSC를 업그레이드 하는데 이용하기 위하여 새로운 EBSC 형태의 업그레이드 파일을 수신한다. 상기 새로운 EBSC의 수신에 대응하여, 상기 업그레이드 클라이언트는 블록 (1406)에서 상기 새로운 EBSC의 콘텐츠에 오류가 없는지를 결정하기 위하여 상기 새로운 EBSC의 검사 합 값을 이용한다. 이와 같은 상기 새로운 EBSC를 수신하고, 상기 파일 콘텐츠의 정확도를 평가하는 프로세스는 오류가 없는 차이파일이 수신될 때까지, 또는 상기 프로세스가 사전에 특정된 횟수(N)로 반복될 때까지 반복된다. 블록 (1430)에서, 성공하지 못한 채 사전에 특정된 횟수(N)로 상기 프로세스를 반복할 때, 상기 업그레이드 클라이언트는 블록 (1434)에서 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용하고, 블록 (1416)에서 상기 업그레이드 프로세스를 종결한다.
상기 업그레이드 클라이언트가 블록 (1406)에서 상기 새로운 EBSC의 콘텐츠가 정확하다고 결정할 때, 상기 업그레이드 클라이언트는 블록 (1408)에서 장치 ROM 내의 상기 원시 EBSC를 상기 새로운 EBSC와 교체한다. 검사 합 계산은 블록 (1410)에서 파일의 정확도를 검증하기 위하여 상기 ROM 소자에 기록된 새로운 EBSC에 대하여 수행된다. 만약 상기 새로운 EBSC의 검사 합 값이 블록 (1412)에서 부정확하다고 결정되면, 상기 클라이언트 ROM 소자에 기록된 상기 새로운 EBSC의 검사 합을 계산하는 프로세스는, 상기 새로운 EBSC가 ROM소자에 적절하게 기록되었음을 지시하면서, 정확한 검사 합 값이 수신될 때까지, 또는 상기 프로세스가 사전에 특정된 횟수(N)로 반복될 때까지 반복된다. 블록 (1432)에서, 성공하지 못한 채 사전에 특정된 횟수(N)로 상기 프로세스를 반복할 때, 상기 업그레이드 클라이언트는 블록 (1434)에서 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용하고, 블록 (1416)에서 상기 업그레이드 프로세스를 종결한다.
블록 (1412)에서 상기 ROM 소자에 기록된 상기 새로운 EBSC의 정확도를 검증할 때, 상기 업그레이드 클라이언트는 블록 (1414)에서 추가적인 차이파일이 상응하는 원시 EBSCs를 업그레이드 하는데 이용하기 위하여 사용될 수 있는지를 결정한다. 연산은 어떠한 추가적인 새로운 EBSC를 처리하기 위하여 블록 (1404)에 복귀하고, 그렇지 않다면 상기 업그레이드 프로세스는 블록 (1416)에서 종결된다.
상기 업그레이드 클라이언트가 블록 (1402)에서 상기 장치가 이전의 업그레이드 시도 중에 발생된 오류로부터 복구되고 있는 중이라고 결정할 때, 상기 업그레이드 클라이언트는 블록 (1440)에서 백업 구성파일이 상기 클라이언트 장치에서 이용될 수 있는지를 결정함으로써 복구를 시작한다. 백업 구성 데이터가 백업 구성파일에서 이용될 수 있을 때, 상기 업그레이드 클라이언트는 블록 (1442)에서 연관된 검사 합 값을 평가함으로써, 상기 백업 구성 데이터가 정확한지를 결정한다. 만약 백업 구성 데이터가 블록 (1440)에서 상기 클라이언트 장치에 이용될 수 없다면, 또는 블록 (1442)에서 만약 백업 구성 데이터가 이용될 수 있고, 상기 검사 합 값이 상기 데이터에 오류가 있다고 지시하면, 상기 업그레이드 클라이언트는 블록 (1460)에서 상기 클라이언트 장치 사용자 및 상기 서비스 제공자의 업그레이드 서버에 상기 오류를 보고하기 위하여 상기 클라이언트 장치의 자원을 이용한다. 그 다음에 상기 업그레이드 클라이언트는 블록 (1416)에서 상기 업그레이드 프로세스를 종결한다.
오류가 없는 백업 구성 데이터가 상기 클라이언트 장치에 이용될 수 있을 때, 상기 업그레이드 클라이언트는 블록 (1444)에서 상기 원시 구성파일 내의 상기 원시 구성 데이터 위에 상기 백업 구성 데이터를 기록한다. 상기 업그레이드 클라이언트는 그 다음에 블록 (1404)에서 상기 새로운 EBSC를 수신하는 것과 상술된 것처럼 상응하는 원시 EBSC를 업데이트하는 것을 진행한다.
클라이언트 장치에서 장애시 안전한 소프트웨어 업그레이드를 제공하기 위해 상술된 시스템 및 연관된 방법은 하나 이상의 프로세서와 하나 이상의 전자식 파일(electronic file) 포함하는 휴대용 통신장치(portable communication device)를 포함한다. 상기 프로세서는 하나 이상의 무선 결합(wireless coupling)에 대한 업그레이드 파일을 수신하고, 상기 프로세서는 상기 업그레이드 파일의 콘텐츠를 이용하여 상기 전자식 파일을 자동적으로 업그레이드 한다. 상기 업그레이드는 상기 전자식 파일 내의 오류를 수리하는 것 및 추가적인 전자식 파일을 제공하는 것 중 하나 이상을 포함한다. 상기 프로세서는 상기 전자식 파일의 자동 업그레이드 동안 장애에 대응하는 하나 이상의 운영 상태(operational state)로 상기 휴대용 통신장치를 자동적으로 복구한다. 상기 휴대용 통신장치는 셀룰러 폰(cellular telephone), 휴대용 계산 장치(portable computing device) 및 개인 휴대정보 단말기(personal digital assistants) 중 하나 이상을 포함한다. 상기 휴대용 통신장치에 대한 하나 이상의 운영 상태는 셀룰러 텔레포니 상태(cellular telephony state)를 포함한다.
클라이언트 장치 내에 장애시 안전한 소프트웨어 업그레이드를 제공하기 위하여 상술된 시스템 및 연관된 방법은 다음과 같은 단계를 포함하는 방법을 포함한다. 하나 이상의 무선 결합을 통해 휴대용 통신장치 내에 업그레이드 파일을 수신하는 단계로서, 여기서 업그레이드 파일 콘텐츠는 상기 휴대용 통신장치의 소프트웨어 구성요소 내의 오류를 수리하기 위한 정보 및 상기 휴대용 통신장치의 기능을 업그레이드하기 위한 정보 중 하나 이상을 포함하는 상기 업그레이드 파일을 수신하는 단계; 상기 업그레이드 파일 콘텐츠를 이용하여 상기 소프트웨어 구성요소를 자동적으로 업그레이드하는 단계; 그리고 상기 자동 업그레이드 동안 장애에 대응하는 하나 이상의 운영 상태로 상기 휴대용 통신장치를 자동적으로 복구하는 단계. 실시예에서 자동적으로 복구하는 것은 자동 업그레이드를 재시작하는 것을 추가로 포함한다. 실시예의 상기 업그레이드 파일 콘텐츠는 하나 이상의 차이 파일 및 내장 소프트웨어 구성요소를 포함한다. 상기 휴대용 통신장치의 하나 이상의 운영 상태는 셀룰러 텔레포니 상태를 포함한다.
실시예의 방법에서, 자동적으로 복구하는 단계는 추가로 다음과 같은 단계를 을 추가로 포함한다. 휴대용 통신장치 내의 백업 구성 데이터의 이용가능성을 결정하는 단계로서, 여기서 상기 백업 구성 데이터는 휴대용 통신장치의 구성 데이터에 대한 업그레이드 이전 버전을 포함하는 상기 백업 구성 데이터의 이용가능성을 결정하는 단계; 상기 백업 구성 데이터의 정확도를 검증하는 단계; 그리고 상기 휴대용 통신장치의 구성 데이터를 상기 백업 구성 데이터와 교체하는 단계.
실시예의 방법에서, 자동적으로 업그레이드 하는 단계는 상기 임계 소프트웨어 구성요소의 원시 버전에 상응하는 업그레이드된 소프트웨어 구성요소를 발생함으로써, 하나 이상의 임계 소프트웨어 구성요소를 자동적으로 업그레이드 단계 및 상기 휴대용 통신장치의 프로그램 메모리(program memory)에 상기 업그레이드된 소프트웨어 구성요소를 기록하는 단계를 포함하고, 여기서 상기 임계 소프트웨어 구성요소의 자동 업그레이드 동안 장애에 대응하여 자동적으로 복구하는 단계는 다음을 추가로 포함한다. 상기 휴대용 통신장치 내의 백업 업그레이드 소프트웨어 구성요소(backup upgraded software component)의 이용가능성을 결정하는 단계로서, 여기서 상기 백업 업그레이드 소프트웨어 구성요소는 상기 업그레이드된 소프트웨어 구성요소의 업그레이드 이전 버전을 포함하는 상기 백업 업그레이드 소프트웨어 구성요소의 이용가능성을 결정하는 단계; 상기 백업 업그레이드 소프트웨어 구성요소의 정확도를 검증하는 단계; 그리고 상기 휴대용 통신장치의 프로그램 메모리에 상기 백업 업그레이드 소프트웨어 구성요소를 기록하는 단계.
실시예의 방법에서, 자동적으로 업그레이드하는 단계는 상기 휴대용 통신장치의 프로그램 메모리에 상기 임계 소프트웨어 구성요소의 원시 버전에 상응하는 업그레이드된 소프트웨어 구성요소를 기록함으로써 하나 이상의 임계 소프트웨어 구성요소를 자동적으로 업그레이드하는 것을 포함하고, 여기서 상기 임계 소프트웨어 구성요소의 자동 업그레이드 동안 장애에 대응하여 자동적으로 복구하는 단계는 다음의 단계를 추가로 포함한다. 상기 휴대용 통신장치에서 백업 업그레이드 소프트웨어 구성요소의 이용가능성을 결정하는 단계로서, 여기서 상기 백업 업그레이드 소프트웨어 구성요소는 상기 업그레이드된 소프트웨어 구성요소의 업그레이드 이전 버전을 포함하는 상기 백업 업그레이드 소프트웨어 구성요소의 이용가능성을 결정하는 단계; 상기 백업 업그레이드 소프트웨어 구성요소의 정확도를 검증하는 단계; 그리고 상기 휴대용 통신장치의 프로그램 메모리에 백업 업그레이드 소프트웨어 구성요소를 기록하는 단계.
실시예의 방법에서, 자동적으로 업그레이드하는 단계는 비-임계 소프트웨어 구성요소의 최초 버전에 상응하는 업그레이드된 소프트웨어 구성요소를 발생함으로써, 그리고 상기 휴대용 통신장치의 프로그램 메모리에 상기 업그레이드된 소프트웨어 구성요소를 기록함으로써 하나 이상의 비-임계 소프트웨어 구성요소를 자동적으로 업그레이드 하는 것을 포함하며, 여기서 상기 비-임계 소프트웨어 구성요소의 자동 업그레이드 동안 장애에 대응하여 자동적으로 복구하는 단계는 추가로 다음의 단계를 포함한다. 무선 결합을 통해 상기 업그레이드된 소프트웨어 구성요소를 수신하는 단계; 그리고 상기 휴대용 통신장치의 프로그램 메모리에 상기 업그레이드된 소프트웨어 구성요소를 기록하는 단계.
실시예의 클라이언트 장치 내의 장애시 안전한 소프트웨어 업그레이드를 제공하기 위한 방법은 상기 휴대용 통신장치는 상기 자동 업그레이드 동안 발생하는 장애로부터 복구되고 있는 중인지를 결정하는 단계를 포함한다.
실시예의 클라이언트 장치 내의 장애시 안전한 소프트웨어 업그레이드를 제공하기 위한 단계는 하나 이상의 오류 체킹(checking) 및 상기 업그레이드 파일의 콘텐츠, 업그레이드되는 상기 소프트웨어 구성요소의 콘텐츠, 업그레이드된 소프트웨어 구성요소의 콘텐츠, 그리고 상기 휴대용 통신장치의 구성 데이터 중 하나 이상에 대한 교정 프로세스(correction process)를 적용하는 단계를 포함한다. 하나 이상의 오류 체킹 및 교정 프로세스는 검사 합 값(checksum values) 또는 순환 잉여코드( Cyclic Redundancy Codes, CRCs) 중 하나 이상을 이용하는 것을 포함한다.
클라이언트 장치 내의 장애시 안전한 소프트웨어 업그레이드를 제공하기 위하여 상술된 상기 시스템 및 연관된 방법은 전자식 파일을 업그레이드하기 위한 시스템을 포함하는데, 상기 시스템은 다음을 포함한다. 업그레이드 파일을 발생하는 제1 업그레이드 구성요소를 포함하는 제 1 장치로서, 여기서 상기 업그레이드 파일은 전자식 파일 내의 오류를 수선하기 위한 정보 및 상기 전자식 파일에 기능성(functionality)을 부가하기 위한 정보 중 하나 이상을 포함하는 상기 제 1 장치; 그리고 상기 제 1 장치와 무선 결합을 통하여 상기 업그레이드 파일을 수신하는 제 2 업그레이드 구성요소를 포함하는 이동 통신장치(mobile communication device)로서, 여기서 상기 제 2 업그레이드 구성요소는 상기 업그레이드 파일 콘텐츠를 이용하여 상기 이동 통신장치의 전자식 파일을 자동적으로 업그레이드 하며, 여기서 상기 제 2 업그레이드 구성요소는 상기 자동 업그레이드 동안 장애에 대응하는 하나 이상의 운영 상태로 상기 이동 통신장치를 자동적으로 복구하는 상기 이동 통신장치. 실시예의 제 1 장치는 제 2 장치 상에 호스트된 소프트웨어 구성요소에 대한 하나 이상의 제공자에 의해 접속될 수 있는 프로세서-기반(processor-based) 장치이다. 실시예의 상기 이동 통신장치는 셀룰러 폰이다. 실시예의 전자식 파일은 동적연결 라이브러리 파일(dynamic link library files), 공유 목적 파일(shared object file), 내장 소프트웨어 구성요소(embedded software components, EBSCs), 펌웨어 파일(firmware files), 실행가능 파일(executable files), 마술 데이터 파일(hex data files)을 포함하는 데이터 파일, 시스템 배열 파일(system configuration files) 및 개인사용 데이터(personal use data)를 포함하는 파일을 포함하는 소프트웨어 파일로 구성된다.
클라이언트 장치 내의 장애시 안전한 소프트웨어 업그레이드를 제공하기 위하여 상술된 상기 시스템 및 연관된 방법은 휴대용 장치 내에서 장애시 안전한 소프트웨어 업그레이드를 수행하기 위한 방법을 포함하는데, 상기 방법은 다음의 단계를 포함한다. 하나 이상의 무선 결합을 통해 휴대용 통신 장치 내에서 업그레이드 파일을 수신하는 단계로서, 여기서 업그레이드 파일 콘텐츠는 상기 휴대용 통신 장치의 소프트웨어 구성요소에서 오류를 수리하기 위한 정보 및 상기 휴대용 통신장치의 기능을 업그레이드하기 위한 정보 중 하나 이상을 포함하는 상기 업그레이드 파일을 수신하는 단계; 상기 업그레이드 파일 콘텐츠를 이용하여 상기 소프트웨어 구성요소를 자동적으로 업그레이드하는 단계; 상기 자동 업그레이드 동안 장애를 검출(detecting)하는 단계; 그리고 상기 검출된 장애에 대응하는 하나 이상의 운영 상태로 상기 휴대용 통신장치를 자동적으로 복구하는 단계로서, 여기서 복구 단계는 상기 휴대용 통신장치 내의 백업 구성 데이터의 이용가능성을 결정하는 것을 포함하고, 여기서 상기 백업 구성 데이터는 상기 휴대용 통신장치의 구성 데이터에 대한 업그레이드 이전 버전을 포함하며, 여기서 복구하는 단계는 상기 백업 구성 데이터의 정확도를 검증하고, 상기 구성 데이터를 상기 검증된 구성 데이터와 교체하는 것을 포함하는 상기 자동적으로 복구하는 단계.
클라이언트 장치 내에 장애시 안전한 소프트웨어 업그레이드를 제공하기 위하여 상술된 시스템 및 연결된 방법은 다음을 포함하는 이동 통신장치를 포함한다. 하나 이상의 무선 결합을 통하여 휴대용 통신장치 내에서 업그레이드 파일을 수신하기 위한 수단으로서, 여기서 업그레이드 파일 콘텐츠는 상기 휴대용 통신장치의 소프트웨어 구성요소 내의 오류를 수리하기 위한 정보 및 상기 휴대용 통신장치의 기능을 업그레이드하기 위한 정보 중 하나 이상을 포함하는 상기 업그레이드 파일을 수신하기 위한 수단; 상기 업그레이드 파일 콘텐츠를 이용하여 상기 소프트웨어 구성요소를 자동적으로 업그레이드하기 위한 수단; 그리고 상기 자동 업그레이드 동안 장애에 대응하는 하나 이상의 운영 상태로 상기 휴대용 통신장치를 자동적으로 복구하기 위한 수단.
클라이언트 장치 내에 장애시 안전한 소프트웨어 업그레이드를 제공하기 위하여 상술된 시스템 및 연결된 방법은 프로세싱 시스템에서 실행되었을 때, 다음과 같은 단계에 의해 휴대용 통신장치 내에서 소프트웨어를 업그레이드하는 실행 가능한 명령어(executable instructions)를 포함하는 컴퓨터 판독 가능한 매체(computer readable medium)를 포함한다. 하나 이상의 무선 결합에 의해 상기 휴대용 통신장치 내에서 업그레이드 파일을 수신하는 단계로서, 여기서 업그레이드 파일 콘텐츠는 상기 휴대용 통신장치의 소프트웨어 구성요소 내의 오류를 수리하기 위한 정보 및 상기 휴대용 통신장치의 기능을 업그레이드하기 위한 정보 중 하나 이상을 포함하는 상기 업그레이드 파일을 수신하는 단계; 상기 업그레이드 파일 콘텐츠를 이용하여 상기 소프트웨어 구성요소를 자동으로 업그레이드하는 단계; 상기 자동 업그레이드 동안 장애를 검출하는 단계; 그리고 상기 검출된 장애에 대응하여 하나 이상의 운영 상태로 상기 휴대용 통신장치를 자동으로 복구하는 단계로서, 여기서 복구하는 단계는 상기 휴대용 통신장치 내의 백업 구성 데이터의 이용가능성을 결정하고, 상기 백업 구성 데이터의 정확도를 검증하며, 그리고 상기 구성 데이터를 상기 검증된 백업 구성 데이터와 교체하는 것을 포함하는 상기 자동으로 복구하는 단계.
본 발명의 특징은 다수의 회로 중 특정한 것으로 프로그램 되는 기능성(functionality)으로서 구현될 수 있는데, 상기 기능성은 주문형 반도체(ASICs)뿐만 아니라, 필드 프로그램 가능 게이트 배열(field programmable gate array, FPGAs), 프로그램가능 배열 논리(programmable array logic, PAL) 장치, 전기적으로 프로그램 가능한 논리 및 메모리 장치 그리고 표준 셀-기반(standard cell-based) 장치와 같은 프로그램가능 논리 소자(programmable logic devices, PLDs)를 포함한다. 상기 발명의 특징을 구현하기 위한 몇몇 다른 가능한 수단들(possibilities)은 메모리( 전기적으로 지워지고 프로그램 가능한 읽기 전용 메모리(EEPROM)같은)를 가지는 마이크로제어기(microcontrollers), 내장 마이크로프로세서, 펌웨어, 소프트웨어 등을 포함한다. 게다가 본 발명의 특징은 소프트웨어-기반 회로 에뮬레이션(software-based circuit emulation), 이산 논리(discrete logic)(순차(sequential) 또는 결합의(combinatorial)), 주문 제품(custom devie), 퍼지(fuzzy)(신경)논리, 양자 장치(quantum devices), 그리고 상기 장치유형의 혼성(hybrids)을 가지는 마이크로프로세서에 내장될 수 있다. 물론 상기 기초가 되는 장치 기술은 상보성 금속 산화물 반도체(CMOS)와 유사한 금속 산화물 반도체 전계효과 트랜지스터(metal-oxide semiconductor field-effect transistor, MOSFET)기술, 이미터 결합 논리(emitter-coupled logic, ECL)와 같은 양극성 기술(bipolar technologies), 폴리머 기술(polymer technology)(즉, 실리콘-결합 폴리머(silicon-conjugated polymer) 및 금속-결합 폴리머-금속 구조(metal-conjugated polymer-metal structure)), 혼합 아날로그 및 디지털 등과 같은 다양한 구성요소 유형으로 제공될 수 있다.
만약 본 명세서가 상세한 설명과 청구항에 걸쳐서, 다른 식으로 명확하게 요구하지 않는다면, “포함하다(comprise)”,“포함하는(comprising)”그리고 이와 유사한 단어들은 배타적(exclusive) 또는 총망라하는(exhaustive) 의미와 반대되는 포괄적인(inclusive) 의미로서 간주될 수 있다. 다시 말해서, “포함하나, 제한되지 않는”의 의미이다. 단수 또는 복수를 이용하는 단어들은 또한 각각 복수 또는 단수를 포함한다. 추가적으로, “여기서(herein)”, “하기에서(hereunder)”단어 및 유사한 비슷한 의미의 단어들은 이 출원에서 사용될 때, 이 출원의 어떤 특정한 부분이 아니라, 이 출원을 전체적으로 지칭할 것이다.
본 발명의 도시된 실시예에 대한 상기 설명은 공개된 형태에 엄밀하게 상기 발명을 제한하거나 또는 총망라하려는 의도가 아니다. 비록 특정한 실시예로서 본 발명이 도시적 목적을 위해 여기서 기술되지만, 당업자들이 알 수 있듯이, 다양한 균등한 수정들이 본 발명의 영역 내에서 가능하다. 여기서 제시되는 본 발명의 내용(teaching)은 상술된 파일 업데이트 뿐만 아니라, 다른 프로세싱 시스템 및 통신 시스템에 적용될 수 있다.
상술된 다양한 실시예의 소자(elements) 및 행위(acts)는 추가적인 실시예를 제공하기 위하여 조합될 수 있다. 이와 같은 그리고 다른 변화들이 상기 발명의 상세한 설명에 의하여 본 발명에 만들어질 수 있다.
모든 상기 참조(references) 그리고 미국 특허와 특허출원은 참조로서 여기서 결합된다. 본 발명의 특징들은 필요하면 본 발명의 추가적인 실시예를 제공하기 위하여 상기 시스템, 기능 및 다양한 특허의 개념 및 상술된 출원을 이용하도록 수정될 수 있다.
일반적으로, 다음의 청구항에서, 상기 용어들은 명세서 및 청구항에서 공개된 특정한 실시예에 상기 발명을 제한하는 것으로 간주되지 않아야 하나, 파일 차이(file differencing) 및 업데이트(updating)를 위한 방법을 제공하기 위하여 상기 청구항 아래서 동작되는 모든 프로세싱 시스템을 포함하는 것으로 간주되어야 한다. 따라서 상기 발명은 상기 공개에 의해 제한되지 않으나, 대신에 상기 발명의 영역은 상기 청구항에 의해 전체적으로 결정되어야 한다.
비록 본 발명의 어떤 특징들은 어떤 청구항 형태로 아래에서 표현되지만, 본 발명은 특정한 수의 청구항 형태에서 본 발명의 다양한 특징들을 예상한다. 예를 들면, 비록 본 발명의 단지 한 태양이 컴퓨터-판독가능 매체에 구현되어 인용될 지라도, 다른 특징들이 컴퓨터-판독가능 매체 내에서 유사하게 구현될 수 있다. 따라서 상기 발명가는 본 발명의 다른 태양을 위해 추가적인 청구를 계속하기 위하여 본 출원을 출원한 이후에 추가적인 청구항을 부가할 권리를 보유한다.

Claims (22)

  1. 하나 이상의 프로세서 및 하나 이상의 전자식 파일(electronic file)을 포함하는 휴대용 통신장치로서, 상기 프로세서는 하나 이상의 무선 결합(wireless coupling)으로 업그레이드 파일(upgrade files)을 수신하고, 상기 프로세서는 상기 업그레이드 파일의 콘텐츠(contents)를 이용하여 상기 전자식 파일을 자동으로 업그레이드하며, 상기 업그레이드는 상기 전자식 파일 내의 오류(errors) 수리 및 추가적인 전자식 파일의 제공 중 하나 이상을 포함하고, 상기 프로세서는 상기 전자식 파일의 자동 업그레이드 동안 발생하는 장애(failure)에 대응하여 상기 휴대용 통신 장치를 하나 이상의 운영 상태(operational state)로 자동으로 복구하는 것을 특징으로 하는 휴대용 통신장치.
  2. 제 1 항에 있어서, 상기 휴대용 통신 장치는 하나 이상의 셀룰러 폰(cellular telephone), 휴대용 계산 장치(portable computing device), 및 개인 휴대정보 단말기(personal digital assistants)를 포함하는 것을 특징으로 하는 휴대용 통신장치.
  3. 제 1 항에 있어서, 하나 이상의 상기 운영 상태는 셀룰러 텔레포니 상태(cellular telephony state)를 포함하는 것을 특징으로 하는 휴대용 통신장치.
  4. - 하나 이상의 무선 결합을 통해 휴대용 통신장치 내에서 업그레이드 파일을 수신하는 단계로서, 업그레이드 파일 콘텐츠는 상기 휴대용 통신장치의 소프트웨어 구성요소 내의 오류를 수리하기 위한 정보 및 상기 휴대용 통신장치의 기능을 업그레이드하기 위한 정보 중 하나 이상을 포함하는 상기 업그레이드 파일을 수신하는 단계,
    - 상기 업그레이드 파일 콘텐츠를 이용하여 상기 소프트웨어 구성요소를 자동으로 업그레이드 하는 단계, 그리고
    - 상기 자동 업그레이드 단계 동안 발생하는 장애에 대응하여 하나 이상의 운영 상태로 상기 휴대용 통신장치를 자동으로 복구하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  5. 제 4 항에 있어서, 자동으로 복구하는 단계는 상기 자동 업그레이드를 다시 계속하는(resuming) 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  6. 제 4 항에 있어서, 자동으로 복구하는 단계는 상기 자동 업그레이드를 다시 시작하는(initiating) 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  7. 제 4 항에 있어서, 상기 업그레이드 파일 콘텐츠는 하나 이상의 차이 파일(difference files) 및 내장된 소프트웨어 구성요소(embedded software components)를 포함하는 것을 특징으로 하는 방법.
  8. 제 4 항에 있어서, 하나 이상의 상기 운영 상태는 셀룰러 텔레포니 상태를 포함하는 것을 특징으로 하는 방법.
  9. 제 4 항에 있어서, 자동으로 복구하는 단계는
    - 상기 휴대용 통신장치 내의 백업 구성 데이터의 이용가능성을 결정하는 단계로서, 상기 백업 구성 데이터는 상기 휴대용 통신장치의 구성 데이터에 대한 업그레이드 이전 버전을 포함하는 상기 백업 구성 데이터의 이용가능성을 결정하는 단계,
    - 상기 백업 구성 데이터의 정확도를 검증하는 단계, 그리고
    - 상기 휴대용 통신장치의 구성 데이터를 상기 백업 구성 데이터와 교체하는 단계
    를 추가로 포함하는 것을 특징으로 하는 방법.
  10. 제 9 항에 있어서, 자동으로 업그레이드하는 단계는 임계 소프트웨어 구성요소(critical software component)의 원시 버전(original version)에 상응하는 업그레이드된 소프트웨어 구성요소를 발생함으로써 하나 이상의 임계 소프트웨어 구성요소를 자동으로 업그레이드하는 단계와, 상기 휴대용 통신장치의 프로그램 메모리(program memory)에 상기 업그레이드된 소프트웨어 구성요소를 기록하는 단계를 포함하고, 상기 임계 소프트웨어 구성요소의 자동 업그레이드 동안 장애에 대응하여 자동으로 복구하는 단계는
    - 상기 휴대용 통신장치 내의 백업 업그레드 소프트웨어 구성요소(backup upgraded software component)의 이용가능성을 결정하는 단계로서, 상기 백업 업그레이드 소프트웨어 구성요소는 상기 업그레이드된 소프트웨어 구성요소의 업그레이드 이전 버전을 포함하는 상기 백업 업그레드 소프트웨어 구성요소의 이용가능성을 결정하는 단계,
    - 상기 백업 업그레이드 소프트웨어 구성요소의 정확도를 검증하는 단계, 그리고
    - 상기 휴대용 통신장치의 프로그램 메모리에 상기 백업 업그레이드 소프트웨어 구성요소를 기록하는 단계
    를 추가로 포함하는 것을 특징으로 하는 방법.
  11. 제 9 항에 있어서, 자동으로 업그레이드하는 단계는 상기 휴대용 통신장치의 프로그램 메모리에 상기 임계 소프트웨어 구성요소의 원시 버전에 상응하는 업그레이드된 소프트웨어 구성요소를 기록함으로써 하나 이상의 임계 소프트웨어 구성요소를 자동으로 업그레이드하는 단계를 포함하고, 상기 임계 소프트웨어 구성요소의 자동 업그레이드 동안 장애에 대응하여 자동으로 복구하는 단계는
    - 상기 휴대용 통신장치 내의 백업 업그레이드 소프트웨어 구성요소의 이용가능성을 결정하는 단계로서, 상기 백업 업그레이드 소프트웨어 구성요소는 상기 업그레이드된 소프트웨어 구성요소의 업그레이드 이전 버전을 포함하는 상기 백업 업그레이드 소프트웨어 구성요소의 이용가능성을 결정하는 단계,
    - 상기 백업 소프트웨어 구성요소의 정확도를 검증하는 단계, 그리고
    - 상기 휴대용 통신장치의 프로그램 메모리에 상기 백업 업그레이드 소프트웨어 구성요소를 기록하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  12. 제 9 항에 있어서, 자동으로 업그레이드하는 단계는 자동으로 업그레이드하는 단계는 비-임계(non-critical) 소프트웨어 구성요소의 원시 버전에 상응하는 업그레이드된 소프트웨어 구성요소를 발생함으로써 하나 이상의 비-임계 소프트웨어 구성요소를 자동으로 업그레이드하는 단계와, 상기 휴대용 통신장치의 프로그램 메모리에 상기 업그레이드된 소프트웨어 구성요소를 기록하는 단계를 포함하고, 상기 비-임계 소프트웨어 구성요소의 자동 업그레이드 동안 장애에 대응하여 자동으로 복구하는 단계는
    - 무선 결합을 통하여 상기 업그레이드된 소프트웨어 구성요소를 수신하는 단계, 그리고
    - 상기 휴대용 통신장치의 프로그램 메모리에 상기 업그레이드된 소프트웨어 구성요소를 기록하는 단계
    를 추가로 포함하는 것을 특징으로 하는 방법.
  13. 제 4 항에 있어서, 상기 방법은 상기 자동 업그레이드 동안 장애로부터 상기 휴대용 통신장치가 복구되고 있는 중인지를 결정하는 것을 추가로 포함하는 것을 특징으로 하는 방법.
  14. 제 4 항에 있어서, 상기 방법은 하나 이상의 오류 체킹(error checking)과 하나 이상의 상기 업그레이드 파일 콘텐츠, 업그레이드된 상기 소프트웨어 구성요소의 콘텐츠, 업그레이드된 소프트웨어 구성요소의 콘텐츠, 및 상기 휴대용 통신장치의 구성 데이터에 대한 교정 프로세스(correction process)를 적용하는 단계를 추가로 포함하는 것을 특징으로 하는 방법.
  15. 제 14 항에 있어서, 하나 이상의 상기 오류 체킹 및 교정 프로세스는 검사 합 값(checksum values) 또는 순환 잉여코드( Cyclic Redundancy Codes, CRCs) 중 하나 이상을 이용하는 것을 포함하는 것을 특징으로 하는 방법.
  16. 전자식 파일을 업그레이드하기 위한 시스템으로서, 상기 시스템은
    - 업그레이드 파일을 발생하는 제1 업그레이드 구성요소(first upgrade component)를 포함하는 제 1 장치(first device)로서, 상기 업그레이드 파일은 전자식 파일 내의 오류를 수리하기 위한 정보 및 상기 전자식 파일에 기능성(functionality)을 부가하기 위한 정보 중 하나 이상을 포함하는 상기 제 1 장치,
    - 상기 제 1 장치와 무선 결합을 통하여 상기 업그레이드 파일을 수신하는 제 2 업그레이드 구성요소(second upgrade component)를 포함하는 이동 통신장치(mobile communication device)로서, 상기 제 2 업그레이드 구성요소는 상기 업그레이드 파일 콘텐츠를 이용하여 상기 이동 통신장치의 전자식 파일을 자동으로 업그레이드 하고, 상기 제 2 업그레이드 구성요소는 상기 자동 업그레이드 동안 장애에 대응하여 하나 이상의 운영 상태로 상기 이동 통신장치를 자동으로 복구하는 상기 이동 통신장치
    를 포함하는 것을 특징으로 하는 전자식 파일을 업그레이드하기 위한 시스템.
  17. 제 16 항에 있어서, 상기 제 1 장치는 상기 제 2 장치에 호스트된(hosted) 소프트웨어 구성요소의 하나 이상의 제공자에 의해 접속될 수 있는 프로세서-기반 장치(processor-based device)인 것을 특징으로 하는 전자식 파일을 업그레이드하기 위한 시스템.
  18. 제 16 항에 있어서, 상기 이동 통신장치는 셀룰러 폰인 것을 특징으로 하는 전자식 파일을 업그레이드하기 위한 시스템.
  19. 제 16 항에 있어서, 상기 전자식 파일은 동적연결 라이브러리 파일(dynamic link library files), 공유 목적 파일(shared object file), 내장 소프트웨어 구성요소(embedded software components, EBSCs), 펌웨어 파일(firmware files), 실행가능 파일(executable files), 마술 데이터 파일(hex data files)을 포함하는 데이터 파일, 시스템 배열 파일(system configuration files) 및 개인사용 데이터를 포함하는 파일(files including personal use data)을 포함하는 소프트웨어 파일을 포함하는 것을 특징으로 하는 전자식 파일을 업그레이드하기 위한 시스템.
  20. 휴대용 장치(portable device) 내에서 장애시-안전한(fail-safe) 소프트웨어 업그레이드를 수행하기 위한 방법으로서, 상기 방법은
    - 하나 이상의 무선 결합을 통해 휴대용 통신장치 내에서 업그레이드 파일을 수신하는 단계로서, 업그레이드 파일 콘텐츠는 상기 휴대용 통신장치의 소프트웨어 구성요소 내의 오류를 수리하기 위한 정보 및 상기 휴대용 통신장치의 기능을 업그레이드하기 위한 정보 중 하나 이상을 포함하는 상기 업그레이드 파일을 수신하는 단계,
    - 상기 업그레이드 파일 콘텐츠를 이용하여 상기 소프트웨어 구성요소를 자동으로 업그레이드하는 단계,
    - 상기 자동 업그레이드 동안 장애를 검출(detecting)하는 단계, 그리고
    - 상기 검출된 장애에 대응하는 하나 이상의 운영 상태로 상기 휴대용 통신장치를 자동으로 복구하는 단계로서, 복구하는 단계는 상기 휴대용 통신장치 내에서 백업 구성 데이터의 이용가능성을 결정하는 단계를 포함하고, 상기 백업 구성 데이터는 상기 휴대용 통신장치의 구성 데이터의 업그레이드 이전 버전을 포함하며, 복구하는 단계는 상기 백업 구성 데이터의 정확도를 검증하는 단계 및 상기 구성 데이터를 상기 검증된 백업 구성 데이터로 교체하는 단계를 추가로 포함하는 상기 휴대용 통신장치를 자동으로 복구하는 단계
    를 포함하는 것을 특징으로 하는 장애시-안전한(fail-safe) 소프트웨어 업그레이드를 수행하기 위한 방법.
  21. 이동 통신장치로서, 상기 장치는
    - 하나 이상의 무선 결합을 통하여 휴대용 통신장치 내에서 업그레이드 파일을 수신하기 위한 수단으로서, 업그레이드 파일 콘텐츠는 상기 휴대용 통신장치의 소프트웨어 구성요소 내의 오류를 수리하기 위한 정보 및 상기 휴대용 통신장치의 기능을 업그레이드하기 위한 정보 중 하나 이상을 포함하는 상기 업그레이드 파일을 수신하기 위한 수단,
    - 상기 업그레이드 파일 콘텐츠를 이용하여 상기 소프트웨어 구성요소를 자동으로 업그레이드하기 위한 수단,
    - 상기 자동 업그레이드 동안 장애에 대응하여 하나 이상의 운영 상태로 상기 휴대용 통신장치를 자동으로 복구하기 위한 수단
    을 포함하는 것을 특징으로 하는 이동 통신장치.
  22. 컴퓨터 판독가능 매체(computer readable medium)로서, 프로세싱 시스템(processing system)에서 실행될 때 상기 매체는,
    - 하나 이상의 무선 결합을 통하여 상기 휴대용 통신장치에서 업그레이드 파일을 수신하는 단계로서, 업그레이드 파일 콘텐츠는 상기 휴대용 통신장치의 소프트웨어 구성요소 내의 오류를 수리하기 위한 정보 및 상기 휴대용 통신장치의 기능을 업그레이드하기 위한 정보 중 하나 이상을 포함하는 상기 업그레이드 파일을 수신하는 단계,
    - 상기 업그레이드 피일 콘텐츠를 이용하여 상기 소프트웨어 구성요소를 자동으로 업그레이드하는 단계,
    - 상기 자동 업그레이드 동안 장애를 검출하는 단계, 그리고
    - 상기 검출된 장애에 대응하여 하나 이상의 운영 상태로 상기 휴대용 통신장치를 자동으로 복구하는 단계로서, 복구하는 단계는 상기 휴대용 통신장치 내에서 백업 구성 데이터의 이용가능성을 결정하는 단계, 상기 백업 구성 데이터의 정확도를 검증하는 단계, 및 상기 구성 데이터를 상기 검증된 백업 구성 데이터로 교체하는 단계를 포함하는 상기 휴대용 통신장치를 자동으로 복구하는 단계
    에 의해 휴대용 통신장치 내에서 소프트웨어를 업그레이드하는 실행 가능한 명령어(executable instructions)들을 포함하는 것을 특징으로 하는 컴퓨터 판독가능 매체.
KR1020057008434A 2002-11-12 2003-11-12 업그레이드 중 발생하는 장애 및 오류로부터의 자동 복구를포함하는 전자식 파일의 업그레이드 KR20050074993A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/292,245 US6836657B2 (en) 2002-11-12 2002-11-12 Upgrading of electronic files including automatic recovery from failures and errors occurring during the upgrade
US10/292,245 2002-11-12

Publications (1)

Publication Number Publication Date
KR20050074993A true KR20050074993A (ko) 2005-07-19

Family

ID=32229410

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057008434A KR20050074993A (ko) 2002-11-12 2003-11-12 업그레이드 중 발생하는 장애 및 오류로부터의 자동 복구를포함하는 전자식 파일의 업그레이드

Country Status (7)

Country Link
US (3) US6836657B2 (ko)
EP (1) EP1563673A4 (ko)
JP (2) JP2006508432A (ko)
KR (1) KR20050074993A (ko)
CN (1) CN1711747B (ko)
AU (1) AU2003290720A1 (ko)
WO (1) WO2004044702A2 (ko)

Families Citing this family (272)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8156074B1 (en) 2000-01-26 2012-04-10 Synchronoss Technologies, Inc. Data transfer and synchronization system
US8620286B2 (en) 2004-02-27 2013-12-31 Synchronoss Technologies, Inc. Method and system for promoting and transferring licensed content and applications
US7505762B2 (en) * 2004-02-27 2009-03-17 Fusionone, Inc. Wireless telephone data backup system
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US6751794B1 (en) 2000-05-25 2004-06-15 Everdream Corporation Intelligent patch checker
US8073954B1 (en) 2000-07-19 2011-12-06 Synchronoss Technologies, Inc. Method and apparatus for a secure remote access system
US7895334B1 (en) 2000-07-19 2011-02-22 Fusionone, Inc. Remote access communication architecture apparatus and method
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US20030182414A1 (en) 2003-05-13 2003-09-25 O'neill Patrick J. System and method for updating and distributing information
US7818435B1 (en) 2000-12-14 2010-10-19 Fusionone, Inc. Reverse proxy mechanism for retrieving electronic content associated with a local network
US7278158B2 (en) * 2001-03-16 2007-10-02 Securewave S.A. Method and system for shadowing accesses to removable medium storage devices
US8615566B1 (en) 2001-03-23 2013-12-24 Synchronoss Technologies, Inc. Apparatus and method for operational support of remote network systems
US7734285B2 (en) * 2001-04-03 2010-06-08 Qualcomm Incorporated Method and apparatus for network initiated uninstallation of application program over wireless network
CA2349654A1 (en) * 2001-06-04 2002-12-04 Ibm Canada Limited-Ibm Canada Limitee Server configuration versioning tool
US7065347B1 (en) * 2001-06-27 2006-06-20 Peoplenet Communications Corporation System and method for over the air programming
US7466992B1 (en) 2001-10-18 2008-12-16 Iwao Fujisaki Communication device
US7107081B1 (en) 2001-10-18 2006-09-12 Iwao Fujisaki Communication device
US7127271B1 (en) 2001-10-18 2006-10-24 Iwao Fujisaki Communication device
US6925467B2 (en) * 2002-05-13 2005-08-02 Innopath Software, Inc. Byte-level file differencing and updating algorithms
US9813514B2 (en) 2002-06-12 2017-11-07 Good Technology Holdings Limited Information repository system including a wireless device and related method
US7555750B1 (en) * 2002-08-22 2009-06-30 Hewlett-Packard Development Company, L.P. Update package generator employing partial predictive mapping techniques for generating update packages for mobile handsets
US7096311B2 (en) * 2002-09-30 2006-08-22 Innopath Software, Inc. Updating electronic files using byte-level file differencing and updating algorithms
US6836657B2 (en) 2002-11-12 2004-12-28 Innopath Software, Inc. Upgrading of electronic files including automatic recovery from failures and errors occurring during the upgrade
US7003534B2 (en) * 2002-11-18 2006-02-21 Innopath Software, Inc. Generating difference files using module information of embedded software components
US20040098421A1 (en) * 2002-11-18 2004-05-20 Luosheng Peng Scheduling updates of electronic files
US7320010B2 (en) * 2002-11-18 2008-01-15 Innopath Software, Inc. Controlling updates of electronic files
US7007049B2 (en) * 2002-11-18 2006-02-28 Innopath Software, Inc. Device memory management during electronic file updating
US7844734B2 (en) * 2002-11-18 2010-11-30 Innopath Software, Inc. Dynamic addressing (DA) using a centralized DA manager
US20040098361A1 (en) * 2002-11-18 2004-05-20 Luosheng Peng Managing electronic file updates on client devices
US7085957B2 (en) * 2002-11-21 2006-08-01 Texas Instruments Incorporated Upgrading of firmware with tolerance to failures
US7461373B2 (en) * 2002-12-05 2008-12-02 Samsung Electronics Co., Ltd. Apparatus and method for upgrading software of a wireless mobile station
US7099884B2 (en) * 2002-12-06 2006-08-29 Innopath Software System and method for data compression and decompression
US7222258B2 (en) * 2002-12-18 2007-05-22 Intel Corporation Compressing a firmware image
US8737981B2 (en) 2002-12-19 2014-05-27 Qualcomm Incorporated Downloadable configuring application for a wireless device
KR100539778B1 (ko) * 2002-12-31 2006-01-11 엘지전자 주식회사 이동통신 단말기의 기능제어 파라메터 변경방법
JP2004227173A (ja) * 2003-01-21 2004-08-12 Pioneer Electronic Corp ソフトウェアダウンロードシステム、通信機及びダウンロードセンター並びに通信プログラム
US7149508B2 (en) * 2003-02-05 2006-12-12 Samsung Electronics Co., Ltd. System and method for delta-based over-the-air software upgrades for a wireless mobile station
US8229512B1 (en) 2003-02-08 2012-07-24 Iwao Fujisaki Communication device
JP4417123B2 (ja) * 2003-02-19 2010-02-17 パナソニック株式会社 ソフトウェア更新方法及び無線通信装置
US20040192280A1 (en) * 2003-03-26 2004-09-30 Lockheed Martin Corporation System for updating application software of data acquisition devices
US7975147B1 (en) 2003-03-31 2011-07-05 Hewlett-Packard Development Company, L.P. Electronic device network supporting enciphering and deciphering and update generation in electronic devices
US8241128B1 (en) 2003-04-03 2012-08-14 Iwao Fujisaki Communication device
US20040237081A1 (en) * 2003-05-19 2004-11-25 Homiller Daniel P. Methods and apparatus for generating upgraded software from initial software and software upgrade packages
DE50301192D1 (de) * 2003-05-27 2005-10-20 Siemens Ag Verfahren zum paketorientierten Übertragen von Daten in Telekommunikationsnetzen mittels Umsetzung in einem Zwischenknoten von einem verbindungslosen zu einem verbindungsorientierten Übertragungsprotokoll und umgekehrt
US8572597B2 (en) * 2003-06-20 2013-10-29 Samsung Electronics Co., Ltd. Apparatus and method for performing an over-the-air software update in a dual processor mobile station
US7089270B2 (en) * 2003-06-20 2006-08-08 Innopath Software Processing software images for use in generating difference files
US7117348B2 (en) * 2003-06-27 2006-10-03 American Megatrends, Inc. Method and system for detecting the validity of configuration data
US7343443B1 (en) 2003-07-08 2008-03-11 Hewlett-Packard Development Company, L.P. Updated package generation based on analysis of bank dependency
US20050010576A1 (en) * 2003-07-09 2005-01-13 Liwei Ren File differencing and updating engines
US20050010870A1 (en) * 2003-07-09 2005-01-13 Jinsheng Gu Post-processing algorithm for byte-level file differencing
US7031972B2 (en) * 2003-07-21 2006-04-18 Innopath Software, Inc. Algorithms for block-level code alignment of software binary files
WO2005010715A2 (en) 2003-07-21 2005-02-03 Fusionone, Inc. Device message management system
US20050020308A1 (en) * 2003-07-23 2005-01-27 David Lai Dynamically binding Subscriber Identity Modules (SIMs)/User Identity Modules (UIMs) with portable communication devices
US7886093B1 (en) * 2003-07-31 2011-02-08 Hewlett-Packard Development Company, L.P. Electronic device network supporting compression and decompression in electronic devices
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
US8090402B1 (en) 2003-09-26 2012-01-03 Iwao Fujisaki Communication device
US20050085222A1 (en) * 2003-10-17 2005-04-21 Nokia Corporation Software updating process for mobile devices
CN1973262B (zh) * 2003-10-23 2012-08-22 创道软件有限公司 使用集中动态寻址(da)管理器的动态寻址
KR20050040432A (ko) * 2003-10-28 2005-05-03 주식회사 팬택앤큐리텔 메뉴 화면 갱신 기능을 가진 이동통신 단말기 및 그 갱신방법
US8121635B1 (en) 2003-11-22 2012-02-21 Iwao Fujisaki Communication device
GB2408658B (en) * 2003-11-25 2006-07-05 Surfkitchen Inc Communications system
US20050124332A1 (en) * 2003-12-08 2005-06-09 Clark David R. Mobile device programming system and method
CN100372294C (zh) * 2004-02-04 2008-02-27 华为技术有限公司 设备升级方法
WO2005088449A1 (en) * 2004-03-15 2005-09-22 Red Bend Ltd. Method and apparatus for reliably updating a stored version of content
US8041348B1 (en) 2004-03-23 2011-10-18 Iwao Fujisaki Communication device
US7558867B2 (en) * 2004-04-20 2009-07-07 Wyse Technology Inc. Automatic firmware upgrade for a thin client using one or more FTP servers
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US7971199B1 (en) * 2004-05-03 2011-06-28 Hewlett-Packard Development Company, L.P. Mobile device with a self-updating update agent in a wireless network
TWI251756B (en) * 2004-05-05 2006-03-21 Rdc Semiconductor Co Ltd Data updating method for embedded system
US7543118B1 (en) 2004-05-07 2009-06-02 Hewlett-Packard Development Company, L.P. Multiple variance platform for the management of mobile devices
WO2005112586A2 (en) 2004-05-12 2005-12-01 Fusionone, Inc. Advanced contact identification system
US9542076B1 (en) 2004-05-12 2017-01-10 Synchronoss Technologies, Inc. System for and method of updating a personal profile
CN1898942A (zh) 2004-05-25 2007-01-17 诺基亚公司 对通过通信系统提供的业务的使用
US7529779B2 (en) * 2004-06-10 2009-05-05 Samsung Electronics Co., Ltd. Apparatus and method for efficient generation of delta files for over-the-air upgrades in a wireless network
KR100617793B1 (ko) * 2004-06-24 2006-08-28 삼성전자주식회사 통합 차이파일을 이용한 휴대용 단말기의 소프트웨어 버전업그레이드 방법
US8254921B2 (en) * 2004-08-12 2012-08-28 Qualcomm Incorporated Default configurations with differential encoding in a wireless communication system
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
JP2006065857A (ja) * 2004-08-24 2006-03-09 Lg Electronics Inc 移動通信端末機のプログラム強制ダウンロード方法及び装置
US7516451B2 (en) 2004-08-31 2009-04-07 Innopath Software, Inc. Maintaining mobile device electronic files including using difference files when upgrading
WO2006052904A2 (en) * 2004-11-08 2006-05-18 Innopath Software, Inc. Updating compressed read-only memory file system (cramfs) images
JP4845467B2 (ja) * 2004-11-08 2011-12-28 株式会社エヌ・ティ・ティ・ドコモ デバイス管理装置、デバイス及びデバイス管理方法
KR20060054980A (ko) * 2004-11-17 2006-05-23 삼성전자주식회사 복수의 마이크로 프로세서들을 구비한 장치의 소프트웨어업그레이드 방법 및 그 장치
KR20060065078A (ko) * 2004-12-09 2006-06-14 삼성전자주식회사 시스템의 펌웨어 업-데이트 방법 및 장치
US8180927B2 (en) * 2004-12-14 2012-05-15 Core Wireless Licensing S.A.R.L Transaction control arrangement for device management system
FR2880763B1 (fr) * 2005-01-12 2007-05-11 Bouygues Telecom Sa Procede de gestion de repertoires dans un terminal mobile et terminal mobile associe
JP2006268172A (ja) * 2005-03-22 2006-10-05 Nec Corp サーバシステムおよびオンラインソフトウェア更新方法
US20060223496A1 (en) * 2005-03-31 2006-10-05 Lucent Technologies Inc. System and method for detection of mobile handset software corruption
US7930693B2 (en) * 2005-04-04 2011-04-19 Cisco Technology, Inc. Method and system for accessing and launching a java based applet as a locally installed application
US8208954B1 (en) 2005-04-08 2012-06-26 Iwao Fujisaki Communication device
EP1887759B1 (en) 2005-06-15 2011-09-21 Huawei Technologies Co., Ltd. Method and system for realizing automatic restoration after a device failure
US7765398B2 (en) * 2005-07-07 2010-07-27 At&T Intellectual Property I, L.P. Method of promulgating a transaction tool to a recipient
DE602005009353D1 (de) * 2005-07-22 2008-10-09 Alcatel Lucent Rückgewinnung von Netzelementenkonfiguration
US9332424B2 (en) * 2005-08-05 2016-05-03 Qualcomm Incorporated Centrally managed solution for all device management activities
US7797694B2 (en) * 2005-09-19 2010-09-14 Adc Telecommunications, Inc. Mechanism to upgrade system capability without affecting service
CN100349265C (zh) * 2005-10-25 2007-11-14 西安电子科技大学 磷化铟材料上原位淀积高介电常数三氧化二铝和金属膜的方法
US8812558B1 (en) * 2005-11-14 2014-08-19 Trend Micro Incorporated Push notification of updates to antivirus programs
TWI287744B (en) * 2005-11-22 2007-10-01 Inst Information Industry Method and system for discover capabilities of communication device
WO2007064781A2 (en) * 2005-11-30 2007-06-07 Kelsey-Hayes Company Microprocessor memory management
US8554748B1 (en) * 2005-11-30 2013-10-08 Netapp, Inc. Method and apparatus for differential file based update for embedded systems
US20070132774A1 (en) * 2005-12-01 2007-06-14 Samsung Electronics Co., Ltd. System and method for a patch minimization tool
JP2007156927A (ja) * 2005-12-06 2007-06-21 Matsushita Electric Ind Co Ltd 供給装置及び受給装置
US7546492B2 (en) * 2005-12-22 2009-06-09 Sony Corporation Remotely repairing files by hierarchical and segmented cyclic redundancy checks
US7430626B2 (en) * 2006-01-30 2008-09-30 Adc Telecommunications, Inc. Bi-directional data control state machine
US7729690B1 (en) * 2006-02-15 2010-06-01 Trend Micro, Inc. Backup and restore of user data for mobile telephone
US7702322B1 (en) * 2006-02-27 2010-04-20 Good Technology, Llc Method and system for distributing and updating software in wireless devices
US7620392B1 (en) 2006-02-27 2009-11-17 Good Technology, Inc. Method and system for distributing and updating software in wireless devices
EP1830256B1 (en) * 2006-03-01 2014-08-13 Axis AB Method and system for upgrading a plurality of devices
US9552214B2 (en) * 2006-04-26 2017-01-24 Oracle International Corporation Tool for automated extraction and loading of configuration settings
EP2025095A2 (en) 2006-06-08 2009-02-18 Hewlett-Packard Development Company, L.P. Device management in a network
CN100461694C (zh) * 2006-06-22 2009-02-11 华为技术有限公司 一种修复通信设备的方法
US8752044B2 (en) 2006-07-27 2014-06-10 Qualcomm Incorporated User experience and dependency management in a mobile device
US8311988B2 (en) * 2006-08-04 2012-11-13 Apple Inc. Consistent back up of electronic information
US9009115B2 (en) 2006-08-04 2015-04-14 Apple Inc. Restoring electronic information
KR101079585B1 (ko) * 2006-08-09 2011-11-03 삼성전자주식회사 디스플레이장치, 영상처리장치 및 그 제어프로그램갱신방법
KR100832269B1 (ko) * 2006-09-08 2008-05-26 삼성전자주식회사 무선 통신 단말의 프로그램 갱신 방법 및 시스템
KR20080025957A (ko) * 2006-09-19 2008-03-24 삼성전자주식회사 휴대용 단말기에서 소프트웨어를 업그레이드하기 위한 장치및 방법
US20080098383A1 (en) * 2006-10-20 2008-04-24 Phonak Ag Method for installing a new version of a hearing-device fitting-software package on a computer system
US8112747B2 (en) * 2006-11-27 2012-02-07 Sap Ag Integrated software support for a distributed business application with seamless backend communications
US8041444B2 (en) 2006-12-22 2011-10-18 Harris Stratex Networks Operating Corporation Intelligent production station and production method
US8712567B2 (en) * 2006-12-22 2014-04-29 Aviat U.S., Inc. Manufactured product configuration
US20080244558A1 (en) * 2007-03-28 2008-10-02 Motorola, Inc. Content downloading in a radio communication network
US8726259B2 (en) * 2007-04-09 2014-05-13 Kyocera Corporation System and method for preserving device parameters during a FOTA upgrade
US7890089B1 (en) 2007-05-03 2011-02-15 Iwao Fujisaki Communication device
US8559983B1 (en) 2007-05-03 2013-10-15 Iwao Fujisaki Communication device
EP2535830B1 (en) 2007-05-30 2018-11-21 Ascensia Diabetes Care Holdings AG Method and system for managing health data
US8010900B2 (en) 2007-06-08 2011-08-30 Apple Inc. User interface for electronic backup
US8307004B2 (en) 2007-06-08 2012-11-06 Apple Inc. Manipulating electronic backups
US20080307017A1 (en) 2007-06-08 2008-12-11 Apple Inc. Searching and Restoring of Backups
US20090019435A1 (en) * 2007-07-12 2009-01-15 Sauer-Danfoss Inc. System and method for over the air programming
US7857222B2 (en) 2007-08-16 2010-12-28 Hand Held Products, Inc. Data collection system having EIR terminal interface node
US8676273B1 (en) 2007-08-24 2014-03-18 Iwao Fujisaki Communication device
US9652210B2 (en) 2007-08-28 2017-05-16 Red Hat, Inc. Provisioning a device with multiple bit-size versions of a software component
US20090064129A1 (en) * 2007-08-31 2009-03-05 Mediatek Inc. Suspend and resume mechanisms on a flash memory
US20090094593A1 (en) * 2007-10-05 2009-04-09 Jaung Richard L Wirelessly upgrading software in a mobile computing device
US8639214B1 (en) 2007-10-26 2014-01-28 Iwao Fujisaki Communication device
US8472935B1 (en) 2007-10-29 2013-06-25 Iwao Fujisaki Communication device
US20090150348A1 (en) * 2007-12-10 2009-06-11 International Business Machines Corporation Managing data produced from discoveries conducted against systems
EP2229625B1 (en) * 2007-12-13 2011-08-31 Telefonaktiebolaget LM Ericsson (publ) Updating firmware of an electronic device
US8744720B1 (en) 2007-12-27 2014-06-03 Iwao Fujisaki Inter-vehicle middle point maintaining implementer
US8181111B1 (en) 2007-12-31 2012-05-15 Synchronoss Technologies, Inc. System and method for providing social context to digital activity
US8464244B2 (en) * 2008-01-08 2013-06-11 Oracle International Corporation Implementation tool combining pre-configuration and questionnaire
US8219595B2 (en) 2008-02-14 2012-07-10 Hewlett-Packard Development Company, L.P. System and method for efficient remote data access for server management
US8713556B2 (en) * 2008-02-25 2014-04-29 Sap Ag Virtual appliance update method
US20090254890A1 (en) * 2008-04-04 2009-10-08 Electronics And Telecommunications Research Institute Apparatus and method for generating install-less software from installation package of software
JP5167936B2 (ja) * 2008-05-08 2013-03-21 日本電気株式会社 情報処理装置
US8543157B1 (en) 2008-05-09 2013-09-24 Iwao Fujisaki Communication device which notifies its pin-point location or geographic area in accordance with user selection
US8370800B2 (en) * 2008-06-03 2013-02-05 International Business Machines Corporation Determining application distribution based on application state tracking information
US8381205B2 (en) * 2008-06-03 2013-02-19 International Business Machines Corporation Co-resident software performance tracking
US8340726B1 (en) 2008-06-30 2012-12-25 Iwao Fujisaki Communication device
US8452307B1 (en) 2008-07-02 2013-05-28 Iwao Fujisaki Communication device
EP2169552A1 (en) 2008-09-18 2010-03-31 Research In Motion Limited System and method for transactional application lifecycle management for mobile devices
US8135393B2 (en) * 2008-09-18 2012-03-13 Research In Motion Limited System and method for transactional application lifecycle management for mobile devices
US8677342B1 (en) * 2008-10-17 2014-03-18 Honeywell International Inc. System, method and apparatus for replacing wireless devices in a system
GB2465193A (en) * 2008-11-10 2010-05-12 Symbian Software Ltd Detecting updated files in a firmware over the air update using CRC values
US8332842B2 (en) * 2008-11-14 2012-12-11 International Business Machines Corporation Application restore points
US8132047B2 (en) * 2008-11-14 2012-03-06 International Business Machines Corporation Restoring application upgrades using an application restore point
CN101420431B (zh) * 2008-11-28 2012-07-04 中兴通讯股份有限公司 Fota服务器、终端及其软件版本的处理方法和系统
JPWO2010073444A1 (ja) * 2008-12-24 2012-05-31 パナソニック株式会社 バスコントローラ及び初期ブートプログラムのパッチ方法
US8612961B2 (en) * 2008-12-31 2013-12-17 Motorola Mobility Llc System and method for downloading software upgrades
US8726272B2 (en) * 2009-01-15 2014-05-13 Oracle International Corporation Extensibility for business accelerator authoring tools
US9104521B2 (en) * 2009-03-16 2015-08-11 Tyco Electronics Subsea Communications Llc System and method for remote device application upgrades
JP5275105B2 (ja) * 2009-03-26 2013-08-28 京セラ株式会社 電子機器
US8225138B2 (en) * 2009-03-31 2012-07-17 Lenovo (Singapore) Pte. Ltd. High-speed recovery for computing systems
US8566815B2 (en) * 2009-05-04 2013-10-22 Nokia Siemens Networks Oy Mechanism for updating software
NO332765B1 (no) 2009-05-13 2013-01-07 Moota Telecom As Fremgangsmate for tilpasset oppdatering og nedlasting av programvare til en mobil kommunikasjonsenhet uten interaksjon fra brukeren
US8898748B2 (en) * 2009-05-21 2014-11-25 Mobile Iron, Inc. Remote verification for configuration updates
CN101610499A (zh) * 2009-07-13 2009-12-23 中兴通讯股份有限公司 无线数据卡的升级方法和系统
US20110016089A1 (en) * 2009-07-16 2011-01-20 Apple Inc. Restoring data to a mobile device
JP5440009B2 (ja) * 2009-07-31 2014-03-12 富士通株式会社 マルチクラスタシステムのプログラム更新方法及びマルチクラスタシステム
US8200626B1 (en) * 2009-09-18 2012-06-12 Sprint Communications Company L.P. Mobile device file management
US9770654B1 (en) 2009-09-30 2017-09-26 Amazon Technologies, Inc. Cross device operation of games
US8414390B1 (en) * 2009-09-30 2013-04-09 Amazon Technologies, Inc. Systems and methods for the electronic distribution of games
US8662997B1 (en) 2009-09-30 2014-03-04 Amazon Technologies, Inc. Systems and methods for in-game provisioning of content
US8255006B1 (en) 2009-11-10 2012-08-28 Fusionone, Inc. Event dependent notification system and method
US9497092B2 (en) 2009-12-08 2016-11-15 Hand Held Products, Inc. Remote device management interface
US9152484B2 (en) 2010-02-26 2015-10-06 Red Hat, Inc. Generating predictive diagnostics via package update manager
US10534624B2 (en) 2010-02-26 2020-01-14 Red Hat, Inc. Generating and storing translation information as package metadata
JP5110406B2 (ja) * 2010-03-01 2012-12-26 横河電機株式会社 フィールド通信管理装置
KR20110104383A (ko) * 2010-03-16 2011-09-22 삼성전자주식회사 펌웨어 업데이트 서비스 장치 및 방법
CN102236565A (zh) 2010-04-30 2011-11-09 国际商业机器公司 用于计算机应用的协作安装的方法和系统
US8381036B2 (en) * 2010-05-26 2013-02-19 Red Hat, Inc. Systems and methods for restoring machine state history related to detected faults in package update process
US9183560B2 (en) 2010-05-28 2015-11-10 Daniel H. Abelow Reality alternate
US8539472B2 (en) * 2010-06-09 2013-09-17 Lear Corporation Method and system of updating shared memory
US8855627B2 (en) 2010-06-14 2014-10-07 Future Dial, Inc. System and method for enhanced diagnostics on mobile communication devices
JP5387767B2 (ja) * 2010-06-17 2014-01-15 富士通株式会社 実行中のプログラムの更新技術
US20120041851A1 (en) * 2010-08-13 2012-02-16 Verizon Patent And Licensing Inc. Method and apparatus for enhanced supply chain management
US8413132B2 (en) * 2010-09-13 2013-04-02 Samsung Electronics Co., Ltd. Techniques for resolving read-after-write (RAW) conflicts using backup area
EP2434398A1 (en) * 2010-09-15 2012-03-28 ABB Technology AG A low or medium voltage electric power distribution network.
EP2431872A1 (en) * 2010-09-15 2012-03-21 ABB Technology AG A low or medium voltage electric power distribution network
KR20120041384A (ko) * 2010-10-21 2012-05-02 삼성전자주식회사 모바일 디바이스의 펌웨어 업데이트 방법 및 장치
US9032053B2 (en) * 2010-10-29 2015-05-12 Nokia Corporation Method and apparatus for upgrading components of a cluster
US8943428B2 (en) 2010-11-01 2015-01-27 Synchronoss Technologies, Inc. System for and method of field mapping
US9557983B1 (en) * 2010-12-29 2017-01-31 Emc Corporation Flexible storage application deployment mechanism
US8943026B2 (en) 2011-01-14 2015-01-27 Apple Inc. Visual representation of a local backup
US8984029B2 (en) 2011-01-14 2015-03-17 Apple Inc. File system management
US9319406B2 (en) 2011-07-12 2016-04-19 Apple Inc. System and method for linking pre-installed software to a user account on an online store
US20130019237A1 (en) * 2011-07-12 2013-01-17 Apple Inc. System and method for linking pre-installed software to a user account on an online store
US9146728B2 (en) * 2011-08-03 2015-09-29 Cinemotion, Llc Mobile application creation platform
US8996916B2 (en) 2011-08-16 2015-03-31 Future Dial, Inc. System and method for identifying problems via a monitoring application that repetitively records multiple separate consecutive files listing launched or installed applications
CN102969029A (zh) * 2011-09-01 2013-03-13 成都海存艾匹科技有限公司 现场修复系统和方法
US9519648B2 (en) * 2011-09-27 2016-12-13 International Business Machines Corporation Software detection
US8621123B2 (en) 2011-10-06 2013-12-31 Honeywell International Inc. Device management using virtual interfaces
US8539123B2 (en) 2011-10-06 2013-09-17 Honeywell International, Inc. Device management using a dedicated management interface
US8826265B2 (en) * 2011-10-24 2014-09-02 Texas Instruments Incorporated Data concentrator initiated multicast firmware upgrade
US20130117738A1 (en) * 2011-11-03 2013-05-09 Microsoft Corporation Server Upgrades with Safety Checking and Preview
CN102567053A (zh) * 2011-12-20 2012-07-11 云海创想信息技术(无锡)有限公司 一种软件版本回退的方法及装置
US8667270B2 (en) * 2012-02-10 2014-03-04 Samsung Electronics Co., Ltd. Securely upgrading or downgrading platform components
CN102650947B (zh) * 2012-04-01 2015-06-24 广东欧珀移动通信有限公司 一种Android手持设备连续增量的空中升级方法
US9525587B2 (en) 2012-05-17 2016-12-20 International Business Machines Corporation Updating web resources
US10117092B2 (en) 2012-08-16 2018-10-30 Future Dial, Inc. Mobile device transfer station
US10198366B2 (en) 2012-08-16 2019-02-05 Future Dial, Inc. System for mobile computing device data synchronization
US8761757B2 (en) * 2012-09-14 2014-06-24 Tektronix, Inc. Identification of communication devices in telecommunication networks
US8959503B2 (en) 2012-10-05 2015-02-17 Microsoft Technology Licensing Llc Application version gatekeeping during upgrade
US9128798B2 (en) 2012-10-17 2015-09-08 Movimento Group Module updating device
US8813061B2 (en) * 2012-10-17 2014-08-19 Movimento Group Module updating device
KR20140066370A (ko) * 2012-11-23 2014-06-02 삼성전자주식회사 디스플레이장치 및 소프트웨어 복구 방법
US9615401B2 (en) * 2012-12-11 2017-04-04 Qualcomm Incorporated Methods and apparatus for updating a device configuration
US20140208306A1 (en) * 2013-01-23 2014-07-24 Caterpillar Inc. Control system having automatic component software management
US9058251B1 (en) * 2013-03-13 2015-06-16 Google Inc. Detecting external software update failure of local application
JP6160688B2 (ja) * 2013-03-18 2017-07-12 富士通株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
MY163853A (en) * 2013-05-09 2017-10-31 Mimos Berhad Providing maintenance interface on wireless device in the event of firmware upgrade failure
CN103336703B (zh) * 2013-07-08 2018-09-18 惠州Tcl移动通信有限公司 生成升级包的方法、服务器、软件升级方法、移动终端
JP6259601B2 (ja) * 2013-07-25 2018-01-10 任天堂株式会社 情報処理装置、情報処理システム、情報処理方法及びコンピュータプログラム
KR102109051B1 (ko) * 2013-08-06 2020-05-11 삼성전자주식회사 기능 확장장치, 디스플레이 장치 및 이의 제어 방법
US9400642B2 (en) * 2013-08-29 2016-07-26 Mckesson Financial Holdings Self-updating application agent
US9830141B2 (en) * 2013-12-23 2017-11-28 Google Llc Providing a software update to computing devices on the same network
US20150242282A1 (en) * 2014-02-24 2015-08-27 Red Hat, Inc. Mechanism to update software packages
US9383989B1 (en) 2014-06-16 2016-07-05 Symantec Corporation Systems and methods for updating applications
US9921819B2 (en) * 2014-12-29 2018-03-20 Airwatch Llc Persistent mobile device enrollment
EP3265991A4 (en) * 2015-03-04 2018-11-14 Furuno Electric Co., Ltd. Data processing system and method to use the data processing system
CN104899059B (zh) * 2015-05-20 2018-10-19 小米科技有限责任公司 操作系统升级方法及装置
US10401935B2 (en) 2016-05-03 2019-09-03 Samsung Electronics Co., Ltd. Storage device with a power source and persistent store that provides backup power to DRAM in a power loss event
US10126136B2 (en) 2016-06-14 2018-11-13 nuTonomy Inc. Route planning for an autonomous vehicle
US10309792B2 (en) 2016-06-14 2019-06-04 nuTonomy Inc. Route planning for an autonomous vehicle
US11092446B2 (en) 2016-06-14 2021-08-17 Motional Ad Llc Route planning for an autonomous vehicle
US10829116B2 (en) 2016-07-01 2020-11-10 nuTonomy Inc. Affecting functions of a vehicle based on function-related information about its environment
JP6659509B2 (ja) * 2016-09-30 2020-03-04 株式会社日立製作所 計算機システム、計算機システムによるソフトウェアの送信管理方法、そのためのプログラム、及び、記録媒体
JP6760813B2 (ja) * 2016-10-14 2020-09-23 日立オートモティブシステムズ株式会社 ソフトウェア更新装置、ソフトウェア更新方法、ソフトウェア更新システム
US10331129B2 (en) 2016-10-20 2019-06-25 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10473470B2 (en) 2016-10-20 2019-11-12 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10857994B2 (en) 2016-10-20 2020-12-08 Motional Ad Llc Identifying a stopping place for an autonomous vehicle
US10681513B2 (en) 2016-10-20 2020-06-09 nuTonomy Inc. Identifying a stopping place for an autonomous vehicle
US10740109B2 (en) 2017-03-22 2020-08-11 Vmware, Inc. Configuring a computing device using managed operating system images
US10635819B2 (en) 2017-03-22 2020-04-28 Vmware, Inc. Persistent enrollment of a computing device based on a temporary user
US10620965B2 (en) 2017-03-22 2020-04-14 Vmware, Inc. Internet recovery of a windows configuration
US10445106B2 (en) 2017-03-22 2019-10-15 Vmware, Inc. Persistent enrollment of a computing device using a BIOS
US10409619B2 (en) 2017-03-22 2019-09-10 Vmware, Inc. Persistent enrollment of a computing device using vendor autodsicovery
WO2018173911A1 (ja) * 2017-03-24 2018-09-27 日立オートモティブシステムズ株式会社 車載制御装置、及び、プログラム更新ソフトウェア
US10318281B1 (en) * 2017-04-06 2019-06-11 Amdocs Development Limited System, method, and computer program for upgrading software associated with a distributed, state-full system
CN108958827B (zh) * 2017-05-25 2021-11-02 贵州白山云科技股份有限公司 一种处理程序升级故障的方法和系统
CN107391176B (zh) * 2017-06-26 2020-07-07 上交所技术有限责任公司 一种高效的配置数据变更处理方法
JP2019049907A (ja) * 2017-09-11 2019-03-28 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US11556324B2 (en) * 2017-11-10 2023-01-17 Canon Kabushiki Kaisha Management apparatus and management method
CN110045971B (zh) * 2018-01-16 2023-03-24 浙江宇视科技有限公司 系统升级恢复方法及装置
CN110083381B (zh) * 2018-01-26 2023-04-28 启碁科技股份有限公司 增量升级的方法及装置
CN108322540A (zh) * 2018-02-08 2018-07-24 深圳创维-Rgb电子有限公司 客制化数据导入方法、终端及计算机可读存储介质
JP7013918B2 (ja) * 2018-02-16 2022-02-01 トヨタ自動車株式会社 車両制御装置、プログラム更新方法およびプログラム
CN109062639B (zh) * 2018-06-19 2021-07-06 国网宁夏电力有限公司电力科学研究院 一种变电站scd文件的升级信息的显示方法及系统
DE102018211364A1 (de) * 2018-07-10 2020-01-16 Bayerische Motoren Werke Aktiengesellschaft Verfahren zum Zurücksetzen eines Fahrzeugs, Verfahren zum Betreiben eines Fahrzeugs und System für ein Fahrzeug
US10735261B2 (en) * 2018-07-12 2020-08-04 Qualcomm Incorporated Smart upgrade of connected devices in a mesh network
US10838736B2 (en) * 2018-07-26 2020-11-17 Vmware, Inc. Bare metal device management
US11449327B2 (en) * 2018-11-30 2022-09-20 Paccar Inc Error-resilient over-the-air software updates for vehicles
JP7128763B2 (ja) * 2019-03-18 2022-08-31 日立Astemo株式会社 電子制御装置及び制御データの設定方法
CN111767064A (zh) * 2019-04-02 2020-10-13 北京精雕科技集团有限公司 一种无需客户端支持的软件批量远程升降级方法及系统
WO2020219033A1 (en) * 2019-04-24 2020-10-29 Hewlett-Packard Development Company, L.P. Critical data storage
CN110442368A (zh) * 2019-08-09 2019-11-12 北京空间技术研制试验中心 一种载人航天器通用计算机设备软件在轨更新方法
US11150886B2 (en) 2019-09-03 2021-10-19 Microsoft Technology Licensing, Llc Automatic probabilistic upgrade of tenant devices
EP3809259B1 (en) * 2019-10-16 2023-08-16 NXP USA, Inc. Network node firmware update
CN112995767A (zh) * 2019-12-02 2021-06-18 中兴通讯股份有限公司 机顶盒升级控制方法、机顶盒及计算机可读存储介质
CN112286565B (zh) * 2020-10-30 2023-03-10 浙江正泰中自控制工程有限公司 一种基于存储容器的嵌入式系统差分升级方法
JP2023068538A (ja) * 2021-11-02 2023-05-17 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム

Family Cites Families (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4875159A (en) * 1987-12-22 1989-10-17 Amdahl Corporation Version management system using plural control fields for synchronizing two versions of files in a multiprocessor system
US5479654A (en) * 1990-04-26 1995-12-26 Squibb Data Systems, Inc. Apparatus and method for reconstructing a file from a difference signature and an original file
US5444764A (en) * 1993-07-01 1995-08-22 Motorola, Inc. Method of providing a subscription lock to a radiotelephone system
US5745669A (en) * 1993-10-21 1998-04-28 Ast Research, Inc. System and method for recovering PC configurations
JP3140906B2 (ja) * 1994-04-12 2001-03-05 株式会社エヌ・ティ・ティ・データ システムファイルの更新及び復元方法
US5806078A (en) * 1994-06-09 1998-09-08 Softool Corporation Version management system
US5713024A (en) * 1994-06-10 1998-01-27 Exabyte Corporation Cold boot data backup system
US5742905A (en) * 1994-09-19 1998-04-21 Bell Communications Research, Inc. Personal communications internetworking
US5574906A (en) * 1994-10-24 1996-11-12 International Business Machines Corporation System and method for reducing storage requirement in backup subsystems utilizing segmented compression and differencing
US5634052A (en) * 1994-10-24 1997-05-27 International Business Machines Corporation System for reducing storage requirements and transmission loads in a backup subsystem in client-server environment by transmitting only delta files from client to server
US5613122A (en) * 1994-11-14 1997-03-18 Object Technology Licensing Corp. Object-oriented operating system
US5729735A (en) * 1995-02-08 1998-03-17 Meyering; Samuel C. Remote database file synchronizer
US5699275A (en) * 1995-04-12 1997-12-16 Highwaymaster Communications, Inc. System and method for remote patching of operating code located in a mobile unit
US5729743A (en) * 1995-11-17 1998-03-17 Deltatech Research, Inc. Computer apparatus and method for merging system deltas
US5864757A (en) * 1995-12-12 1999-01-26 Bellsouth Corporation Methods and apparatus for locking communications devices
JP3799642B2 (ja) * 1996-01-10 2006-07-19 ソニー株式会社 通信端末のソフトウェア更新システム、通信端末及び通信管理センタ
US5758062A (en) * 1996-04-30 1998-05-26 Oracle Corporation Method and apparatus for regression testing of application logic
US5870610A (en) * 1996-06-28 1999-02-09 Siemens Business Communication Systems, Inc. Autoconfigurable method and system having automated downloading
US5832520A (en) * 1996-07-03 1998-11-03 Miller, Call, Plauck And Miller Automatic file differencing and updating system
US6308061B1 (en) * 1996-08-07 2001-10-23 Telxon Corporation Wireless software upgrades with version control
US5850565A (en) 1996-08-26 1998-12-15 Novell, Inc. Data compression method and apparatus
US6374250B2 (en) * 1997-02-03 2002-04-16 International Business Machines Corporation System and method for differential compression of data from a plurality of binary sources
US6023620A (en) * 1997-02-26 2000-02-08 Telefonaktiebolaget Lm Ecrisson Method for downloading control software to a cellular telephone
US5859565A (en) * 1997-03-10 1999-01-12 Reiffin; Martin Cathode-follower high-fidelity power amplifier
EP1005674A4 (en) * 1997-07-15 2002-03-13 Pocket Soft Inc SYSTEM FOR DETECTING DIFFERENCES BETWEEN TWO COMPUTER FILES AND UPDATING OF COMPUTER FILES
WO1999012098A1 (en) * 1997-08-29 1999-03-11 Hewlett-Packard Company Data backup and recovery systems
US6157924A (en) * 1997-11-07 2000-12-05 Bell & Howell Mail Processing Systems Company Systems, methods, and computer program products for delivering information in a preferred medium
US6041333A (en) * 1997-11-14 2000-03-21 Microsoft Corporation Method and apparatus for automatically updating a data file from a network
US6018747A (en) * 1997-11-26 2000-01-25 International Business Machines Corporation Method for generating and reconstructing in-place delta files
US6076148A (en) * 1997-12-26 2000-06-13 Emc Corporation Mass storage subsystem and backup arrangement for digital data processing system which permits information to be backed up while host computer(s) continue(s) operating in connection with information stored on mass storage subsystem
US6035423A (en) * 1997-12-31 2000-03-07 Network Associates, Inc. Method and system for providing automated updating and upgrading of antivirus applications using a computer network
US6078967A (en) * 1998-02-25 2000-06-20 Hewlett-Packard Company System for upgrading functionality of a peripheral device utilizing a removable ROM having relocatable object code
US6052531A (en) * 1998-03-25 2000-04-18 Symantec Corporation Multi-tiered incremental software updating
US20010049263A1 (en) * 1998-03-26 2001-12-06 Xiang Zhang Automatic station/system configuration monitoring and error tracking system and software upgrade tool kit
US6088694A (en) * 1998-03-31 2000-07-11 International Business Machines Corporation Continuous availability and efficient backup for externally referenced objects
JP2984649B1 (ja) * 1998-05-14 1999-11-29 埼玉日本電気株式会社 メモリの読み出し制御方法およびプログラムの読み出し制御方法
US6216175B1 (en) * 1998-06-08 2001-04-10 Microsoft Corporation Method for upgrading copies of an original file with same update data after normalizing differences between copies created during respective original installations
US6233589B1 (en) * 1998-07-31 2001-05-15 Novell, Inc. Method and system for reflecting differences between two files
EP0981099A3 (en) * 1998-08-17 2004-04-21 Connected Place Limited A method of and an apparatus for merging a sequence of delta files
JP4101368B2 (ja) * 1998-08-24 2008-06-18 松下電器産業株式会社 ボタン電話装置およびそのメンテナンス方法並びに記録媒体
US6167258A (en) * 1998-10-09 2000-12-26 Cleveland Medical Devices Inc. Programmable wireless data acquisition system
US6145012A (en) * 1998-10-14 2000-11-07 Veritas Software Corporation Apparatus and method for efficiently updating files in computer networks
US6226784B1 (en) * 1998-10-14 2001-05-01 Mci Communications Corporation Reliable and repeatable process for specifying developing distributing and monitoring a software system in a dynamic environment
US6163811A (en) * 1998-10-21 2000-12-19 Wildseed, Limited Token based source file compression/decompression and its application
US6378069B1 (en) * 1998-11-04 2002-04-23 Nortel Networks Limited Apparatus and methods for providing software updates to devices in a communication network
US6457175B1 (en) * 1998-11-09 2002-09-24 Tut Systems, Inc. Method and apparatus for installing a software upgrade within a memory resource associated with a computer system
US6327671B1 (en) * 1998-11-18 2001-12-04 International Business Machines Corporation Delta compressed asynchronous remote copy
US6314532B1 (en) * 1998-12-04 2001-11-06 Lucent Technologies Inc. Method and system for recovering from a software failure
US6349311B1 (en) * 1999-02-01 2002-02-19 Symantec Corporation Storage of reverse delta updates
US6594822B1 (en) * 1999-02-19 2003-07-15 Nortel Networks Limited Method and apparatus for creating a software patch by comparing object files
US6401239B1 (en) * 1999-03-22 2002-06-04 B.I.S. Advanced Software Systems Ltd. System and method for quick downloading of electronic files
US6466999B1 (en) * 1999-03-31 2002-10-15 Microsoft Corporation Preprocessing a reference data stream for patch generation and compression
US6885862B1 (en) * 1999-04-30 2005-04-26 Harris Canada, Inc. Wireless subscriber terminal programming using a broadcast control channel
US6574657B1 (en) * 1999-05-03 2003-06-03 Symantec Corporation Methods and apparatuses for file synchronization and updating using a signature list
IL129947A (en) * 1999-05-13 2003-06-24 Tadiran Telecom Business Syste Method and apparatus for downloading software into an embedded system
JP2000330779A (ja) * 1999-05-18 2000-11-30 Nec Corp ファームウエアプログラム遠隔更新システム及び方法
JP3474805B2 (ja) * 1999-08-02 2003-12-08 日本電信電話株式会社 無線通信端末のソフトウェア変更方法及び無線通信端末
JP2001067232A (ja) * 1999-08-31 2001-03-16 Hitachi Ltd ソフトウエアの配信システムおよびソフトウエアの受信端末装置
US6976062B1 (en) * 1999-09-22 2005-12-13 Intermec Ip Corp. Automated software upgrade utility
US6629110B2 (en) * 2000-01-10 2003-09-30 Connected Corporation Administration of a differential backup system in a client-server environment
US6671757B1 (en) * 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US6694336B1 (en) * 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
US6615365B1 (en) * 2000-03-11 2003-09-02 Powerquest Corporation Storing a computer disk image within an imaged partition
CA2398838A1 (en) * 2000-03-01 2001-09-07 Computer Associates Think, Inc. Method and system for updating an archive of a computer file
US6651190B1 (en) * 2000-03-14 2003-11-18 A. Worley Independent remote computer maintenance device
US6662163B1 (en) * 2000-03-30 2003-12-09 Voxware, Inc. System and method for programming portable devices from a remote computer system
US7111201B2 (en) * 2000-05-19 2006-09-19 Self Repairing Computers, Inc. Self repairing computer detecting need for repair and having switched protected storage
US6898564B1 (en) * 2000-05-23 2005-05-24 Microsoft Corporation Load simulation tool for server resource capacity planning
US6535894B1 (en) * 2000-06-01 2003-03-18 Sun Microsystems, Inc. Apparatus and method for incremental updating of archive files
AU2001272970A1 (en) * 2000-06-22 2002-01-02 Synchrologic, Inc. A system and method for file transmission using file differentiation
US6669564B1 (en) * 2000-06-27 2003-12-30 Electronic Arts Inc. Episodic delivery of content
GB2369213B (en) * 2000-07-04 2005-02-23 Honda Motor Co Ltd Electronic file management system
US6470329B1 (en) * 2000-07-11 2002-10-22 Sun Microsystems, Inc. One-way hash functions for distributed data synchronization
JP3632572B2 (ja) * 2000-07-24 2005-03-23 日本電気株式会社 電子交換機の制御装置
US20020120697A1 (en) * 2000-08-14 2002-08-29 Curtis Generous Multi-channel messaging system and method
GB2381358A (en) * 2000-08-15 2003-04-30 Seagate Technology Llc Dual mode data compression for operating code
US6754816B1 (en) * 2000-10-26 2004-06-22 Dell Products L.P. Scalable environmental data calculation method customized by system configuration
US7058941B1 (en) * 2000-11-14 2006-06-06 Microsoft Corporation Minimum delta generator for program binaries
KR100520058B1 (ko) * 2000-12-13 2005-10-11 삼성전자주식회사 디바이스드라이버 업그레이드 시스템 및 디바이스드라이버업그레이드 방법
US20020087668A1 (en) * 2000-12-29 2002-07-04 San Martin Raul S. Automatic upgrade of live network devices
US6954765B2 (en) * 2000-12-30 2005-10-11 Intel Corporation Updating a file in a fragmented file system
US20020099726A1 (en) * 2001-01-23 2002-07-25 International Business Machines Corporation Method and system for distribution of file updates
US20020129107A1 (en) * 2001-03-12 2002-09-12 Loughran Stephen A. Method and apparatus for automatic content handling
US6442660B1 (en) * 2001-03-21 2002-08-27 Sharp Laboratories Of America, Inc. Dynamic system relocation based on availability of system memory
US6912591B2 (en) * 2001-05-02 2005-06-28 Science Application International Corporation System and method for patch enabled data transmissions
US6928579B2 (en) * 2001-06-27 2005-08-09 Nokia Corporation Crash recovery system
CA2357382A1 (en) * 2001-09-17 2003-03-17 Soma Networks, Inc. Software update method, apparatus and system
US6880101B2 (en) * 2001-10-12 2005-04-12 Dell Products L.P. System and method for providing automatic data restoration after a storage device failure
EP1445888A4 (en) * 2001-10-12 2010-07-07 Panasonic Corp CONTENT PROCESSING APPARATUS AND CONTENT PROTECTION PROGRAM
US7483970B2 (en) * 2001-12-12 2009-01-27 Symantec Corporation Method and apparatus for managing components in an IT system
US6948089B2 (en) * 2002-01-10 2005-09-20 Hitachi, Ltd. Apparatus and method for multiple generation remote backup and fast restore
US20030177149A1 (en) * 2002-03-18 2003-09-18 Coombs David Lawrence System and method for data backup
US7600021B2 (en) * 2002-04-03 2009-10-06 Microsoft Corporation Delta replication of source files and packages across networked resources
US6925467B2 (en) * 2002-05-13 2005-08-02 Innopath Software, Inc. Byte-level file differencing and updating algorithms
US20040031027A1 (en) * 2002-08-08 2004-02-12 Hiltgen Daniel K. System for updating diverse file versions
US6836657B2 (en) * 2002-11-12 2004-12-28 Innopath Software, Inc. Upgrading of electronic files including automatic recovery from failures and errors occurring during the upgrade
US7096311B2 (en) * 2002-09-30 2006-08-22 Innopath Software, Inc. Updating electronic files using byte-level file differencing and updating algorithms
US20040098361A1 (en) * 2002-11-18 2004-05-20 Luosheng Peng Managing electronic file updates on client devices
US7003534B2 (en) * 2002-11-18 2006-02-21 Innopath Software, Inc. Generating difference files using module information of embedded software components
US7320010B2 (en) * 2002-11-18 2008-01-15 Innopath Software, Inc. Controlling updates of electronic files
US20040098421A1 (en) * 2002-11-18 2004-05-20 Luosheng Peng Scheduling updates of electronic files
US7007049B2 (en) * 2002-11-18 2006-02-28 Innopath Software, Inc. Device memory management during electronic file updating
US7099884B2 (en) * 2002-12-06 2006-08-29 Innopath Software System and method for data compression and decompression
US20040193643A1 (en) * 2003-03-27 2004-09-30 O'brien John C. Method and system for tracking contracts
US20050010870A1 (en) * 2003-07-09 2005-01-13 Jinsheng Gu Post-processing algorithm for byte-level file differencing
US20050010576A1 (en) 2003-07-09 2005-01-13 Liwei Ren File differencing and updating engines
US7379884B2 (en) * 2003-09-11 2008-05-27 International Business Machines Corporation Power on demand tiered response time pricing

Also Published As

Publication number Publication date
US20050204353A1 (en) 2005-09-15
WO2004044702A3 (en) 2004-07-08
EP1563673A4 (en) 2010-11-17
EP1563673A2 (en) 2005-08-17
JP2006508432A (ja) 2006-03-09
WO2004044702A2 (en) 2004-05-27
US20040092255A1 (en) 2004-05-13
CN1711747B (zh) 2010-09-01
US20050091288A1 (en) 2005-04-28
CN1711747A (zh) 2005-12-21
US8713137B2 (en) 2014-04-29
AU2003290720A1 (en) 2004-06-03
JP2009110527A (ja) 2009-05-21
US6836657B2 (en) 2004-12-28
US7350205B2 (en) 2008-03-25
AU2003290720A8 (en) 2004-06-03

Similar Documents

Publication Publication Date Title
US8713137B2 (en) Fail-safe upgrading of portable electronic device software
US7366824B2 (en) Updating electronic files using byte-level file differencing and updating algorithms
EP2229625B1 (en) Updating firmware of an electronic device
US8107945B2 (en) Wireless device remote recovery
US7904895B1 (en) Firmware update in electronic devices employing update agent in a flash memory card
US7640458B2 (en) Software self-repair toolkit for electronic devices
US7313577B2 (en) Generating difference files using module information of embedded software components
US20040123282A1 (en) Mobile handset with a fault tolerant update agent
US8161474B2 (en) Diagnostic information preservation during installations of over the air update of wireless handset software
US20040098361A1 (en) Managing electronic file updates on client devices
US20050132351A1 (en) Updating electronic device software employing rollback
US9582262B2 (en) Systems and methods for installing upgraded software on electronic devices
CN111158719A (zh) 应用软件升级方法及装置
EP1584005B1 (en) Mobile handset with a fault tolerant update agent
WO2005039161A1 (en) Upgrading electronic files of a mobile device upgrade client
US20050015697A1 (en) Platform independent file manipulation
CN115658120A (zh) 微电脑通用的ota升级方法

Legal Events

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