(57)【特許請求の範囲】
【請求項１】
ソーシャルネットワーキングサービスに対するコンテンツ共有のためのプラットフォームで使用されるコンテンツを共有するためのオフラインリクエストを、ユーザデバイスの処理デバイスによって受信するステップであって、ここで、前記オフラインリクエストは、前記ユーザデバイスがネットワークに接続されていない間に受信される、ステップと、
前記ユーザデバイスのデータストアに格納された複数の所定の共有リクエストのフォーマットから、前記処理デバイスによって所定の共有リクエストフォーマットを選択するステップであって、前記所定の共有リクエストフォーマットは、前記コンテンツ共有のためのプラットフォームと前記ソーシャルネットワーキングサービスによって使用される通信プロトコルに基づく、ステップと、
前記ソーシャルネットワーキングサービスに基づいて前記コンテンツのための共有リクエストを、前記処理デバイスによって生成するステップであって、ここで、前記コンテンツのための前記共有リクエストは、前記ユーザデバイスが前記ネットワークに接続されていない間に前記所定の共有リクエストフォーマットで生成される、ステップであって、前記共有リクエストに前記オフラインリクエストと関連するユーザ情報および前記共有リクエストの前記コンテンツと関連するコンテンツ情報を含める、ステップと、
ネットワーク接続が利用可能であることを判定すると、前記コンテンツのための前記共有リクエストを、前記ソーシャルネットワーキングサービスに提供するステップと、を含む、
方法。
【請求項２】
前記オフラインリクエストが、前記処理デバイスによって実行されるモバイルアプリケーションによって受信される、
請求項１に記載の方法。
【請求項３】
前記方法がさらに、
前記モバイルアプリケーションによって、前記処理デバイスと関連するオペレーティングシステムに登録するステップと、
前記オフラインリクエストを受信し、前記共有リクエストを生成すると、前記モバイルアプリケーションによって、前記処理デバイスと関連するメモリに前記共有リクエストを保存するステップと、を含み、
ここで前記コンテンツのための前記共有リクエストを、前記ソーシャルネットワーキングサービスに対して提供するステップは、前記オペレーティングシステムから、前記ネットワークへの接続があるとの指示を受信すると、前記モバイルアプリケーションによって実行される、
請求項２に記載の方法。
【請求項４】
前記方法がさらに、
前記ソーシャルネットワーキングサービスと関連する共有ウェブページを、前記コンテンツと関連するコンテンツ情報を含むように、前記処理デバイスによって変更するステップと、
前記変更された共有ウェブページがユーザに提供されることをもたらすステップと、を含み、
ここで、前記オフラインリクエストは、前記変更された共有ウェブページを介して受信され、前記ソーシャルネットワーキングサービスに対する前記共有リクエストは、前記ユーザと関連する情報を含む、
請求項１に記載の方法。
【請求項５】
前記ユーザに提供される前記変更された共有ウェブページが、前記ネットワークに対する接続が確立するまで、前記共有リクエストが前記ソーシャルネットワーキングサービスに提供されないという通知を含む、請求項４に記載の方法。
【請求項６】
前記方法がさらに、
前記ユーザと関連する前記情報を、前記処理デバイスと関連するメモリに保存するステップと、
前記ユーザと関連する前記情報を、前記ソーシャルネットワーキングサービスに提供するステップと、
現在の状態情報のスナップショットを、前記ソーシャルネットワーキングサービスに提供するステップと、を含む、
請求項４に記載の方法。
【請求項７】
前記方法がさらに、
オフライン共有を実行するために前記オフラインリクエストを送信したユーザが、以前に前記ソーシャルネットワーキングサービスに認証されたか否かを判定するステップを含む、
請求項１に記載の方法。
【請求項８】
前記方法がさらに、
前記共有リクエストを前記ソーシャルネットワーキングサービスに提供するステップの前に、ユーザが前記共有リクエストを変更することを可能にするために、前記共有リクエストを前記ユーザに提供するステップを含み、ここで前記共有リクエストを変更することは、前記共有リクエストをキャンセルする、または前記共有リクエストを交換することを含む、
請求項１に記載の方法。
【請求項９】
前記方法がさらに、
前記オフラインリクエストがモバイルアプリケーションによって受信された時間に対応するタイムスタンプを提供するステップを含む、
請求項１に記載の方法。
【請求項１０】
処理デバイスによって実行されるとき、前記処理デバイスに動作の実行をもたらす命令を有する非一時的コンピュータ可読ストレージ媒体であって、前記動作は、
ソーシャルネットワーキングサービスに対するコンテンツ共有のためのプラットフォームで使用されるコンテンツをシェアするためのオフラインリクエストを、ユーザデバイスの前記処理デバイスによって受信することであって、ここで、前記オフラインリクエストは、前記ユーザデバイスがネットワークに接続されていない間に受信されることと、
前記ユーザデバイスのデータストアに格納された複数の所定の共有リクエストのフォーマットから、前記処理デバイスによって所定の共有リクエストフォーマットを選択することであって、前記所定の共有リクエストフォーマットは、前記コンテンツ共有のためのプラットフォームと前記ソーシャルネットワーキングサービスによって使用される通信プロトコルに基づく、選択することと、
前記ソーシャルネットワーキングサービスに基づいて前記コンテンツのための共有リクエストを、前記処理デバイスによって生成することであって、ここで、前記コンテンツのための前記共有リクエストは、前記ユーザデバイスが前記ネットワークに接続されていない間に前記所定の共有リクエストフォーマットで生成され、前記共有リクエストに前記オフラインリクエストと関連するユーザ情報および前記共有リクエストの前記コンテンツと関連するコンテンツ情報を含める、ことと、
ネットワーク接続が利用可能であることを判定すると、前記コンテンツのための前記共有リクエストを、前記ソーシャルネットワーキングサービスに提供することを含む、
非一時的コンピュータ可読ストレージ媒体。
【請求項１１】
前記オフラインリクエストが、前記処理デバイスによって実行されるモバイルアプリケーションによって受信される、
請求項１０に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項１２】
前記処理デバイスによって実行されるとき、前記命令が、前記処理デバイスにさらに動作の実行をもたらし、前記動作は、
前記モバイルアプリケーションによって、前記処理デバイスと関連するオペレーティングシステムに登録することと、
前記オフラインリクエストを受信し、前記共有リクエストを生成すると、前記モバイルアプリケーションによって、前記処理デバイスと関連するメモリに前記共有リクエストを保存することと、を含み、
ここで前記コンテンツのための前記共有リクエストを、前記ソーシャルネットワーキングサービスに対して提供することは、前記オペレーティングシステムから、前記ネットワークへの接続があるとの指示を受信すると、前記モバイルアプリケーションによって実行される、
請求項１１に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項１３】
前記処理デバイスによって実行されるとき、前記命令が、前記処理デバイスにさらに動作の実行をもたらし、前記動作は、
前記ソーシャルネットワーキングサービスと関連する共有ウェブページを、前記コンテンツと関連するコンテンツ情報を含むように変更することと、
前記変更された共有ウェブページがユーザに提供されることをもたらすことと、を含み、
ここで、前記オフラインリクエストは、前記変更された共有ウェブページを介して受信され、前記ソーシャルネットワーキングサービスのための前記共有リクエストは、前記ユーザと関連する情報を含む、
請求項１０に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項１４】
前記処理デバイスによって実行されるとき、前記命令が、前記処理デバイスにさらに動作の実行をもたらし、前記動作は、
前記ユーザと関連する前記情報を、前記処理デバイスと関連するメモリに保存することと、
前記ユーザと関連する前記情報を、前記ソーシャルネットワーキングサービスに提供することと、
現在の状態情報のスナップショットを、前記ソーシャルネットワーキングサービスに提供することと、を含む、
請求項１３に記載の非一時的コンピュータ可読ストレージ媒体。
【請求項１５】
コンピュータデバイスであって、前記コンピュータデバイスは、
メモリと、
前記メモリに連結された処理デバイスと、を含み、前記処理デバイスは、
ソーシャルネットワーキングサービスに対するコンテンツ共有のためのプラットフォームで使用されるコンテンツをシェアするためのオフラインリクエストを受信することであって、ここで、前記オフラインリクエストは、前記コンピュータデバイスがネットワークに接続されていない間に受信されることと、
ユーザデバイスのデータストアに格納された複数の所定の共有リクエストのフォーマットから、所定の共有リクエストフォーマットを選択することであって、前記所定の共有リクエストフォーマットは、前記コンテンツ共有のためのプラットフォームと前記ソーシャルネットワーキングサービスによって使用される通信プロトコルに基づく、選択することと、
前記ソーシャルネットワーキングサービスに基づいて前記コンテンツのための共有リクエストを生成することであって、ここで、前記コンテンツのための前記共有リクエストは、前記コンピュータデバイスが前記ネットワークに接続されていない間に前記所定の共有リクエストフォーマットで生成され、前記共有リクエストに前記オフラインリクエストと関連するユーザ情報および前記共有リクエストの前記コンテンツと関連するコンテンツ情報を含める、ることと、
ネットワーク接続が存在することを判定すると、前記コンテンツのための前記共有リクエストを、前記ソーシャルネットワーキングサービスに提供することと、を行う、
コンピュータデバイス。
【請求項１６】
前記オフラインリクエストが、前記処理デバイスによって実行されるモバイルアプリケーションによって受信される、
請求項１５に記載のコンピュータデバイス。
【請求項１７】
前記処理デバイスが、さらに、
前記ソーシャルネットワーキングサービスと関連する共有ウェブページを、前記コンテンツと関連するコンテンツ情報を含むように変更することと、
前記変更された共有ウェブページがユーザに提供されることをもたらすことと、を含み、
ここで、前記オフラインリクエストは、前記変更された共有ウェブページを介して受信され、前記ソーシャルネットワーキングサービスに対する前記共有リクエストは、前記ユーザと関連する情報を含む、
請求項１５に記載のコンピュータデバイス。
【請求項１８】
前記処理デバイスが、さらに、
前記ユーザと関連する前記情報を、前記処理デバイスと関連するメモリに保存し、
前記ユーザと関連する前記情報を、前記ソーシャルネットワーキングサービスに提供し、
現在の状態情報のスナップショットを、前記ソーシャルネットワーキングサービスに提供することを行う、
請求項１７に記載のコンピュータデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の実施形態は、コンテンツ視聴サービスの分野に関し、より具体的には、コンテンツのオフラインシェアリングのための方法に関する。
【背景技術】
【０００２】
インターネット上で、ソーシャルネットワーキングサービスは、ユーザが互いに接続し、情報を共有することを可能にする。多くのソーシャルネットワーキングサービスは、ユーザが、例えばビデオコンテンツ、画像コンテンツ、音楽コンテンツ等のコンテンツをアップロード、閲覧、および共有することを可能にする特性を備える。ソーシャルネットワーキングサービスの他のユーザは、共有コンテンツにコメントする、新しいコンテンツを見つける、アップデートを示す、コンテンツをシェアすることができ、そうでなければ、提供されたコンテンツと対話することができる。シェアされたコンテンツは、例えば、映画クリップ、TVクリップ、および音楽ビデオといった専門のコンテンツ制作者からのコンテンツ、および、例えばビデオブログや短いオリジナルビデオといった素人のコンテンツ制作者からのコンテンツを含む。
【０００３】
現在、ユーザは、コンテンツ共有プラットフォーム上で増大した時間を費やしている。コンテンツ共有プラットフォームのユーザ間および他のネットワーキングサービスのユーザとのコンテンツアイテムの「共有」は、コンテンツ共有プラットフォームのコンテンツアイテムの閲覧を駆動する、コンテンツ共有プラットフォーム上で閲覧セッションを開始する、およびコンテンツ共有プラットフォーム上のコンテンツアイテムの再生時間を増加させるために、重要である。共有は、コンテンツアイテムを、視聴の目的のために、コンテンツ共有プラットフォームの別のユーザまたは別のソーシャルネットワーキングサービスの別のユーザに促進及び／又は推奨する、コンテンツ共有プラットフォームのユーザを参照する。
【０００４】
現在、コンテンツを共有するためにユーザによって使用されるデバイスがネットワークに接続されていないとき、ユーザはコンテンツアイテムを共有することができない。ネットワークへの接続が利用可能になるまで待たされることにより、ユーザはコンテンツアイテムを共有することを忘れるか、またはやる気をそがれ得る。
【発明の概要】
【課題を解決するための手段】
【０００５】
一実施形態において、オフラインコンテンツ共有のための方法が、実行される。コンテンツ共有プラットフォームと関連するコンテンツを共有するための、ソーシャルネットワーキングサービスに対するオフラインリクエストが、ユーザデバイスの処理デバイスによって受信される。オフラインリクエストは、ユーザデバイスがネットワークに接続されていない間に、受信される。共有リクエストは、ソーシャルネットワーキングサービスを考慮してコンテンツのために生成される。コンテンツのための共有リクエストは、ユーザデバイスがネットワークに接続されていない間に生成される。ネットワーク接続が利用可能であると判定すると、コンテンツのための共有リクエストは、ソーシャルネットワーキングサービスに提供される。
【０００６】
さらなる実施形態において、上記記載された実施形態の動作を実行するためのコンピュータデバイスもまた実装される。さらに、開示の実施形態において、コンピュータ可読ストレージ媒体は、上記記載された実施形態の動作を実行するための方法を保存する。
【図面の簡単な説明】
【０００７】
本開示は、以下の詳細な説明および本開示の様々な実施形態の添付図面から、より完全に理解されるであろう。
【図１】本開示の一実施形態に従った、例示的なシステムアーキテクチャを示す図である。
【図２】本開示の一実施形態に従った、選択モジュールを示す図である。
【図３Ａ】本開示の一実施形態に従った、ユーザインタフェースを示す図である。
【図３Ｂ】本開示の別の実施形態に従った、ユーザインタフェースを示す図である。
【図４】本開示の一実施形態に従った、オフラインコンテンツシェアリングの方法のための一実施形態を示す流れ図である。
【図５】本明細書に記載された１つ又は複数の動作を実行できる模範的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【０００８】
ソーシャルネットワーキングサービスは、ユーザがメディアアイテムまたはデータコンテンツを他のユーザと共有することを可能にし、さらにユーザが、メディアアイテムまたはデータコンテンツに関連するようなコメントや投稿メッセージといった、ソーシャル共有を作成することを可能にする。ソーシャル共有は、ソーシャルネットワーキングサービスまたはコンテンツ共有サービス上のコンテンツアイテムまたはメディアアイテム（例えば、類似のリクエスト、共有リクエスト、コメントリクエスト、タグリクエスト等を介して）といった、ユーザの共有コンテンツに起因するコンテンツ（例えば、コメントや投稿メッセージ）を示す。ソーシャル共有は、メディアアイテムまたはデータコンテンツに対する参照を含むことができる。例えば、グラフィカル・ユーザ・インタフェース（GUI）でビデオAを視聴しているユーザは、共有ボタンをクリックすることにより、友人とビデオAを共有することができる。ユーザがコンテンツを視聴するために使用しているデバイスが、無線またはデータネットワークといった、ネットワークに接続されていない間、ユーザはコンテンツをオフラインで視聴することができる。しかしながら、オフラインの間、ユーザはコンテンツを共有することができない。例えば、ユーザAがネットワーク接続のない国の一部を介して動かしている。ユーザAは、オフラインの間、自分のモバイルデバイス上でコンテンツシェアリングサービスによって提供される音楽ビデオを聴くことができる。音楽ビデオBを聴いている間、音楽は彼に子供時代の思い出を思い出させる。彼は、彼の友達に音楽ビデオBを共有したく、そしてそうするために停止する。しかしながら、彼のモバイルデバイスはオフライン（国の一部においてネットワーク接続がない）であるため、ユーザAは音楽ビデオBを共有できない。ビデオを共有するために、彼はすでに停止し、彼がしていたことをやめたが、彼は共有することができない。これはユーザAをイライラさせる。さらに、ユーザAは、彼のモバイルデバイスが（ネットワーク接続を有する）オンラインに戻ったとき、ビデオを共有することを忘れるか、ビデオを共有しないことを選択する可能性があり、これは新しいユーザセッションの損失、またはコンテンツ共有サービスまたはソーシャルネットワーキングサービスのための追加の共有の損失となる。さらに、コンテンツシェアリングサービスは、オンラインおよびオフラインの間、ユーザに同じエクスペリエンス（experience）を提供することができない。
【０００９】
本開示の実施形態は、オフラインコンテンツ共有に関連する。モバイルデバイスがネットワーク接続を有しない共有を実行するために使用されている間に、ユーザはコンテンツを共有することができる。モバイルデバイス（コンテンツ共有サービスのモバイルアプリケーション、ソーシャルネットワーキングサービスのモバイルアプリケーション、ブラウザアプリケーション等の何れかを使用する）は、コンテンツ共有プラットフォームと関連するコンテンツを共有するための、ソーシャルネットワーキングサービスに対するオフラインリクエストを受信することができる。オフラインリクエストを送信したユーザの観点から、一旦オフラインの間にユーザがコンテンツの共有を送信すると、共有プロセスは完了する。オフラインリクエストに応答して、共有リクエストは、ソーシャルネットワーキングサービスを考慮してコンテンツのために生成される。コンテンツのための共有リクエストは、モバイルデバイスがネットワーク接続を有しない間に生成される。一旦ネットワーク接続が利用可能になると、コンテンツのための共有リクエストは、ソーシャルネットワーキングサービスに提供され、これは、コンテンツがソーシャルネットワーキングサービスによって共有されることをもたらす。
【００１０】
従って、本開示の態様は、オフラインコンテンツの共有を可能にし、ユーザがオフラインの間にコンテンツを共有できるようにすることができる。モバイルデバイスがネットワーク接続を有するまでコンテンツはソーシャルネットワーキングサービスによって共有されていないが、ユーザの観点から、ネットワーク接続が一旦利用可能になると、ユーザは任意の動作を行う必要がないため、コンテンツのオフライン共有が実行される。従って、ユーザはオフラインの間にコンテンツを共有することができ、ネットワーク接続の欠如によってイライラすること、あるいはコンテンツの共有を忘れることがなくなる。また、ユーザの観点から、オンライン中の共有およびオフライン中の共有は、同じ手法で実行される。
【００１１】
本開示のいくつかの態様は、ビデオ及び／又はページに関して説明され、本開示は様々なタイプのメディアコンテンツ（例えば、ビデオ、音楽、テキスト、画像、実行可能命令など）及び／又は様々なタイプのGUIドキュメント（例えば、ウェブページ、モバイルアプリケーションドキュメントなど）に関することに注目しなければならない。
【００１２】
図１は、本開示の一実施形態に従って、オフラインコンテンツ共有のためのシステムアーキテクチャ例１００を図示する。システムアーキテクチャ１００は、クライアントデバイス１１０Aから１１０Z、ネットワーク１０５、データストア１０６、コンテンツ共有プラットフォーム１２０、サーバ１３０、および１つまたは複数の外部ソーシャルネットワークプラットフォーム１４０を含む。一実施形態において、ネットワーク１０５は、公衆ネットワーク（例えば、インターネット）、プライベートネットワーク（例えば、ローカルエリアネットワーク（LAN）または広域ネットワーク（WAN））、有線ネットワーク（イーサネット（登録商標）ネットワーク）、無線ネットワーク（例えば、802.11ネットワーク、またはWi-Fiネットワーク）、セルラーネットワーク（例えば、ロングタームエボリューション（LTE）ネットワーク）、ルータ、ハブ、スイッチ、サーバコンピュータ、及び／又はそれらの組合せを含んでもよい。一実施形態において、データストア１０６は、メモリ（例えば、ランダムアクセスメモリ）、キャッシュ、デバイス（例えば、ハードドライブ）、フラッシュドライブ、データベースシステム、またはデータ保存可能なコンポーネントあるいはデバイス別の種類であってもよい。データストア１０６は、複数のコンピューティングデバイス（例えば、複数のサーバコンピュータ）に及ぶことができる複数のストレージコンポーネント（例えば、複数のドライブまたは複数のデータベース）を含んでもよい。
【００１３】
一実施形態において、コンテンツ共有プラットフォーム１２０は、メディアアイテムへのアクセスをユーザに提供する及び／又はユーザにメディアアイテムを提供するために使用され得る、１つ又は複数のコンピューティングデバイス（ラックマウント型サーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ等）、データストア（例えば、ハードディスク、メモリ、データベース）、ネットワーク、ソフトウェアコンポーネント、及び／又はハードウェアコンポーネントであってもよい。例えば、コンテンツ共有プラットフォーム１２０は、ユーザに、メディアアイテムについて消費し、更新し、検索し、承認（“好き”）し、好まない、及び／又はコメントすることを可能にしてもよい。コンテンツ共有プラットフォーム１２０は、ユーザにメディアアイテムへのアクセスを提供するために使用され得るウェブサイト（例えば、ウェブページ）を含んでもよい。
【００１４】
コンテンツ共有プラットフォーム１２０は、複数のチャンネル（例えば、チャンネルAからZ）を含んでもよい。チャンネルは、共通のソースから利用可能なデータコンテンツまたは共通の話題やテーマを有するデータコンテンツであってもよい。データコンテンツは、ユーザによって選択されたデジタルコンテンツ、ユーザによって利用可能になるデジタルコンテンツ、ユーザによってアップロードされたデジタルコンテンツ、コンテンツプロバイダによって選択されたデジタルコンテンツ、放送局によって選択されたデジタルコンテンツ等であることができる。例えば、チャンネルXはビデオYおよびZを含むことができる。チャンネルは、チャンネル上で動作を実行できるユーザであるオーナーと関連することができる。異なる活動は、例えばオーナーがチャンネル上で利用可能なデジタルコンテンツを作る、オーナーが別のチャンネルと関連する（例えば、好きな）デジタルコンテンツを選択する、オーナーが別のチャンネルと関連するデジタルコンテンツにコメントする、等の、オーナーの動作に基づいてチャンネルに関連付けることができる。チャンネルと関連する活動は、チャンネルのためのアクティビティフィード（activity feed）に纏められることができる。チャンネルのオーナー以外のユーザは、彼らが関心のある１つ又は複数のチャンネルに加入することができる。一旦、ユーザがチャンネルに加入すると、ユーザはチャンネルのアクティビティフィードからの情報を提示されることができる。ユーザが複数のチャンネルに加入した場合、ユーザが加入している各チャンネルのためのアクティビティフィードは、供給されるアクティビティフィードに組み合わされることができる。供給されたアクティビティフィードからの情報は、ユーザに提示されることができる。
【００１５】
各チャンネルは、１つまたは複数のメディアアイテム１２１を含んでもよい。メディアアイテム１２１の例として、デジタルビデオ、デジタル映画、デジタル写真、デジタル音楽、ウェブサイトコンテンツ、ソーシャルメディア更新、電子書籍（ebooks）、電子雑誌、デジタル新聞、デジタルオーディオブック、電子ジャーナル、ウェブブログ、リアルシンプルシンジケーション（real simple syndication, RSS）フィード、電子コミック本、ソフトウェアアプリケーション等を含むことができるが、これに限定されない。いくつかの実施形態において、メディアアイテム１２１は、メディアアイテムまたはコンテンツアイテムとしても参照される。
【００１６】
メディアアイテム１２１は、インターネットを介して及び/又はモバイルデバイスアプリケーションを介して消費されてもよい。簡潔さ、および単純のために、オンラインビデオ（以下、ビデオとして参照もされる）は、本明細書を通じてメディアアイテム１２１の例として使用される。この中で使用されるように、メディア、メディアアイテム、オンラインメディアアイテム、デジタルメディア、デジタルメディアアイテム、コンテンツ、およびコンテンツアイテムは、実体にデジタルメディアアイテムを表示するように構成されたソフトウェア、ファームウェア、あるいはハードウェアを使用して実行またはロードされることができる、電子ファイルを含むことができる。一実施形態において、コンテンツ共有プラットフォーム１２０は、データストア１０６を使用するメディアアイテム１２１を保存してもよい。
【００１７】
一般に、コンテンツ共有プラットフォームによって実行されているとして一実施形態において説明される機能は、適切な場合、別の実施形態において、１１０Ｚを通じてクライアントデバイス１１０Ａ上で実行されることもできる。さらに、特定のコンポーネントに起因する機能性は、異なるまたは一緒に動作する複数のコンポーネントによって実行されることができる。コンテンツ共有プラットフォーム１２０は、適切なアプリケーションプログラミングインタフェースを通じて他のシステムまたはデバイスに提供されるサービスとしてアクセスされることもでき、従って、ウェブサイトでの使用に限定されない。
【００１８】
一実施形態において、外部ソーシャルネットワークプラットフォーム１４０は、１つまたは複数のコンピューティングデバイス（例えば、ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなど）、データストア（例えば、ハードディスク、メモリ、データベース）、ネットワーク、ソフトウェアコンポーネント、及び/又はユーザにメディアアイテムについて共有またはコメントすることを可能にするために使用され得るハードウェアコンポーネントであってもよい。例えば、外部ソーシャルネットワークプラットフォーム１４０は、ユーザに、メディアアイテムについて検索し、承認（”好き”）し、好まない、及び/又はコメントすることを可能にしてもよい。外部ソーシャルネットワークプラットフォーム１４０は、メディアアイテムについて共有またはコメントするためにユーザによって使用されてもよいウェブサイト（例えば、ウェブページ）を含んでもよい。
【００１９】
クライアントデバイス１１０Aから１１０Zは、パーソナルコンピュータ（PC）、ラップトップ、携帯電話、スマートフォン、タブレットコンピュータ、ネットブックコンピュータなどのようなコンピューティングデバイスをそれぞれ含んでもよい。いくつかの実施形態において、クライアントデバイス１１０Aから１１０Zは、「ユーザデバイス」として参照されてもよい。各クライアントデバイスは、メディアビューア１１１およびオフライン共有コンポーネント１１５を含む。一実施形態において、メディアビューア１１１は、ユーザが、例えばビデオ、ウェブページ、ドキュメントなどのコンテンツを閲覧することを可能にするアプリケーションであってもよい。例えば、メディアビューア１１１は、ウェブサーバによって供給されるコンテンツ（例えば、ハイパーテキストマークアップランゲージ（HTML）ページのようなウェブページ、デジタルメディアアイテムなど）について、アクセス、検索、示す、及び/又はナビゲートできるウェブブラウザであってもよい。メディアビューア１１１は、ユーザに対してコンテンツ（例えば、ウェブページ、メディアビューア）を描画、表示、及び/又は示してもよい。メディアビューア１１１は、ウェブページ（例えば、オンライン業者によって販売された製品についての情報を提供し得るウェブページ）に埋め込まれた埋め込みメディアプレーヤ（例えば、フラッシュ（登録商標）プレイヤーまたはHTML5プレイヤー）を表示してもよい。別の例において、メディアビューア１１１は、ユーザにデジタルメディアアイテム（例えば、デジタルビデオ、デジタル画像、電子書籍など）の閲覧を許可するスタンドアローンアプリケーションであってもよい。
【００２０】
メディアビューア１１１は、サーバ１３０、コンテンツ共有プラットフォーム１２０、及び/又は外部ソーシャルネットワークプラットフォーム１４０によって、クライアントデバイス１１０Aから１１０Zに提供されてもよい。例えば、メディアビューア１１１は、コンテンツ共有プラットフォーム１２０によって提供されるウェブページに埋め込まれた埋め込みメディアプレイヤーであってもよい。別の例において、メディアビューア１１１は、サーバ１３０からダウンロードされるアプリケーションであってもよい。さらに別の例において、メディアビューア１１１は、外部ソーシャルネットワークプラットフォーム１４０からダウンロードされるアプリケーションであってもよい。
【００２１】
オフライン共有コンポーネント１１５は、コンテンツ共有プラットフォーム１２０と関連するコンテンツのオフライン共有を実行できる。オフライン共有コンポーネント１１５は、サーバ１３０、コンテンツ共有プラットフォーム１２０、または外部ソーシャルネットワークプラットフォーム１４０によってクライアントデバイス１１０Aから１１０Zに提供されることができる。たとえば、オフライン共有コンポーネント１１５は、コンテンツ共有プラットフォーム１２０からダウンロードされるアプリケーションであってもよい。別の例において、オフライン共有コンポーネント１１５は、外部ソーシャルネットワークプラットフォーム１４０からダウンロードされるアプリケーションであってもよい。さらに別の例において、オフライン共有コンポーネント１１５は、サーバ１３０からダウンロードされるアプリケーションであってもよい。
【００２２】
一実施形態において、対応するクライアントデバイスがネットワーク１０５への接続を有しない（オフラインである）間、オフライン共有コンポーネント１１５は、コンテンツ共有プラットフォーム１２０または外部ソーシャルネットワークプラットフォーム１４０のようなソーシャルネットワーキングサービスのユーザのためにオフラインコンテンツ共有を実行する。オフライン共有コンポーネント１１５によって共有されるコンテンツは、コンテンツ共有プラットフォーム１２０と関連してもよい。オフラインコンテンツ共有コンポーネント１１５は、コンテンツを共有するための、ソーシャルネットワーキングサービスに対するオフラインリクエストを取得でき、および対応するクライアントデバイスがネットワーク１０５への接続を有しない間にソーシャルネットワーキングサービスに基づいて共有リクエストを生成できる。オフライン共有コンポーネント１１５は、一旦ネットワーク１０５への接続が利用可能になると、共有リクエストをソーシャルネットワーキングサービス（例えば、コンテンツ共有プラットフォームら１２０または外部ソーシャルネットワークプラットフォーム１４０など）に提供できる。オフライン共有コンポーネント１１５およびその特定の機能のさらなる説明は、図２に関連して以下でさらに詳細に説明されている。
【００２３】
開示の実装は、コンテンツ共有プラットフォームおよびソーシャルネットワーキングサービスへのオフラインコンテンツ共有の観点から議論されているが、実装は、一般に、ユーザ間の接続を提供する任意のタイプのネットワークに適用されることもできる。開示の実装は、コンテンツ共有プラットフォームまたはソーシャルネットワーキングサービスに対して限定されるものではない。
【００２４】
ここで議論される、ユーザに関する個人情報を収集し、個人情報の利用をさせることができるシステムの状況において、ユーザは、コンテンツ共有プラットフォーム１２０がユーザ情報（例えば、ユーザのソーシャルネットワーク、ソーシャル行動または活動、職業、ユーザの好み、あるいはユーザの現在位置に関する情報）を収集するか否かを制御する、またはユーザにとってより関連性の高い可能性があるコンテンツサーバから、コンテンツを受信することを制御するかどうか及び/又は受信する方法を制御する機会を提供されてもよい。さらに、特定のデータは、格納又は使用される前にひとつ又は複数の方法で処理されてもよく、そうすることによって、個人を特定できる情報が取り除かれる。例えば、ユーザの身元は、個人を特定できる情報がユーザに対して特定できないように、処理されることができる。あるいは、位置情報が取得されるユーザの地理的位置は、一般化（例えば、都市、郵便番号、または州レベルなど）されてもよく、それによってユーザの詳細な位置は決定されることができない。したがって、ユーザは、ユーザに関する情報について、収集されかつコンテンツ共有プラットフォーム１２０によって使用される方法に対する制御を有してもよい。
【００２５】
図２は、本開示の一実施形態に従った、オフライン共有コンポーネント１１５を図示するブロック図である。一実施形態において、オフライン共有コンポーネント１１５は、静的選択モジュール２１０および応答配信モジュール２２０を含む。より多くの、または少ないコンポーネントは、情報選択コンポーネント１４０に一般性を失うことなく含まれてもよい。例えば、二つのモジュールは、単一のモジュール内に組み合わせることができ、またはモジュールの一方が二つ以上のモジュール内に分割されてもよい。一実施形態において、１つ又は複数のモジュールは、異なるコンピューティングデバイス（例えば、異なるサーバコンピュータ）上に常駐してもよい。
【００２６】
オフライン共有コンポーネント１１５は、データストア２５０に通信可能に接続される。例えば、オフライン共有コンポーネント１１５は、オフライン共有コンポーネント１１５があるコンピューティングデバイス（例えば、クライアントデバイス１１０A）に直接接続されてもよい。別の例において、オフライン共有コンポーネント１１５は、オフライン共有コンポーネントが常駐するサーバに直接接続されてもよい（例えば、サーバ１３０に直接接続されてもよい）。データストア２５０は、メモリ（例えば、ランダムアクセスメモリ）、キャッシュ、ドライブ（例えば、ハードドライブ）、フラッシュドライブ、データベースシステム、あるいはデータを保存できるコンポーネント又はデバイスの別の種類であってもよい。データストア２５０は、複数のコンピューティングデバイス（例えば、複数のサーバコンピュータ）にわたることのできる複数のストレージコンポーネント（例えば、複数のドライブまたは複数のデータベース）を含んでもよい。データストア２５０は、ソーシャルネットワーキングサービス通信メッセージフォーマット２５５および共有リクエスト２６０を含む。
【００２７】
上述したように、オフライン共有コンテンツ１１５は、オフラインコンテンツ共有を実行する。オフラインコンテンツ共有の実行は、ソーシャルネットワーキングサービスにコンテンツホスティングプラットフォームと関連するコンテンツアイテムを共有するためのオフラインリクエストを受信すること、ソーシャルネットワーキングサービスを考慮してコンテンツアイテムのための共有リクエストを生成すること、任意で共有リクエストを編集すること、および一旦ネットワーク接続が確立されると、ソーシャルネットワーキングサービスに共有リクエストを提供することを含んでもよい。
【００２８】
一実施形態において、ソーシャルネットワーキングサービスへのコンテンツホスティングプラットフォームと関連するシェアコンテンツに対するオフラインリクエストを受信することに応答して、共有リクエスト生成サブモジュール２０５は、ソーシャルネットワーキングサービスに基づいて共有リクエストを生成する。
【００２９】
一実施形態において、共有リクエスト生成サブモジュール２０５が、ユーザインタフェース要素を介してコンテンツを共有するためのオフラインリクエストを受信したとき、共有リクエスト生成サブモジュール２０５は、ソーシャルネットワーキングサービスと関連する共有ユーザインタフェースドキュメント（例えば、共有ウェブページ）の以前に保存されたバージョンを取得することによって共有リクエストを生成し、共有されるコンテンツと関連するコンテンツ情報を含めるために共有ユーザインタフェースドキュメントを編集し、次いで編集された共有ユーザインタフェースドキュメントがユーザに提供されることをもたらす。例えば、共有リクエスト生成サブモジュール２０５は、データストアから、例えばデータストア２５０内のソーシャルネットワーキングサービスドキュメント２５５のような、ソーシャルネットワーキングサービスと関連する共有ユーザインタフェースドキュメントの以前に保存されたバージョンを取得することができる。
【００３０】
共有リクエスト生成サブモジュール２０５は、コンテンツのオフライン共有のための情報を含めるように共有ユーザインタフェースドキュメントの一部、例えば、コンテンツのタイトル、コンテンツの画像表示（例えば、サムネイル）、共有されるコンテンツの説明などを置き換えるか、変更することによって、ソーシャルネットワーキングサービスと関連する共有ユーザインタフェースドキュメントの以前に保存されたバージョンを編集することができる。
【００３１】
共有ユーザインタフェースドキュメントがユーザに提供されることをもたらすことに応答して、共有リクエスト生成サブモジュール２０５は、例えば、変更された共有ユーザインタフェースドキュメント上の共有ユーザインタフェース要素（例えば、共有ボタン）を選択することによって、ユーザがコンテンツを共有したいと指示したときにユーザから別のオフライン共有リクエストを受信することができる。
【００３２】
共有リクエスト生成サブモジュール２０５は、ネットワークへの接続無しで（例えば、図１のネットワーク１０５への接続無しで）ソーシャルネットワーキングサービスを考慮してコンテンツアイテムのための共有リクエストを生成する。一実施形態において、共有リクエスト生成サブモジュール２０５は、例えばソーシャルネットワーキングサービス通信プロトコルフォーマットのような、ソーシャルネットワーキングサービスのための所定のフォーマットで共有リクエストを作成することによって共有リクエストを生成する。所定のフォーマットは、コンテンツアイテムおよびソーシャルネットワーキングサービスと関連するコンテンツホスティングプラットフォームによって使用される通信プロトコルに基づくことができる。共有リクエスト生成サブモジュール２０５は、ストレージから、データストア２５０内のソーシャルネットワーキングサービスプロトコル２６０のような、所定のフォーマットまたはプロトコルメッセージテンプレートを取得することができる。一実施形態において、共有リクエスト生成サブモジュール２０５は、例えばコンテンツアイテムについての情報、ユーザについての情報などのパラメータのセットを含む共有リクエストを作成することができる。一実施形態において、共有リクエスト生成サブモジュール２０５は、ストレージに、例えばデータストア２５０内の共有リクエスト２６５のような共有リクエストを保存することができる。代替の実施形態において、共有リクエスト生成サブモジュール２０５は、オペレーティングシステムまたはアプリケーションに共有リクエストを提供する。
【００３３】
ネットワーク接続判定サブモジュール２１０は、オフラインリクエストが提供されたことを通じて、デバイスのためにネットワーク接続が利用可能であるか、または確立されているか否かを判定する。ネットワーク接続判定サブモジュール２１０は、ネットワーク接続が利用可能であるという指示をオペレーティングシステムから受信する、ネットワーク接続が利用可能であるという指示をアプリケーションまたは別のソースから受信する等で、周期的にネットワーク接続が利用可能であるか否かを判定する。ネットワーク接続判定サブモジュール２１０がネットワーク接続が利用可能でないと判定した場合、ネットワーク接続判定サブモジュール２１０は、ネットワーク接続が利用可能になるのを待ち続ける。
【００３４】
共有リクエスト提供サブモジュール２１５は、ソーシャルネットワーキングサービスに共有リクエストを提供する。一実施形態において、共有リクエスト提供サブモジュール２１５は、例えば共有リクエスト２６５のような共有リクエストが保存されたメモリ位置にアクセスし、ネットワーク接続を使用してソーシャルネットワーキングサービスに（例えば、ソーシャルネットワーキングサービスと関連するサーバなどに）共有リクエストを送信することによって、ソーシャルネットワーキングサービスに共有リクエストを提供する。代替の実施形態において、共有リクエスト提供サブモジュール２１５は、ソーシャルネットワーキングサービスに共有リクエストを送信するために、オペレーティングシステム（図示せず）へ、オペレーティングシステムは共有リクエスト２６５のような共有リクエストが保存されるメモリ位置にアクセスできるという指示を提供することによって、ソーシャルネットワーキングサービスへ共有リクエストを提供する。別の代替の実施形態において、共有リクエスト提供サブモジュール２１５は、ソーシャルネットワーキングサービスに共有リクエストを提供せず、その代わりにオペレーティングシステム（図示せず）がソーシャルネットワーキングサービスに共有リクエストを提供する。ソーシャルネットワーキングサービスに共有リクエストを提供するための他の代替の実施形態は、本開示の範囲から逸脱することなく使用されることができる。ソーシャルネットワーキングサービスに共有リクエストを提供することによって、共有リクエスト提供サブモジュール２１５は、ソーシャルネットワーキングサービスが共有リクエストによって参照されるコンテンツアイテムを共有することをもたらす。いくつかの任意の実施形態において、共有リクエスト提供サブモジュール２１５は、共有リクエストまたは共有リクエストの一部に加えて、ユーザ情報、状態情報（例えば、閲覧活動、仮想ショッピングカードのアイテムなど）、オフラインリクエストが受信された日付及び／又は時間に対応するタイムスタンプ、共有リクエストが作成されたか又はソーシャルネットワーキングサービスに提供された日付及び／又は時間に対応するタイムスタンプなどを、ソーシャルネットワーキングサービスに情報を提供することができる。
【００３５】
一つの任意の実施形態において、共有リクエストを提供する前に、サブモジュールモジュール２１５に提供する共有リクエストは、ユーザ入力に基づいて共有リクエストを変更することができる。ユーザ入力は、共有リクエストが交換、キャンセル等をされるべきか否かを示すことができる。
【００３６】
図３Ａは、本開示の一実施形態に従ったユーザインタフェースの例３００である。例えば、ユーザは、ユーザがコンテンツをリクエストするとき、ユーザインタフェース３００を示されることができる。ユーザインタフェース３００は、ウェブブラウザ、サードパーティウェブページに埋め込まれたアプリケーション（例えば、モバイルアプリ）などを介してユーザに提供されることができる。
【００３７】
ユーザインタフェース３００は、コンテンツ３０５と共有ボタン３１０を含む。コンテンツ３０５は、ビデオ、音楽ファイル、ブログなどである。共有ボタン３１０は、ネットワーク接続がない間にユーザにコンテンツ３０５を共有することを可能にするユーザインタフェース要素であることができる。一実施形態において、共有ボタン３１０を選択すると、ユーザは更なる行動をとる必要がなく、コンテンツ３０５は共有される。代替の実施形態において、共有ボタン３１０が選択されると、追加のユーザインタフェースがユーザに提供される。例示的な追加のユーザインタフェースは、図３Ｂを参照して以下に説明される。
【００３８】
図３Ｂは、本開示の一実施形態に従ったユーザインタフェース例３５０である。例えば、ユーザは、ユーザが共有コンテンツを共有するためのオフラインリクエストを出したとき、ユーザインタフェース３５０を提示されることができる。ユーザインタフェース３５０は、サードパーティのウェブページに埋め込まれたウェブブラウザ、アプリケーション（例えば、モバイルアプリケーション）等を介して、ユーザに提供されることができる。
【００３９】
ユーザインタフェース３５０は、コメント３５５、サムネイル３６０、連絡先ユーザインタフェース要素３６５、共有ボタン３７０、およびキャンセルボタン３７５を含む。コメント３５５は、コメントや他のテキストや視覚情報が共有リクエストによって生成されたソーシャル共有に含まれるようにすることができる。サムネイル３６０は、オフラインで共有されるようにコンテンツのために、例えばサムネイルやタイトル等のように、表示されることができる。ユーザインタフェース要素３６５（任意の）は、ユーザがオフラインでコンテンツを共有したい人との連絡のための連絡先情報（名前、電子メールアドレスなど）をユーザが提供することを可能にする。共有ボタン３７０は、サムネイル３６０によって表示されたコンテンツを共有するためにオフラインリクエストを出すすることをユーザが選択（例えばクリックなど）できるボタンのようなユーザインタフェース要素であることができる。キャンセルボタン３７５は、サムネイル３６０によって表示されたコンテンツを共有するためのオフラインリクエストをキャンセルするためにユーザが選択（例えばクリックなど）できるボタンのようなユーザインタフェース要素であることができる。
【００４０】
図４は、オフラインコンテンツ共有の方法４００の実施形態を図示するフロー図である。方法４００は、ハードウェア（例えば、回路、専用ロジック、プログラム可能ロジック、マイクロコードなど）、ソフトウェア（例えば、ハードウェアシミュレーションを実行するために処理デバイス上で実行する命令）、またはそれらの組み合わせを含み得る処理ロジックによって実行されてもよい。一実施形態において、方法４００は、クライアントデバイス（例えば、図１のクライアントデバイス１１０A−１１０Z）によって実行される。
【００４１】
説明を簡単にするために、本開示の方法は、一連の動作として図示および説明する。しかしながら、本開示に従った動作は、様々な順序で、及び／又は同時に発生することができ、並びに本明細書に提示および記載されていない他の動作と共に発生することができる。さらに、開示される主題に従った方法を実施するために例示された全ての動作が必要とされるわけではない。さらに、当業者は、方法が状態図またはイベントを介して一連の関連する状態として、代わりに表すことができることを理解するであろう。加えて、本明細書で開示される方法は、コンピューティングデバイスにそのような方法を容易に輸送および転送するために、製品上に格納されることが可能であることを理解されたい。本明細書で使用される「製品」という用語は、任意のコンピュータ可読デバイス、または記憶媒体からアクセス可能であるコンピュータプログラムを包含することが意図されている。一実施形態において、方法４００は、図１に示された情報選択モジュール１２０によって実行され得る。
【００４２】
ブロック４０５で、処理ロジックは、ソーシャルネットワーキングサービスへのコンテンツホスティングプラットフォームと関連するコンテンツを共有するためのオフラインリクエストを受信する。オフラインリクエストは、ロジックを進めるために利用可能であるネットワーク接続が無い、またはオフラインリクエストが作成されるデバイスへのネットワーク接続が無い間に、ソーシャルネットワーキングサービスを使用して、コンテンツを共有したいユーザによって作成されることができる。
【００４３】
一実施形態において、処理ロジックは、ソーシャルネットワーキングサービスドキュメントまたはコンテンツホスティングプラットフォームドキュメント（例えば、ウェブページ）上で、ユーザインタフェース要素（例えば、ウェブページ上のユーザによって選択された共有ボタン）を介してコンテンツを共有するためのオフラインリクエストを受信する。例えば、処理ロジックは、ユーザがソーシャルネットワーキングサービスウェブページの一部として表示された共有ボタンをクリックしたとき、コンテンツを共有するためのオフラインリクエストを受信する。この実施形態において、コンテンツを共有するためのオフラインリクエストを受信することに応答して、処理ロジックは、ソーシャルネットワーキングサービスと関連する共有するユーザインタフェースドキュメントの、以前に保存されたバージョンを取得し、共有するユーザインタフェースドキュメントを、共有されるコンテンツと関連するコンテンツ情報を含むように変更し、および変更された共有するユーザインタフェースドキュメントがユーザに提供されることをもたらす。
【００４４】
ソーシャルネットワーキングサービスと関連する共有するユーザインタフェースドキュメントは、静的および動的要素の両方を含む。静的要素は、共有するユーザインタフェースドキュメントに交換されない要素であることができ、およびソーシャルネットワーキングサービスについての情報を含むことができ、ボタン（コンテンツを共有するための共有ボタンを含む）、ボックス、ウィンドウ、ドロップダウンリスト等のようなユーザインタフェース要素を含むことができる。コンテンツを共有する人のために情報（例えば、名前、電子メールアドレス、ソーシャルネットワークグループなど）を特定する等、共有するユーザインタフェースドキュメントのユーザインタフェース要素は、コメントを提供するためにユーザによって使用されることができる。動的な要素は、共有されているものまたは共有している人に依存するので、共有するユーザインタフェースドキュメントに交換する要素を含むことができる。共有するユーザインタフェースドキュメントの動的要素は、コンテンツを共有するユーザなどの、共有されているコンテンツについての情報を含むことができる。共有するユーザインタフェースドキュメント上の多くの要素が静的であるため、共有するユーザインタフェースドキュメントは、事前にキャッシュされる、または保存されることができるか、または、その共有サイトのためのテンプレート（例えば、ＨＴＭＬテンプレート）としてソーシャルネットワーキングサービスによって提供されることができる。処理ロジックは、メモリ（例えば、キャッシュ）から共有するユーザインタフェースドキュメントの以前に保存されたバージョンを取得することができる。
【００４５】
処理ロジックは、コンテンツのオフライン共有のための情報を含めるために、共有するユーザインタフェースドキュメントの動的要素を置き換えるか又は変更することによって、ソーシャルネットワーキングサービスと関連する共有するユーザインタフェースドキュメントの以前に保存されたバージョンを変更することができる。例えば、処理ロジックは、コンテンツのタイトル、コンテンツの画像表示（例えば、サムネイル）、共有されているコンテンツの説明等を含むように、共有するユーザインタフェースドキュメントの動的要素を変更する。一実施形態において、共有するユーザインタフェースドキュメントの動的要素を置き換えまたは変更することに加えて、処理ロジックは、共有するユーザインタフェースドキュメントが、コンテンツの共有がネットワーク接続が利用可能になるまで、またはネットワークへの接続が確立するまで発生しない、という情報（例えば、通知）を含むようにさらに変更する。処理ロジックは、共有するユーザインタフェースドキュメントにこの情報を表示する要素を追加し、共有するユーザインタフェースドキュメントの存在する動的要素内における情報を含み、ポップアップウィンドウを作成し、およびポップアップウィンドウのこの情報を含むこと等によって、この情報を含めるように共有するユーザインタフェースドキュメントを変更することができる。
【００４６】
一実施形態において、処理ロジックは、変更された共有するユーザインタフェースドキュメントをブラウザアプリケーションに提供する、および変更された共有するユーザインタフェースドキュメントを表示するためのリクエストをブラウザアプリケーションに提供することにより、変更された共有するユーザインタフェースドキュメントをユーザに提供されることをもたらす。代替の実施形態において、処理ロジックは、変更された共有するユーザインタフェースドキュメントをソーシャルネットワーキングサービスまたはコンテンツホスティングプラットフォームと関連するモバイルアプリケーションに提供することにより、および変更された共有するユーザインタフェースドキュメントを表示するためにモバイルアプリケーションにリクエストを提供することにより、変更された共有するユーザインタフェースドキュメントがユーザに提供されることをもたらす。別の代替実施形態において、処理ロジックは、変更された共有するユーザインタフェースドキュメントをオペレーティングシステムに送信するか、変更された共有するユーザインタフェースドキュメントをオペレーティングシステムによってアクセス可能なメモリに保存することによって、等、オペレーティングシステムに変更された共有するユーザインタフェースドキュメントを提供することによって、変更された共有するユーザインタフェースドキュメントがユーザに提供されることをもたらす。本実施形態において、オペレーティングシステムは、変更された共有するユーザインタフェースドキュメントを表示することができ、そうでなければ、変更された共有するユーザインタフェースドキュメントが表示されることをもたらすことができる。
【００４７】
変更された共有するユーザインタフェースドキュメントがユーザに提供されることをもたらすことに応答して、ユーザがコンテンツを共有したいとき、処理ロジックは、例えば、変更された共有するユーザインタフェースドキュメント上の共有ユーザインタフェース要素を選択するなどによる、別のオフライン共有リクエストをユーザから受信することができる。例えば、オフラインの間にユーザがコンテンツアイテムＡを含むページを閲覧し、ソーシャルネットワーキングサービスＢを使用してコンテンツアイテムＡを共有するための共有ボタンをクリックする。処理ロジックは、コンテンツアイテムＡを共有するためのオフラインリクエストをページを表示しているブラウザアプリケーションから受信する。コンテンツアイテムＡを共有するためのオフラインリクエストに応答して、処理ロジックは、ソーシャルネットワーキングサービスＢのための以前に保存された共有ページを取得し、コンテンツアイテムの名前、コンテンツのサムネイル、および共有されるコンテンツアイテムの説明を含む、以前に保存された共有ページを変更する。処理ロジックは、次いで変更された共有ページと、ブラウザアプリケーションが変更された共有するページを表示するリクエストをブラウザアプリケーションに提供する。ユーザが共有リクエストを出すための変更された共有ページ上の共有ボタンを選択したとき、処理ロジックは、別のオフライン共有リクエストをユーザから受信してもよい。
【００４８】
任意で、一実施形態において、処理ロジックは、処理ロジックと関連するオペレーティングシステムに登録する。オペレーティングシステムに登録することによって、処理ロジックは、例えばネットワーク接続の有効性などの情報を、オペレーティングシステムから取得することができる。さらに、オペレーティングシステムに登録することによって、処理ロジックは、共有リクエスト、オフラインリクエスト等の情報を、オペレーティングシステムに提供することができる。処理ロジックは、アプリケーションプログラミングインタフェース（ＡＰＩ）等のインタフェースを使用してオペレーティングシステムに登録することができる。例えば、処理ロジックは、add_event(event_id, call_back_method)などのオペレーティングシステムに登録するための方法を使用する。この例において、event_idを備えたイベントが発生したとき、オペレーティングシステムは、”call_back_method”を呼び出し、call_back_methodによってトリガされるイベントを処理する。処理ロジックは、共有コンテンツ等へのオフラインリクエストを、インストールし、開始し、受信すると、オペレーティングシステムに登録することができる。
【００４９】
任意で、一実施形態において、処理ロジックは、オフラインリクエストが以前に認証されたユーザによって出されたか否かを判定する。処理ロジックは、ユーザがモバイルアプリケーションまたはブラウザセッションを使用してソーシャルネットワーキングサービスやコンテンツホスティングプラットフォームにログインしていたか否かを確認することにより、オフラインリクエストが以前に認証されたユーザによって出されたか否かを判定することができる。一実施形態において、処理ロジックは、ユーザが、モバイルアプリケーションまたはブラウザセッションによって保存された状態情報（例えば、クッキー）にアクセスすることにより、モバイルアプリケーションまたはブラウザセッションを使用して、ソーシャルネットワーキングサービスまたはコンテンツホスティングプラットフォームにログインしたか否かを確認することができる。状態情報（例えば、クッキー）がユーザの認証または識別を含む場合、処理ロジックは、オフラインリクエストが以前に認証されたユーザによって出されたことを判定できる。処理ロジックは、状態情報、認証情報、およびユーザ情報をメモリに保存することができる。この任意の実施形態において、処理ロジックが、オフラインリクエストが以前に認証されていないユーザによって出されたと判定した場合、方法４００は終了する。この任意の実施形態において、処理ロジックが、オフラインリクエストがソーシャルネットワーキングサービスに以前に認証されたユーザによって出されたと判定した場合、方法４００はブロック４１０に進む。
【００５０】
ブロック４１０で、処理ロジックは、ソーシャルネットワーキングサービスを考慮してコンテンツアイテムのための共有リクエストを生成する。一実施形態において、処理ロジックは、利用可能なネットワーク接続なしに、コンテンツアイテムのための共有リクエストを生成する。一実施形態において、コンテンツアイテムのための第１オフラインリクエストを受信して、処理ロジックは、ソーシャルネットワーキングサービスを考慮してコンテンツアイテムのための共有リクエストを生成する。代替の実施形態において、ユーザが、コンテンツアイテムのための変更された共有するユーザインタフェースドキュメントのコンテンツを共有したいという指示を出したとき、受信されたコンテンツアイテムのための第２のオフラインリクエストを受信すると、処理ロジックは、ソーシャルネットワーキングサービスを考慮してコンテンツアイテムのための共有リクエストを生成する。
【００５１】
一実施形態において、処理ロジックは、所定のフォーマットで共有リクエストを作成し、ネットワーク接続が利用可能になるまで共有リクエストを保存することによって、共有リクエストを生成する。所定のフォーマットは、コンテンツアイテムおよびソーシャルネットワーキングサービスと関連するコンテンツホスティングプラットフォームによって使用される通信プロトコルに基づいてもよい。例えば、通信プロトコルは、ソーシャルネットワーキングサービスによって実行されるサブルーチンまたはプロシージャを引き起こす、リモートプロシージャコール（ＲＰＣ）であってもよい。処理ロジックは、コンテンツアイテムについての情報、ユーザについての情報などのパラメータのセットを含むための共有リクエストを作成することができる。一実施形態において、共有リクエストに含まれるパラメータのセットは、通信プロトコルに基づく。代替の実施形態において、共有リクエストに含まれるパラメータのセットは、例えばオフラインリクエストと関連するユーザ情報、オフラインリクエストが受信された日付と時間のタイムスタンプ、共有リクエストが作成された日付と時間のタイムスタンプ等、通信プロトコルによって必要とされない、任意のパラメータであるが、コンテンツアイテムを共有するためのソーシャルネットワーキングサービスによって使用される。
【００５２】
異なるソーシャルネットワーキングサービスは、異なる通信プロトコル及び／又は共有リクエストのためのフォーマットを使用することができる。処理ロジックは、共有リクエストが送信され、通信プロトコルに基づいて共有リクエストが生成される、ソーシャルネットワーキングサービスに基づいて通信プロトコルを決定することができる。例えば、コンテンツアイテムがコンテンツホスティングプラットフォームＡによってホストされ、ユーザがソーシャルネットワーキングサービスＢに対してコンテンツアイテムを共有している場合である。この例において、コンテンツホスティングプラットフォームＡが、ＲＰＣを使用してソーシャルネットワーキングサービスＢと接続する場合、処理ロジックは、コンテンツアイテムについての情報およびコンテンツホスティングプラットフォームＡとソーシャルネットワーキングサービスＢとの間のＲＰＣによって必要とされる任意の他の情報を含む共有リクエストのためにＲＰＣメッセージを作成する。
【００５３】
一旦処理ロジックが共有リクエストを作成すると、（共有リクエストを送信するために使用するネットワーク接続が無いので）ソーシャルネットワーキングサービスに共有リクエストを送信するのではなく、処理ロジックは、共有リクエストを保存することができる。一実施形態において、処理ロジックは、共有リクエストを処理ロジックと関連するメモリ（処理ロジックに利用可能な、例えば、キャッシュ、ＲＯＭ、ＲＡＭ等）に保存する。代替の実施形態において、処理ロジックは、オペレーティングシステムに共有リクエストを提供する。本実施形態において、オペレーティングシステムは、ネットワーク接続が利用可能になるまで、共有リクエストを保存する。
【００５４】
ブロック４１５で、処理ロジックは、ネットワーク接続が利用可能であるか否かを判定する。一実施形態において、処理ロジックは、デバイスの設定（例えば、ネットワーク設定）にアクセスし、設定が、デバイスがネットワークに接続されていると示しているか否かを判定することよって、ネットワーク接続が利用可能であるか否かを判定する。本実施形態において、処理ロジックは、ネットワーク接続が利用可能であるか否かを、周期的、例えば毎秒、毎分等のように判定することができる。代替の実施形態において、ネットワーク接続が利用可能であるという指示をオペレーティングシステムから受信すると、処理ロジックは、ネットワークが利用可能であることを判定する。本実施形態において、オペレーティングシステムは、オペレーティングシステムが利用可能なネットワークを検出したときに、指示を提供することができる。別の代替実施形態において、処理ロジックは、ネットワーク接続が利用可能であるという指示を、アプリケーションまたは別のソースから受信すると、ネットワーク接続が利用可能であるか否かを判定する。
【００５５】
処理ロジックが、利用可能なネットワーク接続が無いと判断した場合、方法４００は、ネットワーク接続が利用可能になるのを待ち続ける。処理ロジックが、利用可能なネットワーク接続があると判断した場合、方法４００は、ブロック４２０に進む。
【００５６】
任意のブロック４２０で、処理ロジックは共有リクエストを変更するか否かを判定する。処理は、ユーザが共有リクエストを変更したいか否かを判定するために、ユーザからの入力を要求することにより、共有リクエストを変更するか否かを決定することができる。一実施形態において、処理ロジックは、ユーザインタフェースに共有リクエストを変更するか否かをユーザに尋ねることを表示させることにより、ユーザからの入力を要求する。ユーザインタフェースは、例えば、共有されるコンテンツ、コンテンツを共有するためのオフラインリクエストが作成された時間及び／又は日付、オフラインリクエストを送ったユーザについての識別情報等の、共有リクエストについての情報を含むことができる。ユーザインタフェースは、ユーザに共有リクエストの変更を可能にする、１つ又は複数のユーザインタフェース要素（ボタン、選択ツール等）をさらに含むことができる。ユーザインタフェース要素は、共有リクエストを交換するための要素、または共有リクエストをキャンセルするための要素を含むことができる。処理ロジックが、共有リクエストを変更しないと判断した場合、方法４００は、ブロック４３０に進む。処理ロジックが、共有リクエストを変更すると判断した場合、方法４００は、ブロック４２５に進む。
【００５７】
任意のブロック４２５で、処理ロジックは、共有リクエストを変更する。処理ロジックは、ユーザ入力に基づいて共有リクエストを変更することができる。一実施形態において、処理ロジックは、ユーザ入力をキャプチャするユーザインタフェースからユーザ入力を取得する。代替の実施形態において、処理ロジックは、ユーザ入力を保存しているメモリからユーザ入力を取得することができる。例えば、ユーザ入力が、共有リクエストをキャンセルすべきであることを示す場合、処理ロジックはメモリまたはキャッシュから共有リクエストをキャンセル（例えば、削除、除去）できる。別の例において、共有リクエストのための情報を更新する（例えば、共有に伴うテキストを変更する、共有リクエストのための全てのコンテンツを変更する、共有リクエストのためのメタデータを変更する、等）といった、ユーザ入力が共有リクエストを交換することを示す場合、処理ロジックは、ユーザ入力に基づいて共有リクエストのための情報を更新することができる。
【００５８】
ブロック４３０において、処理ロジックはソーシャルネットワーキングサービスに共有リクエストを提供する。一実施形態において、処理ロジックは、ソーシャルネットワーキングサービスに共有リクエストを直接提供することによって、ソーシャルネットワーキングサービスへ共有リクエストを提供する。代替の実施形態において、処理ロジックは、共有リクエストを含むメッセージをソーシャルネットワーキングサービスに提供することにより、ソーシャルネットワーキングサービスに共有リクエストを提供する。一実施形態において、処理ロジックは、共有リクエストが保存されたメモリ位置にアクセスし、ソーシャルネットワーキングサービスに（例えば、ソーシャルネットワーキングサービスと関連するサーバ等に）ネットワーク接続を使用して共有リクエストを送信することにより、ソーシャルネットワーキングサービスに共有リクエストを提供する。代替の実施形態において、処理ロジックは、オペレーティングシステムがソーシャルネットワーキングサービスに共有リクエストを送信すべきであるという指示をオペレーティングシステムに提供することによって、ソーシャルネットワーキングサービスに共有リクエストを提供する。別の代替実施形態において、処理ロジックは、ソーシャルネットワーキングサービスに共有リクエストを提供せず、その代わりに処理ロジックと関連するオペレーティングシステムがソーシャルネットワーキングサービスに共有リクエストを提供する。ソーシャルネットワーキングサービスに共有リクエストを提供するための他の代替実施形態は、本開示の範囲から逸脱することなく使用されることができる。ソーシャルネットワーキングサービスに共有リクエストを提供することによって、処理ロジックは、ソーシャルネットワーキングサービスが共有リクエストによって参照されるコンテンツアイテムを共有することをもたらす。コンテンツアイテムを共有するために、ソーシャルネットワーキングサービスは、ソーシャルネットワーキングサービスと関連するドキュメント（例えば、ウェブページ、ソーシャル共有など）のコンテンツアイテムを参照できる。例えば、ドキュメントは、ユーザの個人のウェブページであることができ、および画像、ビデオ、音楽、および共有する他のメディアアイテムを含むことができる。例えば、ソーシャル共有は、コメント、ポスト、あるいはソーシャルネッワークページと関連する任意の他の文脈であることができる。
【００５９】
いくつかの任意の実施形態において、処理ロジックは、共有リクエストに加えるかまたは共有リクエストの一部としてソーシャルネットワーキングサービスに情報を提供する。一実施形態において、処理ロジックは、ソーシャルネットワーキングサービスへの共有リクエストを作るユーザと関連する情報を提供する。ユーザと関連する情報は、ユーザのログイン証明書、ユーザのログイン情報（例えば、名前、パスワードなど）、ユーザの認証情報、あるいはユーザと関連する任意の他の識別情報を含むことができる。一実施形態において、処理ロジックは、現在の状態情報のスナップショットを含む情報を提供する。現在の状態情報は、ユーザの以前の閲覧活動または、仮想ショッピングカードの中のアイテムなど、別のステートフルな情報を含むことができる。ユーザの以前の閲覧活動は、特定のボタンのクリック、ログイン、ＵＩドキュメントの記録、またはユーザによって訪問されたウェブページ等の活動を含むことができる。一実施形態において、処理ロジックは、オフラインリクエストが受信された日時及び／又は時間に対応するタイムスタンプを含む情報を提供する。一実施形態において、処理ロジックは、共有リクエストが作成されたまたはソーシャルネットワーキングサービスに提供された日時及び／又は時間に対応するタイムスタンプを含む情報を提供する。
【００６０】
図５は、本明細書で説明される一つ以上の方法を機械に実行させるための、実行され得る命令のセットを含む典型的なコンピュータシステムの形式５００の機会の図表示を図解する。代替の実施形態において、機械は、LAN、イントラネット、エクストラネット、またはインターネットで、他の機会と結合されてもよい。機械は、クライアント−サーバネットワーク環境で、サーバまたはクライアントコンピュータシステムの立場において動作してもよく、またはピアツーピア（または分散型の）ネットワーク環境におけるピア（peer）機械として操作してもよい。機械は、パーソナルコンピュータ（PC）、タブレットPC、セットトップボックス（STB）、パーソナルデジタルアシスタント（PDA）、携帯電話、ウェブ電化製品、サーバ、ネットワークルータ、スイッチまたはブリッジ、または、機械によって取得される動作を指定する命令のセット（逐次的またはそれ以外）を実行できる任意の機械であってもよい。さらに、単一の機械だけが図示されているが、「機械」という用語は、本明細書で説明される方法論の任意の一つ以上を実行するための命令のセット（もしくは多数のセット）を個別にまたは共同で実行する機械の任意の集合を含んでもよいと解釈されるべきである。
【００６１】
例示的なコンピュータシステム５００は、処理デバイス（プロセッサ）５０２、メインメモリ５０４（例えば、リードオンリーメモリ（ＲＯＭ）、フラッシュメモリ、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）またはラムバスＤＲＡＭ（ＲＤＲＡＭ）のようなダイナミックランダムアクセスメモリ（ＤＲＡＭ）など）、静的メモリ５０６（例えば、フラッシュメモリ、静的ランダムアクセスメモリ（ＳＲＡＭ）など）、およびデータストレージデバイス５１８を含み、これらはバス５３０を介して互いに接続している。
【００６２】
プロセッサ５０２は、マイクロプロセッサ、中央処理装置、または同種のものといった、一つ以上の汎用処理デバイスを表す。とりわけ、プロセッサ５０２は、復号命令セットコンピュータ（CISC）マイクロプロセッサ、縮小命令セットコンピュータ（RISC）マイクロプロセッサ、超長命令語（VLIW）マイクロプロセッサ、または他の命令セットを実装するプロセッサまたは命令セットの組み合わせを実装するプロセッサであってもよい。プロセッサ５０２は、特定用途向け集積回路（ASIC）、フィールドプログラマブルゲートアレイ（FPGA）、デジタル信号プロセッサ（DSP）、ネットワークプロセッサ、または同種のもののような、一つ以上の専用処理デバイスも含んでもよい。プロセッサ５０２は、本明細書で説明された操作およびステップを実行するための命令５２６を実行するように構成される。
【００６３】
コンピュータシステム５００は、ネットワークインタフェースデバイス５１１をさらに含んでもよい。コンピュータシステム５００は、ビデオディスプレイユニット510（例えば、液晶ディスプレイ（LCD）またはブラウン管（CRT））、文字数字入力デバイス５１２（例えば、キーボード）、カーソル制御デバイス５１４（例えば、マウス）、および信号生成デバイス５２０（例えば、スピーカ）を含んでもよい。
【００６４】
データストレージデバイス５１８は、本明細書に記載された任意の１つ又は複数の手順または機能を具現化する１つ又は複数の命令セット５２６（例えば、ソフトウェア）を格納するコンピュータ可読ストレージメディア５２４を含んでもよい。命令５２６は、コンピュータシステム５００によって実行される間、メインメモリ５０４及び／又はプロセッサ５０２内に完全にまたは少なくとも部分的に存在してもよく、メインメモリ５０４およびプロセッサ５０２はコンピュータ可読ストレージメディアも構成する。命令５２６は、ネットワークインタフェースデバイス５２２を介してネットワーク５１６を通じてさらに送信または受信されてもよい。
【００６５】
一実施形態では、命令526は、オフライン共有モジュール550のための命令を含み、これは図１のオフライン共有コンポーネント115に相当し得、及び／又はオフラインコンテンツ共有を実行する方法を含むソフトウェアライブラリに相当し得る。コンピュータ可読ストレージメディア５２４は、例示的な実施形態において、単一の媒体であることが示されているが、「コンピュータ可読ストレージメディア」という用語は、１つまたは複数の命令のセットを格納する単一の媒体または複数の媒体（例えば、集中または分散データベース、及び／又は関連するキャッシュおよびサーバ）を含むと解釈されるべきである。「コンピュータ可読ストレージメディア」という用語は、機械によって実行するため、および本開示の任意の１つ又は複数の手順を機会に実行させるための命令のセットを、保存、符号化、または搬送することが可能な任意の媒体を含むと解釈されるべきである。「コンピュータ可読ストレージメディア」という用語は、固体メモリ、光媒体、および磁気媒体を含むものと解釈されるべきであるが、それに限定されなない。
【００６６】
前述の説明では、多数の詳細を明記した。しかしながら、本開示の利益を有する当業者には、本開示をこれらの特定の詳細なしに実践することができるということが明白である。いくつかの例では、良く知られた構造とデバイスとを、本開示を曖昧にすることを避けるために、詳細としてよりも、ブロック図の形態で示した。
【００６７】
詳細な説明のいくつかの部分を、コンピュータメモリ内のデータビットに対する動作のアルゴリズムと象徴との観点から表した。このようなアルゴリズムによる説明や表現は、データ処理技術の分野における他の当業者に処理の内容を最も効果的に伝えるために当業者により用いられる手段である。アルゴリズムは、ここでは、一般に、所望の結果につながる、ステップの首尾一貫したシーケンスであると考えられる。ステップは、物理的量の物理的操作を必要とするものである。通常、必ずしもそうとは限らないが、これらの量は、記憶され、伝送され、結合され、比較され、そうでなければ操作され得る、電気信号または磁気信号の形態を取る。一般的な慣習から、これらの信号をビット、値、要素、記号、文字、期間、数字などと呼ぶことが時として都合が良いことが分かっている。
【００６８】
しかしながら、これらの用語及び類似の用語は全て適当な物理量に関連付けられるものであり、該物理量に適用された便宜的な標識でしかないことを念頭に置くべきである。説明から明らかなように特に指定しない限り、詳細な説明全体にわたり、「判定」、「演算」、「計算」、「取得」、「特定」、「提出」、「受信」、「変更」、「減算」、「承認」、「提供」などの言葉を活用した説明が、コンピュータシステムのレジスタとメモリとの中の物理的(たとえば、電子)量として表されるデータを、コンピュータシステムのメモリまたはレジスタ、または他のそのような情報の記憶デバイス、伝送デバイス、または表示デバイスの中の物理的量として同様に表される他のデータに操作し、変換する、コンピュータシステムまたは類似の電子コンピューティングデバイスの動作と処理とを指すということが理解される。
【００６９】
本開示は、本書での動作を実行するための装置にも関連する。この装置は、要求される目的で具体的に構成することも、選択的に起動されるかコンピュータ内に格納されたコンピュータプログラムによって再構成される、汎用コンピュータを備えることもできる。こうしたコンピュータプログラムは、フロッピー（登録商標）ディスク、光ディスク、ＣＤ−ＲＯＭ、磁気光ディスク、読み取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カードまたは光カード、または電子的命令の格納に適した任意のタイプの媒体を含む任意のタイプのディスクなど（ただしこれに限定されない）のコンピュータ可読記憶媒体内に格納されることができる。
【００７０】
本開示を通じて、「一実装形態」または「ある実装形態」に対する参照は、1つまたは複数の実装形態に関連して説明された特定の特徴、構造または特性が、少なくとも1つの実装形態に含まれることを意味する。したがって、本明細書を通じて、種々の位置における「一実装形態では」または「ある実装形態では」という慣用句の出現は、必ずしもすべてが同一の実装形態を指すわけではない。さらに、は、1つまたは複数の実装形態において任意の適切なやり方で組み合わされてよい。
【００７１】
上記の説明は例示であり、限定的ではないことを意図することが理解されるべきである。多くの他の実施形態は、上記の説明を読み、理解することにより当業者には明らかである。従って、本開示の範囲は、そのような請求項が権利を有しているために均等物の全範囲と共に、添付の特許請求の範囲を参照して決定されるべきである。
【符号の説明】
【００７２】
１００  システムアーキテクチャ
１０５  ネットワーク
１０６  データストア
１１０Ａ  クライアントデバイス
１１０Ｚ  クライアントデバイス
１１１  メディアビューア
１１５  オフライン共有コンポーネント
１２０  コンテンツ共有プラットフォーム
１２１  メディアアイテム
１３０  サーバ
１４０  外部ソーシャルネットワークプラットフォーム
１１５  オフライン共有コンポーネント
２０５  共有リクエスト生成サブモジュール
２１０  ネットワーク接続判定サブモジュール
２１５  共有リクエスト提供サブモジュール
２５０  データストア
２５５  ソーシャルネットワーキングサービスドキュメント
２６０  ソーシャルネットワーキングサービス通信プロトコル
２６５  共有リクエスト
５０２  プロセッサ
５０４  メインメモリ
５０６  静的メモリ
５１０  ビデオディスプレイ
５１２  文字数字入力デバイス
５１４  カーソル制御デバイス
５１６  ネットワーク
５１８  データストレージデバイス
５２０  信号生成デバイス
５２２  ネットワークインタフェースデバイス
５２４  コンピュータ可読メディア
５２６  命令
５３０  バス
５５０  オフライン共有モジュール
【図１】
0006602769.tif 000002
【図２】
0006602769.tif 000003
【図３Ａ】
0006602769.tif 000004
【図３Ｂ】
0006602769.tif 000005
【図４】
0006602769.tif 000006
【図５】
0006602769.tif 000007