JP6676080B2 - 近距離通信を介してアプリケーションバージョンをインストールする方法およびシステム - Google Patents

近距離通信を介してアプリケーションバージョンをインストールする方法およびシステム Download PDF

Info

Publication number
JP6676080B2
JP6676080B2 JP2017568141A JP2017568141A JP6676080B2 JP 6676080 B2 JP6676080 B2 JP 6676080B2 JP 2017568141 A JP2017568141 A JP 2017568141A JP 2017568141 A JP2017568141 A JP 2017568141A JP 6676080 B2 JP6676080 B2 JP 6676080B2
Authority
JP
Japan
Prior art keywords
electronic device
application
version
local connection
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017568141A
Other languages
English (en)
Other versions
JP2018528507A (ja
Inventor
ロチャン、ガウラフ
スリニバサン、ラガバン
Original Assignee
フェイスブック,インク.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by フェイスブック,インク. filed Critical フェイスブック,インク.
Publication of JP2018528507A publication Critical patent/JP2018528507A/ja
Application granted granted Critical
Publication of JP6676080B2 publication Critical patent/JP6676080B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup

Description

本発明は一般的に、装置間通信に関し、電子装置間のローカル接続を通じてインストールファイルを転送することによりアプリケーションを電子装置にインストールすることを含むが、これに限定されない。
モバイル機器はますます、消費者がインターネット上で電子コンテンツにアクセス、電子コンテンツをダウンロードし、および消費する有力な手段となっている。
しかし、電気通信技術の大きな進歩にも関わらず、インターネット上のコンテンツにアクセスするための実現可能なデータレートは、依然として限られている。さらに、途上国などの特定の地理的領域におけるインターネットアクセスの可用性が制限されていることに加えて、モバイル用途の比較的大きなファイルサイズを考慮すると、消費者は、アプリケーションのダウンロードが困難な場合が多く、このため、モバイル機器の使用時に不満を抱くことが多い。
したがって、電子装置間に確立されたローカル接続を通じてインストールファイルを転送することにより更新アプリケーションを電子装置にインストールする方法、装置、およびシステムが求められている。近距離通信プロトコル(たとえば、Bluetooth(登録商標)またはWiFi Direct)を用いて装置間にローカル接続を確立することにより、インターネット接続を確立することができないか、または低速のインターネット接続を有することができない装置が、近くの接続装置からインストールファイルを受信することができる。これにより、装置は、インターネット接続が不十分であるか、またはインターネット接続が無いためにアクセスできないアプリケーションを、インストールまたは更新可能となる。このような方法、装置、およびシステムは、オプションで、アプリケーションを電子装置にインストールして更新する従来の方法を補完するかまたはこれに代わる。
いくつかの実施形態によれば、1つ以上のプロセッサおよび該1つ以上のプロセッサによって実行される命令を格納したメモリを備えた第1の電子装置(たとえば、クライアント装置)において方法が実行される。この方法は、アプリケーションの第1のバージョンの1つ以上のインストールファイルをメモリに格納するステップを含む。インターネット接続から独立したローカル接続を第2の電子装置と確立する。この方法は、ローカル接続を用いて、アプリケーションの第1のバージョンが第2の電子装置にインストールされているかを判定するステップを含む。アプリケーションの第1のバージョンが第2の電子装置にインストールされていない旨の判定に応答して、第1の電子装置は、第2の電子装置にローカル接続を通じて、アプリケーションの第1のバージョンの1つ以上のインストールファイルを送信する。
いくつかの実施形態によれば、電子装置(たとえば、クライアント装置)は、1つ以上のプロセッサ、メモリ、および1つ以上のプログラムを含み、該1つ以上のプログラムは、メモリに格納され、1つ以上のプロセッサによって実行されるように構成されている。1つ以上のプログラムは、上述の方法の動作を実行する命令を含む。いくつかの実施形態によれば、非一時的なコンピュータ可読記憶媒体は、電子装置によって実行された場合、上述の方法の動作を電子装置に実行させる命令を格納している。
このように、電子装置には、電子装置にアプリケーションをインストールして更新するためのより効果的かつ効率的な方法が与えられており、このような装置の有効性および効率が高くなるとともに、このような装置に対するユーザ満足度が向上する。
添付の請求項において開示された実施形態は、方法、記憶媒体、システム、およびコンピュータプログラムプロダクトに関するものであり、ある1つの請求項カテゴリである例えば方法で記載されている特徴はいずれも、他の請求項カテゴリである例えばシステムでも同様に特許請求の対象となり得る。添付の請求項における従属関係または後方参照は、単なる形式的な理由で選択されたものである。しかしながら、先行する請求項への(特に多項従属での)意図的な後方参照の結果として得られる主題がいずれも、同様に特許請求の対象となり得ることで、請求項およびその特徴の任意の組み合わせが開示されているかのように、それらは、添付の請求項で選択されている従属関係にかかわりなく特許請求の対象となり得る。特許請求の対象となり得る主題は、添付の請求項に記載の特徴の組み合わせだけではなく、請求項に記載の特徴の他の任意の組み合わせも含み、請求項に記載の特徴はそれぞれ、請求項に記載の他の特徴または他の特徴の組み合わせと組み合わせることができる。さらに、本明細書に記載もしくは図示の実施形態および特徴はいずれも、単独の請求項において、かつ/または本明細書に記載もしくは図示のいずれかの他の実施形態もしくは特徴との、または添付の請求項の特徴のいずれかとの任意の組み合わせで、特許請求され得る。
いくつかの実施形態において、方法は、
1つ以上のプロセッサおよび該1つ以上のプロセッサによって実行される命令を格納したメモリを備えた第1の電子装置において、
アプリケーションの第1のバージョンの1つ以上のインストールファイルをメモリに格納するステップと、
インターネット接続から独立したローカル接続を第2の電子装置と確立するステップと、
ローカル接続を用いて、アプリケーションの第1のバージョンが第2の電子装置にインストールされているかを判定するステップと、
アプリケーションの第1のバージョンが第2の電子装置にインストールされていない旨の判定に応答して、第2の電子装置にローカル接続を通じて、アプリケーションの第1のバージョンの1つ以上のインストールファイルを送信するステップと、
を含む。
ローカル接続を確立するステップは、無線通信プロトコルを用いて、第1の電子装置を第2の電子装置とペアリングすることを含んでいてもよい。
ローカル接続を確立するステップは、パーソナルエリアネットワーク上で第2の電子装置につながることを含んでいてもよい。
ローカル接続を確立するステップは、ピアツーピアネットワーク上で第2の電子装置につながることを含んでいてもよい。
ローカル接続を確立するステップは、インターネット接続の輻輳閾値が満たされている旨の判定に応答して実行されるようになっていてもよい。
ローカル接続を確立するステップは、第2の装置がインターネット接続を確立できない旨の判定に応答して実行されるようになっていてもよい。
いくつかの実施形態において、この方法では、
アプリケーションの第1のバージョンが第2の電子装置にインストールされているかの判定が、アプリケーションの第1のバージョンに先行するアプリケーションの第2のバージョンが第2の電子装置にインストールされているかの判定を含んでおり、
アプリケーションの第1のバージョンが第2の電子装置にインストールされていない旨の判定が、アプリケーションの第2のバージョンが第2の電子装置にインストールされている旨の判定であり、
アプリケーションの第1のバージョンの1つ以上のインストールファイルが、第2の電子装置上のアプリケーションを第2のバージョンから第1のバージョンに更新する更新情報を含む。
いくつかの実施形態において、この方法では、
アプリケーションの第1のバージョンが第2の電子装置にインストールされているかの判定が、アプリケーションの任意のバージョンが第2の電子装置にインストールされているかの判定を含んでおり、
アプリケーションの第1のバージョンが第2の電子装置にインストールされていない旨の判定が、アプリケーションのいずれのバージョンも第2の電子装置にインストールされていない旨の判定であり、
アプリケーションの第1のバージョンの1つ以上のインストールファイルが、アプリケーションの第1のバージョンの全体をインストールするための1つ以上のファイルを含む。
いくつかの実施形態において、アプリケーションの第1のバージョンが第2の電子装置にインストールされているかを判定するステップは、
ローカル接続を通じて、ソフトウェア更新アプリケーションを第2の電子装置に提供し、第2の電子装置にインストールすることと、
ローカル接続を通じて、第2の電子装置上のソフトウェア更新アプリケーションから、アプリケーションの第1のバージョンが第2の電子装置にインストールされているかの指標を受信することと、
を含む。
いくつかの実施形態において、この方法は、1つ以上のインストールファイルを送信するステップの前に、アプリケーションの第1のバージョンのインストールを可能にするために第2の電子装置のセキュリティ設定を更新する旨の指示を含むメッセージを第1の電子装置に表示するステップをさらに含む。
いくつかの実施形態において、この方法は、アプリケーションが、ソーシャルネットワーキングサービスにつながるアプリケーションであり、第1の電子装置と関連付けられた第1のユーザが、ソーシャルネットワーキングサービスのユーザであり、第1の電子装置において、
アプリケーションの第1のバージョンが第2の電子装置にインストールされた後、
第2の電子装置からローカル接続を通じて、第2の電子装置と関連付けられた第2のユーザのソーシャルネットワーキングサービスのアカウントを作成するリクエストを受信するステップと、
ローカル接続とは異なる通信チャネルを通じて、リクエストをリモートサーバに送信するステップと、
をさらに含む。
いくつかの実施形態において、この方法は、アカウントを作成するリクエストをリモートサーバに送信した後、ソーシャルネットワーキングサービス上の第2のユーザと関係するように第1のユーザに指示するメッセージを第1の電子装置に自動的に表示するステップをさらに含む。
いくつかの実施形態において、アプリケーションは、ソーシャルネットワーキングサービスにつながるアプリケーションであり、第1の電子装置と関連付けられた第1のユーザおよび第2の電子装置と関連付けられた第2のユーザは、ソーシャルネットワーキングサービスのユーザであり、この方法は、第1の電子装置において、
ソーシャルネットワーキングサービスからローカル接続とは異なる通信チャネルを通じて、第2のユーザ向けのコンテンツを受信するステップと、
第2の電子装置にローカル接続を通じて、ソーシャルネットワーキングサービスからのコンテンツを送信し、第2の電子装置に表示するステップと、
をさらに含む。
ソーシャルネットワーキングサービスからのコンテンツを送信するステップは、第2の電子装置がインターネット接続していない旨の判定に従って実行されるようになっていてもよい。
いくつかの実施形態において、アプリケーションの第1のバージョンの1つ以上のインストールファイルを送信するステップは、
ローカル接続を通じて第2の電子装置に、第1の複数のパケットを送信することと、
第1の複数のパケットを送信した後、第2の電子装置とのローカル接続の喪失を検出することと、
第2の電子装置とのローカル接続を再確立することと、
ローカル接続を再確立した後、ローカル接続を通じて第2の電子装置に、第2の複数のパケットを送信することと、
を含む。
いくつかの実施形態において、この方法では、
第1の電子装置が、第2の電子装置の無線通信範囲内の複数の電子装置のうちの1つであり、
第1の電子装置が、複数の電子装置のうちの他の電子装置上のアプリケーションの各バージョンがアプリケーションの第1のバージョンに先行する旨の判定に従って、アプリケーションの第1のバージョンの1つ以上のインストールファイルを送信する。
いくつかの実施形態において、この方法では、
アプリケーションが、第1のアプリケーションであり、
第1の電子装置が、第1のアプリケーションの優先度が第2の電子装置上の第2のアプリケーションの優先度を上回る旨の判定に従って、アプリケーションの第1のバージョンの1つ以上のインストールファイルを送信する。
いくつかの実施形態において、この方法は、アプリケーションの第1のバージョンが第2の電子装置に適合するかを判定するステップをさらに含み、
ローカル接続を通じて1つ以上のインストールファイルを第2の電子装置に送信するステップが、アプリケーションの第1のバージョンが第2の電子装置に適合する旨の判定にさらに応答して実行される。
いくつかの実施形態において、電子装置は、
1つ以上のプロセッサと、
1つ以上のプロセッサによって実行される1つ以上のプログラムを格納したメモリであり、1つ以上のプログラムが、
アプリケーションの第1のバージョンの1つ以上のインストールファイルを該メモリに格納し、
インターネット接続から独立したローカル接続を第2の電子装置と確立し、
ローカル接続を用いて、アプリケーションの第1のバージョンが第2の電子装置にインストールされているかを判定し、
アプリケーションの第1のバージョンが第2の電子装置にインストールされていない旨の判定に応答して、第2の電子装置にローカル接続を通じて、アプリケーションの第1のバージョンの1つ以上のインストールファイルを送信する、
命令を含む、メモリと、を備える。
いくつかの実施形態において、非一時的なコンピュータ可読記憶媒体は、第1の電子装置の1つ以上のプロセッサによって実行される1つ以上のプログラムを格納しており、1つ以上のプログラムが、
アプリケーションの第1のバージョンの1つ以上のインストールファイルをメモリに格納し、
インターネット接続から独立したローカル接続を第2の電子装置と確立し、
ローカル接続を用いて、アプリケーションの第1のバージョンが第2の電子装置にインストールされているかを判定し、
アプリケーションの第1のバージョンが第2の電子装置にインストールされていない旨の判定に応答して、第2の電子装置にローカル接続を通じて、アプリケーションの第1のバージョンの1つ以上のインストールファイルを送信する、
命令を含む。
いくつかの実施形態において、1つ以上の非一時的なコンピュータ可読記憶媒体は、ソフトウェアを実装しており、そのソフトウェアは、実行されることで、上記実施形態のいずれかによる方法を実施するように機能する。
いくつかの実施形態において、システムは、1つ以上のプロセッサと、プロセッサに結合された少なくとも1つのメモリであって、プロセッサで実行可能な命令を含むメモリと、を備え、プロセッサは、命令を実行することで、上記実施形態のいずれかによる方法を実施するように機能する。
いくつかの実施形態において、好ましくは非一時的なコンピュータ可読記憶媒体を含む、コンピュータプログラムプロダクトは、データ処理システム上で実行されることで、上記実施形態のいずれかによる方法を実施するように機能する。
記載の種々の実施形態についてより良く理解するため、以下の図面と併せて、以下の実施形態の説明を参照すべきであり、図面では、対応する部分は、図面全体を通して同様の参照符号で示している。
いくつかの実施形態に係る、ネットワークアーキテクチャの例を示したブロック図である。 いくつかの実施形態に係る、ネットワークアーキテクチャの例を示したブロック図である。 いくつかの実施形態に係る、ネットワークアーキテクチャの例を示したブロック図である。 いくつかの実施形態に係る、例示的なソーシャルネットワーキングシステムを示したブロック図である。 いくつかの実施形態に係る、例示的なクライアント装置を示したブロック図である。 いくつかの実施形態に係る、アプリケーションのインストールおよびユーザ関係リクエストを可能にするクライアント装置の例示的なグラフィカルユーザインタフェースを示した図である。 いくつかの実施形態に係る、ローカル接続を用いてアプリケーションのバージョンをインストールする方法を示したフローチャートである。 いくつかの実施形態に係る、ローカル接続を用いてアプリケーションのバージョンをインストールする方法を示したフローチャートである。
以下、いくつかの実施形態を参照し、その例を添付の図面に示している。以下の説明では、記載の種々の実施形態についての理解を与えるため、様々な具体的詳細について記載する。しかしながら、記載の種々の実施形態は、それら特定の詳細を省いても実施できることは、当業者には明らかであろう。一方、実施形態の態様を不必要に不明瞭にすることがないよう、周知の方法、手順、コンポーネント、回路、およびネットワークについては詳細に記載していない。
また、場合によっては、種々の要素を記述するために「第1」、「第2」などの用語が本明細書で使用されるが、これらの用語によって、それらの要素は限定されるべきではないということも、理解されるであろう。これらの用語は、単に、ある要素を他の要素と区別するために使用されるにすぎない。例えば、記載の種々の実施形態の範囲から逸脱することなく、第1のバージョンを第2のバージョンと呼ぶことができ、同様に、第2のバージョンを第1のバージョンと呼ぶことができる。第1のバージョンと第2のバージョンは、両方ともバージョンであるが、同じバージョンではない。
本明細書に記載の種々の実施形態の説明で使用される用語は、単に具体的な実施形態を説明する目的のものにすぎず、限定するものではない。記載の種々の実施形態の説明および添付の請求項で使用される場合の単数形「a」、「an」、および「the」は、特に文脈で明確に示していない限り、複数形も含むものである。また、本明細書で使用される場合の「および/または(and/or)」という表現は、関連して列挙されるアイテムのうちの1つ以上からなるあらゆる可能な組み合わせを指し、また、包含するものと理解される。さらに、本明細書で使用される場合の「含む(includes)」、「含んでいる(including)」、「備える(comprises)」、および/または「備えている(comprising)」という表現は、記載される特徴、整数値、ステップ、オペレーション、要素、および/またはコンポーネントの存在を規定するものと理解されるが、1つまたは複数の他の特徴、整数値、ステップ、オペレーション、要素、コンポーネント、および/またはそれらからなる群の存在もしくは追加を除外するものではない。
本明細書で使用される場合の「〜場合に(if)」という表現は、文脈に応じて、「〜ときに(when)」または「〜際に(upon)」または「〜と判断したことに応答して(in response to determining)」または「〜を検出したことに応答して(in response to detecting)」または「〜という判断に従って(in accordance with a determination that)」を意味するものと、適宜、解釈される。同様に、「〜と判断された場合に」または「[記載の条件もしくは事象]が検出された場合に」という表現は、文脈に応じて、「〜と判断した際に」または「〜と判断したことに応答して」または「[記載の条件もしくは事象]を検出した際に」または「[記載の条件もしくは事象]を検出したことに応答して」または「[記載の条件もしくは事象]が検出されたという判断に従って」を意味するものと、適宜、解釈される。
本明細書において、用語「例示的」は、「一例、事例、または実例として機能する」意味で使用しており、「その種の最高のものを代表する」意味では使用していない。
図1A〜図1Cは、いくつかの実施形態に係る、ネットワークアーキテクチャの例を示したブロック図である。
図1Aは、いくつかの実施形態に係る、ソーシャルネットワークのネットワークアーキテクチャ100Aを示している。ネットワークアーキテクチャ100Aは、1つ以上のネットワーク106(たとえば、インターネット、携帯電話ネットワーク、モバイルデータネットワーク、他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなど)により、電子ソーシャルネットワークシステム108に対して通信可能に接続された多くのクライアント装置(「クライアントシステム」、「クライアントコンピュータ」、または「クライアント」とも称する)104−1、104−2、・・・、104−nを含む。いくつかの実施形態において、1つ以上のネットワーク106は、公衆通信ネットワーク(たとえば、インターネットおよび携帯電話データネットワークの両方または一方)、プライベート通信ネットワーク(たとえば、プライベートLANまたは専用線)、またはこのような通信ネットワークの組み合わせを含む。
ネットワークアーキテクチャ100Aは、1つ以上のクライアント装置(たとえば、104−1と104−3、104−4、104−5、・・・、104−p)を通信可能に一体接続するローカル接続112を具備する。いくつかの実施形態においては、無線通信プロトコル(たとえば、IEEE802.15.4、Wi−Fi、ZigBee、6LoWPAN、Thread、Z−Wave、Bluetooth、ISA100.11a、WirelessHART、MiWi、NFCなど)を用いることにより、複数のクライアント装置104がローカル接続112を通じて相互接続されている。たとえば、クライアント装置104−1と104−3、104−4、104−5、・・・、104−pは、(たとえば、BluetoothまたはZigBeeを用いて実現される)パーソナルエリアネットワーク(PAN)、または(たとえば、WiFi Directを用いて実現される)ピアツーピア(P2P)ネットワークを構成する。いくつかの実施形態において、ローカル接続112を通じて接続されたクライアント装置104はすべて、互いの無線通信範囲内に存在する。いくつかの実施形態において、クライアント装置104−3、104−4、104−5、・・・、104−pはすべて、クライアント装置104−1の無線通信範囲内に存在するが、必ずしも互いの無線通信範囲内に存在するわけではない。
クライアント装置104−3、104−4、104−5、・・・、104−pは、(たとえば、ネットワークの輻輳、不十分な携帯電波受信状態、関連ユーザのネットワークサービス未加入などにより)1つ以上のネットワーク106を通じたソーシャルネットワークシステム108への直接接続が不可能な場合がある。代わりに、これらのクライアント装置は、ローカル接続112を用いることにより、1つ以上のネットワーク106を通じてソーシャルネットワークシステム108に接続されたクライアント装置104−1を通じて、ソーシャルネットワークシステム108に間接的にアクセスし得る。したがって、クライアント装置104−1は、クライアント装置104−3、104−4、104−5、・・・、104−p(場合により、「受信」装置と称する)が1つ以上のネットワーク106上でデータ(たとえば、ソーシャルネットワークシステム108が提供するアプリケーションのインストールファイル)を送信および読み出し可能となる仲介装置(場合により、「ホスト」または「送信」装置と称する)として動作する。これにより、いくつかの実施態様において、クライアント装置104−1は、ローカル接続112を用いて他のクライアント装置により要求されたデータ(たとえば、インストールファイル)を読み出して共有する。(あるいは、クライアント装置104−1は、受信装置からリクエストを受ける前に予めダウンロードしておいたファイルを共有する。)
いくつかの実施形態において、クライアント装置104は、スマートウォッチ、携帯情報端末(PDA)、携帯型メディアプレーヤ、スマートフォン、タブレットコンピュータ、2Dゲーム装置、3D(たとえば、仮想現実)ゲーム装置、ラップトップコンピュータ、デスクトップコンピュータ、1つ以上のプロセッサが内蔵もしくは結合されたテレビ、車載情報システム(たとえば、ナビゲーション、娯楽、および/もしくは他の情報を提供する車載コンピュータシステム)、ならびに/またはソーシャルネットワークシステム108との通信に使用できる他の適当なコンピュータ装置などのコンピュータ装置である。いくつかの実施形態において、ソーシャルネットワークシステム108は、コンピュータサーバなどの単一のコンピュータ装置である一方、他の実施形態において、ソーシャルネットワークシステム108は、協働してサーバシステムの動作を実行する複数のコンピュータ装置(たとえば、クラウドコンピューティング)により実現される。
いくつかの実施形態において、クライアント装置104は、該クライアント装置104を採用してソーシャルネットワークシステム108にアクセスするとともに、該ソーシャルネットワークシステム108が提供する対応するソーシャルネットワーキングサービスに参加するユーザ(図示せず)と関連付けられている。たとえば、クライアント装置104のうちの1つ以上は、ソーシャルネットワーキングサービスへのアクセスに使用可能なウェブブラウザアプリケーションを実行する。別の例として、クライアント装置104のうちの1つ以上は、ソーシャルネットワーキングサービスに固有のソフトウェアアプリケーション(たとえば、iPhone、Android、またはWindows(登録商標)スマートフォンまたはタブレット上で動作するFacebookソーシャルネットワーキングアプリケーションなど、スマートフォンまたはタブレット上で動作するソーシャルネットワーキング「アプリ」)を実行する。
クライアント装置104と相互作用するユーザは、テキストコメント(たとえば、更新情報、告知、回答)、デジタル写真、ビデオ、オーディオファイル、リンク、および/または他の電子コンテンツなどの情報を投稿することによって、ソーシャルネットワークシステム108が提供するソーシャルネットワーキングサービスに参加することができる。また、ソーシャルネットワーキングサービスのユーザは、ソーシャルネットワーキングサービスの他のユーザが投稿した情報に注釈を付けることができる(たとえば、別のユーザの投稿に対する推薦もしくは「いいね!」または別のユーザによる投稿へのコメント)。いくつかの実施形態においては、ユーザに代わって、ソーシャルネットワークシステム108の外部のシステムおよびサービスまたはシステムもしくはサービスが、情報を投稿可能である。たとえば、ユーザは、映画のレビューを映画レビューウェブサイトに投稿するが、適正な許可を有するウェブサイトがユーザに代わってレビューをソーシャルネットワークシステム108にクロス投稿し得る。別の例においては、モバイルクライアント装置上で実行される適正な許可を有するソフトウェアアプリケーションが、全地球測位システム(GPS)または他のジオロケーション機能(たとえば、Wi−Fiまたはハイブリッド測位システム)を使用してユーザの位置(たとえば、「自宅」、「職場」、もしくは「カリフォルニア州サンフランシスコ」)を決定し、ユーザの位置を用いてソーシャルネットワークシステム108を更新すること、およびユーザの位置に由来するかまたは基づくかまたはその両方の情報を用いてソーシャルネットワークシステム108を更新することの少なくとも一方を行うようにしてもよい。また、クライアント装置104と相互作用するユーザは、ソーシャルネットワークシステム108が提供するソーシャルネットワーキングサービスを用いて、ユーザ群を規定することができる。また、クライアント装置104と相互作用するユーザは、ソーシャルネットワークシステム108が提供するソーシャルネットワーキングサービスを用いて、互いに通信および協働することができる。
いくつかの実施形態において、ネットワークアーキテクチャ100Aは、サードパーティサーバ110−1、110−2、・・・、110−mも具備する。いくつかの実施形態においては、所与のサードパーティサーバ110は、直接またはソーシャルネットワークシステム108と連動してクライアント装置104にウェブページを提供するサードパーティウェブサイトをホスティングするように使用される。いくつかの実施形態において、ソーシャルネットワークシステム108は、インラインフレーム(「iframe」)を用いて、ユーザのソーシャルネットワークセッション内に独立したウェブサイトをネストさせる。いくつかの実施形態においては、所与のサードパーティサーバは、直接またはソーシャルネットワークシステム108と連動してクライアント装置104が使用するサードパーティアプリケーションをホスティングするように使用される。いくつかの実施形態において、ソーシャルネットワークシステム108は、iframeを使用して、サードパーティ開発者によってサードパーティサーバ110によって別個にホストされるが、ユーザのソーシャルネットワーキングセッション内で動作するとともにソーシャルネットワークシステム108のユーザプロファイルを通じてアクセスされるアプリケーションを作成できるようにする。例示的なサードパーティアプリケーションとしては、書籍、ビジネス、コミュニケーション、コンテスト、教育、娯楽、ファッション、ファイナンス、飲食、ゲーム、健康とフィットネス、ライフスタイル、ローカル情報、映画、テレビ、音楽とオーディオ、ニュース、写真、ビデオ、生産性、参考資料、セキュリティ、ショッピング、スポーツ、旅行、ユーティリティなどのアプリケーションが挙げられる。いくつかの実施形態においては、所与のサードパーティサーバ110は、直接またはソーシャルネットワークシステム108と連動してクライアント装置104が使用する企業システムをホスティングするように使用される。いくつかの実施形態においては、所与のサードパーティサーバ110は、サードパーティコンテンツ(たとえば、ニュース記事フィード、レビューフィード、メッセージフィードなど)を提供するように使用される。
いくつかの実施形態において、所与のサードパーティサーバ110は、単一のコンピュータ装置である一方、他の実施形態において、所与のサードパーティサーバ110は、協働してサーバシステムの動作を実行する複数のコンピュータ装置(たとえば、クラウドコンピューティング)により実現される。
図1Bは、いくつかの実施形態に係る、ソーシャルネットワークの別のネットワークアーキテクチャ100Bを示している。ネットワークアーキテクチャ100A(図1A)とは対照的に、クライアント装置104−2は、1つ以上のネットワーク106に直接接続されている。クライアント装置104−2は、1つ以上のネットワーク106を通じて直接的におよび/またはローカル接続112を用いることによりクライアント装置104−1を通じて間接的に、ソーシャルネットワークシステム108(または、ネットワーク106に接続された任意の装置、システム、またはサーバ)へのアクセス、データ送信、および/またはソーシャルネットワークシステム108が提供するコンテンツ(たとえば、アプリケーションのインストールファイル)の読み出しを行うようにしてもよい。ネットワークアーキテクチャ100Bは、たとえば1つ以上のネットワーク106とのクライアント装置104−2の直接接続が、低速(たとえば、低帯域幅を有する)、輻輳、または他の形で実現困難もしくは利用不可能となっている状況において都合が良い。
図1Cは、いくつかの実施形態に係る、ローカル接続112を通じて装置が相互接続されたネットワークアーキテクチャ100Cを示している。図示のように、クライアント装置(たとえば、104−1と104−3〜104−p)は、ローカル接続112を通じて、互いに通信可能に接続されている(たとえば、Bluetooth無線インタフェースを用いて接続され、パーソナルエリアネットワークを構成するか、または、無線P2Pプロトコルを用いて接続されている)。ネットワークアーキテクチャ100Cにおいて、クライアント装置104−1は、(たとえば、1つ以上のネットワーク106との接続を喪失してしまっているため)ソーシャルネットワークシステム108に接続されていない。
クライアント装置104は、多様なネットワークトポロジに基づいて相互接続されていてもよい。たとえば、いくつかの実施形態において、各クライアント装置(たとえば、104−1と104−3〜104−p)は、ローカル接続112を通じて、その他のクライアント装置にそれぞれ接続されている。他の実施形態において、クライアント装置は、ネットワークアーキテクチャ中のその他のクライアント装置のうちの一部にのみ接続されている(たとえば、クライアント装置104−1がクライアント装置104−3にのみ接続され、クライアント装置104−3がクライアント装置104−1および104−4にのみ接続されている)。いくつかの実施形態においては、ローカル接続112を通じて他のすべてのクライアント装置を接続するホスト装置として1つのクライアント装置が動作し(たとえば、クライアント装置104−3〜104−pはそれぞれ、クライアント装置104−1に接続されているものの、他のクライアント装置には一切接続されていない)、コンテンツ(たとえば、インストールファイル)が読み出されるとともに、コンテンツ(たとえば、ソーシャルメディア投稿)を送信可能である。いくつかの実施形態においては、1つ以上のクライアント装置がコンテンツを読み出すホスト装置として、複数のクライアント装置が一体的に機能する(たとえば、クライアント装置140−1および140−3は、インストールファイルの異なる部分をクライアント装置104−4に送信する)。
クライアント装置104は、複数の通信プロトコルおよびインタフェースを用いることにより、ローカル接続112を通じて相互接続されていてもよい。たとえば、一実施態様において、クライアント装置104−1は、Bluetooth無線インタフェースを用いてクライアント装置104−3とペアリングされていてもよく、同時に、クライアント装置104−1は、NFC無線インタフェースを用いてクライアント装置104−4に接続されている。
図2は、いくつかの実施形態に係る、例示的なソーシャルネットワーキングシステム108を示したブロック図である。ソーシャルネットワークシステム108は通常、1つ以上の処理ユニット(プロセッサまたはコア)202、1つ以上のネットワークインタフェースまたは他の通信インタフェース204、メモリ206、およびこれらのコンポーネントを相互接続する1つ以上の通信バス208を具備する。通信バス208は、オプションで、システムコンポーネント間の通信を相互接続して制御する回路(場合により、チップセットと称する)を具備する。ソーシャルネットワークシステム108は、オプションで、ユーザインタフェース(図示せず)を具備する。ユーザインタフェースが設けられている場合は、ユーザインタフェースはディスプレイ装置を具備していてもよく、オプションで、キーボード、マウス、トラックパッド、および/または入力ボタンなどの入力装置を具備する。この代替または追加として、ディスプレイ装置は、タッチセンス面を具備しており、この場合、ディスプレイ装置はタッチセンスディスプレイである。
メモリ206は、DRAM、SRAM、DDR RAM、または他のランダムアクセスソリッドステートメモリ装置などの高速ランダムアクセスメモリを含み、1つ以上の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリ装置、ならびに/または不揮発性ソリッドステート記憶装置などの不揮発性メモリを含んでいてもよい。メモリ206は、オプションで、プロセッサ202から遠隔に位置付けられた1つ以上の記憶装置を含んでいてもよい。メモリ206あるいはメモリ206内の不揮発性メモリ装置は、非一時的なコンピュータ可読記憶媒体を含む。いくつかの実施形態において、メモリ206またはメモリ206のコンピュータ可読記憶媒体は、以下のプログラム、モジュール、およびデータ構造、またはその一部分もしくはスーパーセット(superset)を格納している:
・種々の基本システムサービスを取り扱うとともにハードウェアに依存したタスクを実行するプロシージャを含むオペレーティングシステム210、
・1つ以上の通信ネットワークインタフェース204(有線または無線)および1つ以上の通信ネットワーク(たとえば、1つ以上のネットワーク106)を介してソーシャルネットワークシステム108を他のコンピュータに接続するのに用いられるネットワーク通信モジュール212、
・ソーシャルネットワークと関連付けられたデータを格納するソーシャルネットワークデータベース214であって、
○ ユーザ情報218などのエンティティ情報216、
○ つながり情報220、ならびに
○ ユーザコンテンツ224およびニュース記事226の両方または一方などのコンテンツ222などのデータを格納するソーシャルネットワークデータベース214、
・(たとえば、クライアント装置104上のブラウザモジュール338またはソーシャルネットワーククライアントモジュール340(図3)と連動して)ソーシャルネットワーキングサービスおよび関連機能を提供するソーシャルネットワークサーバモジュール228であって、
○ クライアント104のユーザをソーシャルネットワークシステム108にログインさせるログインモジュール230と、
○ クライアント104に送られて表示されるコンテンツを提供するコンテンツフィードマネージャ232であり、
・画像、ビデオ、オーディオファイル、コメント、ステータスメッセージ、リンク、アプリケーション、ならびに/または他のエンティティ情報216、つながり情報220、もしくはコンテンツ222などのオブジェクトをソーシャルネットワークデータベース214に追加するコンテンツ生成モジュール234と、
・クライアント104に送られて表示される情報/コンテンツを選定するコンテンツ選択モジュール236と、
を含む、コンテンツフィードマネージャ232とを含む、ソーシャルネットワークサーバモジュール228、
・ソーシャルネットワークシステムのユーザがコンテンツおよびソーシャルネットワーク中の他のユーザを検索できるようにする検索モジュール238、
・(たとえば、クライアント装置104にダウンロードしてインストールする(図1Aおよび図1B))アプリケーションのインストールファイルを格納するインストールファイルデータベース240であって、
○ 各アプリケーションの複数のバージョンのインストールファイルを含み得るアプリケーション(たとえば、ソーシャルネットワーククライアントモジュール340、オプションのクライアントアプリケーションモジュール344など(図3))をインストールするアプリケーションインストールファイル242と、
○ 装置(たとえば、ソフトウェア更新アプリケーションモジュール348(図3))への各アプリケーションのインストールおよび更新の両方または一方を可能にするアプリケーションをインストールするソフトウェア更新アプリケーションインストールファイル244と、
を含む、インストールファイルデータベース240。
ソーシャルネットワークデータベース214は、グラフ、次元、フラット、階層、ネットワーク、オブジェクト指向、リレーショナル、および/またはXMLデータベースなどの1つ以上の種類のデータベースに、ソーシャルネットワークと関連付けられたデータを格納する。
いくつかの実施形態において、ソーシャルネットワークデータベース214は、グラフデータベースを含み、エンティティ情報216がグラフデータベース中のノードとして表され、つながり情報220がグラフデータベース中のエッジとして表される。グラフデータベースは、複数のノードのほか、対応するノード間の接続を規定する複数のエッジを含む。いくつかの実施形態において、ノード自体もしくはエッジ自体またはその両方は、識別子、属性、およびそれぞれの対応するエンティティの情報を含むデータオブジェクトであり、それらの一部は、クライアント104において、対応するプロフィールページまたはソーシャルネットワーキングサービスの他のページにレンダリングされる。また、いくつかの実施形態において、ノードは、クライアント104における各ノードに対応するページのレンダリングと併せて、コンテンツのレンダリングに用いられる他のオブジェクト、データ構造、またはリソースに対するポインタまたは参照を含む。
エンティティ情報216には、ユーザプロフィール、ログイン情報、プライバシなどのプリファレンス、経歴データなどのユーザ情報218を含む。いくつかの実施形態において、所与のユーザの場合、ユーザ情報218は、ユーザ名、プロフィール写真、連絡先情報、生年月日、性別、配偶者の有無、家族状態、仕事、学歴、プリファレンス、関心、および/または他の人口統計学的情報を含む。
いくつかの実施形態において、エンティティ情報216は、物理的な場所(たとえば、レストラン、劇場、ランドマーク、都市、州、または国)、不動産または知的財産(たとえば、彫像、絵画、映画、ゲーム、歌、アイデア/コンセプト、写真、または執筆作品)、企業、集団、および/または企業群に関する情報を含む。いくつかの実施形態において、エンティティ情報216は、オーディオファイル、ビデオファイル、デジタル写真、テキストファイル、構造化文書(たとえば、ウェブページ)、またはアプリケーションなどの、リソースに関する情報を含む。いくつかの実施形態において、リソースは、ソーシャルネットワークシステム108中(たとえば、コンテンツ222中)またはサードパーティサーバ110などの外部サーバ上に位置付けられている。
いくつかの実施形態において、つながり情報220は、ソーシャルネットワークデータベース214中のエンティティ間の関係に関する情報を含む。いくつかの実施形態において、つながり情報220は、グラフデータベース中のノード対を接続するエッジに関する情報を含む。いくつかの実施形態において、ノード対を結合する接続するエッジは、該ノード対間の関係を表す。
いくつかの実施形態において、エッジは、ノード対間の関係に対応する1つ以上のデータオブジェクトまたは属性を包含または表現する。たとえば、第2のユーザが「友達」であることを第1のユーザが示している場合、ソーシャルネットワークシステム108は、「友達リクエスト」を第2のユーザに送信する。第2のユーザが「友達リクエスト」を確認した場合、ソーシャルネットワークシステム108は、第1のユーザと第2のユーザとが友達であることを示すつながり情報220として、第1のユーザのユーザノードと第2のユーザのユーザノードとを接続するエッジを作成して、グラフデータベースに格納する。いくつかの実施形態において、つながり情報220は、友情関係、家族関係、ビジネスもしくは雇用関係、ファン関係、フォロワー関係、ビジター関係、サブスクライバ関係、上下関係、相互関係、非相互関係、別の適当な種類の関係、または2つ以上のこのような関係を表す。
いくつかの実施形態において、ユーザノードと別のエンティティノードとの間のエッジは、他方のエンティティノードに向かってユーザノードのユーザが実行する特定の動作または行為に関するつながり情報を表す。たとえば、ユーザは、他方のノードのエンティティに「いいね!」したり、または「参加」していても、「再生」していても、「聴いて」いても、「料理」していても、「勤務」していても、または「視聴」したりしていてもよい。他方のノードのエンティティに対応するソーシャルネットワーキングサービスのページは、たとえば選択可能な「いいね!」、「チェックイン」、または「お気に入りに追加」アイコンを含んでいてもよい。ユーザがこれらのアイコンのうちの1つをクリックした後、ソーシャルネットワークシステム108は、対応するユーザ動作に応答して、「いいね!」エッジ、「チェックイン」エッジ、または「お気に入り」エッジを作成するようにしてもよい。別の例として、ユーザは、特定のアプリケーション(たとえば、オンライン音楽アプリケーション)を用いて、特定の歌を聴く場合がある。この場合、ソーシャルネットワークシステム108は、ユーザに対応するユーザノードと歌とアプリケーションとに対応するエンティティノードとの間にそれぞれ、「聴く」エッジおよび「使用」エッジを作成して、ユーザが歌を聴くとともにアプリケーションを使用したことを示すようにしてもよい。また、ソーシャルネットワークシステム108は、歌およびアプリケーションに対応するエンティティノード間に「再生」エッジを作成して、特定の歌が特定のアプリケーションにより再生されたことを示すようにしてもよい。
いくつかの実施形態において、コンテンツ222は、テキスト(たとえば、ASCII、SGML、HTML)、画像(たとえば、jpeg、tif、およびgif)、グラフィックス(たとえば、ベクトルベースまたはビットマップ)、オーディオ、ビデオ(例えば、mpeg)、他のマルチメディア、および/またはこれらの組み合わせを含む。いくつかの実施形態において、コンテンツ222は、実行可能なコード(たとえば、ブラウザウィンドウまたはフレーム内で実行可能なゲーム)、ポッドキャスト、リンクなどを含む。
いくつかの実施形態において、ソーシャルネットワークサーバモジュール228は、ウェブまたはハイパーテキスト転送プロトコル(HTTP)サーバ、ファイル転送プロトコル(FTP)サーバのほか、共通ゲートウェイインタフェース(CGI)スクリプト、PHPハイパーテキストプリプロセッサ(PHP)、アクティブサーバページ(ASP)、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)、Java(登録商標)非同期JavaScriptとXML(AJAX:JavaScript、Asynchronous JavaScript and XML)、XHP、Javelin、ワイヤレスユニバーサルリソースファイル(WURFL)などを用いて実施されるウェブページおよびアプリケーションを含む。
図3は、いくつかの実施形態に係る、例示的なクライアント装置104を示したブロック図である。クライアント装置104は通常、1つ以上の処理ユニット(プロセッサまたはコア)302、1つ以上のネットワークインタフェースまたは他の通信インタフェース304、メモリ306、およびこれらのコンポーネントを相互接続する1つ以上の通信バス308を具備する。通信バス308は、オプションで、システムコンポーネント間の通信を相互接続して制御する回路(場合により、チップセットと称する)を具備する。通信インタフェース304としては、有線インタフェース(たとえば、イーサネット(登録商標)、ユニバーサルシリアルバス(USB)、ファイヤワイヤなど)および無線インタフェース(たとえば、IEEE802.15.4、Wi−Fi、ZigBee、6LoWPAN、Thread、Z−Wave、Bluetooth、ISA100.11a、WirelessHART、MiWi、NFCなど)の両方または一方が挙げられる。クライアント装置104は、ユーザインタフェース310を具備する。ユーザインタフェース310は通常、ディスプレイ装置312を具備する。いくつかの実施形態において、クライアント装置104は、キーボード、マウス、および/または他の入力ボタン316などの入力装置を具備する。この代替または追加として、いくつかの実施形態においては、ディスプレイ装置312がタッチセンス面314を具備しており、この場合、ディスプレイ装置312はタッチセンスディスプレイである。タッチセンスディスプレイ312を有するクライアント装置において、物理的なキーボードはオプションである(たとえば、キーボード入力が必要な場合は、ソフトウェアキーボードが表示されるようになっていてもよい)。また、ユーザインタフェース310は、スピーカまたはスピーカ、イヤホン、もしくはヘッドホンに接続されたオーディオ出力接続などのオーディオ出力装置318を具備する。さらに、いくつかのクライアント装置104は、マイクまたは音声認識を使用して、キーボードを補完するかまたはこれに代わる。オプションで、クライアント装置104は、オーディオ(たとえば、ユーザのスピーチ)を取り込むオーディオ入力装置320(たとえば、マイク)を具備する。オプションで、クライアント装置104は、GPS(全地球測位衛星)または他のジオロケーション受信機など、クライアント装置104の位置を決定する位置検出装置322を具備する。また、オプションで、クライアント装置104は、カメラまたはウェブカメラなどの画像/ビデオキャプチャ装置324を具備する。
メモリ306は、DRAM、SRAM、DDR RAM、または他のランダムアクセスソリッドステートメモリ装置などの高速ランダムアクセスメモリを含み、1つ以上の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリ装置、または不揮発性ソリッドステート記憶装置などの不揮発性メモリを含んでいてもよい。メモリ306は、オプションで、プロセッサ302から遠隔に位置付けられた1つ以上の記憶装置を含んでいてもよい。メモリ306あるいはメモリ306内の不揮発性メモリ装置は、非一時的なコンピュータ可読記憶媒体を含む。いくつかの実施形態において、メモリ306またはメモリ306のコンピュータ可読記憶媒体は、以下のプログラム、モジュール、およびデータ構造、またはその一部分もしくはスーパーセットを格納している:
・種々の基本システムサービスを取り扱うとともにハードウェアに依存したタスクを実行するプロシージャを含むオペレーティングシステム326、
・1つ以上の通信ネットワークインタフェース304(有線または無線)およびインターネット、携帯電話ネットワーク、モバイルデータネットワーク、他のワイドエリアネットワーク、ローカルエリアネットワーク、メトロポリタンエリアネットワークなどの1つ以上の通信ネットワークを介してクライアント装置104を他のコンピュータに接続するのに用いられるネットワーク通信モジュール328、
・画像/ビデオキャプチャ装置324により取り込まれ、(たとえば、クライアントアプリケーションモジュール336によって)ソーシャルネットワークシステム108に送信またはストリーミングされ得る各画像またはビデオを処理する画像/ビデオキャプチャモジュール330(たとえば、カメラモジュール)、
・オーディオ入力装置320により取り込まれ、(たとえば、クライアントアプリケーションモジュール336によって)ソーシャルネットワークシステム108に送信またはストリーミングされ得る各オーディオを処理するオーディオ入力モジュール332(たとえば、マイクモジュール)、
・(たとえば、位置検出装置322を用いて)クライアント装置104の位置を決定するとともに、種々の用途(たとえば、ソーシャルネットワーククライアントモジュール340)で使用するためにこの位置情報を提供する位置検出モジュール334(たとえば、GPS、Wi−Fi、またはハイブリッド測位モジュール)、
・下記のモジュール(または、命令セット)、またはこれらの一部分もしくはスーパーセットを含む、1つ以上のクライアントアプリケーションモジュール336:
○ ウェブサイト(たとえば、ソーシャルネットワークシステム108が提供するソーシャルネットワーキングウェブサイト)に対するアクセス、視聴、および相互作用のためのウェブブラウザモジュール338(たとえば、マイクロソフト(Microsoft)のInternet Explorer、モジラ(Mozilla)のFirefox、アップル(Apple)のSafari、グーグル(Google)のChrome)、
○ ソーシャルネットワーキングサービス(たとえば、ソーシャルネットワークシステム108が提供するソーシャルネットワーキングサービス)に対するインタフェースおよび関連機能を提供するソーシャルネットワークモジュール340であり、その1つ以上のバージョンに対応するインストールファイル342(たとえば、アプリケーションインストールファイル242(図2))を含む、ソーシャルネットワークモジュール340、
○ 文書処理、カレンダ、地図、天気、株、時間管理、仮想デジタルアシスタント、プレゼンテーション、ナンバークランチング(スプレッドシート)、描画、インスタントメッセージ、電子メール、テレフォニー、テレビ会議、写真管理、ビデオ管理、デジタル音楽プレーヤ、デジタルビデオプレーヤ、2Dゲーム、3D(たとえば、仮想現実)ゲーム、電子ブックリーダ、および/またはエクササイズ支援のためのアプリケーションなどの、オプションの他のクライアントアプリケーションモジュール344であり、それぞれの1つ以上のバージョンに対応するインストールファイル346(たとえば、アプリケーションインストールファイル242(図2))を含む、クライアントアプリケーションモジュール344、
○ 各電子装置のアプリケーションの適合バージョンを決定するための適合チェックの実行など、アプリケーション(たとえば、ソーシャルネットワークモジュール340)の1つ以上のバージョンのインストールおよび更新の両方または一方を可能にするソフトウェア更新アプリケーションモジュール348であり、そのインストールのためのインストールファイル350(たとえば、ソフトウェア更新アプリケーションインストールファイル244(図2))を含む、ソフトウェア更新アプリケーションモジュール348。
上記のモジュールおよびアプリケーションの各々は、上記の1つ以上の機能および/または本願に記載の方法(例えば、本明細書に記載のコンピュータ実現による方法および他の情報処理方法)を実施するための実行可能命令セットに対応している。これらのモジュール(すなわち、命令セット)は、別々のソフトウェアプログラム、プロシージャ、またはモジュールとして実現される必要はなく、従って、これらのモジュールの種々の一部分が、適宜、種々の実施形態において組み合わせまたは他の方法で再構成される。一部の実施形態では、メモリ206および/または306は、上記のモジュールおよびデータ構造の一部分を格納する。さらに、メモリ206および/または306は、適宜、上述していない追加のモジュールおよびデータ構造を格納する。
以下では、クライアント装置(例えば、図3のクライアント装置104)上で実現され得るグラフィカルユーザインタフェース(「GUI」)および関連したプロセスの実施形態に注目する。
図4Aおよび図4Bは、いくつかの実施形態に係る、アプリケーションのインストールおよびユーザ関係リクエストを可能にするクライアント装置104上の例示的なGUIを示している。GUIは、ウェブブラウザ(たとえば、ウェブブラウザモジュール338(図3))、ソーシャルネットワーキングサービス用アプリケーション(たとえば、ソーシャルネットワークモジュール340)、サードパーティアプリケーション(たとえば、クライアントアプリケーションモジュール344)、および/またはソフトウェア更新アプリケーション(たとえば、ソフトウェア更新アプリケーションモジュール348)により提供されるようになっていてもよい。図4Aおよび図4BがGUIの例を示す一方、他の実施形態においては、GUIが図4Aおよび図4Bの実施形態とは異なる構成でユーザインタフェース要素を表示する。
図4Aは、電子装置(たとえば、クライアント装置104−1(図1A))に表示されたメッセージ400−1であって、アプリケーションのバージョンのインストールを可能にするために異なる電子装置(たとえば、クライアント装置104−3(図1A))のセキュリティ設定を更新する指示を含む、メッセージ400−1を示している。いくつかの実施形態において、これらの指示は、外部ソースからのアプリケーションのインストールを可能にするためにセキュリティ設定を更新する指示である(たとえば、ソーシャルネットワークモジュール340およびソフトウェア更新アプリケーションモジュール348(図3)の両方または一方など、ローカル接続112を通じて他の装置から読み出されたインストールファイル)。
図4Bは、電子装置(たとえば、クライアント装置104−1(図1A))に表示されたメッセージ400−2であって、アカウントを作成するリクエストを送信した後、ソーシャルネットワーキングサービス上の別の電子装置の異なるユーザ(たとえば、クライアント装置104−3(図1A)と関連付けられたユーザ)と関係する(友達になるかまたはコンタクトする)ように、電子装置と関連付けられたユーザを促すメッセージ400−2を示している。図示のように、図4BのGUIは、クライアント装置104−1のユーザがリクエストの送信または送信拒否を行えるようにする、オプションのユーザインタフェース要素を具備する。
図4Aおよび図4Bに示すメッセージの表示については、方法500に関してより詳しく説明する。
図5Aおよび図5Bは、いくつかの実施形態に係る、ローカル接続(たとえば、ローカル接続112(図1A〜図1C))を用いてアプリケーションのバージョンをインストールする方法500を示したフローチャートである。方法500は、ソーシャルネットワークシステム108(または、他のサーバシステム)、第1の電子装置502−1(たとえば、クライアント装置104−1(図1A〜図1Cおよび図3))、および第2の電子装置502−2(たとえば、クライアント装置104−3(図1A〜図1Cおよび図3))によって実行される。図5Aおよび図5Bにおいて実行される動作は、コンピュータメモリ(たとえば、クライアント装置104のメモリ306(図3))または他のコンピュータ可読記憶媒体に格納された命令に対応する。
いくつかの実施形態においては、ソーシャルネットワークシステム108(たとえば、図1Aおよび図2)がアプリケーションの第1のバージョンのインストールファイルを第1の電子装置502−1に送信し(504)、第1の電子装置502−1がソーシャルネットワークシステム108からインストールファイル(たとえば、ソーシャルネットワーククライアントモジュール340のインストールファイル342(図3)に対応するアプリケーションインストールファイル242(図2))を受信する。いくつかの実施形態において、アプリケーションの第1のバージョンは、アプリケーションの直近かつ最新のバージョン(たとえば、ソーシャルネットワーククライアントモジュール340の直近のバージョン)である。オプションで、いくつかの実施形態においては、ソーシャルネットワークシステム108がソフトウェア更新アプリケーションのインストールファイル(たとえば、ソフトウェア更新アプリケーションモジュール348のインストールファイル350(図3)に対応するソフトウェア更新アプリケーションインストールファイル244(図2))を第1の電子装置502−1(たとえば、クライアント装置104−1(図1A〜図1C))に送信し、第1の電子装置502−1がソーシャルネットワークシステム108からインストールファイルを受信する。インストールファイルは、たとえば1つ以上のネットワーク106(図1Aおよび図1B)上で送信される。
第1の電子装置502−1は、ソーシャルネットワークシステム108から受信したアプリケーションの第1のバージョンのインストールファイルを(たとえば、メモリ306(図3))に格納する(506)とともに、オプションで、アプリケーションの第1のバージョンをインストールする(508)。また、いくつかの実施形態において、第1の電子装置502−1は、ソフトウェア更新アプリケーションのインストールファイルを(たとえば、メモリ306(図3))に格納するとともに、オプションで、ソフトウェア更新アプリケーションをインストールする。
第1の電子装置502−1(たとえば、クライアント装置104−1(図1A〜図1C))は、第2の電子装置502−2とローカル接続(たとえば、ローカル接続112(図1Aおよび図1B))を確立し(510)、これにより第2の電子装置502−2が第1の電子装置とローカル接続を確立する。ローカル接続は、インターネット接続から独立している(たとえば、1つ以上のネットワーク106に対するクライアント装置104−1の如何なる接続からも独立している)。いくつかの実施形態において、ローカル接続を確立することは、無線通信プロトコル(たとえば、Bluetooth)を用いて、第1の電子装置502−1を第2の電子装置502−2とペアリングすることを含む。いくつかの実施形態において、ローカル接続を確立することは、パーソナルエリアネットワーク上で第2の電子装置502−2につながることを含む。いくつかの実施形態において、ローカル接続を確立することは、ピアツーピアネットワーク上で第2の電子装置502−2につながることを含む。
いくつかの実施形態において、ローカル接続を確立することは、インターネット接続の輻輳閾値が満たされている旨の判定に応答して実行される。(また、インストールファイルの送信(518)などの後続動作は、この決定に応答して少なくとも部分的に実行されるようになっていてもよい。)輻輳閾値は、利用可能な所与の最小ネットワーク帯域幅(たとえば、ビット毎秒)、データレート、ネットワーク待ち時間、または電子装置がインターネットにアクセスするネットワーク接続の他の性能測定基準(たとえば、ネットワーク106(図1A)上で測定されるネットワーク帯域幅)を含んでいてもよい。一例として、所与の最小ネットワーク帯域幅が100Mbit/秒であり、第2の電子装置502−2がネットワーク106(図1)上で90Mbit/秒のネットワーク帯域幅を測定した場合は、輻輳閾値が満たされ、ごく近接した別の電子装置とローカル接続(たとえば、Bluetooth)が確立される。いくつかの実施形態において、ローカル接続を確立することは、ローカル接続の測定された性能測定基準(たとえば、Bluetoothデータレート)が、電子装置502−1および502−2の両方または一方がインターネットにアクセスするネットワーク接続の測定された性能測定基準(たとえば、Wi−Fi上で実現されるネットワーク帯域幅)を超える旨の判定に応答して実行される。いくつかの実施形態において、ローカル接続を確立することは、第2の電子装置502−2がインターネット接続を確立できない(たとえば、Wi−Fi上で、携帯電話データおよびネットワーク106への接続の両方または一方を利用できない)旨の判定に応答して実行される。
ローカル接続を用いて、第1の電子装置502−1(または、第2の電子装置502−2)は、アプリケーションの第1のバージョンが第2の電子装置502−2にインストールされているかを判定する(512)。いくつかの実施形態において、判定(512)は、アプリケーションの任意のバージョンが第2の電子装置にインストールされているかを第1の電子装置502−1または第2の電子装置502−2が判定することを含む。たとえば、第1の電子装置502−1は、アプリケーションのバージョンが第1の電子装置にインストールされていることまたはアプリケーションのバージョンのインストールファイルが第1の電子装置上で利用可能であることを第2の電子装置502−2に示すようにしてもよい。この指標に基づいて、第2の電子装置502−2は、同じアプリケーションの任意のバージョンが第2の電子装置502−2にインストールされているかを判定する。あるいは、第2の電子装置502−2は、(たとえば、インストールされているすべてのアプリケーションの一覧を提供することにより)アプリケーションのバージョンが第2の電子装置502−2にインストールされていることを第1の電子装置502−1に示すようにしてもよい。
いくつかの実施形態において、判定(512)は、アプリケーションの第1のバージョンに先行するアプリケーションの第2のバージョンが第2の電子装置502−2にインストールされているかを第1の電子装置502−1または第2の電子装置502−2が判定する(たとえば、第1および第2の電子装置に格納されたアプリケーションのバージョンまたは対応するインストールファイルを比較して、第2の電子装置上のバージョンが無効のバージョンであると判定する)ことを含む。たとえば、第1の電子装置502−1は、アプリケーションの第1のバージョンが第1の電子装置502−1にインストールされていることを第2の電子装置502−2に示すようにしてもよい。その後、この指標に基づいて、第2の電子装置502−2は、第2の電子装置502−2にインストールされたアプリケーションのバージョンを第1のバージョンと比較して、第2の電子装置502−2にインストールされたバージョンが無効であると判定する。この比較により、第2の電子装置502−2にインストールされたバージョンが無効のバージョン、同じバージョン、またはより最新のバージョンであると判定されるようになっていてもよい。あるいは、第2の電子装置502−2は、アプリケーションの第2のバージョンが第2の電子装置502−2にインストールされていることを第1の電子装置502−1に示すようにしてもよい。その後、この指標に基づいて、第1の電子装置502−1は、第1の電子装置502−1にインストールされたアプリケーションの第1のバージョンを第2のバージョンと比較して、第2の電子装置502−2にインストールされたバージョンが無効であると判定する。
いくつかの実施形態において、判定(512)は、ローカル接続を通じてソフトウェア更新アプリケーションを第2の電子装置502−2に提供し(たとえば、ソフトウェア更新アプリケーションモジュール348のインストールファイル350(図3)を転送し)、第2の電子装置502−2にインストールすることを含み、第2の電子装置502−2がローカル接続を通じてソフトウェア更新アプリケーションを受信する。そして、ソフトウェア更新アプリケーションが第2の電子装置502−2にインストールされる。いくつかの実施形態において、ソフトウェア更新アプリケーション(たとえば、ソフトウェア更新アプリケーションモジュール348)は、アプリケーション(たとえば、ソーシャルネットワーククライアントモジュール340(図3))が第2の電子装置502−2にインストールされているかを判定するとともにそのバージョンを決定する命令を含む。その後、ローカル接続を通じて、アプリケーションの第1のバージョンが第2の電子装置にインストールされているかの指標(たとえば、アプリケーションの任意のバージョンがインストールされているかの指標およびアプリケーションの第1のバージョンがインストールされているかの指標の両方または一方)を第2の電子装置502−2上のソフトウェア更新アプリケーションが送信するとともに第1の電子装置502−1がこれを受信する。
いくつかの実施形態において、ローカル接続の確立(510)の後、第1の電子装置502−1は、該第1の電子装置502−1に格納され、配信の権限を与えられたアプリケーションの一覧(および、それぞれのバージョン)をローカル接続上で定期的(または、継続的)に送信(たとえば、ブロードキャスト)する。第1の電子装置502−1からの送信(たとえば、ブロードキャスト)に基づいて、ローカル接続上で第1の電子装置に接続された電子装置は、ローカル接続上で第1の電子装置502−1から取得可能なアプリケーションの利用可能なバージョンを識別するようにしてもよい。
いくつかの実施形態において、第1の電子装置502−1または第2の電子装置502−2は、アプリケーションの第1のバージョンが第2の電子装置502−2に適合するかを判定する(514)。アプリケーションの第1のバージョンの適合を判定することは、第2の電子装置502−2(およびオプションで、第1の電子装置502−1)の1つ以上のハードウェア仕様(たとえば、プロセッサの種類、装置の製造業者、チップセットなど)およびソフトウェア仕様(たとえば、オペレーティングシステム)または1つ以上のハードウェア仕様(たとえば、プロセッサの種類、装置の製造業者、チップセットなど)もしくはソフトウェア仕様(たとえば、オペレーティングシステム)を識別することと、アプリケーションの第1のバージョンが識別した仕様に適合するか判定することを含んでいてもよい。いくつかの実施形態において、アプリケーションの第1のバージョンの適合を判定することは、アプリケーションの種々のバージョンに関する適合装置仕様の一覧を格納したテーブル(たとえば、Androidアプリケーションパッケージ(「APK」)マトリクス)のエントリを参照することを含む。いくつかの実施形態において、適合チェック(514)は、ソフトウェア更新アプリケーション(たとえば、ソフトウェア更新アプリケーションモジュール348(図3))によって実行される(512)。
アプリケーションの第1のバージョンが第2の電子装置502−2にインストールされていない旨の判定(また、いくつかの実施形態においては、第1のバージョンが第2の電子装置のハードウェアおよびソフトウェアの両方または一方(たとえば、オペレーティングシステム)に適合する旨の判定)に応答して、第1の電子装置502−1は、ローカル接続を通じて、アプリケーションの第1のバージョンの1つ以上のインストールファイル(たとえば、ソーシャルネットワーククライアントモジュール340のインストールファイル342(図3))を第2の電子装置に送信し(518)、第2の電子装置502−2がこれを第1の電子装置から受信する。たとえば、ソーシャルネットワーククライアントモジュール340(たとえば、ソーシャルネットワーキングサービスのインタフェースを提供するアプリケーション)の直近(すなわち、最新)のバージョンが第1の電子装置502−1に格納されているものの、第2の電子装置502−2には格納されていない(たとえば、第2の電子装置502−2にインストールされたアプリケーションのバージョンが無効である)と判定された場合、第1の電子装置502−1は、別個のインターネットベースのネットワークインタフェース上ではなく、確立されたローカル接続(たとえば、Bluetooth接続)を通じて、直近のバージョンのインストールファイル342を第2の電子装置502−2に送信する。こうして、第2の電子装置502−2は、(たとえば、ネットワーク106上でソーシャルネットワークシステム108(図1A)につながることなく)インターネットアクセスまたはローカル接続112よりも広い任意のネットワークへのアクセス)から独立して、インストールファイルを受信する。
いくつかの実施形態において、判定(512)は、アプリケーションの第2のバージョンが第2の電子装置502−2にインストールされている旨の判定(すなわち、第1の電子装置502−1に格納された第1のバージョンに先行するバージョン)であり、1つ以上のインストールファイルは、第2の電子装置502−2上のアプリケーションを第2のバージョンから第1のバージョンに更新する更新情報を含む。このため、いくつかの実施態様において、受信装置がアプリケーションの無効のバージョンを格納していると判定された場合は、アプリケーション全体のインストールパッケージではなく、アプリケーションを更新するファイルのみが送られる。
いくつかの実施形態において、判定(512)は、アプリケーションのいずれのバージョンも第2の電子装置にインストールされていない旨の判定であり、1つ以上のインストールファイルは、アプリケーションの過去のバージョンを更新するためだけのインストールファイルではなく、アプリケーションの第1のバージョンの全体をインストールする1つ以上のファイルを含む。
いくつかの実施形態においては、1つ以上のインストールファイルの送信(518)の前に、アプリケーションの第1のバージョンのインストールを可能にするために第2の電子装置502−2のセキュリティ設定を更新する旨の指示を含むメッセージが第1の電子装置502−1に表示される。メッセージの一例につては、図4Aに示すとともに、図4Aに関して説明している。
いくつかの実施形態において、第1の電子装置502−1は、第2の電子装置502−2がローカル接続上で通信可能な複数の電子装置のうちの1つ(たとえば、第2の電子装置502−2の無線通信範囲内の複数の電子装置のうちの1つ)であり、複数の電子装置のうちの他の電子装置上のアプリケーションの各バージョンがアプリケーションの第1のバージョンに先行する旨の判定に従って、第1の電子装置502−1がアプリケーションの第1のバージョンの1つ以上のインストールファイルを送信する(518)とともに、第2の電子装置502−2がこれを受信する。一例として、図1Cを参照して、クライアント装置104−1、104−4、および104−5は、ソーシャルネットワーククライアントモジュール340の種々のバージョンを格納しており(および/または、種々のバージョンのインストールファイルを有しており)、すべてがクライアント装置104−3の無線通信範囲内である。クライアント装置104−1は、(その他の近くのクライアント装置に格納された各バージョンに対して)ソーシャルネットワーククライアントモジュール340の直近(たとえば、現行)のバージョンを格納している場合、唯一、直近のバージョンのインストールファイル342をクライアント装置104−3に送信することになる。いくつかの実施形態において、アプリケーションの各バージョンを格納した近くの複数の電子装置は、互いに調停して、アプリケーションの最新(たとえば、現行)のバージョンを有する1つ以上の電子装置を識別する。いくつかの実施態様において、アプリケーションの最新のバージョンを有する1つ以上の電子装置を識別した後、無効のバージョンを有するその他の電子装置は、ローカル接続からの切断および他の近くの装置へのブロードキャストの中断の両方または一方を行うようにしてもよい(たとえば、アプリケーションのバージョンを転送に利用可能な、他の装置へのブロードキャストを停止するようにしてもよい)。いくつかの実施形態において、第2の電子装置502−2(「受信装置」)は、無線通信範囲内の複数の電子装置から、各電子装置に格納されたアプリケーションの各バージョンを識別する指標を受信する。いくつかの実施形態において、これらの指標に基づいてアプリケーションの最新のバージョンを有する1つ以上の電子装置を識別する際、第2の電子装置502−2は、最新のバージョンを有する1つ以上の電子装置との接続を維持するとともにインストールファイルを受信しつつ、ローカル接続を通じて接続されたその他すべての電子装置から切断する。あるいは、第2の電子装置502−2は、その他の電子装置と接続された状態を維持するものの、これらからインストールファイルをダウンロードすることはない。
いくつかの実施形態において、アプリケーションは、第1の電子装置502−1および第2の電子装置502−2の両方または一方に格納された複数のアプリケーションのうちの第1のアプリケーションである(たとえば、クライアント装置104−1は、ブラウザモジュール338、ソーシャルネットワーククライアントモジュール340、およびクライアントアプリケーションモジュール344をメモリ306に格納する)。第1のアプリケーションの優先度が第2の電子装置502−2上の第2のアプリケーションの優先度を上回る旨の判定に従って、第1の電子装置502−1がアプリケーションの第1のバージョンの1つ以上のインストールファイルを送信する(518)とともに、第2の電子装置502−2がこれを受信する。たとえば、クライアントアプリケーションモジュール344の所定の優先度を上回る所定の優先度(たとえば、数値的指標値により表される)をソーシャルネットワーククライアントモジュール340が有し、両モジュールで更新情報を利用可能な場合、第1の電子装置502−1は、クライアントアプリケーションモジュール344のインストールファイルが仮にあったとしても、それが送信される前に、ソーシャルネットワーククライアントモジュール340のインストールファイルを送信することになる。いくつかの実施形態において、アプリケーションの異なるバージョンは、それぞれの優先度を有する。たとえば、ソーシャルネットワーククライアントモジュール340のより新しい第1のバージョンは、より古い第2のバージョンよりも高い優先度を有していてもよい。この例においては、クライアントアプリケーションモジュール344の第1のバージョンがソーシャルネットワーククライアントモジュール340の第2のバージョンを上回る一方、ソーシャルネットワーククライアントモジュール340の第1のバージョンがクライアントアプリケーションモジュール344の第1のバージョンを上回る。
ここで図5Bを参照して、第1の電子装置502−1は、インストールファイルの一部を第2の電子装置502−2に送信し(518)、第2の電子装置502−2がその全部または一部を受信する。たとえば、第1の電子装置502−1は、ローカル接続を通じて第2の電子装置に、第1の複数のパケットを送信する。そして、第2の電子装置502−2は、第1の電子装置502−1からローカル接続を通じて、第1の複数のパケットの一部または全部を受信する。インストールファイルが(たとえば、対応するパケットの形態で)送受信されている間に、すべてのインストールファイルの転送に先立って、ローカル接続の第2の電子装置との喪失が検出される(520)。しばらくして(たとえば、切断から数分、数時間、または数日後)、第2の電子装置とのローカル接続が再確立される(522)(たとえば、Bluetooth接続の再ペアリング)。いくつかの実施形態においては、同じローカル接続が再確立される(たとえば、元のローカル接続がBluetooth経由であった場合、再確立されるローカル接続もBluetooth経由である)一方、他の実施形態においては、再確立されるローカル接続が別の通信プロトコルに基づいている(たとえば、元のローカル接続がBluetooth経由であり、再確立されるローカル接続がWi−Fi Direct経由である)。ローカル接続の再確立(522)の後、第1の電子装置502−1は、ローカル接続を通じて、インストールファイルの残りを第2の電子装置502−2に送信し(524)、第2の電子装置502−2がこれを受信する。たとえば、第1の電子装置502−1は、ローカル接続を通じて、第2の複数のパケットを第2の電子装置502−2に送信し、第2の電子装置502−2がこれを受信する。第2の複数のパケットは、ローカル接続の喪失(520)の結果として転送に失敗したインストールファイルの残りの部分に対応する。いくつかの実施形態において、第2の複数のパケットは、第2の電子装置502−2と第1の電子装置502−1とは異なる1つ以上の他の電子装置との間のローカル接続を通じて受信される(すなわち、第2の電子装置502−2は、複数の電子装置から、インストールファイルの異なる部分を受信する)。これらの実施形態において、第2の電子装置と1つ以上の他の電子装置との間に確立された各ローカル接続は、同一または別個の通信プロトコルを使用するようにしてもよい(たとえば、第2の電子装置502−2は、ある電子装置にBluetooth経由でつながり、別の電子装置にWi−Fi Direct経由でつながる)。
いくつかの実施形態において、アプリケーションは、ソーシャルネットワーキングサービスにつながるアプリケーション(たとえば、ソーシャルネットワークシステム108が提供するサービスにつながるソーシャルネットワーククライアントモジュール340(図1および図3))であり、第1の電子装置502−1と関連付けられた第1のユーザは、ソーシャルネットワーキングサービスのユーザである。アプリケーションの第1のバージョンが第2の電子装置にインストールされた後は、ローカル接続を通じて、第2の電子装置と関連付けられた第2のユーザのソーシャルネットワーキングサービスのアカウントを作成するリクエストを第2の電子装置502−2が第1の電子装置502−1に送信する(526)とともに、第1の電子装置502−1が第2の電子装置502−2からこれを受信する(526)。このリクエストは、ソーシャルネットワーククライアントモジュール340の第2の電子装置502−2へのインストールに応答して自動的に生成されるようになっていてもよいし、ユーザ入力に応答して生成されるようになっていてもよい。そして、第1の電子装置502−1は、ローカル接続とは異なる通信チャネルを通じて、リクエストをリモートサーバに送信する(528)(たとえば、第1の電子装置502−1は、Wi−Fiまたは携帯電話接続を通じて、第2の電子装置502−2から受信したアカウント作成リクエストを1つ以上のネットワーク106上でソーシャルネットワークシステム108に送信する)。したがって、第1の電子装置502−1は、第2の電子装置502−2の直接的なインターネット接続が無くても、ソーシャルネットワークシステム108が提供するサービスのアカウントを作成する仲介手段として用いられるようになっていてもよい。
いくつかの実施形態において、アプリケーションの第1のバージョンのインストールファイルの送信および第2の電子装置502−2による受信(518)の後は、ソーシャルネットワーキングサービス上の第2のユーザと関係するように第1のユーザを促すメッセージ(または、第1のユーザと関係するように第2のユーザを促すメッセージ)が第1の電子装置502−1および第2の電子装置502−2の両方または一方に表示される(530)。メッセージの一例については、図4Bに示すととともに、図4Bに関して説明している。いくつかの実施形態において、この関係リクエストは、インストールファイルの第2の電子装置502−2への送信、アプリケーションの第2の電子装置502−2へのインストール、および/または第2のユーザのアカウントの作成に応答して自動的に生成される。いくつかの実施形態において、メッセージは、インストールファイルがすべて転送されるか否かに関わらず、第1の電子装置502−1がインストールファイルの送信(518)を開始するとともに第2の電子装置502−2がインストールファイルの受信を開始した後(たとえば、これらに応答して)表示される(530)。いくつかの実施形態において、第1のユーザおよび第2のユーザは、インストールファイルが送信(518)および受信された後(あるいは、第1の電子装置502−1がインストールファイルの送信を開始するとともに第2の電子装置502−2がインストールファイルの受信を開始した後)、ソーシャルネットワーキングサービス上で互いに自動的に関連付けられる(すなわち、関係リクエストに関する指示/データがソーシャルネットワークシステム108に対して自動的に送信される)。いくつかの実施形態においては、信号がソーシャルネットワークシステム108に対して自動的に与えられ、所定の関係アルゴリズム(たとえば、PYMK(「知り合いかも(People You May Know)」)、友達リクエストアルゴリズムなど)に入力される。
第1および第2のユーザ(それぞれ、第1の電子装置502−1および第2の電子装置502−2と関連付けられている)がソーシャルネットワーキングサービスのユーザであるいくつかの実施形態において、第1の電子装置502−1は、ローカル接続とは異なる通信チャネルを通じて(たとえば、1つ以上のネットワーク106上で)、第2のユーザ向けのコンテンツをソーシャルネットワーキングサービスから受信する(532)とともに、ソーシャルネットワークシステム108がこれを第1の電子装置502−1に送信する。コンテンツとしては、ソーシャルネットワークシステム上のユーザがアクセス可能な任意のコンテンツ(たとえば、フィードコンテンツ、投稿、メッセージ、オーディオ/視覚データ、リンクなど)が挙げられる。ローカル接続(たとえば、ローカル接続108)を通じて、第2の電子装置に表示するソーシャルネットワーキングサービスからのコンテンツを第1の電子装置502−1が第2の電子装置502−2に送信する(534)とともに、第2の電子装置502−2がこれを第1の電子装置502−1から受信する。これにより、ソーシャルネットワークシステム108が提供するコンテンツは、(こうしなければインターネット接続が制限されるかインターネット接続がないものの)ローカル接続を確立可能な他のインターネット接続装置に近接した電子装置によってアクセスされるようになっていてもよい。いくつかの実施形態において、ソーシャルネットワーキングサービスからのコンテンツを送信(534)および受信することは、第2の電子装置502−2がインターネット接続していない旨の判定に従って行われる。いくつかの実施形態において、ソーシャルネットワーキングサービスから受信(532)されたコンテンツは、第1の電子装置502−1のメモリにキャッシュされて後で送信されることにより、送信時にインターネット接続が無くても、第1の電子装置502−1が第2の電子装置502−2にコンテンツを送信できるようにする。
いくつかの実施形態において、第1の電子装置502−1は、第2の電子装置502−2からコンテンツ(たとえば、投稿)を受信し、ローカル接続とは異なる通信チャネルを通じて、受信したコンテンツをソーシャルネットワーキングサービスに送信する(たとえば、自身の電子装置がインターネット接続を確立できないユーザは、ローカル接続が確立されるインターネット接続電子装置を通じて、ソーシャルネットワーキングサービスにコンテンツを投稿することができる)。
いくつかの実施形態において、図5Aおよび図5Bの方法500(または、動作の一部分)は、インターネット接続の輻輳閾値が満たされている(たとえば、ネットワーク帯域幅が所定値未満または以下である)旨の判定または(たとえば、不十分な携帯電話データサービスエリアまたはインターネット未加入のため)第2の装置502−2がインターネット接続を確立できない旨の判定に応答して実行される。
第2の電子装置502−2が第1の電子装置502−1からデータ(たとえば、コンテンツ、インストールファイルなど)を受信する場合に関して図5Aおよび図5Bの方法500を説明しているが、いくつかの実施形態においては、第2の電子装置502−2が複数の異なる電子装置からデータを受信し、複数の異なる電子装置が第2の電子装置502−2にデータを送信する。複数の異なる電子装置から受信および送信されるデータには、異なるコンテンツ項目のデータを含んでいてもよいし(たとえば、ある電子装置がアプリケーションのインストールファイルを送信する一方、異なる電子装置が、ソーシャルネットワークシステム108から読み出されたソーシャルメディアコンテンツ(たとえば、投稿)を送信する)か、または同じコンテンツ項目の一部を含んでいてもよい(たとえば、異なる電子装置は、同じアプリケーションのインストールファイルの異なる部分を送信する)。
上述のシステムがユーザに関する情報を収集する状況の場合、ユーザには、個人情報(たとえば、ユーザのプリファレンスまたはソーシャルコンテンツプロバイダに対するユーザの貢献に関する情報)を収集し得るプログラムまたは機能をオプトイン/オプトアウトする機会が与えられるようになっていてもよい。また、いくつかの実施形態においては、格納または使用前に特定のデータが1つ以上の方法で非特定化されることにより、個人を特定可能な情報が削除されるようになっていてもよい。たとえば、個人を特定可能な情報がユーザに関して決定されたりユーザと関連付けられたりすることがなく、また、ユーザのプリファレンスまたはユーザの相互作用が特定のユーザと関連付けられるのではなく一般化される(たとえば、ユーザの人口統計学的情報に基づいて一般化される)ように、ユーザの身元が非特定化されるようになっていてもよい。
各種図面のいくつかでは、いくつかの論理段階を特定の順序で示しているが、順序に依存しない段階は並べ替えてよく、また、他の段階を併合するか、または分割して切り出してよい。いくつかの並べ替えまたは他の組分けについて具体的に記載しているが、他のものは当業者には明らかであり、よって、本明細書で提示している順序および組分けは、代替案の網羅的列挙ではない。さらに、認識されるべきことは、それらの段階は、ハードウェア、ファームウェア、ソフトウェア、またはそれらの任意の組み合わせで実現できるということである。
上記明細書は、説明を目的として、具体的な実施形態を参照して記載している。しかしながら、上記の例示的説明は、網羅的なものではなく、開示した厳密な形態に請求項の範囲を限定するものでもない。上記の教示に照らして、数多くの変更および変形が可能である。これらの実施形態は、これにより他の当業者が企図する特定の用途に適した種々の変更を加えて実施形態を最良に利用できるように、請求項の根底にある原理およびその実際の適用について最良に説明するために選択されたものである。

