KR101439604B1 - System and method for linking pre-installed software to a user account on an online store - Google Patents

System and method for linking pre-installed software to a user account on an online store Download PDF

Info

Publication number
KR101439604B1
KR101439604B1 KR1020120075797A KR20120075797A KR101439604B1 KR 101439604 B1 KR101439604 B1 KR 101439604B1 KR 1020120075797 A KR1020120075797 A KR 1020120075797A KR 20120075797 A KR20120075797 A KR 20120075797A KR 101439604 B1 KR101439604 B1 KR 101439604B1
Authority
KR
South Korea
Prior art keywords
application
user account
server
user
applications
Prior art date
Application number
KR1020120075797A
Other languages
Korean (ko)
Other versions
KR20130008480A (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
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/en
Application granted granted Critical
Publication of KR101439604B1 publication Critical patent/KR101439604B1/en

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
    • G06Q50/00Systems or methods specially adapted for 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
    • 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
    • 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/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • G06Q50/40
    • 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

Abstract

컴퓨터 상의 설치를 위한 애플리케이션을 온라인 스토어 상의 사용자 계정과 연관시키기 위한 시스템들, 방법들, 및 비-일시적 컴퓨터 판독 가능한 저장 매체가 본원에 개시된다. 방법을 실시하도록 구성되는 시스템은 다운로드를 위해 이용가능한 애플리케이션을 제공하고, 사용자 계정과 연관된 식별자 및 소프트웨어 패키지 또는 사용자 계장과 연관된 자격의 증명을 포함하는 소프트웨어 채택 요청을 클라이언트 디바이스로부터 수신하고, 자격의 증명을 데이터베이스와 비교함으로써 자격의 증명을 검증하고, 자격의 증명이 검증되면, 소프트웨어 패키지를 사용자 계정의 부분으로서 채택한다.Disclosed herein are systems, methods, and non-transitory computer readable storage media for associating an application for installation on a computer with a user account on an online store. The method comprising: receiving a software adoption request from a client device, the software acceptance request including an application available for download, an identification associated with the user account and a proof of qualification associated with the software package or user instrumentation, To verify the credentials of the credential by comparing it to the database and, if the credentials are verified, adopts the software package as part of the user account.

Figure R1020120075797
Figure R1020120075797

Description

온라인 스토어 상의 사용자 계정에 미리 설치된 소프트웨어를 링크하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE}SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE IN A USER ACCOUNT ON AN ONLINE STORE. BACKGROUND OF THE INVENTION 1. Field of the Invention < RTI ID = 0.0 >

관련 출원들에 대한 교차 참조Cross-references to related applications

이 출원은 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호의 우선권을 주장하고, 이들 전부는 본원에서 그대로 참고로 포함된다.This application is a continuation-in-part of U.S. Patent Application No. 13 / 181,424, filed July 12, 2011, entitled " SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE & This application is also a continuation-in-part of U.S. Patent Application No. 13 / 248,942, filed September 29, 2011, entitled " SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE "; This application also claims priority from U.S. Provisional Patent Application No. 61 / 596,928, filed February 9, 2012, entitled " SYSTEM AND METHOD FOR LINKING PRE-INSTALLED SOFTWARE TO A USER ACCOUNT ON AN ONLINE STORE " , All of which are incorporated herein by reference in their entirety.

기술분야Technical field

본 개시는 일반적으로 디지털 제품들의 분배(distribution)에 관한 것이고, 더욱 구체적으로 온라인 스토어 상의 사용자 계정에 소프트웨어 애플리케이션들을 링크하기 위한 기법들에 관한 것이다.This disclosure relates generally to the distribution of digital products and more specifically to techniques for linking software applications to user accounts on an online store.

전자 디바이스들의 제조자들은 보통 구매 전에 전자 디바이스를 퍼스널라이즈(personalize)하고 커스터마이즈(customize)하기 위한 다양한 이용가능한 옵션들을 고객들에게 제공한다. 예를 들어, 컴퓨터와 같은 퍼스널 컴퓨팅 디바이스는 프로세서, 메모리, 하드 드라이브, 또는 액세서리들을 선택함으로써 커스터마이즈될 수 있다. 제조자들은 또한 고객이 컴퓨터를 인도받기 전에 컴퓨터와 함께 구매되고 미리 설치될 수 있는 소프트웨어 애플리케이션들 또는 프로그램들을 제공하기 위해 다양한 소프트웨어 벤더들과 협력한다. 통상적으로 제조자에 의해 생성되지만 또한 제3자 애플리케이션들을 포함할 수 있는 일부 소프트웨어 애플리케이션들은 예를 들어, 수동으로 또는 디폴트 팩토리 이미지(default factory image)의 부분으로서 무료로 컴퓨팅 디바이스 상에 미리 설치될 수 있다. 따라서, 하드웨어 컴포넌트들 및 미리 설치된 소프트웨어는 구매된 제품이 고객의 필요에 충족하도록 보장하기 위해 고객에 의해 퍼스널라이즈될 수 있다.Manufacturers of electronic devices usually provide customers with a variety of available options for personalizing and customizing electronic devices prior to purchase. For example, a personal computing device, such as a computer, can be customized by selecting a processor, memory, hard drive, or accessories. Manufacturers also work with various software vendors to provide software applications or programs that can be purchased and preinstalled with the computer before the customer delivers the computer. Some software applications that are typically created by the manufacturer but may also include third party applications may be preinstalled on the computing device, for example, manually or as part of a default factory image for free . Thus, hardware components and preinstalled software can be personalized by the customer to ensure that the purchased product meets the needs of the customer.

고객이 전자 디바이스를 받은 후에, 고객은 때때로 미래에 미리 설치된 소프트웨어를 재설치하거나 업데이트하기를 희망할 수 있다. 예를 들어, 소프트웨어 제공자는 전자 디바이스 상에 미리 설치된 소프트웨어의 업데이트된 버전을 공개하였을 수 있다. 이것은 보통 소프트웨어 업데이트로서 알려져 있다. 소프트웨어 업데이트를 획득하기 위해서, 고객은 소프트웨어 제공자의 물리적 또는 온라인 스토어를 방문하고 소프트웨어의 업데이트된 버전을 구매하거나 취득한다. 그러나, 이 프로세스는 시간 소모적이고 때때로 혼란스럽다. 유사하게, 구매자가 전자 디바이스의 저장소를 재포맷할 때, 구매자는 통상적으로 소프트웨어를 재설치해야 한다. 재설치 중에, 구매자는 미리 설치된 소프트웨어를 포함하는 다양한 콤팩트 디스크들(CDs) 또는 다른 미디어에 대해 프롬프트(prompt)될 수 있다. 그러나, 구매자는 CD들을 제자리에 두지 않았을 수 있어, 재설치 절차를 매우 번잡스럽게 만들 수 있다.After the customer receives the electronic device, the customer may occasionally wish to reinstall or update the software preinstalled in the future. For example, the software provider may have published an updated version of the software preinstalled on the electronic device. This is usually known as a software update. In order to obtain a software update, the customer visits the software provider's physical or online store and purchases or obtains an updated version of the software. However, this process is time consuming and sometimes confusing. Similarly, when a buyer reformats storage of an electronic device, the buyer typically has to reinstall the software. During reinstallation, the buyer may be prompted for various compact discs (CDs) or other media, including preinstalled software. However, the buyer may not have left the CDs in place, which can make the reinstallation procedure very cumbersome.

개시의 부가적인 특징들 및 이점들은 다음에 오는 설명에 제시될 것이고, 부분적으로 그 설명으로부터 명백할 것이거나, 또는 본원에 개시된 원리들의 실시에 의해 학습될 수 있다. 개시의 특징들 및 이점들은 첨부된 청구항들에 구체적으로 지적된 수단들 및 결합들에 의해 실현되고 획득될 수 있다. 개시의 이들 및 다른 특징들은 다음의 설명 및 첨부된 청구항들로부터 더욱 완전하게 명백해질 것이거나, 또는 본원에 개시된 원리들의 실시에 의해 학습될 수 있다.Additional features and advantages of the disclosure will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by practice of the principles disclosed herein. The features and advantages of the disclosure may be realized and attained by means of the instrumentalities and combinations particularly pointed out in the appended claims. These and other features of the disclosure will become more fully apparent from the following description and appended claims, or may be learned by practice of the principles disclosed herein.

애플리케이션(즉, 소프트웨어 패키지), 미리 설치된 애플리케이션 또는 별개로 구매된 애플리케이션을 사용자 계정과 연관시키기 위한 시스템들, 방법들, 및 비-일시적 컴퓨터 판독 가능한 저장 매체가 개시된다. 사용자 계정은 온라인 스토어 상에서 연관되거나 저장될 수 있다. 이 프로세스를 채택(adoption)이라고 부를 수 있다. 채택은 사용자 계정에 애플리케이션들의 다운로드, 재-다운로드, 및 업데이트와 같은 특정 특권들을 제공할 수 있다. 다른 예들에서, 채택은 채택된 애플리케이션들을 선물하는 것 또는 채택된 애플리케이션들을 판매하는 것과 같은 채택된 애플리케이션에 대한 다른 특권들을 허용하도록 사용자 계정을 구성할 수 있다. 하나의 흔한 시나리오에서, 새로운 컴퓨터는 특정 미리 설치된 소프트웨어를 포함한다. 사용자는 새로운 컴퓨터 상에서 미리 설치된 소프트웨어를 구동하고 이용할 수 있다. 그러나, 업데이트들, 백업들, 및/또는 다른 소프트웨어 관련 콘텐츠 또는 서비스들을 수신 및/또는 그에 대한 자격이 있도록 하기 위해서, 사용자는 미리 설치된 소프트웨어를 '채택'할 수 있다. 미리 설치된 소프트웨어를 채택함으로써, 미리 설치된 소프트웨어는 온라인 전자 스토어 계정과 같은 특정 사용자 계정과 연관된다. 그 다음, 온라인 전자 스토어는 업데이트들, 백업들, 리스토어들(restores), 인-애플리케이션 구매들(in-application purchases), 등을 핸들링할 수 있다. 그러나, 사용자는 사용자 계정 또는 온라인 전자 스토어 계정에의 액세스에 의존하는 특징들을 제외한 전체 기능을 갖는 미리 설치된 소프트웨어를 '채택'하지 않고 미리 설치된 소프트웨어를 이용하기로 선택할 수 있다. 사용자가 미리 설치된 소프트웨어를 채택할 때, 온라인 전자 스토어는 미리 설치된 소프트웨어가 다른 사용자에 의한 채택에 부적격(ineligible)이도록 계정, 데이터베이스, 및/또는 소프트웨어 자체를 수정할 수 있다. 다른 흔한 시나리오에서, 사용자가 구매하였거나, 선물 받았거나, 달리 취득한 소프트웨어 패키지 또는 애플리케이션이 사용자의 컴퓨팅 디바이스 상에 설치된다. 컴퓨팅 디바이스는 사용자 계정을 갖는 소프트웨어 패키지 또는 애플리케이션의 채택을 위한 소프트웨어 채택 요청을 서버에 전송할 수 있다. 소프트웨어 채택 요청은 소프트웨어 패키지의 표시 및 사용자 계정과 연관된 식별자를 포함할 수 있다. 일부 예들에서, 자격의 증명(proof of entitlement)이 또한 소프트웨어 패키지의 진위에 대한 증명으로서 채택 요청에 포함된다. 자격의 증명은 오직 소프트웨어 패키지의 소유로부터 도출가능한 값일 수 있다. 예를 들어, 자격의 증명은 소프트웨어 패키지의 일련 번호와 연관되거나 그로부터 도출될 수 있다. 자격의 증명은 또한 전자 디바이스와 연관된 메타데이터 및 소프트웨어 패키지로부터 도출가능한 값일 수 있다. 예를 들어, 전자 디바이스와 연관된 메타데이터는 전자 디바이스와 연관된 하드웨어로부터 도출가능한 값일 수 있다. 업데이트들, 백업들, 및/또는 다른 소프트웨어 관련 콘텐츠 또는 서비스들은 일단 애플리케이션이 채택되면 사용자에게 이용가능할 수 있다.Disclosed are systems, methods, and non-transient computer readable storage media for associating an application (i.e., a software package), a preinstalled application, or a separately purchased application with a user account. User accounts can be associated or stored on the online store. This process can be called adoption. Adoption can provide certain privileges to the user account, such as downloading, re-downloading, and updating of applications. In other instances, the adoption may configure the user account to allow other privileges for the adopted application, such as presenting the adopted applications or selling the adopted applications. In one common scenario, the new computer includes certain preinstalled software. The user can run and use preinstalled software on the new computer. However, in order to receive and / or be entitled to updates, backups, and / or other software-related content or services, the user may " adopt " preinstalled software. By adopting preinstalled software, the preinstalled software is associated with a particular user account, such as an online electronic store account. The online electronic store may then handle updates, backups, restores, in-application purchases, and the like. However, a user may choose to use preinstalled software without " adopting " pre-installed software with full functionality, except for features that rely on access to a user account or an online electronic store account. When a user adopts preinstalled software, the online electronic store may modify the account, the database, and / or the software itself so that the preinstalled software is ineligible for adoption by other users. In other common scenarios, a software package or application purchased by a user, received as a gift, or acquired otherwise is installed on a user's computing device. The computing device may send to the server a software adoption request for the adoption of a software package or application having a user account. The software adoption request may include an indication of the software package and an identifier associated with the user account. In some instances, a proof of entitlement is also included in the adoption request as proof of the authenticity of the software package. The proof of qualification can only be a value that can be derived from owning a software package. For example, the proof of qualification may be associated with or derived from the serial number of the software package. The proof of qualification may also be a value that can be derived from the metadata and software package associated with the electronic device. For example, the metadata associated with an electronic device may be a value that can be derived from hardware associated with the electronic device. Updates, backups, and / or other software-related content or services may be available to the user once the application is adopted.

방법을 실시하도록 구성되는 시스템은 다운로드를 위해 이용가능한 애플리케이션을 제공하고, 컴퓨팅 디바이스에 애플리케이션을 다운로드하기 위한 요청을 수신하고, 애플리케이션이 미리 설치된 애플리케이션임을 결정한다. 그 다음에 시스템은 사용자 계정과 애플리케이션을 링크하기 위해 사용자 인증을 요청하도록 구성되는 인증 프롬프트를 제공하고, 사용자 인증을 수신하고, 사용자 인증의 수신에 응답하여, 고유 하드웨어 식별자를 생성하거나 컴퓨팅 디바이스와 연관된 자격의 증명을 검색한다. 시스템은 고유 하드웨어 식별자 또는 자격의 증명에 기초하여 애플리케이션이 링크 가능함을 결정하고, 채택 가능한 애플리케이션이 링크 가능할 때 사용자 계정과 채택 가능한 애플리케이션을 링크한다. 시스템은 업데이트 페이지에 대한 요청을 수신하고, 요청의 수신에 응답하여, 애플리케이션과 연관된 스터브 영수증(stub receipt)을 수집함으로써 다운로드를 위해 이용가능한 애플리케이션을 제공할 수 있다. 스터브 영수증은 애플리케이션과 연관된 버전 넘버 및 이름을 포함할 수 있다. 그 다음 시스템은 버전 넘버 및 이름에 기초하여, 애플리케이션의 업데이트가 다운로드를 위해 서버 상에서 이용가능함을 결정하고, 애플리케이션의 이름을 제공한다.The system configured to implement the method provides an application available for download, receives a request to download an application to the computing device, and determines that the application is a preinstalled application. The system then provides an authentication prompt configured to request user authentication to link the user account with the application, receives the user authentication, and in response to receiving the user authentication, generates a unique hardware identifier, Search proof of qualification. The system determines that the application is linkable based on the unique hardware identifier or proof of credentials and links the user account with the acceptable application when the acceptable application is linkable. The system may receive a request for an update page, and in response to receiving the request, collect the stub receipt associated with the application to provide an application available for download. The stub receipt can include the version number and name associated with the application. The system then determines based on the version number and name that the update of the application is available on the server for downloading and provides the name of the application.

대안적으로, 시스템은 구매 페이지에 대한 요청을 수신하고, 컴퓨팅 디바이스와 연관된 적하목록(manifest)을 수신하고, 적하목록에 기초하여 미리 설치된 애플리케이션의 목록을 제공함으로써 다운로드를 위해 이용가능한 애플리케이션을 제공할 수 있다. 적하목록은 미리 설치된 애플리케이션의 목록이 애플리케이션을 포함하는 경우 서버로부터 다운로드를 위해 이용가능한 미리 설치된 애플리케이션들의 목록을 포함할 수 있다. 시스템은 애플리케이션 데이터베이스를 검색하고 애플리케이션 데이터베이스에 저장된 애플리케이션의 버전 넘버와 컴퓨팅 디바이스에 저장된 애플리케이션의 버전 넘버를 비교함으로써, 애플리케이션이 서버 상에서 이용가능한 업데이트를 가짐을 결정할 수 있다. 버전 넘버들의 비교에 기초하여, 애플리케이션에 대한 업데이트가 애플리케이션 데이터베이스에 존재하는지에 관한 결정이 행해질 수 있다. 시스템은 애플리케이션이 스터브 영수증과 연관됨을 결정함으로써 애플리케이션이 미리 설치된 애플리케이션임을 결정할 수 있다. 시스템은 컴퓨팅 디바이스와 연관된 적하목록을 수신하고 - 적하목록은 미리 설치된 애플리케이션들의 목록을 포함함 -, 애플리케이션이 미리 설치된 애플리케이션의 목록 내에 포함됨을 결정함으로써 애플리케이션이 미리 설치된 애플리케이션임을 결정할 수 있다. 시스템은 고유 하드웨어 식별자 또는 구매의 증명(proof of purchase)을 서버에 전송하고, 미리 설치된 애플리케이션이 다른 사용자 계정과 링크되었는지를 결정함으로써 미리 설치된 애플리케이션이 링크 가능함을 결정할 수 있다. 또 다른 예들에서, 시스템은 미리 설치된 애플리케이션을 사용자 계정과 연관시키고, 고유 하드웨어 식별자 또는 구매의 증명을 포함하도록 고유성 테이블(uniqueness table)을 업데이트함으로써 미리 설치된 애플리케이션을 사용자 계정과 링크한다. 고유성 테이블은 다른 미리 설치된 애플리케이션을 갖는 다른 전자 디바이스와 연관되는 다른 고유 하드웨어 식별자 또는 구매의 증명을 포함할 수 있고, 다른 미리 설치된 애플리케이션은 다른 사용자 계정과 링크될 수 있다.Alternatively, the system may provide an application available for downloading by receiving a request for a purchase page, receiving a manifest associated with the computing device, and providing a list of pre-installed applications based on the manifest . The manifest may include a list of pre-installed applications available for download from the server if the list of pre-installed applications includes the application. The system may search the application database and compare the version number of the application stored in the application database with the version number of the application stored in the computing device, thereby determining that the application has available updates on the server. Based on the comparison of the version numbers, a determination can be made as to whether an update for the application is present in the application database. The system can determine that the application is a pre-installed application by determining that the application is associated with a stub receipt. The system can receive a manifest associated with the computing device and determine that the application is a preinstalled application by determining that the application is included in a list of preinstalled applications, including a list of preinstalled applications. The system can determine that a preinstalled application is linkable by sending a unique hardware identifier or proof of purchase to the server and determining if the preinstalled application is linked to another user account. In yet another example, the system links a pre-installed application with a user account by associating a pre-installed application with a user account and updating the uniqueness table to include a unique hardware identifier or proof of purchase. The uniqueness table may include other unique hardware identifiers or proof of purchase associated with other electronic devices having other pre-installed applications, and other pre-installed applications may be linked to other user accounts.

다른 변형에서, 시스템은 온라인 스토어 상에서 사용자 계정과 미리 설치된 애플리케이션을 링크하기 위한 요청을 수신하고, 온라인 스토어는 사용자 계정과 연관된 하나 이상의 컴퓨팅 디바이스들에 사용자 계정과 연관된 애플리케이션을 전송하도록 구성된다. 다음으로 시스템은 컴퓨팅 디바이스와 연관된 고유 하드웨어 식별자 또는 구매의 증명을 생성하고, 고유 하드웨어 식별자 또는 구매의 증명에 기초하여 미리 설치된 애플리케이션이 링크 가능함을 결정한다. 시스템은 미리 설치된 애플리케이션이 링크 가능할 때 사용자 계정과 미리 설치된 애플리케이션을 링크한다. 고유 하드웨어 식별자는 MAC 어드레스, 유니버셜 디바이스 식별자(universal device identifier; UDID), 로직 보드 일련 번호(logic board serial number), 또는 이더넷 하드웨어 어드레스와 같은, 전자 디바이스의 하나 이상의 하드웨어 컴포넌트들에 기초할 수 있다. 다른 예들에서, 구매의 증명이 이용될 수 있다. 구매의 증명은 전자 디바이스의 하드웨어 컴포넌트들, 애플리케이션의 선물, 구매, 또는 취득과 연관된 메타데이터에 기초할 수 있다. 미리 설치된 애플리케이션이 링크 가능함을 결정하는 것은, 고유 하드웨어 식별자 또는 구매의 증명을 서버에 전송하는 것, 미리 설치된 애플리케이션 또는 구매의 증명이 다른 사용자 계정과 링크되었는지를 결정하는 것을 포함할 수 있다. 시스템은 컴퓨팅 디바이스의 원래 구성이 미리 설치된 애플리케이션을 포함함을 결정함으로써 미리 설치된 애플리케이션이 링크 가능함을 결정할 수 있다. 미리 설치된 애플리케이션을 사용자 계정과 링크하는 것은, 미리 설치된 애플리케이션을 사용자 계정과 연관시키는 것, 고유 하드웨어 식별자 또는 구매의 증명을 포함하도록 고유성 테이블을 업데이트하는 것을 포함할 수 있고, 고유성 테이블은 다른 미리 설치된 애플리케이션을 갖는 다른 전자 디바이스와 연관되는 다른 고유 하드웨어 식별자 또는 구매의 증명을 포함하고, 다른 미리 설치된 애플리케이션은 다른 사용자 계정과 링크되었다. 또 다른 예에서, 미리 설치된 애플리케이션을 사용자 계정과 링크하는 것은, 적하목록으로부터 미리 설치된 애플리케이션과 연관된 메타데이터를 제거하는 것을 더 포함하고, 적하목록은 사용자 계정과 이미 링크된 미리 설치된 애플리케이션들을 열거하도록 구성된다. 시스템은 컴퓨팅 디바이스에 미리 설치된 애플리케이션을 다운로드할 수 있다.In another variation, the system receives a request to link a pre-installed application with a user account on an online store, and the online store is configured to send an application associated with the user account to one or more computing devices associated with the user account. The system then generates a unique hardware identifier or proof of purchase associated with the computing device and determines that the preinstalled application is linkable based on the unique hardware identifier or proof of purchase. The system links the user account with the pre-installed application when the pre-installed application is linkable. The unique hardware identifier may be based on one or more hardware components of the electronic device, such as a MAC address, a universal device identifier (UDID), a logic board serial number, or an Ethernet hardware address. In other instances, a proof of purchase may be used. The proof of purchase may be based on the hardware components of the electronic device, the metadata associated with the purchase, purchase, or acquisition of the application. Determining that a preinstalled application is linkable may include sending a unique hardware identifier or proof of purchase to the server, and determining whether a proof of preinstalled application or purchase is linked to another user account. The system may determine that the preinstalled application is linkable by determining that the original configuration of the computing device includes an application preinstalled. Linking a pre-installed application with a user account may involve associating a pre-installed application with a user account, updating the uniqueness table to include a unique hardware identifier or proof of purchase, Another unique hardware identifier or proof of purchase associated with another electronic device having a different pre-installed application, and other pre-installed applications linked to other user accounts. In another example, linking a pre-installed application with a user account further includes removing metadata associated with the pre-installed application from the manifest, and the manifest is configured to enumerate pre-installed applications that are already linked with the user account do. The system may download pre-installed applications to the computing device.

