KR20160014629A - 업데이트에 대한 기지의 의존관계를 관리하는 기법 - Google Patents

업데이트에 대한 기지의 의존관계를 관리하는 기법 Download PDF

Info

Publication number
KR20160014629A
KR20160014629A KR1020157034188A KR20157034188A KR20160014629A KR 20160014629 A KR20160014629 A KR 20160014629A KR 1020157034188 A KR1020157034188 A KR 1020157034188A KR 20157034188 A KR20157034188 A KR 20157034188A KR 20160014629 A KR20160014629 A KR 20160014629A
Authority
KR
South Korea
Prior art keywords
update
dependency
updates
computing device
receiving
Prior art date
Application number
KR1020157034188A
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 KR20160014629A publication Critical patent/KR20160014629A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Abstract

업데이트 의존관계를 유지하는 컴퓨터 구현 방법은 컴퓨팅 장치에서, 업데이트 서비스로부터 업데이트 세트를 수신하는 단계를 포함한다. 업데이트 세트는 제2 업데이트에 대한 의존관계를 갖는 제1 업데이트를 포함하는 의존 세트를 포함할 수 있다. 제1 및 제2 업데이트는 업데이트 세트로부터 분리되어 설치된다. 설치 시에 활성화 조건이 제1 및 제2 업데이트에 적용될 수 있다.

Description

