(58)【調査した分野】(Int.Cl.,DB名)
前記ユーザインターフェースが、前記ピアツーピア接続を介して前記メディアアイテムのための前記暗号鍵のラップされたバージョンの前記受信を開始するためのグラフィカル制御要素を備える、請求項1に記載の方法。
前記ユーザインターフェースが、前記メディアアイテムの前記暗号化されたバージョンを受信するために使用される前記ピアツーピア接続を示し、かつインターネット接続が前記メディアアイテムを解読するために使用されることを示す、請求項1または2に記載の方法。
前記ユーザインターフェースが、前記メディアアイテムの前記暗号化されたバージョンを提供中であるユーザデバイスを識別し、かつ前記メディアアイテムの前記暗号化されたバージョンを受信中であるユーザデバイスを識別するピアツーピア接続インジケータを備える、請求項1〜3のいずれか一項に記載の方法。
前記複数のメディアアイテムの各々が、第1のグラフィカル部分と第2のグラフィカル部分とを備えるメディアエントリによって前記ユーザインターフェース内で表され、前記第1のグラフィカル部分が、それぞれのメディアアイテムの画像を備え、前記第2のグラフィカル部分が、前記それぞれのメディアアイテムのテキスト情報を備える、請求項1から5のいずれか一項に記載の方法。
特定のメディアアイテムに対応するユーザ入力を受信し、かつ前記特定のメディアアイテムの提示を開始するステップをさらに含む、請求項1から6のいずれか一項に記載の方法。
前記ユーザインターフェースが、前記ピアツーピア接続を介して前記メディアアイテムのための前記暗号鍵のラップされたバージョンの前記受信を開始するためのグラフィカル制御要素を備える、請求項9に記載のシステム。
前記ユーザインターフェースが、前記メディアアイテムの前記暗号化されたバージョンを受信するために使用される前記ピアツーピア接続を示し、インターネット接続が前記メディアアイテムを解読するために使用されることを示す、請求項9または10に記載のシステム。
前記ユーザインターフェースが、前記メディアアイテムの前記暗号化されたバージョンを提供中であるユーザデバイスを識別し、かつ前記メディアアイテムの前記暗号化されたバージョンを受信中であるユーザデバイスを識別するピアツーピア接続インジケータを備える、請求項9〜11のいずれか一項に記載のシステム。
前記複数のメディアアイテムの各々が、第1のグラフィカル部分と第2のグラフィカル部分とを備えるメディアエントリによって前記ユーザインターフェース内で表され、前記第1のグラフィカル部分が、それぞれのメディアアイテムの画像を備え、前記第2のグラフィカル部分が、前記それぞれのメディアアイテムのテキスト情報を備える、請求項9から13のいずれか一項に記載のシステム。
前記ユーザインターフェースが、前記ピアツーピア接続を介して、前記メディアアイテムのための前記暗号鍵のラップされたバージョンの前記受信を開始するために、グラフィカル制御要素を備える、請求項15に記載の非一時的機械可読記憶媒体。
前記ユーザインターフェースが、前記メディアアイテムの前記暗号化されたバージョンを受信するために使用される前記ピアツーピア接続を示し、インターネット接続が前記メディアアイテムを解読するために使用されることを示す、請求項15または16に記載の非一時的機械可読記憶媒体。
前記ユーザインターフェースが、前記メディアアイテムの前記暗号化されたバージョンを提供中であるユーザデバイスを識別し、かつ前記メディアアイテムの前記暗号化されたバージョンを受信中であるユーザデバイスを識別するピアツーピア接続インジケータを備える、請求項15〜17のいずれか一項に記載の非一時的機械可読記憶媒体。
前記複数のメディアアイテムの各々が、第1のグラフィカル部分と第2のグラフィカル部分とを備えるメディアエントリによって前記ユーザインターフェース内で表され、前記第1のグラフィカル部分が、それぞれのメディアアイテムの画像を備え、前記第2のグラフィカル部分が、前記それぞれのメディアアイテムのテキスト情報を備える、請求項15から19のいずれか一項に記載の非一時的機械可読記憶媒体。
【発明を実施するための形態】
【0010】
本開示の態様および実装形態は、ピアツーピアコンテンツ共有技術のためのユーザインターフェースを対象とする。ユーザインターフェースは、ピアツーピアコンテンツ共有技術を使用してメディアアイテムを共有および受信するためのユーザの能力を向上させる。従来のコンテンツ共有技術は、オンラインコンテンツをストリーミングするために、大きい帯域幅を有するネットワーク接続を必要とする集中共有システムを含む場合がある。多数の新興市場では、コンピューティングネットワークの能力が限定されており、低帯域幅を有する、信頼できないものである、または利用不可能であることが多い。ピアツーピアネットワーキングは、ネットワーキングインフラストラクチャまたはインターネットアクセスが限定されるとき、コンテンツの交換を可能にする場合がある。ピアツーピアネットワーキングの問題は、交換されたコンテンツに対する無制限の再生およびアクセスを提供することが多いことであり、無制限の再生およびアクセスは、コンテンツ作成者および/またはプロバイダによって許可されていない場合があり、かつ監視または強制が困難である場合がある。
【0011】
本開示の態様は、集中アクセス制御機構を使用するピアツーピア共有システムのためのユーザインターフェースを提供することによって上記および他の欠陥に対処する。集中アクセス制御機構は、ユーザデバイス上に記憶されたメディアアイテムへのユーザデバイスのアクセスを管理してもよい。集中アクセス制御機構は、著作権で保護されたメディアアイテムの使用、修正、および配信を制御するために、1つまたは複数のデジタル著作権管理(DRM)方式をサポートしてもよい。一例では、コンテンツ共有技術は、メディアサーバと、異なるユーザの複数のユーザデバイスとを伴う場合がある。メディアサーバは、第1のユーザのユーザデバイス(「第1のユーザデバイス」)にメディアアイテムを提供し、第1のユーザデバイスが、第2のユーザのユーザデバイス(「第2のユーザデバイス」)とメディアアイテムを共有することを可能にしてもよい。ユーザデバイスは、電話、タブレット、またはラップトップなどのモバイルデバイスであってもよく、ローカルでメディアアイテムを記憶することが可能であってもよい。
【0012】
一例では、第1のユーザデバイスは、(たとえば、インターネットを介して)メディアサーバから直接的にメディアアイテムをストリーミングしてもよく、ローカルでストリーミングメディアを記憶してもよい。第1のユーザデバイスは、ローカルで生成された暗号鍵を使用してメディアアイテムを暗号化してもよく、メディアサーバからの公開鍵を使用して暗号鍵をラップしてもよい。次いで、第1のユーザデバイスは、(たとえば、第1のユーザデバイスおよび/または第2のユーザデバイスが、限定されたインターネットアクセスを有するか、またはインターネットアクセスを有していないとき、ピアツーピア接続を介して)、第2のユーザデバイスに、暗号化されたメディアアイテムとラップされた暗号鍵とを転送してもよい。第2のユーザデバイスは、暗号化されたメディアアイテムにアクセスしてもよいが、メディアサーバに接触するまで、暗号化されたメディアアイテムを再生することを制限されてもよい。第2のユーザデバイスは、ラップされた暗号鍵と、メディアアイテムのための識別情報とを含んでもよい、再生可能性要求を使用してメディアサーバに接触してもよい。次いで、メディアサーバは、第2のユーザデバイスがメディアアイテムを閲覧することを許可されることを保証するために再生可能性チェックを実行してもよい。次いで、メディアサーバは、第2のユーザデバイスがメディアアイテムを解読および再生することを可能にしてもよい、アンラップされた暗号鍵を含む再生可能性応答を使用して応答してもよい。
【0013】
ピアツーピアコンテンツ共有技術は、ユーザがどのメディアアイテムが共有されるかを制御すること、および共有メディアアイテムの状態を表すことを可能にする、1つまたは複数のユーザインターフェースを含んでもよい。状態は、メディアアイテムの利用可能性に対応してもよい。たとえば、第1の状態は、受信されているか、またはユーザデバイスのうちの1つに転送されているメディアアイテムに対応してもよい。第2の状態は、メディアアイテムの暗号化されたバージョンと、対応するラップされた暗号鍵とが、ユーザデバイス上に保存されていることを示してもよい。第3の状態は、メディアアイテムが解読されており、ユーザデバイス上で提示される用意ができていることを示してもよい。ユーザインターフェースは、メディアアイテムの現在の状態を表すようにメディアアイテムインジケータを修正するために、使用中に更新されてもよい。他の例では、ユーザインターフェースはまた、メディアアイテムの暗号化されたバージョンを受信するために使用されたピアツーピア接続を示し、インターネット接続がメディアアイテムを解読するために使用されることを示してもよい。
【0014】
本明細書で開示する技術は有利であり、その理由は限定されたインターネットアクセスを有するか、またはインターネットアクセスを有していないピアツーピア共有技術を使用してメディアアイテムを共有するためのユーザの能力を向上させ、また共有メディアアイテムへのアクセスを管理および監視するための中央機構を提供するからである。この技術は、メディアアイテムを共有するために必要な帯域幅の量を減らす場合があり、そのことはメディアサーバ、中間ネットワーキングインフラストラクチャ(たとえば、インターネットサービスプロバイダ(ISP))、およびユーザデバイスにとって有益である場合があり、新興市場において特に有益である場合がある。過去に、ユーザデバイスの各々は、メディアサーバからのメディアアイテムにアクセスしていた場合があり、現在、ユーザデバイスの多くは、ピアからのメディアアイテムにアクセスし、メディアアイテムを閲覧するための許可を受信するためにのみメディアサーバに接触することができる。許可をチェックするために必要とされるネットワークトラフィックの量は、メディアサーバからメディアアイテムをストリーミングまたはダウンロードするために必要とされるネットワークトラフィックまたは帯域幅の量よりも数桁小さい場合がある。この技術はまた、ピアツーピア接続を介して共有されたメディアアイテムの視聴率を決定するため、および補足メディアアイテム(たとえば、関連するビデオ)を提供するためのメディアサーバの能力を向上させる場合があるので有利である。
【0015】
本開示の実装形態は、簡単および簡潔のために、ビデオを参照することが多い。しかしながら、本開示の教示は、一般にメディアアイテムに適用され、たとえばビデオ、オーディオ、テキスト、画像、プログラム命令などを含む様々なタイプのコンテンツまたはメディアアイテムに適用することが可能である。
【0016】
図1は、本開示の一実装形態による例示的なシステムアーキテクチャ100を示す。システムアーキテクチャ100は、メディアサーバ110と、ユーザデバイス120A〜Zと、ピアツーピア接続130と、ピアネットワーク140と、ネットワーク150と、データストア160とを含む。
【0017】
メディアサーバ110は、メディアアイテムへのアクセスをユーザに提供するため、および/またはメディアアイテムをユーザに提供するために使用されてもよい1つまたは複数のコンピューティングデバイス(ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなど)、データストア(たとえば、ハードディスク、メモリ、データベース)、ネットワーク、ソフトウェアコンポーネント、および/またはハードウェアコンポーネントであってもよい。メディアサーバ110は、ユーザがメディアアイテムの消費、アップロード、共有、探索、承認(「いいね」)、嫌悪、および/またはコメントを行うことを可能にしてもよいコンテンツ共有プラットフォームの一部であってもよい。コンテンツ共有プラットフォームはまた、メディアアイテムへのアクセスをユーザに提供するために使用されてもよいウェブサイト(たとえば、ウェブページ)、またはアプリケーションバックエンドソフトウェアを含んでもよい。
【0018】
メディアサーバ110は、メディアアイテム112および補足メディアアイテム114などのコンテンツをホストしてもよい。メディアアイテム112および補足メディアアイテム114は、ユーザによって選ばれたデジタルコンテンツ、ユーザによって利用可能にされたデジタルコンテンツ、ユーザによってアップロードされたデジタルコンテンツ、コンテンツプロバイダによって選ばれたデジタルコンテンツ、放送局によって選ばれたデジタルコンテンツなどであってもよい。メディアアイテム112および補足メディアアイテム114の例には、限定はしないが、デジタルビデオ、デジタル映画、デジタル写真、デジタル音楽、ウェブサイトコンテンツ、ソーシャルメディア更新、電子ブック(ebook)、電子雑誌、デジタル新聞、デジタルオーディオブック、電子ジャーナル、ウェブブログ、リアルシンプルシンジケーション(RSS)フィード、電子コミックブック、ソフトウェアアプリケーションなどが含まれる。
【0019】
メディアアイテム112および補足メディアアイテム114は、インターネットを介して、および/またはモバイルデバイスアプリケーションを介して消費されてもよい。簡潔および簡単のために、オンラインビデオ(以下、ビデオとも呼ばれる)が、本文書の全体を通して、メディアアイテム112の一例として使用される。本明細書で使用する「メディア」、「メディアアイテム」、「オンラインメディアアイテム」、「デジタルメディア」、「デジタルメディアアイテム」、「コンテンツ」、および「コンテンツアイテム」は、エンティティにデジタルメディアアイテムを提示するように構成されるソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロード可能である電子ファイルを含むことができる。一実装形態では、コンテンツ共有プラットフォームは、データストア160を使用してメディアアイテム112を記憶してもよい。一例では、メディアアイテム112は、ユーザデバイス120Aのユーザによって識別されたユーザ生成ビデオであってもよく、補足メディアアイテム114は、ユーザデバイス120A〜Zのうちの1つまたは複数において、メディアアイテム112の提示前、提示中、または提示後に提示されるべきメディアサーバ110によって選択された広告であってもよい。
【0020】
ユーザデバイス120A〜Zは、パーソナルコンピュータ(PC)、ラップトップ、モバイルフォン、スマートフォン、タブレットコンピュータ、ネットブックコンピュータ、ネットワーク接続テレビなどのコンピューティングデバイスを各々含んでもよい。いくつかの実装形態では、ユーザデバイス120A〜Zは「クライアントデバイス」と呼ばれる場合もある。ユーザデバイス120A〜Zは、ネットワーク150を介して、メディアサーバ110からメディアアイテム112を受信することが可能であってもよく、ピアツーピア接続130、ピアネットワーク140、ネットワーク150、またはそれらの組合せを介して、他のユーザデバイスとメディアアイテム112を共有することが可能であってもよい。
【0021】
ピアツーピア接続130は、1つまたは複数のユーザデバイス120A〜Zの間の任意の通信チャネルであってもよい。ピアツーピア接続130は、任意のワイヤレスまたはワイヤード通信技術に基づいてもよく、第1のユーザデバイスを第2のユーザデバイスに、直接的または間接的に(たとえば、中間ユーザデバイスを含めて)接続してもよい。ワイヤレス通信技術は、Bluetooth(登録商標)、Wifi(登録商標)、赤外線、超音波、または他の技術を含んでもよい。ワイヤード通信は、ユニバーサルシリアルバス(USB)、イーサネット(登録商標)、RS232、または他のワイヤード接続を含んでもよい。他の例では、ピアツーピア接続130は、メディアアイテムおよび他のデータを転送するために、ユーザデバイスの間でリムーバブル記憶媒体をトランスポートすることを伴ってもよい。リムーバブル記憶媒体は、セキュアデジタル(SD)カード、マルチメディアカード(MMC)、フラッシュドライブ、他のデータ記憶デバイス、またはそれらの組合せを含む任意の形態であってもよい。ピアツーピア接続は、2つのデバイスの間の個々の接続であってもよく、またはピアネットワーク140の一部である複数の接続を備えてもよい。
【0022】
ピアネットワーク140は、ユーザデバイス120A〜Zの間で1つまたは複数の通信チャネルを提供するコンピューティングネットワークであってもよい。一例では、ピアネットワーク140は、前から存在するネットワークインフラストラクチャ(たとえば、アクセスポイント、スイッチ、ルータ)に依拠しないピアツーピアネットワークであってもよく、ユーザデバイスA〜Zは、ユーザデバイスの間の通信を経路指定するために、ネットワーキングインフラストラクチャに取って代わってもよい。ピアネットワーク140は、自己構成するワイヤレスネットワークであってもよく、ユーザデバイス120A〜Zがピアネットワーク140に寄与し、ピアネットワーク140(たとえば、アドホックワイヤレスネットワーク)に対して動的に接続および切断することを可能にする。別の例では、ピアネットワーク140は、ユーザデバイスが他のユーザデバイスと通信することを可能にするネットワーキングインフラストラクチャを含むコンピューティングネットワークであってもよい。後者の例では、ピアネットワーク140は、公衆ネットワーク(たとえば、インターネット)へのアクセスを有しても有していなくてもよい。たとえば、車両(たとえば、バス、列車)、またはロケーション(たとえば、教室、図書館、カフェ)は、インターネットアクセスを提供することなくユーザデバイスが互いに通信することを可能にするために、アクセスポイント、またはアクセスポイントとして機能してもよいユーザデバイスを提供してもよい。代替的に、ピアネットワークは、ネットワーク150(たとえば、インターネット)などのより大きいネットワークへのアクセスを提供してもよい。
【0023】
ネットワーク150は、ユーザデバイス120A〜Zのうちの1つまたは複数に、メディアサーバ110および他の公的に利用可能なコンピューティングデバイスへのアクセスを提供する公衆ネットワークであってもよい。ネットワーク150は、1つまたは複数の広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、ワイヤードネットワーク(たとえば、イーサネット(登録商標)ネットワーク)、ワイヤレスネットワーク(たとえば、802.11ネットワークまたはWi-Fiネットワーク)、セルラーネットワーク(たとえば、ロングタームエボリューション(LTE)ネットワーク)、ルータ、ハブ、スイッチ、サーバコンピュータ、および/またはそれらの組合せを含んでもよい。
【0024】
ユーザデバイス120A〜Zの各々は、ユーザが、ピアネットワーク140および/またはネットワーク150を介して共有されるメディアアイテム112を閲覧することを可能にするメディアビューアを含んでもよい。メディアビューアは、画像、ビデオ、オーディオ、ウェブページ、文書などを提示してもよい。一例では、メディアビューアは、ウェブサーバによってサービスされるコンテンツ(たとえば、ハイパーテキストマークアップ言語(HTML)ページなどのウェブページ、デジタルメディアアイテムなど)のアクセス、検索、提示、および/またはナビゲートを行うことができるウェブブラウザであってもよい。メディアビューアは、コンテンツ(たとえば、ウェブページ、メディアビューア)をユーザにレンダリング、表示、および/または提示してもよい。メディアビューアはまた、ウェブページ(たとえば、オンライン商人によって販売される製品についての情報を提供してもよいウェブページ)中に組み込まれる組み込みメディアプレーヤ(たとえば、Flash(登録商標)プレーヤ、またはHTML5プレーヤ)を表示してもよい。別の例では、メディアビューアは、ユーザがデジタルメディアアイテム(たとえば、デジタルビデオ、デジタル画像、電子ブックなど)を閲覧することを可能にするスタンドアロンアプリケーション(たとえば、モバイルアプリケーションまたはアプリ)であってもよい。
【0025】
本開示の態様によれば、メディアビューアは、ユーザがコンテンツを共有、記録、編集、および/またはコンテンツ共有プラットフォームにアップロードするためのコンテンツ共有プラットフォームアプリケーションであってもよい。メディアビューアは、メディアサーバ110またはコンテンツ共有プラットフォームによって、ユーザデバイス120A〜Zに提供されてもよい。たとえば、メディアビューアは、コンテンツ共有プラットフォームによって提供されたウェブページ中に組み込まれる組み込みメディアプレーヤであってもよい。別の例では、メディアビューアは、ユーザデバイス120A〜Z上でインストールおよび実行されるアプリケーションであってもよい。
【0026】
図1に示す例では、各ユーザデバイスは、メディア共有側デバイス(たとえば、ユーザデバイス120A)、メディア受信側デバイス(たとえば、ユーザデバイス120B)、または両方の組合せとして機能してもよい。各ユーザデバイスは、データストア122と、共有インターフェースコンポーネント124と、プロバイダコンポーネント126と、受信側コンポーネント128とを含んでもよい。
【0027】
データストア122は、メモリ(たとえば、ランダムアクセスメモリ)、ドライブ(たとえば、ハードドライブ、フラッシュドライブ)、データベースシステム、またはデータを記憶することが可能な別のタイプのコンポーネントもしくはデバイスであってもよい。データストア122は、複数のコンピューティングデバイス(たとえば、複数のサーバコンピュータ)に及んでもよい複数の記憶コンポーネント(たとえば、複数のドライブまたは複数のデータベース)を含んでもよい。データストア122は、メディアサーバ110から受信されるメディアアイテムのコピーを記憶するメディアキャッシュ123を含んでもよい。一例では、各メディアアイテム112は、メディアサーバ110からダウンロードされるファイルであってもよく、メディアキャッシュ123においてローカルで記憶されてもよい。別の例では、各メディアアイテム112は、メディアサーバ110からストリーミングされてもよく、オフライン化されるまでユーザデバイスのメモリ中に一時的なコピーとして存在してもよい。オフライン化は、ユーザデバイスが、ユーザデバイスの永続的なデータストレージ中にストリーミングメディアの一時的なコピーを記憶することを指す。これによって、ユーザデバイスが、インターネット接続を使用することなく後の時点で(たとえば、リブート後)、ストリーミングされたメディアアイテムにアクセスすることを可能にしてもよい。一例では、メディアアイテムは、メディアアイテムを提示するとき、ユーザデバイスによってそれ自体にストリーミングされてもよい。一例では、ユーザデバイスは、メディアアイテムの1つまたは複数のストリーム(たとえば、ビデオストリーム、オーディオストリーム)を永続的なデータストレージにコピーすることによって、ストリーミングされたメディアアイテムをオフライン化してもよい。
【0028】
共有インターフェースコンポーネント124は、メディアアイテムを共有することに関与するべき1つまたは複数のユーザデバイスをユーザが選択することを可能にするユーザインターフェースを提供してもよい。共有インターフェースコンポーネント124は、共有されるべきメディアキャッシュからユーザが1つまたは複数のメディアアイテムを選択することを可能にするユーザインターフェースを提供してもよい。メディアアイテムは、ローカルユーザデバイスのメディアキャッシュ、またはリモートユーザデバイスのメディアキャッシュ内で利用可能であってもよい。ユーザインターフェースは、ユーザが、メディアアイテムの状態、ならびに、メディアアイテムがローカルユーザデバイス上に保存されているかどうか、およびメディアアイテムが消費のために利用可能になる前に解読される必要があるかどうかを識別することを可能にしてもよい。例示的なユーザインターフェースについては、
図6A〜
図14に関してより詳細に説明する。
【0029】
プロバイダコンポーネント126は、ユーザデバイスがメディアアイテムを1つまたは複数の他のユーザデバイスに共有することを可能にする機能を含んでもよい。プロバイダコンポーネント126は、メディアアイテムへの無許可のアクセスを低減するために、暗号鍵を生成し、メディアアイテムを暗号化してもよい。プロバイダコンポーネント126はまた、暗号鍵をラップしてもよく、ラップされた暗号鍵と暗号化されたメディアアイテムとを1つまたは複数の他のユーザデバイス(たとえば、受信側デバイス)と共有してもよい。
【0030】
受信側コンポーネント128は、ユーザデバイスが暗号化されたメディアアイテムを受信および処理することを可能にする機能を含んでもよい。受信側コンポーネント128は、メディアアイテム、提供側デバイス、受信側デバイス、またはそれらの組合せから情報を収集することによって、入って来るメディアアイテムを処理してもよい。情報は、メディアサーバが、ユーザデバイスがメディアアイテムを再生することを許可されるかどうかを判定することができるようにメディアサーバに送信されてもよい。一例では、受信側ユーザデバイスは、再生可能性要求152において、ラップされた暗号鍵をメディアサーバに送信してもよく、メディアサーバは、暗号鍵をアンラップし、再生可能性応答154において、ユーザデバイスに戻すように送信してもよい。次いで、ユーザデバイスは、メディアアイテムを解読するために、アンラップされた暗号鍵を使用してもよい。
【0031】
概して、コンテンツ共有プラットフォームによって実行されるとして一実装形態において説明する機能はまた、適切な場合、他の実装形態では、クライアントデバイス120A〜120Z上で実行することも可能である。加えて、特定のコンポーネントによる機能は、異なるかまたは複数のコンポーネントが一緒に動作することによって実行可能である。コンテンツ共有プラットフォームおよびメディアサーバ110はまた、適切なアプリケーションプログラミングインターフェースを通して、他のシステムまたはデバイスに提供されたサービスとしてもアクセス可能であり、したがってウェブサイトにおける使用に限定されない。
【0032】
本開示の実装形態では、「ユーザ」は、単独の個人として表される場合がある。しかしながら、本開示の他の実装形態は、ユーザのセットおよび/または自動化されたソースによって制御されたエンティティである「ユーザ」を包含する。たとえば、ソーシャルネットワークにおけるコミュニティとして連合した個人ユーザのセットは、「ユーザ」と見なされる場合がある。別の例では、自動化された消費者は、コンテンツ共有プラットフォームのトピックチャネルなどの自動取込みパイプラインであってもよい。
【0033】
本開示の実装形態について、メディアサーバおよびコンテンツ共有プラットフォームに関して説明するが、実装形態はまた、一般にデジタルコンテンツおよびユーザ間の接続を提供する、任意のタイプのソーシャルネットワークに適用されてもよい。
【0034】
本明細書で説明するシステムがユーザについての個人情報を収集するか、または個人情報を利用する場合がある状況では、ユーザは、コンテンツ共有プラットフォームがユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくはアクティビティ、専門的職業、ユーザの選好、またはユーザの現在のロケーションについての情報)を収集するかどうかを制御するため、あるいはユーザにより関連する場合があるコンテンツサーバからのコンテンツを受信するかどうか、および/またはどのように受信するかを制御するための機会を提供されてもよい。加えて、あるデータが、記憶または使用される前に1つまたは複数の方法で扱われ、個人を特定できる情報が除去されるようにしてもよい。たとえば、ユーザについて、個人を特定できる情報を決定することができないようにユーザのアイデンティティが扱われてもよく、またはロケーション情報が取得される場合、ユーザの地理的ロケーションが(市、郵便番号、または州レベルなどに)一般化され、ユーザの特定のロケーションを決定することができないようにしてもよい。したがって、ユーザは、コンテンツ共有プラットフォームによって、ユーザについての情報がどのように収集され、使用されるかに対する制御を有してもよい。
【0035】
図2は、例示的なユーザデバイス200を示すブロック図である。ユーザデバイス200は、ユーザデバイス120A〜Zと同じまたは同様であってもよい。
図2に示す例では、ユーザデバイス200は、共有インターフェースコンポーネント124と、プロバイダコンポーネント126と、受信側コンポーネント128と、データストア122とを含む。
【0036】
共有インターフェースコンポーネント124は、ユーザデバイス200のユーザが、共有のために利用可能なユーザデバイスおよびメディアアイテムを閲覧および選択することを可能にするユーザインターフェースを提供してもよい。共有インターフェースコンポーネント124は、デバイス選択モジュール210と、メディアアイテム利用可能性モジュール212と、開始モジュール214とを含んでもよい。
【0037】
デバイス選択モジュール210は、共有のために利用可能である1つまたは複数のユーザデバイスを探索および表示してもよい。デバイス選択モジュール210は、ブロードキャストメッセージを送出すること、および応答を待機することによって、ユーザデバイスを識別してもよい。ブロードキャストメッセージは、識別情報(たとえば、デバイス識別子、ユーザ識別子)、デバイスリソース(たとえば、処理能力、記憶容量、バッテリー電力)、メディアアイテム提示能力(たとえば、特定のメディアアイテムフォーマットを再生するための能力)、他の情報、またはそれらの組合せなどのユーザデバイス200についての情報を識別してもよい。次いで、ユーザデバイス200は、1つまたは複数の他のデバイスから応答を受信してもよい。応答は、メディアキャッシュ情報(たとえば、利用可能なメディアアイテム)、識別情報(たとえば、デバイス識別子、ユーザ識別子)、デバイスリソース(たとえば、バッテリー電力、ネットワーク接続、処理能力、記憶容量)、他の情報、またはそれらの組合せなどの他のユーザデバイスについての情報を含んでもよい。一例では、要求および/または応答は、識別情報の代わりに匿名化されたデータを含んでもよい。デバイス選択モジュール210は、ユーザデバイスのうちの1つまたは複数を選択するために、ユーザ入力を受信することが可能であってもよいグラフィカルインターフェースにおいて、応答したユーザデバイスを表示してもよい。例示的なグラフィカルユーザインターフェースについては、
図8に関してより詳細に説明する。
【0038】
メディアアイテム利用可能性モジュール212は、どのメディアアイテムが共有のために利用可能であるかを決定してもよい。いくつかの例では、共有側ユーザデバイスのメディアキャッシュ中にあるすべてのメディアアイテムが、共有のために利用可能であってもよい。他の例では、ユーザデバイスは、共有するべきメディアキャッシュ中のメディアアイテムのサブセットを識別してもよい。サブセットは、メディアアイテムを含まなくてもよく、いくつかのメディアアイテム、すべてのメディアアイテム、または他の変形形態を含んでもよい。サブセットは、ユーザ入力、デバイスリソース、メディアサーバ入力、またはそれらの組合せに鑑みて、ユーザデバイスによって決定されてもよい。一例では、ユーザは、共有のために利用可能にされるべきメディアキャッシュ中の1つまたは複数の特定のメディアアイテムを識別してもよい。別の例では、ユーザデバイスは、デバイスリソース(たとえば、バッテリー電力、ネットワーク帯域幅)を解析し、もしあればどのメディアアイテムが共有されるべきであるかを決定してもよい。また別の例では、メディアサーバは、共有するべき1つまたは複数のメディアアイテムを識別する入力を提供してもよい。これは、いかなる特定のユーザデバイスにも負担をかけることなくメディアアイテム利用可能性および共有を向上させるために、特定のメディアアイテムを有するユーザデバイスの数を配信する試みにおけるものであってもよい。メディアアイテム利用可能性モジュール212は、ユーザデバイスのうちの1つまたは複数を選択するために、ユーザ入力を受信することが可能であってもよいグラフィカルユーザインターフェースにおいて、共有のために利用可能であるメディアアイテムを表示してもよい。
【0039】
開始モジュール214は、共有のための特定のユーザデバイスおよび/またはメディアアイテムを識別するために、メディアアイテム利用可能性モジュール212およびデバイス選択モジュール210と通信してもよい。共有することは、ユーザデバイスにメディアアイテムをプッシュすること、またはユーザデバイスからメディアアイテムをプルすること、または両方の組合せを伴ってもよい。一例では、ユーザデバイス200は、リモートユーザデバイスとローカルメディアアイテムとを識別するユーザ入力を受信してもよく、開始モジュール214は、識別されたメディアアイテムをリモートユーザデバイスにプッシュすることを開始してもよい。別の例では、ユーザデバイス200は、リモートユーザデバイスと、リモートユーザデバイス上で利用可能なメディアアイテムとを識別するユーザ入力を受信してもよく、開始モジュール214は、識別されたメディアアイテムをリモートユーザデバイスからプルすることを開始してもよい。他の例では、ユーザデバイスは、第1のユーザデバイスからメディアアイテムをプルしてもよく、次いでメディアアイテムを第2のユーザデバイスにプッシュしてもよい。
【0040】
共有インターフェースコンポーネント124は、1対1モードと、パブリックモードと、プライベートモードとを含む、複数のモードにおいて機能してもよい。1対1モードは、上記で説明したプッシュおよびプルの特徴と同様であってもよく、共有のための特定のメディアアイテムおよび特定のデバイスを識別するユーザ入力を受信するユーザデバイスを伴ってもよい。次いで、メディアアイテムは、一方のデバイスから他方のデバイスへ(すなわち、1対1で)転送されてもよい。
【0041】
パブリックモードは、ユーザデバイス200が特定のメディアアイテムを選択するユーザ入力を受信してもよい1対1モードと同様であってもよいが、パブリックモードが可能にされるとき、複数の共有側デバイスおよび複数の受信側デバイスがあってもよい。共有側デバイスの一部または全部は、それらの利用可能なメディアアイテムをブロードキャストしてもよい。次いで、ユーザデバイス200は、特定のユーザデバイスを選択することなくメディアアイテムのうちの1つまたは複数を選択してもよい。この例では、選択されたメディアアイテムを共有中であるユーザデバイスは、ユーザデバイス200にとって匿名のままであってもよい。逆に、ユーザデバイス200は、共有側デバイスとして参加し、利用可能なメディアアイテムのセットをブロードキャストし、別のユーザデバイスによって要求されるとき、メディアアイテムのうちの1つまたは複数を匿名で転送してもよい。
【0042】
プライベートモードは、1対1モードおよびパブリックモードと同様であってもよいが、承認段階を含んでもよい。承認段階の間、メディアアイテムを共有中であるユーザデバイスは、特定のメディアアイテムのための共有要求を受信してもよく、共有要求を承認または不承認してもよい。一例では、承認または不承認は、ユーザ入力に基づいてもよく、その場合対話モジュールがユーザに通知してもよく、ユーザは、共有を承認または不承認する入力を提供してもよい。
【0043】
共有インターフェースコンポーネント124は、メディアアイテムを識別し、共有を開始した後、プロバイダコンポーネント126または受信側コンポーネント128と対話してもよい。ユーザデバイス200が別のユーザデバイスにメディアアイテムを共有中であるとき、プロバイダコンポーネント126が使用されてもよく、ユーザデバイス200が別のユーザデバイスから共有メディアアイテムを受信中であるとき、受信側コンポーネント128が使用されてもよい。
【0044】
プロバイダコンポーネント126は、鍵生成モジュール220と、暗号化モジュール222と、ラッピングモジュール224とを含んでもよい。プロバイダコンポーネント126によって実行される機能は、メディアアイテムがメディアサーバから受信され、共有のために選択される前、その間、またはその後、あるいは共有が開始された後などの共有プロセスにおける任意の時点で実行されてもよい。
【0045】
鍵生成モジュール220は、ユーザデバイスのために1つまたは複数の暗号鍵240を作成してもよい。各暗号鍵240は、暗号関数の関数出力を決定する1つの情報を含んでもよく、メディアアイテムを暗号化および解読するために使用されてもよい。鍵生成モジュール220は、乱数生成器、擬似乱数生成器、鍵導出関数、他の機構、またはそれらの組合せを使用して暗号鍵240を生成してもよい。鍵生成モジュール220は、デバイス識別子、タイムスタンプ、IPアドレス、MACアドレス、ユーザ識別子、他の情報、またはそれらの組合せなどのユーザデバイスにとって利用可能な情報を使用して鍵生成をシードしてもよい。代替例では、暗号鍵240は、メディアサーバ、またはコンテンツ共有プラットフォームの他の部分によって生成され、ユーザデバイス200に送信されてもよい。
【0046】
暗号化モジュール222は、1つまたは複数のメディアアイテムを暗号化するために、鍵生成モジュール220によって生成された暗号鍵240を使用してもよい。一例では、ユーザデバイス200上の各メディアアイテムは、異なる暗号鍵240を使用して暗号化されてもよい。別の例では、ユーザデバイス200上の複数の(たとえば、すべての)メディアアイテムが、暗号鍵240を使用して暗号化されてもよい。暗号化モジュール222は、データ暗号化規格(DES)、または高度暗号化規格(AES)などの単一の共有鍵を使用する対称鍵暗号システムを使用してメディアアイテムを暗号化してもよい。他の実施形態では、暗号化モジュール222はまた、Rivest-Shamir-Adleman(RSA)などの複数の鍵(たとえば、公開鍵および秘密鍵)を使用する、非対称暗号または公開鍵暗号システムを使用してメディアアイテムを同じくまたは代替的に暗号化してもよい。
【0047】
ラッピングモジュール224は、メディアサーバ鍵244を使用して暗号鍵240をラップしてもよい。メディアサーバ鍵244は、メディアサーバ、またはコンテンツ共有プラットフォームの他の部分によって生成され、ユーザデバイス200に送信される公開鍵であってもよい。ラッピングモジュール224は、暗号鍵240が別のユーザデバイスに転送され、記憶される間、暗号鍵240を安全にするために、鍵カプセル化機構とともにメディアサーバ鍵244を使用してもよい。
【0048】
一例では、暗号化モジュール222は、メディアアイテムを暗号化するために、対称鍵暗号システムを使用してもよく、ラッピングモジュール224は、暗号鍵240をラップするために、非対称暗号システムを使用してもよい。上記で説明したように、非対称暗号または公開鍵暗号システムは、RSAと同じまたは同様である場合がある。暗号鍵をラップした後、ユーザデバイス200は、暗号化されたメディアアイテム112(たとえば、暗号文)と、ラップされた暗号鍵240とを別のデバイスに転送してもよい。
【0049】
受信側コンポーネント128は、ユーザデバイス200が別のユーザデバイスによって共有されるメディアアイテムを受信中であるときに使用されてもよい。受信側コンポーネント128は、再生可能性モジュール230と、解読モジュール232と、検証モジュール234とを含んでもよい。
【0050】
再生可能性モジュール230は、ユーザデバイス200がメディアアイテムを提示することを許可されるかどうかを判定するためにメディアサーバと通信してもよい。メディアサーバとの通信は、再生可能性要求を送信すること、および再生可能性応答を受信することを伴ってもよい。再生可能性要求は、ラップされた暗号鍵と、メディアアイテム、受信側または共有側デバイス、受信側または共有側ユーザ、他の情報、あるいはそれらの組合せに関連する情報とを含んでもよい。次いで、メディアサーバは、ユーザデバイス200がユーザにメディアアイテムを提示することを許可されるかどうかを判定するために、この情報を解析し、1つまたは複数のデータストア(たとえば、データベース)からの情報と比較してもよい。解析は、メディアアイテムが提示のために依然として利用可能であるかどうか、およびメディアアイテムがいずれかの制限を有しているかどうかをチェックすることを伴ってもよい。たとえば、メディアアイテムは、成熟した大人の観客に制限される(たとえば、子供用ではない)場合があるか、またはいくつかの地理的エリア(たとえば、いくつかの国)との間に制限される場合がある。再生可能性チェックが満たされたと判定した後、メディアサーバは、ラップされた暗号鍵をアンラップしてもよい。暗号鍵をアンラップすることは、暗号鍵をラップするために使用された同様の暗号システムを伴ってもよく、メディアサーバ鍵(たとえば、公開鍵)に関連付けられた秘密鍵を利用してもよい。次いで、メディアサーバは、再生可能性応答において、アンラップされた暗号鍵をユーザデバイス200に戻すように送信してもよい。
【0051】
解読モジュール232は、暗号化されたメディアアイテム112を解読するために、アンラップされた暗号鍵を使用してもよい。暗号鍵をアンラップすることは、暗号化モジュール222に関して上記で説明したように、メディアアイテムを暗号化するために使用された同様の暗号システムを伴ってもよい。
【0052】
検証モジュール234は、メディアアイテムが真正であるかどうか、およびメディアアイテムがいずれかの無許可の修正を含むかどうかを判定してもよい。検証モジュール234は、メディアアイテムを検証するために、メディアアイテムに関連付けられたデジタル署名を使用してもよい。デジタル署名は、メディアアイテム(たとえば、ビデオおよび/またはオーディオバイト)、およびメディアサーバの秘密署名鍵に基づいてもよく、任意のデジタル署名機構を使用して計算されてもよい。一例では、デジタル署名機構は、楕円曲線デジタル署名アルゴリズム(ECDSA)と同じまたは同様であってもよく、デジタル署名を計算するために、楕円曲線暗号または任意の他の形式の暗号を使用してもよい。デジタル署名は、メディアサーバ、またはコンテンツ共有プラットフォームの他の部分によって計算されてもよく、(たとえば、暗号化されたメディアアイテムとともに)メディアアイテムを共有したユーザデバイスから、または(たとえば、再生可能性応答とともに)メディアサーバから直接的に、ユーザデバイス200によって受信されてもよい。検証モジュール234は、検証を実行するために、デジタル署名に鑑みて、解読されたメディアアイテムを解析してもよい。一例では、検証モジュール234は、メディアアイテムのハッシュ(たとえば、ビデオおよび/またはオーディオバイト)を計算し、ハッシュと、デジタル署名と、メディアサーバの公開検証鍵とを使用して解読されたメディアアイテムを検証してもよい。ハッシュは、セキュアハッシュアルゴリズム(SHA)、または任意の他のハッシュ関数などの暗号学的ハッシュ関数を使用して計算されてもよい。
【0053】
図3、
図4、および
図5は、ピアツーピアメディア共有のためのアクセス制御機構を実装するための方法300、400、および500の例示的な例のためのフロー図を示す。方法300は、メディアサーバの観点からの例示的なプロセスフローを示し、方法400および500は、それぞれ共有側ユーザデバイスおよび受信側ユーザデバイスのための例示的な方法である。方法300、400、および500は、ハードウェア(たとえば、回路、専用論理)、ソフトウェア(汎用コンピュータシステムまたは専用マシン上で実行されるなど)、または両方の組合せを備えてもよい処理デバイスによって実行されてもよい。方法300、400、および500、ならびにそれらの個々の機能、ルーチン、サブルーチン、または動作の各々は、コンピュータデバイスの1つまたは複数のプロセッサが方法を実行することによって実行されてもよい。いくつかの実装形態では、方法300、400、および500は、単一の処理スレッドによって各々実行されてもよい。代替的に、方法300、400、および500は、2つ以上の処理スレッドによって実行されてもよく、各スレッドは、方法の1つまたは複数の個々の機能、ルーチン、サブルーチン、または動作を実行する。
【0054】
説明を簡単にするために、本開示の方法について、一連の行為として図示および説明する。しかしながら、本開示による行為は、様々な順序で、かつ/または本明細書で提示および説明しない他の行為と並行して行われることが可能である。さらに、すべての図示した行為が、開示する主題による方法を実装することを必要とされるとは限らない場合がある。加えて、状態図またはイベントを介して、一連の相互に関係する状態として本方法を代替的に表すことができることを当業者は理解および諒解されよう。追加として、本明細書で開示する方法は、そのような方法をコンピューティングデバイスにトランスポートおよび転送することを容易にするために、製造品において記憶されることが可能であることを諒解されたい。本明細書で使用する「製造品(article of manufacture)」という用語は、任意のコンピュータ可読デバイスまたは記憶媒体からアクセス可能なコンピュータプログラムを包含するように意図されたものである。一実装形態では、方法300は、メディアサーバ110によって実行されてもよく、方法400および500は、
図1のユーザデバイス120によって実行されてもよい。
【0055】
図3を参照すると、方法300は、メディアサーバの1つまたは複数の処理デバイスによって実行されてもよく、ブロック302で開始してもよい。ブロック302で、メディアサーバの処理デバイスは、第1のユーザデバイスにメディアアイテムを送信してもよい。メディアアイテムは、ビデオ、オーディオ、画像、テキスト、他のメディア、またはそれらの組合せを備えてもよい。メディアサーバの処理デバイスはまた、第1のユーザデバイスに1つまたは複数の暗号鍵を送信してもよい。暗号鍵のうちの1つは、ユーザデバイスによって生成されたデバイス鍵(たとえば、暗号鍵)をラップするために、第1のユーザデバイスによって使用されてもよい。デバイス鍵をラップする(たとえば、カプセル化する)ことは有利である場合があり、その理由は、ピアツーピア接続を介して送信されているか、かつ/または信頼できないピア上に記憶されているとき、暗号鍵を暗号文としてマスクしてもよいからである。別の例では、メディアサーバは、第1のユーザデバイスに第2の暗号鍵を送信してもよい。第2の暗号鍵は、メディアアイテムによって生成されてもよく、メディアアイテムを暗号化するために、ユーザデバイスによって生成された暗号鍵の代替として使用されてもよい。
【0056】
ブロック304で、処理デバイスは、第2のユーザデバイスから、メディアアイテムに関連付けられた再生可能性要求とラップされた暗号鍵とを受信してもよい。再生可能性要求は、第2のユーザデバイスが、第1のユーザデバイスによってピアツーピア接続を介して第2のユーザデバイスと共有されたメディアアイテムを再生することを許可されるかどうかについて問い合わせてもよい。一例では、ラップされた暗号鍵は、非対称暗号鍵を使用してカプセル化される対称暗号鍵を備えてもよい。対称暗号鍵は、ユーザデバイスによって生成され、メディアアイテムを暗号化するために使用される暗号鍵であってもよい。非対称暗号鍵は、対称暗号鍵をラップするために、メディアサーバによって提供された公開鍵であってもよい。一例では、再生可能性要求は、ラップされた暗号鍵と、メディアアイテム、受信側または共有側デバイス、受信側または共有ユーザ、他の情報、あるいはそれらの組合せに関連する情報とを含んでもよい。
【0057】
ブロック306で、処理デバイスは、第2のユーザデバイスがメディアアイテムを再生することを許可されると判定してもよい。判定は、メディアアイテムが、再生可能性要求における情報を解析すること、およびその情報を1つまたは複数のデータストア(たとえば、データベース)からの情報と比較することを伴ってもよい。解析は、メディアアイテムが、依然として提示のために利用可能であるかどうか、およびメディアが、コピーを取ることまたは閲覧されることにおけるいずれかの制限を有しているかどうかをチェックすることを伴ってもよい。一例では、メディアサーバの処理デバイスはまた、メディアアイテムが無許可の修正を含まないことを検証してもよい。検証は、第2のユーザデバイス上のメディアアイテムのバージョンに関連付けられた情報(たとえば、ハッシュ)をメディアサーバ上のメディアアイテムのバージョンに関連付けられた情報(たとえば、デジタル署名)と比較することによって実行されてもよい。
【0058】
ブロック308で、処理デバイスは、第2のユーザデバイスがメディアアイテムを再生することを許可されることを示す応答を送信してもよく、応答が、ラップされた暗号鍵から導出された暗号鍵を備える。暗号鍵を導出することは、鍵をラップするために使用される公開鍵に対応する秘密鍵を使用してラップされた暗号鍵をアンラップすることを伴ってもよい。秘密鍵および公開鍵は、メディアサーバにとってアクセス可能な鍵ペアの一部であってもよく、メディアサーバは、暗号鍵をラップするために、公開鍵を第1のユーザデバイスに前もって提供していてもよい。ラップされた暗号鍵は、暗号文を備えてもよく、暗号鍵をアンラップすることは、暗号文から暗号鍵を導出するために、非対称暗号関数(たとえば、公開鍵暗号関数)と組み合わせて、秘密鍵を使用することを伴ってもよい。第2のユーザデバイスは、メディアアイテムを解読するために、暗号鍵を使用してもよく、解読されると、メディアアイテムが第2のユーザデバイスのユーザに提示されてもよい。
【0059】
メディアサーバの処理デバイスはまた、メディアアイテムの提示前、提示中、または提示後、第2のユーザデバイスによって提示されるべき補足メディアアイテムを提供してもよい。補足メディアアイテムは、任意のメディアコンテンツを含んでもよく、広告として機能してもよい。一例では、補足メディアアイテムは、再生可能性応答とともに第1のユーザデバイスに提供されてもよい。たとえば、再生可能性応答は、補足メディアアイテムを含んでもよく、または補足メディアアイテムは、メディアサーバまたは他のデバイス(たとえば、パートナー、アフィリエイト)からの別の応答中に含まれてもよい。別の例では、補足メディアアイテムは、第1のユーザデバイスに提供されてもよく、暗号化されたメディアアイテムの送信前、送信中、または送信後、第1のユーザデバイスから第2のユーザデバイスに送信されてもよい。本明細書でブロック308を参照しながら上記で説明した動作の完了に応答して、本方法は終了してもよい。
【0060】
他の例では、方法300は、メディアサーバから発信された、第2のユーザデバイスによって受信されたメディアアイテムを検証することを伴ってもよい。検証は、第2のユーザデバイス上でメディアアイテムを再生するより前の任意の時点で行われてもよく、メディアサーバ、第1のユーザデバイス、第2のユーザデバイス、他のデバイス、またはそれらの組合せによって実行されてもよい。たとえば、第2のユーザデバイスが、第1のユーザデバイスから暗号化されたメディアアイテムを受信するより前に、第2のユーザデバイス上でメディアアイテムを解読するより前に、メディアアイテムを再生するより前に、または任意の他の時間において行われてもよい。一例では、検証は、第2のデバイス(たとえば、受信側デバイス)によって実行されてもよく、ハッシュを解析することを伴ってもよい。ハッシュは、メディアアイテムの解読されたバージョンに基づいてもよく、第2のデバイスによって計算されてもよい。第2のデバイスはまた、メディアサーバによって作成され、メディアサーバから直接的に受信されたか、または暗号化されたメディアアイテムとラップされた暗号鍵とを共有したユーザデバイスから受信されたデジタル署名を解析してもよい。次いで、第2のユーザデバイスは、解読されたメディアアイテムが真正であると決定するために、ハッシュおよびデジタル署名を解析してもよい。
【0061】
図4を参照すると、方法400は、メディアアイテムを別のユーザデバイスと共有中であるユーザデバイスの処理デバイスによって実行されてもよい。共有は、共有側デバイスまたは受信側デバイスによって開始されてもよい。共有側デバイスによって開始される共有は、メディアアイテムが共有側デバイスから受信側デバイスにプッシュされてもよいので、プッシュベースの共有と見なされる場合がある。受信側デバイスによって開始される共有は、メディアアイテムが共有側デバイスから受信側デバイスにプルされるので、プルベースの共有と見なされる場合がある。
【0062】
方法400は、ブロック402で開始してもよく、ここで第1のユーザデバイスの処理デバイスは、ネットワークを介して、メディアサーバからメディアアイテムを受信してもよい。メディアアイテムは、任意のストリーミングまたはファイル転送技術を使用してメディアサーバから第1のユーザデバイスにストリーミングまたはダウンロードされてもよい。ストリーミング技術は、メディアアイテムをオーディオストリームおよびビデオストリームに分離してもよい。オーディオストリームは、MP3、アドバンストオーディオコーディング(AAC)、Opus、他の符号化機構、またはそれらの組合せなどのオーディオコーデックを使用して圧縮されてもよい。ビデオストリームは、H264、VP8、他の符号化機構、またはそれらの組合せなどのビデオコーデックを使用して圧縮されてもよい。ストリーミング技術は、同じくまたは代替的にMP4、Flashビデオ(FLV)、アドバンストシステムズフォーマット(ASF)、インターネットストリーミングメディアアライアンス(ISMA)、他の符号化機構、またはそれらの組合せなどのコンテナストリーム(たとえば、ビットストリーム)にオーディオストリームおよびビデオストリームをアセンブルしてもよい。ファイル転送技術は、ハイパーテキスト転送プロトコル(HTTP)、ファイル転送プロトコル(FTP)、トリビアルファイル転送プロトコル(TFTP)、BitTorrent、他のプロトコル、またはそれらの組合せなどの任意のファイル転送プロトコルに基づいてもよい。
【0063】
ブロック404で、処理デバイスは、第1のユーザデバイスにおいてローカルでメディアアイテムを記憶してもよい。ストリーミングメディアを利用するとき、記憶することは、ストリーミングされたメディアアイテムを永続的なストレージにオフライン化することを伴ってもよい。ユーザデバイスは、メディアアイテムの1つまたは複数のストリーム(たとえば、ビデオストリーム、オーディオストリーム)を、メモリから永続的なデータストレージにコピーすることによって、ストリーミングされたメディアアイテムをオフライン化してもよい。一例では、第1のユーザデバイスは、メディアアイテムをオフライン化するためにメディアサーバに許可を要求してもよく、メディアサーバは、オフライン化されたメディアアイテムを暗号化するための暗号鍵(たとえば、キャッシングトークン)で応答してもよい。別の例では、第1のユーザデバイスは、メディアサーバからの暗号鍵の受信とは対照的に、暗号鍵自体を生成してもよい。
【0064】
ブロック406で、処理デバイスは、暗号化されたメディアアイテムを生成するために、暗号鍵を使用してメディアアイテムを暗号化してもよい。メディアアイテムを暗号化するための暗号鍵は、処理デバイスによって、またはメディアサーバによって生成されてもよい。一例では、メディアアイテムを暗号化することは、データ暗号化規格(DES)、または高度暗号化規格(AES)などの単一の共有鍵を使用する対称鍵暗号システムを使用することを伴ってもよい。他の例では、メディアアイテムを暗号化することは、Rivest-Shamir-Adleman暗号システム(RSA)などの複数の鍵(たとえば、公開鍵および秘密鍵)を使用する非対称暗号または公開鍵暗号システムを使用することを伴ってもよい。
【0065】
ブロック408で、処理デバイスは、記憶されたメディアアイテムを第2のユーザデバイスと共有するための要求の受信に応答して、ラップされた暗号鍵を生成するために、暗号鍵をラップしてもよい。上記で説明したように、メディアアイテムの共有は、共有側デバイス(たとえば、第1のユーザデバイス)によって要求されてもよく、その場合メディアアイテムが受信側デバイス(たとえば、第2のユーザデバイス)にプッシュされ、または共有は、受信側デバイスによって要求されてもよく、その場合メディアアイテムが受信側デバイスによって共有側デバイスからプルされる。メディアアイテムをプッシュするとき、要求は、メディアアイテム、宛先デバイス、または両方の組合せを選択してもよい、ユーザから受信されたユーザ入力に基づいてもよい。メディアアイテムをプルするとき、要求は、メディアアイテムが共有されることを受信側デバイスが要求中であることを示す、受信側デバイスによって受信されたメッセージに基づいてもよい。要求を受信した後、処理デバイスは、メディアサーバの公開鍵を使用して暗号鍵を暗号化することによって、暗号鍵をラップしてもよい。
【0066】
ブロック410で、処理デバイスは、ピアツーピア接続を介して、暗号化されたメディアアイテムとラップされた暗号鍵とを受信側デバイスに送信してもよい。一例では、共有側デバイスはまた、補足メディアアイテム、または補足メディアアイテムへのリンクを受信側デバイスに送信してもよい。補足メディアアイテム、または補足メディアアイテムへのリンクは、メディアサーバから発信されている場合があり、かつメディアアイテムとともに転送されてもよい。別の例では、共有側デバイスはまた、メディアアイテムのメタデータを受信側デバイスに送信してもよく、メタデータは、暗号化されていない間に転送されてもよい。本明細書でブロック410を参照しながら上記で説明した動作の完了に応答して、本方法は終了してもよい。
【0067】
図5を参照すると、方法500は、共有側デバイスからメディアアイテムを受信中である、受信側ユーザデバイスの処理デバイスによって実行されてもよい。方法500は、ブロック502で、受信側ユーザデバイスの処理デバイスが、ピアツーピア接続を介して、共有側ユーザデバイスから暗号化されたメディアアイテムとラップされた暗号鍵とを受信してもよいとき、開始してもよい。一例では、ピアツーピア接続は、ワイヤレス技術、ワイヤード技術、またはリムーバブルメディアを使用する、2つのデバイスの間の直接接続であってもよい。別の例では、ピアツーピア接続は、ピアツーピアワイヤレスネットワーク接続であってもよい。一例では、処理デバイスは、メディアアイテムのための要求を共有側ユーザデバイスに送信した後、暗号化されたメディアアイテムを受信してもよい。
【0068】
ブロック504で、処理デバイスは、受信側ユーザデバイスが暗号化されたメディアアイテムを再生することを許可されるかどうかを判定するために、ラップされた暗号鍵および要求をメディアサーバに送信してもよい。受信側ユーザデバイスが暗号化されたメディアアイテムを再生することを許可されるかどうかを判定するための要求は、メディアアイテムの識別子を含んでもよい。一例では、受信側ユーザデバイスは、共有側ユーザデバイスとともにテザリングしてもよく、共有側ユーザデバイスのネットワーク接続を使用して要求およびラップされた鍵をメディアサーバに送信してもよい。
【0069】
ブロック506で、処理デバイスは、受信側ユーザデバイスが暗号化されたメディアアイテムを再生することを許可されることを示すメディアサーバからの応答を受信してもよい。応答は、ラップされた暗号鍵から導出された暗号鍵を含んでもよい。いくつかの例では、メディアサーバからの応答は、メディアアイテムの再生前、再生中、または再生後に提示されてもよい、補足メディアアイテム、または補足メディアアイテムへのリンクを含んでもよい。他の例では、補足メディアアイテムは、暗号化されたメディアアイテムを受信するとき、共有側ユーザデバイスから受信されてもよい。
【0070】
ブロック508で、処理デバイスは、暗号鍵を使用して暗号化されたメディアアイテムを解読してもよい。暗号鍵は、共有側ユーザデバイスによってメディアアイテムを暗号化するために使用された同じ鍵であってもよい。メディアアイテムを解読した後、処理デバイスは、受信側ユーザデバイスのグラフィカルインターフェースを介して、メディアアイテムが再生される用意ができていることを示してもよい。グラフィカルインターフェースについて、
図14に関してより詳細に説明する。メディアアイテムを解読した後、受信側ユーザデバイスは、メディアアイテムをメディアキャッシュに追加し、他のデバイスと共有するために利用可能にしてもよい。別のデバイス(たとえば、第3のデバイス)とのメディアアイテムの共有について、以下で
図6A〜
図9に関してより詳細に説明する。本明細書でブロック508を参照しながら上記で説明した動作の完了に応答して、本方法は終了してもよい。
【0071】
図6A〜
図14は、アクセス制御機構を含むピアツーピア共有モバイルアプリケーションのための例示的なグラフィカルインターフェースを示す。
図6Aおよび
図6Bは、ユーザが複数のメディアアイテムに関係する情報を閲覧すること、および複数のメディアアイテムの各々の利用可能性を検出することを可能にするグラフィカルインターフェースを表す。
図7〜
図9は、メディアアイテムを選択し、メディアアイテムを別のデバイスに送信するためのグラフィカルインターフェースを表す。
図10〜
図14は、共有メディアアイテムを受信し、提示されるためにメディアアイテムを利用可能にするように処理するための例示的なグラフィカルインターフェースを表す。
【0072】
図6Aを参照すると、ユーザインターフェース600は、ユーザが1つまたは複数のメディアアイテムを閲覧すること、およびメディアアイテムのうちの1つまたは複数の共有を開始することを可能にしてもよい。1つまたは複数のメディアアイテムは、ローカルユーザデバイスのメディアキャッシュ中で利用可能であるメディアアイテム(たとえば、保存されたメディアアイテムのセット)のサブセット(たとえば、一部または全部)であってもよい。ユーザデバイスは、ソフトウェアコンポーネント(たとえば、モバイルアプリケーション)を起動するユーザ入力の受信に応答して、ユーザインターフェース600をユーザに提供してもよく、あるいは1つまたは複数の他のユーザデバイスからのメディアアイテムを共有(送信または受信)するための要求の受信に応答して、ユーザインターフェース600を自動的に開始してもよい。ユーザインターフェース600は、グラフィカル情報をユーザデバイスのユーザに提供(たとえば、提示、表示、指示、反映)する1つまたは複数のグラフィカル要素を含んでもよい。グラフィカル要素は、基礎をなすデータ構造(たとえば、メディアアイテム)の情報を表してもよく、基礎をなすデータ構造が修正されるとき、更新(たとえば、リフレッシュ)されてもよい。一例では、グラフィカル要素は、情報をユーザに提供するように構成されてもよいが、ユーザからの情報(たとえば、ユーザ入力)を受信するように構成されなくてもよい。別の例では、グラフィカル要素は、情報をユーザに提供するグラフィカル制御要素であってもよく、またユーザ入力を受信することなどのユーザからの情報を受信するように構成されてもよい。ユーザ入力は、ユーザデバイスによって、タッチスクリーン(たとえば、タップ、スワイプ、または他のタッチジェスチャ)、マウス/キーボード(たとえば、クリック、スクロール、タイピング)、カメラ(たとえば、ジェスチャ)、加速度計(たとえば、振動)、他の感覚デバイス、またはそれらの組合せを介して受信されてもよい。
図6Aに示す例では、ユーザインターフェース600は、メディアエントリ領域610と、1つまたは複数のメディアエントリ620と、1つまたは複数のメディア利用可能性インジケータ626Aおよび626Bと、共有制御要素630とを含んでもよい。
【0073】
メディアエントリ領域610は、1つまたは複数のメディアアイテムに対応する情報を表示する、ユーザインターフェース600の任意の部分であってもよい。メディアエントリ領域610は、メディアアイテム配置に編成された複数のメディアアイテムを含んでもよい。一例では、メディアアイテム配置は、メディアアイテムのシーケンス、またはメディアアイテムのリストであってもよい。メディアエントリ領域610は、1つまたは複数の方向(たとえば、水平、垂直、または他の方向)において、メディアアイテム配置を調整(たとえば、スクロール、パン、ズーム、移動、再位置決め)するためのユーザ入力を受信するように構成されてもよい。メディアアイテム配置が調整されるとき、特定のメディアアイテムのロケーションが変化してもよく、新しいメディアアイテムが表示されてもよく、既存のメディアアイテムが非表示にされてもよい。メディアエントリ領域610中の各メディアアイテムは、メディアエントリ620によって表されてもよい。
【0074】
各メディアエントリ620は、特定のメディアアイテムに対応する情報を提供するグラフィカルデータ構造であってもよい。
図6Aに示すように、メディアエントリ620は、画像622と、メタデータ624と、メディア利用可能性インジケータ626Aとを含んでもよい。画像622は、メディアアイテム(たとえば、カバー画像)、またはメディアアイテム(たとえば、サムネイル画像)のビデオフレームなどのメディアアイテムの一部分を表す画像であってもよい。メタデータ624は、タイトル、作成者、アップロード者、持続時間、作成日時、アップロード日時、閲覧者数、共有者数、他の情報、またはそれらの組合せなどのメディアアイテムについての任意の情報を含んでもよい。
【0075】
メディア利用可能性インジケータ626Aおよび626Bは、対応するメディアアイテムが特定のユーザデバイス上で利用可能であるかどうかを表すグラフィカル要素であってもよい。メディア利用可能性インジケータ626Aおよび626Bは、任意のグラフィカル要素またはグラフィカル制御要素であってもよく、形状(たとえば、円、正方形、八角形)、記号(たとえば、ロック、チェックマーク、矢印)、色(たとえば、青、緑、赤、黄)、テキスト(たとえば、異なるフォント、サイズ)、画像、他のグラフィックス、またはそれらの組合せを含んでもよい。
【0076】
グラフィカル要素は、メディアエントリ領域610内、または対応するメディアエントリ620内の任意のロケーションに位置してもよい。メディア利用可能性インジケータ626A、626Bは、それぞれのメディアエントリ620の画像622上に重ね合わせられてもよく、または画像もしくはメディアエントリ620の隣接する位置(たとえば、上、下、側面)に位置してもよい。
図6Aに示す例では、メディア利用可能性インジケータ626Aは、青い円形の形状および埋め込まれたロック記号を有するオーバーレイグラフィカル要素であってもよく、メディア利用可能性インジケータ626Bは、青い円形の形状および埋め込まれた下線付きのチェックマーク記号を有するオーバーレイグラフィカル要素であってもよい。一例では、メディア利用可能性インジケータの一部または全部は、ユーザ入力を受信し、応答してアクションを実行する、グラフィカル制御要素であってもよい。たとえば、メディア利用可能性インジケータ626Aは、メディアアイテムがロックまたは暗号化された状態であることを示してもよい。メディア利用可能性インジケータ626Aがユーザ入力(たとえば、タップ、クリック、ホバー、ホールド)を受信するとき、メディア利用可能性インジケータ626Aは、状態遷移(たとえば、手動で開始された解読)を開始するか、または対応するメディアアイテムへどのように遷移するかについての情報を提示してもよい(
図12参照)。メディア利用可能性インジケータの変形形態は、複数の異なるメディアアイテム状態を示すために使用されてもよく、メディアアイテム状態については、
図6Bに関してより詳細に説明する。
【0077】
共有制御要素630は、ユーザインターフェース600内に含まれてもよく、ユーザが1つまたは複数のメディアアイテムを共有することを可能にしてもよい。共有制御要素630は、ユーザ入力(たとえば、タップ、スワイプ、クリック、キーストローク)を受信してもよく、メディアアイテムを共有するために、1つまたは複数のユーザインターフェースを開始してもよい。メディアアイテムを共有することは、1つまたは複数のメディアアイテムを別のユーザデバイスに送信すること、および/あるいは別のユーザデバイスから1つまたは複数のメディアアイテムを受信することを伴ってもよい。共有制御要素630は、1つまたは複数のグラフィカル要素を含んでもよく、形状(たとえば、円、正方形、八角形)、記号(たとえば、矢印、ロック、チェックマーク)、テキスト、画像、他のグラフィックス、またはそれらの組合せを含んでもよい。共有制御要素630は、メディアエントリ領域610を含んでも含まなくてもよい、ユーザインターフェース600内の任意のロケーションに位置してもよい。
図6Aに示す例では、共有制御要素630は、埋め込まれた平行の水平の矢印が反対方向を指している、青い円形の形状を有するグラフィカル制御要素であってもよく、選択されると、ユーザインターフェースが
図7のユーザインターフェース700に進むことを引き起こしてもよい。
【0078】
図6Bを参照すると、ユーザインターフェース650は、ユーザインターフェース600と同様であってもよく、異なる状態であるメディアアイテムを表示してもよく、メディアアイテムのうちの1つまたは複数は、状態の間で遷移中であってもよい。一例では、ユーザインターフェース650は、複数のメディアアイテム状態628A〜Bと、メディアエントリ625と、ピアツーピア接続領域660とを含んでもよい。
【0079】
メディアアイテム状態628A〜Cは、ユーザデバイスの使用中にメディアアイテムがそうであってもよい状態、またはそれらの間で遷移中であってもよい状態のうちのいくつかを示してもよい。メディアアイテム状態628Aは、メディアアイテムの例示的な第1の状態を示してもよく、ここでメディアアイテムは、ユーザデバイス上に保存されていないが、別のデバイスから受信(たとえば、ダウンロード)されている最中である。別のデバイスは、1つまたは複数のピアユーザデバイス、サーバデバイス、他のデバイス、またはそれらの組合せであってもよい。上記で説明したように、受信されているメディアアイテムのバージョンは、暗号化されたバージョンであってもよく、ラップされた暗号鍵が添付されてもよい。ユーザデバイスは、暗号化されたメディアアイテムの受信前、受信中、または受信後に、ラップされた暗号鍵を受信してもよく、暗号化されたメディアアイテムを送信した同じデバイスから、または異なるデバイスから受信されてもよい。
【0080】
メディアアイテム状態628Bは、メディアアイテムの第2の状態を示し、ここでメディアアイテムは、暗号化された形態でユーザデバイスにおいて保存されてもよい。メディアアイテムは、暗号鍵のラップされたバージョンとともに保存されてもよい。メディアアイテムが第2の状態であるとき、ユーザデバイスは、メディアアイテムを解釈または提示することができないが、メディアアイテムの暗号化されたバージョンを1つまたは複数の他のユーザデバイスと共有することが可能であってもよい。
【0081】
メディアアイテム状態628Cは、メディアアイテムの第3の状態を示し、ここでメディアアイテムは、ユーザデバイス上に保存され、ユーザによって体験されるために利用可能であってもよい。メディアアイテムは、ユーザデバイスがメディアアイテムの暗号化されたバージョンを解読するとき、第2の状態から第3の状態に遷移してもよい。上記で説明したように、ユーザデバイスは、ラップされた暗号鍵をリモートデバイス(たとえば、コンテンツ共有プラットフォーム)に送信することによって、メディアアイテムを解読してもよく、リモートデバイスは、再生可能性チェックを実行し、ラップされた暗号鍵をアンラップする。次いで、暗号鍵のアンラップされたバージョンが、ユーザデバイスに送信されてもよく、ユーザデバイスは、メディアアイテムを解読するために、暗号鍵のアンラップされたバージョンを使用してもよく、それによってメディアアイテムがメディアアイテム状態628Cに遷移することを可能にしてもよい。
【0082】
メディアアイテム状態628A〜Cの各々は、それぞれのメディア利用可能性インジケータ626Aおよび626B、またはメディア利用可能性インジケータの欠如によって表されてもよい。たとえば、メディアアイテム状態628Aは、メディア利用可能性インジケータの欠如(たとえば、非表示にされたメディア利用可能性インジケータ)によって表されてもよいのに対して、メディアアイテム状態628Bおよび628Cは、それぞれメディア利用可能性インジケータ626Aおよび626Bによって表されてもよい。特定のメディアアイテムは、ピアツーピア共有技術の動作中に、状態のうちの1つまたは複数の間で遷移してもよい。たとえば、メディアアイテムは、メディアアイテムの暗号化されたバージョン、およびラップされた暗号鍵が、別のユーザデバイスからピアツーピア接続を介してダウンロードされているときにメディアアイテム状態628Aにおいて開始してもよい。ダウンロードが完了すると、メディアアイテムは、メディアアイテム状態628Bに遷移してもよく、ユーザインターフェース650は、メディアインジケータをメディアインジケータ626Aからメディアインジケータ626Bに遷移させるように更新されてもよい。
【0083】
メディアアイテム状態628A〜Cはまた、1つまたは複数の他のグラフィカルフィーチャによって表されてもよい。他のグラフィカルフィーチャは、透過性(たとえば、グレー表示)、フォント(たとえば、ボールド、イタリック体、強調表示)、サイズ(たとえば、拡大、縮小)、配置(たとえば、特定のメディアエントリをへこませるかまたは突出させる)を調整するために、メディアエントリ、またはメディアエントリの一部分を修正することを含んでもよい。
図6Bに示す例では、メディアアイテム状態628Aは、例示的なメディアエントリ625によって表されてもよく、例示的なメディアエントリ625は、進捗インジケータ627とグラフィカル制御要素629とを含んでもよい。進捗インジケータ627、グラフィカル制御要素629、非表示にされたメディア利用可能性インジケータ、他のフィーチャ、またはフィーチャの組合せの存在は、メディアエントリがメディアアイテム状態628Aに対応することを示してもよい。
【0084】
進捗インジケータ627は、メディアアイテムおよび/またはラップされた暗号鍵を受信する進捗のグラフィカル表現を提供するグラフィカル要素であってもよい。進捗インジケータ627は、バー(たとえば、プログレスバー)、円(たとえば、回転するホイール、スロバー(throbber))、他の形状、またはそれらの組合せなどの任意の形状をとってもよい。グラフィカル要素には、パーセントのフォーマットにおける進捗のテキスト表現が添付されてもよい。進捗インジケータは、インターフェース650上の任意のロケーションに位置してもよい。一例では、進捗インジケータ627は、メディア画像および/またはメタデータに隣接して(たとえば、側面、上、下に)表示されてもよい。別の例では、進捗インジケータ627は、
図6Bに示すように、半透明または不透明な方法でメディア画像および/またはメタデータ上に表示されてもよい。
【0085】
グラフィカル制御要素629は、ユーザがメディアアイテムの送信をキャンセルすることを可能にしてもよい。メディアアイテムの送信をキャンセルすることは、メディアアイテムを状態628Aから、メディアアイテムをダウンロードする試みがキャンセルまたは失敗したことを表す別の状態(たとえば、第4の状態)に遷移させてもよい(第4の状態は図示せず)。グラフィカル制御要素629は、ボタン、ウィジェット、他の要素、またはそれらの組合せであってもよい。
【0086】
接続領域660は、メディアアイテム、(ラップまたはアンラップされた)暗号鍵、他の情報、またはそれらの組合せを送信または受信するための1つまたは複数の接続に関する情報を表示する、ユーザインターフェース650の任意の部分であってもよい。接続は、ピアツーピア接続、インターネット接続、他の接続、またはそれらの組合せであってもよい。一例では、接続(たとえば、ピアツーピア接続)は、メディアアイテムの暗号化されたバージョン、およびラップされた暗号鍵が、ユーザデバイスによって受信されているか、またはユーザデバイスから送信されている間に表示されてもよい。別の例では、接続(たとえば、インターネット接続)は、ラップまたはアンラップされた暗号鍵が、ユーザデバイスによって受信されているか、またはユーザデバイスから送信されている間に表示されてもよい。
【0087】
ピアツーピア接続インジケータ662は、接続領域660内で表示されてもよく、1つのタイプの接続の一例であってもよい。ピアツーピア接続インジケータ662は、1つまたは複数のデバイス記号664Aおよび664Bと、デバイス情報666Aおよび666Bと、接続記号668とを含んでもよい。1つまたは複数のデバイス記号664Aおよび664Bは、デバイスをグラフィカルに表してもよく、電話、タブレット、ラップトップ、デスクトップ、サーバ、または他のデバイスなどの異なるタイプまたはクラスのデバイスごとに異なる記号を有してもよい。デバイス情報666Aおよび666Bは、デバイス識別子(たとえば、デバイス名、ユーザ名、IPアドレス)および相対識別子などのデバイスのための識別情報を含んでもよく、相対識別子は、デバイス識別子がローカルデバイス(たとえば、「自分のデバイス」)に対応するか、リモートデバイス(たとえば、「他のデバイス」、「送信デバイス」、「受信デバイス」)に対応するかを示してもよい。一例では、接続記号668は、wifi、bluetooth、セルラー(たとえば、3G、4G)、他の技術、またはそれらの組合せなどの接続のために使用される、基礎をなす技術を示してもよい。
【0088】
図7を参照すると、ユーザインターフェース700は、選択されたメディアアイテムのための情報と、選択されたメディアアイテムを共有するためのインターフェースとを表示してもよい。ユーザインターフェース700は、ディスプレイ領域710と共有領域720とを含んでもよい。ディスプレイ領域710は、メディアアイテムを提示(たとえば、再生)するための組み込みメディアプレーヤを含んでもよい。共有領域720は、メディアアイテムを共有するための1つまたは複数のオプションを含んでもよい。第1のオプション722は、メディアアイテムが近くのユーザデバイスと共有されることを可能にしてもよい。第2のオプション724は、メディアアイテムが、インターネットを介してアクセス可能であるユーザと共有されることを可能にしてもよい。ユーザ入力が第1のオプション722の選択を示すとき、ユーザインターフェース700は、ユーザインターフェース800に進んでもよい。
【0089】
図8を参照すると、ユーザインターフェース800は、ユーザが、共有メディアアイテムの受信側であることが意図される1つまたは複数のユーザデバイスを選択することを可能にしてもよい。一例では、表示されるユーザデバイスは、ユーザデバイスの地理的エリア内(たとえば、30フィート以内)にあるユーザデバイスであってもよい。ユーザインターフェース800は、共有側デバイス812と、1つまたは複数の受信側デバイス814Aおよび814Bとを表示する受信側選択領域810を含んでもよい。共有側デバイス812に対する受信側デバイス814Aおよび814Bのロケーションは、対応するユーザデバイスの間の実際の物理的な距離に対応してもよい。受信側デバイス814Bの選択を示すユーザ入力に応答して、ユーザインターフェース800は、ユーザインターフェース900に進んでもよい。
【0090】
図9を参照すると、ユーザインターフェース900は、メディアアイテムの転送前、転送中、および転送後に、メディアアイテムの共有についての情報を提供してもよい。ユーザインターフェース900は、共有インジケータ領域910と、ピアツーピア接続インジケータ領域930とを含んでもよい。共有インジケータ領域910は、
図6Aのメディアエントリ620と同じまたは同様であってもよいメディアエントリ920を含んでもよい。ピアツーピア接続インジケータ領域930は、ローカルユーザデバイスと、選択された受信側デバイスとを表示してもよい。
【0091】
図10〜
図14は、共有メディアアイテムの送信とは対照的に、共有メディアアイテムを受信するときに提示されるユーザインターフェースの例を含んでもよい。
図10を参照すると、ユーザインターフェース1000は、メディアアイテムの受信前、受信中、および受信後に、メディアアイテムについての情報を提供してもよい。ユーザインターフェース1000は、ユーザインターフェース600および900と同様であってもよく、送信デバイスとは対照的に受信デバイスによって提示されてもよい。ユーザインターフェース1000は、メディアリスト1010と、ピアツーピア接続インジケータ領域1030とを含んでもよい。メディアリスト1010は、
図6Aのメディアエントリ620と同じまたは同様である1つまたは複数のメディアエントリ1020を含んでもよい。ピアツーピア接続インジケータ領域1030は、
図9に示した受信側デバイスとは対照的に、ローカルユーザデバイスと、選択された送信デバイスとを表示してもよい。
【0092】
図11を参照すると、ユーザインターフェース1100は、ローカルユーザデバイスのメディアキャッシュ中にあるメディアアイテム(たとえば、保存済みメディアアイテム)についての情報を提供してもよい。ユーザインターフェース1100は、ユーザインターフェース600と同じまたは同様であってもよく、1つまたは複数のメディアエントリ1120を含んでもよい。各メディアエントリ1120は、メディア利用可能性インジケータ1122Aまたは1122Bを含んでもよい。メディア利用可能性インジケータ1122Aは、メディアアイテムがメディアキャッシュ中に記憶される(たとえば、オフライン化される)が、再生されるために利用可能ではないことを示してもよい。これは、メディアアイテムが暗号化される場合があるからである場合がある。メディア利用可能性インジケータ1122Bは、メディアアイテムが再生、または別のユーザデバイスと共有されるために利用可能であることを示してもよい。
【0093】
図12を参照すると、ユーザインターフェース1200は、受信されたメディアアイテムの検証および解読についての情報を提供してもよい。ユーザインターフェース1200は、メディアアイテムの解読および検証についての情報を提供する、情報オーバーレイ1240を含んでもよい。情報オーバーレイ1240は、ビデオが利用可能であることを保証するために、再生可能性チェックが利用可能であること、およびメディアアイテムがメディアサーバから発信され、無許可の修正(たとえば、セキュリティ脅威)がないことを保証するために、検証チェックを実行可能であることをユーザに示してもよい。
【0094】
図13を参照すると、ユーザインターフェース1300は、再生可能性チェックおよび検証チェックに関連する情報プロセスステップを提供してもよい。ユーザインターフェース1300は、解読および検証プロセスのステータスについての情報を提供するステータス領域1350を含んでもよい。一例では、ステータス領域1350は、1つまたは複数のプロセスの各々が完了したかどうかを表示してもよい。
【0095】
図14を参照すると、ユーザインターフェース1400は、グラフィカル、テキスト、オーディオ、触覚、または他のコンポーネントを含む通知を提供する通知領域1460を含んでもよい。
【0096】
図15は、ピアツーピアメディア共有アプリケーションのためのユーザインターフェースを提供するための方法1500の例示的な例のフロー図を示す。方法1500は、上記で説明した方法300、400、および500と同様であってもよく、ユーザが方法300、400、および500の1つまたは複数の特徴またはステップを視覚化することを可能にするユーザデバイス上のグラフィカルインターフェースを提供することに集中してもよい。方法1500は、ユーザデバイスの1つまたは複数の処理デバイスによって実行されてもよく、ブロック1502で開始してもよい。
【0097】
ブロック1502で、ユーザデバイスの処理デバイスは、複数のメディアアイテムと複数のメディア利用可能性インジケータとを備えるユーザインターフェースを表示のために提供してもよい。ユーザインターフェースは、
図6Aのユーザインターフェース600と同じまたは同様であってもよく、メディア利用可能性インジケータ626Aおよび626Bを含んでもよい。処理デバイスは、ソフトウェアコンポーネント(たとえば、モバイルアプリケーション)を起動するユーザ入力の受信に応答して、ユーザインターフェースを提供してもよく、またはユーザインターフェースは、メディアアイテムを共有(送信または受信)するための要求の受信に応答して自動的に開始されてもよい。一例では、複数のメディアアイテムの各々は、メディア利用可能性インジケータとともに表示されてもよい。別の例では、メディアアイテムのうちのいくつかは、メディア利用可能性インジケータとともに表示されてもよく、他のメディアアイテムは、非表示にされたメディアインジケータあり、またはメディアインジケータなしで表示されてもよい。後者の例では、非表示にされたメディアインジケータは、対応するメディアアイテム(たとえば、メディアアイテムの暗号化されたバージョン)が受信されている最中であり、メディアアイテムがまだユーザデバイス上に保存されていないか、または体験されるために利用可能ではないことを示してもよい。ユーザデバイスがメディアアイテムを受信中であるとき、メディアアイテムの暗号化されたバージョンと、対応する暗号鍵のラップされたバージョンとが別のデバイスから受信されていることを表すユーザインターフェースの一部分があってもよい。
【0098】
一例では、ユーザインターフェースは、ピアツーピア接続を介して、メディアアイテムのための暗号鍵のラップされたバージョンの受信を開始するために、グラフィカル制御要素(たとえば、
図6Aにおける共有制御要素630)を含んでもよい。別の例では、ユーザインターフェースは、メディアアイテムの暗号化されたバージョンを受信するために使用されたピアツーピア接続(たとえば、
図1のピアツーピア接続130)を示し、インターネット接続がメディアアイテム(たとえば、
図13におけるステータス領域1350)を解読するために使用されることを示してもよい。ピアツーピア接続は、メディアアイテムの暗号化されたバージョンを提供中であるユーザデバイスを識別し、またメディアアイテムの暗号化されたバージョンを受信中であるユーザデバイスをも識別するピアツーピア接続インジケータ(たとえば、
図6Bにおけるピアツーピア接続インジケータ662)として表示されてもよい。
【0099】
ブロック1504で、処理デバイスは、メディアアイテムの暗号化されたバージョンと暗号鍵とがローカルデバイス上に保存されていることを表すために、メディア利用可能性インジケータのうちのメディア利用可能性インジケータを更新してもよい。更新は、メディアアイテムおよび暗号鍵のダウンロードが完了したことを示す信号の受信に応答したものであってもよい。一例では、メディア利用可能性インジケータは、特定のメディアアイテムの3つの異なる状態の間で区別するために使用されてもよい。第1の状態は、メディアアイテムがユーザデバイス上に保存されていないことを示してもよい。第2の状態は、メディアアイテムが暗号化された形態において、ローカルで保存されていることを示してもよい。第3の状態は、メディアアイテムが保存され、かつ体験される(たとえば、ユーザデバイスのユーザによって消費される)ために利用可能であることを示してもよい。より多いまたはより少ない状態が存在してもよく、ユーザインターフェースを介してユーザに表示されてもよい。
【0100】
ブロック1506で、処理デバイスは、メディアアイテムの暗号化されたバージョンが解読されるという指示を受信してもよい。指示は、ユーザデバイスのモジュール(たとえば、
図2における解読モジュール232)から受信されてもよい。解読は、メディアアイテムを暗号化および解読するために使用されてもよい暗号鍵に鑑みたものであってもよい。暗号鍵は、ピアデバイスまたは他のリモートデバイス(たとえば、コンテンツ共有プラットフォーム)によって受信されてもよい。一例では、ユーザデバイスは、ラップされた暗号鍵を含んでもよく、ラップされた暗号鍵をサーバに転送してもよく、応答してアンラップされた暗号鍵を受信してもよい。次いで、ユーザデバイスは、メディアアイテムを解読するために、1つまたは複数の暗号関数とともにアンラップされた暗号鍵を使用してもよい。
【0101】
ブロック1508で、処理デバイスは、メディアアイテムが体験されるために利用可能であることを表すために、メディア利用可能性インジケータを更新してもよい。更新は、メディアアイテムの暗号化されたバージョンが解読されるという指示の受信に応答したものであってもよい。メディア利用可能性インジケータの更新は、第1のメディア利用可能性インジケータを第2のメディア利用可能性インジケータに置換することを伴ってもよい。メディア利用可能性インジケータの更新は、同じくまたは代替的に、組み込み記号、色、形状、フォーマット、他のグラフィカル属性、またはそれらの組合せを調整するために、既存のメディア利用可能性インジケータを修正することを伴ってもよい。
【0102】
一例では、複数のメディアアイテムの各々は、メディアエントリによってユーザインターフェース内で表されてもよい。メディアエントリは、異なる形態のデータ(たとえば、画像、テキスト)を有する複数のグラフィカル部分を含んでもよい。第1のグラフィカル部分は、メディアアイテムの画像(たとえば、
図6Aの画像622)を含んでもよく、第2のグラフィカル部分は、メディアアイテムのテキスト情報(たとえば、
図6Aのメタデータ624)を含んでもよい。メディアエントリまたはユーザインターフェースの1つまたは複数の部分は、特定のメディアアイテムに対応し、特定のメディアアイテムの提示を開始する、ユーザ入力を受信するように構成されてもよい。ユーザ入力は、ユーザデバイスによって、タッチスクリーン(たとえば、タップ、スワイプ、または他のタッチジェスチャ)、マウス/キーボード(たとえば、クリック、スクロール、タイピング)、カメラ(たとえば、ジェスチャ)、加速度計(たとえば、振動)、他の感覚デバイス、またはそれらの組合せを介して受信されてもよい。特定のメディアアイテムの提示は、ユーザインターフェースの一部分内に組み込まれるメディアプレーヤによって行われてもよく、または異なるユーザインターフェース内で行われてもよい。本明細書でブロック1508を参照しながら上記で説明した動作の完了に応答して、本方法は終了してもよい。
【0103】
図16は、本開示の1つまたは複数の態様に従って動作するコンピュータシステムのブロック図を示す。いくつかの実装形態では、コンピュータシステム1600は、(たとえば、ローカルエリアネットワーク(LAN)、イントラネット、エクストラネット、またはインターネットなどのネットワークを介して)他のコンピュータシステムに接続されてもよい。コンピュータシステム1600は、クライアントサーバ環境におけるサーバもしくはクライアントコンピュータの能力を有するものとして、またはピアツーピアもしくは分散ネットワーク環境においてピアコンピュータとして動作してもよい。コンピュータシステム1600は、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、セルラー電話、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチもしくはブリッジ、またはそのデバイスによってとられるべきアクションを指定する命令のセット(連続またはそれ以外)を実行することが可能な任意のデバイスによって提供されてもよい。さらに、「コンピュータ」という用語は、本明細書で説明する方法のうちの任意の1つまたは複数を実行するための命令のセット(または、複数のセット)を個別にまたは一緒に実行する任意のコンピュータの集合を含むものとする。
【0104】
さらなる態様では、コンピュータシステム1600は、バス1608を介して互いに通信してもよい、処理デバイス1602と、揮発性メモリ1604(たとえば、ランダムアクセスメモリ(RAM))と、不揮発性メモリ1606(たとえば、読取り専用メモリ(ROM)または電気的消去可能プログラマブルROM(EEPROM))と、データ記憶デバイス1616とを含んでもよい。
【0105】
処理デバイス1602は、汎用プロセッサ(たとえば、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、他のタイプの命令セットを実装するマイクロプロセッサ、または命令セットのタイプの組合せを実装するマイクロプロセッサなど)、または専用プロセッサ(たとえば、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、またはネットワークプロセッサなど)などの1つまたは複数のプロセッサによって提供されてもよい。
【0106】
コンピュータシステム1600は、ネットワークインターフェースデバイス1622をさらに含んでもよい。コンピュータシステム1600はまた、ビデオディスプレイユニット1610(たとえば、LCD)と、英数字入力デバイス1612(たとえば、キーボード)と、カーソル制御デバイス1614(たとえば、マウス)と、信号生成デバイス1620とを含んでもよい。
【0107】
データ記憶デバイス1616は、
図2の共有インターフェースコンポーネント124を符号化する命令、および方法500を実施するための命令を含む、本明細書で説明する方法または機能のうちの任意の1つまたは複数を符号化する命令1626をその上に記憶してもよい、非一時的コンピュータ可読記憶媒体1624を含んでもよい。
【0108】
命令1626はまた、コンピュータシステム1600によるその実行中に、完全または部分的に、揮発性メモリ1604内および/または処理デバイス1602内に存在してもよく、したがって揮発性メモリ1604および処理デバイス1602もまた、機械可読記憶媒体を構成してもよい。
【0109】
コンピュータ可読記憶媒体1624は、例示的な例において単一の媒体として示されているが、「コンピュータ可読記憶媒体」という用語は、実行可能命令の1つまたは複数のセットを記憶する単一の媒体または複数の媒体(たとえば、集中もしくは分散データベース、ならびに/または関連付けられたキャッシュおよびサーバ)を含むものとする。「コンピュータ可読記憶媒体」という用語はまた、本明細書で説明する方法のうちの任意の1つまたは複数をコンピュータに実行させる、コンピュータによる実行のための命令のセットを記憶または符号化することが可能である任意の有形の媒体を含むものとする。「コンピュータ可読記憶媒体」という用語は、限定はしないが、ソリッドステートメモリ、光媒体、および磁気媒体を含むものとする。
【0110】
本明細書で説明する方法、コンポーネント、および特徴は、個別のハードウェアコンポーネントによって実装されてもよく、またはASIC、FPGA、DSP、もしくは同様のデバイスなどの他のハードウェアコンポーネントの機能中に統合されてもよい。加えて、本方法、コンポーネント、および特徴は、ハードウェアデバイス内のファームウェアモジュールまたは機能的回路によって実装されてもよい。さらに、方法、コンポーネント、および特徴は、ハードウェアデバイスおよびコンピュータプログラムコンポーネントの任意の組合せにおいて、またはコンピュータプログラムにおいて実装されてもよい。
【0111】
別段に明記されていない限り、「検出すること」、「決定(判定)すること」、「解放すること」、「破棄すること」、「開始すること」、「作成すること」、「放棄すること」などの用語は、コンピュータシステムレジスタおよびメモリ内の物理的(電子的)な量として表されるデータを操作し、コンピュータシステムメモリもしくはレジスタ、または他のそのような情報記憶デバイス、送信デバイス、もしくはディスプレイデバイス内の物理的な量として同様に表される他のデータに変換する、コンピュータシステムによって実行または実装されるアクションおよびプロセスを指す。また、本明細書で使用する「第1の」、「第2の」、「第3の」、「第4の」などの用語は、異なる要素の間で区別するためのラベルとして意図され、それらの数字表示による元の意味を有していない場合がある。
【0112】
本明細書で説明する例はまた、本明細書で説明する方法を実行するための装置にも関する。この装置は、本明細書で説明する方法を実行するために特別に構築されてもよく、またはコンピュータシステムにおいて記憶されたコンピュータプログラムによって選択的にプログラムされた、汎用コンピュータシステムを備えてもよい。そのようなコンピュータプログラムは、コンピュータ可読有形記憶媒体において記憶されてもよい。
【0113】
本明細書で説明する方法および例示的な例は、いずれかの特定のコンピュータまたは他の装置に本質的に関連するものではない。様々な汎用システムが、本明細書で説明する教示に従って使用されてもよく、あるいは方法300、400、500、および/またはその個々の機能、ルーチン、サブルーチン、もしくは動作の各々を実行するために、より専用の装置を構築することが好都合であると判明する場合がある。様々なこれらのシステムのための構造の例を、上記の説明において記載した。
【0114】
上記の説明は例示的であり、限定的ではないものである。本開示について、特定の例示的な例および実装形態を参照しながら説明したが、本開示が、説明した例および実装形態に限定されないことは認識されよう。本開示の範囲は、特許請求の範囲がその権利を有する均等物の全範囲とともに、以下の特許請求の範囲を参照しながら決定されるべきである。