개시의 위에 기재된 및 다른 이점들 및 특징들이 획득될 수 있는 방식을 설명하기 위해서, 간략하게 위에서 설명된 원리들의 더욱 특정한 설명이 첨부 도면들에 예시되는 그의 특정 실시예들을 참조하여 주어질 것이다. 이들 도면들은 오직 개시의 예시적인 실시예들을 도시하며, 따라서 그의 범위를 한정하는 것으로 고려되어서는 안 된다는 것을 이해하고, 본원에서 원리들은 첨부 도면들의 이용을 통해 부가적인 특정성 및 상세를 가지고 설명 및 기술된다.
도 1은 예시적인 시스템 실시예를 도시한다.
도 2는 예시적인 애플리케이션 분배 시스템을 도시한다.
도 3은 예시적인 클라이언트-서버 시스템을 도시한다.
도 4는 업데이트 페이지 요청을 프로세싱하기 위한 예시적인 방법을 도시한다.
도 5는 업데이트 페이지 요청과 연관된 HTML 페이지의 예를 도시한다.
도 6은 미리 설치된 애플리케이션들을 채택하기 위해 사용자 인증을 요청하는 HTML 페이지의 예를 도시한다.
도 7은 미리 설치된 애플리케이션들을 채택하기 위해 사용자 인증을 요청하는 HTML 페이지의 다른 예를 도시한다.
도 8은 구매 페이지 요청을 프로세싱하기 위한 예시적인 방법을 도시한다.
도 9는 사용자가 서명하지 않은 경우 구매 페이지 요청과 연관된 HTML 페이지의 예를 도시한다.
도 10은 사용자가 서명한 경우 구매 페이지 요청과 연관된 HTML 페이지의 다른 예를 도시한다.
도 11은 인증 프롬프트를 포함하는 구매 페이지 요청과 연관된 HTML 페이지의 다른 예를 도시한다.
도 12는 사용자 계정에 미리 설치된 애플리케이션을 링크하기 위한 예시적인 방법을 도시한다.
도 13은 채택 경고의 예를 도시한다.
도 14는 채택 경고의 다른 예를 도시한다.
도 15는 전자 디바이스에서의 복구 모드를 위한 예시적인 프로세스를 도시한다.
A more particular description of the principles set forth above will be given with reference to specific embodiments thereof, which are illustrated in the accompanying drawings, in order to describe the manner in which the above and other advantages and features may be achieved. It is understood that these drawings depict only exemplary embodiments of the disclosure and are not therefore to be considered to be limiting of its scope, and that the principles herein may be better understood by reference to the following description and drawings, .
Figure 1 illustrates an exemplary system embodiment.
Figure 2 illustrates an exemplary application distribution system.
3 illustrates an exemplary client-server system.
Figure 4 illustrates an exemplary method for processing an update page request.
Figure 5 shows an example of an HTML page associated with an update page request.
Figure 6 shows an example of an HTML page requesting user authentication to employ pre-installed applications.
Figure 7 shows another example of an HTML page requesting user authentication to employ pre-installed applications.
FIG. 8 illustrates an exemplary method for processing a purchase page request.
Figure 9 shows an example of an HTML page associated with a purchase page request when the user is not signed.
Figure 10 shows another example of an HTML page associated with a purchase page request when signed by a user.
Figure 11 shows another example of an HTML page associated with a purchase page request that includes an authentication prompt.
Figure 12 illustrates an exemplary method for linking an application preinstalled in a user account.
Fig. 13 shows an example of an adoption warning.
Fig. 14 shows another example of the adoption warning.
15 illustrates an exemplary process for a recovery mode in an electronic device.

본 개시의 다양한 실시예들이 아래 상세하게 논의된다. 특정 구현들이 논의되지만, 이것은 오직 예시의 목적으로 행해진다는 것을 이해해야 한다. 관련 기술분야의 통상의 기술자는 개시의 사상 및 범위에서 벗어나지 않고 다른 컴포넌트들 및 구성들이 이용될 수 있다는 것을 인식할 것이다.Various embodiments of the present disclosure are discussed in detail below. While certain implementations are discussed, it should be understood that this is done for illustrative purposes only. Those of ordinary skill in the pertinent art will recognize that other components and configurations may be utilized without departing from the spirit and scope of the disclosure.

본 개시는 분배 센터 또는 온라인 스토어 상의 사용자 계정과 전자 디바이스 상의 미리 설치된 소프트웨어를 연관시키기 위한 이 기술분야의 필요성을 해결한다. 본 개시는 또한 미리 설치된 소프트웨어 이외의 다른 타입들의 소프트웨어를 사용자 계정과 연관시키기 위한 이 기술분야의 필요성을 해결한다. 예를 들어, 구매된 소프트웨어, 선물로 받은 소프트웨어, 소프트웨어 제조자로부터 무료 또는 소액으로 분배된 소프트웨어, 또는 다른 방법들을 이용하여 취득한 소프트웨어는 온라인 스토어 또는 샵 상의 사용자 계정과 연관될 수 있다. 이 프로세스는 온라인 스토어에서 사용자 계정에 의해 소프트웨어의 "채택"이라고 말할 수 있다. 온라인 스토어 상의 사용자 계정과 소프트웨어를 연관시키는 것에 의해, 소프트웨어 업데이트들 및 재설치들은 온라인 스토어로부터 다운로드될 수 있고, 이에 따라 전자 디바이스 상의 소프트웨어를 관리하는 더 쉽고 더 편리한 방식인 것으로 판명된다. 또한, 사용자 계정과 연관된 다른 컴퓨팅 디바이스들은 또한 온라인 스토어로부터 소프트웨어 업데이트들 및 재설치들을 수신할 수 있다. 도 1 내지 15에서의 다음의 설명은 미리 설치된 애플리케이션들, 소프트웨어 패키지들, 및 다른 수단을 통해 취득한 애플리케이션들(예를 들어, 선물, 구매, 또는 그렇지 않으면 분배되거나 취득된 것)에 적용 가능하다. 이와 같이, 본원에서 이용되는 바와 같은 "미리 설치된 애플리케이션(pre-installed application)"이라는 용어는 선물 받은 애플리케이션, 구매한 애플리케이션, 분배된 애플리케이션, 취득한 애플리케이션, 및 다른 것들과 서로 교환가능하게 이용될 수 있다. 다시 말해, "미리 설치된 애플리케이션"은 사용자가 소유권을 갖는 임의의 애플리케이션일 수 있다. 유사하게, "고유 하드웨어 식별자"는 컴퓨팅 디바이스 상에 설치된 애플리케이션에 소유권 또는 자격의 증명을 제공하도록 구성되는 임의의 고유 식별자일 수 있다. 예를 들어, 자격의 증명은 생성되는 애플리케이션의 모든 사본에 대해 고유한 값일 수 있다. 자격의 증명은 또한 애플리케이션을 되찾기(redeem) 위한 상환 코드(redemption code)일 수 있다. 다른 예들에서, 자격의 증명은 (고유한) 사용자 계정과 연관된 고유 식별자와 (고유하지 않을 수 있는) 상환 코드를 결합하는 것과 같이, 고유한 및 비-고유한 값들의 결합일 수 있다. 개념들을 실시하는 데 이용될 수 있는 기본적인 범용 시스템 또는 컴퓨팅 디바이스의 간단한 도입부 설명이 도 1에 예시된다. 미리 설치된 소프트웨어가 사용자 계정과 어떻게 연관되는지에 대한 더욱 상세한 설명이 뒤따를 것이고, 다양한 실시예들이 기재될 때 몇몇 변형들을 포함한다. 이제 개시는 도 1을 본다.This disclosure addresses the need in the art for associating pre-installed software on electronic devices with user accounts on distribution centers or on-line stores. The present disclosure also addresses the need in the art for associating other types of software with user accounts other than preinstalled software. For example, software purchased, software received as a gift, software distributed free or in small amounts from a software manufacturer, or software acquired using other methods may be associated with a user account on an online store or shop. This process can be referred to as "adoption" of the software by the user account in the online store. By associating software with user accounts on an online store, software updates and re-installations can be downloaded from an online store and thus proved to be an easier and more convenient way of managing software on an electronic device. In addition, other computing devices associated with the user account may also receive software updates and reinstallations from an online store. The following description in FIGS. 1-15 is applicable to pre-installed applications, software packages, and applications acquired through other means (e.g., gifts, purchases, or otherwise distributed or acquired). As such, the term "pre-installed application " as used herein may be used interchangeably with a gift application, a purchased application, a distributed application, an acquired application, and others . In other words, "preinstalled application" may be any application for which the user has ownership. Similarly, a "unique hardware identifier" may be any unique identifier that is configured to provide ownership or proof of credentials to an application installed on a computing device. For example, the proof of credentials may be a unique value for every copy of the application being created. The proof of qualification may also be a redemption code for redeeming the application. In other examples, the proof of qualification may be a combination of unique and non-unique values, such as combining a unique identifier associated with a (unique) user account and a redemption code (which may not be unique). A brief introduction of a basic general purpose system or computing device that can be used to implement the concepts is illustrated in FIG. A more detailed description of how the preinstalled software is associated with the user account will follow and includes several variations as various embodiments are described. The disclosure now looks at Figure 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)는 본질적으로 복수의 코어들 또는 프로세서들, 버스, 메모리 컨트롤러, 캐시 등을 포함하는 완전 자급적 컴퓨팅 시스템일 수 있다. 멀티 코어 프로세서는 대칭적 또는 비대칭적일 수 있다.1, an exemplary system 100 includes a processing unit (CPU or processor) 120, and a read only memory (ROM) 140 and a random access memory (RAM) Includes a general purpose computing device 100 that includes a system bus 110 that couples various system components including the system memory 130, such as a processor 150, to the processor 120. The system 100 may include a cache 122 of high-speed memory that is directly connected to, is in proximity to, or is integrated as part of the processor 120. [ The system 100 copies data from the memory 130 and / or the storage device 160 to the cache 122 for quick access by the processor 120. [ In this way, the cache provides a performance boost that avoids processor 120 delays while waiting for a date. These and other modules may be configured to control or control the processor 120 to perform various actions. Other system memory 130 may also be available for use. The memory 130 may comprise a plurality of different types of memory having different performance characteristics. It will be appreciated that the present disclosure may operate in a computing device 100 having more than one processor 120 or in a group or cluster of computing devices that are networked together to provide greater processing capability. Processor 120 may include any of a number of general purpose processors and module 1 162 that is stored in storage device 160 that is configured to control processor 120 as well as special purpose processes in which software instructions are contained within an actual processor design, 2 164, and module 3 166, as shown in FIG. The processor 120 may be essentially a fully self-contained computing system including a plurality of cores or processors, a bus, a memory controller, a cache, and the like. The multicore processor may be symmetric or asymmetric.

시스템 버스(110)는 다양한 버스 아키텍처들 중 임의의 것을 이용하여 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 및 로컬 버스를 포함하는 몇몇 타입들의 버스 구조들 중 임의의 것일 수 있다. ROM(140) 등에 저장되는 기본 입출력(BIOS)은 스타트 업 중과 같이, 컴퓨팅 디바이스(100) 내의 요소들 사이에 정보를 전송하는 데 도움이 되는 기본적인 루틴을 제공할 수 있다. 컴퓨팅 디바이스(100)는 하드 디스크 드라이브, 자기 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브 등과 같은 저장 디바이스들(160)을 더 포함한다. 저장 디바이스(160)는 프로세서(120)를 제어하기 위한 소프트웨어 모듈들(162, 164, 166)을 포함할 수 있다. 다른 하드웨어 또는 소프트웨어 모듈들이 고려된다. 저장 디바이스(160)는 드라이브 인터페이스에 의해 시스템 버스(110)에 접속된다. 드라이브들 및 연관된 컴퓨터 판독 가능한 저장 매체는 컴퓨팅 디바이스(100)를 위한 컴퓨터 판독 가능한 명령어들, 데이터 구조들, 프로그램 모듈들 및 다른 데이터의 불휘발성 저장소를 제공한다. 일 양태에서, 특정 기능을 수행하는 하드웨어 모듈이 기능을 실행하기 위해, 프로세서(120), 버스(110), 디스플레이(170) 등과 같은 필요한 하드웨어 컴포넌트들과 접속하여 비-일시적 컴퓨터 판독 가능한 매체에 저장된 소프트웨어 컴포넌트를 포함한다. 기본적인 컴포넌트들이 이 기술분야의 통상의 기술자들에게 알려져 있고, 디바이스(100)가 소형, 핸드헬드 컴퓨팅 디바이스, 데스크톱 컴퓨터, 또는 컴퓨터 서버인지와 같이 디바이스의 타입에 따라 적절한 변형들이 고려된다.The system bus 110 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. The basic input / output (BIOS) stored in the ROM 140 or the like may provide a basic routine that helps to transfer information between elements within the computing device 100, such as during start-up. The computing device 100 further includes storage devices 160 such as hard disk drives, magnetic disk drives, optical disk drives, tape drives, and the like. The storage device 160 may include software modules 162, 164, 166 for controlling the processor 120. Other hardware or software modules are contemplated. The storage device 160 is connected to the system bus 110 by a drive interface. The drives and associated computer-readable storage media provide non-volatile storage of computer-readable instructions, data structures, program modules and other data for computing device 100. In one aspect, a hardware module that performs a particular function may be coupled to the required hardware components, such as processor 120, bus 110, display 170, and the like, to perform the function and stored in non-transitory computer readable media Software components. Basic components are known to those of ordinary skill in the art and suitable modifications are contemplated depending on the type of device, such as whether the device 100 is a compact, handheld computing device, desktop computer, or computer server.

본원에 설명된 예시적인 실시예는 하드 디스크(160)를 이용하지만, 자기 카세트들, 플래시 메모리 카드들, 디지털 다기능 디스크(digital versatile disk)들, 카트리지들, RAM들(random access memories)(150), ROM(read only memory)(140), 케이블 또는 비트 스트림 등을 포함하는 무선 신호와 같은, 컴퓨터에 의해 액세스 가능한 데이터를 저장할 수 있는 다른 타입들의 컴퓨터 판독 가능한 매체가 또한 예시적인 오퍼레이팅 환경에서 이용될 수 있다는 것을 이 기술분야의 통상의 기술자들이면 알아야 한다. 비-일시적 컴퓨터 판독 가능한 저장 매체는 에너지, 캐리어 신호들, 전자기파들, 및 신호들 자체와 같은 매체를 명백히 제외한다.Exemplary embodiments described herein use hard disk 160 but may include magnetic cassettes, flash memory cards, digital versatile disks, cartridges, random access memories 150, , Read only memory (ROM) 140, and other types of computer readable media capable of storing computer accessible data, such as a wireless signal, including a cable or bit stream, may also be used in an exemplary operating environment As will be appreciated by those of ordinary skill in the art. Non-transient computer readable storage media explicitly exclude media such as energy, carrier signals, electromagnetic waves, and signals themselves.

컴퓨팅 디바이스(100)와의 사용자 상호작용을 가능하게 하기 위해서, 입력 디바이스(190)는 스피치(speech)를 위한 마이크로폰, 제스처 또는 그래픽 입력을 위한 터치 민감 스크린, 키보드, 마우스, 모션 입력, 스피치 등과 같은, 임의의 수의 입력 메커니즘들을 대표한다. 출력 디바이스(170)는 또한 이 기술분야의 통상의 기술자들에게 알려진 다수의 출력 메커니즘들 중 하나 이상일 수 있다. 일부 예들에서, 다모드의 시스템들은 사용자가 컴퓨팅 디바이스(100)와 통신하기 위해 복수의 타입의 입력을 제공할 수 있게 한다. 통신 인터페이스(180)는 일반적으로 사용자 입력 및 시스템 출력을 지배하고 관리한다. 임의의 특정 하드웨어 배열에 대해 동작하는 것으로 한정하지 않고, 따라서 기본적인 특징들은 여기서 그것들이 개발됨에 따라 향상된 하드웨어 또는 펌웨어 배열들로 쉽게 대체될 수 있다.To enable user interaction with the computing device 100, the input device 190 may include a microphone for speech, a touch sensitive screen for gestures or graphical input, a keyboard, a mouse, motion input, speech, Represent any number of input mechanisms. The output device 170 may also be one or more of a number of output mechanisms known to those of ordinary skill in the art. In some instances, multi-mode systems allow a user to provide multiple types of input to communicate with the computing device 100. Communication interface 180 generally governs and manages user input and system output. Rather than being limited to operating on any particular hardware arrangement, the basic features can therefore be readily replaced with enhanced hardware or firmware arrays as they are developed here.

설명의 명확함을 위해, 예시적인 시스템 실시예는 "프로세서" 또는 프로세서(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 회로가 또한 제공될 수 있다.For purposes of clarity of explanation, the exemplary system embodiment is provided as including a "processor" or individual functional blocks including functional blocks labeled with the processor 120. [ The functions represented by these blocks include, but are not limited to, hardware that is capable of executing hardware and software, such as processor 120, which is purpose-built to operate as equivalent to software running on a general purpose processor May be provided through the use of shared, dedicated hardware. For example, the functions of the one or more processors shown in FIG. 1 may be provided by a single shared processor or multiple processors. (The use of the term "processor" should not be construed as referring exclusively to hardware capable of executing software.) Exemplary embodiments include microprocessor and / or digital signal processor A read-only memory (ROM) 140 for storing software that performs the operations discussed, and a random access memory (RAM) 150 for storing results. Very large scale integration (VLSI) hardware embodiments and a custom VLSI circuit that combines with a general purpose DSP circuit may also be provided.

다양한 실시예들의 논리적 동작들은, (1) 일반 용도 컴퓨터 내의 프로그램 가능한 회로에서 구동되는 컴퓨터 구현 단계들, 동작들, 또는 절차들의 시퀀스, (2) 특수 용도 프로그램 가능한 회로에서 구동되는 컴퓨터 구현 단계들, 동작들, 또는 절차들의 시퀀스, 및/또는 (3) 프로그램 가능한 회로들 내의 상호접속된 머신 모듈들 또는 프로그램 엔진들로서 구현된다. 도 1에 도시된 시스템(100)은 기재된 방법들의 전부 또는 일부를 실시할 수 있고, 기재된 시스템들의 부분일 수 있고, 및/또는 기재된 비-일시적 컴퓨터 판독 가능한 저장 매체 내의 명령어들에 따라 동작할 수 있다. 이러한 논리적 동작들은 모듈의 프로그래밍에 따라 특정 기능들을 수행하도록 프로세서(120)를 제어하도록 구성되는 모듈들로서 구현될 수 있다. 예를 들어, 도 1은 프로세서(120)를 제어하도록 구성되는 모듈들인 3개의 모듈들 Mod1(162), Mod2(164) 및 Mod3(166)을 예시한다. 이들 모듈들은 저장 디바이스(160)에 저장되고 실행 시간에 RAM(150) 또는 메모리(130) 내로 로드될 수 있거나 또는 다른 컴퓨터 판독 가능한 메모리 위치들에 이 기술분야에 알려진 바와 같이 저장될 수 있다.The logical operations of various embodiments include (1) a sequence of computer-implemented steps, operations, or procedures driven in a programmable circuit in a general purpose computer, (2) computer-implemented steps, Operations, or sequences of procedures, and / or (3) interconnected machine modules or program engines within the programmable circuits. The system 100 shown in FIG. 1 may implement all or part of the described methods and may be part of the described systems and / or may operate in accordance with instructions in the described non-transient computer readable storage medium have. These logical operations may be implemented as modules configured to control the processor 120 to perform certain functions in accordance with the programming of the module. For example, Figure 1 illustrates three modules, Mod1 162, Mod2 164, and Mod3 166, which are modules configured to control the processor 120. [ These modules may be stored in the storage device 160 and loaded into RAM 150 or memory 130 at execution time or may be stored in other computer readable memory locations as known in the art.

컴퓨팅 시스템의 일부 컴포넌트들을 개시하였고, 개시는 이제 퍼스널 컴퓨터, 랩톱, 게임 콘솔, 스마트폰, 모바일폰, 또는 태블릿 PC와 같은 컴퓨팅 디바이스 상의 미리 설치된 소프트웨어를 온라인 애플리케이션 분배 스토어 또는 마켓의 사용자 계정과 연관(링크 또는 채택과 유사함)시키기 위한 기법들의 논의로 돌아간다. 본원에 개시된 접근법들은 미리 설치된 소프트웨어를 온라인 스토어 또는 분배 센터와 같은 온라인 분배 사이트 상의 사용자 계정과 링크하는 것에 의해 컴퓨팅 디바이스 상의 미리 설치된 소프트웨어의 업데이트 또는 재설치의 효율성 및 편리성을 향상시킬 수 있다. 온라인 분배 사이트는 사용자 계정과 연관된 미리 설치된 소프트웨어를 사용자 계정에 링크되는 하나 이상의 컴퓨팅 디바이스들에 전송한다. 미리 설치된 소프트웨어 및 미리 설치된 소프트웨어에 대한 업데이트들은 둘다 하나 이상의 컴퓨팅 디바이스들에 전송될 수 있다. 일부 예들에서, 분배 사이트는 주어진 사용자 계정과 연관되는 소프트웨어를 수신할 수 있는 주어진 사용자 계정과 연관되는 컴퓨팅 디바이스들의 수에 대한 한계를 특정할 수 있다. 다른 예들에서, 미리 설치된 소프트웨어는 한번 발생되어 디바이스들의 그룹의 각각에 복제되는 표준 '이미지'의 부분이다. 예를 들어, 표준 디바이스 '이미지'는 오퍼레이팅 시스템, 드라이버들, 프로그램들, 설정들 등을 포함할 수 있다. 따라서, 각각의 이미지화된 디바이스는 미리 설치된 소프트웨어를 포함하여 동일한 소프트웨어 구성을 갖고, 최종 사용자(또는 다른 엔티티)가 디바이스를 셋업한 후에, 미리 설치된 소프트웨어는 온라인 스토어 또는 마켓플레이스의 사용자 계정과 채택 및 연관될 수 있다.Discloses some components of a computing system and the disclosure now links preinstalled software on a computing device, such as a personal computer, laptop, game console, smart phone, mobile phone, or tablet PC, to a user account in an online application distribution store or marketplace Link, or adoption) of the techniques described herein. The approaches disclosed herein may improve the efficiency and convenience of updating or reinstalling preinstalled software on a computing device by linking the preinstalled software with a user account on an online distribution site, such as an online store or distribution center. The online distribution site sends the preinstalled software associated with the user account to one or more computing devices that are linked to the user account. Both the preinstalled software and the updates to the preinstalled software can be sent to one or more computing devices. In some instances, the distribution site may specify a limit on the number of computing devices associated with a given user account that can receive software associated with a given user account. In other instances, preinstalled software is part of a standard 'image' that is generated once and duplicated in each of a group of devices. For example, a standard device 'image' may include an operating system, drivers, programs, settings, and the like. Thus, each imaged device has the same software configuration, including preinstalled software, and after the end user (or other entity) has set up the device, the preinstalled software is used and associated with the user account of the online store or marketplace .

도 2는 예시적인 애플리케이션 분배 시스템을 예시한다. 이 예에서, 분배 시스템(200)은 분배 센터(210), 애플리케이션 데이터베이스(220), 구성 서버(230), 인터넷(250) 또는 다른 네트워크, 컴퓨팅 디바이스(260), 컴퓨팅 디바이스(270) 및 포터블 디바이스(280)를 포함한다. 함께, 분배 센터(210), 애플리케이션 데이터베이스(220), 및 구성 서버(230)는 클라이언트-서버 모델의 서버측(240)의 상이한 독립적 컴포넌트들을 표현할 수 있다. 유사하게, 컴퓨팅 디바이스(260), 컴퓨팅 디바이스(270), 및 포터블 디바이스(280)는 클라이언트-서버 모델의 클라이언트측(290)의 상이한 독립적 컴포넌트들을 표현할 수 있다. 따라서, 분배 시스템(200)의 넓은 개요는 인터넷(250)을 통해 클라이언트측(290)과 통신하는 서버측(240)을 포함한다. 예로서, 서버측(240)은 애플리케이션들 또는 멀티플 클라우드 서버들의 판매 및 분배를 위한 온라인 스토어로서 사용자에게 표현될 수 있다. 클라이언트측(290)으로부터의 디바이스는 디바이스에 저장된 애플리케이션 관리 컴퓨터 프로그램을 이용하여 온라인 스토어와 통신할 수 있다. 다른 예들에서, 인터넷(250)은 컴퓨터 네트워크들, 전화 네트워크들, 이더넷, 근거리 네트워크들, 유선 네트워크들, 무선 네트워크들 등과 같은 다른 통신 네트워크들로 대체될 수 있다.Figure 2 illustrates an exemplary application distribution system. In this example, the distribution system 200 includes a distribution center 210, an application database 220, a configuration server 230, the Internet 250 or other network, a computing device 260, a computing device 270, (Not shown). Together, the distribution center 210, the application database 220, and the configuration server 230 may represent different independent components of the server-side 240 of the client-server model. Similarly, the computing device 260, the computing device 270, and the portable device 280 may represent different independent components of the client-side model 290 of the client-server model. Thus, a broad overview of the distribution system 200 includes a server side 240 that communicates with the client side 290 over the Internet 250. By way of example, the server side 240 may be represented to the user as an online store for the sale and distribution of applications or multiple cloud servers. The device from client side 290 may communicate with the online store using an application management computer program stored on the device. In other instances, the Internet 250 may be replaced by other communication networks such as computer networks, telephone networks, Ethernet, local area networks, wired networks, wireless networks, and the like.

컴퓨팅 디바이스(260)는 애플리케이션들(261)을 포함할 수 있다. 애플리케이션들(261)은 패키지의 부분으로서 제공되는, 또는 일부 종류의 설치 미디어가 제공된, 컴퓨팅 디바이스(260)에 미리 설치된 애플리케이션들을 포함할 수 있다. 하나의 공통 시나리오에서, 컴퓨팅 디바이스(260)의 소유자는 제조자로부터 이들 애플리케이션들이 이미 설치된 컴퓨팅 디바이스(260)를 구매하였다. 애플리케이션들(261)은 또한 몇몇 예를 들면, 선물 받았거나, 구매했거나, 무료로 분배된 애플리케이션들과 같은 다른 수단을 통해 컴퓨팅 디바이스(260)에 의해 취득된 애플리케이션들(또는 소프트웨어 패키지들)을 포함할 수 있다. 애플리케이션들(261)은 또한 컴퓨팅 디바이스(260)의 사용자에 의해 분배 센터(210)로부터 구매한 애플리케이션들을 포함할 수 있다. 분배 센터(210)로부터 원하는 애플리케이션들을 구매하기 위해서, 사용자는, 사용자가 이미 구매한 애플리케이션들과 연관된 메타데이터 및 원하는 애플리케이션들의 대가로 분배 센터(210)에 지불하기 위한 지불 정보와 연관된 메타데이터를 포함하는, 사용자 계정(291)에 로그인한다. 일단 로그인되면, 사용자는 구매를 위해 원하는 애플리케이션을 선택할 수 있다. 사용자가 애플리케이션의 구매 가격을 지불하는 것에 동의할 때, 사용자의 지불 정보는 거래를 완료하는 데 이용된다. 일단 거래가 완료되면, 원하는 애플리케이션은 사용자 계정(291)과 연관되고, 따라서 사용자가 원하는 애플리케이션 및 또한 원하는 애플리케이션의 업데이트들을 다운로드할 수 있게 한다. 사용자 계정(291)과 연관된 애플리케이션들은 사용자 계정(291)과 연관되는 다른 디바이스들에 대해 업데이트되거나 다시 다운로드될 수 있다.The computing device 260 may include applications 261. [ Applications 261 may include applications that are provided as part of a package, or pre-installed on computing device 260, provided with some kind of installation media. In one common scenario, the owner of the computing device 260 has purchased a computing device 260 with these applications already installed from the manufacturer. Applications 261 also include applications (or software packages) acquired by computing device 260 via some other means, such as, for example, gifts, purchased, or distributed applications can do. The applications 261 may also include applications purchased from the distribution center 210 by a user of the computing device 260. In order to purchase the desired applications from the distribution center 210, the user may include metadata associated with the applications already purchased by the user and metadata associated with payment information for payment to the distribution center 210 in return for desired applications And logs in to the user account 291. Once logged in, the user can select the desired application for purchase. When the user agrees to pay the purchase price of the application, the payment information of the user is used to complete the transaction. Once the transaction is complete, the desired application is associated with the user account 291, thus allowing the user to download the desired application and also the desired application updates. Applications associated with user account 291 may be updated or re-downloaded for other devices associated with user account 291. [

일부 예들에서, 사용자는 이 시점에서 사용자 계정과 애플리케이션을 연관시키지 않도록 옵션을 가질 수 있다. 예를 들어, 선물로 애플리케이션을 받은 사용자는 사용자 계정을 갖지 않을 수 있거나 그의 사용자 계정과 애플리케이션을 연관시키기를 희망하지 않을 수 있다. 제1 시나리오에서, 컴퓨팅 디바이스(260)는 사용자가 사용자 계정을 셋업하는 것을 요구하지 않고 사용자가 애플리케이션을 설치할 수 있게 할 수 있다. 사용자가 그가 소유하는 다른 전자 디바이스들에 애플리케이션을 설치하거나 업데이트들을 받기를 희망한다면, 사용자는 사용자 계정을 선택하고 그의 사용자 계정과 애플리케이션을 링크(즉, 채택)할 수 있다. 이 예에서, 컴퓨팅 디바이스(260), 컴퓨팅 디바이스(270), 및 포터블 디바이스(280)는 모두 사용자 계정(291)과 연관되고, 따라서 사용자 계정(291)과 연관된 모든 애플리케이션들의 업데이트들 및 재-다운로드들을 받도록 구성된다. 또한, 포터블 디바이스(280)는 2개의 디바이스 사이에 디지털 데이터 및 애플리케이션들을 전송하기 위해 컴퓨팅 디바이스(270)와 통신할 수 있다. 일 예에서, 컴퓨팅 디바이스(270)는 사용자 계정(291)과 연관된 모든 애플리케이션들을 포함하는 중앙 저장소이도록 구성될 수 있고, 선택된 애플리케이션들을 포터블 디바이스(280)에 전송할 수 있다. 이 명세서에서, "애플리케이션"이라는 용어는 소프트웨어 제공자에 의해 제공되는 소프트웨어 프로그램 또는 애플리케이션의 사본을 가리킨다. 다른 예들에서, 사용자가 소유권을 갖는 소프트웨어 애플리케이션들과 같은, 컴퓨팅 디바이스에 처음에 미리 설치된 소프트웨어 애플리케이션들 및 소프트웨어 프로그램들(예를 들어, 시스템 소프트웨어, 엔터프라이즈 소프트웨어, 멀티미디어 파일들, 비디오 파일들, 오디오 파일들, 및 이미지 파일들) 이외의 다른 디지털 제품들은 또한 사용자 계정(291)과 연관되고 분배 센터(210)에 의해 분배/재분배될 수 있다.In some instances, the user may have the option not to associate an application with a user account at this point. For example, a user who receives an application as a gift may not have a user account or may not wish to associate an application with his user account. In the first scenario, the computing device 260 may allow a user to install an application without requiring the user to set up a user account. A user may select a user account and link (i.e., adopt) his / her user account with the application if the user wishes to install the application or receive updates on other electronic devices he owns. In this example, computing device 260, computing device 270, and portable device 280 are all associated with user account 291, and thus are responsible for all of the applications associated with user account 291, Lt; / RTI > In addition, the portable device 280 may communicate with the computing device 270 to transfer digital data and applications between the two devices. In one example, the computing device 270 may be configured to be a central repository containing all the applications associated with the user account 291 and may transmit the selected applications to the portable device 280. In this specification, the term "application" refers to a copy of a software program or application provided by a software provider. In other examples, software applications and software programs (e.g., system software, enterprise software, multimedia files, video files, audio files And image files) may also be associated with the user account 291 and distributed / redistributed by the distribution center 210.

애플리케이션 데이터베이스(220)에 결합되는 분배 센터(210)는 애플리케이션 데이터베이스(220)로부터 애플리케이션들을 판매, 배달, 및 유지하도록 구성된다. 애플리케이션 데이터베이스(220)는 서버측(240)으로부터 분배를 위해 이용가능한 애플리케이션들의 일부 또는 전부를 저장하도록 구성될 수 있다. 애플리케이션들은 인터넷(250)을 통해 클라이언트측(290)의 디바이스로 판매, 업데이트, 및 배달(즉, 전송)될 수 있다. 이와 같이, 분배 센터(210)는 애플리케이션들을 위한 온라인 스토어를 표현한다. 예를 들어, 애플리케이션 데이터베이스(220)는 애플리케이션에 대한 요청을 분배 센터(210)로부터 수신하고, 요청에 응답하여, 요청된 애플리케이션을 분배 센터(210)에 전송할 수 있고, 분배 센터(210)는 후속하여 요청하는 디바이스에 애플리케이션을 전송한다. 요청된 애플리케이션들은 구매를 위해 이용가능한 애플리케이션들 또는 이전에 사용자 계정과 연관된 애플리케이션들(즉, 채택된 별개로 취득되거나 미리 설치된 애플리케이션들)일 수 있다. 다른 예들에서, 애플리케이션 데이터베이스(220)는 요청된 애플리케이션을 요청하는 디바이스에 직접 전송할 수 있다. 또 다른 예들에서, 애플리케이션 데이터베이스(220)는 클라이언트측(290)에 상주할 수 있고, 서버측(240)은 사용자 계정과 연관된 애플리케이션들에 기초하여 애플리케이션 데이터베이스(220)의 특정 애플리케이션들에 대한 액세스를 허가(grant)할 수 있다.The distribution center 210 coupled to the application database 220 is configured to sell, deliver, and maintain applications from the application database 220. The application database 220 may be configured to store some or all of the applications available for distribution from the server side 240. The applications may be sold, updated, and delivered (i.e., transmitted) to the device on the client side 290 via the Internet 250. As such, the distribution center 210 represents an online store for applications. For example, the application database 220 may receive a request for an application from the distribution center 210 and, in response to the request, send the requested application to the distribution center 210, And transmits the application to the requesting device. The requested applications may be applications available for purchase or applications previously associated with a user account (i.e., adopted separately acquired or preinstalled applications). In other examples, application database 220 may send the requested application directly to the requesting device. In another example, the application database 220 may reside on the client side 290 and the server side 240 may provide access to specific applications of the application database 220 based on applications associated with the user account Can grant.

클라이언트측(290)의 디바이스는 디바이스 상의 미리 설치된 애플리케이션 또는 그렇지 않으면 취득되었지만 채택되지 않은 애플리케이션을 사용자 계정과 링크(즉, 연관 또는 채택)하기 위해 소프트웨어 채택 요청을 전송할 수 있다. 애플리케이션을 링크하는 것은, 사용자가 애플리케이션을 사용자 계정과 연관시킬 수 있게 하고, 따라서 사용자가 동일한 사용자 계정과 또한 연관된 다른 디바이스들에 애플리케이션을 다운로드할 수 있게 한다. 이 프로세스는 애플리케이션을 "링크시키는 것", "채택하는 것", 또는 "연관시키는 것"이라고 할 수 있다. 예를 들어, 컴퓨팅 디바이스(260)는 애플리케이션들(261)로부터의 애플리케이션을 사용자 계정(291)과 링크하도록 요청할 수 있다. 요청은 애플리케이션이 사용자 계정(291)과 연관될 수 있는지를 결정하기 위해 인터넷(250)을 통해 분배 센서(210)에 애플리케이션 또는 컴퓨팅 디바이스(260)와 연관된 고유 식별자(예를 들어, 고유 하드웨어 식별자)와 함께 전송될 수 있다. 고유 하드웨어 식별자는 모든 다른 디바이스들로부터 특정 디바이스를 구별하는 데 이용되는 디바이스의 하드웨어에 기초한 고유 식별자이다. 예를 들어, 제조자는 제조된 각각의 디바이스가 고유한 그리고 따라서 임의의 다른 디바이스의 고유 하드웨어 식별자와 상이한 고유 하드웨어 식별자를 포함하도록 보장할 수 있다. 예로서, 고유 하드웨어 식별자는 디바이스의 로직 보드 일련 번호 및/또는 이더넷 하드웨어 어드레스에 기초할 수 있다. 일 예에서, 이들 2개의 값은 고유 하드웨어 식별자를 생성하기 위해 접합되고(concatenated) 뒤섞일(hashed) 수 있다. 다른 예들에서, 디바이스에 특정한 다른 메타데이터가 고유 하드웨어 식별자를 형성하기 위해 다양한 데이터 조작 알고리즘들을 이용하여 접합되거나, 뒤섞이거나, 그렇지 않으면 조합될 수 있다. 또 다른 예들에서, 애플리케이션이 사용자 계정(291)과 연관될 수 있는지를 결정하는 데 이용되는 고유 식별자는 고유 식별자와 연관된 애플리케이션(즉, 소프트웨어 패키지)이 소프트웨어 제조자로부터 합법적으로 취득되었다는 증거로서 역할을 할 수 있는 구매 또는 자격의 임의의 다른 증명에 기초할 수 있다. 하나의 경우에, 고유 식별자는 애플리케이션과 연관된 메타데이터 또는 속성들로부터 도출될 수 있다. 다른 경우에, 고유 식별자는 애플리케이션, 클라이언트 디바이스, 사용자 계정, 사용자 계정과 연관되는 다른 클라이언트 디바이스들, 또는 위의 것 중 하나 이상의 조합과 연관되는 메타데이터로부터 도출될 수 있다.The device on the client side 290 may send a software adoption request to link (i.e., associate or adopt) a preinstalled application on the device or an otherwise acquired but not adopted application with the user account. Linking an application allows a user to associate an application with a user account, thus allowing a user to download an application to other devices that are also associated with the same user account. This process can be said to "link", "adopt", or "associate" an application. For example, the computing device 260 may request to link an application from applications 261 with a user account 291. The request may include a unique identifier (e.g., a unique hardware identifier) associated with the application or computing device 260 to the distribution sensor 210 via the Internet 250 to determine if the application can be associated with the user account 291. [ ≪ / RTI > The unique hardware identifier is a unique identifier based on the hardware of the device used to distinguish a particular device from all other devices. For example, a manufacturer can ensure that each device manufactured is unique and thus contains a unique hardware identifier that is different from the unique hardware identifier of any other device. By way of example, the unique hardware identifier may be based on the logical board serial number and / or the Ethernet hardware address of the device. In one example, these two values may be concatenated and hashed to produce a unique hardware identifier. In other examples, other metadata specific to the device may be joined, scrambled, or otherwise combined using various data manipulation algorithms to form a unique hardware identifier. In yet other instances, the unique identifier used to determine whether an application can be associated with a user account 291 serves as evidence that the application (i.e., software package) associated with the unique identifier is legitimately obtained from the software manufacturer And may be based on any other proof of purchase or qualification possible. In one case, the unique identifier may be derived from the metadata or attributes associated with the application. In other cases, the unique identifier may be derived from metadata associated with the application, client device, user account, other client devices associated with the user account, or a combination of one or more of the above.

일 실시예에서, 분배 센터(210)는 고유 식별자를 수신하고, 고유 식별자를 처리 또는 분석하여 애플리케이션이 사용자 계정과 연관될 수 있는지를 결정한다. 특정 시나리오들에서, 애플리케이션은 사용자 계정과 연관될 수 없다. 예를 들어, 디바이스의 애플리케이션은 애플리케이션이 이전에 다른 사용자 계정과 연관되었다면 사용자 계정과 연관되지 않을 수 있다. 다른 예로서, 애플리케이션이 인증된 사본이 아닌 경우 애플리케이션은 사용자 계정과 연관될 수 없을 수 있다. 이것은 사용자가 한 디바이스에 원래 설치된 애플리케이션을 다른 디바이스로 수동으로 복사할 때 일어날 수 있다. 또 다른 예로서, 연관 프로세스는 애플리케이션이 사용자 계정과 링크되도록 사용자가 전자 디바이스 상의 사용자의 계정으로 로그인되는 것을 요구할 수 있다.In one embodiment, the distribution center 210 receives the unique identifier and processes or analyzes the unique identifier to determine if the application can be associated with a user account. In certain scenarios, an application can not be associated with a user account. For example, an application on a device may not be associated with a user account if the application was previously associated with another user account. As another example, an application may not be associated with a user account if the application is not an authenticated copy. This can happen when you manually copy an application originally installed on one device to another. As another example, the association process may require that a user be logged into the user's account on the electronic device so that the application is linked to the user account.

다른 실시예에서, 분배 센터(210)는 고유 식별자를 수신하고, 고유 식별자를 처리 또는 분석하여 애플리케이션이 사용자 계정과 연관될 수 있는지를 결정한다. 예로서, 고유 식별자를 처리하는 것은 고유 식별자와 데이터베이스를 비교함으로써 고유 식별자를 검증하는 것을 포함할 수 있다. 데이터베이스는, 각각이 애플리케이션의 인증된 사본과 연관된 고유 식별자를 저장하는 복수의 엔트리를 가질 수 있다. 비교의 결과는 애플리케이션이 유효 사본인지 여부, 애플리케이션이 무효 사본인지 여부, 또는 애플리케이션이 이미 사용자 계정과 연관되었는지와 같은, 애플리케이션의 채택 상태를 결정하는 데 이용될 수 있다. 다른 예로서, 고유 식별자를 처리하는 것은 애플리케이션의 채택 상태를 결정하기 위해 해시 테이블 내로 고유 식별자를 입력하는 것을 포함할 수 있다. 또 다른 예에서, 고유 식별자는 애플리케이션의 이러한 설치가 유효하고 아직 채택되지 않았는지를 결정하는 검증 엔진에의 입력으로서 수신될 수 있다. 또 다른 예들에서, 다른 데이터 처리 기법들은 애플리케이션이 사용자 계정과 연관될 수 있는지를 결정하기 위해 고유 식별자에 적용될 수 있다. 애플리케이션은 최근에 사용자에 의해 취득될 수 있다. 다시 말해, 애플리케이션은 분배 또는 제조로부터 전자 디바이스의 구매 및 인수 후에 사용자에 의해 취득되었을 수 있다. 대안적으로, 애플리케이션은 전자 디바이스가 구매되었을 때 취득될 수 있다. 일단 채택 상태가 분배 센터(210)에 의해 결정되었다면, 채택 상태에 따른 확인이 전자 디바이스에 전송될 수 있다. 확인은 채택 프로세스의 상태를 전자 디바이스에 알리기 위해 전송될 수 있다. 확인에 기초하여, 전자 디바이스는 소프트웨어 패키지의 다운로드 또는 소프트웨어 패키지의 업데이트를 요청할 수 있다. 다른 예들에서, 분배 서버(210)는 채택 상태에 따라 전자 디바이스에의 소프트웨어 패키지의 다운로드 또는 소프트웨어 패키지의 업데이트의 프로세스를 자동으로 시작할 수 있다.In another embodiment, the distribution center 210 receives a unique identifier and processes or analyzes the unique identifier to determine if the application can be associated with a user account. As an example, processing the unique identifier may include verifying the unique identifier by comparing the unique identifier with the database. The database may have a plurality of entries, each storing a unique identifier associated with an authenticated copy of the application. The result of the comparison can be used to determine the adoption state of the application, such as whether the application is a valid copy, whether the application is an invalid copy, or the application is already associated with a user account. As another example, processing the unique identifier may include entering a unique identifier into the hash table to determine the adoption state of the application. In yet another example, the unique identifier may be received as input to a validation engine that determines whether such an installation of the application is valid and has not been adopted yet. In other instances, other data processing techniques may be applied to unique identifiers to determine if an application can be associated with a user account. The application may be recently obtained by the user. In other words, the application may have been acquired by the user after purchase and acceptance of the electronic device from distribution or manufacture. Alternatively, the application may be obtained when the electronic device is purchased. Once the adoption state has been determined by the distribution center 210, an acknowledgment according to the adoption state can be sent to the electronic device. The confirmation may be sent to inform the electronic device of the state of the adoption process. Based on the confirmation, the electronic device may request a download of the software package or an update of the software package. In other examples, the distribution server 210 may automatically initiate a process of downloading a software package or updating a software package to an electronic device, depending on the adoption state.

서버측(240)은 링크 요청이 인증되어야 하는지를 결정하기 위해 다수의 서버들 및 테이블들을 포함할 수 있다. 예를 들어, 분배 센터(210)는 링크 요청의 유효성 또는 합법성을 결정하기 위해 고유 식별자를 처리하도록 구성되는 고유성 서버(211)를 포함한다. 고유성 서버(211)는 사용자 계정과 링크되는 하나 이상의 미리 설치된 애플리케이션들을 갖는 전자 디바이스들의 테이블 또는 데이터베이스를 유지하도록 구성되는 고유성 테이블을 포함할 수 있다. 예로서, 고유성 테이블은 사용자 계정과 그것들의 미리 설치된 애플리케이션들을 이미 링크한 디바이스들(즉, 디바이스와 연관된 미리 설치된 애플리케이션들을 이미 채택한 디바이스들)의 고유 하드웨어 식별자를 저장하도록 구성될 수 있다. 고유성 테이블은 또한 사용자 계정과 연관된 애플리케이션들과 연관된 메타데이터를 저장하도록 구성될 수 있다. 디바이스가 사용자 계정과 그의 애플리케이션들의 일부 또는 전부를 채택(즉, 링크)할 때, 디바이스의 고유 하드웨어 식별자 또는 채택된 애플리케이션의 고유 식별자들이 고유성 테이블 내에 저장된다. 이것은 이미 채택된 애플리케이션들을 링크하기 위한 미래의 요청들을 방지한다. 예를 들어, 고유 식별자가 고유성 테이블에 있는지에 대한 조회를 수행하는 것은, 고유 하드웨어 식별자와 연관된 디바이스가 이미 그의 미리 설치된 애플리케이션들을 사용자 계정과 링크했는지를 결정한다. 유사하게, 조회는 또한 고유 식별자와 연관된 애플리케이션이 사용자 계정과 이미 링크되었는지를 결정할 수 있다. 다른 예로서, 고유성 테이블은 이전에 채택된(즉, 사용자 계정과 링크된) 전자 디바이스의 하나 이상의 미리 설치된 애플리케이션들과 연관된 메타데이터와 함께 전자 디바이스의 고유 하드웨어 식별자를 저장하도록 구성될 수 있다. 다시 말해, 고유성 디바이스는 디바이스의 고유 하드웨어 식별자와 선택적으로 채택된 디바이스의 미리 설치된 애플리케이션들과 연관된 하나 이상의 메타데이터 사이의 1-대-다 맵핑으로서 구성된다. 고유 하드웨어 식별자에 대해 고유성 테이블을 조회하는 것은, 고유 하드웨어 식별자가 고유성 테이블에 존재하지 않는 경우에 어떤 것도 리턴할 수 없고, 고유 하드웨어 식별자가 고유성 테이블에 존재하는 경우에 선택적으로 채택된 미리 설치된 애플리케이션들과 연관된 메타데이터를 리턴할 수 있다. 이것은 제1 사용자 계정과 디바이스 상의 미리 설치된 애플리케이션을 그리고 제2 사용자 계정과 디바이스 상의 다른 미리 설치된 애플리케이션을 선택적으로 채택하는 능력을 야기할 수 있다. 또 다른 예들에서, 고유성 테이블은 사용자 계정에 링크된 애플리케이션들의 테이블 또는 데이터베이스를 유지하도록 구성될 수 있다. 이미 링크된 애플리케이션들은 고유성 테이블에 저장된 고유 식별자를 가질 수 있고, 이로써 채택된 애플리케이션들의 최신의 데이터베이스를 유지할 수 있다.The server side 240 may include a number of servers and tables to determine if the link request is to be authenticated. For example, the distribution center 210 includes a uniqueness server 211 configured to process a unique identifier to determine the validity or legality of the link request. The uniqueness server 211 may include a uniqueness table configured to maintain a table or database of electronic devices having one or more pre-installed applications linked with the user account. By way of example, the uniqueness table can be configured to store unique hardware identifiers of devices that have already linked user accounts and their pre-installed applications (i. E. Devices that already have pre-installed applications associated with the device). The uniqueness table may also be configured to store metadata associated with applications associated with the user account. When the device adopts (i.e., links) some or all of the user account and its applications, the device's unique hardware identifier or the unique identifier of the adopted application is stored in the uniqueness table. This prevents future requests to link already adopted applications. For example, performing a lookup as to whether a unique identifier is in the uniqueness table determines whether the device associated with the unique hardware identifier has already linked its pre-installed applications with the user account. Similarly, the query can also determine if the application associated with the unique identifier has already been linked to the user's account. As another example, the uniqueness table may be configured to store a unique hardware identifier of the electronic device along with metadata associated with one or more preinstalled applications of the electronic device previously adopted (i.e., linked with the user account). In other words, the uniqueness device is configured as a one-to-many mapping between the unique hardware identifier of the device and one or more metadata associated with the pre-installed applications of the selected device. Querying the uniqueness table for the unique hardware identifier can not return anything if the unique hardware identifier does not exist in the uniqueness table and can not return anything if the unique hardware identifier is present in the uniqueness table, ≪ / RTI > < RTI ID = 0.0 > This may result in the ability to selectively employ a first user account and a pre-installed application on the device and a second user account and other pre-installed applications on the device. In yet other examples, the uniqueness table may be configured to maintain a table or database of applications linked to the user account. The already linked applications can have a unique identifier stored in the uniqueness table, thereby keeping the latest database of the adopted applications.

예에서, 구성 서버(230)는 디바이스가 제조자를 떠났을 때 특정 애플리케이션이 전자 디바이스 상에 미리 설치되었음을 검증 또는 결정하기 위해 전자 디바이스의 원래 구성을 검사함으로써 링크 요청의 유효성을 검증할 수 있다. 구성 서버는 또한 애플리케이션이 사용자 디바이스 상에 설치되었는지 또는 사용자 계정과 연관되었는지에 상관없이, 사용자가 소유권을 갖는 애플리케이션들을 검증 또는 식별할 수 있다. 따라서, 사용자가 소유권을 갖지만 연관 또는 설치되지 않은 애플리케이션들이 또한 식별될 수 있다. 구성 서버(230)는 제조자에 의해 생성된 전자 디바이스들의 원래 구성을 저장하는 데이터베이스를 포함한다. 원래 구성은 오퍼레이팅 시스템의 버전 및 만약에 있다면, 전자 디바이스와 배달된 애플리케이션들의 버전을 포함할 수 있다. 예를 들어, 온라인 스토어를 통해 전자 디바이스를 주문하는 사용자는 구매시에 하나 이상의 애플리케이션들을 갖는 디바이스를 구성할 수 있다. 애플리케이션들은 구매시 구성에 기초하여 제조함으로써 전자 디바이스 상에 설치된다. 제조는 후속하는 검색을 위해 구성 서버(230)에 전자 디바이스의 구성을 전달한다. 구성 서버(230)가 전자 디바이스로부터 고유 하드웨어 식별자를 포함하는 검색 요청을 수신할 때, 구성 서버(230)는 데이터베이스에서 검색 또는 조회를 수행하고, 전자 디바이스 상에 설치된 애플리케이션들의 버전을 포함하는 목록 및/또는 디바이스 상에 설치된 오퍼레이팅 시스템의 버전을 리턴한다. 구성 서버(230)는 사용자가 연관시키기 위해 시도하고 있는 애플리케이션이 인증된 설치인지 또는 이전에 다른 사용자 계정과 연관된 것인지를 결정하기 위해 사용자가 사용자 계정과 연관시키기 위해 시도하고 있는 애플리케이션과 설치된 애플리케이션들의 목록을 비교할 수 있다. 대안적으로, 구성 서버(230)는 링크 요청이 허가되어야 하는지를 결정하기 위해 분배 센터(210)에 미리 설치된 애플리케이션들의 목록을 전달할 수 있다. 이 검사는 한 디바이스에서 다른 디바이스로 미리 설치된 애플리케이션들을 복사함으로써 사용자들이 분배 시스템(200)을 교묘히 회피하는 것을 방지할 수 있다.In an example, the configuration server 230 may validate the link request by checking the original configuration of the electronic device to verify or determine that the particular application was pre-installed on the electronic device when the device left the manufacturer. The configuration server may also verify or identify applications for which the user has ownership, whether the application is installed on a user device or associated with a user account. Thus, applications that have ownership but are not associated or installed by the user can also be identified. The configuration server 230 includes a database that stores the original configuration of the electronic devices created by the manufacturer. The original configuration may include the version of the operating system and, if present, the version of the electronic device and delivered applications. For example, a user who orders an electronic device through an online store may configure a device with one or more applications at the time of purchase. Applications are installed on the electronic device by manufacturing based on the configuration at the time of purchase. The manufacturer forwards the configuration of the electronic device to the configuration server 230 for subsequent retrieval. When the configuration server 230 receives a search request that includes a unique hardware identifier from the electronic device, the configuration server 230 performs a search or lookup in the database and returns a list containing the versions of the applications installed on the electronic device, / / Returns the version of the operating system installed on the device. The configuration server 230 may determine the application that the user is attempting to associate with the user account and the list of installed applications to determine whether the application the user is attempting to associate with is an authenticated installation or previously associated with another user account Can be compared. Alternatively, the configuration server 230 may communicate a list of pre-installed applications to the distribution center 210 to determine if the link request should be granted. This check can prevent users from dodging the distribution system 200 by copying pre-installed applications from one device to another.

일단 서버측(240)의 하나 이상의 요소들이 링크 요청을 유효화하면, 미리 설치된 애플리케이션은 사용자 계정과 연관된다(즉, 애플리케이션 채택). 또한, 고유성 서버(211) 또는 구성 서버(230)는 애플리케이션 채택을 고려하도록 업데이트될 수 있다. 예를 들어, 새로운 엔트리가 고유성 서버(211)의 고유성 테이블에 추가될 수 있는데, 그 이유는 전자 디바이스와 연관된 미리 설치된 애플리케이션들의 일부 또는 전부가 채택되었을 수 있기 때문이다. 일부 예들에서, 분배 센터(210)는 미리 설치된 애플리케이션이 사용자 계정과 연관된 후에 미리 설치된 애플리케이션의 업데이트를 컴퓨팅 디바이스(260)에 전송할 수 있다. 다른 예들에서, 컴퓨팅 디바이스(270)가 미리 설치된 애플리케이션으로 원래 구성되지 않았더라도, 분배 센터(210)는 컴퓨팅 디바이스(270)와 같은 사용자 계정과 연관된 다른 디바이스들에 미리 설치된 애플리케이션을 전송할 수 있다. 애플리케이션 채택을 위한 유사한 요청들을 통해, 애플리케이션들(271)에 저장된 컴퓨팅 디바이스(270)의 미리 설치된 애플리케이션들 및 애플리케이션들(281)에 저장된 포터블 디바이스(280)의 미리 설치된 애플리케이션들은 사용자 계정(291)과 연관될 수 있고, 결국은 컴퓨팅 디바이스(260), 컴퓨팅 디바이스(270), 및/또는 포터블 디바이스(280)에 분배될 수 있다.Once one or more elements of server side 240 validate the link request, the pre-installed application is associated with a user account (i.e., application adoption). In addition, the uniqueness server 211 or the configuration server 230 may be updated to account for application adoption. For example, a new entry may be added to the uniqueness table of the uniqueness server 211, because some or all of the pre-installed applications associated with the electronic device may have been adopted. In some instances, the distribution center 210 may send an update of the preinstalled application to the computing device 260 after the preinstalled application is associated with the user account. In other instances, the distribution center 210 may send an application previously installed to other devices associated with a user account, such as the computing device 270, even though the computing device 270 was not originally configured as a preinstalled application. Pre-installed applications of the computing device 270 stored in the applications 271 and pre-installed applications of the portable device 280 stored in the applications 281 through similar requests for application adoption are stored in the user account 291, And may eventually be distributed to the computing device 260, the computing device 270, and / or the portable device 280.

도 3은 예시적인 클라이언트-서버 시스템을 예시한다. 클라이언트-서버 시스템(300)은 클라이언트 디바이스(350) 및 서버(360)를 포함한다. 서버(360)는 클라이언트 디바이스(350)로부터의 요청들에 응답하도록 구성될 수 있고, 도 2의 서버측(240)으로부터의 하나 이상의 요소들을 포함할 수 있다. 클라이언트 디바이스(350)는 서버(360)에 페이지 요청들을 제출함으로써 사용자 계정과 (미리 설치된 또는 그렇지 않으면 취득된) 애플리케이션들을 연관시킬 수 있다. 클라이언트 디바이스(350)는 또한 미리 설치된 애플리케이션들에서와 같이 동일한 또는 유사한 페이지 요청들을 서버(360)에 제출함으로써 사용자 계정과 다른 애플리케이션들을 연관시킬 수 있다.3 illustrates an exemplary client-server system. The client-server system 300 includes a client device 350 and a server 360. Server 360 may be configured to respond to requests from client device 350 and may include one or more elements from server side 240 of FIG. The client device 350 may associate (pre-installed or otherwise acquired) applications with the user account by submitting page requests to the server 360. [ The client device 350 may also associate the user account with other applications by submitting the same or similar page requests to the server 360, such as in pre-installed applications.

하나의 타입의 페이지 요청은 업데이트 페이지 요청(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)의 다른 요소에 의해 발생될 수 있다.One type of page request is an update page request (301). The update page request 301 may be a request sent to the server 360 to perform an inquiry for available application updates. In response to the update page request 301, the server 360 returns a HyperText Markup Language (HTML) page 303 configured to notify the user about the applications stored in the client device 350 with the available updates . In some instances, the server 360 may return metadata to the client device 350, and the client device 350 also generates an HTML page and presents it to the user. Update page request 301 may include a digital receipt for each application stored in client device 350. [ The receipt includes metadata associated with the application to document the purchase or ownership of the software. One type of receipt is the actual receipt associated with the adopted applications or purchased applications. The actual receipt may include a description of the application, the version number of the application, when the application was purchased, information about the person who purchased the application, information about the device where the application was initially installed, and the like. In other words, the actual receipt is proof of the purchase unique to the electronic device and / or buyer for which the application was purchased. Another type of receipt is a stub receipt. Stub receipts contain a subset of the information in the actual receipts, and are part of the application when the application is not adopted with a user account. In one example, the stub receipt uniquely identifies a copy of this application from other copies. This may allow the server to determine if this particular copy of the application (presented to the user or otherwise obtained by the user) can be adopted by the user. In another example, stub receipts are generated by the manufacturer as receipts to be associated with pre-installed applications. In order to facilitate and simplify the installation of applications by the manufacturer, stub receipts may contain a minimum amount of information that is smaller than actual receipts. For example, the stub receipts may include an application identifier identifying the application to the server and also a version number identifying the version of the application. The application identifier may be a name associated with the application. The stub receipt may not contain information specific to the buyer when the application was purchased, such as information about the person who purchased the application or the device on which the pre-installed application is installed. In other words, the stub receipt may not include user accounts, user account information, or information about a client device, computing device, or other device. The application identifier may be a name associated with the preinstalled application. In some instances, stub receipts are generated by the manufacturer when applications are preinstalled on the device or when the device is being prepared for delivery. In other instances, stub receipts may be generated by the server 260 and subsequently transmitted to the client device 350 to be associated with the pre-installed application. Server 360 may generate stub receipts in response to periodic scheduled communications between server 360 and client device 350 or requests by client device 350. [ Once the pre-installed application is adopted, the stub receipt can be replaced with an actual receipt. In another example, the stub receipt is generated as a receipt to be associated with a purchased, presented, or otherwise acquired application that is not associated with the client device when the application is acquired. This stub receipt can be generated by a manufacturer, an application distributor, an online store, or the like. In some cases, the stub receipts may be batches that are processed and assigned to applications for distribution. Stub receipts are stored on the server and used to authenticate the acceptance requests. As in the previous example, the stub receipt can be replaced with an actual receipt during the application adoption process. The actual receipt may be generated by the client device 350, the server 360, or other elements of the client-server system 300.

이 예에서, 업데이트 페이지 요청(301)은 미리 설치된 애플리케이션(310)과 연관된 스터브 영수증 A(311), 미리 설치된 애플리케이션(320)과 연관된 스터브 영수증 B(321), 및 애플리케이션(330)과 연관된 실제 영수증(331)을 포함한다. 애플리케이션(330)은 클라이언트 디바이스(350)의 구매 후에 서버(360)로부터 구매되었고 따라서 실제 영수증을 포함한다. 업데이트 페이지 요청(301)에 응답하여, 서버(360)는 미리 설치된 애플리케이션(310), 미리 설치된 애플리케이션(320), 또는 애플리케이션(330)이 서버(360)로부터 다운로드될 수 있는 이용가능한 업데이트를 가지는 경우 사용자에게 알리는 HTML(303)을 생성한다. 채택(즉, 사용자 계정과 링크 또는 연관)되지 않은 미리 설치된 애플리케이션과 연관된 이용가능한 업데이트가 미리 설치된 애플리케이션이 사용자 계정과 채택될 때까지 다운로드될 수 없다. 일단 이용가능한 업데이트가 다운로드되고 클라이언트 디바이스(350)에 설치되면, 스터브 영수증은 애플리케이션이 구매된 때(즉, 이용가능한 업데이트가 설치된 일자), 그것을 구매한 사용자, 및 애플리케이션이 처음에 설치된 전자 디바이스와 같은 다른 메타데이터를 포함하는 실제 영수증으로 대체될 수 있다.In this example, the update page request 301 includes a stub receipt A 311 associated with the pre-installed application 310, a stub receipt B 321 associated with the pre-installed application 320, and an actual receipt associated with the application 330 (331). The application 330 was purchased from the server 360 after purchase of the client device 350 and thus contains the actual receipt. In response to the update page request 301, the server 360 may determine whether the pre-installed application 310, the pre-installed application 320, or the application 330 has available updates that can be downloaded from the server 360 And generates HTML 303 informing the user. An available update associated with a pre-installed application that is not adopted (i.e., linked or associated with a user account) can not be downloaded until the pre-installed application is adopted with the user account. Once an available update has been downloaded and installed on the client device 350, the stub receipt will be displayed at the time the application was purchased (i.e., the date the available update was installed), the user who purchased it, It can be replaced with an actual receipt containing other metadata.

다른 타입의 페이지 요청이 구매 페이지 요청(302)이다. 구매 페이지 요청(302)은 클라이언트 디바이스(350)의 사용자에 의해 구매한 애플리케이션들의 목록을 요청하기 위해 서버(360)에 전송될 수 있다. 요청에 응답하여, 서버(360)는 클라이언트 디바이스(350)의 사용자에 의해 구매한 애플리케이션들 및 옵션으로 클라이언트 디바이스(350)에 설치된 애플리케이션들에 대해 사용자에게 알리도록 구성되는 HTML 페이지(303)를 리턴할 수 있다. 클라이언트 디바이스(350)에 저장되지 않은 구매한 애플리케이션들은 다운로드되고 설치될 수 있다. HTML 페이지(303)는 또한 채택(즉, 사용자 계정과 링크 또는 연관)을 위해 이용가능한 애플리케이션들을 포함할 수 있다. 사용자 계정과 연관되지 않은 클라이언트 디바이스 상의 애플리케이션들은 업데이트 페이지 요청(301) 또는 대안적으로 구매 페이지 요청(302)을 통해 채택을 위해 선택될 수 있다. 채택되지 않은 애플리케이션들은 클라이언트 디바이스 상에 애플리케이션 또는 원하는 애플리케이션을 설치하기 위한 요청으로 영수증들 또는 다른 형태의 자격의 증명을 전송할 수 있다.Another type of page request is a purchase page request 302. Purchase page request 302 may be sent to server 360 to request a list of applications purchased by a user of client device 350. [ In response to the request, the server 360 returns an HTML page 303 that is configured to inform the user about the applications purchased by the user of the client device 350 and, optionally, the applications installed on the client device 350 can do. Purchased applications that are not stored in the client device 350 can be downloaded and installed. HTML page 303 may also include applications available for adoption (i.e., linking or associating with a user account). Applications on the client device that are not associated with a user account may be selected for adoption via an update page request 301 or alternatively via a purchase page request 302. [ Unapproved applications may send receipts or other forms of proof of qualification to a request to install an application or a desired application on a client device.

구매 페이지 요청(302)은 적하목록(340)을 포함할 수 있다. 적하목록(340)은 미리 설치된 애플리케이션들 또는 그렇지 않으면 취득한 애플리케이션들과 연관된 정보를 저장하도록 구성될 수 있다. 이 정보는 채택을 위해 이용가능한 애플리케이션들에 대해 사용자에게 알리기 위해 서버(360)에 의해 이용될 수 있다. 적하목록(340)은 클라이언트 디바이스(350)의 애플리케이션들의 버전 넘버를 저장하도록 구성되는 목록, 테이블, 또는 다른 데이터 구조를 포함한다. 애플리케이션의 버전 넘버는 스터브 영수증 또는 애플리케이션과 연관된 다른 메타데이터에서 발견될 수 있다. 일 예에서, 적하목록(340)은 클라이언트 디바이스(350)가 스타트 업하는 제1 시간에(the first time) 발생된다. 예를 들어, 적하목록은 스터브 영수증들에 대해 컴퓨터를 검색하기 위해 클라이언트 디바이스에 대한 스포트라이트(즉, 검색) 기능을 활용함으로써 클라이언트 디바이스의 제1 부트 중에 발생될 수 있고, 이것은 후속하여 적하목록을 생성하는 데 이용된다. 적하목록은 사용자 계정과 애플리케이션의 링크 중에 또는 아래 논의될 전자 디바이스의 복구 모드 중에 액세스되도록 구성 서버에 저장될 수 있다.The purchase page request 302 may include a manifest 340. The manifest 340 can be configured to store information associated with pre-installed or otherwise acquired applications. This information can be used by the server 360 to inform the user about the applications available for adoption. The manifest 340 includes a list, table, or other data structure that is configured to store the version number of the applications of the client device 350. The version number of the application may be found in stub receipts or other metadata associated with the application. In one example, the manifest 340 is generated at the first time that the client device 350 starts up. For example, the manifest may be generated during the first boot of the client device by utilizing a spotlight (i.e., search) function on the client device to retrieve the computer for stub receipts, which in turn creates a manifest . The manifest may be stored in the configuration server to be accessed during the link of the user account and the application or during the recovery mode of the electronic device to be discussed below.

이 예에서, 클라이언트 디바이스(350)는 후속하여 적하목록(340)을 생성하는 데 이용되는 스터브 영수증(311) 및 스터브 영수증(321)을 배치하기 위해 조회된다. 클라이언트 디바이스(350)의 재포맷 또는 복구 중에, 머리 설치된 및 그렇지 않으면 취득된 애플리케이션들 둘다가 클라이언트 디바이스(350)로부터 삭제될 수 있다. 사용자 계정과 링크된 애플리케이션들은 클라이언트 디바이스(350)에 다시 다운로드될 수 있다. 그러나, 사용자 계정과 링크되지 않은 미리 설치된 애플리케이션들은 완전히 소실될 위험이 있다. 적하목록(340)은 아래에서 더 상세하게 설명되는 바와 같이 채택되지 않은 애플리케이션들의 손실을 방지하기 위한 메커니즘으로서 역할을 한다. 채택을 위해 이용가능한 애플리케이션은 미리 설치된 애플리케이션이 사용자 계정과 링크 또는 연관될 때까지 다운로드될 수 없다. 일단 이용가능한 업데이트가 클라이언트 디바이스(350)에 다운로드되고 설치되면, 적하목록(340)은 현재 채택된 애플리케이션과 연관된 스터브 영수증을 제거하도록 편집될 수 있다. 또한, 설치된 애플리케이션은 실제 영수증을 포함한다. 일부 예들에서, HTML 페이지(303)의 처리 및 검색과 함께 업데이트 페이지 요청(301) 및 구매 페이지 요청(302)의 발생은 클라이언트 디바이스(350)에 설치된 애플리케이션 관리 프로그램(도시되지 않음)에 의해 관리되고 다뤄진다. 애플리케이션 관리 프로그램은 제조자에 대해 독점일 수 있고, 제조자에 속하는 서버들과 구체적으로 통신하도록 구성될 수 있다.In this example, the client device 350 is subsequently queried to deploy the stub receipt 311 and the stub receipt 321 used to create the manifest 340. During the reformatting or recovery of client device 350, both head-on and otherwise acquired applications may be deleted from client device 350. Applications linked with the user account may be downloaded again to the client device 350. [ However, pre-installed applications that are not linked to user accounts are at risk of being completely lost. The manifest 340 serves as a mechanism to prevent the loss of unapplied applications, as will be described in more detail below. Applications available for adoption can not be downloaded until a pre-installed application is linked or associated with a user account. Once the available updates are downloaded and installed on the client device 350, the manifest 340 can be edited to remove the stub receipts associated with the currently adopted application. Also, the installed application includes the actual receipt. In some examples, the occurrence of the update page request 301 and purchase page request 302 along with processing and retrieval of the HTML page 303 is managed by an application management program (not shown) installed in the client device 350 It is treated. The application management program may be proprietary to the manufacturer and may be configured to specifically communicate with servers belonging to the manufacturer.

클라이언트-서버 시스템(300)은 또한 클라이언트 디바이스(350)에 의해 취득되지만 사용자 계정과 연관되지 않은(예를 들어, 선물되거나 구매했지만 사용자 계정에 링크되지 않았거나, 또는 다른 수단을 통해 클라이언트 디바이스에 분배된) 애플리케이션들을 채택할 수 있다. 예로서, 취득된 애플리케이션은 업데이트 페이지 요청, 구매 페이지 요청, 또는 다른 페이지 요청을 통해 사용자 계정과 링크될 수 있다. 요청은 스터브 영수증 또는 스터브 영수증과 연관되거나 또는 스터브 영수증으로부터 도출된 메타데이터를 포함할 수 있다. 다른 예로서, 적하목록(340)은 채택되지 않은 애플리케이션들(즉, 아직 사용자 계정과 링크되지 않은 애플리케이션들)이 클라이언트 디바이스(350)에 의해 취득될 때 업데이트될 수 있다.The client-server system 300 also includes a client device 350 that is obtained by the client device 350 but is not associated with a user account (e.g., presented or purchased, but not linked to a user account, Lt; / RTI > applications). As an example, the acquired application may be linked with a user account via an update page request, a purchase page request, or another page request. The request may include metadata derived from a stub receipt or a stub receipt or from a stub receipt. As another example, the manifest 340 may be updated when unapproved applications (i. E., Applications not yet linked to a user account) are acquired by the client device 350.

도 4는 업데이트 페이지 요청을 처리하기 위한 예시적인 방법을 도시한다. 클라이언트 및 서버에 의해 수행되는 액션들을 예시하는 방법(400)은 업데이트 페이지 요청 중에 클라이언트와 서버 사이의 통신들을 관리하도록 구성될 수 있다. 서버에 의해 수행되는 액션들은 분배 센터 또는 서버측에 위치한 다른 컴포넌트에 저장된 분배 프로그램에 의해 실행될 수 있고, 클라이언트에 의해 수행되는 액션들은 클라이언트의 전자 디바이스에 저장된 애플리케이션 관리 프로그램에 의해 실행될 수 있다. 방법(400)은 클라이언트 디바이스에 의해 공급되는 그래픽 사용자 인터페이스에서 업데이트 탭 링크를 선택하는 사용자로 시작할 수 있다. 예시적인 업데이트 탭 링크는 도 5에서 링크(451)일 수 있다. 일단 클라이언트가 업데이트 페이지에 대한 사용자 요청을 수신하였다면(401), 클라이언트는 클라이언트 디바이스에 설치된 애플리케이션들과 연관된 영수증들 또는 다른 형태들의 자격의 증명에 대해 클라이언트 디바이스를 조회 또는 검색한다(403). 다른 예들에서, 조회는 사용자 상호작용 없이 자동으로 시작할 수 있다. 예를 들어, 서버는 미리 결정된 시간 간격 또는 시점에서 클라이언트와 통신함으로써 조회를 개시할 수 있다. 검색은 클라이언트 디바이스의 오퍼레이팅 시스템 또는 대안적으로 클라이언트 디바이스에 저장된 애플리케이션 또는 루틴과 연관된 기능을 이용하여 수행될 수 있다. 발견되는 영수증들 또는 영수증들의 사본이 서버에 전송된다(405). 영수증들은 이더넷, 인터넷, 근거리 네트워크들 등과 같은 임의의 통신 네트워크에 걸쳐서 전송될 수 있다. 서버는 영수증들을 수신하고 그것들을 처리하여 영수증들과 연관된 애플리케이션들이 업데이트들을 갖는지를 결정한다(407). 이것은 도 2의 애플리케이션 데이터베이스(220)와 같은 애플리케이션 데이터베이스에 액세스하고 애플리케이션 데이터베이스에 저장된 애플리케이션의 버전 넘버와 영수증의 버전 넘버를 비교하는 것을 포함할 수 있다. 이것은 또한 클라이언트 디바이스 상에 설치된 애플리케이션이 서버에 의한 분배를 위해 구성됨을 결정함으로써 채택을 위해 애플리케이션이 적격임을 검증하는 것을 포함할 수 있다. 일부 실시예들에서, 서버는 또한 애플리케이션이 이 시점에서 이전에 채택되지 않았음을 검증할 수 있고, 이것은 설치된 애플리케이션의 사본을 고유하게 식별하는 (서버 또는 클라이언트로부터의) 고유 식별자를 검색하는 단계 및 고유 식별자가 임의의 사용자 계정과 연관되지 않았음을 검증하는 단계를 포함할 수 있다. 업데이트들을 갖는 애플리케이션들의 목록은 HTML 페이지(408)를 생성하거나, 또는 데스크톱 애플리케이션 또는 스마트폰 애플리케이션과 같은 일부 다른 사용자 인터페이스를 조작하는 데 이용될 수 있다. HTML 페이지는 이용가능한 업데이트들을 갖는 애플리케이션들에 관련된 정보를 포함할 수 있다. 이 정보는 애플리케이션의 원래 구매일자, 애플리케이션의 설명, 및 업데이트된 애플리케이션에서의 변경들 또는 수정의 설명을 포함할 수 있다. HTML은 하나 이상의 애플리케이션들이 업데이트들을 갖거나 채택을 위해 이용가능함을 클라이언트에 통지하기 위해 클라이언트에 전송될 수 있는 통지의 오직 하나의 예이다. 서버는 그 다음에 클라이언트에 HTML 페이지를 전송할 수 있다(409). 일부 예들에서, 서버는 클라이언트가 영수증들을 전송한 동일한 채널을 통해 HTML 페이지를 전송할 수 있다. 서버는 대안적으로 프리 패키징(pre-packaging)하고 HTML 페이지를 클라이언트에 전송하기보다는, 국부적으로 설치된 클라이언트 애플리케이션을 업데이트하기 위해 클라이언트에 충분한 정보를 전송할 수 있다.4 illustrates an exemplary method for processing an update page request. A method 400 of illustrating actions performed by a client and a server may be configured to manage communications between a client and a server during an update page request. Actions performed by the server may be executed by a distribution program stored in another component located at the distribution center or server side, and actions performed by the client may be executed by an application management program stored in the client ' s electronic device. The method 400 may begin with a user selecting an update tab link in a graphical user interface provided by the client device. An exemplary update tap link may be a link 451 in FIG. Once the client receives 401 a user request for an update page, the client queries or retrieves 403 the client device for receipts or other types of proof of entitlement associated with applications installed on the client device. In other examples, the query can be started automatically without user interaction. For example, the server may initiate a query by communicating with the client at a predetermined time interval or point in time. The retrieval may be performed using a function associated with an application or routine stored on the client device's operating system or, alternatively, on the client device. A copy of the receipts or receipts found is sent to the server (405). Receipts can be transmitted over any communication network, such as Ethernet, Internet, local area networks, and the like. The server receives receipts and processes them to determine if the applications associated with the receipts have updates (407). This may include accessing an application database, such as application database 220 of FIG. 2, and comparing the version number of the receipt with the version number of the application stored in the application database. This may also include verifying that the application is eligible for adoption by determining that the application installed on the client device is configured for distribution by the server. In some embodiments, the server may also verify that the application has not previously been adopted at this time, which may include retrieving a unique identifier (from a server or client) that uniquely identifies a copy of the installed application and And verifying that the unique identifier is not associated with any user account. The list of applications with updates may be used to create an HTML page 408, or to manipulate some other user interface, such as a desktop application or a smartphone application. The HTML page may include information related to applications having available updates. This information may include an original purchase date of the application, a description of the application, and a description of changes or modifications in the updated application. HTML is only one example of a notification that may be sent to a client to notify a client that one or more applications have updates or are available for adoption. The server can then send the HTML page to the client (409). In some instances, the server may send an HTML page over the same channel to which the client has sent receipts. The server may alternatively send enough information to the client to update the locally installed client application rather than pre-packaging and sending the HTML page to the client.

도 5는 온라인 스토어 또는 마켓플레이스의 사용자의 계정과 채택 또는 연관된 미리 설치된 애플리케이션에 대한 업데이트 페이지 요청과 연관된 HTML 페이지의 예를 도시한다. HTML 페이지(450)는 업데이트 페이지를 요청하기 위해 사용자에 의해 선택될 수 있는 업데이트 링크(451)를 포함한다. 업데이트 링크(451)는 애플리케이션 관리 프로그램의 상이한 특징들에 액세스하기 위해 사용자에게 편리하고 빠른 방법을 제공하기 위해 "특징화(featured)", "정상 챠트(top charts)", "카테고리(categories)" 및 "구매(purchases)"와 같은 다른 링크들을 갖는 메뉴바에 배치될 수 있다. 일부 예들에서, 업데이트 링크(451)를 표현하는 아이콘은 이용가능한 업데이트를 갖는 클라이언트 디바이스에 저장된 애플리케이션들의 수를 특정하는 수를 포함할 수 있다. 아이콘 내의 번호는 서버와 클라이언트 디바이스 사이의 주기적인 통신을 통해 사용자가 업데이트 탭 링크(451)를 선택하기 전에 발생될 수 있다.Figure 5 illustrates an example of an HTML page associated with an account of a user of an online store or marketplace and an update page request for a preinstalled application associated with or associated with it. The HTML page 450 includes an update link 451 that can be selected by the user to request an update page. Update links 451 may include "featured", "top charts", "categories" to provide a convenient and quick way for a user to access different features of an application management program, &Quot; and "purchases ". In some instances, the icon representing the update link 451 may include a number that specifies the number of applications stored on the client device with the available updates. The number in the icon may be generated before the user selects the update tab link 451 through the periodic communication between the server and the client device.

예를 들어, 클라이언트 디바이스는 서버와 주기적으로 통신하고 이용가능한 업데이트를 갖는 저장된 애플리케이션들의 가장 최신의 버전 넘버를 검색할 수 있다. 이 예에서, 업데이트 링크(451)가 선택되었고, 이용가능한 업데이트를 포함하는 하나의 애플리케이션이 HTML 페이지(450) 내에 제시된다. 하나의 애플리케이션이 애플리케이션을 설명하는 애플리케이션 설명(457)과 함께 제시된다. 애플리케이션 설명(457)은 애플리케이션의 이름, 애플리케이션의 저작자, 애플리케이션의 버전 넘버, 애플리케이션의 공개일, 또는 애플리케이션과 연관된 다른 정보를 포함할 수 있다. 애플리케이션 설명(457)은 애플리케이션에 대한 아이덴티티를 제공하는 아이콘(455) 및 애플리케이션의 이 업데이트된 버전에 구현된 변경들의 시놉시스(459)를 더 포함할 수 있다. 이것은 그가 업그레이드하기를 희망하는지에 대해 사용자가 현명한 결정을 할 수 있도록 사용자에게 정보를 제공할 수 있다. HTML 페이지(450)는 또한 그가 애플리케이션 업데이트를 수신하기를 희망하는 경우 사용자에 의해 선택될 수 있는 선택 가능한 링크(461)를 포함한다. 이용가능한 업데이트들의 수는 헤드라인(453)에 디스플레이된다. 헤드라인(453)은 사용자가 이용가능한 업데이트들의 수를 빠르게 결정할 수 있는 다른 편리한 위치를 제공하도록 구성된다. 일부 예에서, HTML 페이지(450)는 또한 이용가능한 업데이트를 갖는 모든 애플리케이션들을 업데이트하기 위해 헤드라인(453) 옆에 선택가능한 링크를 포함할 수 있다.For example, the client device may periodically communicate with the server and retrieve the most recent version number of stored applications with available updates. In this example, an update link 451 has been selected, and one application containing the available updates is presented in the HTML page 450. One application is presented with an application description 457 describing the application. The application description 457 may include the name of the application, the author of the application, the version number of the application, the date of publication of the application, or other information associated with the application. The application description 457 may further include an icon 455 providing an identity for the application and a synopsis 459 of changes implemented in this updated version of the application. This can provide information to the user to make a wise decision about whether he wants to upgrade. The HTML page 450 also includes a selectable link 461 that may be selected by the user if he desires to receive the application update. The number of available updates is displayed in the headline 453. The headline 453 is configured to provide another convenient location where the user can quickly determine the number of available updates. In some instances, the HTML page 450 may also include a selectable link next to the headline 453 to update all applications with available updates.

도 4로 돌아가면, 클라이언트는 전송된 HTML 페이지를 수신하고 사용자에게 HTML 페이지를 제시한다(411). 도 5에 논의된 바와 같이, HTML 페이지는 이용가능한 업데이트들을 갖는 애플리케이션들, 애플리케이션들의 설명, 및 애플리케이션의 업데이트를 인증하기 위해 사용자에 의해 선택가능한 하나 이상의 링크들을 열거하는 그래픽 사용자 인터페이스를 제시한다. 클라이언트는 애플리케이션을 업데이트하기 위해 사용자 인증을 수신할 수 있다(413). 사용자 인증이 수신되었다면, 클라이언트는 애플리케이션이 업데이트될 수 있기 전에 애플리케이션이 채택을 요구하는지를 결정할 수 있다(415). 이것은 영수증이 스터브 영수증인지를 결정하기 위해 클라이언트에 설치된 애플리케이션의 영수증을 검사하는 것을 포함할 수 있다. 영수증이 스터브 영수증이면, 스터브 영수증과 연관된 애플리케이션은 잠재적으로 아직 사용자 계정에 채택되지 않은 미리 설치된 애플리케이션이다. 따라서, 사용자 인증이 요구되고 클라이언트는 애플리케이션을 사용자 계정에 채택 또는 연관시키기 위해 사용자 인증을 요청하는 사용자에게 HTML 페이지를 제시할 수 있다(417). 사용자 인증은 통신 네트워크를 통한 개인 정보의 전송을 수반할 수 있다. 프라이버시 이유로, HTML 페이지는 인증 프로세스 중에 개인 정보가 전송될 것임을 사용자에게 알리고 이 개인 정보를 통신 네트워크를 통해 전송하기 위한 허가를 요청한다.Returning to FIG. 4, the client receives the transmitted HTML page and presents the HTML page to the user (411). As discussed in FIG. 5, the HTML page presents a graphical user interface that enumerates applications with available updates, a description of applications, and one or more links selectable by the user to authenticate an update of the application. The client may receive a user certificate to update the application (413). If user authentication has been received, the client may determine 415 whether the application requires adoption before the application can be updated. This may include inspecting the receipt of the application installed on the client to determine if the receipt is a stub receipt. If the receipt is a stub receipt, the application associated with the stub receipt is potentially a pre-installed application that has not yet been adopted into the user account. Thus, user authentication may be required and the client may present the HTML page to the user requesting user authentication (417) to adopt or associate the application with the user account. User authentication may involve the transmission of personal information over a communication network. For privacy reasons, the HTML page informs the user that personal information will be sent during the authentication process and requests permission to transmit this personal information over the communication network.

도 6은 컴퓨팅 디바이스의 구매와 함께 추가로 제공 및/또는 미리 설치될 수 있는, 애플리케이션들을 채택하기 위한 사용자 인증을 요청하는 HTML 페이지의 예를 도시한다. HTML 페이지(470)는 사용자에게 이용가능한 업데이트들을 갖는 4개의 애플리케이션을 제시하는 업데이트 페이지이다. 이와 같이, 업데이트 링크(471)의 아이콘은 번호 "4"를 포함한다. 이 예에서, 사용자는 "전부 업데이트" 링크(475)를 통해 애플리케이션들의 전부를 업데이트하도록 선택하였다. 그러나, 다른 예들에서, 사용자는 또한 업데이트 링크들(476, 477, 478, 또는 479) 중 하나를 선택함으로써 단일 애플리케이션을 업데이트하도록 선택할 수 있다. 이용가능한 업데이트들을 갖는 애플리케이션들은 미리 설치된 애플리케이션들(472) 및 구매된 애플리케이션(473)을 포함한다. 일부 예들에서, 이 스테이지에서 미리 설치된 애플리케이션들 및 구매된 애플리케이션들의 제시에 차이가 존재하지 않는다. 그러나 일단 사용자가 미리 설치된 또는 그렇지 않으면 사용자 계정과 링크되지 않은 애플리케이션을 업데이트하도록 선택하면, HTML 페이지(470)는 사용자에게 프롬프트(480)를 제시할 수 있다. 프롬프트(480)는 도 7에 더욱 상세하게 설명된다.Figure 6 illustrates an example of an HTML page requesting user authentication to employ applications, which may be additionally provided and / or pre-installed with the purchase of a computing device. HTML page 470 is an update page that presents four applications with updates available to the user. As such, the icon of update link 471 includes number "4 ". In this example, the user has selected to update all of the applications via a "Update All" However, in other examples, the user may also choose to update a single application by selecting one of update links 476, 477, 478, or 479. [ Applications with available updates include pre-installed applications 472 and purchased applications 473. In some instances, there is no difference in presentation of pre-installed applications and purchased applications at this stage. However, once the user selects to update an application that is pre-installed or otherwise unlinked from the user account, the HTML page 470 may prompt the user 480. The prompt 480 is described in more detail in FIG.

도 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)라고 서술할 수 있다.Figure 7 illustrates another example of an HTML page requesting user authentication to employ applications. A prompt 480, also known as an authentication prompt, is presented to the user when the user is preinstalled on the computer and possibly chooses to update the acquired application that is not associated with the user account or simply with the user account. In this example, the prompt 480 includes an icon 481, a login 482, a password 483, a password assistance 484, a description 485, a help link 486, An account creation 487, a cancel 488, and a sign in 489. The description 485 provides textual information to inform the user that preinstalled (i.e., additional bundled) applications on this electronic device will be associated with the user account if the user wishes to update the applications. The description 485 may also inform the user that to adopt the application, a unique hardware identifier associated with the electronic device is sent to the server to determine whether application adoption should be authenticated. The icon 481 may be used to brand an application update function of the application management program. The login 482 and the password 483 may specify a user account that the user prefers to have the pre-installed application associated. The password assistance 484 may be selected by the user requesting assistance for the password. Once the desired user account has been entered and the correct password has been entered, the user can begin the adoption process by selecting the signature at 489. If the user does not have a user account, or if the user wishes to associate pre-installed applications with a new account, the user can select account creation 487. If the user desires to cancel and does not wish to update the application (s), the user may choose to cancel 488. If the user desires a more detailed description of any of the elements described above instead, the user may select the help link 486. In other instances where an HTML page is not pre-installed on an electronic device but instead requests user authentication to associate applications separately acquired by the electronic device, the description 485 may be modified to convey the appropriate message to the user . For example, the description 485 states "that in order to receive future updates, applications X, Y, and Z will be assigned to this Apple ID. "To receive future updates, applications 'X', 'Y', and 'Z' will be assigned to this Apple ID. A unique identifier must be stored on your computer to be sent to Apple verify eligibility).

도 4로 돌아가면, 클라이언트는 애플리케이션을 채택하기 위해 사용자 인증을 수신할 수 있다(419). 이 사용자 인증은 사용자가 도 7에 설명된 바와 같이 클라이언트에 의해 제시된 프롬프트 내로 사용자 계정 및 패스워드를 입력함으로써 수신될 수 있다. 일단 사용자 인증이 클라이언트에 의해 수신되었다면, 클라이언트는 애플리케이션의 채택을 계속할 수 있다(421). 애플리케이션을 사용자 계정에 채택하는 예시적인 프로세스가 아래 도 12에서 설명된다. 일부 예들에서, 모든 미리 설치된 애플리케이션들은 동시에 사용자 계정과 연관되어야 한다. 따라서, 사용자는 하나의 사용자 계정을 갖는 전자 디바이스와 연관된 하나의 미리 설치된 애플리케이션을 선택적으로 링크할 수 없고, 다른 사용자 계정을 갖는 전자 디바이스와 연관된 다른 미리 설치된 애플리케이션을 선택적으로 링크할 수 없다. 전자 디바이스 상의 모든 미리 설치된 애플리케이션들을 동시에 채택하는 것은 채택 프로세스를 관리함에 있어서 계산상 오버헤드를 단순화할 수 있는데, 그 이유는 전자 디바이스와 연관된 고유 하드웨어 식별자는 미리 설치된 애플리케이션들이 채택되었음을 서버에 알리기에 충분할 수 있기 때문이다. 다른 예들에서, 전자 디바이스 상의 미리 설치된 애플리케이션들은 복수의 계정들과 선택적으로 연관될 수 있다. 따라서, 제1 미리 설치된 애플리케이션이 제1 전자 디바이스와 연관될 수 있고, 제2 미리 설치된 애플리케이션이 제2 전자 디바이스와 연관될 수 있다. 그러나, 서버 상의 미리 설치된 애플리케이션들의 관리는 채택된 미리 설치된 애플리케이션들 플러스 전자 디바이스들의 고유 하드웨어 식별자를 저장하는 것을 요구할 수 있다. 이들 예들은 또한 전자 디바이스의 구매와 별개로 취득되는 애플리케이션들에 적용가능하다. 예를 들어, 전자 디바이스 상의 선물 받고 설치된 애플리케이션들의 번들이 개별적으로 또는 그룹으로 사용자 계정과 연관될 수 있다.Returning to FIG. 4, the client may receive a user certificate to adopt the application (419). This user authentication may be received by the user entering a user account and password into the prompt presented by the client as described in FIG. Once user authentication has been received by the client, the client may continue to adopt the application (421). An exemplary process for adapting an application to a user account is described in FIG. 12 below. In some instances, all pre-installed applications must be associated with a user account at the same time. Thus, a user can not selectively link one pre-installed application associated with an electronic device having a single user account, and can not selectively link another pre-installed application associated with an electronic device having a different user account. Adopting all the pre-installed applications on the electronic device at the same time can simplify the computational overhead in managing the adoption process because the unique hardware identifier associated with the electronic device is sufficient to inform the server that pre- It is because. In other instances, the pre-installed applications on the electronic device may be selectively associated with a plurality of accounts. Thus, a first pre-installed application can be associated with a first electronic device, and a second pre-installed application can be associated with a second electronic device. However, management of pre-installed applications on the server may require storing pre-installed applications plus adopted hardware identifiers of the electronic devices. These examples are also applicable to applications that are acquired separately from purchasing electronic devices. For example, bundles of the gift-installed applications on the electronic device may be associated with the user account individually or in groups.

도 8은 구매 페이지 요청을 처리하기 위한 예시적인 방법을 도시한다. 클라이언트 및 서버에 의해 수행되는 액션들을 예시하는 방법(500)은 구매 페이지 요청 중에 클라이언트와 서버 사이의 통신들을 관리하도록 구성될 수 있다. 서버에 의해 수행되는 액션들은 분배 센터 또는 서버측에 배치된 다른 컴포넌트에 저장된 분배 프로그램에 의해 실행될 수 있고, 클라이언트에 의해 수행되는 액션들은 클라이언트측의 전자 디바이스에 저장된 애플리케이션 관리 프로그램에 의해 실행될 수 있다. 일부 예들에서, 분배 센터에 저장된 분배 프로그램 및 전자 디바이스에 저장된 애플리케이션 관리 프로그램은 업데이트 페이지 요청 중에 도 4의 방법(400)을 또한 수행하도록 구성될 수 있다. 방법(500)은 클라이언트 디바이스에 의해 공급되는 그래픽 사용자 인터페이스에서 구매 탭 링크를 선택하는 사용자에 의해 시작할 수 있다. 예시적인 구매 탭 링크는 도 9에서 링크(551)일 수 있다. 클라이언트가 구매 페이지를 위한 사용자 요청을 수신하면(501), 클라이언트는 애플리케이션 정보에 대한 검색 또는 조회를 수행할 수 있다. 이 예시적인 방법에서, 애플리케이션 정보는 적하목록 및/또는 영수증들을 포함할 수 있다(503). 다른 예들에서, 애플리케이션 정보는 사용자 계정과 연관되지 않은 애플리케이션 또는 소프트웨어 패키지를 포함할 수 있고, 여기서 사용자 계정은 소프트웨어 패키지에 대한 소유권을 갖는다. 소유권은 디지털 영수증과 같은 자격의 증명일 수 있다. 일부 예들에서, 적하목록은 도 3의 적하목록(340)과 유사하거나 또는 실질적으로 유사할 수 있다. 검색 또는 조회는 클라이언트에서 이용가능한 하나 이상의 프로그램들 또는 기능들에 의해 수행될 수 있다. (아직 채택되지 않은 애플리케이션에 대한 자격의 증명 또는 소유권과 같은) 적하목록, 영수증들(실제 및 스터브), 사용자 계정 정보 등을 포함할 수 있는 애플리케이션 정보가, 일부 경우들에서, 소프트웨어 채택 요청으로서 서버에 전송될 수 있다(505). 애플리케이션 정보는 설치된 애플리케이션들, 설치를 위해 이용가능한 애플리케이션들, 및 채택될 수 있는 애플리케이션들에 대해 사용자에게 알리는 구매 페이지를 생성할 목적으로 서버에 전송된다(505). 전송되는 애플리케이션 정보는 사용자가 클라이언트에서 서명했는지에 의존할 수 있다. 예를 들어, 사용자가 클라이언트에서 서명된 경우 사용자 계정 정보는 액세스가능하고 애플리케이션 정보의 부분으로서 전송될 수 있다. 위에서 논의한 바와 같이, 사용자 계정 정보는 사용자 계정과 연관된 애플리케이션들에 관한 정보를 포함할 수 있다. 유사하게, 영수증들은 클라이언트가 구동중인 전자 디바이스와 연관된 애플리케이션들에 관한 정보를 포함할 수 있다. 적하목록은 전자 디바이스 상에 원래 미리 설치된 애플리케이션들의 정보 또는 사용자가 소유권을 갖지만 사용자 디바이스 상에 설치되지 않거나 사용자 계정과 연관되지 않은 애플리케이션들의 정보를 포함할 수 있다. 이것들은 오직 애플리케이션 정보의 예시적인 타입이고, 다른 타입들의 애플리케이션 정보가 또한 구매 페이지를 생성하기 위해 서버에 전송될 수 있다.Figure 8 illustrates an exemplary method for processing a purchase page request. A method 500 for illustrating actions performed by a client and a server may be configured to manage communications between a client and a server during a purchase page request. Actions performed by the server may be executed by a distribution program stored in a distribution center or other component placed on the server side, and actions performed by the client may be executed by an application management program stored in the electronic device on the client side. In some instances, the distribution program stored in the distribution center and the application management program stored in the electronic device may be configured to also perform the method 400 of FIG. 4 during an update page request. The method 500 may be initiated by a user selecting a purchase tap link in a graphical user interface supplied by the client device. An exemplary purchase tap link may be a link 551 in FIG. When the client receives 501 a user request for a purchase page (501), the client may perform a search or lookup for the application information. In this exemplary method, the application information may include a manifest and / or receipts (503). In other examples, the application information may include an application or software package that is not associated with a user account, wherein the user account has ownership of the software package. Ownership may be proof of eligibility, such as a digital receipt. In some instances, the manifest may be similar or substantially similar to the manifest 340 of FIG. Search or query may be performed by one or more programs or functions available on the client. Application information, which may include manifests, receipts (actual and stubs), user account information, etc. (such as proof of credentials or ownership of applications not yet adopted), may, in some cases, (Step 505). The application information is transmitted 505 to the server for the purpose of creating a purchase page informing the user of installed applications, applications available for installation, and applications that may be adopted. The transmitted application information may depend on whether the user signed in on the client. For example, if the user is signed at the client, the user account information may be accessible and transmitted as part of the application information. As discussed above, the user account information may include information about applications associated with the user account. Similarly, receipts may include information about applications associated with the electronic device on which the client is running. The manifest may include information of originally pre-installed applications on the electronic device or information of applications that the user owns but is not installed on the user device or is not associated with a user account. These are only exemplary types of application information, and other types of application information may also be sent to the server to create a purchase page.

서버는 전송된 애플리케이션 정보(즉, 적하목록, 영수증들, 사용자 계정, 및 다른 사용자 계정 정보)를 수신하고 수신된 정보에 기초하여 애플리케이션들의 하나 이상의 목록들을 생성한다(507). 애플리케이션 목록들 및 애플리케이션 목록들을 생성하는 데 이용된 프로세스는 수신된 정보에 따라 달라질 수 있다. 제1 애플리케이션 목록은 클라이언트의 전자 디바이스에 설치되는 애플리케이션들을 포함할 수 있다. 제2 애플리케이션 목록은 사용자 계정과 연관되는 애플리케이션들을 포함할 수 있고, 클라이언트의 전자 디바이스에 설치될 수 있다. 제3 애플리케이션 목록은 가능하게는 사용자 계정과 링크될 수 있는 애플리케이션들을 포함할 수 있다. 제3 목록 내의 애플리케이션들은 클라이언트의 전자 디바이스에 미리 설치된 애플리케이션들 및/또는 클라이언트가 소유권을 갖지만 채택되거나 설치되지 않은 애플리케이션들을 포함할 수 있다. 다른 애플리케이션 목록들이 또한 사용자 계정과 연관되지 않은 구매된 또는 그렇지 않으면 취득된 애플리케이션들과 같이 발생될 수 있다. 서버에 의해 수신된 애플리케이션 정보에 따라, 전술한 애플리케이션 목록들 중 하나 이상이 발생될 수 있다. 일부 예들에서, 애플리케이션 목록들의 발생은 도 2에서 애플리케이션 데이터베이스(220)와 같은 애플리케이션 데이터베이스에 액세스하는 것을 수반할 수 있다. 서버는 발생된 애플리케이션 목록들에 기초하여 HTML 페이지를 생성할 수 있다(508). HTML 페이지의 발생은 애플리케이션 목록들 내의 애플리케이션들과 연관된 메타데이터를 수신하기 위해 애플리케이션 데이터베이스에 액세스하는 것을 포함할 수 있다. 예를 들어, 메타데이터는 애플리케이션의 이름, 애플리케이션의 설명, 애플리케이션의 버전 넘버, 애플리케이션의 구매일자, 애플리케이션과 연관된 이미지 등을 포함할 수 있다. 일단 HTML 페이지가 발생되면, 서버는 클라이언트에 HTML 페이지를 전송한다(509). 클라이언트는 후속하여 사용자에게 HTML 페이지를 제시한다(511). 사용자가 클라이언트에서 서명했는지에 따라, 상이한 정보가 사용자에게 제시된다.The server receives the transmitted application information (i.e., manifests, receipts, user accounts, and other user account information) and generates 507 one or more lists of applications based on the received information. The processes used to generate the application lists and application lists may vary depending on the information received. The first list of applications may include applications installed on the client ' s electronic device. The second list of applications may include applications associated with the user account and may be installed in the electronic device of the client. The third application list may possibly include applications that may be linked with a user account. Applications in the third list may include applications preinstalled on the client ' s electronic device and / or applications for which the client owns but is not adopted or installed. Other application lists may also be generated such as purchased or otherwise acquired applications not associated with a user account. Depending on the application information received by the server, one or more of the above-listed application lists may be generated. In some instances, the generation of application lists may involve accessing an application database, such as application database 220, in FIG. The server may generate an HTML page based on the generated application lists (508). The occurrence of an HTML page may include accessing an application database to receive metadata associated with applications in the application lists. For example, the metadata may include the name of the application, a description of the application, a version number of the application, a date of purchase of the application, an image associated with the application, and so on. Once an HTML page is generated, the server sends an HTML page to the client (509). The client subsequently presents an HTML page to the user (511). Depending on whether the user has signed on the client, different information is presented to the user.

도 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)를 선택할 수 있다.Figure 9 shows an example of an HTML page associated with a purchase page request when the user is unsigned. In this example, the HTML page 550 presents the user with a list 557 of applications available for adoption. Among the three applications available for adoption, applications "iMovie" and "GarageBand" have available updates as illustrated by text 558 and 559, respectively. The HTML page 550 includes a purchase link 551. In some instances, the purchase link 551 may function the same or substantially the same as the update link 451 of FIG. The HTML page 550 further includes a headline 553 that informs the user of the number of applications available for adoption. The description 555 provides a description of the adoption process to the user with the hope of assisting the user in deciding whether or not they wish to adopt the application. The HTML page 550 also includes instructions 552 for informing the user that the user must sign his user account to receive information about purchases associated with his user account. In this example, the HTML page 550 includes an accept link 554 that initiates the adoption process when selected by the user. In other examples, the HTML page 550 may include an accept link for each application available for adoption, thus allowing the user to select a single application available for adoption, a plurality of applications available for adoption, or And to choose to accept all applications available for adoption. The user may select the accept link 554 via a touch screen, a mouse click, a keyboard, or other user input devices.

도 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)는 "설치 상태"에 있을 때 사용자 선택가능한 링크를 포함할 수 있다. 사용자 선택가능한 링크를 선택하면, 결과적으로, 애플리케이션이 전자 디바이스에 다운로드되고 설치되게 된다.Figure 10 shows another example of an HTML page associated with a purchase page request when the user is signed. The HTML page 560 presents a list of two applications to the user. In this example, presentation of application list 562 includes applications available for adoption, and presentation of application list 564 includes previously purchased applications. The two application lists are presented in independent and separate portions of the HTML page 560. [ The presentation of the application list 564 includes metadata associated with previously purchased applications such as the name of the application, the image associated with the application, the software vendor, the date of purchase, and status 566. [ State 566 may be configured to display the current state of the purchased application. For example, state 566 may be in an "installed state " when an application is currently installed in the client's electronic device. State 566 may be configured to display the text "INSTALLED " when in this state. In this example, the four purchased applications are all installed in the client's electronic device. As another example, state 566 may be in an "install state " when an application is purchased but not installed in the client's electronic device. For example, an application may not have been downloaded to this device yet, or the application may have been selectively deleted from the device. State 566 may be configured to display the text "INSTALL " when in this state. In addition, state 566 may include a user selectable link when in an "installed state. &Quot; Selecting a user selectable link results in an application being downloaded and installed on the electronic device.

도 8로 돌아가면, 클라이언트는 애플리케이션을 채택하기 위한 요청으로서 사용자 입력을 수신할 수 있다(513). 일부 예들에서, 사용자 입력은 도 9의 수락 링크(554)를 선택하는 것일 수 있다. 클라이언트는 사용자 계정에 애플리케이션을 링크하도록 사용자 인증을 요청할 수 있다(515). 사용자 계정에 애플리케이션을 링크하도록 사용자 인증을 요청하기 위한 인증 프롬프트를 포함하는 HTML 페이지의 예가 도 11에 도시된다.Returning to FIG. 8, the client may receive user input 513 as a request to adopt the application. In some instances, the user input may be to select the accept link 554 of FIG. The client may request user authentication to link the application to the user account (515). An example of an HTML page that includes an authentication prompt to request user authentication to link an application to a user account is shown in FIG.

도 11은 인증 프롬프트를 포함하는 구매 페이지 요청과 연관된 HTML 페이지의 다른 예를 도시한다. HTML 페이지(570)는 사용자가 미리 설치된 애플리케이션들의 채택을 수락하는 것을 선택할 때 인증 프롬프트(575)를 포함할 수 있다. 사용자가 미리 설치된 애플리케이션들의 채택을 수락하는 것을 선택한 후에 인증 프롬프트(575)는 서버로부터 전송된 HTML 페이지의 부분으로서 포함되고 사용자에게 제시될 수 있다. 일부 예들에서, 인증 프롬프트(575)는 도 7의 인증 프롬프트(480)와 동일하거나 실질적으로 동일할 수 있다.Figure 11 shows another example of an HTML page associated with a purchase page request that includes an authentication prompt. The HTML page 570 may include an authentication prompt 575 when the user chooses to accept the adoption of the preinstalled applications. The authentication prompt 575 may be included as part of the HTML page sent from the server and presented to the user after the user has selected to accept the adoption of the pre-installed applications. In some instances, the authentication prompt 575 may be the same as or substantially the same as the authentication prompt 480 in FIG.

도 8로 돌아가면, 클라이언트는 사용자 계정에 애플리케이션을 링크하기 위해 사용자 인증을 수신할 수 있다. 사용자 계정은 사용자 인증 중에 입력되는 사용자 계정이다. 예를 들어, 사용자는 애플리케이션이 연관되는 사용자의 사용자명 및 패스워드를 입력할 수 있다. 사용자 인증이 클라이언트에 의해 수신된 후에, 클라이언트는 애플리케이션의 채택을 계속할 수 있다(519). 사용자 계정에 애플리케이션을 채택하는 예시적인 프로세스가 아래 도 12에서 설명된다. 일부 예들에서, 모든 미리 설치된 애플리케이션들은 동시에 사용자 계정과 연관되어야 한다. 따라서, 사용자는 하나의 사용자 계정을 갖는 전자 디바이스와 연관된 하나의 미리 설치된 애플리케이션을 선택적으로 링크할 수 없고, 다른 사용자 계정을 갖는 전자 디바이스와 연관된 다른 미리 설치된 애플리케이션을 선택적으로 링크할 수 없다. 전자 디바이스 상의 모든 미리 설치된 애플리케이션들을 동시에 채택하는 것은 채택 프로세스를 관리함에 있어서 계산상 오버헤드를 단순화할 수 있는데, 그 이유는 전자 디바이스와 연관된 고유 하드웨어 식별자는 미리 설치된 애플리케이션들이 채택되었음을 서버에 알리기에 충분할 수 있기 때문이다. 전자 디바이스 상의 미리 설치된 애플리케이션들이 복수의 계정들과 선택적으로 연관될 수 있는 다른 예들에서, 서버 상의 미리 설치된 애플리케이션들의 관리는 전자 디바이스들의 고유 하드웨어 식별자에 부가하여 채택된 미리 설치된 애플리케이션들을 저장하는 것을 요구할 수 있다.Returning to Figure 8, the client may receive user authentication to link the application to the user account. A user account is a user account that is entered during user authentication. For example, the user may enter the user name and password of the user with which the application is associated. After user authentication is received by the client, the client may continue to adopt the application (519). An exemplary process of employing an application for a user account is described in FIG. 12 below. In some instances, all pre-installed applications must be associated with a user account at the same time. Thus, a user can not selectively link one pre-installed application associated with an electronic device having a single user account, and can not selectively link another pre-installed application associated with an electronic device having a different user account. Adopting all the pre-installed applications on the electronic device at the same time can simplify the computational overhead in managing the adoption process because the unique hardware identifier associated with the electronic device is sufficient to inform the server that pre- It is because. In other instances where pre-installed applications on the electronic device may be selectively associated with a plurality of accounts, management of pre-installed applications on the server may require storing pre-installed applications adopted in addition to the unique hardware identifier of the electronic devices have.

도 12는 사용자 계정에 미리 설치된 애플리케이션을 링크하기 위한 예시적인 방법을 도시한다. 클라이언트와 서버 사이에 수행되는 통신 프로토콜을 예시하는 방법(600)은 사용자 계정에 미리 설치된 애플리케이션을 링크하는 프로세스를 관리하도록 구성될 수 있다. 서버에 의해 수행되는 액션들은 분배 센터 또는 서버측에 배치된 다른 컴포넌트에서의 프로그램에 의해 실행될 수 있고, 클라이언트에 의해 수행되는 액션들은 클라이언트의 전자 디바이스에 저장된 애플리케이션 관리 프로그램에 의해 실행될 수 있다. 애플리케이션 관리 프로그램은 클라이언트에 저장된 소프트웨어 애플리케이션들을 설치, 삭제, 유지, 또는 그렇지 않으면 관리하도록 구성될 수 있다. 일부 예들에서, 분배 센터에 저장된 분배 프로그램 및 전자 디바이스에 저장된 애플리케이션 관리 프로그램은 또한 도 4의 방법(400) 및/또는 도 5의 방법(500)을 수행하도록 구성될 수 있다. 일부 예들에서, 방법(600)은 도 4의 "애플리케이션 채택을 계속한다"(421) 또는 도 8의 "애플리케이션 채택을 계속한다"(519) 후에 수행될 수 있다.Figure 12 illustrates an exemplary method for linking an application preinstalled in a user account. A method 600 of illustrating a communication protocol performed between a client and a server may be configured to manage a process of linking a preinstalled application to a user account. Actions performed by the server may be executed by a program in another component located at the distribution center or server side, and actions performed by the client may be executed by an application management program stored in the electronic device of the client. The application management program may be configured to install, delete, maintain, or otherwise manage the software applications stored on the client. In some instances, the distribution program stored in the distribution center and the application management program stored in the electronic device may also be configured to perform the method 400 of FIG. 4 and / or the method 500 of FIG. In some instances, method 600 may be performed after "continue application adoption" 421 of FIG. 4 or "continue application adoption" 519 of FIG.

방법(600)은 고유 하드웨어 식별자를 생성할 수 있다(620). 고유 하드웨어 식별자는 애플리케이션의 유효한 소유권 또는 자격의 디지털 영수증으로서 역할을 할 수 있다. 고유 하드웨어 식별자는 전자 디바이스에 특정한 하나 이상의 식별자들을 결합하는 것으로부터 발생될 수 있다. 예를 들어, 고유 하드웨어 식별자는 전자 디바이스의 하드웨어 컴포넌트들과 연관된 하나 이상의 식별자에 기초할 수 있다. 하드웨어 컴포넌트들의 식별자들은 고유하기 때문에, 2개의 고유 하드웨어 식별자가 동일하지 않다. 예로서, 고유 하드웨어 식별자는 디바이스의 이더넷 하드웨어 어드레스와 디바이스의 로직 보드 일련 번호를 결합함으로써 발생될 수 있다. 로직 보드 일련 번호 및 이더넷 하드웨어 어드레스는 접합, 해싱, 인코딩 스킴, 또는 다른 데이터 조작 알고리즘을 이용하여 결합될 수 있다. 고유 하드웨어 식별자는 미리 설치된 애플리케이션을 사용자 계정과 연관시키기 위한 요청의 부분으로서 클라이언트로부터 서버로 전송될 수 있다(630). 미리 설치된 애플리케이션들이 선택적으로 채택될 수 있는 다른 예들에서, 미리 설치된 애플리케이션과 연관된 메타데이터는 또한 클라이언트로부터 서버로 전송된다. 메타데이터는 서버에 상세들을 제공하여 서버가 사용자가 사용자 계정으로 채택하는 것을 시도하고 있는 선택된 미리 설치된 애플리케이션을 식별할 수 있게 한다. 서버가 고유 하드웨어 식별자 및 옵션으로 메타데이터를 수신한 후에, 서버는 미리 설치된 애플리케이션이 이미 사용자 계정과 링크되었는지를 결정함으로써 자격의 증명을 검증할 수 있다(640). 서버는 고유 하드웨어 식별자에 대한 고유성 테이블을 검사함으로써 애플리케이션이 이미 링크되었는지를 결정할 수 있다. 고유성 테이블은 이미 미리 설치된 애플리케이션들을 채택한 전자 디바이스들의 고유 하드웨어 식별자를 포함하는 엔트리들을 저장하기 때문에, 테이블에서 발견되지 않는 고유 하드웨어 식별자는 전자 디바이스가 아직 그의 미리 설치된 애플리케이션들 중 임의의 것을 연관시키지 않았음을 의미한다. 방법(600)이 미리 설치된 애플리케이션들의 선택적인 채택을 허용하면, 결정은 고유 하드웨어 식별자와 연관된 엔트리에 대해 고유성 테이블을 조회하는 것을 포함할 수 있다. 고유 하드웨어 식별자가 발견되면, 결정은 선택된 미리 설치된 애플리케이션이 이전에 채택되었는지를 결정하기 위해 미리 설치된 애플리케이션의 메타데이터를 갖는 엔트리를 평가(evaluate)할 수 있다.The method 600 may generate 620 a unique hardware identifier. The unique hardware identifier may serve as a digital receipt of a valid ownership or qualification of the application. The unique hardware identifier may be generated from combining one or more identifiers specific to the electronic device. For example, the unique hardware identifier may be based on one or more identifiers associated with hardware components of the electronic device. Because the identifiers of the hardware components are unique, the two unique hardware identifiers are not the same. By way of example, the unique hardware identifier may be generated by combining the device's Ethernet hardware address with the logic board serial number of the device. The logic board serial number and Ethernet hardware address may be combined using joining, hashing, encoding schemes, or other data manipulation algorithms. The unique hardware identifier may be transmitted (630) from the client to the server as part of the request to associate the pre-installed application with the user account. In other instances where preinstalled applications may be selectively employed, the metadata associated with the preinstalled application is also transferred from the client to the server. Metadata provides details to the server so that the server can identify the selected pre-installed application that the user is attempting to adopt into the user account. After the server has received the unique hardware identifier and optionally the metadata, the server may verify the credentials of the credential (640) by determining whether the pre-installed application has already been linked with the user account. The server can determine whether the application is already linked by checking the uniqueness table for the unique hardware identifier. Since the uniqueness table stores entries that include the unique hardware identifiers of the electronic devices that have already pre-installed applications, the unique hardware identifier that is not found in the table does not associate any of the pre-installed applications of the electronic device yet . If the method 600 allows selective adoption of preinstalled applications, the determination may include querying a uniqueness table for an entry associated with a unique hardware identifier. If a unique hardware identifier is found, the determination may evaluate an entry with the metadata of the pre-installed application to determine if the selected pre-installed application was previously adopted.

고유성 테이블을 검색(즉, 조회)하는 것으로부터 애플리케이션이 이전에 채택되었음이 결정되면, 클라이언트에 에러가 전송된다(641). 클라이언트는 에러를 수신하고 사용자에게 애플리케이션이 이미 채택되었다는 경고를 제시한다(642). 도 13은 채택 경고의 예를 도시한다. 경고(700)는 사용자가 그의 사용자 계정과 연관시키기를 희망하는 하나 이상의 애플리케이션들이 할당될 수 없음을 사용자에게 통지하는데, 그 이유는 미리 설치된 애플리케이션들은 상이한 사용자 계정에 이미 할당되었기 때문이다. 다른 한편, 고유성 테이블을 검색하는 것으로부터 애플리케이션이 이전에 채택되지 않았음이 결정되면, 서버는 미리 설치된 애플리케이션이 전자 디바이스의 원래 또는 디폴트 구성의 부분인지를 결정하기 위해 온전성 체크(sanity check)를 수행할 수 있다(650). 다시 말해, 서버는 전자 디바이스가 미리 설치된 애플리케이션이 설치되어 제조자로부터 구성되고 배달되었는지를 결정한다. 이 온전성 체크는 하나의 전자 디바이스에 원래 설치된 미리 설치된 애플리케이션을 다른 전자 디바이스에 복사하고 불법 사본을 사용자 계정에 연관시키는 것을 시도하는 것으로부터 사용자를 방지한다. 서버는 고유 하드웨어 식별자와 연관된 전자 디바이스의 원래 구성을 수신하기 위해 고유 하드웨어 식별자를 갖는 구성 서버를 조회할 수 있다. 원래 구성은 미리 설치된 애플리케이션들의 목록을 결정하기 위해 검사될 수 있다. 미리 설치된 애플리케이션들의 이러한 목록은 애플리케이션이 채택을 위해 이용가능한지를 결정하기 위해 사용자가 채택을 시도하는 애플리케이션과 비교될 수 있다. 다른 예들에서, 원래 구성들을 조회하는 데 이용되는 데이터베이스의 사본이 분배 센터에 저장될 수 있고, 따라서 고유 하드웨어 식별자의 평가가 분배 센터에서 완전히 수행될 수 있게 한다. 이것은 구성 서버에 대한 네트워크 트래픽을 줄일 수 있다.If it is determined that the application has been previously adopted from retrieving (i.e., querying) the uniqueness table, an error is sent to the client (641). The client receives the error and presents 642 a warning to the user that the application has already been adopted. Fig. 13 shows an example of an adoption warning. Alert 700 notifies the user that one or more applications that the user desires to associate with his / her user account can not be assigned because pre-installed applications have already been assigned to different user accounts. On the other hand, if it is determined that the application has not been previously adopted from retrieving the uniqueness table, the server may perform a sanity check to determine if the preinstalled application is part of the original or default configuration of the electronic device (650). In other words, the server determines whether the electronic device is installed and pre-installed from the manufacturer and delivered. This sanity check prevents the user from copying a preinstalled application originally installed in one electronic device to another electronic device and attempting to associate an illegal copy to the user account. The server may query the configuration server having a unique hardware identifier to receive the original configuration of the electronic device associated with the unique hardware identifier. The original configuration can be checked to determine a list of pre-installed applications. This list of pre-installed applications can be compared to the application the user attempts to adopt to determine if the application is available for adoption. In other instances, a copy of the database used to query the original configurations can be stored in the distribution center, thus allowing evaluation of the unique hardware identifier to be performed entirely in the distribution center. This can reduce network traffic to the configuration server.

사용자가 채택하기를 희망하는 애플리케이션이 전자 디바이스의 원래 구성의 부분이 아님이 결정되면, 에러 메시지가 클라이언트에 전송될 수 있다(651). 일단 클라이언트가 에러 메시지를 수신하면, 클라이언트는 전자 디바이스가 채택을 위해 적격하지 않다는 경고를 사용자에게 제시할 수 있다(642). 도 14는 채택 경고의 다른 예를 도시한다. 경고(750)는 애플리케이션이 사용자 계정에 할당될 수 없음을 사용자에게 통지하는데, 그 이유는 전자 디바이스(본원에서 "Mac"이라 칭함)가 사용자 계정과 미리 설치된 애플리케이션들을 연관시키는 데 적격하지 않기 때문이다. 다른 예들에서, 경고(750)는 전자 디바이스가 미리 설치된 애플리케이션들로 원래 구성되지 않았음을 사용자에게 알릴 목적으로 제공되는 그림들 또는 다른 문장들을 포함할 수 있다. 다른 한편, 사용자가 채택하기를 희망하는 애플리케이션이 전자 디바이스의 원래 구성의 부분임이 결정되면, 만약에 있다면 부가적인 온전성 체크들이 수행될 수 있다. 일단 서버가 미리 설치된 애플리케이션이 사용자 계정에 링크될 수 있음을 검증하였다면, 서버는 전자 디바이스의 미리 설치된 애플리케이션들이 채택되었음(그리고 따라서 다른 사용자 계정에 의해 채택될 수 없음)을 표시하기 위해 서버에 저장된 고유성 테이블 및 사용자 계정을 업데이트할 수 있다(660). 위에서 논의한 바와 같이, 채택된 미리 설치된 애플리케이션이 이제 사용자 계정과 연관되는 전자 디바이스의 미리 설치된 애플리케이션이고, 따라서, 애플리케이션과 연관된 업데이트들 및 재-다운로드들이 사용자 계정과 연관된 전자 디바이스에 다운로드될 수 있다. 서버는 요청이 승인되었음을 클라이언트에 알리기 위해 클라이언트에 승인 메시지를 전송할 수 있다(670). 승인 메시지는 미리 설치된 애플리케이션이 이제 서버 상의 사용자 계정과 연관됨을 클라이언트에 알리거나 통지하는 데, 그 이유는 링크 요청이 진본 요청인 것으로 평가되고 발견되었기 때문이다. 클라이언트는 승인 메시지를 수신하고 클라이언트에 저장된 사용자 계정과 미리 설치된 애플리케이션을 링크한다(680). 일부 예들에서, 클라이언트는 또한 적하목록으로부터 사용자 계정과 링크된 미리 설치된 애플리케이션과 연관된 메타데이터를 제거함으로써 전자 디바이스에 저장된 적하목록을 업데이트할 수 있다. 미리 설치된 애플리케이션과 연관된 메타데이터를 제거하는 것은 애플리케이션이 채택가능한지를 결정하기 위해 수행되는 검사들을 최소화함으로써 채택 프로세스를 간단하게 할 수 있다. 그 다음 클라이언트는 애플리케이션을 다운로드하기 위해 분배 센터 또는 서버의 다른 컴포넌트들에 요청들을 전송할 수 있다(690).If it is determined that the application that the user wants to adopt is not part of the original configuration of the electronic device, an error message may be sent to the client (651). Once the client receives the error message, the client may present 642 an alert to the user that the electronic device is not suitable for adoption. Fig. 14 shows another example of the adoption warning. Alert 750 notifies the user that an application can not be assigned to a user account because the electronic device (referred to herein as a "Mac ") is not eligible to associate a pre-installed application with a user account . In other instances, the alert 750 may include pictures or other sentences provided for the purpose of informing the user that the electronic device was not originally configured with pre-installed applications. On the other hand, if it is determined that the application that the user wishes to adopt is part of the original configuration of the electronic device, additional sanity checks may be performed if so. Once the server has verified that a pre-installed application can be linked to a user account, the server can determine whether the pre-installed applications of the electronic device have been adopted (and thus can not be adopted by other user accounts) The table and user account can be updated 660. As discussed above, the adopted pre-installed application is now a pre-installed application of the electronic device associated with the user account, and thus updates and re-downloads associated with the application can be downloaded to the electronic device associated with the user account. The server may send an acknowledgment message to the client (670) to inform the client that the request has been granted. The acknowledgment message notifies or notifies the client that the pre-installed application is now associated with a user account on the server, since the link request has been evaluated and found to be a legitimate request. The client receives the grant message and links 680 the pre-installed application with the user account stored on the client. In some instances, the client may also update the manifest stored on the electronic device by removing metadata associated with the pre-installed application linked with the user account from the manifest. Removing the metadata associated with the pre-installed application may simplify the adoption process by minimizing the checks performed to determine if the application is acceptable. The client may then send 690 requests to the distribution center or other components of the server to download the application.

방법(600)은 또한 나중에 설치된 애플리케이션(post-installed application)(즉, 사용자에 의해 설치된 애플리케이션)의 채택을 위해 구성될 수 있다. 나중에 설치된 애플리케이션들은 디바이스가 제조자를 떠난 후 또는 디바이스가 사용자에 의해 구매된 후에 사용자의 디바이스 상에 설치된 선물받은, 구매된, 교환된(redeemed), 또는 그렇지 않으면 취득된 애플리케이션들을 포함한다. 예를 들어, 방법(600)은 고유 하드웨어 식별자를 생성하는 대신에 애플리케이션과 연관된 고유 식별자를 생성할 수 있다(620). 고유 식별자는 애플리케이션의 자격의 증명 또는 구매의 증명을 나타내는 데 이용되는 애플리케이션과 연관된 메타데이터일 수 있다. 고유 식별자는 애플리케이션의 메타데이터에 저장될 수 있고 후속하여 클라이언트 디바이스에 의해 검색될 수 있다. 대안적으로, 고유 식별자는 애플리케이션의 메타데이터에 기초하여 발생될 수 있다. 예를 들어, 고유 식별자는 애플리케이션의 고유 또는 비-고유 영수증, 애플리케이션이 취득된 일자 및/또는 장소와 같은 애플리케이션을 수신하는 것과 관련된 메타데이터, 클라이언트 디바이스와 연관된 고유 식별자, 및/또는 애플리케이션 또는 클라이언트 디바이스와 연관된 다른 메타데이터로부터 도출될 수 있다.The method 600 may also be configured for later adoption of a post-installed application (i.e., an application installed by a user). Applications installed later include applications that are present, purchased, redeemed, or otherwise acquired on the user's device after the device leaves the manufacturer or after the device has been purchased by the user. For example, method 600 may generate 620 a unique identifier associated with an application instead of generating a unique hardware identifier. The unique identifier may be the proof of qualification of the application or the metadata associated with the application used to represent the proof of purchase. The unique identifier may be stored in the metadata of the application and subsequently retrieved by the client device. Alternatively, the unique identifier may be generated based on the metadata of the application. For example, the unique identifier may include metadata associated with receiving an application, such as a unique or non-unique receipt of the application, the date and / or place the application was acquired, a unique identifier associated with the client device, and / Lt; RTI ID = 0.0 > and / or < / RTI >

일부 예들에서, 통신 프로토콜은 고유 식별자가 미리 설치된 애플리케이션(즉, 제조자에 의해 설치된 애플리케이션) 또는 나중에 설치된 애플리케이션(즉, 사용자에 의해 설치된 애플리케이션)과 연관되는지에 의존할 수 있다. 예를 들어, 통신 프로토콜은 클라이언트로부터 수신된 고유 식별자가 나중에 설치된 애플리케이션과 연관될 때 애플리케이션이 전자 디바이스의 원래 구성의 부분이고, 따라서 전자 디바이스의 원래 구성의 부분이 아님을 확인하는 것(650)을 스킵할 수 있다. 그 대신, 서버는 유효 고유 식별자들의 데이터베이스와 고유 식별자를 비교함으로써 애플리케이션의 자격의 증명 또는 소유권을 검증할 수 있다. 이것은 서버가 애플리케이션의 유효 및 무효 사본들 사이에서 구별하고 분간할 수 있게 할 수 있다. 일단 자격의 증명이 검증되면, 애플리케이션은 사용자 계정의 부분으로서 채택된다. 애플리케이션이 미리 설치된 또는 나중에 설치된 것인지를 결정하기 위해서, 서버는 고유 식별자와 연관된 플래그 또는 다른 메타데이터를 분석할 수 있다.In some instances, the communication protocol may depend on whether the unique identifier is associated with a pre-installed application (i.e., an application installed by a manufacturer) or a later installed application (i.e., an application installed by a user). For example, the communication protocol may include verifying (650) that the application is part of the original configuration of the electronic device and is therefore not part of the original configuration of the electronic device when a unique identifier received from the client is associated with an installed application later Can be skipped. Instead, the server can verify the credentials or ownership of the application's credentials by comparing the unique identifier with a database of valid unique identifiers. This allows the server to distinguish and distinguish between valid and invalid copies of the application. Once the proof of qualification is verified, the application is adopted as part of the user account. In order to determine whether the application is pre-installed or later installed, the server may analyze the flag or other metadata associated with the unique identifier.

또 다른 예들에서, 통신 프로토콜은 클라이언트로부터 수신된 고유 식별자가 클라이언트 전자 디바이스와 연관된 메타데이터에 기초하는지에 의존할 수 있다. 예를 들어, 애플리케이션이 이미 링크되었는지를 결정하기 위해 서버에 의해 액세스되는 데이터베이스 또는 테이블은 고유 식별자에 의존할 수 있다. 제1 데이터베이스는 클라이언트 전자 디바이스와 연관된 고유 식별자들에 대해 서버에 의해 액세스되고 업데이트될 수 있다. 제1 데이터베이스는 전자 디바이스의 하드웨어에 기초하여 입력되고(keyed) 검색가능할 수 있다. 제2 데이터베이스는 클라이언트 디바이스와 연관되지 않은 고유 식별자들에 대해 서버에 의해 액세스되고 업데이트될 수 있다. 다시 말해, 이들 고유 식별자들은 오로지 애플리케이션과 연관된 자격의 증명에 기초하고, 따라서, 제2 데이터베이스를 검색하는 것은 자격의 증명 또는 자격의 증명의 어떤 변형에 기초할 수 있다.In other instances, the communication protocol may depend on whether the unique identifier received from the client is based on metadata associated with the client electronic device. For example, a database or table accessed by a server to determine whether an application has already been linked may depend on the unique identifier. The first database may be accessed and updated by the server for unique identifiers associated with the client electronic device. The first database may be keyed and searchable based on the hardware of the electronic device. The second database may be accessed and updated by the server for unique identifiers not associated with the client device. In other words, these unique identifiers are based solely on the proof of credentials associated with the application, and thus retrieving the second database may be based on a proof of qualification or a proof of qualification.

도 15는 전자 디바이스에서의 복구 모드에 대한 예시적인 프로세스를 도시한다. 일반적으로, 복구 모드는 전자 디바이스가 애플리케이션들 또는 심지어 오퍼레이팅 시스템에 대한 내부 치명적 에러들을 해결할 수 있게 할 수 있다. 전체 오퍼레이팅 시스템을 복구하는 심각한 경우에, 이 접근법은 심지어 저장 유닛을 재포맷하고 오퍼레이팅 시스템을 재설치할 수 있다. 복구 모드의 특정 구현에 의존하여, 재설치되는 오퍼레이팅 시스템은 달라질 수 있다. 예로서, 재설치된 오퍼레이팅 시스템은 전자 디바이스에 원래 설치된 오퍼레이팅 시스템일 수 있고, 이것은 그 다음에 수동으로 및/또는 자동으로 업데이트될 수 있다. 다른 예로서, 재설치된 오퍼레이팅 시스템은 원래 설치된 오퍼레이팅 시스템 이후에 공개된 하나 이상의 업데이트들을 포함할 수 있다. 또 다른 예들에서, 제조자로부터의 가장 새로운 이용가능한 오퍼레이팅 시스템이 재설치될 수 있다. 일반적으로, 복구 모드는 오직 미리 설치된 애플리케이션들을 재설치하지 않고 오퍼레이팅 시스템을 재설치한다. 이러한 이유로, 사용자 계정과 연관 또는 링크되지 않은 미리 설치된 애플리케이션들이 소실될 수 있다. 프로세스(800)는 복구 모드 중에 구성 서버로부터 적하목록을 검색함으로써 이러한 문제를 해결한다.15 illustrates an exemplary process for a recovery mode in an electronic device. In general, the recovery mode may enable an electronic device to resolve internal fatal errors for applications or even an operating system. In severe cases of restoring the entire operating system, this approach can even reformat the storage unit and reinstall the operating system. Depending on the specific implementation of the recovery mode, the operating system to be reinstalled may vary. By way of example, the reinstalled operating system may be the operating system originally installed in the electronic device, which may then be manually and / or automatically updated. As another example, a reinstalled operating system may include one or more updates published after the originally installed operating system. In yet other instances, the newest available operating system from the manufacturer may be reinstalled. In general, the resume mode reinstalls the operating system without reinstalling only preinstalled applications. For this reason, pre-installed applications that are not associated with or linked to user accounts may be lost. The process 800 solves this problem by retrieving the manifest from the configuration server during the recovery mode.

프로세스(800)는 복구 모드에 들어감으로써 시작할 수 있다(820). 복구 모드에 들어가는 것은 제조자로부터 기본적인 오퍼레이팅 시스템의 다운로드를 트리거할 수 있다. 기본적인 오퍼레이팅 시스템은 고유 하드웨어 식별자를 생성하도록 구성될 수 있다(830). 고유 하드웨어 식별자는 전술한 방법들 중 하나를 이용하여 발생될 수 있다. 일단 고유 하드웨어 식별자가 발생되면, 기본적인 오퍼레이팅 시스템은 구성 서버에 고유 하드웨어 식별자를 전송할 수 있다(840). 수신된 고유 하드웨어 식별자에 기초하여, 구성 서버는 전자 디바이스에 미리 설치된 애플리케이션들 및 그것들의 애플리케이션들의 버전 넘버를 포함하는 적하목록을 리턴할 수 있다. 적하목록은 또한 전자 디바이스의 소유자가 소유권을 갖는 다른 애플리케이션들을 포함할 수 있다. 일부 예들에서, 통신 서버는 전자 디바이스가 이미 애플리케이션들을 채택했는지를 결정하기 위해 분배 서버와 통신할 수 있다. 고유 하드웨어 식별자가 분배 센터의 고유성 테이블에서 발견되면, 전자 디바이스의 미리 설치된 애플리케이션들 중 하나 이상이 이미 채택되었다. 따라서, 통신 서버는 빈 적하목록 또는 이미 채택된 특정 미리 설치된 애플리케이션들을 포함하지 않는 적하목록을 리턴할 수 있다. 이것은 미리 설치된 애플리케이션들이 이미 채택되었을 때 구매 페이지 요청이 채택을 위해 사용자에게 미리 설치된 애플리케이션들을 제시하는 발생들(occurrences)을 최소화할 수 있다. 분배 센터가 구성 데이터베이스의 로컬 사본을 저장하는 다른 예들에서, 고유 하드웨어 식별자는 구성 서버보다는 분배 센터에 전송될 수 있다. 고유 하드웨어 식별자를 이용하여, 분배 센터는 미리 설치된 애플리케이션들 및 그것들의 애플리케이션들 중에서, 사용자 계정과 이미 연관된 것들을 결정할 수 있다.Process 800 may begin by entering a recovery mode (820). Entering recovery mode may trigger a download of a basic operating system from the manufacturer. The basic operating system may be configured 830 to generate a unique hardware identifier. The unique hardware identifier may be generated using one of the methods described above. Once a unique hardware identifier is generated, the underlying operating system may send a unique hardware identifier to the configuration server (840). Based on the received unique hardware identifier, the configuration server may return a manifest containing the version number of the applications and their applications pre-installed on the electronic device. The manifest may also include other applications that are owned by the owner of the electronic device. In some instances, the communication server may communicate with the distribution server to determine whether the electronic device has already adopted applications. If a unique hardware identifier is found in the uniqueness table of the distribution center, then one or more of the preinstalled applications of the electronic device have already been adopted. Thus, the communication server may return an empty manifest or a manifest that does not include certain pre-installed applications that have already been adopted. This can minimize the occurrences that a purchase page request presents to the user pre-installed applications for adoption when pre-installed applications have already been adopted. In other instances where the distribution center stores a local copy of the configuration database, the unique hardware identifier may be sent to the distribution center rather than the configuration server. Using a unique hardware identifier, the distribution center can determine which of the pre-installed applications and their applications are already associated with the user account.

구성 서버(또는 분배 센터)는 전자 디바이스와 딸려 오는 오퍼레이팅 시스템의 버전 넘버 및 전자 디바이스의 미리 설치된 애플리케이션들에 기초하는 적하목록을 리턴할 수 있다(850). 다른 예들에서, 적하목록은 또한 사용자 계정과 링크되지 않은 전자 디바이스의 나중에 설치된 애플리케이션들을 포함할 수 있다(850). 구성 서버에 저장된 적하목록은 전자 디바이스가 사용자 계정과 연관되지 않은 애플리케이션을 설치할 때 주기적으로 업데이트될 수 있다. 이것은 네트워크 고장, 서버 고장, 또는 이 시점에 사용자 계정과 애플리케이션을 연관시키지 않기 위한 사용자 선택 옵션과 같은 다양한 이유로 발생할 수 있다. 오퍼레이팅 시스템의 버전 넘버는 오퍼레이팅 시스템 서버에 전송되고(860), 이것은 또한 전자 디바이스에 원래 오퍼레이팅 시스템을 전송한다. 전자 디바이스는 원래 오퍼레이팅 시스템을 수신하고(870) 옵션으로 원래 오퍼레이팅 시스템을 설치한다. 전자 디바이스는 이제 원래 오퍼레이팅 시스템의 신선한 사본(fresh copy) 및 전자 디바이스의 미리 설치된 애플리케이션들에 기초한 적하목록을 포함한다. 사용자가 미리 설치된 애플리케이션을 사용자 계정과 연관시키지 않은 경우, 사용자는 전술한 바와 같이 구매 페이지 링크를 선택함으로써 그렇게 할 수 있다.The configuration server (or distribution center) may return 850 a manifest based on the version number of the operating system that comes with the electronic device and the pre-installed applications of the electronic device. In other examples, the manifest may also include later installed applications of the electronic device that are not linked with the user account (850). The manifest stored on the configuration server may be periodically updated when the electronic device installs an application that is not associated with a user account. This can occur for a variety of reasons, such as network failures, server crashes, or user selection options to not associate applications with user accounts at this point. The version number of the operating system is transmitted 860 to the operating system server, which also transfers the original operating system to the electronic device. The electronic device receives the original operating system (870) and installs the original operating system as an option. The electronic device now includes a fresh copy of the original operating system and a manifest based on pre-installed applications of the electronic device. If the user has not associated the pre-installed application with a user account, the user can do so by selecting the purchase page link as described above.

본 개시의 범위 내의 실시예들은 또한 거기에 저장된 컴퓨터 실행가능한 명령어들 또는 데이터 명령어들을 실행하거나 갖기 위한 유형의(tangible) 및/또는 비-일시적 컴퓨터 판독 가능한 저장 매체를 포함할 수 있다. 이러한 비-일시적 컴퓨터 판독 가능한 저장 매체는 위에서 논의한 바와 같이 임의의 특수 목적 프로세서의 기능 설계를 포함하는, 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다. 예시적으로, 그리고 비한정적으로, 이러한 비-일시적 컴퓨터 판독 가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 컴퓨터 실행 가능한 명령어들, 데이터 구조들, 또는 프로세서 칩 설계의 형태로 원하는 프로그램 코드 수단을 운반 또는 저장하는 데 이용될 수 있는 임의의 다른 매체를 포함할 수 있다. 정보가 네트워크 또는 다른 통신 접속(하드와이어드(hardwired), 무선, 또는 그의 결합)을 통해 컴퓨터에 전달 또는 제공될 때, 컴퓨터는 접속을 컴퓨터 판독 가능한 매체로서 적절하게 본다. 따라서, 임의의 이러한 접속은 적절하게 컴퓨터 판독 가능한 매체라고 칭해진다. 위의 것의 결합들은 또한 컴퓨터 판독 가능한 매체의 범위 내에 포함되어야 한다.Embodiments within the scope of this disclosure may also include tangible and / or non-transitory computer readable storage media for executing or having computer-executable instructions or data instructions stored thereon. Such non-transitory computer readable storage media may be any available media that can be accessed by a general purpose or special purpose computer, including the functional design of any special purpose processor as discussed above. By way of example, and not limitation, such non-transitory computer readable media can include, but is not limited to, RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, Data structures, or any other medium that can be used to carry or store desired program code means in the form of a processor chip design. When information is communicated or provided to a computer via a network or other communication connection (hardwired, wireless, or a combination thereof), the computer appropriately views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer readable medium. Combinations of the above should also be included within the scope of computer readable media.

컴퓨터 실행 가능한 명령어들은 예를 들어, 범용 컴퓨터, 특수 목적 컴퓨터, 또는 특수 목적 프로세싱 디바이스가 특정 기능 또는 기능들의 그룹을 수행하도록 하는 명령어들 및 데이터를 포함한다. 컴퓨터 실행 가능한 명령어들은 또한 독립형 또는 네트워크 환경들에서 컴퓨터들에 의해 실행되는 프로그램 모듈들을 포함한다. 일반적으로, 프로그램 모듈들은 루틴들, 프로그램들, 컴포넌트들, 데이터 구조들, 오브젝트들, 및 특정 태스크들을 수행하거나 또는 특정 추상 데이터 타입들을 구현하는 특수 목적 프로세서들 등의 설계에 내재하는 기능들을 포함한다. 컴퓨터 실행 가능한 명령어들, 연관된 데이터 구조들, 및 프로그램 모듈들은 본원에 개시된 방법들의 단계들을 실행하기 위한 프로그램 코드 수단의 예들을 표현한다. 이러한 실행 가능한 명령어들의 특정 시퀀스 또는 연관된 데이터 구조들은 이러한 단계들에 설명된 기능들을 구현하기 위한 대응하는 동작들의 예들을 표현한다.Computer-executable instructions include, for example, instructions and data that cause a general purpose computer, special purpose computer, or special purpose processing device to perform a particular function or group of functions. Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments. Generally, program modules include routines, programs, components, data structures, objects, and functions inherent in the design of special-purpose processors that perform particular tasks or implement particular abstract data types . The computer-executable instructions, associated data structures, and program modules represent examples of program code means for executing the steps of the methods disclosed herein. A particular sequence of these executable instructions or associated data structures represent examples of corresponding operations for implementing the functions described in these steps.

이 기술분야의 통상의 기술자들은, 본 개시의 다른 실시예들이 퍼스널 컴퓨터들, 핸드헬드 디바이스들, 멀티 프로세서 시스템들, 마이크로프로세서 기반 또는 프로그램 가능한 소비자 전자제품들, 네트워크 PC들, 미니 컴퓨터들, 메인프레임 컴퓨터들 등을 포함하는, 많은 타입의 컴퓨터 시스템 구성들을 갖는 네트워크 컴퓨팅 환경들에서 실시될 수 있다는 것을 알 것이다. 실시예들은 또한 통신 네트워크를 통해 (하드와이어드 링크들, 무선 링크들에 의해, 또는 그의 결합에 의해) 링크되는 로컬 및 리모트 프로세싱 디바이스들에 의해 태스크들이 수행되는 분산 컴퓨팅 환경들에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및 리모트 메모리 저장 디바이스들 둘다에 배치될 수 있다.Those skilled in the art will appreciate that other embodiments of the present disclosure may be practiced in the personal computer, handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, May be implemented in network computing environments having many types of computer system configurations, including non-volatile memory, frame computers, and the like. Embodiments may also be practiced in distributed computing environments where tasks are performed by local and remote processing devices that are linked (by hardwired links, wireless links, or the like) over a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

전술한 다양한 실시예들은 오직 예시에 의해 제공되고 본 개시의 범위를 한정하는 것으로 해석되어서는 안 된다. 이 기술분야의 통상의 기술자들은 본원에 예시되고 설명된 예시적인 실시예들 및 애플리케이션들을 따르지 않고, 본 개시의 사상 및 범위에서 벗어나지 않고, 본원에 설명된 원리들에 대해 행해질 수 있는 다양한 수정들 및 변경들을 쉽게 인식할 것이다.The various embodiments described above are provided by way of example only and are not to be construed as limiting the scope of the present disclosure. It will be understood by those of ordinary skill in the art that various changes in form and details may be made without departing from the spirit and scope of the disclosure and without departing from the exemplary embodiments and applications illustrated and described herein, Changes will be easily recognized.

110: 버스
120: 프로세서
122: 캐시
130: 메모리
160: 저장 디바이스
170: 출력 디바이스
180: 통신 인터페이스
190: 입력 디바이스
200: 애플리케이션 분배 시스템
210: 분배 센터
220: 애플리케이션 데이터베이스
230: 구성 서버
250: 인터넷
260, 270: 컴퓨팅 디바이스
280: 포터블 디바이스
350: 클라이언트 디바이스
360: 서버
110: bus
120: Processor
122: Cache
130: memory
160: Storage device
170: output device
180: Communication interface
190: input device
200: Application Distribution System
210: Distribution center
220: application database
230: Configuration Server
250: Internet
260, 270: computing device
280: Portable device
350: Client device
360: Server

Claims (20)

서버에 의해, 제1 클라이언트 디바이스 상에 설치된 애플리케이션이 서버에 의한 분배(distribution)를 위해 구성된 것임을 결정함으로써, 상기 제1 클라이언트 디바이스 상에 설치된 애플리케이션이 채택(adoption)을 위해 적격임을 검증하는 단계 - 상기 애플리케이션은 상기 제1 클라이언트 디바이스 상에 미리 설치(pre-installed)되거나 나중에 설치(post-installed)된 것임 - ;
상기 설치된 애플리케이션과 연관된 메타데이터로부터 상기 설치된 애플리케이션의 개별 사본을 고유하게 식별하는 고유 식별자를 자동으로 검색하는 단계, 및 상기 고유 식별자가 임의의 사용자 계정과 연관되지 않았음을 검증하는 단계를 포함하는, 상기 서버에 의해, 상기 애플리케이션이 이전에 채택되지 않았음을 검증하는 단계; 및
상기 서버로부터, 상기 설치된 애플리케이션이 채택을 위해 적격이라는 통지를 상기 제1 클라이언트 디바이스에 전달하는 단계
를 포함하는 방법.
Verifying that an application installed on the first client device is eligible for adoption by determining by the server that the application installed on the first client device is configured for distribution by the server, Wherein the application is pre-installed or post-installed on the first client device;
Automatically retrieving a unique identifier that uniquely identifies an individual copy of the installed application from metadata associated with the installed application, and verifying that the unique identifier is not associated with any user account. Verifying, by the server, that the application has not been previously adopted; And
Forwarding, from the server, a notification to the first client device that the installed application is eligible for adoption
≪ / RTI >
제1항에 있어서, 상기 서버에 의해, 사용자 계정에 상기 애플리케이션을 채택하는 단계를 더 포함하고, 상기 채택은 상기 사용자 계정과 연관된 하나 이상의 클라이언트 디바이스들에 대해 상기 채택된 애플리케이션에 대한 특권들을 허용하도록 상기 사용자 계정을 구성하는 방법.The method of claim 1, further comprising, by the server, employing the application in a user account, wherein the adoption includes allowing privileges for the adopted application to one or more client devices associated with the user account ≪ / RTI > 제2항에 있어서, 상기 특권들은 상기 애플리케이션의 다운로드, 재-다운로드, 및 업데이트를 포함하는 방법.3. The method of claim 2, wherein the privileges include downloading, re-downloading, and updating of the application. 제2항 또는 제3항에 있어서,
상기 사용자 계정에 제2 클라이언트 디바이스를 등록하는 단계; 및
상기 제2 클라이언트 디바이스에 상기 채택된 애플리케이션을 전송하는 단계
를 더 포함하는 방법.
The method according to claim 2 or 3,
Registering a second client device in the user account; And
Transmitting the adopted application to the second client device
≪ / RTI >
제1항 내지 제3항 중 어느 한 항에 있어서, 상기 고유 식별자는 상기 개별 사본에 대한 자격의 증명(proof of entitlement)인 방법.4. The method of any one of claims 1 to 3, wherein the unique identifier is a proof of entitlement for the individual copy. 제2항 또는 제3항에 있어서, 상기 애플리케이션은 상기 사용자 계정과 연관된 하나 이상의 클라이언트 디바이스들 상에 이전에 설치된 것인 방법.4. The method of claim 2 or claim 3, wherein the application is previously installed on one or more client devices associated with the user account. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 방법은 사용자 요청에 응답하여 수행되는 방법.4. The method according to any one of claims 1 to 3, wherein the method is performed in response to a user request. 제1항 내지 제3항 중 어느 한 항에 있어서,
채택을 위해 이용가능한 복수의 애플리케이션들에 대해 상기 클라이언트 디바이스에 통지하는 단계; 및
채택을 위해 상기 복수의 애플리케이션들 중 적어도 하나를 선택하는 입력을 수락하는 단계
를 더 포함하는 방법.
4. The method according to any one of claims 1 to 3,
Notifying the client device of a plurality of applications available for adoption; And
Accepting input to select at least one of the plurality of applications for adoption
≪ / RTI >
제1항 내지 제3항 중 어느 한 항에 있어서, 상기 고유 식별자를 자동으로 검색하는 단계는, 상기 고유 식별자에 대해 상기 서버 상의 데이터베이스를 조회하는 단계를 포함하는 방법.4. The method of any one of claims 1 to 3, wherein automatically retrieving the unique identifier comprises querying a database on the server for the unique identifier. 제1항 내지 제3항 중 어느 한 항에 있어서, 채택은 상기 애플리케이션에 대한 자격의 증명에 기초하여 데이터베이스를 업데이트하는 것을 포함하는 방법.4. The method according to any one of claims 1 to 3, wherein the adoption comprises updating the database based on proof of credentials for the application. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 고유 식별자는 상기 클라이언트 디바이스와 연관된 하드웨어로부터 도출가능한 값을 포함하는 방법.4. The method of any one of claims 1 to 3, wherein the unique identifier comprises a value derived from hardware associated with the client device. 프로세서;
저장 디바이스; 및
메모리
를 포함하고,
상기 메모리는,
서버에 의해, 클라이언트 디바이스 상의 설치된 애플리케이션이 서버에 의한 분배를 위해 구성된 것임을 결정함으로써, 상기 클라이언트 디바이스 상에 설치된 애플리케이션이 채택을 위해 적격임을 검증하는 단계 - 상기 애플리케이션은 상기 클라이언트 디바이스 상에 미리 설치되거나 나중에 설치된 것임 - ;
상기 설치된 애플리케이션과 연관된 메타데이터로부터 상기 설치된 애플리케이션의 개별 사본을 고유하게 식별하는 고유 식별자를 자동으로 검색하는 단계, 및 상기 고유 식별자가 임의의 사용자 계정과 연관되지 않았음을 검증하는 단계를 포함하는, 상기 서버에 의해, 상기 애플리케이션이 이전에 채택되지 않았음을 검증하는 단계; 및
상기 서버로부터, 상기 설치된 애플리케이션이 채택을 위해 적격이라는 통지를 상기 클라이언트 디바이스에 전달하는 단계
를 포함하는 단계들을 수행하도록 상기 프로세서를 제어하기 위한 명령어들을 저장하도록 구성되는 시스템.
A processor;
A storage device; And
Memory
Lt; / RTI >
The memory comprising:
Verifying that the application installed on the client device is eligible for adoption by determining by the server that the installed application on the client device is configured for distribution by the server, the application being preinstalled on the client device, Installed -;
Automatically retrieving a unique identifier that uniquely identifies an individual copy of the installed application from metadata associated with the installed application, and verifying that the unique identifier is not associated with any user account. Verifying, by the server, that the application has not been previously adopted; And
Forwarding, from the server, a notification to the client device that the installed application is eligible for adoption
And to store the instructions for controlling the processor to perform the steps.
제12항에 있어서, 상기 메모리는 상기 서버에 의해 사용자 계정에 상기 애플리케이션을 채택하기 위한 명령어들을 더 포함하고, 상기 채택은 상기 사용자 계정과 연관된 하나 이상의 클라이언트 디바이스들에 대해 상기 채택된 애플리케이션에 대한 특권들을 허용하도록 상기 사용자 계정을 구성하는 시스템.13. The computer program product of claim 12, wherein the memory further comprises instructions for employing the application in a user account by the server, the adoption including privilege to the adopted application for one or more client devices associated with the user account Said system comprising: 제13항에 있어서, 상기 특권들은 상기 애플리케이션의 다운로드, 재-다운로드, 및 업데이트를 포함하는 시스템.14. The system of claim 13, wherein the privileges include downloading, re-downloading, and updating of the application. 제12항 내지 제14항 중 어느 한 항에 있어서, 상기 메모리는 상기 사용자 계정에 다른 클라이언트 디바이스를 등록하고, 상기 다른 클라이언트 디바이스에 상기 채택된 애플리케이션을 전송하기 위한 명령어들을 더 포함하는 시스템.15. The system according to any one of claims 12 to 14, wherein the memory further comprises instructions for registering another client device in the user account and for transferring the adapted application to the another client device. 제12항 내지 제14항 중 어느 한 항에 있어서, 상기 애플리케이션은 상기 사용자 계정과 연관된 하나 이상의 클라이언트 디바이스들 상에 이전에 설치된 것인 시스템.15. The system according to any one of claims 12 to 14, wherein the application is previously installed on one or more client devices associated with the user account. 제12항 내지 제14항 중 어느 한 항에 있어서, 상기 메모리는 채택을 위해 이용가능한 복수의 애플리케이션들에 대해 상기 클라이언트 디바이스에 통지하고, 상기 복수의 애플리케이션들 중 하나를 선택하는 입력을 수락하기 위한 명령어들을 더 포함하는 시스템.15. The system according to any one of claims 12 to 14, wherein the memory is adapted to notify the client device for a plurality of applications available for adoption and to accept input to select one of the plurality of applications ≪ / RTI > further comprising instructions. 컴퓨팅 디바이스에 의해 실행될 때, 상기 컴퓨팅 디바이스로 하여금,
서버에 의해, 클라이언트 디바이스 상의 설치된 애플리케이션이 서버에 의한 분배를 위해 구성된 것임을 결정함으로써, 상기 클라이언트 디바이스 상에 설치된 애플리케이션이 채택을 위해 적격임을 검증하는 단계 - 상기 애플리케이션은 상기 클라이언트 디바이스 상에 미리 설치되거나 나중에 설치된 것임 - ;
상기 설치된 애플리케이션과 연관된 메타데이터로부터 상기 설치된 애플리케이션의 개별 사본을 고유하게 식별하는 고유 식별자를 자동으로 검색하는 단계, 및 상기 고유 식별자가 임의의 사용자 계정과 연관되지 않았음을 검증하는 단계를 포함하는, 상기 서버에 의해, 상기 애플리케이션이 이전에 채택되지 않았음을 검증하는 단계; 및
상기 서버로부터, 상기 설치된 애플리케이션이 채택을 위해 적격이라는 통지를 상기 클라이언트 디바이스에 전달하는 단계
를 포함하는 단계들을 수행하도록 하는 명령어를 저장하는 비-일시적(non-transitory) 컴퓨터 판독 가능한 저장 매체.
A computer-readable medium having computer-executable instructions that, when executed by a computing device,
Verifying that the application installed on the client device is eligible for adoption by determining by the server that the installed application on the client device is configured for distribution by the server, the application being preinstalled on the client device, Installed -;
Automatically retrieving a unique identifier that uniquely identifies an individual copy of the installed application from metadata associated with the installed application, and verifying that the unique identifier is not associated with any user account. Verifying, by the server, that the application has not been previously adopted; And
Forwarding, from the server, a notification to the client device that the installed application is eligible for adoption
The computer-readable medium storing instructions that cause the processor to perform steps comprising:
제18항에 있어서, 상기 애플리케이션이 클라이언트 디바이스 상에 설치되었음을 검증하는 단계, 상기 애플리케이션이 이전에 채택되지 않았음을 검증하는 단계, 및 상기 통지를 전달하는 단계는 사용자 요청에 응답하여 수행되는 비-일시적 컴퓨터 판독 가능한 저장 매체.19. The method of claim 18, further comprising verifying that the application is installed on a client device, verifying that the application has not been previously adopted, and communicating the notification, Transiently computer readable storage medium. 제18항 또는 제19항에 있어서, 상기 서버에 의해, 사용자 계정에 상기 애플리케이션을 채택하는 것을 더 포함하고, 상기 채택은 상기 사용자 계정과 연관된 하나 이상의 클라이언트 디바이스들에 대해 상기 채택된 애플리케이션에 대한 특권들을 허용하도록 상기 사용자 계정을 구성하는 비-일시적 컴퓨터 판독 가능한 저장 매체.20. The method of claim 18 or 19, further comprising, by the server, employing the application in a user account, wherein the adoption is based on the privilege on the adopted application for one or more client devices associated with the user account Lt; RTI ID = 0.0 > computer-readable < / RTI >
KR1020120075797A 2011-07-12 2012-07-11 System and method for linking pre-installed software to a user account on an online store KR101439604B1 (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US13/181,424 2011-07-12
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/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 2012-03-30
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

Publications (2)

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

Family

ID=47625486

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120075797A KR101439604B1 (en) 2011-07-12 2012-07-11 System and method for linking pre-installed software to a user account on an online store

Country Status (8)

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

Families Citing this family (15)

* 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 (en) * 2013-09-12 2018-08-31 阿里巴巴集团控股有限公司 A kind of method and apparatus downloaded and install client
KR102124330B1 (en) * 2013-11-19 2020-06-18 에스케이텔레콤 주식회사 Method for updating of application and apparatus for the same
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 (en) * 2014-05-30 2017-10-11 宏碁股份有限公司 Method and system for automatically downloading program
CN104468514B (en) * 2014-10-31 2018-08-31 联想(北京)有限公司 Information processing method, electronic equipment and server
JP6403583B2 (en) * 2015-01-21 2018-10-10 キヤノン株式会社 Distribution management server and distribution management method for distributing updated applications
CN105893071A (en) * 2015-11-30 2016-08-24 乐视云计算有限公司 Online tuning method and system for application
JP6419143B2 (en) * 2016-12-20 2018-11-07 株式会社ミロク情報サービス Common program, database management apparatus, and database management method
US10365931B2 (en) * 2017-02-27 2019-07-30 Microsoft Technology Licensing, Llc Remote administration of initial computer operating system setup options
JP6608878B2 (en) * 2017-07-19 2019-11-20 ファナック株式会社 Application sales management server system
WO2020091809A1 (en) * 2018-11-02 2020-05-07 Google Llc Systems and methods for authenticated parameterized application installation and launch
CN109710284A (en) * 2018-11-16 2019-05-03 中天昱品科技有限公司 A kind of charging pile remote upgrade method with safe ciphering and data compression
US20230177190A1 (en) * 2021-12-03 2023-06-08 Dell Products L.P. Systems and methods for transferring information handling systems

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070085257A (en) * 2004-09-17 2007-08-27 인벤텍 어플라이언스 코포레이션 Electronic software distribution method and system using a digital rights management method based on hardware identification
KR20110030546A (en) * 2008-06-08 2011-03-23 애플 인크. Techniques for acquiring updates for application programs
KR20110036573A (en) * 2008-06-25 2011-04-07 인터내셔널 비지네스 머신즈 코포레이션 Providing access over an ip network to a server application program

Family Cites Families (10)

* 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 (en) * 2000-09-11 2002-03-29 Hitachi Ltd Method and system for managing license
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 (en) * 2004-03-29 2005-10-13 Matsushita Electric Ind Co Ltd Download system, apparatus constituting download system, management station, and removable medium
CN100589096C (en) * 2004-12-02 2010-02-10 现时技术控股有限公司 Apparatus and method for managing unprotected and protected content in private networks
JP2007265071A (en) * 2006-03-29 2007-10-11 Jordan Kk Application management method and application management system
EP1901192A1 (en) * 2006-09-14 2008-03-19 British Telecommunications Public Limited Company Mobile application registration
CN101939965B (en) * 2008-02-08 2013-10-30 爱立信电话股份有限公司 Method and apparatuses for authorising provision of indirected content associated with presentity of presence service
JP2010049643A (en) * 2008-08-25 2010-03-04 Sourcenext Corp Information processing system, information processing method, and program
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070085257A (en) * 2004-09-17 2007-08-27 인벤텍 어플라이언스 코포레이션 Electronic software distribution method and system using a digital rights management method based on hardware identification
KR20110030546A (en) * 2008-06-08 2011-03-23 애플 인크. Techniques for acquiring updates for application programs
KR20110036573A (en) * 2008-06-25 2011-04-07 인터내셔널 비지네스 머신즈 코포레이션 Providing access over an ip network to a server application program

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101439604B1 (en) System and method for linking pre-installed software to a user account on an online store
US11025622B2 (en) System and method for linking pre-installed software to a user account on an online store
US20130019237A1 (en) System and method for linking pre-installed software to a user account on an online store
JP5602841B2 (en) Product enhancement based on user identification
JP5597253B2 (en) Interaction model for transferring state and data
US7676436B2 (en) Digital content distribution systems and methods
KR101238940B1 (en) Application products with in-application subsequent feature access using network-based distribution system
KR100898849B1 (en) Method and apparatus for gifting over a data network
KR101492757B1 (en) Application usage policy enforcement
US9990475B2 (en) Apparatus and method of in-application licensing
BRPI0720581A2 (en) PROGRAMMATICALLY APPLICATION BETWEEN PHONE DEVICES BASED ON LICENSE INFORMATION
US20130124696A1 (en) Application products with in-application subsequent feature access using network-based distribution system
EP1174786A2 (en) Method, system, and program for reusing software licenses with new computer hardware
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