Claims (11)

  1. 方法であって、
    1つまたは複数のプロセッサおよび前記1つまたは複数のプロセッサによって実行される命令を格納したメモリを備えた第1の電子装置において、
    アプリケーションの第1のバージョンの1つまたは複数のインストールファイルを前記メモリに格納するステップと、
    アプリケーションの前記第1のバージョンの前記1つまたは複数のインストールファイルを前記メモリに格納した後、インターネット接続から独立したローカル接続を第2の電子装置と確立するステップであって、前記第1の電子装置が、前記第2の電子装置の無線通信範囲内にある複数の電子装置のうちの1つである、前記確立するステップと、
    前記ローカル接続を用いて、前記アプリケーションの前記第1のバージョンが前記第2の電子装置にインストールされているかを判定するステップと、
    前記アプリケーションの前記第1のバージョンが前記第2の電子装置にインストールされておらず、かつ、前記第2の電子装置の無線通信範囲内にある前記複数の電子装置のうち他の電子装置上の前記アプリケーションのバージョンが、前記第1の電子装置の前記メモリに格納された前記アプリケーションの前記第1のバージョンに先行する旨の判定に応答して、前記第2の電子装置に前記ローカル接続を通じて、前記アプリケーションの前記第1のバージョンの前記1つまたは複数のインストールファイルを送信するステップと
    を含む、方法。
  2. 前記ローカル接続を確立するステップが、
    無線通信プロトコルを用いて、前記第1の電子装置を前記第2の電子装置とペアリングすること、
    パーソナルエリアネットワーク上で前記第2の電子装置とつながること、
    ピアツーピアネットワーク上で前記第2の電子装置とつながることのうちの少なくとも1つを含む、請求項1に記載の方法。
  3. 前記ローカル接続を確立するステップが、
    前記インターネット接続の輻輳閾値が満たされている旨の判定に応答して実行されるか、または
    前記第2の電子装置がインターネット接続を確立できない旨の判定に応答して実行されるか、
    または両方の判定に応答して実行される、請求項1または2に記載の方法。
  4. 前記アプリケーションの前記第1のバージョンが前記第2の電子装置にインストールされているかの判定が、前記第1の電子装置の前記メモリに格納された前記アプリケーションの前記第1のバージョンに先行する前記アプリケーションの第2のバージョンが前記第2の電子装置にインストールされているかの判定を含んでおり、
    前記アプリケーションの前記第1のバージョンが前記第2の電子装置にインストールされていない旨の判定が、前記アプリケーションの前記第2のバージョンが前記第2の電子装置にインストールされている旨の判定であり、
    前記アプリケーションの前記第1のバージョンの前記1つまたは複数のインストールファイルが、前記第2の電子装置上の前記アプリケーションを前記第2のバージョンから前記第1のバージョンに更新する更新情報を含む、請求項1乃至3のいずれか1項に記載の方法。
  5. 前記アプリケーションの前記第1のバージョンが前記第2の電子装置にインストールされているかの判定が、前記アプリケーションの任意のバージョンが前記第2の電子装置にインストールされているかの判定を含んでおり、
    前記アプリケーションの前記第1のバージョンが前記第2の電子装置にインストールされていない旨の判定が、前記アプリケーションのいずれのバージョンも前記第2の電子装置にインストールされていない旨の判定であり、
    前記アプリケーションの前記第1のバージョンの前記1つまたは複数のインストールファイルが、前記アプリケーションの前記第1のバージョンの全体をインストールする1つまたは複数のファイルを含む、請求項1乃至4のいずれか1項に記載の方法。
  6. 前記アプリケーションの前記第1のバージョンが前記第2の電子装置にインストールされているかを判定するステップが、
    前記ローカル接続を通じて、ソフトウェア更新アプリケーションを前記第2の電子装置に提供し、前記第2の電子装置にインストールすることと、
    前記ローカル接続を通じて、前記第2の電子装置上の前記ソフトウェア更新アプリケーションから、前記アプリケーションの前記第1のバージョンが前記第2の電子装置にインストールされているかの指標を受信することと、
    を含む、請求項1乃至5のいずれか1項に記載の方法。
  7. 前記1つまたは複数のインストールファイルを送信するステップの前に、前記アプリケ
    ーションの前記第1のバージョンのインストールを可能にするために前記第2の電子装置
    のセキュリティ設定を更新する旨の指示を含むメッセージを前記第1の電子装置に表示す
    るステップをさらに含む、請求項1乃至6のいずれか1項に記載の方法。
  8. 前記アプリケーションが、第1のアプリケーションであり、
    前記第1の電子装置が、前記第1のアプリケーションの優先度が前記第2の電子装置上の第2のアプリケーションの優先度を上回る旨の判定に従って、前記アプリケーションの前記第1のバージョンの前記1つまたは複数のインストールファイルを送信する、請求項1乃至7のいずれか1項に記載の方法。
  9. 前記アプリケーションの前記第1のバージョンが、前記第2の電子装置に適合するかを判定するステップをさらに含み、
    前記ローカル接続を通じて前記1つまたは複数のインストールファイルを前記第2の電子装置に送信するステップが、前記アプリケーションの前記第1のバージョンが前記第2の電子装置に適合する旨の判定にさらに応答して実行される、請求項1乃至8のいずれか1項に記載の方法。
  10. システムであって、
    1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサに接続され、かつ前記1つまたは複数のプロセッサによって実行可能な命令を含む少なくとも1つのメモリとを備え、前記1つまたは複数のプロセッサは、前記命令の実行時に請求項1乃至9のいずれか1項に記載の方法を実行するように動作可能である、システム。
  11. 第1の電子装置の1つまたは複数のプロセッサによって実行される1つまたは複数のプログラムを格納した非一時的なコンピュータ可読記憶媒体であって、前記1つまたは複数のプログラムが、請求項1乃至9のいずれか1項に記載の方法を実行するための命令を含む、非一時的なコンピュータ可読記憶媒体。
