ストリーミング・メディアを含む、デジタルコンテンツへのアクセスを制御するためのシステム及び方法
ストリーミング・メディアを含むデジタルコンテンツへのアクセスを制御するためのシステム及び方法。システムは、ウェブサーバ、メディアサーバ、及びネットワークに結合されたパーソナルコンピュータなどのエンドユーザプロセッサを含む。ウェブサーバは、エンドユーザのファイルへのアクセスのリクエストに応答して暗号化されたチケットを生成する。チケットは、少なくとも部分的には、チケットが生成された時間又はその近くの時間に基づいている。メディアサーバは、好ましくは、ウェブサーバと同じ暗号化アルゴリズムを使用して許可チケットを生成する。メディアサーバの許可チケットは、少なくとも部分的に、メディアサーバがファイルへのアクセスに対するリクエストを受信した時間又はその近くの時間に基づく。メディアサーバは、ウェブサーバによって生成されたチケットをメディアサーバによって生成されたチケットと比較することによって、ファイルに対するアクセスを認可するかどうかを判断する。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願に対するクロスリファレンス)
本出願は、2001年6月6日に出願された表題が「SYSTEM AND METHOD FOR CONTROLLING ACCESS TO DIGITAL CONTENT, INCLUDING STREAMING MEDIA」の国際特許出願第PCT/US01/18324号の一部継続出願である、2001年11月5日に出願された表題が「SYSTEM AND METHOD FOR CONTROLLING ACCESS TO DIGITAL CONTENT, INCLUDING STREAMING MEDIA」の国際特許出願第PCT/US01/46726号に基づいた、2003年5月12日に出願された表題が「SYSTEM AND METHOD FOR CONTROLLING ACCESS TO DIGITAL CONTENT, INCLUDING STREAMING MEDIA」の米国特許出願番号10/416,623号の一部継続出願である、2003年10月22日に出願された米国特許出願番号10/692,444号の継続出願であり、これらの全ては引用により本明細書に組み込まれる。
【0002】
本発明は、一般に、デジタルコンテンツへのアクセス制御に関し、より詳細にはストリーミング・メディアへのアクセスを制限するためのチケットベースのシステム及び方法に関する。
【背景技術】
【0003】
インターネットとワールドワイドウェブの出現に伴い、ストリーミング・メディアコンテンツのようなデジタルコンテンツの配信に関連する産業が発達した。一例として、ストリーミング・メディアは、エンターテイメント、通信教育、及び企業目的を含む多くの目的のいずれかに使用することができる。エンターテイメント企業は、映画及びスポーツイベントをストリーミングし、通信教育企業は教育コンテンツをストリーミングし、企業はトレーニング教材をストリーミングする。
【0004】
このようなストリーミング・メディアの多くの用途では、コンテンツへのアクセス制御が必要不可欠である。例えば、エンターテイメント企業は、ストリーミング・メディアのアイテムの各視聴に対してエンドユーザに課金することができ、これはエンターテイメント特有の用語で「ペイ・パー・ビュー」と呼ばれる。同様に通信教育企業は、オンライン教育コースへのアクセス、すなわちストリーミング・メディアへのアクセスに対して生徒に課金する。企業コンテンツは社外秘の場合が多いので、従ってこの場合もアクセス制御を必要とする。
【0005】
従って、ストリーミング・メディアへのアクセスを制限するためのシステムが開発されている。ストリーミング・コンテンツへのアクセスを制限するための最新の業界標準は、ストリーミング・メディアコンテンツを提供する前にストリーミング・メディアサーバのエンドユーザ認証を含む。より詳細には、ストリーミング・メディアサーバは通常、ストリーミング・メディアへのアクセスを許可するかどうかを判断するためのロジックを含むコンパイル済みコードのソフトウエア・プラグインを含む。しかしながら、このような認証プラグインは、複雑であり、開発及び維持するのが困難である場合が多い。例えば、ストリーミング・メディアコンテンツへのアクセスを許可するためのロジックを変更する必要性が生じた場合、ストリーミング・メディアサーバ上のコンパイルされたプラグインを変更するのは困難である。更に、ストリーミング・メディアサーバ上にあるロジックの全ては、ストリーミング・メディアサーバが、データベース又は分散型のメッセージ受け渡しサービスに対し直接アクセスする必要がある。その上、ストリーミング・メディアコンテンツへのアクセスが許可されている特定のエンドユーザを確認する場合においてさえも、このようなエンドユーザは、無許可のエンドユーザとアクセスを共有することによって許可プロセスを免れ得ることが多い。このようなアクセスの共有は、コンテンツに対するリンクのユーザ名及びパスワードの共有も含む多くの形態を取ることができる。デジタルコンテンツの他の形態へのアクセスを制御するために使用されるシステムに関しても同様の問題が存在する。従って、デジタルコンテンツ、特にストリーミング・メディアコンテンツへのアクセスを制御し、エンドユーザを許可するためのシステム及び方法に対する改善の必要性が存在する。
【発明の開示】
【0006】
本発明は、オーディオ、ビジュアル、ビデオ、テキスト、及びストリーミング・メディアなどのデジタルコンテンツへのアクセスを制御するためのシステム及び方法を提供することによって、前記並びに他の必要性を解決する。本発明による1つのシステム及び方法は、ストリーミング・メディアへのアクセスを制御し、ネットワークに接続されたウェブサーバ、メディアサーバ、及びパーソナルコンピュータなどのエンドユーザプロセッサを含む。
【0007】
動作中、ウェブサーバは、ファイルにアクセスするためのエンドユーザのリクエストに応答して暗号化されたチケットを生成する。チケットは、少なくとも部分的には、チケットが生成された時間又はその近くの時間に基づいている。ある実施形態ではチケットは、例えばセキュリティタイムインターバル又はエンドユーザの識別子を含む追加情報に基づく。
【0008】
メディアサーバがリクエストされたファイルへのアクセスを提供する前に、メディアサーバは、好ましくはウェブサーバと同じ暗号化アルゴリズムを使用して許可チケットを生成する。メディアサーバの許可チケットは、メディアサーバがファイルへのアクセスに対するリクエストを受信した時間又はその近くの時間に少なくとも部分的に基づく。メディアサーバは、ウェブサーバによって生成されたチケットをメディアサーバによって生成されたチケットと比較することによって、ファイルに対するアクセスを認可するかどうかを判断する。
【0009】
1つの実施形態では、チケットが一致しない場合には、ウェブサーバがチケットを生成した時間とメディアサーバがチケットを生成した時間とが予め定められた量よりも大きく異なり、チケットは、論理的に「有効期限切れ」であると考えることができる。従ってメディアサーバは、メディアコンテンツへのアクセスを認可しない。チケットが一致する場合には、チケットは、許可されたタイムインターバルの範囲内に生成されており、メディアサーバは、エンドユーザがリクエストしたメディアコンテンツへアクセスするのを認可する。
【発明を実施するための最良の形態】
【0010】
ここで、本発明の特定の好ましい実施形態を図面を参照しながら説明する。コンテンツへのアクセスを制御するための本発明は、ストリーミング・データファイルへのアクセス制御の関連で説明されているが、本発明はあらゆるタイプのメディア又はファイルに適用可能である点は理解されたい。更に、本明細書で検討される本実施形態は、オンデマンドのストリーミング・メディアに関するのであるが、ライブのストリーミング・メディアにも適用可能であることは、当業者であれば認識するであろう。
【0011】
一般に、本実施形態のシステムは、エンドユーザプロセッサ102、ストリーミング・メディアサーバ104、及びコンテンツマネージメントデータベース108を有するウェブサーバ106を含み、これらの全てはインターネットに結合されている。エンドユーザプロセッサ102は、INTERNET EXPLORERの名称でMicrosoft Corporationによって提供されるか、又はNETSCAPE NAVIGATORの名称でAmerica Online Inc.のNetscape Communicationsによって提供されるようなインターネットブラウザ、及びWINDOWS MEDIA PLAYER(ウィンドウズメディアプレーヤ)の名称でMicrosoft Corporationによって提供されるか、又はREALPLAYER(リアルプレーヤ)の名称でReal Networks,Incにより提供されるようなストリーミング・メディアプレーヤを含む。
ウェブサーバ106は、エンドユーザ102によってアクセス可能なウェブサイトを提供する。ウェブサイトは、ストリーミング・メディアサーバ104上にあるストリーミング・メディアコンテンツにアクセスするためにエンドユーザ102が起動することができるリンクを含む。
【0012】
本発明は、幾つかの何らかのコンピュータ技術を利用して実施できることは理解されたい。例えば、本実施形態は、インターネットを介してコンテンツへのアクセスを提供することに関するが、本発明は、例えばワイドエリアネットワークを含む、どのようなコンピュータネットワーク上でも利用することができる。同様に、エンドユーザプロセッサ102は、例えば携帯情報端末、ウェブ対応の携帯電話、ネットワークにダイヤルアップする有線電話、モバイルコンピュータ、パーソナルコンピュータ、インターネット機器及び同様のものを含む、ネットワークに結合可能なあらゆる装置とすることができる。更に、本明細書で説明されるサーバは、何らかのソフトウェアを実行するあらゆるタイプのものとすることができ、本明細書で説明されるソフトウェアモジュール、オブジェクト、及びプラグインは、どのようなプログラム言語で記述されていてもよい。最後に本明細書で説明されるデータベース及び記憶装置は、例えばローカルのコンピュータメモリ、ネットワーク接続記憶装置、及び磁気又は光学などのいずれかの既知の記憶媒体を含む、どのような記憶技術を使用してもよい。
【0013】
CMデータベース108の例示的な表現が図2に示される。図示されているように、データベース108は、ストリーミング・コンテンツの全てのアイテムにユニバーサルに適用可能な情報及び関連データの幾つかのテーブルを含む。ユニバーサル情報202は、セキュリティキー、セキュリティタイムインターバル、及びコンテンツが存在するストリーミング・メディアサーバ104の名称(「ホスト名」)を含む。セキュリティキー及びセキュリティインターバルは、エンドユーザ102がコンテンツにアクセスするのを許可する際に使用され、従って、好ましくは秘密に保持されてコンテンツの所有者によって設定される。セキュリティキー及びセキュリティインターバルは、全てのコンテンツへのアクセスを制御するのに使用されるが、別の実施形態では、各コンテンツファイルは、その固有のセキュリティキー及びこれに関連するセキュリティインターバルを有する。
【0014】
CMデータベース108は、コンテンツ又はストリーミング識別情報を含む一連のテーブルを更に含む。より詳細には、ストリーミングテーブル204は、一意のストリーミング識別子(ID)によって識別されたストリーミング・コンテンツの各アイテムのレコードを含む。更に各レコードは、例えば、コンテンツファイルの生成日付を含むコンテンツファイルを記述するストリーミングの詳細、ファイルの記述、コンテンツがオーディオか又はビデオかの識別、コンテンツが関係するプラットフォーム、コンテンツが最後に修正された日付、コンテンツの視聴に必要ないずれかのコーデック、コンテンツの長さ及びサイズ、コンテンツの有効期限(もしあれば)、.asf又は.rmなどのストリーミングのタイプ、コンテンツのタイトル、コンテンツの作者、コンテンツのステータス、コンテンツの著作権情報、コンテンツのビットレート、及び同様のものを含む。また各レコードは、メディアサーバ104へのリンクを生成するために使用されるプレフィックス(「URLPrefix(URLプレフィックス)」)と、ストリーミング・メディアサーバ104上に格納されているコンテンツファイルの名前(「Filename(ファイル名)」)を含む。ファイル名が、オンデマンドコンテンツのストリーミング・メディアサーバ104に結合された記憶装置上の実パスを指してもよく、或いは、ライブストリーミングの別名、ポート、又はチャネルを指してもよいことは理解されるべきである。
【0015】
データベース108はまた、「プレイ(再生)リスト」情報を収容するテーブルを含む。クライアントのプレイリストは、一般に、グループとして利用可能にする目的で論理上関連付けられる1つ又はそれ以上のコンテンツファイルのグループである。プレイリストの一部として識別された各コンテンツファイルはまた、個々に利用可能にすることができる。このようなプレイリスト情報は、プレイリストテーブル208及びプレイリストストリーミングテーブル210内に収容される。一般に、プレイリストテーブル208は、プレイリストIDによって識別される各プレイリストを識別するレコードを含む。各レコードは更に、例えばプレイリストのフォーマット(ウインドウズメディアプレーヤ又はリアルプレーヤなど)、プレイリストの記述、プレイリスト名、及び同様のものを含むプレイリストの詳細、及びプレイリストの許可されたユーザグループIDを更に含む。
【0016】
許可されたユーザグループIDは、特定のプレイリストを視聴するよう許可されたエンドユーザ102のグループに対応する。より詳細には、データベース108は更に、一意のエンドユーザIDによって識別される各エンドユーザ102を1つ又はそれ以上の許可されたユーザグループIDに関連付ける許可ユーザテーブル206を含む。エンドユーザ102がプレイリストを視聴するためには、エンドユーザ102は、当該コンテンツファイルに対する許可されたユーザグループIDの一部として識別される必要がある。特定の別の実施形態では、許可されたユーザグループIDは使用されず、別の代替の実施形態では、各コンテンツファイルがこれらに関連する許可グループIDを有する。
【0017】
プレイリストストリーミングテーブル210は、プレイリストIDによって識別された各プレイリストをストリーミングIDによって識別された構成コンテンツファイルと関連付けるレコードを含む。各レコードはまた、プレイリスト中の各コンテンツファイルの順序(「ソート順序」)を示す情報を収容する。
【0018】
本発明で使用される構成要素について説明してきたが、ここでストリーミング・メディアコンテンツへのアクセスを制御するプロセスを説明する。概説すると、ウェブサーバ106上に配置された認証ソフトウェア構成要素が、公開キー情報、秘密キー情報、及び現在時刻に基づいてハッシュ値又は「チケット」を生成する。公開キーは、エンドユーザとエンドユーザのユーザIDによってリクエストされたストリーミング・コンテンツに対する一意の識別子である。秘密キーは、コンテンツの所有者によって設定されたセキュリティキーとセキュリティタイムインターバルとを含む。
【0019】
リクエストされたコンテンツが存在するストリーミング・メディアサーバ104は、公開キーを含むストリーミングのリクエストとウェブサーバ106によって生成されたチケットとを受け取る。ストリーミング・メディアサーバ104は、ローカルに格納された秘密キー情報を使用して固有形態のチケットの生成に進む。ストリーミング・メディアサーバ104は、ストリーミング・メディアサーバ104とウェブサーバ106によって生成されたチケットの比較に基づいて、リクエストされたストリーミング・コンテンツへのアクセスを拒否するか、又はアクセスを与える。
【0020】
次に、図3のワークフロー図と図4及び5のフローチャートを参照しながらアクセスを制御するプロセスをより詳細に説明する。本実施例では、エンドユーザ102が、単一のストリーミング・メディアコンテンツファイルへのアクセスをリクエストする。最初に、ウェブサーバ106は、エンドユーザに許可アプリケーションにログインするようリクエストし、特定のストリーミング・メディアを視聴するオプションをエンドユーザに呈示するウェブページを提供する(ステップ302)。例えば、このようなページは、視聴のため各々が固有のストリーミングリクエストのリンクを有する幾つかのコンテンツファイルの1つを選択し、そのエンドユーザID(コンテンツの所有者が予め割り当ててエンドユーザに提供した)を提供し、更に、選択されたコンテンツへのアクセスに対してエンドユーザに課金することができるようにクレジットカード番号を提供するようエンドユーザにリクエストするフォームを含むことができる。別の実施形態では、エンドユーザは、エンドユーザの連絡先情報及び課金情報を提供することによってコンテンツの所有者に予め登録され、所有者は、割り当てられたエンドユーザIDと共にこれらをデータベース内にテーブル形式で格納する。
【0021】
ウェブページに応答して、エンドユーザは、エンドユーザのユーザIDを提供してリンクを起動し、これにより認証アプリケーションにログインし、このリンクに関連する特定のストリーミング・コンテンツファイルへのアクセスをリクエストする(ステップ304)。ストリーミングIDが「123456」によって表現される例示的なストリーミングリクエストは、以下の通りである。
<A href http://webserver.company.com/getstream.asp?ID=123456>
【0022】
本実施形態では、認証アプリケーションは、ウェブサーバ106上に存在する「.dll」ソフトウェア要素である。しかしながら、例えばアクティブ・サーバページ(ASP)又はサーブレットなどの他のあらゆるプログラム言語又は技術を使用して本明細書で説明された機能性を実施することができる点を当業者であれば認識するであろう。特定のプログラミング技術に関係なく、認証アプリケーションは、ウェブサーバ上のどのような処理ボトルネックをも軽減するために、ウェブサーバ106上で実行させることが好ましい。
【0023】
エンドユーザが認証アプリケーションにログインし、ウェブサーバ106がエンドユーザからストリーミングリクエスト及びエンドユーザIDを受け取ると、ウェブサーバ106は、続いて許可チケットを動的に生成し、更に、選択されたコンテンツファイルへのリンクを動的に生成する。より詳細には、認証アプリケーションの制御下において、ウェブサーバ106は、許可チケットを生成する際に使用するための秘密キーを求めてデータベース108にリクエストを出す(ステップ306)。ウェブサーバ106は、リクエストされたコンテンツファイルに関連するセキュリティキー及びセキュリティインターバルを含む秘密キーをCMデータベース108から検索するためのデータベースクエリーを発行する。これに応答して、CMデータベース108は、秘密キーをウェブサーバ106に返送する(ステップ308)。
【0024】
データベース108から秘密キーの取得が完了すると、ウェブサーバ106はチケットを生成する(ステップ310)。図4に関連してより詳細に説明されるように、ウェブサーバ106は、秘密キー、ストリーミングID、エンドユーザID、現在時刻、及びハッシュアルゴリズムを使用してチケットを生成する。本実施形態では、リクエストされたコンテンツのストリーミングIDが、ステップ304でエンドユーザによって起動されたストリーミングリクエストリンクに含まれているので、ウェブサーバ106は、ストリーミングIDを使用してチケットを生成することができる。しかしながら、別の実施形態では、エンドユーザによって提供されるストリーミングリクエストは、ストリーミングID以外の、例えばコンテンツのタイトル、作者、及び/又はファイル名などの一意の識別情報を含む。このような実施形態では、ウェブサーバ106は、ストリーミングテーブル204をサーチして、ストリーミングリクエストに含まれる識別情報に基づいてストリーミングIDを検索する。更に別の実施形態では、ストリーミングリクエストは、システムがチケットを生成するために使用するファイル名又はパスなどの、ストリーミングID以外の一意の識別子を含む。
【0025】
チケットが生成されると、ウェブサーバ106は、メディアサーバ上のリクエストされたコンテンツへのリンクを生成する。より詳細には、上記で示された例示的なストリーミングリクエストに基づいて、エンドユーザプロセッサ102に存在するメディアプレーヤが「webserver.company.com」(すなわちウェブサーバ106)を呼び出し、メディアサーバ104へのリンクを動的に生成するための「getstream.asp」プログラムを実行することになる(ステップ312)。「getstream」アプリケーションは、アクティブ・サーバページ(すなわちASP)拡張子を有するが、必ずしもASP技術を使用するとは限らない点を当業者は認識するであろう。むしろ、「.dll」構成要素などの何らかのプログラム又はスクリプト言語若しくは技術を用いて、所望の機能性を提供することができる。しかしながら、認証アプリケーションの場合と同様に、エンドユーザプロセッサ102でのあらゆる処理ボトルネックを緩和するためにプログラムはウェブサーバ側で実行されるのが望ましい。「getstream.asp」プログラムは、ウェブサーバ106にCMデータベース108を呼び出させ、メディアサーバ104へのリンクを動的に生成するのに必要なデータを検索させるよう機能する。より詳細にはウェブサーバ106は、ユニバーサル情報テーブル202からホスト名を検索し、ストリーミングテーブル204からURLプリフィックス及びファイル名を検索する。「getstream.asp」プログラムはまた、リンクの最後にストリーミングID、チケット、及びエンドユーザIDを付加する。次いで、ウェブサーバ106は、エンドユーザプロセッサ102のメディアプレーヤへリンクを返す(ステップ314)。
【0026】
メディアファイルへの例示的なリンクは以下の通りである。
< REF href=”mms://mediaserver.company.com/streaml.asf?ID=123456&TICKET=uvwl23xyz&USER_ID=abcl23def”>
ここで、URLプリフィックスは「mms://」によってリクエストされ、ホスト名は「mediaserver.company.com」で表され、ファイル名は「stream1.asf」で表され、コンテンツのリクエストアイテムのストリーミングIDは「123456」で表され、チケットは「uvw123xyz」で表され、エンドユーザIDは「abc123def」で表される。
【0027】
リンクを受け取ると、エンドユーザプロセッサ102は、ストリーミング・メディアコンテンツをリクエストするステップに進む(ステップ316)。より詳細には、エンドユーザプロセッサ102に存在するメディアプレーヤは、リンクで識別された「mediaserver.company.com」(すなわちストリーミング・メディアサーバ104)を呼び出す。呼び出しの一部として、メディアプレーヤは、リクエストされたコンテンツのストリーミングIDのコピー、ウェブサーバ106によって生成されたチケット、及びエンドユーザIDをストリーミング・メディアサーバ104に供給する。
【0028】
ストリーミングID、エンドユーザID、及びチケットを含むリンクを受け取ると、ストリーミング・メディアサーバ104は、エンドユーザがリクエストされたコンテンツへアクセスするのを認可するかどうかを判断するステップに進む(ステップ318)。図5を参照して以下に更に詳細に説明されるように、ストリーミング・メディアサーバ104は、ローカルに格納された秘密キー情報とリンク内に含まれるストリーミングID並びにエンドユーザIDに基づいて独自にチケットを生成することによってアクセスを認可するか否かを判断する。一般に、ストリーミング・メディアサーバ104によって生成されたチケットがウェブサーバ106によって生成されたチケットと一致する場合、ストリーミング・メディアサーバ104は、リクエストされたストリーミング・メディアコンテンツをエンドユーザプロセッサ102に供給する(ステップ320)。
【0029】
用語「一致」は、異なる実施形態においては異なる意味を有することができることを理解されたい。一致とは、完全な一致又は予め定められた範囲内での一致を意味することができる。或いは、一致は、あるアルゴリズム又は方程式に基づいて標準偏差だけ互いに異なる2つの値を有することができる。
【0030】
ここで図4を参照しながら、ウェブサーバ106によってチケットを生成するプロセスをより詳細に説明する。上述のようにチケット生成プロセスは、ウェブサーバ106に存在する許可ソフトウエア・プラグインによって行われるのが好ましい。本実施形態では、本プロセスは、ウェブサーバ106がストリーミングID及びエンドユーザIDを含むストリーミングリクエストを受け取るステップで始まる(ステップ402)。次にウェブサーバ106は、データベース108にアクセスし、リクエストされたストリーミングIDに関連する秘密キー情報を検索するステップに進む(ステップ406)。このような秘密キー情報は、ユニバーサルセキュリティキー及びセキュリティインターバルを含む。別の実施形態では各ストリーミングは、ストリーミングテーブル204にフィールドとして格納された固有のセキュリティキー及びセキュリティインターバルを有し、これをウェブサーバ106がストリーミングリクエストに含まれるストリーミングIDに基づいて検索する。
【0031】
上述のようにウェブサーバ106はまた、現在時刻を使用してチケットを生成する。より詳細には、ウェブサーバ106は、現在時刻を算出し、その時刻をセキュリティインターバルの最も近い倍数にまで切り下げる(ステップ410)。本実施形態では、Cプログラミング言語の標準ライブラリ関数「time()」によって生成される協定世界時(UTC)を秒単位で利用する。セキュリティインターバル(変数「$time」で表される)の最も近い倍数に切り下げられた時刻を生成するための例示的なパール(Perl)プログラミングコードを以下に示す。
#
# example of 15 minute ticket expiration/security interval
#
$interval=15*60
$time=int(time()/$interval)*$interval;
ここで、変数「$interval」はセキュリティインターバルに対応し、15分に等しい。
【0032】
例証として、現在時刻が中央標準時で2000年5月31日午後2:16:07であると、関数「time()」は、およそ「959800567」の値を返す。このUTC値を最も近い15分インターバルに切り下げると、およそ「959800500」の値となり、これは、中央標準時で2000年5月31日午後2:15:00の時刻を表す。
【0033】
上記の例示的なコードは変更してもよく、それでも尚本発明の範囲内とすることができる点は理解されたい。例えば、セキュリティインターバルは分単位である必要はなく、インターバルが「time()」関数によって使用される時間の単位で表されるように適切な変換が行われる限り、該インターバルは他の時間単位で表してもよい。更に、別の実施形態では、現在時刻はUTC以外の標準ときに基づく。このような実施形態では、時間標準は、ウェブサーバ106及びストリーミング・メディアサーバ104に固有のものである。許可チケットを生成する際に使用するために、エンドユーザプロセッサ102に時間を計算させてその値をウェブサーバ106に渡すことは、本発明の範囲内にある点も理解されたい。更に別の実施形態では、セキュリティインターバルは、標準時間が所望の桁数にまで単に切り捨てられるように選択される。
【0034】
ウェブサーバ106がハッシュアルゴリズムに対する入力値(公開キー情報、秘密キー情報、及び時間値)を有すると、ウェブサーバ106は、ハッシュアルゴリズムに対する入力ストリングを生成する(ステップ414)。本実施形態では、ハッシュアルゴリズムは「MD5」メッセージダイジェスト・アルゴリズムである。更に本実施形態では、メディアサーバ104及びウェブサーバ106は同じアルゴリズムを使用する。
【0035】
チケットを生成するために基本的にいずれかのハッシュ又は暗号化アルゴリズムを利用することが本発明の範囲内であることは理解されるべきである。更に、チケットを生成する2つのサーバ(上記の実施形態ではウェブサーバ106とストリーミング・メディアサーバ104)は、同じ入力値に基づいて同じチケットを生成するか、或いは同じ入力値に基づいて互いに既知の偏差値の範囲にあるチケットを生成するのが好ましい。別の実施形態では、セキュリティを向上させるために利用可能な複数のアルゴリズムの1つが使用される。例証として、このような実施形態は、利用可能な複数のアルゴリズムからランダムに選択された1つのアルゴリズムを使用するか、或いは、リクエストされたコンテンツ、リクエストの日付又は時間、特定のエンドユーザ、コンテンツを所有するエンティティ、及び同様のものに基づいて複数のアルゴリズムのうちの1つを選択することができる。このような実施形態では、システムは、メディアサーバに対してウェブサーバによって使用されるアルゴリズムの指示を渡すか、又はメディアサーバが、ウェブサーバによって利用された同じアルゴリズムを選択及び使用させるロジックを含む。
【0036】
使用される特定のハッシュアルゴリズムに対して入力ストリングが有効である限り、及びストリーミング・メディアサーバ104が入力ストリングの配置を認識している限り、入力値のどのような配置も入力ストリングとして使用することができる。本実施形態では、以下の予め定められた配置が使用される。
TTTTTTTTTTKKKKKKKKKKSSSSSSSSSSUUUUUUUUUU
ここで、「T」は時間値の桁を表し、「K」はセキュリティキーの英数字を表し、「S」はストリーミングID(あらゆる必要な先頭埋め込み文字を含む)の桁を表し、「U」はエンドユーザID(あらゆる必要な先頭埋め込み文字を含む)の英数字を表す。別の実施形態では、入力ストリングは異なる長さとすることができる。
【0037】
ハッシュアルゴリズム入力ストリングが生成されると、ウェブサーバ106は、入力ストリングにハッシュアルゴリズムを適用し、これによりチケットを生成する(ステップ418)。
【0038】
ここで図5を参照して、リクエストされたコンテンツストリーミングへのアクセスを認可するかどうかを判断するストリーミング・メディアサーバ104のプロセスを検討する。最初に、必ずしも必要ではないが、本実施形態のメディアサーバ104は、アクセスを認可するか否かを判断する際に使用するために、各々が異なる時間値に基づいた3つの許可チケットを生成する点に留意されたい。更に、ウェブサーバの機能性と同様、アクセスを認可するか否かを判断するプロセスが、メディアサーバ104上に存在する許可ソフトウェア要素において実行されることが望ましい。
【0039】
アクセスを認可するかどうかを判断する際には、最初に、ストリーミング・メディアサーバ104が、エンドユーザプロセッサ102上に存在するメディアプレーヤから、ストリーミングID、エンドユーザID、及びチケットを含むストリーミングリクエストを受け取る(ステップ502)。ストリーミングリクエストが受け取られると、メディアサーバ104は、ハッシュアルゴリズムへの入力ストリングを生成する。この点でメディアサーバ104は、ローカルのメモリから秘密キー情報、すなわちセキュリティキーとセキュリティインターバルとを検索する(ステップ506)。好ましくは、メディアサーバ104は、秘密キー情報をローカルのメモリに格納するが、別の実施形態では、メディアサーバ104は、例えばMicrosoft Corporationにより提供されるライトウェイト・ディレクトリ・アクセス・プロトコル(Light−Weight Directory Access Protocol)によってアクセスされるアクティブディレクトリツリー又は遠隔のデータベースに情報を保存する。更に別の代替の実施形態では、メディアサーバ104は、ローカルエリアネットワーク(LAN)などのネットワーク接続を介してデータベース108にアクセスすることによって秘密キー情報を検索する。
【0040】
ウェブサーバ106が行ったように、メディアサーバ104もまた、現在時刻を計算し、その時間をセキュリティインターバルの最も近い倍数(すなわち以前の時間に)にまで切り下げる(ステップ510)。しかしながら、ウェブサーバ106とは異なり、ストリーミング・メディアサーバ104はまた、メディアサーバ104によって計算された第1の時間値よりも小さな(すなわち以前の時間の)セキュリティインターバルの次に最も近い倍数にまで切り下げされた現在時刻に等しい第2の時間値を計算する(ステップ510)。メディアサーバ104は更に、セキュリティインターバルの最も近い倍数にまで切り上げされた現在時刻(すなわちより遅い時間)に等しい第3の時間値を計算する(ステップ510)。
【0041】
次いで、メディアサーバ104は、検索された秘密キー情報、受け取られた公開キー情報、及び3つの時間値を使用して、3つの対応するハッシュ入力ストリングを生成する(ステップ514)。次に、メディアサーバ104は、3つの入力ストリングの各々にハッシュアルゴリズムを適用し、これにより3つのチケットを生成する(ステップ518)。
【0042】
独自のチケットを生成した後、次にメディアサーバ104は、メディアサーバ104によって生成されたチケットのいずれかがウェブサーバ106によって生成されたチケットと一致するかどうかを判断する(ステップ522)。チケットが一致しない場合、ストリーミングリクエストは認証されたものではなく、及び/又は有効期限が切れたものである(すなわち、ユーザのリクエスト時間から測定されるセキュリティインターバルを越えた時間にメディアサーバ104によって生成されたもの)可能性が高い。従って、メディアサーバ104は、リクエストされたコンテンツへのアクセスを拒否する(ステップ526)。
【0043】
チケットが一致する場合、ストリーミングリクエストは認証されたものであり、セキュリティインターバルの範囲内にある可能性が高い。しかしながら、アクセスを認可する前に、メディアサーバ104は最初に、エンドユーザが同じコンテンツへのアクセスをリクエストして、既に視聴したかどうかを判断する(ステップ530)。メディアサーバ104は、エンドユーザIDのリストと該エンドユーザが既にアクセスを認可されている対応するストリーミングIDとをローカルメモリ内に保持するのが好ましい。リクエストされたコンテンツをエンドユーザが既に視聴したかどうかを判断するために、メディアサーバ104は、メモリにアクセスして、受け取ったエンドユーザID及びストリーミングIDが以前に格納されているかどうかを判断する。エンドユーザID及びストリーミングIDが既に格納されている場合には、エンドユーザは、リクエストされたコンテンツへのアクセスが拒否される(ステップ530)。
【0044】
受け取ったエンドユーザID及びストリーミングIDが、これまで格納されていない場合には、メディアサーバ104は、エンドユーザID及びストリーミングIDをメモリに格納するステップに進み(ステップ534)、エンドユーザにコンテンツへのアクセスを与える(ステップ538)。従って、エンドユーザID及びストリーミングIDを格納することにより、リクエストされたコンテンツを指すリンクをエンドユーザが他者と共有するのを防ぐ任意の追加レベルのセキュリティ保護が得られる。
【0045】
ウェブサーバ106のローカル時間とメディアサーバ104のローカル時間との間が同期されていないことを考慮に入れるために、3つのチケットを使用することが望ましい点は理解されるべきである。更に、ある状況では、メディアサーバ104によって生成された第1のチケット(すなわち、セキュリティインターバルの最も近い倍数にまで切り下げられた現在時刻に基づく)は、エンドユーザが許可されている場合でも、ウェブサーバ106によって生成された第1のチケットと一致しないことになる。例えば、セキュリティインターバルを15分とすると、ウェブサーバ106が午後12:14:00にチケットを生成し、メディアサーバ104がその第1のチケットを午後12:16:00に生成する場合、同じ日の時間帯においてリクエストがセキュリティインターバルの範囲内にあってもチケットは一致しないことになる。ウェブサーバは、午後12:00:00に対応する時間値に基づいてチケットを生成し、一方、メディアサーバ104は、午後12:15分:00に対応する時間値に基づいてチケットを生成することになる。従って、本実施形態では、メディアサーバ104は、セキュリティインターバルの次に最も近い倍数に切り下げられたそのときの現在時刻に基づいて第2のチケットを生成し、すなわち本実施例では、午後12:00:00に対応する。従って、第2のチケットは、ウェブサーバ106によって生成されるチケットと一致するであろう。同様に、セキュリティインターバルが経過した後、エンドユーザに対しアクセスを認可することが可能である。従って、本実施形態では、セキュリティインターバルは複数のチケットの使用を考慮するように選択されるべきである。ウェブサーバ106とメディアサーバ104は、セキュリティインターバルの約半分以内に時刻同期するのが望ましい。
【0046】
メディアサーバ104が、上記の実施形態で3つのチケットの代替として1つ又はそれ以上の異なるチケットを生成することもまた本発明の範囲内である点を理解すべきである。更に上記の実施形態では、チケットが共に並列に生成されるものとして説明しているが、メディアサーバ104がチケットを順に連続して生成及び/又は比較することも本発明の範囲内である。更に、時間値は、例えばメディアサーバ104によって計算された第1の時間値からセキュリティインターバルを単に加減算することを含め、多くの方法のいずれかで生成することができる点も理解されるべきである。
【0047】
別の実施形態では、別のレベルのセキュリティを提供してもよい。より詳細には、ウェブサーバ106によって生成されたチケットが、メディアサーバ104によって生成されたチケットのうちの1つと一致する場合、メディアサーバ104は、同じチケットが既に生成されていたかどうかを判断するステップに進む。メディアサーバ104は、アクセスが許可されたチケットのリストを保持している。このようなリストは、論理上、全ての「使用済み」チケットを表す。一致したチケットが「使用済み」チケットのリストに存在しない場合には、メディアサーバ104は、アクセスを認可し、エンドユーザプロセッサ102上に存在するメディアプレーヤにリクエストされたコンテンツを供給する。アクセスを認可するステップの一部として、メディアサーバ104はまた、「使用済み」チケットのリスティングを更新する。一致したチケットが使用済みチケットのリストに存在する場合には、メディアサーバ104はアクセスを拒否し、リクエストしているエンドユーザに適切なメッセージを供給する。使用済みチケットを追跡することによって、システムは、許可されたエンドユーザがウェブサーバ106から受け取ったストリーミングリクエストを他者と共有するのを防止する。
【0048】
更に、アクセスを認可するかどうかを判断する際にエラー計算を使用することも本発明の範囲内である点を理解されたい。例えば1つのエラー計算は、例えば、予め定められた時間期間(例えば15分、30分など)、適用可能なセキュリティインターバルの設定百分率(例えば50%、125%など)、又は他のエラー計算などのエラーインターバルに現在時刻を加算及び/又は減算した値に基づいて、メディアサーバ104が1つ又はそれ以上の追加チケットを生成するステップを含む。このようなエラー計算は、上記の実施形態において第2又は第3の時間値に対する代替値として、或いはこれに加えて使用することができる。
【0049】
別の実施形態では、ウェブサーバ106及びメディアサーバ104は、上記の実施形態とは異なる方法で時間値を計算することによってチケットを生成する。1つの例示的な実施形態では、ウェブサーバ106及びメディアサーバ104は、現在時刻を計算し、これをセキュリティインターバル以外の或るインターバルの倍数に切り下げ又は切り上げる。セキュリティインターバルが15分であるこうした1つの実施形態では、ウェブサーバ106は、5分の最も近いインターバルに切り下げられた現在時刻に基づいてチケットを生成する。次に、ストリーミング・メディアサーバ104は、同じ5分のインターバルに切り下げられた現在時刻に基づいてチケットを生成する。チケットが一致しない場合、メディアサーバ104は、次に古いインターバルに切り下げされた時間に基づいてチケットを生成するステップに進む。メディアサーバは、設定された回数又はウェブサーバとメディアサーバのチケットが一致するまで、次に古いインターバルに基づいてチケットを生成し続ける。好適には、メディアサーバ104は、合計が少なくともセキュリティインターバルに及ぶタイムインターバルに基づいて繰り返し新しいチケットを生成する。本実施例ではメディアサーバ104は、各5分の合計15分のインターバルで少なくとも3つのチケットを生成する。
【0050】
許可プロセスにおいてエンドユーザIDの使用を完全に省略すること、或いはエンドユーザIDを上述の方法とは異なる方法で使用することは、本発明の範囲内にある点は理解すべきである。例えば、別の実施形態では、エンドユーザIDは、ハッシュアルゴリズムに対する入力ストリングの一部としては使用されない。その代わり、データベース108は、どのエンドユーザがコンテンツへのアクセスをリクエストしたかを追跡するテーブルを含む。このような実施形態は、ストリーミングIDによって識別されるコンテンツを、エンドユーザIDによって識別され、該コンテンツストリーミングに既にアクセス又は視聴したエンドユーザと関連付けるレコードを含む視聴ユーザ(ストリーミング)テーブルを含む。同様に本実施形態は、プレイリストIDによって識別されるプレイリストを、エンドユーザIDによって識別され、該プレイリストに既にアクセス又は視聴したエンドユーザと関連付けるレコードを含む視聴ユーザ(プレイリスト)テーブルを含む。許可チケットを生成する前に、ウェブサーバは、適切な視聴ユーザテーブルをチェックし、同じエンドユーザが特定のストリーミング又はプレイリストへのアクセスをリクエストしたかどうかを判断する。エンドユーザが既にアクセスをリクエストしていた場合、ウェブサーバは、アクセスを拒否するか、或いはエンドユーザに対して、これ以後のアクセスに対しては再度課金されることをエンドユーザに示すウェブページを供給する。テーブルは、セキュリティインターバルなどの時間期間又はこれを超える或る期間の後に自動的にクリアされる。
【0051】
本発明はまた、例えば、コンテンツの所有者であるクライアントの代わりに、サービスプロバイダがウェブサーバ、ストリーミング・メディアサーバ、及びプレイリストサーバを操作する比較的より複雑なシステムにおいて具現化することができる点を理解すべきである。このような1つの実施形態を次に図6−8を参照しながら説明する。本実施形態の機能性の大部分が、図3の実施形態の機能性と同じであり、従って同じ技術のどれによっても実施することができる点は当業者には理解されるであろう。
【0052】
図6に示されるように、本システムは、図1の実施形態の構成要素と類似の幾つかの構成要素を含み、エンドユーザプロセッサ602、1つ又はそれ以上のストリーミング・メディアサーバ604、及びデータベース608を含む1つ又はそれ以上のウェブサーバ606を含み、これらの全てはインターネット又は他のネットワークに結合される。加えて、本実施形態のシステムは、サービスプロバイダによって同様に動作されるプレイリストサーバ610も含む。好適には、ウェブサーバ606、データベース608を含むストリーミング・メディアサーバ604、プレイリストサーバ610は、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)などのサービスプロバイダのネットワーク、並びにインターネットに接続される。
【0053】
一般に、データベース608は、図2の実施形態のデータベース内に収容されている同じ情報を含むが、該情報はクライアントのアカウント毎に格納される。図7に示されるように、データベース608は、アカウントIDによって識別される各クライアントのレコードを含むアカウントテーブル702を含む。各レコードは更に、クライアント名、アドレス、請求書発行情報及び同様のものなどのクライアント識別情報(「クライアント情報」)、クライアントのコンテンツが保護されているかどうかに関する表示(「保護許可」)、クライアントのセキュリティキー(「セキュリティキー)、及びセキュリティインターバル(「セキュリティインターバル」)を含む。
【0054】
図2の実施形態と同様に本データベース608はまた、ストリーミングIDによって識別される各コンテンツファイルのストリーミング識別情報を含むストリーミングテーブル704と、エンドユーザIDを許可されたグループIDに関連付ける許可ユーザテーブル706と、プレイリストIDによって識別される各プレイリスト用のプレイリスト識別情報を含むプレイリストテーブル708と、所定のプレイリストIDに関連付けられたストリーミングIDを識別するプレイリストストリーミングテーブル710とを含む。図2のデータベースに関連して説明された情報フィールドに加えて、本ストリーミングテーブル704及びプレイリストストリーミングテーブル708は更に、各コンテンツファイル及び各プレイリストとそれぞれ関連付けられたアカウントIDを識別するフィールドを含む。
【0055】
本データベース608はまた、ストリーミングサーバテーブル712を含み、該テーブルは、ストリーミングIDによって指定される各コンテンツファイルのレコードを含み、コンテンツファイルが存在する特定のストリーミング・メディアサーバ104のホスト名を識別する。図2の実施形態と同様、ホスト名はメディアサーバ104のDNS名である。
【0056】
ここで、本実施形態の動作を図8のワークフロー図に関連して説明する。本実施例の目的のために、エンドユーザは、保護コンテンツの1つのアイテムを有するプレイリストへのアクセスをリクエストする。最初に、ウェブサーバ606は、エンドユーザに対し許可アプリケーションにログインすることをリクエスし、特定のストリーミング・メディアを視聴するオプションをエンドユーザに呈示するウェブページを提供する(ステップ802)。図3の実施形態と同様に、例示的なウェブページは、リンクを起動することによって特定のコンテンツファイルを選択し、エンドユーザIDを提供し、及び請求書発行情報を提供することをエンドユーザにリクエストするフォームを含むことができる。ウェブページに応答して、エンドユーザは、エンドユーザID及びクレジットカード情報を提供し、ストリーミングリクエストリンクを起動し、これにより特定のストリーミング・メディアコンテンツファイルへのアクセスをリクエストする。プレイリストIDが「789000」の場合の例示的なストリーミングリクエストリンクは以下の通りである。
<A href”http://playlistserver.company.com/malceplaylist.dll?ID=789000”>
【0057】
エンドユーザが、ストリーミングリクエストリンクを起動すると、エンドユーザプロセッサ602上で実行されるプログラミングスクリプトによって、ストリーミングリクエストリンク及びエンドユーザIDがウェブサーバ606に送られることになる(ステップ804)。当業者は、本質的に、例えばC++、パール(Perl)、ビジュアルベーシック、ジャバ(Java)及び同様のものを含むどのようなプログラム言語でもエンドユーザのスクリプトを実行することができる点を認識するであろう。本実施形態では、スクリプトはJavaスクリプトであり、エンドユーザのウェブブラウザと連動して実行される。
【0058】
ウェブサーバ606がスクリプトからストリーミングリクエストを受け取ると、ウェブサーバ606は、許可ソフトウエア・プラグインの指示の下でチケットを生成する。この件に関して、ウェブサーバ606は、データベース608に対して許可チケットの生成の際に使用する秘密キー(本実施形態では、リクエストされたプレイリストに関連するセキュリティキーとセキュリティインターバル)のリクエストを発行する(ステップ808)。これに応答して、データベース608はウェブサーバ606に秘密キーを返す(ステップ808)。
【0059】
データベース608から秘密キーを取得した後、ウェブサーバ606は、ストリーミングされたものではなくプレイリストID(本実施形態ではプレイリストIDで置き換える)を使用して、図4に関連して前述されたようにチケットを生成する(ステップ810)。上述のように、ウェブサーバ606は、秘密キー、ストリーミングID、エンドユーザID、及び時間値をハッシュアルゴリズムに適用してチケットを生成する。次いで、ウェブサーバ606は、エンドユーザプロセッサ602上で実行されるウェブブラウザにチケットとエンドユーザIDを返す(ステップ812)。
【0060】
チケットを受け取った後、エンドユーザプロセッサ602上で実行されるスクリプトは、ストリーミングリクエストリンクの最後に情報を付加する(ステップ814)。例示的なリンクは以下に示される。
<A href”http://playlistserver.company. com/makeplaylist?ID=789000&TICKET=uvw123xyzretum&USER_ID=abcl23def”>
ここで、プレイリストIDは「789000」で表され、チケットは「uvw123xyz」で表され、エンドユーザIDは「abc123def」で表される。
【0061】
次いで、エンドユーザプロセッサ602上で実行されるスクリプトにより、ホスト名「playlistserver.company.com」によってストリーミングリクエストリンクで識別されるプレイリストサーバ610が呼び出される(ステップ816)。従って、プレイリストサーバ810は、リンク、プレイリストID、チケット、及びユーザIDが提供される。「makeplaylist.dll」オブジェクトの制御下で、プレイリストサーバ610は、コンテンツがウインドウズメディア・フォーマットであるASXファイルなどのリダイレクタファイルを生成する(ステップ818)。「makeplaylist」プログラムは、例えばASPを含む幾つかのプログラム又は技術のいずれかを使用して実行することができる。リダイレクタファイルは、チケット及び公開キー(すなわちストリーミングID及びエンドユーザID)と共にリクエストされたコンテンツへのリンクを含む。リダイレクタファイルを生成するために、プレイリストサーバ610はデータベース608にアクセスし、プレイリストと、ストリーミングIDに関連付けられたホスト名、URLプレフィックス、及びファイル名を含むコンテンツファイルへのリンクに必要とされる情報とを含むコンテンツファイルのストリーミングIDを検索する。
【0062】
別の実施形態では、ストリーミングリクエストにチケットを付加するためにエンドユーザのスクリプトは使用されない。その代わりに、エンドユーザが、エンドユーザIDを提供してストリーミングリクエストリンクを起動する(ステップ804で)ときに、ウェブサーバ606上で実行される認証アプリケーションがチケットを生成し、該チケットとエンドユーザIDとをストリーミングリクエストリンクに付加し、プレイリストサーバ610を直接呼び出してリダイレクタファイルを生成する。ウェブサーバ606はまた、エンドユーザプロセッサ602上のメディアプレーヤを識別する情報をプレイリストサーバ610に渡すので、プレイリストサーバ610は、メディアプレーヤにリダイレクタファイルを転送する(これによりステップ812、814、及び816が不要になる)。このような実施形態を図10を参照して以下に説明する。
【0063】
次に、プレイリストサーバ610は、エンドユーザプロセッサ602でメディアプレーヤにASXリダイレクタファイルを渡す(ステップ820)。本実施例の目的のために、ASXファイルは以下のように表される。
<ASX>
<ENTRY>
<REF href=”mms://mediaserver.company.com/streaml.asf?ID=123456&TICKET=uvwl23xyz&USER_ID=abcl23def”>
</ENTRY>
</ASX>
ここで、URLプレフィックスが「mms://」で表され、適切なメディアサーバ604のホスト名が「mediaserver.company.com」で表され、ファイル名が「stream1.asf」で表され、コンテンツストリーミングIDのリクエストされたアイテムが「123456」で表され、チケットが「uvw123xyz」で表され、エンドユーザIDが「abc123def」で表される。
【0064】
リダイレクタファイルは、コンテンツファイル用のメタデータなどの他の情報、或いは広告などの保護されていない他のファイルを含むことができる。
【0065】
ASXファイルを受け取った後、エンドユーザプロセッサ602は、ストリーミング・メディアコンテンツをリクエストするステップに進む。より詳細にはメディアプレーヤは、ASXファイルで識別された「mediaserver.company.com」(すなわちストリーミング・メディアサーバ604)を呼び出す(ステップ822)。呼び出しされると、メディアプレーヤは、リクエストされたコンテンツのストリーミングIDのコピー、ウェブサーバ604によって生成されたチケット、及びエンドユーザIDをストリーミング・メディアサーバ604に提供する。
【0066】
メディアプレーヤの呼び出しに応答して、ストリーミング・メディアサーバ604は、リクエストされたコンテンツへのエンドユーザのアクセスを認可するかどうかを判断するステップに進む(ステップ824)。ストリーミング・メディアサーバ604は、1つ又はそれ以上の認証チケットを独自に生成し、そのチケットをウェブサーバ606によって生成されたチケットと比較することによってアクセスを認可するかどうかを判断をする。許可チケットの生成及び比較プロセスは、ストリーミングIDではなくプレイリストIDを使用して、図5に関連して説明された同じ方法で行われる。メディアサーバ604によって生成されたチケットが、ウェブサーバ606によって生成されたチケットと一致する場合には、メディアサーバ604は、エンドユーザにリクエストされたコンテンツへのアクセスを認可する(ステップ824)。
【0067】
上記の実施形態は、保護されたコンテンツへの無許可のアクセスに対して該コンテンツの所有者に十分なレベルの保護をもたらすことが理解されると同ときに、更に高いレベルの保護を実装することも可能である。1つのこのような更に高いレベルの保護は、特定のエンドユーザが所与の任意の時間にアクセスできるコンテンツファイル数を制限することを含む。別のレベルの保護は、特定のユーザが保護されたコンテンツにアクセスするのに使用できる異なるプロセッサ(例えばコンピュータ)の数を制限する。上述の実施形態のいずれもこのような更に高いレベルの保護を含むように修正することができ、ここで図9と10に関連して更に高い保護の実施を説明する。
【0068】
図9の概略図で分かるように、本実施形態は、図6−8に示され関連して説明された実施形態に基づく。上述のように、一般にコンテンツ配信及び認証システムは、ウェブサーバ606、データベース608、及びプレイリストサーバ610を含む。更に、必ずしも必要ではないが、本システムは、複数のストリーミング・メディアサーバ604−1、604−2、604−n(総称して604と称する)を含み、その各々がサーバIDによって識別され、保護されたコンテンツを収容している。好適には、ストリーミング・メディアサーバ604は各々、同じストリーミング・コンテンツのコピーを収容し、システムは、ラウンドロビン又は他の負荷バランス手法を使用することにより複数のストリーミング・メディアサーバ上の負荷バランスを取る。データベース608は、格納されるサーバIDと各コンテンツファイルを関連付ける。以下の説明に基づいて理解されるように、本実施形態は、異なるメディアサーバ上の同じコンテンツファイルへのアクセスが許可された別のユーザからアクセス情報を受け取ることによって、無許可のエンドユーザが特定のメディアサーバ上のコンテンツファイルにアクセスすることを防止するので、複数のストリーミング・メディアサーバと共に使用するのに特に好適である。図9に示されるように、上述の構成要素は、保護されたネットワークを介して互いに通信するのが好ましいが、しかしながら、別の実施形態では、グローバルキャッシュ・サーバ902は、ストリーミング・メディアサーバ604とだけ直接接続され、ビジネスサーバ904は、グローバルキャッシュ・サーバ902とだけ直接接続されている。上述の実施形態と同様、エンドユーザは、インターネット又は他のネットワークに結合されたエンドユーザプロセッサ602−1、602−2、602−m(総称して602と称する)を介して保護されたコンテンツにアクセスする。
【0069】
一般に、グローバルキャッシュ・サーバ902は、ストリーミング・メディアサーバ604に対する各エンドユーザの接続に関する接続情報をキャッシュし、エンドユーザIDに基づいて高いレベルの認証保護を提供する。接続情報は、キャッシュ又はデータベースなどのローカルのデータ記憶装置、又はデータベース608などの遠隔の記憶装置に格納される。以下でより詳細に説明されるように、各ストリーミング・メディアサーバ604は、当該ストリーミング・メディアサーバ604を許可した各エンドユーザのアクセスに対してグローバルキャッシュ・サーバ902に接続情報を転送する。本実施形態では、接続情報は、エンドユーザID、各エンドユーザのメディアプレーヤのグローバル固有ID(GUID)、エンドユーザがアクセスを許可されたストリーミング・コンテンツのフォーマット(例えばウインドウズメディアプレーヤ又はリアルプレーヤフォーマット)、エンドユーザによってアクセスされるコンテンツが存在するサーバのID、及びエンドユーザがリクエストされコンテンツにアクセスしている特定のエンドユーザプロセッサ602の識別子(「ppvスロット」と称される)を含む。周知のように、メディアプレーヤのプロバイダは、一般に各メディアプレーヤにGUIDを割り当ててメディアプレーヤを識別する。
【0070】
各エンドユーザは、該エンドユーザがコンテンツにアクセスすることができる幾つかのエンドユーザプロセッサ602を論理的に割り当てられる。本実施例では各エンドユーザは、最大3つの異なるエンドユーザプロセッサ602からコンテンツにアクセスすることができる。3つの異なるプロセッサは、例えば、エンドユーザの家庭用コンピュータ、業務用コンピュータ、及びモバイルコンピュータ、ウェブ対応の携帯電話、若しくはウェブ対応の携帯情報端末(PDA)のいずれかとすることができる。更に、3つのプロセッサ602の各々に対し、エンドユーザは、システムによってサポートされている各メディアフォーマット毎に複数のメディアプレーヤを有することができる。本実施形態では、ウインドウズメディアプレーヤ又はリアルプレーヤフォーマットがサポートされる。従って、本実施形態では、各エンドユーザは、3つまでの異なるppvスロット値だけを有することができ、各ppvスロット値に対して、エンドユーザは、各タイプのフォーマットのメディアプレーヤ毎に2つのGUIDを有することができる。
【0071】
本実施形態では、特定のエンドユーザプロセッサ602のppvスロット値は、当該プロセッサのクッキーIDである。一般に、クッキーは、エンドユーザが特定のエンドユーザプロセッサ602を介してシステムウェブサイトを最初に訪れたときに、ウェブサーバ606がエンドユーザのブラウザに対して付与するデータのセットである。ウェブサーバ606は、クッキーが含むエンドユーザに関する情報を保存し、エンドユーザのブラウザは、通常、エンドユーザプロセッサ602上のブラウザのシステムフォルダ内に格納されるテキストファイルとしてクッキーを格納する。ユーザのプロセッサ602がクッキーを受け入れない場合には、アプリケーションは、ユーザに対してオプションを変更するようにリクエストする応答を生成することになる。
【0072】
本実施形態では、ppvスロット情報は、データベース608内のトランザクションテーブルに格納される。一般に、トランザクションテーブルは、エンドユーザを特定のストリーミング・メディアイベント及びそのイベントの3つのppvスロットと関連付ける。この目的のために、トランザクションテーブルは、以下のフィールド、すなわち、エンドユーザID、イベントID(所与のメディアイベントを一意的に識別する)、ストリーミングID、イベントに対するエンドユーザのアクセスの日付、第1のppvスロット値、第1のppvスロットのGUID、第2のppvスロット値、第2のppvスロットのGUID、第3のppvスロット値、第3のppvスロット値のGUIDを含む。本明細書の説明に基づいて、エンドユーザ及びppvスロット情報を特定のイベントと関連付けることを利用して、1つのイベントにつき各エンドユーザに対しエンドユーザプロセッサ602を3つ以下に制約することができ、一方、トランザクション・データベースがエンドユーザを単にppvスロット情報に関連付けている(イベント毎ではなく全イベントにわたって)別の実施形態では、各ユーザを全イベントにわたって3つのエンドユーザプロセッサ602までに制約することができる点は理解されるであろう。
【0073】
以下により詳細に説明されるように、ビジネスサーバ904は、ppvスロット値を含む接続情報の全て又は一部をグローバルキャッシュ・サーバ902から受け取る。グローバルキャッシュ・サーバ902と同様、ビジネスサーバ904は、ローカル又は遠隔のデータ記憶装置を含み、各固有のセットの接続情報についての別個のレコードをデータベース内に格納する。接続情報に基づいて、ビジネスサーバ904上に存在する許可アプリケーションは、エンドユーザのアクセスを3つ以下のエンドユーザプロセッサ602に制限し、該3つのエンドユーザプロセッサ602の各々について単一のメディアプレーヤに制限する。許可されるエンドユーザプロセッサ602の数(従ってppvスロット値の数)は、ビジネスサーバ904の許可アプリケーションにおいて構成変更可能である。
【0074】
本実施形態に関連して説明された更に高いレベルの保護は、上述の実施形態の認証システム及び方法と共に利用することができるが、本実施形態に関連して説明された更に高いレベルの保護の1つ又はそれ以上のいずれかは、認証メカニズム単独で実施してもよく、或いは、本明細書で上記に説明された以外の認証メカニズムと共に実施してもよい点は理解されるであろう。従ってここで、単なる例証として、更に高いレベルの保護を図10のワークフロー図を参照して説明する。
【0075】
最初にウェブサーバ606は、サービスへの登録と許可アプリケーションへのログインをエンドユーザにリクエストするウェブページを該エンドユーザに供給する。ウェブページはまた、各々が別個のストリーミングリクエストリンクを有する多くのストリーミングメディアファイルの1つを視聴するオプションをエンドユーザに呈示する(ステップ1002)。これに応答して、エンドユーザは、エンドユーザIDを提供し、ウェブページ上の所望のストリーミングリクエストリンクを起動して、これにより特定のストリーミング・メディアコンテンツファイルへのアクセスをリクエストする。エンドユーザはまた、クレジットカード番号などの支払い情報又は他のアカウント情報を提供することができる。上記の実施形態と同様、エンドユーザIDの提供並びにストリーミングリクエストリンクの起動は、単一のステップ又は別個のステップとして行うことができる。エンドユーザがログインするときには、Javaスクリプト又は他のスクリプト若しくは構成要素などのウェブサーバ606上で実行される認証アプリケーションは、エンドユーザがこれまでにそのシステムにログインしたことを示すppvスロットクッキーについてエンドユーザプロセッサ602をチェックする。クッキーが存在しない場合には、ウェブサーバ606は、特定のエンドユーザプロセッサ602にクッキーを割り当て、これをエンドユーザプロセッサ602上に格納し、これによってプロセッサ602を識別する。ストリーミングリクエストリンクを起動することによって、ストリーミングリクエストリンクとエンドユーザIDは、ウェブサーバ606に伝達される(ステップ1004)。
【0076】
エンドユーザがシステムにログインし、コンテンツへのアクセスをリクエストするときには、ウェブサーバ606の認証アプリケーションは、エンドユーザが割り当てられた3つのppvスロットを超えているかどうかを判断し、超えていない場合には、トランザクションテーブルを更新する(ステップ1010a)。この点において、ウェブサーバ606は、エンドユーザがシステムにログインしたときに割り当てられたクッキーIDを、特定のエンドユーザ(エンドユーザIDによって識別された)及びイベント(イベントIDによって識別された)に関するトランザクションテーブル内の全てのppvスロット値と比較する。トランザクションテーブルが既に3つのppvスロット値を含み、受け取ったクッキーIDが、既存の3つのppvスロット値のどれとも一致しない場合には、エンドユーザは、第4のプロセッサから許可されていないアクセスを試みたものとみなされ、このアクセスは拒否される。
【0077】
トランザクションテーブルが、そのイベントのエンドユーザに対して3つより少ないppvスロット値を含む場合には、ウェブサーバ606は、トランザクションテーブル内にレコードを作成する。より具体的には、ウェブサーバ606は、エンドユーザID、イベントID(エンドユーザによって購入されたコンテンツに以前に割り当てられた)、購入されたコンテンツのストリーミングID(ストリーミングリクエストリンクのプレイリストIDに対応するものとして、データベース608からウェブサーバ606が検出する)、日付、及びppvスロット値を使用してレコードを作成する。
【0078】
エンドユーザが、ppvスロット情報に基づいてアクセスが拒否されない場合には、ストリーミングリクエストリンク及びエンドユーザIDを受け取ると、ウェブサーバ606上で実行される認証アプリケーションは、データベース608にアクセスし(ステップ1006)、該データベース608から秘密キー情報を受け取り(ステップ1008)、チケットを生成して、チケット、エンドユーザID、及びppvスロット値をストリーミングリクエストリンクに付加する(ステップ1010b)。次いで、ウェブサーバ606上で実行される認証アプリケーションは、付加されたチケット、エンドユーザID、及びppvスロット値を含むストリーミングリクエストリンクをプレイリストサーバ610に渡す(ステップ1012)。
【0079】
プレイリストサーバ610が、ストリーミングリクエストリンク、チケット、エンドユーザID、及びppvスロット値を受け取ると、プレイリストサーバ610は、リダイレクタファイルを生成するステップに進む。上述のように、リダイレクタファイルを生成するために、プレイリストサーバ610は、データベース608にアクセスし(ステップ1014)、プレイリスト、並びにその全てが特定のストリーミングIDと対応付けられた、ホスト名、URLプレフィックス、及びファイル名を含むコンテンツファイルのストリーミングIDを検索する(ステップ1016)。この情報を使用して、プレイリストサーバ610は、リダイレクタファイルを作成する(ステップ1018)。次いで、プレイリストサーバ610は、GUIDにより識別されるエンドユーザプロセッサ602の特定のメディアプレーヤにリダイレクタファイルを渡す(ステップ1020)。本実施形態の例示的なリダイレクタファイルを以下に示す。
<ASX>
<ENTRY>
<REF href=”mms://mediaserver.company.com/streaml.asf?ID=123456&TICKET=uvwl23xyz&USER_ID=abcl23def&PPV_SLOT=1”>
</ENTRY>
</ASX>
ここで、URLプレフィックスが「mms://」で表され、適切なメディアサーバ604のホスト名が「mediaserver.company.com」で表され、ファイル名が「stream1.asf」で表され、コンテンツストリーミングIDのリクエストされたアイテムが「123456」で表され、チケットが「uvw123xyz」で表され、エンドユーザIDが「abc123def」で表され、ppvスロット値が「1」である。
【0080】
リダイレクタファイルを受け取った後、エンドユーザプロセッサ602上のメディアプレーヤは、適切なストリーミング・メディアサーバ604にストリーミング・メディアコンテンツをリクエストするステップに進む(ステップ1022)。より具体的には、メディアプレーヤは、リダイレクタファイルにおいて識別された特定のストリーミング・メディアサーバ604を呼び出す。呼び出されると、メディアプレーヤは、リクエストされたコンテンツのストリーミングIDのコピー、ウェブサーバ606によって生成されたチケット(ステップ1010で)、エンドユーザID、及びppvスロット値をストリーミング・メディアサーバ604に提供する。更にメディアプレーヤは、そのGUIDをストリーミング・メディアサーバに渡す。
【0081】
エンドユーザプロセッサ602からオリジナルのストリーミングリクエスト及びログイン情報を受け取ると、ストリーミング・メディアサーバ604上で実行されるアプリケーションは、メディアプレーヤがGUIDを渡した(又は無効のデフォルト値を渡した)かどうかを判断する。渡していない場合、アプリケーションは、認証プロセスを中止することによってエンドユーザのアクセスを拒否し、エンドユーザに通知する。好適には、エンドユーザのメディアプレーヤがGUIDを提供しなかったことがデータベース608又は他のデータ記憶装置内に記録され、次回にこのエンドユーザがシステムにログインするときに、システムは、GUIDの送信を可能にする方法に関する指示をエンドユーザに提供する。
【0082】
図6−8の実施形態と同様、ストリーミング・メディアサーバ604がメディアプレーヤの呼び出しを受けると、ストリーミング・メディアサーバ604は、1つ又はそれ以上の認証チケットを個別に生成し、その1つ又はそれ以上のチケットをメディアプレーヤから受け取られたチケットと比較する(ステップ1024)。チケットが「一致する」場合、ストリーミング・メディアサーバ604は、コンテンツへのアクセスを許可し、エンドユーザにコンテンツをストリーミングする(ステップ1026)。
【0083】
ストリーミングサーバ604が、エンドユーザにコンテンツへのアクセスを許可する度に、ストリーミング・メディアサーバ604は、特定の接続を識別する情報をグローバルキャッシュ・サーバ902に送る(ステップ1028)。上述のように、このような接続情報は、エンドユーザID、ストリーミング・コンテンツのフォーマット(例えばウインドウズのメディアプレーヤ又はリアルプレーヤ)、エンドユーザにコンテンツを提供するストリーミング・メディアサーバ604のサーバID、エンドユーザのメディアプレーヤのGUID、及びエンドユーザがシステムにログインした特定のエンドユーザプロセッサ602を表すppvスロット値を含むのが好ましい。
【0084】
ストリーミングサーバ604が、エンドユーザにコンテンツへのアクセスを許可する度に、ストリーミング・メディアサーバ604はまた、ストリーミング名又はストリーミングID、エンドユーザID、及びリクエストに関する接続情報をローカルにキャッシュする。ストリーミング接続が終了する場合は常に、ストリーミング・メディアサーバ604は、キャッシュ中の対応するエントリーを削除する。従って、キャッシュ中の全てのエントリーは、現在のストリーミング又はアクセスを表す。ソフトウェア構成要素又はオブジェクトなどのストリーミング・メディアサーバ604上で実行されるポーリングサービスを使用して、メディアサーバ604は、エントリーのキャッシュを周期的に(例えば2分毎に)ポーリングする。各エントリーに対し、ストリーミング・メディアサーバ604は、グローバルキャッシュ・サーバ902に接続情報を再送する。
【0085】
上述のように、グローバルキャッシュ・サーバ902は、受け取られた接続情報を各レコードが含んでいるデータベース又はキャッシュを含む。グローバルキャッシュ・サーバ902が、特定のユーザに関する接続情報を受け取ると、サーバ902は、通常、そのデータベース内に新しいレコードを作成する。しかしながら、新しいレコードを作成する前に、グローバルキャッシュ・サーバ902は、そのデータベースが新規に受け取った接続情報と同じエンドユーザIDを有するレコードを含むかどうかを最初に判断する(ステップ1030)。
【0086】
グローバルキャッシュ・サーバ902はまた、アクセスが終了するときに特定のアクセスに関するレコードを削除する。上述のように、各ストリーミング・メディアサーバ604は、接続情報によって識別されるアクセスの期間中に所定の間隔でグローバルキャッシュ・サーバ902に接続情報の各セットを再送する。グローバルキャッシュ・サーバ902は、接続情報が再送されなかったレコードを周期的に消去し、これにより最新のアクセスに関するレコードだけを保持する。別の実施形態では、グローバルキャッシュ・サーバは、別の方法に基づいて、もはや使用されていない接続に関するレコードを消去することができる。例えば、別の実施形態において、グローバルキャッシュ・サーバ902は、該グローバルキャッシュ・サーバが特定の接続が終了したことを示す終了メッセージをストリーミング・メディアサーバから受け取るまで、特定の接続に関するレコードを保持する。つまり、グローバルキャッシュ・サーバのデータベース内にレコードが存在することは、特定のエンドユーザ(エンドユーザIDによって識別される)が現在コンテンツファイルにアクセスしていることを表している。
【0087】
グローバルキャッシュ・サーバ902が受け取ったエンドユーザIDと同じエンドユーザIDを備えたレコードを既に有する場合、エンドユーザ(又はアクセス情報を取得した無許可のユーザ)は、複数のコンテンツファイルに同ときにアクセスし、或いは複数回同じコンテンツファイルにアクセスすることを試みている。本実施形態では、このような複数アクセスは許可されない。従って、グローバルキャッシュ・サーバ902は、新規に受け取られる接続情報が受け取られているメディアサーバと、現存のデータベースレコード中のサーバIDによって識別されるメディアサーバの両方にエンドユーザのアクセスを終了させるリクエストを発行する。ストリーミング・メディアサーバ604がエンドユーザから接続解除されると、グローバルキャッシュ・サーバ902は、そのデータベースから特定のエンドユーザに関係するレコードを削除する。
【0088】
この更に高いレベルの許可保護は任意選択であり、異なる方法で実施することができる点は理解されるべきである。例えば、別のサーバが、ユーザが複数アクセスを試みているかどうかを判断するためにグローバルキャッシュ・サーバ902に照会することができる。このような1つの実施形態では、プレイリストサーバ610がウェブサーバ606からリクエストリンク、チケット、及びエンドユーザIDを受け取った後で、グローバルキャッシュ・サーバ902を呼び出し、グローバルキャッシュ・サーバ902が既にコンテンツにアクセスしているエンドユーザのレコードを有するかどうかを判断する(ステップ1018a)。グローバルキャッシュ・サーバ902は、エンドユーザが現在コンテンツにアクセスしているか否かに関する表示をプレイリストサーバ610に返信する(ステップ1018b)。これに応じて、プレイリストサーバ610上で実行される認証アプリケーションは、偽又は無効のリダイレクタファイルを生成する。このような1つの実施例では、リダイレクタファイルは、チケットが存在せず、又はストリーミング・メディアサーバ604によって検出されることになるデフォルトチケットを含むことにより、無効である。
【0089】
グローバルキャッシュ・サーバ902が、そのデータベースにおいて新しい接続情報で受け取られたエンドユーザIDと同一のエンドユーザIDを有するレコードが存在しないことを識別した場合、グローバルキャッシュ・サーバ902は、そのデータベースにおいて受け取った接続情報を用いて新しいレコードを作成し、エンドユーザのコンテンツへのアクセスを妨げない。
【0090】
グローバルキャッシュ・サーバ902が、エンドユーザの接続を解除しない場合、サーバ902は、接続情報の全部又は一部をビジネスサーバ904に中継し、該ビジネスサーバは、2つの更に高いレベルの任意選択の許可保護を有効にする(ステップ1034)。本実施形態では、グローバルキャッシュ・サーバ902は、エンドユーザID、ppvスロット、GUID、及びストリーミングフォーマットをビジネスサーバ904に中継する。
【0091】
ビジネスサーバ904は、グローバルキャッシュ・サーバ902から受け取ったこの接続情報を使用して、メディアプレーヤのGUIDに部分的に基づいてコンテンツへのアクセスを制御する(ステップ1036)。上述のように、各エンドユーザは、各々が各フォーマットに対し1つだけのメディアプレーヤを有する3つの異なるエンドユーザプロセッサ602からシステムにログインし、コンテンツにアクセスすることが許可される。従って、特定のエンドユーザプロセッサ602(ppvスロットによって識別される)に関し、エンドユーザが特定のメディアフォーマット用の特定のメディアプレーヤ(GUIDにより識別される)を用いてアクセスするようリクエストし、該メディアプレーヤが、同じフォーマットのメディアに対して同じエンドユーザプロセッサ602上で以前使用されていたメディアプレーヤとは異なる場合、ビジネスサーバ904は、エンドユーザの接続を切断させることになる。一般に、この決定は、トランザクションテーブルにアクセスし、新しく受け取られる接続情報をエンドユーザ及びppvスロット値に関する既存のエントリーと比較することによって行われる。
【0092】
ビジネスサーバ604が、所与のエンドユーザ及びppvスロットに関する接続情報とを受け取ると、ビジネスサーバ904は、トランザクションテーブルにアクセスし、GUIDがこの特定のエンドユーザ、ppvスロット、及びフォーマットについて以前受け取ったかどうかを判断する。受け取っていない場合には、ビジネスサーバ904がトランザクションテーブルを更新させてGUIDを反映させ、ビジネスサーバ904は、エンドユーザのアクセスを終了するために何もしない。
【0093】
受け取られた接続情報が、GUIDが既に受け取ったトランザクションテーブル中のレコードに対応する場合、ビジネスサーバ904は、受け取られたGUIDがそのppvスロットに関して格納された特定のメディアフォーマット用のGUIDと一致するかどうかを判断する。GUIDが一致しない場合には、ビジネスサーバ904は、グローバルキャッシュ・サーバ902にエンドユーザのコンテンツへのアクセスを終了する旨の命令を送信し、エンドユーザのアクセスは拒否される。このような命令は、エンドユーザIDを指定するのが好ましい(ステップ1038)。次に、グローバルキャッシュ・サーバ902は、現在エンドユーザにコンテンツを供給している1つ又はそれ以上のストリーミング・メディアサーバ604にリクエストを発行する。
【0094】
従って、エンドユーザが一時的にコンテンツへのアクセスが許可されていても、本実施形態は、無許可のエンドユーザに対してアクセスを拒否するものとみなされるべきである。このような一時的なアクセスは、グローバルキャッシュ・サーバ902及びビジネスサーバ904での処理に起因してアクセスの許可に遅延が生じないこと望ましいので、本実施形態においては許可される。グローバルキャッシュ・サーバ902及びビジネスサーバ904の処理に対してアクセスが遅延した特定の事例においては、エンドユーザのメディアプレーヤがタイムアウトとなり、アクセスの認可が妨げられる可能性がある。その結果、本実施形態のメディアサーバ604は、チケットが一致すると直ちにアクセスを認可し、これによりメディアプレーヤがタイムアウトとなることを防ぎ、更に、グローバルキャッシュ・サーバ902又はビジネスサーバ904がそのアクセスを不適切であると判断した場合には、このようなアクセスは終了する。
【0095】
ビジネスサーバ904が、新しく受け取られたメディアプレーヤのGUIDがppvスロット及びフォーマットに関しメモリ内に格納されたGUIDと一致すると判断した場合、ビジネスサーバ904は、何も行わず、エンドユーザのアクセスが継続することを許可する。
【0096】
グローバルキャッシュ・サーバ902が、システム内の全てのストリーミング・メディアサーバ904からの接続情報を受け取ることが好ましい限りは、各々がメディアサーバのサブセットから接続情報を受け取る複数のグローバルキャッシュ・サーバを含むことができる点を理解されたい。しかしながら、このような実施形態では、複数のグローバルキャッシュ・サーバは相互に通信している。
【0097】
更に、特定の実施形態において、グローバルキャッシュ・サーバ902及びビジネスサーバ904の機能性を1つのサーバに組み合わせてもよいが、2つの別個のサーバの使用には、スケーラビリティを含む幾つかの利点がある。例えば、許可システムが複数のコンテンツ所有者のアカウントに対して利用される場合には、各アカウントが別個の認証ルールを実施することができ、各ルールは、グローバルキャッシュ・サーバへのアクセスを有する別個のビジネスサーバ上にある。このような実施形態において、接続情報は、現存する接続情報又はアカウントIDなどの接続情報に含まれる付加的なフィールドに基づいて適切なビジネスサーバに送ることができる。
【0098】
本実施形態では、システムは、エンドユーザのppvスロット情報(ppvスロット値とGUIDを含む)を再登録及びクリアする機会を各エンドユーザに提供し、これによりエンドユーザが異なるマシン及び/又はメディアプレーヤからのコンテンツにアクセスすることが可能になる。
【0099】
他の別の実施形態では、メディアサーバ604とは対照的に、グローバルキャッシュ・サーバ902でチケット許可を実行することによってプレイリストへのアクセスを制御する。これは、より大きなスケーラビリティを有するより効率的なシステムをもたらすことができる。このことは、全て同様のコンテンツを供給する極めて多くのメディアサーバが存在する場合に特に有用である。各メディアサーバ上で全く同じ情報を保管し且つ処理する代わりに、この実施形態により、認証情報を1つの中央プレイリスト上に存在させることが可能となり、残りのシステムに渡していくことができる。従って、メディアサーバは、コンテンツをストリーミングすることに集中し、認証アルゴリズムによって妨げられないようにすることができる。ここで、このような1つの実施形態を図11−12に関連して説明する。本実施形態の機能性のほとんどは、図3、図6、及び図9の実施形態の機能性と同じであり、従って、同じ技術のいずれかによって実施することができる点は、当業者であれば理解されるであろう。本実施形態のアーキテクチャは、図9に関連して検討されたアーキテクチャと同じものである。
【0100】
次に、本実施形態の動作を図11のワークフロー図に関連して説明する。本実施例の目的のために、エンドユーザは、保護されたコンテンツの1つのアイテムを有するプレイリストへのアクセスをリクエストするが、複数のアイテムを使用することもできる。最初に、ウェブサーバ606は、許可アプリケーションへのログインをエンドユーザにリクエストし、特定のストリーミング・メディアを視聴するオプションをユーザに呈示するウェブページを提供する(ステップ1102)。
【0101】
エンドユーザが、ストリーミングリクエストリンクを起動すると、エンドユーザプロセッサ602上で実行されるプログラミングスクリプトにより、ストリーミングリクエストリンク及びエンドユーザIDをウェブサーバ606に送る(ステップ1104)。エンドユーザのスクリプトは、例えばC++、Perl(パール)、ビジュアルベーシック、Java及び同様のものを含むどのようなプログラミング言語ででも基本的に実施することができることを当業者であれば認識するであろう。本実施形態では、スクリプトはJavaスクリプトであり、エンドユーザのウェブブラウザと連動して実行される。
【0102】
ウェブサーバ606が、スクリプトからストリーミングリクエストを受け取ると、ウェブサーバ606は、許可ソフトウエア・プラグインの指示の下で許可チケットを生成する。この件に関して、ウェブサーバ606は、データベース608に対して許可チケットの生成の際に使用する秘密キー(本実施形態では、リクエストされたプレイリストに関連するセキュリティキーとセキュリティインターバル)のリクエストを発行する(ステップ1106)。これに応答して、データベース608は、ウェブサーバ606に秘密キーを返す(ステップ1108)。別の実施形態では、より多くの又はより少ない或いは異なるデータを備えた秘密キーを使用することができ、セキュリティインターバルなどの特定の情報は、メモリから検索されるのではなく、暗号で設定することができる。
【0103】
データベース608から秘密キーを取得した後、ウェブサーバ606は、ストリーミングID又はプレイリストIDのいずれかを使用して、図4に関連して上述されたようにチケットを生成する(ステップ1110)。本明細書で説明されたように、ウェブサーバ606は、秘密キー、ストリーミングID又はプレイリストID、エンドユーザID、及び時間値をハッシュアルゴリズムに適用してチケットを生成する。次いで、ウェブサーバは、エンドユーザプロセッサ602上で実行されるウェブブラウザにチケットとエンドユーザIDを返す(ステップ1112)。
【0104】
許可チケットを受け取った後、エンドユーザプロセッサ602上で実行されるスクリプトは、ストリーミングリクエストリンクの最後に情報を付加する(ステップ1114)。例示的なリンクは以下に示される。ここで、プレイリストIDは「789000」で表され、チケットが「uvw123xyz」で表され、エンドユーザIDが「abc123def」で表される。
【0105】
< A href
”http://playlistserver.company.com/makeplaylist?ID=789000&TICKET=uvwl23xyzreturn&USER_ID=abcl23def”>
【0106】
次いで、エンドユーザプロセッサ602上で実行されるスクリプトは、ホスト名「playlistserver.company.com」によりストリーミングリクエストリンクで識別されるプレイリストサーバ610が呼び出される(ステップ1116)。従って、プレイリストサーバ610は、リンク、プレイリストID、チケットユーザID及びクッキーIDが提供され、これらは以下により詳細に説明する。
【0107】
別の実施形態では、ストリーミングリクエストにチケットを付加するためにエンドユーザスクリプトは使用されない。その代わりに、エンドユーザが、そのエンドユーザIDを提供してストリーミングリクエストリンクを起動する(ステップ1104で)ときに、ウェブサーバ606上で実行される認証アプリケーションがチケットを生成し、該チケットとエンドユーザIDとをストリーミングリクエストリンクに付加し、プレイリストサーバ610を直接呼び出してチケットを検証する。ウェブサーバ606はまた、プレイリストサーバ610にエンドユーザプロセッサ602を識別する情報を渡すので、プレイリストサーバ610は、プレイリスト・ハッシュ(以下で説明する)をエンドユーザプロセッサ602に転送する(これによりステップ1112、1114、及び1116を不要にする)。
【0108】
次に、プレイリストサーバ610は、リクエストと共にウェブサーバ606によって生成されたチケットをグローバルキャッシュ・サーバ902に渡し、第2のチケットを生成する(ステップ1118)。グローバルキャッシュ・サーバは、そのローカルのデータベースに対し許可チケットを生成する際に使用するための秘密キー(本実施形態では、リクエストされたプレイリストに関連するセキュリティキーとセキュリティインターバル)のリクエストを発行する(ステップ1120)。ローカルデータベースを有することで追加される利点は、別のサーバ又は他のデータベースを使用することを必要とせずにデータベース内で情報にアクセスできることである点を認識されたい。従って、ローカルデータベースを使用することにより、データベース内に格納された情報をより迅速に処理することができる。リクエストに応答して、ローカルデータベースは、グローバルキャッシュ・サーバ902に秘密キーを返す(ステップ1122)。
【0109】
このローカルデータベースから秘密キーを取得した後、グローバルキャッシュ・サーバ902は、図11に関連して以下に更に詳細に説明するように、1つ又はそれ以上の認証チケットを独自に生成し、これらのチケットをウェブサーバ606によって生成されたチケットと比較することにより、アクセスを認可するかどうかを判断する(ステップ1124)。グローバルキャッシュ・サーバ902によって生成されたチケットが、ウェブサーバ606によって生成されたチケットと一致する場合、グローバルキャッシュ・サーバ902は、プレイリストサーバ610に一致を表すメッセージを送る。チケットが一致しない場合は、プレイリストサーバ610に不一致を表すメッセージが送られる(ステップ1126)。
【0110】
プレイリストサーバ610が、一致を表すメッセージを受け取ると、プレイリストサーバ610は、プレイリスト・ハッシュを生成する。このハッシュは、当該プロセッサ602に対するクッキーIDに基づく。上述のように、一般に、クッキーは、エンドユーザが特定のエンドユーザプロセッサ602を介して1つ又はそれ以上の特定のウェブサイトを最初に訪れたときに、ウェブサーバがエンドユーザのブラウザに付与するデータのセットである。ウェブサーバ606は、クッキーが含むエンドユーザに関する情報(例えばユーザID)を保存し、エンドユーザのブラウザは、通常、エンドユーザプロセッサ602上のブラウザのシステムフォルダ内に格納されるテキストファイルとしてクッキーを格納する。このクッキーは、リンク、プレイリストID、チケット及びユーザIDと共にエンドユーザプロセッサ602からプレイリストサーバに渡される。ユーザのプロセッサ602(例えばウェブブラウザ)がクッキーを受け入れない場合には、アプリケーションは、ユーザに対してオプションを変更するようリクエストする応答を生成することになる。このクッキーは、現在時刻及び予め定められたタイムインターバルと共に、プレイリストサーバ610によって使用されてプレイリスト・ハッシュを生成する。このハッシュの生成については、以下に更に詳細に説明する。チケットが一致しなかった場合には、「ダミーハッシュ」が生成され、ストリーミングに付加される(ステップ1128)。この「ダミーのハッシュ」は、クッキーに基づく必要はなく、むしろ許可されなかったことをシステムに対して単に示すものである。従って、ダミーハッシュは、予め定められた英数字、又はランダムに生成されたストリング、過去の時間又は未来時間に基づくハッシュ、ゼロ値、及び同様のものとすることができる。ストリーミングリクエストと共にハッシュ及び許可チケットは、エンドユーザプロセッサ602に送られる(ステップ1130)。或いは、許可チケットの1つ又は両方はエンドユーザプロセッサ602には渡されない。特定の実施形態では、「ダミーハッシュ」が生成されずに、むしろストリーミングリクエストが、どのようなハッシュも付加されずにエンドユーザプロセッサ602に送られ、すなわち許可されなかったことを示すことも理解されたい。
【0111】
プレイリスト・ハッシュは、コンテンツを視聴するための許可が認可されていたか又は許可が拒否されていたものとしてユーザを識別するよう機能する点も理解されたい。ユーザが許可されていた場合、有効なプレイリスト・ハッシュが生成されることになる。ユーザが許可されていなかった場合、無効又は「ダミー」ハッシュが生成されることになる。対照的に、生成された許可チケットは、コンテンツを視聴する許可をユーザが認可されるべきか否かを判断するベースを形成する。
【0112】
プレイリスト・ハッシュを受け取った後、エンドユーザプロセッサ602は、ストリーミング・メディアサーバ604にストリーミング・メディアコンテンツをリクエストするステップに進む(ステップ1132)。エンドユーザプロセッサ602は、必要に応じてストリーミングIDのコピー又はプレイリストID、プレイリスト・ハッシュ、許可チケット、並びにクッキーを渡す。上記で説明されたように、特定の実施形態では、許可チケットの1つ又は両方はプレイリストサーバ610からエンドユーザプロセッサ602に渡されず、従って、エンドユーザプロセッサ602からストリーミング・メディアサーバ604に渡されない。ストリングが受け取られると、ストリーミング・メディアサーバ604は、現在時刻、受け取ったクッキー、及び予め定められたセキュリティタイムインターバルを利用するプレイリストサーバによって使用されたのと同じハッシュアルゴリズムを使用して第2のハッシュ値を生成することによって、プレイリスト・ハッシュの精度を検証する。次にメディアサーバ604は、生成されたハッシュを受け取ったハッシュと比較する(ステップ1134)。ハッシュの妥当性が検証されると(例えば生成されたハッシュと一致すると)コンテンツが供給され、検証されない場合には、ハッシュが「ダミーハッシュ」であるか、或いはアクセスの有効期限が切れている理由からアクセスが拒否される(ステップ1136)。
【0113】
大半の認証をメディアサーバではなくプレイリストサーバ上で行うことができる利点が付加されることにより、システムの効率が大幅に向上する点を理解すべきである。全てが同じコンテンツを供給する多数のメディアサーバが存在できる場合、メディアサーバ上で保管及び処理される完全に同一の情報は、様々な異なる箇所で見出すことができる。従って、メディアサーバが処理する認証を可能な限り少なくできることで、メモリ空間を大幅に節約することができる。従って、大半の認証情報を1つの中央プレイリストサーバ上に存在させることができ、該情報を残りのシステムに渡していくことができる。加えて、メディアサーバがコンテンツのストリーミングに集中できることにより、コンテンツのストリーミングも同様により効率的になる。
【0114】
次に、リクエストされたコンテンツストリーミングへのアクセスを認可するかどうかを判断するグローバルキャッシュ・サーバ902のプロセスを図12を参照して説明する。理解されるように、本プロセスは、図5に関連して上記で説明されたプロセスと同じである。
【0115】
アクセスを認可するかどうかの判断において、最初に、グローバルキャッシュ・サーバ902が、ストリーミングID、エンドユーザID、公開キー、エンドユーザのクッキー及びチケットを含むストリーミングリクエストをプレイリストサーバ610から受け取る(ステップ1202)。ストリーミングリクエストを受け取ると、グローバルキャッシュ・サーバ902は、ハッシュアルゴリズムに対する入力ストリングを生成する。この点に関して、グローバルキャッシュ・サーバ902は、キャッシュ又はローカルデータベースとすることができるローカルメモリから秘密キー情報、すなわちセキュリティキー及びセキュリティインターバルを検索するが、別のキーを使用してもよい(ステップ1206)。
【0116】
メディアサーバ104に関して上記で検討したように、グローバルキャッシュ・サーバ902は、3つの時間値を計算してその時差を考慮する(ステップ1210)。次いで、この時点で、グローバルキャッシュ・サーバ902は、検索された秘密キー情報、受け取った公開キー情報、及び3つの時間値を用いて、3つの対応するハッシュ入力ストリングを生成する(ステップ1214)。本実施形態では、3つの時間値は、現在時刻、現在時刻+セキュリティタイムインターバル、及び現在時刻−セキュリティタイムインターバルであり、例えば、ここでセキュリティインターバルは、現在時刻の10秒前及び現在時刻の10秒後である。時間値の間の差が小さいほど、適用されるセキュリティのレベルが高くなることは理解されるべきである。適正なハッシュでも有効寿命が限られているので、より短いタイムインターバルは、ユーザが適正なハッシュを傍受し、これを適正な認証として渡してコンテンツを不正に取得しようとする可能性を低減する。次に、グローバルキャッシュ・サーバ902は、ハッシュアルゴリズムに対して3つの入力ストリングの各々を適用し、これにより3つのチケットを生成する(ステップ1218)。
【0117】
チケットを独自に生成した後、次にグローバルキャッシュ・サーバ902は、グローバルキャッシュ・サーバ902によって生成されたチケットのいずれかがウェブサーバ606によって生成されたチケットと一致するかどうかを判断する(ステップ1222)。チケットが一致しない場合には、ストリーミングリクエストは認証されたものではなく、及び/又は有効期限が切れたものである(すなわち、ユーザのリクエスト時間から測定してセキュリティインターバルを超えた時間にグローバルキャッシュ・サーバ902によって生成されたもの)可能性が高い。従って、グローバルキャッシュ・サーバは、プレイリストサーバに認証されなかったことを通知するメッセージを渡す(ステップ1226)。
【0118】
チケットが一致する場合、ストリーミングリクエストは認証されたものであり、セキュリティタイムインターバルの範囲内にある可能性が高い。次にグローバルキャッシュ・サーバ902は、プレイリストサーバ910に対してプレイリスト・ハッシュを生成するように指示するメッセージをプレイリストサーバ910に渡す(ステップ1230)。図11に関連して上述されたように、このハッシュは、ストリーミングリクエストと共にエンドユーザプロセッサ602に渡され、そこからハッシュの精度を検証するためにストリーミング・メディアサーバ604に渡される。
【0119】
本明細書の説明に基づいて、図5に関連して検討された種々の実施形態及び修正の全てが本実施形態にも適用できることは、当業者であれば理解されるであろう。
【0120】
上述の実施形態は、セキュリティキー及びセキュリティインターバルの両方を含む秘密キーを利用するが、これより多くの情報又は少ない情報を秘密キーとして利用することも本発明の範囲内であることは理解すべきである。例えば、別の実施形態では、秘密キーは使用されず、他の実施形態では、秘密キーに例えばクライアントのユーザ名及びパスワードを含む追加情報が含められる。同様に、ストリーミングID及びエンドユーザID以外の情報を含む公開キーを利用することは本発明の範囲内である。例えば、ファイルパス名を含む情報を識別する別のコンテンツファイルを使用してもよい。加えて、ある実施形態では、エンドユーザIDは公開キー情報から省くことができる。更に別の実施形態では公開キー情報は、リクエストコンテンツファイルのタイトル又は他のストリーミング詳細などの追加情報を含む。
【0121】
ウェブサーバ及びストリーミング・メディアサーバによって提供されるものとして記載された機能性は、これに関連する他のデバイス上で実施することができる点も理解されるであろう。例えば、本発明の特定の実施形態では、ストリーミング・メディアサーバは、これに接続された関連アプリケーションサーバを有し、該アプリケーションサーバは、コンテンツへのアクセスを拒否又は認可するプロセスの全て又は一部を実施する。同様に、アプリケーションサーバをウェブサーバと対応付けて、例えば許可チケットを生成するプロセスを含むウェブサーバの機能性の一部又は全てを提供することは、本発明の範囲内である。従って、特定のサーバに対する言及は、他の関連するサーバ又は言及するサーバに結合されたプロセッサを含むことを意味する。
【0122】
また、許可チケットは、正確な時間に生成される必要がない点も理解されるべきである。例えば、ウェブサーバによって生成されるチケットは、エンドユーザがストリーミングリクエストリンクを起動する時間、又はウェブサーバがデータベースから秘密キー情報を受け取る時間、或いはストリーミングリクエストの起動時間付近の他の任意の時間に基づくことができる。同様に、メディアサーバは、例えば、メディアプレーヤから呼び出された時間、又は秘密キー情報が検索された後、又はコンテンツへの呼び出しがなされた時間付近の他の任意の時間に許可を生成することができる。更にメディアサーバが複数のチケットを生成する場合、チケットは、異なる時間又は同じ時間に基づくことができる。従って、時間又は現在時刻に対する言及は、正確な時間ではなく範囲を言及することを意味する。
【0123】
上記の例示的な実施形態は、単一のアイテムのコンテンツへのアクセスを制御する関連で説明されてきたが、上記の実施形態のいずれかを使用して、複数の保護されたコンテンツファイルを含むプレイリストへのアクセスを制御することができる点を当業者は理解するであろう。ここで、プレイリストへのアクセスを制御するための1つの例示的な実施形態を図6−8に関連して説明する。このような実施形態は、以下に指摘される修正により上述の説明に従って動作する。一般に、ウェブサーバ606は、各ストリーミングのストリーミングIDに基づいてプレイリストに収容された各コンテンツストリーミングのためのチケットを生成する。
【0124】
エンドユーザプロセッサ602上のメディアプレーヤは、プレイリストIDを含むストリーミングリクエストをプレイリストプロセッサ610に渡す。次に、プレイリストプロセッサ610は、リダイレクタファイルを生成し、これをメディアプレーヤに返す。「makeplaylist.dll」オブジェクトは、本実施例ではプレイリストID「789000」を使用して適切なリダイレクタファイルを構築する。より詳細には、プレイリストサーバ610は、プレイリストテーブル708とプレイリストテーブル710にアクセスし、どのコンテンツファイルがリクエストされたプレイリストの一部であるか、及びプレイリストのコンテンツファイルの順番を判断する。コンテンツファイルのファイル名は、ストリーミングテーブル704から検索される。次いで、エンドユーザプロセッサ602上で実行されるスクリプトは、対応するコンテンツストリーミングにリンクしているURLにストリーミングID、チケット、及びエンドユーザIDを付加する。本実施形態では、全てのコンテンツストリーミングが、ストリーミングサーバテーブル712において識別される同じメディアサーバ604上に配置される。
【0125】
対応するコンテンツストリーミングへのURLリンクに付加されたストリーミングID、チケット、及びエンドユーザIDを含む例示的なASXリダイレクタファイルは以下の通りである。
【0126】
<ASX>
<ENTRY>
<REF href=”mms://mediaserver.company.com/streaml.asf?ID=123456&TICKET=abc111xyz&USER_ID=abcl23def”>
<REF href=”mms://mediaserver.company.com/stream2.asf?ID=234567&TICKET=def222xyz&USER_ID=abc123def”>
<REF href=”mms://mediaserver.company. com/stream3.asf?ID=345678&TICKET=ghi333xyz&USER_ID=abc123def”>
</ENTRY>
</ASX>
【0127】
次いでメディアプレーヤは、ストリーミング・メディアサーバ604を連続して呼び出し、各呼び出しに対する各URLリンクがリダイレクタファイルに含まれる。より詳細には、メディアプレーヤは最初に、第1のコンテンツストリーミング(本実施例ではストリーミングID123456を有する)へのアクセスに対しメディアサーバ604を呼び出す。呼び出しに応答し、更に図5に関連して上記に一般的に説明されたように、メディアサーバ604は、チケットを独自に生成してコンテンツへのアクセスを認可するかどうかを判断する。アクセスが認可されない場合、エンドユーザはそのように通知される。他方、メディアサーバが、エンドユーザに対し第1のコンテンツストリーミングへのアクセスを認可する場合、メディアプレーヤは、プレイリスト中の残りのコンテンツストリーミング用のメディアサーバ604を呼び出すステップに進む。各呼び出しで、メディアサーバ604は、リクエストされたコンテンツストリーミングへのアクセスを許可又は拒否するステップに進む。
【0128】
しかしながら、このような実施形態では、各コンテンツストリーミングが、プレイリスト中のストリーミングの前に再生されるコンテンツストリーミングの合計持続時間を考慮する個々のセキュリティインターバルを有することが望ましい点を理解されたい。例えば各々が5分の持続時間である(ストリーミングテーブル704のストリーミング詳細フィールドで識別された)3つのコンテンツストリーミングを含むプレイリストでは、第2のストリーミングのセキュリティインターバルは、第1のストリーミングのセキュリティインターバルよりも5分だけ長くすることができ、第3のストリーミングのセキュリティインターバルは、第1のストリーミングのセキュリティインターバルよりも10分だけ長くすることができる。プレイリストの各ストリーミングの持続時間を考慮することによって、システムは、許可されたエンドユーザがプレイリスト中の第1のコンテンツストリーミングへのアクセスを受け入れるが、チケットが有効期限切れである理由から後続のコンテンツストリーミングに対してはアクセスが受け入れられないことを防止するのに役立つ。セキュリティインターバルはまた、プレイリスト中に含まれた広告などのあらゆる非保護のコンテンツをも考慮することができる。
【0129】
他の別の実施形態は、プレイリストIDに基づいてチケットを生成することによって、複数の保護されたコンテンツストリーミングを含むプレイリストへのアクセスを制御する。1つのこのような実施形態は、以下に指摘される修正と共に、図6−8のシステムの説明に従って動作する。一般的に、エンドユーザが許可アプリケーションにログインし、プレイリストへのアクセスをリクエストすると、ウェブサーバ606は、プレイリストIDに基づいてチケットを生成し、該チケットをエンドユーザプロセッサ602に返す。これに応答して、エンドユーザプロセッサ602上で実行されるスプリットは、ストリーミングリクエストリンクにチケット及びエンドユーザIDを付加する。以下は、付加された公開キー情報を有する例示的なストリーミングリクエストリンクである。ここで、プレイリストIDが「789000」で表され、チケットが「xyz321abc」で表され、エンドユーザIDが「abc123def」で表される。
【0130】
<A href
”http://playlistserver.company.com/makeplaylist.dll?PLAYLIST_ID=789000&TICKET=xyz321abc&USER_ID=abcl23def’>
【0131】
エンドユーザプロセッサ602は、名称「playlistserver.company.com」によって識別されるプレイリストサーバ610を呼び出す。次に、プレイリストサーバ610は、リダイレクタファイルを生成するためにプレイリストサーバ610に存在する「makeplaylist.dll」オブジェクトを起動する。本実施形態では、全てのコンテンツストリーミングが同一のメディアサーバ604上に存在する。上述の実施形態とは異なり、「makeplaylist.dll」オブジェクトはまた、リダイレクタファイルの第1のURLリンクの終わりにプレイリスト中の後続の保護されたコンテンツストリーミングのファイル名を付加し、後続のURLリンクの各々にはプレイリストID及びチケットだけが付加される。例示的なASXリダイレクタファイルを以下に示す。ここでプレイリストは、「stream1.asf」、「stream2.asf」、「stream3.asf」で表されるファイル名を有する3つのウインドウズメディア・フォーマットのコンテンツファイルを含み、プレイリストIDが「789000」で表され、エンドユーザIDが「abc123def」で表され、チケットが「xyz321abc」で表される。
【0132】
<ASX>
<ENTRY>
<REF
href=”mms://mediaserver.company.com/streaml.asf?PLAYLIST_ID=789000&TICKET=xyz321abc&USER_ID=abc123def&STREAM=stream2.asf&
STREAM=stream3.asf”>
<REF href=”mms://mediaserver.company.com/stream2.asf?PLAYLIST_ID=789000&TICKET=xyz321abc”>
<REF href=”mms://mediaserver.company.com/stream3.asf?PLAYLIST_ID=789000&TICKET=xyz321abc”>
</ENTRY>
</ASX>
【0133】
エンドユーザプロセッサ602のメディアプレーヤは、第1のコンテンツファイルにアクセスするために、mediaserver.company.com(すなわちストリーミング・メディアサーバ604のホスト名)を呼び出すステップに進む。メディアサーバ604は、図5に関連して上述されたように、プレイリストIDに基づいてチケットを生成し、アクセスを認可又は拒否するステップに進む。メディアサーバ604がアクセスを認可し、メディアプレーヤにプレイリスト中の第1のコンテンツファイルを提供する場合、メディアサーバ604は、プレイリストID及び対応するチケット用のローカルに格納されたテーブル内にレコードを作成し、リダイレクタファイルに含まれているプレイリスト中の後続のコンテンツストリーミングのファイル名をレコードに格納する。
【0134】
続いて、メディアプレーヤが、第2のコンテンツストリーミングへのアクセスを要求する場合、メディアプレーヤは、メディアサーバ604にプレイリストID及びチケットを供給する。次に、メディアサーバ604は、プレイリストID及びチケットによって識別されたレコードを求めてテーブルをサーチする。レコードが存在する場合、メディアサーバ604は、第2のストリーミングへのアクセスを許可し、特定のチケットを有するエンドユーザが視聴したものとしてストリーミングにフラグを立てる。無許可のエンドユーザが同じURLリンクを使用して第2のストリーミングにアクセスしようと試みる場合、プレイリストID及びチケットに関するレコードにおいては、第2のストリーミングは既に視聴されているものとしてフラグが立っているので、メディアサーバ604はアクセスを拒否することになる。同様のプロセスが、プレイリスト内の残りのコンテンツストリーミングへのアクセスを許可するために使用される。当業者には理解されるように、この実施形態は、第1のストリーミングへのアクセス認可とこのような後続のストリーミングとの間の時間遅延に起因して、プレイリスト内の後続のストリーミングへのアクセスを誤って拒否されるどのような可能性をも回避する。
【0135】
本発明の方法及びシステムは、多くの用途を有し、多くの様態で実施することができ、従って、上記の例示的な実施形態及び実施例によって限定されるものではない点を当業者であれば理解されるであろう。更に、本発明の範囲は、当業者には理解されるように、本明細書で説明されたシステム構成要素に対する従来公知の、及び将来開発される変形及び修正を対象とする。
【図面の簡単な説明】
【0136】
【図1】本発明の1つの実施形態に基づくシステムを示す概略図である。
【図2】本発明の1つの実施形態に基づくデータベースを示す概略図である。
【図3】本発明の1つの実施形態に基づくワークフローを示す概略図である。
【図4】本発明の1つの実施形態に基づくチケットを生成するプロセスを示すフローチャートである。
【図5】本発明の1つの実施形態に基づくストリーミング・メディアコンテンツのアイテムへのアクセスを許可するかどうかを判断するプロセスを示すフローチャートである。
【図6】本発明の別の実施形態に基づくシステムを示す概略図である。
【図7】本発明の別の実施形態に基づくデータベースを示す概略図である。
【図8】本発明の別の実施形態に基づくワークフローを示す概略図である。
【図9】本発明の別の実施形態に基づくシステムを示す概略図である。
【図10】本発明の別の実施形態に基づくワークフローを示す概略図である。
【図11】本発明の別の実施形態に基づくワークフローを示す概略図である。
【図12】本発明の別の実施形態に基づくストリーミング・メディアコンテンツのアイテムへのアクセスを許可するかどうかを判断するプロセスを示すフローチャートである。
【符号の説明】
【0137】
102 エンドユーザ
104 ストリーミング・メディアサーバ
106 ウェブサーバ
108 データベース
【技術分野】
【0001】
(関連出願に対するクロスリファレンス)
本出願は、2001年6月6日に出願された表題が「SYSTEM AND METHOD FOR CONTROLLING ACCESS TO DIGITAL CONTENT, INCLUDING STREAMING MEDIA」の国際特許出願第PCT/US01/18324号の一部継続出願である、2001年11月5日に出願された表題が「SYSTEM AND METHOD FOR CONTROLLING ACCESS TO DIGITAL CONTENT, INCLUDING STREAMING MEDIA」の国際特許出願第PCT/US01/46726号に基づいた、2003年5月12日に出願された表題が「SYSTEM AND METHOD FOR CONTROLLING ACCESS TO DIGITAL CONTENT, INCLUDING STREAMING MEDIA」の米国特許出願番号10/416,623号の一部継続出願である、2003年10月22日に出願された米国特許出願番号10/692,444号の継続出願であり、これらの全ては引用により本明細書に組み込まれる。
【0002】
本発明は、一般に、デジタルコンテンツへのアクセス制御に関し、より詳細にはストリーミング・メディアへのアクセスを制限するためのチケットベースのシステム及び方法に関する。
【背景技術】
【0003】
インターネットとワールドワイドウェブの出現に伴い、ストリーミング・メディアコンテンツのようなデジタルコンテンツの配信に関連する産業が発達した。一例として、ストリーミング・メディアは、エンターテイメント、通信教育、及び企業目的を含む多くの目的のいずれかに使用することができる。エンターテイメント企業は、映画及びスポーツイベントをストリーミングし、通信教育企業は教育コンテンツをストリーミングし、企業はトレーニング教材をストリーミングする。
【0004】
このようなストリーミング・メディアの多くの用途では、コンテンツへのアクセス制御が必要不可欠である。例えば、エンターテイメント企業は、ストリーミング・メディアのアイテムの各視聴に対してエンドユーザに課金することができ、これはエンターテイメント特有の用語で「ペイ・パー・ビュー」と呼ばれる。同様に通信教育企業は、オンライン教育コースへのアクセス、すなわちストリーミング・メディアへのアクセスに対して生徒に課金する。企業コンテンツは社外秘の場合が多いので、従ってこの場合もアクセス制御を必要とする。
【0005】
従って、ストリーミング・メディアへのアクセスを制限するためのシステムが開発されている。ストリーミング・コンテンツへのアクセスを制限するための最新の業界標準は、ストリーミング・メディアコンテンツを提供する前にストリーミング・メディアサーバのエンドユーザ認証を含む。より詳細には、ストリーミング・メディアサーバは通常、ストリーミング・メディアへのアクセスを許可するかどうかを判断するためのロジックを含むコンパイル済みコードのソフトウエア・プラグインを含む。しかしながら、このような認証プラグインは、複雑であり、開発及び維持するのが困難である場合が多い。例えば、ストリーミング・メディアコンテンツへのアクセスを許可するためのロジックを変更する必要性が生じた場合、ストリーミング・メディアサーバ上のコンパイルされたプラグインを変更するのは困難である。更に、ストリーミング・メディアサーバ上にあるロジックの全ては、ストリーミング・メディアサーバが、データベース又は分散型のメッセージ受け渡しサービスに対し直接アクセスする必要がある。その上、ストリーミング・メディアコンテンツへのアクセスが許可されている特定のエンドユーザを確認する場合においてさえも、このようなエンドユーザは、無許可のエンドユーザとアクセスを共有することによって許可プロセスを免れ得ることが多い。このようなアクセスの共有は、コンテンツに対するリンクのユーザ名及びパスワードの共有も含む多くの形態を取ることができる。デジタルコンテンツの他の形態へのアクセスを制御するために使用されるシステムに関しても同様の問題が存在する。従って、デジタルコンテンツ、特にストリーミング・メディアコンテンツへのアクセスを制御し、エンドユーザを許可するためのシステム及び方法に対する改善の必要性が存在する。
【発明の開示】
【0006】
本発明は、オーディオ、ビジュアル、ビデオ、テキスト、及びストリーミング・メディアなどのデジタルコンテンツへのアクセスを制御するためのシステム及び方法を提供することによって、前記並びに他の必要性を解決する。本発明による1つのシステム及び方法は、ストリーミング・メディアへのアクセスを制御し、ネットワークに接続されたウェブサーバ、メディアサーバ、及びパーソナルコンピュータなどのエンドユーザプロセッサを含む。
【0007】
動作中、ウェブサーバは、ファイルにアクセスするためのエンドユーザのリクエストに応答して暗号化されたチケットを生成する。チケットは、少なくとも部分的には、チケットが生成された時間又はその近くの時間に基づいている。ある実施形態ではチケットは、例えばセキュリティタイムインターバル又はエンドユーザの識別子を含む追加情報に基づく。
【0008】
メディアサーバがリクエストされたファイルへのアクセスを提供する前に、メディアサーバは、好ましくはウェブサーバと同じ暗号化アルゴリズムを使用して許可チケットを生成する。メディアサーバの許可チケットは、メディアサーバがファイルへのアクセスに対するリクエストを受信した時間又はその近くの時間に少なくとも部分的に基づく。メディアサーバは、ウェブサーバによって生成されたチケットをメディアサーバによって生成されたチケットと比較することによって、ファイルに対するアクセスを認可するかどうかを判断する。
【0009】
1つの実施形態では、チケットが一致しない場合には、ウェブサーバがチケットを生成した時間とメディアサーバがチケットを生成した時間とが予め定められた量よりも大きく異なり、チケットは、論理的に「有効期限切れ」であると考えることができる。従ってメディアサーバは、メディアコンテンツへのアクセスを認可しない。チケットが一致する場合には、チケットは、許可されたタイムインターバルの範囲内に生成されており、メディアサーバは、エンドユーザがリクエストしたメディアコンテンツへアクセスするのを認可する。
【発明を実施するための最良の形態】
【0010】
ここで、本発明の特定の好ましい実施形態を図面を参照しながら説明する。コンテンツへのアクセスを制御するための本発明は、ストリーミング・データファイルへのアクセス制御の関連で説明されているが、本発明はあらゆるタイプのメディア又はファイルに適用可能である点は理解されたい。更に、本明細書で検討される本実施形態は、オンデマンドのストリーミング・メディアに関するのであるが、ライブのストリーミング・メディアにも適用可能であることは、当業者であれば認識するであろう。
【0011】
一般に、本実施形態のシステムは、エンドユーザプロセッサ102、ストリーミング・メディアサーバ104、及びコンテンツマネージメントデータベース108を有するウェブサーバ106を含み、これらの全てはインターネットに結合されている。エンドユーザプロセッサ102は、INTERNET EXPLORERの名称でMicrosoft Corporationによって提供されるか、又はNETSCAPE NAVIGATORの名称でAmerica Online Inc.のNetscape Communicationsによって提供されるようなインターネットブラウザ、及びWINDOWS MEDIA PLAYER(ウィンドウズメディアプレーヤ)の名称でMicrosoft Corporationによって提供されるか、又はREALPLAYER(リアルプレーヤ)の名称でReal Networks,Incにより提供されるようなストリーミング・メディアプレーヤを含む。
ウェブサーバ106は、エンドユーザ102によってアクセス可能なウェブサイトを提供する。ウェブサイトは、ストリーミング・メディアサーバ104上にあるストリーミング・メディアコンテンツにアクセスするためにエンドユーザ102が起動することができるリンクを含む。
【0012】
本発明は、幾つかの何らかのコンピュータ技術を利用して実施できることは理解されたい。例えば、本実施形態は、インターネットを介してコンテンツへのアクセスを提供することに関するが、本発明は、例えばワイドエリアネットワークを含む、どのようなコンピュータネットワーク上でも利用することができる。同様に、エンドユーザプロセッサ102は、例えば携帯情報端末、ウェブ対応の携帯電話、ネットワークにダイヤルアップする有線電話、モバイルコンピュータ、パーソナルコンピュータ、インターネット機器及び同様のものを含む、ネットワークに結合可能なあらゆる装置とすることができる。更に、本明細書で説明されるサーバは、何らかのソフトウェアを実行するあらゆるタイプのものとすることができ、本明細書で説明されるソフトウェアモジュール、オブジェクト、及びプラグインは、どのようなプログラム言語で記述されていてもよい。最後に本明細書で説明されるデータベース及び記憶装置は、例えばローカルのコンピュータメモリ、ネットワーク接続記憶装置、及び磁気又は光学などのいずれかの既知の記憶媒体を含む、どのような記憶技術を使用してもよい。
【0013】
CMデータベース108の例示的な表現が図2に示される。図示されているように、データベース108は、ストリーミング・コンテンツの全てのアイテムにユニバーサルに適用可能な情報及び関連データの幾つかのテーブルを含む。ユニバーサル情報202は、セキュリティキー、セキュリティタイムインターバル、及びコンテンツが存在するストリーミング・メディアサーバ104の名称(「ホスト名」)を含む。セキュリティキー及びセキュリティインターバルは、エンドユーザ102がコンテンツにアクセスするのを許可する際に使用され、従って、好ましくは秘密に保持されてコンテンツの所有者によって設定される。セキュリティキー及びセキュリティインターバルは、全てのコンテンツへのアクセスを制御するのに使用されるが、別の実施形態では、各コンテンツファイルは、その固有のセキュリティキー及びこれに関連するセキュリティインターバルを有する。
【0014】
CMデータベース108は、コンテンツ又はストリーミング識別情報を含む一連のテーブルを更に含む。より詳細には、ストリーミングテーブル204は、一意のストリーミング識別子(ID)によって識別されたストリーミング・コンテンツの各アイテムのレコードを含む。更に各レコードは、例えば、コンテンツファイルの生成日付を含むコンテンツファイルを記述するストリーミングの詳細、ファイルの記述、コンテンツがオーディオか又はビデオかの識別、コンテンツが関係するプラットフォーム、コンテンツが最後に修正された日付、コンテンツの視聴に必要ないずれかのコーデック、コンテンツの長さ及びサイズ、コンテンツの有効期限(もしあれば)、.asf又は.rmなどのストリーミングのタイプ、コンテンツのタイトル、コンテンツの作者、コンテンツのステータス、コンテンツの著作権情報、コンテンツのビットレート、及び同様のものを含む。また各レコードは、メディアサーバ104へのリンクを生成するために使用されるプレフィックス(「URLPrefix(URLプレフィックス)」)と、ストリーミング・メディアサーバ104上に格納されているコンテンツファイルの名前(「Filename(ファイル名)」)を含む。ファイル名が、オンデマンドコンテンツのストリーミング・メディアサーバ104に結合された記憶装置上の実パスを指してもよく、或いは、ライブストリーミングの別名、ポート、又はチャネルを指してもよいことは理解されるべきである。
【0015】
データベース108はまた、「プレイ(再生)リスト」情報を収容するテーブルを含む。クライアントのプレイリストは、一般に、グループとして利用可能にする目的で論理上関連付けられる1つ又はそれ以上のコンテンツファイルのグループである。プレイリストの一部として識別された各コンテンツファイルはまた、個々に利用可能にすることができる。このようなプレイリスト情報は、プレイリストテーブル208及びプレイリストストリーミングテーブル210内に収容される。一般に、プレイリストテーブル208は、プレイリストIDによって識別される各プレイリストを識別するレコードを含む。各レコードは更に、例えばプレイリストのフォーマット(ウインドウズメディアプレーヤ又はリアルプレーヤなど)、プレイリストの記述、プレイリスト名、及び同様のものを含むプレイリストの詳細、及びプレイリストの許可されたユーザグループIDを更に含む。
【0016】
許可されたユーザグループIDは、特定のプレイリストを視聴するよう許可されたエンドユーザ102のグループに対応する。より詳細には、データベース108は更に、一意のエンドユーザIDによって識別される各エンドユーザ102を1つ又はそれ以上の許可されたユーザグループIDに関連付ける許可ユーザテーブル206を含む。エンドユーザ102がプレイリストを視聴するためには、エンドユーザ102は、当該コンテンツファイルに対する許可されたユーザグループIDの一部として識別される必要がある。特定の別の実施形態では、許可されたユーザグループIDは使用されず、別の代替の実施形態では、各コンテンツファイルがこれらに関連する許可グループIDを有する。
【0017】
プレイリストストリーミングテーブル210は、プレイリストIDによって識別された各プレイリストをストリーミングIDによって識別された構成コンテンツファイルと関連付けるレコードを含む。各レコードはまた、プレイリスト中の各コンテンツファイルの順序(「ソート順序」)を示す情報を収容する。
【0018】
本発明で使用される構成要素について説明してきたが、ここでストリーミング・メディアコンテンツへのアクセスを制御するプロセスを説明する。概説すると、ウェブサーバ106上に配置された認証ソフトウェア構成要素が、公開キー情報、秘密キー情報、及び現在時刻に基づいてハッシュ値又は「チケット」を生成する。公開キーは、エンドユーザとエンドユーザのユーザIDによってリクエストされたストリーミング・コンテンツに対する一意の識別子である。秘密キーは、コンテンツの所有者によって設定されたセキュリティキーとセキュリティタイムインターバルとを含む。
【0019】
リクエストされたコンテンツが存在するストリーミング・メディアサーバ104は、公開キーを含むストリーミングのリクエストとウェブサーバ106によって生成されたチケットとを受け取る。ストリーミング・メディアサーバ104は、ローカルに格納された秘密キー情報を使用して固有形態のチケットの生成に進む。ストリーミング・メディアサーバ104は、ストリーミング・メディアサーバ104とウェブサーバ106によって生成されたチケットの比較に基づいて、リクエストされたストリーミング・コンテンツへのアクセスを拒否するか、又はアクセスを与える。
【0020】
次に、図3のワークフロー図と図4及び5のフローチャートを参照しながらアクセスを制御するプロセスをより詳細に説明する。本実施例では、エンドユーザ102が、単一のストリーミング・メディアコンテンツファイルへのアクセスをリクエストする。最初に、ウェブサーバ106は、エンドユーザに許可アプリケーションにログインするようリクエストし、特定のストリーミング・メディアを視聴するオプションをエンドユーザに呈示するウェブページを提供する(ステップ302)。例えば、このようなページは、視聴のため各々が固有のストリーミングリクエストのリンクを有する幾つかのコンテンツファイルの1つを選択し、そのエンドユーザID(コンテンツの所有者が予め割り当ててエンドユーザに提供した)を提供し、更に、選択されたコンテンツへのアクセスに対してエンドユーザに課金することができるようにクレジットカード番号を提供するようエンドユーザにリクエストするフォームを含むことができる。別の実施形態では、エンドユーザは、エンドユーザの連絡先情報及び課金情報を提供することによってコンテンツの所有者に予め登録され、所有者は、割り当てられたエンドユーザIDと共にこれらをデータベース内にテーブル形式で格納する。
【0021】
ウェブページに応答して、エンドユーザは、エンドユーザのユーザIDを提供してリンクを起動し、これにより認証アプリケーションにログインし、このリンクに関連する特定のストリーミング・コンテンツファイルへのアクセスをリクエストする(ステップ304)。ストリーミングIDが「123456」によって表現される例示的なストリーミングリクエストは、以下の通りである。
<A href http://webserver.company.com/getstream.asp?ID=123456>
【0022】
本実施形態では、認証アプリケーションは、ウェブサーバ106上に存在する「.dll」ソフトウェア要素である。しかしながら、例えばアクティブ・サーバページ(ASP)又はサーブレットなどの他のあらゆるプログラム言語又は技術を使用して本明細書で説明された機能性を実施することができる点を当業者であれば認識するであろう。特定のプログラミング技術に関係なく、認証アプリケーションは、ウェブサーバ上のどのような処理ボトルネックをも軽減するために、ウェブサーバ106上で実行させることが好ましい。
【0023】
エンドユーザが認証アプリケーションにログインし、ウェブサーバ106がエンドユーザからストリーミングリクエスト及びエンドユーザIDを受け取ると、ウェブサーバ106は、続いて許可チケットを動的に生成し、更に、選択されたコンテンツファイルへのリンクを動的に生成する。より詳細には、認証アプリケーションの制御下において、ウェブサーバ106は、許可チケットを生成する際に使用するための秘密キーを求めてデータベース108にリクエストを出す(ステップ306)。ウェブサーバ106は、リクエストされたコンテンツファイルに関連するセキュリティキー及びセキュリティインターバルを含む秘密キーをCMデータベース108から検索するためのデータベースクエリーを発行する。これに応答して、CMデータベース108は、秘密キーをウェブサーバ106に返送する(ステップ308)。
【0024】
データベース108から秘密キーの取得が完了すると、ウェブサーバ106はチケットを生成する(ステップ310)。図4に関連してより詳細に説明されるように、ウェブサーバ106は、秘密キー、ストリーミングID、エンドユーザID、現在時刻、及びハッシュアルゴリズムを使用してチケットを生成する。本実施形態では、リクエストされたコンテンツのストリーミングIDが、ステップ304でエンドユーザによって起動されたストリーミングリクエストリンクに含まれているので、ウェブサーバ106は、ストリーミングIDを使用してチケットを生成することができる。しかしながら、別の実施形態では、エンドユーザによって提供されるストリーミングリクエストは、ストリーミングID以外の、例えばコンテンツのタイトル、作者、及び/又はファイル名などの一意の識別情報を含む。このような実施形態では、ウェブサーバ106は、ストリーミングテーブル204をサーチして、ストリーミングリクエストに含まれる識別情報に基づいてストリーミングIDを検索する。更に別の実施形態では、ストリーミングリクエストは、システムがチケットを生成するために使用するファイル名又はパスなどの、ストリーミングID以外の一意の識別子を含む。
【0025】
チケットが生成されると、ウェブサーバ106は、メディアサーバ上のリクエストされたコンテンツへのリンクを生成する。より詳細には、上記で示された例示的なストリーミングリクエストに基づいて、エンドユーザプロセッサ102に存在するメディアプレーヤが「webserver.company.com」(すなわちウェブサーバ106)を呼び出し、メディアサーバ104へのリンクを動的に生成するための「getstream.asp」プログラムを実行することになる(ステップ312)。「getstream」アプリケーションは、アクティブ・サーバページ(すなわちASP)拡張子を有するが、必ずしもASP技術を使用するとは限らない点を当業者は認識するであろう。むしろ、「.dll」構成要素などの何らかのプログラム又はスクリプト言語若しくは技術を用いて、所望の機能性を提供することができる。しかしながら、認証アプリケーションの場合と同様に、エンドユーザプロセッサ102でのあらゆる処理ボトルネックを緩和するためにプログラムはウェブサーバ側で実行されるのが望ましい。「getstream.asp」プログラムは、ウェブサーバ106にCMデータベース108を呼び出させ、メディアサーバ104へのリンクを動的に生成するのに必要なデータを検索させるよう機能する。より詳細にはウェブサーバ106は、ユニバーサル情報テーブル202からホスト名を検索し、ストリーミングテーブル204からURLプリフィックス及びファイル名を検索する。「getstream.asp」プログラムはまた、リンクの最後にストリーミングID、チケット、及びエンドユーザIDを付加する。次いで、ウェブサーバ106は、エンドユーザプロセッサ102のメディアプレーヤへリンクを返す(ステップ314)。
【0026】
メディアファイルへの例示的なリンクは以下の通りである。
< REF href=”mms://mediaserver.company.com/streaml.asf?ID=123456&TICKET=uvwl23xyz&USER_ID=abcl23def”>
ここで、URLプリフィックスは「mms://」によってリクエストされ、ホスト名は「mediaserver.company.com」で表され、ファイル名は「stream1.asf」で表され、コンテンツのリクエストアイテムのストリーミングIDは「123456」で表され、チケットは「uvw123xyz」で表され、エンドユーザIDは「abc123def」で表される。
【0027】
リンクを受け取ると、エンドユーザプロセッサ102は、ストリーミング・メディアコンテンツをリクエストするステップに進む(ステップ316)。より詳細には、エンドユーザプロセッサ102に存在するメディアプレーヤは、リンクで識別された「mediaserver.company.com」(すなわちストリーミング・メディアサーバ104)を呼び出す。呼び出しの一部として、メディアプレーヤは、リクエストされたコンテンツのストリーミングIDのコピー、ウェブサーバ106によって生成されたチケット、及びエンドユーザIDをストリーミング・メディアサーバ104に供給する。
【0028】
ストリーミングID、エンドユーザID、及びチケットを含むリンクを受け取ると、ストリーミング・メディアサーバ104は、エンドユーザがリクエストされたコンテンツへアクセスするのを認可するかどうかを判断するステップに進む(ステップ318)。図5を参照して以下に更に詳細に説明されるように、ストリーミング・メディアサーバ104は、ローカルに格納された秘密キー情報とリンク内に含まれるストリーミングID並びにエンドユーザIDに基づいて独自にチケットを生成することによってアクセスを認可するか否かを判断する。一般に、ストリーミング・メディアサーバ104によって生成されたチケットがウェブサーバ106によって生成されたチケットと一致する場合、ストリーミング・メディアサーバ104は、リクエストされたストリーミング・メディアコンテンツをエンドユーザプロセッサ102に供給する(ステップ320)。
【0029】
用語「一致」は、異なる実施形態においては異なる意味を有することができることを理解されたい。一致とは、完全な一致又は予め定められた範囲内での一致を意味することができる。或いは、一致は、あるアルゴリズム又は方程式に基づいて標準偏差だけ互いに異なる2つの値を有することができる。
【0030】
ここで図4を参照しながら、ウェブサーバ106によってチケットを生成するプロセスをより詳細に説明する。上述のようにチケット生成プロセスは、ウェブサーバ106に存在する許可ソフトウエア・プラグインによって行われるのが好ましい。本実施形態では、本プロセスは、ウェブサーバ106がストリーミングID及びエンドユーザIDを含むストリーミングリクエストを受け取るステップで始まる(ステップ402)。次にウェブサーバ106は、データベース108にアクセスし、リクエストされたストリーミングIDに関連する秘密キー情報を検索するステップに進む(ステップ406)。このような秘密キー情報は、ユニバーサルセキュリティキー及びセキュリティインターバルを含む。別の実施形態では各ストリーミングは、ストリーミングテーブル204にフィールドとして格納された固有のセキュリティキー及びセキュリティインターバルを有し、これをウェブサーバ106がストリーミングリクエストに含まれるストリーミングIDに基づいて検索する。
【0031】
上述のようにウェブサーバ106はまた、現在時刻を使用してチケットを生成する。より詳細には、ウェブサーバ106は、現在時刻を算出し、その時刻をセキュリティインターバルの最も近い倍数にまで切り下げる(ステップ410)。本実施形態では、Cプログラミング言語の標準ライブラリ関数「time()」によって生成される協定世界時(UTC)を秒単位で利用する。セキュリティインターバル(変数「$time」で表される)の最も近い倍数に切り下げられた時刻を生成するための例示的なパール(Perl)プログラミングコードを以下に示す。
#
# example of 15 minute ticket expiration/security interval
#
$interval=15*60
$time=int(time()/$interval)*$interval;
ここで、変数「$interval」はセキュリティインターバルに対応し、15分に等しい。
【0032】
例証として、現在時刻が中央標準時で2000年5月31日午後2:16:07であると、関数「time()」は、およそ「959800567」の値を返す。このUTC値を最も近い15分インターバルに切り下げると、およそ「959800500」の値となり、これは、中央標準時で2000年5月31日午後2:15:00の時刻を表す。
【0033】
上記の例示的なコードは変更してもよく、それでも尚本発明の範囲内とすることができる点は理解されたい。例えば、セキュリティインターバルは分単位である必要はなく、インターバルが「time()」関数によって使用される時間の単位で表されるように適切な変換が行われる限り、該インターバルは他の時間単位で表してもよい。更に、別の実施形態では、現在時刻はUTC以外の標準ときに基づく。このような実施形態では、時間標準は、ウェブサーバ106及びストリーミング・メディアサーバ104に固有のものである。許可チケットを生成する際に使用するために、エンドユーザプロセッサ102に時間を計算させてその値をウェブサーバ106に渡すことは、本発明の範囲内にある点も理解されたい。更に別の実施形態では、セキュリティインターバルは、標準時間が所望の桁数にまで単に切り捨てられるように選択される。
【0034】
ウェブサーバ106がハッシュアルゴリズムに対する入力値(公開キー情報、秘密キー情報、及び時間値)を有すると、ウェブサーバ106は、ハッシュアルゴリズムに対する入力ストリングを生成する(ステップ414)。本実施形態では、ハッシュアルゴリズムは「MD5」メッセージダイジェスト・アルゴリズムである。更に本実施形態では、メディアサーバ104及びウェブサーバ106は同じアルゴリズムを使用する。
【0035】
チケットを生成するために基本的にいずれかのハッシュ又は暗号化アルゴリズムを利用することが本発明の範囲内であることは理解されるべきである。更に、チケットを生成する2つのサーバ(上記の実施形態ではウェブサーバ106とストリーミング・メディアサーバ104)は、同じ入力値に基づいて同じチケットを生成するか、或いは同じ入力値に基づいて互いに既知の偏差値の範囲にあるチケットを生成するのが好ましい。別の実施形態では、セキュリティを向上させるために利用可能な複数のアルゴリズムの1つが使用される。例証として、このような実施形態は、利用可能な複数のアルゴリズムからランダムに選択された1つのアルゴリズムを使用するか、或いは、リクエストされたコンテンツ、リクエストの日付又は時間、特定のエンドユーザ、コンテンツを所有するエンティティ、及び同様のものに基づいて複数のアルゴリズムのうちの1つを選択することができる。このような実施形態では、システムは、メディアサーバに対してウェブサーバによって使用されるアルゴリズムの指示を渡すか、又はメディアサーバが、ウェブサーバによって利用された同じアルゴリズムを選択及び使用させるロジックを含む。
【0036】
使用される特定のハッシュアルゴリズムに対して入力ストリングが有効である限り、及びストリーミング・メディアサーバ104が入力ストリングの配置を認識している限り、入力値のどのような配置も入力ストリングとして使用することができる。本実施形態では、以下の予め定められた配置が使用される。
TTTTTTTTTTKKKKKKKKKKSSSSSSSSSSUUUUUUUUUU
ここで、「T」は時間値の桁を表し、「K」はセキュリティキーの英数字を表し、「S」はストリーミングID(あらゆる必要な先頭埋め込み文字を含む)の桁を表し、「U」はエンドユーザID(あらゆる必要な先頭埋め込み文字を含む)の英数字を表す。別の実施形態では、入力ストリングは異なる長さとすることができる。
【0037】
ハッシュアルゴリズム入力ストリングが生成されると、ウェブサーバ106は、入力ストリングにハッシュアルゴリズムを適用し、これによりチケットを生成する(ステップ418)。
【0038】
ここで図5を参照して、リクエストされたコンテンツストリーミングへのアクセスを認可するかどうかを判断するストリーミング・メディアサーバ104のプロセスを検討する。最初に、必ずしも必要ではないが、本実施形態のメディアサーバ104は、アクセスを認可するか否かを判断する際に使用するために、各々が異なる時間値に基づいた3つの許可チケットを生成する点に留意されたい。更に、ウェブサーバの機能性と同様、アクセスを認可するか否かを判断するプロセスが、メディアサーバ104上に存在する許可ソフトウェア要素において実行されることが望ましい。
【0039】
アクセスを認可するかどうかを判断する際には、最初に、ストリーミング・メディアサーバ104が、エンドユーザプロセッサ102上に存在するメディアプレーヤから、ストリーミングID、エンドユーザID、及びチケットを含むストリーミングリクエストを受け取る(ステップ502)。ストリーミングリクエストが受け取られると、メディアサーバ104は、ハッシュアルゴリズムへの入力ストリングを生成する。この点でメディアサーバ104は、ローカルのメモリから秘密キー情報、すなわちセキュリティキーとセキュリティインターバルとを検索する(ステップ506)。好ましくは、メディアサーバ104は、秘密キー情報をローカルのメモリに格納するが、別の実施形態では、メディアサーバ104は、例えばMicrosoft Corporationにより提供されるライトウェイト・ディレクトリ・アクセス・プロトコル(Light−Weight Directory Access Protocol)によってアクセスされるアクティブディレクトリツリー又は遠隔のデータベースに情報を保存する。更に別の代替の実施形態では、メディアサーバ104は、ローカルエリアネットワーク(LAN)などのネットワーク接続を介してデータベース108にアクセスすることによって秘密キー情報を検索する。
【0040】
ウェブサーバ106が行ったように、メディアサーバ104もまた、現在時刻を計算し、その時間をセキュリティインターバルの最も近い倍数(すなわち以前の時間に)にまで切り下げる(ステップ510)。しかしながら、ウェブサーバ106とは異なり、ストリーミング・メディアサーバ104はまた、メディアサーバ104によって計算された第1の時間値よりも小さな(すなわち以前の時間の)セキュリティインターバルの次に最も近い倍数にまで切り下げされた現在時刻に等しい第2の時間値を計算する(ステップ510)。メディアサーバ104は更に、セキュリティインターバルの最も近い倍数にまで切り上げされた現在時刻(すなわちより遅い時間)に等しい第3の時間値を計算する(ステップ510)。
【0041】
次いで、メディアサーバ104は、検索された秘密キー情報、受け取られた公開キー情報、及び3つの時間値を使用して、3つの対応するハッシュ入力ストリングを生成する(ステップ514)。次に、メディアサーバ104は、3つの入力ストリングの各々にハッシュアルゴリズムを適用し、これにより3つのチケットを生成する(ステップ518)。
【0042】
独自のチケットを生成した後、次にメディアサーバ104は、メディアサーバ104によって生成されたチケットのいずれかがウェブサーバ106によって生成されたチケットと一致するかどうかを判断する(ステップ522)。チケットが一致しない場合、ストリーミングリクエストは認証されたものではなく、及び/又は有効期限が切れたものである(すなわち、ユーザのリクエスト時間から測定されるセキュリティインターバルを越えた時間にメディアサーバ104によって生成されたもの)可能性が高い。従って、メディアサーバ104は、リクエストされたコンテンツへのアクセスを拒否する(ステップ526)。
【0043】
チケットが一致する場合、ストリーミングリクエストは認証されたものであり、セキュリティインターバルの範囲内にある可能性が高い。しかしながら、アクセスを認可する前に、メディアサーバ104は最初に、エンドユーザが同じコンテンツへのアクセスをリクエストして、既に視聴したかどうかを判断する(ステップ530)。メディアサーバ104は、エンドユーザIDのリストと該エンドユーザが既にアクセスを認可されている対応するストリーミングIDとをローカルメモリ内に保持するのが好ましい。リクエストされたコンテンツをエンドユーザが既に視聴したかどうかを判断するために、メディアサーバ104は、メモリにアクセスして、受け取ったエンドユーザID及びストリーミングIDが以前に格納されているかどうかを判断する。エンドユーザID及びストリーミングIDが既に格納されている場合には、エンドユーザは、リクエストされたコンテンツへのアクセスが拒否される(ステップ530)。
【0044】
受け取ったエンドユーザID及びストリーミングIDが、これまで格納されていない場合には、メディアサーバ104は、エンドユーザID及びストリーミングIDをメモリに格納するステップに進み(ステップ534)、エンドユーザにコンテンツへのアクセスを与える(ステップ538)。従って、エンドユーザID及びストリーミングIDを格納することにより、リクエストされたコンテンツを指すリンクをエンドユーザが他者と共有するのを防ぐ任意の追加レベルのセキュリティ保護が得られる。
【0045】
ウェブサーバ106のローカル時間とメディアサーバ104のローカル時間との間が同期されていないことを考慮に入れるために、3つのチケットを使用することが望ましい点は理解されるべきである。更に、ある状況では、メディアサーバ104によって生成された第1のチケット(すなわち、セキュリティインターバルの最も近い倍数にまで切り下げられた現在時刻に基づく)は、エンドユーザが許可されている場合でも、ウェブサーバ106によって生成された第1のチケットと一致しないことになる。例えば、セキュリティインターバルを15分とすると、ウェブサーバ106が午後12:14:00にチケットを生成し、メディアサーバ104がその第1のチケットを午後12:16:00に生成する場合、同じ日の時間帯においてリクエストがセキュリティインターバルの範囲内にあってもチケットは一致しないことになる。ウェブサーバは、午後12:00:00に対応する時間値に基づいてチケットを生成し、一方、メディアサーバ104は、午後12:15分:00に対応する時間値に基づいてチケットを生成することになる。従って、本実施形態では、メディアサーバ104は、セキュリティインターバルの次に最も近い倍数に切り下げられたそのときの現在時刻に基づいて第2のチケットを生成し、すなわち本実施例では、午後12:00:00に対応する。従って、第2のチケットは、ウェブサーバ106によって生成されるチケットと一致するであろう。同様に、セキュリティインターバルが経過した後、エンドユーザに対しアクセスを認可することが可能である。従って、本実施形態では、セキュリティインターバルは複数のチケットの使用を考慮するように選択されるべきである。ウェブサーバ106とメディアサーバ104は、セキュリティインターバルの約半分以内に時刻同期するのが望ましい。
【0046】
メディアサーバ104が、上記の実施形態で3つのチケットの代替として1つ又はそれ以上の異なるチケットを生成することもまた本発明の範囲内である点を理解すべきである。更に上記の実施形態では、チケットが共に並列に生成されるものとして説明しているが、メディアサーバ104がチケットを順に連続して生成及び/又は比較することも本発明の範囲内である。更に、時間値は、例えばメディアサーバ104によって計算された第1の時間値からセキュリティインターバルを単に加減算することを含め、多くの方法のいずれかで生成することができる点も理解されるべきである。
【0047】
別の実施形態では、別のレベルのセキュリティを提供してもよい。より詳細には、ウェブサーバ106によって生成されたチケットが、メディアサーバ104によって生成されたチケットのうちの1つと一致する場合、メディアサーバ104は、同じチケットが既に生成されていたかどうかを判断するステップに進む。メディアサーバ104は、アクセスが許可されたチケットのリストを保持している。このようなリストは、論理上、全ての「使用済み」チケットを表す。一致したチケットが「使用済み」チケットのリストに存在しない場合には、メディアサーバ104は、アクセスを認可し、エンドユーザプロセッサ102上に存在するメディアプレーヤにリクエストされたコンテンツを供給する。アクセスを認可するステップの一部として、メディアサーバ104はまた、「使用済み」チケットのリスティングを更新する。一致したチケットが使用済みチケットのリストに存在する場合には、メディアサーバ104はアクセスを拒否し、リクエストしているエンドユーザに適切なメッセージを供給する。使用済みチケットを追跡することによって、システムは、許可されたエンドユーザがウェブサーバ106から受け取ったストリーミングリクエストを他者と共有するのを防止する。
【0048】
更に、アクセスを認可するかどうかを判断する際にエラー計算を使用することも本発明の範囲内である点を理解されたい。例えば1つのエラー計算は、例えば、予め定められた時間期間(例えば15分、30分など)、適用可能なセキュリティインターバルの設定百分率(例えば50%、125%など)、又は他のエラー計算などのエラーインターバルに現在時刻を加算及び/又は減算した値に基づいて、メディアサーバ104が1つ又はそれ以上の追加チケットを生成するステップを含む。このようなエラー計算は、上記の実施形態において第2又は第3の時間値に対する代替値として、或いはこれに加えて使用することができる。
【0049】
別の実施形態では、ウェブサーバ106及びメディアサーバ104は、上記の実施形態とは異なる方法で時間値を計算することによってチケットを生成する。1つの例示的な実施形態では、ウェブサーバ106及びメディアサーバ104は、現在時刻を計算し、これをセキュリティインターバル以外の或るインターバルの倍数に切り下げ又は切り上げる。セキュリティインターバルが15分であるこうした1つの実施形態では、ウェブサーバ106は、5分の最も近いインターバルに切り下げられた現在時刻に基づいてチケットを生成する。次に、ストリーミング・メディアサーバ104は、同じ5分のインターバルに切り下げられた現在時刻に基づいてチケットを生成する。チケットが一致しない場合、メディアサーバ104は、次に古いインターバルに切り下げされた時間に基づいてチケットを生成するステップに進む。メディアサーバは、設定された回数又はウェブサーバとメディアサーバのチケットが一致するまで、次に古いインターバルに基づいてチケットを生成し続ける。好適には、メディアサーバ104は、合計が少なくともセキュリティインターバルに及ぶタイムインターバルに基づいて繰り返し新しいチケットを生成する。本実施例ではメディアサーバ104は、各5分の合計15分のインターバルで少なくとも3つのチケットを生成する。
【0050】
許可プロセスにおいてエンドユーザIDの使用を完全に省略すること、或いはエンドユーザIDを上述の方法とは異なる方法で使用することは、本発明の範囲内にある点は理解すべきである。例えば、別の実施形態では、エンドユーザIDは、ハッシュアルゴリズムに対する入力ストリングの一部としては使用されない。その代わり、データベース108は、どのエンドユーザがコンテンツへのアクセスをリクエストしたかを追跡するテーブルを含む。このような実施形態は、ストリーミングIDによって識別されるコンテンツを、エンドユーザIDによって識別され、該コンテンツストリーミングに既にアクセス又は視聴したエンドユーザと関連付けるレコードを含む視聴ユーザ(ストリーミング)テーブルを含む。同様に本実施形態は、プレイリストIDによって識別されるプレイリストを、エンドユーザIDによって識別され、該プレイリストに既にアクセス又は視聴したエンドユーザと関連付けるレコードを含む視聴ユーザ(プレイリスト)テーブルを含む。許可チケットを生成する前に、ウェブサーバは、適切な視聴ユーザテーブルをチェックし、同じエンドユーザが特定のストリーミング又はプレイリストへのアクセスをリクエストしたかどうかを判断する。エンドユーザが既にアクセスをリクエストしていた場合、ウェブサーバは、アクセスを拒否するか、或いはエンドユーザに対して、これ以後のアクセスに対しては再度課金されることをエンドユーザに示すウェブページを供給する。テーブルは、セキュリティインターバルなどの時間期間又はこれを超える或る期間の後に自動的にクリアされる。
【0051】
本発明はまた、例えば、コンテンツの所有者であるクライアントの代わりに、サービスプロバイダがウェブサーバ、ストリーミング・メディアサーバ、及びプレイリストサーバを操作する比較的より複雑なシステムにおいて具現化することができる点を理解すべきである。このような1つの実施形態を次に図6−8を参照しながら説明する。本実施形態の機能性の大部分が、図3の実施形態の機能性と同じであり、従って同じ技術のどれによっても実施することができる点は当業者には理解されるであろう。
【0052】
図6に示されるように、本システムは、図1の実施形態の構成要素と類似の幾つかの構成要素を含み、エンドユーザプロセッサ602、1つ又はそれ以上のストリーミング・メディアサーバ604、及びデータベース608を含む1つ又はそれ以上のウェブサーバ606を含み、これらの全てはインターネット又は他のネットワークに結合される。加えて、本実施形態のシステムは、サービスプロバイダによって同様に動作されるプレイリストサーバ610も含む。好適には、ウェブサーバ606、データベース608を含むストリーミング・メディアサーバ604、プレイリストサーバ610は、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)などのサービスプロバイダのネットワーク、並びにインターネットに接続される。
【0053】
一般に、データベース608は、図2の実施形態のデータベース内に収容されている同じ情報を含むが、該情報はクライアントのアカウント毎に格納される。図7に示されるように、データベース608は、アカウントIDによって識別される各クライアントのレコードを含むアカウントテーブル702を含む。各レコードは更に、クライアント名、アドレス、請求書発行情報及び同様のものなどのクライアント識別情報(「クライアント情報」)、クライアントのコンテンツが保護されているかどうかに関する表示(「保護許可」)、クライアントのセキュリティキー(「セキュリティキー)、及びセキュリティインターバル(「セキュリティインターバル」)を含む。
【0054】
図2の実施形態と同様に本データベース608はまた、ストリーミングIDによって識別される各コンテンツファイルのストリーミング識別情報を含むストリーミングテーブル704と、エンドユーザIDを許可されたグループIDに関連付ける許可ユーザテーブル706と、プレイリストIDによって識別される各プレイリスト用のプレイリスト識別情報を含むプレイリストテーブル708と、所定のプレイリストIDに関連付けられたストリーミングIDを識別するプレイリストストリーミングテーブル710とを含む。図2のデータベースに関連して説明された情報フィールドに加えて、本ストリーミングテーブル704及びプレイリストストリーミングテーブル708は更に、各コンテンツファイル及び各プレイリストとそれぞれ関連付けられたアカウントIDを識別するフィールドを含む。
【0055】
本データベース608はまた、ストリーミングサーバテーブル712を含み、該テーブルは、ストリーミングIDによって指定される各コンテンツファイルのレコードを含み、コンテンツファイルが存在する特定のストリーミング・メディアサーバ104のホスト名を識別する。図2の実施形態と同様、ホスト名はメディアサーバ104のDNS名である。
【0056】
ここで、本実施形態の動作を図8のワークフロー図に関連して説明する。本実施例の目的のために、エンドユーザは、保護コンテンツの1つのアイテムを有するプレイリストへのアクセスをリクエストする。最初に、ウェブサーバ606は、エンドユーザに対し許可アプリケーションにログインすることをリクエスし、特定のストリーミング・メディアを視聴するオプションをエンドユーザに呈示するウェブページを提供する(ステップ802)。図3の実施形態と同様に、例示的なウェブページは、リンクを起動することによって特定のコンテンツファイルを選択し、エンドユーザIDを提供し、及び請求書発行情報を提供することをエンドユーザにリクエストするフォームを含むことができる。ウェブページに応答して、エンドユーザは、エンドユーザID及びクレジットカード情報を提供し、ストリーミングリクエストリンクを起動し、これにより特定のストリーミング・メディアコンテンツファイルへのアクセスをリクエストする。プレイリストIDが「789000」の場合の例示的なストリーミングリクエストリンクは以下の通りである。
<A href”http://playlistserver.company.com/malceplaylist.dll?ID=789000”>
【0057】
エンドユーザが、ストリーミングリクエストリンクを起動すると、エンドユーザプロセッサ602上で実行されるプログラミングスクリプトによって、ストリーミングリクエストリンク及びエンドユーザIDがウェブサーバ606に送られることになる(ステップ804)。当業者は、本質的に、例えばC++、パール(Perl)、ビジュアルベーシック、ジャバ(Java)及び同様のものを含むどのようなプログラム言語でもエンドユーザのスクリプトを実行することができる点を認識するであろう。本実施形態では、スクリプトはJavaスクリプトであり、エンドユーザのウェブブラウザと連動して実行される。
【0058】
ウェブサーバ606がスクリプトからストリーミングリクエストを受け取ると、ウェブサーバ606は、許可ソフトウエア・プラグインの指示の下でチケットを生成する。この件に関して、ウェブサーバ606は、データベース608に対して許可チケットの生成の際に使用する秘密キー(本実施形態では、リクエストされたプレイリストに関連するセキュリティキーとセキュリティインターバル)のリクエストを発行する(ステップ808)。これに応答して、データベース608はウェブサーバ606に秘密キーを返す(ステップ808)。
【0059】
データベース608から秘密キーを取得した後、ウェブサーバ606は、ストリーミングされたものではなくプレイリストID(本実施形態ではプレイリストIDで置き換える)を使用して、図4に関連して前述されたようにチケットを生成する(ステップ810)。上述のように、ウェブサーバ606は、秘密キー、ストリーミングID、エンドユーザID、及び時間値をハッシュアルゴリズムに適用してチケットを生成する。次いで、ウェブサーバ606は、エンドユーザプロセッサ602上で実行されるウェブブラウザにチケットとエンドユーザIDを返す(ステップ812)。
【0060】
チケットを受け取った後、エンドユーザプロセッサ602上で実行されるスクリプトは、ストリーミングリクエストリンクの最後に情報を付加する(ステップ814)。例示的なリンクは以下に示される。
<A href”http://playlistserver.company. com/makeplaylist?ID=789000&TICKET=uvw123xyzretum&USER_ID=abcl23def”>
ここで、プレイリストIDは「789000」で表され、チケットは「uvw123xyz」で表され、エンドユーザIDは「abc123def」で表される。
【0061】
次いで、エンドユーザプロセッサ602上で実行されるスクリプトにより、ホスト名「playlistserver.company.com」によってストリーミングリクエストリンクで識別されるプレイリストサーバ610が呼び出される(ステップ816)。従って、プレイリストサーバ810は、リンク、プレイリストID、チケット、及びユーザIDが提供される。「makeplaylist.dll」オブジェクトの制御下で、プレイリストサーバ610は、コンテンツがウインドウズメディア・フォーマットであるASXファイルなどのリダイレクタファイルを生成する(ステップ818)。「makeplaylist」プログラムは、例えばASPを含む幾つかのプログラム又は技術のいずれかを使用して実行することができる。リダイレクタファイルは、チケット及び公開キー(すなわちストリーミングID及びエンドユーザID)と共にリクエストされたコンテンツへのリンクを含む。リダイレクタファイルを生成するために、プレイリストサーバ610はデータベース608にアクセスし、プレイリストと、ストリーミングIDに関連付けられたホスト名、URLプレフィックス、及びファイル名を含むコンテンツファイルへのリンクに必要とされる情報とを含むコンテンツファイルのストリーミングIDを検索する。
【0062】
別の実施形態では、ストリーミングリクエストにチケットを付加するためにエンドユーザのスクリプトは使用されない。その代わりに、エンドユーザが、エンドユーザIDを提供してストリーミングリクエストリンクを起動する(ステップ804で)ときに、ウェブサーバ606上で実行される認証アプリケーションがチケットを生成し、該チケットとエンドユーザIDとをストリーミングリクエストリンクに付加し、プレイリストサーバ610を直接呼び出してリダイレクタファイルを生成する。ウェブサーバ606はまた、エンドユーザプロセッサ602上のメディアプレーヤを識別する情報をプレイリストサーバ610に渡すので、プレイリストサーバ610は、メディアプレーヤにリダイレクタファイルを転送する(これによりステップ812、814、及び816が不要になる)。このような実施形態を図10を参照して以下に説明する。
【0063】
次に、プレイリストサーバ610は、エンドユーザプロセッサ602でメディアプレーヤにASXリダイレクタファイルを渡す(ステップ820)。本実施例の目的のために、ASXファイルは以下のように表される。
<ASX>
<ENTRY>
<REF href=”mms://mediaserver.company.com/streaml.asf?ID=123456&TICKET=uvwl23xyz&USER_ID=abcl23def”>
</ENTRY>
</ASX>
ここで、URLプレフィックスが「mms://」で表され、適切なメディアサーバ604のホスト名が「mediaserver.company.com」で表され、ファイル名が「stream1.asf」で表され、コンテンツストリーミングIDのリクエストされたアイテムが「123456」で表され、チケットが「uvw123xyz」で表され、エンドユーザIDが「abc123def」で表される。
【0064】
リダイレクタファイルは、コンテンツファイル用のメタデータなどの他の情報、或いは広告などの保護されていない他のファイルを含むことができる。
【0065】
ASXファイルを受け取った後、エンドユーザプロセッサ602は、ストリーミング・メディアコンテンツをリクエストするステップに進む。より詳細にはメディアプレーヤは、ASXファイルで識別された「mediaserver.company.com」(すなわちストリーミング・メディアサーバ604)を呼び出す(ステップ822)。呼び出しされると、メディアプレーヤは、リクエストされたコンテンツのストリーミングIDのコピー、ウェブサーバ604によって生成されたチケット、及びエンドユーザIDをストリーミング・メディアサーバ604に提供する。
【0066】
メディアプレーヤの呼び出しに応答して、ストリーミング・メディアサーバ604は、リクエストされたコンテンツへのエンドユーザのアクセスを認可するかどうかを判断するステップに進む(ステップ824)。ストリーミング・メディアサーバ604は、1つ又はそれ以上の認証チケットを独自に生成し、そのチケットをウェブサーバ606によって生成されたチケットと比較することによってアクセスを認可するかどうかを判断をする。許可チケットの生成及び比較プロセスは、ストリーミングIDではなくプレイリストIDを使用して、図5に関連して説明された同じ方法で行われる。メディアサーバ604によって生成されたチケットが、ウェブサーバ606によって生成されたチケットと一致する場合には、メディアサーバ604は、エンドユーザにリクエストされたコンテンツへのアクセスを認可する(ステップ824)。
【0067】
上記の実施形態は、保護されたコンテンツへの無許可のアクセスに対して該コンテンツの所有者に十分なレベルの保護をもたらすことが理解されると同ときに、更に高いレベルの保護を実装することも可能である。1つのこのような更に高いレベルの保護は、特定のエンドユーザが所与の任意の時間にアクセスできるコンテンツファイル数を制限することを含む。別のレベルの保護は、特定のユーザが保護されたコンテンツにアクセスするのに使用できる異なるプロセッサ(例えばコンピュータ)の数を制限する。上述の実施形態のいずれもこのような更に高いレベルの保護を含むように修正することができ、ここで図9と10に関連して更に高い保護の実施を説明する。
【0068】
図9の概略図で分かるように、本実施形態は、図6−8に示され関連して説明された実施形態に基づく。上述のように、一般にコンテンツ配信及び認証システムは、ウェブサーバ606、データベース608、及びプレイリストサーバ610を含む。更に、必ずしも必要ではないが、本システムは、複数のストリーミング・メディアサーバ604−1、604−2、604−n(総称して604と称する)を含み、その各々がサーバIDによって識別され、保護されたコンテンツを収容している。好適には、ストリーミング・メディアサーバ604は各々、同じストリーミング・コンテンツのコピーを収容し、システムは、ラウンドロビン又は他の負荷バランス手法を使用することにより複数のストリーミング・メディアサーバ上の負荷バランスを取る。データベース608は、格納されるサーバIDと各コンテンツファイルを関連付ける。以下の説明に基づいて理解されるように、本実施形態は、異なるメディアサーバ上の同じコンテンツファイルへのアクセスが許可された別のユーザからアクセス情報を受け取ることによって、無許可のエンドユーザが特定のメディアサーバ上のコンテンツファイルにアクセスすることを防止するので、複数のストリーミング・メディアサーバと共に使用するのに特に好適である。図9に示されるように、上述の構成要素は、保護されたネットワークを介して互いに通信するのが好ましいが、しかしながら、別の実施形態では、グローバルキャッシュ・サーバ902は、ストリーミング・メディアサーバ604とだけ直接接続され、ビジネスサーバ904は、グローバルキャッシュ・サーバ902とだけ直接接続されている。上述の実施形態と同様、エンドユーザは、インターネット又は他のネットワークに結合されたエンドユーザプロセッサ602−1、602−2、602−m(総称して602と称する)を介して保護されたコンテンツにアクセスする。
【0069】
一般に、グローバルキャッシュ・サーバ902は、ストリーミング・メディアサーバ604に対する各エンドユーザの接続に関する接続情報をキャッシュし、エンドユーザIDに基づいて高いレベルの認証保護を提供する。接続情報は、キャッシュ又はデータベースなどのローカルのデータ記憶装置、又はデータベース608などの遠隔の記憶装置に格納される。以下でより詳細に説明されるように、各ストリーミング・メディアサーバ604は、当該ストリーミング・メディアサーバ604を許可した各エンドユーザのアクセスに対してグローバルキャッシュ・サーバ902に接続情報を転送する。本実施形態では、接続情報は、エンドユーザID、各エンドユーザのメディアプレーヤのグローバル固有ID(GUID)、エンドユーザがアクセスを許可されたストリーミング・コンテンツのフォーマット(例えばウインドウズメディアプレーヤ又はリアルプレーヤフォーマット)、エンドユーザによってアクセスされるコンテンツが存在するサーバのID、及びエンドユーザがリクエストされコンテンツにアクセスしている特定のエンドユーザプロセッサ602の識別子(「ppvスロット」と称される)を含む。周知のように、メディアプレーヤのプロバイダは、一般に各メディアプレーヤにGUIDを割り当ててメディアプレーヤを識別する。
【0070】
各エンドユーザは、該エンドユーザがコンテンツにアクセスすることができる幾つかのエンドユーザプロセッサ602を論理的に割り当てられる。本実施例では各エンドユーザは、最大3つの異なるエンドユーザプロセッサ602からコンテンツにアクセスすることができる。3つの異なるプロセッサは、例えば、エンドユーザの家庭用コンピュータ、業務用コンピュータ、及びモバイルコンピュータ、ウェブ対応の携帯電話、若しくはウェブ対応の携帯情報端末(PDA)のいずれかとすることができる。更に、3つのプロセッサ602の各々に対し、エンドユーザは、システムによってサポートされている各メディアフォーマット毎に複数のメディアプレーヤを有することができる。本実施形態では、ウインドウズメディアプレーヤ又はリアルプレーヤフォーマットがサポートされる。従って、本実施形態では、各エンドユーザは、3つまでの異なるppvスロット値だけを有することができ、各ppvスロット値に対して、エンドユーザは、各タイプのフォーマットのメディアプレーヤ毎に2つのGUIDを有することができる。
【0071】
本実施形態では、特定のエンドユーザプロセッサ602のppvスロット値は、当該プロセッサのクッキーIDである。一般に、クッキーは、エンドユーザが特定のエンドユーザプロセッサ602を介してシステムウェブサイトを最初に訪れたときに、ウェブサーバ606がエンドユーザのブラウザに対して付与するデータのセットである。ウェブサーバ606は、クッキーが含むエンドユーザに関する情報を保存し、エンドユーザのブラウザは、通常、エンドユーザプロセッサ602上のブラウザのシステムフォルダ内に格納されるテキストファイルとしてクッキーを格納する。ユーザのプロセッサ602がクッキーを受け入れない場合には、アプリケーションは、ユーザに対してオプションを変更するようにリクエストする応答を生成することになる。
【0072】
本実施形態では、ppvスロット情報は、データベース608内のトランザクションテーブルに格納される。一般に、トランザクションテーブルは、エンドユーザを特定のストリーミング・メディアイベント及びそのイベントの3つのppvスロットと関連付ける。この目的のために、トランザクションテーブルは、以下のフィールド、すなわち、エンドユーザID、イベントID(所与のメディアイベントを一意的に識別する)、ストリーミングID、イベントに対するエンドユーザのアクセスの日付、第1のppvスロット値、第1のppvスロットのGUID、第2のppvスロット値、第2のppvスロットのGUID、第3のppvスロット値、第3のppvスロット値のGUIDを含む。本明細書の説明に基づいて、エンドユーザ及びppvスロット情報を特定のイベントと関連付けることを利用して、1つのイベントにつき各エンドユーザに対しエンドユーザプロセッサ602を3つ以下に制約することができ、一方、トランザクション・データベースがエンドユーザを単にppvスロット情報に関連付けている(イベント毎ではなく全イベントにわたって)別の実施形態では、各ユーザを全イベントにわたって3つのエンドユーザプロセッサ602までに制約することができる点は理解されるであろう。
【0073】
以下により詳細に説明されるように、ビジネスサーバ904は、ppvスロット値を含む接続情報の全て又は一部をグローバルキャッシュ・サーバ902から受け取る。グローバルキャッシュ・サーバ902と同様、ビジネスサーバ904は、ローカル又は遠隔のデータ記憶装置を含み、各固有のセットの接続情報についての別個のレコードをデータベース内に格納する。接続情報に基づいて、ビジネスサーバ904上に存在する許可アプリケーションは、エンドユーザのアクセスを3つ以下のエンドユーザプロセッサ602に制限し、該3つのエンドユーザプロセッサ602の各々について単一のメディアプレーヤに制限する。許可されるエンドユーザプロセッサ602の数(従ってppvスロット値の数)は、ビジネスサーバ904の許可アプリケーションにおいて構成変更可能である。
【0074】
本実施形態に関連して説明された更に高いレベルの保護は、上述の実施形態の認証システム及び方法と共に利用することができるが、本実施形態に関連して説明された更に高いレベルの保護の1つ又はそれ以上のいずれかは、認証メカニズム単独で実施してもよく、或いは、本明細書で上記に説明された以外の認証メカニズムと共に実施してもよい点は理解されるであろう。従ってここで、単なる例証として、更に高いレベルの保護を図10のワークフロー図を参照して説明する。
【0075】
最初にウェブサーバ606は、サービスへの登録と許可アプリケーションへのログインをエンドユーザにリクエストするウェブページを該エンドユーザに供給する。ウェブページはまた、各々が別個のストリーミングリクエストリンクを有する多くのストリーミングメディアファイルの1つを視聴するオプションをエンドユーザに呈示する(ステップ1002)。これに応答して、エンドユーザは、エンドユーザIDを提供し、ウェブページ上の所望のストリーミングリクエストリンクを起動して、これにより特定のストリーミング・メディアコンテンツファイルへのアクセスをリクエストする。エンドユーザはまた、クレジットカード番号などの支払い情報又は他のアカウント情報を提供することができる。上記の実施形態と同様、エンドユーザIDの提供並びにストリーミングリクエストリンクの起動は、単一のステップ又は別個のステップとして行うことができる。エンドユーザがログインするときには、Javaスクリプト又は他のスクリプト若しくは構成要素などのウェブサーバ606上で実行される認証アプリケーションは、エンドユーザがこれまでにそのシステムにログインしたことを示すppvスロットクッキーについてエンドユーザプロセッサ602をチェックする。クッキーが存在しない場合には、ウェブサーバ606は、特定のエンドユーザプロセッサ602にクッキーを割り当て、これをエンドユーザプロセッサ602上に格納し、これによってプロセッサ602を識別する。ストリーミングリクエストリンクを起動することによって、ストリーミングリクエストリンクとエンドユーザIDは、ウェブサーバ606に伝達される(ステップ1004)。
【0076】
エンドユーザがシステムにログインし、コンテンツへのアクセスをリクエストするときには、ウェブサーバ606の認証アプリケーションは、エンドユーザが割り当てられた3つのppvスロットを超えているかどうかを判断し、超えていない場合には、トランザクションテーブルを更新する(ステップ1010a)。この点において、ウェブサーバ606は、エンドユーザがシステムにログインしたときに割り当てられたクッキーIDを、特定のエンドユーザ(エンドユーザIDによって識別された)及びイベント(イベントIDによって識別された)に関するトランザクションテーブル内の全てのppvスロット値と比較する。トランザクションテーブルが既に3つのppvスロット値を含み、受け取ったクッキーIDが、既存の3つのppvスロット値のどれとも一致しない場合には、エンドユーザは、第4のプロセッサから許可されていないアクセスを試みたものとみなされ、このアクセスは拒否される。
【0077】
トランザクションテーブルが、そのイベントのエンドユーザに対して3つより少ないppvスロット値を含む場合には、ウェブサーバ606は、トランザクションテーブル内にレコードを作成する。より具体的には、ウェブサーバ606は、エンドユーザID、イベントID(エンドユーザによって購入されたコンテンツに以前に割り当てられた)、購入されたコンテンツのストリーミングID(ストリーミングリクエストリンクのプレイリストIDに対応するものとして、データベース608からウェブサーバ606が検出する)、日付、及びppvスロット値を使用してレコードを作成する。
【0078】
エンドユーザが、ppvスロット情報に基づいてアクセスが拒否されない場合には、ストリーミングリクエストリンク及びエンドユーザIDを受け取ると、ウェブサーバ606上で実行される認証アプリケーションは、データベース608にアクセスし(ステップ1006)、該データベース608から秘密キー情報を受け取り(ステップ1008)、チケットを生成して、チケット、エンドユーザID、及びppvスロット値をストリーミングリクエストリンクに付加する(ステップ1010b)。次いで、ウェブサーバ606上で実行される認証アプリケーションは、付加されたチケット、エンドユーザID、及びppvスロット値を含むストリーミングリクエストリンクをプレイリストサーバ610に渡す(ステップ1012)。
【0079】
プレイリストサーバ610が、ストリーミングリクエストリンク、チケット、エンドユーザID、及びppvスロット値を受け取ると、プレイリストサーバ610は、リダイレクタファイルを生成するステップに進む。上述のように、リダイレクタファイルを生成するために、プレイリストサーバ610は、データベース608にアクセスし(ステップ1014)、プレイリスト、並びにその全てが特定のストリーミングIDと対応付けられた、ホスト名、URLプレフィックス、及びファイル名を含むコンテンツファイルのストリーミングIDを検索する(ステップ1016)。この情報を使用して、プレイリストサーバ610は、リダイレクタファイルを作成する(ステップ1018)。次いで、プレイリストサーバ610は、GUIDにより識別されるエンドユーザプロセッサ602の特定のメディアプレーヤにリダイレクタファイルを渡す(ステップ1020)。本実施形態の例示的なリダイレクタファイルを以下に示す。
<ASX>
<ENTRY>
<REF href=”mms://mediaserver.company.com/streaml.asf?ID=123456&TICKET=uvwl23xyz&USER_ID=abcl23def&PPV_SLOT=1”>
</ENTRY>
</ASX>
ここで、URLプレフィックスが「mms://」で表され、適切なメディアサーバ604のホスト名が「mediaserver.company.com」で表され、ファイル名が「stream1.asf」で表され、コンテンツストリーミングIDのリクエストされたアイテムが「123456」で表され、チケットが「uvw123xyz」で表され、エンドユーザIDが「abc123def」で表され、ppvスロット値が「1」である。
【0080】
リダイレクタファイルを受け取った後、エンドユーザプロセッサ602上のメディアプレーヤは、適切なストリーミング・メディアサーバ604にストリーミング・メディアコンテンツをリクエストするステップに進む(ステップ1022)。より具体的には、メディアプレーヤは、リダイレクタファイルにおいて識別された特定のストリーミング・メディアサーバ604を呼び出す。呼び出されると、メディアプレーヤは、リクエストされたコンテンツのストリーミングIDのコピー、ウェブサーバ606によって生成されたチケット(ステップ1010で)、エンドユーザID、及びppvスロット値をストリーミング・メディアサーバ604に提供する。更にメディアプレーヤは、そのGUIDをストリーミング・メディアサーバに渡す。
【0081】
エンドユーザプロセッサ602からオリジナルのストリーミングリクエスト及びログイン情報を受け取ると、ストリーミング・メディアサーバ604上で実行されるアプリケーションは、メディアプレーヤがGUIDを渡した(又は無効のデフォルト値を渡した)かどうかを判断する。渡していない場合、アプリケーションは、認証プロセスを中止することによってエンドユーザのアクセスを拒否し、エンドユーザに通知する。好適には、エンドユーザのメディアプレーヤがGUIDを提供しなかったことがデータベース608又は他のデータ記憶装置内に記録され、次回にこのエンドユーザがシステムにログインするときに、システムは、GUIDの送信を可能にする方法に関する指示をエンドユーザに提供する。
【0082】
図6−8の実施形態と同様、ストリーミング・メディアサーバ604がメディアプレーヤの呼び出しを受けると、ストリーミング・メディアサーバ604は、1つ又はそれ以上の認証チケットを個別に生成し、その1つ又はそれ以上のチケットをメディアプレーヤから受け取られたチケットと比較する(ステップ1024)。チケットが「一致する」場合、ストリーミング・メディアサーバ604は、コンテンツへのアクセスを許可し、エンドユーザにコンテンツをストリーミングする(ステップ1026)。
【0083】
ストリーミングサーバ604が、エンドユーザにコンテンツへのアクセスを許可する度に、ストリーミング・メディアサーバ604は、特定の接続を識別する情報をグローバルキャッシュ・サーバ902に送る(ステップ1028)。上述のように、このような接続情報は、エンドユーザID、ストリーミング・コンテンツのフォーマット(例えばウインドウズのメディアプレーヤ又はリアルプレーヤ)、エンドユーザにコンテンツを提供するストリーミング・メディアサーバ604のサーバID、エンドユーザのメディアプレーヤのGUID、及びエンドユーザがシステムにログインした特定のエンドユーザプロセッサ602を表すppvスロット値を含むのが好ましい。
【0084】
ストリーミングサーバ604が、エンドユーザにコンテンツへのアクセスを許可する度に、ストリーミング・メディアサーバ604はまた、ストリーミング名又はストリーミングID、エンドユーザID、及びリクエストに関する接続情報をローカルにキャッシュする。ストリーミング接続が終了する場合は常に、ストリーミング・メディアサーバ604は、キャッシュ中の対応するエントリーを削除する。従って、キャッシュ中の全てのエントリーは、現在のストリーミング又はアクセスを表す。ソフトウェア構成要素又はオブジェクトなどのストリーミング・メディアサーバ604上で実行されるポーリングサービスを使用して、メディアサーバ604は、エントリーのキャッシュを周期的に(例えば2分毎に)ポーリングする。各エントリーに対し、ストリーミング・メディアサーバ604は、グローバルキャッシュ・サーバ902に接続情報を再送する。
【0085】
上述のように、グローバルキャッシュ・サーバ902は、受け取られた接続情報を各レコードが含んでいるデータベース又はキャッシュを含む。グローバルキャッシュ・サーバ902が、特定のユーザに関する接続情報を受け取ると、サーバ902は、通常、そのデータベース内に新しいレコードを作成する。しかしながら、新しいレコードを作成する前に、グローバルキャッシュ・サーバ902は、そのデータベースが新規に受け取った接続情報と同じエンドユーザIDを有するレコードを含むかどうかを最初に判断する(ステップ1030)。
【0086】
グローバルキャッシュ・サーバ902はまた、アクセスが終了するときに特定のアクセスに関するレコードを削除する。上述のように、各ストリーミング・メディアサーバ604は、接続情報によって識別されるアクセスの期間中に所定の間隔でグローバルキャッシュ・サーバ902に接続情報の各セットを再送する。グローバルキャッシュ・サーバ902は、接続情報が再送されなかったレコードを周期的に消去し、これにより最新のアクセスに関するレコードだけを保持する。別の実施形態では、グローバルキャッシュ・サーバは、別の方法に基づいて、もはや使用されていない接続に関するレコードを消去することができる。例えば、別の実施形態において、グローバルキャッシュ・サーバ902は、該グローバルキャッシュ・サーバが特定の接続が終了したことを示す終了メッセージをストリーミング・メディアサーバから受け取るまで、特定の接続に関するレコードを保持する。つまり、グローバルキャッシュ・サーバのデータベース内にレコードが存在することは、特定のエンドユーザ(エンドユーザIDによって識別される)が現在コンテンツファイルにアクセスしていることを表している。
【0087】
グローバルキャッシュ・サーバ902が受け取ったエンドユーザIDと同じエンドユーザIDを備えたレコードを既に有する場合、エンドユーザ(又はアクセス情報を取得した無許可のユーザ)は、複数のコンテンツファイルに同ときにアクセスし、或いは複数回同じコンテンツファイルにアクセスすることを試みている。本実施形態では、このような複数アクセスは許可されない。従って、グローバルキャッシュ・サーバ902は、新規に受け取られる接続情報が受け取られているメディアサーバと、現存のデータベースレコード中のサーバIDによって識別されるメディアサーバの両方にエンドユーザのアクセスを終了させるリクエストを発行する。ストリーミング・メディアサーバ604がエンドユーザから接続解除されると、グローバルキャッシュ・サーバ902は、そのデータベースから特定のエンドユーザに関係するレコードを削除する。
【0088】
この更に高いレベルの許可保護は任意選択であり、異なる方法で実施することができる点は理解されるべきである。例えば、別のサーバが、ユーザが複数アクセスを試みているかどうかを判断するためにグローバルキャッシュ・サーバ902に照会することができる。このような1つの実施形態では、プレイリストサーバ610がウェブサーバ606からリクエストリンク、チケット、及びエンドユーザIDを受け取った後で、グローバルキャッシュ・サーバ902を呼び出し、グローバルキャッシュ・サーバ902が既にコンテンツにアクセスしているエンドユーザのレコードを有するかどうかを判断する(ステップ1018a)。グローバルキャッシュ・サーバ902は、エンドユーザが現在コンテンツにアクセスしているか否かに関する表示をプレイリストサーバ610に返信する(ステップ1018b)。これに応じて、プレイリストサーバ610上で実行される認証アプリケーションは、偽又は無効のリダイレクタファイルを生成する。このような1つの実施例では、リダイレクタファイルは、チケットが存在せず、又はストリーミング・メディアサーバ604によって検出されることになるデフォルトチケットを含むことにより、無効である。
【0089】
グローバルキャッシュ・サーバ902が、そのデータベースにおいて新しい接続情報で受け取られたエンドユーザIDと同一のエンドユーザIDを有するレコードが存在しないことを識別した場合、グローバルキャッシュ・サーバ902は、そのデータベースにおいて受け取った接続情報を用いて新しいレコードを作成し、エンドユーザのコンテンツへのアクセスを妨げない。
【0090】
グローバルキャッシュ・サーバ902が、エンドユーザの接続を解除しない場合、サーバ902は、接続情報の全部又は一部をビジネスサーバ904に中継し、該ビジネスサーバは、2つの更に高いレベルの任意選択の許可保護を有効にする(ステップ1034)。本実施形態では、グローバルキャッシュ・サーバ902は、エンドユーザID、ppvスロット、GUID、及びストリーミングフォーマットをビジネスサーバ904に中継する。
【0091】
ビジネスサーバ904は、グローバルキャッシュ・サーバ902から受け取ったこの接続情報を使用して、メディアプレーヤのGUIDに部分的に基づいてコンテンツへのアクセスを制御する(ステップ1036)。上述のように、各エンドユーザは、各々が各フォーマットに対し1つだけのメディアプレーヤを有する3つの異なるエンドユーザプロセッサ602からシステムにログインし、コンテンツにアクセスすることが許可される。従って、特定のエンドユーザプロセッサ602(ppvスロットによって識別される)に関し、エンドユーザが特定のメディアフォーマット用の特定のメディアプレーヤ(GUIDにより識別される)を用いてアクセスするようリクエストし、該メディアプレーヤが、同じフォーマットのメディアに対して同じエンドユーザプロセッサ602上で以前使用されていたメディアプレーヤとは異なる場合、ビジネスサーバ904は、エンドユーザの接続を切断させることになる。一般に、この決定は、トランザクションテーブルにアクセスし、新しく受け取られる接続情報をエンドユーザ及びppvスロット値に関する既存のエントリーと比較することによって行われる。
【0092】
ビジネスサーバ604が、所与のエンドユーザ及びppvスロットに関する接続情報とを受け取ると、ビジネスサーバ904は、トランザクションテーブルにアクセスし、GUIDがこの特定のエンドユーザ、ppvスロット、及びフォーマットについて以前受け取ったかどうかを判断する。受け取っていない場合には、ビジネスサーバ904がトランザクションテーブルを更新させてGUIDを反映させ、ビジネスサーバ904は、エンドユーザのアクセスを終了するために何もしない。
【0093】
受け取られた接続情報が、GUIDが既に受け取ったトランザクションテーブル中のレコードに対応する場合、ビジネスサーバ904は、受け取られたGUIDがそのppvスロットに関して格納された特定のメディアフォーマット用のGUIDと一致するかどうかを判断する。GUIDが一致しない場合には、ビジネスサーバ904は、グローバルキャッシュ・サーバ902にエンドユーザのコンテンツへのアクセスを終了する旨の命令を送信し、エンドユーザのアクセスは拒否される。このような命令は、エンドユーザIDを指定するのが好ましい(ステップ1038)。次に、グローバルキャッシュ・サーバ902は、現在エンドユーザにコンテンツを供給している1つ又はそれ以上のストリーミング・メディアサーバ604にリクエストを発行する。
【0094】
従って、エンドユーザが一時的にコンテンツへのアクセスが許可されていても、本実施形態は、無許可のエンドユーザに対してアクセスを拒否するものとみなされるべきである。このような一時的なアクセスは、グローバルキャッシュ・サーバ902及びビジネスサーバ904での処理に起因してアクセスの許可に遅延が生じないこと望ましいので、本実施形態においては許可される。グローバルキャッシュ・サーバ902及びビジネスサーバ904の処理に対してアクセスが遅延した特定の事例においては、エンドユーザのメディアプレーヤがタイムアウトとなり、アクセスの認可が妨げられる可能性がある。その結果、本実施形態のメディアサーバ604は、チケットが一致すると直ちにアクセスを認可し、これによりメディアプレーヤがタイムアウトとなることを防ぎ、更に、グローバルキャッシュ・サーバ902又はビジネスサーバ904がそのアクセスを不適切であると判断した場合には、このようなアクセスは終了する。
【0095】
ビジネスサーバ904が、新しく受け取られたメディアプレーヤのGUIDがppvスロット及びフォーマットに関しメモリ内に格納されたGUIDと一致すると判断した場合、ビジネスサーバ904は、何も行わず、エンドユーザのアクセスが継続することを許可する。
【0096】
グローバルキャッシュ・サーバ902が、システム内の全てのストリーミング・メディアサーバ904からの接続情報を受け取ることが好ましい限りは、各々がメディアサーバのサブセットから接続情報を受け取る複数のグローバルキャッシュ・サーバを含むことができる点を理解されたい。しかしながら、このような実施形態では、複数のグローバルキャッシュ・サーバは相互に通信している。
【0097】
更に、特定の実施形態において、グローバルキャッシュ・サーバ902及びビジネスサーバ904の機能性を1つのサーバに組み合わせてもよいが、2つの別個のサーバの使用には、スケーラビリティを含む幾つかの利点がある。例えば、許可システムが複数のコンテンツ所有者のアカウントに対して利用される場合には、各アカウントが別個の認証ルールを実施することができ、各ルールは、グローバルキャッシュ・サーバへのアクセスを有する別個のビジネスサーバ上にある。このような実施形態において、接続情報は、現存する接続情報又はアカウントIDなどの接続情報に含まれる付加的なフィールドに基づいて適切なビジネスサーバに送ることができる。
【0098】
本実施形態では、システムは、エンドユーザのppvスロット情報(ppvスロット値とGUIDを含む)を再登録及びクリアする機会を各エンドユーザに提供し、これによりエンドユーザが異なるマシン及び/又はメディアプレーヤからのコンテンツにアクセスすることが可能になる。
【0099】
他の別の実施形態では、メディアサーバ604とは対照的に、グローバルキャッシュ・サーバ902でチケット許可を実行することによってプレイリストへのアクセスを制御する。これは、より大きなスケーラビリティを有するより効率的なシステムをもたらすことができる。このことは、全て同様のコンテンツを供給する極めて多くのメディアサーバが存在する場合に特に有用である。各メディアサーバ上で全く同じ情報を保管し且つ処理する代わりに、この実施形態により、認証情報を1つの中央プレイリスト上に存在させることが可能となり、残りのシステムに渡していくことができる。従って、メディアサーバは、コンテンツをストリーミングすることに集中し、認証アルゴリズムによって妨げられないようにすることができる。ここで、このような1つの実施形態を図11−12に関連して説明する。本実施形態の機能性のほとんどは、図3、図6、及び図9の実施形態の機能性と同じであり、従って、同じ技術のいずれかによって実施することができる点は、当業者であれば理解されるであろう。本実施形態のアーキテクチャは、図9に関連して検討されたアーキテクチャと同じものである。
【0100】
次に、本実施形態の動作を図11のワークフロー図に関連して説明する。本実施例の目的のために、エンドユーザは、保護されたコンテンツの1つのアイテムを有するプレイリストへのアクセスをリクエストするが、複数のアイテムを使用することもできる。最初に、ウェブサーバ606は、許可アプリケーションへのログインをエンドユーザにリクエストし、特定のストリーミング・メディアを視聴するオプションをユーザに呈示するウェブページを提供する(ステップ1102)。
【0101】
エンドユーザが、ストリーミングリクエストリンクを起動すると、エンドユーザプロセッサ602上で実行されるプログラミングスクリプトにより、ストリーミングリクエストリンク及びエンドユーザIDをウェブサーバ606に送る(ステップ1104)。エンドユーザのスクリプトは、例えばC++、Perl(パール)、ビジュアルベーシック、Java及び同様のものを含むどのようなプログラミング言語ででも基本的に実施することができることを当業者であれば認識するであろう。本実施形態では、スクリプトはJavaスクリプトであり、エンドユーザのウェブブラウザと連動して実行される。
【0102】
ウェブサーバ606が、スクリプトからストリーミングリクエストを受け取ると、ウェブサーバ606は、許可ソフトウエア・プラグインの指示の下で許可チケットを生成する。この件に関して、ウェブサーバ606は、データベース608に対して許可チケットの生成の際に使用する秘密キー(本実施形態では、リクエストされたプレイリストに関連するセキュリティキーとセキュリティインターバル)のリクエストを発行する(ステップ1106)。これに応答して、データベース608は、ウェブサーバ606に秘密キーを返す(ステップ1108)。別の実施形態では、より多くの又はより少ない或いは異なるデータを備えた秘密キーを使用することができ、セキュリティインターバルなどの特定の情報は、メモリから検索されるのではなく、暗号で設定することができる。
【0103】
データベース608から秘密キーを取得した後、ウェブサーバ606は、ストリーミングID又はプレイリストIDのいずれかを使用して、図4に関連して上述されたようにチケットを生成する(ステップ1110)。本明細書で説明されたように、ウェブサーバ606は、秘密キー、ストリーミングID又はプレイリストID、エンドユーザID、及び時間値をハッシュアルゴリズムに適用してチケットを生成する。次いで、ウェブサーバは、エンドユーザプロセッサ602上で実行されるウェブブラウザにチケットとエンドユーザIDを返す(ステップ1112)。
【0104】
許可チケットを受け取った後、エンドユーザプロセッサ602上で実行されるスクリプトは、ストリーミングリクエストリンクの最後に情報を付加する(ステップ1114)。例示的なリンクは以下に示される。ここで、プレイリストIDは「789000」で表され、チケットが「uvw123xyz」で表され、エンドユーザIDが「abc123def」で表される。
【0105】
< A href
”http://playlistserver.company.com/makeplaylist?ID=789000&TICKET=uvwl23xyzreturn&USER_ID=abcl23def”>
【0106】
次いで、エンドユーザプロセッサ602上で実行されるスクリプトは、ホスト名「playlistserver.company.com」によりストリーミングリクエストリンクで識別されるプレイリストサーバ610が呼び出される(ステップ1116)。従って、プレイリストサーバ610は、リンク、プレイリストID、チケットユーザID及びクッキーIDが提供され、これらは以下により詳細に説明する。
【0107】
別の実施形態では、ストリーミングリクエストにチケットを付加するためにエンドユーザスクリプトは使用されない。その代わりに、エンドユーザが、そのエンドユーザIDを提供してストリーミングリクエストリンクを起動する(ステップ1104で)ときに、ウェブサーバ606上で実行される認証アプリケーションがチケットを生成し、該チケットとエンドユーザIDとをストリーミングリクエストリンクに付加し、プレイリストサーバ610を直接呼び出してチケットを検証する。ウェブサーバ606はまた、プレイリストサーバ610にエンドユーザプロセッサ602を識別する情報を渡すので、プレイリストサーバ610は、プレイリスト・ハッシュ(以下で説明する)をエンドユーザプロセッサ602に転送する(これによりステップ1112、1114、及び1116を不要にする)。
【0108】
次に、プレイリストサーバ610は、リクエストと共にウェブサーバ606によって生成されたチケットをグローバルキャッシュ・サーバ902に渡し、第2のチケットを生成する(ステップ1118)。グローバルキャッシュ・サーバは、そのローカルのデータベースに対し許可チケットを生成する際に使用するための秘密キー(本実施形態では、リクエストされたプレイリストに関連するセキュリティキーとセキュリティインターバル)のリクエストを発行する(ステップ1120)。ローカルデータベースを有することで追加される利点は、別のサーバ又は他のデータベースを使用することを必要とせずにデータベース内で情報にアクセスできることである点を認識されたい。従って、ローカルデータベースを使用することにより、データベース内に格納された情報をより迅速に処理することができる。リクエストに応答して、ローカルデータベースは、グローバルキャッシュ・サーバ902に秘密キーを返す(ステップ1122)。
【0109】
このローカルデータベースから秘密キーを取得した後、グローバルキャッシュ・サーバ902は、図11に関連して以下に更に詳細に説明するように、1つ又はそれ以上の認証チケットを独自に生成し、これらのチケットをウェブサーバ606によって生成されたチケットと比較することにより、アクセスを認可するかどうかを判断する(ステップ1124)。グローバルキャッシュ・サーバ902によって生成されたチケットが、ウェブサーバ606によって生成されたチケットと一致する場合、グローバルキャッシュ・サーバ902は、プレイリストサーバ610に一致を表すメッセージを送る。チケットが一致しない場合は、プレイリストサーバ610に不一致を表すメッセージが送られる(ステップ1126)。
【0110】
プレイリストサーバ610が、一致を表すメッセージを受け取ると、プレイリストサーバ610は、プレイリスト・ハッシュを生成する。このハッシュは、当該プロセッサ602に対するクッキーIDに基づく。上述のように、一般に、クッキーは、エンドユーザが特定のエンドユーザプロセッサ602を介して1つ又はそれ以上の特定のウェブサイトを最初に訪れたときに、ウェブサーバがエンドユーザのブラウザに付与するデータのセットである。ウェブサーバ606は、クッキーが含むエンドユーザに関する情報(例えばユーザID)を保存し、エンドユーザのブラウザは、通常、エンドユーザプロセッサ602上のブラウザのシステムフォルダ内に格納されるテキストファイルとしてクッキーを格納する。このクッキーは、リンク、プレイリストID、チケット及びユーザIDと共にエンドユーザプロセッサ602からプレイリストサーバに渡される。ユーザのプロセッサ602(例えばウェブブラウザ)がクッキーを受け入れない場合には、アプリケーションは、ユーザに対してオプションを変更するようリクエストする応答を生成することになる。このクッキーは、現在時刻及び予め定められたタイムインターバルと共に、プレイリストサーバ610によって使用されてプレイリスト・ハッシュを生成する。このハッシュの生成については、以下に更に詳細に説明する。チケットが一致しなかった場合には、「ダミーハッシュ」が生成され、ストリーミングに付加される(ステップ1128)。この「ダミーのハッシュ」は、クッキーに基づく必要はなく、むしろ許可されなかったことをシステムに対して単に示すものである。従って、ダミーハッシュは、予め定められた英数字、又はランダムに生成されたストリング、過去の時間又は未来時間に基づくハッシュ、ゼロ値、及び同様のものとすることができる。ストリーミングリクエストと共にハッシュ及び許可チケットは、エンドユーザプロセッサ602に送られる(ステップ1130)。或いは、許可チケットの1つ又は両方はエンドユーザプロセッサ602には渡されない。特定の実施形態では、「ダミーハッシュ」が生成されずに、むしろストリーミングリクエストが、どのようなハッシュも付加されずにエンドユーザプロセッサ602に送られ、すなわち許可されなかったことを示すことも理解されたい。
【0111】
プレイリスト・ハッシュは、コンテンツを視聴するための許可が認可されていたか又は許可が拒否されていたものとしてユーザを識別するよう機能する点も理解されたい。ユーザが許可されていた場合、有効なプレイリスト・ハッシュが生成されることになる。ユーザが許可されていなかった場合、無効又は「ダミー」ハッシュが生成されることになる。対照的に、生成された許可チケットは、コンテンツを視聴する許可をユーザが認可されるべきか否かを判断するベースを形成する。
【0112】
プレイリスト・ハッシュを受け取った後、エンドユーザプロセッサ602は、ストリーミング・メディアサーバ604にストリーミング・メディアコンテンツをリクエストするステップに進む(ステップ1132)。エンドユーザプロセッサ602は、必要に応じてストリーミングIDのコピー又はプレイリストID、プレイリスト・ハッシュ、許可チケット、並びにクッキーを渡す。上記で説明されたように、特定の実施形態では、許可チケットの1つ又は両方はプレイリストサーバ610からエンドユーザプロセッサ602に渡されず、従って、エンドユーザプロセッサ602からストリーミング・メディアサーバ604に渡されない。ストリングが受け取られると、ストリーミング・メディアサーバ604は、現在時刻、受け取ったクッキー、及び予め定められたセキュリティタイムインターバルを利用するプレイリストサーバによって使用されたのと同じハッシュアルゴリズムを使用して第2のハッシュ値を生成することによって、プレイリスト・ハッシュの精度を検証する。次にメディアサーバ604は、生成されたハッシュを受け取ったハッシュと比較する(ステップ1134)。ハッシュの妥当性が検証されると(例えば生成されたハッシュと一致すると)コンテンツが供給され、検証されない場合には、ハッシュが「ダミーハッシュ」であるか、或いはアクセスの有効期限が切れている理由からアクセスが拒否される(ステップ1136)。
【0113】
大半の認証をメディアサーバではなくプレイリストサーバ上で行うことができる利点が付加されることにより、システムの効率が大幅に向上する点を理解すべきである。全てが同じコンテンツを供給する多数のメディアサーバが存在できる場合、メディアサーバ上で保管及び処理される完全に同一の情報は、様々な異なる箇所で見出すことができる。従って、メディアサーバが処理する認証を可能な限り少なくできることで、メモリ空間を大幅に節約することができる。従って、大半の認証情報を1つの中央プレイリストサーバ上に存在させることができ、該情報を残りのシステムに渡していくことができる。加えて、メディアサーバがコンテンツのストリーミングに集中できることにより、コンテンツのストリーミングも同様により効率的になる。
【0114】
次に、リクエストされたコンテンツストリーミングへのアクセスを認可するかどうかを判断するグローバルキャッシュ・サーバ902のプロセスを図12を参照して説明する。理解されるように、本プロセスは、図5に関連して上記で説明されたプロセスと同じである。
【0115】
アクセスを認可するかどうかの判断において、最初に、グローバルキャッシュ・サーバ902が、ストリーミングID、エンドユーザID、公開キー、エンドユーザのクッキー及びチケットを含むストリーミングリクエストをプレイリストサーバ610から受け取る(ステップ1202)。ストリーミングリクエストを受け取ると、グローバルキャッシュ・サーバ902は、ハッシュアルゴリズムに対する入力ストリングを生成する。この点に関して、グローバルキャッシュ・サーバ902は、キャッシュ又はローカルデータベースとすることができるローカルメモリから秘密キー情報、すなわちセキュリティキー及びセキュリティインターバルを検索するが、別のキーを使用してもよい(ステップ1206)。
【0116】
メディアサーバ104に関して上記で検討したように、グローバルキャッシュ・サーバ902は、3つの時間値を計算してその時差を考慮する(ステップ1210)。次いで、この時点で、グローバルキャッシュ・サーバ902は、検索された秘密キー情報、受け取った公開キー情報、及び3つの時間値を用いて、3つの対応するハッシュ入力ストリングを生成する(ステップ1214)。本実施形態では、3つの時間値は、現在時刻、現在時刻+セキュリティタイムインターバル、及び現在時刻−セキュリティタイムインターバルであり、例えば、ここでセキュリティインターバルは、現在時刻の10秒前及び現在時刻の10秒後である。時間値の間の差が小さいほど、適用されるセキュリティのレベルが高くなることは理解されるべきである。適正なハッシュでも有効寿命が限られているので、より短いタイムインターバルは、ユーザが適正なハッシュを傍受し、これを適正な認証として渡してコンテンツを不正に取得しようとする可能性を低減する。次に、グローバルキャッシュ・サーバ902は、ハッシュアルゴリズムに対して3つの入力ストリングの各々を適用し、これにより3つのチケットを生成する(ステップ1218)。
【0117】
チケットを独自に生成した後、次にグローバルキャッシュ・サーバ902は、グローバルキャッシュ・サーバ902によって生成されたチケットのいずれかがウェブサーバ606によって生成されたチケットと一致するかどうかを判断する(ステップ1222)。チケットが一致しない場合には、ストリーミングリクエストは認証されたものではなく、及び/又は有効期限が切れたものである(すなわち、ユーザのリクエスト時間から測定してセキュリティインターバルを超えた時間にグローバルキャッシュ・サーバ902によって生成されたもの)可能性が高い。従って、グローバルキャッシュ・サーバは、プレイリストサーバに認証されなかったことを通知するメッセージを渡す(ステップ1226)。
【0118】
チケットが一致する場合、ストリーミングリクエストは認証されたものであり、セキュリティタイムインターバルの範囲内にある可能性が高い。次にグローバルキャッシュ・サーバ902は、プレイリストサーバ910に対してプレイリスト・ハッシュを生成するように指示するメッセージをプレイリストサーバ910に渡す(ステップ1230)。図11に関連して上述されたように、このハッシュは、ストリーミングリクエストと共にエンドユーザプロセッサ602に渡され、そこからハッシュの精度を検証するためにストリーミング・メディアサーバ604に渡される。
【0119】
本明細書の説明に基づいて、図5に関連して検討された種々の実施形態及び修正の全てが本実施形態にも適用できることは、当業者であれば理解されるであろう。
【0120】
上述の実施形態は、セキュリティキー及びセキュリティインターバルの両方を含む秘密キーを利用するが、これより多くの情報又は少ない情報を秘密キーとして利用することも本発明の範囲内であることは理解すべきである。例えば、別の実施形態では、秘密キーは使用されず、他の実施形態では、秘密キーに例えばクライアントのユーザ名及びパスワードを含む追加情報が含められる。同様に、ストリーミングID及びエンドユーザID以外の情報を含む公開キーを利用することは本発明の範囲内である。例えば、ファイルパス名を含む情報を識別する別のコンテンツファイルを使用してもよい。加えて、ある実施形態では、エンドユーザIDは公開キー情報から省くことができる。更に別の実施形態では公開キー情報は、リクエストコンテンツファイルのタイトル又は他のストリーミング詳細などの追加情報を含む。
【0121】
ウェブサーバ及びストリーミング・メディアサーバによって提供されるものとして記載された機能性は、これに関連する他のデバイス上で実施することができる点も理解されるであろう。例えば、本発明の特定の実施形態では、ストリーミング・メディアサーバは、これに接続された関連アプリケーションサーバを有し、該アプリケーションサーバは、コンテンツへのアクセスを拒否又は認可するプロセスの全て又は一部を実施する。同様に、アプリケーションサーバをウェブサーバと対応付けて、例えば許可チケットを生成するプロセスを含むウェブサーバの機能性の一部又は全てを提供することは、本発明の範囲内である。従って、特定のサーバに対する言及は、他の関連するサーバ又は言及するサーバに結合されたプロセッサを含むことを意味する。
【0122】
また、許可チケットは、正確な時間に生成される必要がない点も理解されるべきである。例えば、ウェブサーバによって生成されるチケットは、エンドユーザがストリーミングリクエストリンクを起動する時間、又はウェブサーバがデータベースから秘密キー情報を受け取る時間、或いはストリーミングリクエストの起動時間付近の他の任意の時間に基づくことができる。同様に、メディアサーバは、例えば、メディアプレーヤから呼び出された時間、又は秘密キー情報が検索された後、又はコンテンツへの呼び出しがなされた時間付近の他の任意の時間に許可を生成することができる。更にメディアサーバが複数のチケットを生成する場合、チケットは、異なる時間又は同じ時間に基づくことができる。従って、時間又は現在時刻に対する言及は、正確な時間ではなく範囲を言及することを意味する。
【0123】
上記の例示的な実施形態は、単一のアイテムのコンテンツへのアクセスを制御する関連で説明されてきたが、上記の実施形態のいずれかを使用して、複数の保護されたコンテンツファイルを含むプレイリストへのアクセスを制御することができる点を当業者は理解するであろう。ここで、プレイリストへのアクセスを制御するための1つの例示的な実施形態を図6−8に関連して説明する。このような実施形態は、以下に指摘される修正により上述の説明に従って動作する。一般に、ウェブサーバ606は、各ストリーミングのストリーミングIDに基づいてプレイリストに収容された各コンテンツストリーミングのためのチケットを生成する。
【0124】
エンドユーザプロセッサ602上のメディアプレーヤは、プレイリストIDを含むストリーミングリクエストをプレイリストプロセッサ610に渡す。次に、プレイリストプロセッサ610は、リダイレクタファイルを生成し、これをメディアプレーヤに返す。「makeplaylist.dll」オブジェクトは、本実施例ではプレイリストID「789000」を使用して適切なリダイレクタファイルを構築する。より詳細には、プレイリストサーバ610は、プレイリストテーブル708とプレイリストテーブル710にアクセスし、どのコンテンツファイルがリクエストされたプレイリストの一部であるか、及びプレイリストのコンテンツファイルの順番を判断する。コンテンツファイルのファイル名は、ストリーミングテーブル704から検索される。次いで、エンドユーザプロセッサ602上で実行されるスクリプトは、対応するコンテンツストリーミングにリンクしているURLにストリーミングID、チケット、及びエンドユーザIDを付加する。本実施形態では、全てのコンテンツストリーミングが、ストリーミングサーバテーブル712において識別される同じメディアサーバ604上に配置される。
【0125】
対応するコンテンツストリーミングへのURLリンクに付加されたストリーミングID、チケット、及びエンドユーザIDを含む例示的なASXリダイレクタファイルは以下の通りである。
【0126】
<ASX>
<ENTRY>
<REF href=”mms://mediaserver.company.com/streaml.asf?ID=123456&TICKET=abc111xyz&USER_ID=abcl23def”>
<REF href=”mms://mediaserver.company.com/stream2.asf?ID=234567&TICKET=def222xyz&USER_ID=abc123def”>
<REF href=”mms://mediaserver.company. com/stream3.asf?ID=345678&TICKET=ghi333xyz&USER_ID=abc123def”>
</ENTRY>
</ASX>
【0127】
次いでメディアプレーヤは、ストリーミング・メディアサーバ604を連続して呼び出し、各呼び出しに対する各URLリンクがリダイレクタファイルに含まれる。より詳細には、メディアプレーヤは最初に、第1のコンテンツストリーミング(本実施例ではストリーミングID123456を有する)へのアクセスに対しメディアサーバ604を呼び出す。呼び出しに応答し、更に図5に関連して上記に一般的に説明されたように、メディアサーバ604は、チケットを独自に生成してコンテンツへのアクセスを認可するかどうかを判断する。アクセスが認可されない場合、エンドユーザはそのように通知される。他方、メディアサーバが、エンドユーザに対し第1のコンテンツストリーミングへのアクセスを認可する場合、メディアプレーヤは、プレイリスト中の残りのコンテンツストリーミング用のメディアサーバ604を呼び出すステップに進む。各呼び出しで、メディアサーバ604は、リクエストされたコンテンツストリーミングへのアクセスを許可又は拒否するステップに進む。
【0128】
しかしながら、このような実施形態では、各コンテンツストリーミングが、プレイリスト中のストリーミングの前に再生されるコンテンツストリーミングの合計持続時間を考慮する個々のセキュリティインターバルを有することが望ましい点を理解されたい。例えば各々が5分の持続時間である(ストリーミングテーブル704のストリーミング詳細フィールドで識別された)3つのコンテンツストリーミングを含むプレイリストでは、第2のストリーミングのセキュリティインターバルは、第1のストリーミングのセキュリティインターバルよりも5分だけ長くすることができ、第3のストリーミングのセキュリティインターバルは、第1のストリーミングのセキュリティインターバルよりも10分だけ長くすることができる。プレイリストの各ストリーミングの持続時間を考慮することによって、システムは、許可されたエンドユーザがプレイリスト中の第1のコンテンツストリーミングへのアクセスを受け入れるが、チケットが有効期限切れである理由から後続のコンテンツストリーミングに対してはアクセスが受け入れられないことを防止するのに役立つ。セキュリティインターバルはまた、プレイリスト中に含まれた広告などのあらゆる非保護のコンテンツをも考慮することができる。
【0129】
他の別の実施形態は、プレイリストIDに基づいてチケットを生成することによって、複数の保護されたコンテンツストリーミングを含むプレイリストへのアクセスを制御する。1つのこのような実施形態は、以下に指摘される修正と共に、図6−8のシステムの説明に従って動作する。一般的に、エンドユーザが許可アプリケーションにログインし、プレイリストへのアクセスをリクエストすると、ウェブサーバ606は、プレイリストIDに基づいてチケットを生成し、該チケットをエンドユーザプロセッサ602に返す。これに応答して、エンドユーザプロセッサ602上で実行されるスプリットは、ストリーミングリクエストリンクにチケット及びエンドユーザIDを付加する。以下は、付加された公開キー情報を有する例示的なストリーミングリクエストリンクである。ここで、プレイリストIDが「789000」で表され、チケットが「xyz321abc」で表され、エンドユーザIDが「abc123def」で表される。
【0130】
<A href
”http://playlistserver.company.com/makeplaylist.dll?PLAYLIST_ID=789000&TICKET=xyz321abc&USER_ID=abcl23def’>
【0131】
エンドユーザプロセッサ602は、名称「playlistserver.company.com」によって識別されるプレイリストサーバ610を呼び出す。次に、プレイリストサーバ610は、リダイレクタファイルを生成するためにプレイリストサーバ610に存在する「makeplaylist.dll」オブジェクトを起動する。本実施形態では、全てのコンテンツストリーミングが同一のメディアサーバ604上に存在する。上述の実施形態とは異なり、「makeplaylist.dll」オブジェクトはまた、リダイレクタファイルの第1のURLリンクの終わりにプレイリスト中の後続の保護されたコンテンツストリーミングのファイル名を付加し、後続のURLリンクの各々にはプレイリストID及びチケットだけが付加される。例示的なASXリダイレクタファイルを以下に示す。ここでプレイリストは、「stream1.asf」、「stream2.asf」、「stream3.asf」で表されるファイル名を有する3つのウインドウズメディア・フォーマットのコンテンツファイルを含み、プレイリストIDが「789000」で表され、エンドユーザIDが「abc123def」で表され、チケットが「xyz321abc」で表される。
【0132】
<ASX>
<ENTRY>
<REF
href=”mms://mediaserver.company.com/streaml.asf?PLAYLIST_ID=789000&TICKET=xyz321abc&USER_ID=abc123def&STREAM=stream2.asf&
STREAM=stream3.asf”>
<REF href=”mms://mediaserver.company.com/stream2.asf?PLAYLIST_ID=789000&TICKET=xyz321abc”>
<REF href=”mms://mediaserver.company.com/stream3.asf?PLAYLIST_ID=789000&TICKET=xyz321abc”>
</ENTRY>
</ASX>
【0133】
エンドユーザプロセッサ602のメディアプレーヤは、第1のコンテンツファイルにアクセスするために、mediaserver.company.com(すなわちストリーミング・メディアサーバ604のホスト名)を呼び出すステップに進む。メディアサーバ604は、図5に関連して上述されたように、プレイリストIDに基づいてチケットを生成し、アクセスを認可又は拒否するステップに進む。メディアサーバ604がアクセスを認可し、メディアプレーヤにプレイリスト中の第1のコンテンツファイルを提供する場合、メディアサーバ604は、プレイリストID及び対応するチケット用のローカルに格納されたテーブル内にレコードを作成し、リダイレクタファイルに含まれているプレイリスト中の後続のコンテンツストリーミングのファイル名をレコードに格納する。
【0134】
続いて、メディアプレーヤが、第2のコンテンツストリーミングへのアクセスを要求する場合、メディアプレーヤは、メディアサーバ604にプレイリストID及びチケットを供給する。次に、メディアサーバ604は、プレイリストID及びチケットによって識別されたレコードを求めてテーブルをサーチする。レコードが存在する場合、メディアサーバ604は、第2のストリーミングへのアクセスを許可し、特定のチケットを有するエンドユーザが視聴したものとしてストリーミングにフラグを立てる。無許可のエンドユーザが同じURLリンクを使用して第2のストリーミングにアクセスしようと試みる場合、プレイリストID及びチケットに関するレコードにおいては、第2のストリーミングは既に視聴されているものとしてフラグが立っているので、メディアサーバ604はアクセスを拒否することになる。同様のプロセスが、プレイリスト内の残りのコンテンツストリーミングへのアクセスを許可するために使用される。当業者には理解されるように、この実施形態は、第1のストリーミングへのアクセス認可とこのような後続のストリーミングとの間の時間遅延に起因して、プレイリスト内の後続のストリーミングへのアクセスを誤って拒否されるどのような可能性をも回避する。
【0135】
本発明の方法及びシステムは、多くの用途を有し、多くの様態で実施することができ、従って、上記の例示的な実施形態及び実施例によって限定されるものではない点を当業者であれば理解されるであろう。更に、本発明の範囲は、当業者には理解されるように、本明細書で説明されたシステム構成要素に対する従来公知の、及び将来開発される変形及び修正を対象とする。
【図面の簡単な説明】
【0136】
【図1】本発明の1つの実施形態に基づくシステムを示す概略図である。
【図2】本発明の1つの実施形態に基づくデータベースを示す概略図である。
【図3】本発明の1つの実施形態に基づくワークフローを示す概略図である。
【図4】本発明の1つの実施形態に基づくチケットを生成するプロセスを示すフローチャートである。
【図5】本発明の1つの実施形態に基づくストリーミング・メディアコンテンツのアイテムへのアクセスを許可するかどうかを判断するプロセスを示すフローチャートである。
【図6】本発明の別の実施形態に基づくシステムを示す概略図である。
【図7】本発明の別の実施形態に基づくデータベースを示す概略図である。
【図8】本発明の別の実施形態に基づくワークフローを示す概略図である。
【図9】本発明の別の実施形態に基づくシステムを示す概略図である。
【図10】本発明の別の実施形態に基づくワークフローを示す概略図である。
【図11】本発明の別の実施形態に基づくワークフローを示す概略図である。
【図12】本発明の別の実施形態に基づくストリーミング・メディアコンテンツのアイテムへのアクセスを許可するかどうかを判断するプロセスを示すフローチャートである。
【符号の説明】
【0137】
102 エンドユーザ
104 ストリーミング・メディアサーバ
106 ウェブサーバ
108 データベース
【特許請求の範囲】
【請求項1】
メディアファイルへのアクセスを制御するための方法であって、前記方法は、
ユーザからの前記メディアファイルへアクセスするリクエストに応答して第1の時間に第1の許可チケットを生成する段階と、
第2の時間に第2の許可チケットを生成する段階と、
前記第1及び第2の許可チケットが一致するかどうかを判断し、これにより前記ユーザが前記メディアファイルへのアクセスが許可されているかどうかを判断する段階と、
前記許可チケットが一致するかどうかの判断並びにデータに基づいて第3の時間に第1のハッシュを生成する段階と、
第4の時間に前記データに基づく第2のハッシュを生成する段階と、
前記第1のハッシュと前記第2のハッシュが一致するかどうかを判断する段階と、
前記ユーザが既に許可されていることを示す前記第1と第2のハッシュが一致した場合には、前記ユーザの前記メディアファイルへのアクセスを許可する段階と、
を含む方法。
【請求項2】
前記アクセスを許可する段階が、複数のメディアファイルへのアクセスを許可する段階を含む請求項1に記載の方法。
【請求項3】
前記第1及び第2の許可チケットが一致しないことにより、無許可のアクセスが試みられたことを示し、前記第1のハッシュがアクセスが拒否されたことを示す値を有することを特徴とする請求項1に記載の方法。
【請求項4】
第1のサーバが前記第1のハッシュを生成し、第2のサーバが前記ユーザのアクセスを許可し、前記第1のサーバが前記第2のサーバとは異なることを特徴とする請求項1に記載の方法。
【請求項5】
第1のサーバが前記第1及び第2の許可チケットが一致するかどうかを判断し、第2のサーバが前記ユーザのアクセスを許可し、前記第1のサーバは前記第2のサーバとは異なることを特徴とする請求項1に記載の方法。
【請求項6】
前記第1の許可チケットはウェブサーバ上で生成され、
前記第2の許可チケットはグローバルキャッシュ・サーバ上で生成され、前記第1及び第2の許可チケットが一致するかどうかの判断は、前記グローバルキャッシュ・サーバ上で行われ、
前記第1のハッシュは、プレイリストサーバ上で生成され、
前記第1のハッシュを生成する段階、前記第1及び第2のハッシュが一致するかどうかを判断する段階、及び前記ユーザの前記メディアファイルへのアクセスを許可する段階が、全てメディアサーバ上で行われることを特徴とする請求項1に記載の方法。
【請求項7】
前記リクエストは、ユーザのコンピュータから受け取られ、前記データは、前記ユーザのコンピュータ上のクッキーであることを特徴とする請求項1に記載の方法。
【請求項8】
前記データは、ランダムに生成されたストリングであることを特徴とする請求項1に記載の方法。
【請求項9】
前記データは、ゼロ値であることを特徴とする請求項1に記載の方法。
【請求項10】
前記データは、日付であることを特徴とする請求項1に記載の方法。
【請求項11】
前記データは、未来の日付であることを特徴とする請求項10に記載の方法。
【請求項12】
前記データは、現在の日付であることを特徴とする請求項10に記載の方法。
【請求項13】
前記データは、過去の日付であることを特徴とする請求項10に記載の方法。
【請求項14】
前記第2の時間に第3の許可チケットを生成する段階と、
前記第1の許可チケットを前記第2及び第3の許可チケットと比較する段階と、を更に含む請求項1に記載の方法。
【請求項15】
前記第1の許可チケットと前記第2の許可チケットは、時間に基づくことを特徴とする請求項1に記載の方法。
【請求項16】
前記時間は、未来の時間であることを特徴とする請求項15に記載の方法。
【請求項17】
前記時間は、現在の時間であることを特徴とする請求項15に記載の方法。
【請求項18】
前記時間は、過去の時間であることを特徴とする請求項15に記載の方法。
【請求項19】
前記第1の許可チケットと前記第2の許可チケットは、セキュリティキーに基づくことを特徴とする請求項1に記載の方法。
【請求項20】
前記第1の許可チケットと前記第2の許可チケットは、前記メディアファイルの識別子に基づくことを特徴とする請求項1に記載の方法。
【請求項21】
前記第1のハッシュと前記第2のハッシュが更に、時間に基づくことを特徴とする請求項1に記載の方法。
【請求項22】
前記時間は、未来の時間であることを特徴とする請求項21に記載の方法。
【請求項23】
前記時間は、現在の時間であることを特徴とする請求項21に記載の方法。
【請求項24】
前記時間は、過去の時間であることを特徴とする請求項21に記載の方法。
【請求項25】
前記第1のハッシュと前記第2のハッシュが更に、セキュリティキーに基づくことを特徴とする請求項1に記載の方法。
【請求項26】
前記第1のハッシュと前記第2のハッシュが更に、メディアファイルの識別子に基づくことを特徴とする請求項1に記載の方法。
【請求項27】
メディアファイルへのアクセスを制御するためのシステムであって、前記システムが、
前記メディアファイルへアクセスするリクエストに応答して第1の時間に第1の許可チケットを生成し、
前記第1の許可チケットとは関係なく第2の時間に第2の許可チケットを生成して、前記第1の許可チケットと前記第2の許可チケットを比較することによって前記メディアファイルへのアクセスを認可するかどうかを判断し、
前記第2のプロセッサの判断に基づいて第1のハッシュを生成し、
第2のハッシュを生成し、
前記第1のハッシュと前記第2のハッシュとを比較することによって前記メディアファイルへのアクセスを認可するかどうかを判断し、
前記第1のハッシュと前記第2のハッシュとの比較に基づいて前記メディアファイルへのアクセスを許可する、
ようにソフトウェアが動作可能な1つ又はそれ以上のプロセッサを含むことを特徴とするシステム。
【請求項28】
前記アクセスの制御は、複数のメディアファイルへのアクセスの制御であることを特徴とする請求項27に記載のシステム。
【請求項29】
ウェブサーバ、ローカル記憶装置を有するグローバルキャッシュ・サーバ、プレイリストサーバ、及びメディアサーバを更に含み、
前記ウェブサーバは、前記メディアファイルへアクセスするリクエストに応答して第1の時間に第1の許可チケットを生成し、
前記グローバルキャッシュ・サーバは、前記第1の許可チケットとは無関係に第2の時間に第2の許可チケットを生成して、前記第1の許可チケットと前記第2の許可チケットとを比較することによって前記メディアファイルへのアクセスを認可するかどうかを判断し、
前記プレイリストサーバは、前記第2のプロセッサの判断に基づいて第1のハッシュを生成し、
前記メディアサーバは、前記第1のハッシュと前記第2のハッシュとを比較することによって前記メディアファイルへのアクセスを認可するかどうかを判断し、前記第1のハッシュと前記第2のハッシュとの比較に基づいて前記メディアファイルへのアクセスを許可することを特徴とする請求項27に記載のシステム。
【請求項30】
メディアファイルへのアクセスを制御するための方法であって、前記方法は、
関連する第1のユーザデータを有する第1のユーザからリクエストを受け取る段階と、
前記第1のユーザデータに基づいて第1の許可チケットを生成する段階と、
前記第1のユーザデータに基づいて第2の許可チケットを生成する段階と、
前記第1の許可チケットが前記第2の許可チケットと一致することを判断し、これにより前記第1のユーザが許可されていることを示す段階と、
前記許可チケット及び前記第1のユーザのリクエストの前記判断に基づいて、第1のハッシュを生成する段階と、
関連する第2のユーザデータを有する前記第2のユーザからのリクエストを受け取る段階と、
前記第2のユーザのリクエストに応答して第2のハッシュを生成する段階と、
前記第1のハッシュと前記第2のハッシュとが一致しないことを判断し、これにより前記第2のユーザが許可されなかったことを示す段階と、
前記第2のユーザの前記メディアファイルへのアクセスを拒否する段階と、
を含む方法。
【請求項31】
前記第1のユーザのリクエストに応答して、前記第1の許可チケットと前記第2の許可チケットとの比較に基づいて第3のハッシュを生成する段階と、
前記第1のハッシュが前記第3のハッシュと一致することを判断し、これにより前記第1のユーザが許可されていたことを示す段階と、
前記第1のユーザが前記メディアファイルへアクセスするのを認可する段階と、
を更に含む請求項30に記載の方法。
【請求項32】
前記アクセスを制御する段階が、複数のメディアファイルへのアクセスを制御する段階であることを特徴とする請求項30に記載の方法。
【請求項33】
前記第3のデータは、第4のデータであることを特徴とする請求項30に記載の方法。
【請求項34】
1つ又はそれ以上のプロセッサに、
メディアファイルへアクセスするリクエストに応答して生成された第1の許可チケットを受け取り、
前記第1の許可チケットとは無関係に第2の許可チケットを生成し、
前記第1の許可チケットと前記第2の許可チケットとを比較し、
前記許可チケット及びデータの比較に基づいて第1のハッシュを生成し、該第1のハッシュを転送する、
ように指示するためのコンピュータコードを含むコンピュータ読み取り可能媒体。
【請求項1】
メディアファイルへのアクセスを制御するための方法であって、前記方法は、
ユーザからの前記メディアファイルへアクセスするリクエストに応答して第1の時間に第1の許可チケットを生成する段階と、
第2の時間に第2の許可チケットを生成する段階と、
前記第1及び第2の許可チケットが一致するかどうかを判断し、これにより前記ユーザが前記メディアファイルへのアクセスが許可されているかどうかを判断する段階と、
前記許可チケットが一致するかどうかの判断並びにデータに基づいて第3の時間に第1のハッシュを生成する段階と、
第4の時間に前記データに基づく第2のハッシュを生成する段階と、
前記第1のハッシュと前記第2のハッシュが一致するかどうかを判断する段階と、
前記ユーザが既に許可されていることを示す前記第1と第2のハッシュが一致した場合には、前記ユーザの前記メディアファイルへのアクセスを許可する段階と、
を含む方法。
【請求項2】
前記アクセスを許可する段階が、複数のメディアファイルへのアクセスを許可する段階を含む請求項1に記載の方法。
【請求項3】
前記第1及び第2の許可チケットが一致しないことにより、無許可のアクセスが試みられたことを示し、前記第1のハッシュがアクセスが拒否されたことを示す値を有することを特徴とする請求項1に記載の方法。
【請求項4】
第1のサーバが前記第1のハッシュを生成し、第2のサーバが前記ユーザのアクセスを許可し、前記第1のサーバが前記第2のサーバとは異なることを特徴とする請求項1に記載の方法。
【請求項5】
第1のサーバが前記第1及び第2の許可チケットが一致するかどうかを判断し、第2のサーバが前記ユーザのアクセスを許可し、前記第1のサーバは前記第2のサーバとは異なることを特徴とする請求項1に記載の方法。
【請求項6】
前記第1の許可チケットはウェブサーバ上で生成され、
前記第2の許可チケットはグローバルキャッシュ・サーバ上で生成され、前記第1及び第2の許可チケットが一致するかどうかの判断は、前記グローバルキャッシュ・サーバ上で行われ、
前記第1のハッシュは、プレイリストサーバ上で生成され、
前記第1のハッシュを生成する段階、前記第1及び第2のハッシュが一致するかどうかを判断する段階、及び前記ユーザの前記メディアファイルへのアクセスを許可する段階が、全てメディアサーバ上で行われることを特徴とする請求項1に記載の方法。
【請求項7】
前記リクエストは、ユーザのコンピュータから受け取られ、前記データは、前記ユーザのコンピュータ上のクッキーであることを特徴とする請求項1に記載の方法。
【請求項8】
前記データは、ランダムに生成されたストリングであることを特徴とする請求項1に記載の方法。
【請求項9】
前記データは、ゼロ値であることを特徴とする請求項1に記載の方法。
【請求項10】
前記データは、日付であることを特徴とする請求項1に記載の方法。
【請求項11】
前記データは、未来の日付であることを特徴とする請求項10に記載の方法。
【請求項12】
前記データは、現在の日付であることを特徴とする請求項10に記載の方法。
【請求項13】
前記データは、過去の日付であることを特徴とする請求項10に記載の方法。
【請求項14】
前記第2の時間に第3の許可チケットを生成する段階と、
前記第1の許可チケットを前記第2及び第3の許可チケットと比較する段階と、を更に含む請求項1に記載の方法。
【請求項15】
前記第1の許可チケットと前記第2の許可チケットは、時間に基づくことを特徴とする請求項1に記載の方法。
【請求項16】
前記時間は、未来の時間であることを特徴とする請求項15に記載の方法。
【請求項17】
前記時間は、現在の時間であることを特徴とする請求項15に記載の方法。
【請求項18】
前記時間は、過去の時間であることを特徴とする請求項15に記載の方法。
【請求項19】
前記第1の許可チケットと前記第2の許可チケットは、セキュリティキーに基づくことを特徴とする請求項1に記載の方法。
【請求項20】
前記第1の許可チケットと前記第2の許可チケットは、前記メディアファイルの識別子に基づくことを特徴とする請求項1に記載の方法。
【請求項21】
前記第1のハッシュと前記第2のハッシュが更に、時間に基づくことを特徴とする請求項1に記載の方法。
【請求項22】
前記時間は、未来の時間であることを特徴とする請求項21に記載の方法。
【請求項23】
前記時間は、現在の時間であることを特徴とする請求項21に記載の方法。
【請求項24】
前記時間は、過去の時間であることを特徴とする請求項21に記載の方法。
【請求項25】
前記第1のハッシュと前記第2のハッシュが更に、セキュリティキーに基づくことを特徴とする請求項1に記載の方法。
【請求項26】
前記第1のハッシュと前記第2のハッシュが更に、メディアファイルの識別子に基づくことを特徴とする請求項1に記載の方法。
【請求項27】
メディアファイルへのアクセスを制御するためのシステムであって、前記システムが、
前記メディアファイルへアクセスするリクエストに応答して第1の時間に第1の許可チケットを生成し、
前記第1の許可チケットとは関係なく第2の時間に第2の許可チケットを生成して、前記第1の許可チケットと前記第2の許可チケットを比較することによって前記メディアファイルへのアクセスを認可するかどうかを判断し、
前記第2のプロセッサの判断に基づいて第1のハッシュを生成し、
第2のハッシュを生成し、
前記第1のハッシュと前記第2のハッシュとを比較することによって前記メディアファイルへのアクセスを認可するかどうかを判断し、
前記第1のハッシュと前記第2のハッシュとの比較に基づいて前記メディアファイルへのアクセスを許可する、
ようにソフトウェアが動作可能な1つ又はそれ以上のプロセッサを含むことを特徴とするシステム。
【請求項28】
前記アクセスの制御は、複数のメディアファイルへのアクセスの制御であることを特徴とする請求項27に記載のシステム。
【請求項29】
ウェブサーバ、ローカル記憶装置を有するグローバルキャッシュ・サーバ、プレイリストサーバ、及びメディアサーバを更に含み、
前記ウェブサーバは、前記メディアファイルへアクセスするリクエストに応答して第1の時間に第1の許可チケットを生成し、
前記グローバルキャッシュ・サーバは、前記第1の許可チケットとは無関係に第2の時間に第2の許可チケットを生成して、前記第1の許可チケットと前記第2の許可チケットとを比較することによって前記メディアファイルへのアクセスを認可するかどうかを判断し、
前記プレイリストサーバは、前記第2のプロセッサの判断に基づいて第1のハッシュを生成し、
前記メディアサーバは、前記第1のハッシュと前記第2のハッシュとを比較することによって前記メディアファイルへのアクセスを認可するかどうかを判断し、前記第1のハッシュと前記第2のハッシュとの比較に基づいて前記メディアファイルへのアクセスを許可することを特徴とする請求項27に記載のシステム。
【請求項30】
メディアファイルへのアクセスを制御するための方法であって、前記方法は、
関連する第1のユーザデータを有する第1のユーザからリクエストを受け取る段階と、
前記第1のユーザデータに基づいて第1の許可チケットを生成する段階と、
前記第1のユーザデータに基づいて第2の許可チケットを生成する段階と、
前記第1の許可チケットが前記第2の許可チケットと一致することを判断し、これにより前記第1のユーザが許可されていることを示す段階と、
前記許可チケット及び前記第1のユーザのリクエストの前記判断に基づいて、第1のハッシュを生成する段階と、
関連する第2のユーザデータを有する前記第2のユーザからのリクエストを受け取る段階と、
前記第2のユーザのリクエストに応答して第2のハッシュを生成する段階と、
前記第1のハッシュと前記第2のハッシュとが一致しないことを判断し、これにより前記第2のユーザが許可されなかったことを示す段階と、
前記第2のユーザの前記メディアファイルへのアクセスを拒否する段階と、
を含む方法。
【請求項31】
前記第1のユーザのリクエストに応答して、前記第1の許可チケットと前記第2の許可チケットとの比較に基づいて第3のハッシュを生成する段階と、
前記第1のハッシュが前記第3のハッシュと一致することを判断し、これにより前記第1のユーザが許可されていたことを示す段階と、
前記第1のユーザが前記メディアファイルへアクセスするのを認可する段階と、
を更に含む請求項30に記載の方法。
【請求項32】
前記アクセスを制御する段階が、複数のメディアファイルへのアクセスを制御する段階であることを特徴とする請求項30に記載の方法。
【請求項33】
前記第3のデータは、第4のデータであることを特徴とする請求項30に記載の方法。
【請求項34】
1つ又はそれ以上のプロセッサに、
メディアファイルへアクセスするリクエストに応答して生成された第1の許可チケットを受け取り、
前記第1の許可チケットとは無関係に第2の許可チケットを生成し、
前記第1の許可チケットと前記第2の許可チケットとを比較し、
前記許可チケット及びデータの比較に基づいて第1のハッシュを生成し、該第1のハッシュを転送する、
ように指示するためのコンピュータコードを含むコンピュータ読み取り可能媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公表番号】特表2007−519303(P2007−519303A)
【公表日】平成19年7月12日(2007.7.12)
【国際特許分類】
【出願番号】特願2006−536733(P2006−536733)
【出願日】平成16年10月20日(2004.10.20)
【国際出願番号】PCT/US2004/034635
【国際公開番号】WO2005/048029
【国際公開日】平成17年5月26日(2005.5.26)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(501438485)ヤフー! インコーポレイテッド (200)
【Fターム(参考)】
【公表日】平成19年7月12日(2007.7.12)
【国際特許分類】
【出願日】平成16年10月20日(2004.10.20)
【国際出願番号】PCT/US2004/034635
【国際公開番号】WO2005/048029
【国際公開日】平成17年5月26日(2005.5.26)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(501438485)ヤフー! インコーポレイテッド (200)
【Fターム(参考)】
[ Back to top ]