(57)【要約】【課題】プロダクト配布サイトからの支援でデジタルプロダクトのロックされた特徴にアクセスする改良されたシステム、装置及び方法を提供する。【解決手段】デジタルプロダクトを、ネットワークベースの配布のためにプロダクト配布サイトへ提示することができる。デジタルプロダクトは、基本的な機能を発揮するように最初に与えられるが、１つ以上のロックされた特徴を含み、これをアンロックすると、基本的な機能を補足することができる。提示されたデジタルプロダクトが承認された場合には、そのデジタルプロダクトがプロダクト配布サイトにおいて入手可能となり、ユーザは、そのデジタルプロダクトをサーチし、ブラウズし、購入することができる。デジタルプロダクトが購入され、ダウンロードされ、ユーザのコンピューティング装置にインストールされると、ユーザは、デジタルプロダクトを利用することができる。【選択図】図１
2010218559.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムの補足的特徴をアンロックする方法であって、コンピューティング装置で動作される方法において、
コンピューティング装置でアプリケーションプログラムを実行するステップであって、そのアプリケーションプログラムは、リモートネットワークベースのアプリケーション配布システムから以前に取得され、又、アプリケーションプログラムは、現在ロックされてアプリケーションプログラム内に置かれているがアンロックすることのできる少なくとも１つの補足的特徴を含むものであるステップと、
コンピューティング装置において、アプリケーションプログラムのユーザが、現在ロックされている少なくとも１つの補足的特徴の使用権の取得を希望することを決定するステップと、
リモートネットワークベースのアプリケーション配布システムが少なくとも１つの補足的特徴のアンロックを承認することを要求するステップと、
少なくとも１つの補足的特徴がアンロックについて承認されたという許可をリモートネットワークベースのアプリケーション配布システムから受け取るステップと、
その後、コンピューティング装置においてアプリケーションプログラムの少なくとも１つの補足的特徴をアンロックし、それにより、アプリケーションプログラムが少なくとも１つの補足的特徴を利用できるようにするステップと、
を備えた方法。
【請求項２】
前記方法は、更に、
前記決定の前に、前記リモートネットワークベースのアプリケーション配布システムから補足的特徴情報を要求するステップであって、その補足的特徴情報は、少なくとも１つの補足的特徴に関する少なくとも記述情報を含むものであるステップと、
その後、コンピューティング装置において、前記リモートネットワークベースのアプリケーション配布システムから補足的特徴情報を受信するステップと、
前記決定の前に、補足的特徴情報をコンピューティング装置にプレゼンテーションするステップと、
を備えた請求項１に記載の方法。
【請求項３】
前記方法は、アプリケーションプログラムが実行中である間に動作する、請求項１に記載の方法。
【請求項４】
前記要求するステップは、前記リモートネットワークベースのアプリケーション配布システムへ要求を送信することを含み、この要求は、少なくとも、（ｉ）少なくとも１つの補足的特徴に対する特徴識別子と、（ii）アプリケーションプログラムに対するアプリケーション識別子とを含む、請求項１に記載の方法。
【請求項５】
前記補足的特徴は、アプリケーションプログラムの補足的コンポーネントである、請求項１に記載の方法。
【請求項６】
前記補足的特徴は、アプリケーションプログラムに対する付加的なデジタルコンテンツである、請求項１に記載の方法。
【請求項７】
前記コンピューティング装置は、少なくともアプリケーションプログラムを実行できるハンドヘルド電子装置である、請求項１に記載の方法。
【請求項８】
前記コンピューティング装置は、オペレーティングシステムを含み、そしてアプリケーションプログラムとリモートネットワークベースのアプリケーション配布システムとの間の通信は、オペレーティングシステムを通して取り扱われる、請求項１に記載の方法。
【請求項９】
前記決定、前記要求及び前記受け取るステップは、アプリケーションプログラムがまだ動作している間にオペレーティングシステムにより遂行される、請求項８に記載の方法。
【請求項１０】
前記アンロッキングは、アプリケーションプログラムにより遂行される、請求項９に記載の方法。
【請求項１１】
ネットワークベースのアプリケーション配布システムから以前に取得されたアプリケーションプログラムの補足的特徴のアンロッキングを管理するためのコンピュータ実施方法において、
リモートネットワークベースのアプリケーション配布システムからの補足的特徴情報についての要求をコンピューティング装置から受け取るステップと、
アプリケーションプログラムの補足的特徴に関連した補足的特徴情報を検索するステップであって、その補足的特徴情報は、ネットワークベースのアプリケーション配布システムから以前に取得されたアプリケーションプログラムの補足的特徴に関する少なくとも記述情報を含むものであるステップと、
その検索された補足的特徴情報をコンピューティング装置へ送信するステップと、
アプリケーションプログラムの補足的特徴をアンロックするための要求をコンピューティング装置から受信するステップと、
ネットワークベースのアプリケーション配布システムが補足的特徴のアンロッキングを承認するかどうか決定するステップと、
この決定ステップで、ネットワークベースのアプリケーション配布システムが補足的特徴のアンロッキングを承認したと決定する場合に、補足的特徴をアンロックする許可をコンピューティング装置へ送信するステップと、
を備えた方法。
【請求項１２】
前記アプリケーションプログラムは、アプリケーション識別子により識別され、そして前記補足的特徴は、特徴識別子により識別される、請求項１１に記載のコンピュータ実施方法。
【請求項１３】
補足的特徴情報の前記検索は、前記特徴識別子及びアプリケーション識別子に基づく、請求項１２に記載のコンピュータ実施方法。
【請求項１４】
補足的特徴情報の前記検索は、前記特徴識別子が前記アプリケーションプログラムに対するアプリケーション識別子に関連していることを確認することを含む、請求項１２に記載のコンピュータ実施方法。
【請求項１５】
前記補足的特徴情報は、補足的特徴をアンロックするための少なくともコスト情報を含み、そして
前記決定は、ネットワークベースのアプリケーション配布システムにおいて補足的特徴に対する支払処理を開始することを含む、請求項１１に記載のコンピュータ実施方法。
【請求項１６】
ネットワークベースのアプリケーション配布システムから以前に取得されたアプリケーションプログラムの補足的特徴のアンロッキングを管理するためのコンピュータ実施方法において、
ネットワークベースのアプリケーション配布システムから以前に取得されたアプリケーションプログラムの補足的特徴をアンロックするための要求をコンピューティング装置から受け取るステップと、
ネットワークベースのアプリケーション配布システムが補足的特徴のアンロッキングを承認するかどうか決定するステップと、
この決定ステップで、ネットワークベースのアプリケーション配布システムが補足的特徴のアンロッキングを承認したと決定する場合に、補足的特徴をアンロックする許可をコンピューティング装置へ送信するステップと、
を備えた方法。
【請求項１７】
前記アプリケーションプログラムは、アプリケーション識別子により識別され、そして前記補足的特徴は、特徴識別子により識別される、請求項１６に記載のコンピュータ実施方法。
【請求項１８】
少なくとも１つのロックされた特徴を有する少なくとも１つのアプリケーションプログラムと、
移動コンピューティング装置に常駐するコマースサーバーであって、少なくとも１つのアプリケーションプログラムが移動コンピューティング装置上で動作する間に少なくとも１つのアプリケーションプログラムの少なくとも１つのロックされた特徴へのアクセスを容易にするためにリモートサーバーと対話するように構成されたコマースサーバーと、
を備えた移動コンピューティング装置。
【請求項１９】
前記移動コンピューティング装置は、ハンドヘルドのマルチファンクション電子装置であり、
前記ハンドヘルドのマルチファンクション電子装置は、前記少なくとも１つのアプリケーションプログラムを実行し且つワイヤレスボイス及びデータ通信をサポートするための能力を与える、請求項１８に記載の移動コンピューティング装置。
【請求項２０】
前記移動コンピューティング装置は、更に、オペレーティングシステムを備え、そして前記コマースサーバーは、オペレーティングシステムの一部分である、請求項１８に記載の移動コンピューティング装置。
【請求項２１】
前記少なくとも１つのアプリケーションプログラムは、少なくとも１つのロックされた特徴の利用性をユーザに通知し、そしてユーザが、ロックされた特徴をアンロックするように要求する場合に、前記少なくとも１つのアプリケーションプログラムが前記コマースサーバーと対話して、そのロックされた特徴をアンロックすべきかどうか決定する、請求項１８に記載の移動コンピューティング装置。
【請求項２２】
前記コマースサーバーは、少なくとも１つのアプリケーションプログラムのユーザがそのロックされた特徴の使用権の取得を希望することを決定するように構成され、
前記コマースサーバーは、リモートサーバーと対話して、（ｉ）リモートサーバーがそのロックされた特徴のアンロッキングを承認することを要求し、そして（ii）そのロックされた特徴がアンロッキングに対して承認されたという許可をリモートサーバーから受け取るように構成された、請求項２１に記載の移動コンピューティング装置。
【請求項２３】
前記少なくとも１つのアプリケーションプログラムは、リモートサーバーからの許可が、そのロックされた特徴がアンロッキングについて承認されたことを示す場合に、コンピューティング装置においてアプリケーションプログラムのロックされた特徴をアンロックするように構成される、請求項２２に記載の移動コンピューティング装置。
【請求項２４】
ネットワークを経てリモートサーバーと通信して、アプリケーションプログラム又はそのための補足的特徴を取得し又はアクティブにするように構成されたコマースサーバーを含むオペレーティングシステムと、
少なくとも１つの補足的特徴を有するアプリケーションプログラムを記憶するよう構成されたデータ記憶装置と、
を備え、前記アプリケーションプログラムは、少なくとも、コマースサーバーと通信して、（ｉ）少なくとも１つの補足的特徴にアクセスする権利を取得し、そして（ii）少なくとも１つの補足的特徴を取得する権利が取得された場合に少なくとも１つの補足的プログラムをアプリケーションプログラムによりアクセスできるようにする手段を含む、ポータブルクライアントコンピューティング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルプロダクトの配布に係り、より詳細には、デジタルプロダクトのネットワークベースの配布に係る。
【０００２】
本願は、参考としてここに援用する“APPLICATION PRODUCTS WITH IN-APPLICATION SUBSEQUENT FEATURE ACCESS USING NETWORK-BASES DIDTRIBUTION SYSTEM”と題する２００９年３月１６日に出願された米国プロビジョナル特許出願第６１／１６０，６４０号の優先権を主張する。
【背景技術】
【０００３】
今日、ｉＴｕｎｅTMメディアストアのようなオンラインメディアストアは、顧客（即ちオンラインユーザ）が、インターネットを介して、音楽又はビデオのようなメディアアイテムを購入又はレンタルできるようにする。しばしば、オンラインメディアストアでは、多数のメディアアイテムが入手可能とされ、ミュージックレーベル又は映画会社のような種々の異なるコンテンツプロバイダーにより提供される。カリフォルニア州クパチーノのアップル社から入手できるｉＰｒｏｄｕｃｅｒTM及びＬａｂｅｌ  ＣｏｎｎｅｃｔTMのようなソフトウェアツールは、メディアコンテンツをｉＴｕｎｅTMメディアストアへオンライン提示する上でコンテンツプロバイダーを支援することができる。
【０００４】
ソフトウェアプログラムも、小売店やオンラインストアで購入したり又はライセンスを受けたりすることができる。従来、ソフトウェアプログラムは、主として、ソフトウェアプログラムを収容するコンパクトディスク（ＣＤ）として購入される。或いは又、購入者は、しばしば、オンライン小売店又はソフトウェアプロバイダーのウェブサイトからソフトウェアプログラムを購入しダウンロードすることができる。しかしながら、オンライン小売店が、種々の独立した当事者のソフトウェアプログラムを販売するように運営するときには、デジタルプログラムファイル及びサポート情報／ファイルをオンライン小売店へ提供することが困難である。この問題は、非常に多数の小さなソフトウェアプロバイダーがオンライン小売店とパートナーになることをしばしば希望することによって悪化する。その結果、オンライン提示を受け取るオンライン小売店は、提示に関する広範囲な変化のために実質的な負担及び困難さに直面する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来、ソフトウェアプログラムを購入し、ダウンロードし、そしてコンピューティング装置にインストールした後に、ソフトウェアプログラムは、本質的に、スタティックプロダクトとなる。あるソフトウェアプログラムは、エラーやバグの修理又はウイルス保護のための更新を受けることができるが、これらの更新は、無料で提供されるもので、既存の機能を維持するように働く。不都合なことに、あるソフトウェアプロバイダーは、初期のソフトウェアプログラムを増強する継続購入を容易にする必要がある。しかしながら、ソフトウェアプログラムがオンライン購入され、ダウンロードされそしてインストールされると、従来、そのソフトウェアプログラムにとって、ソフトウェアプログラムの付加的な機能、コンポーネント、等に対して権利又は特典のインアプリケーション購入をそれ自身容易にする便利な手段が存在しない。
【課題を解決するための手段】
【０００６】
本発明は、プロダクト配布サイトからの支援でデジタルプロダクトのロック（セキュア化）された特徴にアクセスするためのシステム、装置及び方法に係る。
【０００７】
デジタルプロダクトを、ネットワークベースの配布のためにプロダクト配布サイトへ提示することができる。デジタルプロダクトは、基本的な機能を発揮するように最初に与えられるが、１つ以上のロックされた特徴を含んでおり、これがアンロックされると、基本的な機能を補足することができる。提示されたデジタルプロダクトが承認された場合には、そのデジタルプロダクトがプロダクト配布サイトにおいて入手できるようになり、ユーザは、そのデジタルプロダクトをサーチし、ブラウズしそして購入することができる。デジタルプロダクトが購入され、ダウンロードされ、そしてユーザのコンピューティング装置にインストールされると、ユーザは、デジタルプロダクトを利用することができる。しかしながら、デジタルプロダクトそれ自体は、１つ以上のロックされた特徴を含むので、ユーザは、その後の購入が遂行されるまでそのような特徴を利用することができない。好都合なことに、その後の購入は、デジタルプロダクトから呼び出すことができる。そのようにする際に、デジタルプロダクトは、リモートサーバー（例えば、プロダクト配布サイト）と（直接的又は間接的に）対話して、デジタルプロダクト内の１つ以上のロックされた特徴に対するアクセス権又は使用権を購入する。１つ以上のロックされた特徴に対するアクセス権又は使用権が購入されると、デジタルプロダクト内の１つ以上のロックされた特徴をアンロックし、その後、使用することができる。
【０００８】
一実施形態では、デジタルプロダクトは、コンピュータプログラムプロダクト（例えば、コンピュータソフトウェアプログラム）である。プロダクト配布サイトは、オンラインプロダクトホスティングサイトとも称される。デジタルプロダクトの特徴は、具現化に基づいて変化するが、特徴の幾つかの例は、モジュール、ツール、キャラクタ、機能、コンテンツ又はデータを含む。又、特徴は、コンポーネントとも称される。
【０００９】
本発明は、方法、システム、デバイス、装置（コンピュータ読み取り可能なメディア及びグラフィックユーザインターフェイスを含む）を含めて、多数の仕方で具現化することができる。本発明の幾つかの実施形態について以下に説明する。
【００１０】
アプリケーションプログラムの補足的特徴をアンロックする方法であって、コンピューティング装置で動作される方法として、本発明の一実施形態は、少なくとも、コンピューティング装置でアプリケーションプログラムを実行するステップであって、そのアプリケーションプログラムは、リモートネットワークベースのアプリケーション配布システムから以前に取得され、又、アプリケーションプログラムは、現在ロックされてアプリケーションプログラム内に置かれているがアンロックすることのできる少なくとも１つの補足的特徴を含むものであるステップと、コンピューティング装置において、アプリケーションプログラムのユーザが、現在ロックされている少なくとも１つの補足的特徴の使用権の取得を希望することを決定するステップと、リモートネットワークベースのアプリケーション配布システムが少なくとも１つの補足的特徴のアンロックを承認することを要求するステップと、少なくとも１つの補足的特徴がアンロックについて承認されたという許可をリモートネットワークベースのアプリケーション配布システムから受け取るステップと、その後、コンピューティング装置においてアプリケーションプログラムの少なくとも１つの補足的特徴をアンロックし、それにより、アプリケーションプログラムが少なくとも１つの補足的特徴を利用できるようにするステップと、を備えている。
【００１１】
アプリケーションプログラムの補足的特徴をアンロックする方法であって、コンピューティング装置で動作される方法として、本発明の別の実施形態は、少なくとも、コンピューティング装置でアプリケーションプログラムを実行するステップであって、そのアプリケーションプログラムは、リモートネットワークベースのアプリケーション配布システムから以前に取得されたものであるステップと、アプリケーションプログラムを経て、現在ロックされてアプリケーションプログラム内に置かれているがアンロックすることのできる少なくとも１つの補足的特徴をコンピューティング装置のユーザにオファーするステップと、コンピューティング装置のユーザが、現在ロックされている少なくとも１つの補足的特徴の使用権の取得を希望するという指示を受け取るステップと、その指示が受け取られるのに応答して、リモートネットワークベースのアプリケーション配布システムから補足的特徴情報を要求するステップであって、その補足的特徴情報は、少なくとも１つの補足的特徴に関する少なくとも記述情報を含むものであるステップと、その後、コンピューティング装置において、リモートネットワークベースのアプリケーション配布システムから補足的特徴情報を受け取るステップと、その補足的特徴情報をコンピューティング装置にプレゼンテーションするステップと、コンピューティング装置において、現在ロックされている少なくとも１つの補足的特徴の使用権の取得をユーザが希望することを確認するステップと、リモートネットワークベースのアプリケーション配布システムが少なくとも１つの補足的特徴のアンロックを承認することを要求するステップと、少なくとも１つの補足的特徴がアンロックについて承認されたというリモートネットワークベースのアプリケーション配布システムからの許可を受け取るステップと、その後、コンピューティング装置においてアプリケーションプログラムの少なくとも１つの補足的特徴をアンロックし、それにより、アプリケーションプログラムが少なくとも１つの補足的特徴を利用できるようにするステップと、を備えている。
【００１２】
ネットワークベースのアプリケーション配布システムから以前に取得されたアプリケーションプログラムの補足的特徴のアンロッキングを管理するためのコンピュータ実施方法として、本発明の一実施形態は、少なくとも、リモートネットワークベースのアプリケーション配布システムからの補足的特徴情報についての要求をコンピューティング装置から受け取るステップと、アプリケーションプログラムの補足的特徴に関連した補足的特徴情報を検索するステップであって、その補足的特徴情報は、ネットワークベースのアプリケーション配布システムから以前に取得されたアプリケーションプログラムの補足的特徴に関する少なくとも記述情報を含むものであるステップと、その検索された補足的特徴情報をコンピューティング装置へ送信するステップと、アプリケーションプログラムの補足的特徴をアンロックするための要求をコンピューティング装置から受信するステップと、ネットワークベースのアプリケーション配布システムが補足的特徴のアンロッキングを承認するかどうか決定するステップと、この決定ステップで、ネットワークベースのアプリケーション配布システムが補足的特徴のアンロッキングを承認したと決定する場合に、補足的特徴をアンロックする許可をコンピューティング装置へ送信するステップと、を備えている。
【００１３】
ネットワークベースのアプリケーション配布システムから以前に取得されたアプリケーションプログラムの補足的特徴のアンロッキングを管理するためのコンピュータ実施方法として、本発明の別の実施形態は、少なくとも、ネットワークベースのアプリケーション配布システムから以前に取得されたアプリケーションプログラムの補足的特徴をアンロックするための要求をコンピューティング装置から受け取るステップと、ネットワークベースのアプリケーション配布システムが補足的特徴のアンロッキングを承認するかどうか決定するステップと、この決定ステップで、ネットワークベースのアプリケーション配布システムが補足的特徴のアンロッキングを承認したと決定する場合に、補足的特徴をアンロックする許可をコンピューティング装置へ送信するステップと、を備えている。
【００１４】
移動コンピューティング装置として、本発明の一実施形態は、少なくとも、少なくとも１つのロックされた特徴を有する少なくとも１つのアプリケーションプログラムと、移動コンピューティング装置に常駐するコマースサーバーとを備えている。コマースサーバーは、少なくとも１つのアプリケーションプログラムが移動コンピューティング装置上で動作する間に少なくとも１つのアプリケーションプログラムの少なくとも１つのロックされた特徴へのアクセスを容易にするためにリモートサーバーと対話するように構成される。
【００１５】
プログラムプロダクトの補足的コンポーネントをアンロックするためにコンピューティング装置により実行可能な少なくともコンピュータプログラムコードが記憶されたコンピュータ読み取り可能なメディアとして、本発明の一実施形態は、少なくとも、コンピューティング装置でプログラムプロダクトを実行するためのコンピュータプログラムコードであって、プログラムプロダクトは、リモートネットワークベースのアプリケーション配布システムから既に取得されたものであり、又、プログラムプロダクトは、現在ロックされていてプログラムプロダクト内に置かれているがアンロックすることのできる少なくとも１つの補足的コンポーネントを含むものであるコンピュータプログラムコードと、コンピューティング装置において、プログラムプロダクトのユーザが、現在ロックされている少なくとも１つの補足的コンポーネントの使用権の取得を希望することを決定するためのコンピュータプログラムコードと、リモートネットワークベースのアプリケーション配布システムが少なくとも１つの補足的コンポーネントのアンロッキングを承認することを要求するためのコンピュータプログラムコードと、少なくとも１つの補足的コンポーネントがアンロッキングに対して承認された許可をリモートネットワークベースのアプリケーション配布システムから受信するためのコンピュータプログラムコードと、コンピューティング装置においてプログラムプロダクトの少なくとも１つの補足的コンポーネントをアンロックして、プログラムプロダクトが少なくとも１つの補足的コンポーネントを利用できるようにするためのコンピュータプログラムコードと、を備えている。
【００１６】
ネットワークベースのアプリケーション配布システムから以前に取得されたアプリケーションプログラムの補足的コンポーネントのアンロッキングを管理するためにコンピューティング装置により実行可能な少なくともコンピュータプログラムコードが記憶されたコンピュータ読み取り可能なメディアとして、本発明の一実施形態は、少なくとも、ネットワークベースのアプリケーション配布システムから以前に取得されたプログラムプロダクトの補足的コンポーネントをアンロックする要求をコンピューティング装置から受信するためのコンピュータプログラムコードと、ネットワークベースのアプリケーション配布システムが補足的コンポーネントのアンロッキングを承認するかどうか決定するためのコンピュータプログラムコードと、ネットワークベースのアプリケーション配布システムが補足的コンポーネントのアンロッキングを承認したと決定された場合に補足的コンポーネントをアンロックする許可をコンピューティング装置へ送信するためのコンピュータプログラムコードと、を備えている。
【００１７】
本発明の他の態様及び効果は、本発明の原理を例示する添付図面に関連した以下の詳細な説明から明らかとなろう。
【００１８】
本発明は、同じ要素が同じ参照番号で示された添付図面を参照した以下の詳細な説明から容易に理解されよう。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施形態によるプロダクト提示及び配布システムのブロック図である。
【図２】本発明の一実施形態によるクライアント又はクライアント装置のブロック図である。
【図３Ａ】本発明の一実施形態による補足的特徴のアクセスを示す図である。
【図３Ｂ】本発明の一実施形態による補足的特徴のアクセスを示す図である。
【図３Ｃ】本発明の一実施形態による補足的特徴のアクセスを示す図である。
【図４】本発明の一実施形態によるデジタルプロダクト提示プロセスのフローチャートである。
【図５】本発明の一実施形態による補足的特徴クライアントプロセスのフローチャートである。
【図６Ａ】本発明の一実施形態による補足的特徴クライアントプロセスのフローチャートである。
【図６Ｂ】本発明の一実施形態による補足的特徴クライアントプロセスのフローチャートである。
【図７】本発明の一実施形態による補足的特徴サーバープロセスのフローチャートである。
【発明を実施するための形態】
【００２０】
本発明は、プロダクト配布サイトからの支援でデジタルプロダクトのロック（セキュア化）された特徴にアクセスするためのシステム、装置及び方法に係る。
【００２１】
デジタルプロダクトを、ネットワークベースの配布のためにプロダクト配布サイトへ提示することができる。デジタルプロダクトは、基本的な機能を発揮するように最初に与えられるが、１つ以上のロックされた特徴を含んでおり、これがアンロックされると、基本的な機能を補足することができる。提示されたデジタルプロダクトが承認された場合には、そのデジタルプロダクトがプロダクト配布サイトにおいて入手できるようになり、ユーザは、そのデジタルプロダクトをサーチし、ブラウズしそして購入することができる。デジタルプロダクトが購入され、ダウンロードされ、そしてユーザのコンピューティング装置にインストールされると、ユーザは、デジタルプロダクトを利用することができる。しかしながら、デジタルプロダクトそれ自体は、１つ以上のロックされた特徴を含むので、ユーザは、その後の購入が遂行されるまでそのような特徴を利用することができない。好都合なことに、その後の購入は、デジタルプロダクトから呼び出すことができる。そのようにする際に、デジタルプロダクトは、リモートサーバー（例えば、プロダクト配布サイト）と（直接的又は間接的に）対話して、デジタルプロダクト内の１つ以上のロックされた特徴に対するアクセス権又は使用権を購入する。１つ以上のロックされた特徴に対するアクセス権又は使用権が購入されると、デジタルプロダクト内の１つ以上のロックされた特徴をアンロックし、その後、使用することができる。
【００２２】
一実施形態では、デジタルプロダクトは、コンピュータプログラムプロダクト（例えば、コンピュータソフトウェアプログラム）である。プロダクト配布サイトは、オンラインプロダクトホスティングサイトとも称される。デジタルプロダクトの特徴は、具現化に基づいて変化するが、特徴の幾つかの例は、モジュール、ツール、キャラクタ、機能、コンテンツ又はデータを含む。又、特徴は、コンポーネントとも称される。
【００２３】
図１−７を参照して本発明の種々の態様の実施形態を以下に説明する。しかしながら、当業者であれば、本発明はこれらの限定された実施形態を越えて拡張できるので、これら図面を参照してここに述べる詳細な説明は例示に過ぎないことが明らかであろう。
【００２４】
図１は、本発明の一実施形態によるプロダクト提示及び配布システム１００のブロック図である。プロダクト提示及び配布システム１００は、プロダクト配布サイト１０２を備えている。プロダクト配布サイト１０２は、種々のデジタルプロダクトを配布するためのオンラインアクセスポイントをなす。例えば、プロダクト配布サイト１０２は、オンラインストアとも称される。プロダクト提示及び管理システム１０４は、種々のデジタルプロダクトサブミッターからデジタルプロダクトの提示を受信するように動作する。プロダクト提示及び管理システム１０４は、デジタルプロダクトの提示を処理し、承認されたデジタルプロダクトの配布を許可することができる。デジタルプロダクトは、プロダクト記憶部１０６に記憶することができる。一実施形態では、プロダクト記憶部１０６は、大量データ記憶部及び／又は１つ以上のデータベースを含む。プロダクト記憶部１０６は、配布（例えば、購入）のために得られる多数のデジタルプロダクトの大量記憶装置をなす。例えば、購入されたデジタルプロダクトは、プロダクト配布サイト１０２によりデータネットワーク１０８を経てプロダクト記憶部１０６からアクセスすることができる。デジタルプロダクトは、例えば、アプリケーション（又はアプリケーションプログラム）、アニメーション、又はプレゼンテーションのようなコンピュータプログラムプロダクトである。
【００２５】
又、プロダクト提示及び配布システム１００は、第１のクライアント１１０及び第２のクライアント１１２も備えている。典型的に、プロダクト提示及び配布システム１００は、複数の異なるクライアント１１０、１１２を含む。第１のクライアント１１０は、ネットワークアクセスプログラム１１４を含む。第２のクライアント１１２は、プロダクト提示プログラム１１６を含む。又、あるクライアントは、ネットワークアクセスプログラム１１４及びプロダクト提示プログラム１１６の両方を含むこともできる。ネットワークアクセスプログラム１１４は、コンピューティング装置である第１のクライアント１１０において動作するアプリケーションプログラム（例えば、ソフトウェアアプリケーション）である。適当なネットワークアクセスプログラムの一例は、ネットワークブラウザ（例えば、マイクロソフトエクスプローラ又はサファリ）である。適当なネットワークアクセスプログラムの別の例は、アップル社により売り出されているｉＴｕｎｅTMである。第１のクライアント１１０は、データネットワーク１０８を経てプロダクト配布サイト１０２へ結合することができる。従って、第１のクライアント１１０のいずれかがプロダクト配布サイト１０２と対話して、デジタルプロダクトを再検討、購入及び／又は管理することができる。
【００２６】
又、プロダクト提示プログラム１１６は、コンピューティング装置である第２のクライアント１１２において動作するアプリケーションプログラム（例えば、ソフトウェアアプリケーション）でもある。プロダクト提示プログラム１１６は、メディア配布サイト１０２による最終的配布のためにデジタルプロダクトをプロダクト提示及び管理システム１０４へ提示するのに使用される。ネットワークアクセスプログラム１１４及びプロダクト提示プログラム１１６は、個別のプログラムとして図１に示されているが、このようなプログラムは、単一のプログラムへ一体化されてもよいし又は同じクライアントマシンに存在してもよいことを理解されたい。
【００２７】
図１に示すプロダクト提示及び配布システム１００において、デジタルプロダクトは、プロダクト提示プログラム１１６によりプロダクト提示及び管理システム１０４へ提示される。（例えば、第２のクライアント１１２を経て）提示されたデジタルプロダクトは、処理され、次いで、もし受け容れられる場合には、配布のためにプロダクト記憶部１０６に記憶される。その後、記憶されたデジタルプロダクトは、プロダクト配布サイト１０２から購入して入手することができる。
【００２８】
プロダクト提示及び配布システム１００は、クライアント１１０のユーザがネットワークアクセスプログラム１１４を利用して、プロダクト配布サイト１０２から購入できる複数のデジタルプロダクトを通してブラウズし、サーチし又はソートすることができるようにする。又、ネットワークアクセスプログラム１１４は、ユーザがデジタルプロダクトの幾つか又は全部を試写又は視聴できるようにする。ネットワークアクセスプログラム１１４のユーザが特定のデジタルプロダクトの購入を希望する場合には、ユーザ（ネットワークアクセスプログラム１１４を経て）及びプロダクト配布サイト１０２は、ユーザが特定のデジタルプロダクトへのアクセス権に対して支払いするオンラインコマーストランザクションに携わることができる。一実施形態では、ユーザに関連したクレジットカードで、特定のデジタルプロダクトの購入額又はレンタル額をクレジット処理する。
【００２９】
特定のデジタルプロダクトを購入するとき、プロダクト配布サイト１０２は、その特定のデジタルプロダクトに対するデジタルデータをプロダクト記憶部１０６から検索し、次いで、プロダクト配布サイト１０２からデータネットワーク１０８を経て要求側クライアント１１０へ配送（例えば、ダウンロード）するのを許す。この点に関して、プロダクト配布サイト１０２又は他の配送サーバー（図示せず）は、プロダクト記憶部１０６から特定のデジタルプロダクトに対応するデジタルデータを得て、そのようなデジタルデータを、データネットワーク１０８を経てクライアント１１０へダウンロードする。ダウンロードされたデジタルデータは、次いで、クライアント１１０に記憶することができる。一実施形態では、ダウンロードされたデジタルデータは、クライアント１１０に受信されるときに暗号化されるが、解読され、次いで、おそらく、再暗号化された後に、クライアント１１０に永続的に記憶される。その後、クライアント１１０は、クライアント１１０においてデジタルプロダクトのデジタルデータを利用（例えば、実行）することができる。
【００３０】
デジタルプロダクトの提示及び購入は、データネットワーク１０８を経て行うことができる。換言すれば、デジタルプロダクトの提示及び購入は、オンラインで行うことができる。オンラインでのメディアアイテムの購入は、電子コマース（ｅ−コマース）とも称される。一実施形態では、データネットワーク１０８は、インターネットの少なくとも一部分を使用する。一実施形態では、プロダクト配布サイト１０２と、クライアント１１０、１１２との間のデータネットワーク１０８を通る接続は、セキュアソケットレイヤー（ＳＳＬ）のようなセキュアな接続を経て行うことができる。クライアント１１０、１１２は、アプリケーションと共に変化し得るが、一般的には、メモリ記憶装置を有するコンピューティング装置である。多くの場合、クライアント１１０、１１２は、メディアを記憶してユーザにプレゼンテーションすることのできるパーソナルコンピュータ又は他のコンピューティング装置である。一実施形態では、クライアントの１つ以上は、ポータブルコンピューティング装置（例えば、ラップトップ又はネットワークコンピュータ）或いはハンドヘルドコンピューティング装置（例えば、ＰＤＡ、スマートホン、マルチファンクション電子装置、又はメディアプレーヤ）である。
【００３１】
デジタルプロダクトは、１つ以上の補足的特徴を含むことができる。この補足的特徴は、対応するデジタルプロダクトを補足又は増強するように働くことができる。図１に示すように、プロダクト配布サイト１０２からデータネットワーク１０８を経て取得されダウンロードされるデジタルプロダクト１１８は、クライアント１１０に記憶することができる。一実施形態では、デジタルプロダクト１１８は、補足的特徴１２０を含むことができる。しかしながら、デジタルプロダクト１１８が最初に取得されるときには、補足的特徴１２０がインアクティブであるか又はロックされており、デジタルプロダクト１１８により使用することができない。しかしながら、クライアント１１０におけるデジタルプロダクト１１８の動作中に、デジタルプロダクト１１８は、補足的特徴１２０の使用権の取得を開始することができる。このようなケースでは、デジタルプロダクト１１８（それ自体で又はオペレーティングシステムの支援で）は、プロダクト配布サイト１０２の特徴取得マネージャー１２２と通信することができる。典型的に、デジタルプロダクト１１８は、プロダクト配布サイト１０２から以前に取得されている。特徴取得マネージャー１２２は、補足的特徴へアクセスするための到来する要求の処理を管理する。例えば、特徴取得マネージャー１２２は、補足的特徴へアクセスするための到来する要求を受信し、その要求が有効であって処理が許されるかどうか決定し、そのようなアクセスに対して、もしあれば、支払いを処理し、そして要求側クライアント装置１１０へ許可応答を送信する。許可応答を受信すると、デジタルプロダクト１１８は、補足的特徴１２０をアクセス可能にする（即ち、アンロックできるようにする）。このような実施形態では、補足的特徴は、デジタルプロダクト１１８がクライアント１１０に最初にダウンロードされるときに与えられ、その後、補足的特徴１２０をアクティブにするにはクライアント１１０へ許可を与えるだけでよい。しかしながら、別の実施形態では、補足的特徴１２０は、許可された後でなければ、クライアント１１０へ配送することができない（従って、デジタルプロダクト１１８の配送とは個別に与えられる）。
【００３２】
プロダクト配布サイト１０２、プロダクト提示及び管理システム１０４、並びにプロダクト記憶部１０６は、図１では、個別のコンポーネントとして示されているが、これらコンポーネントのいずれかを１つ以上の装置へ結合できることを理解されたい。例えば、プロダクト提示及び管理システム１０４は、プロダクト配布サイト１０２へ合体することができる。別の実施例として、プロダクト記憶部１０６は、プロダクト配布サイト１０２、又はプロダクト提示及び管理システム１０４へ合体することができる。
【００３３】
アプリケーションプログラム１１８の補足的特徴１２０の使用権の取得に関してクライアント１１０によるプロダクト配布サイト（例えば、特徴取得マネージャー１２２）との通信を容易にするために、プロダクト配布サイト１０２は、アプリケーションプログラミングインターフェイス（ＡＰＩ）をサポートすることができる。例えば、プロダクト配布サイト１０２に対するＡＰＩは、一実施形態では、以下のアペンディックスＡに示されたＡＰＩを含む。
【００３４】
図２は、本発明の一実施形態によるクライアント２００又はクライアント装置のブロック図である。クライアント２００は、例えば、図１に示されたクライアント１１０として使用するのに適している。
【００３５】
クライアント２００は、クライアント２００で実行できるアプリケーションプログラムに対して基本的なコンピューティングサービスを提供するために、クライアント２００で動作されるオペレーティングシステム（ＯＳ）２０２を備えている。更に、オペレーティングシステム２０２は、コマースサーバー２０４を備えている。コマースサーバー２０４は、リモートデジタルプロダクト配布サーバーのようなリモートサーバーに関してコマースオペレーションを遂行するために、クライアント２００で動作されるアプリケーションプログラムによって使用される。例えば、リモートサーバーは、図１に示すプロダクト配布サーバー１０２に関するものである。
【００３６】
又、クライアント２００は、クライアント２００にインストールされてクライアント２００により実行することのできる１つ以上のアプリケーションプログラムも含むことができる。典型的に、これらのアプリケーションは、リモートサーバー（例えば、プロダクト配布サーバー１０２）から取得されて、クライアント２００へダウンロードされる。クライアント２００に存在しインストールされるアプリケーションは、アプリケーションプログラムＡ２０６及びアプリケーションプログラムＢ２０８により表される。図２に示すように、アプリケーションプログラムＡ２０６は、補足的特徴Ｘ２１０及び補足的特徴Ｙ２１２を含む。典型的に、アプリケーションプログラムＡ２０６が最初にリモートサーバーから取得されるときには、補足的特徴２１０及び２１２が存在するが、「ロック」されており、従って、現在使用することができない。同様に、アプリケーションプログラムＢ２０８は、これが取得されたとき、最初に「ロック」されている補足的特徴Ｚ２１４を含んでいる。更に、アプリケーションプログラムＡ２０６及びアプリケーションプログラムＢ２０８は、コマースサーバー２０４によりリモートサーバー（例えば、リモートデジタルプロダクト配布サーバー）と対話し、補足的特徴２１０、２１２及び２１４の希望の１つ以上を「アンロック」にすることができる。補足的特徴が「アンロック」状態になると、それに関連したアプリケーションプログラムは、その後、その補足的特徴を使用することができる。
【００３７】
アプリケーションプログラム２０６、２０８と、コマースサーバー２０４との間の通信を容易にするために、コマースサーバー２０４は、アプリケーションプログラミングインターフェイス（ＡＰＩ）をサポートすることができる。例えば、コマースサーバー２０４に対するＡＰＩは、一実施形態では、以下のアペンディックスＢに示すＡＰＩを含む。このアペンディックスＢは、プロダクト配布サイト１０２を使用して補足的特徴をサポート及び配布する（例えば、ネットワークベースのアプリケーション記憶部をホストする）ためにアプリケーションプログラムをどのように変更するかに情報も含む。
【００３８】
図３Ａ−３Ｃは、本発明の一実施形態による補足的特徴へのアクセスを示す図である。図３Ａは、一実施形態による例示的デジタルプロダクト３００を示す。この例示的デジタルプロダクト３００は、図１に示されたプロダクト配布サイト１０２のようなリモートサーバーから取得することができる。例示的デジタルプロダクト３００は、アプリケーションプログラム３０２だけでなく、補足的特徴Ｘ３０４及び補足的特徴Ｙ３０６も含む。図３Ａに示すように、補足的特徴Ｘ３０４及び補足的特徴Ｙ３０６は、両方とも、「ロック」状態にある。ここに更に述べるように、アプリケーションプログラムの補足的特徴は、許可されたときに、アンロックすることができる。一般的に、補足的特徴は、個々にアンロックすることができ、あるケースでは、（１より大きい）ある量の同じ特徴が利用できるようにされる。図３Ｂにおいて、例示的デジタルプロダクト３００の補足的特徴Ｘ３０４が「アンロック」され、アプリケーションプログラムＡ３０２に関連して使用できるようにされる。しかしながら、補足的特徴Ｙ３０６は、図３Ｂにおいて「ロック」されたままである。図３Ｃにおいて、例示的デジタルプロダクト３００の補足的特徴Ｘ３０４及び補足的特徴Ｙ３０６は、両方とも「アンロック」され、アプリケーションプログラムＡ３０２に関連して使用できるようにされる。
【００３９】
上述したように、アプリケーションプログラム（又はデジタルプロダクト）の補足的特徴（又は補足的コンポーネント）は、具現化に基づいて変化する。補足的特徴は、モジュール、ツール、キャラクタ、機能、コンテンツ又はデータに関与することができる。ゲームベースのアプリケーションプログラムの場合に、補足的特徴は、新たな兵器、新たなキャラクタ、延命、付加的なゲームレベル、等である。生産性アプリケーションの場合に、補足的特徴は、付加的なモジュール（例えば、１年のモジュール、地理的モジュール、コンテンツベースのモジュール、等）、付加的な又は増強された機能（ワイヤレス通信、プリント、記憶、等）、等々である。情報アプリケーションの場合に、補足的特徴は、付加的なコンテンツ又はデータ、付加的な学習又は情報モジュール、等である。
【００４０】
図４は、本発明の一実施形態によるデジタルプロダクト提示プロセス４００のフローチャートである。デジタルプロダクト提示プロセス４００は、例えば、クライアント１１２のようなクライアント装置、又はプロダクト提示及び管理システム１０４のようなサーバー装置によって遂行することができる。
【００４１】
デジタルプロダクト提示プロセス４００は、デジタルプロダクトに関するプロダクト情報を受信することができる（４０２）。プロダクト情報は、提示されるデジタルプロダクトの形式に基づいて変化し得る。１つの具現化において、デジタルプロダクト提示プロセス４００によりオンラインレポジトリーに提示することのできるデジタルプロダクトの１つの形式は、コンピュータプログラムプロダクトのようなデジタルプログラムプロダクトである。コンピュータプログラムプロダクトに対するプロダクト情報は、例えば、プロダクト名、サポートされる装置の形式指示、ジャンルの指示、バージョンナンバー、プロダクト識別子、サポート情報、及びライセンス合意情報、の１つ以上を含むことができる。更に、デジタルプログラムプロダクトが１つ以上の補足的特徴を合体するときには、デジタルプロダクト提示プロセス４００は、１つ以上の補足的特徴に対する補足的情報も受信できる（４０４）。
【００４２】
次いで、デジタルプロダクトに関する少なくとも１つの電子ファイルをアップロードすることができる（４０６）。デジタルプロダクトは、それに関連した１つ以上の電子ファイルを有することができる。例えば、デジタルプロダクトは、バイナリーファイル、サポート又はヘルプファイル、及び／又は１つ以上の例示的スクリーンイラストレーションを含んでもよい。
【００４３】
加えて、デジタルプロダクトと共に使用されるべき少なくとも１つの配布パラメータを受信することができる（４０８）。配布パラメータとは、デジタルプロダクトを配布することのできる仕方を制御し又はそれに影響するために使用できるパラメータである。配布パラメータの一例は、価格パラメータである。例えば、価格パラメータは、デジタルプロダクトに関連付けされる価格又は価格層を指定することができる。他の配布パラメータは、デジタルプロダクトを配布すべきところのデジタル店頭に関するものである。更に、配布パラメータは、試写適格性、ライセンスカテゴリー（形式）、等に関するものもある。
【００４４】
その後に、デジタルプロダクトをオンラインレポジトリーに提示することができる（４１０）。オンラインレポジトリーは、例えば、プロダクト提示及び管理システム１０４に対応する。オンラインレポジトリーは、１つ以上の電子ファイル、関連プロダクト情報、補足的特徴情報、及び１つ以上の配布パラメータを受信することができる。次いで、オンラインレポジトリーは、１つ以上の電子ファイルに含まれたデジタルプロダクトを、プロダクト配布サイト（例えば、オンラインストア）から、プロダクト情報及び１つ以上の配布パラメータに基づいて配布できるように動作することができる。又、オンラインレポジトリーは、デジタルプロダクトの１つ以上の補足的特徴へのその後のアクセスを容易にするように動作することもできる。デジタルプロダクトをオンラインレポジトリーへ提示した（４１０）後に、デジタルプロダクト提示プロセス４００を終了することができる。
【００４５】
図５は、本発明の一実施形態による補足的特徴クライアントプロセス５００のフローチャートである。補足的特徴クライアントプロセス５００は、例えば、図１に示されたクライアント１１０のようなクライアント（即ち、クライアント装置）において遂行することができる。
【００４６】
補足的特徴クライアントプロセス５００は、リモートネットワークベースのアプリケーション配布システムから以前に取得されたアプリケーションプログラムを実行することができる（５０２）。例えば、リモートネットワークベースのアプリケーション配布システムは、図１に示されたプロダクト提示及び配布システム１００に関するものである。ここで、リモートネットワークベースのアプリケーション配布システムから以前に取得されたアプリケーションプログラムがクライアントにおいて実行される（５０２）。実行中のある点において、クライアントに判断５０４をプレゼンテーションすることができる。判断５０４は、補足的特徴の取得を行うべきかどうか決定する。一実施形態では、判断５０４は、クライアントのユーザがアプリケーションプログラムに対する補足的特徴の取得を希望するかどうか指示するユーザ入力に基づいて決定することができる。例えば、アプリケーションプログラムの実行中に、アプリケーションプログラムは、ユーザにオファーする補足的特徴をプレゼンテーションすることができ、ユーザは、そのオファーに応答して、補足的特徴がユーザにより望まれるものかどうか指示することができる。
【００４７】
いずれにせよ、判断５０４で補足的特徴の取得が要求されていないと決定すると、判断５０６は、アプリケーションプログラムを止める（即ち、終了する）べきかどうか決定することができる。判断５０６でアプリケーションプログラムをやめるべきでないと決定すると、アプリケーションプログラムが継続し、補足的特徴クライアントプロセス５００が復帰して判断５０４を繰り返す。或いは又、判断５０６でアプリケーションプログラムをやめるべきと決定したときには、補足的特徴クライアントプロセス５００を終了することができる。
【００４８】
他方、判断５０４で補足的特徴の取得が要求されると決定したときには、リモートネットワークベースのアプリケーション配布システムへ要求５０８をなすことができる。要求５０８は、リモートネットワークベースのアプリケーション配布システムが補足的特徴のアンロッキングを承認することを要求するものである。次いで、判断５１０は、リモートネットワークベースのアプリケーション配布システムが補足的特徴のアンロッキングを承認したかどうか決定することができる。判断５１０で、リモートネットワークベースのアプリケーション配布システムが補足的特徴のアンロッキングを承認したと決定したときには、アプリケーションプログラムの補足的特徴をアンロックすることができる（５１２）。ここで、一実施形態では、リモートネットワークベースのアプリケーション配布システムは、補足的特徴をアンロックすることが承認されたとクライアントに通知することができ、次いで、アプリケーションプログラムを動作して、補足的特徴をアンロックすることができる。或いは又、判断５１０で、リモートネットワークベースのアプリケーション配布システムが補足的特徴のアンロッキングを承認しない（即ち、拒絶した）と決定したときには、補足的特徴をアンロックする要求が拒絶される（５１４）。ここで、補足的特徴のアンロッキングが承認されないとクライアントに通知することにより、アプリケーションプログラムは、補足的特徴をアンロックするように動作せず、従って、補足的特徴は、ロックされたままとなる。ブロック５１２又はブロック５１４に続いて、補足的特徴クライアントプロセス５００を終了することができる。
【００４９】
図６Ａ及び６Ｂは、本発明の一実施形態による補足的特徴クライアントプロセス６００のフローチャートである。この補足的特徴クライアントプロセス６００は、例えば、図１に示されたクライアント１１０のようなクライアント（クライアント装置）により遂行することができる。
【００５０】
補足的特徴クライアントプロセス６００は、ネットワークベースのアプリケーション配布システムからアプリケーションプログラムをダウンロードする（６０２）ことで開始することができる。例えば、クライアントのユーザは、ネットワークベースのアプリケーション配布システムと対話して、アプリケーションプログラムを識別し、購入しそしてダウンロードすることができる。ダウンロードされると、アプリケーションプログラムをクライアントにインストールすることができる。その後、判断６０４は、アプリケーションプログラムを実行すべきかどうか決定することができる。判断６０４で、アプリケーションプログラムが実行されないと決定すると、補足的特徴クライアントプロセス６００は、アプリケーションプログラムが実行されるまで実際上待機となる。判断６０４で、アプリケーションプログラムが実行されると決定すると、アプリケーションプログラムが実行される（６０６）。
【００５１】
次いで、判断６０８は、補足的特徴をクライアントにオファーすべきかどうか決定することができる。判断６０８で、補足的特徴がオファーされないと決定すると、判断６１０は、補足的特徴クライアントプロセス６００を止める（終了する）べきかどうか決定することができる。判断６１０で、補足的特徴クライアントプロセス６００を終了すべきであると決定すると、補足的特徴クライアントプロセス６００は、補足的特徴を使用可能とせずに、終了することができる。或いは又、判断６１０で、補足的特徴クライアントプロセス６００を終了すべきでないと決定すると、補足的特徴クライアントプロセス６００が復帰して、判断６０８を繰り返す。
【００５２】
他方、判断６０８で、補足的特徴をオファーすべきであると決定すると、補足的特徴のオファーをプレゼンテーションすることができる（６１２）。ここで、プレゼンテーション（６１２）される補足的特徴オファーは、アプリケーションプログラムを動作するクライアントのユーザにより見たり聞いたりすることができる。１つの具現化では、補足的特徴オファーは、クライアントにおいて実行されているアプリケーションプログラムによりプレゼンテーションされる（６１２）。次いで、判断６１４は、ユーザが補足的特徴オファーを受け容れるかどうか決定することができる。判断６１４で、ユーザが補足的特徴オファーを受け容れないと決定すると、補足的特徴クライアントプロセス６００が復帰して判断６１０を繰り返し、補足的特徴クライアントプロセス６００を継続するか又は止めることができる。
【００５３】
或いは又、判断６１４で、ユーザが補足的特徴オファーを受け容れたと決定すると、ネットワークベースのアプリケーション配布システムから補足的特徴情報を要求することができる（６１６）。判断６１８は、補足的特徴情報の要求に対して応答が受け取られたかどうか決定する。判断６１８で、応答がまだ受け取られないと決定すると、補足的特徴クライアントプロセス６００は、そのような応答を待機することができる。他方、判断６１８で、補足的特徴情報の要求に対する応答が受け取られたと決定すると、補足的特徴情報をプレゼンテーションすることができる（６２０）。補足的特徴情報がプレゼンテーションされて（６２０）、クライアントにおいて動作されるアプリケーションプログラムのユーザに、オファーされている補足的特徴に関する情報が与えられる。例えば、補足的特徴情報は、アプリケーションプログラムのようなクライアントにより、又はオペレーティングシステムにより、表示することができる。
【００５４】
次いで、判断６２２は、ユーザが補足的特徴の取得を確認したかどうか決定することができる。１つの具現化によれば、アプリケーションプログラムは別として、オペレーティングシステムは、補足的特徴の取得を希望することをユーザが確認することを要求することができる。この判断６２２は、補足的特徴の取得を制御された仕方で管理するように働き、アプリケーションプログラムがユーザに対して補足的特徴を軽率に又は不適切に取得しないようにする。判断６２２で、補足的特徴の取得がまだ確認されていないと決定すると、補足的特徴クライアントプロセス６００は、そのような確認を待機することができる。所定の期間内に確認がなされない場合には、判断６２２は、補足的特徴クライアントプロセス６００を終了させることもできる。
【００５５】
或いは又、判断６２２で、補足的特徴の取得がユーザにより確認されたと決定すると、補足的特徴にアクセスするための許可を要求することができる（６２４）。ここで、補足的特徴にアクセスするための許可の要求は、例えば、ネットワークベースのアプリケーション配布システムへ行うことができる。次いで、判断６２６は、補足的特徴にアクセスするための許可が受け取られたかどうか決定する。許可は、許可応答として又は許可応答内で与えることができる。許可応答は、これが与えられると、クライアントにより受信される。従って、判断６２６は、許可応答が受信されたかどうか決定する。判断６２６で、許可応答が受信されないと決定すると、判断６２８は、時間切れが生じたかどうか決定することができる。判断６２８で、時間切れが生じたと決定すると、補足的特徴クライアントプロセス６００を終了することができる。他方、判断６２８で、時間切れが生じないと決定すると、補足的特徴クライアントプロセス６００は、判断６２６を繰り返すように復帰し、許可応答の受信を待機する。判断６２６で許可応答が受信されたと決定すると、アプリケーションプログラムの補足的特徴をアンロックすることができる（６３０）。典型的に、アプリケーションプログラムそれ自体は、クライアントに許可応答が与えられた場合に補足的特徴をアンロックするように働くことができる。ブロック６３０に続いて、補足的特徴クライアントプロセス６００を終了することができる。
【００５６】
図７は、本発明の一実施形態による補足的特徴サーバープロセス７００のフローチャートである。この補足的特徴サーバープロセス７００は、例えば、図１に示されたプロダクト配布サイト１０２のようなサーバー（サーバー装置）により遂行される。
【００５７】
補足的特徴サーバープロセス７００は、判断７０２で開始することができる。判断７０２は、補足的特徴情報要求が受け取られたかどうか決定することができる。典型的に、補足的特徴情報要求は、クライアントから受け取ることができる。例えば、補足的特徴情報要求は、図６Ａ及び６Ｂに示された補足的特徴クライアントプロセス６００のブロック６１６により開始することができる。
【００５８】
判断７０２で、補足的特徴情報要求が受け取られたと決定すると、補足的特徴に関連した補足的特徴情報を７０４において検索することができる。例えば、サーバーは、複数の異なる補足的特徴に対する補足的特徴情報を記憶することのできるデータ記憶装置にアクセスすることができる。特定例として、補足的特徴情報は、データベースでよいプロダクト記憶装置１０６に記憶されたプロダクト情報の一部分である。次いで、（７０４で）検索された補足的特徴情報を送信することができる（７０６）。典型的に、補足的特徴情報は、補足的特徴情報要求を開始したクライアントへ送信される（７０６）。或いは又、判断７０２で、補足的特徴情報要求が受け取られなかったと決定すると、ブロック７０４及び７０６をバイパスすることができる。
【００５９】
ブロック７０６に続いて、又はそれがバイパスされると、補足的特徴サーバープロセス７００は、補足的特徴をアンロックすることに関連した処理を遂行することができる。より詳細には、判断７０８は、アンロック要求を受け取ったかどうか決定することができる。典型的に、アンロック要求は、クライアントから受け取ることができる。例えば、アンロック要求（許可要求でもある）は、図６Ａ及び６Ｂに示された補足的特徴クライアントプロセス６００のブロック６２４により開始することができる。
【００６０】
判断７０８で、アンロック要求が受け取られたと決定すると、補足的特徴サーバープロセス７００は、アンロック要求を承認すべきかどうか決定することができる（７１０）。１つの具現化において、承認するには、１つ以上の要件を満足することが要求される。この要求は、具現化と共に変化し、補足的特徴に対する支払、アプリケーションプログラムの以前の購入、ユーザアカウントの存在、等の１つ以上を含む。判断７１２でアンロック要求が承認されないと決定すると、補足的特徴サーバープロセス７００は、そのアンロック要求をなしたクライアントへ拒絶応答を送信することができる（７１４）。拒絶応答は、拒絶の理由を指示してもよい。或いは又、判断７１２でアンロック要求が承認されたと決定すると、補足的特徴をアンロックする許可応答が、アンロック要求を発したクライアントへ送信される（７１６）。許可応答は、アンロックが要求された特定の補足的特徴をアンロックするのに使用できる許可コード（１つ又は複数）を含むことができる。１つの具現化では、許可応答は、クライアントで動作するアプリケーションプログラムへ送られ（７１６）、次いで、アプリケーションプログラムは、補足的特徴をアンロックするように働くことができる（例えば、図６Ａ及び６Ｂに示された補足的特徴クライアントプロセス６００のブロック６３０）。
【００６１】
他方、判断７０８でアンロック要求が受け取られないと決定すると、ブロック７１０−７１６をバイパスすることができる。ブロック７１４または７１６に続いて（或いはこのようなブロックをバイパスして）、補足的特徴サーバープロセス７００が復帰して、判断７０２を繰り返すことができる。
【００６２】
２００９年３月１６日に出願された“APPLICATION PRODUCTS WITH IN-APPLICATION SUBSEQUENT FEATURE ACCESS USING NETWORK-BASED DISTRIBUTION SYSTEM”と題する米国プロビジョナル特許出願第６１／１６０，６４０号が参考としてここに援用される。
【００６３】
又、本願は、次のものを参照し及び／又は援用する：（１）参考としてここに援用される２００３年１０月１５日に出願された“METHOD AND SYSTEM FOR SUBMITTING MEDIA FOR NETWORK-BASED PURCHASE AND DISTRIBUTION”と題する米国特許出願第１０／６８７，５３４号；（２）参考としてここに援用される２００７年２月２７日に出願された“PROCESSING OF METADATA CONTENTS AND MEDIA CONTENT RECEIVED BY A MEDIA DISTRIBUTION SYSTEM”と題する米国特許出願第１１／７１２，３０３号；（３）参考としてここに援用される２００６年１２月１２日に出願された“TECHNIQUES AND SYSTEMS FOR ELECTRONIC SUBMISSION OF MEDIA FOR NETWORK-BASED DISTRIBUTION”と題する米国特許出願第１１／６０９，８１５号；（４）参考としてここに援用される２００７年１月１２日に出願された“COMPUTERIZED MANAGEMENT OF MEDIA DISTRIBUTION AGREEMENTS”と題する米国特許出願第１１／６２２，９２３号；（５）参考としてここに援用される２００８年９月２６日に出願された“ELECTRONIC SUBMISSION AND MANAGEMENT OF DIGITAL PRODUCTS FOR NETWORK-BASED DISTRIBUTION”と題する米国特許出願第１２／２８６，０７６号；（６）参考としてここに援用される２００８年９月２６日に出願された“NETWORK-BASED DISTRIBUTION OF APPLICATION PRODUCTS”と題する米国特許出願第１２／２８６，０７５号；（７）参考としてここに援用される２００８年９月２６日に出願された“ELECTRONIC SUBMISSION OF APPLICATION PROGRAMS FOR NETWORK-BASED DISTRIBUTION”と題する米国特許出願第１２／２８６，０９２号；（８）参考としてここに援用される２００９年２月２日に出願された“INTELLIGENT DOWNLOAD OF APPLICATION PROGRAMS”と題する米国特許出願第１２／３６８，１１１号；（９）２００９年５月２５日に出願された“CONFIGURATION AND MANAGEMENT OF ADD-ONS TO DIGITAL APPLICATION PROGRAMS FOR NETWORK-BASED DISTRIBUTION”と題する米国プロビジョナル特許出願第６１／１８０，９２５号；及び（１０）２００９年９月３０日に出願された“CONFIGURATION AND MANAGEMENT OF ADD-ONS TO DIGITAL APPLICATION PROGRAMS FOR NETWORK-BASED DISTRIBUTION”と題する米国特許出願（代理人管理番号１０１−Ｐ６８５）。
【００６４】
上述した本発明の種々の態様、特徴、実施形態又は具現化は、単独で使用することもできるし、又は種々の組合せで使用することもできる。
【００６５】
本発明の実施形態は、例えば、ソフトウェア、ハードウェア、又はそれらの組合せで具現化することができる。又、本発明の実施形態は、コンピュータ読み取り可能なメディアにおけるコンピュータ読み取り可能なコードとして実施することもできる。コンピュータ読み取り可能なメディアは、コンピュータシステムにより後で読み取られるデータを記憶できるデータ記憶装置である。コンピュータ読み取り可能なメディアの例は、一般的に、リードオンリメモリ及びランダムアクセスメモリを含む。コンピュータ読み取り可能なメディアのより特定の例は、有形なもので、フラッシュメモリ、ＥＥＰＲＯＭメモリ、メモリカード、ＣＤ−ＲＯＭ、ＤＶＤ、ハードドライブ、磁気テープ、及び光学的データ記憶装置を含む。又、コンピュータ読み取り可能なメディアは、ネットワーク結合されたコンピュータシステムにわたって分散されて、コンピュータ読み取り可能なコードを分散形態で記憶し実行することができるようにされる。
【００６６】
以上の説明から本発明の多数の特徴及び効果が明らかとなろう。更に、当業者であれば、多数の変更や置き換えが容易に明らかであろうから、本発明は、図示して説明した厳密な構造及び動作に限定されるべきではない。従って、適当な変更及び等効物は、全て、本発明の範囲内に包含されるものとする。
【符号の説明】
【００６７】
１００：プロダクト提示及び配布システム
１０２：プロダクト配布サイト
１０４：プロダクト提示及び管理システム
１０６：プロダクト記憶部
１０８：データネットワーク
１１０：第１のクライアント
１１２：第２のクライアント
１１４：ネットワークアクセスプログラム
１１６：プロダクト提示プログラム
１１８：デジタルプロダクト
１２０：補足的特徴
１２２：特徴取得マネージャー
２００：クライアント
２０２：オペレーティングシステム（ＯＳ）
２０４：コマースサーバー
２０６：アプリケーションプログラムＡ
２０８：アプリケーションプログラムＢ
２１０：補足的特徴Ｘ
２１２：補足的特徴Ｙ
２１４：補足的特徴Ｚ
３００：デジタルプロダクト
３０２：アプリケーションプログラム
３０４：補足的特徴Ｘ
３０６：補足的特徴Ｙ
アペンディックスＡ
item-id: this is the offer (i.e., feature) identifier (i.e., adam id)
app-item-id: this is the application's identifier (i.e., application adam id)
version-external-identifier: this is the application's external version id
offer-name: this is the offer identifier in test mode
bid: this is the application's bundle id in test mode
bvrs: this is the application's bundle version in test mode
dsid, guid, and xtoken are required in all 4 of these api's.
inAppBuy
Request in production: salableAdamId, appAdamId, and appExtVrsId.
Request in test: salableAdamId, appAdamId, appExtVrsId, offerName, bid, and bvrs.
The other buyParams include: productType, price, quantity, and salablePricingParameters.
Response: (if bid, bvrs, and offerName are available)
<key>appList</key>
<array>
<dict>
<key>item-id</key><integer>111</integer>
<key>app-item-id</key><integer>1234</integer>
<key>version-external-identifier</key><integer>222</integer>
<key>offer-name</key><string>sword</string>
<key>bid</key><string>444</string>
<key>bvrs</key><string>555</string>
<key>download-id</key><string>1234568453979</string>
<key>purchase-date</key><string>2009-02-13 23:40:53 Etc/GMT</string>
<key>quantity</key><integer>1</integer>
</dict>
</array>
inAppCheckDownloadQueue
Request in production: uses appAdamId, appExtVrsId, salableAdamId (optional, if not present, it would return all the undownloaded offers for this app and external id).
Request in test: uses bid, bvrs, offerName (optional, if not present, it would return all the undownloaded offers for this app and external id).
Response:
<key>download-queue-item-count</key><integer>0</integer>
inAppPendingTransactions
Request in production: uses appAdamId, appExtVrsId, salableAdamId (optional, if not present, it would return all the undownloaded offers for this app and external id).
Request in test: uses bid, bvrs, offerName (optional, if not present, it would return all the undownloaded offers for this app and external id).
Response:
<key>appList</key>
<array>
<dict>
<key>item-id</key><integer>111</integer>
<key>app-item-id</key><integer>1234</integer>
<key>version-external-identifier</key><integer>222</integer>
<key>offer-name</key><string>sword</string>
<key>bid</key>< string >444</string >
<key>bvrs</key>< string >555</string >
<key>download-id</key>< string >1234568453979</string >
<key>purchase-date</key><string>2009-02-13 23:40:53 Etc/GMT</string>
<key>quantity</key><integer>1</integer>
</dict>
<dict>
<key>item-id</key><integer>222</integer>
<key>app-item-id</key><integer>1234</integer>
<key>version-external-identifier</key><integer>222</integer>
<key>offer-name</key><string>shield</string>
<key>bid</key><string>666</string>
<key>bvrs</key><string>777</string>
<key>download-id</key><string>1234568453980</string>
<key>purchase-date</key><string>2009-02-13 23:40:53 Etc/GMT</string>
<key>quantity</key><integer>2</integer>
</dict>
</array>
inAppTransactionDone
Request in production and test: downloadId
Sample requests & responses:
curl -L -v "http://michaelchu.apple.com/WebObjects/MZFinance.woa/wa/inAppBuy?salableAdamId=111&appAdamId=222&appExtVrsId=333&bid=444&bvrs=555&quantity=1&offerName=offer" -H"X-Dsid: 38398162" -H"User-Agent: iTunes-iPhone/2.1"
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>jingleDocType</key><string>inAppSuccess</string>
<key>jingleAction</key><string>inAppBuyAction</string>
<key>dsid</key><string>38398162</string>
<key>download-queue-item-count</key><integer>1</integer>
<key>app-list</key>
<array>
<dict>
<key>item-id</key><integer>111</integer>
<key>app-item-id</key><integer>222</integer>
<key>version-external-identifier</key><integer>333</integer>
<key>bid</key><string>444</string>
<key>bvrs</key><string>555</string>
<key>offer-name</key><string>offer</string>
<key>download-id</key><string>1235424182908</string>
<key>purchase-date</key><string>2009-02-23 21:23:02 Etc/GMT</string>
<key>quantity</key><integer>1</integer>
</dict>
</array>
<key>set-prefs</key>
<dict>
<key>preferred-audio-format</key><string>256</string>
</dict>
</dict>
</plist>
curl -L -v "http://michaelchu.apple.com/WebObjects/MZFinance.woa/wa/inAppTransactionDone?downloadId=111" -H"X-Dsid: 38398162" -H"User-Agent: iTunes-iPhone/2.1"
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>jingleDocType</key><string>inAppSuccess</string>
<key>jingleAction</key><string>inAppTransactionDoneAction</string>
<key>dsid</key><string>38398162</string>
<key>set-prefs</key>
<dict>
<key>preferred-audio-format</key><string>256</string>
</dict>
</dict>
</plist>
アペンディックスＢ
コマースサーバー（ＳｔｏｒｅＫｉｔと称される）のためのプログラムインターフェイスは、あなたのアプリケーションによって具現化されねばならない１つのプロトコルと、ユーザがアイテムの購入を希望するところのアプリケーションストアと通信するのに使用される若干のクラスとで構成される。
ＳＫＰａｙｍｅｎｔＲｅｑｕｅｓｔ
何事も支払要求でスタートする。ユーザがあなたのアプリケーションの中から入手できるアイテムの購入を希望するときには、あなたのアプリケーションは、購入されるべきアイテムを詳述する支払要求と、（該当する場合は）そのアイテムの購入量とを生成する。購入されるアイテムは、ＰｒｏｄｕｃｔＩｄｅｎｔｉｆｉｅｒストリングによりアプリケーション内で識別される。これは、アプリケーションストア及びあなたのアプリケーションの合意が特定のアイテムを表すストリングである。
ＳＫＰａｙｍｅｎｔＱｕｅｕｅ
支払キューは、アプリケーションストアへのインターフェイスである。支払キューは、アプリケーションの支払要求をコマースサーバーへ転送する役割を果たす。コマースサーバーは、これらの要求をアプリケーションストアへ通信し、そして必要なプロンプトをユーザへ表示する。それがユーザの証明書を有効なものとし、支払を承認すると、支払キューは、要求が取り扱われたことをあなたのアプリケーションに通知する。
ＳＬＰａｙｍｅｎｔＴｒａｎｓａｃｔｉｏｎ
あなたのアプリケーションが支払要求を支払キューに追加するときに、要求がトランザクションへとカプセル化される。トランザクションは、要求の状態、即ちそれがまだ処理されているかどうか、或いはそれが成功であったか失敗であったかをあなたに知らせる。
あなたのアプリケーションは、保留中のトランザクションのリストについて支払キューに尋ねることができるが、一般的には、アプリケーションは、支払キューが、更新されたトランザクションのリストと共にそれにコールするまで、待機となる。
ＳＫＴｒａｎｓａｃｔｉｏｎＯｂｓｅｒｖｅｒ
支払キューと共に機能するために、あなたのアプリケーションは、ＳＫＴｒａｎｓａｃｔｉｏｎＯｂｓｅｒｖｅｒを具現化するオブジェクトを支払キューのオブザーバーとして追加する。このトランザクションオブザーバーは、支払キューによってコールされ、いつトランザクションを更新するか又はいつトランザクションをキューから除去するかそれに通知する。
あなたのアプリケーションは、オブザーバーを初期化の間に支払キューに関連付けねばならない。ユーザがオブザーバーを追加する前にアイテムの購入を試みるまで待機するのではない。ユーザは、アイテムを購入するように試みるが、トランザクションが完了する前にあなたのアプリケーションを止めるかもしれない。初期化中に、オブザーバーを追加することにより、これらのトランザクションは、あなたのアプリケーションが次に起動されるときにあなたのオブザーバーへ転送される。
オブザーバーの重要な役割は、完了した全ての購入を検査し、そしてユーザが購入したコンテンツを得られるようにすることである。
コマースサーバーＡＰＩは、あなたのアプリケーションにストアを追加するプロセスの小さな部分に過ぎない。あなたは、あなたが売りたい特徴をどのように追跡するか、それらをユーザにどのように表示するか、及びユーザがあなたの店頭から何かを購入するときにコンテンツをどのようにアンロックするかを判断することが必要になる。
大きな設計上の問題に取り組む前に、あなたのアプリケーションにストアを追加するためにあなたが続ける必要のある基本的ステップを理解する上で助けとなる。
Ｓｔｅｐ−Ｂｙ−Ｓｔｅｐプロセス
プロジェクトを設定するときに、ＳｔｏｒｅＫｉｔ．ｆｒａｍｅｗｏｒｋにリンクすることを確かめる。次いで、一実施形態によれば、あなたは、これらのステップをたどることによりあなたのアプリケーションにストアを追加することができる。
１．あなたのアプリケーション内であなたが売りたいアイテムのリストについて判断する。ゲームの場合には、あなたは、これを使用して、新たなコンテンツをユーザに売る。生産性アプリケーションの場合には、あなたのアプリケーション内の新たな特徴をアンロックする能力をオファーしてもよい。
あなたがオファーできる特徴の形式には制限がある。あなたは、あなたのアプリケーションに既に組み込まれたコードをアンロックできるが、ＳｔｏｒｅＫｉｔ  ＡＰＩは、現在、それ自身パッチするか又は付加的なコードライブラリーをダウンロードする能力をあなたのアプリケーションにオファーすることはない。アプリケーションストア購入は、既存のコードをアンロックするか、又は全体的にデータとして具現化できねばならない。あなたの特徴が付加的なコードを要求する場合には、あなたは、あなたのアプリケーションの新たなバージョンを発送しなければならない。
２．あなたのアプリケーション内で販売されるべき各アイテムに対してプロダクト識別子ストリングを登録する。あなたは、新たなアイテムを販売のために追加することを希望するたびにこのステップを再訪問しなければならない。あなたのストア内で販売されるべき各アイテムは、独特のプロダクト識別子ストリングを必要とする。アプリケーションストアは、このストリングを使用して、特徴の名前及びその価格をルックアップする。これらのプロダクト識別子は、各アプリケーションに特有のもので、あなたのアプリケーションと同様にアプリケーションストアと共に登録される。
３．販売のためのアイテムを表示しそしてユーザがそれらを選択できるようにするユーザインターフェイスを追加する。ＳｔｏｒｅＫｉｔは、ユーザインターフェイスを与えない。あなたがどのようにあなたの顧客に物を売るかの見た目の感じは、あなた次第！
重要：ＳｔｏｒｅＫｉｔは、支払トランザクションに焦点を合わせる。あなたのアプリケーションが、価格を含めて、購入のための考えられるアイテムに関する情報を検索するためのメカニズムをオファーするのではない。あなたのアプリケーションは、このデータをローカル記憶する必要があるか、又はあなた自身のプライベートサーバーからそれをフェッチする必要がある。
４．ユーザが購入アイテムを選択するとき、あなたのアプリケーションは、新たな支払要求を生成し、それを支払キューに追加する。
SKPaymentRequest *request = [SKPaymentRequest
requestForProductIdentifier:kMyFeatureIdentifier];
[[SKPaymentQueue sharedQueue] addRequest:request];
特定のアイテムを２回以上購入できる場合には、あなたは、購入するそのアイテムの量を含む単一の要求を生成することができる。
SKMutablePaymentRequest *request = [SKMutablePaymentRequest
requestForProductIdentifier:kMyFeatureIdentifier];
request.quantity = 3;
[[SKPaymentQueue sharedQueue] addRequest:request];
５．あるクラスにおいてＳＫＴｒａｎｓａｃｔｉｏｎＯｂｓｅｒｖｅｒプロトコルを具現化する。あなたは、あなたのオブザーバーにおけるメソッドであるｐａｙｍｅｎｔＱｕｅｕｅ：ｕｐｄａｔｅｄＴｒａｎｓａｃｔｉｏｎｓを具現化しなければならない。このメソッドがないと、あなたのアプリケーションは、処理されたトランザクションに関する情報をアプリケーションストアから受信することがない。
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray
*)transactions
{
for (SKPaymentTransaction *transaction in transactions)
{
switch (transaction.state)
{
case SKPaymentTransactionStatePurchased:
[self _completeTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
[self _failedTransaction:transaction];
break;
default:
break;
}
}
}
６．トランザクションオブザーバーを支払キューと共に登録する。あなたのアプリケーションは、トランザクションオブザーバーオブジェクトをインスタンス生成し、そしてそれをオブザーバーとして支払キューへ追加しなければならない。
MyStoreObserver *observer = [[MyStoreObserver alloc] init];
[[SKPaymentQueue sharedQueue] addTransactionObserver:observer];
あなたのアプリケーションは、初期化中にオブザーバーを追加しなければならない。ＳｔｏｒｅＫｉｔは、あなたのアプリケーションの以前の起動中にキューイングされたトランザクションを将来の期日に配送できるようにする。例えば、ユーザは、電話コールを行うためにあなたのアプリケーションを止めてもよい。
７．首尾良い購入に対してトランザクションを完了する。
- (void) _completeTransaction: (SKPaymentTransaction *)transaction
{
[self _recordTransactionIdentifier: transaction.transactionIdentifier];
[self _provideContent: transaction.request.productIdentifier];
[[SKPaymentQueue sharedQueue] finishTransaction: transaction];
}
ｔｒａｎｓａｃｔｉｏｎＩｄｎｔｉｆｉｅｒは、ユーザの支払を処理した後にアプリケーションストアにより発生されるストリングである。あなたのアプリケーションは、この情報で何かを行うことが要求されず、あなたのアプリケーションのための監査証跡の一部分としてそれを記録することを希望してもよい。
ユーザが購入したコンテンツを与えるためにどんなステップが必要であるかあなたのアプリケーションが取り上げることが重要である。支払は、アイテムに対して既に受け取られており、従って、ユーザは、それが入手できるようになることを期待する。
あなたがユーザにそれらのコンテンツを与えると、あなたのアプリケーションは、オペレーションを完了するためにｆｉｎｉｓｈＴｒａｎｓａｃｔｉｏｎをコールしなければならない。これは、トランザクションキューからトランザクションを除去する。あなたのアプリケーションがｆｉｎｉｓｈＴｒａｎｓａｃｔｉｏｎをコールすると、このトランザクションは、もはやあなたのアプリケーションのトランザクションオブザーバーへ送信されない。このため、これは、ここであなたが遂行する最後のステップとなる。
８．購入失敗に対するトランザクションの完了
- (void) _failedTransaction: (SKPaymentTransaction *)transaction
{
[[SKPaymentQueue sharedQueue] finishTransaction: transaction];
}
購入失敗に対する唯一の要件は、あなたがそれをキューから除去することである。あなたは、必要に応じて他のアクションをとるように選択してもよい。
【図１】
2010218559.tif 000003
【図２】
2010218559.tif 000004
【図３Ａ】
2010218559.tif 000005
【図３Ｂ】
2010218559.tif 000006
【図３Ｃ】
2010218559.tif 000007
【図４】
2010218559.tif 000008
【図５】
2010218559.tif 000009
【図６Ａ】
2010218559.tif 000010
【図６Ｂ】
2010218559.tif 000011
【図７】
2010218559.tif 000012
【外国語明細書】
2010218559.tif 000013
2010218559.tif 000014
2010218559.tif 000015
2010218559.tif 000016
2010218559.tif 000017
2010218559.tif 000018
2010218559.tif 000019
2010218559.tif 000020
2010218559.tif 000021
2010218559.tif 000022
2010218559.tif 000023
2010218559.tif 000024
2010218559.tif 000025
2010218559.tif 000026
2010218559.tif 000027
2010218559.tif 000028
2010218559.tif 000029
2010218559.tif 000030
2010218559.tif 000031
2010218559.tif 000032
2010218559.tif 000033
2010218559.tif 000034
2010218559.tif 000035
2010218559.tif 000036
2010218559.tif 000037
2010218559.tif 000038
2010218559.tif 000039
2010218559.tif 000040
2010218559.tif 000041
2010218559.tif 000042
2010218559.tif 000043
2010218559.tif 000044
2010218559.tif 000045
2010218559.tif 000046
2010218559.tif 000047
2010218559.tif 000048
2010218559.tif 000049
2010218559.tif 000050
2010218559.tif 000051
2010218559.tif 000052
2010218559.tif 000053
2010218559.tif 000054
2010218559.tif 000055
2010218559.tif 000056
2010218559.tif 000057
2010218559.tif 000058
2010218559.tif 000059
2010218559.tif 000060
2010218559.tif 000061
2010218559.tif 000062
2010218559.tif 000063