(57)【特許請求の範囲】
【請求項１】
他のデバイスとの共有が可能なアプリケーションのリストを共有側デバイス上に表示するステップであって、アプリケーションの共有が可能か否かはアプリケーション共有フラグによって判定される、ステップと、
前記共有側デバイスにおいて、前記アプリケーションのリストからの受信側デバイスと共有するアプリケーションの選択を受信するステップと、
前記共有側デバイスにおいて、前記選択されたアプリケーションに関連する共有プリファレンスに基づいてアプリケーションパッケージを作成するステップであって、前記アプリケーションパッケージは、アプリケーション識別子と、共有側デバイス識別子と、前記アプリケーションを表すグラフィック画像と、を含むと共に、前記アプリケーションの限定機能コピーと、前記アプリケーションの完全機能コピーと、前記アプリケーションをオンラインアプリケーションマーケットから取得するためのアプリケーションシードとのうちの１つを含む、ステップと、
前記共有側デバイスから前記受信側デバイスへ前記アプリケーションパッケージを送信するステップと、
３以上のデバイスを含むピアツーピアネットワークを維持するステップと、
前記選択されたアプリケーションが前記ピアツーピアネットワークの複数のソースから入手可能な場合に、前記共有側デバイスが、前記選択されたアプリケーションの各部分を前記受信側デバイスへ送信する指示を前記複数のソースに提供するステップと、
を備えることを特徴とする方法。
【請求項２】
前記共有側デバイスにおいて、前記アプリケーションパッケージの送信が成功した旨の確認応答を前記受信側デバイスから受信するステップ
を更に備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記選択されたアプリケーションの共有に関するトランザクションレコードを生成するステップ
を更に備えることを特徴とする請求項１又は２に記載の方法。
【請求項４】
前記トランザクションレコードを前記共有側デバイスのストレージエリアに格納するステップ
を更に備えることを特徴とする請求項３に記載の方法。
【請求項５】
前記共有側デバイスからリモートサーバへ前記トランザクションレコードを送信するステップ
を更に備えることを特徴とする請求項３又は４に記載の方法。
【請求項６】
前記共有側デバイスから前記受信側デバイスへ前記トランザクションレコードを送信するステップ
を更に備えることを特徴とする請求項３乃至５のいずれか１項に記載の方法。
【請求項７】
前記トランザクションレコードは、前記共有側デバイスから送信されたアプリケーションパッケージの総数に関する情報、共有されたアプリケーションのアプリケーション識別子、前記共有側デバイスからのユーザアカウント識別子、及び前記受信側デバイスに関するユーザアカウント識別子のうちの少なくとも１つを含む
ことを特徴とする請求項６に記載の方法。
【請求項８】
前記アプリケーションパッケージは、前記選択されたアプリケーションに関連するメタデータと、前記共有側デバイスに関連する第１の一意の識別子と、前記受信側デバイスに関連する第２の一意の識別子と、を含むと共に、前記共有プリファレンスに基づき、前記アプリケーションの限定共有コピー又は前記選択されたアプリケーションをサーバ上で一意に識別するアプリケーションシードを含み、
前記受信側デバイスは、前記アプリケーションパッケージに基づいてサーバから前記アプリケーションのコピーを読み出すことができる
ことを特徴とする請求項１乃至７のいずれか１項に記載の方法。
【請求項９】
前記共有側デバイスが前記受信側デバイスからデバイス識別子を受信するステップ
を更に備えることを特徴とする請求項１乃至８のいずれか１項に記載の方法。
【請求項１０】
前記アプリケーションパッケージは、アプリケーションシード識別子，前記選択されたアプリケーションを表すグラフィック画像、アプリケーション識別子、及び前記アプリケーションの共有コピーのうちの少なくとも１つを更に含む
ことを特徴とする請求項１乃至９のいずれか１項に記載の方法。
【請求項１１】
プロセッサと、
ディスプレイと、
ネットワークインタフェースと、
下記のステップを実行するように前記プロセッサを制御する命令を格納したメモリと、
を備えることを特徴とするシステム。
共有側から受信側へ送信されたアプリケーションパッケージに基づいて前記共有側から前記受信側へのアプリケーションの共有が成功した旨を表すデータセットを、前記ネットワークインタフェースを介して受信するステップであって、前記データセットは、前記共有側と、前記受信側と、前記共有されたアプリケーションとを示し、アプリケーションの共有の前記成功は、３以上のデバイスを含むピアツーピアネットワークに含まれる複数のソースから前記受信側へ前記アプリケーションの各部分を送信することを含む、ステップと、
前記データセットを、前記共有側を前記受信側に連結する第１のデータベースに挿入するステップと、
前記データセットを、前記共有側を前記共有されたアプリケーションに連結する第２のデータベースに挿入するステップと、
前記第１のデータベース及び前記第２のデータベースの少なくとも一方の少なくとも一部を、前記ディスプレイを介して出力するステップ。
【請求項１２】
前記命令は、前記共有側から出ている子孫の受信側を示す、共有側−受信側のペアのツリーを表示するように前記プロセッサを更に制御する
ことを特徴とする請求項１１に記載のシステム。
【請求項１３】
前記命令は、前記受信側から出ている祖先の共有側を示す、共有側−受信側のペアのツリーを表示するように前記プロセッサを更に制御する
ことを特徴とする請求項１１又は１２に記載のシステム。
【請求項１４】
コンピュータデバイスのプロセッサによって実行されると、前記コンピュータデバイスに下記のステップを実行させる命令を格納したコンピュータ可読記憶媒体。
共有側デバイスによって引き起こされた共有イベントに基づいて受信側デバイスからアプリケーションダウンロード要求を受信するステップであって、前記ダウンロード要求は、前記共有側デバイスから受信されたアプリケーションパッケージに基づいて生成され、前記ダウンロード要求は、アプリケーション識別子を含むと共に、共有側デバイスのデバイス識別子及びユーザアカウントのうちの少なくとも一方を含む、ステップと、
前記アプリケーション識別子に基づいて、要求されたアプリケーションのコピーを前記受信側デバイスへ送信するステップと、
前記要求されたアプリケーションが３以上のデバイスを含むピアツーピアネットワーク内の複数のソースから入手可能な場合に、前記要求されたアプリケーションの各部分を前記複数のソースから前記受信側デバイスへ送信するステップ。
【請求項１５】
前記命令は、前記共有側デバイスの前記デバイス識別子又はユーザアカウントに対して報酬を提供するステップを更に含む
ことを特徴とする請求項１４に記載のコンピュータ可読記憶媒体。
【請求項１６】
前記ダウンロード要求は共有基準を更に含み、
前記要求されたアプリケーションのコピーを送信する前記ステップは、前記共有基準に更に基づく
ことを特徴とする請求項１４に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記共有基準は、完全機能性、限定機能性、起動の限定回数、及び有効期限のうちの１つを示すフラグである
ことを特徴とする請求項１６に記載のコンピュータ可読記憶媒体。
【請求項１８】
前記共有基準は、前記アプリケーションパッケージの一部である
ことを特徴とする請求項１６に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記共有基準は、前記アプリケーションパッケージから分離している
ことを特徴とする請求項１６に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記共有基準は、配信サーバに格納されている
ことを特徴とする請求項１６に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願］
本願は、２００９年６月１１日に出願された米国特許出願第１２／４８３，１６４号に対する優先権を主張し、また、２００９年６月３日に出願され「ＩＮＳＴＡＬＬＩＮＧ  ＡＰＰＬＩＣＡＴＩＯＮＳ  ＢＡＳＥＤ  ＯＮ  Ａ  ＳＥＥＤ  ＡＰＰＬＩＣＡＴＩＯＮ  ＦＲＯＭ  Ａ  ＳＥＰＡＲＡＴＥ  ＤＥＶＩＣＥ（シードアプリケーションに基づく、別個のデバイスからのアプリケーションのインストール）」と題された米国仮特許出願第６１／１８３，８６１号の利益を主張するものであり、それら両方は、それらの全体が参照により明示的に本願に組み込まれる。
【０００２】
［技術分野］
本願は、デバイス間でソフトウェアアプリケーションを共有することに関し、詳細には、シードアプリケーションを用いてデバイス間でソフトウェアアプリケーションを共有することに関する。
【背景技術】
【０００３】
日常生活でスマートフォンやネットブックや携帯情報端末（ＰＤＡ）のような移動コンピュータデバイスを利用する人が増加している。これらの移動コンピュータデバイスは、各種のアプリケーションをダウンロードするためオンライン電子ストアとのインタフェースを有することが多い。場合によっては、特定のデバイスタイプにサービスを提供する専用のオンラインストアも存在する。移動デバイスのユーザは、日常生活をしながら自分の移動デバイスを使用する際、アプリケーションを他の人々に示すことがある。他の人々は、アプリケーションを見ると、それと同じアプリケーションを欲しがることが多いが、そのアプリケーションを入手するには多くのステップが含まれることがあり、そのため、ユーザがアプリケーションの入手を止めることもありうる。
【０００４】
例えば、スマートフォンのユーザであるアーロンが、友人のブレントと昼食中であるとする。昼食後、請求書が来た時、アーロンは、自分のスマートフォン上の専門的な計算機アプリケーションをブレントに示すのだが、それによって、適切なチップの額と、彼らがそれぞれいくらずつ昼食代を支払うべきかが判定されている。ブレントは計算機アプリケーションに大いに感心し、自分のスマートフォン用にコピーを入手したいと望む。この場合、ブレントは、アーロンにアプリケーションの名前を尋ね、移動デバイスでオンラインストアを閲覧し、オンラインストアなどでアプリケーションを探し、最後に、アプリケーションを選択してダウンロードしなければならない。アプリケーションの名前を書き写す際の単純な間違いや、どんなアプリケーションだったか忘れることや、それ以外の多数の失敗のいずれかによって、ブレントが計算機アプリケーションのコピーを入手するために達成しなければならないこの一連の動作が妨げられる恐れがある。また、ブレントが他にも入手可能性や使用許諾やそれ以外の機能に関する質問を有していて、アーロンがそれらへの答えを知らないこともありうる。ブレントは、その情報を入手したりアプリケーションをダウンロードしたりする際に何らかの問題に遭遇することもありうる。
【０００５】
ブレントも計算機アプリケーションのベンダもどちらも、取引をすることを望んでいるのだが、物流の障壁および／または不都合のために、それができないことがありうる。従って、当技術分野において必要とされるのは、近隣のコンピュータデバイス間でアプリケーションを迅速かつ容易に共有するための改善された方法である。
【発明の概要】
【０００６】
本開示のさらなる特徴および利点について以下に続く記述の中で述べるが、それらはある程度、記述から明らかであろうし、あるいは、本書で開示された原理の実施によって知ることができる。本開示の特徴および利点は、添付の請求項の中で具体的に指摘された機器および組み合わせによって実現され、得られうる。本開示のこれらの特徴およびその他の特徴は、以下の記述と添付の請求項とから、より一層明らかになるであろうし、あるいは、本書で述べた原理の実施によって知ることができる。
【０００７】
本書で開示するのは、電子ストアにおけるコミュニティに基づくランキングのためのシステムと、コンピュータに実装された方法と、有形のコンピュータ可読記憶媒体とである。システムと、方法と、有形のコンピュータ可読記憶媒体とはそれぞれ、本開示の精神および範囲の中で、他の請求可能な実施形態において実装されうる。
【０００８】
１つの例示的な方法では、共有側デバイスから受信側デバイスにアプリケーションを同期する。この方法は、他のデバイスと共有することが可能な１つ以上のアプリケーションのリストを共有側デバイス上に表示し、アプリケーションのリストからの受信側デバイスと共有するアプリケーションの選択を共有側デバイスで受信し、選択されたアプリケーションの共有選好を共有側デバイスによって判定し、共有選好に基づいてアプリケーションパッケージを共有側デバイスで作成し、共有側デバイスから受信側デバイスへのネットワーク接続を確立し、そして、ネットワーク接続を介してアプリケーションパッケージを共有側デバイスから受信側デバイスへ送信する。
【０００９】
１つの例示的なデバイスの実施形態では、アプリケーションを別のデバイスに同期する。このデバイスは、プロセッサと、他のデバイスと共有することが可能なアプリケーションのリストを共有側デバイス上に表示するようにプロセッサを制御するように構成されたモジュールと、アプリケーションのリストから受信側デバイスと共有するアプリケーションを選択するようにプロセッサを制御するように構成されたモジュールと、選択されたアプリケーションから共有選好を読み出すようにプロセッサを制御するように構成されたモジュールと、選択されたアプリケーションに関連するメタデータと共有側デバイスに関連する一意の識別子とを含む読み出された選好に基づいてアプリケーションパッケージを作成するようにプロセッサを制御するように構成されたモジュールとを含んでおり、ここで共有選好は、アプリケーションパッケージがさらに、アプリケーションの完全コピーか、アプリケーションの限定共有コピーか、あるいは選択されたアプリケーションをサーバ上で一意に識別するアプリケーションシードか、いずれか１つを含んでいるかどうかを判定するようになっており、そして、このデバイスは、さらに、共有側デバイスと受信側デバイスとの間でピアツーピア接続を確立するようにプロセッサを制御するように構成されたモジュールと、ピアツーピア接続を介してアプリケーションパッケージを受信側デバイスに送信するようにプロセッサを制御するように構成されたモジュールとを含んでいる。
【００１０】
別の例示的なコンピュータに実装された方法では、共有側デバイスからアプリケーションを受信する。この方法では、共有側デバイスとピアツーピア接続を確立し、選択されたアプリケーションについてのアプリケーションパッケージを共有側デバイスからピアツーピア接続を介して受信するようになっており、ここでアプリケーションパッケージは、選択されたアプリケーションに関連するメタデータを含んでいて、メタデータはアプリケーション識別子を含んでおり、そしてこの方法ではさらに、アプリケーション識別子に基づいてアプリケーション配信サーバからアプリケーションのコピーを読み出す。アプリケーションパッケージがアプリケーションの限定共有コピーを含んでいる場合、方法では、アプリケーションの限定共有コピーのアップグレードをサーバから読み出す。アプリケーションパッケージがアプリケーションの完全コピーを含んでいる場合、方法では、アプリケーションパッケージに基づいて追加サービスまたは追加ソフトウェアをサーバから読み出す。
【００１１】
１つの例示的なシステムが、共有アプリケーションを追跡する。このシステムは、プロセッサと、共有側から受信側へのアプリケーションの共有が成功したことを表すデータセットであって、共有側と受信側と共有アプリケーションとを示すデータセットを受信するようにプロセッサを制御するように構成されたモジュールと、受信したデータセットを共有側を受信側に結び付ける第１のデータベースに挿入するようにプロセッサを制御するように構成されたモジュールと、受信したデータセットを共有側を共有アプリケーションに結び付ける第２のデータベースに挿入するようにプロセッサを制御するように構成されたモジュールと、第１および第２のデータベースの少なくとも一部を表示するように構成されたモジュールとを含んでいる。
【００１２】
コンピュータプログラムを記憶している１つの例示的な有形のコンピュータ可読記憶媒体が、別のデバイスからアプリケーションを受信するための命令を有している。命令は、共有側デバイスとのピアツーピア接続を確立することと、アプリケーションのアプリケーションパッケージを共有側デバイスからピアツーピア接続を介して受信することとを含んでおり、ここでアプリケーションパッケージは、選択されたアプリケーションに関連するメタデータと、共有側デバイスに関連する一意の識別子と、そしてアプリケーションの中の共有選好に基づいて、アプリケーションの限定共有コピーか、選択されたアプリケーションをサーバ上で一意に識別するアプリケーションシードか、いずれか１つとを備えており、そして、命令はさらに、アプリケーションパッケージがアプリケーションシードを備えている場合にはアプリケーションシードを用いてサーバからアプリケーションのコピーを読み出すことと、アプリケーションパッケージがアプリケーションの限定共有コピーを備えている場合にはアプリケーションの限定共有コピーのアップグレードをサーバから読み出すこととを含んでいる。アプリケーションパッケージがアプリケーションシードを含んでいる場合には、アプリケーションシードを用いてサーバからアプリケーションのコピーを読み出すこと。アプリケーションパッケージがアプリケーションの限定共有コピーを含んでいる場合には、アプリケーションの限定共有コピーのアップグレードをサーバから読み出すこと。有形のコンピュータ可読記憶媒体には、ＲＡＭ、ＲＯＭ、ハードドライブ、ソリッドステートメモリ、クライアントおよび／またはサーバ上のその他の記憶媒体が含まれうる。
【００１３】
別の例示的な方法の実施形態では、アプリケーション配信サーバから１つ以上のアプリケーションを受信側デバイスへ配信する。この方法では、アプリケーションダウンロード要求を受信側デバイスから受信するのだが、ここでダウンロード要求は、共有側デバイスのデバイスＩＤまたはユーザアカウントと、アプリケーション識別子とを備えており、そして、この方法では、要求されたアプリケーションのコピーをアプリケーション識別子に基づいて受信側デバイスへ送信する。
【００１４】
本開示についての上記およびそれ以外の利点および特徴がどのようにして得られうるかを記述するために、簡単に上述した原理の一層詳細な記述を、添付の図面に図示したそれらの特定の実施形態を参照することによって行うことにしよう。これらの図面は本開示の例示的な実施形態を描いているにすぎず、従ってその範囲を限定していると解釈されるべきではないことを理解した上で、本書の原理について添付の図面を使用してさらに詳細に記述し説明する。
【図面の簡単な説明】
【００１５】
【図１】システムの実施形態の一例を示す図である。
【図２】共有側デバイス、受信側デバイス、サーバのサンプルを示す図である。
【図３】共有側デバイス上のユーザインタフェースの一例を示す図である。
【図４】子孫を示すツリーのサンプルを示す図である。
【図５】例示的なピアツーピアネットワークを示す図である。
【図６】第１の例である方法の実施形態を示す図である。
【図７】第２の例であるデバイスの実施形態を示す図である。
【図８】第３の例である方法の実施形態を示す図である。
【図９】第４の例であるシステムの実施形態を示す図である。
【図１０】第５の例であるコンピュータ可読記憶媒体の実施形態を示す図である。
【図１１】第６の例である方法の実施形態を示す図である。
【発明を実施するための形態】
【００１６】
本開示の各種の実施形態を以下に詳述する。特定の実装を論じてはいるが、これは例示する目的でのみ行われているということは理解されるべきである。当業者であれば、本開示の精神および範囲から逸脱することなく他のコンポーネントや構成が用いられうることを認識するであろう。
【００１７】
図１に関して、例示的なシステム１００が、処理ユニット（ＣＰＵまたはプロセッサ）１２０と、例えばリードオンリーメモリ（ＲＯＭ）１４０およびランダムアクセスメモリ（ＲＡＭ）１５０のようなシステムメモリ１３０を含む各種のシステムコンポーネントをプロセッサ１２０に連結するシステムバス１１０とを含んだ、汎用コンピュータデバイス１００を有している。これらのモジュールおよびその他のモジュールは、各種の動作を行うためにプロセッサ１２０を制御するように構成することができる。その他のシステムメモリ１３０を使用することも可能である。本開示が、処理能力を高めるために、２つ以上のプロセッサ１２０を備えたコンピュータデバイス１００上で、またはネットワーク化されたコンピュータデバイスのグループまたはクラスタ上で作用することができるということは、理解されうる。プロセッサ１２０は、プロセッサ１２０を制御するように構成されたいずれかの汎用プロセッサ、および、例えばストレージデバイス１６０の中に記憶されたモジュール１  １６２、モジュール２  １６４、モジュール３  １６６のような、ハードウェアモジュールまたはソフトウェアモジュールだけでなく、ソフトウェア命令が実際のプロセッサ設計の中に組み込まれた特別目的プロセッサを含んでもよい。プロセッサ１２０は、本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュ等を含む、完全自己完結型コンピュータシステムであってもよい。マルチコアプロセッサは、対称的でも非対称的でもよい。
【００１８】
システムバス１１０は、各種のバスアーキテクチャのいずれかを用いるメモリバスまたはメモリコントローラ、ペリフェラルバス、ローカルバスを含めて、複数のタイプのバス構造のいずれであってもよい。ＲＯＭ１４０等の中に記憶された基本的な入力／出力（ＢＩＯＳ）は、例えば起動中に、コンピュータデバイス１００の中の要素間で情報を転送するのに役立つ基本的なルーチンを提供することができる。コンピュータデバイス１００は、さらに、例えばハードディスクドライブ、磁気ディスクドライブ、光学ディスクドライブ、テープドライブのような、ストレージデバイス１６０を含む。ストレージデバイス１６０は、プロセッサ１２０を制御するためのソフトウェアモジュール１６２、１６４、１６６を含んでもよい。他のハードウェアモジュールまたはソフトウェアモジュールも考えられる。ストレージデバイス１６０は、ドライブインタフェースによってシステムバス１１０に接続されている。各ドライブおよび関連するコンピュータ可読記憶媒体は、コンピュータデバイス１００のためのコンピュータ可読命令、データ構造、プログラムモジュールおよびその他のデータの不揮発性記憶を提供する。一態様では、特定の機能を行うハードウェアモジュールが、機能を実行するために、例えばプロセッサ１２０、バス１１０、ディスプレイ１７０等の必要なハードウェアコンポーネントに関連する有形および／または無形のコンピュータ可読媒体の中に記憶されたソフトウェアコンポーネントを含んでいる。基本的なコンポーネントは、当業者には周知であり、適切な変形形態は、例えばデバイス１００が小型で手持ち式のコンピュータデバイスなのか、デスクトップコンピュータなのか、コンピュータサーバなのかといった、デバイスのタイプに応じて考えられる。
【００１９】
本書で記述した例示的な実施形態はハードディスク１６０を採用しているが、当業者には理解されるはずだが、コンピュータによってアクセス可能なデータを記憶することができる他のタイプのコンピュータ可読媒体、例えば磁気カセット、フラッシュメモリカード、デジタル多目的ディスク、カートリッジ、ランダムアクセスメモリ（ＲＡＭ）１５０、リードオンリーメモリ（ＲＯＭ）１４０、ケーブル、またはビット列を含む無線信号等も、例示的な動作環境において使用することができる。有形のコンピュータ可読記憶媒体は、例えば、エネルギー、電磁波、信号それ自体のような媒体を明示的に除外する。
【００２０】
ユーザがコンピュータデバイス１００と対話できるようにするため、入力デバイス１９０は、例えば、音声用マイクロフォン、ジェスチャまたはグラフィカル入力用のタッチスクリーン、キーボード、マウス、動作入力、音声等、任意の数の入力メカニズムをも表す。入力デバイス１９０は、音声探索クエリの開始を示すために、発表者によって用いられうる。また、出力デバイス１７０は、当業者には周知の複数の出力メカニズムのうちの１つ以上であってもよい。場合によっては、マルチモードのシステムによって、コンピュータデバイス１００と通信するためにユーザに複数のタイプの入力を提供することができてもよい。通信インタフェース１８０は、一般に、ユーザ入力とシステム出力とを支配して管理する。いずれかの具体的なハードウェア装置を操作することについての制限はなく、従って、本書の基本的な特徴は、開発されることによってハードウェアまたはファームウェア装置が向上すれば、容易に置き換えられうる。
【００２１】
説明を分かりやすくするため、例示するシステムの実施形態は、「プロセッサ」と名付けられた機能ブロックすなわちプロセッサ１２０を含めて、個別の機能ブロックを含むように表されている。これらのブロックが表す機能は、ソフトウェアを実行することができるハードウェアと、例えばプロセッサ１２０のような汎用プロセッサ上で実行されるソフトウェアと同等物として動作するように特設されたハードウェアとを含むけれどもそれらに限定されない、共有ハードウェアまたは専用ハードウェアのいずれかを使用して提供されうる。例えば、図１に示す１つ以上のプロセッサの機能は、単一の共有プロセッサまたは複数のプロセッサによって提供されうる。（「プロセッサ」という用語の使用は、ソフトウェアを実行することができるハードウェアだけを指すと解釈されるべきではない。）例示的な実施形態は、マイクロプロセッサおよび／またはデジタル信号プロセッサ（ＤＳＰ）ハードウェアと、以下に論じる動作を行うソフトウェアを記憶するためのリードオンリーメモリ（ＲＯＭ）１４０と、結果を記憶するためのランダムアクセスメモリ（ＲＡＭ）１５０とを含みうる。ＶＬＳＩ（Ｖｅｒｙ  ｌａｒｇｅ  ｓｃａｌｅ  ｉｎｔｅｇｒａｔｉｏｎ）ハードウェア実施形態ならびに汎用ＤＳＰ回路と組み合わせたカスタムＶＬＳＩ回路構成も提供されうる。
【００２２】
各種の実施形態の論理的動作は、（１）汎用コンピュータの中のプログラム可能回路で実行される、コンピュータに実装された一連のステップ、動作、または手順、（２）特定用途プログラム可能回路で実行される、コンピュータに実装された一連のステップ、動作、または手順、および／または（３）プログラム可能回路の中の相互接続されたマシンモジュールまたはプログラムエンジンとして実装される。図１に示すシステム１００は、記載された方法の全部または一部を実行することができ、記載されたシステムの一部であることができ、および／または、記載された有形のコンピュータ可読記憶媒体の中の命令に従って動作することができる。一般に、そのような論理的動作は、モジュールのプログラミングに従って具体的な機能を実行するためにプロセッサ１２０を制御するように構成されたモジュールとして実装されうる。例えば図１は、プロセッサ１２０を制御するように構成された３つのモジュールＭｏｄ１  １６２とＭｏｄ２  １６４とＭｏｄ３  １６３とを示す。これらのモジュールは、ストレージデバイス１６０に記憶され、実行時にＲＡＭ１５０またはメモリ１３０にロードされてもよく、あるいは、当業者には周知であろうが、他のコンピュータ可読メモリ位置に記憶されてもよい。
【００２３】
一部の基本的なシステムコンポーネントを開示したので、本開示は、方法および他の実施形態の詳細記述を行う。分かりやすくするため、方法は、図１に示すシステム１００のような、本方法を実施するように構成されたシステムに関して論じる。記述する原理は他の実施形態や構成にも組み込まれうるのだから、以下の例は例示的であり、限定的だとみなされてはならない。プロセッサは、方法の中のいずれのステップをも実行することができる。
【００２４】
図２は、共有側デバイスと、受信側デバイスと、サーバとのサンプルを示す。これらのデバイスはそれぞれ、本質的に図１に示すようなコンピュータデバイスであってもよい。デバイスは、スマートフォン、セルラーフォン、携帯情報端末（ＰＤＡ）、ラップトップ、メディアプレーヤ、ＧＰＳ（ｇｌｏｂａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｓｙｓｔｅｍ）デバイス、ラップトップ、その他の移動または非移動コンピュータデバイスであってもよい。背景技術のセクションで挙げた例では、アーロンは、自分のスマートフォンからのアプリケーションをブレントのスマートフォンと共有することを望んでいる。この例では、アーロンのデバイスもブレントのデバイスもどちらもスマートフォンである。しかし、実装では、１つのデバイスがスマートフォンであって、他方が例えばパーソナルコンピュータであってもよい。別の実装では、位置固定の共有側デバイスが、カフェの中の無線アクセスポイントに組み込まれ、従って、カフェの顧客は、自分の移動デバイスからのアプリケーションを無線アクセスポイントと共有することができ、無線アクセスポイントは、次には、最初の移動デバイスが去った後で今後の顧客とアプリケーションを共有することができる。ピアツーピアネットワークには、デバイスの同質および／または異質な混合が含まれてもよい。
【００２５】
本開示は、ここでアーロンとブレントに戻る。アーロンは、自分の共有側デバイス２０２上に記憶されているアプリケーションをブレントの受信側デバイス２０４と共有することを望んでいる。アーロンのデバイス２０２は、ブレントと共有することが可能なアプリケーションのリストを表示する。アーロンは、音声、タッチ動作、スタイラス入力、キーパッド入力等のような適切なユーザ入力を介して、ブレントのデバイス２０４と共有する少なくとも１つのアプリケーションを選択する。
【００２６】
アーロンが、共有するアプリケーションを選択した後、アーロンのデバイス２０２は、選択されたアプリケーションから共有選好（プリファレンス）を読み出す。選択されたアプリケーションが特定の共有選好をなんら含んでいない場合、デバイスは、例えばアプリケーションを共有しないという選好のような、デフォルト選好を選択または生成してもよい。アプリケーションは、アプリケーションの完全な機能コピーを共有することを可能にする選好を有してもよい。別の場合には、アプリケーションの選好は、機能限定のデモコピーや、一定時間後に期限切れになる完全機能コピー、または、サーバ２１０上のアプリケーションを一意に識別するアプリケーションシードだけを共有することを可能にする。アーロンのデバイス２０２は、アーロンのデバイスまたはユーザアカウントに関連する識別子と、ブレントのデバイスまたはユーザアカウントに関連する識別子とをブレントのデバイス２０４に転送するためのアプリケーションパッケージを作成する。また、アプリケーションパッケージは、例えばアプリケーションのアイコン、アプリケーションの完全コピー、アプリケーションの限定コピ―、および／またはアプリケーションシードのような、アプリケーションメタデータを含んでいてもよい。また、一態様では、アプリケーションパッケージは、アプリケーションのための設定、履歴、および／または選好も含んでいる。そのような設定は、その一部または全部が任意で含まれていてもよい。
【００２７】
２つのデバイス２０２および２０４は、例えばケーブルや赤外線接続によって相互に直接、または例えばインターネット、セルラーネットワークまたは無線メッシュネットワークのようなネットワーククラウド２０８を通して、ピアツーピア接続２０６を確立する。ブレントのデバイス２０４は、アーロンのデバイス２０２にアプリケーションパッケージの受信成功の確認応答を送信してもよい。転送が不完全な場合には、アーロンのデバイス２０２は、最初にアプリケーションシードを送信することができ、従って、アプリケーション全体の送信が失敗したとしても、ブレントのデバイス２０４は、アプリケーションをサーバからダウンロードするのに十分な情報、すなわちアプリケーションシードを有しており、その情報だけで続行することができる。アプリケーションシードと共にグラフィックイメージが提供され、従って受信側デバイスが、アプリケーションの視覚的表現を表示してもよい。一態様では、受信側デバイスが、アプリケーションシードと共に提供されたグラフィック表示の最初の部分を表示し、受信されたアプリケーションパッケージの完全性が増加するのを反映する目的で、表示される部分を次第に増加させる。
【００２８】
アーロンのデバイス２０２および／またはブレントのデバイス２０４は、共有トランザクションの成功をサーバ２１０に報告してもよい。サーバ２１０は、共有トランザクションの各々を記録して、ブレントのデバイス２０４がダウンロードするアプリケーションのコピーを事前に準備してもよい。
【００２９】
アプリケーションパッケージがアプリケーションの完全コピーを含んでいる場合には、ブレントのデバイス２０４は、今はアプリケーションを有しており、これ以上のステップを行う必要はない。しかし、アプリケーションパッケージがアプリケーションの限定機能コピーを含んでいる場合には、ブレントのデバイス２０４は、サーバ２１０との接続２１２を直接確立するか、またはネットワーククラウド２１４を通して確立することができる。サーバ２１０は、アプリケーションに関する追加情報を提供して、ブレントが、限定機能の少なくとも一部をロック解除するかまたは共有アプリケーションの新規コピーをサーバからダウンロードすることによって、共有アプリケーションを購入し、読み出し、またはダウンロードできるようにしてもよい。アプリケーションパッケージがアプリケーションシードを含んでいる場合、ブレントのデバイス２０４は、サーバ２１０に接続し、アプリケーションシードを使って共有アプリケーションを読み出す。例えば、アプリケーションシードは、ＸＭＬファイル、例えば「Ｓｅｅｄ．Ａｐｐ．２Ｂ７００Ａ９Ｄ」のような多少の意味のあるテキスト列、数字、またはランダムに割り当てられた文字列であってもよい。複数のサーバが利用可能な場合、シードは、アプリケーション入手先として好適なサーバへの参照を含んでいてもよい。場合によっては、１つのデータに、アプリケーションシードと２つの識別子とを組み入れる。例えば、正しいデバイスがアプリケーションを要求していることを保証するため、サーバ２１０が、セキュリティまたは検証のチェックを行ってもよい。サーバ２１０が、要求されたアプリケーションを、それが目標デバイス、この場合ブレントのデバイス２０４に限って機能するように修正してもよい。サーバ２１０は、例えばオンラインストアまたはソフトウェア発行元のウェブサイトであってもよい。
【００３０】
アーロンがブレントと共有する共有アプリケーションの完全バージョンをブレントが読み出す場合、サーバ２１０は、何らかの種類の動機付けをアーロンに提供してもよい。動機付けは、お金、店のクレジット、クーポン、販売促進物品（実際の品またはデジタル）、ステータスの向上、その他であってもよい。また、サーバ、共有側デバイス、または受信側デバイスは、アプリケーションの当初のソースまで遡って追跡することすら可能な共有側−受信側の共有履歴を追跡してもよい。共有情報を表示および追跡するための多くの変形形態が他にも考えられる。
【００３１】
図３は、アーロンが所有する共有側デバイス３００上のユーザインタフェースの一例を示す図である。共有側デバイス３００は、ディスプレイ３０２を含んでおり、それは、いかなる形状、外見、サイズであってもよい。デバイス３００はアーロンに、デバイス３００上でアプリケーションのアイコンのリスト３０４を示す。アーロンは、彼が共有することを望むアプリケーションを表すアイコン３０６を指定エリア３０８へ動かすことができる。アーロンは、スタイラス、タッチ動作、キーボード、ボタン、音声、またはその他のユーザ入力を用いてアプリケーションのアイコンを動かすことができる。アーロンがアプリケーションのアイコンを動かした後、デバイスは、一例として、アプリケーションのアイコン３０６をリストから削除し、アプリケーションのアイコンをリスト内で空白３１０にするか、または、リスト内でアプリケーションのアイコン３１０を暗くするか灰色にして消してもよい。アーロンは、同様に、２つ以上のアプリケーションのアイコンを指定エリア３０８へ動かすことができる。これらのアプリケーションを送信する準備ができると、アーロンは送信ボタン３１２を選択するかまたは、他の適切なユーザ入力を行う。デバイスは、個別のアプリケーションの中にあるインテリジェンス、選好、またはコードに基づいて各アプリケーションについてアプリケーションパッケージを準備する。次いでデバイスは、アプリケーションパッケージを受信側デバイスに送信する。一態様では、共有側デバイスは、選択されたアプリケーションのアイコンが第２のデバイスの表現、例えば小さなデバイスアイコンへと移動していることを、アニメーションや他の適切な視覚的、可聴的、視聴覚的、振動による、または他のタイプの合図を通して、視覚的に表現する。
【００３２】
一実施形態では、デバイスは、或る種のアプリケーションが多様な形で共有されるであろうというアイコンまたは通知を表示する。例えば、１つのアプリケーションアイコン３１４が線で消され、それを共有することができないことを示す。別の例は、「Ｌ」の文字をかぶせられたアプリケーションアイコン３１６であり、それは限られた機能だけを共有できることを示す。ソフトウェア開発元が、公開されているアプリケーションを無制限に、または一定の状況下に限って、「共有不可」の印を付けることもできる。所定の高価な、または機密性が高いアプリケーション（例えば医療記録データベースアプリケーションなど）は、それらが共有できないことを示すフラグを含んでいてもよい。
【００３３】
共有側デバイス上のアプリケーションは、上記の共有基準を使ってあらかじめ構成されていてもよい。アプリケーション開発元が、アプリケーションを作成する時、アプリケーションを共有してよいかどうか識別してもよい。共有フラグ、または共有コードがアプリケーションに組み込まれることによって、共有側デバイスがこのアプリケーションは別のデバイスと共有されうるか否か、また、どのように共有されうるかを判定するために、この共有フラグを調べてもよい。フラグが共有に関してアプリケーションの中で修正された場合に、アプリケーションが動作しなかったり、アプリケーションがデフォルトの非共有モードになったり、あるいはアプリケーションがアプリケーション開発元または別のエンティティによって定められた何らかの他の動作を行ったりするように、アプリケーションは、ハッシュ関数または何等かの他のセキュリティ手段を利用してもよい。この手法によって、不正なアプリケーション共有を防ぐために、共有側デバイス上でアプリケーション内の共有フラグの修正を防ぎ、および／または、阻止することができる。
【００３４】
一実施形態では、アプリケーションが受信側デバイスに転送された場合、受信側デバイスは、共有アプリケーションの動作を共有フラグに応じて可能にする。例えば、共有フラグが完全機能性を示している場合には、共有デバイスは、完全機能性を持つアプリケーションを起動する。共有フラグが限定された機能性に設定されている場合には、受信側デバイスは、限定された機能性セットを起動する。さらに、共有期間が、アプリケーションの中にあらかじめ設定されていてもよい。共有期間は、時間、日数、週、月数、あるいはそれらの組み合わせのような、設定された期間として構成されていてもよい。また、共有期間は、受信側デバイス上のアプリケーションについての起動回数として設定することもできる。起動回数が終わった後は、受信側デバイスはアプリケーションを起動することができない。例えば、共有側デバイス上でアプリケーションが操作された時、起動した回数に数えられる。アプリケーション共有期間が切れた場合、共有側デバイスは、アプリケーションがこれ以上操作できないかまたは使用可能かとを示す表示をユーザに提供してもよい。
【００３５】
システムは、ユーザがアプリケーションを共有するため、この例示的なインタフェースまたはいずれかの他の適切なユーザインタフェースを用いてもよい。例えば、このインタフェースの１つの変形形態が、近隣の各デバイスのための多様な指定エリアを提供する。これらの指定エリアは、近隣デバイスが特定の範囲に出入りする際に現れたり消えたりしてもよい。指定エリアは、関連する近隣デバイスの位置に基づいて画面の周りを移動してもよい。
【００３６】
図４は、子孫を示すツリーのサンプル４００を示す図である。これらのタイプのツリー構造は、ユーザのグループの中でどのようにアプリケーションが共有されるかを容易に示すことができる。アーロンがブレントとアプリケーションを共有する場合、ブレントはツリー構造の中でアーロンの子になる。この例では、共有側４０２は、子１  ４０４、子２  ４０６、子３  ４０８とアプリケーションを共有した。子１  ４０４は、孫１  ４１０、孫２  ４１２と共有する。子２  ４０６は、孫３  ４１４、孫４  ４１６、孫５  ４１８、孫６  ４２０と共有する。子３  ４０８は、孫７  ４２２と共有する。この表示は、アプリケーションを共有することについて、または共有アプリケーションを読み出す人々について、共有側が何らかの補償を受ける場合に有利でありうる。共有側４０２は、自分の子たちの共有パタンを検討して、次にはアプリケーションを共有する効果が最も高い子たちを狙ってもよい。この場合、共有側４０２は、子２  ４０６が多くの他者と共有していることから、他のアプリケーションを子２  ４０６と共有するよう努力してもよい。サーバが、広告または販売促進の目的でそのようなツリーを記憶してもよい。サーバは、そのようなツリーの全部または一部を共有側および／または受信側に表示してもよい。受信側が、当初のソースからの共有パスを見ることに関心を持つことがありうる。例えば、有名人を通じてアプリケーションが共有されたことが分かることが、名声の源泉でありうる。一態様では、サーバがそのようなツリーを地図に重ね合わせて表示し、地図上にはノードの現在の地理的位置を示すように各ノードが配置されてもよい。
【００３７】
別の態様では、子孫や祖先を共有するツリーを記憶するサーバが、ツリーの中の「親族」を分析した上で、或るユーザがアプリケーションをまだ有してはいないのだが、どのアプリケーションがそのユーザにアピールしそうかを判定することができる。例えば、ブレントの近隣の６つの「共有側デバイス」のうちの５つがアプリケーションＸを有する場合、サーバは、ブレントにこの事実を通知し、ブレントにアプリケーションＸをダウンロードおよび／または購入する機会を与えてもよい。サーバは、近隣の「共有側親族」からの何らかの論評またはその他のフィードバックを読み出してブレントに表示してもよい。この手法は、ブレントがそれらの「共有側親族」に何らかのレベルの信頼または親近感を持っているであろうという理由で、うまく成功する可能性がある。
【００３８】
別の場合では、アプリケーションの機能性の一部が当初、制限されたり、ロックされたり、その他のやり方で使用不能にされる。この機能性のロックを解除する１つの方策は、アプリケーションを他者と共有することである。例えば、ブラックジャックのカードゲームのアプリケーションが、ロック解除されたタイプの裏向きカードを１枚含んでいてもよい。アーロンがブラックジャックのアプリケーションを３人と共有する毎に、アプリケーションは、もう１枚の裏向きカードのロックを解除する。アーロンがブラックジャックのアプリケーションをブレントと共有する場合、ブレントが持っているアプリケーションのコピーは、ロック解除されたタイプの裏向きカードが１枚だけの状態にリセットされてもよいし、同じ状態を維持してアーロンのコピーと同じ選好を保ってもよい。
【００３９】
図５は、例示的なピアツーピアネットワークを示す図である。この場合、共有側５０２は、受信側１  ５０４、受信側２  ５０６、受信側３  ５０８と無線共有ネットワーク５１０を確立する。ネットワーク接続は、８０２．１１ｘワイヤレス、赤外線、ブルートゥース、ワイヤレスＵＳＢ、ＧＲＰＳ（Ｇｅｎｅｒａｌ  Ｐａｃｋｅｔ  Ｒａｄｉｏ  Ｓｅｒｖｉｃｅ）、またはその他の有線または無線ネットワーキングプロトコルおよびメディアであってもよい。一実施形態では、共有側デバイス５０２は、ユーザがアプリケーションの共有を望む場合にピアツーピアネットワーク５１０を開始する。共有側デバイスおよび／または受信側デバイスは、アプリケーションパッケージを送信または受信する前、最中、または後にネットワークを抜けることができる。
【００４０】
一実施形態では、共有側デバイスと受信側デバイスとは同じタイプのデバイスであるが、デバイスは相互通信可能であればいかなるタイプであってもよい。一実施形態では、デバイスは両方ともセルラー電話である。従って、デバイスは一般に、常時、セルラーネットワークを介して接続しているが、物理的な接近度に基づいて相互に（セルラーネットワークを通して、または第２のネットワークインタフェースを通して）特別な接続を確立する。デバイス同士は、例えばＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）デバイスのような位置センサに基づいて物理的接近度を感知することができる。別の態様では、共有側デバイス５０２は、他のピアが近隣に存在しない場合であっても、持続的なピアツーピアネットワークを維持する。３つ以上のデバイスがピアツーピアネットワーク内に存在し、かつ、アプリケーションがピアツーピアネットワーク内の複数のソースから入手可能な場合、共有側デバイスは、共有アプリケーションの各部分を受信側デバイスに送信するよう、他のデバイスに指示する。このやり方または他のやり方で、複数の共有側デバイスが、共有アプリケーションの少なくとも一部分を受信側デバイスに提供することができる。別の態様では、複数の共有側デバイスおよび複数の受信側デバイスが、対話して相互にアプリケーションを共有する。
【００４１】
他のデバイスが、ピアツーピアネットワークに進入する場合、それらは、入手可能なアプリケーションについて共有側デバイス５０２にクエリを行い、そして、入手可能なアプリケーションについてのアプリケーションパッケージをユーザとの対話がまったくなくてもキャッシュに格納することができる。このようにして、デバイスはユーザとの対話がなくても自動的にアプリケーションを共有することができる。後でユーザは、キャッシュに格納されたアプリケーションパッケージを見直しして、どれを保持し、どれを廃棄するかを決めることができる。一態様では、一旦キャッシュに格納されたアプリケーションパッケージをユーザが廃棄すると、デバイスがそのアプリケーションに再び遭遇した場合、デバイスはそれを自動的に読み出さない。受信側デバイスは、共有側デバイス上で入手可能なアプリケーションとインストール済のアプリケーションとを比較して、すでに受信側デバイス上にあるアプリケーションパッケージをダウンロードすることを差し控えることができる。さらに、ユーザは、所定の各人からのアプリケーションや、所定のクラスのアプリケーションを、所定の時間に、あるいは所定の場所で受信または共有することを自動的に無効にすることができる。例えば、ブレントは、昼食後オフィスに戻るために地下鉄に乗っている間、自動共有をオフにする。アーロンは、もっと大胆に、オフィスに戻るためにバスに乗っている間、自分のデバイスが他ユーザからどのアプリケーションをピックアップするかを見るために、自動共有をオンにする。アーロンは彼のデバイスをオンにしたり彼のデバイスと対話したりする必要はまったくないのに、彼のデバイスは、近隣のデバイスからの共有アプリケーションをキャッシュに格納する。アーロンは、これらのアプリケーションを後で見直して、気に入ったものを保持したりダウンロードしたりすることができる。
【００４２】
図６は、アプリケーションを共有側デバイスから受信側デバイスに同期させるための第１の例である方法の実施形態を示す図である。分かりやすくするため、方法は、方法を実施するように構成されたシステムに関して論じる。この例では、アーロンのデバイスが共有側デバイスで、ブレントのデバイスが受信側デバイスである。システムは最初に、他のデバイスと共有することが可能な１つ以上のアプリケーションのリストを共有側デバイス上に表示する（６０２）。システムは、例えばスクリーンサイズ、受信側デバイス上の利用可能なスペース、受信側デバイスにすでにあるアプリケーション、アプリケーションの選好等のような１つ以上の基準に基づいて、アプリケーションのリストをフィルタリングしてもよい。その他の基準も考えられる。
【００４３】
システムは、アプリケーションのリストからの受信側デバイスと共有するアプリケーションの選択を、共有側デバイスで受信する（６０４）。例えばタッチスクリーン上を軽くたたくことや音声コマンドのようなユーザ入力が、選択を示してもよい。システムは、アプリケーションのグループを同時に選択してもよい。場合によっては、アプリケーションが２つ以上の共有の仕方を含んでいてもよい。例えば、ゲームが、デモバージョンまたは完全バージョンの共有可能アプリケーションパッケージを生成するための命令を含んでいてもよい。共有側デバイスのユーザが、どのバージョンのアプリケーションパッケージを生成するかを選択してもよい。
【００４４】
システムは、選択されたアプリケーションの共有選好を共有側デバイスによって判定する（６０６）。選択されたアプリケーションに選好が組み込まれていてもよいし、および／または、共有選好を記憶するための別個の構成ファイルが含まれていてもよい。これらの選好は、ユーザが修正可能であってもよいし、例えばソフトウェア発行元によって修正されてもよい。一実施形態では、共有選好は、どのようにしてアプリケーションパッケージを生成するかについての命令を含んでいる。
【００４５】
システムは、共有選好に基づいてアプリケーションパッケージを共有側デバイスで作成する（６０８）。システムは、共有側デバイスから受信側デバイスへのネットワーク接続を確立し（６１０）、ネットワーク接続を介してアプリケーションパッケージを共有側デバイスから受信側デバイスへ送信する（６１２）。一態様では、共有側デバイスはさらに、アプリケーションパッケージの送信が成功したという確認応答を受信側デバイスから受信する。
【００４６】
一実施形態では、システムは、追跡情報としても知られる、アプリケーションパッケージを送信することに関連する情報をサーバに送信する（６１４）。サーバは、複数のデバイスから追跡情報を集めて、アプリケーション共有、配信、人気度、地理的位置、その他の数的指標に関する統計値および報告を生成してもよい。サーバへ送信される情報には、共有側デバイスから送信されたアプリケーションパッケージの総数が含まれてもよい。この情報は、具体的な母集団、位置、時刻、または顧客セグメントに対する共有アプリケーションの総数をサーバが算出するのに役立ちうる。例えば、サーバは、Ｕ．Ｃ．バークレー校のキャンパスで月にどのくらいの数のアプリケーションが共有されたか、あるいは、毎日どのくらいの数のアプリケーションが共有されるかを追跡することができる。サーバへ送信された情報は、ユーザアカウントまたはユーザデバイスに関連付けることができ、それは、具体的な共有側がどの程度増殖しているかを示す。例えば、アーロンがアプリケーションを共有した人数を、サーバが追跡してもよい。サーバへ送信された情報のコピーを、共有側デバイスが保持して記憶してもよい。この特徴は、デバイス固有またはユーザ固有の統計値だけでなく統計的情報の分散バックアップを提供することもできる。
【００４７】
図７は、第２の例であるデバイスの実施形態を示す図であり、デバイスは、アプリケーションを別のデバイスに同期することができる。一態様では、デバイスは、プロセッサと、以下のステップを行うようにプロセッサを制御するように構成されたモジュールとを含んでいる。デバイスは、最初に、他のデバイスと共有することが可能なアプリケーションのリストを、共有側デバイス上に表示する（７０２）。一態様では、デバイスは、すでに受信側デバイス上に存在するアプリケーションを共有側デバイス上に表示しない。アプリケーション共有選好が、選択されたアプリケーションは共有できないということを示すフラグを含んでいる場合、デバイスは、フラグの立ったアプリケーションの送信をブロックしてもよい。
【００４８】
次いでデバイスは、アプリケーションのリストから受信側デバイスと共有するためのアプリケーションを選択する（７０４）。ユーザ入力は、具体的なアプリケーションを選択するよう、デバイスに命令することができる。次いでデバイスは、選択されたアプリケーションから共有選好を読み出して（７０６）、選択されたアプリケーションに関連するメタデータと共有側デバイスに関連する一意の識別子とを含めて、読み出された選好に基づいてアプリケーションパッケージを作成するのだが、ここで共有選好は、アプリケーションパッケージがさらに、アプリケーションの完全コピーか、アプリケーションの限定共有コピーか、サーバ上の選択されたアプリケーションを一意に識別するアプリケーションシードか、いずれか１つを含んでいるかどうかを判定する（７０８）。アプリケーションパッケージは、アプリケーションの限定共有コピー、あるいは、選択されたアプリケーションをダウンロードするためのアプリケーションシードおよび／または命令を含んでいてもよい。次に、デバイスは、共有側デバイスと受信側デバイスとの間にピアツーピア接続を確立する（７１０）。一実施形態では、共有側デバイスと受信側デバイスとは、同じタイプのデバイスである。デバイス同士のタイプが異なるもう１つの実施形態では、共有側デバイスが、受信側デバイスのタイプに基づいてアプリケーションパッケージをカスタマイズしてもよい。
【００４９】
次いでデバイスは、ピアツーピア接続を介してアプリケーションパッケージを受信側デバイスへ送信する（７１２）。一態様では、デバイスは、図３で示したアイコン３０６の動作によって表現されるように、選択されたアプリケーションが第２のデバイスの表現へ「移動」する様子を、視覚的に表現する。別の態様では、デバイスはさらに、選択されたアプリケーションが共有されうることを示すフラグを選択されたアプリケーションが含んでいる場合に限って、アプリケーションを受信側デバイスへ送信する。
【００５０】
図８は、共有側デバイスからアプリケーションを受信するための、第３の方法の実施形態を示す図である。図１に示すようなシステムが、方法を実施するように構成されてもよい。システムは、共有側デバイスとのピアツーピア接続を確立し（８０２）、選択されたアプリケーションについてのアプリケーションパッケージを共有側デバイスからピアツーピア接続を介して受信するのだが、ここで、アプリケーションパッケージは、選択されたアプリケーションに関連するメタデータを備えており、メタデータは、アプリケーション識別子を備えている（８０４）。
【００５１】
システムは、アプリケーション識別子に基づいてアプリケーション配信サーバからアプリケーションのコピーを読み出す（８０６）。一実施形態では、受信側デバイスが、共有側デバイス上で利用可能な未受信のアプリケーションパッケージを探索し、共有側デバイスに利用可能な未受信のアプリケーションパッケージを要求し、そして、要求されたアプリケーションパッケージをキャッシュに格納することができる。これは、各ユーザによって受容または拒否されうるアプリケーションの自動配信のための手法のほんの一例である。一変形形態では、受信側デバイスがクエリを行ってユーザとの対話なしで自動的にアプリケーションパッケージをダウンロートする能力を、共有側デバイスが有効にする。この配信手法は、従来のソフトウェアアップデート手法の代替またはそれとの併用によって、ソフトウェアアップデートをリリースするための配信メカニズムを提供することができる。アプリケーションパッケージは、アプリケーションの限定共有コピーを含んでいてもよい。アプリケーションパッケージの中のメタデータは、共有側デバイスに関連する一意の識別子を含んでいてもよく、そして、アプリケーションの中の共有選好に基づいて、アプリケーションの限定共有コピーか、サーバ上で選択されたアプリケーションを一意に識別するアプリケーションシードか、いずれか１つを含んでいてもよい。一態様では、サーバが、共有側デバイスのＩＤまたは共有側デバイスに関連するユーザアカウントを含めて、共有側デバイスからトランザクション記録を受信する。
【００５２】
図９は、共有アプリケーションを追跡するための、第４の例であるシステムの実施形態を示す図である。システムは、プロセッサと、所定の動作を行うためにプロセッサを制御するように構成されたモジュールとを備えたコンピュータデバイスであってもよい。システムは、共有側から受信側へのアプリケーションの共有が成功したことを表すデータセットであって、共有側と受信側と共有アプリケーションとを示すデータセットを受信し（９０２）、そして、受信したデータセットを、共有側を受信側に連結する第１のデータベースに挿入する（９０４）。システムは、さらに、受信したデータセットを、共有側を共有アプリケーションに連結する第２のデータベースに挿入してもよい（９０６）。システムは、共有側が共有アプリケーションを何度共有するかを追跡するためのモジュールを含んでいてもよい。サーバは、共有側に何らかの種類の補償を提供するため、またはその他の目的で、これらの統計値を追跡してもよい。システムは、第１または第２のデータベースの少なくとも一部を表示してもよい（９０８）。この表示は、直接的な情報、あるいは、間接的な、処理された、集計された統計値の形式であってもよい。一態様では、システムは、共有側から出ている子孫の受信側を示す、共有側−受信側のペアのツリーを表示する。別の態様では、システムは、受信側から出ている祖先の共有側を示す、共有側−受信側のペアのツリーを表示する。その他の表示手法も多数考えられる。
【００５３】
図１０は、第５の例である、別のデバイスからアプリケーションを受信するための命令を有する有形のコンピュータ可読記憶媒体の実施形態を示す。媒体の実施形態は、命令に従って動作するコンピュータシステムに関して論じる。システムは最初に、共有側デバイスとピアツーピア接続を確立する（１００２）。システムは、複数の受信側デバイスと同時にピアツーピア接続を確立してもよい。システムは次いで、共有側デバイスからピアツーピア接続を介してアプリケーションパッケージを受信し、アプリケーションパッケージは、選択されたアプリケーションに関連するメタデータと、共有側デバイスに関連する一意の識別子と、アプリケーションの中の共有選好に基づいて、アプリケーションの完全コピーか、アプリケーションの限定共有コピーか、選択されたアプリケーションをサーバ上で一意に識別するアプリケーションシードか、いずれか１つとを含んでいる（１００４）。また、アプリケーションパッケージは、選択されたアプリケーションを表すアイコンを含んでいてもよい。
【００５４】
次いで、アプリケーションパッケージがアプリケーションシードを含んでいる場合、システムは、アプリケーションシードを用いてサーバからアプリケーションのコピーを読み出す（１００６）。アプリケーションパッケージが、アプリケーションの限定共有コピーを含んでいる場合、システムは、アプリケーションの限定共有コピーのアップグレードをサーバから読み出すことができる（１００８）。システムが、アプリケーションパッケージを受信した時、システムは、アプリケーションパッケージの送信が成功したという確認応答を共有側デバイスへ送信してもよい。
【００５５】
一実施形態では、受信側デバイスは、オンラインストアを運営しているサーバと密接に統合されている。受信側デバイスは、ユーザがアプリケーションシードに基づいてオンラインストアからアプリケーションを、例えば一度のクリック、ジェスチャ、コマンドなどで、容易に読み出せるようにすることができる。ユーザが受信側デバイス上にアプリケーションの完全コピーを有する場合、ユーザは、アプリケーションシードに基づいてアプリケーションに関連する追加の商品および／またはサービスを読み出すことができる。例えば、ブレントがアーロンから計算機の完全コピーを受信したとする。ブレントがそのように望むなら、彼はアプリケーションの完全バージョンをすでに持ってはいるが、アプリケーションの完全バージョンについてのテクニカルサポート、今後のアップグレード、スキン、プラグインモジュール等を読み出すことができる。オンラインストアを通して入手可能な追加のコンテンツまたはサービスは、アプリケーションの完全バージョンを補完することができる。オンラインストアは、複数のソフトウェア発行元とユーザとの間の１つの仲介者として機能することができる。
【００５６】
図１１は、第６の例である、方法の実施形態を示す。前と同様、方法は、方法を実施するように構成されたシステム、例えば図１に示すシステムに関して論じる。システムは最初に、受信側デバイスからアプリケーションダウンロード要求を受信し、ここでダウンロード要求は、共有側デバイスのデバイスＩＤまたはユーザアカウントと、アプリケーション識別子とを含んでいる（１１０２）。次いでシステムは、要求されたアプリケーションのコピーをアプリケーション識別子に基づいて受信側デバイスに送信する（１１０４）。システムは、さらに、例えば、世間から認められること、アカウントクレジット、キャッシュクレジット、アプリケーションや媒体の無料ダウンロード、既存のアプリケーションの機能性追加等のような報酬を共有側デバイスのデバイスＩＤまたはユーザアカウントに提供してもよい。ダウンロード要求は、共有基準を含んでいてもよく、そして、システムは、共有基準に基づいて要求されたアプリケーションのコピーを送信してもよい。アプリケーション開発元が、自分のアプリケーションのための共有基準を確立してもよい。場合によっては、共有基準は、完全機能性、限定機能性、起動の限定回数、および／または有効期限を示すフラグであってもよい。共有基準は、アプリケーションパッケージとは別であってもよいし、アプリケーションパッケージに組み込まれていてもよい。配信サーバが、セキュリティ、検証、その他の目的のために共有基準を記憶してもよい。
【００５７】
一実施形態では、システムは、他のユーザと共有されたアプリケーションの数を示す、共有側デバイスのためのユーザインタフェースを提供する。ユーザは、自分がどのくらいの数のアプリケーションを他ユーザと共有したか、そして、自分は、受信側デバイスがアプリケーションをダウンロードする時どのくらいの数のアプリケーションクレジットを稼いだかを調べることもできる。例えば、インタフェースが、共有アプリケーション：１０(Apps Shared: 10)、クレジットされたアプリケーション：５(Apps Credited: 5)と表示してもよい。このユーザインタフェースは、例えばアプリケーション名、共有された日付、誰と共有されたか、支払価格（もしあれば）等のような詳細まで掘り下げてリストに追加するという選択肢を提示してもよい。システムは、これらの統計値および利用履歴をサーバ上または共有側デバイス上に記憶することもできる。一変形形態では、共有側デバイスは、他者と共有される頻度が高いことを示す共有総数が多いアプリケーションを判定し、他ユーザと共有するためアクセスしやすくするためにディスプレイを優先または最適化させることができる。共有側デバイスは、共有アプリケーションの現在のステータスを入手するために、アプリケーション配信サーバにクエリを行ってもよい。
【００５８】
また、本開示の範囲内の諸実施形態は、コンピュータで実行可能な命令を搬送または有するための有形のコンピュータ可読記憶媒体またはそれに記憶されたデータ構造を含みうる。そのようなコンピュータ可読記憶媒体は、上記で論じたいずれかの特別目的プロセッサの機能的設計を含めて、汎用または特別目的コンピュータがアクセスすることが可能な媒体であってもよい。限定ではなく一例として、そのようなコンピュータ可読媒体には、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、またはその他の光学ディスクストレージ、磁気ディスクストレージ、またはその他の磁気ストレージデバイス、あるいは、コンピュータで実行可能な命令、データ構造、またはプロセッサチップ設計の形で所望のプログラムコード手段を搬送または記憶するのに用いられうるいずれかのその他の媒体を含んでいてもよい。情報がネットワーク経由で、または別の通信接続（有線、無線、またはその組み合わせ）経由でコンピュータに転送または提供される時、コンピュータは、適切に、接続をコンピュータ可読媒体とみなす。従って、そのような接続はいずれも、適切に、コンピュータ可読媒体と呼ばれる。また、上記の組み合わせは、コンピュータ可読媒体の範囲内に含まれることになる。
【００５９】
コンピュータで実行可能な命令には、例えば、汎用コンピュータ、特別目的コンピュータ、または特別目的処理デバイスに所定の機能または機能のグループを行わせるような命令およびデータが含まれる。また、コンピュータで実行可能な命令には、スタンドアロンまたはネットワーク環境にあるコンピュータによって実行されるプログラムモジュールも含まれる。一般に、プログラムモジュールには、ルーチン、プログラム、コンポーネント、データ構造、オブジェクト、および、特定のタスクを行ったり、特定の理論的なデータタイプを実装したりする特別目的プロセッサ等の設計に固有の諸機能が含まれる。コンピュータで実行可能な命令、関連のデータ構造、およびプログラムモジュールは、本書で開示する方法の各ステップを実行するためのプログラムコード手段の例を示す。そのような実行可能な命令または関連のデータ構造の特定のシーケンスは、そのような各ステップに記述した諸機能を実装するための対応する動作の例を示す。
【００６０】
当業者であれば、本開示以外の実施形態が、パーソナルコンピュータ、手持ち式デバイス、マルチプロセッサシステム、マイクロプロセッサを利用した家電製品またはプログラマブル家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ等を含む多くのタイプのコンピュータシステム構成を備えたネットワークコンピューティング環境で実施されうることを理解するであろう。また、実施形態は、通信ネットワークを通して（有線リンク、無線リンク、またはその組み合わせによって）連結されたローカルおよびリモートの処理デバイスによってタスクが実行されうるような分散コンピューティング環境においても実施することができる。分散コンピューティング環境では、プログラムモジュールは、ローカルのメモリストレージデバイスとリモートのメモリストレージデバイスとのどちらに位置していてもよい。
【００６１】
上記の各種の実施形態は、例として提供されているだけであって、本開示を限定すると解釈されるべきではない。例えば、本書で開示した諸原理は、電子媒体、ソフトウェアアプリケーション、サービス、およびそれらのいずれかの組み合わせを販売するオンラインストアに適用可能である。新しい技術が登場する場合、当業者であれば、電子ストアにおいて新規カテゴリの商品の差異と新機能とに適応するために本書の原理をどうすれば容易に修正できるかを理解するであろう。当業者であれば、本書で例示して記述した例示的な実施形態およびアプリケーションに従うことなく、かつ、本開示の精神と範囲から逸脱することなく、本開示に対して行われうる各種の修正および変更を、すぐに理解するであろう。
【図１】
0005502195.tif 000002
【図２】
0005502195.tif 000003
【図３】
0005502195.tif 000004
【図４】
0005502195.tif 000005
【図５】
0005502195.tif 000006
【図６】
0005502195.tif 000007
【図７】
0005502195.tif 000008
【図８】
0005502195.tif 000009
【図９】
0005502195.tif 000010
【図１０】
0005502195.tif 000011
【図１１】
0005502195.tif 000012