図1は、第三者修正をユーザ履歴に提供するためのシステム100のいくつかの実装のブロック図を図示する。図示されるシステム100は、ユーザ125a・・・125n(また、本明細書では、個々および集合的に、125とも称される)によってアクセスされる、ユーザデバイス115a・・・115n(また、本明細書では、個々および集合的に、115とも称される)と、第1のサーバ101と、データサーバ109と、第2のサーバ107とを含む。図示される実装では、システム100のこれらのエンティティは、ネットワーク105を介して通信可能に連結される。
図1におけるユーザデバイス115a、115nは、一例として、使用される。図1は、2つのユーザデバイス115aおよび115nを図示するが、本開示は、1つ以上のユーザデバイス115を含む、システムアーキテクチャにも適用される。さらに、図1は、ユーザデバイス115、第1のサーバ101、第2のサーバ107、およびデータサーバ109に連結された1つのネットワーク105を図示するが、実際は、1つ以上のネットワーク105が、これらのエンティティに接続されることができる。例えば、一実装では、システム100は、第1のサーバ101上にホストされた第1のサービス、例えば、ソーシャルネットワークサービスを含み得る。システム100はまた、第2のサービス、例えば、第2のサーバ(例えば、第2のサーバは、第三者サーバであり得る)上にホストされた別のサービスを含み得る。さらに、図1は、1つの第1のサーバ101、1つの第2のサーバ107、および1つのデータサーバ109を含むが、アーキテクチャ100は、1つ以上の第1のサーバ101、1つ以上の第2のサーバ107、および1つ以上のデータサーバ109を含み得る。
ネットワーク105は、従来のタイプの有線または無線であることができ、スター構成、トークンリング構成、または他の構成を含む、多数の異なる構成を有し得る。さらに、ネットワーク105は、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)(例えば、インターネット)、および/または複数のデバイスが通信し得る、他の相互接続されたデータ経路を含み得る。いくつかの実装では、ネットワーク105は、ピアツーピアネットワークであり得る。ネットワーク105はまた、種々の異なる通信プロトコルにおいてデータを送信するための電気通信ネットワークに連結されるか、またはその一部を含み得る。いくつかの実装では、ネットワーク105は、ショートメッセージングサービス(SMS)、マルチメディアメッセージングサービス(MMS)、ハイパーテキスト転送プロトコル(HTTP)、直接データ接続、WAP、電子メール等を含む、データを送受信するためのBluetooth(登録商標)通信ネットワークまたはセルラー通信ネットワークを含む。
第1のサーバ101は、プロセッサと、メモリと、ネットワーク通信能力とを含む、ハードウェアサーバであることができる。図示される実装では、第1のサーバ101は、信号ライン104を介して、ネットワーク105に連結される。第1のサーバ101は、ネットワーク105を介して、ユーザデバイス115a、115n、第2のサーバ107、およびデータサーバ109のうちの1つ以上とデータを送受信する。第1のサーバ101は、ソーシャルネットワークアプリケーション103を含む。ソーシャルネットワークは、ユーザが共通特徴によって接続され得る、ソーシャル構造のタイプであることができる。共通特徴は、関係/つながり、例えば、友人関係、家族、仕事、関心等を含む。共通特徴は、その関係がソーシャルグラフを形成する、明示的に定義された関係、および他のオンラインユーザとの社会的つながりによって含意される関係を含む、1つ以上のソーシャルネットワーキングシステムによって提供され得る。いくつかの実施例では、ソーシャルグラフは、これらのユーザのマッピングおよび彼らがどのように関連するかを反映させることができる。さらに、第1のサーバ101およびソーシャルネットワークアプリケーション103は、1つのソーシャルネットワークの代表であり、各々がその独自のサーバ、アプリケーション、およびソーシャルグラフを有する、ネットワーク105に連結された複数のソーシャルネットワークが存在し得ることを理解されたい。例えば、第1のソーシャルネットワークは、ビジネスネットワーキングをより対象とし得、第2のソーシャルネットワークは、学校関係をより対象とするか、またはそれを中心とし得、第3のソーシャルネットワークは、地域事業をより対象とし得、第4のソーシャルネットワークは、交際および一般的関心または具体的焦点であり得るその他を対象とし得る。いくつかの実装では、ソーシャルネットワークは、ユーザ125の1つ以上のアクティビティを記述するソーシャルフィードを提供する、サービスを含む。例えば、ソーシャルフィードは、ユーザのアクション、考え、意見等を記述するユーザ125の1つ以上のステータス更新を含む。いくつかの実装では、ソーシャルネットワークアプリケーション103は、第2のサーバ107およびデータサーバのうちの1つに記憶され、そこで実行される。いくつかの実装では、ソーシャルネットワークアプリケーション103によって提供されたサービスは、「ソーシャルネットワークサービス」と称される。他の実装も、可能である。いくつかの実装では、第2のサーバ107、第1のサーバ101、およびデータサーバ109のサービスならびに構成要素は、同一の1つ以上のサーバによって提供されることができる。さらに、本明細書に説明される実装における種々の構成要素およびサーバの分離は、全実装において、そのような分離を要求するものと理解されるべきではなく、説明される構成要素およびサーバは、概して、単一構成要素またはサーバ内で一緒に統合されることができることを理解されたい。
いくつかの実装では、ソーシャルネットワークアプリケーション103は、少なくとも部分的に、ユーザ履歴に基づいて、ユーザ125に提供されるべきソーシャルコンテンツを決定する。例えば、ソーシャルネットワークアプリケーション103は、データサーバ109と協働し、ユーザアクティビティをユーザ履歴に集約する。いくつかの実装では、ユーザアクティビティは、第三者サイトとのユーザ相互作用を含み得る。いくつかの実装では、ユーザアクティビティは、ソーシャルネットワーク内で生じ得る。ソーシャルネットワークアプリケーション103は、データサーバ109と協働し、第1のユーザ125のソーシャルフィード内のユーザアクティビティをソーシャルネットワークサービスに公開し得る。代替として、ソーシャルネットワークアプリケーション103は、データサーバ109と協働し、ユーザアクティビティを第1のユーザ125のための個人用履歴に提供し得る。ソーシャルネットワークアプリケーション103は、次いで、少なくとも部分的に、第2のユーザ125からの明示的要求または第2のユーザ125がコンテンツを暗示的に要求していることの決定に基づいて、履歴内のどのユーザアクティビティが、第2のユーザ125のためのソーシャルフィード内に投稿されるべきかを決定することができる。いくつかの実装では、ソーシャルネットワークアプリケーション103のこれらの機能性のうちの全部または一部は、代替として、以下に説明されるデータサーバ109によって実装され得る。
いくつかの実装では、第1のサーバ101は、ユーザデバイス115a、115nのうちの1つ以上とデータを送受信し、ユーザデバイス115aのユーザ125に関連付けられたソーシャルコンテンツを生成する。いくつかの実装では、第1のサーバ101は、ユーザデバイス115a、115nのうちの1つ以上とデータを送受信し、ユーザデバイス115a、115nから受信されたソーシャルコンテンツを生成する。例えば、第1のサーバ101は、ユーザデバイス115a、115nと協働し、ユーザデバイスからデータを受信し、ソーシャルネットワークポータル上に表示されるべきユーザ125による投稿を生成する。いくつかの実装では、投稿は、第2のサーバ107に関連付けられたデータを含み、また、第2のサーバ107と協働し、投稿のコンテンツを適宜更新する。
少なくとも部分的に、ユーザ履歴に基づいて、ユーザ125に提供されるべきソーシャルコンテンツを決定するための多くの実施例が、可能であり得る。例えば、第1のユーザ125は、第三者サイトまたはソーシャルネットワーク上に、カメラに関するレビューを投稿したと。ソーシャルネットワークアプリケーション103は、データサーバ109と協働し、その投稿を第1のユーザ125のための履歴に集約した。例えば、ソーシャルネットワークアプリケーション103は、その投稿をソーシャルフィードに公開した。第2のユーザ125は、第2のユーザ125がそれについて関連がないと感じたため、その投稿を無視した。しかしながら、数ヶ月後、第2のユーザ125は、カメラの購入を決定した。例えば、第2のユーザ125が、ソーシャルネットワークにおいて、友人と会話し、そのような意志について述べた。第2のユーザの意志に応じて、ソーシャルネットワークアプリケーション103は、カメラに関するその投稿を読み出し、第2のユーザ125のソーシャルフィードにその投稿を公開する。
いくつかの実装では、第1のサーバ101は、随意のアプリケーションプログラミングインターフェース(「API」)199を含む。API199は、異なるエンティティ間のデータ通信をハンドリングするためのコードおよびルーチンを含むことができる。例えば、第1のサーバ101内に記憶され得る、随意のAPI199は、第1のサーバ101とデータサーバ109との間のデータ通信をハンドリングするためのコードおよびルーチンを含む。別の実施例として、第1のサーバ101内に記憶され得る、随意のAPI199は、第1のサーバ101と第2のサーバ107との間のデータ通信をハンドリングするためのコードおよびルーチンを含む。別の実施例として、第1のサーバ101内に記憶され得る、随意のAPI199は、第1のサーバ101とユーザデバイス115a、115nとの間のデータ通信をハンドリングするためのコードおよびルーチンを含む。図示される実装では、API199は、API199が第1のサーバ101のための随意の特徴であり得ることを示すために、破線を使用して描写される。
第2のサーバ107は、プロセッサと、メモリと、ネットワーク通信能力とを含む、ハードウェアサーバであることができる。図示される実装では、第2のサーバ107は、信号ライン106を介して、ネットワーク105に連結される。第2のサーバ107は、ネットワーク105を介して、システム100の他のエンティティとデータを送受信する。第2のサーバ107は、サービスモジュール193と、接続アプリケーション190と、随意のAPI199とを含む。第2のサーバ107の構成要素は、互に通信可能に連結される。
API199は、前述されており、API199に関する説明は、ここでは繰り返されない。いくつかの実装では、第2のサーバ107内に記憶され得る、随意のAPI199は、第2のサーバ107とデータサーバ109との間のデータ通信をハンドリングするためのコードおよびルーチンを含む。例えば、API199は、第2のサーバ107がデータをデータサーバ109に伝送することを可能にする、インターフェースを含むことができる。別の実施例として、API199は、第2のサーバ107がデータを第1のサーバ101に伝送することを可能にする、インターフェースを含むことができる。別の実施例として、API199は、第2のサーバ107がデータをユーザデバイス115a、115nに伝送することを可能にする、インターフェースを含むことができる。
サービスモジュール193は、サービスをユーザに提供するためのコードおよびルーチンであることができる。例えば、サービスモジュール193は、埋め込まれたビデオを伴うウェブページをユーザ125に提供し、ユーザ125がウェブページおよび/またはビデオと相互作用することを可能にする、コードおよびルーチンを含む。サービスモジュール193によって提供されるサービスの他の実施例として、限定されないが、ニュースフィードを提供すること、記事を公開すること、プレイリストを生成すること、ビデオを公開すること、写真を投稿すること、または他のオンラインサービスが挙げられる。いくつかの実装では、ユーザ125は、サービスモジュール193によって提供されるサービスと相互作用する。サービスモジュール193は、サービスとのユーザの相互作用を記述するユーザアクティビティデータを生成する。例えば、ユーザ125は、サービスモジュール193によって提供されたウェブページ上に提示されたニュース記事に関してコメントし、サービスモジュール193に、ユーザ125がニュース記事にコメントしたことを記述する、ユーザアクティビティデータを生成させる。サービスモジュール193は、ユーザアクティビティデータを接続アプリケーション190に送信する。いくつかの実装では、サービスモジュール193は、ユーザアクティビティデータを図2に関して後述される第2の記憶デバイス297内に記憶する。いくつかの実装では、サービスモジュール193は、第1のサーバ101およびデータサーバ109のうちの一方に記憶され、そこで実行されることができる。サービスモジュール193によって提供されるサービスは、「第1のサービス」と称され得る。
接続アプリケーション190は、第2のサーバ107をデータサーバ109に接続するためのコードおよびルーチンであることができる。いくつかの実装では、接続アプリケーション190は、フィールドプログラマブルゲートアレイ(「FPGA」)または特定用途向け集積回路(「ASIC」)を含むハードウェアを使用して、実装されることができる。いくつかの他の事例では、接続アプリケーション190は、ハードウェアおよびソフトウェアの組み合わせを使用して、実装されることができる。いくつかの実装では、接続アプリケーション190は、デバイスおよびサーバの組み合わせあるいはデバイスまたはサーバのうちの1つに記憶され得る。
いくつかの実装では、接続アプリケーション190は、ユーザ125に関連付けられたユーザアクティビティデータを集約し、ユーザ125とユーザアクティビティデータを提供するサービス(例えば、第2のサーバ107を通して)との合意に応じて、データサーバ109とユーザアクティビティデータを共有する。ユーザアクティビティデータは、例えば、第2のサーバ107によって提供されるサービスとの1つ以上のユーザ相互作用を記述するデータであることができる。例えば、ユーザアクティビティデータは、ユーザ125が第2のサーバ107によってホストされたビデオを視聴したことを記述するデータを含む。いくつかの実装では、単一相互作用はまた、複数のアクションを伴うことができる。例えば、ユーザは、映画を購入し、それを鑑賞し得る。いくつかの実装では、接続アプリケーション190は、データサーバ109と共有されるべきユーザ相互作用の1つ以上のタイプを規定することによって、データサーバ109と共有されるデータを制御する。例えば、接続アプリケーション190は、データサーバ109と視聴ユーザ相互作用のタイプを共有することを規定し、その視聴タイプに関連付けられたユーザアクティビティデータをデータサーバ109に伝送する。一実施形態では、データサーバ109のエンティティ(例えば、登録アプリケーション195、共有アプリケーション188、認証アプリケーション196、または登録アプリケーション195、認証アプリケーション196、および共有アプリケーション188の組み合わせ)は、データサーバ109と共有されるべきユーザ相互作用の1つ以上のタイプを規定する入力を第2のサーバ107に提供する。相互作用は、時間、場所、天候、および人々(例えば、ユーザとともに存在した他の人々)を使用してアノテートされ得る。接続アプリケーション190は、図2を参照してより詳細に説明される。
いくつかの実装では、ユーザ相互作用のタイプは、ユーザ相互作用に関連付けられたアクションによって分類され得る。例えば、ユーザ相互作用のタイプは、ユーザ相互作用におけるアクションを記述する動詞によって分類され得る。ユーザ相互作用に関連付けられたアクションの実施例として、限定されないが、「視聴する」(例えば、サイト上のビデオを視聴する、オンライン映画を視聴する等)、「コメントする」(例えば、投稿にコメントする、写真にコメントする等)、「聴取する」(例えば、音楽を聴取する、ラジオを聴取する等)、「検索する」(例えば、製品を検索する、ニュース記事を検索する等)、「読み取る」(例えば、記事を読み取る、ブログを読み取る等)、「チェックインする」(例えば、レストランにチェックインする、コーヒーショップにチェックインする等)、および「投稿する」(例えば、サイト上に写真を投稿する)等が挙げられ得る。ユーザ相互作用のタイプの実施例として、限定されないが、視聴タイプ、コメントタイプ、聴取タイプ、検索タイプ、読み取りタイプ、チェックインタイプ、および投稿タイプ等が挙げられ得る。他のユーザ相互作用のタイプも、可能であり得る。いくつかの実装では、接続アプリケーション190は、第1のサーバ101およびデータサーバ109の一方に記憶され、そこで実行されることができる。接続アプリケーション190によって提供されるサービスは、本明細書では、「接続サービス」と称され得る。
いくつかの実装では、接続アプリケーション190は、ユーザアクティビティデータに加え、メタデータをデータサーバ109に提供する。いくつかの実装では、メタデータは、ユーザ相互作用におけるアクションを記述する動詞に関連する追加の情報を記述するデータを含むことができる。例えば、メタデータは、アクションを行うユーザ125の識別、アクションの日時、およびユーザ125がアクションを行う対象を記述するデータを含むことができる。接続アプリケーション190は、ユーザ125とメタデータを提供するサービスとの合意に応じて、メタデータをデータサーバ109に提供する。いくつかの実装では、接続アプリケーション190は、あるタイプの動詞に関連するメタデータをデータサーバ109に提供する。例えば、接続アプリケーション190は、視聴ユーザ相互作用のタイプに関するメタデータをデータサーバ109と共有することを規定し、視聴タイプアクションに関連するメタデータをデータサーバ109に伝送する。
いくつかの実装では、接続アプリケーション190は、ユーザ125が第三者サイト上のウィジェットと相互作用したことを記述する指示子を生成し、データサーバ109に送信し、データサーバ109が、ユーザ125に、ユーザ125の第1のアカウント(例えば、第1のサービスのためのアカウント)を第2のアカウント(例えば、第2のサービスのためのアカウント)と接続するための選択肢を提供することを可能にする。いくつかの実装では、ウィジェットは、サービスを提供する埋め込まれたアプリケーションであり得る。サービスは、ソーシャルネットワークサービスであり得る。例えば、ユーザ125は、第三者サイトを訪問し、ウィジェット、例えば、「共有」ボタン、肯定応答指示子ボタン等をクリックする。接続アプリケーション190は、ユーザ125がウィジェットをクリックしたことを記述する指示子を生成し、指示子をデータサーバ109に送信する。指示子の受信に応じて、データサーバ109は、ユーザ125が外部アカウントをユーザ125のローカルアカウントに接続することを可能にするユーザインターフェースを提供するためのインターフェースデータを生成するように接続アプリケーション190を制御する。例えば、外部アカウントは、ソーシャルネットワークアプリケーション103に記録されたユーザ125のソーシャルアカウントであり得る。ローカルアカウントは、第2のサーバ107に記録されたユーザ125のアカウントであり得る。いくつかの実装では、データサーバ109が、インターフェースデータを生成し、ユーザ125のユーザデバイス115上にユーザインターフェースを表示するためのデータを接続アプリケーション190に伝送する。いくつかの実装では、ユーザ125が、外部アカウントをローカルアカウントと接続することを承認する場合、接続アプリケーション190は、外部アカウントをユーザ125のローカルアカウントと接続し、少なくとも部分的に、第2のサーバ107およびデータサーバ109の要件に基づいて、ユーザ125のためのアカウント接続を記述するデータをデータサーバ109に送信する。ユーザ125が、接続を承認しない場合、接続アプリケーション190は、外部アカウントをユーザ125のローカルアカウントと接続しない。
データサーバ109は、プロセッサと、メモリと、ネットワーク通信能力とを含む、ハードウェアサーバであることができる。図示される実装では、データサーバ109は、信号ライン112を介して、ネットワーク105に連結される。データサーバ109は、ネットワーク105を介して、システム100の他のエンティティとデータを送受信する。いくつかの実装では、データサーバ109は、登録アプリケーション195と、共有アプリケーション188と、認証アプリケーション196と、第1の記憶デバイス197とを含む。データサーバ109の構成要素は、互に通信可能に連結される。
登録アプリケーション195は、第2のサーバ107あるいは第2のサーバ107または別のサーバ(例えば、ソーシャルネットワークサーバ)によって提供されるサービスをデータサーバ109に登録し、ユーザ125のためのユーザアクティビティデータを公開するためのコードおよびルーチンであることができる。説明される例示的実装は、データサーバ109を通した第2のサーバ107と第1のサーバ101との間の登録およびデータの共有について論じられている。他の実装も、可能である。特に、いくつかの実装では、ユーザアクティビティデータは、サービスからソーシャルネットワークアプリケーション103と共有される。サービスは、第三者サービスによって提供され(例えば、サービス193は、第2のサーバ107によって提供され)、ソーシャルネットワークアプリケーション103によって提供され、または、別のアプリケーションまたはサーバによって提供され得る(例えば、別のサーバ(図示せず)によって提供される)。例えば、登録アプリケーション195は、接続アプリケーション190と協働し、第2のサーバ107をデータサーバ109に記録し、第2のサーバ107が、ユーザアクティビティデータをデータサーバ109と共有すること、代替として、ユーザ情報をデータサーバ109から受信することを可能にする。いくつかの実装では、登録アプリケーション195は、FPGAまたはASICを含むハードウェアを使用して、実装されることができる。いくつかの他の事例では、登録アプリケーション195は、ハードウェアおよびソフトウェアの組み合わせを使用して、実装されることができる。いくつかの実装では、登録アプリケーション195は、デバイスおよびサーバの組み合わせあるいはデバイスまたはサーバのうちの1つに記憶され得る。いくつかの実装では、登録アプリケーション195に関して本明細書に説明される機能性の少なくとも一部は、接続アプリケーション190によって提供され得る。いくつかの実装では、登録アプリケーション195は、第1のサーバ101のエンティティである。
いくつかの実装では、登録アプリケーション195は、データサーバ109に登録された第2のサーバ107から、ユーザ125に関連付けられたユーザアクティビティデータを受信する。登録アプリケーション195は、ユーザ125の認証に応じて、ユーザアクティビティデータを公開する。例えば、登録アプリケーション195は、ユーザ125からのユーザアクティビティデータを公開するための認証信号を受信し、認証信号の受信に応答して、ユーザアクティビティデータを公開する。いくつかの実装では、登録アプリケーション195はユーザ125がユーザアクティビティデータの公開を認証しない場合、ユーザアクティビティデータを公開しないであろう。
いくつかの実装では、登録アプリケーション195は、ユーザ125から、公開されるべきコンテンツの選択を記述する、ユーザ入力を受信する。登録アプリケーション195は、少なくとも部分的に、コンテンツの選択に基づいて、ユーザアクティビティデータから公開されるべきユーザアクティビティデータのサブセットを決定し、ユーザ125の認証に応じて、ユーザアクティビティデータのサブセットを公開する。いくつかの実装では、ユーザアクティビティデータのサブセットは、ユーザアクティビティデータの少なくとも一部を含み得る。例えば、コンテンツの選択が、「コメントをする」タイプに関連付けられたユーザアクティビティデータを公開することを示す場合、登録アプリケーション195は、「コメントをする」タイプに関連付けられたユーザアクティビティデータのサブセットを決定し、ユーザ125の認証に応じて、ユーザアクティビティデータのサブセットを公開する。
いくつかの実装では、登録アプリケーション195は、ユーザアクティビティデータを公開すべき1つ以上の社会的つながり(例えば、友人、家族、公共団体等)を記述するユーザ入力を受信する。登録アプリケーション195は、ユーザ入力の受信に応答して、ユーザアクティビティデータ(または、ユーザアクティビティデータのサブセット)を1つ以上の社会的つながりに公開する。いくつかの実装では、登録アプリケーション195は、ユーザアクティビティデータ(または、ユーザアクティビティデータのサブセット)を個人的に公開することを示すユーザ入力を受信する。登録アプリケーション195は、ユーザ入力の受信に応答して、ユーザアクティビティデータ(または、ユーザアクティビティデータのサブセット)をユーザ125の個人用履歴に公開する。ユーザ履歴は、ユーザ125によって行われる1つ以上のユーザ相互作用を含み得る。ユーザ125の個人用履歴は、個人的に公開されるユーザ履歴であり得る。例えば、ユーザ125の個人用履歴は、ユーザ125に閲覧可能であるが、他のユーザ125によってアクセス可能ではないユーザ履歴を含む。
登録アプリケーション195は、図3、5、6A、6B、および6Cを参照してより詳細に以下に説明される。いくつかの実装では、登録アプリケーション195は、第2のサーバ107および第1のサーバ101の一方に記憶され、そこで実行されることができる。いくつかの実装では、登録アプリケーション195によって提供されるサービスは、「データ管理サービス」と称される。
図示される実装では、データサーバ109は、共有アプリケーション188を含む。いくつかの実装では、共有アプリケーション188は、第1のサーバ101内に記憶されることができる。
共有アプリケーション188は、データサーバ109を介して、第1のサーバ101と第2のサーバ107との間でユーザ情報を共有するためのコードおよびルーチンを含むことができる。いくつかの実装では、共有アプリケーション188は、ユーザ125の合意、および第2のサーバ107のデータサーバ109または第1のサーバ101への接続に応じて、サービス193と相互作用するユーザ125に関する情報を第2のサーバ107に伝送する。例えば、ユーザ125は、第三者サイトを訪問し、ウィジェット、例えば、「共有」ボタン、肯定応答指示子ボタン等をクリックする。共有アプリケーション188は、第2のサーバ107から、ユーザアクティビティを記述するデータを受信する。共有アプリケーション188は、少なくとも部分的に、ユーザ125の認証に基づいて、ソーシャルグラフ内に記憶されたユーザ125に関する情報を第2のサーバ107に提供する。
いくつかの実装では、共有アプリケーション188は、第2のサーバ107がデータサーバ109または第1のサーバ101に登録しているかどうかを決定する。第2のサーバ107がデータサーバ109または第1のサーバ101に登録している場合、共有アプリケーション188は、ユーザ情報を登録されている第2のサーバ107に提供する。そうでなければ、共有アプリケーション188は、ユーザ情報を第2のサーバ107に提供しない。いくつかの実装では、共有アプリケーション188は、第2のサーバ107がデータサーバ109または第1のサーバ101に登録しているかどうかを決定する。第2のサーバ107がデータサーバ109または第1のサーバ101に登録している場合、共有アプリケーション188は、選択されたユーザ情報を登録されている第2のサーバ107に提供する。例えば、共有アプリケーション188は、ユーザが第2のサーバ107と共有されることを認証した具体的情報を決定する。例えば、いくつかの実装では、共有アプリケーション188は、ユーザの連絡先リスト全体またはユーザの電子メールアドレスの全部ではなく、ユーザのある電子メールアドレスまたはユーザの連絡先のあるリストを共有することを決定することができる。
いくつかの実装では、共有アプリケーション188は、データサーバ109を介して、第1のサーバ101と第2のサーバ107との間の通信およびデータ交換を促進するためのコードおよびルーチンを含むことができる。共有アプリケーション188は、図4、7A、および7Bを参照してより詳細に以下に説明される。いくつかの実装では、共有アプリケーション188は、データサーバ109および第1のサーバ101の一方に記憶され、そこで実行されることができる。
認証アプリケーション196は、ユーザが認証証明を入力することを要求せずに、データサーバ109を介して、ユーザまたはユーザデバイス認証を第2のサーバ107に中継するためのコードおよびルーチンを含むことができる。いくつかの実装では、認証アプリケーション196は、第2のサーバ107からユーザデバイス115へのデータ転送を自動的に認証するためのコードおよびルーチンを含むことができる。いくつかの実装では、認証アプリケーション196は、ユーザデバイス115から第2のサーバ107へのデータ転送を自動的に認証するためのコードおよびルーチンを含むことができる。
いくつかの実装では、認証アプリケーション196は、ユーザ125またはユーザデバイス115が、ユーザ125またはユーザデバイス115へのデータの転送を可能にするために、第2のサーバ107または第2のサーバ107のサービス193を認証しているかどうかを決定する。ユーザ125またはユーザデバイス115が認証している場合、第2のサーバ107または第2のサーバ107のサービス193は、ユーザ125またはユーザデバイス115へのデータの転送を可能にし、データをユーザデバイス115に送信する。例えば、認証アプリケーション196は、第2のサーバ107から、ユーザ125が第三者サイトにログインし、ユーザのデバイス115にインストールするために、第三者サイト上で利用可能なアプリケーションを選択したことを記述する指示子を受信することができる。認証アプリケーション196は、そのアプリケーションに関連付けられたデータを送信するために、ユーザ125が第2のサーバ107または第2のサーバ107のサービス193を以前に認証しているかどうかを決定し、そのアプリケーションに関連付けられたデータを送信するために、ユーザ125が第2のサーバ107または第2のサーバ107のサービス193を以前に認証している場合、要求されたデータまたはインストールは、ユーザ125が認証証明を提供することを要求せずに、送信されることができる。同様に、認証アプリケーション196は、データをユーザのデバイス115に送信するために、ユーザ125が第2のサーバ107または第2のサーバ107のサービス193を以前に認証しているかどうかを決定し、データをユーザのデバイス115に送信するために、ユーザ125が第2のサーバ107または第2のサーバ107のサービス193を以前に認証している場合、要求されたデータまたはインストールは、ユーザ125が認証証明を提供することを要求せずに、送信されることができる。言い換えると、認証アプリケーション196は、特定のアプリケーションに対してワンタイム認証を可能にし(アプリケーションが以前に認証されている場合、追加の認証証明を要求する必要がない)、特定のユーザデバイス115に対してもワンタイム認証を可能にする(デバイスが以前に認証されている場合、追加の認証証明を要求する必要がない)。認証アプリケーション196は、図8を参照してより詳細に以下に説明される。
いくつかの実装では、データサーバ109はまた、エンゲージメントアプリケーション(図示せず)を含む。いくつかの実装では、エンゲージメントアプリケーションは、少なくとも部分的に、ユーザ履歴に基づいて、ユーザ125に提供されるべきソーシャルコンテンツを決定するためのコードおよびルーチンを含むことができる。前述のように、登録アプリケーション195は、ソーシャルネットワークアプリケーション103と協働し、ユーザアクティビティをユーザ履歴に集約し得る。いくつかの実装では、ユーザアクティビティは、第三者サイトとのユーザ相互作用を含み得る。いくつかの実装では、ユーザアクティビティは、ソーシャルネットワーク内で生じ得る。登録アプリケーション195は、ソーシャルネットワークアプリケーション103と協働し、第1のユーザ125のソーシャルフィード内のユーザアクティビティをソーシャルネットワークサービスに公開し得る。代替として、登録アプリケーション195は、ソーシャルネットワークアプリケーション103と協働し、ユーザアクティビティを第1のユーザ125のための個人用履歴に提供し得る。いくつかの実装では、少なくとも部分的に、ユーザ履歴に基づいて、エンゲージメントアプリケーションは、第1のサーバ101と協働し、第2のユーザ125からの明示的要求または第2のユーザ125がコンテンツを暗示的に要求することの決定に応じて、第2のユーザ125のためのソーシャルフィード内に投稿されるべき履歴内のユーザアクティビティを決定し得る。
少なくとも部分的に、ユーザ履歴に基づいて、ユーザ125に提供されるべきソーシャルコンテンツを決定するための多くの実施例が、可能であり得る。例えば、第1のユーザ125が、第三者サイトまたはソーシャルネットワーク上にカメラに関するレビューを投稿した。登録アプリケーション195は、第1のユーザ125のための履歴にその投稿を集約した。例えば、登録アプリケーション195が、ソーシャルネットワークアプリケーション103と協働し、その投稿をソーシャルフィード内に公開した。第2のユーザ125は、第2のユーザ125がそれについて関連がないと感じたため、その投稿を無視した。しかしながら、数ヶ月後、第2のユーザ125は、カメラを購入することを決定した。例えば、第2のユーザ125が、ソーシャルネットワーク内で友人と会話し、このような意志について述べた。第2のユーザの意志に応じて、エンゲージメントアプリケーションは、カメラに関するその投稿を読み出し、その投稿を第2のユーザ125のソーシャルフィードに公開する。
第1の記憶デバイス197は、本明細書に説明される機能性を提供するためのデータを記憶する非一過性メモリであることができる。第1の記憶装置197は、動的ランダムアクセスメモリ(DRAM)デバイス、静的ランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリ、またはいくつかの他のメモリデバイスであり得る。いくつかの実装では、第1の記憶装置197はまた、不揮発性メモリまたは同様の恒久的記憶デバイスと、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブ、CD−ROMデバイス、DVD−ROMデバイス、DVD−RAMデバイス、DVD−RWデバイス、フラッシュメモリデバイス、またはより恒久的ベースで情報を記憶するためのいくつかの他の大容量記憶デバイスを含む、媒体とを含む。
いくつかの実装では、第1の記憶装置197は、1人以上のユーザ125に関連付けられたユーザアクティビティデータを記憶する。例えば、第1の記憶装置197は、ユーザ125に関連付けられたユーザアクティビティデータを含む、ユーザ履歴を記憶する。いくつかの実装では、ユーザ履歴は、第2のサーバ107または第1のサーバ101上でユーザ125によって行われた1つ以上のユーザ相互作用の記述を含む。いくつかの実装では、ユーザ履歴は、他のユーザ125に閲覧可能なユーザ履歴であり得る。いくつかの他の事例では、ユーザ履歴は、ユーザ125に個人的に閲覧可能であり、他のユーザ125によってアクセス可能でない個人用ユーザ履歴であり得る。いくつかの実装では、登録アプリケーション195は、オプトインまたはオプトアウト選択肢およびプライバシー設定を提供し得る。
ユーザデバイス115a、115nは、メモリおよびプロセッサを含む、コンピューティングデバイス、例えば、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、携帯電話、携帯情報端末(PDA)、モバイル電子メールデバイス、ポータブルゲームプレーヤ、ポータブル音楽プレーヤ、1つ以上のプロセッサがその中に埋め込まれた、またはそこに結合されたテレビ、あるいはネットワーク105にアクセス可能な任意の他の電子デバイスであり得る。いくつかの実装では、ユーザデバイス115は、オンラインサービスにアクセスするためのブラウザ191を含む。図示される実装では、ユーザデバイス115aは、信号ライン108を介して、ネットワーク105に通信可能に連結される。ユーザ125aは、信号ライン110を介して、ユーザデバイス115aと相互作用する。ユーザデバイス115nは、ネットワーク105に通信可能に連結される。ユーザ125nはまた、ユーザデバイス115nと相互作用する。いくつかの実装では、接続アプリケーション190は、部分的に、ユーザデバイス115a、115n上に記憶され得るシンクライアントアプリケーションとして、かつ部分的に、第1のサーバ101、第三者サーバ107、およびデータサーバ109のうちの1つ以上に記憶され得る構成用途として作用する。
いくつかの実装では、ユーザ125は、汎用ログインアカウントを使用して、第1のサーバ101、第2のサーバ107、およびデータサーバ109のうちの1つ以上にログインする。いくつかの事例では、ユーザ125は、個々のログインアカウントを使用して、第1のサーバ101、第2のサーバ107、およびデータサーバ109の各々にログインする。
ここで図2を参照すると、接続アプリケーション190の実施例が、より詳細に示される。図2は、いくつかの実施例による、接続アプリケーション190と、第1のプロセッサ235と、第1のメモリ237と、第2の通信ユニット245と、記憶デバイス197とを含む、コンピューティングデバイス200のブロック図である。コンピューティングデバイス200の構成要素は、バス220によって通信可能に連結される。いくつかの実装では、コンピューティングデバイス200は、第1のサーバ101、ユーザデバイス115、第2のサーバ107、およびデータサーバ109のうちの1つであることができる。
第1のプロセッサ235は、算術論理ユニット、マイクロプロセッサ、汎用コントローラ、またはいくつかの他のプロセッサアレイを含み、計算を行ない、電子ディスプレイ信号をディスプレイデバイスに提供する。プロセッサ235は、他の構成要素と通信するために、信号ライン236を介して、バス220に結合される。プロセッサ235は、データ信号を処理し、複数命令セットコンピュータ(CISC)アーキテクチャ、縮小命令セットコンピュータ(RISC)アーキテクチャ、または命令セットの組み合わせを実装するアーキテクチャを含む、種々のコンピューティングアーキテクチャを含み得る。図2は、単一プロセッサ235を含むが、複数のプロセッサ235が、含まれ得る。他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ、および物理的構成も、可能である。
第1のメモリ237は、プロセッサ235によって実行され得る命令および/またはデータを記憶する。メモリ237は、信号ライン238を介して、他の構成要素と通信するために、バス220に結合される。命令および/またはデータは、本明細書に説明される技法を行なうためのコードを含み得る。メモリ237は、動的ランダムアクセスメモリ(DRAM)デバイス、静的ランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリ、またはいくつかの他のメモリデバイスであり得る。いくつかの実装では、メモリ237はまた、不揮発性メモリまたは同様の恒久的記憶デバイスと、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブ、CD−ROMデバイス、DVD−ROMデバイス、DVD−RAMデバイス、DVD−RWデバイス、フラッシュメモリデバイス、またはより恒久的ベースで情報を記憶するためのいくつかの他の大容量記憶デバイスを含む、媒体とを含む。
第1の通信ユニット245は、接続アプリケーション190が記憶され得る場所に応じて、ユーザデバイス115、第三者サーバ107、データサーバ109、および第1のサーバ101のうちの少なくとも1つとデータを送受信する。通信ユニット245は、信号ライン246を介して、バス220に連結される。いくつかの実装では、通信ユニット245は、ネットワーク105または別の通信チャネルへの直接物理的接続のためのポートを含む。例えば、通信ユニット245は、ユーザデバイス115との有線通信のためのUSB、SD、CAT−5、または同様のポートを含む。いくつかの実装では、通信ユニット245は、IEEE802.11、IEEE802.16、BLUETOOTH(登録商標)、または別の好適な無線通信方法を含む、1つ以上の無線通信方法を使用して、データをユーザデバイス115または他の通信チャネルと交換するための無線送受信機を含む。
いくつかの実装では、通信ユニット245は、ショートメッセージングサービス(SMS)、マルチメディアメッセージングサービス(MMS)、ハイパーテキスト転送プロトコル(HTTP)、直接データ接続、WAP、電子メール、または別の好適なタイプの電子通信を含む、セルラー通信ネットワークを経由して、データを送受信するためのセルラー通信送受信機を含む。いくつかの実装では、通信ユニット245は、有線ポートおよび無線送受信機を含む。通信ユニット245はまた、TCP/IP、HTTP、HTTPS、およびSMTP等を含む、標準的ネットワークプロトコルを使用して、ファイルおよび/またはメディアオブジェクトの配信のために、ネットワーク105への他の従来の接続を提供する。
第2の記憶デバイス297は、本明細書に説明される機能性を提供するためのデータを記憶する、非一過性メモリであることができる。第2の記憶デバイス297は、動的ランダムアクセスメモリ(DRAM)デバイス、静的ランダムアクセスメモリ(SRAM)デバイス、フラッシュメモリ、またはいくつかの他のメモリデバイスであり得る。いくつかの実装では、第2の記憶デバイス297はまた、不揮発性メモリまたは同様の恒久的記憶デバイスと、ハードディスクドライブ、フロッピー(登録商標)ディスクドライブ、CD−ROMデバイス、DVD−ROMデバイス、DVD−RAMデバイス、DVD−RWデバイス、フラッシュメモリデバイス、またはより恒久的ベースで情報を記憶するためのいくつかの他の大容量記憶デバイスを含む媒体とを含む。図示される実装では、第2の記憶デバイス297は、信号ライン241を介して、バス220に通信可能に連結される。
図2に示される図示される実装では、接続アプリケーション190は、第1のコントローラ202と、登録モジュール204と、第1のユーザインターフェースモジュール206と、ユーザ記録モジュール208と、データ伝送モジュール210と、フィルタモジュール212とを含む。接続アプリケーション190のこれらの構成要素は、バス220を介して、互に通信可能に連結される。
第1のコントローラ202は、接続アプリケーション190とコンピューティングデバイス200の他の構成要素との間の通信をハンドリングするためのルーチンを含む、ソフトウェアであることができる。いくつかの実装では、コントローラ202は、接続アプリケーション190とコンピューティングデバイス200の他の構成要素との間の通信をハンドリングするために、以下に説明される機能性を提供する、プロセッサ235によって実行可能な命令のセットであることができる。いくつかの事例では、コントローラ202は、コンピューティングデバイス200のメモリ237内に記憶されることができ、プロセッサ235によってアクセス可能かつ実行可能であることができる。コントローラ202は、信号ライン222を介して、プロセッサ235およびコンピューティングデバイス200の他の構成要素と協働および通信するために適合され得る。
第1のコントローラ202は、通信ユニット245を介して、ユーザデバイス115、第1のサーバ101、第2のサーバ107、およびデータサーバ109のうちの1つ以上とデータを送受信する。いくつかの事例では、第1のコントローラ202は、ユーザデバイス115から、通信ユニット245を介して、ユーザ125を第2のサーバ107によって提供されるサービスに記録するための記録要求を受信し、記録要求をユーザ記録モジュール208に送信する。いくつかの事例では、第1のコントローラ202は、ユーザアクティビティデータをデータ伝送モジュール210から受信し、通信ユニット245を介して、ユーザアクティビティデータをデータサーバ109に送信する。いくつかの事例では、第1のコントローラ202は、ユーザインターフェースモジュール206から、ユーザインターフェースを提供するためのグラフィカルデータを受信し、グラフィカルデータをユーザデバイス115に送信し、ユーザデバイス115に、ユーザインターフェースをユーザ125に提示させる。
いくつかの実装では、第1のコントローラ202は、接続アプリケーション190の構成要素からデータを受信し、データを第2の記憶デバイス297内に記憶する。例えば、第1のコントローラ202は、ユーザ記録モジュール208から、1つ以上のプライバシー設定を記述するデータを受信し、データを第2の記憶デバイス297内に記憶する。いくつかの実装では、第1のコントローラ202は、第2の記憶デバイス297からデータを読み出し、データを接続アプリケーション190の構成要素に送信する。例えば、第1のコントローラ202は、第2のサーバ107によって規定されたユーザ相互作用の1つ以上のタイプを記述するデータを第2の記憶デバイス297から読み出し、データをフィルタモジュール212に送信する。
登録モジュール204は、第2のサーバ107をデータサーバ109に登録するためのルーチンを含む、ソフトウェアであることができる。いくつかの実装では、登録モジュール204は、第2のサーバ107をデータサーバ109に登録するために、以下に説明される機能性を提供する、プロセッサ235によって実行可能な命令のセットであることができる。いくつかの事例では、登録モジュール204は、コンピューティングデバイス200のメモリ237内に記憶されることができ、プロセッサ235によってアクセス可能かつ実行可能であることができる。登録モジュール204は、信号ライン224を介して、プロセッサ235およびコンピューティングデバイス200の他の構成要素と協働および通信するために適合され得る。
いくつかの実装では、登録モジュール204は、登録アプリケーション195と協働し、第2のサーバ107をデータサーバ109に登録し、第2のサーバ107が、ユーザアクティビティデータをデータサーバ109と共有することを可能にする。例えば、接続アプリケーション190の登録モジュール204は、登録要求を登録アプリケーション195に送信し、登録アプリケーション195に、データサーバ109によって規定された1つ以上の要件を記述するデータを登録モジュール204に送信させる。要件は、例えば、データサーバ109と共有されるべきユーザ相互作用の1つ以上のタイプを規定するデータを含むことができる。例えば、データ要件は、データサーバ109が、サービス193とのあるユーザ相互作用のタイプを記述するアクティビティデータのみ(例えば、ユーザ125がビデオを視聴したかどうか、ユーザ125が記事にコメントしたかどうか等)の受信に関心があることを示す。登録モジュール204は、1つ以上の要件を第2のサーバ107のアドミニストレータに提示する。第2のサーバ107のアドミニストレータが、アドミニストレータが要件に同意することを示す入力を提供する場合、登録モジュール204は、要件の承諾を示す信号を登録アプリケーション195に送信し、登録アプリケーション195に、ユーザアクティビティデータをデータサーバ109と共有するために、第2のサーバ107をデータサーバ109に登録させる。アドミニストレータが、要件に同意しない場合、登録モジュール204は、要件の拒否を示す信号を登録アプリケーション195に送信し、第2のサーバ107は、データサーバ109に登録されないであろう。
いくつかの実装では、登録モジュール204は、登録プロセスの間にデータサーバ109と共有されるべきユーザ相互作用の1つ以上のタイプを規定する。例えば、登録モジュール204は、ユーザ相互作用の視聴タイプおよびコメントタイプがデータサーバ109と共有されるべきと規定する。その結果、視聴タイプおよびコメントタイプに関連付けられたユーザアクティビティデータは、ユーザアクティビティデータに関連付けられたユーザ125の合意に応じて、データサーバ109に伝送され得る。登録モジュール204は、第2のサーバ107によって規定されたユーザ相互作用の1つ以上のタイプを第2の記憶デバイス297内に記憶する。
第2のサーバ107に伝送される要件に関して前述のように、いくつかの実装では、接続アプリケーション190の登録モジュール204は、データサーバ109と共有されるべき、サービス193とのユーザ相互作用の1つ以上のタイプを示す、入力を受信する。登録モジュール204は、接続アプリケーション190の他のエンティティと連携し、データサーバ109と共有するために、規定されたタイプであるデータを集約する。
ユーザ記録モジュール208は、ユーザ125を第2のサーバ107に記録するためのルーチンを含むソフトウェアであることができる。いくつかの実装では、ユーザ記録モジュール208は、ユーザ125を第2のサーバ107に登録するために、以下に説明される機能性を提供する、プロセッサ235によって実行可能な命令のセットであることができる。いくつかの事例では、ユーザ記録モジュール208は、コンピューティングデバイス200のメモリ237内に記憶されることができ、プロセッサ235によってアクセス可能かつ実行可能であることができる。ユーザ記録モジュール208は、信号ライン228を介して、プロセッサ235およびコンピューティングデバイス200の他の構成要素と協働および通信するために適合され得る。
いくつかの実装では、ユーザ記録モジュール208は、ユーザ125から、記録要求を受信し、ユーザインターフェースモジュール206に、記録フォームをユーザ125に提供するためのグラフィカルデータを生成するように命令する。ユーザインターフェースモジュール206は、グラフィカルデータをユーザデバイス115に送信し、ユーザデバイス115に、記録フォームをユーザ125に提示させる。ユーザ125は、記録フォームに記入し、記録フォームをユーザ記録モジュール208に送信し、ユーザ記録モジュール208に、ユーザ125を第2のサーバ107によって提供されるサービスに記録させる。
いくつかの実装では、ユーザ記録モジュール208は、記録プロセスの間にユーザ125から、オプトイン入力を受信する。いくつかの実装では、ユーザ記録モジュール208は、ユーザ125から、ユーザ125が第2のサーバ107とデータサーバ109との間のデータ共有をオプトアウトすることを示すオプトアウト入力を受信する。
いくつかの実装では、ユーザ記録モジュール208は、記録プロセスの間、ユーザ125から、1つ以上のプライバシー設定を記述するデータを受信する。いくつかの事例では、ユーザ記録モジュール208は、ユーザ125がデータサーバ109と共有することを選択したユーザ相互作用の1つ以上のタイプを記述するデータを受信する。いくつかの事例では、ユーザ記録モジュール208は、ユーザ125から、ソーシャルネットワークアプリケーション103とのプライバシーレベルを記述するデータを受信する。プライバシーレベルは、例えば、ソーシャルネットワークにおいて、ユーザ125がそのアクティビティデータを公開することを選択する1つ以上の社会的つながり(例えば、友人、同僚等)を示す。いくつかの実装では、ユーザ125はまた、登録アプリケーション195を介して、データ共有に対してプライバシー設定を構成し得る。例えば、登録アプリケーション195は、ユーザインターフェースモジュール206に、ユーザインターフェースをユーザ125に提供するように命令し、ユーザ125が、ユーザインターフェースを介して、プライバシー設定を構成することを可能にする。登録アプリケーション195は、ユーザインターフェースを介して、ユーザ125から、プライバシー設定を受信し、プライバシー設定を第1の記憶装置197、第2の記憶装置297、または第1の記憶装置197および第2の記憶装置297の組み合わせ内に記憶する。
フィルタモジュール212は、ユーザアクティビティデータをフィルタリングするためのルーチンを含む、ソフトウェアであることができる。いくつかの実装では、フィルタモジュール212は、ユーザアクティビティデータをフィルタリングするために、以下に説明される機能性を提供する、プロセッサ235によって実行可能な命令のセットであることができる。いくつかの事例では、フィルタモジュール212は、コンピューティングデバイス200のメモリ237内に記憶されることができ、プロセッサ235によってアクセス可能かつ実行可能であることができる。フィルタモジュール212は、信号ライン232を介して、プロセッサ235およびコンピューティングデバイス200の他の構成要素と協働および通信するために適合され得る。
いくつかの実装では、フィルタモジュール212は、第1のコントローラ202を介して、サービスモジュール193から、サービスとのユーザ相互作用を記述するユーザアクティビティデータを受信する。フィルタモジュール212は、ユーザアクティビティデータ(または、ユーザ相互作用)が、第2のサーバ107によって規定されたユーザ相互作用のタイプであり得るかどうかを決定する。例えば、前述の登録モジュール204によって規定されたユーザ相互作用のタイプが、視聴タイプを含む場合、フィルタモジュール212は、ユーザアクティビティデータが視聴タイプに分類され得るかどうかを決定する。例えば、ユーザアクティビティデータが、「視聴」アクションを含む場合、フィルタモジュール212は、ユーザアクティビティデータが、第2のサーバ107によって規定された視聴タイプであり得ると決定する。
ユーザアクティビティデータが、第2のサーバ107によって規定されたユーザ相互作用のタイプに分類されることができる場合、フィルタモジュール212は、ユーザアクティビティデータをデータ伝送モジュール210に送信し、データ伝送モジュール210に、ユーザアクティビティデータをデータサーバ109に送信させる。いくつかの実装では、フィルタモジュール212はさらに、ユーザ125が、ユーザアクティビティデータをデータサーバ109と共有することを認証したかどうかを決定する。ユーザ125が、データ共有を認証した場合、フィルタモジュール212は、ユーザアクティビティデータをデータサーバ109に配信するために、ユーザアクティビティデータをデータ伝送モジュール210に送信する。ユーザ125が、データ共有を認証していない場合、フィルタモジュール212は、ユーザアクティビティデータをデータ伝送モジュール210に送信せず、ユーザアクティビティデータは、データサーバ109に配信されないであろう。
しかしながら、ユーザアクティビティデータが、第2のサーバ107によって規定されたユーザ相互作用のタイプに分類されることができない場合、フィルタモジュール212は、ユーザアクティビティデータをデータ伝送モジュール210に送信せず、ユーザアクティビティデータは、データサーバ109に伝送されないであろう。
いくつかの実装では、フィルタモジュール212は、ユーザアクティビティデータに加え、メタデータを決定する。いくつかの実装では、メタデータは、サービス193とのユーザ相互作用におけるアクションを記述する動詞に関連する、追加の情報を記述するデータを含むことができる。動詞に関連する追加の情報の実施例として、限定されないが、アクションを行うユーザ125の識別、アクションの日時、およびユーザ125がアクションを行う対象が挙げられる。他の実施例も、可能である。いくつかの実装では、フィルタモジュール212は、サービスモジュール193から、メタデータを受信する。いくつかの実装では、フィルタモジュール212は、動詞に関連付けられた追加の情報を記述するメタデータを生成し、メタデータをユーザアクティビティデータに追加する。フィルタモジュール212は、データサーバ109にデータを伝送するために、メタデータとともに、ユーザアクティビティデータをデータ伝送モジュール210に伝送する。いくつかの実装では、フィルタモジュール212は、ユーザ相互作用を記述するあるタイプの動詞に関連するメタデータを決定する。例えば、フィルタモジュール212は、ユーザ相互作用の視聴タイプに関するメタデータを決定し、視聴タイプのアクションに関連するメタデータをデータ伝送モジュール210に伝送する。
第1のユーザインターフェースモジュール206は、ユーザインターフェースを提供するためのグラフィカルデータを生成するためのルーチンを含む、ソフトウェアであることができる。いくつかの実装では、ユーザインターフェースモジュール206は、ユーザインターフェースを提供するためのグラフィカルデータを生成するための以下に説明される機能性を提供する、プロセッサ235によって実行可能な命令のセットであることができる。いくつかの事例では、ユーザインターフェースモジュール206は、コンピューティングデバイス200のメモリ237内に記憶されることができ、プロセッサ235によってアクセス可能かつ実行可能であることができる。ユーザインターフェースモジュール206は、信号ライン226を介して、プロセッサ235およびコンピューティングデバイス200の他の構成要素と協働および通信するために適合され得る。
いくつかの実装では、第1のユーザインターフェースモジュール206は、記録フォームを描写するユーザインターフェースを提供するためのグラフィカルデータを生成する。ユーザインターフェースモジュール206は、グラフィカルデータをユーザ125によって動作されるユーザデバイス115に送信し、ユーザデバイス115に、ユーザインターフェースを介して、記録フォームをユーザ125に提示させる。いくつかの実装では、ユーザインターフェースモジュール206は、1つ以上のプライバシー設定を描写するユーザインターフェースを提供するためのグラフィカルデータを生成する。ユーザインターフェースモジュール206は、グラフィカルデータをユーザデバイス115に送信し、ユーザデバイス115に、ユーザインターフェースをユーザ125に提示させる。ユーザ125は、ユーザインターフェースを介して、プライバシー設定を構成し得る。例えば、ユーザ125は、ユーザインターフェースを介して、ソーシャルネットワークアプリケーション103とのプライバシーレベルを規定する。
いくつかの実装では、ユーザインターフェースモジュール206は、ユーザ125がユーザアクティビティデータの公開を構成することを可能にするユーザインターフェースを提供するためのグラフィカルデータを生成する。例えば、ユーザインターフェースは、公開されるべきユーザアクティビティデータのサブセット、ユーザアクティビティデータのサブセットが公開され得る1つ以上の社会的つながり、または、ユーザアクティビティデータのサブセットがユーザ125の個人用履歴内において個人的に公開すべきかまたはソーシャルネットワーク内におけるユーザ125によって承認された他のユーザ125等に公開すべきかを、ユーザ125が選択することを可能にする。いくつかの実装では、ユーザインターフェースモジュール206は、他のユーザインターフェースをユーザ125に提供するためのグラフィカルデータを生成し得る。
いくつかの実装では、ユーザインターフェースモジュール206は、第三者サイト上のウィジェットと相互作用するユーザ125が、外部アカウントをユーザ125のローカルアカウントに接続することを可能にする、ユーザインターフェースを表示するためのユーザインターフェースデータを決定する。例えば、ユーザインターフェースモジュール206は、データサーバ109から、第三者サイト上のウィジェットをクリックするユーザ125にユーザインターフェースを提供するための制御信号を受信する。例えば、ユーザインターフェースは、ユーザ125が、ユーザ125が外部アカウント(例えば、ソーシャルネットワークアプリケーション103に関するソーシャルアカウント)をローカルアカウント(例えば、第2のサーバ107に関するアカウント)に接続することを所望するかどうかを選択することを可能にする。
ユーザ125が、ソーシャルアカウントを第三者アカウントと接続することを選択する場合、第1のコントローラ202は、ユーザ125から、ユーザ125の選択ならびにソーシャルアカウントログイン情報を受信し、ユーザ125の第三者アカウントをソーシャルアカウントと接続するための情報をユーザ記録モジュール208に送信する。いくつかの実装では、第1のコントローラ202はまた、ユーザ125のためのアカウント接続を示す信号をデータサーバ109に送信する。ユーザ125が、アカウント接続に同意しない場合、第1のコントローラ202は、ユーザ125のためのアカウントを接続するようにユーザ記録モジュール208を制御せず、また、第1のコントローラ202は、接続信号をデータサーバ109に送信もしない。
データ伝送モジュール210は、ユーザアクティビティデータをデータサーバ109に伝送するためのルーチンを含むソフトウェアであることができる。いくつかの実装では、データ伝送モジュール210は、ユーザアクティビティデータをデータサーバ109に伝送するために、以下に説明される機能性を提供する、プロセッサ235によって実行可能な命令のセットであることができる。いくつかの事例では、データ伝送モジュール210は、コンピューティングデバイス200のメモリ237内に記憶されることができ、プロセッサ235によってアクセス可能かつ実行可能であることができる。データ伝送モジュール210は、信号ライン230を介して、プロセッサ235およびコンピューティングデバイス200の他の構成要素と協働および通信するために適合され得る。
いくつかの実装では、データ伝送モジュール210は、ユーザアクティビティデータをフィルタモジュール212から受信する。データ伝送モジュール210は、第1のコントローラ202および第1の通信ユニット245を介して、ユーザアクティビティデータをデータサーバ109に伝送する。
ここで図3を参照すると、登録アプリケーション195の実施例が、より詳細に示される。図3は、いくつかの実施例による、第2の通信ユニット345と、第2のプロセッサ335と、第2のメモリ337と、第1の記憶デバイス197とを含む、コンピューティングデバイス300のブロック図である。コンピューティングデバイス300の構成要素は、バス320によって通信可能に連結される。いくつかの実装では、コンピューティングデバイス300は、第1のサーバ101、ユーザデバイス115、第2のサーバ107、およびデータサーバ109のうちの1つであることができる。
第2の通信ユニット345、第2のプロセッサ335、および第2のメモリ337は、それぞれ、第1の通信ユニット245、第1のプロセッサ235、および第1のメモリ237に関して前述のような同様の機能性を提供する。故に、これらの説明は、ここでは繰り返されない。図示される実装では、第2の通信ユニット345は、信号ライン346を介して、バス320に通信可能に連結され、第2のプロセッサ335は、信号ライン336を介して、バス320に通信可能に連結され、第2のメモリは、信号ライン338を介して、バス320に通信可能に連結される。第1の記憶装置197は、前述の図1を参照して前述されており、説明は、ここでは繰り返されない。図示される実装では、第1の記憶装置197は、信号ライン341を介して、バス320に通信可能に連結される。
図3に示される図示される実装では、登録アプリケーション195は、第2のコントローラ302と、決定モジュール304と、第2のユーザインターフェースモジュール306と、制限モジュール308と、出力モジュール310とを含む。登録アプリケーション195のこれらの構成要素は、バス320を介して、互に通信可能に連結される。
第2のコントローラ302は、登録アプリケーション195とコンピューティングデバイス300の他の構成要素との間の通信をハンドリングするためのルーチンを含む、ソフトウェアであることができる。いくつかの実装では、第2のコントローラ302は、登録アプリケーション195とコンピューティングデバイス300の他の構成要素との間の通信をハンドリングするために、以下に説明される機能性を提供するための、第2のプロセッサ335によって実行可能な命令のセットであることができる。いくつかの事例では、第2のコントローラ302は、コンピューティングデバイス300の第2のメモリ337内に記憶されることができ、第2のプロセッサ335によってアクセス可能かつ実行可能であることができる。第2のコントローラ302は、信号ライン322を介して、第2のプロセッサ335およびコンピューティングデバイス300の他の構成要素と協働および通信するために適合され得る。
第2のコントローラ302は、通信ユニット345を介して、ユーザデバイス115、第1のサーバ101、第2のサーバ107、およびデータサーバ109のうちの1つ以上とデータを送受信する。いくつかの事例では、第2のコントローラ302は、第2の通信ユニット345を介して、第2のサーバ107から、データサーバ109に伝送されるべきユーザ相互作用の1つ以上のタイプを規定する入力を受信する。いくつかの事例では、第2のコントローラ302は、第2の通信ユニット345を介して、ユーザ125が第2のサーバ107によって提供されるサービスに記録していることの指示子を受信する。いくつかの事例では、第2のコントローラ302は、第2の通信ユニット345を介して、第2のサーバ107から、規定されたタイプである第2のサーバ107によって提供されるサービスとのユーザ相互作用を記述するユーザアクティビティデータを受信する。いくつかの事例では、第2のコントローラ302は、第2の通信ユニット345を介して、第2のサーバ107から、ユーザデバイス115に提供されるべき、ユーザ125によって承認されたコンテンツを規定する入力を受信する。
いくつかの実装では、第2のコントローラ302は、登録アプリケーション195の他の構成要素からデータを受信し、データを第1の記憶装置197に記憶する。
いくつかの実装では、第2のコントローラ302は、第2のサーバ107に、データサーバ109と共有されるべきユーザアクティビティデータの1つ以上のタイプを記述する、要件入力を伝送する。いくつかの実装では、要件入力は、データサーバ109のアドミニストレータによって提供される入力、ユーザ125によって提供される入力、またはデータサーバ109のアドミニストレータによって提供される入力およびユーザ125によって提供される入力の組み合わせに基づいて、決定される。いくつかの実装では、第2のコントローラ302は、ユーザアクティビティデータをソーシャルネットワークアプリケーション103に伝送する。
決定モジュール304は、ユーザ125がコンテンツを承認したかどうかを決定するためのルーチンを含む、ソフトウェアであることができる。いくつかの実装では、決定モジュール304は、ユーザ125がコンテンツを承認したかどうかを決定するために、以下に説明される機能性を提供するための、第2のプロセッサ335によって実行可能な命令のセットであることができる。いくつかの事例では、決定モジュール304は、コンピューティングデバイス300の第2のメモリ337内に記憶されることができ、第2のプロセッサ335によってアクセス可能かつ実行可能であることができる。決定モジュール304は、信号ライン324を介して、第2のプロセッサ335およびコンピューティングデバイス300の他の構成要素と協働および通信するために適合され得る。
いくつかの実装では、決定モジュール304は、第2のコントローラ302を介して、第2のサーバ107によって提供されるサービス(例えば、サービス193)とのユーザ相互作用を記述するユーザアクティビティデータを受信する。決定モジュール304は、ユーザアクティビティデータが、ユーザ125によって、ユーザデバイス115に提供されることが承認されているかどうかを決定する。例えば、ユーザ125によって承認されたコンテンツを規定する、ユーザ125からの入力が、ユーザ125が、ユーザアクティビティデータを承認していることを示す場合、決定モジュール304は、ユーザアクティビティデータがユーザ125によって承認されていると決定し、承認されたユーザアクティビティデータに関するさらなる処理のために、ユーザアクティビティデータを制限モジュール308に配信する。入力が、ユーザ125がそのユーザアクティビティデータを承認していないことを示す場合、決定モジュール304は、ユーザアクティビティデータを制限モジュール308に送信せず、ユーザアクティビティデータは、ユーザ125によって動作されるユーザデバイス115に提供されないであろう。
第2のユーザインターフェースモジュール306は、グラフィカルユーザインターフェースをユーザデバイス115に提供するためのグラフィカルデータを生成するためのルーチンを含むソフトウェアであることができる。いくつかの実装では、第2のユーザインターフェースモジュール306は、図8および9を参照して以下に説明されるユーザインターフェースを提供するためのグラフィカルデータを生成するための、プロセッサ335によって実行可能な命令のセットであることができる。ユーザインターフェースモジュール306は、グラフィカルデータをユーザデバイス115に送信し、ユーザデバイス115に、グラフィカルユーザインターフェースをユーザ125に提示させる。ユーザ125は、ユーザデバイス115を使用して、入力をグラフィカルユーザインターフェースに提供し、それによって、決定モジュール304がその機能を行うために必要な入力を提供する。いくつかの実装では、ユーザインターフェースモジュール306は、ユーザインターフェースを提供するためのグラフィカルデータを生成するための前述の機能性を提供する、プロセッサ335によって実行可能な命令のセットであることができる。いくつかの事例では、ユーザインターフェースモジュール306は、コンピューティングデバイス300のメモリ337内に記憶されることができ、プロセッサ335によってアクセス可能かつ実行可能であることができる。ユーザインターフェースモジュール306は、信号ライン326を介して、プロセッサ335およびコンピューティングデバイス300の他の構成要素と協働および通信するために適合され得る。
制限モジュール308は、ユーザアクティビティデータが制限されるかどうかを決定するためのルーチンを含むソフトウェアであることができる。制限モジュール308の機能性は、図6Cを参照してより詳細に説明される。制限モジュール308は、信号ライン328を介して、プロセッサ335およびコンピューティングデバイス300の他の構成要素と協働および通信するために適合され得る。
いくつかの実装では、制限モジュール308は、承認されたユーザアクティビティデータによって記述される相互作用のタイプを決定する。例えば、制限モジュール308は、第2のコントローラ302を介して、ユーザアクティビティデータに関連付けられたユーザ相互作用のタイプを規定する入力を受信する。制限モジュール308は、ユーザ相互作用のタイプが、ユーザ規定タイプ、例えば、「視聴」タイプであるかどうかを決定する。ユーザ相互作用のタイプが、「視聴」タイプに分類されることができない場合、制限モジュール308は、公開ソーシャルフィードへの承認されたユーザアクティビティデータをユーザデバイス115に提供するために、ユーザアクティビティデータを出力モジュール310に送信する。故に、いくつかの実施形態では、ユーザアクティビティデータは、ユーザ125がこの情報を個人用に維持することを望み得るため、それが視聴タイプに関する場合、制限される。例えば、ユーザ125は、他のユーザ125が、自らが鑑賞しているビデオについて把握することを望まない場合がある。ユーザ相互作用のタイプが、「視聴」タイプに分類されることができる場合、制限モジュール308は、追加の制限を承認されたユーザアクティビティデータに適用する。ユーザアクティビティデータが、制限されない場合、制限モジュール308は、コンテンツをソーシャルネットワークサービス上の公開ユーザソーシャルフィードに提供するために、承認されたアクションを記述するコンテンツを出力モジュール310に送信し得る。ユーザアクティビティデータが、制限される場合、制限モジュール308は、出力モジュール310に、承認されたアクションを他のユーザ125にアクセス可能でないユーザの個人用履歴125に提供するように命令する。
出力モジュール310は、ユーザ承認されたアクティビティデータをユーザ125に提供するためのルーチンを含む、ソフトウェアであることができる。いくつかの実装では、出力モジュール310は、承認されたユーザアクティビティデータをソーシャルネットワークアプリケーション103に伝送するための以下に説明される機能性を提供する、プロセッサ335によって実行可能な命令のセットであることができる。いくつかの事例では、出力モジュール310は、コンピューティングデバイス300のメモリ337内に記憶されることができ、プロセッサ335によってアクセス可能かつ実行可能であることができる。出力モジュール310は、信号ライン330を介して、プロセッサ335およびコンピューティングデバイス300の他の構成要素と協働および通信するために適合され得る。
いくつかの実装では、出力モジュール310は、承認されたユーザアクティビティデータをソーシャルネットワークアプリケーション109によって提供されるソーシャルネットワークサービス上のユーザソーシャルフィードに送信する。いくつかの実装では、出力モジュール310は、承認されたユーザアクティビティを他のユーザ125によってアクセス可能でないユーザの個人用履歴125に提供する。
ここで図4を参照すると、共有アプリケーション188の実施例が、より詳細に示される。図4は、いくつかの実施例による、第3の通信ユニット345と、第3のプロセッサ335と、第3のメモリ337と、第1の記憶デバイス197とを含む、コンピューティングデバイス400のブロック図である。コンピューティングデバイス400の構成要素は、バス420によって通信可能に連結される。いくつかの実装では、コンピューティングデバイス400は、第1のサーバ101、ユーザデバイス115、第2のサーバ107、およびデータサーバ109のうちの1つであることができる。
第3の通信ユニット445、第3のプロセッサ435、および第3のメモリ437は、それぞれ、第1の通信ユニット245、第1のプロセッサ235、および第1のメモリ237に関して前述のような同様の機能性を提供する。故に、これらの説明は、ここでは繰り返されない。図示される実装では、第3の通信ユニット445は、信号ライン446を介して、バス420に通信可能に連結され、第3のプロセッサ435は、信号ライン436を介して、バス420に通信可能に連結され、第3のメモリは、信号ライン438を介して、バス420に通信可能に連結される。第1の記憶装置197は、図1を参照して前述されており、説明は、ここでは繰り返されない。図示される実装では、第1の記憶装置197は、信号ライン441を介して、バス420に通信可能に連結される。
図4に示される図示される実装では、共有アプリケーション188は、第3のコントローラ402と、識別モジュール404と、認証モジュール406と、暗号化モジュール408とを含む。共有アプリケーション188のこれらの構成要素は、バス420を介して、互に通信可能に連結される。
第3のコントローラ402は、共有アプリケーション188とコンピューティングデバイス400の他の構成要素との間の通信をハンドリングするためのルーチンを含む、ソフトウェアであることができる。いくつかの実装では、第3のコントローラ402は、共有アプリケーション188とコンピューティングデバイス400の他の構成要素との間の通信をハンドリングするために、以下に説明される機能性を提供する、第3のプロセッサ435によって実行可能な命令のセットであることができる。いくつかの事例では、第3のコントローラ402は、コンピューティングデバイス400の第3のメモリ437内に記憶されることができ、第3のプロセッサ435によってアクセス可能かつ実行可能であることができる。第3のコントローラ402は、信号ライン422を介して、第3のプロセッサ435およびコンピューティングデバイス400の他の構成要素と協働および通信するために適合され得る。
第3のコントローラ402は、通信ユニット445を介して、ユーザデバイス115、第1のサーバ101、第2のサーバ107、およびデータサーバ109のうちの1つ以上とデータを送受信する。いくつかの事例では、第3のコントローラ402は、通信ユニット445を介して、第2のサーバ107から、ユーザ125が第三者サイト上のウィジェットと相互作用したことの指示子を受信する。いくつかの事例では、第3のコントローラ402は、通信ユニット445を介して、第2のサーバ107を識別する入力を受信する。いくつかの事例では、第3のコントローラ402は、通信ユニット445を介して、第1のサーバ101から、ユーザ認証信号を受信し、ユーザ認証信号の受信に応じて、通信ユニット445を介して、ユーザ125に関する情報を第2のサーバ107に送信する。
いくつかの実装では、第3のコントローラ402は、共有アプリケーション188の構成要素から、データを受信し、データを第1の記憶装置197内に記憶する。
識別モジュール404は、第2のサーバ107を識別し、第2のサーバ107がデータサーバ109に登録されているかどうかを決定するためのルーチンを含む、ソフトウェアであることができる。いくつかの実装では、識別モジュール404は、第2のサーバ107を識別し、第2のサーバ107がデータサーバ109に登録されているかどうかを決定するために、以下に説明される機能性を提供する、第3のプロセッサ435によって実行可能な命令のセットであることができる。いくつかの事例では、識別モジュール404は、コンピューティングデバイス400の第3のメモリ437内に記憶されることができ、第3のプロセッサ435によってアクセス可能かつ実行可能であることができる。識別モジュール404は、信号ライン424を介して、第3のプロセッサ435およびコンピューティングデバイス400の他の構成要素と協働および通信するために適合され得る。
いくつかの実装では、識別モジュール404は、第3のコントローラ402を介して、第2のサーバ107を識別する入力を受信する。識別モジュール404は、少なくとも部分的に、入力(例えば、識別コード、一意の記録番号等)によって規定された第2のサーバ107の識別情報に基づいて、第2のサーバ107がデータサーバ109に登録さているかどうかを決定する。第2のサーバ107をデータサーバ109に登録するための登録プロセスは、図2を参照して前述されている。例えば、前述のように、登録モジュール204は、登録アプリケーション195と協働し、第2のサーバ107のアドミニストレータによる規定された要件の承諾に応じて、第2のサーバ107をデータサーバ109に登録する。いくつかの実装では、識別モジュール404は、第2のサーバ107がデータサーバ109に登録されていることを決定し、さらなる処理のために、第2のサーバ107の登録を示す登録信号を認証モジュール406に送信する。識別モジュール404が、第2のサーバ107がデータサーバ109に登録されていないことを決定する場合、識別モジュール404は、ユーザ情報を第2のサーバ107に提供しない。
認証モジュール406は、ユーザ125がユーザ情報を共有することを許可しているかどうかを決定するためのルーチンを含む、ソフトウェアであることができる。いくつかの実装では、認証モジュール406は、ユーザ125がユーザ情報を共有することを許可しているかどうかを決定するために、以下に説明される機能性を提供する、第3のプロセッサ435によって実行可能な命令のセットであることができる。いくつかの事例では、認証モジュール406は、コンピューティングデバイス400の第3のメモリ437内に記憶されることができ、第3のプロセッサ435によってアクセス可能かつ実行可能であることができる。認証モジュール406は、信号ライン426を介して、第3のプロセッサ435およびコンピューティングデバイス400の他の構成要素と協働および通信するために適合され得る。
いくつかの実装では、認証モジュール406は、第3のコントローラ402を介して、第2のサーバ107から、ユーザ125が第三者サイト上のウィジェットと相互作用したことの指示子を受信する。例えば、ユーザ125は、第三者サイトにログインし、ソーシャルネットワークサービス内のユーザ125のソーシャルコンテンツに第三者サイトによって提供される記事を共有するための「共有」ボタンをクリックする。第2のサーバ107は、少なくとも部分的に、ユーザ125のログイン情報に基づいて、ユーザ125の識別を規定し、ユーザ相互作用を記述する指示子ならびにユーザ125の識別をデータサーバ109に送信する。認証モジュール406は、少なくとも部分的に、第2のサーバ107からの指示子に基づいて、ユーザ125の識別を決定する。
いくつかの実装では、認証モジュール406は、ユーザ125がソーシャルグラフ内に記憶されるユーザ125の情報を登録された第2のサーバ107と共有することを許可するかどうかを決定する。ユーザ125が、データサーバ109がユーザ情報を登録された第2のサーバ107と共有することを許可する場合、認証モジュール406は、ユーザ情報を登録された第2のサーバ107に提供するためのユーザ125の認証を示す認証信号を暗号化モジュール408に送信する。ユーザ125が、情報を第2のサーバ107と共有することを拒否する場合、認証モジュール406は、ユーザ125の情報を第2のサーバ107に提供しない。
暗号化モジュール408は、ユーザ情報を暗号化するためのルーチンを含む、ソフトウェアであることができる。いくつかの実装では、暗号化モジュール408は、ユーザ情報を暗号化するために、以下に説明される機能性を提供する、第3のプロセッサ435によって実行可能な命令のセットであることができる。いくつかの事例では、暗号化モジュール408は、コンピューティングデバイス400の第3のメモリ437内に記憶されることができ、第3のプロセッサ435によってアクセス可能かつ実行可能であることができる。暗号化モジュール408は、信号ライン428を介して、第3のプロセッサ435およびコンピューティングデバイス400の他の構成要素と協働および通信するために適合され得る。
いくつかの実装では、暗号化モジュール408は、第3のコントローラ402を介して、識別モジュール404および認証モジュール406から、それぞれ、登録信号および認証信号を受信する。これらの2つの信号の受信に応答して、暗号化モジュール408は、ソーシャルグラフから、ユーザ125の情報を読み出し、情報を暗号化する。例えば、暗号化モジュール408は、暗号化技法を適用し、情報をエンコードし、第3のコントローラ402を介して、エンコードされた情報と、随意に、秘密鍵とを第2のサーバ107に送信し、セキュア化された伝送を可能にし、第2のサーバ107がユーザ情報を他の承認されていない第2のサーバ107にさらに拡散させることを防止する。
ここで図5を参照すると、第三者修正をユーザ履歴に提供するための方法500の実施例が、説明される。図示される実装では、方法500は、データサーバ109内に含まれる登録アプリケーション195に伝送されるべきアクションの1つ以上のタイプを規定する入力を受信すること502を含むことができる。例えば、接続アプリケーション190によって提供される接続サービスは、登録アプリケーション195と通信し、登録アプリケーション195によって提供されるデータ管理サービスに報告されるべきアクティビティの1つ以上のタイプを規定する入力を提供する。登録アプリケーション195は、入力を受信する502。方法500はまた、接続アプリケーション190から、ユーザアクションを記述するアクティビティデータを受信すること504を含むことができる。方法500は、ユーザデバイス115から、ユーザ125に提供され得るアクティビティデータによって記述されるアクションを規定する選択を受信すること506を含むことができる。方法500は、規定されたアクションを記述するアクティビティデータをユーザ125に提供すること508によって続き得る。
ここで図6A−6Cを参照すると、第三者修正をユーザ履歴に提供するための方法600の別の実施例が、説明される。図6Aを参照すると、方法600は、第2のサーバ107によって生成される入力を受信すること602を含むことができる。入力は、データサーバ109内に含まれる登録アプリケーション195に伝送されるべきアクションの1つ以上のタイプを規定する。例えば、入力は、ビデオを視聴するユーザ125に関連付けられた「視聴」アクションが、登録アプリケーション195に伝送されるであろうことを規定する。いくつかの実装では、ステップ602において、登録アプリケーション195によって受信される入力は、ユーザデバイス115によって生成されることができる。例えば、ユーザ125は、ユーザデバイス115を使用して、登録アプリケーション195が情報を受信するであろうアクションのタイプを規定する。いくつかの事例では、ステップ602において受信される入力は、第2のサーバ107(例えば、接続アプリケーション190)、第1のサーバ101、登録アプリケーション195、およびユーザデバイス115の組み合わせのうちの1つ以上によって生成されることができる。
方法600はまた、ユーザ125が第2のサーバ107によって提供される接続アプリケーション190に記録していることの指示子を受信すること604を含むことができる。例えば、第2のサーバ107は、記録データを登録アプリケーション195に伝送し、記録データは、ユーザ125が第2のサーバ107によって提供されるサービスに記録していることの指示子を含む。方法600は、ステップ602において規定されたタイプのユーザ相互作用である、1人以上の記録されたユーザ125によって行われた第2のサーバ107とのユーザ相互作用を記述するアクティビティデータセットを受信すること606を含むことができる。アクティビティデータセットは、第1のサービス193に記録された1人以上のユーザ125のアクションを記述するアクティビティデータを含み得る。いくつかの実装では、第2のサーバ107とのユーザ相互作用を記述するアクティビティデータセットを受信すること606は、登録アプリケーション195が、1人以上の記録されたユーザ125のアクションを記述する複数のセットのアクティビティデータを第2のサーバ107から受信するように、2回以上繰り返されることができる。
方法600はまた、ユーザデバイス115から、ステップ606において受信されたアクティビティデータセットからのどのコンテンツが、ユーザデバイス115に提供されるためにユーザ125によって承認されるかを規定する入力を受信すること608を含むことができる。例えば、承認されたアクションは、ソーシャルネットワークアプリケーション103上のユーザ125に関連付けられたソーシャルフィード内に含まれることができる。ユーザ125は、ステップ606において第2のサーバ107から受信されたアクティビティデータからのアクティビティデータのサブセットを含む、コンテンツを選択し得る。選択されたコンテンツは、次いで、ソーシャルネットワークアプリケーション103によって提供されると、ユーザ125のためのソーシャルフィード内に含まれ得る。
図6Bを参照すると、方法600は、ユーザ125がアクティビティデータによって記述されたアクションを承認しているかどうかを決定するステップ620を含むことができる。ユーザ125が、あるアクションを承認していない場合、方法600は、このアクションをソーシャルネットワークサービスまたはユーザ125に提供しないこと621によって続き得る。ユーザ125が、そのアクションを承認している場合、方法600は、ユーザ125によって承認されたコンテンツに関連付けられたユーザ相互作用のタイプを決定するステップ622によって続き得る。方法600はまた、ユーザ相互作用のタイプがユーザ規定タイプであるかどうかを決定すること624を含むことができる。例えば、ユーザ規定タイプは、視聴タイプであり得る。ユーザ相互作用のタイプが、ユーザ規定タイプ(例えば、視聴タイプ)に分類されることができない場合、方法600は、承認されたコンテンツをユーザデバイス115またはソーシャルネットワークサービスに公的に提供すること626によって続き得る。そうでなければ、方法600は、ステップ628へと進み得る。
いくつかの実装では、追加の制限が、適用されることができる。図6Cを参照すると、方法600は、コンテンツを公的に利用可能にすることに制限が適用されるかどうかを決定すること630を含むことができる。制限が適用されない場合、方法600は、承認されたアクションを記述するコンテンツをユーザデバイス115またはソーシャルネットワークサービスに公的に提供すること632によって続き得る。そうでなければ、方法600は、承認されたアクションをユーザの個人用履歴125に提供すること634によって続き得る。
ここで図7A−7Bを参照すると、第2のサーバ107とユーザ情報を共有するための方法700の実施例が、説明される。図7Aを参照すると、方法700は、ユーザ125が第2のサーバ107と相互作用したことの指示子を受信すること702を含むことができる。例えば、共有アプリケーション188は、第2のサーバ107から、ユーザ125が第三者サイトにログインし、第三者サイト上のウィジェットをクリックしたことを記述する指示子を受信する。指示子はまた、ユーザ125のためのログイン情報を含み得る。方法700はまた、第2のサーバ107を識別する入力を受信すること704を含むことができる。例えば、共有アプリケーション188は、第2のサーバ107から、第2のサーバ107に関する識別情報(例えば、識別コード)を含む入力を受信する。方法700は、第2のサーバ107がデータサーバ109または第1のサーバ101に登録されているかどうかを決定すること706を含むことができる。第2のサーバ107がデータサーバ109または第1のサーバ101に登録されていない場合、方法700は、ユーザ情報を第2のサーバ107に提供しないこと712によって続き得る。
第2のサーバ107がデータサーバ109または第1のサーバ101に登録されている場合、方法700は、ユーザ情報を共有する前に、追加の制限を適用することによって続き得る。図示される実装では、方法700は、ユーザ125の識別を決定すること708によって続き得る。例えば、共有アプリケーション188は、少なくとも部分的に、例えば、ログインユーザ125の情報を含む、第2のサーバ107からの入力に基づいて、ユーザ125の識別を決定する。方法700はまた、ユーザ125が第2のサーバ107との情報の共有を許可しているかどうかを決定すること710を含むことができる。いくつかの実装では、決定は、ユーザが第2のサーバとの共有を許可している具体的情報を決定することを含む。例えば、ユーザは、第2のサーバが、ユーザの連絡先の選択的リストまたはユーザに関連付けられた具体的電子メールアドレスのみを閲覧することを可能にし得る。そのような実装では、ユーザは、第2のサーバに提供される具体的情報の制御を有する。これは、ユーザがユーザのアカウントを設定するときに行われ得るか、またはユーザによってまた編集され得る。ユーザ125が、ユーザ情報の共有を許可していない場合、方法700は、ユーザ情報を第2のサーバ107に提供しないこと712によって続き得る。
図7Bを参照すると、ユーザ125が、ユーザ情報の共有を許可している場合、方法700は、ソーシャルネットワークアプリケーション103によって提供されるソーシャルグラフから、ユーザ125に関するユーザ情報を読み出すこと714によって続き得る。方法700はまた、ユーザ情報を暗号化すること716と、暗号化されたユーザ情報を第2のサーバ107に提供すること718とを含むことができる。
図8Aは、第2のサーバ107からユーザデバイス115へのデータ転送を自動的に認証するための例示的方法800の流れ図である。図8に示されるように、方法800は、ユーザデバイス115のユーザ125から、データの要求を受信すること802を含むことができる。例えば、共有アプリケーション188および/または認証アプリケーション196は、第2のサーバ107から、ユーザ125が第三者サイトにログインし、ユーザのデバイス115にインストールするために、第三者サイト上で利用可能なアプリケーションを選択したことを記述する指示子を受信する。いくつかの実装では、ユーザデバイス115は、携帯電話であり得る。いくつかの実装では、ユーザデバイス115は、タブレットコンピュータである。方法800は、データの要求を生じたユーザ125に関連付けられた情報およびユーザデバイス115に関連付けられた情報を受信すること804を含むことができる。例えば、認証アプリケーション196は、第1の記憶デバイス197から、ユーザデバイス115に関連付けられた情報を受信する。情報は、ユーザ識別情報、以前の認証情報、ユーザデバイス115の識別情報、ならびにユーザ125およびユーザデバイス115を識別する他の情報であり得る。方法800はさらに、ユーザが第三者サイト上で利用可能な特定のアプリケーションのための認証を以前に提供したかどうかを決定すること806を含むことができる。ユーザが、特定のアプリケーションのための認証を以前に提供していない場合(806−いいえ)、方法800はさらに、ユーザがユーザデバイス115のための認証を以前に提供したかどうかを決定すること808を含むことができる。ユーザがまた、ユーザデバイス115のための認証を以前に提供していない場合(808−いいえ)、方法はさらに、ユーザから認証証明を要求すること812を含むことができる。認証証明が受信されると814、データは、ユーザデバイスに送信される810。例えば、第2のサーバ107は、ユーザデバイス115上へのアプリケーションのインストールをプッシュする。いくつかの実装では、第2のサーバ107は、ユーザがログインした第2のユーザデバイス115へのアプリケーションのインストールをプッシュし得る。
ユーザが、特定のアプリケーションのための認証を以前に提供した場合(806−はい)、データは、ユーザデバイスに送信される810。例えば、第2のサーバ107は、ユーザデバイス115上へのアプリケーションのインストールをプッシュする。同様に、ユーザが、ユーザデバイスのための認証を以前に提供した場合115(808−はい)、データは、ユーザデバイスに送信される810。例えば、第2のサーバ107は、ユーザデバイス115上へのアプリケーションのインストールをプッシュする。前述の実施例では、アプリケーションのインストールは、自動的に生じることができ、第2のサーバ107は、ユーザ125から認証証明を要求する必要はない。
図8Bは、第2のサーバ107からユーザデバイス115へのデータ転送を自動的に認証するための別の例示的方法800Bの流れ図である。いくつかの実装では、第2のサービスは、第2のサーバ107上に実装され、データは、第2のサービスからユーザデバイス115に転送される。図8Bに示されるように、方法800Bは、データ伝送の要求承認を受信すること820を含むことができる。例えば、共有アプリケーション188および/または認証アプリケーション196は、第2のサーバ107から、ユーザ125が第三者サイトにログインし、ユーザのデバイス115上にインストールするために、第三者サイト上で利用可能なアプリケーションを選択したことを記述する指示子を受信する。いくつかの実装では、ユーザデバイス115は、携帯電話であり得る。いくつかの実装では、ユーザデバイス115は、タブレットコンピュータである。方法800Bは、データの要求を生じたユーザ125に関連付けられた情報およびユーザデバイス115に関連付けられた情報を受信すること822を含むことができる。例えば、認証アプリケーション196は、第1の記憶デバイス197から、ユーザデバイス115に関連付けられた情報を受信する。情報は、ユーザ識別情報、以前の認証情報、ユーザデバイス115識別情報、ならびにユーザ125およびユーザデバイス115を識別する他の情報であり得る。方法800Bはさらに、ユーザが、デバイスを使用して、第2のサービスへのアクセスを第1のサービスに以前に付与したかどうかを決定すること8824を含むことができる。ユーザが、デバイスを使用して、第2のサービスへのアクセスを第1のサービスに以前に付与していない場合(824−いいえ)、方法800Bはさらに、ユーザから認証証明を要求すること830を含み得る。ユーザが、デバイスを使用して、第2のサービスへのアクセスを第1のサービスに以前に付与している場合(824−はい)、方法800Bはさらに、第2のユーザデバイスが、第1のサービスへのアクセスを以前に付与されたかどうかを決定すること826を含み得る。第2のユーザデバイスが、第1のサービスへのアクセスを以前に付与されていない場合(826−いいえ)、方法はさらに、ユーザから認証証明を要求すること812を含むことができる。第2のユーザデバイスに、第1のサービスへのアクセスが以前に付与されている場合(826−はい)、方法800Bはさらに、データを伝送するための承認を送信すること828を含み得る。例えば、第2のサーバ107上に実装される第2のサービスは、ユーザデバイス115上へのアプリケーションのインストールをプッシュする。いくつかの実装では、第2のサーバ107上に実装される第2のサービスは、ユーザがログインした第2のユーザデバイス115へのアプリケーションのインストールをプッシュし得る。
認証証明が受信されると832、データを伝送するための承認が、ユーザデバイスに送信される828。例えば、第2のサーバ107は、ユーザデバイス115上へのアプリケーションのインストールをプッシュする。いくつかの実装では、第2のサーバ107は、ユーザがログインした第2のユーザデバイス115へのアプリケーションのインストールをプッシュし得る。
図9Aは、双方向ユーザ投稿を生成するための例示的方法900Aの流れ図である。図9Aに示されるように、方法900Aは、第1のサーバ101、例えば、ソーシャルネットワークサーバにおいて、複数のデータアイテムを含む、公開するためのコンテンツを受信すること902を含むことができる。いくつかの実装では、複数のデータアイテムを含む、公開するためのコンテンツは、ユーザデバイス115から受信される。実施例として、ユーザ125は、情報(例えば、投稿)およびウェブサイトへのリンクを含む、データを第1のサーバ101に送信し得る。方法900Aはさらに、第2のサーバ107から、複数のデータアイテムに関連付けられたデータを受信すること904を含むことができる。いくつかの実装では、複数のデータアイテムに関連付けられたデータは、第2のサーバ107、例えば、第三者サーバから受信される。例えば、複数のデータアイテムに関連付けられたデータは、データアイテム毎のユニフォームリソースロケータ(URL)であることができる。方法900Aはさらに、第1のサーバにおいて、複数のデータアイテムの各々の表現を含む、ユーザ投稿を生成すること906を含むことができる。例えば、第1のサーバ107は、ユーザ125からの情報およびURLに関連付けられたウェブページに導くリンクを含む、ユーザ投稿を生成することができる。方法900Aはまた、第1のサーバにおいて、複数のデータアイテムのうちの少なくとも1つの選択を受信すること908を含むことができる。いくつかの実装では、選択は、ユーザデバイス115から受信される。方法900Aはさらに、選択に対応する第2のサーバに導かれるアクションを生成すること910を含むことができる。例えば、別のユーザが、投稿内のリンクを選択する場合、第1のサーバ107は、ユーザをそのリンクに関連付けられた第2のサーバによってホストされたウェブサイトに導く。本実施例では、投稿は、複数のウェブサイトまたはウェブページに導く、複数のリンクを有し得る。いくつかの実装では、複数のデータアイテムは、複数のリンクを含み、それぞれ、第2のサーバ上のアクションに導かれる。
図9Bは、双方向ユーザ投稿を生成するための別の例示的方法900Bの流れ図である。図9Bに示されるように、方法900Bは、第1のサーバ101において、少なくとも1つのデータアイテムを含む、公開するためのコンテンツを受信すること920を含むことができる。いくつかの実装では、データアイテムを含む、公開するためのコンテンツは、ユーザデバイス115から受信される。いくつかの実装では、データアイテムを含む、公開するためのコンテンツは、第2のサーバ107から受信される。方法900Bはさらに、第2のサーバ107から、データアイテムに関連付けられたデータを受信すること922を含むことができる。いくつかの実装では、データアイテムに関連付けられたデータは、第2のサーバ107、例えば、第三者サーバから受信される。いくつかの実装では、データアイテムに関連付けられたデータは、ユーザデバイス115から受信される。方法900Bはさらに、第1のサーバによって、複数のデータアイテムの動的表現を含む、ユーザ投稿を生成すること924を含むことができる。方法900Bはまた、第2のサーバから、データアイテムに関連付けられた更新を受信すること926を含むことができる。いくつかの実装では、更新は、ユーザデバイス115から受信される。いくつかの実装では、更新は、第2のサーバ107、例えば、第三者サーバから受信される。方法900Bはさらに、第1のサーバによって、データアイテムの動的表現の更新を含む、更新された投稿を生成すること928を含むことができる。本実施例では、投稿は、リアルタイム更新を有し得る。
いくつかの実装では、生成された双方向投稿は、双方向投稿内に種々のデータアイテムを含むことができる。例えば、双方向投稿は、複数のターゲットへのリンクまたはポイントを含むことができる。別の実施例として、いくつかの実装では、双方向投稿は、投稿内に、更新された情報が利用可能であるとき、更新する、動的カウンタを含むことができる。例えば、動的カウンタは、第2のサーバ107に関連付けられた第三者供給者から利用可能ないくつかのアイテムを表示することができる。いくつかの実装では、双方向投稿は、複数のボタンを含み得、各ボタンは、異なるアイコンを有する。別の実施例として、双方向投稿は、パーソナル化されたURLを含み得る。いくつかの実装では、双方向投稿は、永続状態を維持し、ユーザ選択に応じたボタンを含み得る。いくつかの実装では、双方向投稿は、投稿と相互作用したユーザのグラフィック表現を含み得る。いくつかの実装では、双方向投稿は、種々の要因に基づいて、結合され、まとめられ得る。
図10は、ユーザアクティビティ情報を生成するための例示的方法100の流れ図である。図10に示されるように、方法1000は、第1のサーバ101から、ユーザに関連付けられたアクティビティ情報を受信すること1002を含むことができる。例えば、ユーザアクティビティに関連付けられたアクティビティ情報は、第1のサーバ101、例えば、ソーシャルネットワークサーバから、受信され得、ユーザアクティビティは、ユーザのソーシャルネットワーク上のユーザアクティビティ情報であり得る。加えて、第2のサーバ107またはウェブサイト上のユーザアクティビティに関連するアクティビティ情報もまた、受信され得る。例えば、ユーザが、あるアイテムを購入する場合、そのアクティビティ(ユーザの合意に応じて)が、受信される。第2のサーバ107上のユーザアクティビティに関連する他のアクティビティ情報もまた、受信される。方法1000はさらに、第2のサーバ107から、アクティビティ情報に関連付けられたデータを受信すること1002を含むことができる。例えば、ユーザが、あるアイテムを購入する場合、購入に関連付けられたデータ、例えば、アイテム説明または価格もまた、受信され得る。方法1000はまた、第1のサーバにおいて、アクティビティ情報を集約すること1004を含むことができる。例えば、受信されたアクティビティ情報は、第1のサーバ上に収集および集約され得る。アクティビティ情報は、第1のサーバ上のアクティビティを含み得る。第1のサーバは、ソーシャルネットワークサーバであり得、アクティビティ情報は、ソーシャルネットワーク上のアクティビティであり得る。アクティビティ情報は、種々の他のサーバ、例えば、種々の第三者ウェブサイトをホストするサーバ上のユーザアクティビティ情報を含み得る。方法1000はさらに、第1のサーバによって、集約されたアクティビティ情報に関連する関連付けられた情報を決定すること1008を含むことができる。関連付けられた情報は、集約されたアクティビティ情報に関連する情報であり得る。例えば、ユーザが、第2のサーバによってホストされたビデオを視聴した場合、関連付けられた情報は、ユーザがビデオを視聴した回数またはユーザがビデオに関してコメントしたかどうかであり得る。方法1000はまた、ユーザデバイス上での表示のために、関連付けられた情報を送信すること1010を含む。方法1000はまた、ユーザデバイス上での表示のために、関連付けられた情報を第2のサーバに送信すること1010を含む。例えば、ユーザアクティビティに関連する情報(第三者ウェブサイト、他のウェブサイト、またはソーシャルネットワーク上のアクティビティ情報を含む)は、第三者ウェブサイト上に表示され得る。例えば、ユーザアクティビティに関連する情報(第三者ウェブサイト、他のウェブサイト、またはソーシャルネットワーク上のアクティビティ情報を含む)は、ユーザのソーシャルネットワーク上に表示される、またはユーザに、表示するための選択肢とともに提示され得る。
図11は、ユーザ125のためのアクティビティ概要を表示する、ソーシャルネットワークポータル1102の例示的ユーザインターフェース1100のグラフィック表現である。ソーシャルネットワークポータル1102は、アイコン1104a、1104b、1104c、1104dによってアクセス可能な種々のセクションを含む。例示的ユーザインターフェース1100の本グラフィック表現では、セクションアイコン1104a、1104b、1104c、1104dは、ユーザデバイス115に関連付けられたディスプレイデバイス上に表示される。ユーザインターフェース1100は、アクティビティ概要1106a、1106b、1106cを含む。アクティビティ概要はまた、「共有提案」とも称され得る。各共有提案1106a、1106b、1106cは、ユーザアクティビティデータによって記述されるユーザアクティビティの1つ以上のグラフィック表現1108a、1108b、1108c、1108dを含み得る。各共有提案1106a、1106b、1106cはまた、ユーザアクティビティを記述する、アクティビティ説明1110を含み得る。
本表現に図示されるように、ユーザアクティビティは、アクティビティのタイプ(例えば、「コメント」、「聴取」、「アップロード」、「視聴」等を含む、動詞)によって編成およびグループ化され、適宜表示される。本実施例では、アクティビティ概要1106a、1106b、1106cはまた、ユーザ125が、共有提案1106a、1106b、1106c内の情報を他のユーザ125に承認することを可能にするために使用され得る、チェックボックス1112を含む(例えば、ユーザ125は、図6Aを参照して前述のように提供されるべきコンテンツを規定する)。他の実施例では、別の同等機構が、本能力を提供し得る。
図12は、ユーザ125のためのアクティビティ概要を表示するソーシャルネットワークポータルの別の例示的ユーザインターフェース1200のグラフィック表現である。図11に描写される例示的ソーシャルネットワークポータル1202と同様に、ソーシャルネットワークポータル1202は、アイコン1204a、1204b、1204c、1204dによってアクセス可能な種々のセクションを含む。例示的ユーザインターフェース1200の本グラフィック表現では、セクションアイコン1204a、1204b、1204c、1204dは、ユーザデバイス115に関連付けられたディスプレイデバイス上に表示される。ユーザインターフェース1200は、アクティビティ概要1206a、1206b、1206cを含む。各共有提案1206a、1206b、1206cは、ユーザアクティビティの1つ以上のグラフィック表現1208a、1208b、1208c、1208dを含み得る。各共有提案1206a、1206b、1206cはまた、アクティビティ説明1210を含み得る。
ユーザインターフェース1100と同様に、ユーザインターフェース1200の本表現に図示されるユーザアクティビティもまた、アクティビティのタイプ(例えば、「コメント」、「聴取」、「アップロード」、「視聴」等を含む動詞)によって編成およびグループ化され、適宜表示される。本実施例では、アクティビティ概要1206a、1206b、1206cはまた、ユーザ125が、共有提案1206a、1206b、1206c内の情報を他のユーザ125に承認することを可能にするために使用され得る、チェックボックス1212を含む(例えば、ユーザ125は、図6Aを参照して前述のように提供されるべきコンテンツを規定する)。他の実施例では、別の同等機構が、本能力を提供し得る。
図13は、ユーザ125の双方向投稿を表示する、ソーシャルネットワークポータル1302の例示的ユーザインターフェース1300のグラフィック表現である。本実施例では、ユーザ125の双方向投稿は、双方向投稿内に複数のターゲットまたはリンクを含むことができ、各ターゲットまたはリンクは、その独自のアクションを伴う。いくつかの実装では、ソーシャルネットワークポータル1302は、ユーザ投稿1304、ユーザのグラフィック表現1306、およびコメント面積1308を含むことができる。図示される実施例では、ユーザ投稿1304は、3つの異なる転送先1320、1322、1324を伴う、3つのリンク1310、1312、1314を含む。図13に示される図示される実施例では、ユーザが、リンク1310を選択すると、ユーザは、ショッピングウェブサイトのソーシャルネットワークポータル1320に導かれる。図13に示される図示される実施例では、ユーザが、リンク1312を選択すると、ユーザは、別のオンラインポータル1322上で利用可能なビデオ実演に導かれる。図13に示される図示される実施例では、ユーザが、リンク1314を選択すると、ユーザは、ユーザがユーザ投稿1304に関連付けられた製品を購入することを可能にする、ポータル1324に導かれる。
前述の例示的ユーザインターフェースc00は、ユーザの双方向投稿の一実施例を図示する。他の実装では、双方向投稿は、第三者サイトの在庫またはアイテム可用性に関連付けられた動的カウンタを含み得る。例えば、第三者サイトは、ユーザが種々の映画のための映画館のチケットを購入することを可能にする、サイトであり得る。本実施例では、双方向投稿は、第三者サイトから利用可能なチケットの数を表示する、カウンタを含み得る。チケットが他のユーザによって購入されるにつれて、カウンタは、利用可能なチケットの現在の数を反映するように更新され得る。
いくつかの実装では、前述の情報およびユーザアクティビティは、分析され、分析目的のために使用されることができる。例えば、一実装は、送信されたアクティビティを追跡し、情報をグラフィカルユーザインターフェース上に提示し、例えば、追跡された情報のグラフまたはチャートを示すことができる。別の実装では、投稿内のターゲットまたはリンクに関するアクションは、追跡されることができる。いくつかの実装では、本追跡された情報は、表示されている投稿をさらに拡張させるために使用されることができる。いくつかの実装では、拡張は、投稿内のリンクまたはターゲットのフォントの変更を含むことができる(例えば、頻繁に選択されたリンクまたはターゲットのサイズを増加させる)。いくつかの実装では、拡張は、リンクまたはターゲットの提示順序の変更を含むことができる。例えば、あるリンクまたはターゲットが、より頻繁に選択される場合、そのリンクまたはターゲットは、投稿の上部に提示されるように変更され得る。いくつかの実装では、投稿から取得された新しいユーザの数または投稿によってインストールされた新しいアプリケーションの数もまた、追跡され得る。
前述の説明では、説明の目的のために、本明細書の完全な理解を提供するために、多数の具体的詳細が記載された。しかしながら、本開示が、これらの具体的詳細を伴わずに実践されることができることは、当業者に明白となるはずである。いくつかの事例では、構造およびデバイスが、説明を曖昧にすることを回避するために、ブロック図形態で示される。例えば、本実装は、主に、ユーザインターフェースおよび特定のハードウェアを参照して前述され得る。しかしながら、本実装は、データおよびコマンドを受信し得る、任意のタイプのコンピューティングデバイス、ならびにサービスを提供する任意の周辺デバイスに適用されることができる。
本明細書における「いくつかの実装」または「いくつかの事例」という言及は、実装または事例と関連して説明される特定の特徴、構造、または特性が、説明の少なくとも1つの実装に含まれ得ることを意味する。本明細書の種々の場所における語句「いくつかの実装では」の表出は、必ずしも全て、同一の実装を参照するわけではない。
続く発明を実施するための形態のいくつかの部分は、コンピュータメモリ内のデータビットに関して、動作のアルゴリズムおよび象徴的表現の観点で提示されている。これらのアルゴリズムの説明および表現は、他の当業者にその研究の実体を最も効果的に伝えるために、データ処理技術の当業者によって使用される手段である。アルゴリズムは、本明細書では、概して、所望の結果につながる自己矛盾のない、一連のステップと見なされる。ステップとは、ある物理的量の物理的操作を要求するものである。通常、必ずしもではないが、これらの量は、記憶、転送、組み合わせ、比較、および別様に操作されることが可能な電気または磁気信号の形態をとる。時として、主に、一般的使用の理由から、これらの信号をビット、値、要素、記号、文字、用語、数字、または同等物として参照することが便宜であることが証明されている。
しかしながら、これらおよび類似用語は全て、適切な物理的量に関連付けられるべきであり、単に、これらの量に適用された便宜的標識であることに留意されたい。具体的にそうでないことが記載されない限り、説明全体を通して、「処理」、「コンピューティング」、「計算」、「決定」、または「表示」、あるいは同等物等の用語を利用する議論は、コンピュータシステム、あるいはコンピュータシステムの記録およびメモリ内の物理的(電子)量として表されるデータを操作し、コンピュータシステムメモリまたは記録あるいは他のそのような情報記憶、伝送、またはディスプレイデバイス内の物理的量として表される他のデータに変換する、類似電子コンピューティングデバイスのアクションおよびプロセスを指すことを理解されたい。
本明細書の実装はまた、本明細書に説明される動作を行なうための装置に関することができる。装置は、要求される目的のために特別に構築され、あるいは選択的にアクティブ化され、またはコンピュータ内に記憶されるコンピュータプログラムによって再構成される、汎用コンピュータを含み得る。そのようなコンピュータプログラムは、限定ではないが、フロッピー(登録商標)ディスク、光ディスク、CD−ROM、磁気ディスクを含む、任意のタイプのディスク、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気または光学カード、それぞれ、コンピュータシステムバスに結合される、不揮発性メモリまたは電子命令を記憶するために好適な任意のタイプの媒体を伴う、USBキーを含む、フラッシュメモリを含む、コンピュータ可読記憶媒体内に記憶され得る。
本明細書は、いくつかの全体的にハードウェアの実装、いくつかの全体的にソフトウェアの実装、またはハードウェアおよびソフトウェア要素の両方を含有するいくつかの実装の形態をとることができる。いくつかの好ましい実装では、本明細書は、限定ではないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含む、ソフトウェア内に実装される。
さらに、本説明は、コンピュータまたは任意の命令実行システムによって、あるいはそれと併せて、使用するためのプログラムコードを提供する、コンピュータ使用可能またはコンピュータ読み取り可能な媒体からアクセス可能なコンピュータプログラム製品の形態をとることができる。本説明の目的のために、コンピュータ使用可能またはコンピュータ読み取り可能な媒体は、命令実行システム、装置、またはデバイスによって、あるいはそれと併せて使用するために、プログラムを含有、記憶、通信、伝搬、またはトランスポートすることができる、任意の装置であり得る。
プログラムコードを記憶および/または実行するために好適なデータ処理システムは、直接または間接的に、システムバスを通して、メモリ要素に結合される、少なくとも1つのプロセッサを含む。メモリ要素は、プログラムコードの実際の実行の際に採用されるローカルメモリ、バルク記憶、およびコードが、実行の間、バルク記憶から読み出されなければならない回数を減少させるために、少なくともいくつかのプログラムコードの一時的記憶を提供する、キャッシュメモリを含むことができる。
入力/出力またはI/Oデバイス(キーボード、ディスプレイ、ポインティングデバイス等を含むが、それらに限定されない)は、直接または介在I/Oコントローラを通してのいずれかにおいて、システムに結合されることができる。
ネットワークアダプタもまた、システムに連結され、データ処理システムが、介在するプライベートまたは公衆ネットワークを通して、他のデータ処理システムあるいは遠隔プリンタまたは記憶デバイスに連結されることを可能にし得る。モデム、ケーブルモデム、およびEthernet(登録商標)カードは、現在利用可能なタイプのネットワークアダプタのいくつかにすぎない。
最後に、本明細書に提示されるアルゴリズムおよびディスプレイは、本質的に、任意の特定のコンピュータまたは他の装置に関連しない。種々の汎用システムが、本明細書における教示に従うプログラムとともに使用され得、または要求される方法ステップを行なうために、より特殊な装置を構築することが便宜であることも証明され得る。種々のこれらのシステムのために要求される構造は、以下の説明に概略されている。加えて、本明細書は、任意の特定のプログラミング言語を参照して説明されない。種々のプログラミング言語が、本明細書に説明されるように、本明細書の教示を実装するために使用され得ることを理解されるであろう。
本明細書の実装の前述の説明は、例証および説明の目的のために提示されている。包括的であること、または本明細書を開示される精密な形態に限定することを意図するものではない。多くの修正および変形例が、前述の教示に照らして、可能である。本開示の範囲は、本発明を実施するための形態によってではなく、本願の請求項によって制限されることが意図される。当業者によって理解されるはずであるように、本明細書は、その精神または本質的特性から逸脱することなく、他の具体的形態において具現化され得る。同様に、モジュール、ルーチン、特徴、属性、方法論、および他の側面の特定の名称および分割は、必須または重要ではなく、本明細書またはその特徴を実装する機構は、異なる名称、分割、および/または形式を有し得る。さらに、当業者に明白となるはずであるように、モジュール、ルーチン、特徴、属性、方法論、および本開示の他の側面は、ソフトウェア、ハードウェア、ファームウェア、またはそれら3つの任意の組み合わせとして実装されることができる。また、その実施例がモジュールである、本明細書のどの構成要素が、ソフトウェアとして実装されようとも、構成要素は、独立型プログラムとして、より大きなプログラムの一部として、複数の別個のプログラムとして、静的または動的にリンクされたライブラリとして、カーネルロード可能モジュールとして、デバイスドライバとして、および/またはコンピュータプログラミングの当業者に現在または将来公知となるあらゆる他の方法として実装されることができる。加えて、本開示は、任意の具体的プログラミング言語における、あるいは任意の具体的オペレーティングシステムまたは環境のための実装にいかようにも限定されない。故に、本開示は、以下の請求項に記載される本明細書の範囲の限定ではなく、例証であることが意図される。