JP2017568141A 2015-06-29 2015-06-30 近距離通信を介してアプリケーションバージョンをインストールする方法およびシステム Active JP6676080B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/754,247 US20160378455A1 (en) 2015-06-29 2015-06-29 Methods and Systems for Installing an Application Version via Close-Range Communications
US14/754,247 2015-06-29
PCT/US2015/038647 WO2017003467A1 (en) 2015-06-29 2015-06-30 Methods and systems for installing an application version via close range communications

Publications (2)

Publication Number Publication Date
JP2018528507A JP2018528507A (ja) 2018-09-27
JP6676080B2 true JP6676080B2 (ja) 2020-04-08

Family

ID=57601165

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017568141A Active JP6676080B2 (ja) 2015-06-29 2015-06-30 近距離通信を介してアプリケーションバージョンをインストールする方法およびシステム

Country Status (10)

Country Link
US (1) US20160378455A1 (ja)
JP (1) JP6676080B2 (ja)
KR (1) KR20180022867A (ja)
CN (1) CN108028768A (ja)
AU (1) AU2015400351A1 (ja)
BR (1) BR112017028567A2 (ja)
CA (1) CA2991026A1 (ja)
IL (1) IL256641A (ja)
MX (1) MX2018000246A (ja)
WO (1) WO2017003467A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8918779B2 (en) * 2009-08-27 2014-12-23 Microsoft Corporation Logical migration of applications and data
US10572213B2 (en) * 2016-04-04 2020-02-25 Microsoft Technology Licensing, Llc Universal application pinning
KR102249599B1 (ko) * 2017-03-21 2021-05-07 현대자동차 주식회사 차량 모듈의 소프트웨어 업데이트 정보 제공 서버 및 방법
CN107454154B (zh) * 2017-07-24 2021-03-30 北京京东尚科信息技术有限公司 一种数据处理方法及系统
US10310842B1 (en) * 2017-12-01 2019-06-04 International Business Machines Corporation Recommendation system for software updates
EP3514679B1 (en) * 2018-01-22 2023-06-07 Top Victory Investments Limited Method and system for updating a software program installed in an electronic device
CN108563468B (zh) * 2018-03-30 2021-09-21 深圳市冠旭电子股份有限公司 一种蓝牙音箱数据处理的方法、装置及蓝牙音箱
US10552136B2 (en) 2018-06-29 2020-02-04 Alibaba Group Holding Limited One click application asset distribution
CN111443936A (zh) * 2020-04-15 2020-07-24 赞同科技股份有限公司 一种用于对客户端软件进行更新的方法及系统
US11749284B2 (en) * 2020-11-13 2023-09-05 Google Llc Dynamically adapting on-device models, of grouped assistant devices, for cooperative processing of assistant requests
CN117492958A (zh) * 2023-11-14 2024-02-02 北京智芯微电子科技有限公司 线程信息调整方法、装置和电子设备

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US1134704A (en) * 1913-12-12 1915-04-06 Thomas Cornelius Sheehan Display-stand.
JPH09282170A (ja) * 1996-04-17 1997-10-31 Ricoh Co Ltd ファクシミリ装置
JP3671759B2 (ja) * 1999-08-26 2005-07-13 株式会社日立製作所 ソフトウェア配布方法およびシステム
JP4953531B2 (ja) * 2001-08-30 2012-06-13 シャープ株式会社 端末装置
JP2003308222A (ja) * 2002-04-16 2003-10-31 Murata Mach Ltd 携帯端末による電子機器のプログラム書換方法
JP4576130B2 (ja) * 2004-02-12 2010-11-04 パイオニア株式会社 通信系アプリケーションプログラムのバージョン更新方法及びそのプログラム
JP2008027269A (ja) * 2006-07-24 2008-02-07 Matsushita Electric Ind Co Ltd 通信機器およびプログラム更新方法
JP2008136134A (ja) * 2006-11-29 2008-06-12 Toshiba Corp 無線通信装置及び無線通信装置の消費電力制御方法。
US8509754B2 (en) * 2006-12-29 2013-08-13 United States Cellular Corporation Distributing mobile-device applications
US20090234912A1 (en) * 2008-03-17 2009-09-17 Sony Computer Entertainment America Inc. File transfer via local server
US7506025B1 (en) * 2008-03-27 2009-03-17 International Business Machines Corporation Using a proxy to redirect downloads
US20100162374A1 (en) * 2008-12-19 2010-06-24 Nair Jiji U Cost effective updating of mobile computing devices and communicating with mobile computing devices
US20110072421A1 (en) * 2009-09-18 2011-03-24 Research In Motion Limited Method, apparatus and system for updating a software bundle installed on a mobile electronic device
TW201116002A (en) * 2009-10-30 2011-05-01 Askey Computer Corp System and method for data transmission via special line
JP2011118884A (ja) * 2009-11-04 2011-06-16 Fujitsu Ltd 通信端末装置、ソフトウェア取得方法及びソフトウェア取得プログラム
JP5051668B2 (ja) * 2009-11-18 2012-10-17 Necアクセステクニカ株式会社 移動通信装置、プログラム更新方法およびプログラム更新サービスプログラム
JP2012098906A (ja) * 2010-11-02 2012-05-24 Buffalo Inc 無線lan装置、無線lan装置の制御方法、および、コンピュータプログラム
CN103415864A (zh) * 2011-04-21 2013-11-27 英派尔科技开发有限公司 使用移动装置的方位社交网络
EP2595423B1 (en) * 2011-11-21 2018-01-03 Swisscom AG Application security evaluation system and method
US9420065B2 (en) * 2013-01-18 2016-08-16 Google Inc. Peer-to-peer software updates
US20150072662A1 (en) * 2013-09-09 2015-03-12 Nvidia Corporation Resumption of data connectivity between mobile devices via switching application
US9762562B2 (en) * 2013-09-13 2017-09-12 Facebook, Inc. Techniques for multi-standard peer-to-peer connection
EP3295653A1 (en) * 2015-05-14 2018-03-21 Airbiquity Inc. Centralized management of mobile-assisted motor vehicle software upgrading and vehicle data analytics

