KR101238511B1 - 펌웨어 컴포넌트의 상태 공고 및 펌웨어 컴포넌트의 갱신 - Google Patents

펌웨어 컴포넌트의 상태 공고 및 펌웨어 컴포넌트의 갱신 Download PDF

Info

Publication number
KR101238511B1
KR101238511B1 KR1020060005767A KR20060005767A KR101238511B1 KR 101238511 B1 KR101238511 B1 KR 101238511B1 KR 1020060005767 A KR1020060005767 A KR 1020060005767A KR 20060005767 A KR20060005767 A KR 20060005767A KR 101238511 B1 KR101238511 B1 KR 101238511B1
Authority
KR
South Korea
Prior art keywords
update
computing device
firmware
mobile computing
component
Prior art date
Application number
KR1020060005767A
Other languages
English (en)
Other versions
KR20060093022A (ko
Inventor
제프리 엠. 폴
유항 주
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20060093022A publication Critical patent/KR20060093022A/ko
Application granted granted Critical
Publication of KR101238511B1 publication Critical patent/KR101238511B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S706/00Data processing: artificial intelligence
    • Y10S706/902Application using ai with detail of the ai system
    • Y10S706/934Information retrieval or Information management

Abstract

판독 전용 관리 객체는 갱신될 수 있는 펌웨어 컴포넌트에 관한 정보를 포함하기 위해 작성된다. 이 정보는 컴포넌트 식별자, 컴포넌트 버전 및 컴포넌트용 사용자 친화형 이름을 포함한다. 정보는 또한 펌웨어 컴포넌트를 포함하는 장치의 상태를 나타내는 상태 식별자를 포함한다. 관리 객체로부터의 정보는 펌웨어 갱신 프로세스의 일부로서 다른 컴포넌트에 의해 사용될 수 있다. 갱신 관리 객체는 갱신 패키지를 장치에 전달하기 위해 동적으로 작성된다. 갱신 패키지는 다수의 펌웨어 컴포넌트에 대한 갱신을 포함할 수 있다.
관리 객체, 갱신 객체, 펌웨어 컴포넌트, 국소화, 갱신 모듈, 갱신 서버

Description

펌웨어 컴포넌트의 상태 공고 및 펌웨어 컴포넌트의 갱신{PUBLISHING THE STATUS OF AND UPDATING FIRMWARE COMPONENTS}
도 1은 펌웨어 갱신 시스템의 시스템 블록도.
도 2는 관리 객체를 위한 스키마 도면(schema diagram).
도 3은 갱신 객체를 위한 스키마 도면.
도 4는 국소화(localization) 특징을 포함하는 ROM 갱신 시스템의 시스템 블록도.
도 5는 피어 기반의 ROM 갱신 시스템의 시스템 블록도.
도 6은 안전 ROM 갱신 시스템의 시스템 블록도.
도 7은 이용될 수 있는 방법의 액트를 도시한 흐름도.
도 8은 이용될 수 있는 방법의 액트를 도시한 흐름도.
도 9는 이용될 수 있는 방법의 프로세싱을 도시한 흐름도.
도 10은 이용될 수 있는 방법의 프로세싱을 도시한 흐름도.
도 11은 예시적인 네트워크 환경을 도시한 도면.
도 12는 예시적인 동작 환경을 도시한 도면.
<도면의 주요 부분에 대한 부호의 설명>
110, 460, 580 : 갱신 서버
120 : 펌웨어 코드
150, 410, 510, 520 : 이동 컴퓨팅 장치
160, 420, 530, 540 : 펌웨어
430 : GPS 모듈
470 : 국소화 모듈
550, 560 : 피어 갱신 매니저
본 출원은 35 U.S.C.§119(e) 하에, "MEANS FOR PUBLISHING THE STATUS OF AND UPDATING FIRMWARE COMPONENTS"라는 발명의 명칭으로 2005년 2월 1일자로 출원된 미합중국 가특허 출원 제60/648,887호의 우선권을 주장한다. 상술된 출원의 전체는 여기에서 참조로 사용된다.
컴퓨팅 장치, 그 중에서도 특히 랩탑 컴퓨터, 개인 휴대 정보 단말기(PDA) 및 셀룰러 전화기와 같은 휴대용 컴퓨팅 장치는 전형적으로 기계 판독가능 명령어 세트, 또는 코드를 포함한다. 그러한 명령어는 컴퓨팅 장치 상에서, 플래시 메모리 또는 판독 전용 메모리(ROM)와 같은 비휘발성 저장 영역 내에 보통 저장된다. ROM과 같은 비휘발성 저장 영역 내에 명령어를 저장함으로써, 장치를 위한 동작 명령어는 장치로의 전력 공급이 중단되는 경우에도 보존될 수 있다. ROM과 같은 비 휘발성 메모리 내의 저장된 코드는 때때로 펌웨어라 칭해진다.
이들 컴퓨팅 장치의 제조자, 소유자 및 사용자는 때때로, ROM 내에 저장된 코드를 변경할 필요가 있거나 또는 그러한 코드를 변경하기를 원할 수 있다. 그러한 변경의 이유는 기능성 또는 보안성면에서의 변경, 또는 코드 내의 결함을 수정하기 위한 변경을 포함한다. 이러한 작업을 돕기 위해, 버전 번호지정, 모듈 방식화 및 통신 프로토콜과 같은 방법 및 장치가 이용되어 왔다. 그러나, 펌웨어를 갱신하기 위한, 상이하고 잠재적으로 호환성없는 방법 및 장치의 존재는 갱신을 실행하는 작업을 복잡하게 한다. 펌웨어를 갱신하기 위한 현재의 시스템 및 방법은 펌웨어 갱신 시스템 또는 구현에 있어서의 근본적인 차이를 고려하지 못하고, 상이한 시스템 또는 구현 전반을 통해 펌웨어를 갱신하기 위한 균일한 방식을 제공하지 못한다.
다음은 기본적인 이해를 제공하기 위해 간단한 요약을 소개한다. 이 요약은 광범위한 개요가 아니다. 이것은 핵심적인/중요한 구성요소를 확인하고자 하는 것도 아니고, 범위를 나타내고자 하는 것도 아니다. 이것의 유일한 목적은 후술되는 더욱 상세한 설명의 서론으로서 간단한 형태의 몇가지 개념을 나타내기 위한 것이다. 부수적으로, 여기에서 사용된 섹션 머리글은 단지 편의를 위해 제공된 것으로, 어떤 식으로든 제한적인 의미로 이해되어서는 안된다.
판독 전용 관리 객체는 갱신될 수 있는 펌웨어 컴포넌트에 관한 정보를 포함하기 위해 작성된다. 이 정보는 컴포넌트 ID, 컴포넌트 버전, 및 컴포넌트용 사용 자 친화형 이름을 포함한다. 정보는 또한 펌웨어 컴포넌트를 포함하는 장치의 상태를 나타내는 상태 식별자를 포함한다. 관리 객체로부터의 정보는 펌웨어 갱신 프로세스의 일부로서 다른 컴포넌트에 의해 사용될 수 있다.
갱신 객체는 이동 컴퓨팅 장치에 보내지도록 작성된다. 갱신 객체는 이용가능한 펌웨어 컴포넌트 갱신 패키지에 관한 정보를 포함하고, 전형적으로 버전, 이름, 및 위치 정보를 포함한다. 위치 정보는 일반적으로 균일한 자원 식별자(URI)의 형태로 제공된다. 갱신 객체는 하나보다 많은 이용가능한 펌웨어 컴포넌트 갱신 패키지에 대한 정보를 포함할 수 있다.
갱신 서버는 관리 객체로부터 정보를 액세스할 수 있고, 이동 컴퓨팅 장치의 펌웨어를 갱신하기 위해 이용가능한 펌웨어 컴포넌트 갱신 패키지를 식별한다. 갱신 서버는 갱신 객체를 작성하고, 그 객체를 이동 컴퓨팅 장치로 전송한다. 갱신 객체 내에 포함된 정보는 펌웨어 컴포넌트 갱신 패키지의 위치를 이동 컴퓨팅 장치에 제공한다.
개시되고 설명된 컴포넌트 및 방법은 이후에 충분히 설명되고 특별히 청구범위에서 지적된 특징을 포함한다. 다음의 설명 및 첨부된 도면은 소정의 예시적인 실시양상을 상세하게 설명한다. 그러나, 이들 실시양상은 개시된 컴포넌트 및 방법이 이용될 수 있는 다양한 방법들 중의 몇가지만을 나타낸 것이다. 개시되고 설명된 컴포넌트 및 방법의 특정 구현은 그러한 실시양상 및 그 등가물의 일부, 다수 또는 전부를 포함할 수 있다. 여기에서 제시된 특정 구현 및 예의 변형은 첨부 도면을 참조한 다음의 상세한 설명으로부터 명백해질 것이다.
이 출원에서 사용되는 바와 같이, "컴포넌트", "시스템", "모듈" 등의 용어는 하드웨어, 소프트웨어(예를 들어, 실행시) 및/또는 펌웨어와 같은 컴퓨터 관련 엔티티를 나타내고자 하는 것이다. 예를 들어, 컴포넌트는 프로세서 상에서 실행되는 프로세스, 프로세서, 객체, 실행가능 파일, 프로그램 및/또는 컴퓨터일 수 있다. 또한, 서버 상에서 실행되는 애플리케이션 및 서버도 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 하나의 프로세스 내에 존재할 수 있고, 하나의 컴포넌트는 하나의 컴퓨터 상에 국소화되고/되거나 2개 이상의 컴퓨터들 사이에서 분산될 수 있다.
개시된 컴포넌트 및 방법은 도면을 참조하여 설명되는데, 도면 전체에서, 동일한 참조 번호는 동일한 구성요소를 나타내기 위해 사용된다. 다음 설명에서는, 설명을 위해, 다양한 특정 상세가 개시된 주제의 완전한 이해를 제공하기 위해 설명된다. 그러나, 소정의 이들 특정 상세는 특정 구현에서 생략될 수 있거나 다른 것과 결합될 수 있다는 것을 명백히 알 수 있을 것이다. 다른 경우에, 소정의 구조 및 장치는 설명을 용이하게 하기 위해 블록도 형태로 도시된다. 부수적으로, 설명된 특정예는 클라이언트/서버 아키텍처와 일치하는 전문용어를 사용할 수 있고, 또는 심지어 클라이언트/서버 구현의 예일 수 있지만, 숙련된 기술자들은 클라이언트와 서버의 역할이 바뀔 수 있으며, 개시되고 설명된 컴포넌트 및 방법이 클라이언트/서버 아키텍처에 제한되지 않고, 개시되고 설명된 컴포넌트 및 방법의 정신 또는 범위를 벗어나지 않고서 다른 아키텍처, 구체적으로 피어 투 피어(P2P) 아 키텍처를 포함하는 아키텍처에서 사용하기 위해 용이하게 적응될 수 있다는 것을 알 수 있을 것이다. 더욱이, 여기에 나타낸 특정 예는 특정 컴포넌트를 포함하거나 참조하지만, 여기에 개시되고 설명된 컴포넌트 및 방법의 구현은 반드시 그러한 특정 컴포넌트에 제한되는 것은 아니고, 다른 상황에서도 이용될 수 있다는 것을 알기 바란다.
도 1은 본 발명의 한 실시양상에 따른 펌웨어 갱신 시스템(100)의 시스템 블록이다. 시스템은 펌웨어 코드 데이터 저장부(120)를 액세스하는 갱신 서버(110)를 포함한다. 갱신 서버는 펌웨어 갱신을 제공하기 위해 특별히 설계된 전용 서버일 수 있고, 또는 웹 서버와 같은 더욱 일반적인 정보 서버의 일부일 수 있다. 펌웨어 코드 데이터 저장부(120)는 임의의 갱신된 코드 버전 자체뿐만 아니라 펌웨어 코드 버전에 관한 정보를 포함할 수 있다. 갱신 서버(110)는 무선 통신 컴포넌트를 포함하는 네트워크(130)에 접속될 수 있다. 통신 채널(140)은 갱신 서버(110)를 네트워크(130)에 연결하고, 유선 또는 무선 채널일 수 있다.
이동 컴퓨팅 장치(150)는 펌웨어(160) 형태의 기계 판독가능 명령어를 포함한다. 이동 컴퓨팅 장치(150)는 또한 그중에서도 특히 송신기, 수신기 또는 결합된 송수신기와 같은 무선 통신 컴포넌트를 포함할 수 있다. 이동 컴퓨팅 장치(150)는 무선 통신 채널(170)에 의해 네트워크(130)에 연결된다. 무선 통신 채널(170)은 IEEE 802.11x 기반의 (WiFi) 무선 접속일 수 있고, 또는 다른 적합한 무선 통신 채널일 수 있다. 이들 중에서, 고려된 무선 채널은 IEEE 802.16(WiMax), 블루투스(Bluetooth), 적외선(IrDa), 코드 분할 다중 액세스(CDMA), 시간 분할 다중 액세스(TDMA), 및 이동 통신을 위한 글로벌 시스템(GSM) 셀룰러 전화 접속이다.
동작시 펌웨어 갱신 시스템(100)의 한 예는 다음과 같다. 이동 컴퓨팅 장치(150)는 네트워크(130)와 무선 접속(170)을 한다. 네트워크(130)는 갱신 서버(110)와의 접속(140)을 제공한다. 갱신 서버는 설정된 접속을 사용하여, 현재 이동 컴퓨팅 장치(150) 상에 존재하는 펌웨어(160)에 관한 정보를 액세스한다.
갱신 서버(110)는 펌웨어 코드 데이터 저장부(120) 내에 저장된 이동 컴퓨팅 장치(150)용 펌웨어 컴포넌트의 버전에 대해, 현재 이동 컴퓨팅 장치(150) 상에 설치된 펌웨어(160)의 개별 컴포넌트를 비교한다. 이동 컴퓨팅 장치(150) 상에 설치된 펌웨어(160)의 컴포넌트가 현재의 버전이면, 아무런 조치도 취해지지 않는다. 펌웨어 코드 저장부(120) 내에 저장된 이동 컴퓨팅 장치(150)용의 적어도 하나의 펌웨어 컴포넌트가 이동 컴퓨팅 장치(150) 상에 저장된 펌웨어(160)의 컴포넌트의 업그레이드 또는 더 새로운 버전이면, 이동 컴퓨팅 장치(150)는 갱신 서버(110)로부터 업그레이드 또는 더 새로운 버전(들)을 다운로드하여, 현재 설치된 컴포넌트를 교체한다. 이러한 방식에 대한 더욱 자세한 상세는 후술된다.
펌웨어는 관습적으로 몇개의 개별 패키지 또는 컴포넌트로 분리되는데, 이들 각각은 개별적으로 갱신, 삭제 또는 교체될 수 있다. 각각의 패키지는 일반적으로 패키지 식별자, 버전 식별자 및 갱신 상태 식별자를 포함한다. 단순한 가능한 갱신 방식에서, 각각의 설명된 펌웨어 컴포넌트는 상태 정보를 사용자 또는 갱신 서버에 제공하고; 갱신을 다운로드하여, ROM 내의 적절한 위치에 있는 특정 컴포넌트를 갱신하거나 대체하기 위해 제공한다. 그러나, 자주, 펌웨어 갱신은 ROM 이미지 의 몇몇 별개 영역들의 갱신 또는 교체를 필요로 하는데, 그 영역들 각각은 통상적으로 따로 버전화될 수 있다. 그러한 방식에서, OMA(Open Mobile Alliance) 펌웨어 갱신(FUMO) 스펙에 의해 구상된 구현과 같은 표준화 구현을 사용한 갱신은 ROM 이미지의 각각의 영향받은 구역을 개별적으로 갱신하기 위해 다수의 다운로드 및 갱신 사이클을 요구한다. 이 프로세스는 소정의 패키지들이 갱신된 반면 다른 패키지들이 아직 교체되지 않았기 때문에 "일치되지 않은(out of sync)" 펌웨어 패키지들을 초래한다.
한가지 솔루션은 다운로드 및 갱신 행위로부터 상태를 분리시키는 것이다. 이 논리적 분리는 코드 갱신의 집단을 포함하는 패치(patch)가 여전히 ROM 이미지에 적용될 수 있게 하면서, 갱신될 필요가 있는 펌웨어 컴포넌트의 검출을 위해 이동장치 조작자 기반구조에 의한 표준화된 조회를 가능케 한다. 한가지 가능한 구현은 표준화된 이동장치 조작자 기반구조의 사용을 포함한다. 그러한 방식에서, 판독 전용 관리 객체는 갱신될 수 있는 ROM 이미지 또는 펌웨어 컴포넌트의 영역을 설명하기 위해 공고될 수 있다. 관리 객체는 도 2에 도시된 스키마에 의해 표시된 바와 같이 구현될 수 있다.
도 2는 판독 전용 관리 객체(200)를 위한 스키마를 도시한 것이다. 이러한 유형의 객체는 장치 관리 트리, 그중에서도 특히 OMA FUMO 장치 관리 트리와 같은 장치 관리 트리의 일부로서 관리될 수 있다. 판독 전용 관리 객체(200)는 루트 레벨에서 ROMPakage 노드(210)를 포함한다. 이 특정 스키마에 따르면, 단 하나의 루트 레벨 노드만이 있을 수 있다. 본 분야에 숙련된 기술자들은 루트 레벨에서 상 이한 노드 수를 갖는 다른 스키마도 가능하다는 것을 알 수 있을 것이다.
이 예에서, ROMPackage 노드(210)는 버전 및 이름 정보와 함께, 전체적으로 유일한 식별자(GUID)일 수 있는 ROM 패키지 식별자를 그룹화하는 루트 레벨의 부모 노드이다. GUID는 영숫자 식별자, 2진 식별자, 16진 식별자, 또는 다른 적절한 식별자일 수 있다. 이 특정 스키마에 도시된 바와 같이, ROMPackage 노드(210)가 요구되고, 이 노드는 루트 레벨에 위치한 단일 인스턴스로 제한된다. 이 스키마의 더욱 자세한 설명은 때때로, 소정의 방식으로 요구되거나 제한된 소정의 컴포넌트를 참조한다는 것을 알기 바란다. 그러한 참조가 이루어질 때, 그들 참조는 단지 특정 예를 위한 것일 뿐이고, 한 예로서 제공된 특정 구현으로부터 도출이 불가능하다는 것을 의미하지는 않는다.
다음 레벨은 패키지 식별자를 포함하는 적어도 하나의 x+ 노드(220)를 포함한다. 패키지 식별자는 영숫자 식별자, 2진 식별자, 16진 식별자 또는 다른 적절한 식별자일 수 있다. 단순하게 하기 위해, 하나의 x+ 노드(220)만이 도시된다. 그러나, 다수의 x+ 노드(220)가 가능할 뿐만 아니라, 고려된다. 이 예에서의 각각의 x+ 노드(220)는 하나의 PkgVersion 노드(230), 하나의 PkgName 노드(240) 및 하나의 State 노드(250)를 포함한다. 이들 컴포넌트에 대한 더욱 자세한 설명은 다음과 같다.
각각의 x+ 노드(220)는 특정 ROM 패키지의 식별자를 나타낸다. x+ 노드(220) 내에 포함된 값은 영숫자 식별자, 2진 식별자, 16진 식별자 또는 다른 적절한 식별자일 수 있는 GUID이다. x+ 노드(220)는 관련된 ROM 이미지에 대한 추가 설명 정보를 포함하는 더욱 낮은 레벨의 다른 노드를 그룹화하는 일을 한다. 구체적으로, 각각의 x+ 노드(220)는 전체 이미지와는 별개로 단일의 분리가능한 유닛으로서 취급될 수 있는 ROM 이미지의 별개의 부분에 대한 식별자로서 쓰일 수 있다.
PkgVersion 노드(230)는 ROM 이미지의 한 부분, 구체적으로 ROM 이미지의 한 패키지에 대한 버전 정보를 포함한다. 버전 정보는, 구체적으로 영숫자 스트링, 2진 식별자 또는 16진 식별자를 포함하는 임의의 적합한 포맷으로 제공될 수 있다. 이 특정 예에서는, 단지 하나의 PkgVersion 노드(230)만이 x+ 노드(220)에 의해 지정된 그룹 내에 허용된다. 그러나, 본 분야에 숙련된 기술자들은 다른 방식이 가능하다는 것을 쉽게 알 수 있을 것이다. 고려된 그러한 방식들 중에는 패키지가 2개 이상의 현존하는 패키지를 교체할 수 있는 경우에 다수의 버전 식별자를 포함하는 방식, 및 그중에서도 특히 게이밍 또는 화상회의와 같은 특수 용도로 예정된 버전과 같은 서브-버전 또는 특수 버전을 포함하는 방식이 있다. 서브-버전화되거나 특수-버전화된 컴포넌트의 경우에, 서브버전 또는 특수 버전과 관련되는 특별하게 포맷된 식별자가 사용될 수 있다. 추가로 또는 대안적으로, 제시된 예시적인 스키마는 서브버전 또는 특수 버전 식별을 위한 노드를 포함하도록 확장될 수 있다.
제시된 스키마의 한가지 이점은 그것의 확장가능성이다. 제시된 예시적인 스키마는 확장 개발을 포함한 추후 개발의 기반이 될 수 있는 기본-레벨 프레임워크를 제공한다. 기본 스키마는 보편적으로 이용가능하거나, 매우 구현-종속적이거나, 또는 이들의 중간쯤일 수 있는 여러가지 방식으로 확장될 수 있음을 알기 바란다.
PkgName 노드(240)는 ROM 패키지의 이름을 포함한다. 이 예에서, 이름은 사람이 판독가능한 것으로, 문자 또는 영숫자 스트링이다. 그러나, ROM 패키지의 이름은 구체적으로 사람이 판독할 수 없는 영숫자 식별자, 2진 식별자, 16진 식별자 또는 다른 적절한 식별자를 포함하는 교체 방식으로 표시될 수 있다. 이 예에서는 하나의 PkgName 노드(240)만이 각각의 x+ 노드(220)에 제공되지만, 특정 구현에서는 그보다 많이 사용될 수 있다.
State 노드(250)는 패키지에 대한 이동 장치의 상태 값을 포함한다. 이 값은 구현-종속적일 수 있고, 이동 컴퓨팅 장치에 대한 상태 정보를 저장하기 위해 사용될 수 있다. 예를 들어, 갱신이 성공적이고, 기존의 데이터가 삭제되었다는 것을 나타내는 값이 State 노드(250)에 설정될 수 있다. 이와 마찬가지로, 갱신 시도가 실패로 되고, 기존의 데이터가 보유되었다는 것을 나타내는 값이 설정될 수 있다. 그 밖의 광범위한 여러가지 상태 설명어 및 값이 작성되어 사용될 수 있다.
도 3은 본 발명의 한 실시양상에 따른 갱신 객체(300)의 스키마 도면이다. 이 예에서, 갱신 객체(300)의 인스턴스는 적용될 특정 갱신에 의존하여 런타임 시에 동적으로 작성된다. 도 2를 참조하여 설명된 객체 스키마에서와 같이, 갱신 객체는 또한 OMA FUMO 시스템 또는 다른 적합한 시스템에 따라 처리될 수 있다. 객체는 루트 레벨에서 FwUpdate 노드(310)를 포함한다. 이 특정 스키마에 따르면, 단 하나의 루트 레벨 노드가 있을 수 있다. 그러나, 다른 구현에서는, 하나보다 많은 루트 레벨 노드가 사용될 수 있다. 본 분야에 숙련된 기술자들은 제시된 스키마가 특정 요구 또는 특정 구현을 위해 변경될 수 있다는 것을 알 수 있을 것이 다.
다음 레벨은 패키지 식별자를 포함하는 x* 노드(320)를 포함한다. 명확하게 하기 위해, 하나의 x* 노드(320)가 도시된다. 그러나, 다수의 x* 노드(320)가 사용될 수 있고 사용될 것이라는 것이 예측된다. 이 예에서, x* 노드(320)의 패키지 식별자는 이미지 갱신 패키지의 GUID이다. GUID는 영숫자 식별자, 2진 식별자, 16진 식별자 또는 다른 적절한 식별자일 수 있다.
각각의 x* 노드(320)는 ROM 이미지의 갱신 패키지를 나타낸다. 나타내진 갱신 패키지는 다수의 ROM 패키지를 갱신하기 위한 정보를 포함할 수 있다. 각각의 x* 노드(320)는 그 자체가 PkgURL 노드(340)를 포함하는 DownloadAndUpdate 노드(330)를 포함한다. DownloadAndUpdate 노드(330)는 부울(boolean) 데이터를 포함할 수 있다. PkgURL 노드(340)는 다운로드되어 펌웨어 갱신으로서 적용될 패키지의 URL(Uniform Resource Locator)과 같은 위치 정보를 포함할 수 있다.
x* 노드(320)는 또한 PkgVersion 노드(350)를 포함한다. PkgVersion 노드(350)는 이미지 갱신 패키지에 대한 버전 정보를 포함한다. 이 버전 정보는 문자 스트링의 경우에서와 같이 사람-판독가능하게 될 수 있고, 또는 2진 코드와 같은 기계-판독가능 포맷으로 될 수 있다. 버전 정보의 다른 적합한 포맷이 사용될 수 있다. 부수적으로, 서브버전 또는 특수 버전 정보는 제시된 스키마의 일부로서 또는 그 스키마의 확장으로서 포함될 수 있다.
x* 노드(320)는 또한 PkgName 노드(360)를 포함한다. 이 예에서, PkgName 노드(360)는 ROM 패키지의 사용자-친화형 이름을 포함한다. 여기에서 제시된 다른 예에서와 같이, 이름은 특정 구현에 따라 다를 수 있는 여러가지 포맷으로 표시될 수 있다.
State 노드(370)는 x* 노드(320) 아래에 추가로 포함된다. State 노드(370)는 ROM 패키지를 갱신하기 위한 시도를 한 후에 이동 장치의 상태에 대한 값을 포함한다. 이 값은 구현-종속적일 수 있고, 이동 컴퓨팅 장치에 대한 상태 정보를 저장하기 위해 사용될 수 있다. 예를 들어, 갱신이 성공적이고, 기존의 데이터가 삭제되었다는 것을 나타내는 값이 State 노드(370)에 설정될 수 있다. 이와 마찬가지로, 갱신 시도가 실패로 되고, 기존의 데이터가 보유되었다는 것을 나타내는 값이 설정될 수 있다. 그 밖의 광범위한 여러가지 상태 설명어 및 값이 작성되어 사용될 수 있다.
도 4는 본 발명의 다른 실시양상에 따른 국소화 특징을 포함하는 ROM 갱신 시스템(400)의 시스템 블록도이다. 국소화는 일반적으로, 특정 지리적 위치를 반영하기 위해, 구체적으로 소프트웨어 컴포넌트를 포함하는 컴퓨팅 장치의 컴포넌트를 적응시키는 프로세스를 설명한다. 보통, 국소화는 특정 지역에서 말하는 언어를 사용하도록 소프트웨어를 갱신하는 것을 포함한다. 여기에서 사용되는 바와 같이, 국소화는 또한 컴퓨팅 장치를 다른 지리적 구역과는 다른 한 지리적 구역에서 다르게 동작시키기 위해 동작-레벨 변경을 하는 것을 포함한다.
그러한 기능 변경의 한 예는 통신 프로토콜에 있다. 이동 컴퓨팅 장치는 다수의 통신 프로토콜을 지원하는 하드웨어를 포함할 수 있다. 장치는 미국에 있는 동안에는 통신 설비로의 무선 액세스를 위해 TDMA 프로토콜을 사용할 수 있다. 그 러나, 유럽에서는 GSM 프로토콜이 주로 사용된다. 그러므로, 이동 컴퓨팅 장치의 ROM에서의 변경은 이동 컴퓨팅 장치가 유럽에서 동작할 때 장치가 TDMA 대신에 GSM을 사용하게 할 수 있다.
이와 마찬가지로, 이동 컴퓨팅 장치는 IEEE 802.11x (WiFi) 통신을 기타 통신 프로토콜과 함께 지원할 수 있다. 이동 컴퓨팅 장치가 WiFi 핫스폿(hotspot), 또는 WiFi 액세스 포인트에 의해 서비스를 받는 다른 영역으로 들어갈 때, 이동 컴퓨팅 장치는 자신의 ROM을 갱신하여 장치가 WiFi 액세스 포인트를 사용하게 할 수 있다. 통신 프로토콜들 사이의 그러한 전환의 다른 예는 본 분야에 숙련된 기술자들에게 명백할 것이다.
다른 예는 지리적 위치에 따른 이동 컴퓨팅 장치의 기능의 추가 또는 제거(또는 이와 유사하게, 인에이블링 또는 디스에이블링)를 포함한다. 미국에서는, 강력한 암호화 기술이 전자 통신을 안전하게 보호하기 위해 사용될 수 있다. 그러한 기술을 위한 지원은 전형적으로 모든 지리적 위치에서 이용가능하지는 않다. 이동 컴퓨팅 장치는 자신의 내부 ROM 이미지를 갱신함으로써 암호화 특징을 추가 또는 제거(또는 인에이블 또는 디스에이블)할 수 있다. 그러한 기능 변경의 그외 다른 예는 본 분야에 숙련된 기술자에게 명백할 것이다.
ROM 갱신 시스템(400)은 이동 컴퓨팅 장치의 지리적 위치에 따라 이동 컴퓨팅 장치의 ROM 이미지의 갱신을 가능하게 하고자 하는 것이다. ROM 갱신 시스템(400)은 국소화된 펌웨어(420)를 포함하고 있는 이동 컴퓨팅 장치(410)를 포함한다. 이동 컴퓨팅 장치(410)는 셀룰러 전화, 개인 정보 매니저, PDA 또는 다른 장 치일 수 있다. 위성 위치확인 시스템(GPS) 모듈(430)은 이동 컴퓨팅 장치에 연결되어, GPS 위성(440)을 액세스할 수 있다. GPS 모듈(430)은 이동 컴퓨팅 장치(410)의 지리적 위치를 판정하기 위해 GPS 위성(440)으로부터의 정보를 사용할 수 있다.
이동 컴퓨팅 장치(410)는 네트워크(450)를 액세스할 수 있다. 네트워크(450)는 유선 또는 무선 네트워크일 수 있고, 특히 인터넷일 수 있다. 네트워크(450)는 갱신 서버(460)에 접속할 수 있다. 갱신 서버는 특수 파일 서버, 펌웨어 갱신 태스크에 적응된 웹 서버, 또는 다른 적합한 유형의 서버일 수 있다. 구현되더라도, 갱신 서버(460)는 이동 컴퓨팅 장치(410)와 통신할 수 있고, 특히 이동 컴퓨팅 장치(410)에 갱신 정보를 보낼 수 있다.
갱신 서버(460)는 국소화 모듈(460)을 액세스할 수 있다. 국소화 모듈(470)은 이동 컴퓨팅 장치(410)로 보내질, 국소화된 ROM 이미지 또는 그 일부와 같은 적절한 국소화 정보를 판정하기 위해 GPS 모듈(430)로부터 정보를 사용할 수 있다. 갱신 서버(460)는 ROM 코드 데이터 저장부(480)로부터 국소화 모듈(470)에 의해 지정된 적절한 ROM 컴포넌트를 액세스할 수 있다. ROM 데이터 저장부(480)로부터의 ROM 컴포넌트는 갱신 서버(460)에 의해 이동 컴퓨팅 장치(410)로 네트워크(450)를 사용하여 보내질 수 있다.
예를 들어 국소화 또는 식별 태스크와 관련하여, 개시되고 설명된 컴포넌트는 그것의 다양한 실시양상을 실행하기 위해 다양한 인공 지능 기반의 방식을 이용할 수 있다. 예를 들어, 국소화된 ROM 컴포넌트의 식별은 신경망, 전문가 시스템, 규칙 기반의 프로세싱 컴포넌트 또는 SVM에 의해 실행될 수 있다. 게다가, 2개 이상의 컴포넌트가 사용될 때, 신경망과 다른 인공 지능 기반의 컴포넌트는 선정된 인자에 기초하여 "최적합"을 제공하는 국소화된 ROM 컴포넌트의 식별을 도울 수 있다.
분류기(classifier)는 입력 속성 벡터, X=(x 1 ,x 2 ,x 3 ,x 4 ,... x n )를, 입력이 한 클래스에 속하는 컨피던스에, 즉 f(X)=confidence(class)에 매핑하는 함수이다. 그러한 분류는 사용자가 자동으로 실행되기를 원하는 액션을 예지하거나 추론하기 위해 (예를 들어, 분석 효용 및 비용을 고려하여) 확률적 및/또는 통계적 기반의 분석을 이용할 수 있다. ROM 컴포넌트 교체 시스템의 경우에, 예를 들어, 속성은 파일명, 서명, 해시 함수, 업그레이드 코드, 호환성 코드, 버전 번호, 빌드(build) 번호, 배포일, 또는 ROM 파일로부터 도출되는 기타 데이터-특정 속성과 같은 파일 설명어일 수 있고, 클래스는 관심있는 카테고리 또는 영역, 예를 들어 장치가 사용할 수 있는 기타 ROM 컴포넌트의 설명어이다.
지원 벡터 기계(support vector machine: SVM)는 이용될 수 있는 분류기의 한 예이다. SVM은 초곡면(hypersurface)이 트리거링 기준을 비트리거링 이벤트로부터 분리시키고자 시도하는 가능한 입력의 공간 내에서 초곡면을 찾아냄으로써 동작한다. 직관적으로, 이것은 트레이닝 데이터에 가깝지만 동일하지는 않는 테스팅 데이터에 알맞은 분류를 한다. 그 밖의 방향성 및 무방향성 모델 분류 방법은 예를 들어, 나이브 베이즈(naive Bayes), 베이지안 네트워크(Bayesian network), 의 사결정 트리(decision tree)를 포함하고, 상이한 독립 패턴을 제공하는 확률적 분류 모델이 이용될 수 있다. 여기에서 사용된 분류는 또한 우선순위 모델을 개발하기 위해 이용되는 통계적 회귀를 포함한다.
본 명세서로부터 쉽게 알 수 있는 바와 같이, 본 발명은 (예를 들어, 외적 정보를 수신하는 사용자 행위를 관찰함으로써) 암시적으로 트레이닝될 뿐만 아니라 (예를 들어, 일반 트레이닝 데이터에 의해) 명시적으로 트레이닝되는 분류기를 이용할 수 있다. 예를 들어, SVM은 분류기 구성자 및 특징 선택 모듈 내에서 학습 또는 트레이닝 단계에 의해 구성된다. 그러므로, 분류기(들)은 장치에 데이터가 보내져야 하는 지의 판정을 포함하는(이것에 제한되지는 않음) 다수의 함수를 자동으로 실행하기 위해 사용될 수 있다.
ROM 갱신 시스템(400)의 동작의 한 예는 다음과 같다. 사용시, 이동 컴퓨팅 장치(410)는 자신의 지리적 위치에 대한 정보를 얻기 위해 GPS 모듈(430)을 액세스한다. 이 정보를 얻기 위해, GPS 모듈(430)은 GPS 위성(440)을 액세스하고, GPS 위성(440)으로부터의 정보에 기초하여 자신의 지리적 위치를 계산한다. 이동 컴퓨팅 장치는 또한 앞의 도면과 함께 위에서 설명된 스키마들 또는 객체들 중의 한가지 형태로 국소화 펌웨어(420)에 대한 정보를 액세스한다.
이동 컴퓨팅 장치(410)는 자신의 지리적 위치 및 국소화 펌웨어(420)에 대한 정보를 네트워크(450)를 통해 보낸다. 그 정보는 갱신 서버(460)에 의해 수신된다. 갱신 서버(460)는 지리적 정보 및 국소화 펌웨어(420)에 대한 정보를 국소화 모듈(470)에 보낸다. 국소화 모듈(470)은 교체 국소화 ROM 컴포넌트가 존재하는지 및 그 교체 국소화 ROM 컴포넌트가 적용되어야 하는지 판정하기 위해 국소화 펌웨어(420)에 대한 정보 및 지리적 정보를 사용한다.
교체 국소화 ROM 컴포넌트가 존재하고 적용되어야 한다면, 국소화 모듈(470)은 교체 ROM 컴포넌트에 대한 정보의 식별을 갱신 서버(460)에 제공한다. 갱신 서버(460)는 ROM 코드 데이터 저장부(480)로부터 컴포넌트를 얻고, 그 컴포넌트를 네트워크(450)를 통해 보낸다. 이동 컴퓨팅 장치(410)는 네트워크(450)로부터 교체 컴포넌트를 수신하고, 국소화 펌웨어(420)를 교체 컴포넌트로 갱신하기 시작한다.
도 5는 본 발명의 다른 실시양상에 따른 피어 기반의 ROM 갱신 시스템(500)의 시스템 블록도이다. 이 피어 기반의 ROM 갱신 시스템은 이동 통신 장치가 피어 투 피어로 제2 이동 컴퓨팅 장치로부터 직접 교체 ROM 컴포넌트를 얻을 수 있는 수단을 제공하기 위한 것이다. 그러한 피어 투 피어 기능은 그 밖의 다른 상황들 중에서 특히, 이동 컴퓨팅 장치의 펌웨어의 일부가 손상되거나 고장날 때와 같은, 이동 컴퓨팅 장치가 ROM 갱신을 얻기 위해 네트워크에 접속할 수 없는 상황에서 유용할 수 있다.
피어 기반의 ROM 갱신 시스템(500)은 이동 컴퓨팅 장치(510, 520)를 포함한다. 각각의 이동 컴퓨팅 장치(510, 520)는 한 세트의 펌웨어(530, 540)를 포함한다. 각각의 이동 컴퓨팅 장치(510, 520)는 또한 관련된 피어 갱신 매니저(550, 560)를 액세스할 수 있다. 피어 갱신 매니저(550, 560)는 이동 컴퓨팅 장치(510, 520)의 펌웨어(530, 540)의 설명 정보를 얻을 수 있다. 그 설명 정보는 피어 갱신 매니저(550, 560)에 의해 다른 이동 컴퓨팅 장치에게 공고될 수 있다. 피어 갱신 매니저(550, 560)와 같은 이동 컴퓨팅 장치와 관련된 피어 갱신 매니저는 펌웨어(530, 540)와 같은 펌웨어가 공고하는 이동 컴퓨팅 장치를 소스로서 사용하여 갱신되어야 하는지 판정하기 위해 공고된 정보를 사용할 수 있다.
이동 컴퓨팅 장치(510, 520)는 또한 각각 네트워크(570)를 액세스할 수 있다. 각각의 이동 컴퓨팅 장치(510, 520)는 또한 갱신 서버(580)를 액세스하기 위해 네트워크(570)를 사용할 수 있다. 갱신 서버(580)로의 액세스는 갱신을 얻는 추가 또는 교체 수단으로서 제공된다. 갱신 서버(58)는 이동 컴퓨팅 장치의 펌웨어 내로의 설치를 위해 ROM 컴포넌트의 가장 최근의 버전을 항상 가질 것으로 예측되지만, 반드시 그렇지만은 않다. 또한, 갱신 서버(580)가, 갱신 서버를 액세스하는 다른 이동 컴퓨팅 장치로의 분배를 위해 이동 컴퓨팅 장치로부터 ROM 컴포넌트를 얻을 수 있는 경우도 있다.
가능한 동작 시나리오의 한 예는 다음과 같다. 이동 컴퓨팅 장치(510)는 펌웨어(530) 내로의 설치를 위한 갱신된 ROM 컴포넌트를 얻도록 갱신 서버(58)를 액세스하기 위해 네트워크(570)를 사용한다. 갱신 서버(580)는 갱신이 이용가능하다는 것을 판정하고, 그 갱신을 이동 컴퓨팅 장치(510)에 보낸다. 이동 컴퓨팅 장치(510)는 펌웨어(530)를 새로운 컴포넌트로 갱신하고, 그 동작을 계속한다.
이동 컴퓨팅 장치(510)는 자신의 ROM 컴포넌트에 대한 정보를 이동 컴퓨팅 장치(520)에게 공고하기 위해 피어 갱신 매니저(550)를 사용한다. 이동 컴퓨팅 장치(520)의 피어 갱신 매니저(560)는 이동 컴퓨팅 장치(510)에 의해 공고된 정보를, 이동 컴퓨팅 장치(520)의 펌웨어(540)의 ROM 컴포넌트에 대한 정보와 비교한다. 피어 갱신 매니저(560)는 ROM 컴포넌트의 갱신된 버전이 이동 컴퓨팅 장치(510)로부터 이용가능한지 판정하기 위해 이 정보를 사용한다. 이용가능하면, 피어 갱신 매니저(560)는 이동 컴퓨팅 장치(510)로부터 갱신된 컴포넌트 또는 컴포넌트들을 얻어서, 이동 컴퓨팅 장치(520)의 펌웨어(540)를 갱신한다.
도 6은 개시된 발명의 또 다른 실시양상에 따른 안전 ROM 갱신 시스템(600)의 시스템 블록도이다. 안전 ROM 갱신 시스템(600)은 이동 컴퓨팅 장치의 펌웨어를 갱신하기 위해 사용된 ROM 컴포넌트의 내용을 보호할 수 있는 플랫폼을 제공하고, 그러한 ROM 컴포넌트의 소스의 식별자를 검증하고자 하는 것이다. 여러가지 방법이 ROM 컴포넌트를 안전하게 하고 검증하기 위해 사용될 수 있다. 몇가지 예가 아래에 더 설명된다.
안전 ROM 갱신 시스템(600)은 갱신 서버(610)를 포함한다. 갱신 서버(610)는 보안 및 인증 기능을 갱신 서버(610)에게 제공하는 보안 모듈(620)을 액세스할 수 있다. 그러한 보안 및 인증 기능은 전자 통신으로의 디지털 서명 인가 및 그러한 전자 통신의 암호화를 포함할 수 있다. 여러가지 기술이 전자 통신을 디지털 서명하거나 암호화하기 위해 이용될 수 있다. 이들 기술은 대칭 개인 키 암호화 알고리즘, 비대칭 개인-공개 키 알고리즘, 또는 다른 적합한 암호화 방식의 사용을 포함한다.
갱신 서버는 이동 컴퓨팅 장치(650)와 통신하기 위해 네트워크(630)를 액세스할 수 있다. 이동 컴퓨팅 장치(650)는 갱신 서버(610)와 관련된 보안 모듈(620)에 의해 서명되거나 암호화된 전자 통신을 해석할 수 있는 이동 보안 모듈(640)을 액세스할 수 있다. 이동 보안 모듈(640)에 의해 해석된 전자 통신은 사용을 위해 이동 컴퓨팅 장치(650)에 발송될 수 있다.
동작시, 이동 컴퓨팅 장치(650)는 이동 보안 모듈(640)에 갱신 요청을 보낼 수 있다. 이동 보안 모듈(640)은 요청을 암호화하고 디지털 서명하여, 전달을 위해 그것을 네트워크(630)에 발송한다. 네트워크(630)는 디지털 서명을 검증하여 요청을 복호화하는 보안 모듈(620)에 요청을 발송한다. 보안 모듈(620)은 그 다음에 갱신 서버(610)에 요청을 발송한다.
갱신 서버는 갱신 패키지를 식별하여, 보안 모듈(620)에 보낸다. 보안 모듈(620)은 갱신 패키지를 암호화하여 디지털 서명한 다음에, 네트워크(630)에 갱신 패키지를 발송한다. 네트워크(630)는 갱신 패키지의 디지털 서명을 검증하고 패키지를 복호화하는 이동 보안 모듈(640)에 갱신 패키지를 발송한다. 이동 보안 모듈(640)은 그 다음에, 자신의 펌웨어를 갱신하기 위해 패키지를 사용하는 이동 컴퓨팅 장치(650)로 갱신 패키지를 발송한다.
도 7-12를 참조하면, 다양한 방법 또는 절차에 따른 플로우차트가 도시된다. 설명을 단순하게 하기 위해, 여기에 도시된 하나 이상의 방법은 예를 들어 플로우차트 형태로 도시되고 일련의 액트로 설명되지만, 도시되고 설명된 방법 및 절차나, 그러한 방법 또는 절차가 사용될 수 있는 임의의 컴포넌트는 반드시 액트들의 순서에 의해 제한되는 것이 아니고, 따라서 몇몇 액트들은 여기에 도시되고 설명된 것과 다른 순서로, 및/또는 도시되고 설명된 것과 다른 액트와 함께 발생할 수 있다는 것을 알 수 있다. 예를 들어, 본 분야에 숙련된 기술자들은 방법이 대안적으 로 상태도에서와 같이 일련의 상관된 상태 또는 이벤트로 표시될 수 있다는 것을 알 수 있을 것이다. 게다가, 방법 또는 절차를 구현하기 위해 도시된 모든 액트가 요구되는 것이 아닐 수 있다.
도 7은 여기에 개시되고 설명된 컴포넌트에 따라 이용될 수 있는 일반적인 프로세싱 방법(700)에서의 액트를 도시한 흐름도이다. 프로세싱은 START 블록(710)에서 시작하여, 관리 객체가 공고되는 프로세스 블록(720)으로 진행한다. 프로세스 블록(730)에서, 갱신될 ROM 섹션이 식별된다. 그 다음, 프로세싱은 갱신 객체가 얻어지는 프로세스 블록(740)으로 진행한다. 실제 갱신은 다운로드되어 장치의 ROM 이미지에 적용된다(프로세스 블록(750)). 그 다음에, 갱신 시도 다음의 장치 상태를 나타내는 상태 식별자는 프로세스 블록(760)에서 설정되고, END 블록(770)에서 프로세싱이 종료한다.
도 8은 여기에 개시되고 설명된 컴포넌트에 따라 이용될 수 있는 일반적인 프로세싱 방법(800)에서의 액트를 도시한 흐름도이다. 방법(800)은 이동 컴퓨팅 장치의 펌웨어가 국소화될 수 있는 방법을 제공하기 위한 것이다. 프로세싱은 START 블록(810)에서 시작하여, 프로세스 블록(820)으로 진행한다. 프로세스 블록(820)에서, 이동 컴퓨팅 장치의 지리적 위치가 얻어진다. 지리적 위치 정보는 GPS 시스템을 사용하여 자동으로 얻어질 수 있다. 추가로 또는 대안적으로, 그러한 정보는 위치를 타이프로 치고, 지도에서 위치를 선택하여, 메뉴 내의 위치 세트 중에서 한 위치를 선택함으로써, 또는 다른 적합한 방법으로, 사용자에 의해 수동으로 입력될 수 있다.
프로세싱은 이동 컴퓨팅 장치 상에 설치된 펌웨어의 설명어가 얻어지는 프로세스 블록(830)으로 진행한다. 그러한 설명어는 앞의 도면과 관련하여 앞에서 설명된 설명어들 중의 하나일 수 있고, 또는 다른 적합한 설명어일 수 있다. 프로세스 블록(840)에서, 이동 컴퓨팅 장치의 펌웨어 설명어 및 지리적 정보를 포함하는 갱신 요청이 갱신 서버에 보내진다. 이들 2부분의 정보는 단일 유닛으로서 함께 보내질 수 있고, 또는 분리될 수 있다.
프로세스 블록(850)에서, 갱신 서버는 컴포넌트 데이터 저장부로부터 적절한 국소화된 펌웨어 갱신 컴포넌트를 식별한다. 국소화된 펌웨어 갱신은 하나의 완전한 ROM 이미지이거나, 또는 하나의 ROM 이미지의 한 컴포넌트일 수 있다. 또한, 국소화된 펌웨어 갱신은 그 중에 특히 다른 도면과 관련하여 앞에서 설명된 임의의 방식으로 이동 컴퓨팅 장치의 기능을 조정할 수 있다. 프로세싱은 갱신 서버가 국소화된 펌웨어 갱신 컴포넌트를 이동 컴퓨팅 장치로 보내는 프로세스 블록(860)으로 진행한다. 이동 컴퓨팅 장치는 자신의 펌웨어의 적어도 한 부분을 갱신하기 위해 국소화된 갱신 컴포넌트를 사용한다. 프로세싱은 END 블록(880)에서 종료한다.
도 9는 여기에 개시되고 설명된 컴포넌트와 관련하여 이용될 수 있는 일반적인 프로세싱 방법(900)의 프로세싱을 도시한 흐름도이다. 방법(900)은 이동 컴퓨팅 장치의 펌웨어가 피어 투 피어 통신에서와 같이 다른 이동 컴퓨팅 장치를 액세스함으로써 갱신될 수 있는 방식을 제공하기 위한 것이다. 방법(900)의 프로세싱은 START 블록(910)에서 시작하여, 이동 컴퓨팅 장치가 자신의 펌웨어에 설치된 ROM 이미지의 설명어를 공고하는 프로세스 블록(920)으로 진행한다. 이 설명어는 앞의 도면과 관련하여 설명된 설명어들 중의 하나일 수 있고, 또는 다른 적합한 설명어일 수 있다.
프로세싱은 제2 이동 컴퓨팅 장치가 공고된 ROM 설명어를, 제2 이동 컴퓨팅 장치에 현재 설치된 ROM 이미지의 설명어와 비교하는 프로세스 블록(930)으로 진행한다. 제2 이동 컴퓨팅 장치의 현재 설치된 ROM 이미지의 설명어는 앞의 도면과 관련하여 설명된 설명어들 중의 하나일 수 있고, 또는 다른 적합한 설명어일 수 있다. 판정 블록(940)에서, 공고된 설명어가 제2 이동 컴퓨팅 장치의 ROM 컴포넌트를 갱신할 수 있는 ROM 컴포넌트와 관련되는지 판정이 이루어진다.
판정 블록(940)에서의 판정이 예이면, 프로세싱은 갱신하기 위해 사용될 수 있는 ROM 컴포넌트가 제1 이동 컴퓨팅 장치로부터 얻어지는 프로세스 블록(950)으로 진행한다. 장치들 간의 컴포넌트의 전송은 설명어의 공고에서와 같이, 이동 컴퓨팅 장치가 지원할 수 있는 유선 또는 무선 통신 프로토콜 중의 임의의 것을 사용할 수 있다. 고련된 유선 시스템들 중에는 유니버셜 시리얼 버스(USB), IEEE 1394(FireWire), 직렬 및 병렬 접속 등등이 있다. 사용될 수 있는 무선 시스템은 WiFi, WiMax, CDMA, TDMA, GSM, 블루투스 등을 포함한다.
프로세싱은 얻어진 갱신 컴포넌트가 제2 이동 컴퓨팅 장치의 펌웨어 내로 설치되는 프로세스 블록(960)으로 진행한다. 설치는 갱신 프로세스가 성공적으로 완료된 것을 보장하기 위한 검사 또는 검사들을 포함한다. 프로세싱은 END 블록(970)에서 종료한다. 이와 마찬가지로, 판정 블록(940)에서의 판정이 갱신 컴포넌트가 다른 이동 컴퓨팅 장치로부터 이용가능하지 않다는 것을 나타내면, 프로세싱 은 END 블록(970)에서 종료한다.
도 10은 여기에 개시되고 설명된 컴포넌트와 관련하여 이용될 수 있는 일반적인 프로세싱 방법(1000)의 프로세싱을 도시한 흐름도이다. 방법(1000)은 이동 컴퓨팅 장치의 펌웨어에 설치된 ROM 컴포넌트를 안전하게 갱신하는 방법을 제공하기 위한 것이다. 방법(1000)의 프로세싱은 START 블록(1010)에서 시작하여, 프로세스 블록(1020)으로 진행한다. 프로세스 블록(1020)에서, 이동 컴퓨팅 장치는 암호화되고 디지털 서명되는 갱신 요청을 구성한다. 여기에서는, 암호화 및 디지털 서명이 설명되는 다른 경우에서와 같이, 이들 기술 중의 어느 한 기술이 단독으로 사용되거나, 두개의 기술이 조합하여 사용될 수 있다는 것을 알기바란다.
프로세싱은 새로 서명되고 암호화된 갱신 요청이 갱신 서버에 보내지는 프로세스 블록(1030)으로 진행한다. 요청의 송신은 갱신 서버로의 직접 접속을 통하거나, 갱신 서버로의 네트워크 접속을 통하거나, 또는 갱신 서버에 대신할 수 있는 피어와의 접속을 통해 달성될 수 있다. 프로세스 블록(1040)에서, 서버는 갱신 요청을 수신하고, 갱신 요청의 디지털 서명을 검증하여 갱신 요청의 내용을 복호화하기 시작한다. 이때, 일련의 검사(도시되지 않음)는, 요청이 인증되고, 요청이 갱신 서버로의 전송 중에 부당하게 변경되지 않았다는 것을 디지털 서명이 확실하게 나타낼 수 있도록 하기 위해 실시될 수 있다. 이들 검사 중의 임의의 검사가 실패하면, 프로세싱은 종료될 수 있다.
프로세스 블록(1050)에서, 갱신 서버는 갱신 요청시에 제공된 정보에 따라 이동 컴퓨팅 장치의 펌웨어를 갱신하기 위해 사용될 수 있는 ROM 컴포넌트를 식별 한다. 프로세스 블록(1060)에서, 갱신 서버는 업그레이트 컴포넌트를 암호화하고 디지털 서명한다. 부수적으로, 갱신 서버는 서명되고 암호화된 ROM 컴포넌트를 이동 컴퓨팅 장치에 보낸다.
프로세스 블록(1070)에서, 이동 컴퓨팅 장치는 서명되고 암호화된 ROM 컴포넌트를 수신하고, 서명을 검증하여 컴포넌트를 복호화하기 시작한다. 앞의 유사한 프로세스에서와 같이, 일련의 검사(도시되지 않음)는, 요청이 인증되고, 요청이 갱신 서버로의 전송 중에 부당하게 변경되지 않았다는 것을 디지털 서명이 확실하게 나타낼 수 있도록 하기 위해 실시될 수 있다. 이들 검사 중의 임의의 검사가 실패하면, 프로세싱은 종료될 수 있다.
프로세스 블록(1080)에서, 이동 컴퓨팅 장치는 자신의 펌웨어를 갱신하기 위해 ROM 컴포넌트를 설치한다. 설치는 컴포넌트가 적절하게 설치되었고 동작가능하다는 것을 보장하기 위한 검사(도시되지 않음)를 포함할 수 있다. 이들 검사 중의 임의의 검사 실패는 그 중에서 특히, 다른 갱신 시도를 초래하거나 프로세싱의 종료를 초래할 수 있다. 방법(1000)의 프로세싱은 END 블록(1090)에서 종료한다.
구현을 위한 추가 설명을 제공하기 위해, 도 11-12 및 다음 설명은 개시되고 설명된 컴포넌트 및 방법이 구현될 수 있는 적합한 컴퓨팅 환경에 관한 간단한 일반적인 설명을 제공하고자 하는 것이다. 다양한 특정 구현이 로컬 컴퓨터 및/또는 원격 컴퓨터 상에서 실행되는 컴퓨터 프로그램의 컴퓨터 실행가능 명령어들의 일반적인 문맥으로 상술되었지만, 본 분야에 숙련된 기술자들은 그외 다른 구현이 또한 단독으로 또는 다른 프로그램 모듈과 조합하여 가능하다는 것을 알 수 있을 것이 다. 일반적으로, 프로그램 모듈은 특정 태스크를 실행하고/하거나 특정 추상 데이터형을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조 등을 포함한다.
개다가, 본 분야에 숙련된 기술자들은 각각이 하나 이상의 관련된 장치와 동작가능하게 통신할 수 있는, 퍼스널 컴퓨터, 핸드헬드 컴퓨팅 장치, 마이크로프로세서 기반의 및/또는 프로그램가능 소비자 전자제품 등등 뿐만 아니라, 단일-프로세서 또는 다수의 프로세서 컴퓨터 시스템, 미니컴퓨터, 메인프레임 컴퓨터를 포함하는 다른 컴퓨터 시스템 구성으로, 상술된 컴포넌트 및 방법이 실시될 수 있다는 것을 알 수 있을 것이다. 개시되고 설명된 컴포넌트 및 방법의 소정의 도시된 실시양상은 또한 통신 네트워크 또는 다른 데이터 접속을 통해 링크되는 원격 프로세싱 장치에 의해 소정의 태스크가 실행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 그러나, 이들 실시양상의 일부(전부가 아니라면)는 독립형 컴퓨터 상에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및/또는 원격 메모리 저장 장치 내에 위치될 수 있다.
도 11은 개시되고 설명된 컴포넌트 및 설명이 사용될 수 있는 샘플-컴퓨팅 환경(1100)의 개략적인 블록도이다. 시스템(1100)은 하나 이상의 클라이언트(들)(1110)을 포함한다. 클라이언트(들)(1110)은 하드웨어 및/또는 소프트웨어(예를 들어, 스레드, 프로세스, 컴퓨팅 장치)일 수 있다. 시스템(1100)은 또한 하나 이상의 서버(들)(1120)을 포함한다. 서버(들)은 하드웨어 및/또는 소프트웨어(예를 들어, 스레드, 프로세스, 컴퓨팅 장치)일 수 있다. 서버(들)(1120)은, 예를 들어 개시되고 설명된 컴포넌트 또는 방법을 이용함으로써 변환을 실행하기 위한 스레드 또는 프로세스를 수용할 수 있다. 구체적으로, 서버(1120) 상에서 구현될 수 있는 한 컴포넌트는 도 1의 갱신 서버(110)와 같은 갱신 서버이다. 그렇게 구현될 수 있는 다른 컴포넌트는 도 4의 국소화 모듈(470)이다. 부수적으로, 도 6과 관련하여 설명된 보안 모듈(620)과 같은 다양한 보안 모듈이 또한 서버(1120)의 컴포넌트로서 구현될 수 있다. 다양한 다른 개시되고 설명된 컴포넌트가 서버(1120) 상에 구현될 수 있다.
클라이언트(1110)와 서버(1120) 사이의 한가지 가능한 통신 수단은 2개 이상의 컴퓨터 프로세스 사이에서 전송되도록 적응된 데이터 패킷의 형태로 이루어질 수 있다. 시스템(1100)은 클라이언트(들)(1110)과 서버(들)(1120) 사이에서 용이하게 통신하기 위해 이용될 수 있는 통신 프레임워크(1140)를 포함한다. 클라이언트(들)(1110)은 클라이언트(들)(1110)에 국한된 정보를 저장하기 위해 이용될 수 있는 하나 이상의 클라이언트 데이터 저장부(들)(1150)에 동작가능하게 접속된다. 이와 마찬가지로, 서버(들)(1120)은 서버(들)(1140)에 국한된 정보를 저장하기 위해 이용될 수 있는 하나 이상의 서버 데이터 저장부(들)(1130)에 동작가능하게 접속된다.
도 12를 참조하면, 다양한 컴포넌트를 구현하기 위한 예시적인 환경(1200)은 컴퓨터(1212)를 포함한다. 컴퓨터(1212)는 프로세싱 유닛(1214), 시스템 메모리(1216) 및 시스템 버스(1218)를 포함한다. 시스템 버스(1218)는 시스템 메모리(1216)를 포함하는(이것에 제한되지 않음) 시스템 컴포넌트를 프로세싱 유닛(1214)에 연결한다. 프로세싱 유닛(1214)은 다양한 이용가능한 프로세서들 중의 임의의 것일 수 있다. 2중 프로세서 또는 기타 프로세서 아키텍처가 또한 프로세싱 유닛(1214)으로서 이용될 수 있다.
시스템 버스(1218)는 다양한 이용가능한 버스 아키텍처 중의 임의의 것을 사용하는 메모리 버스 또는 메모리 제어기, 주변 버스 또는 외부 버스, 및/또는 로컬 버스를 포함하는 몇가지 유형의 버스 구조(들) 중의 임의의 것일 수 있는데, 그러한 버스 아키텍처는 산업 표준 아키텍처(ISA), 마이크로 채널 아키텍처(MCA), 확장된 ISA(EISA), 인텔리전트 드라이브 일렉트로닉스(IDE), VESA 로컬 버스(VLB), 주변 컴포넌트 상호접속(PCI), 주변 컴포넌트 상호접속 익스프레스(PCI Express), 익스프레스 카드, 카드 버스, 유니버셜 시리얼 버스(USB), 어드밴스드 그래픽 포트(AGP), 퍼스널 컴퓨터 메모리 카드 국제 협회 버스(PCMCIA), 파이어와이어(IEEE 1394), 시리얼 어드밴스드 테그놀러지 어태치먼트(SATA) 및 소형 컴퓨터 시스템 인터페이스(SCSI)를 포함하는데, 이것에 제한되지는 않는다.
시스템 메모리(1216)는 휘발성 메모리(1220) 및 비휘발성 메모리(1222)를 포함한다. 시동중과 같은 때에 컴퓨터(1212) 내의 구성요소들 간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입출력 시스템(BIOS)은 비휘발성 메모리(1222)에 저장된다. 예를 들어(제한적인 것은 아님), 비휘발성 메모리(122)는 판독 전용 메모리(ROM), 프로그램가능 ROM(PROM), 전기적 프로그램가능 ROM(EPROM), 전기적 소거가능 PROM(EEPROM), 또는 플래시 메모리를 포함할 수 있다. 휘발성 메모리(1220)는 외부 캐시 메모리로서 작용하는 랜덤 액세스 메모리(RAM)를 포함한다. 예시적으로(제한적인 것은 아님), RAM은 동기 RAM(SRAM), 동적 RAM(DRAM), 동 기 DRAM(SDRAM), 더블 데이터 레이트 SDRAM(DDR SDRAM), 인핸스드 SDRAM(ESDRAM), 싱크링크 DRAM(SLDRAM) 및 다이렉트 램버스 RAM(DRRAM)과 같은 다수의 형태로 이용가능하다.
컴퓨터(1212)는 또한 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함한다. 예를 들어, 도 12는 디스크 저장장치(1224)를 도시하고 있다. 디스크 저장장치(1224)는 자기 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, 재즈(Jaz) 드라이브, 지프(Zip) 드라이브, LS-100 드라이브, 플래시 메모리 카드, 또는 메모리 스틱과 같은 장치를 포함하는데, 이것에 제한되지는 않는다. 또한, 디스크 저장장치(1224)는 컴팩트 디스크 ROM 디바이스(CD-ROM), CD 기록가능 드라이브(CD-R Drive), CD 재기입가능 드라이브(CD-RW Drive) 또는 디지털 버서틀 디스크 ROM 드라이브(DVD-ROM)과 같은 광 디스크 드라이브를 포함하는(이에 제한되지 않음) 다른 저장 매체와 따로 또는 조합하여 저장 매체를 포함할 수 있다. 시스템 버스(1218)로의 디스크 저장 장치(1224)의 접속을 용이하게 하기 위해, 인터페이스(1226)와 같은 분리형 또는 비분리형 인터페이스가 전형적으로 사용된다.
컴퓨터(1212)가 구비된 다양한 유형의 휘발성 및 비휘발성 메모리 또는 저장장치는 여기에서 개시되고 설명된 데이터 포트 시그널링 시스템의 다양한 구현의 컴포넌트를 저장하기 위해 사용될 수 있다. 예를 들어, 도 1과 관련하여, 펌웨어(160)는 비휘발성 메모리(1222) 내에 저장될 수 있는 소프트웨어 모듈로서 구현될 수 있다. 런타임 시에, 펌웨어(160)는 펌웨어(160)의 기계 해석가능 코드가 프로세싱 유닛(1214)에 의해 액세스됨으로써 실행으로 놓일 수 있는 휘발성 메모리 (1220) 내로 로드될 수 있다.
도 12는 적합한 동작 환경(1200)에서 설명된 기본 컴퓨터 자원과 사용자 사이의 중간부로서 작용하는 소프트웨어를 설명한다는 것을 알 수 있을 것이다. 그러한 소프트웨어는 운영 체계(1228)를 포함한다. 디스크 저장장치(1224) 상에 저장될 수 있는 운영 체계(1228)는 컴퓨터 시스템(1212)의 자원을 제어하고 할당하는 일을 한다. 시스템 애플리케이션(1230)은 시스템 메모리(1216) 내에 또는 디스크 저장장치(1224) 상에 저장된 프로그램 모듈(1232) 및 프로그램 데이터(1234)를 통해 운영 체계(1228)에 의한 자원의 관리를 이용한다. 개시된 컴포넌트 및 방법은 다양한 운영 체계, 또는 운영 체계의 조합으로 구현될 수 있다는 것을 알 수 있을 것이다.
사용자는 입력 장치(들)(1236)를 통해 컴퓨터(1212) 내로 커맨드 또는 정보를 입력한다. 입력 장치(1236)는 마우스와 같은 포인팅 장치, 트랙볼, 스타일러스, 터치 패드, 키보드, 마이크로폰, 조이스틱, 게임 패드, 인공 위성, 스캐너, TV 튜너 카드, 디지털 카메라, 디지털 비디오 카메라, 웹 카메라 등을 포함하는데, 이것에 제한되지는 않는다. 이들 및 그외의 입력 장치는 인터페이스 포트(들)(1238)을 경유하여 시스템 버스(1218)를 통해 프로세싱 유닛(1214)에 접속한다. 인터페이스 포트(들)(1238)은 예를 들어, 직렬 포트, 병렬 포트, 게임 포트 및 유니버셜 시리얼 버스(USB)를 포함한다. 출력 장치(들)(1240)은 입력 장치(들)(1236)과 동일한 유형의 포트들의 일부를 사용한다. 그러므로, 예를 들어, USB 포트는 컴퓨터(1212)에 입력을 제공하고, 컴퓨터(1212)로부터 출력 장치(1240)로 정보를 출력하 기 위해 사용될 수 있다. 인터페이스 포트(1238)는 그 중에서 특히, 여기에서 개시되고 설명된 컴포넌트와 함께 사용될 수 있는 다양한 데이터 접속 포트를 포함할 수 있다.
출력 어댑터(1242)는 특정 어댑터를 요구하는 출력 장치(1240) 중에서 모니터, 스피커 및 프린터와 같은 몇몇 출력 장치(1240)가 있다는 것을 나타내기 위해 제공된다. 출력 어댑터(1242)는 예시적으로(제한적인 것은 아님), 출력 장치(1240)와 시스템 버스(1218) 사이에 접속 수단을 제공하는 비디오 및 사운드 카드를 포함한다. 다른 장치 및/또는 장치의 시스템은 원격 컴퓨터(들)(1244)과 같이 입력 및 출력 능력을 제공한다는 것을 알기 바란다.
컴퓨터(1212)는 원격 컴퓨터(들)(1244)과 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(들)(1244)은 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 워크스테이션, 마이크로프로세서 기반의 가전기기, 피어 장치 또는 기타 공통 네트워크 노드 등일 수 있으며, 컴퓨터(1212)에 관하여 상술한 구성요소 중의 다수 또는 모든 구성요소를 일반적으로 포함할 수 있다. 간결하게 하기 위해, 메모리 저장 장치(1246)만이 원격 컴퓨터(들)(1244)과 함께 도시된다. 원격 컴퓨터(들)(1244)은 네트워크 인터페이스(1248)를 통해 컴퓨터(1212)에 논리적으로 접속된 다음에, 통신 접속(1250)을 통해 물리적으로 접속된다. 네트워크 인터페이스(1248)는 근거리 통신망(LAN) 및 원거리 통신망(WAN)과 같은 유선 및/또는 무선 통신망을 망라한다. LAN 기술은 광섬유 분산 데이터 인터페이스(FDDI), 동선 분산 데이터 인터페이스(CDDI), 이더넷, 토큰 링 등을 포함한다. WAN 기술은 점 대 점 링크, 종합 정보 통신망(ISDN)과 같은 회선 교환망 및 그 변형, 패킷 교환망, 및 디지털 가입자 선로(DSL)를 포함하는데, 이것에 제한되지 않는다.
통신 접속(들)(1250)은 네트워크 인터페이스(1248)를 버스(1218)에 접속하기 위해 이용된 하드웨어/소프트웨어를 나타낸다. 통신 접속(1250)은 명확하게 나타내기 위해 컴퓨터(1212) 내부에 도시되었지만, 컴퓨터(1212)의 외부에 있을 수도 있다. 네트워크 인터페이스(1248)로의 접속을 위해 필요한 하드웨어/소프트웨어는 단지 예시적으로, 일반 전화기 등급 모뎀, 케이블 모뎀 및 DSL 모뎀, ISDN 어댑터 및 이더넷 카드와 같은 내부 및 외부 기술을 포함한다.
상술된 것은 소정의 컴포넌트 및 방법의 예시적인 예를 포함한다. 물론, 컴포넌트 또는 방법의 모든 가능한 조합을 설명할 수는 없지만, 본 분야에 숙련된 기술자는 더 많은 조합 및 변경이 가능하다는 것을 알 수 있을 것이다. 따라서, 그러한 모든 변경, 수정 및 변화는 첨부된 청구범위의 정신 및 범위에 속하게 하고자 한다.
특히, 상술된 컴포넌트, 장치, 회로, 시스템 등에 의해 실행된 여러 가능과 관련하여, 그러한 컴포넌트를 설명하기 위해 사용된 용어("수단"에 관한 언급 포함)는 여기에 예시된 예의 기능을 실행하는 개시된 구조와 구조적으로 동등하지 않더라도, 달리 나타내지 않는 한, 설명된 컴포넌트의 특정 기능을 실행하는 임의의 컴포넌트(예를 들어, 기능적 등가물)에 대응시키고자 한 것이다. 이와 관련하여, 또한 개시되고 설명된 컴포넌트 및 방법은 다양한 개시되고 설명된 방법의 액트 및 /또는 이벤트를 실행하기 위한 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체뿐만 아니라 시스템을 포함할 수 있다는 것을 알 수 있을 것이다.
또한, 특정 특징은 몇가지 구현 중의 한 구현하고만 관련하여 개시되었지만, 그러한 특징은 요구될 수 있고 임의의 주어진 또는 특정 애플리케이션에 유리할 수 있는 다른 구현의 하나 이상의 다른 특징과 결합될 수 있다. 또한, 용어들 "~을 포함한다(include)"와 "포함하는(including)" 및 그 변형들이 상세한 설명 또는 특허청구범위에서 사용되는데 있어서, 이들 용어는 용어 "포함하는(comprising)"과 유사한 방식으로 포괄하도록 의도된다.
펌웨어 컴포넌트에 대한 식별 및 버전 정보를 포함하는 판독 전용 관리 객체와 상기 펌웨어 컴포넌트를 위한 갱신 패키지에 관한 식별 및 버전 정보를 포함하는 갱신 객체를 포함하는 이동 컴퓨팅 장치를 위한 펌웨어를 설명하는 시스템이 개시되어 있다.

Claims (20)

  1. 이동 컴퓨팅 장치를 위한 펌웨어를 갱신하기 위한 컴퓨터 실행가능 시스템으로서,
    갱신 서버와,
    상기 갱신 서버에 의해 액세스될 수 있는 위치 컴포넌트(localization component)를 포함하고,
    상기 갱신 서버는,
    상기 이동 컴퓨팅 장치의 컴퓨터 판독가능한 저장 매체에 구현된 펌웨어 컴포넌트에 관한 식별 및 버전 정보를 포함하는 관리 객체 및 상기 펌웨어 컴포넌트에 대한 상기 식별 및 버전 정보를 내장하고 있는 갱신 패키지를 포함하고 있는 갱신 객체를 작성하고,
    상기 관리 객체로부터의 정보를 액세스하고 액세스한 상기 정보에 기초하여 상기 갱신 객체의 상기 갱신 패키지를 상기 이동 컴퓨팅 장치의 상기 펌웨어 컴포넌트에 대한 이용가능한 갱신으로 식별하며,
    상기 위치 컴포넌트는,
    상기 이동 컴퓨팅 장치의 위치에 적어도 부분적으로 기초하여 상기 갱신 객체의 상기 갱신 패키지를 상기 이동 컴퓨팅 장치의 상기 펌웨어 컴포넌트에 대한 이용가능한 갱신으로 자동으로 식별하고,
    상기 펌웨어 컴포넌트를 위한 복수의 이용가능한 갱신 패키지 중에서 상기 갱신 패키지를 이용가능한 갱신으로 식별하기 위해 훈련가능한 신경망(trainable neural network)을 포함하는 인공지능 기반 스킴을 사용하고,
    상기 위치 컴포넌트의 상기 인공지능 기반 스킴은 입력 속성 벡터를 입력이 일 클래스에 속한다는 컨피던스(confidence)에 매핑하는 함수인 분류기(classifier)를 포함하고,
    상기 입력 속성 벡터는 상기 이동 컴퓨팅 장치의 상기 펌웨어 컴포넌트를 설명하는 파일 설명어 속성(file descriptor attributes)을 포함하고,
    상기 분류기는 상기 복수의 이용가능한 갱신 패키지의 다른 갱신 패키지와 비교하여 상기 펌웨어 컴포넌트에 최적합(best fit)을 제공하는 것으로 식별된 상기 갱신 패키지에 기초하여, 상기 갱신 패키지를 상기 복수의 이용가능한 갱신 패키지 중에서 상기 이용가능한 갱신으로 식별하는, 컴퓨터 실행가능 시스템.
  2. 제1항에 있어서, 펌웨어 컴포넌트 갱신 패키지가 이용가능한 지의 여부를 판정하기 위해 상기 펌웨어 컴포넌트에 대한 식별 및 버전 정보를 액세스하는 갱신 모듈을 더 포함하는 컴퓨터 실행가능 시스템.
  3. 제2항에 있어서, 상기 갱신 객체는 상기 펌웨어 컴포넌트 갱신 패키지의 위치를 더 포함하는 컴퓨터 실행가능 시스템.
  4. 제3항에 있어서, 상기 펌웨어 컴포넌트 갱신 패키지의 위치는 URI(uniform resource identifier)인, 컴퓨터 실행가능 시스템.
  5. 제1항에 있어서, 상기 갱신 객체 패키지는 국소화된 컴포넌트(localized component)를 참조하는, 컴퓨터 실행가능 시스템.
  6. 제1항에 있어서, 또다른 이동 컴퓨팅 장치에 의해 게시된 정보를 상기 갱신 객체의 상기 펌웨어 컴포넌트에 대한 정보와 비교하고 상기 이동 컴퓨팅 장치를 위한 펌웨어의 갱신 버전이 상기 또다른 이동 컴퓨팅 장치로부터 이용가능한지 여부를 판정하는 피어(peer) 갱신 모듈을 더 포함하는 컴퓨터 실행가능 시스템.
  7. 제1항에 있어서, 국소화된 내용을 참조하는 갱신 객체를 식별하는 국소화 모듈(localization module)을 더 포함하는 컴퓨터 실행가능 시스템.
  8. 제1항에 있어서, 전송을 위해 상기 갱신 객체를 안전하게 하는 보안 모듈을 더 포함하는 컴퓨터 실행가능 시스템.
  9. 이동 컴퓨팅 장치의 펌웨어 컴포넌트들을 갱신하기 위한 컴퓨터-구현 방법으로서,
    프로세서를 사용하여 이동 저장 장치의 펌웨어 컴포넌트를 갱신하기 위해 컴퓨터 실행가능 동작을 실행하는 단계를 포함하고, 상기 컴퓨터 실행가능 동작은,
    상기 이동 컴퓨팅 장치에 현재 설치된 펌웨어에 관한 정보를 액세스하는 단계;
    상기 액세스한 정보의 개별적인 컴포넌트를 펌웨어의 저장된 버전들과 비교하는 단계;
    상기 비교에 적어도 부분적으로 기초하여, 펌웨어 컴포넌트 갱신 패키지를 상기 이동 컴퓨팅 장치의 펌웨어 컴포넌트에 대한 이용가능한 갱신으로 식별하는 단계;
    상기 펌웨어 컴포넌트 갱신 패키지와 관련된 정보를 포함하는 상기 프로세서와 연관된 메모리에 갱신 객체를 작성하는 단계; 및
    상기 이동 컴퓨팅 장치의 위치에 적어도 부분적으로 기초하여, 상기 갱신 패키지를 상기 이동 컴퓨팅 장치의 펌웨어 컴포넌트에 대한 이용가능한 갱신으로 식별하는 단계를 포함하고,
    상기 식별하는 단계는 펌웨어 컴포넌트를 위한 복수의 이용가능한 갱신 패키지 중에서 상기 갱신 패키지를 이용가능한 갱신으로 식별하기 위해 훈련가능한 신경망을 포함하는 인공 지능 기반 스킴을 사용하는 단계를 포함하고,
    상기 인공 지능 기반 스킴은 입력 속성 벡터를 입력이 일 클래스에 속한다는 컨피던스에 매핑하는 함수인 분류기를 사용하고,
    상기 입력 속성 벡터는 이동 컴퓨팅 장치의 펌웨어 컴포넌트를 설명하는 파일 설명어 속성을 포함하고,
    상기 분류기는 상기 복수의 이용가능한 갱신 패키지의 다른 갱신 패키지와 비교하여 상기 펌웨어 컴포넌트에 최적합을 제공하는 것으로 식별된 갱신 패키지에 기초하여, 상기 갱신 패키지를 상기 복수의 이용가능한 갱신 패키지 중에서 상기 이용가능한 갱신으로 식별하는, 컴퓨터-구현 방법.
  10. 제9항에 있어서, 상기 갱신 객체를 작성하는 단계는 갱신 컴포넌트의 위치를 제공하는 단계 또는 국소화 정보(localization information)를 사용하는 단계 중 적어도 하나를 포함하는, 컴퓨터-구현 방법.
  11. 제9항에 있어서, 상기 갱신 객체를 이동 컴퓨팅 장치로 보내는 단계를 더 포함하는 컴퓨터-구현 방법.
  12. 제11항에 있어서, 상기 갱신 객체를 이동 컴퓨팅 장치로 보내는 단계는 상기 갱신 객체를 디지털 서명하는 단계 또는 상기 갱신 객체를 암호화하는 단계 중 적어도 하나를 포함하는, 컴퓨터-구현 방법.
  13. 제11항에 있어서, 상기 펌웨어 컴포넌트 패키지를 상기 이동 컴퓨팅 장치로 보내는 단계를 더 포함하는 컴퓨터-구현 방법.
  14. 삭제
  15. 휴대용 컴퓨팅 장치의 펌웨어 컴포넌트들을 관리하는 시스템으로서,
    휴대용 컴퓨팅 장치의 컴퓨터 판독가능 저장매체 상에서 구현된 현재 설치된 펌웨어에 관한 정보를 액세스하는 수단,
    상기 액세스된 정보에 적어도 부분적으로 기초하여, 이용가능한 펌웨어 컴포넌트 갱신 패키지를 상기 휴대용 컴퓨팅 장치의 펌웨어 컴포넌트에 대한 이용가능한 갱신으로 식별하는 수단;
    컴퓨터 하드웨어 장치와 연관된 메모리에 상기 펌웨어 컴포넌트 갱신 패키지와 관련된 정보를 포함하는 갱신 객체를 작성하는 수단; 및
    상기 휴대용 컴퓨팅 장치의 위치에 적어도 부분적으로 기초하여, 상기 갱신 패키지를 상기 휴대용 컴퓨팅 장치의 펌웨어 컴포넌트에 대한 이용가능한 갱신으로 식별하는 수단을 포함하고,
    상기 식별하는 수단은 펌웨어 컴포넌트를 위한 복수의 이용가능한 갱신 패키지 중에서 상기 갱신 패키지를 이용가능한 갱신으로 식별하기 위해 훈련가능한 신경망을 포함하는 인공 지능 기반 스킴을 사용하는 것을 포함하고,
    상기 인공 지능 기반 스킴은 입력 속성 벡터를 입력이 일 클래스에 속한다는 컨피던스에 매핑하는 함수인 분류기를 사용하고,
    상기 입력 속성 벡터는 상기 휴대용 컴퓨팅 장치의 펌웨어 컴포넌트를 설명하는 파일 설명어 속성을 포함하고,
    상기 분류기는 상기 복수의 이용가능한 갱신 패키지의 다른 갱신 패키지와 비교하여 펌웨어 컴포넌트에 최적합을 제공하는 것으로 식별된 갱신 패키지에 기초하여, 상기 갱신 패키지를 상기 복수의 이용가능한 갱신 패키지 중에서 상기 이용가능한 갱신으로 식별하는, 펌웨어 컴포넌트 관리 시스템.
  16. 제15항에 있어서, 상기 갱신 객체를 작성하는 수단은 갱신 컴포넌트의 위치를 제공하는 수단을 포함하는, 펌웨어 컴포넌트 관리 시스템.
  17. 제16항에 있어서, 상기 갱신 객체를 작성하는 수단은 휴대용 컴퓨팅 장치로 갱신 객체를 보내는 수단을 포함하는, 펌웨어 컴포넌트 관리 시스템.
  18. 제17항에 있어서, 상기 휴대용 컴퓨팅 장치로 갱신 객체를 보내는 수단은 갱신 객체를 디지털 서명하는 수단 또는 갱신 객체를 암호화하는 수단 중 적어도 하나의 수단을 포함하는, 펌웨어 컴포넌트 관리 시스템.
  19. 제17항에 있어서, 상기 휴대용 컴퓨팅 장치에 갱신 객체를 보내는 수단은 상기 휴대용 컴퓨팅 장치에 펌웨어 컴포넌트 패키지를 보내는 수단을 포함하는, 펌웨어 컴포넌트 관리 시스템.
  20. 제16항에 있어서, 상기 갱신 객체를 작성하는 수단은 국소화 정보를 사용하는 수단을 포함하는, 펌웨어 컴포넌트 관리 시스템.
KR1020060005767A 2005-02-01 2006-01-19 펌웨어 컴포넌트의 상태 공고 및 펌웨어 컴포넌트의 갱신 KR101238511B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US64888705P 2005-02-01 2005-02-01
US60/648,887 2005-02-01
US11/141,864 US7873959B2 (en) 2005-02-01 2005-06-01 Publishing the status of and updating firmware components
US11/141,864 2005-06-01

Publications (2)

Publication Number Publication Date
KR20060093022A KR20060093022A (ko) 2006-08-23
KR101238511B1 true KR101238511B1 (ko) 2013-02-28

Family

ID=36603025

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060005767A KR101238511B1 (ko) 2005-02-01 2006-01-19 펌웨어 컴포넌트의 상태 공고 및 펌웨어 컴포넌트의 갱신

Country Status (8)

Country Link
US (1) US7873959B2 (ko)
EP (1) EP1686469B1 (ko)
JP (1) JP5096680B2 (ko)
KR (1) KR101238511B1 (ko)
CN (1) CN1825282B (ko)
BR (1) BRPI0600159A (ko)
ES (1) ES2601502T3 (ko)
MX (1) MXPA06001253A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102188044B1 (ko) * 2019-11-29 2020-12-07 한남대학교 산학협력단 뉴로모픽 아키텍처 기반 지능형 응용 개발을 위한 프레임워크 시스템

Families Citing this family (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US8233893B2 (en) * 2002-08-22 2012-07-31 Hewlett-Packard Development Company, L.P. Mobile handset update package generator that employs nodes technique
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
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
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US7428709B2 (en) * 2005-04-13 2008-09-23 Apple Inc. Multiple-panel scrolling
US7634584B2 (en) 2005-04-27 2009-12-15 Solarflare Communications, Inc. Packet validation in virtual network interface architecture
US7870490B2 (en) * 2005-11-15 2011-01-11 Microsoft Corporation On-the-fly device configuration and management
US7378966B2 (en) * 2006-01-04 2008-05-27 Microsoft Corporation RFID device groups
US7984432B2 (en) * 2006-05-30 2011-07-19 Infineon Technologies Ag Method for patching a read-only memory and a data processing system comprising a means of patching the read-only memory based on patch contexts
WO2007146710A2 (en) 2006-06-08 2007-12-21 Hewlett-Packard Development Company, L.P. Device management in a network
US20080001711A1 (en) * 2006-06-15 2008-01-03 Microsoft Corporation Reliability of execution for device provider implementations
US8207822B2 (en) * 2006-06-15 2012-06-26 Microsoft Corporation Support for batching of events, and shredding of batched events in the RFID infrastructure platform
US8752044B2 (en) 2006-07-27 2014-06-10 Qualcomm Incorporated User experience and dependency management in a mobile device
GB2458047B (en) * 2006-11-29 2011-11-09 Hewlett Packard Development Co IP based notification of device management operations in a network
TW200828099A (en) * 2006-12-19 2008-07-01 Realtek Semiconductor Corp Flash memory device and renewing method, and program search method
US8041444B2 (en) * 2006-12-22 2011-10-18 Harris Stratex Networks Operating Corporation Intelligent production station and production method
US20080174404A1 (en) * 2007-01-23 2008-07-24 Microsoft Corporation Dynamic updates in rfid manager
US8245219B2 (en) * 2007-01-25 2012-08-14 Microsoft Corporation Standardized mechanism for firmware upgrades of RFID devices
US9112891B2 (en) * 2007-02-02 2015-08-18 Sharp Laboratories Of America, Inc. Remote firmware management for electronic devices
FR2913295B1 (fr) * 2007-03-02 2010-09-10 Sagem Comm Procede de telechargement dans un boitier recepteur/ decodeur de television.
US20080244553A1 (en) * 2007-03-28 2008-10-02 Daryl Carvis Cromer System and Method for Securely Updating Firmware Devices by Using a Hypervisor
US8019794B2 (en) * 2007-04-02 2011-09-13 Sharp Laboratories Of America, Inc. Firmware repository for MFP devices
JP4539677B2 (ja) * 2007-04-23 2010-09-08 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置、プログラム更新システム、プログラム更新方法およびプログラム更新プログラム
US8271969B2 (en) 2007-08-09 2012-09-18 Research In Motion Limited Method and apparatus for determining the state of a computing device
CN101437071B (zh) 2007-11-15 2011-09-28 华为技术有限公司 终端设备管理树管理对象实例化的方法及设备
KR100932276B1 (ko) 2007-12-06 2009-12-16 한국전자통신연구원 보안 모듈의 업그레이드 장치 및 그 방법
US8201161B2 (en) 2008-01-07 2012-06-12 Lenovo (Singapore) Pte. Ltd. System and method to update device driver or firmware using a hypervisor environment without system shutdown
US20090183182A1 (en) * 2008-01-10 2009-07-16 Microsoft Corporation Dynamic Composition of Virtualized Applications
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
KR20090090801A (ko) * 2008-02-22 2009-08-26 삼성전자주식회사 휴대 단말기의 펌웨어 업데이트 방법 및 장치
US8347348B2 (en) * 2008-03-31 2013-01-01 Lenovo (Singapore) Pte. Ltd. Apparatus, system, and method for pre-boot policy modification
KR100951622B1 (ko) * 2008-05-02 2010-04-09 강릉원주대학교산학협력단 무선센서 네트워크의 노드에 대한 펌웨어 업데이트 방법 및이에 사용되는 펌웨어 업데이트장치
US8971884B2 (en) 2008-09-30 2015-03-03 At&T Mobility Ii Llc Rejection notification to a universal integrated circuit card
US8892699B2 (en) * 2008-12-31 2014-11-18 Schneider Electric USA, Inc. Automatic firmware updates for intelligent electronic devices
US8618717B2 (en) * 2009-07-02 2013-12-31 Sierra Wireless, Inc. System and method for connection to a wireless network
US8296399B2 (en) * 2009-07-15 2012-10-23 Microsoft Corporation Connecting galleries to dynamic server-hosted content
US9639347B2 (en) * 2009-12-21 2017-05-02 International Business Machines Corporation Updating a firmware package
US8869138B2 (en) 2011-11-11 2014-10-21 Wyse Technology L.L.C. Robust firmware update with recovery logic
US9467338B2 (en) * 2010-04-01 2016-10-11 Blackberry Limited Method for communicating device management data changes
US8806190B1 (en) 2010-04-19 2014-08-12 Amaani Munshi Method of transmission of encrypted documents from an email application
US9110690B2 (en) * 2010-04-28 2015-08-18 General Electric Company Systems, methods, and apparatus for deploying application code change configurations for multiple target controllers
US8307095B2 (en) 2010-06-21 2012-11-06 Research In Motion Limited Firmware upgrade system and method in a device management architecture
US8667057B1 (en) 2010-10-01 2014-03-04 Google Inc. Method and system for delivering object update messages including payloads
JP5655612B2 (ja) * 2011-02-14 2015-01-21 富士通株式会社 情報処理システム、情報処理方法、及び制御プログラム
US8824346B2 (en) * 2011-02-23 2014-09-02 Lg Electronics Inc. Remote wakeup of application processor of mobile device
US20120216183A1 (en) * 2011-02-23 2012-08-23 Amit Mahajan Firmware updation in electronic devices
WO2012119407A1 (zh) * 2011-08-23 2012-09-13 华为技术有限公司 文档更新方法和装置
CN102508729B (zh) * 2011-09-29 2014-12-03 中国航天科技集团公司第五研究院第五一三研究所 Fpga内rom映射区动态刷新纠错方法
US8984502B2 (en) 2011-10-28 2015-03-17 Hewlett-Packard Development Company, L.P. Systems and methods for composing or decomposing a composite image for firmware update images
KR101995461B1 (ko) * 2011-12-06 2019-09-30 삼성전자주식회사 사용자 단말들에게 fota 서비스를 제공하는 방법 및 장치
US8713646B2 (en) 2011-12-09 2014-04-29 Erich Stuntebeck Controlling access to resources on a network
US9430206B2 (en) * 2011-12-16 2016-08-30 Hsiu-Ping Lin Systems for downloading location-based application and methods using the same
US9680763B2 (en) 2012-02-14 2017-06-13 Airwatch, Llc Controlling distribution of resources in a network
US10404615B2 (en) 2012-02-14 2019-09-03 Airwatch, Llc Controlling distribution of resources on a network
EP2817715A4 (en) * 2012-02-23 2015-10-28 Hewlett Packard Development Co MICROLOGICAL PRODUCT FOR MODIFYING AN ACTIVE MICROLOGICIEL
US9032386B1 (en) * 2012-07-30 2015-05-12 Adobe Systems Incorporated Product upgrade location identifier for software upgrade
EP2704053B1 (en) * 2012-08-27 2016-09-21 Giesecke & Devrient GmbH Method and system for updating a firmware of a security module
US8869133B2 (en) * 2012-11-06 2014-10-21 General Electric Company Method and system for use in facilitating patch change management of industrial control systems
US8832785B2 (en) 2012-12-06 2014-09-09 Airwatch, Llc Systems and methods for controlling email access
US8826432B2 (en) 2012-12-06 2014-09-02 Airwatch, Llc Systems and methods for controlling email access
US9021037B2 (en) 2012-12-06 2015-04-28 Airwatch Llc Systems and methods for controlling email access
US8978110B2 (en) 2012-12-06 2015-03-10 Airwatch Llc Systems and methods for controlling email access
US8862868B2 (en) 2012-12-06 2014-10-14 Airwatch, Llc Systems and methods for controlling email access
US8938730B2 (en) 2012-12-17 2015-01-20 Itron, Inc. Utilizing a multi-system set configuration to update a utility node system set
US8924950B2 (en) * 2012-12-17 2014-12-30 Itron, Inc. Utility node software/firmware update through a multi-type package
US8781502B1 (en) 2013-02-01 2014-07-15 Swirl Networks, Inc. Systems and methods for display of supplemental content responsive to location
CN103176822B (zh) * 2013-03-04 2016-08-31 广东欧珀移动通信有限公司 一种下载数据的控制方法及控制装置
US20140280955A1 (en) 2013-03-14 2014-09-18 Sky Socket, Llc Controlling Electronically Communicated Resources
US8997187B2 (en) 2013-03-15 2015-03-31 Airwatch Llc Delegating authorization to applications on a client device in a networked environment
US10742604B2 (en) 2013-04-08 2020-08-11 Xilinx, Inc. Locked down network interface
US9787686B2 (en) 2013-04-12 2017-10-10 Airwatch Llc On-demand security policy activation
US8868796B1 (en) 2013-04-18 2014-10-21 Otter Products, Llc Device and method for updating firmware of a peripheral device
US9584437B2 (en) 2013-06-02 2017-02-28 Airwatch Llc Resource watermarking and management
US9900261B2 (en) 2013-06-02 2018-02-20 Airwatch Llc Shared resource watermarking and management
US8775815B2 (en) 2013-07-03 2014-07-08 Sky Socket, Llc Enterprise-specific functionality watermarking and management
US8806217B2 (en) 2013-07-03 2014-08-12 Sky Socket, Llc Functionality watermarking and management
US8756426B2 (en) 2013-07-03 2014-06-17 Sky Socket, Llc Functionality watermarking and management
US9665723B2 (en) 2013-08-15 2017-05-30 Airwatch, Llc Watermarking detection and management
US9516005B2 (en) 2013-08-20 2016-12-06 Airwatch Llc Individual-specific content management
US9258301B2 (en) 2013-10-29 2016-02-09 Airwatch Llc Advanced authentication techniques
US9544306B2 (en) 2013-10-29 2017-01-10 Airwatch Llc Attempted security breach remediation
US9098375B2 (en) * 2013-12-23 2015-08-04 Verizon Patent And Licensing Inc. Automatic management of software patch installation
CN103888867A (zh) * 2014-03-07 2014-06-25 深圳市领芯者科技有限公司 音箱、音箱的控制系统及控制方法
WO2016076880A1 (en) * 2014-11-14 2016-05-19 Hewlett Packard Enterprise Development Lp Secure update of firmware and software
US10015048B2 (en) * 2014-12-27 2018-07-03 Intel Corporation Programmable protocol parser for NIC classification and queue assignments
JP6659220B2 (ja) * 2015-01-27 2020-03-04 ルネサスエレクトロニクス株式会社 通信装置、半導体装置、プログラムおよび通信システム
US9807117B2 (en) 2015-03-17 2017-10-31 Solarflare Communications, Inc. System and apparatus for providing network security
US9825862B2 (en) 2015-08-26 2017-11-21 Barefoot Networks, Inc. Packet header field extraction
US9912774B2 (en) 2015-12-22 2018-03-06 Intel Corporation Accelerated network packet processing
US10491400B2 (en) 2016-08-23 2019-11-26 Solarflare Communications, Inc. System and apparatus for providing network security
CN107800561B (zh) * 2016-09-12 2021-05-04 平安科技(深圳)有限公司 资源更新方法和装置
US10528708B2 (en) * 2016-12-16 2020-01-07 International Business Machines Corporation Prevention of unauthorized resource updates
US11245572B1 (en) 2017-01-31 2022-02-08 Barefoot Networks, Inc. Messaging between remote controller and forwarding element
US10757028B1 (en) 2017-04-23 2020-08-25 Barefoot Networks, Inc. Configurable forwarding element deparser
US10826840B1 (en) 2017-07-23 2020-11-03 Barefoot Networks, Inc. Multiple copies of stateful tables
US10346157B2 (en) * 2017-07-31 2019-07-09 Qualcomm Incorporated Patch infrastructure for ROM firmware
US10594630B1 (en) 2017-09-28 2020-03-17 Barefoot Networks, Inc. Expansion of packet data within processing pipeline
US10686872B2 (en) 2017-12-19 2020-06-16 Xilinx, Inc. Network interface device
US11165720B2 (en) 2017-12-19 2021-11-02 Xilinx, Inc. Network interface device
US10686731B2 (en) 2017-12-19 2020-06-16 Xilinx, Inc. Network interface device
JP7081223B2 (ja) 2018-03-07 2022-06-07 トヨタ自動車株式会社 マスタ装置、マスタ、ソフトウェアの整合性を確認するための方法及びプログラム、車両
US11520572B2 (en) * 2019-09-13 2022-12-06 Oracle International Corporation Application of scheduled patches
KR20210046418A (ko) * 2019-10-18 2021-04-28 삼성전자주식회사 보안 패치가 가능한 롬을 갖는 반도체 장치 및 그것의 패치 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217357A1 (en) 2002-05-14 2003-11-20 Parry Travis J. Monitoring firmware
JP2004126856A (ja) 2002-10-01 2004-04-22 Matsushita Electric Ind Co Ltd Ddnsクライアント端末とddnsサーバ、ddnsバージョン管理システム、及びファームウェアバージョンの更新方法
JP2004213201A (ja) 2002-12-27 2004-07-29 Fujitsu Ltd バージョンアップ方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6151643A (en) * 1996-06-07 2000-11-21 Networks Associates, Inc. Automatic updating of diverse software products on multiple client computer systems by downloading scanning application to client computer and generating software list on client computer
US6976163B1 (en) * 2000-07-12 2005-12-13 International Business Machines Corporation Methods, systems and computer program products for rule based firmware updates utilizing certificate extensions and certificates for use therein
US7149792B1 (en) 2000-11-20 2006-12-12 Axeda Corporation Device registration mechanism
JP3654247B2 (ja) * 2002-01-11 2005-06-02 日本電気株式会社 携帯電話のファームウェア配信システム、携帯電話端末およびそのファームウェア更新プログラム
US20070169073A1 (en) * 2002-04-12 2007-07-19 O'neill Patrick Update package generation and distribution network
US7146609B2 (en) * 2002-05-17 2006-12-05 Sun Microsystems, Inc. Method, system and article of manufacture for a firmware image
JP2004199491A (ja) * 2002-12-19 2004-07-15 Komatsu Ltd 車載プログラムの書き換え制御装置
US20040193917A1 (en) * 2003-03-26 2004-09-30 Drews Paul C Application programming interface to securely manage different execution environments
US7203745B2 (en) * 2003-05-29 2007-04-10 Akamai Technologies, Inc. Method of scheduling hosts for software updates in a distributed computer network
US7428417B2 (en) * 2003-09-26 2008-09-23 Siemens Communications, Inc. System and method for presence perimeter rule downloading
US7765540B2 (en) * 2003-10-23 2010-07-27 Microsoft Corporation Use of attribution to describe management information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217357A1 (en) 2002-05-14 2003-11-20 Parry Travis J. Monitoring firmware
JP2004126856A (ja) 2002-10-01 2004-04-22 Matsushita Electric Ind Co Ltd Ddnsクライアント端末とddnsサーバ、ddnsバージョン管理システム、及びファームウェアバージョンの更新方法
JP2004213201A (ja) 2002-12-27 2004-07-29 Fujitsu Ltd バージョンアップ方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102188044B1 (ko) * 2019-11-29 2020-12-07 한남대학교 산학협력단 뉴로모픽 아키텍처 기반 지능형 응용 개발을 위한 프레임워크 시스템

Also Published As

Publication number Publication date
CN1825282B (zh) 2010-05-12
JP2006216047A (ja) 2006-08-17
MXPA06001253A (es) 2006-09-19
CN1825282A (zh) 2006-08-30
BRPI0600159A (pt) 2007-07-17
ES2601502T3 (es) 2017-02-15
EP1686469A3 (en) 2009-01-14
US20060174242A1 (en) 2006-08-03
US7873959B2 (en) 2011-01-18
EP1686469A2 (en) 2006-08-02
EP1686469B1 (en) 2016-08-31
KR20060093022A (ko) 2006-08-23
JP5096680B2 (ja) 2012-12-12

Similar Documents

Publication Publication Date Title
KR101238511B1 (ko) 펌웨어 컴포넌트의 상태 공고 및 펌웨어 컴포넌트의 갱신
US10979292B2 (en) Adaptive deployment of applications for mobile devices
US20150301821A1 (en) System and method for management of software updates at a vehicle computing system
EP3028489B1 (en) Centralized selective application approval for mobile devices
US7003534B2 (en) Generating difference files using module information of embedded software components
US8413130B2 (en) System and method for self policing of authorized configuration by end points
EP3032802B1 (en) Method for sharing application between terminals, and terminals
Moran et al. A firmware update architecture for internet of things
EP1907917B1 (en) Secure software updates
US8418168B2 (en) Method and system for performing a software upgrade on an electronic device connected to a computer
WO2015101149A1 (zh) 基于应用证书来检测应用安装包的安全性的方法、终端以及辅助服务器
EP2887607A1 (en) Migration of assets of a trusted execution environment
US20070118507A1 (en) Managing software configuration of a wireless device
US20170068531A1 (en) Method of deploying a set of software application(s)
US11500904B2 (en) Local data classification based on a remote service interface
US20160378553A1 (en) Resource Management Method and Device for Terminal System
CN111399867A (zh) 一种软件升级方法、装置、设备及计算机可读存储介质
EP3764224B1 (en) Resource permission processing method and apparatus, and storage medium and chip
US11443058B2 (en) Processing requests at a remote service to implement local data classification
US20220244951A1 (en) Data file partition and replication
WO2017220014A1 (zh) 系统权限管理方法、装置及智能终端
KR101548606B1 (ko) 관리자 단말이 사용자 기기를 원격으로 제어하기 위한 시스템 및 컴퓨터 판독가능 저장매체
KR101412029B1 (ko) 어플리케이션 업데이트 장치 및 방법
Moran et al. RFC 9019: A Firmware Update Architecture for Internet of Things
US20110225657A1 (en) Method and apparatus for preventing illegal software download of portable terminal in computer system

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 8