KR20130008480A - 온라인 스토어 상의 사용자 계정에 미리 설치된 소프트웨어를 링크하기 위한 시스템 및 방법 - Google Patents

온라인 스토어 상의 사용자 계정에 미리 설치된 소프트웨어를 링크하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20130008480A
KR20130008480A KR1020120075797A KR20120075797A KR20130008480A KR 20130008480 A KR20130008480 A KR 20130008480A KR 1020120075797 A KR1020120075797 A KR 1020120075797A KR 20120075797 A KR20120075797 A KR 20120075797A KR 20130008480 A KR20130008480 A KR 20130008480A
Authority
KR
South Korea
Prior art keywords
application
user account
server
applications
user
Prior art date
Application number
KR1020120075797A
Other languages
English (en)
Other versions
KR101439604B1 (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
Priority claimed from US13/181,424 external-priority patent/US9319406B2/en
Priority claimed from US13/436,609 external-priority patent/US20130019237A1/en
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20130008480A publication Critical patent/KR20130008480A/ko
Application granted granted Critical
Publication of KR101439604B1 publication Critical patent/KR101439604B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0609Buyer or seller confidence or verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6272Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database by registering files or documents with a third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3672Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes initialising or reloading thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/40Business processes related to the transportation industry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2117User registration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Finance (AREA)
  • Marketing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Tourism & Hospitality (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Human Resources & Organizations (AREA)
  • Primary Health Care (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Technology Law (AREA)
  • Multimedia (AREA)
  • Power Engineering (AREA)
  • Development Economics (AREA)
  • Computational Linguistics (AREA)
  • Bioethics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

컴퓨터 상의 설치를 위한 애플리케이션을 온라인 스토어 상의 사용자 계정과 연관시키기 위한 시스템들, 방법들, 및 비-일시적 컴퓨터 판독 가능한 저장 매체가 본원에 개시된다. 방법을 실시하도록 구성되는 시스템은 다운로드를 위해 이용가능한 애플리케이션을 제공하고, 사용자 계정과 연관된 식별자 및 소프트웨어 패키지 또는 사용자 계장과 연관된 자격의 증명을 포함하는 소프트웨어 채택 요청을 클라이언트 디바이스로부터 수신하고, 자격의 증명을 데이터베이스와 비교함으로써 자격의 증명을 검증하고, 자격의 증명이 검증되면, 소프트웨어 패키지를 사용자 계정의 부분으로서 채택한다.

Description

온라인 스토어 상의 사용자 계정에 미리 설치된 소프트웨어를 링크하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE}
관련 출원들에 대한 교차 참조
이 출원은 2011년 7월 12일자로 출원되고 명칭이 "SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE"인 미국 특허 출원 번호 제13/181,424호의 일부 계속 출원이고; 이 출원은 또한 2011년 9월 29일자로 출원되고 명칭이 "SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE"인 미국 특허 출원 번호 제13/248,942호의 일부 계속 출원이고; 및 이 출원은 또한 2012년 2월 9일자로 출원되고 명칭이 "SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE"인 미국 임시 특허 출원 번호 제61/596,928호의 우선권을 주장하고, 이들 전부는 본원에서 그대로 참고로 포함된다.
기술분야
본 개시는 일반적으로 디지털 제품들의 분배(distribution)에 관한 것이고, 더욱 구체적으로 온라인 스토어 상의 사용자 계정에 소프트웨어 애플리케이션들을 링크하기 위한 기법들에 관한 것이다.
전자 디바이스들의 제조자들은 보통 구매 전에 전자 디바이스를 퍼스널라이즈(personalize)하고 커스터마이즈(customize)하기 위한 다양한 이용가능한 옵션들을 고객들에게 제공한다. 예를 들어, 컴퓨터와 같은 퍼스널 컴퓨팅 디바이스는 프로세서, 메모리, 하드 드라이브, 또는 액세서리들을 선택함으로써 커스터마이즈될 수 있다. 제조자들은 또한 고객이 컴퓨터를 인도받기 전에 컴퓨터와 함께 구매되고 미리 설치될 수 있는 소프트웨어 애플리케이션들 또는 프로그램들을 제공하기 위해 다양한 소프트웨어 벤더들과 협력한다. 통상적으로 제조자에 의해 생성되지만 또한 제3자 애플리케이션들을 포함할 수 있는 일부 소프트웨어 애플리케이션들은 예를 들어, 수동으로 또는 디폴트 팩토리 이미지(default factory image)의 부분으로서 무료로 컴퓨팅 디바이스 상에 미리 설치될 수 있다. 따라서, 하드웨어 컴포넌트들 및 미리 설치된 소프트웨어는 구매된 제품이 고객의 필요에 충족하도록 보장하기 위해 고객에 의해 퍼스널라이즈될 수 있다.
고객이 전자 디바이스를 받은 후에, 고객은 때때로 미래에 미리 설치된 소프트웨어를 재설치하거나 업데이트하기를 희망할 수 있다. 예를 들어, 소프트웨어 제공자는 전자 디바이스 상에 미리 설치된 소프트웨어의 업데이트된 버전을 공개하였을 수 있다. 이것은 보통 소프트웨어 업데이트로서 알려져 있다. 소프트웨어 업데이트를 획득하기 위해서, 고객은 소프트웨어 제공자의 물리적 또는 온라인 스토어를 방문하고 소프트웨어의 업데이트된 버전을 구매하거나 취득한다. 그러나, 이 프로세스는 시간 소모적이고 때때로 혼란스럽다. 유사하게, 구매자가 전자 디바이스의 저장소를 재포맷할 때, 구매자는 통상적으로 소프트웨어를 재설치해야 한다. 재설치 중에, 구매자는 미리 설치된 소프트웨어를 포함하는 다양한 콤팩트 디스크들(CDs) 또는 다른 미디어에 대해 프롬프트(prompt)될 수 있다. 그러나, 구매자는 CD들을 제자리에 두지 않았을 수 있어, 재설치 절차를 매우 번잡스럽게 만들 수 있다.
개시의 부가적인 특징들 및 이점들은 다음에 오는 설명에 제시될 것이고, 부분적으로 그 설명으로부터 명백할 것이거나, 또는 본원에 개시된 원리들의 실시에 의해 학습될 수 있다. 개시의 특징들 및 이점들은 첨부된 청구항들에 구체적으로 지적된 수단들 및 결합들에 의해 실현되고 획득될 수 있다. 개시의 이들 및 다른 특징들은 다음의 설명 및 첨부된 청구항들로부터 더욱 완전하게 명백해질 것이거나, 또는 본원에 개시된 원리들의 실시에 의해 학습될 수 있다.
애플리케이션(즉, 소프트웨어 패키지), 미리 설치된 애플리케이션 또는 별개로 구매된 애플리케이션을 사용자 계정과 연관시키기 위한 시스템들, 방법들, 및 비-일시적 컴퓨터 판독 가능한 저장 매체가 개시된다. 사용자 계정은 온라인 스토어 상에서 연관되거나 저장될 수 있다. 이 프로세스를 채택(adoption)이라고 부를 수 있다. 채택은 사용자 계정에 애플리케이션들의 다운로드, 재-다운로드, 및 업데이트와 같은 특정 특권들을 제공할 수 있다. 다른 예들에서, 채택은 채택된 애플리케이션들을 선물하는 것 또는 채택된 애플리케이션들을 판매하는 것과 같은 채택된 애플리케이션에 대한 다른 특권들을 허용하도록 사용자 계정을 구성할 수 있다. 하나의 흔한 시나리오에서, 새로운 컴퓨터는 특정 미리 설치된 소프트웨어를 포함한다. 사용자는 새로운 컴퓨터 상에서 미리 설치된 소프트웨어를 구동하고 이용할 수 있다. 그러나, 업데이트들, 백업들, 및/또는 다른 소프트웨어 관련 콘텐츠 또는 서비스들을 수신 및/또는 그에 대한 자격이 있도록 하기 위해서, 사용자는 미리 설치된 소프트웨어를 '채택'할 수 있다. 미리 설치된 소프트웨어를 채택함으로써, 미리 설치된 소프트웨어는 온라인 전자 스토어 계정과 같은 특정 사용자 계정과 연관된다. 그 다음, 온라인 전자 스토어는 업데이트들, 백업들, 리스토어들(restores), 인-애플리케이션 구매들(in-application purchases), 등을 핸들링할 수 있다. 그러나, 사용자는 사용자 계정 또는 온라인 전자 스토어 계정에의 액세스에 의존하는 특징들을 제외한 전체 기능을 갖는 미리 설치된 소프트웨어를 '채택'하지 않고 미리 설치된 소프트웨어를 이용하기로 선택할 수 있다. 사용자가 미리 설치된 소프트웨어를 채택할 때, 온라인 전자 스토어는 미리 설치된 소프트웨어가 다른 사용자에 의한 채택에 부적격(ineligible)이도록 계정, 데이터베이스, 및/또는 소프트웨어 자체를 수정할 수 있다. 다른 흔한 시나리오에서, 사용자가 구매하였거나, 선물 받았거나, 달리 취득한 소프트웨어 패키지 또는 애플리케이션이 사용자의 컴퓨팅 디바이스 상에 설치된다. 컴퓨팅 디바이스는 사용자 계정을 갖는 소프트웨어 패키지 또는 애플리케이션의 채택을 위한 소프트웨어 채택 요청을 서버에 전송할 수 있다. 소프트웨어 채택 요청은 소프트웨어 패키지의 표시 및 사용자 계정과 연관된 식별자를 포함할 수 있다. 일부 예들에서, 자격의 증명(proof of entitlement)이 또한 소프트웨어 패키지의 진위에 대한 증명으로서 채택 요청에 포함된다. 자격의 증명은 오직 소프트웨어 패키지의 소유로부터 도출가능한 값일 수 있다. 예를 들어, 자격의 증명은 소프트웨어 패키지의 일련 번호와 연관되거나 그로부터 도출될 수 있다. 자격의 증명은 또한 전자 디바이스와 연관된 메타데이터 및 소프트웨어 패키지로부터 도출가능한 값일 수 있다. 예를 들어, 전자 디바이스와 연관된 메타데이터는 전자 디바이스와 연관된 하드웨어로부터 도출가능한 값일 수 있다. 업데이트들, 백업들, 및/또는 다른 소프트웨어 관련 콘텐츠 또는 서비스들은 일단 애플리케이션이 채택되면 사용자에게 이용가능할 수 있다.
방법을 실시하도록 구성되는 시스템은 다운로드를 위해 이용가능한 애플리케이션을 제공하고, 컴퓨팅 디바이스에 애플리케이션을 다운로드하기 위한 요청을 수신하고, 애플리케이션이 미리 설치된 애플리케이션임을 결정한다. 그 다음에 시스템은 사용자 계정과 애플리케이션을 링크하기 위해 사용자 인증을 요청하도록 구성되는 인증 프롬프트를 제공하고, 사용자 인증을 수신하고, 사용자 인증의 수신에 응답하여, 고유 하드웨어 식별자를 생성하거나 컴퓨팅 디바이스와 연관된 자격의 증명을 검색한다. 시스템은 고유 하드웨어 식별자 또는 자격의 증명에 기초하여 애플리케이션이 링크 가능함을 결정하고, 채택 가능한 애플리케이션이 링크 가능할 때 사용자 계정과 채택 가능한 애플리케이션을 링크한다. 시스템은 업데이트 페이지에 대한 요청을 수신하고, 요청의 수신에 응답하여, 애플리케이션과 연관된 스터브 영수증(stub receipt)을 수집함으로써 다운로드를 위해 이용가능한 애플리케이션을 제공할 수 있다. 스터브 영수증은 애플리케이션과 연관된 버전 넘버 및 이름을 포함할 수 있다. 그 다음 시스템은 버전 넘버 및 이름에 기초하여, 애플리케이션의 업데이트가 다운로드를 위해 서버 상에서 이용가능함을 결정하고, 애플리케이션의 이름을 제공한다.
대안적으로, 시스템은 구매 페이지에 대한 요청을 수신하고, 컴퓨팅 디바이스와 연관된 적하목록(manifest)을 수신하고, 적하목록에 기초하여 미리 설치된 애플리케이션의 목록을 제공함으로써 다운로드를 위해 이용가능한 애플리케이션을 제공할 수 있다. 적하목록은 미리 설치된 애플리케이션의 목록이 애플리케이션을 포함하는 경우 서버로부터 다운로드를 위해 이용가능한 미리 설치된 애플리케이션들의 목록을 포함할 수 있다. 시스템은 애플리케이션 데이터베이스를 검색하고 애플리케이션 데이터베이스에 저장된 애플리케이션의 버전 넘버와 컴퓨팅 디바이스에 저장된 애플리케이션의 버전 넘버를 비교함으로써, 애플리케이션이 서버 상에서 이용가능한 업데이트를 가짐을 결정할 수 있다. 버전 넘버들의 비교에 기초하여, 애플리케이션에 대한 업데이트가 애플리케이션 데이터베이스에 존재하는지에 관한 결정이 행해질 수 있다. 시스템은 애플리케이션이 스터브 영수증과 연관됨을 결정함으로써 애플리케이션이 미리 설치된 애플리케이션임을 결정할 수 있다. 시스템은 컴퓨팅 디바이스와 연관된 적하목록을 수신하고 - 적하목록은 미리 설치된 애플리케이션들의 목록을 포함함 -, 애플리케이션이 미리 설치된 애플리케이션의 목록 내에 포함됨을 결정함으로써 애플리케이션이 미리 설치된 애플리케이션임을 결정할 수 있다. 시스템은 고유 하드웨어 식별자 또는 구매의 증명(proof of purchase)을 서버에 전송하고, 미리 설치된 애플리케이션이 다른 사용자 계정과 링크되었는지를 결정함으로써 미리 설치된 애플리케이션이 링크 가능함을 결정할 수 있다. 또 다른 예들에서, 시스템은 미리 설치된 애플리케이션을 사용자 계정과 연관시키고, 고유 하드웨어 식별자 또는 구매의 증명을 포함하도록 고유성 테이블(uniqueness table)을 업데이트함으로써 미리 설치된 애플리케이션을 사용자 계정과 링크한다. 고유성 테이블은 다른 미리 설치된 애플리케이션을 갖는 다른 전자 디바이스와 연관되는 다른 고유 하드웨어 식별자 또는 구매의 증명을 포함할 수 있고, 다른 미리 설치된 애플리케이션은 다른 사용자 계정과 링크될 수 있다.
다른 변형에서, 시스템은 온라인 스토어 상에서 사용자 계정과 미리 설치된 애플리케이션을 링크하기 위한 요청을 수신하고, 온라인 스토어는 사용자 계정과 연관된 하나 이상의 컴퓨팅 디바이스들에 사용자 계정과 연관된 애플리케이션을 전송하도록 구성된다. 다음으로 시스템은 컴퓨팅 디바이스와 연관된 고유 하드웨어 식별자 또는 구매의 증명을 생성하고, 고유 하드웨어 식별자 또는 구매의 증명에 기초하여 미리 설치된 애플리케이션이 링크 가능함을 결정한다. 시스템은 미리 설치된 애플리케이션이 링크 가능할 때 사용자 계정과 미리 설치된 애플리케이션을 링크한다. 고유 하드웨어 식별자는 MAC 어드레스, 유니버셜 디바이스 식별자(universal device identifier; UDID), 로직 보드 일련 번호(logic board serial number), 또는 이더넷 하드웨어 어드레스와 같은, 전자 디바이스의 하나 이상의 하드웨어 컴포넌트들에 기초할 수 있다. 다른 예들에서, 구매의 증명이 이용될 수 있다. 구매의 증명은 전자 디바이스의 하드웨어 컴포넌트들, 애플리케이션의 선물, 구매, 또는 취득과 연관된 메타데이터에 기초할 수 있다. 미리 설치된 애플리케이션이 링크 가능함을 결정하는 것은, 고유 하드웨어 식별자 또는 구매의 증명을 서버에 전송하는 것, 미리 설치된 애플리케이션 또는 구매의 증명이 다른 사용자 계정과 링크되었는지를 결정하는 것을 포함할 수 있다. 시스템은 컴퓨팅 디바이스의 원래 구성이 미리 설치된 애플리케이션을 포함함을 결정함으로써 미리 설치된 애플리케이션이 링크 가능함을 결정할 수 있다. 미리 설치된 애플리케이션을 사용자 계정과 링크하는 것은, 미리 설치된 애플리케이션을 사용자 계정과 연관시키는 것, 고유 하드웨어 식별자 또는 구매의 증명을 포함하도록 고유성 테이블을 업데이트하는 것을 포함할 수 있고, 고유성 테이블은 다른 미리 설치된 애플리케이션을 갖는 다른 전자 디바이스와 연관되는 다른 고유 하드웨어 식별자 또는 구매의 증명을 포함하고, 다른 미리 설치된 애플리케이션은 다른 사용자 계정과 링크되었다. 또 다른 예에서, 미리 설치된 애플리케이션을 사용자 계정과 링크하는 것은, 적하목록으로부터 미리 설치된 애플리케이션과 연관된 메타데이터를 제거하는 것을 더 포함하고, 적하목록은 사용자 계정과 이미 링크된 미리 설치된 애플리케이션들을 열거하도록 구성된다. 시스템은 컴퓨팅 디바이스에 미리 설치된 애플리케이션을 다운로드할 수 있다.
개시의 위에 기재된 및 다른 이점들 및 특징들이 획득될 수 있는 방식을 설명하기 위해서, 간략하게 위에서 설명된 원리들의 더욱 특정한 설명이 첨부 도면들에 예시되는 그의 특정 실시예들을 참조하여 주어질 것이다. 이들 도면들은 오직 개시의 예시적인 실시예들을 도시하며, 따라서 그의 범위를 한정하는 것으로 고려되어서는 안 된다는 것을 이해하고, 본원에서 원리들은 첨부 도면들의 이용을 통해 부가적인 특정성 및 상세를 가지고 설명 및 기술된다.
도 1은 예시적인 시스템 실시예를 도시한다.
도 2는 예시적인 애플리케이션 분배 시스템을 도시한다.
도 3은 예시적인 클라이언트-서버 시스템을 도시한다.
도 4는 업데이트 페이지 요청을 프로세싱하기 위한 예시적인 방법을 도시한다.
도 5는 업데이트 페이지 요청과 연관된 HTML 페이지의 예를 도시한다.
도 6은 미리 설치된 애플리케이션들을 채택하기 위해 사용자 인증을 요청하는 HTML 페이지의 예를 도시한다.
도 7은 미리 설치된 애플리케이션들을 채택하기 위해 사용자 인증을 요청하는 HTML 페이지의 다른 예를 도시한다.
도 8은 구매 페이지 요청을 프로세싱하기 위한 예시적인 방법을 도시한다.
도 9는 사용자가 서명하지 않은 경우 구매 페이지 요청과 연관된 HTML 페이지의 예를 도시한다.
도 10은 사용자가 서명한 경우 구매 페이지 요청과 연관된 HTML 페이지의 다른 예를 도시한다.
도 11은 인증 프롬프트를 포함하는 구매 페이지 요청과 연관된 HTML 페이지의 다른 예를 도시한다.
도 12는 사용자 계정에 미리 설치된 애플리케이션을 링크하기 위한 예시적인 방법을 도시한다.
도 13은 채택 경고의 예를 도시한다.
도 14는 채택 경고의 다른 예를 도시한다.
도 15는 전자 디바이스에서의 복구 모드를 위한 예시적인 프로세스를 도시한다.
본 개시의 다양한 실시예들이 아래 상세하게 논의된다. 특정 구현들이 논의되지만, 이것은 오직 예시의 목적으로 행해진다는 것을 이해해야 한다. 관련 기술분야의 통상의 기술자는 개시의 사상 및 범위에서 벗어나지 않고 다른 컴포넌트들 및 구성들이 이용될 수 있다는 것을 인식할 것이다.
본 개시는 분배 센터 또는 온라인 스토어 상의 사용자 계정과 전자 디바이스 상의 미리 설치된 소프트웨어를 연관시키기 위한 이 기술분야의 필요성을 해결한다. 본 개시는 또한 미리 설치된 소프트웨어 이외의 다른 타입들의 소프트웨어를 사용자 계정과 연관시키기 위한 이 기술분야의 필요성을 해결한다. 예를 들어, 구매된 소프트웨어, 선물로 받은 소프트웨어, 소프트웨어 제조자로부터 무료 또는 소액으로 분배된 소프트웨어, 또는 다른 방법들을 이용하여 취득한 소프트웨어는 온라인 스토어 또는 샵 상의 사용자 계정과 연관될 수 있다. 이 프로세스는 온라인 스토어에서 사용자 계정에 의해 소프트웨어의 "채택"이라고 말할 수 있다. 온라인 스토어 상의 사용자 계정과 소프트웨어를 연관시키는 것에 의해, 소프트웨어 업데이트들 및 재설치들은 온라인 스토어로부터 다운로드될 수 있고, 이에 따라 전자 디바이스 상의 소프트웨어를 관리하는 더 쉽고 더 편리한 방식인 것으로 판명된다. 또한, 사용자 계정과 연관된 다른 컴퓨팅 디바이스들은 또한 온라인 스토어로부터 소프트웨어 업데이트들 및 재설치들을 수신할 수 있다. 도 1 내지 15에서의 다음의 설명은 미리 설치된 애플리케이션들, 소프트웨어 패키지들, 및 다른 수단을 통해 취득한 애플리케이션들(예를 들어, 선물, 구매, 또는 그렇지 않으면 분배되거나 취득된 것)에 적용 가능하다. 이와 같이, 본원에서 이용되는 바와 같은 "미리 설치된 애플리케이션(pre-installed application)"이라는 용어는 선물 받은 애플리케이션, 구매한 애플리케이션, 분배된 애플리케이션, 취득한 애플리케이션, 및 다른 것들과 서로 교환가능하게 이용될 수 있다. 다시 말해, "미리 설치된 애플리케이션"은 사용자가 소유권을 갖는 임의의 애플리케이션일 수 있다. 유사하게, "고유 하드웨어 식별자"는 컴퓨팅 디바이스 상에 설치된 애플리케이션에 소유권 또는 자격의 증명을 제공하도록 구성되는 임의의 고유 식별자일 수 있다. 예를 들어, 자격의 증명은 생성되는 애플리케이션의 모든 사본에 대해 고유한 값일 수 있다. 자격의 증명은 또한 애플리케이션을 되찾기(redeem) 위한 상환 코드(redemption code)일 수 있다. 다른 예들에서, 자격의 증명은 (고유한) 사용자 계정과 연관된 고유 식별자와 (고유하지 않을 수 있는) 상환 코드를 결합하는 것과 같이, 고유한 및 비-고유한 값들의 결합일 수 있다. 개념들을 실시하는 데 이용될 수 있는 기본적인 범용 시스템 또는 컴퓨팅 디바이스의 간단한 도입부 설명이 도 1에 예시된다. 미리 설치된 소프트웨어가 사용자 계정과 어떻게 연관되는지에 대한 더욱 상세한 설명이 뒤따를 것이고, 다양한 실시예들이 기재될 때 몇몇 변형들을 포함한다. 이제 개시는 도 1을 본다.
도 1을 참조하면, 예시적인 시스템(100)은 프로세싱 유닛(CPU 또는 프로세서)(120), 및 리드 온리 메모리(read only memory; ROM)(140) 및 랜덤 액세스 메모리(random access memory; RAM)(150)와 같은 시스템 메모리(130)를 포함하는 다양한 시스템 컴포넌트들을 프로세서(120)에 결합하는 시스템 버스(110)를 포함하는 범용 컴퓨팅 디바이스(100)를 포함한다. 시스템(100)은 프로세서(120)와 직접적으로 접속되거나, 그와 근접하게 있거나, 그의 부분으로서 통합되는 고속 메모리의 캐시(122)를 포함할 수 있다. 시스템(100)은 프로세서(120)에 의한 빠른 액세스를 위해 메모리(130) 및/또는 저장 디바이스(160)로부터 캐시(122)로 데이터를 복사한다. 이러한 식으로, 캐시는 데이트를 기다리는 동안 프로세서(120) 지연들을 피하는 성능 부스트를 제공한다. 이들 및 다른 모듈들은 다양한 액션들을 수행하도록 프로세서(120)를 제어하거나 또는 제어하도록 구성될 수 있다. 다른 시스템 메모리(130)가 또한 이용을 위해 이용가능할 수 있다. 메모리(130)는 상이한 성능 특성을 갖는 복수의 상이한 타입들의 메모리를 포함할 수 있다. 본 개시는 하나보다 많은 프로세서(120)를 갖는 컴퓨팅 디바이스(100)에서 또는 더 큰 프로세싱 능력을 제공하기 위해 함께 네트워킹되는 컴퓨팅 디바이스들의 그룹 또는 클러스터에서 동작할 수 있다는 것을 알 수 있다. 프로세서(120)는 임의의 범용 프로세서, 및 소프트웨어 명령어들이 실제 프로세서 설계 내로 포함되는 특수 목적 프로세스뿐만 아니라 프로세서(120)를 제어하도록 구성되는, 저장 디바이스(160)에 저장되는 모듈 1(162), 모듈 2(164), 및 모듈 3(166)과 같은, 소프트웨어 모듈 또는 하드웨어 모듈을 포함할 수 있다. 프로세서(120)는 본질적으로 복수의 코어들 또는 프로세서들, 버스, 메모리 컨트롤러, 캐시 등을 포함하는 완전 자급적 컴퓨팅 시스템일 수 있다. 멀티 코어 프로세서는 대칭적 또는 비대칭적일 수 있다.
시스템 버스(110)는 다양한 버스 아키텍처들 중 임의의 것을 이용하여 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 및 로컬 버스를 포함하는 몇몇 타입들의 버스 구조들 중 임의의 것일 수 있다. ROM(140) 등에 저장되는 기본 입출력(BIOS)은 스타트 업 중과 같이, 컴퓨팅 디바이스(100) 내의 요소들 사이에 정보를 전송하는 데 도움이 되는 기본적인 루틴을 제공할 수 있다. 컴퓨팅 디바이스(100)는 하드 디스크 드라이브, 자기 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브 등과 같은 저장 디바이스들(160)을 더 포함한다. 저장 디바이스(160)는 프로세서(120)를 제어하기 위한 소프트웨어 모듈들(162, 164, 166)을 포함할 수 있다. 다른 하드웨어 또는 소프트웨어 모듈들이 고려된다. 저장 디바이스(160)는 드라이브 인터페이스에 의해 시스템 버스(110)에 접속된다. 드라이브들 및 연관된 컴퓨터 판독 가능한 저장 매체는 컴퓨팅 디바이스(100)를 위한 컴퓨터 판독 가능한 명령어들, 데이터 구조들, 프로그램 모듈들 및 다른 데이터의 불휘발성 저장소를 제공한다. 일 양태에서, 특정 기능을 수행하는 하드웨어 모듈이 기능을 실행하기 위해, 프로세서(120), 버스(110), 디스플레이(170) 등과 같은 필요한 하드웨어 컴포넌트들과 접속하여 비-일시적 컴퓨터 판독 가능한 매체에 저장된 소프트웨어 컴포넌트를 포함한다. 기본적인 컴포넌트들이 이 기술분야의 통상의 기술자들에게 알려져 있고, 디바이스(100)가 소형, 핸드헬드 컴퓨팅 디바이스, 데스크톱 컴퓨터, 또는 컴퓨터 서버인지와 같이 디바이스의 타입에 따라 적절한 변형들이 고려된다.
본원에 설명된 예시적인 실시예는 하드 디스크(160)를 이용하지만, 자기 카세트들, 플래시 메모리 카드들, 디지털 다기능 디스크(digital versatile disk)들, 카트리지들, RAM들(random access memories)(150), ROM(read only memory)(140), 케이블 또는 비트 스트림 등을 포함하는 무선 신호와 같은, 컴퓨터에 의해 액세스 가능한 데이터를 저장할 수 있는 다른 타입들의 컴퓨터 판독 가능한 매체가 또한 예시적인 오퍼레이팅 환경에서 이용될 수 있다는 것을 이 기술분야의 통상의 기술자들이면 알아야 한다. 비-일시적 컴퓨터 판독 가능한 저장 매체는 에너지, 캐리어 신호들, 전자기파들, 및 신호들 자체와 같은 매체를 명백히 제외한다.
컴퓨팅 디바이스(100)와의 사용자 상호작용을 가능하게 하기 위해서, 입력 디바이스(190)는 스피치(speech)를 위한 마이크로폰, 제스처 또는 그래픽 입력을 위한 터치 민감 스크린, 키보드, 마우스, 모션 입력, 스피치 등과 같은, 임의의 수의 입력 메커니즘들을 대표한다. 출력 디바이스(170)는 또한 이 기술분야의 통상의 기술자들에게 알려진 다수의 출력 메커니즘들 중 하나 이상일 수 있다. 일부 예들에서, 다모드의 시스템들은 사용자가 컴퓨팅 디바이스(100)와 통신하기 위해 복수의 타입의 입력을 제공할 수 있게 한다. 통신 인터페이스(180)는 일반적으로 사용자 입력 및 시스템 출력을 지배하고 관리한다. 임의의 특정 하드웨어 배열에 대해 동작하는 것으로 한정하지 않고, 따라서 기본적인 특징들은 여기서 그것들이 개발됨에 따라 향상된 하드웨어 또는 펌웨어 배열들로 쉽게 대체될 수 있다.
설명의 명확함을 위해, 예시적인 시스템 실시예는 "프로세서" 또는 프로세서(120)로 라벨링된 기능 블록들을 포함하는 개별 기능 블록들을 포함하는 것으로서 제공된다. 이들 블록들이 나타내는 기능들은, 이것으로 한정되지 않지만, 범용 프로세서에서 실행되는 소프트웨어와 등가로서 동작하도록 특별히 구축되는(purpose-built), 프로세서(120)와 같은, 하드웨어 및 소프트웨어를 실행할 수 있는 하드웨어를 포함하는, 공유 또는 전용 하드웨어의 이용을 통해 제공될 수 있다. 예를 들어, 도 1에 제시된 하나 이상의 프로세서들의 기능들은 단일 공유 프로세서 또는 다중 프로세서들에 의해 제공될 수 있다. ("프로세서"라는 용어의 이용은 소프트웨어를 실행할 수 있는 하드웨어를 독점적으로 가리키는 것으로 이해되어서는 안 된다.) 예시적인 실시예들은 마이크로프로세서 및/또는 디지털 신호 프로세서(digital signal processor; DSP) 하드웨어, 아래 논의되는 동작들을 수행하는 소프트웨어를 저장하기 위한 ROM(read-only memory)(140), 및 결과들을 저장하기 위한 RAM(random access memory)(150)을 포함할 수 있다. VLSI(very large scale integration) 하드웨어 실시예들과, 범용 DSP 회로와 결합하는 커스텀(custom) VLSI 회로가 또한 제공될 수 있다.
다양한 실시예들의 논리적 동작들은, (1) 일반 용도 컴퓨터 내의 프로그램 가능한 회로에서 구동되는 컴퓨터 구현 단계들, 동작들, 또는 절차들의 시퀀스, (2) 특수 용도 프로그램 가능한 회로에서 구동되는 컴퓨터 구현 단계들, 동작들, 또는 절차들의 시퀀스, 및/또는 (3) 프로그램 가능한 회로들 내의 상호접속된 머신 모듈들 또는 프로그램 엔진들로서 구현된다. 도 1에 도시된 시스템(100)은 기재된 방법들의 전부 또는 일부를 실시할 수 있고, 기재된 시스템들의 부분일 수 있고, 및/또는 기재된 비-일시적 컴퓨터 판독 가능한 저장 매체 내의 명령어들에 따라 동작할 수 있다. 이러한 논리적 동작들은 모듈의 프로그래밍에 따라 특정 기능들을 수행하도록 프로세서(120)를 제어하도록 구성되는 모듈들로서 구현될 수 있다. 예를 들어, 도 1은 프로세서(120)를 제어하도록 구성되는 모듈들인 3개의 모듈들 Mod1(162), Mod2(164) 및 Mod3(166)을 예시한다. 이들 모듈들은 저장 디바이스(160)에 저장되고 실행 시간에 RAM(150) 또는 메모리(130) 내로 로드될 수 있거나 또는 다른 컴퓨터 판독 가능한 메모리 위치들에 이 기술분야에 알려진 바와 같이 저장될 수 있다.
컴퓨팅 시스템의 일부 컴포넌트들을 개시하였고, 개시는 이제 퍼스널 컴퓨터, 랩톱, 게임 콘솔, 스마트폰, 모바일폰, 또는 태블릿 PC와 같은 컴퓨팅 디바이스 상의 미리 설치된 소프트웨어를 온라인 애플리케이션 분배 스토어 또는 마켓의 사용자 계정과 연관(링크 또는 채택과 유사함)시키기 위한 기법들의 논의로 돌아간다. 본원에 개시된 접근법들은 미리 설치된 소프트웨어를 온라인 스토어 또는 분배 센터와 같은 온라인 분배 사이트 상의 사용자 계정과 링크하는 것에 의해 컴퓨팅 디바이스 상의 미리 설치된 소프트웨어의 업데이트 또는 재설치의 효율성 및 편리성을 향상시킬 수 있다. 온라인 분배 사이트는 사용자 계정과 연관된 미리 설치된 소프트웨어를 사용자 계정에 링크되는 하나 이상의 컴퓨팅 디바이스들에 전송한다. 미리 설치된 소프트웨어 및 미리 설치된 소프트웨어에 대한 업데이트들은 둘다 하나 이상의 컴퓨팅 디바이스들에 전송될 수 있다. 일부 예들에서, 분배 사이트는 주어진 사용자 계정과 연관되는 소프트웨어를 수신할 수 있는 주어진 사용자 계정과 연관되는 컴퓨팅 디바이스들의 수에 대한 한계를 특정할 수 있다. 다른 예들에서, 미리 설치된 소프트웨어는 한번 발생되어 디바이스들의 그룹의 각각에 복제되는 표준 '이미지'의 부분이다. 예를 들어, 표준 디바이스 '이미지'는 오퍼레이팅 시스템, 드라이버들, 프로그램들, 설정들 등을 포함할 수 있다. 따라서, 각각의 이미지화된 디바이스는 미리 설치된 소프트웨어를 포함하여 동일한 소프트웨어 구성을 갖고, 최종 사용자(또는 다른 엔티티)가 디바이스를 셋업한 후에, 미리 설치된 소프트웨어는 온라인 스토어 또는 마켓플레이스의 사용자 계정과 채택 및 연관될 수 있다.
도 2는 예시적인 애플리케이션 분배 시스템을 예시한다. 이 예에서, 분배 시스템(200)은 분배 센터(210), 애플리케이션 데이터베이스(220), 구성 서버(230), 인터넷(250) 또는 다른 네트워크, 컴퓨팅 디바이스(260), 컴퓨팅 디바이스(270) 및 포터블 디바이스(280)를 포함한다. 함께, 분배 센터(210), 애플리케이션 데이터베이스(220), 및 구성 서버(230)는 클라이언트-서버 모델의 서버측(240)의 상이한 독립적 컴포넌트들을 표현할 수 있다. 유사하게, 컴퓨팅 디바이스(260), 컴퓨팅 디바이스(270), 및 포터블 디바이스(280)는 클라이언트-서버 모델의 클라이언트측(290)의 상이한 독립적 컴포넌트들을 표현할 수 있다. 따라서, 분배 시스템(200)의 넓은 개요는 인터넷(250)을 통해 클라이언트측(290)과 통신하는 서버측(240)을 포함한다. 예로서, 서버측(240)은 애플리케이션들 또는 멀티플 클라우드 서버들의 판매 및 분배를 위한 온라인 스토어로서 사용자에게 표현될 수 있다. 클라이언트측(290)으로부터의 디바이스는 디바이스에 저장된 애플리케이션 관리 컴퓨터 프로그램을 이용하여 온라인 스토어와 통신할 수 있다. 다른 예들에서, 인터넷(250)은 컴퓨터 네트워크들, 전화 네트워크들, 이더넷, 근거리 네트워크들, 유선 네트워크들, 무선 네트워크들 등과 같은 다른 통신 네트워크들로 대체될 수 있다.
컴퓨팅 디바이스(260)는 애플리케이션들(261)을 포함할 수 있다. 애플리케이션들(261)은 패키지의 부분으로서 제공되는, 또는 일부 종류의 설치 미디어가 제공된, 컴퓨팅 디바이스(260)에 미리 설치된 애플리케이션들을 포함할 수 있다. 하나의 공통 시나리오에서, 컴퓨팅 디바이스(260)의 소유자는 제조자로부터 이들 애플리케이션들이 이미 설치된 컴퓨팅 디바이스(260)를 구매하였다. 애플리케이션들(261)은 또한 몇몇 예를 들면, 선물 받았거나, 구매했거나, 무료로 분배된 애플리케이션들과 같은 다른 수단을 통해 컴퓨팅 디바이스(260)에 의해 취득된 애플리케이션들(또는 소프트웨어 패키지들)을 포함할 수 있다. 애플리케이션들(261)은 또한 컴퓨팅 디바이스(260)의 사용자에 의해 분배 센터(210)로부터 구매한 애플리케이션들을 포함할 수 있다. 분배 센터(210)로부터 원하는 애플리케이션들을 구매하기 위해서, 사용자는, 사용자가 이미 구매한 애플리케이션들과 연관된 메타데이터 및 원하는 애플리케이션들의 대가로 분배 센터(210)에 지불하기 위한 지불 정보와 연관된 메타데이터를 포함하는, 사용자 계정(291)에 로그인한다. 일단 로그인되면, 사용자는 구매를 위해 원하는 애플리케이션을 선택할 수 있다. 사용자가 애플리케이션의 구매 가격을 지불하는 것에 동의할 때, 사용자의 지불 정보는 거래를 완료하는 데 이용된다. 일단 거래가 완료되면, 원하는 애플리케이션은 사용자 계정(291)과 연관되고, 따라서 사용자가 원하는 애플리케이션 및 또한 원하는 애플리케이션의 업데이트들을 다운로드할 수 있게 한다. 사용자 계정(291)과 연관된 애플리케이션들은 사용자 계정(291)과 연관되는 다른 디바이스들에 대해 업데이트되거나 다시 다운로드될 수 있다.
일부 예들에서, 사용자는 이 시점에서 사용자 계정과 애플리케이션을 연관시키지 않도록 옵션을 가질 수 있다. 예를 들어, 선물로 애플리케이션을 받은 사용자는 사용자 계정을 갖지 않을 수 있거나 그의 사용자 계정과 애플리케이션을 연관시키기를 희망하지 않을 수 있다. 제1 시나리오에서, 컴퓨팅 디바이스(260)는 사용자가 사용자 계정을 셋업하는 것을 요구하지 않고 사용자가 애플리케이션을 설치할 수 있게 할 수 있다. 사용자가 그가 소유하는 다른 전자 디바이스들에 애플리케이션을 설치하거나 업데이트들을 받기를 희망한다면, 사용자는 사용자 계정을 선택하고 그의 사용자 계정과 애플리케이션을 링크(즉, 채택)할 수 있다. 이 예에서, 컴퓨팅 디바이스(260), 컴퓨팅 디바이스(270), 및 포터블 디바이스(280)는 모두 사용자 계정(291)과 연관되고, 따라서 사용자 계정(291)과 연관된 모든 애플리케이션들의 업데이트들 및 재-다운로드들을 받도록 구성된다. 또한, 포터블 디바이스(280)는 2개의 디바이스 사이에 디지털 데이터 및 애플리케이션들을 전송하기 위해 컴퓨팅 디바이스(270)와 통신할 수 있다. 일 예에서, 컴퓨팅 디바이스(270)는 사용자 계정(291)과 연관된 모든 애플리케이션들을 포함하는 중앙 저장소이도록 구성될 수 있고, 선택된 애플리케이션들을 포터블 디바이스(280)에 전송할 수 있다. 이 명세서에서, "애플리케이션"이라는 용어는 소프트웨어 제공자에 의해 제공되는 소프트웨어 프로그램 또는 애플리케이션의 사본을 가리킨다. 다른 예들에서, 사용자가 소유권을 갖는 소프트웨어 애플리케이션들과 같은, 컴퓨팅 디바이스에 처음에 미리 설치된 소프트웨어 애플리케이션들 및 소프트웨어 프로그램들(예를 들어, 시스템 소프트웨어, 엔터프라이즈 소프트웨어, 멀티미디어 파일들, 비디오 파일들, 오디오 파일들, 및 이미지 파일들) 이외의 다른 디지털 제품들은 또한 사용자 계정(291)과 연관되고 분배 센터(210)에 의해 분배/재분배될 수 있다.
애플리케이션 데이터베이스(220)에 결합되는 분배 센터(210)는 애플리케이션 데이터베이스(220)로부터 애플리케이션들을 판매, 배달, 및 유지하도록 구성된다. 애플리케이션 데이터베이스(220)는 서버측(240)으로부터 분배를 위해 이용가능한 애플리케이션들의 일부 또는 전부를 저장하도록 구성될 수 있다. 애플리케이션들은 인터넷(250)을 통해 클라이언트측(290)의 디바이스로 판매, 업데이트, 및 배달(즉, 전송)될 수 있다. 이와 같이, 분배 센터(210)는 애플리케이션들을 위한 온라인 스토어를 표현한다. 예를 들어, 애플리케이션 데이터베이스(220)는 애플리케이션에 대한 요청을 분배 센터(210)로부터 수신하고, 요청에 응답하여, 요청된 애플리케이션을 분배 센터(210)에 전송할 수 있고, 분배 센터(210)는 후속하여 요청하는 디바이스에 애플리케이션을 전송한다. 요청된 애플리케이션들은 구매를 위해 이용가능한 애플리케이션들 또는 이전에 사용자 계정과 연관된 애플리케이션들(즉, 채택된 별개로 취득되거나 미리 설치된 애플리케이션들)일 수 있다. 다른 예들에서, 애플리케이션 데이터베이스(220)는 요청된 애플리케이션을 요청하는 디바이스에 직접 전송할 수 있다. 또 다른 예들에서, 애플리케이션 데이터베이스(220)는 클라이언트측(290)에 상주할 수 있고, 서버측(240)은 사용자 계정과 연관된 애플리케이션들에 기초하여 애플리케이션 데이터베이스(220)의 특정 애플리케이션들에 대한 액세스를 허가(grant)할 수 있다.
클라이언트측(290)의 디바이스는 디바이스 상의 미리 설치된 애플리케이션 또는 그렇지 않으면 취득되었지만 채택되지 않은 애플리케이션을 사용자 계정과 링크(즉, 연관 또는 채택)하기 위해 소프트웨어 채택 요청을 전송할 수 있다. 애플리케이션을 링크하는 것은, 사용자가 애플리케이션을 사용자 계정과 연관시킬 수 있게 하고, 따라서 사용자가 동일한 사용자 계정과 또한 연관된 다른 디바이스들에 애플리케이션을 다운로드할 수 있게 한다. 이 프로세스는 애플리케이션을 "링크시키는 것", "채택하는 것", 또는 "연관시키는 것"이라고 할 수 있다. 예를 들어, 컴퓨팅 디바이스(260)는 애플리케이션들(261)로부터의 애플리케이션을 사용자 계정(291)과 링크하도록 요청할 수 있다. 요청은 애플리케이션이 사용자 계정(291)과 연관될 수 있는지를 결정하기 위해 인터넷(250)을 통해 분배 센서(210)에 애플리케이션 또는 컴퓨팅 디바이스(260)와 연관된 고유 식별자(예를 들어, 고유 하드웨어 식별자)와 함께 전송될 수 있다. 고유 하드웨어 식별자는 모든 다른 디바이스들로부터 특정 디바이스를 구별하는 데 이용되는 디바이스의 하드웨어에 기초한 고유 식별자이다. 예를 들어, 제조자는 제조된 각각의 디바이스가 고유한 그리고 따라서 임의의 다른 디바이스의 고유 하드웨어 식별자와 상이한 고유 하드웨어 식별자를 포함하도록 보장할 수 있다. 예로서, 고유 하드웨어 식별자는 디바이스의 로직 보드 일련 번호 및/또는 이더넷 하드웨어 어드레스에 기초할 수 있다. 일 예에서, 이들 2개의 값은 고유 하드웨어 식별자를 생성하기 위해 접합되고(concatenated) 뒤섞일(hashed) 수 있다. 다른 예들에서, 디바이스에 특정한 다른 메타데이터가 고유 하드웨어 식별자를 형성하기 위해 다양한 데이터 조작 알고리즘들을 이용하여 접합되거나, 뒤섞이거나, 그렇지 않으면 조합될 수 있다. 또 다른 예들에서, 애플리케이션이 사용자 계정(291)과 연관될 수 있는지를 결정하는 데 이용되는 고유 식별자는 고유 식별자와 연관된 애플리케이션(즉, 소프트웨어 패키지)이 소프트웨어 제조자로부터 합법적으로 취득되었다는 증거로서 역할을 할 수 있는 구매 또는 자격의 임의의 다른 증명에 기초할 수 있다. 하나의 경우에, 고유 식별자는 애플리케이션과 연관된 메타데이터 또는 속성들로부터 도출될 수 있다. 다른 경우에, 고유 식별자는 애플리케이션, 클라이언트 디바이스, 사용자 계정, 사용자 계정과 연관되는 다른 클라이언트 디바이스들, 또는 위의 것 중 하나 이상의 조합과 연관되는 메타데이터로부터 도출될 수 있다.
일 실시예에서, 분배 센터(210)는 고유 식별자를 수신하고, 고유 식별자를 처리 또는 분석하여 애플리케이션이 사용자 계정과 연관될 수 있는지를 결정한다. 특정 시나리오들에서, 애플리케이션은 사용자 계정과 연관될 수 없다. 예를 들어, 디바이스의 애플리케이션은 애플리케이션이 이전에 다른 사용자 계정과 연관되었다면 사용자 계정과 연관되지 않을 수 있다. 다른 예로서, 애플리케이션이 인증된 사본이 아닌 경우 애플리케이션은 사용자 계정과 연관될 수 없을 수 있다. 이것은 사용자가 한 디바이스에 원래 설치된 애플리케이션을 다른 디바이스로 수동으로 복사할 때 일어날 수 있다. 또 다른 예로서, 연관 프로세스는 애플리케이션이 사용자 계정과 링크되도록 사용자가 전자 디바이스 상의 사용자의 계정으로 로그인되는 것을 요구할 수 있다.
다른 실시예에서, 분배 센터(210)는 고유 식별자를 수신하고, 고유 식별자를 처리 또는 분석하여 애플리케이션이 사용자 계정과 연관될 수 있는지를 결정한다. 예로서, 고유 식별자를 처리하는 것은 고유 식별자와 데이터베이스를 비교함으로써 고유 식별자를 검증하는 것을 포함할 수 있다. 데이터베이스는, 각각이 애플리케이션의 인증된 사본과 연관된 고유 식별자를 저장하는 복수의 엔트리를 가질 수 있다. 비교의 결과는 애플리케이션이 유효 사본인지 여부, 애플리케이션이 무효 사본인지 여부, 또는 애플리케이션이 이미 사용자 계정과 연관되었는지와 같은, 애플리케이션의 채택 상태를 결정하는 데 이용될 수 있다. 다른 예로서, 고유 식별자를 처리하는 것은 애플리케이션의 채택 상태를 결정하기 위해 해시 테이블 내로 고유 식별자를 입력하는 것을 포함할 수 있다. 또 다른 예에서, 고유 식별자는 애플리케이션의 이러한 설치가 유효하고 아직 채택되지 않았는지를 결정하는 검증 엔진에의 입력으로서 수신될 수 있다. 또 다른 예들에서, 다른 데이터 처리 기법들은 애플리케이션이 사용자 계정과 연관될 수 있는지를 결정하기 위해 고유 식별자에 적용될 수 있다. 애플리케이션은 최근에 사용자에 의해 취득될 수 있다. 다시 말해, 애플리케이션은 분배 또는 제조로부터 전자 디바이스의 구매 및 인수 후에 사용자에 의해 취득되었을 수 있다. 대안적으로, 애플리케이션은 전자 디바이스가 구매되었을 때 취득될 수 있다. 일단 채택 상태가 분배 센터(210)에 의해 결정되었다면, 채택 상태에 따른 확인이 전자 디바이스에 전송될 수 있다. 확인은 채택 프로세스의 상태를 전자 디바이스에 알리기 위해 전송될 수 있다. 확인에 기초하여, 전자 디바이스는 소프트웨어 패키지의 다운로드 또는 소프트웨어 패키지의 업데이트를 요청할 수 있다. 다른 예들에서, 분배 서버(210)는 채택 상태에 따라 전자 디바이스에의 소프트웨어 패키지의 다운로드 또는 소프트웨어 패키지의 업데이트의 프로세스를 자동으로 시작할 수 있다.
서버측(240)은 링크 요청이 인증되어야 하는지를 결정하기 위해 다수의 서버들 및 테이블들을 포함할 수 있다. 예를 들어, 분배 센터(210)는 링크 요청의 유효성 또는 합법성을 결정하기 위해 고유 식별자를 처리하도록 구성되는 고유성 서버(211)를 포함한다. 고유성 서버(211)는 사용자 계정과 링크되는 하나 이상의 미리 설치된 애플리케이션들을 갖는 전자 디바이스들의 테이블 또는 데이터베이스를 유지하도록 구성되는 고유성 테이블을 포함할 수 있다. 예로서, 고유성 테이블은 사용자 계정과 그것들의 미리 설치된 애플리케이션들을 이미 링크한 디바이스들(즉, 디바이스와 연관된 미리 설치된 애플리케이션들을 이미 채택한 디바이스들)의 고유 하드웨어 식별자를 저장하도록 구성될 수 있다. 고유성 테이블은 또한 사용자 계정과 연관된 애플리케이션들과 연관된 메타데이터를 저장하도록 구성될 수 있다. 디바이스가 사용자 계정과 그의 애플리케이션들의 일부 또는 전부를 채택(즉, 링크)할 때, 디바이스의 고유 하드웨어 식별자 또는 채택된 애플리케이션의 고유 식별자들이 고유성 테이블 내에 저장된다. 이것은 이미 채택된 애플리케이션들을 링크하기 위한 미래의 요청들을 방지한다. 예를 들어, 고유 식별자가 고유성 테이블에 있는지에 대한 조회를 수행하는 것은, 고유 하드웨어 식별자와 연관된 디바이스가 이미 그의 미리 설치된 애플리케이션들을 사용자 계정과 링크했는지를 결정한다. 유사하게, 조회는 또한 고유 식별자와 연관된 애플리케이션이 사용자 계정과 이미 링크되었는지를 결정할 수 있다. 다른 예로서, 고유성 테이블은 이전에 채택된(즉, 사용자 계정과 링크된) 전자 디바이스의 하나 이상의 미리 설치된 애플리케이션들과 연관된 메타데이터와 함께 전자 디바이스의 고유 하드웨어 식별자를 저장하도록 구성될 수 있다. 다시 말해, 고유성 디바이스는 디바이스의 고유 하드웨어 식별자와 선택적으로 채택된 디바이스의 미리 설치된 애플리케이션들과 연관된 하나 이상의 메타데이터 사이의 1-대-다 맵핑으로서 구성된다. 고유 하드웨어 식별자에 대해 고유성 테이블을 조회하는 것은, 고유 하드웨어 식별자가 고유성 테이블에 존재하지 않는 경우에 어떤 것도 리턴할 수 없고, 고유 하드웨어 식별자가 고유성 테이블에 존재하는 경우에 선택적으로 채택된 미리 설치된 애플리케이션들과 연관된 메타데이터를 리턴할 수 있다. 이것은 제1 사용자 계정과 디바이스 상의 미리 설치된 애플리케이션을 그리고 제2 사용자 계정과 디바이스 상의 다른 미리 설치된 애플리케이션을 선택적으로 채택하는 능력을 야기할 수 있다. 또 다른 예들에서, 고유성 테이블은 사용자 계정에 링크된 애플리케이션들의 테이블 또는 데이터베이스를 유지하도록 구성될 수 있다. 이미 링크된 애플리케이션들은 고유성 테이블에 저장된 고유 식별자를 가질 수 있고, 이로써 채택된 애플리케이션들의 최신의 데이터베이스를 유지할 수 있다.
예에서, 구성 서버(230)는 디바이스가 제조자를 떠났을 때 특정 애플리케이션이 전자 디바이스 상에 미리 설치되었음을 검증 또는 결정하기 위해 전자 디바이스의 원래 구성을 검사함으로써 링크 요청의 유효성을 검증할 수 있다. 구성 서버는 또한 애플리케이션이 사용자 디바이스 상에 설치되었는지 또는 사용자 계정과 연관되었는지에 상관없이, 사용자가 소유권을 갖는 애플리케이션들을 검증 또는 식별할 수 있다. 따라서, 사용자가 소유권을 갖지만 연관 또는 설치되지 않은 애플리케이션들이 또한 식별될 수 있다. 구성 서버(230)는 제조자에 의해 생성된 전자 디바이스들의 원래 구성을 저장하는 데이터베이스를 포함한다. 원래 구성은 오퍼레이팅 시스템의 버전 및 만약에 있다면, 전자 디바이스와 배달된 애플리케이션들의 버전을 포함할 수 있다. 예를 들어, 온라인 스토어를 통해 전자 디바이스를 주문하는 사용자는 구매시에 하나 이상의 애플리케이션들을 갖는 디바이스를 구성할 수 있다. 애플리케이션들은 구매시 구성에 기초하여 제조함으로써 전자 디바이스 상에 설치된다. 제조는 후속하는 검색을 위해 구성 서버(230)에 전자 디바이스의 구성을 전달한다. 구성 서버(230)가 전자 디바이스로부터 고유 하드웨어 식별자를 포함하는 검색 요청을 수신할 때, 구성 서버(230)는 데이터베이스에서 검색 또는 조회를 수행하고, 전자 디바이스 상에 설치된 애플리케이션들의 버전을 포함하는 목록 및/또는 디바이스 상에 설치된 오퍼레이팅 시스템의 버전을 리턴한다. 구성 서버(230)는 사용자가 연관시키기 위해 시도하고 있는 애플리케이션이 인증된 설치인지 또는 이전에 다른 사용자 계정과 연관된 것인지를 결정하기 위해 사용자가 사용자 계정과 연관시키기 위해 시도하고 있는 애플리케이션과 설치된 애플리케이션들의 목록을 비교할 수 있다. 대안적으로, 구성 서버(230)는 링크 요청이 허가되어야 하는지를 결정하기 위해 분배 센터(210)에 미리 설치된 애플리케이션들의 목록을 전달할 수 있다. 이 검사는 한 디바이스에서 다른 디바이스로 미리 설치된 애플리케이션들을 복사함으로써 사용자들이 분배 시스템(200)을 교묘히 회피하는 것을 방지할 수 있다.
일단 서버측(240)의 하나 이상의 요소들이 링크 요청을 유효화하면, 미리 설치된 애플리케이션은 사용자 계정과 연관된다(즉, 애플리케이션 채택). 또한, 고유성 서버(211) 또는 구성 서버(230)는 애플리케이션 채택을 고려하도록 업데이트될 수 있다. 예를 들어, 새로운 엔트리가 고유성 서버(211)의 고유성 테이블에 추가될 수 있는데, 그 이유는 전자 디바이스와 연관된 미리 설치된 애플리케이션들의 일부 또는 전부가 채택되었을 수 있기 때문이다. 일부 예들에서, 분배 센터(210)는 미리 설치된 애플리케이션이 사용자 계정과 연관된 후에 미리 설치된 애플리케이션의 업데이트를 컴퓨팅 디바이스(260)에 전송할 수 있다. 다른 예들에서, 컴퓨팅 디바이스(270)가 미리 설치된 애플리케이션으로 원래 구성되지 않았더라도, 분배 센터(210)는 컴퓨팅 디바이스(270)와 같은 사용자 계정과 연관된 다른 디바이스들에 미리 설치된 애플리케이션을 전송할 수 있다. 애플리케이션 채택을 위한 유사한 요청들을 통해, 애플리케이션들(271)에 저장된 컴퓨팅 디바이스(270)의 미리 설치된 애플리케이션들 및 애플리케이션들(281)에 저장된 포터블 디바이스(280)의 미리 설치된 애플리케이션들은 사용자 계정(291)과 연관될 수 있고, 결국은 컴퓨팅 디바이스(260), 컴퓨팅 디바이스(270), 및/또는 포터블 디바이스(280)에 분배될 수 있다.
도 3은 예시적인 클라이언트-서버 시스템을 예시한다. 클라이언트-서버 시스템(300)은 클라이언트 디바이스(350) 및 서버(360)를 포함한다. 서버(360)는 클라이언트 디바이스(350)로부터의 요청들에 응답하도록 구성될 수 있고, 도 2의 서버측(240)으로부터의 하나 이상의 요소들을 포함할 수 있다. 클라이언트 디바이스(350)는 서버(360)에 페이지 요청들을 제출함으로써 사용자 계정과 (미리 설치된 또는 그렇지 않으면 취득된) 애플리케이션들을 연관시킬 수 있다. 클라이언트 디바이스(350)는 또한 미리 설치된 애플리케이션들에서와 같이 동일한 또는 유사한 페이지 요청들을 서버(360)에 제출함으로써 사용자 계정과 다른 애플리케이션들을 연관시킬 수 있다.
하나의 타입의 페이지 요청은 업데이트 페이지 요청(301)이다. 업데이트 페이지 요청(301)은 이용가능한 애플리케이션 업데이트들에 대한 조회를 수행하기 위해 서버(360)에 전송되는 요청일 수 있다. 업데이트 페이지 요청(301)에 응답하여, 서버(360)는 이용가능한 업데이트를 갖는 클라이언트 디바이스(350)에 저장된 애플리케이션들에 대해 사용자에게 알리도록 구성되는 HTML(HyperText Markup Language) 페이지(303)를 리턴할 수 있다. 일부 예들에서, 서버(360)는 클라이언트 디바이스(350)에 메타데이터를 리턴할 수 있고, 클라이언트 디바이스(350)는 또한 HTML 페이지를 생성하여 사용자에게 제시한다. 업데이트 페이지 요청(301)은 클라이언트 디바이스(350)에 저장된 각각의 애플리케이션에 대한 디지털 영수증을 포함할 수 있다. 영수증은 소프트웨어의 구매 또는 소유를 문서화하기 위한 애플리케이션과 관련된 메타데이터를 포함한다. 하나의 타입의 영수증은 채택된 애플리케이션들 또는 구매된 애플리케이션들과 연관되는 실제 영수증(real receipt)이다. 실제 영수증은 애플리케이션의 설명, 애플리케이션의 버전 넘버, 애플리케이션이 구매된 때, 애플리케이션을 구매한 사람에 관한 정보, 애플리케이션이 처음에 설치된 디바이스에 관한 정보 등을 포함할 수 있다. 다시 말해, 실제 영수증은 애플리케이션이 구매된 전자 디바이스 및/또는 구매자에 고유한 구매의 증명이다. 다른 타입의 영수증은 스터브 영수증이다. 스터브 영수증들은 실제 영수증들 내의 정보의 서브세트를 포함하고, 애플리케이션이 사용자 계정과 채택되지 않았을 때 애플리케이션의 부분이다. 일 예에서, 스터브 영수증은 다른 사본들로부터 이 애플리케이션의 사본을 고유하게 식별한다. 이것은 서버가 애플리케이션의 이 특정 사본(사용자에게 선물되거나 그렇지 않으면 사용자에 의해 취득될 수 있음)이 사용자에 의해 채택될 수 있는지를 결정할 수 있게 할 수 있다. 다른 예에서, 스터브 영수증들은 미리 설치된 애플리케이션들과 연관되도록 영수증들로서 제조자에 의해 발생된다. 제조자에 의해 애플리케이션들의 설치를 촉진시키고 간단하게 하기 위해서, 스터브 영수증들은 실제 영수증들보다 작은 최소량의 정보를 포함할 수 있다. 예를 들어, 스터브 영수증들은 서버에 대한 애플리케이션을 식별하는 애플리케이션 식별자 및 또한 애플리케이션의 버전을 식별하는 버전 넘버를 포함할 수 있다. 애플리케이션 식별자는 애플리케이션과 연관된 이름일 수 있다. 스터브 영수증은 애플리케이션이 구매된 때, 애플리케이션을 구매한 사람 또는 미리 설치된 애플리케이션이 설치된 디바이스에 관한 정보와 같은 구매자에 특정한 정보를 포함하지 않을 수 있다. 다시 말해, 스터브 영수증은 사용자 계정들, 사용자 계정 정보, 또는 클라이언트 디바이스, 컴퓨팅 디바이스, 또는 다른 디바이스에 관한 정보를 포함하지 않을 수 있다. 애플리케이션 식별자는 미리 설치된 애플리케이션과 연관된 이름일 수 있다. 일부 예들에서, 스터브 영수증들은 애플리케이션들이 디바이스 상에 미리 설치중일 때 또는 디바이스가 배달을 위해 준비중일 때 제조자에 의해 발생된다. 다른 예들에서, 스터브 영수증들은 서버(260)에 의해 발생되고 후속하여 미리 설치된 애플리케이션과 연관되도록 클라이언트 디바이스(350)에 전송될 수 있다. 서버(360)는 서버(360)와 클라이언트 디바이스(350) 사이의 주기적으로 스케줄링된 통신들 또는 클라이언트 디바이스(350)에 의한 요청에 응답하여 스터브 영수증들을 생성할 수 있다. 일단 미리 설치된 애플리케이션이 채택되면, 스터브 영수증은 실제 영수증으로 대체될 수 있다. 다른 예에서, 스터브 영수증은 애플리케이션이 취득될 때 클라이언트 디바이스와 연관되지 않은 구매된, 선물된, 또는 그렇지 않으면 취득된 애플리케이션과 연관되도록 영수증으로서 발생된다. 이 스터브 영수증은 제조자, 애플리케이션 분배자, 온라인 스토어, 또는 다른 것에 의해 발생될 수 있다. 일부 경우들에서, 스터브 영수증들은 분배를 위한 애플리케이션들에 대해 처리되고 할당되는 배치(batch)일 수 있다. 스터브 영수증들은 서버에 저장되고 채택 요청들을 인증하는 데 이용된다. 이전 예에서와 같이, 스터브 영수증은 애플리케이션 채택 프로세스 중에 실제 영수증으로 대체될 수 있다. 실제 영수증은 클라이언트 디바이스(350), 서버(360), 또는 클라이언트-서버 시스템(300)의 다른 요소에 의해 발생될 수 있다.
이 예에서, 업데이트 페이지 요청(301)은 미리 설치된 애플리케이션(310)과 연관된 스터브 영수증 A(311), 미리 설치된 애플리케이션(320)과 연관된 스터브 영수증 B(321), 및 애플리케이션(330)과 연관된 실제 영수증(331)을 포함한다. 애플리케이션(330)은 클라이언트 디바이스(350)의 구매 후에 서버(360)로부터 구매되었고 따라서 실제 영수증을 포함한다. 업데이트 페이지 요청(301)에 응답하여, 서버(360)는 미리 설치된 애플리케이션(310), 미리 설치된 애플리케이션(320), 또는 애플리케이션(330)이 서버(360)로부터 다운로드될 수 있는 이용가능한 업데이트를 가지는 경우 사용자에게 알리는 HTML(303)을 생성한다. 채택(즉, 사용자 계정과 링크 또는 연관)되지 않은 미리 설치된 애플리케이션과 연관된 이용가능한 업데이트가 미리 설치된 애플리케이션이 사용자 계정과 채택될 때까지 다운로드될 수 없다. 일단 이용가능한 업데이트가 다운로드되고 클라이언트 디바이스(350)에 설치되면, 스터브 영수증은 애플리케이션이 구매된 때(즉, 이용가능한 업데이트가 설치된 일자), 그것을 구매한 사용자, 및 애플리케이션이 처음에 설치된 전자 디바이스와 같은 다른 메타데이터를 포함하는 실제 영수증으로 대체될 수 있다.
다른 타입의 페이지 요청이 구매 페이지 요청(302)이다. 구매 페이지 요청(302)은 클라이언트 디바이스(350)의 사용자에 의해 구매한 애플리케이션들의 목록을 요청하기 위해 서버(360)에 전송될 수 있다. 요청에 응답하여, 서버(360)는 클라이언트 디바이스(350)의 사용자에 의해 구매한 애플리케이션들 및 옵션으로 클라이언트 디바이스(350)에 설치된 애플리케이션들에 대해 사용자에게 알리도록 구성되는 HTML 페이지(303)를 리턴할 수 있다. 클라이언트 디바이스(350)에 저장되지 않은 구매한 애플리케이션들은 다운로드되고 설치될 수 있다. HTML 페이지(303)는 또한 채택(즉, 사용자 계정과 링크 또는 연관)을 위해 이용가능한 애플리케이션들을 포함할 수 있다. 사용자 계정과 연관되지 않은 클라이언트 디바이스 상의 애플리케이션들은 업데이트 페이지 요청(301) 또는 대안적으로 구매 페이지 요청(302)을 통해 채택을 위해 선택될 수 있다. 채택되지 않은 애플리케이션들은 클라이언트 디바이스 상에 애플리케이션 또는 원하는 애플리케이션을 설치하기 위한 요청으로 영수증들 또는 다른 형태의 자격의 증명을 전송할 수 있다.
구매 페이지 요청(302)은 적하목록(340)을 포함할 수 있다. 적하목록(340)은 미리 설치된 애플리케이션들 또는 그렇지 않으면 취득한 애플리케이션들과 연관된 정보를 저장하도록 구성될 수 있다. 이 정보는 채택을 위해 이용가능한 애플리케이션들에 대해 사용자에게 알리기 위해 서버(360)에 의해 이용될 수 있다. 적하목록(340)은 클라이언트 디바이스(350)의 애플리케이션들의 버전 넘버를 저장하도록 구성되는 목록, 테이블, 또는 다른 데이터 구조를 포함한다. 애플리케이션의 버전 넘버는 스터브 영수증 또는 애플리케이션과 연관된 다른 메타데이터에서 발견될 수 있다. 일 예에서, 적하목록(340)은 클라이언트 디바이스(350)가 스타트 업하는 제1 시간에(the first time) 발생된다. 예를 들어, 적하목록은 스터브 영수증들에 대해 컴퓨터를 검색하기 위해 클라이언트 디바이스에 대한 스포트라이트(즉, 검색) 기능을 활용함으로써 클라이언트 디바이스의 제1 부트 중에 발생될 수 있고, 이것은 후속하여 적하목록을 생성하는 데 이용된다. 적하목록은 사용자 계정과 애플리케이션의 링크 중에 또는 아래 논의될 전자 디바이스의 복구 모드 중에 액세스되도록 구성 서버에 저장될 수 있다.
이 예에서, 클라이언트 디바이스(350)는 후속하여 적하목록(340)을 생성하는 데 이용되는 스터브 영수증(311) 및 스터브 영수증(321)을 배치하기 위해 조회된다. 클라이언트 디바이스(350)의 재포맷 또는 복구 중에, 머리 설치된 및 그렇지 않으면 취득된 애플리케이션들 둘다가 클라이언트 디바이스(350)로부터 삭제될 수 있다. 사용자 계정과 링크된 애플리케이션들은 클라이언트 디바이스(350)에 다시 다운로드될 수 있다. 그러나, 사용자 계정과 링크되지 않은 미리 설치된 애플리케이션들은 완전히 소실될 위험이 있다. 적하목록(340)은 아래에서 더 상세하게 설명되는 바와 같이 채택되지 않은 애플리케이션들의 손실을 방지하기 위한 메커니즘으로서 역할을 한다. 채택을 위해 이용가능한 애플리케이션은 미리 설치된 애플리케이션이 사용자 계정과 링크 또는 연관될 때까지 다운로드될 수 없다. 일단 이용가능한 업데이트가 클라이언트 디바이스(350)에 다운로드되고 설치되면, 적하목록(340)은 현재 채택된 애플리케이션과 연관된 스터브 영수증을 제거하도록 편집될 수 있다. 또한, 설치된 애플리케이션은 실제 영수증을 포함한다. 일부 예들에서, HTML 페이지(303)의 처리 및 검색과 함께 업데이트 페이지 요청(301) 및 구매 페이지 요청(302)의 발생은 클라이언트 디바이스(350)에 설치된 애플리케이션 관리 프로그램(도시되지 않음)에 의해 관리되고 다뤄진다. 애플리케이션 관리 프로그램은 제조자에 대해 독점일 수 있고, 제조자에 속하는 서버들과 구체적으로 통신하도록 구성될 수 있다.
클라이언트-서버 시스템(300)은 또한 클라이언트 디바이스(350)에 의해 취득되지만 사용자 계정과 연관되지 않은(예를 들어, 선물되거나 구매했지만 사용자 계정에 링크되지 않았거나, 또는 다른 수단을 통해 클라이언트 디바이스에 분배된) 애플리케이션들을 채택할 수 있다. 예로서, 취득된 애플리케이션은 업데이트 페이지 요청, 구매 페이지 요청, 또는 다른 페이지 요청을 통해 사용자 계정과 링크될 수 있다. 요청은 스터브 영수증 또는 스터브 영수증과 연관되거나 또는 스터브 영수증으로부터 도출된 메타데이터를 포함할 수 있다. 다른 예로서, 적하목록(340)은 채택되지 않은 애플리케이션들(즉, 아직 사용자 계정과 링크되지 않은 애플리케이션들)이 클라이언트 디바이스(350)에 의해 취득될 때 업데이트될 수 있다.
도 4는 업데이트 페이지 요청을 처리하기 위한 예시적인 방법을 도시한다. 클라이언트 및 서버에 의해 수행되는 액션들을 예시하는 방법(400)은 업데이트 페이지 요청 중에 클라이언트와 서버 사이의 통신들을 관리하도록 구성될 수 있다. 서버에 의해 수행되는 액션들은 분배 센터 또는 서버측에 위치한 다른 컴포넌트에 저장된 분배 프로그램에 의해 실행될 수 있고, 클라이언트에 의해 수행되는 액션들은 클라이언트의 전자 디바이스에 저장된 애플리케이션 관리 프로그램에 의해 실행될 수 있다. 방법(400)은 클라이언트 디바이스에 의해 공급되는 그래픽 사용자 인터페이스에서 업데이트 탭 링크를 선택하는 사용자로 시작할 수 있다. 예시적인 업데이트 탭 링크는 도 5에서 링크(451)일 수 있다. 일단 클라이언트가 업데이트 페이지에 대한 사용자 요청을 수신하였다면(401), 클라이언트는 클라이언트 디바이스에 설치된 애플리케이션들과 연관된 영수증들 또는 다른 형태들의 자격의 증명에 대해 클라이언트 디바이스를 조회 또는 검색한다(403). 다른 예들에서, 조회는 사용자 상호작용 없이 자동으로 시작할 수 있다. 예를 들어, 서버는 미리 결정된 시간 간격 또는 시점에서 클라이언트와 통신함으로써 조회를 개시할 수 있다. 검색은 클라이언트 디바이스의 오퍼레이팅 시스템 또는 대안적으로 클라이언트 디바이스에 저장된 애플리케이션 또는 루틴과 연관된 기능을 이용하여 수행될 수 있다. 발견되는 영수증들 또는 영수증들의 사본이 서버에 전송된다(405). 영수증들은 이더넷, 인터넷, 근거리 네트워크들 등과 같은 임의의 통신 네트워크에 걸쳐서 전송될 수 있다. 서버는 영수증들을 수신하고 그것들을 처리하여 영수증들과 연관된 애플리케이션들이 업데이트들을 갖는지를 결정한다(407). 이것은 도 2의 애플리케이션 데이터베이스(220)와 같은 애플리케이션 데이터베이스에 액세스하고 애플리케이션 데이터베이스에 저장된 애플리케이션의 버전 넘버와 영수증의 버전 넘버를 비교하는 것을 포함할 수 있다. 이것은 또한 클라이언트 디바이스 상에 설치된 애플리케이션이 서버에 의한 분배를 위해 구성됨을 결정함으로써 채택을 위해 애플리케이션이 적격임을 검증하는 것을 포함할 수 있다. 일부 실시예들에서, 서버는 또한 애플리케이션이 이 시점에서 이전에 채택되지 않았음을 검증할 수 있고, 이것은 설치된 애플리케이션의 사본을 고유하게 식별하는 (서버 또는 클라이언트로부터의) 고유 식별자를 검색하는 단계 및 고유 식별자가 임의의 사용자 계정과 연관되지 않았음을 검증하는 단계를 포함할 수 있다. 업데이트들을 갖는 애플리케이션들의 목록은 HTML 페이지(408)를 생성하거나, 또는 데스크톱 애플리케이션 또는 스마트폰 애플리케이션과 같은 일부 다른 사용자 인터페이스를 조작하는 데 이용될 수 있다. HTML 페이지는 이용가능한 업데이트들을 갖는 애플리케이션들에 관련된 정보를 포함할 수 있다. 이 정보는 애플리케이션의 원래 구매일자, 애플리케이션의 설명, 및 업데이트된 애플리케이션에서의 변경들 또는 수정의 설명을 포함할 수 있다. HTML은 하나 이상의 애플리케이션들이 업데이트들을 갖거나 채택을 위해 이용가능함을 클라이언트에 통지하기 위해 클라이언트에 전송될 수 있는 통지의 오직 하나의 예이다. 서버는 그 다음에 클라이언트에 HTML 페이지를 전송할 수 있다(409). 일부 예들에서, 서버는 클라이언트가 영수증들을 전송한 동일한 채널을 통해 HTML 페이지를 전송할 수 있다. 서버는 대안적으로 프리 패키징(pre-packaging)하고 HTML 페이지를 클라이언트에 전송하기보다는, 국부적으로 설치된 클라이언트 애플리케이션을 업데이트하기 위해 클라이언트에 충분한 정보를 전송할 수 있다.
도 5는 온라인 스토어 또는 마켓플레이스의 사용자의 계정과 채택 또는 연관된 미리 설치된 애플리케이션에 대한 업데이트 페이지 요청과 연관된 HTML 페이지의 예를 도시한다. HTML 페이지(450)는 업데이트 페이지를 요청하기 위해 사용자에 의해 선택될 수 있는 업데이트 링크(451)를 포함한다. 업데이트 링크(451)는 애플리케이션 관리 프로그램의 상이한 특징들에 액세스하기 위해 사용자에게 편리하고 빠른 방법을 제공하기 위해 "특징화(featured)", "정상 챠트(top charts)", "카테고리(categories)" 및 "구매(purchases)"와 같은 다른 링크들을 갖는 메뉴바에 배치될 수 있다. 일부 예들에서, 업데이트 링크(451)를 표현하는 아이콘은 이용가능한 업데이트를 갖는 클라이언트 디바이스에 저장된 애플리케이션들의 수를 특정하는 수를 포함할 수 있다. 아이콘 내의 번호는 서버와 클라이언트 디바이스 사이의 주기적인 통신을 통해 사용자가 업데이트 탭 링크(451)를 선택하기 전에 발생될 수 있다.
예를 들어, 클라이언트 디바이스는 서버와 주기적으로 통신하고 이용가능한 업데이트를 갖는 저장된 애플리케이션들의 가장 최신의 버전 넘버를 검색할 수 있다. 이 예에서, 업데이트 링크(451)가 선택되었고, 이용가능한 업데이트를 포함하는 하나의 애플리케이션이 HTML 페이지(450) 내에 제시된다. 하나의 애플리케이션이 애플리케이션을 설명하는 애플리케이션 설명(457)과 함께 제시된다. 애플리케이션 설명(457)은 애플리케이션의 이름, 애플리케이션의 저작자, 애플리케이션의 버전 넘버, 애플리케이션의 공개일, 또는 애플리케이션과 연관된 다른 정보를 포함할 수 있다. 애플리케이션 설명(457)은 애플리케이션에 대한 아이덴티티를 제공하는 아이콘(455) 및 애플리케이션의 이 업데이트된 버전에 구현된 변경들의 시놉시스(459)를 더 포함할 수 있다. 이것은 그가 업그레이드하기를 희망하는지에 대해 사용자가 현명한 결정을 할 수 있도록 사용자에게 정보를 제공할 수 있다. HTML 페이지(450)는 또한 그가 애플리케이션 업데이트를 수신하기를 희망하는 경우 사용자에 의해 선택될 수 있는 선택 가능한 링크(461)를 포함한다. 이용가능한 업데이트들의 수는 헤드라인(453)에 디스플레이된다. 헤드라인(453)은 사용자가 이용가능한 업데이트들의 수를 빠르게 결정할 수 있는 다른 편리한 위치를 제공하도록 구성된다. 일부 예에서, HTML 페이지(450)는 또한 이용가능한 업데이트를 갖는 모든 애플리케이션들을 업데이트하기 위해 헤드라인(453) 옆에 선택가능한 링크를 포함할 수 있다.
도 4로 돌아가면, 클라이언트는 전송된 HTML 페이지를 수신하고 사용자에게 HTML 페이지를 제시한다(411). 도 5에 논의된 바와 같이, HTML 페이지는 이용가능한 업데이트들을 갖는 애플리케이션들, 애플리케이션들의 설명, 및 애플리케이션의 업데이트를 인증하기 위해 사용자에 의해 선택가능한 하나 이상의 링크들을 열거하는 그래픽 사용자 인터페이스를 제시한다. 클라이언트는 애플리케이션을 업데이트하기 위해 사용자 인증을 수신할 수 있다(413). 사용자 인증이 수신되었다면, 클라이언트는 애플리케이션이 업데이트될 수 있기 전에 애플리케이션이 채택을 요구하는지를 결정할 수 있다(415). 이것은 영수증이 스터브 영수증인지를 결정하기 위해 클라이언트에 설치된 애플리케이션의 영수증을 검사하는 것을 포함할 수 있다. 영수증이 스터브 영수증이면, 스터브 영수증과 연관된 애플리케이션은 잠재적으로 아직 사용자 계정에 채택되지 않은 미리 설치된 애플리케이션이다. 따라서, 사용자 인증이 요구되고 클라이언트는 애플리케이션을 사용자 계정에 채택 또는 연관시키기 위해 사용자 인증을 요청하는 사용자에게 HTML 페이지를 제시할 수 있다(417). 사용자 인증은 통신 네트워크를 통한 개인 정보의 전송을 수반할 수 있다. 프라이버시 이유로, HTML 페이지는 인증 프로세스 중에 개인 정보가 전송될 것임을 사용자에게 알리고 이 개인 정보를 통신 네트워크를 통해 전송하기 위한 허가를 요청한다.
도 6은 컴퓨팅 디바이스의 구매와 함께 추가로 제공 및/또는 미리 설치될 수 있는, 애플리케이션들을 채택하기 위한 사용자 인증을 요청하는 HTML 페이지의 예를 도시한다. HTML 페이지(470)는 사용자에게 이용가능한 업데이트들을 갖는 4개의 애플리케이션을 제시하는 업데이트 페이지이다. 이와 같이, 업데이트 링크(471)의 아이콘은 번호 "4"를 포함한다. 이 예에서, 사용자는 "전부 업데이트" 링크(475)를 통해 애플리케이션들의 전부를 업데이트하도록 선택하였다. 그러나, 다른 예들에서, 사용자는 또한 업데이트 링크들(476, 477, 478, 또는 479) 중 하나를 선택함으로써 단일 애플리케이션을 업데이트하도록 선택할 수 있다. 이용가능한 업데이트들을 갖는 애플리케이션들은 미리 설치된 애플리케이션들(472) 및 구매된 애플리케이션(473)을 포함한다. 일부 예들에서, 이 스테이지에서 미리 설치된 애플리케이션들 및 구매된 애플리케이션들의 제시에 차이가 존재하지 않는다. 그러나 일단 사용자가 미리 설치된 또는 그렇지 않으면 사용자 계정과 링크되지 않은 애플리케이션을 업데이트하도록 선택하면, HTML 페이지(470)는 사용자에게 프롬프트(480)를 제시할 수 있다. 프롬프트(480)는 도 7에 더욱 상세하게 설명된다.
도 7은 애플리케이션들을 채택하기 위해 사용자 인증을 요청하는 HTML 페이지의 다른 예를 도시한다. 인증 프롬프트라고도 알려진 프롬프트(480)는 사용자가 컴퓨터 상에 미리 설치되었고 가능하게는 사용자 계정과 연관되지 않은 애플리케이션 또는 간단히 사용자 계정과 연관되지 않은 취득된 애플리케이션을 업데이트하도록 선택할 때 사용자에게 제시된다. 이 예에서, 프롬프트(480)는 아이콘(481), 로그인(482), 패스워드(483), 패스워드 어시스턴스(password assistance)(484), 설명(description)(485), 도움말 링크(486), 계정 생성(account creation)(487), 취소(cancel)(488), 및 서명(sign in)(489)을 포함한다. 설명(485)은 사용자가 애플리케이션들을 업데이트하기를 희망하는 경우 이 전자 디바이스 상에 미리 설치된(즉, 추가로 제공된(bundled)) 애플리케이션들이 사용자 계정과 연관될 것임을 사용자에게 알리기 위해 본문 정보를 제공한다. 설명(485)은 또한, 애플리케이션을 채택하기 위해, 전자 디바이스와 연관된 고유 하드웨어 식별자가 서버에 전송되어 애플리케이션 채택이 인증되어야 하는지를 결정할 것임을 사용자에게 알릴 수 있다. 아이콘(481)은 애플리케이션 관리 프로그램의 애플리케이션 업데이트 기능을 브랜딩(brand)하는 데 이용될 수 있다. 로그인(482) 및 패스워드(483)는 사용자가 미리 설치된 애플리케이션이 연관되기를 바란다는 것을 사용자 계정을 특정할 수 있다. 패스워드 어시스턴스(484)는 패스워드에 대해 도움을 요구하는 사용자에 의해 선택될 수 있다. 일단 원하는 사용자 계정이 입력되었고 정확한 패스워드가 입력되었다면, 사용자는 489에서 서명을 선택함으로써 채택 프로세스를 시작할 수 있다. 사용자가 사용자 계정을 갖지 않거나 사용자가 미리 설치된 애플리케이션들을 새로운 계정과 연관시키기를 희망하는 경우, 사용자는 계정 생성(487)을 선택할 수 있다. 사용자가 취소하기를 희망하고 애플리케이션(들)을 업데이트하지 않기를 희망하는 경우, 사용자는 취소(488)를 선택할 수 있다. 사용자가 대신에 전술한 임의의 요소들에 대한 더욱 상세한 설명을 희망하는 경우, 사용자는 도움말 링크(486)를 선택할 수 있다. HTML 페이지가 전자 디바이스 상에 미리 설치되지 않았지만 그 대신에 별개로 전자 디바이스에 의해 취득된 애플리케이션들을 연관시키기 위해 사용자 인증을 요청하고 있는 다른 예들에서, 설명(485)은 사용자에게 적절한 메시지를 전달하도록 변경될 수 있다. 예를 들어, 설명(485)은 "미래의 업데이트들을 수신하기 위해서, 애플리케이션들 'X', 'Y', 및 'Z'은 이 애플 ID에 할당될 것이다. 당신의 컴퓨터에 저장된 고유 식별자는 적격성을 검증하기 위해 애플에 전송되어야 한다"(To receive future updates, applications 'X', 'Y', and 'Z' will be assigned to this apple ID. A unique identifier stored on your computer must be sent to Apple to verify eligibility)라고 서술할 수 있다.
도 4로 돌아가면, 클라이언트는 애플리케이션을 채택하기 위해 사용자 인증을 수신할 수 있다(419). 이 사용자 인증은 사용자가 도 7에 설명된 바와 같이 클라이언트에 의해 제시된 프롬프트 내로 사용자 계정 및 패스워드를 입력함으로써 수신될 수 있다. 일단 사용자 인증이 클라이언트에 의해 수신되었다면, 클라이언트는 애플리케이션의 채택을 계속할 수 있다(421). 애플리케이션을 사용자 계정에 채택하는 예시적인 프로세스가 아래 도 12에서 설명된다. 일부 예들에서, 모든 미리 설치된 애플리케이션들은 동시에 사용자 계정과 연관되어야 한다. 따라서, 사용자는 하나의 사용자 계정을 갖는 전자 디바이스와 연관된 하나의 미리 설치된 애플리케이션을 선택적으로 링크할 수 없고, 다른 사용자 계정을 갖는 전자 디바이스와 연관된 다른 미리 설치된 애플리케이션을 선택적으로 링크할 수 없다. 전자 디바이스 상의 모든 미리 설치된 애플리케이션들을 동시에 채택하는 것은 채택 프로세스를 관리함에 있어서 계산상 오버헤드를 단순화할 수 있는데, 그 이유는 전자 디바이스와 연관된 고유 하드웨어 식별자는 미리 설치된 애플리케이션들이 채택되었음을 서버에 알리기에 충분할 수 있기 때문이다. 다른 예들에서, 전자 디바이스 상의 미리 설치된 애플리케이션들은 복수의 계정들과 선택적으로 연관될 수 있다. 따라서, 제1 미리 설치된 애플리케이션이 제1 전자 디바이스와 연관될 수 있고, 제2 미리 설치된 애플리케이션이 제2 전자 디바이스와 연관될 수 있다. 그러나, 서버 상의 미리 설치된 애플리케이션들의 관리는 채택된 미리 설치된 애플리케이션들 플러스 전자 디바이스들의 고유 하드웨어 식별자를 저장하는 것을 요구할 수 있다. 이들 예들은 또한 전자 디바이스의 구매와 별개로 취득되는 애플리케이션들에 적용가능하다. 예를 들어, 전자 디바이스 상의 선물 받고 설치된 애플리케이션들의 번들이 개별적으로 또는 그룹으로 사용자 계정과 연관될 수 있다.
도 8은 구매 페이지 요청을 처리하기 위한 예시적인 방법을 도시한다. 클라이언트 및 서버에 의해 수행되는 액션들을 예시하는 방법(500)은 구매 페이지 요청 중에 클라이언트와 서버 사이의 통신들을 관리하도록 구성될 수 있다. 서버에 의해 수행되는 액션들은 분배 센터 또는 서버측에 배치된 다른 컴포넌트에 저장된 분배 프로그램에 의해 실행될 수 있고, 클라이언트에 의해 수행되는 액션들은 클라이언트측의 전자 디바이스에 저장된 애플리케이션 관리 프로그램에 의해 실행될 수 있다. 일부 예들에서, 분배 센터에 저장된 분배 프로그램 및 전자 디바이스에 저장된 애플리케이션 관리 프로그램은 업데이트 페이지 요청 중에 도 4의 방법(400)을 또한 수행하도록 구성될 수 있다. 방법(500)은 클라이언트 디바이스에 의해 공급되는 그래픽 사용자 인터페이스에서 구매 탭 링크를 선택하는 사용자에 의해 시작할 수 있다. 예시적인 구매 탭 링크는 도 9에서 링크(551)일 수 있다. 클라이언트가 구매 페이지를 위한 사용자 요청을 수신하면(501), 클라이언트는 애플리케이션 정보에 대한 검색 또는 조회를 수행할 수 있다. 이 예시적인 방법에서, 애플리케이션 정보는 적하목록 및/또는 영수증들을 포함할 수 있다(503). 다른 예들에서, 애플리케이션 정보는 사용자 계정과 연관되지 않은 애플리케이션 또는 소프트웨어 패키지를 포함할 수 있고, 여기서 사용자 계정은 소프트웨어 패키지에 대한 소유권을 갖는다. 소유권은 디지털 영수증과 같은 자격의 증명일 수 있다. 일부 예들에서, 적하목록은 도 3의 적하목록(340)과 유사하거나 또는 실질적으로 유사할 수 있다. 검색 또는 조회는 클라이언트에서 이용가능한 하나 이상의 프로그램들 또는 기능들에 의해 수행될 수 있다. (아직 채택되지 않은 애플리케이션에 대한 자격의 증명 또는 소유권과 같은) 적하목록, 영수증들(실제 및 스터브), 사용자 계정 정보 등을 포함할 수 있는 애플리케이션 정보가, 일부 경우들에서, 소프트웨어 채택 요청으로서 서버에 전송될 수 있다(505). 애플리케이션 정보는 설치된 애플리케이션들, 설치를 위해 이용가능한 애플리케이션들, 및 채택될 수 있는 애플리케이션들에 대해 사용자에게 알리는 구매 페이지를 생성할 목적으로 서버에 전송된다(505). 전송되는 애플리케이션 정보는 사용자가 클라이언트에서 서명했는지에 의존할 수 있다. 예를 들어, 사용자가 클라이언트에서 서명된 경우 사용자 계정 정보는 액세스가능하고 애플리케이션 정보의 부분으로서 전송될 수 있다. 위에서 논의한 바와 같이, 사용자 계정 정보는 사용자 계정과 연관된 애플리케이션들에 관한 정보를 포함할 수 있다. 유사하게, 영수증들은 클라이언트가 구동중인 전자 디바이스와 연관된 애플리케이션들에 관한 정보를 포함할 수 있다. 적하목록은 전자 디바이스 상에 원래 미리 설치된 애플리케이션들의 정보 또는 사용자가 소유권을 갖지만 사용자 디바이스 상에 설치되지 않거나 사용자 계정과 연관되지 않은 애플리케이션들의 정보를 포함할 수 있다. 이것들은 오직 애플리케이션 정보의 예시적인 타입이고, 다른 타입들의 애플리케이션 정보가 또한 구매 페이지를 생성하기 위해 서버에 전송될 수 있다.
서버는 전송된 애플리케이션 정보(즉, 적하목록, 영수증들, 사용자 계정, 및 다른 사용자 계정 정보)를 수신하고 수신된 정보에 기초하여 애플리케이션들의 하나 이상의 목록들을 생성한다(507). 애플리케이션 목록들 및 애플리케이션 목록들을 생성하는 데 이용된 프로세스는 수신된 정보에 따라 달라질 수 있다. 제1 애플리케이션 목록은 클라이언트의 전자 디바이스에 설치되는 애플리케이션들을 포함할 수 있다. 제2 애플리케이션 목록은 사용자 계정과 연관되는 애플리케이션들을 포함할 수 있고, 클라이언트의 전자 디바이스에 설치될 수 있다. 제3 애플리케이션 목록은 가능하게는 사용자 계정과 링크될 수 있는 애플리케이션들을 포함할 수 있다. 제3 목록 내의 애플리케이션들은 클라이언트의 전자 디바이스에 미리 설치된 애플리케이션들 및/또는 클라이언트가 소유권을 갖지만 채택되거나 설치되지 않은 애플리케이션들을 포함할 수 있다. 다른 애플리케이션 목록들이 또한 사용자 계정과 연관되지 않은 구매된 또는 그렇지 않으면 취득된 애플리케이션들과 같이 발생될 수 있다. 서버에 의해 수신된 애플리케이션 정보에 따라, 전술한 애플리케이션 목록들 중 하나 이상이 발생될 수 있다. 일부 예들에서, 애플리케이션 목록들의 발생은 도 2에서 애플리케이션 데이터베이스(220)와 같은 애플리케이션 데이터베이스에 액세스하는 것을 수반할 수 있다. 서버는 발생된 애플리케이션 목록들에 기초하여 HTML 페이지를 생성할 수 있다(508). HTML 페이지의 발생은 애플리케이션 목록들 내의 애플리케이션들과 연관된 메타데이터를 수신하기 위해 애플리케이션 데이터베이스에 액세스하는 것을 포함할 수 있다. 예를 들어, 메타데이터는 애플리케이션의 이름, 애플리케이션의 설명, 애플리케이션의 버전 넘버, 애플리케이션의 구매일자, 애플리케이션과 연관된 이미지 등을 포함할 수 있다. 일단 HTML 페이지가 발생되면, 서버는 클라이언트에 HTML 페이지를 전송한다(509). 클라이언트는 후속하여 사용자에게 HTML 페이지를 제시한다(511). 사용자가 클라이언트에서 서명했는지에 따라, 상이한 정보가 사용자에게 제시된다.
도 9는 사용자가 서명되지 않을 때 구매 페이지 요청과 연관된 HTML 페이지의 예를 도시한다. 이 예에서, HTML 페이지(550)는 채택을 위해 이용가능한 애플리케이션들의 목록(557)을 사용자에게 제시한다. 채택을 위해 이용가능한 3개의 애플리케이션들 중에서, 애플리케이션들 "iMovie" 및 "GarageBand"은 각각 텍스트(558 및 559)에 의해 예시된 바와 같이 이용가능한 업데이트를 갖는다. HTML 페이지(550)는 구매 링크(551)를 포함한다. 일부 예들에서, 구매 링크(551)는 도 5의 업데이트 링크(451)와 동일하거나 또는 실질적으로 동일하게 기능할 수 있다. HTML 페이지(550)는 채택을 위해 이용가능한 애플리케이션들의 수에 대해 사용자에게 알리는 헤드라인(553)을 더 포함한다. 설명(555)은 애플리케이션을 채택하기를 희망하는지 여부를 결정함에 있어서 사용자를 돕는 것의 희망을 가지고 채택 프로세스의 설명을 사용자에게 제공한다. HTML 페이지(550)는 또한 사용자가 그의 사용자 계정과 연관되는 구매들에 관한 정보를 수신하기 위해 그의 사용자 계정에 서명해야 함을 사용자에게 알리기 위한 명령어들(552)을 포함한다. 이 예에서, HTML 페이지(550)는 사용자에 의해 선택될 때 채택 프로세스를 개시하는 하나의 수락 링크(accept link)(554)를 포함한다. 다른 예들에서, HTML 페이지(550)는 채택을 위해 이용가능한 각각의 애플리케이션에 대한 수락 링크를 포함할 수 있고, 따라서 사용자가 채택을 위해 이용가능한 단일 애플리케이션, 채택을 위해 이용가능한 복수의 애플리케이션들, 또는 채택을 위해 이용가능한 모든 애플리케이션들을 수락하는 것을 선택할 수 있게 한다. 사용자는 터치 스크린, 마우스 클릭, 키보드, 또는 다른 사용자 입력 디바이스들을 통해 수락 링크(554)를 선택할 수 있다.
도 10은 사용자가 서명될 때 구매 페이지 요청과 연관된 HTML 페이지의 다른 예를 도시한다. HTML 페이지(560)는 사용자에게 2개의 애플리케이션 목록을 제시한다. 이 예에서, 애플리케이션 목록(562)의 제시는 채택을 위해 이용가능한 애플리케이션들을 포함하고, 애플리케이션 목록(564)의 제시는 이전에 구매한 애플리케이션들을 포함한다. 2개의 애플리케이션 목록은 HTML 페이지(560)의 독립 및 개별 부분들에 제시된다. 애플리케이션 목록(564)의 제시는 애플리케이션의 이름, 애플리케이션과 연관된 이미지, 소프트웨어 벤더, 구매일자, 및 상태(566)와 같은 이전에 구매한 애플리케이션들과 연관된 메타데이터를 포함한다. 상태(566)는 구매된 애플리케이션의 현재 상태를 디스플레이하도록 구성될 수 있다. 예를 들어, 상태(566)는 애플리케이션이 현재 클라이언트의 전자 디바이스에 설치될 때 "설치된 상태"(installed state)에 있을 수 있다. 상태(566)는 이 상태에 있을 때 텍스트 "설치됨"(INSTALLED)을 디스플레이하도록 구성될 수 있다. 이 예에서, 4개의 구매된 애플리케이션들은 클라이언트의 전자 디바이스에 모두 설치된다. 다른 예로서, 상태(566)는 애플리케이션이 구매되지만 클라이언트의 전자 디바이스에 설치되지 않을 때 "설치 상태"(install state)에 있을 수 있다. 예를 들어, 애플리케이션은 이 디바이스에 아직 다운로드되지 않았을 수 있거나 또는 애플리케이션은 디바이스로부터 선택적으로 삭제되었을 수 있다. 상태(566)는 이 상태에 있을 때 텍스트 "설치"(INSTALL)를 디스플레이하도록 구성될 수 있다. 또한, 상태(566)는 "설치 상태"에 있을 때 사용자 선택가능한 링크를 포함할 수 있다. 사용자 선택가능한 링크를 선택하면, 결과적으로, 애플리케이션이 전자 디바이스에 다운로드되고 설치되게 된다.
도 8로 돌아가면, 클라이언트는 애플리케이션을 채택하기 위한 요청으로서 사용자 입력을 수신할 수 있다(513). 일부 예들에서, 사용자 입력은 도 9의 수락 링크(554)를 선택하는 것일 수 있다. 클라이언트는 사용자 계정에 애플리케이션을 링크하도록 사용자 인증을 요청할 수 있다(515). 사용자 계정에 애플리케이션을 링크하도록 사용자 인증을 요청하기 위한 인증 프롬프트를 포함하는 HTML 페이지의 예가 도 11에 도시된다.
도 11은 인증 프롬프트를 포함하는 구매 페이지 요청과 연관된 HTML 페이지의 다른 예를 도시한다. HTML 페이지(570)는 사용자가 미리 설치된 애플리케이션들의 채택을 수락하는 것을 선택할 때 인증 프롬프트(575)를 포함할 수 있다. 사용자가 미리 설치된 애플리케이션들의 채택을 수락하는 것을 선택한 후에 인증 프롬프트(575)는 서버로부터 전송된 HTML 페이지의 부분으로서 포함되고 사용자에게 제시될 수 있다. 일부 예들에서, 인증 프롬프트(575)는 도 7의 인증 프롬프트(480)와 동일하거나 실질적으로 동일할 수 있다.
도 8로 돌아가면, 클라이언트는 사용자 계정에 애플리케이션을 링크하기 위해 사용자 인증을 수신할 수 있다. 사용자 계정은 사용자 인증 중에 입력되는 사용자 계정이다. 예를 들어, 사용자는 애플리케이션이 연관되는 사용자의 사용자명 및 패스워드를 입력할 수 있다. 사용자 인증이 클라이언트에 의해 수신된 후에, 클라이언트는 애플리케이션의 채택을 계속할 수 있다(519). 사용자 계정에 애플리케이션을 채택하는 예시적인 프로세스가 아래 도 12에서 설명된다. 일부 예들에서, 모든 미리 설치된 애플리케이션들은 동시에 사용자 계정과 연관되어야 한다. 따라서, 사용자는 하나의 사용자 계정을 갖는 전자 디바이스와 연관된 하나의 미리 설치된 애플리케이션을 선택적으로 링크할 수 없고, 다른 사용자 계정을 갖는 전자 디바이스와 연관된 다른 미리 설치된 애플리케이션을 선택적으로 링크할 수 없다. 전자 디바이스 상의 모든 미리 설치된 애플리케이션들을 동시에 채택하는 것은 채택 프로세스를 관리함에 있어서 계산상 오버헤드를 단순화할 수 있는데, 그 이유는 전자 디바이스와 연관된 고유 하드웨어 식별자는 미리 설치된 애플리케이션들이 채택되었음을 서버에 알리기에 충분할 수 있기 때문이다. 전자 디바이스 상의 미리 설치된 애플리케이션들이 복수의 계정들과 선택적으로 연관될 수 있는 다른 예들에서, 서버 상의 미리 설치된 애플리케이션들의 관리는 전자 디바이스들의 고유 하드웨어 식별자에 부가하여 채택된 미리 설치된 애플리케이션들을 저장하는 것을 요구할 수 있다.
도 12는 사용자 계정에 미리 설치된 애플리케이션을 링크하기 위한 예시적인 방법을 도시한다. 클라이언트와 서버 사이에 수행되는 통신 프로토콜을 예시하는 방법(600)은 사용자 계정에 미리 설치된 애플리케이션을 링크하는 프로세스를 관리하도록 구성될 수 있다. 서버에 의해 수행되는 액션들은 분배 센터 또는 서버측에 배치된 다른 컴포넌트에서의 프로그램에 의해 실행될 수 있고, 클라이언트에 의해 수행되는 액션들은 클라이언트의 전자 디바이스에 저장된 애플리케이션 관리 프로그램에 의해 실행될 수 있다. 애플리케이션 관리 프로그램은 클라이언트에 저장된 소프트웨어 애플리케이션들을 설치, 삭제, 유지, 또는 그렇지 않으면 관리하도록 구성될 수 있다. 일부 예들에서, 분배 센터에 저장된 분배 프로그램 및 전자 디바이스에 저장된 애플리케이션 관리 프로그램은 또한 도 4의 방법(400) 및/또는 도 5의 방법(500)을 수행하도록 구성될 수 있다. 일부 예들에서, 방법(600)은 도 4의 "애플리케이션 채택을 계속한다"(421) 또는 도 8의 "애플리케이션 채택을 계속한다"(519) 후에 수행될 수 있다.
방법(600)은 고유 하드웨어 식별자를 생성할 수 있다(620). 고유 하드웨어 식별자는 애플리케이션의 유효한 소유권 또는 자격의 디지털 영수증으로서 역할을 할 수 있다. 고유 하드웨어 식별자는 전자 디바이스에 특정한 하나 이상의 식별자들을 결합하는 것으로부터 발생될 수 있다. 예를 들어, 고유 하드웨어 식별자는 전자 디바이스의 하드웨어 컴포넌트들과 연관된 하나 이상의 식별자에 기초할 수 있다. 하드웨어 컴포넌트들의 식별자들은 고유하기 때문에, 2개의 고유 하드웨어 식별자가 동일하지 않다. 예로서, 고유 하드웨어 식별자는 디바이스의 이더넷 하드웨어 어드레스와 디바이스의 로직 보드 일련 번호를 결합함으로써 발생될 수 있다. 로직 보드 일련 번호 및 이더넷 하드웨어 어드레스는 접합, 해싱, 인코딩 스킴, 또는 다른 데이터 조작 알고리즘을 이용하여 결합될 수 있다. 고유 하드웨어 식별자는 미리 설치된 애플리케이션을 사용자 계정과 연관시키기 위한 요청의 부분으로서 클라이언트로부터 서버로 전송될 수 있다(630). 미리 설치된 애플리케이션들이 선택적으로 채택될 수 있는 다른 예들에서, 미리 설치된 애플리케이션과 연관된 메타데이터는 또한 클라이언트로부터 서버로 전송된다. 메타데이터는 서버에 상세들을 제공하여 서버가 사용자가 사용자 계정으로 채택하는 것을 시도하고 있는 선택된 미리 설치된 애플리케이션을 식별할 수 있게 한다. 서버가 고유 하드웨어 식별자 및 옵션으로 메타데이터를 수신한 후에, 서버는 미리 설치된 애플리케이션이 이미 사용자 계정과 링크되었는지를 결정함으로써 자격의 증명을 검증할 수 있다(640). 서버는 고유 하드웨어 식별자에 대한 고유성 테이블을 검사함으로써 애플리케이션이 이미 링크되었는지를 결정할 수 있다. 고유성 테이블은 이미 미리 설치된 애플리케이션들을 채택한 전자 디바이스들의 고유 하드웨어 식별자를 포함하는 엔트리들을 저장하기 때문에, 테이블에서 발견되지 않는 고유 하드웨어 식별자는 전자 디바이스가 아직 그의 미리 설치된 애플리케이션들 중 임의의 것을 연관시키지 않았음을 의미한다. 방법(600)이 미리 설치된 애플리케이션들의 선택적인 채택을 허용하면, 결정은 고유 하드웨어 식별자와 연관된 엔트리에 대해 고유성 테이블을 조회하는 것을 포함할 수 있다. 고유 하드웨어 식별자가 발견되면, 결정은 선택된 미리 설치된 애플리케이션이 이전에 채택되었는지를 결정하기 위해 미리 설치된 애플리케이션의 메타데이터를 갖는 엔트리를 평가(evaluate)할 수 있다.
고유성 테이블을 검색(즉, 조회)하는 것으로부터 애플리케이션이 이전에 채택되었음이 결정되면, 클라이언트에 에러가 전송된다(641). 클라이언트는 에러를 수신하고 사용자에게 애플리케이션이 이미 채택되었다는 경고를 제시한다(642). 도 13은 채택 경고의 예를 도시한다. 경고(700)는 사용자가 그의 사용자 계정과 연관시키기를 희망하는 하나 이상의 애플리케이션들이 할당될 수 없음을 사용자에게 통지하는데, 그 이유는 미리 설치된 애플리케이션들은 상이한 사용자 계정에 이미 할당되었기 때문이다. 다른 한편, 고유성 테이블을 검색하는 것으로부터 애플리케이션이 이전에 채택되지 않았음이 결정되면, 서버는 미리 설치된 애플리케이션이 전자 디바이스의 원래 또는 디폴트 구성의 부분인지를 결정하기 위해 온전성 체크(sanity check)를 수행할 수 있다(650). 다시 말해, 서버는 전자 디바이스가 미리 설치된 애플리케이션이 설치되어 제조자로부터 구성되고 배달되었는지를 결정한다. 이 온전성 체크는 하나의 전자 디바이스에 원래 설치된 미리 설치된 애플리케이션을 다른 전자 디바이스에 복사하고 불법 사본을 사용자 계정에 연관시키는 것을 시도하는 것으로부터 사용자를 방지한다. 서버는 고유 하드웨어 식별자와 연관된 전자 디바이스의 원래 구성을 수신하기 위해 고유 하드웨어 식별자를 갖는 구성 서버를 조회할 수 있다. 원래 구성은 미리 설치된 애플리케이션들의 목록을 결정하기 위해 검사될 수 있다. 미리 설치된 애플리케이션들의 이러한 목록은 애플리케이션이 채택을 위해 이용가능한지를 결정하기 위해 사용자가 채택을 시도하는 애플리케이션과 비교될 수 있다. 다른 예들에서, 원래 구성들을 조회하는 데 이용되는 데이터베이스의 사본이 분배 센터에 저장될 수 있고, 따라서 고유 하드웨어 식별자의 평가가 분배 센터에서 완전히 수행될 수 있게 한다. 이것은 구성 서버에 대한 네트워크 트래픽을 줄일 수 있다.
사용자가 채택하기를 희망하는 애플리케이션이 전자 디바이스의 원래 구성의 부분이 아님이 결정되면, 에러 메시지가 클라이언트에 전송될 수 있다(651). 일단 클라이언트가 에러 메시지를 수신하면, 클라이언트는 전자 디바이스가 채택을 위해 적격하지 않다는 경고를 사용자에게 제시할 수 있다(642). 도 14는 채택 경고의 다른 예를 도시한다. 경고(750)는 애플리케이션이 사용자 계정에 할당될 수 없음을 사용자에게 통지하는데, 그 이유는 전자 디바이스(본원에서 "Mac"이라 칭함)가 사용자 계정과 미리 설치된 애플리케이션들을 연관시키는 데 적격하지 않기 때문이다. 다른 예들에서, 경고(750)는 전자 디바이스가 미리 설치된 애플리케이션들로 원래 구성되지 않았음을 사용자에게 알릴 목적으로 제공되는 그림들 또는 다른 문장들을 포함할 수 있다. 다른 한편, 사용자가 채택하기를 희망하는 애플리케이션이 전자 디바이스의 원래 구성의 부분임이 결정되면, 만약에 있다면 부가적인 온전성 체크들이 수행될 수 있다. 일단 서버가 미리 설치된 애플리케이션이 사용자 계정에 링크될 수 있음을 검증하였다면, 서버는 전자 디바이스의 미리 설치된 애플리케이션들이 채택되었음(그리고 따라서 다른 사용자 계정에 의해 채택될 수 없음)을 표시하기 위해 서버에 저장된 고유성 테이블 및 사용자 계정을 업데이트할 수 있다(660). 위에서 논의한 바와 같이, 채택된 미리 설치된 애플리케이션이 이제 사용자 계정과 연관되는 전자 디바이스의 미리 설치된 애플리케이션이고, 따라서, 애플리케이션과 연관된 업데이트들 및 재-다운로드들이 사용자 계정과 연관된 전자 디바이스에 다운로드될 수 있다. 서버는 요청이 승인되었음을 클라이언트에 알리기 위해 클라이언트에 승인 메시지를 전송할 수 있다(670). 승인 메시지는 미리 설치된 애플리케이션이 이제 서버 상의 사용자 계정과 연관됨을 클라이언트에 알리거나 통지하는 데, 그 이유는 링크 요청이 진본 요청인 것으로 평가되고 발견되었기 때문이다. 클라이언트는 승인 메시지를 수신하고 클라이언트에 저장된 사용자 계정과 미리 설치된 애플리케이션을 링크한다(680). 일부 예들에서, 클라이언트는 또한 적하목록으로부터 사용자 계정과 링크된 미리 설치된 애플리케이션과 연관된 메타데이터를 제거함으로써 전자 디바이스에 저장된 적하목록을 업데이트할 수 있다. 미리 설치된 애플리케이션과 연관된 메타데이터를 제거하는 것은 애플리케이션이 채택가능한지를 결정하기 위해 수행되는 검사들을 최소화함으로써 채택 프로세스를 간단하게 할 수 있다. 그 다음 클라이언트는 애플리케이션을 다운로드하기 위해 분배 센터 또는 서버의 다른 컴포넌트들에 요청들을 전송할 수 있다(690).
방법(600)은 또한 나중에 설치된 애플리케이션(post-installed application)(즉, 사용자에 의해 설치된 애플리케이션)의 채택을 위해 구성될 수 있다. 나중에 설치된 애플리케이션들은 디바이스가 제조자를 떠난 후 또는 디바이스가 사용자에 의해 구매된 후에 사용자의 디바이스 상에 설치된 선물받은, 구매된, 교환된(redeemed), 또는 그렇지 않으면 취득된 애플리케이션들을 포함한다. 예를 들어, 방법(600)은 고유 하드웨어 식별자를 생성하는 대신에 애플리케이션과 연관된 고유 식별자를 생성할 수 있다(620). 고유 식별자는 애플리케이션의 자격의 증명 또는 구매의 증명을 나타내는 데 이용되는 애플리케이션과 연관된 메타데이터일 수 있다. 고유 식별자는 애플리케이션의 메타데이터에 저장될 수 있고 후속하여 클라이언트 디바이스에 의해 검색될 수 있다. 대안적으로, 고유 식별자는 애플리케이션의 메타데이터에 기초하여 발생될 수 있다. 예를 들어, 고유 식별자는 애플리케이션의 고유 또는 비-고유 영수증, 애플리케이션이 취득된 일자 및/또는 장소와 같은 애플리케이션을 수신하는 것과 관련된 메타데이터, 클라이언트 디바이스와 연관된 고유 식별자, 및/또는 애플리케이션 또는 클라이언트 디바이스와 연관된 다른 메타데이터로부터 도출될 수 있다.
일부 예들에서, 통신 프로토콜은 고유 식별자가 미리 설치된 애플리케이션(즉, 제조자에 의해 설치된 애플리케이션) 또는 나중에 설치된 애플리케이션(즉, 사용자에 의해 설치된 애플리케이션)과 연관되는지에 의존할 수 있다. 예를 들어, 통신 프로토콜은 클라이언트로부터 수신된 고유 식별자가 나중에 설치된 애플리케이션과 연관될 때 애플리케이션이 전자 디바이스의 원래 구성의 부분이고, 따라서 전자 디바이스의 원래 구성의 부분이 아님을 확인하는 것(650)을 스킵할 수 있다. 그 대신, 서버는 유효 고유 식별자들의 데이터베이스와 고유 식별자를 비교함으로써 애플리케이션의 자격의 증명 또는 소유권을 검증할 수 있다. 이것은 서버가 애플리케이션의 유효 및 무효 사본들 사이에서 구별하고 분간할 수 있게 할 수 있다. 일단 자격의 증명이 검증되면, 애플리케이션은 사용자 계정의 부분으로서 채택된다. 애플리케이션이 미리 설치된 또는 나중에 설치된 것인지를 결정하기 위해서, 서버는 고유 식별자와 연관된 플래그 또는 다른 메타데이터를 분석할 수 있다.
또 다른 예들에서, 통신 프로토콜은 클라이언트로부터 수신된 고유 식별자가 클라이언트 전자 디바이스와 연관된 메타데이터에 기초하는지에 의존할 수 있다. 예를 들어, 애플리케이션이 이미 링크되었는지를 결정하기 위해 서버에 의해 액세스되는 데이터베이스 또는 테이블은 고유 식별자에 의존할 수 있다. 제1 데이터베이스는 클라이언트 전자 디바이스와 연관된 고유 식별자들에 대해 서버에 의해 액세스되고 업데이트될 수 있다. 제1 데이터베이스는 전자 디바이스의 하드웨어에 기초하여 입력되고(keyed) 검색가능할 수 있다. 제2 데이터베이스는 클라이언트 디바이스와 연관되지 않은 고유 식별자들에 대해 서버에 의해 액세스되고 업데이트될 수 있다. 다시 말해, 이들 고유 식별자들은 오로지 애플리케이션과 연관된 자격의 증명에 기초하고, 따라서, 제2 데이터베이스를 검색하는 것은 자격의 증명 또는 자격의 증명의 어떤 변형에 기초할 수 있다.
도 15는 전자 디바이스에서의 복구 모드에 대한 예시적인 프로세스를 도시한다. 일반적으로, 복구 모드는 전자 디바이스가 애플리케이션들 또는 심지어 오퍼레이팅 시스템에 대한 내부 치명적 에러들을 해결할 수 있게 할 수 있다. 전체 오퍼레이팅 시스템을 복구하는 심각한 경우에, 이 접근법은 심지어 저장 유닛을 재포맷하고 오퍼레이팅 시스템을 재설치할 수 있다. 복구 모드의 특정 구현에 의존하여, 재설치되는 오퍼레이팅 시스템은 달라질 수 있다. 예로서, 재설치된 오퍼레이팅 시스템은 전자 디바이스에 원래 설치된 오퍼레이팅 시스템일 수 있고, 이것은 그 다음에 수동으로 및/또는 자동으로 업데이트될 수 있다. 다른 예로서, 재설치된 오퍼레이팅 시스템은 원래 설치된 오퍼레이팅 시스템 이후에 공개된 하나 이상의 업데이트들을 포함할 수 있다. 또 다른 예들에서, 제조자로부터의 가장 새로운 이용가능한 오퍼레이팅 시스템이 재설치될 수 있다. 일반적으로, 복구 모드는 오직 미리 설치된 애플리케이션들을 재설치하지 않고 오퍼레이팅 시스템을 재설치한다. 이러한 이유로, 사용자 계정과 연관 또는 링크되지 않은 미리 설치된 애플리케이션들이 소실될 수 있다. 프로세스(800)는 복구 모드 중에 구성 서버로부터 적하목록을 검색함으로써 이러한 문제를 해결한다.
프로세스(800)는 복구 모드에 들어감으로써 시작할 수 있다(820). 복구 모드에 들어가는 것은 제조자로부터 기본적인 오퍼레이팅 시스템의 다운로드를 트리거할 수 있다. 기본적인 오퍼레이팅 시스템은 고유 하드웨어 식별자를 생성하도록 구성될 수 있다(830). 고유 하드웨어 식별자는 전술한 방법들 중 하나를 이용하여 발생될 수 있다. 일단 고유 하드웨어 식별자가 발생되면, 기본적인 오퍼레이팅 시스템은 구성 서버에 고유 하드웨어 식별자를 전송할 수 있다(840). 수신된 고유 하드웨어 식별자에 기초하여, 구성 서버는 전자 디바이스에 미리 설치된 애플리케이션들 및 그것들의 애플리케이션들의 버전 넘버를 포함하는 적하목록을 리턴할 수 있다. 적하목록은 또한 전자 디바이스의 소유자가 소유권을 갖는 다른 애플리케이션들을 포함할 수 있다. 일부 예들에서, 통신 서버는 전자 디바이스가 이미 애플리케이션들을 채택했는지를 결정하기 위해 분배 서버와 통신할 수 있다. 고유 하드웨어 식별자가 분배 센터의 고유성 테이블에서 발견되면, 전자 디바이스의 미리 설치된 애플리케이션들 중 하나 이상이 이미 채택되었다. 따라서, 통신 서버는 빈 적하목록 또는 이미 채택된 특정 미리 설치된 애플리케이션들을 포함하지 않는 적하목록을 리턴할 수 있다. 이것은 미리 설치된 애플리케이션들이 이미 채택되었을 때 구매 페이지 요청이 채택을 위해 사용자에게 미리 설치된 애플리케이션들을 제시하는 발생들(occurrences)을 최소화할 수 있다. 분배 센터가 구성 데이터베이스의 로컬 사본을 저장하는 다른 예들에서, 고유 하드웨어 식별자는 구성 서버보다는 분배 센터에 전송될 수 있다. 고유 하드웨어 식별자를 이용하여, 분배 센터는 미리 설치된 애플리케이션들 및 그것들의 애플리케이션들 중에서, 사용자 계정과 이미 연관된 것들을 결정할 수 있다.
구성 서버(또는 분배 센터)는 전자 디바이스와 딸려 오는 오퍼레이팅 시스템의 버전 넘버 및 전자 디바이스의 미리 설치된 애플리케이션들에 기초하는 적하목록을 리턴할 수 있다(850). 다른 예들에서, 적하목록은 또한 사용자 계정과 링크되지 않은 전자 디바이스의 나중에 설치된 애플리케이션들을 포함할 수 있다(850). 구성 서버에 저장된 적하목록은 전자 디바이스가 사용자 계정과 연관되지 않은 애플리케이션을 설치할 때 주기적으로 업데이트될 수 있다. 이것은 네트워크 고장, 서버 고장, 또는 이 시점에 사용자 계정과 애플리케이션을 연관시키지 않기 위한 사용자 선택 옵션과 같은 다양한 이유로 발생할 수 있다. 오퍼레이팅 시스템의 버전 넘버는 오퍼레이팅 시스템 서버에 전송되고(860), 이것은 또한 전자 디바이스에 원래 오퍼레이팅 시스템을 전송한다. 전자 디바이스는 원래 오퍼레이팅 시스템을 수신하고(870) 옵션으로 원래 오퍼레이팅 시스템을 설치한다. 전자 디바이스는 이제 원래 오퍼레이팅 시스템의 신선한 사본(fresh copy) 및 전자 디바이스의 미리 설치된 애플리케이션들에 기초한 적하목록을 포함한다. 사용자가 미리 설치된 애플리케이션을 사용자 계정과 연관시키지 않은 경우, 사용자는 전술한 바와 같이 구매 페이지 링크를 선택함으로써 그렇게 할 수 있다.
본 개시의 범위 내의 실시예들은 또한 거기에 저장된 컴퓨터 실행가능한 명령어들 또는 데이터 명령어들을 실행하거나 갖기 위한 유형의(tangible) 및/또는 비-일시적 컴퓨터 판독 가능한 저장 매체를 포함할 수 있다. 이러한 비-일시적 컴퓨터 판독 가능한 저장 매체는 위에서 논의한 바와 같이 임의의 특수 목적 프로세서의 기능 설계를 포함하는, 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 예시적으로, 그리고 비한정적으로, 이러한 비-일시적 컴퓨터 판독 가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 컴퓨터 실행 가능한 명령어들, 데이터 구조들, 또는 프로세서 칩 설계의 형태로 원하는 프로그램 코드 수단을 운반 또는 저장하는 데 이용될 수 있는 임의의 다른 매체를 포함할 수 있다. 정보가 네트워크 또는 다른 통신 접속(하드와이어드(hardwired), 무선, 또는 그의 결합)을 통해 컴퓨터에 전달 또는 제공될 때, 컴퓨터는 접속을 컴퓨터 판독 가능한 매체로서 적절하게 본다. 따라서, 임의의 이러한 접속은 적절하게 컴퓨터 판독 가능한 매체라고 칭해진다. 위의 것의 결합들은 또한 컴퓨터 판독 가능한 매체의 범위 내에 포함되어야 한다.
컴퓨터 실행 가능한 명령어들은 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터, 또는 특수 목적 프로세싱 디바이스가 특정 기능 또는 기능들의 그룹을 수행하도록 하는 명령어들 및 데이터를 포함한다. 컴퓨터 실행 가능한 명령어들은 또한 독립형 또는 네트워크 환경들에서 컴퓨터들에 의해 실행되는 프로그램 모듈들을 포함한다. 일반적으로, 프로그램 모듈들은 루틴들, 프로그램들, 컴포넌트들, 데이터 구조들, 오브젝트들, 및 특정 태스크들을 수행하거나 또는 특정 추상 데이터 타입들을 구현하는 특수 목적 프로세서들 등의 설계에 내재하는 기능들을 포함한다. 컴퓨터 실행 가능한 명령어들, 연관된 데이터 구조들, 및 프로그램 모듈들은 본원에 개시된 방법들의 단계들을 실행하기 위한 프로그램 코드 수단의 예들을 표현한다. 이러한 실행 가능한 명령어들의 특정 시퀀스 또는 연관된 데이터 구조들은 이러한 단계들에 설명된 기능들을 구현하기 위한 대응하는 동작들의 예들을 표현한다.
이 기술분야의 통상의 기술자들은, 본 개시의 다른 실시예들이 퍼스널 컴퓨터들, 핸드헬드 디바이스들, 멀티 프로세서 시스템들, 마이크로프로세서 기반 또는 프로그램 가능한 소비자 전자제품들, 네트워크 PC들, 미니 컴퓨터들, 메인프레임 컴퓨터들 등을 포함하는, 많은 타입의 컴퓨터 시스템 구성들을 갖는 네트워크 컴퓨팅 환경들에서 실시될 수 있다는 것을 알 것이다. 실시예들은 또한 통신 네트워크를 통해 (하드와이어드 링크들, 무선 링크들에 의해, 또는 그의 결합에 의해) 링크되는 로컬 및 리모트 프로세싱 디바이스들에 의해 태스크들이 수행되는 분산 컴퓨팅 환경들에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및 리모트 메모리 저장 디바이스들 둘다에 배치될 수 있다.
전술한 다양한 실시예들은 오직 예시에 의해 제공되고 본 개시의 범위를 한정하는 것으로 해석되어서는 안 된다. 이 기술분야의 통상의 기술자들은 본원에 예시되고 설명된 예시적인 실시예들 및 애플리케이션들을 따르지 않고, 본 개시의 사상 및 범위에서 벗어나지 않고, 본원에 설명된 원리들에 대해 행해질 수 있는 다양한 수정들 및 변경들을 쉽게 인식할 것이다.
110: 버스
120: 프로세서
122: 캐시
130: 메모리
160: 저장 디바이스
170: 출력 디바이스
180: 통신 인터페이스
190: 입력 디바이스
200: 애플리케이션 분배 시스템
210: 분배 센터
220: 애플리케이션 데이터베이스
230: 구성 서버
250: 인터넷
260, 270: 컴퓨팅 디바이스
280: 포터블 디바이스
350: 클라이언트 디바이스
360: 서버

Claims (20)

  1. 서버에 의해, 제1 클라이언트 디바이스 상에 설치된 애플리케이션이 채택(adoption)을 위해 적격임을, 상기 제1 클라이언트 디바이스 상의 설치된 애플리케이션이 서버에 의한 분배(distribution)를 위해 구성됨을 결정함으로써, 검증하는 단계;
    상기 설치된 애플리케이션과 연관된 메타데이터로부터 상기 설치된 애플리케이션의 개별 사본을 고유하게 식별하는 고유 식별자를 자동으로 검색하는 단계, 및 상기 고유 식별자가 임의의 사용자 계정과 연관되지 않았음을 검증하는 단계를 포함하는, 상기 서버에 의해, 상기 애플리케이션이 이전에 채택되지 않았음을 검증하는 단계; 및
    상기 서버로부터, 상기 설치된 애플리케이션이 채택을 위해 적격이라는 통지를 상기 제1 클라이언트 디바이스에 전달하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 서버에 의해, 사용자 계정에 상기 애플리케이션을 채택하는 단계를 더 포함하고, 상기 채택은 상기 사용자 계정과 연관된 하나 이상의 클라이언트 디바이스들에 대해 상기 채택된 애플리케이션에 대한 특권들을 허용하도록 상기 사용자 계정을 구성하는 방법.
  3. 제2항에 있어서, 상기 특권들은 상기 애플리케이션의 다운로드, 재-다운로드, 및 업데이트를 포함하는 방법.
  4. 제2항 또는 제3항에 있어서,
    상기 사용자 계정에 제2 클라이언트 디바이스를 등록하는 단계; 및
    상기 제2 클라이언트 디바이스에 상기 채택된 애플리케이션을 전송하는 단계
    를 더 포함하는 방법.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 고유 식별자는 상기 개별 사본에 대한 자격의 증명(proof of entitlement)인 방법.
  6. 제2항 또는 제3항에 있어서, 상기 애플리케이션은 상기 사용자 계정과 연관된 하나 이상의 클라이언트 디바이스들 상에 이전에 설치된 것인 방법.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 방법은 사용자 요청에 응답하여 수행되는 방법.
  8. 제1항 내지 제3항 중 어느 한 항에 있어서,
    채택을 위해 이용가능한 복수의 애플리케이션들에 대해 상기 클라이언트 디바이스에 통지하는 단계; 및
    채택을 위해 상기 복수의 애플리케이션들 중 적어도 하나를 선택하는 입력을 수락하는 단계
    를 더 포함하는 방법.
  9. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 고유 식별자를 자동으로 검색하는 단계는, 상기 고유 식별자에 대해 상기 서버 상의 데이터베이스를 조회하는 단계를 포함하는 방법.
  10. 제1항 내지 제3항 중 어느 한 항에 있어서, 채택은 상기 애플리케이션에 대한 자격의 증명에 기초하여 데이터베이스를 업데이트하는 단계를 더 포함하는 방법.
  11. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 고유 식별자는 상기 클라이언트 디바이스와 연관된 하드웨어로부터 도출가능한 값을 포함하는 방법.
  12. 프로세서;
    저장 디바이스; 및
    메모리
    를 포함하고,
    상기 메모리는,
    서버에 의해, 클라이언트 디바이스 상에 설치된 애플리케이션이 채택을 위해 적격임을, 상기 클라이언트 디바이스 상의 설치된 애플리케이션이 서버에 의한 분배를 위해 구성됨을 결정함으로써, 검증하는 단계;
    상기 설치된 애플리케이션과 연관된 메타데이터로부터 상기 설치된 애플리케이션의 개별 사본을 고유하게 식별하는 고유 식별자를 자동으로 검색하는 단계, 및 상기 고유 식별자가 임의의 사용자 계정과 연관되지 않았음을 검증하는 단계를 포함하는, 상기 서버에 의해, 상기 애플리케이션이 이전에 채택되지 않았음을 검증하는 단계; 및
    상기 서버로부터, 상기 설치된 애플리케이션이 채택을 위해 적격이라는 통지를 상기 클라이언트 디바이스에 전달하는 단계
    를 포함하는 단계들을 수행하도록 상기 프로세서를 제어하기 위한 명령어들을 저장하도록 구성되는 시스템.
  13. 제12항에 있어서, 상기 메모리는 상기 서버에 의해 사용자 계정에 상기 애플리케이션을 채택하기 위한 명령어들을 더 포함하고, 상기 채택은 상기 사용자 계정과 연관된 하나 이상의 클라이언트 디바이스들에 대해 상기 채택된 애플리케이션에 대한 특권들을 허용하도록 상기 사용자 계정을 구성하는 시스템.
  14. 제13항에 있어서, 상기 특권들은 상기 애플리케이션의 다운로드, 재-다운로드, 및 업데이트를 포함하는 시스템.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서, 상기 메모리는 상기 사용자 계정에 다른 클라이언트 디바이스를 등록하고, 상기 다른 클라이언트 디바이스에 상기 채택된 애플리케이션을 전송하기 위한 명령어들을 더 포함하는 시스템.
  16. 제12항 내지 제14항 중 어느 한 항에 있어서, 상기 애플리케이션은 상기 사용자 계정과 연관된 하나 이상의 클라이언트 디바이스들 상에 이전에 설치된 것인 시스템.
  17. 제12항 내지 제14항 중 어느 한 항에 있어서, 상기 메모리는 채택을 위해 이용가능한 복수의 애플리케이션들에 대해 상기 클라이언트 디바이스에 통지하고, 상기 복수의 애플리케이션들 중 하나를 선택하는 입력을 수락하기 위한 명령어들을 더 포함하는 시스템.
  18. 컴퓨팅 디바이스에 의해 실행될 때, 상기 컴퓨팅 디바이스로 하여금,
    서버에 의해, 클라이언트 디바이스 상에 설치된 애플리케이션이 채택을 위해 적격임을, 상기 클라이언트 디바이스 상의 설치된 애플리케이션이 서버에 의한 분배를 위해 구성됨을 결정함으로써, 검증하는 단계;
    상기 설치된 애플리케이션과 연관된 메타데이터로부터 상기 설치된 애플리케이션의 개별 사본을 고유하게 식별하는 고유 식별자를 자동으로 검색하는 단계, 및 상기 고유 식별자가 임의의 사용자 계정과 연관되지 않았음을 검증하는 단계를 포함하는, 상기 서버에 의해, 상기 애플리케이션이 이전에 채택되지 않았음을 검증하는 단계; 및
    상기 서버로부터, 상기 설치된 애플리케이션이 채택을 위해 적격이라는 통지를 상기 클라이언트 디바이스에 전달하는 단계
    를 포함하는 단계들을 수행하도록 하는 명령어를 저장하는 비-일시적(non-transitory) 컴퓨터 판독 가능한 저장 매체.
  19. 제18항에 있어서, 상기 애플리케이션이 클라이언트 디바이스 상에 설치되었음을 검증하는 단계, 상기 애플리케이션이 이전에 채택되지 않았음을 검증하는 단계, 및 상기 통지를 전달하는 단계는 사용자 요청에 응답하여 수행되는 비-일시적 컴퓨터 판독 가능한 저장 매체.
  20. 제18항 또는 제19항에 있어서, 상기 서버에 의해, 사용자 계정에 상기 애플리케이션을 채택하는 것을 더 포함하고, 상기 채택은 상기 사용자 계정과 연관된 하나 이상의 클라이언트 디바이스들에 대해 상기 채택된 애플리케이션에 대한 특권들을 허용하도록 상기 사용자 계정을 구성하는 비-일시적 컴퓨터 판독 가능한 저장 매체.
KR1020120075797A 2011-07-12 2012-07-11 온라인 스토어 상의 사용자 계정에 미리 설치된 소프트웨어를 링크하기 위한 시스템 및 방법 KR101439604B1 (ko)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US13/181,424 US9319406B2 (en) 2011-07-12 2011-07-12 System and method for linking pre-installed software to a user account on an online store
US13/181,424 2011-07-12
US13/248,942 US10158635B2 (en) 2011-07-12 2011-09-29 System and method for linking pre-installed software to a user account on an online store
US13/248,942 2011-09-29
US201261596928P 2012-02-09 2012-02-09
US61/596,928 2012-02-09
US13/436,609 US20130019237A1 (en) 2011-07-12 2012-03-30 System and method for linking pre-installed software to a user account on an online store
US13/436,609 2012-03-30

Publications (2)

Publication Number Publication Date
KR20130008480A true KR20130008480A (ko) 2013-01-22
KR101439604B1 KR101439604B1 (ko) 2014-09-12

Family

ID=47625486

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120075797A KR101439604B1 (ko) 2011-07-12 2012-07-11 온라인 스토어 상의 사용자 계정에 미리 설치된 소프트웨어를 링크하기 위한 시스템 및 방법

Country Status (8)

Country Link
JP (1) JP5595451B2 (ko)
KR (1) KR101439604B1 (ko)
CN (2) CN106096456B (ko)
AU (1) AU2012203903B2 (ko)
BR (1) BR102012017289B1 (ko)
MX (1) MX2012008138A (ko)
NL (1) NL2009157B1 (ko)
TW (1) TWI599973B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150057328A (ko) * 2013-11-19 2015-05-28 에스케이텔레콤 주식회사 어플리케이션 업데이트 방법 및 이를 지원하는 단말
KR20190086777A (ko) * 2016-12-20 2019-07-23 가부시키가이샤 미로쿠 죠호 서비스 공통 프로그램, 데이터베이스 관리장치 및 데이터베이스 관리방법

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10325298B2 (en) * 2013-01-22 2019-06-18 General Electric Company Systems and methods for a non-destructive testing ecosystem
CN104468637B (zh) * 2013-09-12 2018-08-31 阿里巴巴集团控股有限公司 一种下载以及安装客户端的方法和设备
US9626720B2 (en) 2013-11-25 2017-04-18 Apple Inc. Linked user accounts
US10255449B2 (en) 2014-05-30 2019-04-09 Apple Inc. Permission request
TWI602066B (zh) * 2014-05-30 2017-10-11 宏碁股份有限公司 自動化程式下載方法與系統
CN104468514B (zh) * 2014-10-31 2018-08-31 联想(北京)有限公司 信息处理方法、电子设备及服务器
JP6403583B2 (ja) * 2015-01-21 2018-10-10 キヤノン株式会社 アップデートされたアプリケーションを配信する配信管理サーバーおよび配信管理方法
CN105893071A (zh) * 2015-11-30 2016-08-24 乐视云计算有限公司 应用的在线调优方法及***
US10365931B2 (en) * 2017-02-27 2019-07-30 Microsoft Technology Licensing, Llc Remote administration of initial computer operating system setup options
KR102166336B1 (ko) * 2017-05-15 2020-10-15 삼성전자주식회사 소프트웨어 플랫폼을 제공하는 서버 및 그 동작방법
JP6608878B2 (ja) * 2017-07-19 2019-11-20 ファナック株式会社 アプリケーション販売管理サーバシステム
CN111406257B (zh) * 2018-11-02 2023-10-31 谷歌有限责任公司 用于认证的***和方法
CN109710284A (zh) * 2018-11-16 2019-05-03 中天昱品科技有限公司 一种具有安全加密和数据压缩的充电桩远程升级方法
US20230177190A1 (en) * 2021-12-03 2023-06-08 Dell Products L.P. Systems and methods for transferring information handling systems

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324649B1 (en) * 1998-03-02 2001-11-27 Compaq Computer Corporation Modified license key entry for pre-installation of software
JP2002091595A (ja) * 2000-09-11 2002-03-29 Hitachi Ltd ライセンス管理方法及びライセンス管理システム
US20030084165A1 (en) * 2001-10-12 2003-05-01 Openwave Systems Inc. User-centric session management for client-server interaction using multiple applications and devices
JP2005284506A (ja) * 2004-03-29 2005-10-13 Matsushita Electric Ind Co Ltd ダウンロードシステム及びダウンロードシステムを構成する機器、管理局、リムーバブルメディア
US20060064488A1 (en) * 2004-09-17 2006-03-23 Ebert Robert F Electronic software distribution method and system using a digital rights management method based on hardware identification
CN100589096C (zh) * 2004-12-02 2010-02-10 现时技术控股有限公司 在专用网络中管理未受保护和受保护的内容的设备和方法
JP2007265071A (ja) * 2006-03-29 2007-10-11 Jordan Kk アプリケーション管理方法およびアプリケーション管理システム
EP1901192A1 (en) * 2006-09-14 2008-03-19 British Telecommunications Public Limited Company Mobile application registration
US8566954B2 (en) * 2008-02-08 2013-10-22 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatuses for authorising provision of indirected content associated with a presentity of a presence service
US20090307682A1 (en) * 2008-06-08 2009-12-10 Sam Gharabally Techniques for Acquiring Updates for Application Programs
US8495190B2 (en) * 2008-06-25 2013-07-23 International Business Machines Corporation Providing access by a client application program over an internet protocol (IP) network to a server application program instance
JP2010049643A (ja) * 2008-08-25 2010-03-04 Sourcenext Corp 情報処理システム、情報処理方法及びプログラム
US8725839B2 (en) * 2009-12-22 2014-05-13 International Business Machines Corporation Imposing pre-installation prerequisite checks on the install user to ensure a higher rate of installation success

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150057328A (ko) * 2013-11-19 2015-05-28 에스케이텔레콤 주식회사 어플리케이션 업데이트 방법 및 이를 지원하는 단말
KR20190086777A (ko) * 2016-12-20 2019-07-23 가부시키가이샤 미로쿠 죠호 서비스 공통 프로그램, 데이터베이스 관리장치 및 데이터베이스 관리방법

Also Published As

Publication number Publication date
NL2009157A (en) 2013-01-15
MX2012008138A (es) 2013-09-03
TWI599973B (zh) 2017-09-21
TW201308237A (zh) 2013-02-16
CN103207793A (zh) 2013-07-17
KR101439604B1 (ko) 2014-09-12
BR102012017289A2 (pt) 2018-02-27
JP2013020621A (ja) 2013-01-31
BR102012017289B1 (pt) 2020-12-01
AU2012203903B2 (en) 2015-03-12
CN103207793B (zh) 2016-08-03
CN106096456A (zh) 2016-11-09
CN106096456B (zh) 2019-04-02
AU2012203903A1 (en) 2013-01-31
NL2009157B1 (en) 2017-11-08
JP5595451B2 (ja) 2014-09-24

Similar Documents

Publication Publication Date Title
US11025622B2 (en) System and method for linking pre-installed software to a user account on an online store
KR101439604B1 (ko) 온라인 스토어 상의 사용자 계정에 미리 설치된 소프트웨어를 링크하기 위한 시스템 및 방법
US20130019237A1 (en) System and method for linking pre-installed software to a user account on an online store
JP5602841B2 (ja) ユーザー識別に基づく製品機能強化
KR101361313B1 (ko) 네트워크 기반 분배 시스템을 사용하여 인-애플리케이션 후속 특징을 액세스하는 애플리케이션 제품들
KR101492757B1 (ko) 애플리케이션 사용 정책 시행
JP5778865B2 (ja) アプリケーションに機能性を追加するためのサービス
US9600841B1 (en) Common purchasing user interface
JP5597253B2 (ja) 状態およびデーターを移すための対話処理モデル
CN102057354B (zh) 获取对应用程序的更新的技术
US20080147530A1 (en) Programmatically transferring applications between handsets based on license information
JP2009534739A (ja) モバイルモジュールを使用する商取引のための認証
US20220237297A1 (en) Secure coprocessor enforced system firmware feature enablement
KR20160019436A (ko) 제3자 제품에 대한 교차 스토어 라이센싱 기법
US20130124696A1 (en) Application products with in-application subsequent feature access using network-based distribution system
WO2013188244A2 (en) Application products with in-application subsequent feature access using network-based distribution system

Legal Events

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

Payment date: 20170804

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180730

Year of fee payment: 5