コンテンツ共有プラットフォーム(本明細書においては「コンテンツ配信プラットフォーム」とも呼ばれる)は、ユーザデバイスを介してユーザにビデオアイテム、オーディオアイテム、またはゲームアイテムなどのコンテンツを提供する可能性がある。ユーザは、コンテンツ共有プラットフォームにアクセスし、コンテンツをアップロードするおよび/または消費するためにコンテンツ共有プラットフォームに関連するユーザアカウントにログインする可能性がある。コンテンツ共有プラットフォームは、クライアントデバイスにコンテンツを配信するためにコンテンツ配布ネットワーク(CDN)(本明細書においては「コンテンツ配信ネットワーク」とも呼ばれる)を使用する可能性がある。CDNは、コンテンツの配信の高い可用性および高い性能を提供するために一緒に働くサーバの地理的に分散されたネットワークを含み得る。たとえば、クライアントデバイスAと同じ地理的近傍にあるCDNのサーバAが、クライアントデバイスAにコンテンツを配信するために選択され得る。サーバAによって配信されるコンテンツは、クライアントデバイスAと同じ地理的近傍にない別のサーバ、CDNのサーバBよりも迅速にクライアントデバイスAに配信され得る。
一部のシステムにおいて、ユーザは、クライアントデバイスを介して、コンテンツ共有プラットフォームからのコンテンツを要求する。コンテンツ共有プラットフォームは、認可サービスを使用して、ユーザが要求されたコンテンツにアクセスするパーミッションを有するかどうかを決定するためにユーザに関連するユーザアカウントを認可し得る。ユーザアカウントがコンテンツにアクセスすることを認可される場合、コンテンツ共有プラットフォームは、CDNから要求されたコンテンツを取得するためにクライアントデバイスによって使用され得るリソースロケータ(たとえば、ユニフォームリソースロケータ(URL))を生成することができる。リソースロケータにある程度のセキュリティを付加するために、コンテンツ共有プラットフォームは、秘密鍵を使用して暗号学的デジタル署名(本明細書においては「デジタル署名」とも呼ばれる)を生成することができる。デジタル署名は、要求されたコンテンツにアクセスするためのクライアントデバイスの認可および要求されたコンテンツの配信の認可に関連付けられ得る。デジタル署名は、リソースロケータに追加され得る。デジタル署名は、リソースロケータに含まれ、どのデータが提供されるべきかおよびデータがどのように提供されるべきかをCDNに示すために使用される署名パラメータ(たとえば、有効期限パラメータ、ビットレートパラメータ、イベント識別子パラメータなど)に基づき得る。デジタル署名を含むリソースロケータが、クライアントデバイスに送信され得る。要求されたコンテンツを取得するために、クライアントデバイスは、CDNにリソースロケータを送信することができ、CDNは、リソースロケータのデジタル署名を確認することができる。デジタル署名が確認される場合、CDNは、リソースロケータ内で特定されたパラメータに従ってクライアントデバイスにコンテンツを提供することができる(たとえば、低セキュリティパラメータは、サービスを提供するマシン、推奨されるビットレート、代替的なプロトコルが許可されるかどうかを含むことが可能であり、高セキュリティパラメータは、ビデオ識別子、ビデオが要求または提供され得る場所に関する制限、リソースロケータがいつ期限切れになり、無効になるかを含むことが可能である)。デジタル署名が確認されない場合、リソースロケータは、セキュリティを侵害されている可能性があり、CDNは、クライアントデバイスにコンテンツを配信しない。デジタル署名は、エンティティ(entity)がリソースロケータのパラメータを変更することまたはコンテンツを配信するようにCDNを「だます(spoof)」ことができないようにコンテンツ配信にある程度のセキュリティを付加する。
場合によっては、CDNは、正当なデジタル署名を確かに確認し、クライアントデバイスにコンテンツを配信すべき、リソースロケータ内で特定されたサーバを決定する。しかし、クライアントデバイスへの要求されたコンテンツの配信の変更を引き起こす可能性があるイベントが、起こり得る。たとえば、リソースロケータは、CDNのサーバXをクライアントデバイスに要求されたコンテンツを配信するためのサーバとして特定する可能性があるが、サーバXは、余力がなく、クライアントデバイスにコンテンツを配信するために利用され得ない可能性がある。一方、リソースロケータ内で特定されないCDNのサーバYが、余力がある可能性があるが、CDNは、たとえば、CDNが信頼できないまたは安全でないハードウェアリソース上で実行されている可能性があるために、サーバYが要求されたコンテンツを配信することを再認可することを許されない可能性がある。特に、CDNは、サーバYからコンテンツを受信するようにクライアントデバイスをリダイレクトすることができる新しいリソースロケータを生成するための権限を持たない可能性がある。CDNがサーバYから要求されたコンテンツを配信することを再認可するために、コンテンツ共有プラットフォームは、新しいデジタル署名を生成し、サーバYを配信するサーバとして特定する新しいリソースロケータに新しいデジタル署名を追加することを含む再認可動作を実行しなければならない可能性がある。新しいリソースロケータは、クライアントデバイスに送信され、サーバYの要求されたコンテンツにアクセスするためにクライアントデバイスによって使用され得る。新しいデジタル署名を有する新しいリソースロケータを生成するようにコンテンツ共有プラットフォームに要求することは、CDNからのコンテンツの配信に著しいレイテンシー(数百ミリ秒)を加え得る。特に、認証サービスをホストしているコンテンツ共有プラットフォームのサーバは、コンテンツの配信の変更を要求しているCDNサーバから物理的に遠く離れていることがあり得る。また、再認可動作を実行することは、コンテンツ共有プラットフォームの多大な計算、メモリ、および帯域幅リソースを消費する。
本開示の態様は、リソースロケータに含まれる少なくとも2つのデジタル署名を使用することによって上述のおよびその他の課題に対処する。第1の(高セキュリティ)デジタル署名は、クライアントデバイスが要求されたコンテンツにアクセスする認可に関連付けられ得る。第2の(低セキュリティ)デジタル署名は、クライアントデバイスへの要求されたコンテンツの配信の認可に関連付けられ得る。コンテンツ共有プラットフォームは、高セキュリティデジタル署名と低セキュリティデジタル署名との両方を生成することができる。CDNは、クライアントデバイスへの要求されたコンテンツの配信の認可に関連する新しい低セキュリティデジタル署名を生成する権限を有するが、要求されたコンテンツにアクセスするための認可に関連する新しい高セキュリティデジタル署名を生成する権限は持たない。CDNがクライアントデバイスへの要求されたコンテンツの配信の変更を引き起こす可能性があるイベントを特定する場合、CDNは、たとえば、別のCDNサーバから要求されたコンテンツを受信するようにクライアントデバイスをリダイレクトするために、新しい低セキュリティデジタル署名および元の高セキュリティデジタル署名を有する新しいリソースロケータを生成することができる。
実施形態において、ユーザアカウントに関連するクライアントデバイスは、コンテンツ共有プラットフォームにコンテンツの要求を送信することができる。コンテンツ共有プラットフォームは、ユーザアカウントを認可し、2つの異なる秘密鍵を使用して高セキュリティデジタル署名および低セキュリティデジタル署名を生成することができる。高セキュリティデジタル署名および低セキュリティデジタル署名を含むリソースロケータが、コンテンツ共有プラットフォームによってクライアントデバイスに送信され得る。クライアントデバイスは、要求されたコンテンツを取得するためにCDNにリソースロケータを送信することができる。CDNは、高セキュリティデジタル署名および低セキュリティデジタル署名を確認することができ、両方が確認される場合、要求されたコンテンツをクライアントデバイスに送信することができる。クライアントデバイスへの要求されたコンテンツの配信の変更を示すイベントが(要求されたコンテンツがクライアントデバイスに提供される前に)起こる場合、CDNは、低セキュリティパラメータ(たとえば、サービスを提供するマシン、推奨されるビットレート、およびクライアントデバイスと通信し、データを提供するために代替的なプロトコルが許可されるかどうか)のうちの1つまたは複数を変更し、要求されたコンテンツの変更された配信に関連する新しい低セキュリティデジタル署名を生成することができる。CDNは、変更された配信を特定する新しいリソースロケータを生成し、元の高セキュリティデジタル署名および新しい低セキュリティデジタル署名を新しいリソースロケータに含めることができる。そして、新しいリソースロケータが、クライアントデバイスに送信され得る。クライアントデバイスは、新しいリソースロケータを使用して要求されたコンテンツにアクセスすることができる。
一部の実施形態において、高セキュリティデジタル署名は、高セキュリティパラメータに基づいて生成され得る。低セキュリティデジタル署名は、低セキュリティパラメータに基づき得る。高セキュリティパラメータおよび高セキュリティデジタル署名は、コンテンツ共有プラットフォーム(たとえば、コンテンツ共有プラットフォームの認可データサービス)がコンテンツへのアクセスの認可を制御し続けるという意味で「より高いセキュリティ」である。コンテンツへのアクセスを制御することは、コンテンツの配信を制御することに比べて優先順位が「より高い」。たとえば、悪意のあるアクタ(actor)がコンテンツにアクセスするための認可の制御を掌握した場合、コンテンツ共有プラットフォームは、潜在的に取り返しのつかない損害を被り得る。たとえば、悪意のあるアクタがコンテンツの配信の制御を掌握した場合、コンテンツ共有プラットフォームは、一時的に正常に機能しないが、取り返しのつかない損害は負わない可能性がある。低セキュリティパラメータは、コンテンツ共有プラットフォームおよびコンテンツ配布ネットワークがコンテンツを配信するための認可の制御を共有するという意味で、ならびに低セキュリティデジタル署名の悪意のある使用がコンテンツ共有プラットフォームに対する取り返しのつかない損害を引き起こさないという意味で「より低いセキュリティ」である。
実施形態において、高セキュリティデジタル署名と低セキュリティデジタル署名との両方の使用は、コンテンツにアクセスするための認可がコンテンツ共有プラットフォームによって制御されるようにしたまま、CDNが配信の変更を認可することを許可するより高い柔軟性を与える。さらに、CDNが要求されたコンテンツの配信の変更を認可することを可能にすることは、少なくとも、再認可を実行するようにコンテンツ共有プラットフォームに要求することなくCDNが配信の変更を再認可することができるので、要求されたコンテンツをクライアントデバイスに配信する際のレイテンシーを削減する。
上述のように、本開示の実施形態によって対処される技術的な問題は、要求されたコンテンツの配信の変更を再認可するようにコンテンツ共有プラットフォームに要求することによって引き起こされる、コンテンツをクライアントデバイスに配信する際のレイテンシーである。たとえば、要求されたコンテンツの配信の変更を再認可するために、コンテンツ共有プラットフォームは、その後の認可動作を実行し、別のデジタル署名を生成し、新しいデジタル署名を新しいリソースロケータに追加する。コンテンツ共有プラットフォームは、再認可を要求するCDNサーバから遠く離れていることがあり得、そのことは、CDNからのコンテンツの配信に著しいレイテンシー(数百ミリ秒)を加え得る。
また、上述のように、本開示の実施形態によって対処される別の技術的な問題は、コンテンツにアクセスするための認可とコンテンツの配信の認可との両方に関連する単一のデジタル署名を使用してCDNが認可を実行することを許可することによるセキュリティの低下である。たとえば、コンテンツにアクセスするための認可とコンテンツの配信の認可との両方に関して単一のデジタル署名が使用される認可をCDNが実行することを許可することは、コンテンツ共有プラットフォームを取り返しのつかない悪意のある攻撃に晒し得る。
また、上述のように、本開示の実施形態によって対処される別の技術的な問題は、再認可動作の実行の際のコンテンツ共有プラットフォームによる多大な計算、メモリ、および帯域幅リソースの消費である。
上で特定された技術的な問題に対する技術的な解決策は、CDNの第1のサーバによってクライアントデバイスからコンテンツの要求を受信することであって、第1の要求が、クライアントデバイスが要求されたコンテンツを取得することを認可するために認可データサービスによって提供されたリソースロケータを含み、リソースロケータが、要求されたコンテンツをクライアントデバイスに配信するための第1のサーバを特定し、クライアントデバイスが要求されたコンテンツにアクセスする認可に関連する第1のデジタル署名およびクライアントデバイスによるアクセスのための要求されたコンテンツの配信の認可に関連する第2のデジタル署名を含む、受信することと、クライアントデバイスによるアクセスのための要求されたコンテンツの配信の変更を示すイベントの発生を特定することと、イベントの発生を特定することに応じて、クライアントデバイスによるアクセスのための要求されたコンテンツの変更された配信に関連する第3のデジタル署名を生成することと、新しいリソースロケータをクライアントデバイスに提供することであって、新しいリソースロケータが、クライアントデバイスが要求されたコンテンツにアクセスする認可に関連する第1のデジタル署名およびクライアントデバイスによるアクセスのための要求されたコンテンツの変更された配信に関連する第3のデジタル署名を含み、クライアントデバイスが、新しいリソースロケータを使用してコンテンツにアクセスする、提供することとを含む可能性がある。
したがって、技術的な効果は、要求されたコンテンツの配信の変更を再認可するようにコンテンツ共有プラットフォームに要求することによって引き起こされる、コンテンツをクライアントデバイスに配信する際のレイテンシーを削減することを含む可能性がある。
さらなる技術的な効果は、高セキュリティデジタル署名および低セキュリティデジタル署名を有するリソースロケータを提供することによってコンテンツ配信のセキュリティを高めることを含む可能性がある。
さらなる技術的な効果は、要求されたコンテンツの配信の変更のためにCDNが認可を実行することを可能にすることによってコンテンツ共有プラットフォームによる計算、メモリ、および帯域幅リソースの消費を削減することを含む可能性がある。
図1は、本開示の1つの実施形態による例示的なシステムアーキテクチャ100を示す。システムアーキテクチャ100(本明細書においては「システム」とも呼ばれる)は、コンテンツ共有プラットフォーム120(本明細書においては「コンテンツ配布プラットフォーム」とも呼ばれる)、データストア106、ネットワーク104に接続されたクライアントデバイス110A~110Z(本明細書においては全体的に「クライアントデバイス110」と呼ばれる)、およびコンテンツ配布ネットワーク(CDN)101(本明細書においては「コンテンツ配信ネットワーク」とも呼ばれる)を含む。CDN 101は、複数のサーバマシン112A~112Z(本明細書においては「サーバ112A~112Z」とも呼ばれる)を含む可能性がある。
実施形態において、ネットワーク104は、パブリックネットワーク(たとえば、インターネット)、プライベートネットワーク(たとえば、ローカルエリアネットワーク(LAN)もしくは広域ネットワーク(WAN))、有線ネットワーク(たとえば、イーサネットネットワーク)、ワイヤレスネットワーク(たとえば、802.11ネットワークもしくはWi-Fiネットワーク)、セルラネットワーク(たとえば、ロングタームエボリューション(LTE)ネットワーク)、ルータ、ハブ、スイッチ、サーバコンピュータ、および/またはこれらの組合せを含む可能性がある。
実施形態において、データストア106は、(メディアアイテムなどの)コンテンツアイテムおよびコンテンツアイテムをタグ付けし、編成し、インデックス付けするデータ構造を記憶することができる永続的なストレージである。データストア106は、メインメモリ、磁気または光ストレージに基づくディスク、テープまたはハードドライブ、NAS、SANなどの1つまたは複数のストレージデバイスによってホストされる可能性がある。一部の実施形態において、データストア106は、ネットワークアタッチトファイルサーバ(network-attached file server)である可能性があり、一方、その他の実施形態において、データストア106は、コンテンツ共有プラットフォーム120またはネットワーク104を介してコンテンツ共有プラットフォーム120に結合された1つもしくは複数の異なるマシンによってホストされる可能性があるオブジェクト指向データベース、リレーショナルデータベースなどの何らかのその他の種類の永続的なストレージである可能性がある。
クライアントデバイス110A~110Zは、それぞれ、パーソナルコンピュータ(PC)、ラップトップ、モバイル電話、スマートフォン、タブレットコンピュータ、ネットブックコンピュータ、ネットワークに接続されたテレビなどのコンピューティングデバイスを含む可能性がある。一部の実施形態において、クライアントデバイス110Aから110Zは、「ユーザデバイス」とも呼ばれる可能性がある。実施形態において、各クライアントデバイスは、メディアビュワー111を含む。1つの実施形態において、メディアビュワー111は、ユーザが画像、ビデオアイテム、ウェブページ、ドキュメント、オーディオアイテムなどのコンテンツを再生するか、閲覧するか、またはアップロードすることを可能にするアプリケーションである可能性がある。たとえば、メディアビュワー111は、ウェブサーバによって提供されるコンテンツ(たとえば、ハイパーテキストマークアップ言語(HTML)ページなどのウェブページ、デジタルメディアアイテムなど)にアクセスするか、それらのコンテンツを取り出すか、またはナビゲートすることができるウェブブラウザである可能性がある。メディアビュワー111は、ユーザに対してコンテンツ(たとえば、ウェブページ、メディアビュワー)をレンダリングするか、表示するか、または提示する可能性がある。メディアビュワー111は、ウェブページ(たとえば、オンライン売買業者によって販売される製品についての情報を提供する可能性があるウェブページ)に埋め込まれる埋め込みメディアプレイヤー(たとえば、Flash(登録商標)プレイヤーまたはHTML5プレイヤー)を含む可能性もある。別の例において、メディアビュワー111は、ユーザがデジタルメディアアイテム(たとえば、デジタルビデオアイテム、デジタル画像、電子ブックなど)を再生することを可能にするスタンドアロンのアプリケーション(たとえば、モバイルアプリケーションまたはネイティブアプリケーション)である可能性がある。本開示の態様によれば、メディアビュワー111は、ユーザがコンテンツ共有プラットフォーム上で共有するためにコンテンツを記録し、編集し、および/またはアップロードするためのコンテンツ共有プラットフォームアプリケーションである可能性がある。したがって、メディアビュワー111は、コンテンツ共有プラ
ットフォーム120によってクライアントデバイス110A~110Zに提供される可能性がある。たとえば、メディアビュワー111は、コンテンツ共有プラットフォーム120によって提供されるウェブページに埋め込まれる埋め込みメディアプレイヤーである可能性がある。別の例において、メディアビュワー111は、コンテンツ共有プラットフォーム120からダウンロードされるアプリケーションである可能性がある。
1つの実施形態において、コンテンツ共有プラットフォーム120またはサーバマシン112A~112Zは、ユーザにメディアアイテムへのアクセスを提供するかまたはユーザにメディアアイテムを提供するために使用される可能性がある(ラックマウントサーバ、ルータコンピュータ、サーバコンピュータ、パーソナルコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータなどの)1つまたは複数のコンピューティングデバイス、データストア(たとえば、ハードディスク、メモリ、データベース)、ネットワーク、ソフトウェア構成要素、またはハードウェア構成要素である可能性がある。たとえば、コンテンツ共有プラットフォーム120は、ユーザがメディアアイテムを消費するか、アップロードするか、検索するか、賛成する(「いいね!する」)か、不賛成する(「ひどいね!する」)か、またはコメントすることを可能にする可能性がある。コンテンツ共有プラットフォーム120は、ユーザにメディアアイテムへのアクセスを提供するために使用される可能性があるウェブサイト(たとえば、ウェブページ)またはアプリケーションバックエンドソフトウェアを含む可能性もある。
本開示の実施形態において、「ユーザ」は、1人の個人として表される可能性がある。しかし、本開示のその他の実施形態は、「ユーザ」が1組のユーザによって制御されるエンティティおよび/または自動化されたソースであることを包含する。たとえば、ソーシャルネットワーク内のコミュニティとして連合させられた1組の個人ユーザが、「ユーザ」とみなされる可能性がある。別の例においては、自動化された消費者が、コンテンツ共有プラットフォーム120のトピックチャンネル(topic channel)などの自動化された摂取パイプライン(ingestion pipeline)である可能性がある。
コンテンツ共有プラットフォーム120は、複数のチャンネル(たとえば、チャンネルAからZ、そのうちのチャンネルAのみが図1に示されている)を含む可能性がある。チャンネルは、共通のソースから利用可能なデータコンテンツ、または共通の話題、テーマ、もしくは趣旨を有するデータコンテンツであることが可能である。データコンテンツは、ユーザによって選択されたデジタルコンテンツ、ユーザによって利用可能にされたデジタルコンテンツ、ユーザによってアップロードされたデジタルコンテンツ、コンテンツプロバイダによって選択されたデジタルコンテンツ、放送者によって選択されたデジタルコンテンツなどであることが可能である。たとえば、チャンネルXは、ビデオYおよびZを含み得る。チャンネルは、チャンネルに対して行為を実行することができるユーザである所有者に関連付けられ得る。異なる活動が、所有者がデジタルコンテンツをチャンネル上で利用可能にすること、所有者が別のチャンネルに関連するデジタルコンテンツを選択すること(たとえば、いいね!すること)、所有者が別のチャンネルに関連するデジタルコンテンツにコメントすることなどの所有者の行為に基づいてチャンネルに関連付けられ得る。チャンネルに関連する活動は、チャンネルに関する活動のフィードへとまとめられ得る。チャンネルの所有者以外のユーザは、それらのユーザが関心のある1つまたは複数のチャンネルを登録する(subscribe)ことができる。「登録する」という概念は、「いいね!する」、「フォローする」、「友達になる」とも呼ばれる可能性がある。
ユーザがチャンネルを登録すると、ユーザは、チャンネルの活動のフィードからの情報を提示され得る。ユーザが複数のチャンネルを登録する場合、ユーザが登録している各チャンネルに関する活動のフィードが、同時配信される(syndicated)活動のフィードへと組み合わされ得る。同時配信される活動のフィードからの情報は、ユーザに提示され得る。チャンネルは、独自のフィードを有する可能性がある。たとえば、コンテンツ共有プラットフォーム上のチャンネルのホームページにナビゲートするとき、そのチャンネルによって生成されたフィードアイテムが、チャンネルのホームページ上に示される可能性がある。ユーザは、ユーザが登録しているチャンネルのすべてからのコンテンツアイテムの少なくともサブセットを含むフィードである同時配信されるフィードを有する可能性がある。同時配信されるフィードは、ユーザが加入していないチャンネルからのコンテンツアイテムも含む可能性がある。たとえば、コンテンツ共有プラットフォーム120またはその他のソーシャルネットワークは、おすすめのコンテンツアイテムをユーザの同時配信されるフィードに挿入する可能性があり、またはユーザの関連するつながりに関連するコンテンツアイテムを同時配信されるフィードに挿入する可能性がある。
各チャンネルは、1つまたは複数のメディアアイテム121を含む可能性がある。メディアアイテム121の例は、デジタルビデオ、デジタルムービー、デジタル写真、デジタルミュージック、オーディオコンテンツ、メロディー、ウェブサイトコンテンツ、ソーシャルメディアの最新記事、電子ブック(eブック)、電子雑誌、デジタル新聞、デジタルオーディオブック、電子ジャーナル、ウェブブログ、リアルシンプルシンジケーション(RSS: real simple syndication)フィード、電子漫画、ソフトウェアアプリケーションなどを含み得るがこれらに限定されない。一部の実施形態において、メディアアイテム121は、コンテンツまたはコンテンツアイテムとも呼ばれる。
限定ではなく簡潔さおよび簡単さのために、ビデオアイテム、オーディオアイテム、またはゲームアイテムが、本明細書全体を通じてメディアアイテム121の例として使用される。本明細書において使用されるとき、「メディア」、「メディアアイテム」、「オンラインメディアアイテム」、「デジタルメディア」、「デジタルメディアアイテム」、「コンテンツ」、および「コンテンツアイテム」は、エンティティにデジタルメディアアイテムを提示するように構成されたソフトウェア、ファームウェア、またはハードウェアを使用して実行またはロードされることが可能な電子ファイルを含み得る。1つの実施形態において、コンテンツ共有プラットフォーム120は、データストア106を使用してメディアアイテム121を記憶する可能性がある。別の実施形態において、コンテンツ共有プラットフォーム120は、ビデオアイテムまたはフィンガープリントをデータストア106を使用して1つまたは複数のフォーマットの電子ファイルとして記憶する可能性がある。
1つの実施形態において、メディアアイテム121は、ビデオアイテムである。ビデオアイテムは、動いているシーンを表す連続的なビデオフレーム(たとえば、画像フレーム)の組である。たとえば、一連の連続的なビデオフレームが、アニメーションを生成するために継続的に撮影されるかまたは後で再構築される可能性がある。ビデオアイテムは、アナログ、デジタル、2次元、および3次元のビデオを含むがこれらに限定されない様々なフォーマットで提示される可能性がある。さらに、ビデオアイテムは、ムービー、ビデオクリップ、または順に表示されるアニメーションされる画像の任意の組を含む可能性がある。加えて、ビデオアイテムは、ビデオ構成要素およびオーディオ構成要素を含むビデオファイルとして記憶される可能性がある。ビデオ構成要素は、ビデオコーディングフォーマットまたは画像コーディングフォーマット(たとえば、H.264(MPEG-4 AVC)、H.264 MPEG-4 Part 2、グラフィックインターチェンジフォーマット(GIF: Graphic Interchange Format)、WebPなど)のビデオデータを指す可能性がある。オーディオ構成要素は、オーディオコーディングフォーマット(たとえば、アドバンストオーディオコーディング(AAC: advanced audio coding)、MP3など)のオーディオデータを指す可能性がある。GIFが、画像ファイル(たとえば、.gifファイル)として保存されるかまたは一連の画像としてアニメーションされるGIF(たとえば、GIF89aフォーマット)に保存される可能性があることは留意されてよい。H.264が、たとえば、ビデオコンテンツの記録、圧縮、または配布のためのブロック指向の動き補償に基づくビデオ圧縮規格であるビデオコーディングフォーマットである可能性があることは留意されてよい。
一部の実施形態において、メディアアイテムは、クライアントデバイス110A~110Zのうちの1つまたは複数へのライブストリームなどでストリーミングされ得る。「ストリーミングされる」または「ストリーミングする」は、メディアアイテムの受信された部分が、(テクノロジーの制限内で)受信後直ちにまたはメディアコンテンツのその他の部分が配信されている間に、メディアアイテム全体が受信デバイスによって受信されることなしに受信デバイスによって再生される可能性がある、メディアアイテムなどのコンテンツの送信またはブロードキャストを指すことは留意されてよい。「ストリーム」は、ストリーミングされるまたはストリーミングしているメディアアイテムなどのコンテンツを指す可能性がある。ライブストリームメディアアイテムは、メディアアイテムがイベントが行われるときに少なくとも部分的に同時に受信デバイスに送信され、メディアアイテムが丸々すべて利用可能なわけではない、ライブイベントのライブブロードキャストまたは送信を指す可能性がある。
実施形態において、コンテンツ共有プラットフォーム120は、ユーザがメディアアイテムを含むプレイリスト(たとえば、メディアアイテム121を含むプレイリストA~Z)を作成するか、共有するか、閲覧するか、または使用することを可能にする可能性がある。プレイリストは、いかなるユーザインタラクションもなしに特定の順序で次々に再生されるように構成されるメディアアイテムの集合を指す。実施形態においては、コンテンツ共有プラットフォーム120が、ユーザの代わりにプレイリストを保持する可能性がある。実施形態において、コンテンツ共有プラットフォーム120のプレイリストの特徴は、ユーザがそれらのユーザの好きなメディアアイテムを再生するために単一の場所にまとめてグループ化することを可能にする。実施形態において、コンテンツ共有プラットフォーム120は、再生または表示するためにプレイリストのメディアアイテムをクライアントデバイス110に送信する可能性がある。たとえば、メディアビュワー111が、メディアアイテムがプレイリストに列挙されている順序でプレイリストのメディアアイテムを再生するために使用される可能性がある。別の例において、ユーザは、プレイリストのメディアアイテムの間を遷移する可能性がある。さらに別の例において、ユーザは、プレイリストの次のメディアアイテムが再生されるのを待つ可能性があり、またはプレイリスト内の特定のメディアアイテムを再生のために選択する可能性がある。
実施形態において、ユーザは、ユーザアカウントを通じてコンテンツ共有プラットフォーム120にアクセスする可能性がある。ユーザは、クライアントデバイス110上のアプリケーション(たとえば、メディアビュワー111)を介してユーザアカウント情報(たとえば、ユーザ名およびパスワード)を与えることによってユーザアカウントにアクセスする(たとえば、ログインする)可能性がある。一部の実施形態において、ユーザアカウントは、単一のユーザに関連付けられる可能性がある。その他の実施形態において、ユーザアカウントは、共有されたアカウント(たとえば、複数のユーザによって共有される家族アカウント)(本明細書においては「共有されたユーザアカウント」とも呼ばれる)である可能性がある。共有されたアカウントは、それぞれが異なるユーザに関連する複数のユーザプロファイルを有する可能性がある。複数のユーザは、同じアカウント情報または異なるアカウント情報を使用して共有されたアカウントにログインする可能性がある。一部の実施形態において、共有されたアカウントの複数のユーザは、共有されたアカウントの異なるユーザプロファイルに基づいて区別される可能性がある。
一部の実施形態においては、認可データサービス122(本明細書においては「コアデータサービス」または「認可データソース」とも呼ばれる)が、ユーザアカウントが要求されたコンテンツを取得することを許可されるようにユーザアカウントを認可することができる。実施形態において、認可データサービス122は、要求されたコンテンツへのユーザアカウント(たとえば、ユーザアカウントに関連するクライアントデバイス)のアクセスを認可するか、クライアントデバイスへの要求されたコンテンツの配信を認可するか、またはそれら両方を行うことができる。ユーザアカウントが要求されたコンテンツにアクセスする認可は、どのコンテンツがアクセスされるかおよび誰がコンテンツにアクセスすることを許可されるかを認可することを含み得る。コンテンツの配信の認可は、コンテンツがどのように配信されるかを認可することを含み得る。
一部の実施形態において、認可データサービスは、ユーザアカウント情報を使用してユーザアカウントを認可することができる。一部の実施形態においては、クライアントデバイス110またはクライアントデバイス110のアプリケーションに関連するクッキーが、ユーザアカウントを認可するために使用され得る。クッキーは、特定のクライアントデバイスまたはアプリケーション(たとえば、ブラウザ)に固有のいくらかの量のデータを保持する、クライアントデバイス110に記憶されるファイルを指し得る。たとえば、ユーザは、ユーザアカウント情報を使用してコンテンツ共有プラットフォーム120にログインし得る。ユーザアカウントを認可することに応じて、コラボレーションプラットフォーム120は、クッキーを送信することができる。コラボレーションプラットフォーム120へのその後の要求において、クライアントデバイスは、要求にクッキーを含めることができる。クッキーは、ユーザアカウントを認可するために使用され得る。一部の実施形態において、クッキーは、アカウント情報の暗号化されたバージョンを含むキー-値ペアを含み得る。
一部の実施形態において、認可データサービス122は、コンテンツ共有プラットフォーム120の一部である。一部の実施形態において、認可データサービス122は、コンテンツ共有プラットフォーム120の一部ではなく、コンテンツ共有プラットフォーム120とは異なるサーバマシン上にホストされる。その他の実施形態において、認可データサービス122は、サードパーティによって提供される認可サービスなどの外部サービスであることが可能である。
上述のように、コンテンツ配布ネットワーク(CDN)101は、サーバマシン112A~112Z(本明細書においては全体的に「サーバマシン112」または「サーバ112」と呼ばれる)として表される1つまたは複数のノードを含み得る。実施形態において、コンテンツ配布ネットワーク101は、コンテンツの迅速な配信を行うために一緒に働くサーバの地理的に分散されたネットワークを含む。サーバのネットワークは、場合によってはクライアントデバイス110との近さに基づいてコンテンツまたはサービスを配布することによって高い可用性および高い性能を提供するために地理的に分散される。CDNサーバがクライアントデバイス110に近いほど、コンテンツはクライアントデバイス110により迅速に配信され得る。
たとえば、異なるサーバマシン112A~112Zが、特定の国の中でまたは異なる国にまたがって地理的に分散され得る。英国にあるクライアントデバイス110Aを使用するユーザAが、コンテンツ共有プラットフォーム120によってホストされるコンテンツを取得することを要求し得る。要求は、コンテンツ共有プラットフォーム120の認可データサービス122によって受信されることが可能であり、ユーザAに関連するユーザアカウントが、要求されたコンテンツを取得することを認可されることが可能である。認可の後、コンテンツ共有プラットフォーム120は、ユニフォームリソースロケータ(URL)などのリソースロケータをクライアントデバイス110Aに送信することができる。リソースロケータは、コンピュータネットワーク上のリソース(たとえば、コンテンツ)の位置およびリソースを取り出すためのメカニズムを指定する参照を指し得る。リソースロケータは、クライアントデバイス110Aの地理的近傍にあるコンテンツ配布ネットワーク101のサーバマシン112からコンテンツを取得するようにクライアントデバイス110Aに指示し得る。たとえば、リソースロケータは、やはり英国にあるコンテンツ配布ネットワーク101の特定のサーバマシン112から要求されたコンテンツを取得するようにクライアントデバイス110Aに指示し得る。別の例において、米国の西海岸にあるクライアントデバイス110Bを使用する別のユーザBが、ユーザAと同じコンテンツを取得することを要求する。要求は、コンテンツ共有プラットフォーム120の認可データサービス122によって受信されることが可能であり、ユーザBに関連するユーザアカウントが、要求されたコンテンツを取得することを認可されることが可能である。認可の後、コンテンツ共有プラットフォーム120は、リソースロケータをクライアントデバイス110Bに送信することができる。リソースロケータは、クライアントデバイス110Bの地理的近傍にあるコンテンツ配布ネットワーク101のサーバマシン112からコンテンツを取得するようにクライアントデバイス110Bに指示し得る。たとえば、リソースロケータは、米国の西海岸にあるコンテンツ配布ネットワーク101のサーバマシン112から要求されたコンテンツを取得するようにクライアントデバイス110Bに指示し
得る。
一部の実施形態において、コンテンツ配布ネットワーク101は、コンテンツ共有プラットフォーム120の一部である。その他の実施形態において、コンテンツ配布ネットワーク101は、コンテンツ共有プラットフォーム120にCDNサービスを提供するサードパーティプラットフォームである。その他の実施形態においては、コンテンツ配布ネットワーク101の一部が、コンテンツ共有プラットフォーム120によって運用されることが可能であり、コンテンツ配布ネットワーク101の別の部分が、サードパーティによって運用されることが可能である。実施形態において、コンテンツ配布ネットワーク101は、データストア114などのデータストアを含む。データストア114は、データストア106と同様であることが可能である。データストアは、メディアコンテンツなどのコンテンツに関するデータファイル116を含み得る。データストア106は、1つもしくは複数の公開鍵または1つもしくは複数の秘密鍵などの1つまたは複数の暗号鍵117も含み得る。認可モジュール151は、本明細書において説明される本開示の態様を実行することができる。
概して、1つの実施形態においてコンテンツ共有プラットフォーム120またはコンテンツ配布ネットワーク101によって実行されるものとして説明される機能は、適切な場合、その他の実施形態においてクライアントデバイス110Aから110Z上で実行されることも可能である。加えて、特定の構成要素に帰せられる機能が、一緒に動作する異なるまたは複数の構成要素によって実行されることが可能である。コンテンツ共有プラットフォーム120またはコンテンツ配布ネットワーク101は、適切なアプリケーションプログラミングインターフェースを通じてその他のシステムまたはデバイスに提供されるサービスとしてアクセスされることも可能であり、したがって、ウェブサイトにおける使用に限定されない。
本開示の実施形態がコンテンツ共有プラットフォーム、およびコンテンツ共有プラットフォーム上のコンテンツアイテムのソーシャルネットワークの共有を促進することの観点で検討されるが、実施形態は、概して、ユーザの間のつながりを提供する任意の種類のソーシャルネットワークまたはコンテンツ配信プラットフォームにも適用される可能性がある。本開示の実装は、チャンネルの登録をユーザに提供するコンテンツ共有プラットフォームに限定されない。
本明細書において検討されるシステムがユーザについての個人情報を収集するかまたは個人情報を利用する可能性がある状況において、ユーザは、コンテンツ共有プラットフォーム120がユーザ情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルな行為もしくは活動、職業、ユーザの好み、またはユーザの現在の位置についての情報)を収集するかどうかを制御するか、あるいはユーザにより関連性がある可能性があるコンテンツをコンテンツサーバから受信すべきかどうかおよび/またはどのようにして受信すべきかを制御する機会を与えられる可能性がある。さらに、特定のデータが、個人を特定できる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で処理される可能性がある。たとえば、ユーザのアイデンティティ(identity)が、個人を特定できる情報がユーザに関して決定されることが不可能であるか、または位置情報が取得される場合にユーザの地理的位置が(都市、郵便番号、もしくは州のレベルなどに)一般化される可能性があり、したがって、ユーザの特定の位置が決定されることが不可能であるように処理される可能性がある。したがって、ユーザは、どのようにして情報がユーザについて収集され、コンテンツ共有プラットフォーム120によって使用されるのかを制御することができる可能性がある。
図2Aは、本開示の実施形態による、デジタル署名を使用してコンテンツ配布ネットワークによってクライアントデバイスへのコンテンツの配信を変更するための動作の図である。システム200は、図1のシステムアーキテクチャ100と同様の構成要素を含む可能性がある。図1の構成要素が図2Aを説明するのを助けるために使用される可能性があることは、留意されてよい。限定ではなく例示を目的として、システム200に関連する動作は、コンテンツ共有プラットフォーム120の認可データサービス122、コンテンツ配布ネットワーク101のサーバマシン112A、コンテンツ配布ネットワーク101のサーバマシン112B、またはクライアントデバイス110Aによって実行されるものとして説明されるが、そうでないことが説明されない限りそのシステム200の任意の構成要素によって実行される可能性がある。図2Aに関連して説明される動作は、限定ではなく例示のために順に実行されることが示される。動作が任意の順序で実行される可能性があることおよび動作のいずれかが1つまたは複数のその他の動作と同時に実行される可能性があることは、留意されてよい。一部の実装においては、同じ、異なる、より少ない、またはより多くの数の動作が、任意の順序で実行される可能性がある。図2Aは、配信の変更がコンテンツをクライアントデバイス110Aに配信するコンテンツ配布ネットワーク101のサーバを変更する、コンテンツの配信を変更するための動作を示す。
動作202において、クライアントデバイス110Aが、コンテンツ共有プラットフォーム120の認可データサービス122にコンテンツを取得する要求を送信する。一部の実施形態において、コンテンツは、ビデオアイテムを含む。たとえば、クライアントデバイス110Aのユーザが、コンテンツ共有プラットフォーム120によってホストされるビデオアイテムを再生することを要求し得る。一部の実施形態において、ユーザは、ブラウザまたはネイティブアプリケーションなどのアプリケーションを使用してコンテンツ共有プラットフォーム120からのコンテンツを要求し得る。一部の実施形態において、クライアントデバイス110Aから認可データサービス122への要求は、要求されたコンテンツを特定し得る。たとえば、要求は、要求されたコンテンツを特定するコンテンツ識別子を含み得る。一部の実施形態において、クライアントデバイス110Aから認可データサービス122への要求は、受信されるデータのフォーマットを含み得る。たとえば、要求は、クライアントデバイス110Aのメディアビュワー111と互換性があるビデオアイテムのフォーマットを含み得る。一部の実施形態において、要求は、ビデオアイテムなどのコンテンツが再生されることになるメディアビュワー111に関する追加的な情報(たとえば、モデルなど)を含み得る。一部の実施形態において、要求は、コンテンツを取得しようとするクライアントデバイス、ユーザ、またはユーザアカウントの識別子を含み得る。たとえば、ユーザは、コンテンツを取得することを要求するユーザアカウントに関連するユーザ名およびパスワードを特定し得る。別の例において、要求は、クライアントデバイス110Aまたはユーザデバイスのアプリケーションを特定するクッキーを含むことが可能であり、クッキーは、特定のユーザアカウントを特定するために使用されることが可能である。
動作204において、認可データサービス122が、要求を認可し得る。要求を認可するために、認可データサービス122は、クライアントデバイス110A、ユーザ、またはユーザアカウントのうちの少なくとも1つがコンテンツを取得することを許可されると決定する。一部の実施形態において、要求は、コンテンツを取得することを要求するユーザアカウントのアカウント情報を特定し得る。たとえば、アカウント情報は、クッキー内で暗号化され得る。別の例において、アカウント情報は、ユーザによって入力され、要求内で提供され得る。一部の実施形態において、ユーザ名およびパスワードなどのアカウント情報は、アカウント情報(たとえば、受信されたユーザ名およびパスワード)をアカウント情報の記憶されたレコードと比較することによって認可データサービス122により認証され得る。要求のアカウント情報がレコードのアカウント情報と一致する場合、認可データサービス122は、特定のユーザアカウントが認証されると決定し得る。認証されたユーザアカウントが要求されたコンテンツへのアクセス権を有する場合、認可データサービス122は、ユーザアカウントが要求されたコンテンツを取得することを認可し得る。たとえば、レコードは、特定のユーザアカウントに関連するアクセス権を特定し得る。ユーザアカウントが要求されたコンテンツへのアクセス権を有する場合、認可データサービス122は、要求を認可し得る。
一部の実施形態において、認可データサービス122は、要求を認可しない。たとえば、ユーザアカウント情報は、認証され得るが、特定のユーザアカウントは、要求されたコンテンツへのアクセス権を持たない可能性がある。実施形態において、認可データサービス122がコンテンツ取得する要求を認可しない場合、認可データサービス122は、要求されたコンテンツを取得する認可が与えられないことを示すメッセージをクライアントデバイス110Aに送信することができる。一実施形態において、認可データサービス122がコンテンツを取得する要求を認可しない場合、コンテンツ共有プラットフォーム120は、新しいログイン情報または追加的な情報を要求するメッセージをクライアントデバイス110Aに送信することができる。
実施形態において、認可データサービス122がコンテンツを取得する要求を認可する場合、認可データサービス122は、クライアントデバイス110AがCDNから要求されたコンテンツを取得することを認可するためのリソースロケータを生成する。実施形態において、リソースロケータは、要求されたコンテンツをクライアントデバイス110Aに配信すべきであるコンテンツ配布ネットワーク101のサーバを特定し得る。たとえば、リソースロケータは、要求されたコンテンツを取得するためにアクセスされ得る特定のサーバ(たとえば、サーバ112A)を特定するホスト名を含むことができる。一部の実施形態において、認可データサービス122は、高セキュリティ秘密鍵を使用して高セキュリティデジタル署名を生成し、低セキュリティ秘密鍵を使用して低セキュリティデジタル署名を生成することができる。実施形態において、高セキュリティ秘密鍵および低セキュリティ秘密鍵は、異なる秘密鍵である。実施形態において、高セキュリティデジタル署名は、クライアントデバイス110Aが要求されたコンテンツにアクセスする認可に関連付けられる。低セキュリティデジタル署名は、クライアントデバイスへの要求されたコンテンツの配信の認可に関連付けられる。実施形態において、高セキュリティ秘密鍵および低セキュリティ秘密鍵は、コンテンツ共有プラットフォーム120によってアクセスされることが可能であり(「知られており」)、特にコンテンツ共有プラットフォーム120の認可データサービス122によってアクセスされることが可能である。高セキュリティ秘密鍵は、コンテンツ配布ネットワーク101によってアクセスされ得ないが、低セキュリティ秘密鍵は、コンテンツ配布ネットワーク101によってアクセスされ得る。実施形態においては、低セキュリティ秘密鍵のコピーが、コンテンツ共有プラットフォーム120によってコンテンツ配布ネットワーク101に提供される。デジタル署名の生成は、図3Aに関連してさらに説明される。認可データサービス122によって生成されるリソースロケータの例は、図4Aに関連して説明される。
一部の実施形態において、リソースロケータは、低セキュリティパラメータおよび低セキュリティパラメータに関連する値を含み得る。一部の実施形態においては、低セキュリティデジタル署名を生成するために、低セキュリティパラメータに関連する値が、連結され得る。ハッシュアルゴリズムが、ハッシュ値を生成するために連結された文字列に適用され得る。低セキュリティ秘密鍵が、低セキュリティデジタル署名を生成するためにハッシュ値(たとえば、低セキュリティハッシュ値)に適用され得る。
一部の実施形態において、リソースロケータは、高セキュリティパラメータおよび高セキュリティパラメータに関連する値を含み得る。一部の実施形態においては、高セキュリティデジタル署名を生成するために、高セキュリティパラメータに関連する値が、連結され得る。ハッシュアルゴリズムが、ハッシュ値を生成するために連結された文字列に適用され得る。高セキュリティ秘密鍵が、高セキュリティデジタル署名を生成するためにハッシュ値(たとえば、高セキュリティハッシュ値)に適用され得る。低セキュリティパラメータおよび高セキュリティパラメータは、少なくとも図4A~図4Cに関連して説明される。
動作208においては、ユーザアカウントが認可される場合、認可データサービス122が、コンテンツの要求(たとえば、動作202)に対する応答をクライアントデバイス110Aに送信する。一部の実施形態において、応答は、コンテンツをクライアントデバイス110Aに配信すべきであるコンテンツ配布ネットワーク101のサーバ112Aを特定するリソースロケータを含み得る。一部の実施形態において、リソースロケータは、クライアントデバイス110Aが要求されたコンテンツにアクセスする認可に関連付けられる高セキュリティデジタル署名と、クライアントデバイス110Aによるアクセスのための要求されたコンテンツの配信の認可に関連付けられる低セキュリティデジタル署名とをやはり含み得る。一部の実施形態において、応答は、コンテンツ識別子またはアカウント情報のうちの1つまたは複数を含み得る。一部の実施形態において、リソースロケータは、ハイパーテキスト転送プロトコル(HTTP)応答に含まれ得る。
代替的な実施形態においては、動作208で、ユーザアカウントが認可される場合、認可データサービス122が、コンテンツの要求(たとえば、動作202)に対する応答をクライアントデバイス110Aにやはり送信するが、応答は、コンテンツをクライアントデバイス110Aに配信すべきであるコンテンツ配布ネットワーク101のサーバ112Aを特定しない。実施形態において、応答は、高セキュリティデジタル署名および低セキュリティデジタル署名を確かに含む。一部の実施形態において、応答は、マニフェストサーバを特定する。実施形態において、マニフェストサーバは、コンテンツ配布ネットワーク101またはコンテンツ共有プラットフォーム120の一部である。クライアントデバイス110Aは、マニフェストサーバを特定する応答を受信し、コンテンツの別の要求をマニフェストサーバに送信する。実施形態において、マニフェストサーバへのコンテンツの要求は、コンテンツ識別子を含み得る。実施形態において、マニフェストサーバへのコンテンツの要求は、高セキュリティデジタル署名および低セキュリティデジタル署名を含み得る。実施形態において、マニフェストサーバは、高セキュリティデジタル署名または低セキュリティデジタル署名のうちの1つまたは複数を確認することができる。高セキュリティデジタル署名および低セキュリティデジタル署名が確認される場合、マニフェストサーバは、リソースロケータ(たとえば、マニフェストファイル)を生成することができる。
実施形態において、マニフェストサーバによって生成されるリソースロケータは、動作208に関連して上で説明されたリソースロケータと同じまたは同様であることが可能である。たとえば、マニフェストサーバによって生成されるリソースロケータは、コンテンツをクライアントデバイス110Aに配信すべきであるコンテンツ配布ネットワーク101のサーバ112Aを特定し得る。一部の実施形態において、リソースロケータは、クライアントデバイス110Aが要求されたコンテンツにアクセスする認可に関連付けられる高セキュリティデジタル署名と、クライアントデバイス110Aによるアクセスのための要求されたコンテンツの配信の認可に関連付けられる低セキュリティデジタル署名とをやはり含み得る。リソースを生成する際、マニフェストサーバは、高セキュリティデジタル署名、低セキュリティデジタル署名、ならびに任意のその他の関連するデータ(たとえば、高セキュリティパラメータおよび値ならびに低セキュリティパラメータおよび値)のコピーを使用し、情報のコピーをリソースロケータに含めることができる。マニフェストサーバによって生成されたリソースロケータは、クライアントデバイス110Aに送信され得る。クライアントデバイス110Aは、リソースロケータをCDNのサーバ112AなどのCDNに送信する(たとえば、動作210)。
動作210において、クライアントデバイス110Aが、認可データサービス122から取得されたリソースロケータを使用してコンテンツを要求する。たとえば、クライアントデバイス110Aは、リソースロケータを使用してHTTP要求を送信することができる。実施形態において、要求は、コンテンツ配布ネットワーク101のサーバ112AなどのCDNに送信され得る。実施形態において、コンテンツ配布ネットワーク101のサーバ112Aは、クライアントデバイス110Aからの要求を受信する。要求は、上述のようにリソースロケータを含む。一部の実施形態において、サーバ112Aは、ダウンしていることがあり得、要求は、コンテンツ配布ネットワーク101の別のサーバによって受信される。たとえば、サーバ112Aではなく別のサーバが、本明細書において説明される動作を実行し得る。
動作212において、コンテンツ配布ネットワーク101のサーバ112Aが、高セキュリティ公開鍵を使用して高セキュリティデジタル署名を確認し、低セキュリティ公開鍵を使用して低セキュリティデジタル署名を確認する。実施形態において、高セキュリティ公開鍵および低セキュリティ公開鍵は、異なる公開鍵である。デジタル署名の確認は、図3Bに関連してさらに説明される。一部の実施形態においては、コンテンツ配布ネットワーク101のサーバ112Aが、高セキュリティデジタル署名および低セキュリティデジタル署名を確認する。その他の実施形態においては、コンテンツ配布ネットワーク101の別のサーバ(たとえば、確認サーバ)が、高セキュリティデジタル署名および低セキュリティデジタル署名を確認し得る。
動作214においては、高セキュリティデジタル署名および低セキュリティデジタル署名が確認される場合、コンテンツ配布ネットワーク101のサーバ112Aが、コンテンツをクライアントデバイス110Aに配信することができる。高セキュリティデジタル署名および低セキュリティデジタル署名が確認されない場合、サーバ112Aは、コンテンツをクライアントデバイス110Aに配信しない。一部の実施形態において、サーバ112Aは、たとえ高セキュリティデジタル署名および低セキュリティデジタル署名が確認されたとしてもコンテンツをクライアントデバイス110Aに配信することができない。たとえば、サーバ112Aは、クライアントデバイス110Aへのコンテンツの配信を開始する前に、(動作216において説明されるように)要求されたコンテンツの配信の変更を示すイベントの発生を特定し得る。
動作216において、コンテンツ配布ネットワーク101(たとえば、サーバ112A)が、クライアントデバイスによるアクセスのための要求されたコンテンツの配信の変更を示すイベントの発生を特定する。一部の実施形態において、配信の変更は、コンテンツをクライアントデバイス110Aに配信するコンテンツ配布ネットワーク101のサーバを変更する。コンテンツをクライアントデバイス110Aに配信するコンテンツ配布ネットワーク101のサーバを変更する配信の変更は、図2Aに関連して説明される。一部の実施形態において、配信の変更は、コンテンツ配布ネットワーク101の同じサーバがコンテンツをクライアントデバイス110Aにどのようにして配信するかを変更する。同じサーバがコンテンツをクライアントデバイス110Aにどのようにして配信するかを変更する配信の変更は、図2Bに関連して説明される。
一部の実施形態において、クライアントデバイス110Aによるアクセスのための要求されたコンテンツの配信の変更を示すイベントの発生を特定することは、別のサーバ、コンテンツ配布ネットワーク101のサーバ112Bがコンテンツを110Aに配信すべきであると決定することを含む。一部の実施形態においては、コンテンツ配布ネットワーク101のサーバ112Aが、サーバ112Aがコンテンツをクライアントデバイス110Aに配信するために利用不可能である(たとえば、コンテンツの要求を処理することができない)と判定する。一部の実施形態において、コンテンツ配布ネットワーク101の別のサーバが、サーバ112Aがコンテンツをクライアントデバイス110Aに配信するために利用不可能であると判定する。サーバ112Aがコンテンツをクライアントデバイス110Aに配信するために利用不可能であると判定することに応じて、コンテンツ配布ネットワーク101(たとえば、サーバ112Aまたは別のサーバ)は、コンテンツ配布ネットワーク101のサーバ112Bなどの別のサーバがコンテンツをクライアントデバイス110Aに配信すべきであると決定する。
実施形態において、サーバ112Aは、諸々の理由でコンテンツをクライアントデバイス110Aに配信するために利用不可能である(たとえば、コンテンツの要求を処理することができない)可能性がある。たとえば、サーバ112Aは、サーバが過負荷状態に近いかまたは過負荷状態にあると判定する可能性がある。過負荷状態は、サーバ112Aの1つまたは複数のリソースが余力がほぼまたはまったくないことを示し得る。過負荷状態は、現在の計算リソースの使用、現在の帯域幅の使用、または処理されるコンテンツの要求の現在の数のうちの1つまたは複数が閾値を超えるかどうかを判定することを含む1つまたは複数の要因によって決定され得る。サーバ112Aが過負荷状態に近いかまたは過負荷状態であるとサーバ112Aが判定する場合、コンテンツ配布ネットワーク101(たとえば、サーバ112A)は、クライアントをコンテンツ配布ネットワーク101のその他のサーバにリダイレクトすることができる。別の例において、コンテンツ配布ネットワーク101(たとえば、サーバ112A)は、特定のサーバ112Aからコンテンツを提供することが効率的でないと判定する可能性がある。たとえば、コンテンツ配布ネットワーク101(たとえば、サーバ112A)は、コンテンツが特定のサーバ112Aにおいて十分に人気がなく、コンテンツがより大きな余力のあるコンテンツ配布ネットワーク101の別のサーバによって提供されるとするとより効率的であると判定する可能性がある。コンテンツ配布ネットワーク101(たとえば、サーバ112A)が特定のサーバ112Aからコンテンツを提供することが効率的でないと判定する場合、サーバは、要求されたコンテンツの配信のためにクライアントデバイス110Aをコンテンツ配布ネットワーク101のその他のサーバにリダイレクトすることができる。
動作218においては、イベントの発生を特定することに応じて、コンテンツ配布ネットワーク101(たとえば、サーバ112A)が、クライアントデバイス110Aによるアクセスのための要求されたコンテンツの変更された配信に関連する新しい低セキュリティデジタル署名を生成する。一部の実施形態において、新しい低セキュリティデジタル署名は、秘密鍵を使用して生成される。一部の実施形態において、低セキュリティデジタル署名を生成するためにコンテンツ配布ネットワーク101によって使用される秘密鍵は、最初の低セキュリティデジタル署名を生成する(たとえば、動作206)ために認可データサービス122が使用した低セキュリティ秘密鍵のコピーである。
一部の実施形態においては、要求されたコンテンツの変更された配信に関連する新しい低セキュリティデジタル署名を生成するために、コンテンツ配布ネットワーク101が、低セキュリティパラメータに関連する値を調整する。新しい低セキュリティデジタル署名は、低セキュリティパラメータに関連する調整された値および低セキュリティ秘密鍵を使用して生成される。
動作220において、コンテンツ配布ネットワーク101(たとえば、サーバ112A)が、新しいリソースロケータを生成する。上述のように、一部の実施形態において、配信の変更は、コンテンツをクライアントデバイス110Aに配信するコンテンツ配布ネットワーク101のサーバを変更する。一部の実施形態において、新しいリソースロケータは、コンテンツをクライアントデバイス110Aに配信すべきであるコンテンツ配布ネットワーク101の別のサーバ(たとえば、サーバ112B)を特定する。実施形態において、新しいリソースロケータは、認可データサービス122によって最初に生成された高セキュリティデジタル署名と、コンテンツ配布ネットワーク101によって生成された新しい低セキュリティデジタル署名とのコピーを含み得る。コンテンツをクライアントデバイス110Aに配信するコンテンツ配布ネットワーク101のサーバを変更する配信の変更を決定することに応じて生成される新しいリソースロケータの例は、図4Bに関連してさらに説明される。
動作222において、コンテンツ配布ネットワーク101(たとえば、サーバ112A)が、新しいリソースロケータをクライアントデバイス110Aに提供する。一部の実施形態において、新しいリソースロケータは、クライアントデバイス110Aが要求されたコンテンツにアクセスする認可に関連する高セキュリティデジタル署名と、クライアントデバイス110Aによるアクセスのための要求されたコンテンツの変更された配信に関連する新しい低セキュリティデジタル署名とを含む。一部の実施形態において、新しいリソースロケータは、HTTPリダイレクト要求を使用して送信され得る。一部の実施形態においては、マニフェストサーバが、動作208に関連して説明されたように、動作222において同様にして使用され得ることは、留意され得る。
動作224において、クライアントデバイス110Aが、コンテンツ配布ネットワーク101から取得された新しいリソースロケータを使用してコンテンツにアクセスすることを要求する。上述のように、要求は、コンテンツをクライアントデバイス110Aに配信すべきである別のサーバ、コンテンツ配布ネットワーク101のサーバ112Bを特定する。実施形態において、クライアントデバイス110Aは、新しいリソースロケータを含むHTTP要求を送信することができる。要求は、コンテンツ配布ネットワーク101のサーバ112Bに送信され得る。実施形態において、コンテンツ配布ネットワーク101(たとえば、サーバ112B)は、クライアントデバイス110Aからの要求を受信する。要求は、本明細書において説明されたように新しいリソースロケータを含む。
動作226において、コンテンツ配布ネットワーク101(たとえば、サーバ112B)が、高セキュリティ公開鍵を使用して高セキュリティデジタル署名を確認し、低セキュリティ公開鍵を使用して新しい低セキュリティデジタル署名を確認する。デジタル署名の確認は、図3Bに関連してさらに説明される。一部の実施形態においては、コンテンツ配布ネットワーク101のサーバ112Bが、高セキュリティデジタル署名または低セキュリティデジタル署名のうちの1つまたは複数を確認する。一部の実施形態においては、コンテンツ配布ネットワーク101の別のサーバ(たとえば、確認サーバ)が、高セキュリティデジタル署名または低セキュリティデジタル署名のうちの1つまたは複数を確認し得る。
動作228においては、高セキュリティデジタル署名および低セキュリティデジタル署名が確認される場合、コンテンツ配布ネットワーク101のサーバ112Bが、コンテンツをクライアントデバイス110Aに配信することができる。高セキュリティデジタル署名および低セキュリティデジタル署名が確認されない場合、サーバ112Bは、コンテンツをクライアントデバイス110Aに配信しない。
一部の実施形態においては、動作のいくらか以上が繰り返され得る。たとえば、サーバ112Bが新しいリソースロケータを使用するコンテンツの要求を受信した後、コンテンツ配布ネットワーク101は、要求されたコンテンツの配信の別の変更を示すイベントの発生を特定する可能性がある。コンテンツ配布ネットワーク101は、別の低セキュリティデジタル署名を生成し、さらに別のリソースロケータを生成することができ、以下同様である。本明細書において説明された1つまたは複数の動作が、繰り返され得る。
図2Bは、本開示の実施形態による、デジタル署名を使用してコンテンツ配布ネットワークによってクライアントデバイスへのコンテンツの配信を変更するための動作の図である。システム250は、図1および図2Aのシステムアーキテクチャ100と同様の構成要素を含む可能性がある。図1および図2Aの構成要素が図2Bを説明するのを助けるために使用される可能性があることは、留意されてよい。限定ではなく例示を目的として、コンテンツ共有プラットフォーム120の認可データサービス122、コンテンツ配布ネットワーク101のサーバマシン112A、またはクライアントデバイス110Aによって実行されるものとして説明されるシステム250に関連する動作は、そうでないことが説明されない限りそのシステム250の任意の構成要素によって実行される可能性がある。図2Bに関連して説明される動作は、限定ではなく例示のために順に実行されることが示される。動作が任意の順序で実行される可能性があることおよび動作のいずれかが1つまたは複数のその他の動作と同時に実行される可能性があることは、留意されてよい。一部の実装においては、同じ、異なる、より少ない、またはより多くの数の動作が、任意の順序で実行される可能性がある。
図2Bは、配信の変更が同じサーバがコンテンツをクライアントデバイス110Aにどのようにして配信するかを変更する、コンテンツの配信を変更するための動作を示す。図2Bに示される動作の一部が図2Aと同じであることは、留意され得る。明瞭にするために、図2Aと同じである図2Bの動作は、再度説明されず、図2Bの同じ動作である図2Aの動作の説明が、図2Bの対応する動作を説明するために使用され得る。図2Aと異なる図2Bに関連する動作は、番号を付け直されており、図2Bに関連してさらに説明される。
動作252において、コンテンツ配布ネットワーク101(たとえば、サーバ112A)が、クライアントデバイスによるアクセスのための要求されたコンテンツの配信の変更を示すイベントの発生を特定する。一部の実施形態において、配信の変更は、コンテンツ配布ネットワーク101の同じサーバ112Aがコンテンツをクライアントデバイス110Aにどのようにして配信するかを変更する。
実施形態において、コンテンツ配布ネットワーク101は、サーバ112Aによる要求されたコンテンツの配信が変更されるべきであると決定する。一部の実施形態において、サーバ112Aによる要求されたコンテンツの配信の変更を決定することは、コンテンツがクライアントデバイス110Aに配信されるべきビットレートの変更をコンテンツ配布ネットワーク101(たとえば、サーバ112A)によって決定することを含む。たとえば、コンテンツ配布ネットワーク101は、クライアントデバイス110Aによってアクセスされるネットワーク接続についての情報を受信し得る。コンテンツ配布ネットワーク101は、クライアントデバイス110Aが閾値のビットレートを超える特に高速なネットワーク接続上にあると判定し得る。ネットワーク接続が閾値のビットレートを超える場合、コンテンツ配布ネットワーク101は、コンテンツがクライアントデバイス110Aに配信されるビットレートを上げることができる。ネットワーク接続が閾値のビットレート未満である場合、コンテンツ配布ネットワーク101は、配信ビットレートを同じままに保つかまたは配信ビットレートを下げるかのどちらかが可能である。ビットレートがリソースロケータの一部である低セキュリティパラメータのうちの1つであることが可能であることは、留意され得る。コンテンツ配布ネットワーク101が低セキュリティパラメータのうちの1つまたは複数を変更し得る(しかし、高セキュリティパラメータは変更し得ない)ことは、さらに留意され得る。ビットレートを変更することは、限定ではなく例示を目的として与えられており、コンテンツがクライアントデバイス110Aにどのようにして配信されるかの変更の例を示す。コンテンツがクライアントデバイス110Aにどのようにして配信されるかの変更のその他の例は、解像度の変更、フォーマットの変更などを含むがこれらに限定されない。
動作254においては、イベントの発生を特定することに応じて、コンテンツ配布ネットワーク101(たとえば、サーバ112A)が、クライアントデバイス110Aによるアクセスのための要求されたコンテンツの変更された配信に関連する新しい低セキュリティデジタル署名を生成する。一部の実施形態において、新しい低セキュリティデジタル署名は、秘密鍵を使用して生成される。一部の実施形態において、低セキュリティデジタル署名を生成するためにコンテンツ配布ネットワーク101によって使用される秘密鍵は、最初の低セキュリティデジタル署名を生成する(たとえば、動作206)ために認可データサービス122が使用した低セキュリティ秘密鍵のコピーである。
一部の実施形態においては、要求されたコンテンツの変更された配信に関連する新しい低セキュリティデジタル署名を生成するために、コンテンツ配布ネットワーク101が、低セキュリティパラメータに関連する値を調整する。新しい低セキュリティデジタル署名は、低セキュリティパラメータに関連する調整された値および低セキュリティ秘密鍵を使用して生成される。一部の実施形態においては、コンテンツがクライアントデバイス110Aに配信されるべきビットレートの変更を決定することに応じて、コンテンツ配布ネットワーク101が、動作210において受信されたリソースロケータの低セキュリティパラメータのうちのビットレートパラメータを調整する。
動作256において、コンテンツ配布ネットワーク101(たとえば、サーバ112A)が、新しいリソースロケータを生成する。一部の実施形態において、新しいリソースロケータは、コンテンツをクライアントデバイス110Aに配信すべきであるコンテンツ配布ネットワーク101の同じサーバ(たとえば、サーバ112A)を特定する。実施形態において、新しいリソースロケータは、認可データサービス122によって最初に生成された高セキュリティデジタル署名と、コンテンツ配布ネットワーク101によって生成された新しい低セキュリティデジタル署名とのコピーを含み得る。コンテンツ配布ネットワーク101の同じサーバがコンテンツをクライアントデバイス110Aにどのようにして配信するかを変更する配信の変更を決定することに応じて生成される新しいリソースロケータの例は、図4Cに関連してさらに説明される。
動作258において、コンテンツ配布ネットワーク101(たとえば、サーバ112A)が、新しいリソースロケータをクライアントデバイス110Aに提供する。一部の実施形態において、新しいリソースロケータは、クライアントデバイス110Aが要求されたコンテンツにアクセスする認可に関連する高セキュリティデジタル署名と、クライアントデバイス110Aによるアクセスのための要求されたコンテンツの変更された配信に関連する新しい低セキュリティデジタル署名とを含む。一部の実施形態において、新しいリソースロケータは、HTTP自己リダイレクト(self-redirect)要求を使用して送信され得る。一部の実施形態においては、マニフェストサーバが、動作208に関連して説明されたように、動作258において同様にして使用され得る。
動作260において、クライアントデバイス110Aが、コンテンツ配布ネットワーク101から取得された新しいリソースロケータを使用してコンテンツにアクセスすることを要求する。上述のように、要求は、コンテンツをクライアントデバイス110Aに配信すべきである同じサーバ、コンテンツ配布ネットワーク101のサーバ112Aを特定する。実施形態において、クライアントデバイス110Aは、新しいリソースロケータを含むHTTP要求を送信することができる。要求は、コンテンツ配布ネットワーク101のサーバ112Aに送信され得る。実施形態において、コンテンツ配布ネットワーク101のサーバ112Aは、クライアントデバイス110Aからの要求を受信する。要求は、本明細書において説明されたように新しいリソースロケータを含む。
動作262において、コンテンツ配布ネットワーク101(たとえば、サーバ112A)が、高セキュリティ公開鍵を使用して高セキュリティデジタル署名を確認し、低セキュリティ公開鍵を使用して新しい低セキュリティデジタル署名を確認する。デジタル署名の確認は、図3Bに関連してさらに説明される。一部の実施形態においては、コンテンツ配布ネットワーク101のサーバ112Aが、高セキュリティデジタル署名または低セキュリティデジタル署名のうちの1つまたは複数を確認する。一部の実施形態においては、コンテンツ配布ネットワーク101の別のサーバ(たとえば、確認サーバ)が、高セキュリティデジタル署名または低セキュリティデジタル署名のうちの1つまたは複数を確認し得る。
動作264においては、高セキュリティデジタル署名および低セキュリティデジタル署名が確認される場合、コンテンツ配布ネットワーク101のサーバ112Aが、コンテンツをクライアントデバイス110Aに配信することができる。高セキュリティデジタル署名および低セキュリティデジタル署名が確認されない場合、サーバ112Aは、コンテンツをクライアントデバイス110Aに配信しない。
一部の実施形態においては、動作のいくらか以上が繰り返され得る。たとえば、サーバ112Aが新しいリソースロケータを使用するコンテンツの要求を受信した後、コンテンツ配布ネットワーク101は、要求されたコンテンツの配信の別の変更を示すイベントの発生を特定する可能性がある。コンテンツ配布ネットワーク101は、別の低セキュリティデジタル署名を生成し、さらに別のリソースロケータを生成することができ、以下同様である。
一部の実施形態において、配信の変更がコンテンツをクライアントデバイス110Aに配信するコンテンツ配布ネットワーク101のサーバと、コンテンツ配布ネットワーク101の異なるサーバがコンテンツをクライアントデバイス110Aにどのようにして配信するかとを変更し得ることは、留意され得る。新しい低セキュリティデジタル署名が、低セキュリティパラメータ(たとえば、ビットレートパラメータ)の値の変更に基づいて生成され得る。新しいリソースロケータは、コンテンツ配布ネットワーク101の新しいサーバ(たとえば、サーバ112B)と、コンテンツの配信がどのように変更されるべきか(たとえば、上げられたビットレート)を示す低セキュリティパラメータの値とを特定し得る。新しいリソースロケータの高セキュリティデジタル署名および低セキュリティデジタル署名の確認は、本明細書において説明されたのと同様であることが可能である。
図3Aは、本開示の実施形態によるデジタル署名の生成を示す図である。ダイヤグラム300は、テキスト302を示す。テキスト302は、テキスト文字列であることが可能である。一部の実施形態において、テキスト文字列は、低セキュリティパラメータに関連する連結された値を含み得る。一部の実施形態において、テキスト文字列は、高セキュリティパラメータに関連する連結された値を含み得る。一部の実施形態においては、テキスト文字列が低セキュリティパラメータまたは高セキュリティパラメータの一連の連結されたハッシュされた値であるように、低セキュリティパラメータに関連する値または高セキュリティパラメータに関連する値が、連結前に(たとえば、ハッシュアルゴリズムを適用して)ハッシュされ得る。低セキュリティデジタル署名および高セキュリティデジタル署名が図3Aに関連して説明されるのと同様にして生成され得ることは、留意され得る。
動作304において、ハッシュアルゴリズムが、ハッシュ値306を生成するためにテキスト302に適用される。楕円曲線デジタル署名(ECDS)アルゴリズムなどの任意の数のハッシュアルゴリズムが、使用され得る。
動作308において、ハッシュ値306が、デジタル署名310を生成するために秘密鍵を使用して暗号化され得る。秘密鍵は、何らかのコードまたはランダムに生成された数を含み得る。秘密鍵は、公開鍵とペアにされる。公開鍵は、秘密鍵から導出され得る。秘密鍵(または公開鍵)は、テキストの暗号化または復号を行うためのアルゴリズム(たとえば、暗号)によって使用され得る。公開鍵は、大勢が利用可能であり、オンラインのディレクトリ上で利用可能にされる可能性がある。秘密鍵は、暗号化されるコンテンツの発信者および秘密鍵が共有されるエンティティが利用可能であるようにされる。
実施形態において、リソースロケータ312は、デジタル署名310と、デジタル署名310を生成するために使用されたテキスト302とを含み得る。実施形態において、リソースロケータは、高セキュリティデジタル署名および低セキュリティデジタル署名などの2つのデジタル署名を含み得る。単一のデジタル署名310の生成が、限定ではなく例示を目的として示される。図3Aに関連して説明される同様の動作が、高セキュリティデジタル署名、低セキュリティデジタル署名、またはそれら両方を生成するために使用され得る。リソースロケータは、図4A~図4Cに関連してさらに説明される。
図3Bは、本開示の実施形態によるデジタル署名の確認を示す図である。デジタル署名を確認することは、リソースロケータの内容などのデジタルデータの真正性を検証するための動作である。デジタル署名を確認することは、デジタルデータが知られている送信者によって生成されたこと(認証)、送信者がデジタルデータを送信したことを否定できないこと(否認防止)、およびデジタルデータが運ばれている途中で変更されなかったこと(完全性)を受信者に保証することができる。低セキュリティデジタル署名および高セキュリティデジタル署名が図3Bに説明されるのと同様にして確認され得ることは、留意され得る。
ダイヤグラム330は、リソースロケータ312を示す。リソースロケータは、テキスト302およびデジタル署名310を含む。動作304において、ハッシュアルゴリズムが、ハッシュ値336を生成するためにテキスト302に適用される。ハッシュアルゴリズムは、図3Aに示されたデジタル署名を生成するために使用される同じハッシュアルゴリズムであることが可能である。
動作332において、デジタル署名310が、ハッシュ値334を生成するために公開鍵を使用して復号される。公開鍵は、図3Aに示されたように秘密鍵とペアにされ得る。
動作338において、ハッシュ値336およびハッシュ値334が、コンパレータによって比較され得る。ハッシュ値336およびハッシュ値334は、一致するかまたは一致しないかのどちらかである。動作340において、ハッシュ値336およびハッシュ値334が一致する場合、デジタル署名310が確認される。ハッシュ値336およびハッシュ値334が一致しない場合、デジタル署名310は確認されない。単一のデジタル署名310の確認が、限定ではなく例示を目的として示される。図3Bに関連して説明されたのと同様の動作が、高セキュリティデジタル署名、低セキュリティデジタル署名、またはそれら両方を確認するために使用され得る。
図4A~図4Cは、本開示の実施形態によるリソースロケータを示す図を示す。リソースロケータ400は、認可データサービス122によって生成され得るロケータを示す。図4Aのリソースロケータ400は、1つまたは複数の部分を含み得る。一部の実施形態において、リソースロケータ400は、部分402を含む。部分402は、リソースロケータ400のプロトコルを特定し得る。この例において、リソースロケータ400のプロトコルは、ハイパーテキスト転送プロトコルセキュア(HTTPS)である。
実施形態において、リソースロケータ400は、ドメイン名を示す部分404を含む。一部の実施形態において、ドメイン名は、コンテンツを要求元デバイス(たとえば、クライアントデバイス110A)に配信すべきである特定のサーバ(たとえば、コンテンツ配布ネットワーク101のサーバ112A)を特定し得る。この例において、部分404に示されるデバイスは、コンテンツ配布ネットワーク101のサーバ112Aである。
一部の実施形態において、リソースロケータ400は、高セキュリティパラメータおよび高セキュリティパラメータの値を特定する部分406を含む。この例において、部分406は、値1に関連付けられる高セキュリティパラメータA、値2に関連付けられる高セキュリティパラメータBなどを示す。一部の実施形態において、部分406は、低セキュリティパラメータおよび低セキュリティパラメータの値を特定する。この例において、部分406は、値4に関連付けられる低セキュリティパラメータX、値5に関連付けられる低セキュリティパラメータYなどを示す。一部の実施形態において、高セキュリティパラメータ、低セキュリティパラメータ、またはそれら両方に関連する値は、パラメータに関連するハッシュされていない値にハッシュ関数を適用することによって生成されたハッシュされた値である。一部の実施形態において、高セキュリティパラメータは、低セキュリティパラメータと異なる。
一部の実施形態において、リソースロケータ400は、リソースロケータ400内で特定された高セキュリティデジタル署名の生成にどの高セキュリティパラメータが含められたかを特定する部分408を含む。一部の実施形態において、部分408は、高セキュリティデジタル署名の生成に使用された高セキュリティパラメータのシーケンスを特定する。この例においては、高セキュリティパラメータA、Bなどが、高セキュリティデジタル署名を生成するために使用された。シーケンスは、高セキュリティパラメータA、その後に続く高セキュリティパラメータBなどである。一部の例においては、高セキュリティパラメータA、Bなどを使用して高セキュリティデジタル署名を生成するために、高セキュリティパラメータに関連する値が、連結される。高セキュリティパラメータA、Bなどの値は、部分408の高セキュリティパラメータによって指定された順序で連結され得る。たとえば、値Aが、値Bに連結されることが可能であり、それが、部分408において特定された高セキュリティパラメータのシーケンス内の次の高セキュリティパラメータに関連する別の値と連結されることが可能である。
一部の実施形態において、リソースロケータ400は、高セキュリティデジタル署名である部分410を含む。この例において、高セキュリティデジタル署名は、リソースロケータ400の部分406および部分408によって特定された高セキュリティパラメータに基づいて生成された高セキュリティデジタル署名#1として示される。一部の実施形態においては、コンテンツ共有プラットフォーム120が、高セキュリティデジタル署名を生成する。
一部の実施形態において、リソースロケータ400は、低セキュリティデジタル署名の生成にどの低セキュリティパラメータが含められたかを特定する部分412を含む。一部の実施形態において、部分412は、低セキュリティデジタル署名の生成に使用された低セキュリティパラメータのシーケンスを特定する。この例においては、低セキュリティパラメータX、Yなどが、低セキュリティデジタル署名を生成するために使用された。シーケンスは、低セキュリティパラメータX、その後に続く低セキュリティパラメータYなどである。低セキュリティデジタル署名の生成は、高セキュリティデジタル署名の生成に関連して上で説明されたのと同様である。
一部の実施形態において、リソースロケータ400は、低セキュリティデジタル署名である部分414を含む。この例において、低セキュリティデジタル署名は、リソースロケータ400の部分406および部分412によって特定された低セキュリティパラメータに基づいて生成された低セキュリティデジタル署名#2として示される。リソースロケータ400の低セキュリティデジタル署名は、コンテンツ共有プラットフォーム120によって生成された。
図4Bのリソースロケータ430は、1つまたは複数の部分を含み得る。一部の実施形態において、リソースロケータ430は、コンテンツ配布ネットワーク101によって生成されるリソースロケータを示し得る。一部の実施形態において、リソースロケータ430は、クライアントデバイス110Aへのコンテンツの配信をコンテンツ配布ネットワーク101のサーバ112Aからサーバ112Bに変更するためにコンテンツ配布ネットワーク101が生成するリソースロケータを表し得る。リソースロケータ430の部分の多くの内容がリソースロケータ400と同様であることは、留意され得る。リソースロケータ400と同じである内容を有するリソースロケータ430の部分が同じ識別番号を有し、図4Aに関連して上で説明されていることは、さらに留意され得る。明瞭にする目的で、新しい内容を有するリソースロケータ430の部分が、図4Bに関連して説明される。一部の実施形態において、コンテンツ配布ネットワーク101は、新しいリソースロケータ430を生成するためにリソースロケータ400の部分のうちのいくつかの内容の一部を変更する。変更された内容は、明瞭にするために太字にされる。
実施形態において、リソースロケータ430は、リソースロケータ400の部分404と同様である部分434を含む。部分434は、リソースロケータ430のドメイン名を示す。一部の実施形態において、ドメイン名は、コンテンツをクライアントデバイス110Aなどの要求元デバイスに配信すべきである特定のサーバ(たとえば、サーバ112B)を特定し得る。この例において、部分434に示されるデバイスは、コンテンツ配布ネットワーク101のサーバ112Bである。示されるように、コンテンツ配布ネットワーク101は、コンテンツを配信すべきであるサーバをコンテンツ配布ネットワーク101のサーバ112A(部分404参照)からサーバ112Bに変更した。
一部の実施形態において、リソースロケータは、リソースロケータ400の部分406と同様である部分436を含む。部分436は、高セキュリティパラメータおよび高セキュリティパラメータの値を特定する。この例において、部分436は、値1に関連付けられる高セキュリティパラメータA、値2に関連付けられる高セキュリティパラメータBなどを示す。高セキュリティパラメータおよび値は、リソースロケータ400からリソースロケータ430に変更されなかった。実施形態において、コンテンツ配布ネットワーク101は、高セキュリティデジタル署名を変更する権限を持たず、高セキュリティパラメータおよび高セキュリティパラメータの関連する値を変更しない。たとえば、コンテンツ配布ネットワーク101が高セキュリティパラメータの値を変更したとすると、コンテンツ配布ネットワーク101は、新しい高セキュリティデジタル署名を生成するための秘密鍵を持たず、したがって、高セキュリティパラメータに関する新しい値を有するいかなるリソースロケータも、コンテンツ配布ネットワーク101によって確認され得ない。
一部の実施形態において、部分436は、低セキュリティパラメータおよび低セキュリティパラメータの値を特定する。この例において、部分436は、値6に関連付けられる低セキュリティパラメータX、値7に関連付けられる低セキュリティパラメータYなどを示す。コンテンツ配布ネットワーク101は、低セキュリティパラメータのうちの1つまたは複数の値を変更した。
一部の実施形態において、リソースロケータ430は、リソースロケータ400の部分414と同様である部分444を含む。部分444は、低セキュリティデジタル署名である。この例において、低セキュリティデジタル署名は、低セキュリティデジタル署名#3として示される。低セキュリティデジタル署名は、リソースロケータ430の部分436および部分412によって特定された低セキュリティパラメータに基づいて生成される。たとえば、部分436の低セキュリティパラメータの新しい値が、本明細書において説明されるように低セキュリティデジタル署名を生成するために使用される。実施形態においては、コンテンツ配布ネットワーク101が、新しい低セキュリティデジタル署名を生成した。
図4Cのリソースロケータ460は、1つまたは複数の部分を含み得る。一部の実施形態において、リソースロケータ460は、コンテンツ配布ネットワーク101によって生成されるリソースロケータを示し得る。一部の実施形態において、リソースロケータ460は、同じサーバ(たとえば、サーバ112A)がコンテンツをクライアントデバイス110Aにどのようにして配信すべきかを変更するためにコンテンツ配布ネットワーク101が生成するリソースロケータを表し得る。リソースロケータ460の部分の多くの内容がリソースロケータ400と同様であることは、留意され得る。リソースロケータ400と同じである内容を有するリソースロケータ460の部分が同じ識別番号を有し、図4Aに関連して上で説明されていることは、さらに留意され得る。明瞭にする目的で、新しい内容を有するリソースロケータ460の部分が、図4Cに関連して説明される。一部の実施形態において、コンテンツ配布ネットワーク101は、新しいリソースロケータ460を生成するためにリソースロケータ400の部分のうちのいくつかの内容の一部を変更する。変更された内容は、明瞭にするために太字にされる。
一部の実施形態において、リソースロケータ460は、リソースロケータ400の部分406と同様である部分466を含む。部分466は、高セキュリティパラメータおよび高セキュリティパラメータの値を特定する。この例において、部分466は、値1に関連付けられる高セキュリティパラメータA、値2に関連付けられる高セキュリティパラメータBなどを示す。高セキュリティパラメータおよび値は、リソースロケータ400からリソースロケータ460に変更されなかった。実施形態において、コンテンツ配布ネットワーク101は、高セキュリティデジタル署名を変更する権限を持たず、高セキュリティパラメータおよび高セキュリティパラメータの関連する値を変更しない。
一部の実施形態において、部分466は、低セキュリティパラメータおよび低セキュリティパラメータの値を特定する。この例において、部分466は、値8に関連付けられる低セキュリティパラメータX、値9に関連付けられる低セキュリティパラメータYなどを示す。コンテンツ配布ネットワーク101は、低セキュリティパラメータのうちの1つまたは複数の値を変更した。低セキュリティパラメータの値は、要求されたコンテンツの配信がどのように変更されるのかを反映するために変更された。
一部の実施形態において、リソースロケータ460は、リソースロケータ400の部分414と同様である部分474を含む。部分474は、低セキュリティデジタル署名である。この例において、低セキュリティデジタル署名は、低セキュリティデジタル署名#4として示される。低セキュリティデジタル署名#4は、リソースロケータ460の部分466および部分412によって特定された低セキュリティパラメータを使用して生成される。たとえば、部分466の低セキュリティパラメータの新しい値が、本明細書において説明されるように低セキュリティデジタル署名(たとえば、低セキュリティデジタル署名#4)を生成するために使用される。
図5は、本開示の実施形態によるコンテンツ配布ネットワークによって配信されるコンテンツの配信を変更するための方法500の流れ図を示す。方法は、ハードウェア(回路、専用論理など)を含む可能性がある処理論理、ソフトウェア(たとえば、処理デバイス上で実行される命令)、またはこれらの組合せによって実行される。一部の実施形態において、方法500の一部のまたはすべての動作は、図1のシステム100の1つまたは複数の構成要素によって実行される可能性がある。その他の実施形態において、方法500の1つまたは複数の動作は、図1~図2に関連して説明されたコンテンツ配布ネットワーク101の認可モジュールによって実行される可能性がある。図1~図2に関連して説明された構成要素が図5の態様を示すために使用される可能性があることは、留意され得る。
ブロック502において、方法500を実施する処理論理が、クライアントデバイスからコンテンツの第1の要求を受信する。実施形態において、コンテンツの要求は、コンテンツ配布ネットワーク101の第1のサーバによって受信される。実施形態において、第1の要求は、クライアントデバイスが要求されたコンテンツを取得することを認可するために認可データサービス122によって提供されたリソースロケータを含む。実施形態において、リソースロケータは、要求されたコンテンツをクライアントデバイスに配信するための第1のサーバを特定する。実施形態において、リソースロケータは、クライアントデバイスが要求されたコンテンツにアクセスする認可に関連する第1のデジタル署名(たとえば、高セキュリティデジタル署名)と、クライアントデバイスによるアクセスのための要求されたコンテンツの配信の認可に関連する第2のデジタル署名(たとえば、低セキュリティデジタル署名)とを含む。一部の実施形態において、要求されたコンテンツは、ビデオアイテムを含む。
一部の実施形態において、第1のデジタル署名は、認可データサービス122によって第1の秘密鍵(たとえば、高セキュリティ秘密鍵)から生成され、第2のデジタル署名は、認可データサービス122によって第2の秘密鍵(たとえば、低セキュリティ秘密鍵)から生成される。第1の秘密鍵および第2の秘密鍵は、異なる秘密鍵である。実施形態において、第1の秘密鍵および第2の秘密鍵は、認可データサービス122によってアクセスされ得る。実施形態においては、第2の秘密鍵が、コンテンツ配布ネットワーク101によってアクセスされ得るが、第1の秘密鍵は、コンテンツ配布ネットワーク101によってアクセスされ得ない。
一部の実施形態において、第1の要求は、第1のデジタル署名に関連する第1のパラメータ(たとえば、高セキュリティパラメータ)と、第2のデジタル署名に関連する第2のパラメータ(たとえば、低セキュリティパラメータ)とを含む。第1のデジタル署名は、第1のパラメータに基づいて生成され、第2のデジタル署名は、第2のパラメータに基づいて生成される。
一部の実施形態においては、クライアントデバイスからコンテンツの第1の要求を受信することに応じて、処理論理が、第1の要求に関連する第1のデジタル署名および第2のデジタル署名を確認する。第1のデジタル署名および第2のデジタル署名を確認することに応じて、処理論理は、ユーザによる消費のためにコンテンツをコンテンツ配布ネットワーク101の第1のサーバからクライアントデバイスに配信する。
ブロック504において、処理論理が、クライアントデバイスによるアクセスのための要求されたコンテンツの配信の変更を示すイベントの発生を特定する。
一部の実施形態においては、クライアントデバイスによるアクセスのための要求されたコンテンツの配信の変更を示すイベントの発生を特定するために、処理論理が、コンテンツ配布ネットワーク101の第2のサーバがコンテンツをクライアントデバイスに配信すべきであると決定する。一部の実施形態においては、クライアントデバイスによるアクセスのための要求されたコンテンツの配信の変更を示すイベントの発生を特定するために、処理論理が、コンテンツ配布ネットワーク101の第1のサーバがコンテンツをクライアントデバイスに配信するために利用不可能であると判定する。第2のサーバがコンテンツをクライアントデバイスに配信すべきであると決定することは、第1のサーバがコンテンツをクライアントデバイスに配信するために利用不可能であると判定することに応じる。
一部の実施形態においては、クライアントデバイスによるアクセスのための要求されたコンテンツの配信の変更を示すイベントの発生を特定するために、処理論理が、第1のサーバによる要求されたコンテンツの配信が変更されるべきであると決定する。実施形態においては、第1のサーバによる要求されたコンテンツの配信が変更されるべきであると決定するために、処理論理が、コンテンツがクライアントデバイスに配信されるべきビットレートの変更を決定する。コンテンツがクライアントデバイスに配信されるべきビットレートの変更を決定することに応じて、処理論理は、第2のパラメータ(たとえば、低セキュリティパラメータ)のうちのビットレートパラメータを調整する。
動作506において、イベントの発生を特定することに応じて、処理論理が、クライアントデバイスによるアクセスのための要求されたコンテンツの配信の変更に関連する第3のデジタル署名(たとえば、新しい低セキュリティデジタル署名)を生成する。実施形態においては、クライアントデバイスによるアクセスのための要求されたコンテンツの配信の変更に関連する第3のデジタル署名を生成するために、処理論理が、第2のパラメータ(たとえば、低セキュリティパラメータ)に関連する値を調整する。第3のデジタル署名は、第2のパラメータに関連する調整された値および第2の秘密鍵を使用してコンテンツ配布ネットワーク101によって生成される。
動作508において、処理論理が、クライアントデバイスに新しいリソースロケータを提供する。実施形態において、新しいリソースロケータは、クライアントデバイスが要求されたコンテンツにアクセスする認可に関連する(たとえば、認可データサービス122から受信された)第1のデジタル署名と、クライアントデバイスによるアクセスのための要求されたコンテンツの変更された配信に関連する第3のデジタル署名とを含む。
動作510において、処理論理が、クライアントデバイスからコンテンツの別の要求(たとえば、第2の要求または第3の要求)を受信する。要求は、コンテンツ配布ネットワーク101によって生成された新しいリソースロケータを含む。新しいリソースロケータは、第1のデジタル署名および第3のデジタル署名(たとえば、新しい低セキュリティデジタル署名)を含む。一部の実施形態において、要求(たとえば、第2の要求)は、異なるサーバがコンテンツをクライアントデバイス110に配信することを要求し得る。一部の実施形態において、要求(たとえば、第3の要求)は、同じサーバがコンテンツをクライアントデバイスに配信することを要求し得るが、ただし、コンテンツがクライアントデバイスにどのようにして配信されるか(たとえば、その方法)に関する変更を要求し得る。その他の実施形態において、要求は、異なるサーバがコンテンツをクライアントデバイスに配信することを要求し、コンテンツがクライアントデバイスにどのようにして配信されるかに関する変更を要求する。
動作512において、処理論理が、要求に関連する第1のデジタル署名および第3のデジタル署名を確認する。
動作514において、第1のデジタル署名および第3のデジタル署名を確認することに応じて、処理論理は、コンテンツをクライアントデバイスに配信する。実施形態においては、新しいリソースロケータが新しいサーバを特定する場合、処理論理が、ユーザによる消費のためにコンテンツをコンテンツ配布ネットワーク101の新しいサーバからクライアントデバイスに配信する。実施形態においては、新しいリソースロケータが同じサーバを特定するが、コンテンツがクライアントデバイスにどのようにして配信されるかを変更する場合、処理論理が、新しいリソースロケータによって示されたようにしてコンテンツ配布ネットワーク101の第1のサーバからのコンテンツの配信を変更する。
図6は、本開示の一実施形態による例示的なコンピュータシステム600を示すブロック図である。コンピュータシステム600は、本明細書において検討される方法のうちのいずれか1つまたは複数をマシンに実行させる命令の1つまたは複数の組を実行する。命令の組、命令などは、コンピュータシステム600によって実行されるときにコンピュータシステム600に認可モジュール151の1つまたは複数の動作を実行させる命令を指す可能性がある。マシンは、クライアント-サーバネットワーク環境内のサーバもしくはクライアントデバイスとして、またはピアツーピア(もしくは分散型)ネットワーク環境内のピアマシンとして動作する可能性がある。マシンは、パーソナルコンピュータ(PC)、タブレットPC、セットトップボックス(STB)、携帯情報端末(PDA)、モバイル電話、ウェブアプライアンス、サーバ、ネットワークルータ、スイッチもしくはブリッジ、またはそのマシンによって行われるべき行為を指定する(逐次的もしくはその他の)命令の組を実行することができる任意のマシンである可能性がある。さらに、単一のマシンだけが示されているが、用語「マシン」は、本明細書において検討される方法のうちのいずれか1つまたは複数を実行するための命令の組を個々にまたは連携して実行するマシンの任意の集合を含むとやはり受け取られる。
コンピュータシステム600は、バス608を介して互いに通信する処理デバイス602、メインメモリ604(たとえば、読み出し専用メモリ(ROM)、フラッシュメモリ、同期DRAM(SDRAM)またはRambus DRAM(RDRAM)などのダイナミックランダムアクセスメモリ(DRAM)など)、スタティックメモリ606(たとえば、フラッシュメモリ、スタティックランダムアクセスメモリ(SRAM)など)、およびデータストレージデバイス616を含む。
処理デバイス602は、マイクロプロセッサ、中央演算処理装置などの1つまたは複数の汎用処理デバイスを表す。より詳細には、処理デバイス602は、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、またはその他の命令セットを実装する処理デバイスもしくは命令セットの組合せを実装する処理デバイスである可能性がある。処理デバイス602は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサなど1つまたは複数の専用処理デバイスである可能性もある。処理デバイス602は、本明細書において検討される動作を実行するためのシステムアーキテクチャ100および認可モジュール151の命令を実行するように構成される。
コンピュータシステム600は、ローカルエリアネットワーク(LAN)、イントラネット、エクストラネット、またはインターネットなどのネットワーク618を介したその他のマシンとの通信を提供するネットワークインターフェースデバイス622をさらに含む可能性がある。コンピュータシステム600は、ディスプレイデバイス610(たとえば、液晶ディスプレイ(LCD)またはブラウン管(CRT))、英数字入力デバイス612(たとえば、キーボード)、カーソル制御デバイス614(たとえば、マウス)、および信号生成デバイス620(たとえば、スピーカ)も含む可能性がある。
データストレージデバイス616は、本明細書において説明された方法または機能のうちの任意の1つまたは複数を具現化するシステムアーキテクチャ100および認可モジュール151の命令の組が記憶される非一時的コンピュータ可読ストレージ媒体624を含む可能性がある。システムアーキテクチャ100または認可モジュール151の命令の組は、コンピュータシステム600によるそれらの命令の実行中にメインメモリ604内におよび/または処理デバイス602内に完全にまたは少なくとも部分的に存在する可能性もあり、また、メインメモリ604および処理デバイス602は、コンピュータ可読ストレージ媒体を構成する。命令の組は、ネットワークインターフェースデバイス622を介してネットワーク618上でさらに送信または受信される可能性がある。
コンピュータ可読ストレージ媒体624の例は単一の媒体として示されているが、用語「コンピュータ可読ストレージ媒体」は、命令の組を記憶する単一の媒体または複数の媒体(たとえば、集中的なもしくは分散型のデータベース、ならびに/または関連するキャッシュおよびサーバ)を含み得る。用語「コンピュータ可読ストレージ媒体」は、マシンによる実行のために命令の組を記憶するか、符号化するか、または運ぶことができ、本開示の方法のうちのいずれか1つまたは複数をマシンに実行させる任意の媒体を含み得る。用語「コンピュータ可読ストレージ媒体」は、ソリッドステートメモリ、光学式媒体、および磁気式媒体を含み得るがこれらに限定され得ない。
上述の説明において、多くの詳細が説明されている。しかし、本開示がこれらの具体的詳細なしに実施される可能性があることは、本開示の恩恵に浴する当業者に明らかであろう。場合によっては、本開示を曖昧にすることを避けるために、よく知られた構造およびデバイスは、詳細にではなくブロック図の形態で示されている。
詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する操作のアルゴリズムおよび記号表現の観点で提示された。これらのアルゴリズムの記述および表現は、データ処理技術に精通した者によって、それらの者の成果の内容を当該技術に精通したその他の者に最も効果的に伝えるために使用される手段である。ここでおよび概して、アルゴリズムは、所望の結果をもたらす自己矛盾のない一連の動作であると考えられる。動作とは、物理量の物理的操作を必要とする動作である。必ずではないが通常、これらの量は、記憶、転送、組合せ、比較、およびその他の操作を行われ得る電気的または磁気的信号の形態をとる。これらの信号をビット、値、要素、シンボル、文字、語、数などと呼ぶことが、主に共通使用の理由で便利な場合があることが分かっている。
しかし、これらのおよび同様の用語のすべてが適切な物理量に関連付けられるべきであり、これらの量に付される便宜的なラベルであるに過ぎないことは、留意されてよい。別途はっきりと記載されていない限り、説明全体を通じて、「生成する」、「提供する」、「調整する」、「受信する」、「取り消す」などの用語を利用する検討は、コンピュータシステムのメモリまたはレジスタ内の物理的(たとえば、電子的)量として表されるデータを操作し、コンピュータシステムのメモリまたはレジスタまたはその他のそのような情報ストレージ、送信、もしくは表示デバイス内の物理的量として同様に表されるその他のデータに変換するコンピュータシステムまたは同様の電子的なコンピューティングデバイスの行為およびプロセスを指すことが理解される。
本開示は、本明細書の動作を実行するための装置にも関する。この装置は、必要とされる目的のために特別に構築される可能性があり、またはコンピュータに記憶されたコンピュータプログラムによって選択的にアクティブ化もしくは再構成される汎用コンピュータを含む可能性がある。そのようなコンピュータプログラムは、フロッピーディスクを含む任意の種類のディスク、光ディスク、コンパクトディスク読み出し専用メモリ(CD-ROM)、光磁気ディスク、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)、磁気式もしくは光学式カード、または電子的な命令を記憶するのに好適な任意の種類の媒体などであるがこれらに限定されないコンピュータ可読ストレージ媒体に記憶される可能性がある。
語「例」または「例示的な」は、本明細書においては、例、具体例、または事例としての役割を果たすことを意味するために使用される。本明細書において「例」または「例示的な」と記載されたいずれの態様または設計も、必ずしもその他の態様または設計よりも好ましいかまたは有利であると解釈されるべきでない。むしろ、語「例」または「例示的な」の使用は、概念を具体化して提示するように意図される。本出願において使用されるとき、用語「または(or)」は、排他的な「または(or)」ではなく包含的な「または(or)」を意味するように意図される。つまり、別途明記されない限り、または文脈から明らかでない限り、「XはAまたはBを含む」は、自然な包含的順列(natural inclusive permutation)のいずれかを意味するように意図される。つまり、XがAを含む、XがBを含む、またはXがAとBとの両方を含む場合、「XがAまたはBを含む」は、上記の場合のいずれかの下で満足される。加えて、本出願および添付の請求項において使用される冠詞「a」および「an」は、別途明記されない限り、または文脈から単数形を対象とすることが明らかでない限り、通常「1つまたは複数の(one or more)」を意味するとみなされる可能性がある。さらに、用語「一実施形態(an embodiment)」、または「1つの実施形態(one embodiment)」、または「実装(an implementation)」、または「1つの実装(one implementation)」の使用は、全体を通じて、そのように説明されない限り同じ実施形態または実装を意味するように意図されていない。本明細書において使用される用語「第1の」、「第2の」、「第3の」、「第4の」などは、異なる要素を区別するためのラベルとして意図されており、必ずしも、それらの用語の数の指定に従った順序の意味を持たない可能性がある。
説明を簡単にするために、本明細書の方法は、一連の行為または動作として示され、説明される。しかし、本開示による行為は、様々な順序でおよび/または同時に、ならびに本明細書において提示および説明されないその他の行為とともに行われ得る。さらに、開示された対象による方法を実施するために、示されるすべての行為が必要とされるわけではない可能性がある。加えて、当業者は、方法が、代替的に状態図による一連の相互に関連した状態またはイベントとして表される可能性があることを理解し、認識するであろう。その上、本明細書において開示された方法は、そのような方法をコンピューティングデバイスに運び、転送することを容易にするための製品に記憶され得ることを理解されたい。本明細書において使用される製品という用語は、任意のコンピュータ可読デバイスまたはストレージ媒体からアクセス可能なコンピュータプログラムを包含するように意図される。
さらなる実施形態において、上述の実施形態の動作を実行するための1つまたは複数の処理デバイスが、開示されている。加えて、本開示の実施形態においては、非一時的コンピュータ可読ストレージ媒体が、説明された実施形態の動作を実行するための命令を記憶する。また、その他の実施形態においては、説明された実施形態の動作を実行するためのシステムも、開示されている。
上述の説明は例示的であるように意図されており、限定的であるように意図されていないことを理解されたい。その他の実施形態は、上の説明を読み、理解すると、当業者に明らかであろう。したがって、本開示の範囲は、添付の請求項が与えられる均等物の全範囲と併せたそのような請求項に関連して決定される可能性がある。