Also Published As

Publication number Publication date
IL256641A (en) 2018-02-28
US20160378455A1 (en) 2016-12-29
CN108028768A (zh) 2018-05-11
BR112017028567A2 (pt) 2018-09-04
CA2991026A1 (en) 2017-01-05
AU2015400351A1 (en) 2018-02-01
JP2018528507A (ja) 2018-09-27
KR20180022867A (ko) 2018-03-06
MX2018000246A (es) 2018-03-08
WO2017003467A1 (en) 2017-01-05

Similar Documents

Publication Publication Date Title
JP6676080B2 (ja) 近距離通信を介してアプリケーションバージョンをインストールする方法およびシステム
US10802686B2 (en) Methods and systems for providing user feedback
US9977911B2 (en) Methods and systems for managing permissions to access mobile device resources
US10798139B2 (en) Methods and systems for accessing relevant content
US20160188671A1 (en) Methods and Systems for Recommending Applications
US10200268B2 (en) Methods and systems for congestion-based content delivery
US10630792B2 (en) Methods and systems for viewing user feedback
US10972528B2 (en) Methods and systems for accessing third-party services within applications
US10158548B2 (en) Methods and systems for signing resource identifiers
JP2020034930A (ja) 複数の地図データ・ソースからの複数の地図部分を利用するためのシステムおよび方法
US10432571B2 (en) Automated connection of electronic messaging and social networking services method and apparatus
US20160334969A1 (en) Methods and Systems for Viewing an Associated Location of an Image
EP3040899B1 (en) Methods and systems for managing permissions to access mobile device resources
US10511454B2 (en) Methods and systems for implementing differential pricing configurations
EP3121713A2 (en) Methods and systems for installing an application version via close-range communications
US20220084078A1 (en) Methods and Systems for Untargeting Users of an Online Service for Advertising
US10225355B2 (en) Methods and systems for abuse detection of zero-rated data
US8959151B1 (en) Establishing per-page multi-party communication sessions

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180620

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180620

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190515

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20190517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191008

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200311

R150 Certificate of patent or registration of utility model

Ref document number: 6676080

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250