プリ・インストール・ソフトウェアをオンラインストアのユーザ・アカウントにリンクするシステム及び方法
【課題】コンピュータにインストールするためのアプリケーションをオンラインストアのユーザ・アカウントに関連付けるシステム、方法及びコンピュータ可読の非一時的記憶媒体を提供する。
【解決手段】方法を実施するように構成されたサーバ側240は、ダウンロード可能なアプリケーションを提示し、ユーザ・アカウント291に関連付けられた識別子、並びにソフトウェアパッケージ、またはユーザ・アカウント291に関連付けられた資格証明を含むソフトウェア・アドプション要求をクライアント側290から受信し、資格証明をデータベースと比較することで資格証明を検証し、資格証明が検証される場合にソフトウェアパッケージをユーザ・アカウント291の一部としてアドプションする。
【解決手段】方法を実施するように構成されたサーバ側240は、ダウンロード可能なアプリケーションを提示し、ユーザ・アカウント291に関連付けられた識別子、並びにソフトウェアパッケージ、またはユーザ・アカウント291に関連付けられた資格証明を含むソフトウェア・アドプション要求をクライアント側290から受信し、資格証明をデータベースと比較することで資格証明を検証し、資格証明が検証される場合にソフトウェアパッケージをユーザ・アカウント291の一部としてアドプションする。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般にデジタル製品の配信に関し、特にソフトウェアアプリケーションをオンラインストアのユーザ・アカウントにリンクする技術に関する。
【背景技術】
【0002】
電子装置の製造業者は、一般に、電子装置の購買者に、購入前から、電子装置を個性化し或いはカスタマイズするための、様々な使用可能オプションを提案する。例えば、コンピュータ等のパーソナルコンピュータ装置は、プロセッサ、メモリ、ハードドライブ、またはアクセサリを選択することでカスタマイズされる。また、製造業者は、種々のソフトウェアベンダーと連携して、コンピュータを受け取る前から、コンピュータと共に購入可能で且つプリ・インストール可能なソフトウェアアプリケーション、またはソフトウェアプログラムをオファー(「申し込み」)する。ソフトウェアアプリケーション、それらは、典型的には製造業者により作成され、或いは、サードパーティ製アプリケーションを含んでよいが、このソフトウェアアプリケーションの中には、手動で、または工場出荷時イメージの一部として、無償でコンピュータ装置にプリ・インストールされるものがある。従って、ハードウェアコンポーネント及びプリ・インストール・ソフトウェアは、購入した製品が購買者のニーズを満たすように、購買者により個人用に変更される。
【0003】
電子装置を受け取った後は、将来のいつかの時点で、そのプリ・インストール・ソフトウェアを再インストールしたい、または更新したい場合が生じるだろう。例えばソフトウェアプロバイダは、電子装置にプリ・インストールされたソフトウェアの更新バージョンをリリースしたかも知れない。これは、一般にソフトウェア更新として知られている。ソフトウェア更新データを取得するために、購買者は、ソフトウェアプロバイダの実際の店舗、またはオンラインストアを訪問し、ソフトウェアの更新バージョンを購入、或いは取得する。しかし、この処理は、時間がかかり、分かりにくいこともある。同様に、購入者は、電子装置の記憶装置を再フォーマットする場合、一般にソフトウェアを再インストールしなければならない。購入者は、この再インストール中、プリ・インストール・ソフトウェアを格納する種々のコンパクトディスク(CD)、または他のメディアを要求される。しかし、この購入者はCDを置き忘れているかも知れず、この場合には、再インストール手順は非常に煩雑になる。
【発明の概要】
【0004】
本発明の更なる特徴及び利点は後続する記述において説明され、或いは、その一部は、その記述から明らかとなり、或いは本明細書に開示された原理を実施することで確認できる。本発明の特徴及び利点は、特に添付の特許請求の範囲において指摘された手段及び組合せを利用して実現され且つ達成される。本発明のこれらの特徴及び他の特徴は、以下の説明及び添付の特許請求の範囲からより詳細に明らかとなるか、或いは本明細書において説明される原理を実施することで確認できる。
【0005】
本明細書には、アプリケーション(すなわち、ソフトウェアパッケージ)を、または、プリ・インストールアプリケーションを、または、別途購入(Purchase)されたアプリケーションなどを、ユーザ・アカウントに関連付けるためのシステム、方法及びコンピュータ可読の非一時的記憶媒体が開示される。ここで、前記ユーザ・アカウントは、オンラインストア上で関連付けられ、或いは、保存される。この処理を「縁組み」処理(以下、「縁組み」を「アドプション」(adoption)」と呼ぶ。アドプション処理は、アプリケーションの、ダウンロード、再ダウンロード、更新等のある特定の特典をそのユーザ・アカウントに与えるものである。他の例においては、アドプションとは、アドプションされたアプリケーションに対する他の特典(例えば、そのアドプションされたアプリケーションを贈与し或いは販売すること)を許すように、そのユーザ・アカウントを構成することをいう。1つの一般的な例として、ある新品コンピュータが、ある特定のプリ・インストール・ソフトウェアを含む、とする。ユーザは、その新品コンピュータ上で当該プリ・インストール・ソフトウェアを実行し、使用することができる。しかしながら、そのユーザが、更新、バックアップ、並びに/或いは他のソフトウェア関連のコンテンツ、またはサービスを受ける、且つ/或いはそれらを利用する資格を得るためには、そのプリ・インストール・ソフトウェアをアドプションすることにより、当該プリ・インストール・ソフトウェアが、オンライン電子ストア・アカウント等の特定のユーザ・アカウントに関連付けられる。これで、前記オンライン電子ストアは、更新、バックアップ、復元及びアプリケーション内購入等を処理することができる。しかし、別のユーザは、そのプリ・インストール・ソフトウェアを、このプリ・インストールソフトウエアを「アドプション」することなしに、このオンライン電子ストア・アカウントのユーザ・アカウント若しくはアクセス権を必要とする特定機能を除いた他の全てのフル機能付きで、当該プリ・インストール・ソフトウェアを使用することを選択するができる。あるユーザがプリ・インストール・ソフトウェアをアドプションすると、オンライン電子ストアは、当該プリ・インストール・ソフトウェアが別のユーザによるアドプションに対しては不適格となるように、そのアカウント、データベース及び/またはソフトウェア自体を変更する。別の一般的な例は、ユーザが既に購入し、贈与し、または別の方法で取得していたソフトウェアパッケージ、またはソフトウェアアプリケーションが、ユーザのコンピュータ装置上でインストールされる場合がある。このコンピュータ装置は、当該ソフトウェアパッケージ、またはソフトウェアアプリケーションのアドプションを求めるソフトウェア・アドプション要求をサーバに送信する。このソフトウェア・アドプション要求は、当該ユーザ・アカウントに関連付けられたソフトウェアパッケージの識別子または表示を含む。いくつかの例においては、資格証明が、ソフトウェアパッケージの信憑性に対する証明として、アドプション要求に更に含まれる。資格証明は、ソフトウェアパッケージを所有していることからのみ由来することができる値である。例えば、資格証明は、当該ソフトウェアパッケージのシリアル番号に関連付けられたものか、或いはそれから派生したものである。また、この資格証明は、当該ソフトウェアパッケージから派生した、或いは当該電子装置に関連付けられたメタデータから派生する値である。例えば、この電子装置に関連付けられたメタデータとは、電子装置に関連付けられたハードウェアから導き出し可能な値である。アプリケーションがアドプションされると、更新、バックアップ、並びに/或いは他のソフトウェア関連のコンテンツ、またはサービスは、当該ユーザに対して使用可能である。
【0006】
本方法を実施するように構成されたシステムは、ダウンロード可能なアプリケーションを提示し、アプリケーションのコンピュータ装置へのダウンロード要求を受信し、そのアプリケーションがプリ・インストールアプリケーションであると判定する。次にシステムは、そのアプリケーションをユーザ・アカウントとリンクするためにユーザ認証を要求するべく認証プロンプトを提示し、ユーザ認証を受信し、このユーザ認証の受信に応答して、一意的なハードウェア識別子を生成するか、或いは、当該コンピュータ装置に関連付けられた資格証明を検索する。本システムは、上記一意的ハードウェア識別子、または資格証明に基づいてそのアプリケーションがリンク可能であることを判定し、そのアドプション可能なアプリケーションがリンク可能である場合にアドプション可能なアプリケーションを上記ユーザ・アカウントとリンクする。本システムは、ダウンロード可能な当該アプリケーションの提示を、ページ更新要求を受信し、そのような要求を受信すると、当該アプリケーションと関連付けられたスタブ(半券)レシートを収集することにより、可能である。このスタブ・レシートは、アプリケーションと関連付けられたバージョン番号及び名前を含むものである。次にシステムは、そのバージョン番号及び名前に基づいて、当該アプリケーションの更新がサーバ上でダウンロード可能であると判定し、そのアプリケーションの名前を提示する。
【0007】
別の実施形態として、本システムは、ダウンロード可能なアプリケーションの提示を、ページ購入要求を受信し、当該コンピュータ装置に関連付けられたマニフェストを受信し、このマニフェストに基づいてプリ・インストールアプリケーションのリストを提示することにより、行うことができる。このマニフェストとは、サーバからダウンロード可能なプリ・インストールアプリケーションのリストを含むのであって、当該サーバとは、当該ダウンロード可能なプリ・インストールアプリケーションのリストが含むアプリケーションを有するサーバである。また、本システムは、アプリケーションがサーバで利用可能な更新がなされていることを、アプリケーション・データベースを探索し、当該コンピュータ装置上に格納されたアプリケーションのバージョン番号を上記アプリケーション・データベース上に格納されているアプリケーションのバージョン番号と比較することにより、利用可能な更新を判定する。バージョン番号の比較に基づいて、アプリケーションに対する更新がアプリケーション・データベースに存在するかを判定する。本システムは、アプリケーションがスタブ・レシートと関連付けられていると判定することにより、アプリケーションがプリ・インストールアプリケーションであると判定する。本システムは、アプリケーションがプリ・インストールアプリケーションであることを、コンピュータ装置と関連付けられたプリ・インストールアプリケーションのリストを含むマニフェストを受信し、アプリケーションがそのプリ・インストールアプリケーションのリスト内に含まれると判定することにより、判定する。本システムは、プリ・インストールアプリケーションがリンク可能であることを、一意的なハードウェア識別子、または購入証明をサーバに送信し、プリ・インストールアプリケーションが別のユーザ・アカウントとリンクされているかを判定することにより、そのプリ・インストールアプリケーションがリンク可能であると判定する。更に他の例において、システムは、上記プリ・インストール・ソフトウェアを上記ユーザ・アカウントとリンク付けすることを、そのプリ・インストール・ソフトウェアをユーザ・アカウントに関連付け、一意的なハードウェア識別子、または購入証明を含むように、一意性テーブルなるテーブルを更新することにより、前記プリ・インストール・ソフトウェアをユーザ・アカウントとリンクすることができる。ここで、一意性テーブルは、別のプリ・インストール・ソフトウェアを有する別の電子装置と関連付けられる別の一意的ハードウェア識別子、または購入の証明を含み、別のプリ・インストールアプリケーションは別のユーザ・アカウントとリンクされる。
【0008】
別の変形例において、システムは、ユーザ・アカウントに関連付けられたアプリケーションをユーザ・アカウントに関連付けられた1つ以上のコンピュータ装置に送信するように構成されたオンラインストアのユーザ・アカウントとプリ・インストール・ソフトウェアをリンクする要求を受信する。次に本システムは、コンピュータ装置と関連付けられた一意的ハードウェア識別子、または購入の証明を生成し、プリ・インストールアプリケーションがその一意的ハードウェア識別子、または購入の証明に基づいてリンク可能であると判定する。プリ・インストールアプリケーションがリンク可能である場合、システムは、プリ・インストールアプリケーションをユーザ・アカウントとリンクする。前記一意的ハードウェア識別子は、MACアドレス、UDID(universal device identifier)、ロジックボードシリアル番号、またはイーサネットハードウェアアドレス等の電子装置の1つ以上のハードウェアコンポーネントに基づく。他の例において、購入の証明が使用される。購入の証明は、電子装置のハードウェアコンポーネント、アプリケーションの贈与、購入、または取得と関連付けられたメタデータに基づくことができる。プリ・インストールアプリケーションがリンク可能であると判定することは、一意的ハードウェア識別子、または購入の証明をサーバに送信し、プリ・インストールアプリケーション、または購入の証明が別のユーザ・アカウントとリンクされているかを判定することを含む。本システムは、コンピュータ装置の元の設定がプリ・インストールアプリケーションを含むと判定することにより、プリ・インストールアプリケーションがリンク可能であると判定する。プリ・インストールアプリケーションをユーザ・アカウントとリンクすることは、プリ・インストールアプリケーションをユーザ・アカウントに関連付け、一意的ハードウェア識別子、または購入の証明を含むように一意性テーブルを更新することを含む。一意性テーブルは、別のユーザ・アカウントとリンクされている別のプリ・インストールアプリケーションを有する別の電子装置と関連付けられる別の一意的ハードウェア識別子、または購入の証明を含む。更に別の例において、プリ・インストールアプリケーションをユーザ・アカウントとリンクすることは、マニフェストからプリ・インストールアプリケーションと関連付けられたメタデータを削除することを含むのであり、ここで、マニフェストとは、もうユーザ・アカウントとリンクされているプリ・インストールアプリケーションを一覧表示するように構成される更に含む。
【図面の簡単な説明】
【0009】
本発明の上述の利点及び特徴、並びに他の利点及び特徴を取得する方法を説明するため、添付の図面に示される本発明の特定の実施形態を参照して、簡単に上述した原理のより詳細な記述を示す。これらの図面が本発明の例示的な実施形態のみを示すために本発明の範囲を限定するものとして考えられないことを理解して、本明細書における原理は、添付の図面を使用して更に具体的且つ詳細に記述され、説明される。
【図1】図1は、例示的なシステムの実施形態を示す図である。
【図2】図2は、例示的なアプリケーション配信システムを示す図である。
【図3】図3は、例示的なクライアント−サーバシステムを示す図である。
【図4】図4は、ページ更新要求を処理する例示的な方法を示す図である。
【図5】図5は、ページ更新要求と関連付けられたHTMLページの一例を示す図である。
【図6】図6は、プリ・インストールアプリケーションをアドプションするためにユーザ認証を要求するHTMLページの一例を示す図である。
【図7】図7は、プリ・インストールアプリケーションをアドプションするためにユーザ認証を要求するHTMLページの別の例を示す図である。
【図8】図8は、ページ購入要求を処理する例示的な方法を示す図である。
【図9】図9は、ユーザがサインインしていない場合にページ購入要求と関連付けられたHTMLページの一例を示す図である。
【図10】図10は、ユーザがサインインしている場合にページ購入要求と関連付けられたHTMLページの別の例を示す図である。
【図11】図11は、認証プロンプトを含むページ購入要求と関連付けられたHTMLページの別の例を示す図である。
【図12】図12は、プリ・インストールアプリケーションをユーザ・アカウントにリンクする例示的な方法を示す図である。
【図13】図13は、アドプション警告の一例を示す図である。
【図14】図14は、アドプション警告の別の例を示す図である。
【図15】図15は、電子装置上の回復モードに対する例示的な処理を示す図である。
【発明を実施するための形態】
【0010】
本発明の種々の実施形態を以下において詳細に説明する。特定の実現例を説明するが、これは例示するためだけに説明されることが理解されるべきである。本発明の趣旨の範囲から逸脱せずに他の構成要素及び構成が使用されてもよいことは、当業者により理解されるだろう。
【0011】
本発明は、電子装置上のプリ・インストール・ソフトウェアを配信センター、またはオンラインストアのユーザ・アカウントに関連付ける技術分野における必要性に向けられている。更に本発明は、プリ・インストール・ソフトウェアに加えて他の種類のソフトウェアをユーザ・アカウントに関連付ける必要性に対処するものである。例えば、購入したソフトウェア、贈与として受け取ったソフトウェア、ソフトウェア製造業者から無償で、または低料金で配信されたソフトウェア、或いは他の方法を使用して取得したソフトウェアを、オンラインストア、またはオンラインショップのユーザ・アカウントに関連付けることに関連する。この処理をオンラインストアにおけるユーザ・アカウントによるソフトウェアの「アドプション」と呼ぶ。ソフトウェアをオンラインストアのユーザ・アカウントに関連付けることにより、ソフトウェアの更新及び再インストールはオンラインストアからダウンロードされる。それにより、電子装置上でソフトウェアを管理するより簡単で便利な方法を提供する。また、ユーザ・アカウントに関連付けられた他のコンピュータ装置は、オンラインストアからソフトウェアの更新及び再インストールを更に受信する。図1〜図15の以下の説明は、プリ・インストールアプリケーション、ソフトウェアパッケージ及び他の手段を介して取得された(例えば、贈与、購入、或いは別の方法で配信、または取得された)アプリケーションに適用可能である。従って、本明細書において使用されるような「プリ・インストールアプリケーション」という用語は、贈与されたアプリケーション、購入されたアプリケーション、配信されたアプリケーション及び取得されたアプリケーション等と同義で使用される。換言すると、「プリ・インストールアプリケーション」は、ユーザが所有権を有するあらゆるアプリケーションである。同様に、「一意的ハードウェア識別子」とは、コンピュータ装置にインストールされたアプリケーションに資格証明、または所有権を提供するように構成されたあらゆる一意的識別子である。例えば、資格証明は、作成されるアプリケーションのコピー毎に一意的な値を有する。資格証明は、アプリケーションを償還ための償還コードでもある。他の例において、資格証明は、一意的値と非一意的値との組合せであり、例えば償還コード(一意でなくてもよい)をユーザ・アカウント(一意である)と関連付けられた一意的識別子と組み合わせる。概念を実施するために採用される基本的な汎用システム、または汎用コンピュータ装置の簡単に紹介するための説明を図1に示す。プリ・インストール・ソフトウェアをユーザ・アカウントに関連付ける方法を以下に更に詳細に説明する。以下において、種々の実施形態としていくつかの変形例を含む。次に、本発明の開示は図1に進む。
【0012】
図1を参照すると、例示的なシステム100は、処理ユニット(CPU、またはプロセッサ)120、並びに読み出し専用メモリ(ROM)140及びランダムアクセスメモリ(RAM)150等のシステムメモリ130を含む種々のシステム構成要素をプロセッサ120に結合するシステムバス110を含む汎用コンピュータ装置100を備える。システム100は、プロセッサ120と直接接続されるか、プロセッサ120に近接するか、或いはプロセッサ120の一部として組み込まれる高速メモリのキャッシュ122を含む。システム100は、プロセッサ120が高速アクセスするためにメモリ130及び/または記憶装置160からキャッシュ122にデータをコピーする。このように、キャッシュは、データを待つ間にプロセッサ120が遅延するのを回避するパフォーマンスブーストを提供する。これらのモジュール及び他のモジュールは、種々の動作を実行するようにプロセッサ120を制御するか、或いは制御するように構成される。他のシステムメモリ130が更に使用可能であってもよい。メモリ130は、種々の性能特性を含む種々のメモリを含む。本発明は、2つ以上のプロセッサ120を備えるコンピュータ装置100、或いはより適切な処理機能を提供するように共にネットワーク化されたコンピュータ装置のグループ、またはクラスタ上で動作することが理解される。プロセッサ120は、あらゆる汎用プロセッサ、並びに記憶装置160に格納され、プロセッサ120及びソフトウェア命令が実際のプロセッサ設計に組み込まれる専用プロセッサを制御するように構成されたモジュール1 162、モジュール2 164及びモジュール3 166等のハードウェアモジュール、またはソフトウェアモジュールを備える。プロセッサ120は、実質的に、多数のコア、またはプロセッサ、バス、メモリ制御器、キャッシュ等を含む完全自立型の演算システムである。マルチコアプロセッサは、対称でも非対称でもよい。
【0013】
システムバス110は、種々のバスアーキテクチャのうちのいずれかを使用するメモリバス、またはメモリ制御器、周辺バス及びローカルバスを含むいくつかの種類のバス構造のうちのいずれかである。ROM140等に格納された基本入出力(BIOS)は、起動中等にコンピュータ装置100内の要素間で情報の転送を支援する基本ルーチンを提供する。コンピュータ装置100は、例えばハードディスクドライブ、磁気ディスクドライブ、光ディスクドライブ、またはテープドライブ等の記憶装置160を更に備える。記憶装置160は、プロセッサ120を制御するソフトウェアモジュール162、164、166を備える。他のハードウェアモジュール、またはソフトウェアモジュールが考えられる。記憶装置160は、ドライブインタフェースによりシステムバス110に接続される。ドライブ及び関連付けられたコンピュータ可読記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール及びコンピュータ装置100に対する他のデータの不揮発性記憶装置を提供する。一態様において、特定の機能を実行するハードウェアモジュールは、機能を実行するために必要なハードウェアコンポーネント、例えばプロセッサ120、バス110及びディスプレイ170等と併せてコンピュータ可読の非一時的記憶媒体に格納されたソフトウェアコンポーネントを含む。基本的な構成要素は当業者に既知であり、装置の種類、例えば装置100が小型であるか、ハンドヘルドコンピュータ装置であるか、デスクトップコンピュータであるか、或いはコンピュータサーバであるかに依存して適切な変形例が考えられる。
【0014】
本明細書において説明した例示的な実施形態はハードディスク160を採用するが、コンピュータによりアクセス可能なデータを格納する他の種類のコンピュータ可読媒体、例えば磁気カセット、フラッシュメモリカード、デジタル汎用ディスク、カートリッジ、ランダムアクセスメモリ(RAM)150、読み出し専用メモリ(ROM)140、ケーブル、またはビットストリーム等を含む無線信号等が例示的な動作環境において更に使用されてもよいことは、当業者により理解されるべきである。コンピュータ可読の非一時的記憶媒体は、媒体、例えばエネルギー、搬送波信号、電磁波及び信号自体を明確に除外する。
【0015】
コンピュータ装置100とのユーザ対話を可能にするために、入力装置190は、例えば音声のためのマイク、ジェスチャ、または図形入力のためのタッチセンシティブスクリーン、キーボード、マウス、動作入力及び音声等の多くの入力機構を示す。更に出力装置170は、当業者に既知である多くの出力機構のうちの1つ以上である。いくつかの例において、多モードシステムにより、ユーザは、コンピュータ装置100と通信するために多くの種類の入力を提供できる。通信インタフェース180は、一般に、ユーザ入力及びシステム出力を制御し、管理する。何らかの特定のハードウェア構成上で動作することに対する制限がないため、本明細書における基本的な機能は、それらが開発される時に改善されたハードウェア構成、またはファームウェア構成に容易に置換される。
【0016】
説明を明確にするため、説明的なシステムの実施形態は、「プロセッサ」、またはプロセッサ120としてラベル付けされた機能ブロックを含む個々の機能ブロックを含むものとして提示される。これらのブロックが示す機能は、ソフトウェアを実行できるハードウェア及び汎用プロセッサ上で実行するソフトウェアと同等に動作する目的で製作されたプロセッサ120等のハードウェアを含むがそれらに限定されない共有ハードウェア、または専用ハードウェアを使用して提供される。例えば、図1に示された1つ以上のプロセッサの機能は、単一の共有プロセッサ、または複数のプロセッサにより提供される。(「プロセッサ」という用語を使用することは、ソフトウェアを実行できるハードウェアのみを示すものとして解釈されるべきではない。)例示する実施形態は、マイクロプロセッサ及び/またはデジタル信号プロセッサ(DSP)ハードウェア、以下において説明する動作を実行するソフトウェアを格納する読み出し専用メモリ(ROM)140、並びに結果を格納するランダムアクセスメモリ(RAM)150を備える。汎用DSP回路と組み合わせて超大規模集積回路(VLSI)ハードウェアの実施形態及びカスタムVLSI回路網が更に提供される。
【0017】
種々の実施形態の論理演算は、(1)汎用コンピュータ内のプログラム可能な回路上で実行する一連のコンピュータにより実現されたステップ、動作、または手順、(2)専用のプログラム可能な回路上で実行する一連のコンピュータにより実現されたステップ、動作、または手順、並びに/或いは(3)プログラム可能な回路内の相互接続されたマシンモジュール、またはプログラムエンジンとして実現される。図1に示されたシステム100は、列挙された方法の全て、または一部を実施し、列挙されたシステムの一部であり、且つ/或いは列挙されたコンピュータ可読の非一時的記憶媒体における命令に従って動作する。そのような論理演算は、モジュールのプログラミングに従って特定の機能を実行するようプロセッサ120を制御するように構成されたモジュールとして実現される。例えば図1は、プロセッサ120を制御するように構成されたモジュールである3つのモジュールMod1 162、Mod2 164及びMod3 166を示す。これらのモジュールは、記憶装置160上に格納されるか、実行時にRAM150、またはメモリ130にロードされるか、或いは当技術分野において既知であるように他のコンピュータ可読記憶場所に格納される。
【0018】
演算システムのいくつかの構成要素を開示したが、次に、本開示は、オンラインアプリケーション配信ストア、またはマーケットにおいてパーソナルコンピュータ、ラップトップ、ゲーム機、スマートフォン、移動電話、またはタブレットPC等のコンピュータ装置上のプリ・インストール・ソフトウェアをユーザ・アカウントに「関連付ける」(リンクする、またはアドプションするに類似する)技術の説明に戻る。本明細書において説明される手法は、オンラインストア、または配信センター等のオンライン配信サイト上のユーザ・アカウントにプリ・インストール・ソフトウェアをリンクすることにより、そのプリ・インストール・ソフトウェアを更新し、或いはコンピュータ装置に再インストールする際の効率性及び利便性を高めるものである。オンライン配信サイトは、ユーザ・アカウントに関連付けられたプリ・インストール・ソフトウェアをそのユーザ・アカウントにリンクされた1つ以上のコンピュータ装置に送信する。プリ・インストール・ソフトウェア及びプリ・インストール・ソフトウェアに対する更新は、双方とも、1つ以上のコンピュータ装置に送信することができる。いくつかの例において、配信サイトは、所定のユーザ・アカウントに関連付けられたソフトウェアを受信することがゆるされた、その所定のユーザ・アカウントに関連付けられたコンピュータ装置の数に対する制限を指定することができる。他の例においては、プリ・インストール・ソフトウェアとは、一度は生成されたが、その後に、一グループのコンピュータ装置の各々に対して繰り返され複製された標準「イメージ」の一部である。例えば、標準的な装置「イメージ」とは、オペレーティングシステム、ドライバ、プログラム及び設定等を含む。従って、「イメージ」された装置の各々は、プリ・インストール・ソフトウェアを含む同一のソフトウェア構成を有し、エンドユーザ(、または他のエンティティ)が装置を設定した後、プリ・インストール・ソフトウェアは、オンラインストア、またはオンライン市場においてアドプションされ、ユーザ・アカウントに関連付けることができる。
【0019】
図2は、例示的なアプリケーション配信システムを示す。この例において、配信システム200は、配信センター210、アプリケーション・データベース220、設定サーバ230、インターネット250、または他のネットワーク、コンピュータ装置260、コンピュータ装置270及び携帯装置280を示す。配信センター210、アプリケーション・データベース220及び設定サーバ230は、共にクライアント−サーバモデルのサーバ側240の種々の独立構成要素を示す。同様に、コンピュータ装置260、コンピュータ装置270及び携帯装置280は、クライアント−サーバモデルのクライアント側290の種々の独立構成要素を示す。従って、配信システム200の広範な概要は、インターネット250を介してクライアント側290と通信するサーバ側240を含むことができる。一例として、サーバ側240は、ユーザにとっては、アプリケーション、または多数のクラウドサーバを販売し、配信するオンラインストアとして表現できる。クライアント側290の装置は、装置上に格納されたアプリケーション管理コンピュータプログラムを使用してオンラインストアと通信することができる。他の例において、インターネット250は、例えばコンピュータネットワーク、電話回線、イーサネット、ローカルエリアネットワーク、有線ネットワーク及び無線ネットワーク等の他の通信ネットワークで置換することができる。
【0020】
コンピュータ装置260はアプリケーション261を含むことができる。アプリケーション261は、コンピュータ装置260にプリ・インストールされたアプリケーション、パッケージの一部として提供されたアプリケーション、、または何らかの種類のインストールメディアが提供されたアプリケーションを含み得る。ある一般的な例において、コンピュータ装置260の所有者は、製造業者からこれらのアプリケーションが既にインストールされているコンピュータ装置260を購入した、とする。このアプリケーション261のなかには、他の手段を介してコンピュータ装置260により取得されたアプリケーション、(またはソフトウェアパッケージ)、例えば2、3例を挙げると、贈与され、購入され、または無償で配信されたアプリケーションを更に含む。アプリケーション261は、コンピュータ装置260のユーザにより配信センター210から購入されたアプリケーションを更に含むことができる。ユーザは、配信センター210から所望のアプリケーションを購入する際に、ユーザが既に購入したアプリケーションと関連付けられたメタデータ、そして、所望のアプリケーションと引き換えで配信センター210に支払いをするための支払情報に関連付けられたメタデータなどを含むユーザ・アカウント291にログインする。ログインすると、ユーザは購入したいアプリケーションを選択する。ユーザがアプリケーションの購入額を支払うことに同意すると、このユーザの支払情報が用いられて取引が完了する。取引が完了すると、その所望のアプリケーションはユーザ・アカウント291と関連付けられることとなり、ユーザは、当該所望のアプリケーションとその所望アプリケーションの更新とをダウンロードできるようになる。ユーザ・アカウント291と関連付けられたこれらアプリケーション等は、ユーザ・アカウント291と関連付けられる他の装置に更にダウンロード若しくは再ダウンロード可能となる。
【0021】
いくつかの例においては、ユーザは、この時点では、アプリケーションをユーザ・アカウントに関連付けしないというオプションを有することができる。例えば、贈与としてアプリケーションを受け取るユーザは、ユーザ・アカウントを有さないか、有していても、アプリケーションをユーザ・アカウントに関連付けたくないであろう。第1の例においては、ユーザは、ユーザ・アカウントを設定するまでもなく、アプリケーションをコンピュータ装置260にインストールできる。ユーザが更新を受信したいか、或いは、自身が所有する他の電子装置にそのアプリケーションをインストールしたい場合には、当該ユーザは、ユーザ・アカウントを選択し、そのアプリケーションを前記ユーザ・アカウントとリンクする(すなわち、アドプションする)。この例においては、コンピュータ装置260、コンピュータ装置270及び携帯装置280は、全てユーザ・アカウント291と関連付けられている、そのため、ユーザ・アカウント291と関連付けられている全てのアプリケーションの更新及び再ダウンロードを受信できるように構成されている。更に、携帯装置280は、コンピュータ装置270と通信し、これら2つの装置間でデジタルデータ及びアプリケーションを転送することができる。一例においては、コンピュータ装置270は、ユーザ・アカウント291に関連付けられた全てのアプリケーションを格納するリポジトリセンター(記憶センター)となって、選択されたアプリケーションを携帯装置280に転送できるように構成されている。本明細書において、「アプリケーション」という用語は、ソフトウェアプロバイダにより提供されたソフトウェアプログラム、またはアプリケーションのコピー或いは複製物を意味する。他の例においては、コンピュータ装置に最初にプリ・インストールされたソフトウェアアプリケーション及びソフトウェアプログラム(例えば、システムソフトウェア、企業向けソフトウエア、マルチメディアファイル、ビデオファイル、オーディオファイル及び画像ファイル)等に加えて、他のデジタル製品、例えば、ユーザが所有権を有するソフトウェアアプリケーション等は、また、ユーザ・アカウント291に関連付けて、配信センター210により配信/再配信することができる。
【0022】
配信センター210は、アプリケーション・データベース220に結合され、アプリケーション・データベース220から、アプリケーションを販売し、供給し、及び維持するように構成されている。アプリケーション・データベース220は、サーバ側240から配信可能なアプリケーションのうちの一部、または全てを格納するように構成することができる。これらのアプリケーションは、インターネット250を介してクライアント側290の装置に販売し、更新し、そして、供給(すなわち、送信)することができる。従って、配信センター210は、アプリケーションに対するオンラインストアを意味する。例えば、アプリケーション・データベース220は、配信センター210からアプリケーションに対する要求を受信し、要求に応答して、要求されたアプリケーションを配信センター210に送信し、配信センター210は、その後アプリケーションを要求側装置に送信する。要求されたアプリケーションとは、購入可能なアプリケーション、または以前にユーザ・アカウントに関連付けられたアプリケーション(すなわち、アドプションされている、別途取得され、またはプリ・インストールされたアプリケーション)である。他の例において、アプリケーション・データベース220は、要求されたアプリケーションを要求側装置に直接送信できる。更に他の例において、アプリケーション・データベース220はクライアント側290に常駐できるのであり、このクライアント側で、サーバ側240は、アプリケーション・データベース220の特定のアプリケーションへのアクセスを、当該ユーザ・アカウントに関連付けられたアプリケーションに基づいて許可することできる。
【0023】
クライアント側290の装置は、ソフトウェア・アドプション要求を送信して、装置上のプリ・インストールアプリケーション、または別途取得されてはいるがアドプションされていないアプリケーションを、ユーザ・アカウントにリンクする(すなわち、関連付けるか、或いはアドプションする)ことができる。1つのアプリケーションをリンクすることにより、ユーザは、そのアプリケーションを1つのユーザ・アカウントに関連付けることができるため、同ユーザは、同ユーザ・アカウントに同じく関連付けられた他の装置に、このアプリケーションをダウンロードすることができる。この処理は、アプリケーションの「リンク」、「アドプション」、または「関連付け」と呼ばれる。例えばコンピュータ装置260は、アプリケーション261からのアプリケーションをユーザ・アカウント291とリンクするように要求することができる。この要求は、インターネット250を介してアプリケーション、またはコンピュータ装置260と関連付けられた一意的識別子(例えば、一意的ハードウェア識別子)と共に配信センター210に送信され、ここで、アプリケーションがユーザ・アカウント291と関連付けられているかが判定される。一意的ハードウェア識別子は、特定の装置を他の全ての装置と区別するために使用される一意的な識別子であり、その装置のハードウェアに基づくことができる。例えば、製造業者は、自らの製造になる装置が、一意的であり、それ故に、他のあらゆる装置の一意的ハードウェア識別子とは異なるところの一意的ハードウェア識別子を有する、ことを保証することができる。一例として、一意的ハードウェア識別子は、装置のロジックボードシリアル番号及び/またはイーサネットハードウェアアドレスに基づくこともできる。一例において、これらの2つの値は、連結され、ハッシュされて、一意的ハードウェア識別子を生成する。他の例においては、この装置に特有な他のメタデータを、一意的ハードウェア識別子を形成するための種々のデータ操作アルゴリズムを用いて、連結し、ハッシュし、または合成してもよい。更に他の例において、そのアプリケーションがユーザ・アカウント291と関連付け可能かを判定するために使用される一意的識別子は、その一意的識別子と関連付けられるアプリケーション(すなわち、ソフトウェアパッケージ)がソフトウェア製造業者から合法的に取得されたことの証拠となる他のあらゆる購買証明、または資格に基づくことができる。一例において、一意的識別子は、アプリケーションと関連付けられたメタデータ、または属性から導出される。別の例において、一意的識別子は、アプリケーション、クライアント装置、ユーザ・アカウント、ユーザ・アカウントに関連付けられた他のクライアント装置、または上記の1つ以上の任意の組合せ、などと関連付けられたメタデータから導出することができる。
【0024】
一実施形態において、配信センター210は、一意的識別子を受信し、それを処理、または解析してアプリケーションがユーザ・アカウントに関連付け可能かを判定する。ある特定の例において、アプリケーションはユーザ・アカウントに関連付けることはできない。例えば、アプリケーションが以前に別のユーザ・アカウントに関連付けられていた場合、装置のアプリケーションはユーザ・アカウントに関連付けられない。別の例として、アプリケーションは、正規のコピーでない場合には、ユーザ・アカウントに関連付けることができない。これは、ユーザが元々ある装置から別の装置にインストールされていたアプリケーションを手動でコピーする場合に発生する。更に別の例として、この関連付け処理は、アプリケーションをユーザ・アカウントにリンクするために、ユーザが電子装置上のユーザのアカウントにログインされていることを必要とする。
【0025】
別の実施形態において、配信センター210は、一意的識別子を受信し、それを処理、または解析して、アプリケーションがユーザ・アカウントに関連付けられるかを判定する。一例として、一意的識別子を処理することは、一意的識別子をデータベースと比較することで一意的識別子を検証することを含む。データベースは、各々がアプリケーションの正規のコピーと関連付けられた一意的識別子を格納する複数のエントリを有する。比較の結果は、アプリケーションのアドプション状況、例えばアプリケーションが正当なコピーであるか、不当なコピーであるか、或いはユーザ・アカウントと既に関連付けられているかを判定するために使用される。別の例として、一意的識別子の処理は、一意的識別子をハッシュテーブルに入力してアプリケーションのアドプション状況を判定することを含むことができる。更に別の例において、一意的識別子を検証エンジンへ受信するようにして、このエンジンがアプリケーションのこのようなインストールが有効ではあるか、まだアドプションされていないかを判定するようにすることができる。更に他の例においては、他のデータ処理技術を一意的識別子に適用して、アプリケーションがユーザ・アカウントに関連付けることができるかを判定することができる。アプリケーションは、最近でも、ユーザにより取得可能である。換言すると、アプリケーションは、配信、または製造から、電子装置を購入し、受け取った後でも、ユーザが取得し終えたようにようにすることができる。或いは、アプリケーションは、電子装置が購入された時に取得可能である。配信センター210によりアドプション状況が判定されると、アドプション状況に係る確認が電子装置に送信される。確認が送信され、アドプション処理の状況を電子装置に報知する。確認に基づいて、電子装置は、ソフトウェアパッケージのダウンロード、または更新を要求する。他の例において、配信センター210は、アドプション状況に従って電子装置に対してソフトウェアパッケージのダウンロード処理、または更新処理を自動的に開始する。
【0026】
サーバ側240は、多数のサーバ及びテーブルを組み込んでおり、リンク要求が許可されるべきかを判定する。例えば配信センター210は一意性サーバ211を備え、このサーバは、一意的識別子を処理しって、リンク要求の正当性、または合法性を判定するように構成されている。一意性サーバ211は、データベースを維持するように構成された一意性テーブル、またはユーザ・アカウントとリンクされた1つ以上のプリ・インストールアプリケーションを有している電子装置のテーブルを含む。一例として、一意性テーブルは、プリ・インストールアプリケーションをユーザ・アカウントと既にリンクしている装置(すなわち、装置と関連付けられたプリ・インストールアプリケーションを既にアドプションしている装置)の一意的ハードウェア識別子を格納するように構成される。一意性テーブルは、ユーザ・アカウントに関連付けられているアプリケーションと関連付けられたメタデータを格納するように更に構成される。装置がアプリケーションのうちのいくつか、または全てをユーザ・アカウントとアドプション(すなわち、リンク)する場合、装置の一意的ハードウェア識別子、またはアドプションされたアプリケーションの一意的識別子は、一意性テーブル内に格納される。これにより、既にアドプションされているアプリケーションをリンクする今後の要求を阻止する。例えば、一意的識別子が一意性テーブルにあるかに関するクエリを実行することは、一意的ハードウェア識別子と関連付けられた装置がプリ・インストールアプリケーションをユーザ・アカウントと既にリンクしているかを判定する。同様に、クエリは、一意的識別子と関連付けられたアプリケーションがユーザ・アカウントと既にリンクされているかを更に判定する。別の例として、一意性テーブルは、以前にアドプションされている(すなわち、ユーザ・アカウントとリンクされている)電子装置の1つ以上のプリ・インストールアプリケーションと関連付けられたメタデータと共に電子装置の一意的ハードウェア識別子を格納するように構成される。換言すると、一意性テーブルは、装置の一意的ハードウェア識別子と選択的にアドプションされている装置のプリ・インストールアプリケーションと関連付けられた1つ以上のメタデータとの間の1対多数マッピングとして構成される。一意的ハードウェア識別子に対して一意性テーブルをクエリすることは、一意的ハードウェア識別子が一意性テーブルに存在しない場合には何も返送せず、一意的ハードウェア識別子が一意性テーブルに存在する場合には選択的にアドプションされているプリ・インストールアプリケーションと関連付けられたメタデータを返送する。この結果、第1のユーザ・アカウントで装置上のプリ・インストールアプリケーションを選択的にアドプションし、第2のユーザ・アカウントで装置上の別のプリ・インストールアプリケーションを選択的にアドプションする機能が得られる。更に他の例において、一意性テーブルは、ユーザ・アカウントにリンクされているアプリケーションのデータベース、またはテーブルを維持するように構成される。既にリンクされているアプリケーションは、一意性テーブルに格納された一意的識別子を有することにより、アドプションされているアプリケーションの最新のデータベースを維持する。
【0027】
一例において、設定サーバ230は、電子装置の元の設定をチェックすることにより、リンク要求の正当性を検証することができるもので、サーバは、電子装置が製造業者から出荷された時に、特定のアプリケーションが当該装置にプリ・インストールされたかを検証、または判定することによりこの検証を行う。この設定サーバは、アプリケーションがユーザ装置にインストールされているか、或いはユーザ・アカウントに関連付けられているか、に関係なく、ユーザが所有権を有するアプリケーションを更に検証し、または識別することができる。従って、ユーザが所有権を有するが、関連付けられていないか、或いはインストールされていないアプリケーションを更に識別できる。設定サーバ230は、製造業者により作成された電子装置の元の設定を格納するデータベースを含む。元の設定は、もしあれば電子装置と共に供給されたオペレーティングシステムのバージョン及びアプリケーションのバージョンを含む。例えば、オンラインストアを通して電子装置を注文するユーザは、購入時に1つ以上のアプリケーションを含む装置を構成することができる。アプリケーションは、購入時の設定に基づいて製造時に電子装置にインストールされる。製造時には、後続の参照のために、電子装置の設定を設定サーバ230に通信する。設定サーバ230は、電子装置から一意的ハードウェア識別子を含む参照要求を受信する場合、データベース上で探索、或いはクエリを実行し、装置にインストールされたオペレーティングシステムのバージョン及び/または電子装置にインストールされたアプリケーションのバージョンを含むリストを返送する。設定サーバ230は、インストールされたアプリケーションのリストをユーザがユーザ・アカウントに関連付けようとしているアプリケーションと比較し、ユーザが関連付けようとしているアプリケーションが正規のインストールであるか、或いは以前に別のユーザ・アカウントに関連付けられているかを判定する。或いは、設定サーバ230は、プリ・インストールアプリケーションのリストを配信センター210に渡し、リンク要求が許可されるべきであるかを判定する。このチェックにより、ユーザがある装置から別の装置にプリ・インストールアプリケーションをコピーすることで配信システム200を迂回しようとすることを阻止する。
【0028】
サーバ側240の1つ以上の要素がリンク要求を検証すると、そのプリ・インストールアプリケーションはユーザ・アカウントに関連付けられる(すなわち、アプリケーションアドプションされる)。また、一意性サーバ211、または設定サーバ230は、アプリケーションアドプションを考慮するように更新可能である。例えば、電子装置と関連付けられたプリ・インストールアプリケーションのうちのいくつか、または全てがアドプションされているため、新しいエントリが一意性サーバ211の一意性テーブルに追加される。いくつかの例において、配信センター210は、プリ・インストールアプリケーションがユーザ・アカウントに関連付けられた後でプリ・インストールアプリケーションの更新をコンピュータ装置260に送信する。他の例において、配信センター210は、コンピュータ装置270が元々プリ・インストールアプリケーションで構成されていない場合でもコンピュータ装置270等のユーザ・アカウントに関連付けられた他の装置にプリ・インストールアプリケーションを送信する。アプリケーションアドプションに対する同様の要求を通して、アプリケーション271に格納されたコンピュータ装置270のプリ・インストールアプリケーション及びアプリケーション281に格納された携帯装置280のプリ・インストールアプリケーションは、ユーザ・アカウント291と関連付けられ、最終的にコンピュータ装置260、コンピュータ装置270及び/または携帯装置280に配信される。
【0029】
図3は、例示的なクライアント−サーバシステムを示す。クライアント−サーバシステム300は、クライアント装置350及びサーバ360を備える。サーバ360は、クライアント装置350からの要求に応答するように構成され、図2のサーバ側240の1つ以上の要素を含む。クライアント装置350は、ページ要求をサーバ360に提供することでアプリケーション(プリ・インストール、または別の方法で取得された)をユーザ・アカウントに関連付ける。クライアント装置350は、プリ・インストールアプリケーションの場合と同じように、同一のページ要求、または同様のページ要求をサーバ360に提供することで他のアプリケーションをユーザ・アカウントと更に関連付ける。
【0030】
1種類のページ要求はページ更新要求301である。ページ更新要求301はサーバ360に送信される要求で、利用可能なアプリケーションの更新を求めるクエリを実行する。ページ更新要求301に応答して、サーバ360は、クライアント装置350に格納されたアプリケーションが利用可能な更新を有するようになったことをユーザに報知するように構成されたハイパテキストマークアップ言語(「HTML」)ページ303を返送する。いくつかの例において、サーバ360はメタデータをクライアント装置350に返送し、入れ替わり、クライアント装置350は、ユーザに提示するためのHTMLページを生成する。ページ更新要求301は、クライアント装置350に格納されているアプリケーション毎にデジタルレシートを含む。このレシートは、当該アプリケーションに関連し、そのソフトウェアの購入または所有権を記載するメタデータを含むものである。1つの種類のレシートとして、購入されたアプリケーション、またはアドプションされたアプリケーションと関連付けられる実際のレシートである。実際のレシートは、アプリケーションの説明、アプリケーションのバージョン番号、アプリケーションが購入された際のアプリケーションの購入者に関する情報及びアプリケーションが最初にインストールされた装置に関する情報等を含む。換言すると、実際のレシートとは、購入者に及び/またはアプリケーションが購入された電子装置に一意的な購入の証明である。別の種類のレシートはスタブ・レシートである。スタブ・レシートは、実際のレシートに情報の部分集合を含み、アプリケーションがユーザ・アカウントによりアドプションされていない場合はアプリケーションの一部である。一例において、スタブ・レシートは、一意的に他のコピーからこのアプリケーションのコピーを識別する。これにより、サーバは、この特定のアプリケーションのコピー(ユーザに贈与されるか、或いはユーザにより別の方法で取得される)がユーザによりアドプション可能であるかを判定できる。別の例において、スタブ・レシートは、プリ・インストールアプリケーションと関連付けられるレシートとして製造業者により生成される。製造業者によるアプリケーションのインストールを促進及び簡略化にするため、スタブ・レシートは、実際のレシートより少ない最小の情報量を含む。例えばスタブ・レシートは、サーバに対するアプリケーションを識別するアプリケーション識別子を含み、アプリケーションのバージョンを識別するバージョン番号を更に含む。アプリケーション識別子は、アプリケーションと関連付けられた名前である。スタブ・レシートは、アプリケーションが購入された時等の購入者に特有の情報と、アプリケーションの購入者、またはプリ・インストールアプリケーションがインストールされた装置に関する情報とを含まない。換言すると、スタブ・レシートは、ユーザ・アカウント、ユーザ・アカウント情報、或いはクライアント装置、コンピュータ装置、または他の装置に関する情報を含まない。アプリケーション識別子は、プリ・インストールアプリケーションと関連付けられた名前である。いくつかの例において、スタブ・レシートは、アプリケーションが装置にプリ・インストールアプリケーションされている時、または装置が供給の準備をしている時に製造業者により生成される。他の例において、スタブ・レシートは、サーバ360により生成され、その後プリ・インストールアプリケーションと関連付けられるクライアント装置350に送信される。サーバ360は、クライアント装置350による要求、またはサーバ360とクライアント装置350との間で定期的にスケジュールされた通信に応答してスタブ・レシートを生成する。プリ・インストールアプリケーションがアドプションされると、スタブ・レシートは実際のレシートで置換される。別の例において、スタブ・レシートは、アプリケーションが取得された場合にクライアント装置と関連付けられていない購入、贈与、または別の方法で取得されたアプリケーションと関連付けられるレシートとして生成される。このスタブ・レシートは、製造業者、アプリケーション配信者、またはオンラインストア等により生成される。場合によっては、スタブ・レシートは、配信のためにバッチ処理され、アプリケーションに割り当てられる。スタブ・レシートは、サーバ上に保存され、アドプション要求を認証するために使用される。前の例と同様に、スタブ・レシートは、アプリケーションアドプション処理中に実際のレシートで置換される。実際のレシートは、クライアント−サーバシステム300のクライアント装置350、サーバ360、または他の要素により生成される。
【0031】
この例において、ページ更新要求301は、プリ・インストールアプリケーション310と関連付けられたスタブ・レシートA311、プリ・インストールアプリケーション320と関連付けられたスタブ・レシートB321及びアプリケーション330と関連付けられた実際のレシート331を含む。アプリケーション330は、クライアント装置350の購入後にサーバ360から購入されたため、実際のレシートを含む。ページ更新要求301に応答して、サーバ360は、プリ・インストールアプリケーション310、プリ・インストールアプリケーション320、またはアプリケーション330がサーバ360からダウンロードされる利用可能な更新を有するかをユーザに報知するHTML303を生成する。アドプションされていない(すなわち、ユーザ・アカウントとリンクされていないか、或いは関連付けられていない)プリ・インストールアプリケーションと関連付けられた利用可能な更新は、プリ・インストールアプリケーションがユーザ・アカウントに対してアドプションされるまでダウンロードされない。利用可能な更新がクライアント装置350にダウンロード及びインストールされると、スタブ・レシートは、アプリケーションが購入された時(すなわち、利用可能な更新がインストールされた日付)、アプリケーションを購入したユーザ及びアプリケーションが最初にインストールされた電子装置等の他のメタデータを含む実際のレシートで置換される。
【0032】
別の種類のページ要求はページ購入要求302である。ページ購入要求302は、サーバ360に送信され、クライアント装置350のユーザにより購入されているアプリケーションのリストを要求する。要求に応答して、サーバ360は、クライアント装置350のユーザにより購入されているアプリケーション及び必要に応じてクライアント装置350にインストールされているアプリケーションをユーザに報知するように構成されたHTMLページ303を返送する。クライアント装置350に格納されない購入されたアプリケーションは、ダウンロード及びインストールされる。HTMLページ303は、アドプション(すなわち、ユーザ・アカウントとリンクすること、または関連付けること)可能なアプリケーションを更に含む。ユーザ・アカウントに関連付けられていないクライアント装置上のアプリケーションは、ページ更新要求301、またはページ購入要求302を介してアドプションのために選択される。未アドプションのアプリケーションは、要求におけるレシート、または他の形態の資格証明を送信し、アプリケーション、または所望のアプリケーションをクライアント装置にインストールする。
【0033】
ページ購入要求302はマニフェスト340を含む。マニフェスト340は、プリ・インストールアプリケーション、または別の方法で取得されたアプリケーションと関連付けられた情報を格納するように構成される。この情報は、アドプション可能なアプリケーションをユーザに報知するためにサーバ360により使用される。マニフェスト340は、クライアント装置350にアプリケーションのバージョン番号を格納するように構成されたリスト、テーブル、または他のデータ構造を含む。アプリケーションのバージョン番号は、アプリケーションと関連付けられたスタブ・レシート、または他のメタデータにおいて見つけられる。一例において、マニフェスト340は、クライアント装置350が起動して初めて生成される。例えばマニフェストは、後でマニフェストを生成するために使用されるスタブ・レシートに対してコンピュータを探索するためにクライアント装置上でスポットライト(すなわち、探索)機能を利用することにより、クライアント装置の第1のブート中に生成される。以下において説明するように、マニフェストは、アプリケーションをユーザ・アカウントとリンクする間、または電子装置の回復モード中にアクセスされる設定サーバに格納される。
【0034】
この例において、クライアント装置350は、後でマニフェスト340を生成するために使用されるスタブ・レシート311及びスタブ・レシート321を配置するようにクエリされる。クライアント装置350の再フォーマット、または回復中、プリ・インストールアプリケーション及び別の方法で取得されたアプリケーションは、共にクライアント装置350から削除される。ユーザ・アカウントとリンクされているアプリケーションは、クライアント装置350に再ダウンロードされる。しかし、ユーザ・アカウントとリンクされていないプリ・インストールアプリケーションは、完全に失われる危険性がある。以下において更に詳細に説明するように、マニフェスト340は、未アドプションのアプリケーションの損失を防止する機構として機能する。アドプション可能なアプリケーションは、プリ・インストールアプリケーションがユーザ・アカウントとリンクされるか、或いは関連付けられるまでダウンロードされない。利用可能な更新がクライアント装置350にダウンロード及びインストールされると、マニフェスト340は、現在アドプションされているアプリケーションと関連付けられたスタブ・レシートを除去するように編集される。また、インストールされたアプリケーションは実際のレシートを含む。いくつかの例において、HTMLページ303の処理及び検索を伴うページ更新要求301及びページ購入要求302の生成は、クライアント装置350にインストールされたアプリケーション管理プログラム(不図示)により管理され、処理される。アプリケーション管理プログラムは、製造業者により自社開発され、特に製造業者に属するサーバと通信するように構成される。
【0035】
クライアント−サーバシステム300は、クライアント装置350により取得されるが、ユーザ・アカウントに関連付けられない(例えば、贈与、購入されるがユーザ・アカウントにリンクされないか、或いは他の手段を介してクライアント装置に配信される)アプリケーションを更にアドプションする。一例として、取得されたアプリケーションは、ページ更新要求、ページ購入要求、または他のページ要求を介してユーザ・アカウントとリンクされる。要求は、スタブ・レシート、或いはスタブ・レシートと関連付けられたメタデータ、またはスタブ・レシートから導出されたメタデータを含む。別の例として、未アドプションのアプリケーション(すなわち、まだユーザ・アカウントとリンクされていないアプリケーション)がクライアント装置350により取得される場合、マニフェスト340は更新される。
【0036】
図4は、ページ更新要求を処理する例示的な方法を示す。クライアント及びサーバにより実行された動作を示す方法400は、ページ更新要求中にクライアントとサーバとの通信を管理するように構成される。サーバにより実行された動作は、配信センター上に格納された配信プログラム、またはサーバ側に配置された他の構成要素により実行され、クライアントにより実行された動作は、クライアントの電子装置上に格納されたアプリケーション管理プログラムにより実行される。方法400は、クライアント装置により供給されたグラフィックスユーザインタフェースにおいてユーザが更新タブ・リンクを選択することから開始する。例示的な更新タブ・リンクは、図5のリンク451である。クライアントは、ページ更新に対するユーザ要求を受信すると(401)、クライアント装置にインストールされたアプリケーションと関連付けられたレシート、または他の形態の資格証明に対してクライアント装置をクエリ、或いは探索する(403)。他の例において、クエリは、ユーザ対話なしで自動的に開始する。例えばサーバは、所定の時間間隔、または時点でクライアントと通信することでクエリを開始する。探索は、クライアント装置のオペレーティングシステム、或いはクライアント装置上に格納されたアプリケーション、またはルーチンと関連付けられた機能性を使用して実行される。見つけられるレシート、またはレシートのコピーは、サーバに送信される(405)。レシートは、例えばイーサネット、インターネット及びローカルエリアネットワーク等のあらゆる通信ネットワークを介して転送される。サーバは、レシートを受信し、レシートと関連付けられたアプリケーションが更新を有するかを判定する(407)ようにレシートを処理する。これは、図2のアプリケーション・データベース220等のアプリケーション・データベースにアクセスし、レシートのバージョン番号をアプリケーション・データベースに格納されたアプリケーションのバージョン番号と比較することを含む。これは、クライアント装置にインストールされたアプリケーションがサーバにより配信されるように構成されることを判定することにより、アプリケーションがアドプションの対象となること検証することを更に含む。いくつかの実施形態において、サーバは、アプリケーションがこの時点で以前にアドプションされていないこと更に検証する。これは、インストールされたアプリケーションのコピーを一意的に識別する一意的識別子を検索する(サーバ、またはクライアントから)ステップ及び一意的識別子がいずれのユーザ・アカウントとも関連付けられていないこと検証するステップを含む。更新を含むアプリケーションのリストは、HTMLページを生成する(408)ために、或いはデスクトップアプリケーション、またはスマートフォンアプリケーション等の他の何らかのユーザインタフェースを操作するために使用される。HTMLページは、利用可能な更新を含むアプリケーションに関する情報を含む。この情報は、アプリケーションの元の購入日、アプリケーションの記述及び更新されたアプリケーションにおける変更、または修正の記述を含む。HTMLは、1つ以上のアプリケーションが更新を有するか、或いはアドプション可能であることをクライアントに通知するようにクライアントに送出される通知の一例にすぎない。その後サーバは、HTMLページをクライアントに送信する(409)。いくつかの例において、サーバは、クライアントがレシートを送信した同一のチャネルを介してHTMLページを送信する。サーバは、HTMLページをクライアントにプリパッケージ及び送信するのではなく、ローカルでインストールされたクライアントアプリケーションを更新するのに十分な情報をクライアントに送信する。
【0037】
図5は、オンラインストア、またはオンライン市場においてアドプションされているか、或いはユーザのアカウントと関連付けられているプリ・インストールアプリケーションに対するページ更新要求と関連付けられたHTMLページの一例を示す。HTMLページ450は、ページ更新を要求するためにユーザにより選択される更新(Updates)リンク451を含む。更新リンク451は、「特集」、「トップチャート」、「カテゴリ」及び「購入」等の他のリンクと共にメニューバー上に配置され、ユーザがアプリケーション管理プログラムの種々の機能にアクセスするための便利で迅速な方法を提供する。いくつかの例において、更新リンク451を示すアイコンは、利用可能な更新を有するクライアント装置に格納されたアプリケーションの数を規定する数を含む。アイコンの数は、ユーザがサーバとクライアント装置との定期的な通信を通して更新タブ・リンク451を選択する前に生成される。
【0038】
例えばクライアント装置は、定期的にサーバと通信し、利用可能な更新を有する格納されたアプリケーションの最新のバージョン番号を検索する。この例において、更新リンク451が選択されており、利用可能な更新を含む1つのアプリケーションは、HTMLページ450内に提示される。1つのアプリケーションは、アプリケーションを記述するアプリケーション記述457を提示される。アプリケーション記述457は、アプリケーションの名前、アプリケーションの作成者、アプリケーションのバージョン番号、アプリケーションのリリース日、またはアプリケーションと関連付けられた他の情報を含む。アプリケーション記述457は、アイデンティティをアプリケーションに提供するアイコン455及びこのアプリケーションの更新バージョンにおいて実現された変更の概要459を更に含む。これによりユーザに情報を提供するため、ユーザは、十分に情報を得た上で更新したいかの判断を行うことができる。HTMLページ450は、ユーザがアプリケーション更新を受信したいかを選択できる選択可能なリンク461を更に含む。利用可能な更新の数は表題453に表示される。表題453は、ユーザが利用可能な更新の数を迅速に判定できる別の便利な場所を提供するように構成される。いくつかの例において、HTMLページ450は、利用可能な更新を有する全てのアプリケーションを更新する表題453に隣接する選択可能なリンクを更に含む。
【0039】
図4に戻ると、クライアントは、送信されたHTMLを受信し、HTMLページをユーザに提示する(411)。図5で説明したように、HTMLページは、利用可能な更新を含むアプリケーション、アプリケーションの記述及びアプリケーションの更新を許可するようにユーザにより選択可能な1つ以上のリンクを一覧表示するグラフィカルユーザインタフェースを提示する。クライアントは、ユーザ認証を受信し、アプリケーションを更新する(413)。ユーザ認証が受信されている場合、クライアントは、アプリケーションが更新される前にアドプションを必要とするかを判定する(415)。これは、レシートがスタブ・レシートであるかを判定するためにクライアントにインストールされたアプリケーションのレシートをチェックすることを含む。レシートがスタブ・レシートである場合、スタブ・レシートと関連付けられたアプリケーションは、潜在的にまだユーザ・アカウントに対してアドプションされていないプリ・インストールアプリケーションである。従って、ユーザ認証が必要であり、クライアントは、ユーザ・アカウントに対してアプリケーションをアドプションするか、または関連付けるためにユーザ認証を要求する(417)ユーザにHTMLページを提示する。ユーザ認証は、通信ネットワークを介して個人情報を送信することを含む。プライバシーの理由から、HTMLページは、認証処理中に個人情報が送出されることをユーザに報知し、通信ネットワークを介してこの個人情報を送信するための許可を要求する。
【0040】
図6は、アプリケーションをアドプションするためにユーザ認証を要求するHTMLページの一例を示すもので、このアプリケーションは、コンピュータ装置の購入と共に一括して販売され、及び/またはプリ・インストールされていたかも知れないものである。HTMLページ470は、利用可能な更新を含む4つのアプリケーションをユーザに提示するページ更新である。従って、更新(Updates)リンク471のアイコンは数「4」を含む。この例において、ユーザは、「全て更新」(UPDATE ALL)リンク475を介して全てのアプリケーションを更新することを選択した。しかし、他の例において、ユーザは、更新リンク476、477、478、または479のうちの1つを選択することで単一のアプリケーションを更新することを更に選択することができる。利用可能な更新を含むアプリケーションは、プリ・インストールアプリケーション472及び購入したアプリケーション473を含む。いくつかの例において、この段階においてプリ・インストールアプリケーション及び購入したアプリケーションの提示に差はない。しかし、ユーザがプリ・インストールされたアプリケーション、またはユーザ・アカウントとリンクされていないアプリケーションを更新することを選択すると、HTMLページ470は、プロンプト480をユーザに提示することができる。図7において、プロンプト480を更に詳細に説明する。
【0041】
図7は、アプリケーションをアドプションするためにユーザ認証を要求するHTMLページの別の例を示す。認証プロンプトとしても既知であるプロンプト480は、コンピュータにプリ・インストールされておらず且つ場合によってはユーザ・アカウントに関連付けられていないか、或いはユーザ・アカウントに関連付けられていない取得されただけのアプリケーションを更新することをユーザが選択すると、ユーザに提示される。この例において、プロンプト480は、アイコン481、ログイン482、パスワード483、パスワード支援484、記述485、ヘルプリンク486、アカウント作成487、キャンセル488及びサインイン489を含む。記述485は、ユーザがアプリケーションを更新したい場合には、この電子装置上にプリ・インストール(すなわち、一括販売(バンドル))されたアプリケーションがユーザ・アカウントに関連付けられることを報知するテキスト情報を提供する。この記述485は、アプリケーションをアドプションするために、電子装置と関連付けられた一意的ハードウェア識別子がサーバに送出され、アプリケーションアドプションが許可されるべきかを判定することをユーザに更に報知する。アイコン481は、アプリケーション管理プログラムのアプリケーション更新機能をブランド化するために使用される。ログイン482及びパスワード483は、ユーザがプリ・インストールアプリケーションを関連付けたいユーザ・アカウントを指定する。パスワード支援484は、パスワードに支援を必要とするユーザにより選択される。所望のユーザ・アカウント及び正しいパスワードが入力されると、ユーザは、サインイン489を選択することでアドプション処理を開始する。ユーザは、ユーザ・アカウントを有さないか、或いはプリ・インストールアプリケーションを新しいアカウントと関連付けたい場合、アカウント作成487を選択する。ユーザは、アプリケーションをキャンセルし、更新したくない場合、キャンセル488を選択する。ユーザは、上述のあらゆる要素に関するより詳細な記述を望む場合、ヘルプリンク486を選択する。電子装置にプリ・インストールされていないが、電子装置により別に取得されるアプリケーションを関連付けるためにHTMLページがユーザ認証を要求している他の例において、記述485は、適切なメッセージをユーザに搬送するように変更される。例えば記述485は、「今後の更新を受信するため、アプリケーション「X」、「Y」及び「Z」がこのapple IDに割り当てられます。コンピュータに格納された一意的識別子は、資格を検証するためにAppleに送出されなければなりません」と記載する。
【0042】
図4に戻ると、クライアントは、ユーザ認証を受信し、アプリケーションをアドプションする(419)。このユーザ認証は、図7で説明したようなクライアントにより提示されたプロンプトにユーザ・アカウント及びパスワードを入力するユーザにより受信できる。クライアントは、ユーザ認証を受信すると、アプリケーションのアドプションに進む(421)。アプリケーションをユーザ・アカウントに対してアドプションする例示的な処理を図12において以下に説明する。いくつかの例において、全てのプリ・インストールアプリケーションは、同時にユーザ・アカウントに関連付けられなければならない。従って、ユーザは、ある電子装置と関連付けられた1つのプリ・インストールアプリケーションを1つのユーザ・アカウントと選択的にリンクすることはできず、その電子装置と関連付けられた別のプリ・インストールアプリケーションを別のユーザ・アカウントと選択的にリンクできない。プリ・インストールアプリケーションがアドプションされているサーバを通知するのに電子装置と関連付けられた一意的ハードウェア識別子で十分であるため、電子装置上で全てのプリ・インストールアプリケーションを同時にアドプションすることにより、アドプション処理を管理する計算オーバヘッドを簡略化する。他の例において、電子装置上のプリ・インストールアプリケーションは、選択的に多数のアカウントと関連付けられる。従って、第1のプリ・インストールアプリケーションは第1の電子装置と関連付けられ、第2のプリ・インストールアプリケーションは第2の電子装置と関連付けられる。しかし、サーバ上でプリ・インストールアプリケーションを管理するには、電子装置の一意的ハードウェア識別子及びアドプションされているプリ・インストールアプリケーションを格納する必要がある。これらの例は、電子装置の購入とは別に取得されるアプリケーションにも適用可能である。例えば、電子装置にインストール及び贈与されたアプリケーションが大量の場合には、個々に、またはグループとしてユーザ・アカウントに関連付けられる。
【0043】
図8は、ページ購入要求を処理する例示的な方法を示す。方法500は、クライアント及びサーバにより実行される動作を示すものであり、この方法500は、ページ購入要求中にクライアントとサーバとの通信を管理するように構成される。サーバにより実行される動作は、配信センター上に格納された配信プログラム、またはサーバ側に配置された他の構成要素により実行される一方、クライアントにより実行される動作は、クライアント側の電子装置上に格納されたアプリケーション管理プログラムにより実行される。いくつかの例において、配信センター上に格納された配信プログラム及び電子装置上に格納されたアプリケーション管理プログラムは、ページ更新要求中に図4の方法400を更に実行するように構成される。方法500は、クライアント装置により供給されたグラフィックスユーザインタフェースにてユーザが購入タブ・リンクを選択することから開始する。例示的な購入タブ・リンクは、図9のリンク551である。クライアントは、ページ購入に対するユーザ要求を受信すると(501)、アプリケーション情報に対して探索、またはクエリを実行する。この例示的な方法において、アプリケーション情報は、マニフェスト及び/またはレシートを含む(503)。他の例において、アプリケーション情報は、ユーザ・アカウントに関連付けられていないアプリケーション、またはソフトウェアパッケージを含む。ユーザ・アカウントは、ソフトウェアパッケージの所有権を有する。所有権は、デジタルレシート等の資格証明である。いくつかの例において、マニフェストは、図3のマニフェスト340と同様であるか、或いはほぼ同様である。探索、またはクエリは、クライアント上で使用可能な1つ以上のプログラム、または機能により実行されtでもよい。マニフェスト、レシート(実際のとスタブのレシート)、並びにユーザ・アカウント情報等(例えば、まだアドプションされていないアプリケーションに対する資格証明、または所有権)を含むアプリケーション情報は、いくつかの例において、ソフトウェア・アドプション要求としてサーバに送信される(505)。アプリケーション情報は、インストールされているアプリケーション、インストール可能なアプリケーション及びアドプションされるアプリケーションをユーザに報知するページ購入を生成するためにサーバに送信される(505)。送信されるアプリケーション情報は、ユーザがクライアント上にサインインしているかに依存する。例えばユーザ・アカウント情報は、アクセス可能であり、ユーザがクライアント上にサインインされる場合にアプリケーション情報の一部として送信される。上述したように、ユーザ・アカウント情報は、ユーザ・アカウントに関連付けられたアプリケーションに関する情報を含む。同様に、レシートは、クライアントが実行している電子装置と関連付けられたアプリケーションに関する情報を含む。マニフェストは、電子装置に元々プリ・インストールされていたアプリケーションの情報、或いはユーザが所有権を有するがユーザ装置にインストールされていないか、またはユーザ・アカウントに関連付けられていないアプリケーションの情報を含む。他の種類のアプリケーション情報がページ購入を生成するためにサーバに更に送信されるため、これらは、例示的な種類のアプリケーション情報にすぎない。
【0044】
サーバは、送信されたアプリケーション情報(すなわち、マニフェスト、レシート、ユーザ・アカウント及び他のユーザ・アカウント情報)を受信し、受信した情報に基づいてアプリケーションの1つ以上のリストを作成する(507)。アプリケーションリスト及びアプリケーションリストを作成するために使用された処理は、受信した情報に依存して変動する。第1のアプリケーションリストは、クライアントの電子装置にインストールされるアプリケーションを含む。第2のアプリケーションリストは、ユーザ・アカウントに関連付けられるアプリケーションを含み、クライアントの電子装置にインストールされる。第3のアプリケーションリストは、場合によってはユーザ・アカウントとリンクされるアプリケーションを含む。第3のリストのアプリケーションは、クライアントの電子装置にプリ・インストールされたアプリケーション、並びに/或いはクライアントが所有権を有するが、アドプション、またはインストールしていないアプリケーションを含む。また、他のアプリケーションリストは、ユーザ・アカウントに関連付けられていない購入されるか、または別の方法で取得されるなどして生成されたアプリケーションである。サーバが受信したアプリケーション情報に依存して、上述のアプリケーションリストのうちの1つ以上が作成される。いくつかの例において、アプリケーションリストの作成は、図2のアプリケーション・データベース220等のアプリケーション・データベースにアクセスすることを含む。サーバは、作成されたアプリケーションリストに基づいてHTMLページを生成する(508)。HTMLページの生成は、アプリケーション・データベースにアクセスし、アプリケーションリストのアプリケーションと関連付けられたメタデータを受信することを含む。例えばメタデータは、アプリケーションの名前、アプリケーションの記述、アプリケーションのバージョン番号、アプリケーションの購入日及びアプリケーションと関連付けられたイメージ等を含む。HTMLページが生成されると、サーバは、HTMLページをクライアントに送信する(509)。クライアントは、次にHTMLページをユーザに提示する(511)。ユーザがクライアント上にサインインしているかに依存して、異なる情報をユーザに提示する。
【0045】
図9は、ユーザがサインインしていない場合にページ購入要求と関連付けられたHTMLページの一例を示す。この例において、HTMLページ550は、アドプション可能なアプリケーションのリスト557をユーザに提示する。アドプション可能な3つのアプリケーションのうち、アプリケーション「iMovie」及び「GarageBand」は、それぞれ文章558及び559により示されるように利用可能な更新(Update Available)を有する。HTMLページ550は購入リンク551を含む。いくつかの例において、購入リンク551は、図5の更新リンク451と同様に、またはほぼ同様に機能する。HTMLページ550は、アドプション可能なアプリケーションの数をユーザに報知するヘッドライン553を更に含む。記述555は、ユーザがアプリケーションをアドプションしたいか否かを判定するのを支援することを期待してアドプション処理の説明をユーザに提供する。HTMLページ550は、ユーザ・アカウントに関連付けられる購入(purchases)に関する情報を受信するためにユーザ・アカウントにサインインしなければならないことをユーザに報知する命令552を更に含む。この例において、HTMLページ550は、ユーザにより選択される場合にアドプション処理を開始する1つの承諾(ACCEP)リンク554を含む。他の例において、HTMLページ550がアドプション可能なアプリケーション毎に承諾リンクを含むため、ユーザは、アドプション可能な単一のアプリケーション、アドプション可能な複数のアプリケーション、またはアドプション可能な全てのアプリケーションを承諾することを選択できる。ユーザは、タッチスクリーン、マウスクリック、キーボード、または他のユーザ入力装置を介して承諾リンク554を選択する。
【0046】
図10は、ユーザがサインインしている場合にページ購入要求と関連付けられたHTMLページの別の例を示す。HTMLページ560は、2つのアプリケーションリストをユーザに提示する。この例において、アプリケーションリスト562の提示はアドプション可能なアプリケーションを含み、アプリケーションリスト564の提示は以前に購入されているアプリケーションを含む。2つのアプリケーションリストは、HTMLページ560の独立した別個の部分において提示される。アプリケーションリスト564の提示は、アプリケーションの名前、アプリケーションと関連付けられたイメージ、ソフトウェアメーカ、購入日及び状況566等の以前に購入されたアプリケーションと関連付けられたメタデータを含む。状況566は、購入されたアプリケーションの現在の状態を表示するように構成される。例えば、アプリケーションが現在クライアントの電子装置にインストールされている場合、状況566は「インストール済状態」である。状況566は、この状態の場合に文章「インストール済」を表示するように構成される。この例において、購入された4つのアプリケーションは、全てクライアントの電子装置にインストールされる。別の例として、アプリケーションが購入されるが、クライアントの電子装置にインストールされない場合、状況566は「インストール状態」である。例えばアプリケーションは、この装置にダウンロードされていないか、或いは選択的に装置から削除されている。状況566は、この状態の場合に文章「インストール」を表示するように構成される。更に状況566は、「インストール状態」の場合にユーザが選択可能なリンクを含む。ユーザが選択可能なリンクを選択する結果、アプリケーションは、電子装置にダウンロード及びインストールされる。
【0047】
図8に戻ると、クライアントは、アプリケーションをアドプションする要求としてユーザ入力を受信する(513)。いくつかの例において、ユーザ入力は、図9の承諾リンク554を選択することである。クライアントは、アプリケーションをユーザ・アカウントにリンクするためにユーザ認証を要求する(515)。アプリケーションをユーザ・アカウントにリンクするためにユーザ認証を要求する認証プロンプトを含むHTMLページの一例を図11に示す。
【0048】
図11は、認証プロンプトを含むページ購入要求と関連付けられたHTMLページの別の例を示す。ユーザがプリ・インストールアプリケーションのアドプションを承諾することを選択する場合、HTMLページ570は認証プロンプト575を含む。認証プロンプト575は、サーバから送信されたHTMLページの一部として含まれ、ユーザがプリ・インストールアプリケーションのアドプションを承諾することを選択した後でユーザに提示される。いくつかの例において、認証プロンプト575は、図7の認証プロンプト480と同一であるか、或いはほぼ同様である。
【0049】
図8に戻ると、クライアントは、ユーザ認証を受信し、アプリケーションをユーザ・アカウントにリンクする。ユーザ・アカウントは、ユーザ認証中に入力されるユーザ・アカウントである。例えばユーザは、アプリケーションに関連付けられるユーザ・アカウントのユーザ名及びパスワードを入力する。クライアントは、ユーザ認証を受信した後、アプリケーションのアドプションに進む(519)。アプリケーションをユーザ・アカウントに対してアドプションする例示的な処理を図12において以下に説明する。いくつかの例において、全てのプリ・インストールアプリケーションは、同時にユーザ・アカウントに関連付けられなければならない。従って、ユーザは、電子装置と関連付けられた1つのプリ・インストールアプリケーションを1つのユーザ・アカウントと選択的にリンクできず、電子装置と関連付けられた別のプリ・インストールアプリケーションを別のユーザ・アカウントと選択的にリンクできない。プリ・インストールアプリケーションがアドプションされていることをサーバを通知するには電子装置と関連付けられた一意的ハードウェア識別子で十分であるため、電子装置上で全てのプリ・インストールアプリケーションを同時にアドプションすることにより、アドプション処理を管理する際の計算オーバヘッドは簡略化される。電子装置上のプリ・インストールアプリケーションが選択的に多数のアカウントと関連付けられる他の例において、サーバ上でプリ・インストールアプリケーションを管理するには、電子装置の一意的ハードウェア識別子に加えてアドプションされているプリ・インストールアプリケーションを格納する必要がある。
【0050】
図12は、プリ・インストールアプリケーションをユーザ・アカウントにリンクする例示的な方法を示す。クライアントとサーバとの間で実行された通信プロトコルを示す方法600は、プリ・インストールアプリケーションをユーザ・アカウントにリンクする処理を管理するように構成される。サーバにより実行された動作は、配信センター上のプログラム、またはサーバ側の他の構成要素により実行され、クライアントにより実行された動作は、クライアントの電子装置上に格納されたアプリケーション管理プログラムにより実行される。アプリケーション管理プログラムは、クライアント上に格納されたソフトウェアアプリケーションをインストール、削除、維持、または別の方法で管理するように構成される。いくつかの例において、配信センター上に格納された配信プログラム及び電子装置上に格納されたアプリケーション管理プログラムは、図4の方法400及び/または図5の方法500を更に実行するように構成される。いくつかの例において、方法600は、図4の「アプリケーションアドプションに進む」(421)、または図8の「アプリケーションアドプションに進む」(519)の後で実行される。
【0051】
方法600は、一意的ハードウェア識別子を生成する(620)。一意的ハードウェア識別子は、正当なアプリケーションの所有権、または資格のデジタルレシートとして機能する。一意的ハードウェア識別子は、電子装置に特有の1つ以上の識別子を組み合わせることから生成される。例えば一意的ハードウェア識別子は、電子装置のハードウェアコンポーネントと関連付けられた1つ以上の識別子に基づく。ハードウェアコンポーネントの識別子が一意であるため、2つの一意的ハードウェア識別子は同一ではない。一例として、一意的ハードウェア識別子は、装置のロジックボードシリアル番号を装置のイーサネットハードウェアアドレスと組み合わせることで生成される。ロジックボードシリアル番号及びイーサネットハードウェアアドレスは、連結、ハッシング、符号化方式、または他のデータ操作アルゴリズムを使用して組み合わされる。一意的ハードウェア識別子は、プリ・インストールアプリケーションをユーザ・アカウントに関連付ける要求の一部としてクライアントからサーバに送信される(630)。プリ・インストールアプリケーションが選択的にアドプションされる他の例において、プリ・インストールアプリケーションと関連付けられたメタデータは、クライアントからサーバに更に送信される。メタデータが詳細をサーバに提供することにより、サーバは、ユーザがユーザ・アカウントにアドプションしようとしている選択されたプリ・インストールアプリケーションを識別できる。サーバは、一意的ハードウェア識別子及び必要に応じてメタデータを受信した後、プリ・インストールアプリケーションがユーザ・アカウントと既にリンクされているかを判定する(640)ことにより、資格証明を検証する。サーバは、一意的ハードウェア識別子に対する一意性テーブルをチェックすることでアプリケーションが既にリンクされているかを判定する。一意性テーブルがプリ・インストールアプリケーションを既にアドプションしている電子装置の一意的ハードウェア識別子を含むエントリを格納するため、テーブルにおいて見つけられない一意的ハードウェア識別子は、電子装置がまだいずれのプリ・インストールアプリケーションも関連付けていないことを示す。方法600により、プリ・インストールアプリケーションを選択的にアドプションできる場合、判定は、一意的ハードウェア識別子と関連付けられたエントリに対する一意性テーブルをクエリすることを含む。一意的ハードウェア識別子が見つけられる場合、判定は、プリ・インストールアプリケーションのメタデータでエントリを評価し、選択されたプリ・インストールアプリケーションが以前にアドプションされているかを判定する。
【0052】
一意性テーブルを探索(すなわち、クエリ)することからアプリケーションが以前にアドプションされていると判定される場合、エラーが再度クライアントに送信される(641)。クライアントは、エラーを受信し、アプリケーションが既にアドプションされているという警告をユーザに提示する(642)。図13は、アドプション警告の一例を示す。警告700は、プリ・インストールアプリケーションが異なるユーザ・アカウントに既に割り当てられているため、ユーザが自身のユーザ・アカウントに関連付けたい1つ以上のアプリケーションを割り当てられないことをユーザに通知する。一方、一意性テーブルを探索することからアプリケーションが以前にアドプションされてないと判定される場合、サーバは、サニティチェックを実行し、プリ・インストールアプリケーションが電子装置の元の設定、すなわちデフォルト設定の一部であるかを判定する(650)。換言すると、サーバは、プリ・インストールアプリケーションがインストールされた状態で電子装置が構成され、製造業者から供給されたかを判定する。このようなサニティチェックにより、ユーザがある電子装置に元々インストールされていたプリ・インストールアプリケーションを別の電子装置にコピーし、違法コピーをユーザ・アカウントに関連付けようとすることを阻止する。サーバは、一意的ハードウェア識別子を含む設定サーバをクエリし、一意的ハードウェア識別子と関連付けられた電子装置の元の設定を受信する。元の設定は、プリ・インストールアプリケーションのリストを判定するように調査される。このプリアプリケーションのリストは、ユーザがアドプションしようとしているアプリケーションと比較され、そのアプリケーションがアドプション可能であるかを判定する。他の例において、元の設定に対してクエリするために使用されたデータベースのコピーが配信センターに格納されることにより、一意的ハードウェア識別子を配信センターにおいて完全に評価できる。これにより、設定サーバへのネットワークトラフィックが減少する。
【0053】
ユーザがアドプションしたいアプリケーションが電子装置の元の設定の一部ではないと判定される場合、エラーメッセージがクライアントに送信される(651)。クライアントは、エラーメッセージを受信すると、電子装置がアドプションの対象とならないという警告をユーザに提示する(642)。図14は、アドプション警告の別の例を示す。電子装置(本明細書において「Mac」と名付けられた)がプリ・インストールアプリケーションをユーザ・アカウントに関連付ける資格がないため、警告750は、アプリケーションをユーザ・アカウントに割り当てられないことをユーザに通知する。他の例において、警告750は、電子装置が元々プリ・インストールアプリケーションで構成されていないことをユーザに報知するために提供された図、または他の文を含む。一方、ユーザがアドプションしたいアプリケーションが電子装置の元の設定の一部であると判定される場合、更なるサニティチェックがあれば実行される。サーバは、プリ・インストールアプリケーションがユーザ・アカウントにリンクされることを検証すると、サーバ上に格納された一意性テーブル及びユーザ・アカウントを更新し(660)、電子装置のプリ・インストールアプリケーションがアドプションされている(従って、別のユーザ・アカウントによりアドプションされない)ことを示す。上述したように、アドプションされているプリ・インストールアプリケーションは、次にユーザ・アカウントに関連付けられる電子装置のプリ・インストールアプリケーションであるため、アプリケーションと関連付けられた更新及び再ダウンロードは、ユーザ・アカウントに関連付けられた電子装置にダウンロードされる。サーバは、認可メッセージをクライアントに送信し、要求が認可されることをクライアントに報知する(670)。要求をリンクすることが評価され、真の要求であることが分かっているため、認可メッセージは、プリ・インストールアプリケーションが次にサーバ上のユーザ・アカウントに関連付けられることをクライアントに報知、または通知する。クライアントは、認可メッセージを受信し、プリ・インストールアプリケーションをクライアント上に格納されたユーザ・アカウントとリンクする(680)。いくつかの例において、クライアントは、ユーザ・アカウントとリンクされているプリ・インストールアプリケーションと関連付けられたメタデータをマニフェストから削除することにより、電子装置上に格納されたマニフェストを更に更新する。プリ・インストールアプリケーションと関連付けられたメタデータを削除することは、アプリケーションがアドプション可能であるかを判定するために実行されるチェックを最小限にすることでアドプション処理を簡略化する。クライアントは、要求を配信センター、またはサーバの他の構成要素に送信し、アプリケーションをダウンロードする(690)。
【0054】
方法600は、ポストインストールアプリケーション(すなわち、ユーザがインストールしたアプリケーション)をアドプションするために更に構成される。ポストインストールアプリケーションは、装置が製造業者から出荷された後、またはユーザにより購入された後にユーザの装置にインストールされている贈与、購入、償還、或いは別の方法で取得されたアプリケーションを含む。例えば方法600は、一意的ハードウェア識別子を生成するのではなく、アプリケーションと関連付けられた一意的識別子を生成する(620)。一意的識別子は、資格証明、またはアプリケーションの購入の証明を示すために使用されるアプリケーションと関連付けられたメタデータである。一意的識別子は、アプリケーションのメタデータに格納され、次にクライアント装置により検索される。、或いは、一意的識別子は、アプリケーションのメタデータに基づいて生成される。例えば一意的識別子は、アプリケーションの一意的レシート、または非一意的レシート、アプリケーションが取得された日付及び/または場所等のアプリケーションを受信することに関連したメタデータ、クライアント装置と関連付けられた一意的識別子、並びに/或いはアプリケーション、またはクライアント装置と関連付けられた他のメタデータから導出される。
【0055】
いくつかの例において、通信プロトコルは、一意的識別子がプリ・インストールアプリケーション(すなわち、製造業者がインストールしたアプリケーション)、またはポストインストールアプリケーション(すなわち、ユーザがインストールしたアプリケーション)と関連付けられるかに依存する。例えば、クライアントから受信した一意的識別子がポストインストールされたアプリケーションと関連付けられるために電子装置の元の設定の一部ではない場合、通信プロトコルは、アプリケーションが電子装置の元の設定の一部であると確認する(650)ことをスキップする。代わりに、サーバは、一意的識別子を正当な一意的識別子のデータベースと比較することにより、資格証明、またはアプリケーションの所有権を検証する。これにより、サーバは、アプリケーションの正当なコピーと不当なコピーとを区別及び判別できる。資格証明が検証されると、アプリケーションはユーザ・アカウントの一部としてアドプションされる。アプリケーションがプリ・インストール、またはポストインストールされるかを判定するため、サーバは、フラグ、または一意的識別子と関連付けられた他のメタデータを解析する。
【0056】
更に他の例において、通信プロトコルは、クライアントから受信した一意的識別子がクライアント電子装置と関連付けられたメタデータに基づくかに依存する。例えば、アプリケーションが既にリンクされているかを判定するためにサーバによりアクセスされたデータベース、またはテーブルは、一意的識別子に依存する。第1のデータベースは、クライアント電子装置と関連付けられた一意的識別子に対してサーバによりアクセス及び更新される。第1のデータベースは、電子装置のハードウェアに基づいてキー入力され、探索可能である。第2のデータベースは、クライアント装置と関連付けられない一意的識別子に対してサーバによりアクセス及び更新される。換言すると、これらの一意的識別子がアプリケーションと関連付けられた資格証明のみに基づくため、第2のデータベースを探索することは、資格証明、または資格証明の何らかの変形例に基づく。
【0057】
図15は、電子装置上の回復モードに対する例示的な処理を示す。一般に、回復モードにより、電子装置は、アプリケーション、またはオペレーティングシステムに対する内部の致命的エラーを解決できる。オペレーティングシステム全体を回復する極端な例において、この手法は、記憶装置を再フォーマットし、オペレーティングシステムを再インストールする。回復モードの特定の実現例に依存して、再インストールされているオペレーティングシステムは変動する。一例として、再インストールされたオペレーティングシステムは、元々電子装置にインストールされており、その後手動及び/または自動的に更新されるオペレーティングシステムである。別の例として、再インストールされたオペレーティングシステムは、元々インストールされていたオペレーティングシステム以来リリースされている1つ以上の更新を組み込む。更に他の例において、製造業者から利用可能な最新のオペレーティングシステムが再インストールされる。一般に回復モードは、プリ・インストールアプリケーションを再インストールせずにオペレーティングシステムのみを再インストールする。そのため、ユーザ・アカウントに関連付けられていないか、或いはリンクされていないプリ・インストールアプリケーションを損失する。処理800は、回復モード中に設定サーバからマニフェストを検索することでこの問題を解決する。
【0058】
処理800は、回復モードに入る(820)ことで開始する。回復モードに入ることは、製造業者から基本オペレーティングシステムをダウンロードすることをトリガする。基本オペレーティングシステムは、一意的ハードウェア生成する(830)ように構成される。一意的ハードウェア識別子は、上述の方法のうちの1つを使用して生成される。一意的ハードウェア識別子が生成されると、基本オペレーティングシステムは、一意的ハードウェア識別子を設定サーバに送信する(840)。受信した一意的ハードウェア識別子に基づいて、設定サーバは、電子装置にプリ・インストールされたアプリケーション及びこれらのアプリケーションのバージョン番号を含むマニフェストを返送する。マニフェストは、電子装置の所有者が所有権を有する他のアプリケーションを更に含む。いくつかの例において、通信サーバは、配信サーバと通信し、電子装置がアプリケーションを既にアドプションしたかを判定する。一意的ハードウェア識別子が配信センターの一意性テーブルにおいて見つけられる場合、電子装置のプリ・インストールアプリケーションのうちの1つ以上は既にアドプションされている。従って、通信サーバは、空のマニフェスト、または既にアドプションされている特定のプリ・インストールアプリケーションを含まないマニフェストを返送する。これにより、プリ・インストールアプリケーションが既にアドプションされている場合にアドプションのためにページ購入要求がプリ・インストールアプリケーションをユーザに提示することを最小限にする。配信センターが構成データベースのローカルコピーを格納する他の例において、一意的ハードウェア識別子は、設定サーバではなく配信センターに送信される。一意的ハードウェア識別子を使用することにより、配信センターは、プリ・インストールアプリケーション及びユーザ・アカウントと既に関連付けられているアプリケーションを判定する。
【0059】
設定サーバ(、または配信センター)は、電子装置に付いてくるオペレーティングシステムのバージョン番号及び電子装置のプリ・インストールアプリケーションに基づくマニフェストを返送する(850)。他の例において、マニフェストは、ユーザ・アカウントとリンクされていない電子装置のポストインストールアプリケーションを更に含む(850)。電子装置がユーザ・アカウントに関連付けられていないアプリケーションをインストールする場合、設定サーバ上に格納されたマニフェストは定期的に更新される。これは、ネットワーク障害、サーバ障害、またはこの時点でアプリケーションをユーザ・アカウントに関連付けないというユーザが選択したオプション等の種々の理由のために発生する。オペレーティングシステムのバージョン番号は、オペレーティングシステムサーバに送信される(860)。その結果、元のオペレーティングシステムを電子装置に送信する。電子装置は、元のオペレーティングシステムを受信し(870)、必要に応じて元のオペレーティングシステムをインストールする。次に、電子装置は、電子装置のプリ・インストールアプリケーションに基づいて元のオペレーティングシステム及びマニフェストの新しいコピーを含む。ユーザは、プリ・インストールアプリケーションをユーザ・アカウントに関連付けていない場合、上述したようにページ購入リンクを選択することでそれを実行する。
【0060】
本発明の範囲内の実施形態は、コンピュータが実行可能な命令、またはデータ構造を保持するか、或いはそれを格納した有形のコンピュータ可読記憶媒体及び/またはコンピュータ可読の非一時的記憶媒体を更に含む。そのようなコンピュータ可読の非一時的記憶媒体は、汎用コンピュータ、または上述したようにあらゆる専用プロセッサの機能設計を含む専用コンピュータによりアクセスされるあらゆる使用可能な媒体である。非限定例として、そのようなコンピュータ可読の非一時的記憶媒体は、RAM、ROM、EEPROM、CD−ROM、或いは他の光ディスク記憶装置、磁気ディスク記憶装置、または他の磁気記憶装置、或いはコンピュータが実行可能な命令、データ構造、またはプロセッサチップ設計の形態の所望のプログラムコード手段を保持、或いは格納するために使用される他のあらゆる媒体を含む。情報がネットワーク、または別の通信接続(ハードワイヤード、無線、またはそれらの組合せのいずれか)を介してコンピュータに転送、或いは提供される場合、コンピュータは、正式に接続をコンピュータ可読媒体として見なす。従って、そのようなあらゆる接続を正式にコンピュータ可読媒体と呼ぶ。上述の組合せは、コンピュータ可読媒体の範囲内にも含まれるべきである。
【0061】
例えば、コンピュータが実行可能な命令は、ある特定の機能、または機能のグループを汎用コンピュータ、専用コンピュータ、或いは専用処理装置に実行させる命令及びデータを含む。コンピュータが実行可能な命令は、スタンドアロン環境、またはネットワーク環境においてコンピュータにより実行されるプログラムモジュールを更に含む。一般にプログラムモジュールは、特定のタスクを実行するか、或いは特定の抽象データ型を実現する専用プロセッサの設計に固有のルーチン、プログラム、構成要素、データ構造、オブジェクト及び機能等を含む。コンピュータが実行可能な命令、関連したデータ構造及びプログラムモジュールは、本明細書において開示した方法のステップを実行するプログラムコード手段の例を示す。そのような実行可能な命令、または関連したデータ構造の特定のシーケンスは、そのようなステップにおいて説明した機能を実現する対応する動作の例を示す。
【0062】
本発明の他の実施形態がパーソナルコンピュータ、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースの購買者向けの電子機器、またはプログラム可能な購買者向けの電子機器、ネットワークPC、ミニコンピュータ及びメインフレームコンピュータ等を含む多くの種類のコンピュータシステム構成でネットワークコンピューティング環境において実施されることは、当業者により理解されるだろう。実施形態は、通信ネットワークを介してリンクされる(ハードワイヤードリンク、無線リンク、またはそれらの組合せのいずれかにより)ローカル処理装置及びリモート処理装置によりタスクが実行される分散コンピューティング環境において更に実施される。分散コンピューティング環境において、プログラムモジュールは、ローカルメモリ記憶装置及びリモートメモリ記憶装置の双方に配置される。
【0063】
上述した種々の実施形態は、例示するためだけに提供され、本発明の範囲を限定するものとして解釈されるべきではない。本明細書において例示し且つ説明した実施形態及びアプリケーションの例に従わずに、本発明の趣旨及び範囲から逸脱せずに、本明細書において説明した原理に対して行われる種々の変形及び変更は、当業者により容易に理解されるだろう。
【技術分野】
【0001】
本発明は、一般にデジタル製品の配信に関し、特にソフトウェアアプリケーションをオンラインストアのユーザ・アカウントにリンクする技術に関する。
【背景技術】
【0002】
電子装置の製造業者は、一般に、電子装置の購買者に、購入前から、電子装置を個性化し或いはカスタマイズするための、様々な使用可能オプションを提案する。例えば、コンピュータ等のパーソナルコンピュータ装置は、プロセッサ、メモリ、ハードドライブ、またはアクセサリを選択することでカスタマイズされる。また、製造業者は、種々のソフトウェアベンダーと連携して、コンピュータを受け取る前から、コンピュータと共に購入可能で且つプリ・インストール可能なソフトウェアアプリケーション、またはソフトウェアプログラムをオファー(「申し込み」)する。ソフトウェアアプリケーション、それらは、典型的には製造業者により作成され、或いは、サードパーティ製アプリケーションを含んでよいが、このソフトウェアアプリケーションの中には、手動で、または工場出荷時イメージの一部として、無償でコンピュータ装置にプリ・インストールされるものがある。従って、ハードウェアコンポーネント及びプリ・インストール・ソフトウェアは、購入した製品が購買者のニーズを満たすように、購買者により個人用に変更される。
【0003】
電子装置を受け取った後は、将来のいつかの時点で、そのプリ・インストール・ソフトウェアを再インストールしたい、または更新したい場合が生じるだろう。例えばソフトウェアプロバイダは、電子装置にプリ・インストールされたソフトウェアの更新バージョンをリリースしたかも知れない。これは、一般にソフトウェア更新として知られている。ソフトウェア更新データを取得するために、購買者は、ソフトウェアプロバイダの実際の店舗、またはオンラインストアを訪問し、ソフトウェアの更新バージョンを購入、或いは取得する。しかし、この処理は、時間がかかり、分かりにくいこともある。同様に、購入者は、電子装置の記憶装置を再フォーマットする場合、一般にソフトウェアを再インストールしなければならない。購入者は、この再インストール中、プリ・インストール・ソフトウェアを格納する種々のコンパクトディスク(CD)、または他のメディアを要求される。しかし、この購入者はCDを置き忘れているかも知れず、この場合には、再インストール手順は非常に煩雑になる。
【発明の概要】
【0004】
本発明の更なる特徴及び利点は後続する記述において説明され、或いは、その一部は、その記述から明らかとなり、或いは本明細書に開示された原理を実施することで確認できる。本発明の特徴及び利点は、特に添付の特許請求の範囲において指摘された手段及び組合せを利用して実現され且つ達成される。本発明のこれらの特徴及び他の特徴は、以下の説明及び添付の特許請求の範囲からより詳細に明らかとなるか、或いは本明細書において説明される原理を実施することで確認できる。
【0005】
本明細書には、アプリケーション(すなわち、ソフトウェアパッケージ)を、または、プリ・インストールアプリケーションを、または、別途購入(Purchase)されたアプリケーションなどを、ユーザ・アカウントに関連付けるためのシステム、方法及びコンピュータ可読の非一時的記憶媒体が開示される。ここで、前記ユーザ・アカウントは、オンラインストア上で関連付けられ、或いは、保存される。この処理を「縁組み」処理(以下、「縁組み」を「アドプション」(adoption)」と呼ぶ。アドプション処理は、アプリケーションの、ダウンロード、再ダウンロード、更新等のある特定の特典をそのユーザ・アカウントに与えるものである。他の例においては、アドプションとは、アドプションされたアプリケーションに対する他の特典(例えば、そのアドプションされたアプリケーションを贈与し或いは販売すること)を許すように、そのユーザ・アカウントを構成することをいう。1つの一般的な例として、ある新品コンピュータが、ある特定のプリ・インストール・ソフトウェアを含む、とする。ユーザは、その新品コンピュータ上で当該プリ・インストール・ソフトウェアを実行し、使用することができる。しかしながら、そのユーザが、更新、バックアップ、並びに/或いは他のソフトウェア関連のコンテンツ、またはサービスを受ける、且つ/或いはそれらを利用する資格を得るためには、そのプリ・インストール・ソフトウェアをアドプションすることにより、当該プリ・インストール・ソフトウェアが、オンライン電子ストア・アカウント等の特定のユーザ・アカウントに関連付けられる。これで、前記オンライン電子ストアは、更新、バックアップ、復元及びアプリケーション内購入等を処理することができる。しかし、別のユーザは、そのプリ・インストール・ソフトウェアを、このプリ・インストールソフトウエアを「アドプション」することなしに、このオンライン電子ストア・アカウントのユーザ・アカウント若しくはアクセス権を必要とする特定機能を除いた他の全てのフル機能付きで、当該プリ・インストール・ソフトウェアを使用することを選択するができる。あるユーザがプリ・インストール・ソフトウェアをアドプションすると、オンライン電子ストアは、当該プリ・インストール・ソフトウェアが別のユーザによるアドプションに対しては不適格となるように、そのアカウント、データベース及び/またはソフトウェア自体を変更する。別の一般的な例は、ユーザが既に購入し、贈与し、または別の方法で取得していたソフトウェアパッケージ、またはソフトウェアアプリケーションが、ユーザのコンピュータ装置上でインストールされる場合がある。このコンピュータ装置は、当該ソフトウェアパッケージ、またはソフトウェアアプリケーションのアドプションを求めるソフトウェア・アドプション要求をサーバに送信する。このソフトウェア・アドプション要求は、当該ユーザ・アカウントに関連付けられたソフトウェアパッケージの識別子または表示を含む。いくつかの例においては、資格証明が、ソフトウェアパッケージの信憑性に対する証明として、アドプション要求に更に含まれる。資格証明は、ソフトウェアパッケージを所有していることからのみ由来することができる値である。例えば、資格証明は、当該ソフトウェアパッケージのシリアル番号に関連付けられたものか、或いはそれから派生したものである。また、この資格証明は、当該ソフトウェアパッケージから派生した、或いは当該電子装置に関連付けられたメタデータから派生する値である。例えば、この電子装置に関連付けられたメタデータとは、電子装置に関連付けられたハードウェアから導き出し可能な値である。アプリケーションがアドプションされると、更新、バックアップ、並びに/或いは他のソフトウェア関連のコンテンツ、またはサービスは、当該ユーザに対して使用可能である。
【0006】
本方法を実施するように構成されたシステムは、ダウンロード可能なアプリケーションを提示し、アプリケーションのコンピュータ装置へのダウンロード要求を受信し、そのアプリケーションがプリ・インストールアプリケーションであると判定する。次にシステムは、そのアプリケーションをユーザ・アカウントとリンクするためにユーザ認証を要求するべく認証プロンプトを提示し、ユーザ認証を受信し、このユーザ認証の受信に応答して、一意的なハードウェア識別子を生成するか、或いは、当該コンピュータ装置に関連付けられた資格証明を検索する。本システムは、上記一意的ハードウェア識別子、または資格証明に基づいてそのアプリケーションがリンク可能であることを判定し、そのアドプション可能なアプリケーションがリンク可能である場合にアドプション可能なアプリケーションを上記ユーザ・アカウントとリンクする。本システムは、ダウンロード可能な当該アプリケーションの提示を、ページ更新要求を受信し、そのような要求を受信すると、当該アプリケーションと関連付けられたスタブ(半券)レシートを収集することにより、可能である。このスタブ・レシートは、アプリケーションと関連付けられたバージョン番号及び名前を含むものである。次にシステムは、そのバージョン番号及び名前に基づいて、当該アプリケーションの更新がサーバ上でダウンロード可能であると判定し、そのアプリケーションの名前を提示する。
【0007】
別の実施形態として、本システムは、ダウンロード可能なアプリケーションの提示を、ページ購入要求を受信し、当該コンピュータ装置に関連付けられたマニフェストを受信し、このマニフェストに基づいてプリ・インストールアプリケーションのリストを提示することにより、行うことができる。このマニフェストとは、サーバからダウンロード可能なプリ・インストールアプリケーションのリストを含むのであって、当該サーバとは、当該ダウンロード可能なプリ・インストールアプリケーションのリストが含むアプリケーションを有するサーバである。また、本システムは、アプリケーションがサーバで利用可能な更新がなされていることを、アプリケーション・データベースを探索し、当該コンピュータ装置上に格納されたアプリケーションのバージョン番号を上記アプリケーション・データベース上に格納されているアプリケーションのバージョン番号と比較することにより、利用可能な更新を判定する。バージョン番号の比較に基づいて、アプリケーションに対する更新がアプリケーション・データベースに存在するかを判定する。本システムは、アプリケーションがスタブ・レシートと関連付けられていると判定することにより、アプリケーションがプリ・インストールアプリケーションであると判定する。本システムは、アプリケーションがプリ・インストールアプリケーションであることを、コンピュータ装置と関連付けられたプリ・インストールアプリケーションのリストを含むマニフェストを受信し、アプリケーションがそのプリ・インストールアプリケーションのリスト内に含まれると判定することにより、判定する。本システムは、プリ・インストールアプリケーションがリンク可能であることを、一意的なハードウェア識別子、または購入証明をサーバに送信し、プリ・インストールアプリケーションが別のユーザ・アカウントとリンクされているかを判定することにより、そのプリ・インストールアプリケーションがリンク可能であると判定する。更に他の例において、システムは、上記プリ・インストール・ソフトウェアを上記ユーザ・アカウントとリンク付けすることを、そのプリ・インストール・ソフトウェアをユーザ・アカウントに関連付け、一意的なハードウェア識別子、または購入証明を含むように、一意性テーブルなるテーブルを更新することにより、前記プリ・インストール・ソフトウェアをユーザ・アカウントとリンクすることができる。ここで、一意性テーブルは、別のプリ・インストール・ソフトウェアを有する別の電子装置と関連付けられる別の一意的ハードウェア識別子、または購入の証明を含み、別のプリ・インストールアプリケーションは別のユーザ・アカウントとリンクされる。
【0008】
別の変形例において、システムは、ユーザ・アカウントに関連付けられたアプリケーションをユーザ・アカウントに関連付けられた1つ以上のコンピュータ装置に送信するように構成されたオンラインストアのユーザ・アカウントとプリ・インストール・ソフトウェアをリンクする要求を受信する。次に本システムは、コンピュータ装置と関連付けられた一意的ハードウェア識別子、または購入の証明を生成し、プリ・インストールアプリケーションがその一意的ハードウェア識別子、または購入の証明に基づいてリンク可能であると判定する。プリ・インストールアプリケーションがリンク可能である場合、システムは、プリ・インストールアプリケーションをユーザ・アカウントとリンクする。前記一意的ハードウェア識別子は、MACアドレス、UDID(universal device identifier)、ロジックボードシリアル番号、またはイーサネットハードウェアアドレス等の電子装置の1つ以上のハードウェアコンポーネントに基づく。他の例において、購入の証明が使用される。購入の証明は、電子装置のハードウェアコンポーネント、アプリケーションの贈与、購入、または取得と関連付けられたメタデータに基づくことができる。プリ・インストールアプリケーションがリンク可能であると判定することは、一意的ハードウェア識別子、または購入の証明をサーバに送信し、プリ・インストールアプリケーション、または購入の証明が別のユーザ・アカウントとリンクされているかを判定することを含む。本システムは、コンピュータ装置の元の設定がプリ・インストールアプリケーションを含むと判定することにより、プリ・インストールアプリケーションがリンク可能であると判定する。プリ・インストールアプリケーションをユーザ・アカウントとリンクすることは、プリ・インストールアプリケーションをユーザ・アカウントに関連付け、一意的ハードウェア識別子、または購入の証明を含むように一意性テーブルを更新することを含む。一意性テーブルは、別のユーザ・アカウントとリンクされている別のプリ・インストールアプリケーションを有する別の電子装置と関連付けられる別の一意的ハードウェア識別子、または購入の証明を含む。更に別の例において、プリ・インストールアプリケーションをユーザ・アカウントとリンクすることは、マニフェストからプリ・インストールアプリケーションと関連付けられたメタデータを削除することを含むのであり、ここで、マニフェストとは、もうユーザ・アカウントとリンクされているプリ・インストールアプリケーションを一覧表示するように構成される更に含む。
【図面の簡単な説明】
【0009】
本発明の上述の利点及び特徴、並びに他の利点及び特徴を取得する方法を説明するため、添付の図面に示される本発明の特定の実施形態を参照して、簡単に上述した原理のより詳細な記述を示す。これらの図面が本発明の例示的な実施形態のみを示すために本発明の範囲を限定するものとして考えられないことを理解して、本明細書における原理は、添付の図面を使用して更に具体的且つ詳細に記述され、説明される。
【図1】図1は、例示的なシステムの実施形態を示す図である。
【図2】図2は、例示的なアプリケーション配信システムを示す図である。
【図3】図3は、例示的なクライアント−サーバシステムを示す図である。
【図4】図4は、ページ更新要求を処理する例示的な方法を示す図である。
【図5】図5は、ページ更新要求と関連付けられたHTMLページの一例を示す図である。
【図6】図6は、プリ・インストールアプリケーションをアドプションするためにユーザ認証を要求するHTMLページの一例を示す図である。
【図7】図7は、プリ・インストールアプリケーションをアドプションするためにユーザ認証を要求するHTMLページの別の例を示す図である。
【図8】図8は、ページ購入要求を処理する例示的な方法を示す図である。
【図9】図9は、ユーザがサインインしていない場合にページ購入要求と関連付けられたHTMLページの一例を示す図である。
【図10】図10は、ユーザがサインインしている場合にページ購入要求と関連付けられたHTMLページの別の例を示す図である。
【図11】図11は、認証プロンプトを含むページ購入要求と関連付けられたHTMLページの別の例を示す図である。
【図12】図12は、プリ・インストールアプリケーションをユーザ・アカウントにリンクする例示的な方法を示す図である。
【図13】図13は、アドプション警告の一例を示す図である。
【図14】図14は、アドプション警告の別の例を示す図である。
【図15】図15は、電子装置上の回復モードに対する例示的な処理を示す図である。
【発明を実施するための形態】
【0010】
本発明の種々の実施形態を以下において詳細に説明する。特定の実現例を説明するが、これは例示するためだけに説明されることが理解されるべきである。本発明の趣旨の範囲から逸脱せずに他の構成要素及び構成が使用されてもよいことは、当業者により理解されるだろう。
【0011】
本発明は、電子装置上のプリ・インストール・ソフトウェアを配信センター、またはオンラインストアのユーザ・アカウントに関連付ける技術分野における必要性に向けられている。更に本発明は、プリ・インストール・ソフトウェアに加えて他の種類のソフトウェアをユーザ・アカウントに関連付ける必要性に対処するものである。例えば、購入したソフトウェア、贈与として受け取ったソフトウェア、ソフトウェア製造業者から無償で、または低料金で配信されたソフトウェア、或いは他の方法を使用して取得したソフトウェアを、オンラインストア、またはオンラインショップのユーザ・アカウントに関連付けることに関連する。この処理をオンラインストアにおけるユーザ・アカウントによるソフトウェアの「アドプション」と呼ぶ。ソフトウェアをオンラインストアのユーザ・アカウントに関連付けることにより、ソフトウェアの更新及び再インストールはオンラインストアからダウンロードされる。それにより、電子装置上でソフトウェアを管理するより簡単で便利な方法を提供する。また、ユーザ・アカウントに関連付けられた他のコンピュータ装置は、オンラインストアからソフトウェアの更新及び再インストールを更に受信する。図1〜図15の以下の説明は、プリ・インストールアプリケーション、ソフトウェアパッケージ及び他の手段を介して取得された(例えば、贈与、購入、或いは別の方法で配信、または取得された)アプリケーションに適用可能である。従って、本明細書において使用されるような「プリ・インストールアプリケーション」という用語は、贈与されたアプリケーション、購入されたアプリケーション、配信されたアプリケーション及び取得されたアプリケーション等と同義で使用される。換言すると、「プリ・インストールアプリケーション」は、ユーザが所有権を有するあらゆるアプリケーションである。同様に、「一意的ハードウェア識別子」とは、コンピュータ装置にインストールされたアプリケーションに資格証明、または所有権を提供するように構成されたあらゆる一意的識別子である。例えば、資格証明は、作成されるアプリケーションのコピー毎に一意的な値を有する。資格証明は、アプリケーションを償還ための償還コードでもある。他の例において、資格証明は、一意的値と非一意的値との組合せであり、例えば償還コード(一意でなくてもよい)をユーザ・アカウント(一意である)と関連付けられた一意的識別子と組み合わせる。概念を実施するために採用される基本的な汎用システム、または汎用コンピュータ装置の簡単に紹介するための説明を図1に示す。プリ・インストール・ソフトウェアをユーザ・アカウントに関連付ける方法を以下に更に詳細に説明する。以下において、種々の実施形態としていくつかの変形例を含む。次に、本発明の開示は図1に進む。
【0012】
図1を参照すると、例示的なシステム100は、処理ユニット(CPU、またはプロセッサ)120、並びに読み出し専用メモリ(ROM)140及びランダムアクセスメモリ(RAM)150等のシステムメモリ130を含む種々のシステム構成要素をプロセッサ120に結合するシステムバス110を含む汎用コンピュータ装置100を備える。システム100は、プロセッサ120と直接接続されるか、プロセッサ120に近接するか、或いはプロセッサ120の一部として組み込まれる高速メモリのキャッシュ122を含む。システム100は、プロセッサ120が高速アクセスするためにメモリ130及び/または記憶装置160からキャッシュ122にデータをコピーする。このように、キャッシュは、データを待つ間にプロセッサ120が遅延するのを回避するパフォーマンスブーストを提供する。これらのモジュール及び他のモジュールは、種々の動作を実行するようにプロセッサ120を制御するか、或いは制御するように構成される。他のシステムメモリ130が更に使用可能であってもよい。メモリ130は、種々の性能特性を含む種々のメモリを含む。本発明は、2つ以上のプロセッサ120を備えるコンピュータ装置100、或いはより適切な処理機能を提供するように共にネットワーク化されたコンピュータ装置のグループ、またはクラスタ上で動作することが理解される。プロセッサ120は、あらゆる汎用プロセッサ、並びに記憶装置160に格納され、プロセッサ120及びソフトウェア命令が実際のプロセッサ設計に組み込まれる専用プロセッサを制御するように構成されたモジュール1 162、モジュール2 164及びモジュール3 166等のハードウェアモジュール、またはソフトウェアモジュールを備える。プロセッサ120は、実質的に、多数のコア、またはプロセッサ、バス、メモリ制御器、キャッシュ等を含む完全自立型の演算システムである。マルチコアプロセッサは、対称でも非対称でもよい。
【0013】
システムバス110は、種々のバスアーキテクチャのうちのいずれかを使用するメモリバス、またはメモリ制御器、周辺バス及びローカルバスを含むいくつかの種類のバス構造のうちのいずれかである。ROM140等に格納された基本入出力(BIOS)は、起動中等にコンピュータ装置100内の要素間で情報の転送を支援する基本ルーチンを提供する。コンピュータ装置100は、例えばハードディスクドライブ、磁気ディスクドライブ、光ディスクドライブ、またはテープドライブ等の記憶装置160を更に備える。記憶装置160は、プロセッサ120を制御するソフトウェアモジュール162、164、166を備える。他のハードウェアモジュール、またはソフトウェアモジュールが考えられる。記憶装置160は、ドライブインタフェースによりシステムバス110に接続される。ドライブ及び関連付けられたコンピュータ可読記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール及びコンピュータ装置100に対する他のデータの不揮発性記憶装置を提供する。一態様において、特定の機能を実行するハードウェアモジュールは、機能を実行するために必要なハードウェアコンポーネント、例えばプロセッサ120、バス110及びディスプレイ170等と併せてコンピュータ可読の非一時的記憶媒体に格納されたソフトウェアコンポーネントを含む。基本的な構成要素は当業者に既知であり、装置の種類、例えば装置100が小型であるか、ハンドヘルドコンピュータ装置であるか、デスクトップコンピュータであるか、或いはコンピュータサーバであるかに依存して適切な変形例が考えられる。
【0014】
本明細書において説明した例示的な実施形態はハードディスク160を採用するが、コンピュータによりアクセス可能なデータを格納する他の種類のコンピュータ可読媒体、例えば磁気カセット、フラッシュメモリカード、デジタル汎用ディスク、カートリッジ、ランダムアクセスメモリ(RAM)150、読み出し専用メモリ(ROM)140、ケーブル、またはビットストリーム等を含む無線信号等が例示的な動作環境において更に使用されてもよいことは、当業者により理解されるべきである。コンピュータ可読の非一時的記憶媒体は、媒体、例えばエネルギー、搬送波信号、電磁波及び信号自体を明確に除外する。
【0015】
コンピュータ装置100とのユーザ対話を可能にするために、入力装置190は、例えば音声のためのマイク、ジェスチャ、または図形入力のためのタッチセンシティブスクリーン、キーボード、マウス、動作入力及び音声等の多くの入力機構を示す。更に出力装置170は、当業者に既知である多くの出力機構のうちの1つ以上である。いくつかの例において、多モードシステムにより、ユーザは、コンピュータ装置100と通信するために多くの種類の入力を提供できる。通信インタフェース180は、一般に、ユーザ入力及びシステム出力を制御し、管理する。何らかの特定のハードウェア構成上で動作することに対する制限がないため、本明細書における基本的な機能は、それらが開発される時に改善されたハードウェア構成、またはファームウェア構成に容易に置換される。
【0016】
説明を明確にするため、説明的なシステムの実施形態は、「プロセッサ」、またはプロセッサ120としてラベル付けされた機能ブロックを含む個々の機能ブロックを含むものとして提示される。これらのブロックが示す機能は、ソフトウェアを実行できるハードウェア及び汎用プロセッサ上で実行するソフトウェアと同等に動作する目的で製作されたプロセッサ120等のハードウェアを含むがそれらに限定されない共有ハードウェア、または専用ハードウェアを使用して提供される。例えば、図1に示された1つ以上のプロセッサの機能は、単一の共有プロセッサ、または複数のプロセッサにより提供される。(「プロセッサ」という用語を使用することは、ソフトウェアを実行できるハードウェアのみを示すものとして解釈されるべきではない。)例示する実施形態は、マイクロプロセッサ及び/またはデジタル信号プロセッサ(DSP)ハードウェア、以下において説明する動作を実行するソフトウェアを格納する読み出し専用メモリ(ROM)140、並びに結果を格納するランダムアクセスメモリ(RAM)150を備える。汎用DSP回路と組み合わせて超大規模集積回路(VLSI)ハードウェアの実施形態及びカスタムVLSI回路網が更に提供される。
【0017】
種々の実施形態の論理演算は、(1)汎用コンピュータ内のプログラム可能な回路上で実行する一連のコンピュータにより実現されたステップ、動作、または手順、(2)専用のプログラム可能な回路上で実行する一連のコンピュータにより実現されたステップ、動作、または手順、並びに/或いは(3)プログラム可能な回路内の相互接続されたマシンモジュール、またはプログラムエンジンとして実現される。図1に示されたシステム100は、列挙された方法の全て、または一部を実施し、列挙されたシステムの一部であり、且つ/或いは列挙されたコンピュータ可読の非一時的記憶媒体における命令に従って動作する。そのような論理演算は、モジュールのプログラミングに従って特定の機能を実行するようプロセッサ120を制御するように構成されたモジュールとして実現される。例えば図1は、プロセッサ120を制御するように構成されたモジュールである3つのモジュールMod1 162、Mod2 164及びMod3 166を示す。これらのモジュールは、記憶装置160上に格納されるか、実行時にRAM150、またはメモリ130にロードされるか、或いは当技術分野において既知であるように他のコンピュータ可読記憶場所に格納される。
【0018】
演算システムのいくつかの構成要素を開示したが、次に、本開示は、オンラインアプリケーション配信ストア、またはマーケットにおいてパーソナルコンピュータ、ラップトップ、ゲーム機、スマートフォン、移動電話、またはタブレットPC等のコンピュータ装置上のプリ・インストール・ソフトウェアをユーザ・アカウントに「関連付ける」(リンクする、またはアドプションするに類似する)技術の説明に戻る。本明細書において説明される手法は、オンラインストア、または配信センター等のオンライン配信サイト上のユーザ・アカウントにプリ・インストール・ソフトウェアをリンクすることにより、そのプリ・インストール・ソフトウェアを更新し、或いはコンピュータ装置に再インストールする際の効率性及び利便性を高めるものである。オンライン配信サイトは、ユーザ・アカウントに関連付けられたプリ・インストール・ソフトウェアをそのユーザ・アカウントにリンクされた1つ以上のコンピュータ装置に送信する。プリ・インストール・ソフトウェア及びプリ・インストール・ソフトウェアに対する更新は、双方とも、1つ以上のコンピュータ装置に送信することができる。いくつかの例において、配信サイトは、所定のユーザ・アカウントに関連付けられたソフトウェアを受信することがゆるされた、その所定のユーザ・アカウントに関連付けられたコンピュータ装置の数に対する制限を指定することができる。他の例においては、プリ・インストール・ソフトウェアとは、一度は生成されたが、その後に、一グループのコンピュータ装置の各々に対して繰り返され複製された標準「イメージ」の一部である。例えば、標準的な装置「イメージ」とは、オペレーティングシステム、ドライバ、プログラム及び設定等を含む。従って、「イメージ」された装置の各々は、プリ・インストール・ソフトウェアを含む同一のソフトウェア構成を有し、エンドユーザ(、または他のエンティティ)が装置を設定した後、プリ・インストール・ソフトウェアは、オンラインストア、またはオンライン市場においてアドプションされ、ユーザ・アカウントに関連付けることができる。
【0019】
図2は、例示的なアプリケーション配信システムを示す。この例において、配信システム200は、配信センター210、アプリケーション・データベース220、設定サーバ230、インターネット250、または他のネットワーク、コンピュータ装置260、コンピュータ装置270及び携帯装置280を示す。配信センター210、アプリケーション・データベース220及び設定サーバ230は、共にクライアント−サーバモデルのサーバ側240の種々の独立構成要素を示す。同様に、コンピュータ装置260、コンピュータ装置270及び携帯装置280は、クライアント−サーバモデルのクライアント側290の種々の独立構成要素を示す。従って、配信システム200の広範な概要は、インターネット250を介してクライアント側290と通信するサーバ側240を含むことができる。一例として、サーバ側240は、ユーザにとっては、アプリケーション、または多数のクラウドサーバを販売し、配信するオンラインストアとして表現できる。クライアント側290の装置は、装置上に格納されたアプリケーション管理コンピュータプログラムを使用してオンラインストアと通信することができる。他の例において、インターネット250は、例えばコンピュータネットワーク、電話回線、イーサネット、ローカルエリアネットワーク、有線ネットワーク及び無線ネットワーク等の他の通信ネットワークで置換することができる。
【0020】
コンピュータ装置260はアプリケーション261を含むことができる。アプリケーション261は、コンピュータ装置260にプリ・インストールされたアプリケーション、パッケージの一部として提供されたアプリケーション、、または何らかの種類のインストールメディアが提供されたアプリケーションを含み得る。ある一般的な例において、コンピュータ装置260の所有者は、製造業者からこれらのアプリケーションが既にインストールされているコンピュータ装置260を購入した、とする。このアプリケーション261のなかには、他の手段を介してコンピュータ装置260により取得されたアプリケーション、(またはソフトウェアパッケージ)、例えば2、3例を挙げると、贈与され、購入され、または無償で配信されたアプリケーションを更に含む。アプリケーション261は、コンピュータ装置260のユーザにより配信センター210から購入されたアプリケーションを更に含むことができる。ユーザは、配信センター210から所望のアプリケーションを購入する際に、ユーザが既に購入したアプリケーションと関連付けられたメタデータ、そして、所望のアプリケーションと引き換えで配信センター210に支払いをするための支払情報に関連付けられたメタデータなどを含むユーザ・アカウント291にログインする。ログインすると、ユーザは購入したいアプリケーションを選択する。ユーザがアプリケーションの購入額を支払うことに同意すると、このユーザの支払情報が用いられて取引が完了する。取引が完了すると、その所望のアプリケーションはユーザ・アカウント291と関連付けられることとなり、ユーザは、当該所望のアプリケーションとその所望アプリケーションの更新とをダウンロードできるようになる。ユーザ・アカウント291と関連付けられたこれらアプリケーション等は、ユーザ・アカウント291と関連付けられる他の装置に更にダウンロード若しくは再ダウンロード可能となる。
【0021】
いくつかの例においては、ユーザは、この時点では、アプリケーションをユーザ・アカウントに関連付けしないというオプションを有することができる。例えば、贈与としてアプリケーションを受け取るユーザは、ユーザ・アカウントを有さないか、有していても、アプリケーションをユーザ・アカウントに関連付けたくないであろう。第1の例においては、ユーザは、ユーザ・アカウントを設定するまでもなく、アプリケーションをコンピュータ装置260にインストールできる。ユーザが更新を受信したいか、或いは、自身が所有する他の電子装置にそのアプリケーションをインストールしたい場合には、当該ユーザは、ユーザ・アカウントを選択し、そのアプリケーションを前記ユーザ・アカウントとリンクする(すなわち、アドプションする)。この例においては、コンピュータ装置260、コンピュータ装置270及び携帯装置280は、全てユーザ・アカウント291と関連付けられている、そのため、ユーザ・アカウント291と関連付けられている全てのアプリケーションの更新及び再ダウンロードを受信できるように構成されている。更に、携帯装置280は、コンピュータ装置270と通信し、これら2つの装置間でデジタルデータ及びアプリケーションを転送することができる。一例においては、コンピュータ装置270は、ユーザ・アカウント291に関連付けられた全てのアプリケーションを格納するリポジトリセンター(記憶センター)となって、選択されたアプリケーションを携帯装置280に転送できるように構成されている。本明細書において、「アプリケーション」という用語は、ソフトウェアプロバイダにより提供されたソフトウェアプログラム、またはアプリケーションのコピー或いは複製物を意味する。他の例においては、コンピュータ装置に最初にプリ・インストールされたソフトウェアアプリケーション及びソフトウェアプログラム(例えば、システムソフトウェア、企業向けソフトウエア、マルチメディアファイル、ビデオファイル、オーディオファイル及び画像ファイル)等に加えて、他のデジタル製品、例えば、ユーザが所有権を有するソフトウェアアプリケーション等は、また、ユーザ・アカウント291に関連付けて、配信センター210により配信/再配信することができる。
【0022】
配信センター210は、アプリケーション・データベース220に結合され、アプリケーション・データベース220から、アプリケーションを販売し、供給し、及び維持するように構成されている。アプリケーション・データベース220は、サーバ側240から配信可能なアプリケーションのうちの一部、または全てを格納するように構成することができる。これらのアプリケーションは、インターネット250を介してクライアント側290の装置に販売し、更新し、そして、供給(すなわち、送信)することができる。従って、配信センター210は、アプリケーションに対するオンラインストアを意味する。例えば、アプリケーション・データベース220は、配信センター210からアプリケーションに対する要求を受信し、要求に応答して、要求されたアプリケーションを配信センター210に送信し、配信センター210は、その後アプリケーションを要求側装置に送信する。要求されたアプリケーションとは、購入可能なアプリケーション、または以前にユーザ・アカウントに関連付けられたアプリケーション(すなわち、アドプションされている、別途取得され、またはプリ・インストールされたアプリケーション)である。他の例において、アプリケーション・データベース220は、要求されたアプリケーションを要求側装置に直接送信できる。更に他の例において、アプリケーション・データベース220はクライアント側290に常駐できるのであり、このクライアント側で、サーバ側240は、アプリケーション・データベース220の特定のアプリケーションへのアクセスを、当該ユーザ・アカウントに関連付けられたアプリケーションに基づいて許可することできる。
【0023】
クライアント側290の装置は、ソフトウェア・アドプション要求を送信して、装置上のプリ・インストールアプリケーション、または別途取得されてはいるがアドプションされていないアプリケーションを、ユーザ・アカウントにリンクする(すなわち、関連付けるか、或いはアドプションする)ことができる。1つのアプリケーションをリンクすることにより、ユーザは、そのアプリケーションを1つのユーザ・アカウントに関連付けることができるため、同ユーザは、同ユーザ・アカウントに同じく関連付けられた他の装置に、このアプリケーションをダウンロードすることができる。この処理は、アプリケーションの「リンク」、「アドプション」、または「関連付け」と呼ばれる。例えばコンピュータ装置260は、アプリケーション261からのアプリケーションをユーザ・アカウント291とリンクするように要求することができる。この要求は、インターネット250を介してアプリケーション、またはコンピュータ装置260と関連付けられた一意的識別子(例えば、一意的ハードウェア識別子)と共に配信センター210に送信され、ここで、アプリケーションがユーザ・アカウント291と関連付けられているかが判定される。一意的ハードウェア識別子は、特定の装置を他の全ての装置と区別するために使用される一意的な識別子であり、その装置のハードウェアに基づくことができる。例えば、製造業者は、自らの製造になる装置が、一意的であり、それ故に、他のあらゆる装置の一意的ハードウェア識別子とは異なるところの一意的ハードウェア識別子を有する、ことを保証することができる。一例として、一意的ハードウェア識別子は、装置のロジックボードシリアル番号及び/またはイーサネットハードウェアアドレスに基づくこともできる。一例において、これらの2つの値は、連結され、ハッシュされて、一意的ハードウェア識別子を生成する。他の例においては、この装置に特有な他のメタデータを、一意的ハードウェア識別子を形成するための種々のデータ操作アルゴリズムを用いて、連結し、ハッシュし、または合成してもよい。更に他の例において、そのアプリケーションがユーザ・アカウント291と関連付け可能かを判定するために使用される一意的識別子は、その一意的識別子と関連付けられるアプリケーション(すなわち、ソフトウェアパッケージ)がソフトウェア製造業者から合法的に取得されたことの証拠となる他のあらゆる購買証明、または資格に基づくことができる。一例において、一意的識別子は、アプリケーションと関連付けられたメタデータ、または属性から導出される。別の例において、一意的識別子は、アプリケーション、クライアント装置、ユーザ・アカウント、ユーザ・アカウントに関連付けられた他のクライアント装置、または上記の1つ以上の任意の組合せ、などと関連付けられたメタデータから導出することができる。
【0024】
一実施形態において、配信センター210は、一意的識別子を受信し、それを処理、または解析してアプリケーションがユーザ・アカウントに関連付け可能かを判定する。ある特定の例において、アプリケーションはユーザ・アカウントに関連付けることはできない。例えば、アプリケーションが以前に別のユーザ・アカウントに関連付けられていた場合、装置のアプリケーションはユーザ・アカウントに関連付けられない。別の例として、アプリケーションは、正規のコピーでない場合には、ユーザ・アカウントに関連付けることができない。これは、ユーザが元々ある装置から別の装置にインストールされていたアプリケーションを手動でコピーする場合に発生する。更に別の例として、この関連付け処理は、アプリケーションをユーザ・アカウントにリンクするために、ユーザが電子装置上のユーザのアカウントにログインされていることを必要とする。
【0025】
別の実施形態において、配信センター210は、一意的識別子を受信し、それを処理、または解析して、アプリケーションがユーザ・アカウントに関連付けられるかを判定する。一例として、一意的識別子を処理することは、一意的識別子をデータベースと比較することで一意的識別子を検証することを含む。データベースは、各々がアプリケーションの正規のコピーと関連付けられた一意的識別子を格納する複数のエントリを有する。比較の結果は、アプリケーションのアドプション状況、例えばアプリケーションが正当なコピーであるか、不当なコピーであるか、或いはユーザ・アカウントと既に関連付けられているかを判定するために使用される。別の例として、一意的識別子の処理は、一意的識別子をハッシュテーブルに入力してアプリケーションのアドプション状況を判定することを含むことができる。更に別の例において、一意的識別子を検証エンジンへ受信するようにして、このエンジンがアプリケーションのこのようなインストールが有効ではあるか、まだアドプションされていないかを判定するようにすることができる。更に他の例においては、他のデータ処理技術を一意的識別子に適用して、アプリケーションがユーザ・アカウントに関連付けることができるかを判定することができる。アプリケーションは、最近でも、ユーザにより取得可能である。換言すると、アプリケーションは、配信、または製造から、電子装置を購入し、受け取った後でも、ユーザが取得し終えたようにようにすることができる。或いは、アプリケーションは、電子装置が購入された時に取得可能である。配信センター210によりアドプション状況が判定されると、アドプション状況に係る確認が電子装置に送信される。確認が送信され、アドプション処理の状況を電子装置に報知する。確認に基づいて、電子装置は、ソフトウェアパッケージのダウンロード、または更新を要求する。他の例において、配信センター210は、アドプション状況に従って電子装置に対してソフトウェアパッケージのダウンロード処理、または更新処理を自動的に開始する。
【0026】
サーバ側240は、多数のサーバ及びテーブルを組み込んでおり、リンク要求が許可されるべきかを判定する。例えば配信センター210は一意性サーバ211を備え、このサーバは、一意的識別子を処理しって、リンク要求の正当性、または合法性を判定するように構成されている。一意性サーバ211は、データベースを維持するように構成された一意性テーブル、またはユーザ・アカウントとリンクされた1つ以上のプリ・インストールアプリケーションを有している電子装置のテーブルを含む。一例として、一意性テーブルは、プリ・インストールアプリケーションをユーザ・アカウントと既にリンクしている装置(すなわち、装置と関連付けられたプリ・インストールアプリケーションを既にアドプションしている装置)の一意的ハードウェア識別子を格納するように構成される。一意性テーブルは、ユーザ・アカウントに関連付けられているアプリケーションと関連付けられたメタデータを格納するように更に構成される。装置がアプリケーションのうちのいくつか、または全てをユーザ・アカウントとアドプション(すなわち、リンク)する場合、装置の一意的ハードウェア識別子、またはアドプションされたアプリケーションの一意的識別子は、一意性テーブル内に格納される。これにより、既にアドプションされているアプリケーションをリンクする今後の要求を阻止する。例えば、一意的識別子が一意性テーブルにあるかに関するクエリを実行することは、一意的ハードウェア識別子と関連付けられた装置がプリ・インストールアプリケーションをユーザ・アカウントと既にリンクしているかを判定する。同様に、クエリは、一意的識別子と関連付けられたアプリケーションがユーザ・アカウントと既にリンクされているかを更に判定する。別の例として、一意性テーブルは、以前にアドプションされている(すなわち、ユーザ・アカウントとリンクされている)電子装置の1つ以上のプリ・インストールアプリケーションと関連付けられたメタデータと共に電子装置の一意的ハードウェア識別子を格納するように構成される。換言すると、一意性テーブルは、装置の一意的ハードウェア識別子と選択的にアドプションされている装置のプリ・インストールアプリケーションと関連付けられた1つ以上のメタデータとの間の1対多数マッピングとして構成される。一意的ハードウェア識別子に対して一意性テーブルをクエリすることは、一意的ハードウェア識別子が一意性テーブルに存在しない場合には何も返送せず、一意的ハードウェア識別子が一意性テーブルに存在する場合には選択的にアドプションされているプリ・インストールアプリケーションと関連付けられたメタデータを返送する。この結果、第1のユーザ・アカウントで装置上のプリ・インストールアプリケーションを選択的にアドプションし、第2のユーザ・アカウントで装置上の別のプリ・インストールアプリケーションを選択的にアドプションする機能が得られる。更に他の例において、一意性テーブルは、ユーザ・アカウントにリンクされているアプリケーションのデータベース、またはテーブルを維持するように構成される。既にリンクされているアプリケーションは、一意性テーブルに格納された一意的識別子を有することにより、アドプションされているアプリケーションの最新のデータベースを維持する。
【0027】
一例において、設定サーバ230は、電子装置の元の設定をチェックすることにより、リンク要求の正当性を検証することができるもので、サーバは、電子装置が製造業者から出荷された時に、特定のアプリケーションが当該装置にプリ・インストールされたかを検証、または判定することによりこの検証を行う。この設定サーバは、アプリケーションがユーザ装置にインストールされているか、或いはユーザ・アカウントに関連付けられているか、に関係なく、ユーザが所有権を有するアプリケーションを更に検証し、または識別することができる。従って、ユーザが所有権を有するが、関連付けられていないか、或いはインストールされていないアプリケーションを更に識別できる。設定サーバ230は、製造業者により作成された電子装置の元の設定を格納するデータベースを含む。元の設定は、もしあれば電子装置と共に供給されたオペレーティングシステムのバージョン及びアプリケーションのバージョンを含む。例えば、オンラインストアを通して電子装置を注文するユーザは、購入時に1つ以上のアプリケーションを含む装置を構成することができる。アプリケーションは、購入時の設定に基づいて製造時に電子装置にインストールされる。製造時には、後続の参照のために、電子装置の設定を設定サーバ230に通信する。設定サーバ230は、電子装置から一意的ハードウェア識別子を含む参照要求を受信する場合、データベース上で探索、或いはクエリを実行し、装置にインストールされたオペレーティングシステムのバージョン及び/または電子装置にインストールされたアプリケーションのバージョンを含むリストを返送する。設定サーバ230は、インストールされたアプリケーションのリストをユーザがユーザ・アカウントに関連付けようとしているアプリケーションと比較し、ユーザが関連付けようとしているアプリケーションが正規のインストールであるか、或いは以前に別のユーザ・アカウントに関連付けられているかを判定する。或いは、設定サーバ230は、プリ・インストールアプリケーションのリストを配信センター210に渡し、リンク要求が許可されるべきであるかを判定する。このチェックにより、ユーザがある装置から別の装置にプリ・インストールアプリケーションをコピーすることで配信システム200を迂回しようとすることを阻止する。
【0028】
サーバ側240の1つ以上の要素がリンク要求を検証すると、そのプリ・インストールアプリケーションはユーザ・アカウントに関連付けられる(すなわち、アプリケーションアドプションされる)。また、一意性サーバ211、または設定サーバ230は、アプリケーションアドプションを考慮するように更新可能である。例えば、電子装置と関連付けられたプリ・インストールアプリケーションのうちのいくつか、または全てがアドプションされているため、新しいエントリが一意性サーバ211の一意性テーブルに追加される。いくつかの例において、配信センター210は、プリ・インストールアプリケーションがユーザ・アカウントに関連付けられた後でプリ・インストールアプリケーションの更新をコンピュータ装置260に送信する。他の例において、配信センター210は、コンピュータ装置270が元々プリ・インストールアプリケーションで構成されていない場合でもコンピュータ装置270等のユーザ・アカウントに関連付けられた他の装置にプリ・インストールアプリケーションを送信する。アプリケーションアドプションに対する同様の要求を通して、アプリケーション271に格納されたコンピュータ装置270のプリ・インストールアプリケーション及びアプリケーション281に格納された携帯装置280のプリ・インストールアプリケーションは、ユーザ・アカウント291と関連付けられ、最終的にコンピュータ装置260、コンピュータ装置270及び/または携帯装置280に配信される。
【0029】
図3は、例示的なクライアント−サーバシステムを示す。クライアント−サーバシステム300は、クライアント装置350及びサーバ360を備える。サーバ360は、クライアント装置350からの要求に応答するように構成され、図2のサーバ側240の1つ以上の要素を含む。クライアント装置350は、ページ要求をサーバ360に提供することでアプリケーション(プリ・インストール、または別の方法で取得された)をユーザ・アカウントに関連付ける。クライアント装置350は、プリ・インストールアプリケーションの場合と同じように、同一のページ要求、または同様のページ要求をサーバ360に提供することで他のアプリケーションをユーザ・アカウントと更に関連付ける。
【0030】
1種類のページ要求はページ更新要求301である。ページ更新要求301はサーバ360に送信される要求で、利用可能なアプリケーションの更新を求めるクエリを実行する。ページ更新要求301に応答して、サーバ360は、クライアント装置350に格納されたアプリケーションが利用可能な更新を有するようになったことをユーザに報知するように構成されたハイパテキストマークアップ言語(「HTML」)ページ303を返送する。いくつかの例において、サーバ360はメタデータをクライアント装置350に返送し、入れ替わり、クライアント装置350は、ユーザに提示するためのHTMLページを生成する。ページ更新要求301は、クライアント装置350に格納されているアプリケーション毎にデジタルレシートを含む。このレシートは、当該アプリケーションに関連し、そのソフトウェアの購入または所有権を記載するメタデータを含むものである。1つの種類のレシートとして、購入されたアプリケーション、またはアドプションされたアプリケーションと関連付けられる実際のレシートである。実際のレシートは、アプリケーションの説明、アプリケーションのバージョン番号、アプリケーションが購入された際のアプリケーションの購入者に関する情報及びアプリケーションが最初にインストールされた装置に関する情報等を含む。換言すると、実際のレシートとは、購入者に及び/またはアプリケーションが購入された電子装置に一意的な購入の証明である。別の種類のレシートはスタブ・レシートである。スタブ・レシートは、実際のレシートに情報の部分集合を含み、アプリケーションがユーザ・アカウントによりアドプションされていない場合はアプリケーションの一部である。一例において、スタブ・レシートは、一意的に他のコピーからこのアプリケーションのコピーを識別する。これにより、サーバは、この特定のアプリケーションのコピー(ユーザに贈与されるか、或いはユーザにより別の方法で取得される)がユーザによりアドプション可能であるかを判定できる。別の例において、スタブ・レシートは、プリ・インストールアプリケーションと関連付けられるレシートとして製造業者により生成される。製造業者によるアプリケーションのインストールを促進及び簡略化にするため、スタブ・レシートは、実際のレシートより少ない最小の情報量を含む。例えばスタブ・レシートは、サーバに対するアプリケーションを識別するアプリケーション識別子を含み、アプリケーションのバージョンを識別するバージョン番号を更に含む。アプリケーション識別子は、アプリケーションと関連付けられた名前である。スタブ・レシートは、アプリケーションが購入された時等の購入者に特有の情報と、アプリケーションの購入者、またはプリ・インストールアプリケーションがインストールされた装置に関する情報とを含まない。換言すると、スタブ・レシートは、ユーザ・アカウント、ユーザ・アカウント情報、或いはクライアント装置、コンピュータ装置、または他の装置に関する情報を含まない。アプリケーション識別子は、プリ・インストールアプリケーションと関連付けられた名前である。いくつかの例において、スタブ・レシートは、アプリケーションが装置にプリ・インストールアプリケーションされている時、または装置が供給の準備をしている時に製造業者により生成される。他の例において、スタブ・レシートは、サーバ360により生成され、その後プリ・インストールアプリケーションと関連付けられるクライアント装置350に送信される。サーバ360は、クライアント装置350による要求、またはサーバ360とクライアント装置350との間で定期的にスケジュールされた通信に応答してスタブ・レシートを生成する。プリ・インストールアプリケーションがアドプションされると、スタブ・レシートは実際のレシートで置換される。別の例において、スタブ・レシートは、アプリケーションが取得された場合にクライアント装置と関連付けられていない購入、贈与、または別の方法で取得されたアプリケーションと関連付けられるレシートとして生成される。このスタブ・レシートは、製造業者、アプリケーション配信者、またはオンラインストア等により生成される。場合によっては、スタブ・レシートは、配信のためにバッチ処理され、アプリケーションに割り当てられる。スタブ・レシートは、サーバ上に保存され、アドプション要求を認証するために使用される。前の例と同様に、スタブ・レシートは、アプリケーションアドプション処理中に実際のレシートで置換される。実際のレシートは、クライアント−サーバシステム300のクライアント装置350、サーバ360、または他の要素により生成される。
【0031】
この例において、ページ更新要求301は、プリ・インストールアプリケーション310と関連付けられたスタブ・レシートA311、プリ・インストールアプリケーション320と関連付けられたスタブ・レシートB321及びアプリケーション330と関連付けられた実際のレシート331を含む。アプリケーション330は、クライアント装置350の購入後にサーバ360から購入されたため、実際のレシートを含む。ページ更新要求301に応答して、サーバ360は、プリ・インストールアプリケーション310、プリ・インストールアプリケーション320、またはアプリケーション330がサーバ360からダウンロードされる利用可能な更新を有するかをユーザに報知するHTML303を生成する。アドプションされていない(すなわち、ユーザ・アカウントとリンクされていないか、或いは関連付けられていない)プリ・インストールアプリケーションと関連付けられた利用可能な更新は、プリ・インストールアプリケーションがユーザ・アカウントに対してアドプションされるまでダウンロードされない。利用可能な更新がクライアント装置350にダウンロード及びインストールされると、スタブ・レシートは、アプリケーションが購入された時(すなわち、利用可能な更新がインストールされた日付)、アプリケーションを購入したユーザ及びアプリケーションが最初にインストールされた電子装置等の他のメタデータを含む実際のレシートで置換される。
【0032】
別の種類のページ要求はページ購入要求302である。ページ購入要求302は、サーバ360に送信され、クライアント装置350のユーザにより購入されているアプリケーションのリストを要求する。要求に応答して、サーバ360は、クライアント装置350のユーザにより購入されているアプリケーション及び必要に応じてクライアント装置350にインストールされているアプリケーションをユーザに報知するように構成されたHTMLページ303を返送する。クライアント装置350に格納されない購入されたアプリケーションは、ダウンロード及びインストールされる。HTMLページ303は、アドプション(すなわち、ユーザ・アカウントとリンクすること、または関連付けること)可能なアプリケーションを更に含む。ユーザ・アカウントに関連付けられていないクライアント装置上のアプリケーションは、ページ更新要求301、またはページ購入要求302を介してアドプションのために選択される。未アドプションのアプリケーションは、要求におけるレシート、または他の形態の資格証明を送信し、アプリケーション、または所望のアプリケーションをクライアント装置にインストールする。
【0033】
ページ購入要求302はマニフェスト340を含む。マニフェスト340は、プリ・インストールアプリケーション、または別の方法で取得されたアプリケーションと関連付けられた情報を格納するように構成される。この情報は、アドプション可能なアプリケーションをユーザに報知するためにサーバ360により使用される。マニフェスト340は、クライアント装置350にアプリケーションのバージョン番号を格納するように構成されたリスト、テーブル、または他のデータ構造を含む。アプリケーションのバージョン番号は、アプリケーションと関連付けられたスタブ・レシート、または他のメタデータにおいて見つけられる。一例において、マニフェスト340は、クライアント装置350が起動して初めて生成される。例えばマニフェストは、後でマニフェストを生成するために使用されるスタブ・レシートに対してコンピュータを探索するためにクライアント装置上でスポットライト(すなわち、探索)機能を利用することにより、クライアント装置の第1のブート中に生成される。以下において説明するように、マニフェストは、アプリケーションをユーザ・アカウントとリンクする間、または電子装置の回復モード中にアクセスされる設定サーバに格納される。
【0034】
この例において、クライアント装置350は、後でマニフェスト340を生成するために使用されるスタブ・レシート311及びスタブ・レシート321を配置するようにクエリされる。クライアント装置350の再フォーマット、または回復中、プリ・インストールアプリケーション及び別の方法で取得されたアプリケーションは、共にクライアント装置350から削除される。ユーザ・アカウントとリンクされているアプリケーションは、クライアント装置350に再ダウンロードされる。しかし、ユーザ・アカウントとリンクされていないプリ・インストールアプリケーションは、完全に失われる危険性がある。以下において更に詳細に説明するように、マニフェスト340は、未アドプションのアプリケーションの損失を防止する機構として機能する。アドプション可能なアプリケーションは、プリ・インストールアプリケーションがユーザ・アカウントとリンクされるか、或いは関連付けられるまでダウンロードされない。利用可能な更新がクライアント装置350にダウンロード及びインストールされると、マニフェスト340は、現在アドプションされているアプリケーションと関連付けられたスタブ・レシートを除去するように編集される。また、インストールされたアプリケーションは実際のレシートを含む。いくつかの例において、HTMLページ303の処理及び検索を伴うページ更新要求301及びページ購入要求302の生成は、クライアント装置350にインストールされたアプリケーション管理プログラム(不図示)により管理され、処理される。アプリケーション管理プログラムは、製造業者により自社開発され、特に製造業者に属するサーバと通信するように構成される。
【0035】
クライアント−サーバシステム300は、クライアント装置350により取得されるが、ユーザ・アカウントに関連付けられない(例えば、贈与、購入されるがユーザ・アカウントにリンクされないか、或いは他の手段を介してクライアント装置に配信される)アプリケーションを更にアドプションする。一例として、取得されたアプリケーションは、ページ更新要求、ページ購入要求、または他のページ要求を介してユーザ・アカウントとリンクされる。要求は、スタブ・レシート、或いはスタブ・レシートと関連付けられたメタデータ、またはスタブ・レシートから導出されたメタデータを含む。別の例として、未アドプションのアプリケーション(すなわち、まだユーザ・アカウントとリンクされていないアプリケーション)がクライアント装置350により取得される場合、マニフェスト340は更新される。
【0036】
図4は、ページ更新要求を処理する例示的な方法を示す。クライアント及びサーバにより実行された動作を示す方法400は、ページ更新要求中にクライアントとサーバとの通信を管理するように構成される。サーバにより実行された動作は、配信センター上に格納された配信プログラム、またはサーバ側に配置された他の構成要素により実行され、クライアントにより実行された動作は、クライアントの電子装置上に格納されたアプリケーション管理プログラムにより実行される。方法400は、クライアント装置により供給されたグラフィックスユーザインタフェースにおいてユーザが更新タブ・リンクを選択することから開始する。例示的な更新タブ・リンクは、図5のリンク451である。クライアントは、ページ更新に対するユーザ要求を受信すると(401)、クライアント装置にインストールされたアプリケーションと関連付けられたレシート、または他の形態の資格証明に対してクライアント装置をクエリ、或いは探索する(403)。他の例において、クエリは、ユーザ対話なしで自動的に開始する。例えばサーバは、所定の時間間隔、または時点でクライアントと通信することでクエリを開始する。探索は、クライアント装置のオペレーティングシステム、或いはクライアント装置上に格納されたアプリケーション、またはルーチンと関連付けられた機能性を使用して実行される。見つけられるレシート、またはレシートのコピーは、サーバに送信される(405)。レシートは、例えばイーサネット、インターネット及びローカルエリアネットワーク等のあらゆる通信ネットワークを介して転送される。サーバは、レシートを受信し、レシートと関連付けられたアプリケーションが更新を有するかを判定する(407)ようにレシートを処理する。これは、図2のアプリケーション・データベース220等のアプリケーション・データベースにアクセスし、レシートのバージョン番号をアプリケーション・データベースに格納されたアプリケーションのバージョン番号と比較することを含む。これは、クライアント装置にインストールされたアプリケーションがサーバにより配信されるように構成されることを判定することにより、アプリケーションがアドプションの対象となること検証することを更に含む。いくつかの実施形態において、サーバは、アプリケーションがこの時点で以前にアドプションされていないこと更に検証する。これは、インストールされたアプリケーションのコピーを一意的に識別する一意的識別子を検索する(サーバ、またはクライアントから)ステップ及び一意的識別子がいずれのユーザ・アカウントとも関連付けられていないこと検証するステップを含む。更新を含むアプリケーションのリストは、HTMLページを生成する(408)ために、或いはデスクトップアプリケーション、またはスマートフォンアプリケーション等の他の何らかのユーザインタフェースを操作するために使用される。HTMLページは、利用可能な更新を含むアプリケーションに関する情報を含む。この情報は、アプリケーションの元の購入日、アプリケーションの記述及び更新されたアプリケーションにおける変更、または修正の記述を含む。HTMLは、1つ以上のアプリケーションが更新を有するか、或いはアドプション可能であることをクライアントに通知するようにクライアントに送出される通知の一例にすぎない。その後サーバは、HTMLページをクライアントに送信する(409)。いくつかの例において、サーバは、クライアントがレシートを送信した同一のチャネルを介してHTMLページを送信する。サーバは、HTMLページをクライアントにプリパッケージ及び送信するのではなく、ローカルでインストールされたクライアントアプリケーションを更新するのに十分な情報をクライアントに送信する。
【0037】
図5は、オンラインストア、またはオンライン市場においてアドプションされているか、或いはユーザのアカウントと関連付けられているプリ・インストールアプリケーションに対するページ更新要求と関連付けられたHTMLページの一例を示す。HTMLページ450は、ページ更新を要求するためにユーザにより選択される更新(Updates)リンク451を含む。更新リンク451は、「特集」、「トップチャート」、「カテゴリ」及び「購入」等の他のリンクと共にメニューバー上に配置され、ユーザがアプリケーション管理プログラムの種々の機能にアクセスするための便利で迅速な方法を提供する。いくつかの例において、更新リンク451を示すアイコンは、利用可能な更新を有するクライアント装置に格納されたアプリケーションの数を規定する数を含む。アイコンの数は、ユーザがサーバとクライアント装置との定期的な通信を通して更新タブ・リンク451を選択する前に生成される。
【0038】
例えばクライアント装置は、定期的にサーバと通信し、利用可能な更新を有する格納されたアプリケーションの最新のバージョン番号を検索する。この例において、更新リンク451が選択されており、利用可能な更新を含む1つのアプリケーションは、HTMLページ450内に提示される。1つのアプリケーションは、アプリケーションを記述するアプリケーション記述457を提示される。アプリケーション記述457は、アプリケーションの名前、アプリケーションの作成者、アプリケーションのバージョン番号、アプリケーションのリリース日、またはアプリケーションと関連付けられた他の情報を含む。アプリケーション記述457は、アイデンティティをアプリケーションに提供するアイコン455及びこのアプリケーションの更新バージョンにおいて実現された変更の概要459を更に含む。これによりユーザに情報を提供するため、ユーザは、十分に情報を得た上で更新したいかの判断を行うことができる。HTMLページ450は、ユーザがアプリケーション更新を受信したいかを選択できる選択可能なリンク461を更に含む。利用可能な更新の数は表題453に表示される。表題453は、ユーザが利用可能な更新の数を迅速に判定できる別の便利な場所を提供するように構成される。いくつかの例において、HTMLページ450は、利用可能な更新を有する全てのアプリケーションを更新する表題453に隣接する選択可能なリンクを更に含む。
【0039】
図4に戻ると、クライアントは、送信されたHTMLを受信し、HTMLページをユーザに提示する(411)。図5で説明したように、HTMLページは、利用可能な更新を含むアプリケーション、アプリケーションの記述及びアプリケーションの更新を許可するようにユーザにより選択可能な1つ以上のリンクを一覧表示するグラフィカルユーザインタフェースを提示する。クライアントは、ユーザ認証を受信し、アプリケーションを更新する(413)。ユーザ認証が受信されている場合、クライアントは、アプリケーションが更新される前にアドプションを必要とするかを判定する(415)。これは、レシートがスタブ・レシートであるかを判定するためにクライアントにインストールされたアプリケーションのレシートをチェックすることを含む。レシートがスタブ・レシートである場合、スタブ・レシートと関連付けられたアプリケーションは、潜在的にまだユーザ・アカウントに対してアドプションされていないプリ・インストールアプリケーションである。従って、ユーザ認証が必要であり、クライアントは、ユーザ・アカウントに対してアプリケーションをアドプションするか、または関連付けるためにユーザ認証を要求する(417)ユーザにHTMLページを提示する。ユーザ認証は、通信ネットワークを介して個人情報を送信することを含む。プライバシーの理由から、HTMLページは、認証処理中に個人情報が送出されることをユーザに報知し、通信ネットワークを介してこの個人情報を送信するための許可を要求する。
【0040】
図6は、アプリケーションをアドプションするためにユーザ認証を要求するHTMLページの一例を示すもので、このアプリケーションは、コンピュータ装置の購入と共に一括して販売され、及び/またはプリ・インストールされていたかも知れないものである。HTMLページ470は、利用可能な更新を含む4つのアプリケーションをユーザに提示するページ更新である。従って、更新(Updates)リンク471のアイコンは数「4」を含む。この例において、ユーザは、「全て更新」(UPDATE ALL)リンク475を介して全てのアプリケーションを更新することを選択した。しかし、他の例において、ユーザは、更新リンク476、477、478、または479のうちの1つを選択することで単一のアプリケーションを更新することを更に選択することができる。利用可能な更新を含むアプリケーションは、プリ・インストールアプリケーション472及び購入したアプリケーション473を含む。いくつかの例において、この段階においてプリ・インストールアプリケーション及び購入したアプリケーションの提示に差はない。しかし、ユーザがプリ・インストールされたアプリケーション、またはユーザ・アカウントとリンクされていないアプリケーションを更新することを選択すると、HTMLページ470は、プロンプト480をユーザに提示することができる。図7において、プロンプト480を更に詳細に説明する。
【0041】
図7は、アプリケーションをアドプションするためにユーザ認証を要求するHTMLページの別の例を示す。認証プロンプトとしても既知であるプロンプト480は、コンピュータにプリ・インストールされておらず且つ場合によってはユーザ・アカウントに関連付けられていないか、或いはユーザ・アカウントに関連付けられていない取得されただけのアプリケーションを更新することをユーザが選択すると、ユーザに提示される。この例において、プロンプト480は、アイコン481、ログイン482、パスワード483、パスワード支援484、記述485、ヘルプリンク486、アカウント作成487、キャンセル488及びサインイン489を含む。記述485は、ユーザがアプリケーションを更新したい場合には、この電子装置上にプリ・インストール(すなわち、一括販売(バンドル))されたアプリケーションがユーザ・アカウントに関連付けられることを報知するテキスト情報を提供する。この記述485は、アプリケーションをアドプションするために、電子装置と関連付けられた一意的ハードウェア識別子がサーバに送出され、アプリケーションアドプションが許可されるべきかを判定することをユーザに更に報知する。アイコン481は、アプリケーション管理プログラムのアプリケーション更新機能をブランド化するために使用される。ログイン482及びパスワード483は、ユーザがプリ・インストールアプリケーションを関連付けたいユーザ・アカウントを指定する。パスワード支援484は、パスワードに支援を必要とするユーザにより選択される。所望のユーザ・アカウント及び正しいパスワードが入力されると、ユーザは、サインイン489を選択することでアドプション処理を開始する。ユーザは、ユーザ・アカウントを有さないか、或いはプリ・インストールアプリケーションを新しいアカウントと関連付けたい場合、アカウント作成487を選択する。ユーザは、アプリケーションをキャンセルし、更新したくない場合、キャンセル488を選択する。ユーザは、上述のあらゆる要素に関するより詳細な記述を望む場合、ヘルプリンク486を選択する。電子装置にプリ・インストールされていないが、電子装置により別に取得されるアプリケーションを関連付けるためにHTMLページがユーザ認証を要求している他の例において、記述485は、適切なメッセージをユーザに搬送するように変更される。例えば記述485は、「今後の更新を受信するため、アプリケーション「X」、「Y」及び「Z」がこのapple IDに割り当てられます。コンピュータに格納された一意的識別子は、資格を検証するためにAppleに送出されなければなりません」と記載する。
【0042】
図4に戻ると、クライアントは、ユーザ認証を受信し、アプリケーションをアドプションする(419)。このユーザ認証は、図7で説明したようなクライアントにより提示されたプロンプトにユーザ・アカウント及びパスワードを入力するユーザにより受信できる。クライアントは、ユーザ認証を受信すると、アプリケーションのアドプションに進む(421)。アプリケーションをユーザ・アカウントに対してアドプションする例示的な処理を図12において以下に説明する。いくつかの例において、全てのプリ・インストールアプリケーションは、同時にユーザ・アカウントに関連付けられなければならない。従って、ユーザは、ある電子装置と関連付けられた1つのプリ・インストールアプリケーションを1つのユーザ・アカウントと選択的にリンクすることはできず、その電子装置と関連付けられた別のプリ・インストールアプリケーションを別のユーザ・アカウントと選択的にリンクできない。プリ・インストールアプリケーションがアドプションされているサーバを通知するのに電子装置と関連付けられた一意的ハードウェア識別子で十分であるため、電子装置上で全てのプリ・インストールアプリケーションを同時にアドプションすることにより、アドプション処理を管理する計算オーバヘッドを簡略化する。他の例において、電子装置上のプリ・インストールアプリケーションは、選択的に多数のアカウントと関連付けられる。従って、第1のプリ・インストールアプリケーションは第1の電子装置と関連付けられ、第2のプリ・インストールアプリケーションは第2の電子装置と関連付けられる。しかし、サーバ上でプリ・インストールアプリケーションを管理するには、電子装置の一意的ハードウェア識別子及びアドプションされているプリ・インストールアプリケーションを格納する必要がある。これらの例は、電子装置の購入とは別に取得されるアプリケーションにも適用可能である。例えば、電子装置にインストール及び贈与されたアプリケーションが大量の場合には、個々に、またはグループとしてユーザ・アカウントに関連付けられる。
【0043】
図8は、ページ購入要求を処理する例示的な方法を示す。方法500は、クライアント及びサーバにより実行される動作を示すものであり、この方法500は、ページ購入要求中にクライアントとサーバとの通信を管理するように構成される。サーバにより実行される動作は、配信センター上に格納された配信プログラム、またはサーバ側に配置された他の構成要素により実行される一方、クライアントにより実行される動作は、クライアント側の電子装置上に格納されたアプリケーション管理プログラムにより実行される。いくつかの例において、配信センター上に格納された配信プログラム及び電子装置上に格納されたアプリケーション管理プログラムは、ページ更新要求中に図4の方法400を更に実行するように構成される。方法500は、クライアント装置により供給されたグラフィックスユーザインタフェースにてユーザが購入タブ・リンクを選択することから開始する。例示的な購入タブ・リンクは、図9のリンク551である。クライアントは、ページ購入に対するユーザ要求を受信すると(501)、アプリケーション情報に対して探索、またはクエリを実行する。この例示的な方法において、アプリケーション情報は、マニフェスト及び/またはレシートを含む(503)。他の例において、アプリケーション情報は、ユーザ・アカウントに関連付けられていないアプリケーション、またはソフトウェアパッケージを含む。ユーザ・アカウントは、ソフトウェアパッケージの所有権を有する。所有権は、デジタルレシート等の資格証明である。いくつかの例において、マニフェストは、図3のマニフェスト340と同様であるか、或いはほぼ同様である。探索、またはクエリは、クライアント上で使用可能な1つ以上のプログラム、または機能により実行されtでもよい。マニフェスト、レシート(実際のとスタブのレシート)、並びにユーザ・アカウント情報等(例えば、まだアドプションされていないアプリケーションに対する資格証明、または所有権)を含むアプリケーション情報は、いくつかの例において、ソフトウェア・アドプション要求としてサーバに送信される(505)。アプリケーション情報は、インストールされているアプリケーション、インストール可能なアプリケーション及びアドプションされるアプリケーションをユーザに報知するページ購入を生成するためにサーバに送信される(505)。送信されるアプリケーション情報は、ユーザがクライアント上にサインインしているかに依存する。例えばユーザ・アカウント情報は、アクセス可能であり、ユーザがクライアント上にサインインされる場合にアプリケーション情報の一部として送信される。上述したように、ユーザ・アカウント情報は、ユーザ・アカウントに関連付けられたアプリケーションに関する情報を含む。同様に、レシートは、クライアントが実行している電子装置と関連付けられたアプリケーションに関する情報を含む。マニフェストは、電子装置に元々プリ・インストールされていたアプリケーションの情報、或いはユーザが所有権を有するがユーザ装置にインストールされていないか、またはユーザ・アカウントに関連付けられていないアプリケーションの情報を含む。他の種類のアプリケーション情報がページ購入を生成するためにサーバに更に送信されるため、これらは、例示的な種類のアプリケーション情報にすぎない。
【0044】
サーバは、送信されたアプリケーション情報(すなわち、マニフェスト、レシート、ユーザ・アカウント及び他のユーザ・アカウント情報)を受信し、受信した情報に基づいてアプリケーションの1つ以上のリストを作成する(507)。アプリケーションリスト及びアプリケーションリストを作成するために使用された処理は、受信した情報に依存して変動する。第1のアプリケーションリストは、クライアントの電子装置にインストールされるアプリケーションを含む。第2のアプリケーションリストは、ユーザ・アカウントに関連付けられるアプリケーションを含み、クライアントの電子装置にインストールされる。第3のアプリケーションリストは、場合によってはユーザ・アカウントとリンクされるアプリケーションを含む。第3のリストのアプリケーションは、クライアントの電子装置にプリ・インストールされたアプリケーション、並びに/或いはクライアントが所有権を有するが、アドプション、またはインストールしていないアプリケーションを含む。また、他のアプリケーションリストは、ユーザ・アカウントに関連付けられていない購入されるか、または別の方法で取得されるなどして生成されたアプリケーションである。サーバが受信したアプリケーション情報に依存して、上述のアプリケーションリストのうちの1つ以上が作成される。いくつかの例において、アプリケーションリストの作成は、図2のアプリケーション・データベース220等のアプリケーション・データベースにアクセスすることを含む。サーバは、作成されたアプリケーションリストに基づいてHTMLページを生成する(508)。HTMLページの生成は、アプリケーション・データベースにアクセスし、アプリケーションリストのアプリケーションと関連付けられたメタデータを受信することを含む。例えばメタデータは、アプリケーションの名前、アプリケーションの記述、アプリケーションのバージョン番号、アプリケーションの購入日及びアプリケーションと関連付けられたイメージ等を含む。HTMLページが生成されると、サーバは、HTMLページをクライアントに送信する(509)。クライアントは、次にHTMLページをユーザに提示する(511)。ユーザがクライアント上にサインインしているかに依存して、異なる情報をユーザに提示する。
【0045】
図9は、ユーザがサインインしていない場合にページ購入要求と関連付けられたHTMLページの一例を示す。この例において、HTMLページ550は、アドプション可能なアプリケーションのリスト557をユーザに提示する。アドプション可能な3つのアプリケーションのうち、アプリケーション「iMovie」及び「GarageBand」は、それぞれ文章558及び559により示されるように利用可能な更新(Update Available)を有する。HTMLページ550は購入リンク551を含む。いくつかの例において、購入リンク551は、図5の更新リンク451と同様に、またはほぼ同様に機能する。HTMLページ550は、アドプション可能なアプリケーションの数をユーザに報知するヘッドライン553を更に含む。記述555は、ユーザがアプリケーションをアドプションしたいか否かを判定するのを支援することを期待してアドプション処理の説明をユーザに提供する。HTMLページ550は、ユーザ・アカウントに関連付けられる購入(purchases)に関する情報を受信するためにユーザ・アカウントにサインインしなければならないことをユーザに報知する命令552を更に含む。この例において、HTMLページ550は、ユーザにより選択される場合にアドプション処理を開始する1つの承諾(ACCEP)リンク554を含む。他の例において、HTMLページ550がアドプション可能なアプリケーション毎に承諾リンクを含むため、ユーザは、アドプション可能な単一のアプリケーション、アドプション可能な複数のアプリケーション、またはアドプション可能な全てのアプリケーションを承諾することを選択できる。ユーザは、タッチスクリーン、マウスクリック、キーボード、または他のユーザ入力装置を介して承諾リンク554を選択する。
【0046】
図10は、ユーザがサインインしている場合にページ購入要求と関連付けられたHTMLページの別の例を示す。HTMLページ560は、2つのアプリケーションリストをユーザに提示する。この例において、アプリケーションリスト562の提示はアドプション可能なアプリケーションを含み、アプリケーションリスト564の提示は以前に購入されているアプリケーションを含む。2つのアプリケーションリストは、HTMLページ560の独立した別個の部分において提示される。アプリケーションリスト564の提示は、アプリケーションの名前、アプリケーションと関連付けられたイメージ、ソフトウェアメーカ、購入日及び状況566等の以前に購入されたアプリケーションと関連付けられたメタデータを含む。状況566は、購入されたアプリケーションの現在の状態を表示するように構成される。例えば、アプリケーションが現在クライアントの電子装置にインストールされている場合、状況566は「インストール済状態」である。状況566は、この状態の場合に文章「インストール済」を表示するように構成される。この例において、購入された4つのアプリケーションは、全てクライアントの電子装置にインストールされる。別の例として、アプリケーションが購入されるが、クライアントの電子装置にインストールされない場合、状況566は「インストール状態」である。例えばアプリケーションは、この装置にダウンロードされていないか、或いは選択的に装置から削除されている。状況566は、この状態の場合に文章「インストール」を表示するように構成される。更に状況566は、「インストール状態」の場合にユーザが選択可能なリンクを含む。ユーザが選択可能なリンクを選択する結果、アプリケーションは、電子装置にダウンロード及びインストールされる。
【0047】
図8に戻ると、クライアントは、アプリケーションをアドプションする要求としてユーザ入力を受信する(513)。いくつかの例において、ユーザ入力は、図9の承諾リンク554を選択することである。クライアントは、アプリケーションをユーザ・アカウントにリンクするためにユーザ認証を要求する(515)。アプリケーションをユーザ・アカウントにリンクするためにユーザ認証を要求する認証プロンプトを含むHTMLページの一例を図11に示す。
【0048】
図11は、認証プロンプトを含むページ購入要求と関連付けられたHTMLページの別の例を示す。ユーザがプリ・インストールアプリケーションのアドプションを承諾することを選択する場合、HTMLページ570は認証プロンプト575を含む。認証プロンプト575は、サーバから送信されたHTMLページの一部として含まれ、ユーザがプリ・インストールアプリケーションのアドプションを承諾することを選択した後でユーザに提示される。いくつかの例において、認証プロンプト575は、図7の認証プロンプト480と同一であるか、或いはほぼ同様である。
【0049】
図8に戻ると、クライアントは、ユーザ認証を受信し、アプリケーションをユーザ・アカウントにリンクする。ユーザ・アカウントは、ユーザ認証中に入力されるユーザ・アカウントである。例えばユーザは、アプリケーションに関連付けられるユーザ・アカウントのユーザ名及びパスワードを入力する。クライアントは、ユーザ認証を受信した後、アプリケーションのアドプションに進む(519)。アプリケーションをユーザ・アカウントに対してアドプションする例示的な処理を図12において以下に説明する。いくつかの例において、全てのプリ・インストールアプリケーションは、同時にユーザ・アカウントに関連付けられなければならない。従って、ユーザは、電子装置と関連付けられた1つのプリ・インストールアプリケーションを1つのユーザ・アカウントと選択的にリンクできず、電子装置と関連付けられた別のプリ・インストールアプリケーションを別のユーザ・アカウントと選択的にリンクできない。プリ・インストールアプリケーションがアドプションされていることをサーバを通知するには電子装置と関連付けられた一意的ハードウェア識別子で十分であるため、電子装置上で全てのプリ・インストールアプリケーションを同時にアドプションすることにより、アドプション処理を管理する際の計算オーバヘッドは簡略化される。電子装置上のプリ・インストールアプリケーションが選択的に多数のアカウントと関連付けられる他の例において、サーバ上でプリ・インストールアプリケーションを管理するには、電子装置の一意的ハードウェア識別子に加えてアドプションされているプリ・インストールアプリケーションを格納する必要がある。
【0050】
図12は、プリ・インストールアプリケーションをユーザ・アカウントにリンクする例示的な方法を示す。クライアントとサーバとの間で実行された通信プロトコルを示す方法600は、プリ・インストールアプリケーションをユーザ・アカウントにリンクする処理を管理するように構成される。サーバにより実行された動作は、配信センター上のプログラム、またはサーバ側の他の構成要素により実行され、クライアントにより実行された動作は、クライアントの電子装置上に格納されたアプリケーション管理プログラムにより実行される。アプリケーション管理プログラムは、クライアント上に格納されたソフトウェアアプリケーションをインストール、削除、維持、または別の方法で管理するように構成される。いくつかの例において、配信センター上に格納された配信プログラム及び電子装置上に格納されたアプリケーション管理プログラムは、図4の方法400及び/または図5の方法500を更に実行するように構成される。いくつかの例において、方法600は、図4の「アプリケーションアドプションに進む」(421)、または図8の「アプリケーションアドプションに進む」(519)の後で実行される。
【0051】
方法600は、一意的ハードウェア識別子を生成する(620)。一意的ハードウェア識別子は、正当なアプリケーションの所有権、または資格のデジタルレシートとして機能する。一意的ハードウェア識別子は、電子装置に特有の1つ以上の識別子を組み合わせることから生成される。例えば一意的ハードウェア識別子は、電子装置のハードウェアコンポーネントと関連付けられた1つ以上の識別子に基づく。ハードウェアコンポーネントの識別子が一意であるため、2つの一意的ハードウェア識別子は同一ではない。一例として、一意的ハードウェア識別子は、装置のロジックボードシリアル番号を装置のイーサネットハードウェアアドレスと組み合わせることで生成される。ロジックボードシリアル番号及びイーサネットハードウェアアドレスは、連結、ハッシング、符号化方式、または他のデータ操作アルゴリズムを使用して組み合わされる。一意的ハードウェア識別子は、プリ・インストールアプリケーションをユーザ・アカウントに関連付ける要求の一部としてクライアントからサーバに送信される(630)。プリ・インストールアプリケーションが選択的にアドプションされる他の例において、プリ・インストールアプリケーションと関連付けられたメタデータは、クライアントからサーバに更に送信される。メタデータが詳細をサーバに提供することにより、サーバは、ユーザがユーザ・アカウントにアドプションしようとしている選択されたプリ・インストールアプリケーションを識別できる。サーバは、一意的ハードウェア識別子及び必要に応じてメタデータを受信した後、プリ・インストールアプリケーションがユーザ・アカウントと既にリンクされているかを判定する(640)ことにより、資格証明を検証する。サーバは、一意的ハードウェア識別子に対する一意性テーブルをチェックすることでアプリケーションが既にリンクされているかを判定する。一意性テーブルがプリ・インストールアプリケーションを既にアドプションしている電子装置の一意的ハードウェア識別子を含むエントリを格納するため、テーブルにおいて見つけられない一意的ハードウェア識別子は、電子装置がまだいずれのプリ・インストールアプリケーションも関連付けていないことを示す。方法600により、プリ・インストールアプリケーションを選択的にアドプションできる場合、判定は、一意的ハードウェア識別子と関連付けられたエントリに対する一意性テーブルをクエリすることを含む。一意的ハードウェア識別子が見つけられる場合、判定は、プリ・インストールアプリケーションのメタデータでエントリを評価し、選択されたプリ・インストールアプリケーションが以前にアドプションされているかを判定する。
【0052】
一意性テーブルを探索(すなわち、クエリ)することからアプリケーションが以前にアドプションされていると判定される場合、エラーが再度クライアントに送信される(641)。クライアントは、エラーを受信し、アプリケーションが既にアドプションされているという警告をユーザに提示する(642)。図13は、アドプション警告の一例を示す。警告700は、プリ・インストールアプリケーションが異なるユーザ・アカウントに既に割り当てられているため、ユーザが自身のユーザ・アカウントに関連付けたい1つ以上のアプリケーションを割り当てられないことをユーザに通知する。一方、一意性テーブルを探索することからアプリケーションが以前にアドプションされてないと判定される場合、サーバは、サニティチェックを実行し、プリ・インストールアプリケーションが電子装置の元の設定、すなわちデフォルト設定の一部であるかを判定する(650)。換言すると、サーバは、プリ・インストールアプリケーションがインストールされた状態で電子装置が構成され、製造業者から供給されたかを判定する。このようなサニティチェックにより、ユーザがある電子装置に元々インストールされていたプリ・インストールアプリケーションを別の電子装置にコピーし、違法コピーをユーザ・アカウントに関連付けようとすることを阻止する。サーバは、一意的ハードウェア識別子を含む設定サーバをクエリし、一意的ハードウェア識別子と関連付けられた電子装置の元の設定を受信する。元の設定は、プリ・インストールアプリケーションのリストを判定するように調査される。このプリアプリケーションのリストは、ユーザがアドプションしようとしているアプリケーションと比較され、そのアプリケーションがアドプション可能であるかを判定する。他の例において、元の設定に対してクエリするために使用されたデータベースのコピーが配信センターに格納されることにより、一意的ハードウェア識別子を配信センターにおいて完全に評価できる。これにより、設定サーバへのネットワークトラフィックが減少する。
【0053】
ユーザがアドプションしたいアプリケーションが電子装置の元の設定の一部ではないと判定される場合、エラーメッセージがクライアントに送信される(651)。クライアントは、エラーメッセージを受信すると、電子装置がアドプションの対象とならないという警告をユーザに提示する(642)。図14は、アドプション警告の別の例を示す。電子装置(本明細書において「Mac」と名付けられた)がプリ・インストールアプリケーションをユーザ・アカウントに関連付ける資格がないため、警告750は、アプリケーションをユーザ・アカウントに割り当てられないことをユーザに通知する。他の例において、警告750は、電子装置が元々プリ・インストールアプリケーションで構成されていないことをユーザに報知するために提供された図、または他の文を含む。一方、ユーザがアドプションしたいアプリケーションが電子装置の元の設定の一部であると判定される場合、更なるサニティチェックがあれば実行される。サーバは、プリ・インストールアプリケーションがユーザ・アカウントにリンクされることを検証すると、サーバ上に格納された一意性テーブル及びユーザ・アカウントを更新し(660)、電子装置のプリ・インストールアプリケーションがアドプションされている(従って、別のユーザ・アカウントによりアドプションされない)ことを示す。上述したように、アドプションされているプリ・インストールアプリケーションは、次にユーザ・アカウントに関連付けられる電子装置のプリ・インストールアプリケーションであるため、アプリケーションと関連付けられた更新及び再ダウンロードは、ユーザ・アカウントに関連付けられた電子装置にダウンロードされる。サーバは、認可メッセージをクライアントに送信し、要求が認可されることをクライアントに報知する(670)。要求をリンクすることが評価され、真の要求であることが分かっているため、認可メッセージは、プリ・インストールアプリケーションが次にサーバ上のユーザ・アカウントに関連付けられることをクライアントに報知、または通知する。クライアントは、認可メッセージを受信し、プリ・インストールアプリケーションをクライアント上に格納されたユーザ・アカウントとリンクする(680)。いくつかの例において、クライアントは、ユーザ・アカウントとリンクされているプリ・インストールアプリケーションと関連付けられたメタデータをマニフェストから削除することにより、電子装置上に格納されたマニフェストを更に更新する。プリ・インストールアプリケーションと関連付けられたメタデータを削除することは、アプリケーションがアドプション可能であるかを判定するために実行されるチェックを最小限にすることでアドプション処理を簡略化する。クライアントは、要求を配信センター、またはサーバの他の構成要素に送信し、アプリケーションをダウンロードする(690)。
【0054】
方法600は、ポストインストールアプリケーション(すなわち、ユーザがインストールしたアプリケーション)をアドプションするために更に構成される。ポストインストールアプリケーションは、装置が製造業者から出荷された後、またはユーザにより購入された後にユーザの装置にインストールされている贈与、購入、償還、或いは別の方法で取得されたアプリケーションを含む。例えば方法600は、一意的ハードウェア識別子を生成するのではなく、アプリケーションと関連付けられた一意的識別子を生成する(620)。一意的識別子は、資格証明、またはアプリケーションの購入の証明を示すために使用されるアプリケーションと関連付けられたメタデータである。一意的識別子は、アプリケーションのメタデータに格納され、次にクライアント装置により検索される。、或いは、一意的識別子は、アプリケーションのメタデータに基づいて生成される。例えば一意的識別子は、アプリケーションの一意的レシート、または非一意的レシート、アプリケーションが取得された日付及び/または場所等のアプリケーションを受信することに関連したメタデータ、クライアント装置と関連付けられた一意的識別子、並びに/或いはアプリケーション、またはクライアント装置と関連付けられた他のメタデータから導出される。
【0055】
いくつかの例において、通信プロトコルは、一意的識別子がプリ・インストールアプリケーション(すなわち、製造業者がインストールしたアプリケーション)、またはポストインストールアプリケーション(すなわち、ユーザがインストールしたアプリケーション)と関連付けられるかに依存する。例えば、クライアントから受信した一意的識別子がポストインストールされたアプリケーションと関連付けられるために電子装置の元の設定の一部ではない場合、通信プロトコルは、アプリケーションが電子装置の元の設定の一部であると確認する(650)ことをスキップする。代わりに、サーバは、一意的識別子を正当な一意的識別子のデータベースと比較することにより、資格証明、またはアプリケーションの所有権を検証する。これにより、サーバは、アプリケーションの正当なコピーと不当なコピーとを区別及び判別できる。資格証明が検証されると、アプリケーションはユーザ・アカウントの一部としてアドプションされる。アプリケーションがプリ・インストール、またはポストインストールされるかを判定するため、サーバは、フラグ、または一意的識別子と関連付けられた他のメタデータを解析する。
【0056】
更に他の例において、通信プロトコルは、クライアントから受信した一意的識別子がクライアント電子装置と関連付けられたメタデータに基づくかに依存する。例えば、アプリケーションが既にリンクされているかを判定するためにサーバによりアクセスされたデータベース、またはテーブルは、一意的識別子に依存する。第1のデータベースは、クライアント電子装置と関連付けられた一意的識別子に対してサーバによりアクセス及び更新される。第1のデータベースは、電子装置のハードウェアに基づいてキー入力され、探索可能である。第2のデータベースは、クライアント装置と関連付けられない一意的識別子に対してサーバによりアクセス及び更新される。換言すると、これらの一意的識別子がアプリケーションと関連付けられた資格証明のみに基づくため、第2のデータベースを探索することは、資格証明、または資格証明の何らかの変形例に基づく。
【0057】
図15は、電子装置上の回復モードに対する例示的な処理を示す。一般に、回復モードにより、電子装置は、アプリケーション、またはオペレーティングシステムに対する内部の致命的エラーを解決できる。オペレーティングシステム全体を回復する極端な例において、この手法は、記憶装置を再フォーマットし、オペレーティングシステムを再インストールする。回復モードの特定の実現例に依存して、再インストールされているオペレーティングシステムは変動する。一例として、再インストールされたオペレーティングシステムは、元々電子装置にインストールされており、その後手動及び/または自動的に更新されるオペレーティングシステムである。別の例として、再インストールされたオペレーティングシステムは、元々インストールされていたオペレーティングシステム以来リリースされている1つ以上の更新を組み込む。更に他の例において、製造業者から利用可能な最新のオペレーティングシステムが再インストールされる。一般に回復モードは、プリ・インストールアプリケーションを再インストールせずにオペレーティングシステムのみを再インストールする。そのため、ユーザ・アカウントに関連付けられていないか、或いはリンクされていないプリ・インストールアプリケーションを損失する。処理800は、回復モード中に設定サーバからマニフェストを検索することでこの問題を解決する。
【0058】
処理800は、回復モードに入る(820)ことで開始する。回復モードに入ることは、製造業者から基本オペレーティングシステムをダウンロードすることをトリガする。基本オペレーティングシステムは、一意的ハードウェア生成する(830)ように構成される。一意的ハードウェア識別子は、上述の方法のうちの1つを使用して生成される。一意的ハードウェア識別子が生成されると、基本オペレーティングシステムは、一意的ハードウェア識別子を設定サーバに送信する(840)。受信した一意的ハードウェア識別子に基づいて、設定サーバは、電子装置にプリ・インストールされたアプリケーション及びこれらのアプリケーションのバージョン番号を含むマニフェストを返送する。マニフェストは、電子装置の所有者が所有権を有する他のアプリケーションを更に含む。いくつかの例において、通信サーバは、配信サーバと通信し、電子装置がアプリケーションを既にアドプションしたかを判定する。一意的ハードウェア識別子が配信センターの一意性テーブルにおいて見つけられる場合、電子装置のプリ・インストールアプリケーションのうちの1つ以上は既にアドプションされている。従って、通信サーバは、空のマニフェスト、または既にアドプションされている特定のプリ・インストールアプリケーションを含まないマニフェストを返送する。これにより、プリ・インストールアプリケーションが既にアドプションされている場合にアドプションのためにページ購入要求がプリ・インストールアプリケーションをユーザに提示することを最小限にする。配信センターが構成データベースのローカルコピーを格納する他の例において、一意的ハードウェア識別子は、設定サーバではなく配信センターに送信される。一意的ハードウェア識別子を使用することにより、配信センターは、プリ・インストールアプリケーション及びユーザ・アカウントと既に関連付けられているアプリケーションを判定する。
【0059】
設定サーバ(、または配信センター)は、電子装置に付いてくるオペレーティングシステムのバージョン番号及び電子装置のプリ・インストールアプリケーションに基づくマニフェストを返送する(850)。他の例において、マニフェストは、ユーザ・アカウントとリンクされていない電子装置のポストインストールアプリケーションを更に含む(850)。電子装置がユーザ・アカウントに関連付けられていないアプリケーションをインストールする場合、設定サーバ上に格納されたマニフェストは定期的に更新される。これは、ネットワーク障害、サーバ障害、またはこの時点でアプリケーションをユーザ・アカウントに関連付けないというユーザが選択したオプション等の種々の理由のために発生する。オペレーティングシステムのバージョン番号は、オペレーティングシステムサーバに送信される(860)。その結果、元のオペレーティングシステムを電子装置に送信する。電子装置は、元のオペレーティングシステムを受信し(870)、必要に応じて元のオペレーティングシステムをインストールする。次に、電子装置は、電子装置のプリ・インストールアプリケーションに基づいて元のオペレーティングシステム及びマニフェストの新しいコピーを含む。ユーザは、プリ・インストールアプリケーションをユーザ・アカウントに関連付けていない場合、上述したようにページ購入リンクを選択することでそれを実行する。
【0060】
本発明の範囲内の実施形態は、コンピュータが実行可能な命令、またはデータ構造を保持するか、或いはそれを格納した有形のコンピュータ可読記憶媒体及び/またはコンピュータ可読の非一時的記憶媒体を更に含む。そのようなコンピュータ可読の非一時的記憶媒体は、汎用コンピュータ、または上述したようにあらゆる専用プロセッサの機能設計を含む専用コンピュータによりアクセスされるあらゆる使用可能な媒体である。非限定例として、そのようなコンピュータ可読の非一時的記憶媒体は、RAM、ROM、EEPROM、CD−ROM、或いは他の光ディスク記憶装置、磁気ディスク記憶装置、または他の磁気記憶装置、或いはコンピュータが実行可能な命令、データ構造、またはプロセッサチップ設計の形態の所望のプログラムコード手段を保持、或いは格納するために使用される他のあらゆる媒体を含む。情報がネットワーク、または別の通信接続(ハードワイヤード、無線、またはそれらの組合せのいずれか)を介してコンピュータに転送、或いは提供される場合、コンピュータは、正式に接続をコンピュータ可読媒体として見なす。従って、そのようなあらゆる接続を正式にコンピュータ可読媒体と呼ぶ。上述の組合せは、コンピュータ可読媒体の範囲内にも含まれるべきである。
【0061】
例えば、コンピュータが実行可能な命令は、ある特定の機能、または機能のグループを汎用コンピュータ、専用コンピュータ、或いは専用処理装置に実行させる命令及びデータを含む。コンピュータが実行可能な命令は、スタンドアロン環境、またはネットワーク環境においてコンピュータにより実行されるプログラムモジュールを更に含む。一般にプログラムモジュールは、特定のタスクを実行するか、或いは特定の抽象データ型を実現する専用プロセッサの設計に固有のルーチン、プログラム、構成要素、データ構造、オブジェクト及び機能等を含む。コンピュータが実行可能な命令、関連したデータ構造及びプログラムモジュールは、本明細書において開示した方法のステップを実行するプログラムコード手段の例を示す。そのような実行可能な命令、または関連したデータ構造の特定のシーケンスは、そのようなステップにおいて説明した機能を実現する対応する動作の例を示す。
【0062】
本発明の他の実施形態がパーソナルコンピュータ、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースの購買者向けの電子機器、またはプログラム可能な購買者向けの電子機器、ネットワークPC、ミニコンピュータ及びメインフレームコンピュータ等を含む多くの種類のコンピュータシステム構成でネットワークコンピューティング環境において実施されることは、当業者により理解されるだろう。実施形態は、通信ネットワークを介してリンクされる(ハードワイヤードリンク、無線リンク、またはそれらの組合せのいずれかにより)ローカル処理装置及びリモート処理装置によりタスクが実行される分散コンピューティング環境において更に実施される。分散コンピューティング環境において、プログラムモジュールは、ローカルメモリ記憶装置及びリモートメモリ記憶装置の双方に配置される。
【0063】
上述した種々の実施形態は、例示するためだけに提供され、本発明の範囲を限定するものとして解釈されるべきではない。本明細書において例示し且つ説明した実施形態及びアプリケーションの例に従わずに、本発明の趣旨及び範囲から逸脱せずに、本明細書において説明した原理に対して行われる種々の変形及び変更は、当業者により容易に理解されるだろう。
【特許請求の範囲】
【請求項1】
第1のクライアント装置にインストールされているアプリケーションがアドプションに適格であるかを、前記第1のクライアント装置上にインストールされている当該アプリケーションがサーバによる配信可能に構成されていることを判定することにより、サーバにより検証するステップと、
前記アプリケーションが以前にアドプションされていないことを前記サーバにより検証する検証ステップであって、
前記インストールされたアプリケーションに関連付けられたメタデータから前記インストールされたアプリケーションの個々のコピーを一意的に識別する一意的識別子を自動的に検索する副ステップと、
前記一意的識別子がいずれのユーザ・アカウントとも関連付けられていないことを検証する副ステップと、
を含む前記検証ステップと、
前記インストールされたアプリケーションがアドプションに適格であるという通知を前記サーバから前記第1のクライアント装置に配信するステップと、
を備えることを特徴とする方法。
【請求項2】
前記サーバにより前記アプリケーションを1つのユーザ・アカウントにアドプションするステップを更に備え、前記アドプションとは、前記ユーザ・アカウントに関連付けられた1つ以上のクライアント装置に前記アドプションされたアプリケーションに関する特典を許可するように、前記ユーザ・アカウントを構成する、ことを特徴とする請求項1記載の方法。
【請求項3】
前記特典は、前記アプリケーションを、ダウンロードし、再ダウンロードし、そして、更新することを含む、ことを特徴とする請求項2記載の方法。
【請求項4】
第2のクライアント装置を前記ユーザ・アカウントに登録するステップと、
前記アドプションされたアプリケーションを前記第2のクライアント装置に送信するステップと、
を更に備える、ことを特徴とする請求項2、または3記載の方法。
【請求項5】
前記一意的識別子は、前記個々のコピーに対する資格証明であることを特徴とする請求項1から4のいずれか1項に記載の方法。
【請求項6】
前記アプリケーションは、前記ユーザ・アカウントに関連付けられた1つ以上のクライアント装置に前にインストールされたことがある、ことを特徴とする請求項2から5のいずれか1項に記載の方法。
【請求項7】
本方法は、ユーザ要求に応答して実行される、ことを特徴とする請求項1から6のいずれか1項に記載の方法。
【請求項8】
アドプション可能な複数のアプリケーションを前記クライアント装置に通知するステップと、
アドプションのために、前記複数のアプリケーションのうちの少なくとも1つのアプリケーションを選択する入力を承諾するステップを更に備える、ことを特徴とする請求項1から7のいずれか1項に記載の方法。
【請求項9】
自動的に前記一意的識別子を検索する前記ステップは、前記一意的識別子に対して前記サーバ上でデータベースをクエリすることを含むことを特徴とする請求項1から8のいずれか1項に記載の方法。
【請求項10】
ソフトウェアパッケージをアドプションすることは、前記ソフトウェアパッケージに対する資格証明に基づいてデータベースを更新することを更に含むことを特徴とする請求項1から9のいずれか1項に記載の方法。
【請求項11】
前記一意的識別子は、前記クライアント装置と関連付けられたハードウェアから導き出し可能な値を含むことを特徴とする請求項1から9のいずれか1項に記載の方法。
【請求項12】
プロセッサと、
記憶装置と、
前記プロセッサを制御する命令を格納するように構成されたメモリと、
を具備するシステムであって、前記命令が、
クライアント装置にインストールされているアプリケーションがアドプションに適格であるかを、前記クライアント装置にインストールされた前記アプリケーションがサーバにより配信されるように構成されていることを判定することにより、検証するステップと、
前記アプリケーションが前にアドプションされていないことを前記サーバにより検証するステップであって、
前記インストールされたアプリケーションと関連付けられたメタデータから、前記インストールされたアプリケーションの個々のコピーを一意的に識別する一意的識別子を自動的に検索する副ステップと、
前記一意的識別子がいずれのユーザ・アカウントとも関連付けられていないことを検証する副ステップとを含む、前記検証ステップと、
前記インストールされたアプリケーションがアドプションに適格であるという通知を前記サーバから前記クライアント装置に配信するステップとを含む、ことを特徴とするシステム。
【請求項13】
前記メモリは、前記サーバにより前記アプリケーションを1つのユーザ・アカウントにアドプションするステップを更に備え、前記アドプションとは、前記ユーザ・アカウントに関連付けられた1つ以上のクライアント装置に前記アドプションされたアプリケーションに関する特典を許可するように、前記ユーザ・アカウントを構成する、
ことを特徴とする請求項12記載のシステム。
【請求項14】
前記特典は、前記アプリケーションを、ダウンロードし、再ダウンロードし、そして、更新することを含む、ことを特徴とする請求項13記載のシステム。
【請求項15】
前記メモリは、別のクライアント装置を前記ユーザ・アカウントに登録する命令と、前記アドプションされたアプリケーションを前記別のクライアント装置に送信する命令とを更に含む、ことを特徴とする請求項12から14のいずれか1項に記載のシステム。
【請求項16】
前記アプリケーションは、前記ユーザ・アカウントに関連付けられた1つ以上のクライアント装置に前にインストールされたことがある、ことを特徴とする請求項12から15のいずれか1項に記載のシステム。
【請求項17】
前記メモリは、アドプション可能な複数のアプリケーションを前記クライアント装置に通知する命令と、前記複数のアプリケーションのうちの1つを選択する入力を承諾する命令とを更に含む、ことを特徴とする請求項12から16のいずれか1項に記載のシステム。
【請求項18】
コンピュータ装置に実行させる命令を格納するコンピュータ可読の非一時的記録媒体であって、前記命令は、コンピュータ装置により実行されると、
クライアント装置にインストールされているアプリケーションがアドプションに適格であるかを、前記クライアント装置上にインストールされている当該アプリケーションがサーバによる配信可能に構成されていることを判定することにより、サーバにより検証するステップと、
前記アプリケーションが以前にアドプションされていないことを前記サーバにより検証する検証ステップであって、
前記インストールされたアプリケーションに関連付けられたメタデータから前記インストールされたアプリケーションの個々のコピーを一意的に識別する一意的識別子を自動的に検索する副ステップと、
前記一意的識別子がいずれのユーザ・アカウントとも関連付けられていないことを検証する副ステップと、
を含む前記検証ステップと、
前記インストールされたアプリケーションがアドプションに適格であるという通知を前記サーバから前記第1のクライアント装置に配信するステップとを前記コンピュータ装置に実行させる、
ことを特徴とするコンピュータ可読の非一時的記憶媒体。
【請求項19】
前記アプリケーションがクライアント装置にインストールされていることを検証する前記ステップ、前記アプリケーションが以前にアドプションされていないことを検証する前記ステップ、そして前記通知を配信する前記ステップは、ユーザ要求に応答して実行される、ことを特徴とする請求項18記載のコンピュータ可読の非一時的記憶媒体。
【請求項20】
前記サーバにより前記アプリケーションを1つのユーザ・アカウントにアドプションするステップを更に備え、前記アドプションとは、前記ユーザ・アカウントに関連付けられた1つ以上のクライアント装置に前記アドプションされたアプリケーションに関する特典を許可するように、前記ユーザ・アカウントを構成する、ことを特徴とする請求項18、または19記載のコンピュータ可読の非一時的記憶媒体。
【請求項1】
第1のクライアント装置にインストールされているアプリケーションがアドプションに適格であるかを、前記第1のクライアント装置上にインストールされている当該アプリケーションがサーバによる配信可能に構成されていることを判定することにより、サーバにより検証するステップと、
前記アプリケーションが以前にアドプションされていないことを前記サーバにより検証する検証ステップであって、
前記インストールされたアプリケーションに関連付けられたメタデータから前記インストールされたアプリケーションの個々のコピーを一意的に識別する一意的識別子を自動的に検索する副ステップと、
前記一意的識別子がいずれのユーザ・アカウントとも関連付けられていないことを検証する副ステップと、
を含む前記検証ステップと、
前記インストールされたアプリケーションがアドプションに適格であるという通知を前記サーバから前記第1のクライアント装置に配信するステップと、
を備えることを特徴とする方法。
【請求項2】
前記サーバにより前記アプリケーションを1つのユーザ・アカウントにアドプションするステップを更に備え、前記アドプションとは、前記ユーザ・アカウントに関連付けられた1つ以上のクライアント装置に前記アドプションされたアプリケーションに関する特典を許可するように、前記ユーザ・アカウントを構成する、ことを特徴とする請求項1記載の方法。
【請求項3】
前記特典は、前記アプリケーションを、ダウンロードし、再ダウンロードし、そして、更新することを含む、ことを特徴とする請求項2記載の方法。
【請求項4】
第2のクライアント装置を前記ユーザ・アカウントに登録するステップと、
前記アドプションされたアプリケーションを前記第2のクライアント装置に送信するステップと、
を更に備える、ことを特徴とする請求項2、または3記載の方法。
【請求項5】
前記一意的識別子は、前記個々のコピーに対する資格証明であることを特徴とする請求項1から4のいずれか1項に記載の方法。
【請求項6】
前記アプリケーションは、前記ユーザ・アカウントに関連付けられた1つ以上のクライアント装置に前にインストールされたことがある、ことを特徴とする請求項2から5のいずれか1項に記載の方法。
【請求項7】
本方法は、ユーザ要求に応答して実行される、ことを特徴とする請求項1から6のいずれか1項に記載の方法。
【請求項8】
アドプション可能な複数のアプリケーションを前記クライアント装置に通知するステップと、
アドプションのために、前記複数のアプリケーションのうちの少なくとも1つのアプリケーションを選択する入力を承諾するステップを更に備える、ことを特徴とする請求項1から7のいずれか1項に記載の方法。
【請求項9】
自動的に前記一意的識別子を検索する前記ステップは、前記一意的識別子に対して前記サーバ上でデータベースをクエリすることを含むことを特徴とする請求項1から8のいずれか1項に記載の方法。
【請求項10】
ソフトウェアパッケージをアドプションすることは、前記ソフトウェアパッケージに対する資格証明に基づいてデータベースを更新することを更に含むことを特徴とする請求項1から9のいずれか1項に記載の方法。
【請求項11】
前記一意的識別子は、前記クライアント装置と関連付けられたハードウェアから導き出し可能な値を含むことを特徴とする請求項1から9のいずれか1項に記載の方法。
【請求項12】
プロセッサと、
記憶装置と、
前記プロセッサを制御する命令を格納するように構成されたメモリと、
を具備するシステムであって、前記命令が、
クライアント装置にインストールされているアプリケーションがアドプションに適格であるかを、前記クライアント装置にインストールされた前記アプリケーションがサーバにより配信されるように構成されていることを判定することにより、検証するステップと、
前記アプリケーションが前にアドプションされていないことを前記サーバにより検証するステップであって、
前記インストールされたアプリケーションと関連付けられたメタデータから、前記インストールされたアプリケーションの個々のコピーを一意的に識別する一意的識別子を自動的に検索する副ステップと、
前記一意的識別子がいずれのユーザ・アカウントとも関連付けられていないことを検証する副ステップとを含む、前記検証ステップと、
前記インストールされたアプリケーションがアドプションに適格であるという通知を前記サーバから前記クライアント装置に配信するステップとを含む、ことを特徴とするシステム。
【請求項13】
前記メモリは、前記サーバにより前記アプリケーションを1つのユーザ・アカウントにアドプションするステップを更に備え、前記アドプションとは、前記ユーザ・アカウントに関連付けられた1つ以上のクライアント装置に前記アドプションされたアプリケーションに関する特典を許可するように、前記ユーザ・アカウントを構成する、
ことを特徴とする請求項12記載のシステム。
【請求項14】
前記特典は、前記アプリケーションを、ダウンロードし、再ダウンロードし、そして、更新することを含む、ことを特徴とする請求項13記載のシステム。
【請求項15】
前記メモリは、別のクライアント装置を前記ユーザ・アカウントに登録する命令と、前記アドプションされたアプリケーションを前記別のクライアント装置に送信する命令とを更に含む、ことを特徴とする請求項12から14のいずれか1項に記載のシステム。
【請求項16】
前記アプリケーションは、前記ユーザ・アカウントに関連付けられた1つ以上のクライアント装置に前にインストールされたことがある、ことを特徴とする請求項12から15のいずれか1項に記載のシステム。
【請求項17】
前記メモリは、アドプション可能な複数のアプリケーションを前記クライアント装置に通知する命令と、前記複数のアプリケーションのうちの1つを選択する入力を承諾する命令とを更に含む、ことを特徴とする請求項12から16のいずれか1項に記載のシステム。
【請求項18】
コンピュータ装置に実行させる命令を格納するコンピュータ可読の非一時的記録媒体であって、前記命令は、コンピュータ装置により実行されると、
クライアント装置にインストールされているアプリケーションがアドプションに適格であるかを、前記クライアント装置上にインストールされている当該アプリケーションがサーバによる配信可能に構成されていることを判定することにより、サーバにより検証するステップと、
前記アプリケーションが以前にアドプションされていないことを前記サーバにより検証する検証ステップであって、
前記インストールされたアプリケーションに関連付けられたメタデータから前記インストールされたアプリケーションの個々のコピーを一意的に識別する一意的識別子を自動的に検索する副ステップと、
前記一意的識別子がいずれのユーザ・アカウントとも関連付けられていないことを検証する副ステップと、
を含む前記検証ステップと、
前記インストールされたアプリケーションがアドプションに適格であるという通知を前記サーバから前記第1のクライアント装置に配信するステップとを前記コンピュータ装置に実行させる、
ことを特徴とするコンピュータ可読の非一時的記憶媒体。
【請求項19】
前記アプリケーションがクライアント装置にインストールされていることを検証する前記ステップ、前記アプリケーションが以前にアドプションされていないことを検証する前記ステップ、そして前記通知を配信する前記ステップは、ユーザ要求に応答して実行される、ことを特徴とする請求項18記載のコンピュータ可読の非一時的記憶媒体。
【請求項20】
前記サーバにより前記アプリケーションを1つのユーザ・アカウントにアドプションするステップを更に備え、前記アドプションとは、前記ユーザ・アカウントに関連付けられた1つ以上のクライアント装置に前記アドプションされたアプリケーションに関する特典を許可するように、前記ユーザ・アカウントを構成する、ことを特徴とする請求項18、または19記載のコンピュータ可読の非一時的記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2013−20621(P2013−20621A)
【公開日】平成25年1月31日(2013.1.31)
【国際特許分類】
【外国語出願】
【出願番号】特願2012−154900(P2012−154900)
【出願日】平成24年7月10日(2012.7.10)
【公序良俗違反の表示】
特許法第64条第2項第4号の規定により図面の一部または全部を不掲載とする。
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】
【公開日】平成25年1月31日(2013.1.31)
【国際特許分類】
【出願番号】特願2012−154900(P2012−154900)
【出願日】平成24年7月10日(2012.7.10)
【公序良俗違反の表示】
特許法第64条第2項第4号の規定により図面の一部または全部を不掲載とする。
(特許庁注:以下のものは登録商標)
1.イーサネット
【出願人】(503260918)アップル インコーポレイテッド (568)
【Fターム(参考)】
[ Back to top ]