업데이트에 대한 기지의 의존관계를 관리하는 기법{MAINTAINING KNOWN DEPENDENCIES FOR UPDATES}
컴퓨팅 장치는, 가끔씩 업데이트될 수 있는, 다양한 기능을 통상적으로 갖는다. 예를 들어, 컴퓨팅 장치의 컴포넌트 디바이스(예를 들어, 그래픽 카드, 데이터 저장 장치, 입력 장치 등)는 컴포넌트 디바이스가 컴퓨팅 장치의 맥락에서 기능할 수 있게 하는 장치 드라이버와 연관될 수 있다. 제조업자 또는 컴포넌트 디바이스와 연관된 다른 업체는, 소프트웨어 버그를 잡거나, 호환성 문제를 해결하거나, 컴포넌트 디바이스의 기능을 향상시키거나 하기 위해 장치 드라이버에 대한 업데이트를 발표할 수 있다. 업데이트는 장치 드라이버의 이전 버전을 대체하거나 또는 증강시키기 위해 컴퓨팅 장치에 설치될 수 있다.
마찬가지로, 컴퓨팅 장치에 설치된 소프트웨어 애플리케이션이 업데이트될 수도 있다. 예를 들어, 운영 체제 개발자가, 예컨대, 보안 취약성을 해결하거나, 버그를 잡거나 하기 위해, 운영 체제에 대한 업데이트를 발표할 수 있다. 어떠한 업데이트를 컴퓨팅 장치에 설치할지와, 그 업데이트를 어떻게 설치할지 결정하는 것은 다수의 고려사항과 관련이 있다.
본 개요는 후속하여 발명의 상세한 설명 부분에서 설명되는 개념들 중 선택된 것들을 단순화된 형태로 소개하고자 제공되는 것이다. 본 개요는 청구항의 청구대상의 핵심적인 특징이나 필수적인 특징들을 밝히고자 함이 아니며, 청구항의 청구대상의 범위를 결정하는 데 도움이 되고자 함도 아니다.
업데이트에 대한 기지의 의존관계를 업데이트 세트 내에 유지하는 기법들이 본 명세서에 제시된다. 이들 기법에 따르면, 업데이트는 운영 체제, 애플리케이션, 서비스, 드라이버 등과 같은 다양한 기능에 대해 검색될 수 있다. 적어도 일부 구현예에서, 이들 기법은 업데이트 세트 내 둘 이상의 업데이트 사이의 관계가 다양한 방식으로 유지될 수 있게 한다. 예를 들어, 업데이트는 적어도 하나의 다른 업데이트에 대한 의존관계를 포함하는 것으로 지정될 수 있다. 업데이트 의존관계 지정은 하나 이상의 이유로 업데이트 세트 내에 함께 그룹화되는 업데이트들에 적용될 수 있다. 적어도 일부 구현예에서, 의존 세트에 대한 의존관계 규칙d은, 개별 업데이트가 타겟 컴퓨팅 장치에 통지 및/또는 전파된 후에 업데이트 세트 내 업데이트의 의존 세트를 그룹화하도록, 생성 및/또는 적용될 수 있다.
의존 세트(dependent set)에 포함되는 업데이트는, 둘 이상의 업데이트가 함께 설치되어야 함을 나타내는 의존관계 규칙과 연관될 수 있다. 적어도 일부 구현예에서, 업데이트 세트 규칙 및 업데이트에 대한 의존관계 규칙은 동적으로 생성, 구성 및/또는 동적으로 재구성될 수 있다.
발명을 실시하기 위한 구체적인 내용은 첨부 도면을 참고하여 설명된다. 도면에서 참조번호의 맨좌측 숫자는 그 참조번호가 처음 나타나는 도면을 나타낸다. 상세한 설명 및 도면의 상이한 예에서 동일한 참조번호를 사용한 경우는 동일하거나 유사한 항목을 나타낼 수 있다.
도 1은 본 명세서에서 논의되는 기법들을 이용하도록 동작가능한 예시적인 구현예에서의 환경을 도시한 것이다.
도 2는 하나 이상의 실시예에 따른 예시적인 구현 시나리오를 도시한 것이다.
도 3은 하나 이상의 실시예에 따른 방법에서의 동작들을 기술하는 흐름도이다.
도 4는 하나 이상의 실시예에 따른 방법에서의 동작들을 기술하는 흐름도이다.
도 5는 하나 이상의 실시예에 따른 방법에서의 동작들을 기술하는 흐름도이다.
도 6은 하나 이상의 실시예에 따른 방법에서의 동작들을 기술하는 흐름도이다.
도 7은 하나 이상의 실시예에 따른 방법에서의 동작들을 기술하는 흐름도이다.
도 8은 하나 이상의 실시예에 따른 방법에서의 동작들을 기술하는 흐름도이다.
도 9는 하나 이상의 실시예에 따른 방법에서의 동작들을 기술하는 흐름도이다.
도 10은 하나 이상의 실시예에 따른 방법에서의 동작들을 기술하는 흐름도이다.
도 11은 본 발명의 실시예를 실시하는데 이용되는 컴퓨팅 장치의 예시적인 물리적인 컴포넌트를 도시한 블록도이다.
도 12a 및 12b는 본 발명의 실시예를 실시하는데 이용되는 모바일 컴퓨팅 장치의 간략화된 블록도이다.
도 13은 본 발명의 실시예를 실시하는데 이용되는 분산 컴퓨팅 시스템의 간략화된 블록도이다.
본 개시의 실시예는 기지의 업데이트 의존관계를 업데이트 세트 내에 유지하기 위한 기법들을 제공한다. 본 명세서에서 논의되는 바와 같이, 업데이트는 운영 체제, 애플리케이션, 서비스, 드라이버 등과 같은 다양한 기능에 대해 검색될 수 있다. 업데이트는 컴퓨팅 장치로 전송되기 전에 업데이트 세트로 그룹화될 수 있다. 업데이트 세트는, 2012년 8월 10일 "Aggregation of Update Set"란 발명의 명칭으로 출원된 미국특허출원 제13/571,849호에 상세히 기술되어 있으며, 이 문헌은 참고로서 본 명세서에 포함된다. 적어도 일부 구현예에서, 기법들은 업데이트 세트 내 둘 이상의 업데이트 사이의 의존관계(본 명세서에서는 의존 세트(dependent set)라고도 함)가 다양한 방식으로 유지될 수 있게 한다. 예를 들어, 의존 세트는 의존 세트 내의 업데이트들을 통합된 세트(integrated set)로서 컴퓨팅 장치에 설치하도록 형성될 수 있다. 업데이트들을 의존 세트 내에 그룹화하는 것은, 특정 업데이트가 의존 세트 내에 그룹화될 수 있는지 여부 및 특정 업데이트가 의존 세트 내에 그룹화될 수 있는 조건을 나타내는, 업데이트 세트 규칙에 기초할 수 있다. 적어도 일부 구현예에서, 업데이트에 대한 의존 규칙은 개별 업데이트가 타겟 컴퓨팅 장치로 전파되기 전에 업데이트 세트 내의 업데이트들의 의존 세트를 그룹화하도록 생성 및/또는 적용될 수 있다.
본 명세서에서 논의되는 바와 같이, 업데이트는 다양한 컴포넌트 장치 및 운영 체제 기능에 대해 관리될 수 있다. 본 개시의 시스템 및 방법은 운영 환경이 업데이트를 검출하고 다운로드하고 수신된 업데이트 세트의 의존 세트로서 설치할 수 있게 하는 기능을 제공하는 클라이언트/서버 인프라스트럭처를 포함할 수 있다. 예를 들어, 운영 환경은 업데이트의 설치 전에 업데이트 세트 내의 하나 이상의 업데이트를 의존관계에 대해 검사하고 의존관계를 갖는 업데이트를 의존관계가 없는 업데이트로부터 분리시키도록 구성될 수 있다. 일부 예에서, 하나 이상의 의존 업데이트를 포함하는 업데이트 세트는 네트워크 연결을 통해 외부 소스(예컨대, 제조업체, 퍼블리셔(publisher), 업데이트 서비스 등)로부터 이용가능할 수도 있다.
다음의 논의에서는, 본 명세서에 기술된 기법을 이용하여 동작할 수 있는 예시적인 운영 환경 및 예시적인 구현 시나리오를 설명한다. 본 명세서에서 논의되는 기법을 포함하는 예시적인 절차는 이 예시적인 환경뿐만 아니라 다른 환경에서도 이용될 수 있다. 구체적으로, 본 개시는 클라이언트 서버 구성을 참고하여 설명하지만, 본 개시의 시스템 및 방법은 임의의 둘 이상의 컴퓨팅 환경 간의 통신에 적용가능할 수 있으며, 이러한 통신은 본 개시의 범주 내에 포함되는 것으로 간주되어야 한다. 특히, 본 개시는 새로운 또는 업데이트된 드라이버를 지원하는 통상의 드라이버 전달 메커니즘이 부담스러운 모바일 장치 및 무선 장치에도 적용가능할 수 있다. 본 명세서에 기술된 특정 실시예는 모든 면에서 제한적이라기보다는 예시적이다. 다른 실시예들은 본 개시가 속해 있는 당해 기술분야에서 통상의 지식을 가진 자에게 명확해질 것이다. 따라서, 예시적인 실시예들은 예시적인 절차를 수행하는 것으로 제한되지 않는다. 마찬가지로 예시적인 절차는 예시적인 환경에서의 구현예로 한정되지 않는다.
도 1은 본 명세서에서 논의되는 업데이트 세트의 집합에 대한 기법들을 이용하도록 동작가능한 예시적인 구현예의 환경을 도시한 것이다. 환경(100)은, 예를 들어 데스크탑 컴퓨터, 휴대용 컴퓨터(예컨대, 랩탑), 모바일 폰, 태블릿 컴퓨터 등과 같은 임의의 적절한 컴퓨팅 장치로서 실시될 수 있는 컴퓨팅 장치(102)를 포함한다. 컴퓨팅 장치(102)의 다양한 예들 중 하나가 도시되어 있으며 아래 도 11에 기술되어 있다.
컴퓨팅 장치(102)의 일부로서 업데이트가능한 기능(104)이 포함되는데, 이는 다양한 방식으로 업데이트될 수 있는 기능들을 나타낸다. 업데이트가능한 기능(104)은 운영 체제, 애플리케이션, 서비스, 장치 드라이버, 펌웨어 등을 포함한다. 따라서, 업데이트가능한 기능(104)의 다양한 부분을 증강 및/또는 대체하기 위해 업데이트가 컴퓨팅 장치(102)에 설치되고/되거나 이와 연관될 수 있다.
컴퓨팅 장치(102)에 대한 업데이트 동작을 관리하기 위한 기능을 나타내는 업데이트 모듈(106)이 제공된다. 예를 들어, 업데이트 모듈(106)은 업데이트가 업데이트가능 기능(104)에 이용가능한지 판정할 수 있다. 업데이트 모듈(106)은 업데이트가 검색되고(예컨대, 네트워크 자원으로부터 다운로드되고) 컴퓨팅 장치(102)에 설치되도록 할 수 있다. 일부 실시예에서는, 의존 업데이트 저장부(108)가 제공될 수 있으며, 이는 아래에서 보다 상세히 논의된다.
실시예들에 덧붙여, 컴퓨팅 장치(102)는 네트워크(122)를 통해 업데이트 서비스(110)와 통신하도록 구성된다. 업데이트 서비스(110)는 (예컨대, 컴퓨팅 장치(102)를 포함하는) 다양한 컴퓨팅 장치에 대한 업데이트를 관리하고 이들 컴퓨팅 창치에 업데이트가 제공될 수 있게 하는 기능을 나타낸다. 업데이트 서비스(110)는, 예컨대 웹 서버를 통해 네트워크 자원으로서 구현될 수 있다. 네트워크(122)는 인터넷, WAN(wide area network), LAN(local area network), 무선 네트워크, 공용 전화망, 인트라넷 등과 같은 다양한 구성을 상정할 수 있다. 또한, 단일 네트워크(122)가 도시되어 있지만, 네트워크(122)는 복수의 네트워크를 포함하도록 구성될 수도 있다. 환경(100)의 다양한 개체들이 네트워크(122)를 통해 통신하는 것으로 도시되어 있지만, 이것은 예시적인 목적으로 제시될 뿐이다. 예를 들어, 예컨대 하나의 개체 그룹이 상이한 통신 채널을 통해 또 다른 그룹과 통신할 수 있게 하기 위해 네트워크(122) 이외의 다른 다양한 통신 채널이 이용될 수도 있다.
업데이트 서비스(110)는 업데이트들(112)을 포함하는데, 이는 다른 컴퓨팅 장치에 배포될 수 있고/있거나 이용가능해질 수 있는 업데이트를 나타낼 수 있다. 일반적으로, 업데이트들(112)은 기존의 코드 및/또는 기능을 증강하거나 대체하는데 사용될 수 있는 소프트웨어, 컴퓨터 코드, 실행파일(executable)(예컨대, 바이너리)을 포함할 수 있다.
업데이트들(112)은 예시적인 업데이트(114)를 포함할 수 있고, 이 업데이트(114)는 다시 업데이트 세트 규칙(116) 및 의존관계 규칙(118)을 포함할 수 있다. 적어도 일부 구현예에서, 업데이트 세트 규칙(116) 및/또는 의존관계 규칙(118)은 업데이트(114)에 특유할 수 있다. 이에 갈음하여 또는 이에 더하여, 업데이트 세트 규칙(116) 및/또는 의존관계 규칙(118)의 적어도 일부는 업데이트(112)의 다른 부분에 이용될 수도 있다. 예를 들어, 업데이트 세트 규칙(116) 및/또는 의존관계 규칙(118)의 하나 이상이 업데이트들(112)에 전체적으로(globally) 적용될 수도 있다.
다양한 실시예에 따르면, 업데이트 세트 규칙(116)은 특정 업데이트(112)가 업데이트 세트의 일부로서 포함될 수 있는지 여부를 특정할 수 있다. 특정 업데이트(112)가 하나의 세트에 포함될 수 있으면, 업데이트 세트 규칙(116)은 특정 업데이트(112)가 그 세트에 포함되기 위해 만족되어야 하는 다양한 조건들을 나타낼 수 있다.
의존관계 규칙(118)은 업데이트 세트 내의 특정한 업데이트(112)와 적어도 하나의 다른 업데이트 사이의 관계를 특정할 수 있다. 예를 들어, 의존관계 규칙(118)은 업데이트 세트의 제1 업데이트(예컨대, 업데이트(112)) 및 적어도 제2 업데이트를 포함하는 설치 그룹(예컨대, 의존 세트)을 특정할 수 있다. 의존관계 규칙(118)은 또한 업데이트 세트 내의 하나 이상의 다른 업데이트에 대한 의존관계를 특정할 수도 있다. 따라서, 의존 세트의 일부로서 포함되는 업데이트가 동시에 또는 거의 동시에 하나의 세트로서 그리고 의존관계 규칙(118)에 포함된 행위(behavior)에 따라서 컴퓨팅 장치(102)에 설치될 수 있다. 본 명세서의 다른 부분에서 상세히 설명하듯이, 업데이트 세트 규칙(116) 및 의존관계 규칙(118)은, 예컨대 업데이트(112)의 다양한 행위에 영향을 주도록 동적으로 및/또는 온더플라이(on-the-fly)로 수정될 수 있다.
다양한 유형의 업데이트를 발표하고/하거나 관리하는 개체를 나타낼 수 있는 업데이트 퍼블리셔(120)가 환경의 일부로서 더 포함된다. 업데이트 퍼블리셔(120)의 예로는, 컴퓨팅 장치(102) 및/또는 컴퓨팅 장치(102)의 컴포넌트 디바이스의 제조업체와 같은, 장치 제조업체를 들 수 있다. 업데이트 퍼블리셔(120)는 또한 다양한 컴포넌트 및 기능부에 대한 업데이트를 개발 및/또는 출시할 수 있는 소프트웨어 개발자 및/또는 다른 개체를 포함할 수 있다. 예를 들어, 업데이트 퍼블리셔(120)는 업데이트가능 기능(104)과 연관된 제조업체 및/또는 다른 개체를 포함할 수 있다. 업데이트 퍼브리셔(120)의 다른 예로는, 소정의 기관인 회사 관리자, 계약된 관리자, 및 업데이트 세트 규칙(116) 및/또는 의존관계 규칙(118)과 같은 업데이트 관련 행위을 특정하는 다른 개체를 들 수 있다. 따라서, 업데이트 퍼블리셔(120)는, 예컨대 업데이트 서비스(110)에 의해 관리된 업데이트(112)를 통해 업데이트가능 기능(104)에 대한 업데이트를 발표 및/또는 출시할 수 있다. 이에 갈음하여 또는 이에 더하여, 업데이트 퍼블리셔는, 예컨대 업데이트 세트 규칙(116) 및/또는 의존관계 규칙(118)의 수정을 통해 업데이트 관련 행위를 수정할 수 있다.
업데이트 퍼블리셔(120)는 또한 업데이트 세트 규칙(116) 및/또는 의존관계 규칙(118)을 특정하고/하거나 발표할 수 있다. 본 명세서에서 논의되는 기법들에 따르면, 업데이트 퍼블리셔(120) 및/또는 다른 개체는 업데이트 세트 규칙(116) 및/또는 의존관계 규칙(118)을 동적으로 변경할 수 있다. 예를 들어, 업데이트 퍼블리셔(120)는, 업데이트(112)가 예컨대 업데이트 서비스(110) 및/또는 컴퓨팅 장치(102)에 통지 및/또는 배포된 후에, 업데이트 세트 규칙(116) 및/또는 의존관계 규칙(118)을 변경할 수 있다.
다른 컴포넌트(도시되어 있지 않음)는 사용자가 업데이트의 다운로드 또는 설치를 선택 및 결정하는데 관여하도록 구성된 사용자 인터페이스를 포함할 수 있다. 그러한 서비스의 예로 사용자가 설치할 특정 업데이트 파일을 선택할 수 있게 하는 GUI(Graphical User Interface) 유틸리티 프로그램을 들 수 있다. 이러한 유틸리티는 컴퓨팅 장치에 대한 정보를 서버(업데이트를 매칭시키고 식별하고 수용할 수 있음)에게 제공하는 본 개시의 시스템 및 방법에 의해 구현될 수 있다.
다음의 논의는 본 개시의 하나 이상의 실시예에 따른, 장치 드라이버를 설치하고 업데이트하는 예시적인 절차를 설명한다. 다음의 논의의 일부에서는, 도 1의 환경(100)을 참고할 것이다. 적어도 일부 실시예에서, 이들 절차의 특징들은, 컴퓨팅 장치(102)(또는 전술한 컴퓨팅 장치 컴포넌트들 중 하나), 업데이트 서비스(110) 및/또는 업데이트 퍼블리셔(120))와 같은 전술한 개체들 중 하나 이상을 통해 구현될 수 있다. 그러나, 도 1의 특정 컴포넌트에 대한 참고는 예시적인 것일 뿐이며, 본 명세서에 기술된 실시예에 대한 개시를 한정하는 것은 아니다. 전술한 프로세스는 도 2 내지 10에 자세히 예시되며, 이들 도면에서 예시적인 실시예들의 특징은 하나 이상의 실시예에 따른 하나 이상의 프로세스에서의 동작을 기술하는 흐름도로 도시되어 있다.
도 2는 환경(100)의 다양한 특징을 이용하는 예시적인 구현 시나리오를 일반적으로 200으로 도시한 것이다. 시나리오(200)에는 다수의 예시적인 업데이트 및 제각기의 업데이트에 대한 관련 업데이트 세트 규칙을 포함하는 업데이트(112)가 도시되어 있다.
시나리오(200)에 추가로, 업데이트 세트 규칙(202a 내지 210a)을 포함하는 업데이트(202 내지 210)를 고려해 보자. 업데이트(202 내지 210)는 특정 업데이트가 업데이트 세트의 일부로서 포함될 수 있는지 여부 및 특정 업데이트가 한 세트에 포함되거나 그 세트로부터 제외되게 할 수 있는 조건을 지정할 수 있다. 적어도 일부 구현예에서, 업데이트 세트 규칙은, 컴퓨팅 장치(102)의 업데이트 모듈(106), 업데이트 서비스(110) 등과 같은 다양한 개체에 의해 시행 및/또는 적용될 수 있다.
업데이트 세트 규칙(202a 내지 210a)은 업데이트(202 내지 210)가 업데이트의 세트의 일부로서 포함되도록 허용되는지 여부를 나타내는 규칙(202b 내지 210b)을 포함할 수 있다. 규칙(202b 내지 210b)은, 예컨대 "세트에 포함될 수 있음" 또는 "세트에 포함될 수 없음"과 같은 플래그로서 구현될 수 있다. 따라서, 업데이트 세트 규칙(202b 내지 210b)을 적용할 때, 업데이트 서비스(110)는 하나 이상의 조건을 평가할 수 있는데, 이조건 하에서 업데이트(202 내지 210)가 업데이트 세트의 일부로서 포함될 수 있다. 도 2에서 알 수 있듯이, 업데이트(202 내지 208)는 업데이트 세트(212)에 포함될 수 있고, 업데이트(210)는 제외될 수 있다. 전술한 바와 같이, 이런 방식으로 업데이트 세트를 모으는 것과 관련한 세부사항은 업데이트 세트의 취합(Aggregation of Updage Sets)이란 제목의 전술한 출원에 자세히 기술되어 있다.
업데이트(202 내지 210)는 또한 특정 업데이트가 의존 세트의 일부로서 포함되는지 여부 및 특정 업데이트가 의존 세트에 포함되게 하거나 또는 이로부터 제외되게 할 수 있는 조건을 특정할 수 있다. 따라서, 시나리오(200)는 또한 업데이트 세트(212) 내의 업데이트가 업데이트 세트(212) 내의 다른 업데이트에 대해 하나 이상의 의존관계를 갖는 것으로 지정될 수 있음을 제공한다. 이를 위해, 업데이트(202 내지 210)는 의존관계 규칙(202c 내지 210c)을 포함할 수 있다. 적어도 일부 구현예에서, 의존관계 규칙(202c 내지 210c)은 컴퓨팅 장치(102)의 업데이트 모듈(106), 업데이트 서비스(110) 등과 같은 다양한 개체에 의해 시행 및/또는 적용될 수 있다. 의존관계 규칙은 외부 소스(예컨대, 업데이트 퍼블리셔(120))로부터 수신된 의존관계 정보에 기초할 수 있다. 의존관계 규칙(202c 내지 210c)은 업데이트에 대한 의존관계 정보에 기초하여, 업데이트(202 내지 210) 중 하나 이상이 의존 세트(또는 업데이트 서브세트)의 일부로서 포함됨을 나타낼 수 있는 규칙(202d 내지 210d)을 포함할 수 있다. 규칙(202d 내지 210d)은, 예를 들어, "세트에 포함됨" 또는 "세트에 포함되지 않음"과 같은 플래그로서 구현될 수 있다. 따라서, 업데이트 세트 규칙(202b 내지 210b)을 적용할 때, 업데이트 서비스(110)는 하나 이상의 조건을 평가할 수 있는데, 이 조건 하에서 업데이트(202 내지 210)가 업데이트 세트의 일부로서 포함될 수 있다.
이를 위해, 하나 이상의 규칙(202d 내지 210d)이 업데이트(202 내지 210)에 적용될 수 있다. 업데이트 의존관계를 발생시키는 조건은, 예컨대, 업데이트가 업데이트 세트의 의존 세트에 포함되거나 이로부터 제외되게 할 수 있는 (예컨대, 컴퓨팅 장치(102)에 대한)장치 속성을 포함할 수 있다. 이러한 장치 속성의 예로는 컴퓨팅 장치에 대한 제조업체(예컨대, OEM(original equipment manufacturer)), 컴퓨팅 장치의 제조원(예컨대, 브랜드), 컴퓨팅 장치의 특정 모델(예컨대, 모델 번호) 등과 같은 컴퓨팅 장치의 속성을 식별하는 것을 들 수 있다. 예를 들어, 특정 제조업체는 컴퓨팅 장치의 복수의 제조원(예컨대, 브랜드)을 가질 수 있다. 또한, 컴퓨팅 장치의 특정 제조원은 복수의 상이한 모델을 포함할 수도 있다.
이러한 장치 속성은 또한 컴포넌트 디바이스의 식별자, 데이터 저장 장치, 입력/출력 장치, 프로세서 등과 같은 다양한 다른 정보를 포함할 수도 있다. 장치 속성은, 운영 체제 및 운영 체제의 현재 설치된 버전에 대한 식별자를 비롯한, 컴퓨팅 장치(102)에 설치된 소프트웨어 및/또는 펌웨어에 대한 식별자를 포함할 수 있다. 의존관계 규칙(202c 내지 210c)에 의해 지정된 속성은 또한, 장치에 설치되는 장치 드라이버 버전, 장치에 설치되는 애플리케이션 버전, 이용가능한 메모리 등과 같은 여러 상태 조건을 지정할 수 있다.
업데이트(202)에 대해 구체적으로 말하면, 업데이트(202)는 대응하는 의존관계 규칙(202c)을 더 포함할 수 있다. 의존관계 규칙(202c)은 업데이트(202)가 의존관계를 가질 수 있는 다른 업데이트(예컨대, 업데이트(204))를 식별할 수 있다. 업데이트(202)는 업데이트(204)에 대한 의존관계를 갖는 것으로 지정될 수 있다. 의존 세트 규칙(202d)은 또한, 특정 업데이트(예컨대, 업데이트(204))가 업데이트 세트(212)에 포함되면, 업데이트(202)가 의존 세트(214) 내의 업데이트(204)와 그룹화되도록 특정할 수 있다. 이에 더하여 또는 이에 갈음하여, 의존관계 규칙(202c)은 업데이트(202)가 다른 업데이트에 대한 의존관계를 포함하지 않도록 지정할 수 있고, 따라서 (다른 업데이트가 업데이트(202)에 대해 의존관계를 갖는 것으로 표시되지 않는 한) 업데이트(202)는 다른 업데이트 또는 업데이트 그룹과 의존 세트로 그룹화되지 않을 것이다.
이 특정 예에서, 의존관계 규칙(202c)에 의해 지정된 조건이 만족되고, 따라서 업데이트(202)는 의존 세트(214)의 일부로서 포함될 수 있다. 따라서, 업데이트(202, 204)는 의존 세트로서 컴퓨팅 장치에 제공될 수 있다. 업데이트 서비스는 또한, 적용된 의존관계 규칙(202c)에 기초하여, 업데이트(202)가 업데이트(204)에 대한 의존관계를 가지며 이들 두 업데이트가 의존 세트(214)로서 함께 설치되어야 함을 나타내는 표시를 컴퓨팅 장치(102)에게 제공할 수 있다.
다른 업데이트는 자신의 특정한 의존관계 규칙을 포함한다. 예를 들어, 업데이트(204)는 의존관계 규칙(204c)을 포함한다. 의존관계 규칙(204c)은 업데이트(204)에 적용될 수 있고 업데이트(204)가 업데이트(202)에 대한 의존관계를 가짐을 지정할 수 있다. 규칙(204d)은, 업데이트(202)의 의존관계 표시에 기초하여, 업데이트(204)가 (예컨대, 업데이트(202)와의) 의존 세트의 일부로서 포함되도록 지정할 수 있다. 그 다음에, 업데이트(202, 204)는 의존 세트(214)로서 하나 이상의 컴퓨팅 장치에 제공될 수 있다. 구체적으로, 업데이트(202, 204)에 대한 의존관계 지정은, 컴퓨팅 장치(102)가 업데이트(202, 204)를 업데이트 세트(212)의 의존 세트(214)로서 함께 처리하고 설치할 수 있도록 하기 위해, 컴퓨팅 장치(102)로 전달될 수 있다.
이와 유사하게, 업데이트(206 내지 210)는 의존관계 규칙(206c 내지 210c)을 제각기 포함한다. 의존관계 규칙(206c 내지 210c)은 적용될 수 있는 규칙(206d 내지 210d)을 포함할 수 있고, 업데이트(206 내지 210)가 업데이트 세트(212) 내의 다른 업데이트에 대한 기지의 의존관계를 갖고 있지 않다는 표시가 제공될 수 있다. 따라서, 업데이트(206 내지 210)는 의존 세트(214)로부터 제외될 수 있고 더 이상의 어떠한 의존관계 지정 없이 업데이트 세트(212)의 일부로서 제공될 수 있다.
일부 실시예에서, 업데이트(210)는 업데이트(210)가 업데이트 세트(212)의 멤버가 아니라는 판정에 기초하여 디폴트로 의존 세트(214)로부터 제외될 수 있다. 이 특정 예에서, 업데이트 세트 규칙(210a) 및 의존 규칙(210c) 모두의 평가는 조건이 업데이트(210)가 업데이트 세트(212)의 일부로서 포함되지 않도록 되어 있음을 나타낼 수 있다(따라서 의존 세트(214)로부터 제외될 수 있다). 따라서, 업데이트(210)는 개별 업데이트로서 제시되거나 또는 이용가능한 업데이트로서 제시되지 않게 될 수 있다.
업데이트 세트(212)의 제각기의 업데이트에 대한 업데이트 세트 규칙, 및 의존 세트(214)에 대한 의존관계 규칙에 적어도 부분적으로 기초하여, 업데이트는 컴퓨팅 장치(102)로 전송되도록 구성될 수 있다. 일부 실시예에서, 업데이트 서비스(110)는 업데이트 세트(212) 및 의존 세트(214) 모두의 업데이트의 설치를 위한 설치 조건을 지정할 수 있다. 설치 조건은 의존 세트(214)의 설치를 위한 다양한 설치 파라미터를 포함할 수 있다. 에를 들어, 설치 규칙은 의존 세트(214) 내의 임의의 업데이트 설치가 실패할 경우 전체 의존 세트의 설치를 롤백(roll back)하고/하거나 지정된 시간까지 또는 리부팅 후로 연기될 수 있도록 지정할 수 있다. 설치 규칙은 또한 의존 세트(214)에 대한 디스플레이명 및/또는 의존 세트(214)의 프리젠테이션에 대한 그래픽 특징과 같은 의존 세트(214)에 대한 프리젠테이션 파라미터를 포함할 수도 있다.
전술한 의존관계 규칙은 업데이트 퍼블리셔(120), 업데이트 서비스(110), 및/또는 업데이트 모듈(106)과 같은 여러 개체에 의해 생성될 수 있다. 의존관계 규칙은 다양한 방식으로 및/또는 다양한 위치에, 예컨대, 제각기의 업데이트의 일부로서, 업데이트 서비스(110) 및/또는 컴퓨팅 장치(102) 등과 같은 자원에 의해 저장된 업데이트로부터 분리된 파일로서, 구현될 수 있다. 예를 들어, 특정 업데이트 내의 메타데이터는 의존관계 규칙이 업데이트에 대해 검색될 수 있는 원격 위치를 참조할 수 있다. 이것은 개체가 특정 장치에서 업데이트의 실제 인스턴스에 액세스할 필요없이 규칙을 변경하도록 할 수 있다. 적어도 일실시예에서, 의존관계 규칙은 업데이트 서비스(110)에 의해 생성되거나 유지될 수 있다. 또한, 예컨대 제각기의 업데이트가 업데이트 서비스(110) 및/또는 컴퓨팅 장치(102)에 공개된 후에, 업데이트 서비스(110)를 통해 의존관계 규칙에 대한 수정이 이루어질 수 있다.
단일 의존 세트(214)가 예시되어 있지만, 본 명세서에서 논의되는 기법들은 복수의 상이한 의존관계 세트를 생성하고 상이한 의존 세트 사이의 관계를 생성하는데 이용될 수도 있다. 예를 들어, 특정 업데이트 세트 규칙 및/또는 의존관계 규칙에 기초하여, 업데이트는 여러 업데이트 세트 및/또는 의존 세트로 그룹화될 수 있다. 예컨대, 특정 업데이트 세트에 대한 업데이트 상호작용 규칙들의 충돌은, 업데이트 세트가 양립할 수 있는 상호작용 규칙에 기초하여 함께 그룹화될 수 있는 둘 이상의 상이한 업데이트 세트로 분리되게 할 수 있다. 각각의 업데이트 세트는 하나 이상의 기지의 의존관계를 갖는 하나 이상의 의존 세트를 포함할 수 있다.
본 명세서에 기술된 기법들이 작동할 수 있는 예시적인 환경 및 예시적인 구현 시나리오를 설명하였으므로, 이제 하나 이상의 실시예에 따른 일부 예시적인 절차에 대해 논의한다.
이하의 논의는 하나 이상의 실시예에 따른 업데이트 세트 내에서 업데이트 의존관계를 유지하는 예시적인 절차를 기술한다. 다음 논의의 일부에서는 도 1의 환경 및 도 2의 구현 시나리오를 참조할 것이다. 적어도 일부 실시예에서, 절차의 특징은 업데이트 모듈(106) 및/또는 업데이트 서비스(110)와 같은 전술한 엔티티를 통해 구현될 수 있다. 업데이트 모듈(106), 업데이트 서비스(110) 및/또는 업데이트 퍼블리셔(120)는 하기 방법들의 하나 이상의 동작을 수행하도록 구성될 수 있는 임의의 수의 유틸리티의 예들임을 주지해야 한다. 도 1 및 2의 특정 컴포넌트에 대한 참조는 예시를 위한 것일 뿐이며 본 명세서에 기술된 실시예에 대한 개시를 한정하는 것은 아니다. 후술하는 프로세스는 도 3 내지 10에 도시되어 있으며, 이들 도면에서 예시적인 실시예의 특징은 하나 이상의 실시예에 따른 하나 이상의 프로세스에서의 동작을 기술하는 흐름도로 도시되어 있다.
도 3은 업데이트 세트 내에 기지의 의존관계를 유지하는 방법(300)이 예시되도 있는 예시적인 실시예를 도시하고 있다. 추가적인 실시예는 도 4 및 5에 도시되어 있으며, 여기서 방법(400, 500)은 방법(300)과 관련있는 추가적인 그리고/또는 선택적인 프로세스 동작을 제공한다.
방법(300)은 동작(302)에서 시작하며, 여기서 업데이트 세트에 대한 요청이 수신된다. 예를 들어, 컴퓨팅 장치(102)(예컨대 업데이트 모듈(106)을 통해)는 업데이트가능 기능(104)에 대한 업데이트에 대해 업데이트 서비스(110)에 질의할 수 있다. 동작(302)은 대안적으로 동작(304)을 포함할 수 있으며, 여기서 요청이 수신될 때 하나 이상의 컴퓨팅 장치 속성이 수신될 수 있다. 적어도 일부 구현예에서, 질의는 하드웨어 구성 정보 및/또는 업데이트가 검출될 수 있게 하는 컴퓨팅 장치 상태 정보, 예컨대 업데이트가능 기능(104)에 대한 식별자, 장치 상태 정보 등을 포함하는 다양한 컴퓨팅 장치 속성을 포함할 수 있다. 다른 실시예에서, 이 요청은 (예컨대, 업데이트 서비스가 요청 없이 업데이트를 컴퓨팅 장치에 푸시하도록 구성되면)필요하지 않거나 또는 업데이트 서비스에 의해 컴퓨팅 장치에 보내진 리마인더에 응답하여 행해질 수 있다.
방법(300)은 동작(306)으로 진행할 수 있고, 여기서 컴퓨팅 장치에 대한 업데이트 세트가 구축된다. 예를 들어, 업데이트는 업데이트 세트에 수집되고 질의에 응답하여 컴퓨팅 장치(102)에 의해 업데이트가능 기능(104)에 대한 업데이트를 위해 업데이트 서비스(110)에 제공될 수 있다. 이에 갈음하여 또는 이에 더하여, 업데이트는 업데이트 서비스(110)에 의해 수집될 수 있고 컴퓨팅 장치(102)로부터의 질의와 독립적인 컴퓨팅 장치(102)에 푸시될 수 있다. 일부 실시예에서, 동작(306)은 대안적으로 도 4의 동작(402 및 406))을 포함할 수 있다. 동작(402)에서, 업데이트 세트를 구축하는 것은 수신된 컴퓨팅 장치 속성 정보(예컨대, 하드웨어 및 상태 정보)를 업데이트 서비스부에 저장된 업데이트 정보와 비교하는 것을 더 포함할 수 있다. 예를 들어, 업데이트 서비스(110)는 요청 컴퓨팅 장치에 대해 적절한 저장된 이용가능 업데이트에 따라서 업데이트 세트에 대한 업데이트를 선택할 수 있다. 동작 404에서, 업데이트 세트는 비교에 기초하여 구축될 수 있다.
동작(306)은 또한 대안적으로 동작(308)을 포함할 수 있으며, 여기서 의존관계 표시가 업데이트 세트 내의 하나 이상의 업데이트에 적용된다. 일부 실시예에서, 업데이트 서비스(110)는 업데이트 세트 내의 하나 이상의 업데이트가 업데이트 세트 내의 하나 이상의 다른 업데이트에 대한 의존관계를 포함하는지 여부를 평가할 수 있다. 구체적으로, 업데이트 서비스(110)는 예컨대 업데이트 세트 내의 각각의 업데이트에 대해 기재의 의존관계를 포함하는 하나 이상의 디플로이먼트 속성을 설정할 수 있다. 일부 실시예에서, 동작(308)은 대안적으로 도 5의 동작(502, 504, 506)을 포함할 수 있다. 동작(502)에서, 의존관계 정보가 업데이트 퍼블리셔로부터 수신될 수 있다. 동작(504)에서, 수신된 의존관계 정보를 업데이트 세트 내의 업데이트에 적용하기 위해 하나 이상의 의존관계 규칙을 평가함으로써 의존관계 평가가 수행될 수 있다. 예를 들어, 업데이트 서비스(110)는, 제각기의 업데이트 세트에 대한 의존관계 규칙(118)에 기초하여, 개별 업데이트가 컴퓨팅 장치(102) 상의 그룹화된 설치를 위해 독립적인 세트로 더 그룹화될 수 있는지 여부를 판정할 수 있다. 전술한 바와 같이, 의존관계 규칙은, 업데이트 세트 내의 특정 업데이트가 의존 세트의 일부로서 포함됨을 나타내는 명시적인 표시를 포함할 수 있다. 의존관계 규칙은 또한 소정의 조건을 지정할 수 있는데, 이 조건 하에서, 예컨대 장치 속성, 컴퓨팅 장치 구성, 특정 업데이트와 의존 세트로 그룹화되거나 또는 되지 않을 수 있는 다른 업데이트 등에 기초하여, 특정 업데이트가 의존 세트의 일부로서 포함될 수도 있고 포함되지 않을 수도 있다. 적어도 일부 구현예에서, 업데이트 세트 내의 업데이트가 의존관계를 포함하는지 여부를 확인하는 것은 업데이트가 개별적으로 발표되거나 배포된 후에, 예컨대 업데이트(112)가 업데이트 퍼블리셔(120)로부터 업데이트 서비스(110) 및/또는 컴퓨팅 장치(102)에 제공된 후에 발생할 수 있다. 예를 들어, 업데이트 서비스(110)는, 업데이트 세트로 이미 그룹화된 업데이트(112)가 의존 세트로 더 그룹화될 수 있는지 여부를 확인하기 위해 업데이트 프로세스의 개시 후에, 의존관계 규칙(118)을 평가할 수 있다. 따라서, 특정 업데이트가 의존 세트로 그룹화되는지 여부는 업데이트가 업데이트 서비스 또는 업데이트 퍼블리셔(120) 중 하나에 의해 발표된 후에 변할 수 있는 동적 장치 상태 조건에 의존할 수 있다. 일부 실시예에서, 방법(500)은 대안적으로 동작(506)을 포함할 수 있고, 여기서 업데이트가 임의의 의존관계를 포함하지 않음을 나타내는 의존관계 표시가 적어도 하나의 업데이트에 적용될 수 있다.
일부 실시예에서, 업데이트 세트는 업데이트 서비스(110)에 공개될 수 있다. 예를 들어, 업데이트 세트는 업데이트 퍼블리셔(120)로부터 수신될 수 있다. 이러한 실시예에서, 이 업데이트 세트 내의 개별 업데이트는 하나 이상의 의존관계를 갖는 것으로 또는 하나 이상의 의존관계를 갖지 않는 것으로 사전에 표시될 수 있다. 다른 업데이트와의 의존(예컨대, 의존하거나 의존당하는) 관계를 갖는 각각의 업데이트는 함께 그룹화될 수 있다.
업데이트가 자신의 제각기의 의존관계 표시를 수신하면, 방법은 동작(310)으로 진행할 수 있고, 여기서 업데이트 세트가 컴퓨팅 장치에 제공된다. 예를 들어, 업데이트 세트(212)는 세트로서 설치하기 위해 장치(예컨대, 컴퓨팅 장치(102))에 제공될 수 있다. 업데이트 서비스는 (업데이트 모듈(106) 또는 하드웨어 관리자를 통해)컴퓨팅 장치(102)에 의존관계 정보를 전달하도록 구성될 수 있다. 예를 들어, 업데이트 서비스(110)는, 업데이트 세트(212) 내에 의존 세트(214)가 존재함을 컴퓨팅 장치에게 전달할 수 있다. 따라서 의존 세트(214)는 설치 전에 컴퓨팅 장치(102)에 의해 추가적으로 처리되도록 지정될 수 있다. 적어도 일부 실시예에서, 업데이트의 의존 세트가 설치되어야 한다는 통지가 제공될 수도 있다. 일부 실시예에서, 업데이트 서비스(110)는 의존 세트 내의 업데이트가 단일 개체로서 설치되어야 한다는 통지를 컴퓨팅 장치에 제공한다. 예를 들어, 업데이트가 설치할 의존 세트로 그룹화될 때, 사용자는 전체 의존 세트의 설치 허용 없이는 의존 세트의 개별 업데이트의 설치를 개시하지 못하게 금지당할 수 있다. 또한, 의존 세트의 설치가 시작되고 설치된 모든 업데이트가 설치되지 않고 중단되면, 부분적으로 설치된 의존 세트의 설치된 업데이트는 설치 이전 상태로 롤백될 수 있다. 따라서, 적어도 일부 구현예에서, 의존 세트 내의 업데이트는 세트로서 설치되거나 또는 전혀 설치되지 않을 수 있다. "올 오어 낫싱(all or nothing)" 설치 정책을 시행함으로써, 의존 드라이버들 중 혼합(mixed) 업데이트 상태가 회피될 수 있다.
하나 이상의 업데이트가 컴퓨팅 장치에 설치된 후에, 방법(300)은 대안적으로 동작(312)으로 진행하며, 여기서 설치 피드백이 업데이트 서비스에 의해 수신된다. 일부 실시예에서, 피드백은 원격측정 리포팅의 형태로 수신되는데, 이는 상세히 후술할 것이다.
예컨대 특정 업데이트가 발표되어 타겟 장치에 전파된 후에 다양한 업데이트 관련 동작이 동적으로 수정될 수 있다. 이것은 업데이트 서비스(110) 및/또는 업데이트 퍼블리셔(120)와 같은 다양한 개체가, 특정 업데이트를 하나의 세트로 그룹화할지의 여부를 결정하고 업데이트들 간의 의존관계 및 상호작용 행위를 지정하는데 있어서의 다양한 동적으로 변하는 조건에 응답할 수 있게 한다. 이들 실시예에서, 업데이트 세트는 개별 업데이트가 변하거나 의존관계가 변하더라도 재발표를 요구하지 않을 수 있다. 오히려, 업데이트 세트 정의의 요소를 수정함으로써, 업데이트 세트 및 의존관계에 대한 변경이 재발표없이 이루어질 수 있다.
업데이트 설치 동안 업데이트 세트 의존관계를 유지하기 위해 컴퓨팅 장치(102) 상에서 실행가능한 하나 이상의 프로세스에 대해 이하에서 논의한다. 도 6은 하나 이상의 실시예에 따른 방법에서의 동작을 기술하는 흐름도이다. 추가적인 실시예는 도 7 내지 10에 도시되어 있으며, 여기서 방법(700, 800, 900, 1000)은 방법(600)과 관련된 추가적인 그리고 또는 선택적인 동작을 제공한다.
방법(600)은 동작(602)에서 시작될 수 있으며, 여기서 업데이트 서비스로부터 업데이트 세트가 수신된다. 일부 실시예에서, 동작(602)은 대안적으로 도 7의 동작(702 내지 708)을 포함할 수 있다. 예를 들어, 업데이트가능한 기능(104)에 대한 하나 이상의 기능과 관련된 업데이트 세트에 대한 (예컨대, 업데이트 모듈(106)에 의한) 업데이트 서비스(110)로의 질의(702)에 응답하여 업데이트 세트가 수신될 수 있다. 업데이트에 대한 질의는 사용자, 스케줄링된 태스크, 또는 컴퓨팅 장치의 운영 체제에서 실행가능한 다른 적절한 프로세스에 의해 개시될 수 있다. 컴퓨팅 장치(102)(예컨대, 업데이트 모듈(106)을 통해)는 업데이트 서비스로부터 가장 최신의 업데이트 세트를 요청하도록 구성될 수 있다. 이들 요청은, 예컨대 새로운 장치의 최초 실행 동안, 컴퓨팅 장치(102)가 업데이트 서비스에 대한 이용가능한 접속을 검출할 때, 또는 스케줄링된 간격으로 수행될 수 있다.
일부 실시예에서, 컴퓨팅 장치 속성 정보는 업데이트 검사 동안 업데이트 서비스(110)에 대한 질의에 포함(704)될 수 있다. 컴퓨팅 장치 속성 정보는 하드웨어 구성 정보 및 운영 환경 특징을 포함할 수 있다. 운영 환경 특징은 운영 체제, 음성 언어(spoken language), BIOS 정보, 상태 정보 등의 기술과 같은 정보를 포함할 수 있다. 적어도 일부 구현예에서, 질의는 또한 업데이트가능 기능(104)에 대한 식별자, 장치 상태 정보 등과 같이 업데이트를 찾는데 이용가능한 다양한 장치 속성을 포함할 수도 있다. 장치 속성의 예는 앞에서 논의하였다. 업데이트 세트는 구성 및 운영 환경 상태 정보 및/또는 장치 정보에 기초하여 컴퓨팅 장치(102)에 의해 수신될 수 있다(예컨대, 검출되고 다운로드될 수 있다. 이에 갈음하여 또는 이에 더하여, 업데이트 정보는, 예컨대 (업데이트 서비스(110)로부터 푸시된)컴퓨팅 장치(102)로부터의 질의와 독립적인 컴퓨팅 장치(102)에 의해 수신될 수 있다. 일부 실시예에서, 업데이트 세트를 수신하는 것은 펌웨어 업데이트 또는 장치 드라이버 업데이트의 세트 중 적어도 하나를 수신하는 것(706)을 포함할 수 있다. 수신된 업데이트 세트가 장치 드라이버 업데이트 세트인 예에서, 방법(700)은 컴퓨팅 장치에 연결가능한 비존재(non-present) 장치 또는 컴퓨팅 장치에 이전에 연결되지 않은 타겟 장치에 대한 적어도 하나의 업데이트를 수신하는 것(708)을 더 포함할 수 있다. 비존재 장치 및 타겟 장치에 대한 추가적인 세부사항은 2013년 5월 31일 출원번호 제13/907,069호로 출원된 "Driver Installation for Targeted and Non-Present Devices"에 제시되어 있으며, 이 출원은 그 전체가 본 명세서에 참조로서 포함된다.
업데이트 세트가 컴퓨팅 장치에 의해 수신될 경우, 방법(600)은 동작(604)으로 진행하며, 여기서 업데이트가 업데이트 세트 내의 하나 이상의 다른 업데이트에 대한 의존관계를 포함하는지 여부를 판정하기 위해 업데이트 세트 내의 하나 이상의 업데이트가 평가된다. 예를 들어, 업데이트 모듈(106)은 각 업데이트에 대한 수신된 의존관계 정보에 기초하여, 개별 업데이트가 의존 세트로 더 그룹화되고 컴퓨팅 장치(102) 상에 하나의 세트로서 설치하도록 지정되어 있는지 여부를 판정할 수 있다. 전술한 바와 같이, 의존관계 정보는 수신된 업데이트 세트 내의 업데이트에 명시적인 의존관계 표시를 적용하는 의존관계 규칙으로부터 도출될 수 있다.
업데이트 세트의 수신시, 컴퓨팅 장치(102)는 (예컨대, 업데이트 모듈(106)을 통해) 수신된 업데이트 세트 내의 업데이트가 업데이트 세트 내에서 의존관계를 포함하는지 여부를 인식하도록 구성될 수 있다. 예를 들어, 업데이트 세트 내의 업데이트는 의존관계 표시에 대해 스캔될 수 있다. 적어도 일부 구현예에서, 업데이트 세트 내의 업데이트가 의존관계를 포함하는지 여부를 확인하는 것은 업데이트가 업데이트 서비스(110)로부터 컴퓨팅 장치(102)로 제공된 후에 발생할 수 있다. 예를 들어, 업데이트 모듈(106)은, 업데이트 세트에서 이미 그룹화된 업데이트(112)가 의존 세트로 추가로 그룹화될 수 있는지 여부를 확인하기 위해, 업데이트 프로세스의 개시 이후에 의존관계 규칙(118)을 평가할 수 있다. 따라서, 특정 업데이트가 의존 세트로 그룹화되는지 여부는 업데이트가 업데이트 서비스(110) 및/또는 업데이트 퍼블리셔(120) 중 하나에 의해 발표된 후에 변할 수 있는 동적 장치 상태 조건에 의존할 수 있다.
의존관계 평가가 업데이트 세트의 하나 이상의 업데이트가 의존 세트의 멤버로서 지정됨을 나타내면("예"의 경우), 동작(606)은 이 의존 세트에 속하는 업데이트를 업데이트 세트 내의 나머지 업데이트로부터 분리시킬 수 있다. 구체적으로, 업데이트 세트 내의 다른 업데이트에 대한 의존관계를 갖는 업데이트 세트 내의 업데이트뿐만 아니라 제1 업데이트가 의존하는 업데이트가 업데이트 세트 내의 나머지 업데이트로부터 분리될 수 있다. 일부 실시예에서, 동작(606)은 동작(802)을 더 포함할 수 있으며, 여기서 의존 세트 업데이트는 로컬 업데이트 저장부와 별도의 지정된 저장소에 저장된다. 예를 들어, 업데이트는 예컨대 업데이트 모듈(106) 및/또는 업데이트 서비스(110)에 의해 의존 세트로 그룹화될 수 있고, 컴퓨팅 장치(102)에 설치되기 전에 지정된 위치(예컨대, 의존 업데이트 저장부(108))로 전송될 수 있다. 적어도 일부 실시예에서, 업데이트의 의존 세트가 함께 설치됨을 나타내는 통지가 제시될 수도 있다. 의존 세트 위치가 이 통지에 제공될 수도 있다.
일부 실시예에서, 업데이트의 분리된 의존 세트는 별도의 저장소(예컨대, 의존 저장부(108))로 전달될 수 있는 반면에, 업데이트 세트 내의 나머지 업데이트는 설치를 위해 일반 드라이버 저장부로 전달된다. 의존 세트를 별도의 저장소로 전달하는 것은 의존 세트 내의 업데이트가 함께 설치됨을 보장할 수 있다. 컴퓨팅 장치(102)는 또한, 업데이트 세트가 검출되고 다운로드될 때 뿐만 아니라 업데이트가 설치될 때, 의존관계를 유지하도록 구성될 수 있다. 이를 위해, 업데이트 모듈(106)은 하나 이상의 업데이트가 의존 업데이트 저장소(108)에 저장되고 검출되고 다운로드되어 설치되는 임의의 다른 업데이트 또는 드라이버와 분리됨을 나타내는 표시를 수신할 수 있다.
의존 세트(예컨대, 의존관계를 포함하는 업데이트)를 업데이트 세트 내의 나머지 업데이트와 분리할 경우, 방법(600)은 동작(608)으로 진행할 수 있으며, 여기서 의존 세트 내의 업데이트가 설치될 수 있다. 의존 세트 업데이트가 장치 드라이버 업데이트인 경우, 업데이트 모듈(106)은 업데이트의 설치를 관리할 수 있다. 일부 실시예에서, 의존 세트는 일반 드라이버 저장부(또는 업데이트가 설치되는 다른 위치)로 전달될 수 있다. 의존 세트가 드라이버 업데이트인 경우, 드라이버 저장부는 동시에, 또는 거의 동시에 업데이트를 설치할 수 있다. 의존 업데이트가 펌웨어 업데이트인 경우, UEFI(unified extensible firmware interface)와 같은 프로그램은 펌웨어 업데이트의 설치를 관리할 수 있다. 예를 들어, 펌웨어 업데이트는 설치를 위해 UEFI로 전달될 수 있다. 일부 실시예에서, 동작(608)은 동작(804)을 더 포함할 수 있으며, 여기서 업데이트는 자동 배경 업데이트 또는 상호작용 전경 업데이트 동안에 설치된다. 의존 세트의 최초 설치 동안, 임의의 업데이트가 실패하면, 전체 의존 세트가 롤백될 수 있다. 의존 세트를 (예컨대 이전 업데이트 세트 버전으로) 롤백하는 것은 혼합 드라이버 또는 펌웨어 상태(예컨대, 구(older) 및 신(new) 드라이버 및/또는 펌웨어 업데이트)를 방지할 수 있다
의존 세트에서의 업데이트 설치 후에, 동작(610)은 활성화 조건을 의존 세트 내의 업데이트에 적용한다. 설치 시에, (예컨대, 업데이트와 함께 포함된)활성화 조건이 의존 세트 업데이트에 적용될 수 있다. 동작(610)은 선택적일 수 있다. 따라서, 일부 실시예에서, 더 이상의 추가 명령이 설치 후의 업데이트에 적용되지 않고, 임의의 후속 처리가 컴퓨팅 장치(102)에 의해 제어되는 방식으로 실행될 수 있다. 일부 실시예에서, 활성화 조건을 업데이트에 적용하는 것은 설치 시에 활성화하도록 명령하는 것을 포함할 수 있다. 다른 실시예에서, 활성화 조건을 적용하는 것은 활성화 대기 기간을 의존 세트 내의 업데이트에 적용하는 것을 포함한다. 일부 실시예에서, 대기 기간을 활성화 전에 적용하는 것은 업데이트 세트 내의 각각의 업데이트가 시스템 리부트 때까지 활성화하지 않도록 지정하는 것을 포함한다. 즉, 의존 세트 업데이트는 지정된 활성화 이벤트가 발생할 때까지 활성화되지 않을 수 있다. 일부 예에서, 동작(610)은 동작(806)을 더 포함할 수 있으며, 여기서 활성화 이벤트는 컴퓨팅 장치의 재시동이다. 리부트는 사용자에 의해 또는 컴퓨팅 장치의 리부트를 개시하도록 구성된 임의의 다른 컴퓨팅 장치 컴포넌트에 의해 개시될 수 있다. 다음 운영 체제 부트 시에, 컴퓨팅 장치는 (예컨대, 하드웨어 관리자를 통해) 펌웨어 설치가 성공적인지를 판정할 수 있다. 예를 들어, 다음 시스템 리부트 동안, 임의의 진행 중인 펌웨어 업데이트의 실행이 시도될 수 있다. 업데이트가 성공하면, 컴퓨터 장치는 업데이트 세트 내의 업데이트를 활성화할 수 있다. 펌웨어 업데이트가 실패하면, 다음 운영 체제 로드 시에, 이전 업데이트 세트 버전에 포함된 업데이트가 보다 최근에 설치된 업데이트 대신에 활성화되어, 임의의 예상 의존관계가 업데이트 설치 실패의 이벤트에서 보존될 수 있다. 모든 펌웨어 업데이트가 성공하거나 또는 어떠한 펌웨어 업데이트도 진행 중이 아니면, 업데이트 세트로부터의 새로 설치된 의존 업데이트가 활성화될 수 있다. 활성화가 성공하면, 업데이트 세트 내의 각각의 업데이트는 컴퓨팅 장치 또는 대응하는 컴포넌트 장치에 의해 액세스가능할 수 있다. 일부 실시예에서는, 컴퓨팅 장치 리부트 전에 장치 드라이버의 하나 이상의 업데이트가 설치될 수 있다. 이러한 실시예에서, 컴퓨팅 장치는 장치 드라이버 버전들 및/또는 펌웨어 버전들 간의 혼합 상태를 회피하도록 하기 위해 펌웨어 업데이트가 장치 드라이버 업데이트의 활성화 이전에 완료될 수 있게 하도록 구성될 수 있다.
업데이트가 의존 세트의 멤버가 아니면("아니오"의 경우), 방법(600)은 동작(612)으로 진행하며, 여기서 업데이트 세트 내의 업데이터는 업데이트 세트를 평가하기 위한 이전에 논의된 규칙에 따라(예컨대, 업데이트 세트 규칙에 따라 그리고/또는 개별적으로) 평가될 수 있다. 일부 예에서, 동작(612)은 동작(902)을 더 포함할 수 있으며, 여기서 업데이트 세트 내의 나머지 업데이트가 설치된다. 예를 들어, 업데이트(112)는 업데이트 각각이 컴퓨팅 장치(102)에 설치되어야 하는지 여부를 판정하기 위해 개별적으로 또는 업데이트 세트(212)의 부분으로서 평가될 수 있다. 예컨대, 설치 동의를 위해 업데이트 세트 및/또는 개별 업데이트가 업데이트 또는 업데이트 세트의 설치를 승인하기 위한 사용자 선택가능 옵션을 포함하는 사용자 인터페이스를 통해 사용자에게 제시될 수 있다. 임의의 기지의 의존관계 없이 업데이트 세트 내의 업데이트는 언제라도 활성화될 수 있다. 일부 예에서, 동작(612)은 동작(904)을 더 포함할 수 있으며, 여기서 하나 이상의 나머지 업데이트는 대응하는 장치 또는 유틸리티가 검출될 때 온디맨드(on-demand)로 활성화하도록 구성된다. 이 특징은, 펌웨어 및 드라이버 버전의 혼합 상태에 빠지지 않고 지정된 설치 규칙에 따라 안전하게 진행하도록 업데이트 중에, 비존재 장치(컴퓨팅 장치에 이전에 연결되었었지만 업데이트, 다운로드 및/또는 설치 요청 시에 연결해제된 장치) 및/또는 타겟 장치(컴퓨팅 장치에 이전에 연결된 적이 없던 장치)에 대한 드라이버의 설치를 위해 제공된다.
설치 및/또는 활성화 프로세스 동안 임의의 시간에, 방법(600)은 동작(614)으로 진행할 수 있으며, 여기서 설치 피드백이 업데이트 서비스에 제공될 수 있다. 컴퓨팅 장치(102)는 업데이트 설치 성공 또는 실패를 모니터링하도록 구성될 수 있다. 업데이트 설치 상태의 모니터링은 업데이트 세트 레벨 또는 개별 업데이트 레벨로 수행될 수 있다. 컴퓨팅 장치는 (예컨대, 업데이트 모듈(106)을 통해) 설치 상태 정보(예컨대, 성공/실패)를 업데이트 서비스에게 보고할 수 있다. 일부 예에서, 동작(614)은 동작(1002)을 더 포함할 수 있으며, 여기서 설치 정보를 업데이트 서비스에 보고하기 위해 원격측정을 이용할 수 있다. 일부 예에서, 동작(1002)은 동작(1004)을 더 포함하며, 여기서 업데이트 세트 레벨 상태 보고 또는 업데이트 레벨 상태 보고 중 적어도 하나가 제공된다. 일부 예에서, 동작(1002)은 동작(1006)을 더 포함할 수 있으며, 여기서 원격 측정은 의존관계를 포함하는 업데이트와 업데이트 세트 내에 의존관계 없는 업데이트 간을 구별하도록 구성된다. 컴퓨팅 장치(102)는 업데이트 세트 레벨에서 의존관계를 갖는 아이템과 의존관계 없는 아이템 사이를 구별하도록 구성된 원격측정 보고 요소를 포함할 수 있다. 업데이트 세트가 최종적으로 설치 성공하거나 또는 실패한 후에, 업데이트 모듈(106)은 의존 업데이트 설치 성공 및 실패를 추가로 모니터링하고 진단하는데 사용될 수 있는 정보를 제공하기 위해 계층의 하나 이상의 레벨에서 원격측정을 보고하도록 구성될 수 있다. 원격측정 보고는 하나 이상의 특이성(specificity) 레벨에 의해 상관될 수 있다. 예를 들어, 보고는 업데이트 세트 버전, 의존 세트 버전, 및/또는 개별 업데이트 정보에 의해 상관될 수 있다. 설치 상태 정보를 이용하면, 업데이트 서비스 관리자는 복수의 상이한 관점에서 성공 및 실패를 진단할 수 있다.
본 명세서에서 논의된 기법들을 수행하기 위한 다수의 방법이 구현될 수 있다. 이들 방법의 특징은 하드웨어, 펌웨어, 또는 소프트웨어, 또는 이들의 조합으로 구현될 수 있다. 이들 방법은 하나 이상의 장치에 의해 수행되는 동작을 특정하는 블록 세트로서 도시되어 있으며, 제각기의 블록에 의해 동작들을 수행하기 위해 반드시 도시된 순서로 한정되지는 않는다. 또한, 특정 방법과 관련하여 도시된 동작은 하나 이상의 구현예에 따라 상이한 방법의 동작과 조합되고/되거나 교환될 수 있다. 이들 방법의 특징은 환경(100)과 관련하여 위에서 논의된 다양한 개체들 간의 상호작용을 통해 구현될 수 있다.
기지의 의존관계를 갖는 업데이트를 설치하기 위한 기법들이 기술된다. 실시예들은 구조적인 특징 및/또는 방법적 동작에 특유한 언어로 기술되어 있지만, 첨부된 청구항들에 정의된 청구대상은 반드시 전술한 특정한 특징이나 동작으로 제한되지는 않음을 이해해야 한다. 오히려, 전술한 특정한 특징 및 동작은 청구항 및 실시예들을 구현하는 예시적인 형태로서 개시되어 있다.
본 명세서에 기술된 실시예들과 기능들은 데스크탑 컴퓨터 시스템, 유선 및 무선 컴퓨팅 시스템, 모바일 컴퓨팅 시스템(예컨대, 모바일 전화기, 노트북, 태블릿 또는 슬레이트 타입 컴퓨터, 노트북 컴퓨터, 및 랩탑 컴퓨터 등), 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램가능한 가전, 미니컴퓨터, 및 메인프레임 컴퓨터를 포함한 다수의 컴퓨팅 시스템을 통해 동작할 수 있다.
또한, 본 명세서에 기술된 실시예들과 기능들은 분산 시스템(예컨대, 클라우드 기반 컴퓨팅 시스템)을 통해 동작할 수 있는데, 여기서 애플리케이션 기능, 메모리, 데이터 저장 및 검색, 및 다양한 처리 기능들이 인터넷 또는 인트라넷과 같은 분산 컴퓨팅 네트워크를 통해 서로 원격으로 동작할 수 있다. 다양한 유형의 정보 및 사용자 인터페이스가 온보드 컴퓨팅 장치의 디스플레이를 통해 또는 하나 이상의 컴퓨팅 장치와 연관된 원격 디스플레이 유닛을 통해 디스플레이될 수 있다. 예를 들어, 다양한 유형의 정보 및 사용자 인터페이스가 다양한 유형의 정보 및 사용자 인터페이스가 투영되는 월 서피스(wall surface) 상에서 디스플레이되고 상호작용될 수 있다. 본 발명의 실시예가 실시될 수 있는 다수의 컴퓨팅 시스템과의 상호작용은 키스트로크 입력, 터치 스크린 입력, 음성 또는 다른 오디오 입력, 제스처 입력 등을 포함하는데, 여기서 관련 컴퓨팅 장치가 컴퓨팅 장치의 기능을 제어하기 위한 사용자 제스처를 캡처하고 해석하기 위한 검출(예컨대, 카메라) 기능을 갖추고 있다.
도 11 내지 13 및 관련 설명은 본 발명의 실시예들을 실시하는데 이용될 수 있는 다양한 운영 환경에 대한 논의를 제공한다. 그러나, 도 11 내지 13과 관련하여 예시되고 논의되는 장치 및 시스템은 예시 및 설명을 위한 것이며 본 명세서에 기술된 본 발명의 실시예를 실시하기 위해 이용될 수 있는 다수의 컴퓨팅 장치 구성을 제한하는 것은 아니다.
도 11은 본 발명의 실시예들을 실시하는데 이용될 수 있는 컴퓨팅 장치(102)의 예시적인 물리적 컴포넌트를 도시한 블록도이다. 후술하는 컴퓨팅 장치의 컴포넌트는 전술한 컴퓨팅 장치에 적합할 수 있다. 기본 구성에서, 컴퓨팅 장치(102)는 적어도 하나의 처리 유닛(1102) 및 시스템 메모리(1104)를 포함할 수 있다. 컴퓨팅 장치의 구성 및 유형에 따라, 시스템 메모리(1104)는, 한정적인 것은 아니지만, 휘발성(예컨대, RAM), 비휘발성(예컨대, ROM), 플래시 메모리 또는 이들 메모리의 임의의 조합을 포함할 수 있다. 시스템 메모리(1104)는 운영 체제(1105) 및 장치 모듈(106)과 같은 소프트웨어 애플리케이션(1120)을 실행하기에 적합한 하나 이상의 프로그램 모듈(1106)을 포함할 수 있다. 운영 체제(1105)는, 예컨대, 컴퓨팅 장치(102)의 동작을 제어하는데 적합할 수 있다. 또한, 본 발명의 실시예는 그래픽스 라이브러리, 다른 운영 체제, 또는 임의의 다른 애플리케이션 프로그램과 함께 실시될 수 있으며 임의의 특정 애플리케이션 또는 시스템에 제한되지 않는다. 이 기본 구성은 도 11에 점선(1108) 내에 있는 컴포넌트들로 도시되어 있다. 컴퓨팅 장치(102)는 부가적인 특징들 또는 기능을 가질 수 있다. 예를 들어, 컴퓨팅 장치(102)는 또한 예컨대, 자기 디스크, 광학 디스크, 또는 테이프와 같은 부가적인 데이터 저장 장치(착탈식 및/또는 비착탈식)를 포함할 수 있다. 그러한 부가적인 저장부는 도 11에 착탈식 저장 장치(1109) 및 비착탈식 저장 장치(1110)로 도시되어 있다.
전술한 바와 같이, 다수의 프로그램 모듈 및 데이터 파일이 시스템 메모리(1104)에 저장될 수 있다. 프로그래밍 모듈(1106)(예컨대, 장치 모듈(106))은 처리 유닛(1102)에서 실행되는 동안, 도 2에 도시된 방법(200)의 전략들 중 하나 이상을 포함하는 프로세스를 수행할 수 있다. 본 발명의 실시예에 따라 사용될 수 있는 다른 프로그래밍 모듈은 전자 메일 및 컨택 애플리케이션, 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션, 데이터베이스 애플리케이션, 슬라이드 프리젠테이션 애플리케이션, 드로잉 또는 컴퓨터 지원 애플리케이션 프로그램 등을 포함할 수 있다.
또한, 본 발명의 실시예는 개별 전자 소자를 포함하는 전기 회로, 로직 게이트를 포함하는 패키지형 또는 집적형 전자 칩, 마이크로프로세서를 이용하는 회로, 또는 전자 소자 또는 마이크로프로세서를 포함하는 단일 칩에서 실시될 수 있다. 예를 들어, 본 발명의 실시예는 도 11에 도시된 각각의 또는 다수의 컴포넌트들이 단일 집적 회로 칩에 집적될 수 있는 SOC(system-on-a-chip)를 통해 실시될 수 있다. 이러한 SOC 장치는 하나 이상의 처리 유닛, 그래픽스 유닛, 통신 유닛, 시스템 가상화 유닛 및 다양한 애플리케이션 기능을 포함할 수 있는데, 이들 모두가 칩 기판 상에 단일 집적 회로로서 집적(또는 "버닝(burned)")된다. 본 명세서에 기술된 기능은, SOC를 통해 동작할 때, 단일 집적 회로(칩) 상의 컴퓨팅 장치(102)의 다른 컴포넌트들과 통합된 애플리케이션 특정 로직을 통해 동작할 수 있다. 본 발명의 실시예들은, 기계, 광학, 유체공학, 및 양자 기술을 포함한, 예컨대, AND, OR, 및 NOT과 같은 논리 연산을 수행할 수 있는 다른 기술들을 이용하여 실시될 수도 있다. 또한, 본 발명의 실시예는 범용 컴퓨터 또는 임의의 다른 회로 또는 시스템에서 실시될 수도 있다.
컴퓨팅 장치(102)는 키보드, 마우스, 펜, 소리 입력 장치, 터치 입력 장치 등과 같은 하나 이상의 입력 장치(들)(1112)를 구비할 수 있다. 디스플레이, 스피커, 프린터 등과 같은 출력 장치(들)(1114)도 포함될 수 있다. 앞서 설명한 장치들은 예시이고 다른 장치도 사용될 수 있다. 컴퓨팅 장치(102)는 다른 컴퓨팅 장치(1118)와의 통신을 가능하게 하는 하나 이상의 통신 연결부(1116)를 포함할 수 있다. 적절한 통신 연결부(1116)의 예는 RF 송신기, 수신기 및/또는 송수신 회로, 범용 직렬 버스(USB), 병렬 및/또는 직렬 포트를 포함하나 이에 국한되지는 않는다.
본 명세서에서 사용된 컴퓨터 판독가능 매체라는 용어는 컴퓨터 저장 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 또는 프로그램 모듈과 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체를 포함할 수 있다. 시스템 메모리(1104), 착탈식 저장 장치(1109) 및 비착탈식 저장 장치(1110)는 모두 컴퓨터 판독가능 저장 매체의 예들(즉, 메모리 저장부)이다. 컴퓨터 저장 매체는, 제한적인 것은 아니지만, RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 다른 광학 저장부, 자기 카세트, 자기 테이프, 자기 디스크 저장부 또는 기타 자기 저장 장치, 또는 정보를 저장하는데 사용될 수 있으며 컴퓨팅 장치(102)에 의해 액세스될 수 있는 임의의 다른 제품을 포함할 수 있다. 임의의 그러한 컴퓨터 저장 매체는 컴퓨팅 장치(102)의 일부일 수 있다. 컴퓨터 저장 매체는 반송파 또는 다른 전파 또는 변조된 데이터 신호는 포함하지 않는다.
통신 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파나 다른 전송 메커니즘과 같은 변조된 데이터 신호 내의 기타 데이터를 포함할 수 있고, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"란 용어는 정보를 신호로 인코드하는 것과 같은 방식으로 설정 또는 변경된 하나 이상의 특징을 갖는 신호를 의미한다. 예를 들어, 제한적인 것은 아니지만, 통신 매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체, 음향, RF, 적외선 및 기타 무선 매체들과 같은 무선 매체를 포함할 수 있다.
도 12a 및 12b는, 예를 들어, 모바일 전화기, 스마트폰, 태블릿 퍼스널 컴퓨터, 랩탑 컴퓨터 등과 같이, 본 발명의 실시예들을 실시하는데 이용될 수 있는 적절한 모바일 컴퓨팅 환경(1200)을 도시한 것이다. 도 12a를 참고하면, 실시예를 구현하기 위한 예시적인 모바일 컴퓨팅 장치(1200)의 일실시예가 도시되어 있다. 기본 구성에서, 모바일 컴퓨팅 장치(1200)는 입력 요소 및 출력 요소를 구비한 핸드헬드 컴퓨터이다. 모바일 컴퓨팅 장치(1200)는 디스플레이(1205) 및 사용자로 하여금 모바일 컴퓨팅 장치(1200)에 정보를 입력할 수 있게 하는 하나 이상의 입력 버튼(1210)을 포함한다. 이동 컴퓨팅 장치(1200)의 디스플레이(1205)는 입력 장치(예를 들어, 터치 스크린 디스플레이)로도 기능을 할 수 있다. 선택적인 측면 입력 구성요소(1215)는, 포함될 경우, 추가적인 사용자 입력을 가능하게 한다. 측면 입력 구성요소(1215)는 회전 스위치, 버튼 또는 임의의 다른 유형의 수동 입력 구성요소일 수 있다. 또 다른 실시예에서, 이동 컴퓨팅 장치(1200)는 보다 많은 또는 보다 적은 입력 구성요소를 포함할 수 있다. 예를 들어, 디스플레이(1205)는 일부 실시예에서 터치 스크린이 아닐 수 있다. 또 다른 실시예에서, 이동 컴퓨팅 장치(1200)는 셀룰러폰과 같은 휴대용 전화 시스템이다. 이동 컴퓨팅 장치(1200)는 또한 선택적 키패드(1235)를 포함할 수 있다. 선택적 키패드(1235)는 물리적 키패드이거나 터치 스크린 디스플레이 상에 생성된 "소프트" 키패드일 수 있다. 다양한 실시예에서, 출력 구성요소는 그래픽 사용자 인터페이스(GUI)를 보여주는 디스플레이(1205), 시각적 표시자(1220)(예를 들어, 발광 다이오드) 및/또는 오디오 트랜듀서(1225)(예를 들어, 스피커)를 포함한다. 몇몇 실시예에서, 이동 컴퓨팅 장치(1200)는 촉각 피드백을 사용자에게 제공하는 진동 트랜듀서를 포함한다. 또 다른 실시예에서, 이동 컴퓨팅 장치(1200)는 외부 장치로 신호를 전송하거나 그로부터 신호를 수신하기 위한 오디오 입력(예컨대, 마이크로폰 잭), 오디오 출력(예컨대, 헤드폰 잭) 및 비디오 출력(예컨대, HDMI 포트)과 같은 입력 및/또는 출력 포트를 포함할 수 있다.
도 12b는 이동 컴퓨팅 장치의 일 실시예의 아키텍처를 나타내는 블록도이다. 즉, 이동 컴퓨팅 장치(1200)는 일부 실시예를 구현하기 위한 시스템(즉, 아키텍처)(1202)를 포함할 수 있다. 일 실시예에서, 시스템(1202)은 하나 이상의 애플리케이션(예를 들어, 브라우저, 이메일, 캘린더링, 연락처 관리자, 메시징 클라이언트, 게임 및 미디어 클라이언트/플레이어)을 실행할 수 있는 "스마트폰"으로서 구현될 수 있다. 일부 실시예에서, 시스템(1202)은 통합된 개인 보조 단말기(PDA) 및 무선 전화와 같은 컴퓨팅 장치로서 포함된다.
하나 이상의 애플리케이션 프로그램은 메모리(1262)에 로딩될 수 있고 운영 체제(1264)와 연계하여 실행될 수 있다. 애플리케이션 프로그램의 예는 전화 다이얼 애플리케이션, 이메일 애플리케이션, 개인 정보 관리(PIM) 애플리케이션, 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션, 인터넷 브라우저 애플리케이션, 노트 애플리케이션, 메시징 애플리케이션 등을 포함한다. 시스템(1202)은 또한 메모리(1262) 내에 비휘발성 저장 영역(1268)을 포함한다. 이 비휘발성 저장 영역(1268)은 시스템(1202)이 꺼지더라도 손실되어서는 안되는 영구적인 정보를 저장하는데 사용될 수 있다. 애플리케이션 프로그램(1266)은 이메일 애플리케이션에 의해 사용되는 이메일 또는 다른 메시지 등과 같은 비휘발성 저장 영역(1268) 내의 정보를 사용하고 저장할 수 있다. 동기화 애플리케이션(미도시)이 또한 시스템(1202)에 상주하고, 또한 비휘발성 저장 영역(1268)에 저장된 정보가 호스트 컴퓨터에 저장된 대응하는 정보에 동기화된 채로 유지되도록 호스트 컴퓨터 상에 상주하는 대응하는 동기화 애플리케이션과 상호작용하도록 프로그램된다. 다른 애플리케이션이 메모리(1262)에 로딩될 수 있고 본 명세서에서 설명한 스크린샷 분리 모듈(1125)을 포함하는 이동 컴퓨팅 장치(1200)에서 실행될 수 있음을 알 수 있을 것이다.
시스템(1202)은 하나 이상의 배터리로서 구현될 수 있는 전원(1270)을 구비한다. 이 전원(1270)은 배터리를 보완하거나 이를 재충전하는 AC 어댑터 또는 전원 공급되는 도킹 크래들과 같은 외부 전원을 더 포함할 수 있다.
시스템(1202)은 또한 무선 주파수 통신을 송신 및 수신하는 기능을 수행하는 무선부(1272)를 포함할 수 있다. 무선부(1272)는 통신 매개체 또는 서비스 제공자를 통해 시스템(1202)과 "외부 세상" 간의 무선 연결을 용이하게 한다. 무선부(1272)로 또한 그로부터의 송신은 운영 체제(1264)의 제어 하에서 행해진다. 즉, 무선부(1272)에 의해 수신된 통신은 운영 체제(1264)를 통해 애플리케이션 프로그램(1266)으로, 또한 그 반대로도 전파될 수 있다.
시각적 표시자(1220)는 시각적 알림을 제공하는데 사용될 수 있고 및/또는 오디오 인터페이스(1274)는 오디오 트랜듀서(1225)를 통해 청각적 알림을 생성하는데 사용될 수 있다. 예시되어 있는 실시예에서, 시각적 표시자(1220)는 발광 다이오드(LED)이고 오디오 트랜듀서(1225)는 스피커이다. 이들 장치는 전원(1270)에 직접 연결될 수 있어, 이들 장치는 활성화된 경우 배터리 전력을 보존하기 위해 프로세서(1260) 및 다른 컴포넌트들이 셧다운될 수 있더라도 알림 메카니즘에 의해 지정된 기간 동안 유지된다. LED는 사용자가 장치의 파원 온 상태를 나타내는 동작을 취할 때까지 무한정으로 유지되도록 프로그램될 수 있다. 오디오 인터페이스(1274)는 사용자에게 청각 신호를 제공하고 또한 사용자로부터 청각 신호를 수신하는데 사용된다. 예를 들어, 오디오 트랜듀서(1225)에 결합되는 것 외에, 오디오 인터페이스(1274)는 예컨대 전화 대화를 용이하게 하도록 청각 입력을 수신하기 위해 마이크로폰에 연결될 수 있다. 본 발명의 실시예에 따르면, 이하에서 설명되는 바와 같이 마이크로폰은 또한 알림의 제어를 용이하게 하기 위해 오디오 센서로서 동작할 수 있다. 시스템(1202)은 정지 영상, 비디오 스트림 등을 기록하기 위해 온보드 카메라(1230)의 동작을 가능하게 하는 비디오 인터페이스(1276)를 더 포함할 수 있다.
시스템(1202)을 구현하는 이동 컴퓨팅 장치(1200)는 추가적인 특징 또는 기능을 가질 수 있다. 예를 들어, 이동 컴퓨팅 장치(1200)는 또한 자기 디스크, 광학 디스크 또는 테이프와 같은 (이동식 및/또는 고정식의) 추가의 데이터 저장 장치를 포함할 수 있다. 이러한 추가의 저장소는 도 12b에서 비휘발성 저장 영역(1268)으로 도시되어 있다.
이동 컴퓨팅 장치(1200)에 의해 생성 또는 캡처되고 또한 시스템(1202)을 통해 저장된 데이터/정보는 전술한 바와 같이 이동 컴퓨팅 장치(1200)에 로컬로 저장될 수 있고, 또는 데이터는 인터넷과 같은 분산형 컴퓨팅 네트워크에서 무선부(1272)를 통해 또는 이동 컴퓨팅 장치(1200)와 이 이동 컴퓨팅 장치(1200)에 연관된 별개의 컴퓨팅 장치, 예를 들어 서버 컴퓨터 간의 유선 연결을 통해 액세스될 수 있는 임의의 수의 저장 매체에 저장될 수 있다. 이러한 데이터/정보는 무선부(1272)를 통해 또는 분산형 컴퓨팅 네트워크를 통해 이동 컴퓨팅 장치(1200)에 의해 액세스될 수 있음을 이해할 수 있을 것이다. 유사하게, 이러한 데이터/정보는 전자 메일 및 협업 데이터/정보 공유 시스템을 비롯한 잘 알려진 데이터/정보 전송 및 저장 수단에 따라 저장 및 사용을 위해 컴퓨팅 장치들 간에 쉽게 전달될 수 있다.
도 13은 전술한 바와 같이 장치 드라이버 업데이트를 관리하는 시스템의 아키텍처의 일 실시예를 나타낸다. 장치 모듈(106)에 의해 관리되는 드라이버는 상이한 통신 채널 또는 다른 저장 유형에 저장될 수 있다. 예를 들어, 다양한 문서가 디렉토리 서비스(1322), 웹 포털(1324), 메일박스 서비스(1326), 인스턴트 메시징 스토어(1328), 또는 소셜 네트워킹 사이트(1330)를 사용하여 저장될 수 있다. 본 명세서에 기술된 바와 같이, 장치 모듈(106)은 데이터 활용을 가능하게 하는 이들 유형의 시스템 중 임의의 유형의 시스템 등을 사용할 수 있다. 서버(1320)는 장치 모듈(106)을 클라이언트에게 제공할 수 있다. 일례로서, 서버(1320)는 웹 상에서 장치 모듈(106)을 제공하는 웹 서버일 수 있다. 서버(1320)는 네트워크(1308)를 통해 웹 상의 장치 모듈(106)을 클라이언트에게 제공할 수 있다. 예를 들어, 클라이언트 컴퓨팅 장치는 컴퓨팅 장치(102)로서 구현될 수 있고 개인용 컴퓨터, 태블릿 컴퓨팅 장치(1310) 및/또는 모바일 컴퓨팅 장치(1200)(예컨대, 스마트폰)에서 실시될 수 있다. 이들 실시예 중 임의의 실시예의 클라이언트 컴퓨팅 장치(102, 1310, 1200)는 저장부(1316)로부터 콘텐츠를 획득할 수 있다.
본 발명의 실시예는 예를 들어 본 발명의 실시예에 따른 방법, 시스템 및 컴퓨터 프로그램 제품의 블록도 및/또는 동작 예시를 참조하여 설명되었다. 블록에서의 기능/동작은 임의의 흐름도에 도시된 순서를 벗어나 실행될 수 있다. 예를 들어, 연속적으로 도시되어 있는 두 개의 블록은 사실 실질적으로 동시에 실행될 수 있거나 또는 블록들은 때때로 관련된 기능/동작에 따라 역순으로 실행될 수도 있다.
본 출원에 제공된 하나 이상의 실시예의 설명 및 예시는 청구된 본 발명의 범주를 어떤 식으로든 제한 또는 한정하려는 의도는 없다. 본 출원에서 제공된 실시예, 예시 및 세부사항은 소유권을 전달하고 청구된 발명의 최적의 모드를 구성 및 사용할 수 있도록 하는데 충분한 것으로 간주된다. 청구된 발명은 본 출원에 제공된 임의의 실시예, 예시, 또는 세부사항에 국한되는 것으로 해석되어서는 안 된다. 함께 또는 개별적으로 도시되고 설명된 것과는 무관하게, (구조적 및 방법론적의) 다양한 특징들은 특정 특징 집합을 갖는 실시예를 구현하기 위해 선택적으로 포함되거나 생략될 수 있다. 본 발명의 설명 및 예시가 제공되었으며, 당업자라면 청구된 발명의 포괄적 범위를 벗어나지 않는 본 출원에서 구현된 일반적인 발명의 개념의 포괄적 측면의 사상 내에 속하는 변형예 및 대안적 실시예를 고안할 수 있다.

Claims (10)

  1. 업데이트 의존관계를 관리하는 컴퓨터 구현 방법으로서,
    컴퓨팅 장치에서, 업데이트 서비스로부터 업데이트 세트를 수신하는 단계 -상기 수신하는 단계는 상기 업데이트 세트 내의 제1 업데이트가 상기 업데이트 세트 내의 제2 업데이트에 대한 의존관계를 포함함을 나타내는 표시를 수신하는 단계를 포함함- 와,
    상기 제1 및 제2 업데이트를 상기 업데이트 세트로부터 분리시키는 단계와,
    상기 제1 및 제2 업데이트를 설치하는 단계와,
    상기 제1 및 제2 업데이트에 대해 활성화 조건을 적용하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 업데이트 세트를 수신하는 단계는 상기 컴퓨팅 장치로부터 업데이트 서비스로 송신된 질의(query)에 응답하며, 상기 질의는 컴퓨팅 장치 하드웨어 정보 및 컴퓨팅 장치 상태 정보 중 적어도 하나를 더 포함하는
    컴퓨터 구현 방법.

  3. 제1항에 있어서,
    상기 업데이트 세트를 수신하는 단계는
    펌웨어 업데이트 세트 및 장치 드라이버 업데이트 세트 중 적어도 하나를 수신하는 단계를 더 포함하되, 상기 업데이트 세트가 장치 드라이버 업데이트 세트이면, 상기 컴퓨팅 장치에 연결가능한 비존재(non-present) 장치 또는 상기 컴퓨팅 장치에 이전에 연결되지 않은 타겟 장치에 대한 적어도 하나의 업데이트를 수신하는 단계와, 상기 적어도 하나의 업데이트가 상기 업데이트 세트 내의 적어도 하나의 추가적인 업데이트에 대한 의존관계를 포함함을 나타내는 표시를 수신하는 단계를 포함하는
    컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 활성화 조건을 적용하는 단계는
    상기 제1 및 제2 업데이트에 활성화 대기 기간을 적용하는 단계와,
    상기 제1 및 제2 업데이트를 상기 컴퓨팅 장치의 재시동 시에 활성화하도록 구성하는 단계
    를 포함하는 컴퓨터 구현 방법.
  5. 의존관계를 관리하는 컴퓨터 구현 방법으로서,
    컴퓨팅 장치로부터 업데이트 세트에 대한 요청을 수신하는 단계 -상기 수신하는 단계는 컴퓨팅 장치 하드웨어 및 상태 정보를 수신하는 단계를 포함함- 와,
    복수의 업데이트를 포함하는 업데이트 세트를 구축하는 단계 -상기 복수의 업데이트의 적어도 제1 업데이트는 의존관계 표시를 포함하고, 상기 제1 업데이트에 적용된 상기 의존관계 표시는 상기 제1 업데이트가 제2 업데이트에 의존함을 나타내는 표시를 포함함- 와,
    상기 업데이트 세트를 상기 컴퓨팅 장치에 제공하는 단계 -상기 제공하는 단계는 상기 제1 업데이트, 상기 제2 업데이트, 및 상기 업데이트 세트 내의 상기 복수의 업데이트 각각에 대한 의존관계 표시를 제공하는 단계-
    를 포함하는 컴퓨터 구현 방법.
  6. 제5항에 있어서,
    상기 업데이트 세트를 구축하는 단계는
    상기 수신된 컴퓨팅 장치 하드웨어 및 상태 정보를 저장된 업데이트 세트 정보와 비교하는 단계와,
    상기 비교에 기초하여 상기 업데이트 세트를 구축하는 단계
    를 더 포함하는 컴퓨터 구현 방법.
  7. 제5항에 있어서,
    업데이트 퍼블리셔(publisher)로부터 의존관계 정보를 수신하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  8. 제7항에 있어서,
    상기 수신된 의존관계 표시를 상기 업데이트 세트 내의 업데이트에 적용하기 위해 하나 이상의 의존관계 규칙을 평가함으로써 의존관계 판정을 수행하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  9. 제8항에 있어서,
    상기 적어도 하나의 업데이트가 의존관계를 포함하지 않음을 나타내는 의존관계 표시를 적어도 하나의 업데이트에 적용하는 단계를 더 포함하는
    컴퓨터 구현 방법.

  10. 제5항에 있어서,
    원격 측정 보고(telemetry reporting)를 통해 의존관계를 포함하는 상기 업데이트 세트 내의 적어도 하나의 업데이트에 대한 설치 상태 정보를 수신하는 단계를 더 포함하는
    컴퓨터 구현 방법.
KR1020157034188A 2013-05-31 2013-09-21 업데이트에 대한 기지의 의존관계를 관리하는 기법 KR20160014629A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/907,570 2013-05-31
US13/907,570 US20140359593A1 (en) 2013-05-31 2013-05-31 Maintaining known dependencies for updates
PCT/US2013/061074 WO2014193459A1 (en) 2013-05-31 2013-09-21 Maintaining known dependencies for updates

Publications (1)

Publication Number Publication Date
KR20160014629A true KR20160014629A (ko) 2016-02-11

Family

ID=49304366

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157034188A KR20160014629A (ko) 2013-05-31 2013-09-21 업데이트에 대한 기지의 의존관계를 관리하는 기법

Country Status (5)

Country Link
US (1) US20140359593A1 (ko)
EP (1) EP3005098A1 (ko)
KR (1) KR20160014629A (ko)
CN (1) CN105453037A (ko)
WO (1) WO2014193459A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2505644A (en) * 2012-09-05 2014-03-12 Ibm Managing network configurations
JP5975964B2 (ja) * 2013-10-18 2016-08-23 富士通株式会社 情報処理プログラム、情報処理方法、情報処理装置、及び情報処理システム
US9614724B2 (en) 2014-04-21 2017-04-04 Microsoft Technology Licensing, Llc Session-based device configuration
US9606788B2 (en) * 2014-04-30 2017-03-28 Microsoft Technology Licensing, Llc Dynamic update installer for customized software
US9384335B2 (en) 2014-05-12 2016-07-05 Microsoft Technology Licensing, Llc Content delivery prioritization in managed wireless distribution networks
US10111099B2 (en) 2014-05-12 2018-10-23 Microsoft Technology Licensing, Llc Distributing content in managed wireless distribution networks
US9384334B2 (en) 2014-05-12 2016-07-05 Microsoft Technology Licensing, Llc Content discovery in managed wireless distribution networks
US9430667B2 (en) 2014-05-12 2016-08-30 Microsoft Technology Licensing, Llc Managed wireless distribution network
US9874914B2 (en) 2014-05-19 2018-01-23 Microsoft Technology Licensing, Llc Power management contracts for accessory devices
US10037202B2 (en) 2014-06-03 2018-07-31 Microsoft Technology Licensing, Llc Techniques to isolating a portion of an online computing service
US9426028B2 (en) * 2014-06-10 2016-08-23 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Configuring a computing system to delay a system update
US9367490B2 (en) 2014-06-13 2016-06-14 Microsoft Technology Licensing, Llc Reversible connector for accessory devices
US9717006B2 (en) 2014-06-23 2017-07-25 Microsoft Technology Licensing, Llc Device quarantine in a wireless network
US9772836B2 (en) * 2014-12-18 2017-09-26 Sap Se Delivery of correction packages
US10430173B2 (en) * 2015-10-19 2019-10-01 Harman International Industries, Incorporated Techniques for updating components of a computer device while enabling components for availability
DE102015014049A1 (de) * 2015-10-30 2017-05-04 Audi Ag Steuergeräte-Update im Kraftfahrzeug
WO2018119662A1 (zh) 2016-12-27 2018-07-05 华为技术有限公司 内核更新方法和装置、计算机设备
EP3688581A4 (en) 2017-09-27 2021-05-12 INTEL Corporation FIRMWARE COMPONENT WITH SELF-DESCRIPTIVE DEPENDENCY INFORMATION
US10705852B2 (en) 2018-02-14 2020-07-07 Dell Products L.P. System and method of providing updates
CN109714413B (zh) * 2018-12-26 2021-07-27 郑州云海信息技术有限公司 基于驱动类型的网站文件变动推送信息的方法及装置
US11397570B2 (en) * 2019-01-10 2022-07-26 Hewlett Packard Enterprise Development Lp Abort installation of firmware bundles
US20220334820A1 (en) * 2021-04-20 2022-10-20 Dell Products, L.P. System and method for intermediate software upgrades for information handling systems
US11349959B1 (en) * 2021-09-20 2022-05-31 EMC IP Holding Company LLC Delayed node upgrade in distributed systems

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030188146A1 (en) * 2002-03-28 2003-10-02 Hale Robert P. Method of ordered execution of firmware modules in a pre-memory execution environment
US9009694B2 (en) * 2002-05-22 2015-04-14 Oracle America, Inc. Pre-verification and sequencing of patches
US7987449B1 (en) * 2003-05-22 2011-07-26 Hewlett-Packard Development Company, L.P. Network for lifecycle management of firmware and software in electronic devices
US7568195B2 (en) * 2003-12-16 2009-07-28 Microsoft Corporation Determining a maximal set of dependent software updates valid for installation
US20060271924A1 (en) * 2005-05-27 2006-11-30 International Business Machines Corporation Method and apparatus for automating updates to dependencies
JP4732864B2 (ja) * 2005-11-15 2011-07-27 株式会社リコー プログラム配布サーバ、プログラム配布方法、及び、プログラム配布プログラムとその記録媒体
KR101370349B1 (ko) * 2008-10-24 2014-03-05 삼성전자 주식회사 화상형성장치 및 클라이언트와 연결된 서버, 이를 포함하는화상형성시스템, 및 화상형성장치의 드라이버 원격설치방법
JP5168112B2 (ja) * 2008-12-02 2013-03-21 富士通株式会社 パッチ適用装置、パッチ適用方法およびパッチ適用プログラム
JP5293344B2 (ja) * 2009-03-30 2013-09-18 株式会社リコー 画像処理装置、ソフトウェア配信システム、インストール処理方法およびプログラム
US20110138374A1 (en) * 2009-12-09 2011-06-09 Suprio Pal Downtime reduction for enterprise manager patching
US8732689B2 (en) * 2010-02-24 2014-05-20 Schneider Electric USA, Inc. Apparatus and method for upgrading lighting controllers
US20120017208A1 (en) * 2010-07-14 2012-01-19 Mark Lussier System and method for updating device drivers
JP5790222B2 (ja) * 2011-07-12 2015-10-07 株式会社リコー 通信装置、アップデート方法およびアップデートプログラム
US20130111458A1 (en) * 2011-11-02 2013-05-02 Research In Motion Limited Method and system for on-demand patch generation and management

Also Published As

Publication number Publication date
EP3005098A1 (en) 2016-04-13
WO2014193459A1 (en) 2014-12-04
CN105453037A (zh) 2016-03-30
US20140359593A1 (en) 2014-12-04

Similar Documents

Publication Publication Date Title
KR20160014629A (ko) 업데이트에 대한 기지의 의존관계를 관리하는 기법
US8949815B2 (en) Driver installation for targeted and non-present devices
CN113110941B (zh) 使用应用容器管理代码和依赖性数据的传递
US10496235B2 (en) Power efficient application notification system
US9235404B2 (en) Firmware update system
US20170366586A1 (en) Preserving long running sessions during side-by-side upgrade
US11321080B2 (en) Patch package generation method and device
US11288059B2 (en) Leveraging previously installed application elements to install an application
WO2018090871A1 (zh) 应用业务提示方法及应用业务提示装置
US11416232B2 (en) Accelerating application and sub-package installations
US20150324188A1 (en) Aggregation of Update Sets
US20210042148A1 (en) Dynamic insertion of variablized secrets in a pipeline integration system
US10394768B2 (en) Selective data migration on schema breaking changes
CN106933449B (zh) 图标处理方法和装置
US11496453B2 (en) Binary experimentation on running web servers
US20180150556A1 (en) Auto-Generation Of Key-Value Clusters To Classify Implicit APP Queries and Increase Coverage for Existing Classified Queries
US20230385164A1 (en) Systems and Methods for Disaster Recovery for Edge Devices
US20170288960A1 (en) Cloud Action Center
US20230393861A1 (en) Using interchangeable non-compute resources for cloud-based applications
US20220350641A1 (en) Securely cascading pipelines to various platforms based on targeting input
WO2023235041A1 (en) Systems and methods for disaster recovery for edge devices
CN116594630A (zh) 文件生成方法、装置、介质及电子设备

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination