(57)【特許請求の範囲】
【請求項１】
方法であって、
１つまたは複数のプロセッサおよび前記１つまたは複数のプロセッサによって実行される命令を格納したメモリを備えた第１の電子装置において、
アプリケーションの第１のバージョンの１つまたは複数のインストールファイルを前記メモリに格納するステップと、
アプリケーションの前記第１のバージョンの前記１つまたは複数のインストールファイルを前記メモリに格納した後、インターネット接続から独立したローカル接続を第２の電子装置と確立するステップであって、前記第１の電子装置が、前記第２の電子装置の無線通信範囲内にある複数の電子装置のうちの１つである、前記確立するステップと、
前記ローカル接続を用いて、前記アプリケーションの前記第１のバージョンが前記第２の電子装置にインストールされているかを判定するステップと、
前記アプリケーションの前記第１のバージョンが前記第２の電子装置にインストールされておらず、かつ、前記第２の電子装置の無線通信範囲内にある前記複数の電子装置のうち他の電子装置上の前記アプリケーションのバージョンが、前記第１の電子装置の前記メモリに格納された前記アプリケーションの前記第１のバージョンに先行する旨の判定に応答して、前記第２の電子装置に前記ローカル接続を通じて、前記アプリケーションの前記第１のバージョンの前記１つまたは複数のインストールファイルを送信するステップと
を含む、方法。
【請求項２】
前記ローカル接続を確立するステップが、
無線通信プロトコルを用いて、前記第１の電子装置を前記第２の電子装置とペアリングすること、
パーソナルエリアネットワーク上で前記第２の電子装置とつながること、
ピアツーピアネットワーク上で前記第２の電子装置とつながることのうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項３】
前記ローカル接続を確立するステップが、
前記インターネット接続の輻輳閾値が満たされている旨の判定に応答して実行されるか、または
前記第２の電子装置がインターネット接続を確立できない旨の判定に応答して実行されるか、
または両方の判定に応答して実行される、請求項１または２に記載の方法。
【請求項４】
前記アプリケーションの前記第１のバージョンが前記第２の電子装置にインストールされているかの判定が、前記第１の電子装置の前記メモリに格納された前記アプリケーションの前記第１のバージョンに先行する前記アプリケーションの第２のバージョンが前記第２の電子装置にインストールされているかの判定を含んでおり、
前記アプリケーションの前記第１のバージョンが前記第２の電子装置にインストールされていない旨の判定が、前記アプリケーションの前記第２のバージョンが前記第２の電子装置にインストールされている旨の判定であり、
前記アプリケーションの前記第１のバージョンの前記１つまたは複数のインストールファイルが、前記第２の電子装置上の前記アプリケーションを前記第２のバージョンから前記第１のバージョンに更新する更新情報を含む、請求項１乃至３のいずれか１項に記載の方法。
【請求項５】
前記アプリケーションの前記第１のバージョンが前記第２の電子装置にインストールされているかの判定が、前記アプリケーションの任意のバージョンが前記第２の電子装置にインストールされているかの判定を含んでおり、
前記アプリケーションの前記第１のバージョンが前記第２の電子装置にインストールされていない旨の判定が、前記アプリケーションのいずれのバージョンも前記第２の電子装置にインストールされていない旨の判定であり、
前記アプリケーションの前記第１のバージョンの前記１つまたは複数のインストールファイルが、前記アプリケーションの前記第１のバージョンの全体をインストールする１つまたは複数のファイルを含む、請求項１乃至４のいずれか１項に記載の方法。
【請求項６】
前記アプリケーションの前記第１のバージョンが前記第２の電子装置にインストールされているかを判定するステップが、
前記ローカル接続を通じて、ソフトウェア更新アプリケーションを前記第２の電子装置に提供し、前記第２の電子装置にインストールすることと、
前記ローカル接続を通じて、前記第２の電子装置上の前記ソフトウェア更新アプリケーションから、前記アプリケーションの前記第１のバージョンが前記第２の電子装置にインストールされているかの指標を受信することと、
を含む、請求項１乃至５のいずれか１項に記載の方法。
【請求項７】
前記１つまたは複数のインストールファイルを送信するステップの前に、前記アプリケ
ーションの前記第１のバージョンのインストールを可能にするために前記第２の電子装置
のセキュリティ設定を更新する旨の指示を含むメッセージを前記第１の電子装置に表示す
るステップをさらに含む、請求項１乃至６のいずれか１項に記載の方法。
【請求項８】
前記アプリケーションが、第１のアプリケーションであり、
前記第１の電子装置が、前記第１のアプリケーションの優先度が前記第２の電子装置上の第２のアプリケーションの優先度を上回る旨の判定に従って、前記アプリケーションの前記第１のバージョンの前記１つまたは複数のインストールファイルを送信する、請求項１乃至７のいずれか１項に記載の方法。
【請求項９】
前記アプリケーションの前記第１のバージョンが、前記第２の電子装置に適合するかを判定するステップをさらに含み、
前記ローカル接続を通じて前記１つまたは複数のインストールファイルを前記第２の電子装置に送信するステップが、前記アプリケーションの前記第１のバージョンが前記第２の電子装置に適合する旨の判定にさらに応答して実行される、請求項１乃至８のいずれか１項に記載の方法。
【請求項１０】
システムであって、
１つまたは複数のプロセッサと、
前記１つまたは複数のプロセッサに接続され、かつ前記１つまたは複数のプロセッサによって実行可能な命令を含む少なくとも１つのメモリとを備え、前記１つまたは複数のプロセッサは、前記命令の実行時に請求項１乃至９のいずれか１項に記載の方法を実行するように動作可能である、システム。
【請求項１１】
第１の電子装置の１つまたは複数のプロセッサによって実行される１つまたは複数のプログラムを格納した非一時的なコンピュータ可読記憶媒体であって、前記１つまたは複数のプログラムが、請求項１乃至９のいずれか１項に記載の方法を実行するための命令を含む、非一時的なコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的に、装置間通信に関し、電子装置間のローカル接続を通じてインストールファイルを転送することによりアプリケーションを電子装置にインストールすることを含むが、これに限定されない。
【背景技術】
【０００２】
モバイル機器はますます、消費者がインターネット上で電子コンテンツにアクセス、電子コンテンツをダウンロードし、および消費する有力な手段となっている。
しかし、電気通信技術の大きな進歩にも関わらず、インターネット上のコンテンツにアクセスするための実現可能なデータレートは、依然として限られている。さらに、途上国などの特定の地理的領域におけるインターネットアクセスの可用性が制限されていることに加えて、モバイル用途の比較的大きなファイルサイズを考慮すると、消費者は、アプリケーションのダウンロードが困難な場合が多く、このため、モバイル機器の使用時に不満を抱くことが多い。
【発明の概要】
【０００３】
したがって、電子装置間に確立されたローカル接続を通じてインストールファイルを転送することにより更新アプリケーションを電子装置にインストールする方法、装置、およびシステムが求められている。近距離通信プロトコル（たとえば、Ｂｌｕｅｔｏｏｔｈ（登録商標）またはＷｉＦｉ  Ｄｉｒｅｃｔ）を用いて装置間にローカル接続を確立することにより、インターネット接続を確立することができないか、または低速のインターネット接続を有することができない装置が、近くの接続装置からインストールファイルを受信することができる。これにより、装置は、インターネット接続が不十分であるか、またはインターネット接続が無いためにアクセスできないアプリケーションを、インストールまたは更新可能となる。このような方法、装置、およびシステムは、オプションで、アプリケーションを電子装置にインストールして更新する従来の方法を補完するかまたはこれに代わる。
【０００４】
いくつかの実施形態によれば、１つ以上のプロセッサおよび該１つ以上のプロセッサによって実行される命令を格納したメモリを備えた第１の電子装置（たとえば、クライアント装置）において方法が実行される。この方法は、アプリケーションの第１のバージョンの１つ以上のインストールファイルをメモリに格納するステップを含む。インターネット接続から独立したローカル接続を第２の電子装置と確立する。この方法は、ローカル接続を用いて、アプリケーションの第１のバージョンが第２の電子装置にインストールされているかを判定するステップを含む。アプリケーションの第１のバージョンが第２の電子装置にインストールされていない旨の判定に応答して、第１の電子装置は、第２の電子装置にローカル接続を通じて、アプリケーションの第１のバージョンの１つ以上のインストールファイルを送信する。
【０００５】
いくつかの実施形態によれば、電子装置（たとえば、クライアント装置）は、１つ以上のプロセッサ、メモリ、および１つ以上のプログラムを含み、該１つ以上のプログラムは、メモリに格納され、１つ以上のプロセッサによって実行されるように構成されている。１つ以上のプログラムは、上述の方法の動作を実行する命令を含む。いくつかの実施形態によれば、非一時的なコンピュータ可読記憶媒体は、電子装置によって実行された場合、上述の方法の動作を電子装置に実行させる命令を格納している。
【０００６】
このように、電子装置には、電子装置にアプリケーションをインストールして更新するためのより効果的かつ効率的な方法が与えられており、このような装置の有効性および効率が高くなるとともに、このような装置に対するユーザ満足度が向上する。
【０００７】
添付の請求項において開示された実施形態は、方法、記憶媒体、システム、およびコンピュータプログラムプロダクトに関するものであり、ある１つの請求項カテゴリである例えば方法で記載されている特徴はいずれも、他の請求項カテゴリである例えばシステムでも同様に特許請求の対象となり得る。添付の請求項における従属関係または後方参照は、単なる形式的な理由で選択されたものである。しかしながら、先行する請求項への（特に多項従属での）意図的な後方参照の結果として得られる主題がいずれも、同様に特許請求の対象となり得ることで、請求項およびその特徴の任意の組み合わせが開示されているかのように、それらは、添付の請求項で選択されている従属関係にかかわりなく特許請求の対象となり得る。特許請求の対象となり得る主題は、添付の請求項に記載の特徴の組み合わせだけではなく、請求項に記載の特徴の他の任意の組み合わせも含み、請求項に記載の特徴はそれぞれ、請求項に記載の他の特徴または他の特徴の組み合わせと組み合わせることができる。さらに、本明細書に記載もしくは図示の実施形態および特徴はいずれも、単独の請求項において、かつ／または本明細書に記載もしくは図示のいずれかの他の実施形態もしくは特徴との、または添付の請求項の特徴のいずれかとの任意の組み合わせで、特許請求され得る。
【０００８】
いくつかの実施形態において、方法は、
１つ以上のプロセッサおよび該１つ以上のプロセッサによって実行される命令を格納したメモリを備えた第１の電子装置において、
アプリケーションの第１のバージョンの１つ以上のインストールファイルをメモリに格納するステップと、
インターネット接続から独立したローカル接続を第２の電子装置と確立するステップと、
ローカル接続を用いて、アプリケーションの第１のバージョンが第２の電子装置にインストールされているかを判定するステップと、
アプリケーションの第１のバージョンが第２の電子装置にインストールされていない旨の判定に応答して、第２の電子装置にローカル接続を通じて、アプリケーションの第１のバージョンの１つ以上のインストールファイルを送信するステップと、
を含む。
【０００９】
ローカル接続を確立するステップは、無線通信プロトコルを用いて、第１の電子装置を第２の電子装置とペアリングすることを含んでいてもよい。
ローカル接続を確立するステップは、パーソナルエリアネットワーク上で第２の電子装置につながることを含んでいてもよい。
【００１０】
ローカル接続を確立するステップは、ピアツーピアネットワーク上で第２の電子装置につながることを含んでいてもよい。
ローカル接続を確立するステップは、インターネット接続の輻輳閾値が満たされている旨の判定に応答して実行されるようになっていてもよい。
【００１１】
ローカル接続を確立するステップは、第２の装置がインターネット接続を確立できない旨の判定に応答して実行されるようになっていてもよい。
いくつかの実施形態において、この方法では、
アプリケーションの第１のバージョンが第２の電子装置にインストールされているかの判定が、アプリケーションの第１のバージョンに先行するアプリケーションの第２のバージョンが第２の電子装置にインストールされているかの判定を含んでおり、
アプリケーションの第１のバージョンが第２の電子装置にインストールされていない旨の判定が、アプリケーションの第２のバージョンが第２の電子装置にインストールされている旨の判定であり、
アプリケーションの第１のバージョンの１つ以上のインストールファイルが、第２の電子装置上のアプリケーションを第２のバージョンから第１のバージョンに更新する更新情報を含む。
【００１２】
いくつかの実施形態において、この方法では、
アプリケーションの第１のバージョンが第２の電子装置にインストールされているかの判定が、アプリケーションの任意のバージョンが第２の電子装置にインストールされているかの判定を含んでおり、
アプリケーションの第１のバージョンが第２の電子装置にインストールされていない旨の判定が、アプリケーションのいずれのバージョンも第２の電子装置にインストールされていない旨の判定であり、
アプリケーションの第１のバージョンの１つ以上のインストールファイルが、アプリケーションの第１のバージョンの全体をインストールするための１つ以上のファイルを含む。
【００１３】
いくつかの実施形態において、アプリケーションの第１のバージョンが第２の電子装置にインストールされているかを判定するステップは、
ローカル接続を通じて、ソフトウェア更新アプリケーションを第２の電子装置に提供し、第２の電子装置にインストールすることと、
ローカル接続を通じて、第２の電子装置上のソフトウェア更新アプリケーションから、アプリケーションの第１のバージョンが第２の電子装置にインストールされているかの指標を受信することと、
を含む。
【００１４】
いくつかの実施形態において、この方法は、１つ以上のインストールファイルを送信するステップの前に、アプリケーションの第１のバージョンのインストールを可能にするために第２の電子装置のセキュリティ設定を更新する旨の指示を含むメッセージを第１の電子装置に表示するステップをさらに含む。
【００１５】
いくつかの実施形態において、この方法は、アプリケーションが、ソーシャルネットワーキングサービスにつながるアプリケーションであり、第１の電子装置と関連付けられた第１のユーザが、ソーシャルネットワーキングサービスのユーザであり、第１の電子装置において、
アプリケーションの第１のバージョンが第２の電子装置にインストールされた後、
第２の電子装置からローカル接続を通じて、第２の電子装置と関連付けられた第２のユーザのソーシャルネットワーキングサービスのアカウントを作成するリクエストを受信するステップと、
ローカル接続とは異なる通信チャネルを通じて、リクエストをリモートサーバに送信するステップと、
をさらに含む。
【００１６】
いくつかの実施形態において、この方法は、アカウントを作成するリクエストをリモートサーバに送信した後、ソーシャルネットワーキングサービス上の第２のユーザと関係するように第１のユーザに指示するメッセージを第１の電子装置に自動的に表示するステップをさらに含む。
【００１７】
いくつかの実施形態において、アプリケーションは、ソーシャルネットワーキングサービスにつながるアプリケーションであり、第１の電子装置と関連付けられた第１のユーザおよび第２の電子装置と関連付けられた第２のユーザは、ソーシャルネットワーキングサービスのユーザであり、この方法は、第１の電子装置において、
ソーシャルネットワーキングサービスからローカル接続とは異なる通信チャネルを通じて、第２のユーザ向けのコンテンツを受信するステップと、
第２の電子装置にローカル接続を通じて、ソーシャルネットワーキングサービスからのコンテンツを送信し、第２の電子装置に表示するステップと、
をさらに含む。
【００１８】
ソーシャルネットワーキングサービスからのコンテンツを送信するステップは、第２の電子装置がインターネット接続していない旨の判定に従って実行されるようになっていてもよい。
【００１９】
いくつかの実施形態において、アプリケーションの第１のバージョンの１つ以上のインストールファイルを送信するステップは、
ローカル接続を通じて第２の電子装置に、第１の複数のパケットを送信することと、
第１の複数のパケットを送信した後、第２の電子装置とのローカル接続の喪失を検出することと、
第２の電子装置とのローカル接続を再確立することと、
ローカル接続を再確立した後、ローカル接続を通じて第２の電子装置に、第２の複数のパケットを送信することと、
を含む。
【００２０】
いくつかの実施形態において、この方法では、
第１の電子装置が、第２の電子装置の無線通信範囲内の複数の電子装置のうちの１つであり、
第１の電子装置が、複数の電子装置のうちの他の電子装置上のアプリケーションの各バージョンがアプリケーションの第１のバージョンに先行する旨の判定に従って、アプリケーションの第１のバージョンの１つ以上のインストールファイルを送信する。
【００２１】
いくつかの実施形態において、この方法では、
アプリケーションが、第１のアプリケーションであり、
第１の電子装置が、第１のアプリケーションの優先度が第２の電子装置上の第２のアプリケーションの優先度を上回る旨の判定に従って、アプリケーションの第１のバージョンの１つ以上のインストールファイルを送信する。
【００２２】
いくつかの実施形態において、この方法は、アプリケーションの第１のバージョンが第２の電子装置に適合するかを判定するステップをさらに含み、
ローカル接続を通じて１つ以上のインストールファイルを第２の電子装置に送信するステップが、アプリケーションの第１のバージョンが第２の電子装置に適合する旨の判定にさらに応答して実行される。
【００２３】
いくつかの実施形態において、電子装置は、
１つ以上のプロセッサと、
１つ以上のプロセッサによって実行される１つ以上のプログラムを格納したメモリであり、１つ以上のプログラムが、
アプリケーションの第１のバージョンの１つ以上のインストールファイルを該メモリに格納し、
インターネット接続から独立したローカル接続を第２の電子装置と確立し、
ローカル接続を用いて、アプリケーションの第１のバージョンが第２の電子装置にインストールされているかを判定し、
アプリケーションの第１のバージョンが第２の電子装置にインストールされていない旨の判定に応答して、第２の電子装置にローカル接続を通じて、アプリケーションの第１のバージョンの１つ以上のインストールファイルを送信する、
命令を含む、メモリと、を備える。
【００２４】
いくつかの実施形態において、非一時的なコンピュータ可読記憶媒体は、第１の電子装置の１つ以上のプロセッサによって実行される１つ以上のプログラムを格納しており、１つ以上のプログラムが、
アプリケーションの第１のバージョンの１つ以上のインストールファイルをメモリに格納し、
インターネット接続から独立したローカル接続を第２の電子装置と確立し、
ローカル接続を用いて、アプリケーションの第１のバージョンが第２の電子装置にインストールされているかを判定し、
アプリケーションの第１のバージョンが第２の電子装置にインストールされていない旨の判定に応答して、第２の電子装置にローカル接続を通じて、アプリケーションの第１のバージョンの１つ以上のインストールファイルを送信する、
命令を含む。
【００２５】
いくつかの実施形態において、１つ以上の非一時的なコンピュータ可読記憶媒体は、ソフトウェアを実装しており、そのソフトウェアは、実行されることで、上記実施形態のいずれかによる方法を実施するように機能する。
【００２６】
いくつかの実施形態において、システムは、１つ以上のプロセッサと、プロセッサに結合された少なくとも１つのメモリであって、プロセッサで実行可能な命令を含むメモリと、を備え、プロセッサは、命令を実行することで、上記実施形態のいずれかによる方法を実施するように機能する。
【００２７】
いくつかの実施形態において、好ましくは非一時的なコンピュータ可読記憶媒体を含む、コンピュータプログラムプロダクトは、データ処理システム上で実行されることで、上記実施形態のいずれかによる方法を実施するように機能する。
【００２８】
記載の種々の実施形態についてより良く理解するため、以下の図面と併せて、以下の実施形態の説明を参照すべきであり、図面では、対応する部分は、図面全体を通して同様の参照符号で示している。
【図面の簡単な説明】
【００２９】
【図１Ａ】いくつかの実施形態に係る、ネットワークアーキテクチャの例を示したブロック図である。
【図１Ｂ】いくつかの実施形態に係る、ネットワークアーキテクチャの例を示したブロック図である。
【図１Ｃ】いくつかの実施形態に係る、ネットワークアーキテクチャの例を示したブロック図である。
【図２】いくつかの実施形態に係る、例示的なソーシャルネットワーキングシステムを示したブロック図である。
【図３】いくつかの実施形態に係る、例示的なクライアント装置を示したブロック図である。
【図４Ａ−Ｂ】いくつかの実施形態に係る、アプリケーションのインストールおよびユーザ関係リクエストを可能にするクライアント装置の例示的なグラフィカルユーザインタフェースを示した図である。
【図５Ａ】いくつかの実施形態に係る、ローカル接続を用いてアプリケーションのバージョンをインストールする方法を示したフローチャートである。
【図５Ｂ】いくつかの実施形態に係る、ローカル接続を用いてアプリケーションのバージョンをインストールする方法を示したフローチャートである。
【発明を実施するための形態】
【００３０】
以下、いくつかの実施形態を参照し、その例を添付の図面に示している。以下の説明では、記載の種々の実施形態についての理解を与えるため、様々な具体的詳細について記載する。しかしながら、記載の種々の実施形態は、それら特定の詳細を省いても実施できることは、当業者には明らかであろう。一方、実施形態の態様を不必要に不明瞭にすることがないよう、周知の方法、手順、コンポーネント、回路、およびネットワークについては詳細に記載していない。
【００３１】
また、場合によっては、種々の要素を記述するために「第１」、「第２」などの用語が本明細書で使用されるが、これらの用語によって、それらの要素は限定されるべきではないということも、理解されるであろう。これらの用語は、単に、ある要素を他の要素と区別するために使用されるにすぎない。例えば、記載の種々の実施形態の範囲から逸脱することなく、第１のバージョンを第２のバージョンと呼ぶことができ、同様に、第２のバージョンを第１のバージョンと呼ぶことができる。第１のバージョンと第２のバージョンは、両方ともバージョンであるが、同じバージョンではない。
【００３２】
本明細書に記載の種々の実施形態の説明で使用される用語は、単に具体的な実施形態を説明する目的のものにすぎず、限定するものではない。記載の種々の実施形態の説明および添付の請求項で使用される場合の単数形「a」、「an」、および「the」は、特に文脈で明確に示していない限り、複数形も含むものである。また、本明細書で使用される場合の「および／または（and/or）」という表現は、関連して列挙されるアイテムのうちの１つ以上からなるあらゆる可能な組み合わせを指し、また、包含するものと理解される。さらに、本明細書で使用される場合の「含む（includes）」、「含んでいる（including）」、「備える（comprises）」、および／または「備えている（comprising）」という表現は、記載される特徴、整数値、ステップ、オペレーション、要素、および／またはコンポーネントの存在を規定するものと理解されるが、１つまたは複数の他の特徴、整数値、ステップ、オペレーション、要素、コンポーネント、および／またはそれらからなる群の存在もしくは追加を除外するものではない。
【００３３】
本明細書で使用される場合の「〜場合に（if）」という表現は、文脈に応じて、「〜ときに（when）」または「〜際に（upon）」または「〜と判断したことに応答して（in response to determining）」または「〜を検出したことに応答して（in response to detecting）」または「〜という判断に従って（in accordance with a determination that）」を意味するものと、適宜、解釈される。同様に、「〜と判断された場合に」または「［記載の条件もしくは事象］が検出された場合に」という表現は、文脈に応じて、「〜と判断した際に」または「〜と判断したことに応答して」または「［記載の条件もしくは事象］を検出した際に」または「［記載の条件もしくは事象］を検出したことに応答して」または「［記載の条件もしくは事象］が検出されたという判断に従って」を意味するものと、適宜、解釈される。
【００３４】
本明細書において、用語「例示的」は、「一例、事例、または実例として機能する」意味で使用しており、「その種の最高のものを代表する」意味では使用していない。
図１Ａ〜図１Ｃは、いくつかの実施形態に係る、ネットワークアーキテクチャの例を示したブロック図である。
【００３５】
図１Ａは、いくつかの実施形態に係る、ソーシャルネットワークのネットワークアーキテクチャ１００Ａを示している。ネットワークアーキテクチャ１００Ａは、１つ以上のネットワーク１０６（たとえば、インターネット、携帯電話ネットワーク、モバイルデータネットワーク、他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなど）により、電子ソーシャルネットワークシステム１０８に対して通信可能に接続された多くのクライアント装置（「クライアントシステム」、「クライアントコンピュータ」、または「クライアント」とも称する）１０４−１、１０４−２、・・・、１０４−ｎを含む。いくつかの実施形態において、１つ以上のネットワーク１０６は、公衆通信ネットワーク（たとえば、インターネットおよび携帯電話データネットワークの両方または一方）、プライベート通信ネットワーク（たとえば、プライベートＬＡＮまたは専用線）、またはこのような通信ネットワークの組み合わせを含む。
【００３６】
ネットワークアーキテクチャ１００Ａは、１つ以上のクライアント装置（たとえば、１０４−１と１０４−３、１０４−４、１０４−５、・・・、１０４−ｐ）を通信可能に一体接続するローカル接続１１２を具備する。いくつかの実施形態においては、無線通信プロトコル（たとえば、ＩＥＥＥ８０２．１５．４、Ｗｉ−Ｆｉ、ＺｉｇＢｅｅ、６ＬｏＷＰＡＮ、Ｔｈｒｅａｄ、Ｚ−Ｗａｖｅ、Ｂｌｕｅｔｏｏｔｈ、ＩＳＡ１００．１１ａ、ＷｉｒｅｌｅｓｓＨＡＲＴ、ＭｉＷｉ、ＮＦＣなど）を用いることにより、複数のクライアント装置１０４がローカル接続１１２を通じて相互接続されている。たとえば、クライアント装置１０４−１と１０４−３、１０４−４、１０４−５、・・・、１０４−ｐは、（たとえば、ＢｌｕｅｔｏｏｔｈまたはＺｉｇＢｅｅを用いて実現される）パーソナルエリアネットワーク（ＰＡＮ）、または（たとえば、ＷｉＦｉ  Ｄｉｒｅｃｔを用いて実現される）ピアツーピア（Ｐ２Ｐ）ネットワークを構成する。いくつかの実施形態において、ローカル接続１１２を通じて接続されたクライアント装置１０４はすべて、互いの無線通信範囲内に存在する。いくつかの実施形態において、クライアント装置１０４−３、１０４−４、１０４−５、・・・、１０４−ｐはすべて、クライアント装置１０４−１の無線通信範囲内に存在するが、必ずしも互いの無線通信範囲内に存在するわけではない。
【００３７】
クライアント装置１０４−３、１０４−４、１０４−５、・・・、１０４−ｐは、（たとえば、ネットワークの輻輳、不十分な携帯電波受信状態、関連ユーザのネットワークサービス未加入などにより）１つ以上のネットワーク１０６を通じたソーシャルネットワークシステム１０８への直接接続が不可能な場合がある。代わりに、これらのクライアント装置は、ローカル接続１１２を用いることにより、１つ以上のネットワーク１０６を通じてソーシャルネットワークシステム１０８に接続されたクライアント装置１０４−１を通じて、ソーシャルネットワークシステム１０８に間接的にアクセスし得る。したがって、クライアント装置１０４−１は、クライアント装置１０４−３、１０４−４、１０４−５、・・・、１０４−ｐ（場合により、「受信」装置と称する）が１つ以上のネットワーク１０６上でデータ（たとえば、ソーシャルネットワークシステム１０８が提供するアプリケーションのインストールファイル）を送信および読み出し可能となる仲介装置（場合により、「ホスト」または「送信」装置と称する）として動作する。これにより、いくつかの実施態様において、クライアント装置１０４−１は、ローカル接続１１２を用いて他のクライアント装置により要求されたデータ（たとえば、インストールファイル）を読み出して共有する。（あるいは、クライアント装置１０４−１は、受信装置からリクエストを受ける前に予めダウンロードしておいたファイルを共有する。）
いくつかの実施形態において、クライアント装置１０４は、スマートウォッチ、携帯情報端末（ＰＤＡ）、携帯型メディアプレーヤ、スマートフォン、タブレットコンピュータ、２Ｄゲーム装置、３Ｄ（たとえば、仮想現実）ゲーム装置、ラップトップコンピュータ、デスクトップコンピュータ、１つ以上のプロセッサが内蔵もしくは結合されたテレビ、車載情報システム（たとえば、ナビゲーション、娯楽、および／もしくは他の情報を提供する車載コンピュータシステム）、ならびに／またはソーシャルネットワークシステム１０８との通信に使用できる他の適当なコンピュータ装置などのコンピュータ装置である。いくつかの実施形態において、ソーシャルネットワークシステム１０８は、コンピュータサーバなどの単一のコンピュータ装置である一方、他の実施形態において、ソーシャルネットワークシステム１０８は、協働してサーバシステムの動作を実行する複数のコンピュータ装置（たとえば、クラウドコンピューティング）により実現される。
【００３８】
いくつかの実施形態において、クライアント装置１０４は、該クライアント装置１０４を採用してソーシャルネットワークシステム１０８にアクセスするとともに、該ソーシャルネットワークシステム１０８が提供する対応するソーシャルネットワーキングサービスに参加するユーザ（図示せず）と関連付けられている。たとえば、クライアント装置１０４のうちの１つ以上は、ソーシャルネットワーキングサービスへのアクセスに使用可能なウェブブラウザアプリケーションを実行する。別の例として、クライアント装置１０４のうちの１つ以上は、ソーシャルネットワーキングサービスに固有のソフトウェアアプリケーション（たとえば、ｉＰｈｏｎｅ、Ａｎｄｒｏｉｄ、またはＷｉｎｄｏｗｓ（登録商標）スマートフォンまたはタブレット上で動作するＦａｃｅｂｏｏｋソーシャルネットワーキングアプリケーションなど、スマートフォンまたはタブレット上で動作するソーシャルネットワーキング「アプリ」）を実行する。
【００３９】
クライアント装置１０４と相互作用するユーザは、テキストコメント（たとえば、更新情報、告知、回答）、デジタル写真、ビデオ、オーディオファイル、リンク、および／または他の電子コンテンツなどの情報を投稿することによって、ソーシャルネットワークシステム１０８が提供するソーシャルネットワーキングサービスに参加することができる。また、ソーシャルネットワーキングサービスのユーザは、ソーシャルネットワーキングサービスの他のユーザが投稿した情報に注釈を付けることができる（たとえば、別のユーザの投稿に対する推薦もしくは「いいね！」または別のユーザによる投稿へのコメント）。いくつかの実施形態においては、ユーザに代わって、ソーシャルネットワークシステム１０８の外部のシステムおよびサービスまたはシステムもしくはサービスが、情報を投稿可能である。たとえば、ユーザは、映画のレビューを映画レビューウェブサイトに投稿するが、適正な許可を有するウェブサイトがユーザに代わってレビューをソーシャルネットワークシステム１０８にクロス投稿し得る。別の例においては、モバイルクライアント装置上で実行される適正な許可を有するソフトウェアアプリケーションが、全地球測位システム（ＧＰＳ）または他のジオロケーション機能（たとえば、Ｗｉ−Ｆｉまたはハイブリッド測位システム）を使用してユーザの位置（たとえば、「自宅」、「職場」、もしくは「カリフォルニア州サンフランシスコ」）を決定し、ユーザの位置を用いてソーシャルネットワークシステム１０８を更新すること、およびユーザの位置に由来するかまたは基づくかまたはその両方の情報を用いてソーシャルネットワークシステム１０８を更新することの少なくとも一方を行うようにしてもよい。また、クライアント装置１０４と相互作用するユーザは、ソーシャルネットワークシステム１０８が提供するソーシャルネットワーキングサービスを用いて、ユーザ群を規定することができる。また、クライアント装置１０４と相互作用するユーザは、ソーシャルネットワークシステム１０８が提供するソーシャルネットワーキングサービスを用いて、互いに通信および協働することができる。
【００４０】
いくつかの実施形態において、ネットワークアーキテクチャ１００Ａは、サードパーティサーバ１１０−１、１１０−２、・・・、１１０−ｍも具備する。いくつかの実施形態においては、所与のサードパーティサーバ１１０は、直接またはソーシャルネットワークシステム１０８と連動してクライアント装置１０４にウェブページを提供するサードパーティウェブサイトをホスティングするように使用される。いくつかの実施形態において、ソーシャルネットワークシステム１０８は、インラインフレーム（「ｉｆｒａｍｅ」）を用いて、ユーザのソーシャルネットワークセッション内に独立したウェブサイトをネストさせる。いくつかの実施形態においては、所与のサードパーティサーバは、直接またはソーシャルネットワークシステム１０８と連動してクライアント装置１０４が使用するサードパーティアプリケーションをホスティングするように使用される。いくつかの実施形態において、ソーシャルネットワークシステム１０８は、ｉｆｒａｍｅを使用して、サードパーティ開発者によってサードパーティサーバ１１０によって別個にホストされるが、ユーザのソーシャルネットワーキングセッション内で動作するとともにソーシャルネットワークシステム１０８のユーザプロファイルを通じてアクセスされるアプリケーションを作成できるようにする。例示的なサードパーティアプリケーションとしては、書籍、ビジネス、コミュニケーション、コンテスト、教育、娯楽、ファッション、ファイナンス、飲食、ゲーム、健康とフィットネス、ライフスタイル、ローカル情報、映画、テレビ、音楽とオーディオ、ニュース、写真、ビデオ、生産性、参考資料、セキュリティ、ショッピング、スポーツ、旅行、ユーティリティなどのアプリケーションが挙げられる。いくつかの実施形態においては、所与のサードパーティサーバ１１０は、直接またはソーシャルネットワークシステム１０８と連動してクライアント装置１０４が使用する企業システムをホスティングするように使用される。いくつかの実施形態においては、所与のサードパーティサーバ１１０は、サードパーティコンテンツ（たとえば、ニュース記事フィード、レビューフィード、メッセージフィードなど）を提供するように使用される。
【００４１】
いくつかの実施形態において、所与のサードパーティサーバ１１０は、単一のコンピュータ装置である一方、他の実施形態において、所与のサードパーティサーバ１１０は、協働してサーバシステムの動作を実行する複数のコンピュータ装置（たとえば、クラウドコンピューティング）により実現される。
【００４２】
図１Ｂは、いくつかの実施形態に係る、ソーシャルネットワークの別のネットワークアーキテクチャ１００Ｂを示している。ネットワークアーキテクチャ１００Ａ（図１Ａ）とは対照的に、クライアント装置１０４−２は、１つ以上のネットワーク１０６に直接接続されている。クライアント装置１０４−２は、１つ以上のネットワーク１０６を通じて直接的におよび／またはローカル接続１１２を用いることによりクライアント装置１０４−１を通じて間接的に、ソーシャルネットワークシステム１０８（または、ネットワーク１０６に接続された任意の装置、システム、またはサーバ）へのアクセス、データ送信、および／またはソーシャルネットワークシステム１０８が提供するコンテンツ（たとえば、アプリケーションのインストールファイル）の読み出しを行うようにしてもよい。ネットワークアーキテクチャ１００Ｂは、たとえば１つ以上のネットワーク１０６とのクライアント装置１０４−２の直接接続が、低速（たとえば、低帯域幅を有する）、輻輳、または他の形で実現困難もしくは利用不可能となっている状況において都合が良い。
【００４３】
図１Ｃは、いくつかの実施形態に係る、ローカル接続１１２を通じて装置が相互接続されたネットワークアーキテクチャ１００Ｃを示している。図示のように、クライアント装置（たとえば、１０４−１と１０４−３〜１０４−ｐ）は、ローカル接続１１２を通じて、互いに通信可能に接続されている（たとえば、Ｂｌｕｅｔｏｏｔｈ無線インタフェースを用いて接続され、パーソナルエリアネットワークを構成するか、または、無線Ｐ２Ｐプロトコルを用いて接続されている）。ネットワークアーキテクチャ１００Ｃにおいて、クライアント装置１０４−１は、（たとえば、１つ以上のネットワーク１０６との接続を喪失してしまっているため）ソーシャルネットワークシステム１０８に接続されていない。
【００４４】
クライアント装置１０４は、多様なネットワークトポロジに基づいて相互接続されていてもよい。たとえば、いくつかの実施形態において、各クライアント装置（たとえば、１０４−１と１０４−３〜１０４−ｐ）は、ローカル接続１１２を通じて、その他のクライアント装置にそれぞれ接続されている。他の実施形態において、クライアント装置は、ネットワークアーキテクチャ中のその他のクライアント装置のうちの一部にのみ接続されている（たとえば、クライアント装置１０４−１がクライアント装置１０４−３にのみ接続され、クライアント装置１０４−３がクライアント装置１０４−１および１０４−４にのみ接続されている）。いくつかの実施形態においては、ローカル接続１１２を通じて他のすべてのクライアント装置を接続するホスト装置として１つのクライアント装置が動作し（たとえば、クライアント装置１０４−３〜１０４−ｐはそれぞれ、クライアント装置１０４−１に接続されているものの、他のクライアント装置には一切接続されていない）、コンテンツ（たとえば、インストールファイル）が読み出されるとともに、コンテンツ（たとえば、ソーシャルメディア投稿）を送信可能である。いくつかの実施形態においては、１つ以上のクライアント装置がコンテンツを読み出すホスト装置として、複数のクライアント装置が一体的に機能する（たとえば、クライアント装置１４０−１および１４０−３は、インストールファイルの異なる部分をクライアント装置１０４−４に送信する）。
【００４５】
クライアント装置１０４は、複数の通信プロトコルおよびインタフェースを用いることにより、ローカル接続１１２を通じて相互接続されていてもよい。たとえば、一実施態様において、クライアント装置１０４−１は、Ｂｌｕｅｔｏｏｔｈ無線インタフェースを用いてクライアント装置１０４−３とペアリングされていてもよく、同時に、クライアント装置１０４−１は、ＮＦＣ無線インタフェースを用いてクライアント装置１０４−４に接続されている。
【００４６】
図２は、いくつかの実施形態に係る、例示的なソーシャルネットワーキングシステム１０８を示したブロック図である。ソーシャルネットワークシステム１０８は通常、１つ以上の処理ユニット（プロセッサまたはコア）２０２、１つ以上のネットワークインタフェースまたは他の通信インタフェース２０４、メモリ２０６、およびこれらのコンポーネントを相互接続する１つ以上の通信バス２０８を具備する。通信バス２０８は、オプションで、システムコンポーネント間の通信を相互接続して制御する回路（場合により、チップセットと称する）を具備する。ソーシャルネットワークシステム１０８は、オプションで、ユーザインタフェース（図示せず）を具備する。ユーザインタフェースが設けられている場合は、ユーザインタフェースはディスプレイ装置を具備していてもよく、オプションで、キーボード、マウス、トラックパッド、および／または入力ボタンなどの入力装置を具備する。この代替または追加として、ディスプレイ装置は、タッチセンス面を具備しており、この場合、ディスプレイ装置はタッチセンスディスプレイである。
【００４７】
メモリ２０６は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、または他のランダムアクセスソリッドステートメモリ装置などの高速ランダムアクセスメモリを含み、１つ以上の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリ装置、ならびに／または不揮発性ソリッドステート記憶装置などの不揮発性メモリを含んでいてもよい。メモリ２０６は、オプションで、プロセッサ２０２から遠隔に位置付けられた１つ以上の記憶装置を含んでいてもよい。メモリ２０６あるいはメモリ２０６内の不揮発性メモリ装置は、非一時的なコンピュータ可読記憶媒体を含む。いくつかの実施形態において、メモリ２０６またはメモリ２０６のコンピュータ可読記憶媒体は、以下のプログラム、モジュール、およびデータ構造、またはその一部分もしくはスーパーセット（ｓｕｐｅｒｓｅｔ）を格納している：
・種々の基本システムサービスを取り扱うとともにハードウェアに依存したタスクを実行するプロシージャを含むオペレーティングシステム２１０、
・１つ以上の通信ネットワークインタフェース２０４（有線または無線）および１つ以上の通信ネットワーク（たとえば、１つ以上のネットワーク１０６）を介してソーシャルネットワークシステム１０８を他のコンピュータに接続するのに用いられるネットワーク通信モジュール２１２、
・ソーシャルネットワークと関連付けられたデータを格納するソーシャルネットワークデータベース２１４であって、
○  ユーザ情報２１８などのエンティティ情報２１６、
○  つながり情報２２０、ならびに
○  ユーザコンテンツ２２４およびニュース記事２２６の両方または一方などのコンテンツ２２２などのデータを格納するソーシャルネットワークデータベース２１４、
・（たとえば、クライアント装置１０４上のブラウザモジュール３３８またはソーシャルネットワーククライアントモジュール３４０（図３）と連動して）ソーシャルネットワーキングサービスおよび関連機能を提供するソーシャルネットワークサーバモジュール２２８であって、
○  クライアント１０４のユーザをソーシャルネットワークシステム１０８にログインさせるログインモジュール２３０と、
○  クライアント１０４に送られて表示されるコンテンツを提供するコンテンツフィードマネージャ２３２であり、
・画像、ビデオ、オーディオファイル、コメント、ステータスメッセージ、リンク、アプリケーション、ならびに／または他のエンティティ情報２１６、つながり情報２２０、もしくはコンテンツ２２２などのオブジェクトをソーシャルネットワークデータベース２１４に追加するコンテンツ生成モジュール２３４と、
・クライアント１０４に送られて表示される情報／コンテンツを選定するコンテンツ選択モジュール２３６と、
を含む、コンテンツフィードマネージャ２３２とを含む、ソーシャルネットワークサーバモジュール２２８、
・ソーシャルネットワークシステムのユーザがコンテンツおよびソーシャルネットワーク中の他のユーザを検索できるようにする検索モジュール２３８、
・（たとえば、クライアント装置１０４にダウンロードしてインストールする（図１Ａおよび図１Ｂ））アプリケーションのインストールファイルを格納するインストールファイルデータベース２４０であって、
○  各アプリケーションの複数のバージョンのインストールファイルを含み得るアプリケーション（たとえば、ソーシャルネットワーククライアントモジュール３４０、オプションのクライアントアプリケーションモジュール３４４など（図３））をインストールするアプリケーションインストールファイル２４２と、
○  装置（たとえば、ソフトウェア更新アプリケーションモジュール３４８（図３））への各アプリケーションのインストールおよび更新の両方または一方を可能にするアプリケーションをインストールするソフトウェア更新アプリケーションインストールファイル２４４と、
を含む、インストールファイルデータベース２４０。
【００４８】
ソーシャルネットワークデータベース２１４は、グラフ、次元、フラット、階層、ネットワーク、オブジェクト指向、リレーショナル、および／またはＸＭＬデータベースなどの１つ以上の種類のデータベースに、ソーシャルネットワークと関連付けられたデータを格納する。
【００４９】
いくつかの実施形態において、ソーシャルネットワークデータベース２１４は、グラフデータベースを含み、エンティティ情報２１６がグラフデータベース中のノードとして表され、つながり情報２２０がグラフデータベース中のエッジとして表される。グラフデータベースは、複数のノードのほか、対応するノード間の接続を規定する複数のエッジを含む。いくつかの実施形態において、ノード自体もしくはエッジ自体またはその両方は、識別子、属性、およびそれぞれの対応するエンティティの情報を含むデータオブジェクトであり、それらの一部は、クライアント１０４において、対応するプロフィールページまたはソーシャルネットワーキングサービスの他のページにレンダリングされる。また、いくつかの実施形態において、ノードは、クライアント１０４における各ノードに対応するページのレンダリングと併せて、コンテンツのレンダリングに用いられる他のオブジェクト、データ構造、またはリソースに対するポインタまたは参照を含む。
【００５０】
エンティティ情報２１６には、ユーザプロフィール、ログイン情報、プライバシなどのプリファレンス、経歴データなどのユーザ情報２１８を含む。いくつかの実施形態において、所与のユーザの場合、ユーザ情報２１８は、ユーザ名、プロフィール写真、連絡先情報、生年月日、性別、配偶者の有無、家族状態、仕事、学歴、プリファレンス、関心、および／または他の人口統計学的情報を含む。
【００５１】
いくつかの実施形態において、エンティティ情報２１６は、物理的な場所（たとえば、レストラン、劇場、ランドマーク、都市、州、または国）、不動産または知的財産（たとえば、彫像、絵画、映画、ゲーム、歌、アイデア／コンセプト、写真、または執筆作品）、企業、集団、および／または企業群に関する情報を含む。いくつかの実施形態において、エンティティ情報２１６は、オーディオファイル、ビデオファイル、デジタル写真、テキストファイル、構造化文書（たとえば、ウェブページ）、またはアプリケーションなどの、リソースに関する情報を含む。いくつかの実施形態において、リソースは、ソーシャルネットワークシステム１０８中（たとえば、コンテンツ２２２中）またはサードパーティサーバ１１０などの外部サーバ上に位置付けられている。
【００５２】
いくつかの実施形態において、つながり情報２２０は、ソーシャルネットワークデータベース２１４中のエンティティ間の関係に関する情報を含む。いくつかの実施形態において、つながり情報２２０は、グラフデータベース中のノード対を接続するエッジに関する情報を含む。いくつかの実施形態において、ノード対を結合する接続するエッジは、該ノード対間の関係を表す。
【００５３】
いくつかの実施形態において、エッジは、ノード対間の関係に対応する１つ以上のデータオブジェクトまたは属性を包含または表現する。たとえば、第２のユーザが「友達」であることを第１のユーザが示している場合、ソーシャルネットワークシステム１０８は、「友達リクエスト」を第２のユーザに送信する。第２のユーザが「友達リクエスト」を確認した場合、ソーシャルネットワークシステム１０８は、第１のユーザと第２のユーザとが友達であることを示すつながり情報２２０として、第１のユーザのユーザノードと第２のユーザのユーザノードとを接続するエッジを作成して、グラフデータベースに格納する。いくつかの実施形態において、つながり情報２２０は、友情関係、家族関係、ビジネスもしくは雇用関係、ファン関係、フォロワー関係、ビジター関係、サブスクライバ関係、上下関係、相互関係、非相互関係、別の適当な種類の関係、または２つ以上のこのような関係を表す。
【００５４】
いくつかの実施形態において、ユーザノードと別のエンティティノードとの間のエッジは、他方のエンティティノードに向かってユーザノードのユーザが実行する特定の動作または行為に関するつながり情報を表す。たとえば、ユーザは、他方のノードのエンティティに「いいね！」したり、または「参加」していても、「再生」していても、「聴いて」いても、「料理」していても、「勤務」していても、または「視聴」したりしていてもよい。他方のノードのエンティティに対応するソーシャルネットワーキングサービスのページは、たとえば選択可能な「いいね！」、「チェックイン」、または「お気に入りに追加」アイコンを含んでいてもよい。ユーザがこれらのアイコンのうちの１つをクリックした後、ソーシャルネットワークシステム１０８は、対応するユーザ動作に応答して、「いいね！」エッジ、「チェックイン」エッジ、または「お気に入り」エッジを作成するようにしてもよい。別の例として、ユーザは、特定のアプリケーション（たとえば、オンライン音楽アプリケーション）を用いて、特定の歌を聴く場合がある。この場合、ソーシャルネットワークシステム１０８は、ユーザに対応するユーザノードと歌とアプリケーションとに対応するエンティティノードとの間にそれぞれ、「聴く」エッジおよび「使用」エッジを作成して、ユーザが歌を聴くとともにアプリケーションを使用したことを示すようにしてもよい。また、ソーシャルネットワークシステム１０８は、歌およびアプリケーションに対応するエンティティノード間に「再生」エッジを作成して、特定の歌が特定のアプリケーションにより再生されたことを示すようにしてもよい。
【００５５】
いくつかの実施形態において、コンテンツ２２２は、テキスト（たとえば、ＡＳＣＩＩ、ＳＧＭＬ、ＨＴＭＬ）、画像（たとえば、ｊｐｅｇ、ｔｉｆ、およびｇｉｆ）、グラフィックス（たとえば、ベクトルベースまたはビットマップ）、オーディオ、ビデオ（例えば、ｍｐｅｇ）、他のマルチメディア、および／またはこれらの組み合わせを含む。いくつかの実施形態において、コンテンツ２２２は、実行可能なコード（たとえば、ブラウザウィンドウまたはフレーム内で実行可能なゲーム）、ポッドキャスト、リンクなどを含む。
【００５６】
いくつかの実施形態において、ソーシャルネットワークサーバモジュール２２８は、ウェブまたはハイパーテキスト転送プロトコル（ＨＴＴＰ）サーバ、ファイル転送プロトコル（ＦＴＰ）サーバのほか、共通ゲートウェイインタフェース（ＣＧＩ）スクリプト、ＰＨＰハイパーテキストプリプロセッサ（ＰＨＰ）、アクティブサーバページ（ＡＳＰ）、ハイパーテキストマークアップ言語（ＨＴＭＬ）、拡張マークアップ言語（ＸＭＬ）、Ｊａｖａ（登録商標）非同期ＪａｖａＳｃｒｉｐｔとＸＭＬ（ＡＪＡＸ：ＪａｖａＳｃｒｉｐｔ、Ａｓｙｎｃｈｒｏｎｏｕｓ  ＪａｖａＳｃｒｉｐｔ  ａｎｄ  ＸＭＬ）、ＸＨＰ、Ｊａｖｅｌｉｎ、ワイヤレスユニバーサルリソースファイル（ＷＵＲＦＬ）などを用いて実施されるウェブページおよびアプリケーションを含む。
【００５７】
図３は、いくつかの実施形態に係る、例示的なクライアント装置１０４を示したブロック図である。クライアント装置１０４は通常、１つ以上の処理ユニット（プロセッサまたはコア）３０２、１つ以上のネットワークインタフェースまたは他の通信インタフェース３０４、メモリ３０６、およびこれらのコンポーネントを相互接続する１つ以上の通信バス３０８を具備する。通信バス３０８は、オプションで、システムコンポーネント間の通信を相互接続して制御する回路（場合により、チップセットと称する）を具備する。通信インタフェース３０４としては、有線インタフェース（たとえば、イーサネット（登録商標）、ユニバーサルシリアルバス（ＵＳＢ）、ファイヤワイヤなど）および無線インタフェース（たとえば、ＩＥＥＥ８０２．１５．４、Ｗｉ−Ｆｉ、ＺｉｇＢｅｅ、６ＬｏＷＰＡＮ、Ｔｈｒｅａｄ、Ｚ−Ｗａｖｅ、Ｂｌｕｅｔｏｏｔｈ、ＩＳＡ１００．１１ａ、ＷｉｒｅｌｅｓｓＨＡＲＴ、ＭｉＷｉ、ＮＦＣなど）の両方または一方が挙げられる。クライアント装置１０４は、ユーザインタフェース３１０を具備する。ユーザインタフェース３１０は通常、ディスプレイ装置３１２を具備する。いくつかの実施形態において、クライアント装置１０４は、キーボード、マウス、および／または他の入力ボタン３１６などの入力装置を具備する。この代替または追加として、いくつかの実施形態においては、ディスプレイ装置３１２がタッチセンス面３１４を具備しており、この場合、ディスプレイ装置３１２はタッチセンスディスプレイである。タッチセンスディスプレイ３１２を有するクライアント装置において、物理的なキーボードはオプションである（たとえば、キーボード入力が必要な場合は、ソフトウェアキーボードが表示されるようになっていてもよい）。また、ユーザインタフェース３１０は、スピーカまたはスピーカ、イヤホン、もしくはヘッドホンに接続されたオーディオ出力接続などのオーディオ出力装置３１８を具備する。さらに、いくつかのクライアント装置１０４は、マイクまたは音声認識を使用して、キーボードを補完するかまたはこれに代わる。オプションで、クライアント装置１０４は、オーディオ（たとえば、ユーザのスピーチ）を取り込むオーディオ入力装置３２０（たとえば、マイク）を具備する。オプションで、クライアント装置１０４は、ＧＰＳ（全地球測位衛星）または他のジオロケーション受信機など、クライアント装置１０４の位置を決定する位置検出装置３２２を具備する。また、オプションで、クライアント装置１０４は、カメラまたはウェブカメラなどの画像／ビデオキャプチャ装置３２４を具備する。
【００５８】
メモリ３０６は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、または他のランダムアクセスソリッドステートメモリ装置などの高速ランダムアクセスメモリを含み、１つ以上の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリ装置、または不揮発性ソリッドステート記憶装置などの不揮発性メモリを含んでいてもよい。メモリ３０６は、オプションで、プロセッサ３０２から遠隔に位置付けられた１つ以上の記憶装置を含んでいてもよい。メモリ３０６あるいはメモリ３０６内の不揮発性メモリ装置は、非一時的なコンピュータ可読記憶媒体を含む。いくつかの実施形態において、メモリ３０６またはメモリ３０６のコンピュータ可読記憶媒体は、以下のプログラム、モジュール、およびデータ構造、またはその一部分もしくはスーパーセットを格納している：
・種々の基本システムサービスを取り扱うとともにハードウェアに依存したタスクを実行するプロシージャを含むオペレーティングシステム３２６、
・１つ以上の通信ネットワークインタフェース３０４（有線または無線）およびインターネット、携帯電話ネットワーク、モバイルデータネットワーク、他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの１つ以上の通信ネットワークを介してクライアント装置１０４を他のコンピュータに接続するのに用いられるネットワーク通信モジュール３２８、
・画像／ビデオキャプチャ装置３２４により取り込まれ、（たとえば、クライアントアプリケーションモジュール３３６によって）ソーシャルネットワークシステム１０８に送信またはストリーミングされ得る各画像またはビデオを処理する画像／ビデオキャプチャモジュール３３０（たとえば、カメラモジュール）、
・オーディオ入力装置３２０により取り込まれ、（たとえば、クライアントアプリケーションモジュール３３６によって）ソーシャルネットワークシステム１０８に送信またはストリーミングされ得る各オーディオを処理するオーディオ入力モジュール３３２（たとえば、マイクモジュール）、
・（たとえば、位置検出装置３２２を用いて）クライアント装置１０４の位置を決定するとともに、種々の用途（たとえば、ソーシャルネットワーククライアントモジュール３４０）で使用するためにこの位置情報を提供する位置検出モジュール３３４（たとえば、ＧＰＳ、Ｗｉ−Ｆｉ、またはハイブリッド測位モジュール）、
・下記のモジュール（または、命令セット）、またはこれらの一部分もしくはスーパーセットを含む、１つ以上のクライアントアプリケーションモジュール３３６：
○  ウェブサイト（たとえば、ソーシャルネットワークシステム１０８が提供するソーシャルネットワーキングウェブサイト）に対するアクセス、視聴、および相互作用のためのウェブブラウザモジュール３３８（たとえば、マイクロソフト（Ｍｉｃｒｏｓｏｆｔ）のＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ、モジラ（Ｍｏｚｉｌｌａ）のＦｉｒｅｆｏｘ、アップル（Ａｐｐｌｅ）のＳａｆａｒｉ、グーグル（Ｇｏｏｇｌｅ）のＣｈｒｏｍｅ）、
○  ソーシャルネットワーキングサービス（たとえば、ソーシャルネットワークシステム１０８が提供するソーシャルネットワーキングサービス）に対するインタフェースおよび関連機能を提供するソーシャルネットワークモジュール３４０であり、その１つ以上のバージョンに対応するインストールファイル３４２（たとえば、アプリケーションインストールファイル２４２（図２））を含む、ソーシャルネットワークモジュール３４０、
○  文書処理、カレンダ、地図、天気、株、時間管理、仮想デジタルアシスタント、プレゼンテーション、ナンバークランチング（スプレッドシート）、描画、インスタントメッセージ、電子メール、テレフォニー、テレビ会議、写真管理、ビデオ管理、デジタル音楽プレーヤ、デジタルビデオプレーヤ、２Ｄゲーム、３Ｄ（たとえば、仮想現実）ゲーム、電子ブックリーダ、および／またはエクササイズ支援のためのアプリケーションなどの、オプションの他のクライアントアプリケーションモジュール３４４であり、それぞれの１つ以上のバージョンに対応するインストールファイル３４６（たとえば、アプリケーションインストールファイル２４２（図２））を含む、クライアントアプリケーションモジュール３４４、
○  各電子装置のアプリケーションの適合バージョンを決定するための適合チェックの実行など、アプリケーション（たとえば、ソーシャルネットワークモジュール３４０）の１つ以上のバージョンのインストールおよび更新の両方または一方を可能にするソフトウェア更新アプリケーションモジュール３４８であり、そのインストールのためのインストールファイル３５０（たとえば、ソフトウェア更新アプリケーションインストールファイル２４４（図２））を含む、ソフトウェア更新アプリケーションモジュール３４８。
【００５９】
上記のモジュールおよびアプリケーションの各々は、上記の１つ以上の機能および／または本願に記載の方法（例えば、本明細書に記載のコンピュータ実現による方法および他の情報処理方法）を実施するための実行可能命令セットに対応している。これらのモジュール（すなわち、命令セット）は、別々のソフトウェアプログラム、プロシージャ、またはモジュールとして実現される必要はなく、従って、これらのモジュールの種々の一部分が、適宜、種々の実施形態において組み合わせまたは他の方法で再構成される。一部の実施形態では、メモリ２０６および／または３０６は、上記のモジュールおよびデータ構造の一部分を格納する。さらに、メモリ２０６および／または３０６は、適宜、上述していない追加のモジュールおよびデータ構造を格納する。
【００６０】
以下では、クライアント装置（例えば、図３のクライアント装置１０４）上で実現され得るグラフィカルユーザインタフェース（「ＧＵＩ」）および関連したプロセスの実施形態に注目する。
【００６１】
図４Ａおよび図４Ｂは、いくつかの実施形態に係る、アプリケーションのインストールおよびユーザ関係リクエストを可能にするクライアント装置１０４上の例示的なＧＵＩを示している。ＧＵＩは、ウェブブラウザ（たとえば、ウェブブラウザモジュール３３８（図３））、ソーシャルネットワーキングサービス用アプリケーション（たとえば、ソーシャルネットワークモジュール３４０）、サードパーティアプリケーション（たとえば、クライアントアプリケーションモジュール３４４）、および／またはソフトウェア更新アプリケーション（たとえば、ソフトウェア更新アプリケーションモジュール３４８）により提供されるようになっていてもよい。図４Ａおよび図４ＢがＧＵＩの例を示す一方、他の実施形態においては、ＧＵＩが図４Ａおよび図４Ｂの実施形態とは異なる構成でユーザインタフェース要素を表示する。
【００６２】
図４Ａは、電子装置（たとえば、クライアント装置１０４−１（図１Ａ））に表示されたメッセージ４００−１であって、アプリケーションのバージョンのインストールを可能にするために異なる電子装置（たとえば、クライアント装置１０４−３（図１Ａ））のセキュリティ設定を更新する指示を含む、メッセージ４００−１を示している。いくつかの実施形態において、これらの指示は、外部ソースからのアプリケーションのインストールを可能にするためにセキュリティ設定を更新する指示である（たとえば、ソーシャルネットワークモジュール３４０およびソフトウェア更新アプリケーションモジュール３４８（図３）の両方または一方など、ローカル接続１１２を通じて他の装置から読み出されたインストールファイル）。
【００６３】
図４Ｂは、電子装置（たとえば、クライアント装置１０４−１（図１Ａ））に表示されたメッセージ４００−２であって、アカウントを作成するリクエストを送信した後、ソーシャルネットワーキングサービス上の別の電子装置の異なるユーザ（たとえば、クライアント装置１０４−３（図１Ａ）と関連付けられたユーザ）と関係する（友達になるかまたはコンタクトする）ように、電子装置と関連付けられたユーザを促すメッセージ４００−２を示している。図示のように、図４ＢのＧＵＩは、クライアント装置１０４−１のユーザがリクエストの送信または送信拒否を行えるようにする、オプションのユーザインタフェース要素を具備する。
【００６４】
図４Ａおよび図４Ｂに示すメッセージの表示については、方法５００に関してより詳しく説明する。
図５Ａおよび図５Ｂは、いくつかの実施形態に係る、ローカル接続（たとえば、ローカル接続１１２（図１Ａ〜図１Ｃ））を用いてアプリケーションのバージョンをインストールする方法５００を示したフローチャートである。方法５００は、ソーシャルネットワークシステム１０８（または、他のサーバシステム）、第１の電子装置５０２−１（たとえば、クライアント装置１０４−１（図１Ａ〜図１Ｃおよび図３））、および第２の電子装置５０２−２（たとえば、クライアント装置１０４−３（図１Ａ〜図１Ｃおよび図３））によって実行される。図５Ａおよび図５Ｂにおいて実行される動作は、コンピュータメモリ（たとえば、クライアント装置１０４のメモリ３０６（図３））または他のコンピュータ可読記憶媒体に格納された命令に対応する。
【００６５】
いくつかの実施形態においては、ソーシャルネットワークシステム１０８（たとえば、図１Ａおよび図２）がアプリケーションの第１のバージョンのインストールファイルを第１の電子装置５０２−１に送信し（５０４）、第１の電子装置５０２−１がソーシャルネットワークシステム１０８からインストールファイル（たとえば、ソーシャルネットワーククライアントモジュール３４０のインストールファイル３４２（図３）に対応するアプリケーションインストールファイル２４２（図２））を受信する。いくつかの実施形態において、アプリケーションの第１のバージョンは、アプリケーションの直近かつ最新のバージョン（たとえば、ソーシャルネットワーククライアントモジュール３４０の直近のバージョン）である。オプションで、いくつかの実施形態においては、ソーシャルネットワークシステム１０８がソフトウェア更新アプリケーションのインストールファイル（たとえば、ソフトウェア更新アプリケーションモジュール３４８のインストールファイル３５０（図３）に対応するソフトウェア更新アプリケーションインストールファイル２４４（図２））を第１の電子装置５０２−１（たとえば、クライアント装置１０４−１（図１Ａ〜図１Ｃ））に送信し、第１の電子装置５０２−１がソーシャルネットワークシステム１０８からインストールファイルを受信する。インストールファイルは、たとえば１つ以上のネットワーク１０６（図１Ａおよび図１Ｂ）上で送信される。
【００６６】
第１の電子装置５０２−１は、ソーシャルネットワークシステム１０８から受信したアプリケーションの第１のバージョンのインストールファイルを（たとえば、メモリ３０６（図３））に格納する（５０６）とともに、オプションで、アプリケーションの第１のバージョンをインストールする（５０８）。また、いくつかの実施形態において、第１の電子装置５０２−１は、ソフトウェア更新アプリケーションのインストールファイルを（たとえば、メモリ３０６（図３））に格納するとともに、オプションで、ソフトウェア更新アプリケーションをインストールする。
【００６７】
第１の電子装置５０２−１（たとえば、クライアント装置１０４−１（図１Ａ〜図１Ｃ））は、第２の電子装置５０２−２とローカル接続（たとえば、ローカル接続１１２（図１Ａおよび図１Ｂ））を確立し（５１０）、これにより第２の電子装置５０２−２が第１の電子装置とローカル接続を確立する。ローカル接続は、インターネット接続から独立している（たとえば、１つ以上のネットワーク１０６に対するクライアント装置１０４−１の如何なる接続からも独立している）。いくつかの実施形態において、ローカル接続を確立することは、無線通信プロトコル（たとえば、Ｂｌｕｅｔｏｏｔｈ）を用いて、第１の電子装置５０２−１を第２の電子装置５０２−２とペアリングすることを含む。いくつかの実施形態において、ローカル接続を確立することは、パーソナルエリアネットワーク上で第２の電子装置５０２−２につながることを含む。いくつかの実施形態において、ローカル接続を確立することは、ピアツーピアネットワーク上で第２の電子装置５０２−２につながることを含む。
【００６８】
いくつかの実施形態において、ローカル接続を確立することは、インターネット接続の輻輳閾値が満たされている旨の判定に応答して実行される。（また、インストールファイルの送信（５１８）などの後続動作は、この決定に応答して少なくとも部分的に実行されるようになっていてもよい。）輻輳閾値は、利用可能な所与の最小ネットワーク帯域幅（たとえば、ビット毎秒）、データレート、ネットワーク待ち時間、または電子装置がインターネットにアクセスするネットワーク接続の他の性能測定基準（たとえば、ネットワーク１０６（図１Ａ）上で測定されるネットワーク帯域幅）を含んでいてもよい。一例として、所与の最小ネットワーク帯域幅が１００Ｍｂｉｔ／秒であり、第２の電子装置５０２−２がネットワーク１０６（図１）上で９０Ｍｂｉｔ／秒のネットワーク帯域幅を測定した場合は、輻輳閾値が満たされ、ごく近接した別の電子装置とローカル接続（たとえば、Ｂｌｕｅｔｏｏｔｈ）が確立される。いくつかの実施形態において、ローカル接続を確立することは、ローカル接続の測定された性能測定基準（たとえば、Ｂｌｕｅｔｏｏｔｈデータレート）が、電子装置５０２−１および５０２−２の両方または一方がインターネットにアクセスするネットワーク接続の測定された性能測定基準（たとえば、Ｗｉ−Ｆｉ上で実現されるネットワーク帯域幅）を超える旨の判定に応答して実行される。いくつかの実施形態において、ローカル接続を確立することは、第２の電子装置５０２−２がインターネット接続を確立できない（たとえば、Ｗｉ−Ｆｉ上で、携帯電話データおよびネットワーク１０６への接続の両方または一方を利用できない）旨の判定に応答して実行される。
【００６９】
ローカル接続を用いて、第１の電子装置５０２−１（または、第２の電子装置５０２−２）は、アプリケーションの第１のバージョンが第２の電子装置５０２−２にインストールされているかを判定する（５１２）。いくつかの実施形態において、判定（５１２）は、アプリケーションの任意のバージョンが第２の電子装置にインストールされているかを第１の電子装置５０２−１または第２の電子装置５０２−２が判定することを含む。たとえば、第１の電子装置５０２−１は、アプリケーションのバージョンが第１の電子装置にインストールされていることまたはアプリケーションのバージョンのインストールファイルが第１の電子装置上で利用可能であることを第２の電子装置５０２−２に示すようにしてもよい。この指標に基づいて、第２の電子装置５０２−２は、同じアプリケーションの任意のバージョンが第２の電子装置５０２−２にインストールされているかを判定する。あるいは、第２の電子装置５０２−２は、（たとえば、インストールされているすべてのアプリケーションの一覧を提供することにより）アプリケーションのバージョンが第２の電子装置５０２−２にインストールされていることを第１の電子装置５０２−１に示すようにしてもよい。
【００７０】
いくつかの実施形態において、判定（５１２）は、アプリケーションの第１のバージョンに先行するアプリケーションの第２のバージョンが第２の電子装置５０２−２にインストールされているかを第１の電子装置５０２−１または第２の電子装置５０２−２が判定する（たとえば、第１および第２の電子装置に格納されたアプリケーションのバージョンまたは対応するインストールファイルを比較して、第２の電子装置上のバージョンが無効のバージョンであると判定する）ことを含む。たとえば、第１の電子装置５０２−１は、アプリケーションの第１のバージョンが第１の電子装置５０２−１にインストールされていることを第２の電子装置５０２−２に示すようにしてもよい。その後、この指標に基づいて、第２の電子装置５０２−２は、第２の電子装置５０２−２にインストールされたアプリケーションのバージョンを第１のバージョンと比較して、第２の電子装置５０２−２にインストールされたバージョンが無効であると判定する。この比較により、第２の電子装置５０２−２にインストールされたバージョンが無効のバージョン、同じバージョン、またはより最新のバージョンであると判定されるようになっていてもよい。あるいは、第２の電子装置５０２−２は、アプリケーションの第２のバージョンが第２の電子装置５０２−２にインストールされていることを第１の電子装置５０２−１に示すようにしてもよい。その後、この指標に基づいて、第１の電子装置５０２−１は、第１の電子装置５０２−１にインストールされたアプリケーションの第１のバージョンを第２のバージョンと比較して、第２の電子装置５０２−２にインストールされたバージョンが無効であると判定する。
【００７１】
いくつかの実施形態において、判定（５１２）は、ローカル接続を通じてソフトウェア更新アプリケーションを第２の電子装置５０２−２に提供し（たとえば、ソフトウェア更新アプリケーションモジュール３４８のインストールファイル３５０（図３）を転送し）、第２の電子装置５０２−２にインストールすることを含み、第２の電子装置５０２−２がローカル接続を通じてソフトウェア更新アプリケーションを受信する。そして、ソフトウェア更新アプリケーションが第２の電子装置５０２−２にインストールされる。いくつかの実施形態において、ソフトウェア更新アプリケーション（たとえば、ソフトウェア更新アプリケーションモジュール３４８）は、アプリケーション（たとえば、ソーシャルネットワーククライアントモジュール３４０（図３））が第２の電子装置５０２−２にインストールされているかを判定するとともにそのバージョンを決定する命令を含む。その後、ローカル接続を通じて、アプリケーションの第１のバージョンが第２の電子装置にインストールされているかの指標（たとえば、アプリケーションの任意のバージョンがインストールされているかの指標およびアプリケーションの第１のバージョンがインストールされているかの指標の両方または一方）を第２の電子装置５０２−２上のソフトウェア更新アプリケーションが送信するとともに第１の電子装置５０２−１がこれを受信する。
【００７２】
いくつかの実施形態において、ローカル接続の確立（５１０）の後、第１の電子装置５０２−１は、該第１の電子装置５０２−１に格納され、配信の権限を与えられたアプリケーションの一覧（および、それぞれのバージョン）をローカル接続上で定期的（または、継続的）に送信（たとえば、ブロードキャスト）する。第１の電子装置５０２−１からの送信（たとえば、ブロードキャスト）に基づいて、ローカル接続上で第１の電子装置に接続された電子装置は、ローカル接続上で第１の電子装置５０２−１から取得可能なアプリケーションの利用可能なバージョンを識別するようにしてもよい。
【００７３】
いくつかの実施形態において、第１の電子装置５０２−１または第２の電子装置５０２−２は、アプリケーションの第１のバージョンが第２の電子装置５０２−２に適合するかを判定する（５１４）。アプリケーションの第１のバージョンの適合を判定することは、第２の電子装置５０２−２（およびオプションで、第１の電子装置５０２−１）の１つ以上のハードウェア仕様（たとえば、プロセッサの種類、装置の製造業者、チップセットなど）およびソフトウェア仕様（たとえば、オペレーティングシステム）または１つ以上のハードウェア仕様（たとえば、プロセッサの種類、装置の製造業者、チップセットなど）もしくはソフトウェア仕様（たとえば、オペレーティングシステム）を識別することと、アプリケーションの第１のバージョンが識別した仕様に適合するか判定することを含んでいてもよい。いくつかの実施形態において、アプリケーションの第１のバージョンの適合を判定することは、アプリケーションの種々のバージョンに関する適合装置仕様の一覧を格納したテーブル（たとえば、Ａｎｄｒｏｉｄアプリケーションパッケージ（「ＡＰＫ」）マトリクス）のエントリを参照することを含む。いくつかの実施形態において、適合チェック（５１４）は、ソフトウェア更新アプリケーション（たとえば、ソフトウェア更新アプリケーションモジュール３４８（図３））によって実行される（５１２）。
【００７４】
アプリケーションの第１のバージョンが第２の電子装置５０２−２にインストールされていない旨の判定（また、いくつかの実施形態においては、第１のバージョンが第２の電子装置のハードウェアおよびソフトウェアの両方または一方（たとえば、オペレーティングシステム）に適合する旨の判定）に応答して、第１の電子装置５０２−１は、ローカル接続を通じて、アプリケーションの第１のバージョンの１つ以上のインストールファイル（たとえば、ソーシャルネットワーククライアントモジュール３４０のインストールファイル３４２（図３））を第２の電子装置に送信し（５１８）、第２の電子装置５０２−２がこれを第１の電子装置から受信する。たとえば、ソーシャルネットワーククライアントモジュール３４０（たとえば、ソーシャルネットワーキングサービスのインタフェースを提供するアプリケーション）の直近（すなわち、最新）のバージョンが第１の電子装置５０２−１に格納されているものの、第２の電子装置５０２−２には格納されていない（たとえば、第２の電子装置５０２−２にインストールされたアプリケーションのバージョンが無効である）と判定された場合、第１の電子装置５０２−１は、別個のインターネットベースのネットワークインタフェース上ではなく、確立されたローカル接続（たとえば、Ｂｌｕｅｔｏｏｔｈ接続）を通じて、直近のバージョンのインストールファイル３４２を第２の電子装置５０２−２に送信する。こうして、第２の電子装置５０２−２は、（たとえば、ネットワーク１０６上でソーシャルネットワークシステム１０８（図１Ａ）につながることなく）インターネットアクセスまたはローカル接続１１２よりも広い任意のネットワークへのアクセス）から独立して、インストールファイルを受信する。
【００７５】
いくつかの実施形態において、判定（５１２）は、アプリケーションの第２のバージョンが第２の電子装置５０２−２にインストールされている旨の判定（すなわち、第１の電子装置５０２−１に格納された第１のバージョンに先行するバージョン）であり、１つ以上のインストールファイルは、第２の電子装置５０２−２上のアプリケーションを第２のバージョンから第１のバージョンに更新する更新情報を含む。このため、いくつかの実施態様において、受信装置がアプリケーションの無効のバージョンを格納していると判定された場合は、アプリケーション全体のインストールパッケージではなく、アプリケーションを更新するファイルのみが送られる。
【００７６】
いくつかの実施形態において、判定（５１２）は、アプリケーションのいずれのバージョンも第２の電子装置にインストールされていない旨の判定であり、１つ以上のインストールファイルは、アプリケーションの過去のバージョンを更新するためだけのインストールファイルではなく、アプリケーションの第１のバージョンの全体をインストールする１つ以上のファイルを含む。
【００７７】
いくつかの実施形態においては、１つ以上のインストールファイルの送信（５１８）の前に、アプリケーションの第１のバージョンのインストールを可能にするために第２の電子装置５０２−２のセキュリティ設定を更新する旨の指示を含むメッセージが第１の電子装置５０２−１に表示される。メッセージの一例につては、図４Ａに示すとともに、図４Ａに関して説明している。
【００７８】
いくつかの実施形態において、第１の電子装置５０２−１は、第２の電子装置５０２−２がローカル接続上で通信可能な複数の電子装置のうちの１つ（たとえば、第２の電子装置５０２−２の無線通信範囲内の複数の電子装置のうちの１つ）であり、複数の電子装置のうちの他の電子装置上のアプリケーションの各バージョンがアプリケーションの第１のバージョンに先行する旨の判定に従って、第１の電子装置５０２−１がアプリケーションの第１のバージョンの１つ以上のインストールファイルを送信する（５１８）とともに、第２の電子装置５０２−２がこれを受信する。一例として、図１Ｃを参照して、クライアント装置１０４−１、１０４−４、および１０４−５は、ソーシャルネットワーククライアントモジュール３４０の種々のバージョンを格納しており（および／または、種々のバージョンのインストールファイルを有しており）、すべてがクライアント装置１０４−３の無線通信範囲内である。クライアント装置１０４−１は、（その他の近くのクライアント装置に格納された各バージョンに対して）ソーシャルネットワーククライアントモジュール３４０の直近（たとえば、現行）のバージョンを格納している場合、唯一、直近のバージョンのインストールファイル３４２をクライアント装置１０４−３に送信することになる。いくつかの実施形態において、アプリケーションの各バージョンを格納した近くの複数の電子装置は、互いに調停して、アプリケーションの最新（たとえば、現行）のバージョンを有する１つ以上の電子装置を識別する。いくつかの実施態様において、アプリケーションの最新のバージョンを有する１つ以上の電子装置を識別した後、無効のバージョンを有するその他の電子装置は、ローカル接続からの切断および他の近くの装置へのブロードキャストの中断の両方または一方を行うようにしてもよい（たとえば、アプリケーションのバージョンを転送に利用可能な、他の装置へのブロードキャストを停止するようにしてもよい）。いくつかの実施形態において、第２の電子装置５０２−２（「受信装置」）は、無線通信範囲内の複数の電子装置から、各電子装置に格納されたアプリケーションの各バージョンを識別する指標を受信する。いくつかの実施形態において、これらの指標に基づいてアプリケーションの最新のバージョンを有する１つ以上の電子装置を識別する際、第２の電子装置５０２−２は、最新のバージョンを有する１つ以上の電子装置との接続を維持するとともにインストールファイルを受信しつつ、ローカル接続を通じて接続されたその他すべての電子装置から切断する。あるいは、第２の電子装置５０２−２は、その他の電子装置と接続された状態を維持するものの、これらからインストールファイルをダウンロードすることはない。
【００７９】
いくつかの実施形態において、アプリケーションは、第１の電子装置５０２−１および第２の電子装置５０２−２の両方または一方に格納された複数のアプリケーションのうちの第１のアプリケーションである（たとえば、クライアント装置１０４−１は、ブラウザモジュール３３８、ソーシャルネットワーククライアントモジュール３４０、およびクライアントアプリケーションモジュール３４４をメモリ３０６に格納する）。第１のアプリケーションの優先度が第２の電子装置５０２−２上の第２のアプリケーションの優先度を上回る旨の判定に従って、第１の電子装置５０２−１がアプリケーションの第１のバージョンの１つ以上のインストールファイルを送信する（５１８）とともに、第２の電子装置５０２−２がこれを受信する。たとえば、クライアントアプリケーションモジュール３４４の所定の優先度を上回る所定の優先度（たとえば、数値的指標値により表される）をソーシャルネットワーククライアントモジュール３４０が有し、両モジュールで更新情報を利用可能な場合、第１の電子装置５０２−１は、クライアントアプリケーションモジュール３４４のインストールファイルが仮にあったとしても、それが送信される前に、ソーシャルネットワーククライアントモジュール３４０のインストールファイルを送信することになる。いくつかの実施形態において、アプリケーションの異なるバージョンは、それぞれの優先度を有する。たとえば、ソーシャルネットワーククライアントモジュール３４０のより新しい第１のバージョンは、より古い第２のバージョンよりも高い優先度を有していてもよい。この例においては、クライアントアプリケーションモジュール３４４の第１のバージョンがソーシャルネットワーククライアントモジュール３４０の第２のバージョンを上回る一方、ソーシャルネットワーククライアントモジュール３４０の第１のバージョンがクライアントアプリケーションモジュール３４４の第１のバージョンを上回る。
【００８０】
ここで図５Ｂを参照して、第１の電子装置５０２−１は、インストールファイルの一部を第２の電子装置５０２−２に送信し（５１８）、第２の電子装置５０２−２がその全部または一部を受信する。たとえば、第１の電子装置５０２−１は、ローカル接続を通じて第２の電子装置に、第１の複数のパケットを送信する。そして、第２の電子装置５０２−２は、第１の電子装置５０２−１からローカル接続を通じて、第１の複数のパケットの一部または全部を受信する。インストールファイルが（たとえば、対応するパケットの形態で）送受信されている間に、すべてのインストールファイルの転送に先立って、ローカル接続の第２の電子装置との喪失が検出される（５２０）。しばらくして（たとえば、切断から数分、数時間、または数日後）、第２の電子装置とのローカル接続が再確立される（５２２）（たとえば、Ｂｌｕｅｔｏｏｔｈ接続の再ペアリング）。いくつかの実施形態においては、同じローカル接続が再確立される（たとえば、元のローカル接続がＢｌｕｅｔｏｏｔｈ経由であった場合、再確立されるローカル接続もＢｌｕｅｔｏｏｔｈ経由である）一方、他の実施形態においては、再確立されるローカル接続が別の通信プロトコルに基づいている（たとえば、元のローカル接続がＢｌｕｅｔｏｏｔｈ経由であり、再確立されるローカル接続がＷｉ−Ｆｉ  Ｄｉｒｅｃｔ経由である）。ローカル接続の再確立（５２２）の後、第１の電子装置５０２−１は、ローカル接続を通じて、インストールファイルの残りを第２の電子装置５０２−２に送信し（５２４）、第２の電子装置５０２−２がこれを受信する。たとえば、第１の電子装置５０２−１は、ローカル接続を通じて、第２の複数のパケットを第２の電子装置５０２−２に送信し、第２の電子装置５０２−２がこれを受信する。第２の複数のパケットは、ローカル接続の喪失（５２０）の結果として転送に失敗したインストールファイルの残りの部分に対応する。いくつかの実施形態において、第２の複数のパケットは、第２の電子装置５０２−２と第１の電子装置５０２−１とは異なる１つ以上の他の電子装置との間のローカル接続を通じて受信される（すなわち、第２の電子装置５０２−２は、複数の電子装置から、インストールファイルの異なる部分を受信する）。これらの実施形態において、第２の電子装置と１つ以上の他の電子装置との間に確立された各ローカル接続は、同一または別個の通信プロトコルを使用するようにしてもよい（たとえば、第２の電子装置５０２−２は、ある電子装置にＢｌｕｅｔｏｏｔｈ経由でつながり、別の電子装置にＷｉ−Ｆｉ  Ｄｉｒｅｃｔ経由でつながる）。
【００８１】
いくつかの実施形態において、アプリケーションは、ソーシャルネットワーキングサービスにつながるアプリケーション（たとえば、ソーシャルネットワークシステム１０８が提供するサービスにつながるソーシャルネットワーククライアントモジュール３４０（図１および図３））であり、第１の電子装置５０２−１と関連付けられた第１のユーザは、ソーシャルネットワーキングサービスのユーザである。アプリケーションの第１のバージョンが第２の電子装置にインストールされた後は、ローカル接続を通じて、第２の電子装置と関連付けられた第２のユーザのソーシャルネットワーキングサービスのアカウントを作成するリクエストを第２の電子装置５０２−２が第１の電子装置５０２−１に送信する（５２６）とともに、第１の電子装置５０２−１が第２の電子装置５０２−２からこれを受信する（５２６）。このリクエストは、ソーシャルネットワーククライアントモジュール３４０の第２の電子装置５０２−２へのインストールに応答して自動的に生成されるようになっていてもよいし、ユーザ入力に応答して生成されるようになっていてもよい。そして、第１の電子装置５０２−１は、ローカル接続とは異なる通信チャネルを通じて、リクエストをリモートサーバに送信する（５２８）（たとえば、第１の電子装置５０２−１は、Ｗｉ−Ｆｉまたは携帯電話接続を通じて、第２の電子装置５０２−２から受信したアカウント作成リクエストを１つ以上のネットワーク１０６上でソーシャルネットワークシステム１０８に送信する）。したがって、第１の電子装置５０２−１は、第２の電子装置５０２−２の直接的なインターネット接続が無くても、ソーシャルネットワークシステム１０８が提供するサービスのアカウントを作成する仲介手段として用いられるようになっていてもよい。
【００８２】
いくつかの実施形態において、アプリケーションの第１のバージョンのインストールファイルの送信および第２の電子装置５０２−２による受信（５１８）の後は、ソーシャルネットワーキングサービス上の第２のユーザと関係するように第１のユーザを促すメッセージ（または、第１のユーザと関係するように第２のユーザを促すメッセージ）が第１の電子装置５０２−１および第２の電子装置５０２−２の両方または一方に表示される（５３０）。メッセージの一例については、図４Ｂに示すととともに、図４Ｂに関して説明している。いくつかの実施形態において、この関係リクエストは、インストールファイルの第２の電子装置５０２−２への送信、アプリケーションの第２の電子装置５０２−２へのインストール、および／または第２のユーザのアカウントの作成に応答して自動的に生成される。いくつかの実施形態において、メッセージは、インストールファイルがすべて転送されるか否かに関わらず、第１の電子装置５０２−１がインストールファイルの送信（５１８）を開始するとともに第２の電子装置５０２−２がインストールファイルの受信を開始した後（たとえば、これらに応答して）表示される（５３０）。いくつかの実施形態において、第１のユーザおよび第２のユーザは、インストールファイルが送信（５１８）および受信された後（あるいは、第１の電子装置５０２−１がインストールファイルの送信を開始するとともに第２の電子装置５０２−２がインストールファイルの受信を開始した後）、ソーシャルネットワーキングサービス上で互いに自動的に関連付けられる（すなわち、関係リクエストに関する指示／データがソーシャルネットワークシステム１０８に対して自動的に送信される）。いくつかの実施形態においては、信号がソーシャルネットワークシステム１０８に対して自動的に与えられ、所定の関係アルゴリズム（たとえば、ＰＹＭＫ（「知り合いかも（Ｐｅｏｐｌｅ  Ｙｏｕ  Ｍａｙ  Ｋｎｏｗ）」）、友達リクエストアルゴリズムなど）に入力される。
【００８３】
第１および第２のユーザ（それぞれ、第１の電子装置５０２−１および第２の電子装置５０２−２と関連付けられている）がソーシャルネットワーキングサービスのユーザであるいくつかの実施形態において、第１の電子装置５０２−１は、ローカル接続とは異なる通信チャネルを通じて（たとえば、１つ以上のネットワーク１０６上で）、第２のユーザ向けのコンテンツをソーシャルネットワーキングサービスから受信する（５３２）とともに、ソーシャルネットワークシステム１０８がこれを第１の電子装置５０２−１に送信する。コンテンツとしては、ソーシャルネットワークシステム上のユーザがアクセス可能な任意のコンテンツ（たとえば、フィードコンテンツ、投稿、メッセージ、オーディオ／視覚データ、リンクなど）が挙げられる。ローカル接続（たとえば、ローカル接続１０８）を通じて、第２の電子装置に表示するソーシャルネットワーキングサービスからのコンテンツを第１の電子装置５０２−１が第２の電子装置５０２−２に送信する（５３４）とともに、第２の電子装置５０２−２がこれを第１の電子装置５０２−１から受信する。これにより、ソーシャルネットワークシステム１０８が提供するコンテンツは、（こうしなければインターネット接続が制限されるかインターネット接続がないものの）ローカル接続を確立可能な他のインターネット接続装置に近接した電子装置によってアクセスされるようになっていてもよい。いくつかの実施形態において、ソーシャルネットワーキングサービスからのコンテンツを送信（５３４）および受信することは、第２の電子装置５０２−２がインターネット接続していない旨の判定に従って行われる。いくつかの実施形態において、ソーシャルネットワーキングサービスから受信（５３２）されたコンテンツは、第１の電子装置５０２−１のメモリにキャッシュされて後で送信されることにより、送信時にインターネット接続が無くても、第１の電子装置５０２−１が第２の電子装置５０２−２にコンテンツを送信できるようにする。
【００８４】
いくつかの実施形態において、第１の電子装置５０２−１は、第２の電子装置５０２−２からコンテンツ（たとえば、投稿）を受信し、ローカル接続とは異なる通信チャネルを通じて、受信したコンテンツをソーシャルネットワーキングサービスに送信する（たとえば、自身の電子装置がインターネット接続を確立できないユーザは、ローカル接続が確立されるインターネット接続電子装置を通じて、ソーシャルネットワーキングサービスにコンテンツを投稿することができる）。
【００８５】
いくつかの実施形態において、図５Ａおよび図５Ｂの方法５００（または、動作の一部分）は、インターネット接続の輻輳閾値が満たされている（たとえば、ネットワーク帯域幅が所定値未満または以下である）旨の判定または（たとえば、不十分な携帯電話データサービスエリアまたはインターネット未加入のため）第２の装置５０２−２がインターネット接続を確立できない旨の判定に応答して実行される。
【００８６】
第２の電子装置５０２−２が第１の電子装置５０２−１からデータ（たとえば、コンテンツ、インストールファイルなど）を受信する場合に関して図５Ａおよび図５Ｂの方法５００を説明しているが、いくつかの実施形態においては、第２の電子装置５０２−２が複数の異なる電子装置からデータを受信し、複数の異なる電子装置が第２の電子装置５０２−２にデータを送信する。複数の異なる電子装置から受信および送信されるデータには、異なるコンテンツ項目のデータを含んでいてもよいし（たとえば、ある電子装置がアプリケーションのインストールファイルを送信する一方、異なる電子装置が、ソーシャルネットワークシステム１０８から読み出されたソーシャルメディアコンテンツ（たとえば、投稿）を送信する）か、または同じコンテンツ項目の一部を含んでいてもよい（たとえば、異なる電子装置は、同じアプリケーションのインストールファイルの異なる部分を送信する）。
【００８７】
上述のシステムがユーザに関する情報を収集する状況の場合、ユーザには、個人情報（たとえば、ユーザのプリファレンスまたはソーシャルコンテンツプロバイダに対するユーザの貢献に関する情報）を収集し得るプログラムまたは機能をオプトイン／オプトアウトする機会が与えられるようになっていてもよい。また、いくつかの実施形態においては、格納または使用前に特定のデータが１つ以上の方法で非特定化されることにより、個人を特定可能な情報が削除されるようになっていてもよい。たとえば、個人を特定可能な情報がユーザに関して決定されたりユーザと関連付けられたりすることがなく、また、ユーザのプリファレンスまたはユーザの相互作用が特定のユーザと関連付けられるのではなく一般化される（たとえば、ユーザの人口統計学的情報に基づいて一般化される）ように、ユーザの身元が非特定化されるようになっていてもよい。
【００８８】
各種図面のいくつかでは、いくつかの論理段階を特定の順序で示しているが、順序に依存しない段階は並べ替えてよく、また、他の段階を併合するか、または分割して切り出してよい。いくつかの並べ替えまたは他の組分けについて具体的に記載しているが、他のものは当業者には明らかであり、よって、本明細書で提示している順序および組分けは、代替案の網羅的列挙ではない。さらに、認識されるべきことは、それらの段階は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせで実現できるということである。
【００８９】
上記明細書は、説明を目的として、具体的な実施形態を参照して記載している。しかしながら、上記の例示的説明は、網羅的なものではなく、開示した厳密な形態に請求項の範囲を限定するものでもない。上記の教示に照らして、数多くの変更および変形が可能である。これらの実施形態は、これにより他の当業者が企図する特定の用途に適した種々の変更を加えて実施形態を最良に利用できるように、請求項の根底にある原理およびその実際の適用について最良に説明するために選択されたものである。
【図１Ａ】
0006676080.tif 000002
【図１Ｂ】
0006676080.tif 000003
【図１Ｃ】
0006676080.tif 000004
【図２】
0006676080.tif 000005
【図３】
0006676080.tif 000006
【図４Ａ−Ｂ】
0006676080.tif 000007
【図５Ａ】
0006676080.tif 000008
【図５Ｂ】
0006676080.tif 000009