以下に添付図面を参照しながら,本発明の好適な実施の形態について詳細に説明する。なお,本明細書及び図面において,実質的に同一の機能構成を有する構成要素については,同一の符号を付することにより重複説明を省略する。
(第1の実施形態)
以下に,本発明の第1の実施形態にかかるコンテンツ配信システム,ライセンス評価装置,コンピュータプログラム,ライセンス評価方法について説明する。
<概要>
まず,本発明の第1の実施形態にかかるコンテンツ配信システムの概要について説明する。
本実施形態にかかるコンテンツ配信システムは,コンテンツ配信サーバからユーザ端末に対して配信されたコンテンツに関し,別途発行されたライセンスに基づいて,各ユーザ端末におけるコンテンツの利用(再生,コピー等)を管理し,コンテンツの著作権を保護するための著作権管理システムとして構成されている。
具体的には,このコンテンツ配信システムは,コンテンツのライセンスを発行することによって,正当ユーザ(コンテンツの著作権に対する正当な対価を支払ってライセンスを購入し,私的使用の範囲内での利用を行うユーザ)に対しては,ライセンスの範囲内で自由にコンテンツの利用を認める。一方で,インターネット等を通じたコンテンツの大量配布行為等といった違法利用を行うユーザや,正当な対価を支払わずにライセンスの範囲を越えてコンテンツを利用しようとするユーザに対しては,コンテンツの利用を厳しく制限する。
より詳細には,ユーザが有料で配信されるコンテンツを利用しようと考えた場合,コンテンツ自体とそのコンテンツを利用するためのライセンスの双方を取得する必要がある。本実施形態にかかるコンテンツ配信システムでは,このようなコンテンツとライセンスとは,独立に管理されている。ユーザは,自己の所有するライセンス評価装置(ユーザ端末)を用いて,暗号化されたコンテンツをコンテンツ配信サーバ等から自由にダウンロードし,このコンテンツとは別途にライセンスのみを購入・取得する。
このライセンスには,例えばライセンスの購入金額等に応じた使用条件が記述される。ユーザは,この使用条件の記述を許可なしに変更することができない。また,ユーザは,かかるライセンスやコンテンツの暗号化の内容を認識しなくとも,コンテンツとライセンスを対応付けることのみによって,かかるコンテンツを利用することができる。
なお,本実施形態にかかる「コンテンツ」は,例えば,音楽,講演,ラジオ番組等の音声(Audio)コンテンツや,映画,テレビジョン番組,ビデオプログラム,写真,絵画,図表等を構成する静止画若しくは動画からなる映像(Video)コンテンツ,この映像コンテンツと音声コンテンツを組み合わせたコンテンツ,電子図書(E−book),ゲーム,ソフトウェア(soft ware)などのあらゆるコンテンツを含む。また,「コンテンツデータ」は,上記各種のコンテンツの内容を表す例えばデジタルデータであり,例えば,映像データ,音声データ,文字データ(サブタイトルデータ),電子図書データ,電子ゲームデータ,ソフトウェアのデータなどである。以下の説明では,コンテンツの具体例として,例えば,映画コンテンツ(例えば,映像データ,音声データ,サブタイトルデータからなる。)の例を挙げて説明するが,本発明はかかる例に限定されない。
<システム構成>
次に,図1に基づいて,本発明の第1の実施形態にかかるコンテンツ配信システム100の全体構成について説明する。なお,図1は,本発明の第1の実施形態にかかるコンテンツ利用システム100の全体構成を概略的に示すブロック図である。
図1に示すように,コンテンツ配信システム100は,ユーザ端末であるライセンス評価装置10と,例えば,コンテンツ配信サーバ20と,ライセンス提供サーバ25と,これらを相互に接続するネットワーク5と,から構成される。このコンテンツ配信システム100は,コンテンツ配信サーバ20から各種のコンテンツCを,ネットワーク5を介してライセンス評価装置10に配信し,ライセンス提供サーバ25からコンテンツCに対応するライセンスLを,ネットワーク5を介してライセンス評価装置10に提供し,ライセンス評価装置10においてかかるコンテンツCをライセンスLに基づいて使用(再生,チェックアウト,リッピング,コピー,PD(Portable Device)等への転送,編集など)するためのシステムである。
ライセンス評価装置10は,入力装置,記憶装置,演算装置,制御装置および出力装置等を備えたコンピュータ装置で構成される。具体的には,このライセンス評価装置10は,例えば,パーソナルコンピュータ(ノート型,デスクトップ型を問わない。),PDA(Personal Digital Assistant)などや,上記コンピュータ装置を備えた情報家電,家庭用ゲーム機,携帯型コンテンツプレーヤ,携帯電話,PHSなどで構成される。なお,図1では,1つのライセンス評価装置10しか図示していないが,かかる例に限定されず,同一ユーザが所有する複数のライセンス評価装置10や,他のユーザが所有する1又は2以上のライセンス評価装置10がネットワーク5に接続されてもよい。
このライセンス評価装置10は,コンテンツ配信サーバ20,ライセンス提供サーバ25から,ネットワーク5を介して,コンテンツCおよびライセンスLを取得する。また,ライセンス評価装置10は,取得したライセンスLと,自身の保有するステータス情報Sとを評価して,取得したコンテンツCを使用の許可/不許可する。この際,ライセンス評価装置10は,ライセンスLに含まれる使用条件情報や,ステータス情報Sに含まれる使用状態情報を解釈するが,詳細については後述する。
さらに,ライセンス評価装置10は,上記ライセンスL等の評価の結果,コンテンツの使用が許可された場合には,当該コンテンツCの使用処理を実行する。この意味では,本実施形態にかかるライセンス評価装置10は,上記ライセンス評価を行う装置としてのみならず,コンテンツを実際に処理するコンテンツ処理装置としても機能する。
コンテンツ配信サーバ20およびコンテンツ提供配信サーバ25は,例えば,コンテンツ配信サービスを提供するサービスプロバイダなどが所有するサーバ装置である。これらサーバ20,25は,サーバ機能を備えた1又は2以上のコンピュータ装置などで構成される。
このうち,コンテンツ配信サーバ20は,ユーザが利用可能なコンテンツCを保存しており,ライセンス評価装置10等から配信要求を受けたコンテンツCを,ネットワーク5を介してライセンス評価装置10に配信する。ここで,コンテンツCの配信とは,例えば,コンテンツデータのダウンロード,或いはコンテンツデータのストリーミングのいずれであってもよい。また,コンテンツ配信サーバ20は,配信するコンテンツを,例えば,各種のMPEG方式等で圧縮し,暗号化して配信する。
このようにコンテンツ配信サーバ20から配信されるコンテンツCは,例えば,著作権保護されたコンテンツであり,具体的には,暗号化されたコンテンツデータに対して,当該コンテンツの属性情報やコンテンツ鍵を含むセキュリティ情報が付加されている。このため,ライセンス評価装置10は,適正なライセンスを保有していなければ,配信されたコンテンツを利用することができない。
また,ライセンス提供サーバ25は,コンテンツCを使用するためのライセンスLを発行して,ライセンス評価装置10に提供する。具体的には,ライセンス提供サーバ25は,コンテンツ配信サーバ20から配信されるコンテンツCに対応した各種のライセンスLを保存しており,ライセンス評価装置10等の要求に応じてこのライセンスLを,ネットワーク5を介してライセンス評価装置10に提供する。ただし,上記ライセンスLは有料な場合があり,この場合には,ライセンス提供サーバ25は,付随する課金サーバ(図示せず。)によりライセンスLの購入に関する課金処理が実行されてから,当該ライセンスLを提供する。
なお,図1では,2つのサーバ20,25を図示しているが,かかる例に限定されず,例えば,コンテンツ配信サーバ20およびコンテンツ提供配信サーバ25を1つのサーバ装置で構成してもよいし,或いは,コンテンツ配信に関する機能・用途に応じて,上記以外にも他のサーバを設けてもよい。この他のサーバの例としては,例えば,ライセンスの発行に応じて課金処理を行う課金サーバや,コンテンツを使用するためのアプリケーションや著作権管理用プログラム(DRMモジュール等)の各種ソフトウェアを提供するソフトウェア提供サーバ,などが挙げられる。なお,これらのソフトウェアは,ソフトウェア提供サーバからのダウンロードだけでなく,光ディスク,半導体メモリ等の記憶媒体を介して,ライセンス評価装置10に提供されてもよい。
ネットワーク5は,情報処理装置10とサーバ20を双方向通信可能に接続する通信回線網である。このネットワーク5は,例えば,インターネット,電話回線網,衛星通信網等の公衆回線網や,WAN,LAN,IP−VPN等の専用回線網などで構成されており,有線・無線を問わない。さらに,かかるネットワーク5は,ホームネットワーク等の私的ネットワークや,ローカルラインを含んでもよい。
上記のような構成のコンテンツ配信システム100は,コンテンツCとライセンスLを独立に管理し,小容量のデータからなるライセンスLを売買の単位にすることができる。各ユーザは,自己の所有するライセンス評価装置10を用いて,所望するコンテンツCの配信を受け,さらにライセンスLを取得(購入等)することによって,当該コンテンツCを適法に使用することができる。
<ライセンス評価装置>
次に,図2に基づいて,本実施形態にかかるライセンス評価装置10の構成について詳細に説明する。図2は,本実施形態にかかるライセンス評価装置10の構成を概略的に示すブロック図である。
図2に示すように,ライセンス評価装置10は,例えば,CPU(図示せず。)と,メモリ(図示せず。)と,入力部102と,出力部104と,通信部106と,記憶部110と,コンテンツ利用部120と,著作権管理部130とを備える。
図示しないCPUは,演算処理装置および制御装置として機能し,ライセンス評価装置10内の各部の処理を制御する。また,図示しないメモリは,例えば,RAM,ROM,キャッシュメモリなどで構成されており,CPUの処理に関する各種データ,CPUの動作プログラム等を一時的に記憶する機能を有する。
入力部102は,例えば,マウス,キーボード,タッチパネル,ボタン,スイッチ,レバー等の操作装置と,入力信号を生成してCPU102に出力する入力制御回路などから構成されている。ライセンス評価装置10のユーザは,この入力部102を操作することにより,ライセンス評価装置10に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力部104は,例えば,CRTディスプレイ装置,液晶ディスプレイ(LCD)装置,ランプ等の表示装置や,スピーカ等の音声出力装置などで構成される。この出力部104は,後述するコンテンツ処理部124によって再生されたコンテンツを出力することができる。具体的には,表示装置は再生された映像データ等を表示し,一方,音声出力装置は,再生された音声データを発音することができる。なお,ライセンス評価装置10が取り扱うコンテンツが,音声データのみからなる場合には表示装置は不要であり,一方,映像データのみからなる場合には音声出力装置は不要である。
通信部106は,例えば,通信回線,通信回路,通信デバイス等で構成された通信インタフェースである。この通信部106は,他のライセンス評価装置10やサーバ20,25等の外部機器との間で,ネットワーク5を介して,コンテンツC,ライセンスL,各種制御信号などの各種データを送受信することができる。
記憶部110は,例えば,ハードディスクドライブ,フラッシュメモリ等で構成されたデータ記憶用の装置であり,プログラム,コンテンツC,ライセンスL,ステータス情報などの各種データを記憶する。この記憶部110は,本実施形態におけるステータス情報記憶部およびライセンス記憶部として構成されている。この記憶部110は,例えば,コンテンツデータベース112と,ライセンスデータベース114と,ステータス情報データベース116とを保存している。
コンテンツデータベース112は,上記コンテンツ配信サーバ20から配信された1又は2以上のコンテンツCや,他のライセンス評価装置10から取得した1又は2以上のコンテンツCを保存するデータベースである。また,ライセンスデータベース114は,上記ライセンス提供サーバ25によって発行された1又は2以上のライセンスLや,他のライセンス評価装置10からエクスポートされた1又は2以上のライセンスLを保存するデータベースである。また,ステータス情報データベース230は,ライセンス評価装置10におけるライセンスLに基づくコンテンツCの使用状態を表すステータス情報Sを保存するデータベースである。なお,上記ライセンスLやステータス情報Sは,ユーザによる不正な改竄を防止するため,例えば,暗号化されたり,デジタル署名を付加されたりして,安全に記憶されている。
コンテンツ利用部120は,コンテンツを利用するための構成要素である。このコンテンツ利用部120は,ソフトウェア提供サーバや記憶媒体によって提供されたアプリケーション(再生アプリケーション,配信サービス利用用アプリケーション等)を,PC等のライセンス評価装置10にインストールすることによって構成される。
かかるコンテンツ利用部120は,例えば,ユーザ入力等に基づいて処理対象のコンテンツを選択するコンテンツ選択部122と,コンテンツCを使用(再生,チェックアウト,コピー,編集等)するコンテンツ処理部124と,サーバ20,25に対するユーザ登録処理,ライセンスの購入要求処理,コンテンツ配信要求処理等を行う配信サービス利用部(図示せず。)と,他のライセンス評価装置10にライセンスを移譲等するライセンス処理部(図示せず。)を備える。また,コンテンツ利用部120は,次の著作権管理部130に対して,コンテンツCの利用に関する各種指示を行い,コンテンツCやライセンスL等の通信,管理を行う。
著作権管理部130は,ライセンスLおよびステータス情報S等に基づいて,配信されたコンテンツCの利用を管理するための構成要素である。この著作権管理部130は,ソフトウェア提供サーバや記憶媒体によって提供されたアプリケーション(DRMモジュール等)を,PC等のライセンス評価装置10にインストールすることによって構成される。
かかる著作権管理部130は,ライセンスLを解釈して,ライセンスLおよびステータス情報Sを評価することによって,コンテンツの使用を許可/不許可したり,コンテンツの使用内容に応じて,ステータス情報Sを更新したりする。このように,著作権管理部130は,コンテンツCに関連付けられたライセンスLやステータス情報Sに基づいて,コンテンツCの著作権管理処理を行う。
かかる著作権管理処理を実行すべく,著作権管理部130は,具体的には,ライセンス抽出部132と,ステータス情報抽出部134と,変数分析部136と,変数設定部138と,条件式判断部140と,ドメイン特定部142と,ステータス情報更新部144とを備える。
ここで,上記構成のコンテンツ利用部120および著作権管理部130の各部について詳細に説明する。
上記コンテンツ選択部152は,使用対象のコンテンツCを選択する。かかる使用対象のコンテンツCは,記憶媒体やコンテンツデータベース112に予め記憶されているものでもよいし,ネットワーク5を介してコンテンツ配信サーバ20等からストリーミングされるものでもよい。コンテンツ選択部152は,例えば,入力部102へのユーザの入力に基づいて,当該ユーザが使用を所望するコンテンツCを選択する。このため,コンテンツ選択部152は,使用対象のコンテンツCのリストを,出力部104に表示させて,ユーザに選択入力させるようにしてもよい。また,コンテンツ選択部152は,設定された条件に基づいて,所定のコンテンツCを自動的に選択するようにしてもよい。
上記ライセンス抽出部132は,上記コンテンツ選択部152によって選択されたコンテンツCに対応するライセンスLを,ライセンスデータベース114から抽出する。本実施形態において著作権管理される全てのコンテンツCには,後述するセキュリティ情報として,それぞれステータスIDが付加されている。このステータスIDは,ライセンスL単位(ステータス情報S単位)で付与されるIDである。ステータスIDは,コンテンツCとライセンスLとステータス情報Sにそれぞれ付加されており,これらコンテンツCと,ライセンスLとステータス情報Sとを相互に関連付ける機能を有する。ライセンス抽出部132は,処理対象のコンテンツCから,当該コンテンツCに付加されているステータスIDを読み出し,読み出したステータスIDに基づいてライセンスデータベース114を検索して,当該処理対象のコンテンツCに対応するライセンスLを抽出する。
上記ステータス情報抽出部134は,ライセンスLに使用状態に基づく制限がある場合(例えば,コンテンツの再生時間,再生期間,再生回数,コピー可能回数,チェックアウト回数等に関して使用制限を設けている場合など)に,処理対象のコンテンツCに対応するステータス情報Sを,ステータス情報データベース116から抽出する。
具体的には,ステータス情報抽出部134は,上記コンテンツ選択部152によって選択されたコンテンツCから,当該コンテンツCに付加されているステータスIDを読み出し,読み出したステータスIDに基づいてステータス情報データベース116を検索して,当該処理対象のコンテンツCに対応するステータス情報S(即ち,上記抽出されたライセンスLに対応するステータス情報S)を抽出する。一方,ライセンスLに使用制限が無い場合,例えば,コンテンツC購入後は使用制限無く自由にそのコンテンツを利用して良い場合には,必ずしも,ステータス情報抽出部134によって,ステータス情報Sを抽出する必要はない。
ここで,図3に基づいて,ステータスIDを用いた,コンテンツCとライセンスLとステータス情報Sとの関係の具体例を挙げて説明する。なお,図3は,本実施形態にかかるコンテンツCに付加されたステータスIDと,ライセンスLおよびステータス情報Sとの関係を例示する説明図である。
図3に示すように,コンテンツC1,C2,C3…には,例えば,それぞれ1つのステータスIDが付加されている。このステータスIDによって,ライセンスLが適用されるコンテンツの範囲を特定できる。
図3の例では,コンテンツC1と,コンテンツC2には,同一のステータスID「0001」が付加されており,これにより,コンテンツC1とコンテンツC2は,同一のライセンスLおよび同一のステータス情報Sによって管理されることになる。一方,コンテンツC3には,コンテンツC1,C2とは異なるステータスID「0002」が付加されており,これにより,コンテンツC1,C2と,コンテンツC3とは,相異なるライセンスLおよび相異なるステータス情報Sによって管理されることになる。なお,ライセンスLの適用範囲によっては,例えば,コンテンツCを構成する各トラックに対してステータスIDを付加することもできる。
また,ライセンスLには,当該ライセンスLに対応するコンテンツCおよびステータス情報Sを特定するために,ヘッダ192においてステータスIDが付加されている。ライセンス抽出部132は,コンテンツCから読み取ったステータスIDと,同一のステータスIDが付加されているライセンスLを検出し,コンテンツCとライセンスLとを対応付ける。
同様に,ステータス情報Sには,当該ステータス情報Sに対応するコンテンツを特定するために,ヘッダ194においてステータスIDが付加されている。ステータス情報抽出部134は,コンテンツCから読み取ったステータスIDと同一のステータスIDが付加されているステータス情報Sを検出し,コンテンツCとステータス情報Sとを対応付ける。
このように,「ライセンスL」:「ステータス情報S」:「ステータスID」:「コンテンツ」=1:1:1:nの関係にある。ここで,nは自然数である。
図2に戻り,変数分析部136は,上記ライセンス抽出部132によって抽出されたライセンスLに含まれる使用条件情報を解析し,この使用条件情報の条件式を構成する1又は2以上の変数の中に,未設定の新規変数が存在するか否かを判断する。この使用条件情報は,ライセンスLに基づくコンテンツの使用条件を規定する情報であり,1又は2以上の変数で記述された条件式で構成されている。
変数分析部136は,抽出されたライセンスLの使用条件情報を解析し,かかる使用条件情報に含まれる変数のうち,過去にライセンス評価装置10において取り扱ったことのない未設定の新規変数が存在するか否かを判断する。具体的には,変数分析部136は,例えば,ステータス情報Sに既に登録済の変数を参照したり,次の変数設定部138が既に変数設定した過去のログを参照したりして,変数が新規変数であるか否かを判断する。この判断の結果,新規変数を検出した場合には,変数分析部136は,変数設定部138に,新規変数が存在する旨と,当該新規変数を出力する。
変数設定部138は,ライセンスLの使用条件情報に含まれる変数属性情報のうち,上記検出された新規変数に対応する変数属性情報に基づいて,当該新規変数を設定する。ライセンスLの使用条件情報には,上記条件式に加え,条件式を構成する各変数の属性を表す変数属性情報がそれぞれ記述されている。この変数属性情報は,例えば,変数の初期値,変数が可変値または固定値のいずれであるかを表す情報,変数の型情報,グローバル/ローカル指定情報,変数のドメインを指定するドメイン指定情報,変数のデータサイズ情報,変数の種類情報,などが含まれる。かかる変数属性情報は,ライセンスLの作成時に,ライセンス提供サーバ25によって,ライセンスLの使用条件情報内に各変数と関連付けて記述されている。
そこで,変数設定部138は,ライセンスLの使用条件情報を解釈して,上記変数属性情報のうち新規変数についての変数属性情報を読み出し,読み出した変数属性情報に基づいて,新規変数の設定(例えば初期値設定,可変値であるか定数であるかの設定,ステータス情報Sに記憶する際のデータサイズの設定,変数の型の設定,変数の取りうる値の範囲の設定,変数の種類の判別,変数のドメインの判定など)を行う。さらに,変数設定部138は,例えば,上記のように設定した新規変数の初期値を,当該新規変数が含まれているライセンスLに対応するステータス情報S内の所定の領域に,所定のフォーマットで書き込んで登録する。
上記条件式判断部140は,上記抽出されたライセンスLおよび上記抽出されたステータス情報Sを解釈して,当該ステータス情報Sが表す使用状態が,当該ライセンスLにおける使用条件情報中の条件式を満たしているかどうかを判断する。
具体的には,図3の例で,上記条件式判断部140は,まず,ライセンスLの使用条件情報から条件式196である「再生回数≦再生可能回数」の記述を読み取り,かかる条件式196を解釈する。次に,条件式判断部140は,この条件式196を構成する使用制限200の変数の値「再生可能回数;4」を使用条件情報から読み出すとともに,ステータス情報Sの使用状態202である「再生回数;2」を読み出す。さらに,このように読み出した2つの変数を,条件式196に代入して,使用制限200の変数の値「再生可能回数;4」と,使用状態202の変数の値「再生回数;2」とを比較する。
条件式判断部140は,上記の比較の結果,条件式196の条件を満たしていると判断した場合には,上記使用対象のコンテンツの使用処理を許可して,コンテンツ処理部124に対してコンテンツ使用に関する許可指示を出力する。一方,上記の比較の結果,条件式196の条件を満たしていないと判断した場合には,上記使用対象のコンテンツの使用処理を許可せず,コンテンツ処理部124に対してコンテンツ使用に関する不許可指示を出力する。
上記コンテンツ処理部124は,条件式判断部140によってコンテンツCの使用が許可された場合(例えば,ステータス情報Sによる使用状態が条件式196を満たしていると判断された場合や,使用制限が課されない場合など)には,コンテンツCの使用処理を実行する。ここでコンテンツCの使用は,例えば,コンテンツの再生,コピー,分割等の編集や,他のライセンス評価装置10に対するコンテンツのチェックアウト,他のライセンス評価装置10に対するライセンスの移譲(エクスポート),貸与(lend),コピーなどである。
具体的には,コンテンツCを再生する場合には,コンテンツ処理部124は,コンテンツデータベース112から使用対象のコンテンツを読み出し,暗号化されている当該コンテンツを復号およびデコードした上で,再生し,出力部104に表示させる。これにより,ユーザは,再生表示された映像コンテンツを閲覧できる。
なお,暗号化されたコンテンツCの復号およびデコード処理は,著作権管理部130に設けられた復号部およびデコード部によって行い,コンテンツ利用部120のコンテンツ処理部124は,複合およびデコードされたコンテンツデータの再生処理(通常再生,早送り再生,巻き戻し再生など)のみを行うようにしてもよい。
ドメイン特定部142は,ライセンスLに含まれる使用条件情報を解析し,使用条件情報の条件式を構成する1又は2以上の変数のドメインを,使用条件情報に含まれるドメイン指定情報に基づいて特定する。ライセンスLの使用条件情報には,上記変数属性情報として,ドメイン指定情報が含まれている。ドメインは,コンテンツの使用機能の分類(カテゴリ)であり,例えば,DRMドメイン,再生(renderer)ドメイン,チェックアウト(lcm)ドメイン,エクスポート(export)ドメインなどがあるが,詳細は後述する。ドメイン指定情報は,ライセンスLやステータス情報Sに用いられる変数が,如何なるドメインで使用される変数であるか,即ち,如何なるドメインで有効な変数であるかを表す情報である。かかるドメイン指定情報は,ライセンスLの作成時に,ライセンス提供サーバ25によって,ライセンスLの使用条件情報内に各変数と関連付けて記述されている。
ドメイン特定部142には,上記条件式判断部140によってコンテンツCの使用が許可され,当該コンテンツCの使用に応じてステータス情報Sの対応する変数を更新する場合に,上記条件式判断部140から更新対象の変数が通知される。すると,ドメイン特定部142は,ライセンスLの変更使用条件情報から当該変更対象の変数に対応するドメイン指定情報を読み出し,この読み出したドメイン指定情報に基づいて,更新対象の変数のドメインを特定し,特定したドメインをステータス情報更新部144に出力する。
上記ステータス情報更新部144は,上記条件式判断部140によってコンテンツCの使用が許可された場合に,上記コンテンツ処理部124による当該コンテンツCの使用内容に応じてステータス情報Sの対応する変数を更新(書き換え)する。このため,ステータス情報更新部144は,条件式判断部140から入力されたステータスIDに基づいて,上記評価されたライセンスLおよび使用されたコンテンツCに対応するステータス情報Sを選出し,このステータス情報Sのうち,上記当該コンテンツCの使用内容に応じた変数を更新する。かかる更新は,例えば,コンテンツの再生時間,再生期間,再生回数,コピー可能回数,チェックアウト回数等を表す変数を,上記使用内容に応じて,追加,変更,削除することによって,なされる。
さらに,かかるステータス情報Sの変数の更新処理を行う場合,ステータス情報更新部144は,対応するステータス情報Sのうち,上記ドメイン特定部142によって特定されたドメイン領域のみをロックし,ロックされたドメイン領域内の変数をコンテンツの使用内容に応じて更新することが特徴的である。
ここで,ステータス情報Sのロックとは,ステータス情報S内の全部または一部の領域の変数に関し,他の更新処理によって更新されないようにガードをかけることによって,当該領域の変数の更新権限を専有することである。ある更新処理に関し,ステータス情報Sの所定領域にロックがかけられた場合には,当該更新処理により変数の更新が終了してロックが解除されなければ,他の更新処理に関し,当該所定領域の変数を更新することができない。
このようなロックをかける場合,ステータス情報S全体をロックしてしまうと,複数の処理を同時並行して行うことができない。そこで,本実施形態では,上記ステータス情報Sはドメインごとに領域分割されており,かつ,上記ドメイン判定部42によって更新対象の変数のドメインを特定できるように構成されているので,ステータス情報更新部144は,ステータス情報Sのうち,更新対象の変数に対応(即ち,上記コンテンツの使用内容に対応)するドメイン領域のみをロックして,他のドメイン領域はロックしないようにできる。このため,複数のドメインに関するコンテンツの使用処理を,同時並行できるようになる。
以上,ライセンス評価装置10の各構成要素について説明した。なお,上記コンテンツ利用部120の各部および著作権管理部130の各部などは,例えば,コンピュータに上記各機能を実行させるプログラム(アプリケーション,DRMモジュール等のソフトウェア)を,ライセンス評価装置10にインストールすることによって構成されてもよいし,或いは,上記各機能を有するハードウェアとして構成されてもよい。かかるプログラムも本発明の技術的範囲に含まれる。
また,ユーザが,複数のコンテンツ配信サービスを利用する場合には,例えば,上記コンテンツ利用部120および著作権管理部130は,ユーザが利用するコンテンツ配信サービスごとに,複数設けられてもよい。
さらに,上記著作権管理部130の各部は,各ドメインごとに,複数組設けられても良い。即ち,再生ドメインの著作権管理部(再生モジュール),チェックアウトドメインの著作権管理部(lcmモジュール)など,各ドメインごとに複数の著作権管理部130を設け,かかる複数の著作権管理部130が,それぞれ,自己のドメインの機能を実行するために,上記ライセンス抽出部132,ステータス情報抽出部134,条件式判断部140,ステータス情報更新部144などを,それぞれ具備するようにしてもよい。
<コンテンツ>
次に,図4に基づいて,本実施形態にかかるコンテンツCについて説明する。なお,図4は,本実施形態にかかるライセンス評価装置10で使用されるコンテンツCの構成例を示す説明図である。ここでは,映画コンテンツの例を挙げて説明する。
図4に示すように,1つのコンテンツファイル210内に1つの映画コンテンツCが含まれており,この映画コンテンツCは,例えば,映像トラック(Video Track)230と,音声トラック(Audio Track)232と,字幕トラック(Subtitle Track)234と,各トラック230,232,234に対応するセキュリティ情報240,242,244とから構成されている。
映画コンテンツCに含まれる上記各トラックは,コンテンツの構成要素であり,コンテンツの実際の内容を表すデータである。1つのコンテンツを構成するトラックの数は,コンテンツ毎に異なり,図4の例では,3つのトラック230,232,234から構成されている。このうち,映像トラック230は,映画の映像に相当する動画データである映像データを含む。また,音声トラック232は,映画の音声に相当する音声データを含む。また,字幕トラック234は,映画の字幕データを含む。これらの各トラック230,232,234は,対応するセキュリティ情報240,242,244に含まれるトラック鍵250でそれぞれ暗号化されている。
なお,コンテンツCは,上記映像トラック230,音声トラック232,字幕トラック234のいずれかのみで構成されてもよいし,上記以外にも,他のトラック(静止画トラック,音楽に関する文字情報トラック等)を含んでもよい。
上記セキュリティ情報240,242,244は,コンテンツの著作権管理を行うための情報(SINF:Security Information)であり,例えばコンテンツ配信サーバ20によって,トラック毎に付加される。図4の例では,1つの映画コンテンツC内の,3つのトラック230,232,234に対して3つのセキュリティ情報240,242,244がそれぞれ付加されている。なお,本実施形態では,このようにトラック単位でセキュリティ情報が設けられているが,かかる例に限定されず,例えば,トラック毎のライセンス管理を行わない場合には,コンテンツC単位でセキュリティ情報を設けても良い。
このセキュリティ情報240,242,244は,例えば,暗号化されたトラック鍵250と,属性情報260と,署名270とからなる。
上記トラック鍵250は,上記暗号化された各トラックを解読(デクリプト;復号)するための鍵である。セキュリティ情報240のトラック鍵250は,映像トラック230を解読するための鍵であり,セキュリティ情報242のトラック鍵250は,音声トラック232を解読するための鍵であり,セキュリティ情報244のトラック鍵250は,字幕トラック234を解読するための鍵である。また,このようなトラック鍵250自体も,ライセンス鍵で暗号化されている。従って,適正なライセンスLがなければ,トラック鍵250を解読することができず,この結果,上記トラックのコンテンツデータを解読して再生等することができない。
上記属性情報(Attribute)260は,コンテンツCの属性を表す情報であり,例えば,後述する属性コード(変数名)と,コンテンツ属性ID(変数)とからなる。このコンテンツ属性IDには,上述したステータスIDが含まれる。コンテンツCの属性は,コンテンツCの著作権管理面での性質,特徴(例えば,ステータス,ファイル,トラック等)のみならず,コンテンツCの内容面での性質,特徴(例えば,コンテンツの監督,主演俳優等)なども含む。本実施形態では,属性情報260は,例えば,コンテンツを構成するトラック毎に定められ,コンテンツCを構成する各トラックの属性を表している。このため,同一の映画コンテンツC内であっても,異なるトラックに対応する属性情報260は,異なる情報となる場合がある。このようにコンテンツCに付加された属性情報260は,当該コンテンツCとライセンスLとのマッチングをとるために利用される。
上記署名270は,ライセンス評価装置10や,ライセンス評価装置10にネットワーク5を介して接続されたコンテンツ配信サーバ20等によって付加されたデジタル署名であり,セキュリティ情報全体の改竄を防止する機能を有する。この署名270は,例えば,デジタル署名の正当性を検証するための証明書をも含む。
次に,図5に基づいて,本実施形態にかかるコンテンツCの属性情報260について詳細に説明する。なお,図5は,本実施形態にかかるコンテンツCの属性情報260の構成例を概念的に示す説明図である。
図5に示すように,属性情報260は,属性コード(変数名)280と,かかる属性コードに対応するコンテンツ属性ID(変数)290との組み合わせで構成されている。
上記属性コード280は,コンテンツの属性の種類を識別するための識別コードであり,上記ライセンスLやステータス情報Sで用いられる変数の変数名に相当する。この属性コード280は,属性情報260が付加されるコンテンツの異同にかかわらず,例えば,著作権管理システム内で,コンテンツの属性の種類毎に共通に定められたコードである。この属性コードは,例えば「A000」等の4桁の文字列で構成される。本実施形態では,例えば,「A000」〜「A999」までの1000個の属性コードを設定可能であり,これにより1000種類の属性を定義することができる。
なお,本実施形態では,使用条件や使用状態を表す変数に関し,Four Character Codeなる4文字を変数名として記述している。この4文字の変数名としては,例えば,上記「A000」〜「A999」や,後述する「umcc」,「uref」などがある。
上記コンテンツ属性ID290は,コンテンツの属性を特定するIDであり,上記ライセンスLやステータス情報Sで用いられる変数に相当する。このコンテンツ属性ID290は,コンテンツの属性毎に固有な文字列(図5の例では14桁の文字列)で構成されており,当該コンテンツ属性ID290が付加されたコンテンツの属性を一意に特定する。このコンテンツ属性ID290は,コンテンツの属性の種類(上記属性コード)毎に複数の種類が設定されている。以下に,各コンテンツ属性IDについてそれぞれ説明する。
(ステータスID)
属性コードが「A000」のコンテンツ属性IDは,上記ステータスIDである。このステータスIDは,ライセンスL単位(即ち,ステータス情報S単位)で固有に付与されるIDであり,このステータスIDによって,ライセンスLが適用されるコンテンツCまたはトラックの範囲を特定することができる。このライセンスLが適用されるコンテンツまたはトラックは,ライセンスLを用いた著作権管理の対象として意味のあるデータの集合である。このステータスIDをコンテンツCに対して付加することにより,当該コンテンツCを著作権管理するためのライセンスLおよびステータス情報Sを特定できる。
ここで,コンテンツを管理する管理者(サービスプロバイダ)は,同一のステータスIDを付加するコンテンツCまたはトラックの範囲を自由に設定でき,これにより,1つのライセンスLおよび1つのステータス情報SによるコンテンツCまたはトラックの管理範囲を,多様な形態で自由に決定できる。
例えば,個々のコンテンツC単位若しくは個々のトラック単位でステータスIDを付加するようにしてもよい。これにより,個々のコンテンツC若しくはトラックを,1つのライセンスLおよび1つのステータス情報Sで個別に管理できる。また,複数のコンテンツC単位若しくは複数のトラック単位でステータスIDを付加するようにしても良い。これにより,複数のコンテンツC若しくはトラックを,1つのライセンスLおよび1つのステータス情報Sでまとめて管理できる。具体的には,所定の関連(例えば,同一の映画シリーズ等)を有する複数のコンテンツC1,C2,C3,…に対して同一のステータスIDを付加してもよい。この場合には,関連する複数のコンテンツ(コンテンツグループ)に対して,同一のライセンスLおよびステータス情報Sが適用されることになる。
(トラックID)
属性コードが例えば「A001」のコンテンツ属性IDは,トラックIDである。このトラックIDは,上記コンテンツを構成するトラックT単位で固有に付与されるIDである。例えば,図4の例では,映像トラック230と音声トラック232とでは,異なるトラックIDが付与される。このようなトラックIDをコンテンツCに対して付加することにより,システム内で流通するコンテンツCのトラックを識別できるようになる。また,本実施形態では,セキュリティ情報とトラックとが1対1で設定されているので,このトラックIDによって,コンテンツCに付加されているセキュリティ情報を識別することもできる。
(ファイルID)
属性コードが例えば「A029」のコンテンツ属性IDは,ファイルIDである。このトラックIDは,1又は2以上のコンテンツを含むコンテンツファイル単位で固有に付与されるIDである。例えば,図4の例では,1つの映画コンテンツCを含むコンテンツファイル210に対し,1つのファイルIDが付与される。このようなファイルIDをコンテンツCに対して付加することにより,システム内で流通するコンテンツファイルを識別できるようになる。
(グループID)
属性コードが例えば「A257」〜「A264」の8つのコンテンツ属性IDは,グループIDである。このグループIDは,複数のコンテンツCで共通する属性である共通属性単位で固有に付与されるIDである。このグループIDは,複数種類の共通属性に対応して複数種類設定される。このグループIDが表す共通属性は,コンテンツ配信サーバ20等の管理者(サービスプロバイダ)が自由に設定することができる。この共通属性の具体例としてはは,例えば,コンテンツの提供元のサービスプロバイダ,コンテンツの監督コンテンツの主演男優や主演女優,コンテンツのジャンルや作成場所などがある。
ライセンス評価装置10がこのようなコンテンツCを再生する場合,まず,指定された映画コンテンツCのトラック240,242,244に対応したセキュリティ情報240,242,244を読み込み,その中の属性情報260からステータスIDを抽出する。次いで,そのステータスIDに関連付けられたライセンスLを参照して再生条件を解釈し,さらに必要に応じてステータス情報Sをも参照し,その内容がライセンスLの再生条件を満たすかどうかを評価する。かかるライセンスLの評価の結果,コンテンツCの再生が許可されると,セキュリティ情報240,242,244内にあるトラック鍵250によって,指定されたトラック240,242,244のコンテンツデータが復号され,コンテンツCが再生される。
<ライセンス>
次に,図6に基づいて,本実施形態にかかるライセンスLの構成について説明する。なお,図6は,本実施形態におけるライセンスLの構成例を示した説明図である。
ユーザは,ライセンス評価装置10を用いてコンテンツCを使用しようと試みる場合,上述したコンテンツCに加え,ライセンス提供サーバ25からライセンスLを予め取得しておかなければならない。
図6に示すように,ライセンスLは,例えば,上記ヘッダ192と,バージョン310と,プロファイル312と,作成日時314と,有効期限316と,使用条件情報UR(Usage Rule)と,使用条件情報の電子署名318と,電子署名320と,証明書322とを含む。
上記ヘッダ192におけるステータスIDは,上述したように各コンテンツCとライセンスLとステータス情報Sとを関連付ける。従って,ライセンス抽出部132は,コンテンツCから読み取ったステータスIDと,ライセンスデータベース114内のライセンスLのヘッダに記述されたステータスIDとを比較することによって,使用対象のコンテンツCに対応するコンテンツCを抽出できる。
上記バージョン310は,ライセンスLのバージョンを表し,メジャーバージョンとマイナーバージョンを順次並べて記載する。上記プロファイル312は,ライセンスLの記述方法に対する制限を規定する情報であり,整数値で記載される。上記作成日時314は,当該ライセンスLが設定された日時,即ち,ライセンスLの作成日時が記載されている。
上記有効期限316は,当該ライセンスLの有効期限を示し,通常西暦による年,月,日,時刻の記載が行われる。有効期限を無制限にする場合,その旨の記号を添付するか,有効期限を9999年12月31日23時59分59秒に設定する。
上記使用条件情報URは,ライセンスLに基づいてコンテンツCを使用するための使用条件を規定する条件式が記述される。この使用条件は,例えば,ステータスIDごとの,コンテンツCの再生可能時間,再生有効期間,再生可能回数,コピー可能回数,チェックアウト可能回数および記憶媒体への記録可否,ライセンスLの移譲やコピーの可否とその可能回数,ステータス情報S更新義務の有無等を含んでいる。また,使用条件情報URには,上述したように,条件式を構成する変数を定義する変数属性情報(変数の初期値,ドメイン指定情報等)が含まれている。また,この変数属性情報には,条件式で用いられ各種の定数や,ライセンス評価装置10若しくはユーザ単位で固有に付されるリーフIDなども含まれる。かかる使用条件情報URの詳細については後述する。
上記使用条件情報の電子署名318は,使用条件情報URに対応する電子署名であり,使用条件情報URの改竄を防止する機能を有する。この電子署名318は,例えば,電子署名318の正当性を検証するための証明書をも含む。
上記電子署名320は,ライセンスL全体に対応する電子著名であり,ライセンスLの改竄を防止する。上記証明書322は,ライセンス提供サーバ25の公開鍵を含む証明書である。
<ドメイン>
次に,本実施形態にかかるドメインについて詳細に説明する。
ドメインは,上記のように,ライセンス評価装置10におけるコンテンツの使用機能の分類(カテゴリ)である。本実施形態では,例えば,以下のようなドメインが設定されている。
(drmドメイン;著作権管理ドメイン)
drmドメインは,全ての使用形態を表すカテゴリである。このdrmドメインの機能は,上述の著作権管理部130(DRMモジュール)全体に対応する。かかるdrmドメインは,コンテンツを使用するユーザ(上記リーフID等)を指定する変数などを取り扱う。
(rendererドメイン;再生ドメイン)
rendererドメインは,コンテンツの再生,表示等に関する使用形態のカテゴリである。このrendererドメインは,再生モジュールに対応し,再生可能回数,再生可能期間などの変数を取り扱う。
(lcmドメイン;チェックアウトドメイン)
lcmドメインは,PD等の他のライセンス評価装置10に対するコンテンツのチェックアウト/チェックイン(送受信)等に関する使用形態のカテゴリである。このlcmドメインは,「umcc」チェックアウトカウント(Check Out Count)などの変数を取り扱う。
(exportドメイン;ライセンス移譲ドメイン)
exportドメインは,例えばホームネットワーク内等におけるライセンス評価装置10間でのライセンスLの移譲(エクスポート)に関する使用形態のカテゴリである。このexportドメインは,「umxc」エキスポートカウント(Export Count)などの変数を取り扱う。
(divideドメイン;分割ドメイン)
divideドメインは,コンテンツの分割に関する使用形態のカテゴリである。
(ripperドメイン;リッピングドメイン)
ripperドメインは,CD等の記憶媒体からのコンテンツの読み出し(リッピング)に関する利用形態のカテゴリである。
(burnerドメイン;バーナードメイン)
burnerドメインは,CD−R等の記憶媒体へのコンテンツの記録に関する利用形態のカテゴリである。
以上のように,コンテンツCの使用やライセンスLの処理に関する機能を,ドメインごとに分割することにより,著作権管理処理の処理効率を向上し,処理内容を明確化することができる。また,コンテンツ配信システム100における,コンテンツCの使用処理機能若しくはライセンスLの処理機能の追加,変更等が容易になる。
<ステータス情報>
次に,図7に基づいて,本実施形態にかかるステータス情報Sの構成について説明する。なお,図7は,本実施形態にかかるステータス情報Sの構成例を示した説明図である。
ステータス情報Sは,ライセンスLに基づくコンテンツCの使用状態を表す情報である。ただし,ライセンスLは,固定された使用条件を規定しているのに対して,ステータス情報Sは,コンテンツCの使用に応じて使用状態が更新される。そして,次回のコンテンツCの使用時には,かかる更新後の使用状態が参照され,ライセンスLと再度比較することによって,コンテンツCの使用の可否が決定される。
このステータス情報Sは,各ライセンス評価装置10においてライセンスLごとに生成される。従って,ライセンス評価装置10が異なれば,異なるステータス情報Sが生成され,ライセンスLが異なれば,異なるステータス情報Sが生成される。よって,1つのライセンス評価装置10が,複数のライセンスLを取得してコンテンツCを使用する場合には,各ライセンスLに対応するステータス情報Sがそれぞれ生成される。図7は,ライセンス評価装置10のステータス情報データベース116に保存されている複数のステータス情報Sのうち,あるライセンスLに対応する1つのステータス情報Sを示している。
図7に示すように,ステータス情報Sは,ドメインごとに複数の領域に区分されている。具体的には,図7の例では,ステータス情報Sは,例えば,drmドメイン領域410と,lcmドメイン領域420と,rendererドメイン領域430と,exportドメイン領域440などの各ドメイン領域に区分されている。さらに,各ドメイン領域410〜420は,例えば,固定値(定数)である変数を記憶する固定値領域412,422,432,442(図7中(r)で示される領域)と,可変値である変数を記憶する可変値領域414,424,434,444(図7中(rw)で示される領域)と,に区分されている。
具体的には,drmドメイン領域410の固定値領域412には,変数「uref」が記憶されている。この変数「uref」は,著作権管理部120が安全に管理している端末ID(リーフID)であり,固定値である。一方,drmドメイン領域410の可変値領域414には,変数「ultc」と変数「usst」が記憶されている。変数「ultc」は,ライセンス評価装置10が最後にサーバ20,25にアクセスした日時(日図家と時刻の双方を含む。以下同じ。)を表し,可変値である。変数「usst」は,著作権管理部130が起動した日時を表し,可変値である。
また,lcmドメイン領域420の固定値領域422には,変数「uefu」が記憶されている。この変数「uefu」は,lcmドメインで用いられる場合には,最初にコンテンツCをチェックアウトした日時を表し,固定値である。一方,lcmドメイン領域420の可変値領域424には,変数「umcc」が記憶されている。この変数「umcc」は,チェックアウトカウントであり,ライセンス評価装置10が過去にコンテンツをチェックアウトした回数を表し,可変値である。
また,rendererドメイン領域430の固定値領域432には,変数「uefu」と変数「umdp」が記憶されている。この変数「uefu」は,rendererドメインで用いられる場合には,最初にコンテンツCを再生した日時を表し,固定値である。変数「umdp」は,再生可能な期限(再生可能期間の終了日時)を表し,固定値である。一方,rendererドメイン領域430の可変値領域434には,変数「umpc」が記憶されている。この変数「umpc」は,プレイカウントであり,ライセンス評価装置10が過去にコンテンツを再生した回数を表し,可変値である。
また,exportドメイン領域440の固定値領域442には,変数「uefu」が記憶されている。この変数「uefu」は,exportドメインで用いられる場合には,最初にライセンスLを移譲(エクスポート)した日時を表し,固定値である。一方,exportドメイン領域440の可変値領域444には,変数「umxc」と変数「umcc」が記憶されている。この変数「umxc」は,エキスポートカウントであり,ライセンス評価装置10が過去にライセンスLを移譲した回数を表し,可変値である。変数「umcc」は,exportドメインで用いられる場合には,ライセンスLの移譲先のライセンス評価装置10が過去にコンテンツをチェックアウトした回数を表し,可変値である。
以上のように,ステータス情報Sには,各種の変数が,それぞれに対応する各ドメイン領域内に,可変値と固定値とに区分されて記憶されている。このようにステータス情報Sをドメインごとに領域区分することにより,各ドメインに関する処理を行いステータス情報Sを更新する際に,ステータス情報S全体をロックするのではなく,対応するドメイン領域のみをロックして,変数を更新すれば済む。例えば,lcmモジュールがlcmドメインに属するチェックアウト処理を行った場合には,ステータス情報Sのlcmドメイン領域420のみをロックして,変数「umcc」を1つ増加させればよい。このようにすることで,複数のドメインの処理を同時並行して実行できるようになるので,処理効率が向上する。
さらに,同一ドメイン領域内でも,固定値領域412,422,432,442と,可変値領域414,424,434,444を区分することによって,変数の更新時には,可変値領域414,424,434,444のみをロックすればよい。これは,更新される変数は,可変値をとる変数に限られるからである。ただし,固定値をとる変数であっても,ステータス情報Sに新規登録する場合には,固定値領域412,422,432,442をロックしてもよい。
なお,ステータス情報Sに記憶される変数は,上記例のみに限定されず,後述する各種の変数なども記憶可能である。また,使用状態に関する変数がライセンスLにあって,ステータス情報Sにない場合は,変数設定部134によってステータス情報Sに新たに上記変数が追加される。また,上記では,1つのステータス情報Sのファイル内の記憶領域をドメインごとに領域分割したが,かかる例に限定されず,1つのステータス情報Sをドメインごとにファイル分割して,各ドメインの変数をファイル区分して管理することも可能である。
<ライセンスの使用条件情報>
次に,ライセンスLの使用条件情報URについて詳細に説明する。
まず,図8に基づいて,本実施形態にかかるライセンスLの使用条件情報URの記述ルール例について説明する。なお,図8は,本実施形態にかかるライセンスLの使用条件情報URの記述ルール例を示す説明図である。
図8に示すように,1つの使用条件情報UR(Usage Rule)は,先頭に記述するdomain_idによってそれを適用するドメインを規定する。さらに,それに続く「’{’…’}’」内に,各種ルールが規定され,その枠内では,ルールセクション,definitionセクション(定義セクション),およびoverhead partセクション(オーバーヘッドパートセクション)の3つのセクションが定義される。
上記ルールセクションは,上記枠内において複数の条件式(domain_rule)を記述することが可能である。定義セクションは,ルールセクションに続いて記述され,変数の定義を行う箇所であり,ここに上記変数属性情報の一部が記載される。オーバーヘッドパートセクションセクションは,定義セクションに続く部分であり,各ドメイン毎の独自のルールを記述する部分である。
domain_idは,ドメインを示す名称であり,「drm」,「renderer」,「lcm」,「divid」,「export」,「ripper」,「burner」などの文字列である。
ルールセクションに記述される条件式は,各ドメインの使用条件および使用状態の変数や定数などを参照するための変数名(Four Character Code(4CC))に対して,比較演算を施したものである。
利用できる演算子には,例えば,単項演算子として「!」,2項演算子として「=」,「<」,「>」,「<=」,「>=」,「in」,「and」,「or」などを利用できる。上記2項演算子の演算優先順位は,上記の並び順では,前にある演算子ほど高いことになる。どの演算子も左結合である。
上記定義セクションは,各種変数の定義する部分であり,「変数名(4CC)=値;」の形式で変数に具体値を定義する。
以下に,図9〜図14に基づいて,上記のような使用条件情報URの基本的な記述ルールに基づいて記述された使用条件情報URの記述の具体例について説明する。なお,図9〜図14は,本実施形態にかかる使用条件情報URの具体的な記述例を示す説明図である。
まず,図9に示す使用条件情報URの記述例では,drmドメインと,lcmドメインと,exportドメインに関して使用条件が記述されている。
まず,drmドメインの条件式として,「’ivar.com.rlef’=’gvar.sys.uref’」が記述されている。変数「ivar.com.rlef」には,定義セクションの記載に基づき,ライセンスによって利用を許可された端末のIDである所定値「/07ff000000000001」が代入される。変数「rlef」は,ライセンスLを使用できる端末ID(リーフID)を表し上述したリーフIDを示し,変数「uref」は,ライセンス評価装置10のD著作権管理部130が保持している端末ID(リーフID)を示す。かかる条件式は,ライセンス評価装置10の端末IDが,「/07ff000000000001」であれば,drmドメインの使用条件を満たすことを規定している。
ここで,著作権管理部130は,例えばステータス情報S等において管理している端末ID「uref」を読み込み,条件式判断部140は条件式判断部140でその値が一致しているかどうかを判断し,一致していれば,かかるdrmドメインの条件式判断を終了し,他のドメインの条件式判断に移行する。このように,ライセンス評価装置10は,ライセンスLの使用条件情報URから条件式を順次読み込み,読み込んだ順に条件式を評価する。
また,lcmドメインの条件式として,「’gvar.sys.umcc’<=’ivar.com.recc’」が記述されている。「gvar.sys.umcc」は,既に行ったチェックアウト回数であり,ステータス情報Sの上記lcmドメイン領域420に記述されている。また,「ivar.com.recc」は,チェックアウト可能回数であり,使用条件情報URの定義セクションで「3」回であると規定されている。よって,この条件式は,チェックアウト回数が3回以下であれば,lcmドメインの使用条件を満たすことを規定している。
さらに,exportドメインの条件式として,「’gvar.expt.uefu’+’ivar.expt.rxp1’>=’gvar.sys.ucdt’」が記述されている。「gvar.expt.uefu」は,最初にライセンスLを移譲(エクスポート)した日時を表し,ステータス情報Sの上記exportドメイン領域440の固定値領域442に記憶されている。「ivar.expt.rxp1」は,移譲可能期間を表し,使用条件情報URの定義セクションで「$0000/00/7/00:00:00(7日間)」であると規定されている。また,「gvar.sys.ucdt」は,現在時刻であり,ライセンス評価装置10が具備する信頼のおける計時装置から,正確な現在時刻が取得される。よって,この条件式は,ライセンスLを最初に他のライセンス評価装置10に移譲してから,7日間以内であれば,exportドメインの使用条件を満たすことを規定している。
以上,図9に示す使用条件情報URの使用条件について説明した。ところで,図9の使用条件情報URには,上記条件式を構成する各種変数を定義するための上記変数属性情報が含まれている。以下に,この変数属性情報の例として,(1)変数の初期値,(2)変数が可変値または固定値のいずれであるかを表す情報,(3)変数の型情報,(4)変数のグローバル/ローカル指定情報,(5)変数のドメイン指定情報について説明する。
(1.変数の初期値)
図9の使用条件情報UR内には,可変値をとる変数の初期値が,定義されている。例えば,lcmドメインの定義セクションにおいて,「’gvar.sys.umcc’=0」と記述されている。これによって,チェックアウト回数を示す変数「umcc」の初期値が「0」であると定義されている。また,別の例を挙げれば,exportドメインの定義セクションにおいて,「’gvar.expt.uefu’=in_system」と定義されている。これは,最初にライセンスLを移譲した日時を示す変数「uefu」の初期値は,「in_system」,即ち,ライセンス評価装置10で最初にライセンスLを移譲した日時に設定するよう定義されている。
このように,変数の初期値を明示的に指定することによって,新規変数が使用条件情報URに追加されていたとしても,ライセンス評価装置10の変数設定部138は,当該使用条件情報URに記述されている初期値を,新規変数の初期値として設定可能であるので,著作権管理部130の装置若しくはプログラムを設計変更して,新規変数の初期値を粗けじめ設定しておく必要がなくなる。
(2.変数が可変値または固定値のいずれであるかを表す情報)
図9の使用条件情報URには,上記変数が可変値または固定値のいずれであるかを表す情報として,「(r)」および「(rw)」が,各変数と関連付けて記述されている。例えば,lcmドメインの定義セクションにおいて,「’gvar.sys.umcc’=0;(rw)」と記述されており,変数「umcc」が,リード(read)及びライト(write)される値,即ち,可変値(variables)であることが定義されている。また,「’ivar.com.recc’=0;(r)」と記述されており,変数「recc」が,リードオンリーの値,即ち,固定値(Constant;定数)であることが定義されている。
このように,使用条件情報UR内に,変数が可変値か固定値かを記述しておくことにより,新規変数を好適に設定して,ステータス情報Sに登録できる。
(3.変数の型情報)
図9の使用条件情報URには,上記変数の型を表す情報が,各変数と関連付けて記述されている。例えば,drmドメインの定義セクションにおいて,「’gvar.sys.uref’=im_system;(r)unsigned long」と記述されており,変数「uref」の型が,「unsigned long」であり,当該変数「uref」が,例えば8バイト(long)の正の整数(unsigned)であることが定義されている。また,lcmドメインの定義セクションにおいて,「’gvar.sys.umcc’=0;(rw)unsigned char」と記述されており,変数「umcc」の型が,「unsigned char」であり,当該変数「umcc」が,例えば2バイト(char)の正の整数(unsigned)であることが定義されている。また,exportドメインの定義セクションにおいて,「’gvar.expt.uefu’=in_system;(rw)time_t」と記述されており,変数「uefu」の型が,「time_t」であり,当該変数「uefu」が,例えば日時情報(time_t)であることが定義されている。なお,図9には図示しないが,変数が例えば4バイト(int)の正の整数(unsigned)であることを定義するために,変数の初期値指定の後に,「unsigned int」と記述してもよい。
このように変数の型を定義することにより,ライセンス評価装置10は,変数の取りうる値の範囲,変数の性質,変数をステータス情報Sに記憶するために必要な容量(変数のデータサイズ),変数の記憶方式などを理解して,変数を好適に設定,登録できる。
(4.変数のグローバル/ローカル指定情報)
図9の使用条件情報URには,変数がグローバル(global)変数であるかローカル(local)変数であるかを指定する情報が,各変数と関連付けて記述されている。グローバル変数は,複数のコンテンツCに対して共通に使用される変数である。一方,ローカル変数は,特定の1のコンテンツCに対してのみ使用される変数である。
例えば,drmドメインのルールセクションおよび定義セクションにおいて,変数「uref」が「’gvar.sys.uref’」と記述されており,このうち,グローバル指定情報である「gvar.」によって変数「uref」がグローバル変数であることが定義されている。また,lcmドメインのルールセクションおよび定義セクションにおいて,「’gvar.sys.umcc’」と記述されており,上記と同様に,グローバル指定情報「gvar.」によって変数「umcc」がグローバル変数であることが定義されている。
このように変数が,ローカル変数かグローバル変数かを指定することによって,1つのライセンスLが複数のコンテンツCに対して有効な場合に,ステータス情報Sを1つにすることができる。
例えば,あるライセンスL1に対しコンテンツC1〜5が有効であり,ライセンスLは,最初に使用してから3日間有効なライセンスLであるとする。この場合,コンテンツC1〜5のいずれを使用した場合であっても,初回使用日時を表す変数をステータス情報Sに記憶するためには,その変数はコンテンツC1〜5のすべてに有効でなければならない。例えば,従来のようなローカル変数のみを用いた場合,このような設定をすることは困難であったが,上記のように変数をグローバル指定することにより,複数のコンテンツCに跨った上記使用日時の設定が可能となる。このように初回使用日時を表す変数をグローバル指定しておけば,コンテンツC1〜5のいずれを使用しても,当該変数の初回使用日時が設定される。一方,初回使用日時を表す変数を,あるコンテンツC1に対してローカル指定した場合には,ローカル指定されたコンテンツC1以外のコンテンツC2〜5を使用しても,当該変数の初回使用日時が設定されない。
(5)変数のドメイン指定情報
図9の使用条件情報URには,変数のドメイン指定情報が,変数と関連付けて記述されている。このドメイン指定情報は,変数を使用するドメイン(当該変数が有効なドメイン)を指定する情報であり,上記ドメイン特定部142によって変数のドメインを特定する際に参照される。
例えば,exportドメインのルールセクションおよび定義セクションにおいて,「’gvar.expt.uefu’」,「’ivar.expt.rxp1’」と記述されている。このうち,「expt.」は,エキスポートドメインを指定するドメイン指定情報であり,変数「uefu」および「rxp1」が,exportドメインで使用される変数であることを定義している。このように,複数のドメインで使用される可能性のある変数「uefu」および「rxp1」等の頭に,ドメイン指定情報「expt.」等を記述することにより,これらの変数を使用するドメインを明示的に指定できる。
なお,図9には図示しないが,rendererドメインを指定するドメイン指定情報「rend.」,lcmドメインを指定するドメイン指定情報「lcm.」などを変数の頭に記述することによって,他のドメインを指定することも可能である。
このように,本実施形態にかかるライセンスLの使用条件情報URには,上記各種の変数属性情報が記述されている。変数属性情報は,著作権管理部130(DRMモジュール)による処理において,単に参照されるリストであり,この変数属性情報自体がプログラムとして機能するものではない。従って,変数属性情報を既存の使用条件情報URに追加したとしても,このことが,著作権管理部130を構成するDRMモジュールのプログラム自体を変更するものではないので,何ら不都合を伴わない。よって,ライセンス評価装置10は,何らの装置やソフトウェアの変更を必要とすることなく,使用条件情報UR内の新規変数に好適に対応することができる。
以上,図9に基づいて,使用条件情報URの記述例について詳細に説明した。以下では,図10〜14に基づいて,使用条件情報URの他の記述例について説明する。
まず,図10の使用条件情報URの記述例について説明する。図10に示す使用条件情報URの記述例では,rendererドメインに関して使用条件が記述されている。
具体的には,rendererドメインの条件式は,「’gvar.rend.uefu’+’ivar.rend.rxp1’>=’gvar.sys.ucdt’」である。「’ivar.rend.rxp1’」は,再生可能期間を表す変数であり,定義セクションで「7」日間であると定義されている。
この使用条件情報URでは,変数「’gvar.rend.uefu’」に,そのコンテンツCを最初に再生した日時が読み込まれるが,この値自体は,ステータス情報Sに記憶されている。条件式判断部140は,コンテンツを最初に利用した時間「’gvar.rend.uefu’」に,ライセンス期間「’ivar.rend.rxp1’」を足し,その結果が,現在時刻を表す変数「’gvar.sys.ucdt’」より後であるか否かを判断する。
かかる使用条件情報URにおいて,変数「rxp1」および「uefu」は,ドメイン指定情報「rend.」によって,rendererドメインで使用される変数であると指定され,変数の型情報「time_t」によって,日時を表す変数であることが定義されている。また,変数「uefu」は,「gvar.」によってグローバル変数であることが定義され,「(rw)」によって可変値であることが定義されている。
次に,図11の使用条件情報URの記述例について説明する。図11に示す使用条件情報URの記述例では,rendererドメインに関して使用条件が記述されている。
図11に示すように,rendererドメインの条件式は,「(’ivar.rend.resp’<=’gvar.sys.ucdt’)and(’gvar.sys.ucdt’<=’ivar.rend.reep’)」である。変数「’ivar.rend.resp’」および偏す「’ivar.rend.reep’」は,それぞれ,コンテンツの再生開始期限,再生終了期限を表す変数であり,(r)によって固定値(定数)であることが定義され,それらの初期値は,定義セクションにおいて,それぞれ「2003/03/01/00:00:00」,「2003/10/01/00:00:00」であると指定されている。また,変数「’gvar.sys.ucdt’」は,現在時刻を表す変数である。この使用条件情報URでは,現在時刻が,再生開始期限以降であり,かつ,再生終了期限以前であるか否かが評価される。
かかる使用条件情報URにおいて,変数「resp」および「reep」は,ドメイン指定情報「rend.」によって,rendererドメインで使用される変数であると指定され,「(r)」によって固定値であることが定義され,変数の型情報「time_t」によって,日時を表す変数であることが定義されている。
次に,図12の使用条件情報URの記述例について説明する。図12に示す使用条件情報URの記述例では,drmドメインに関して使用条件が記述されており,drmドメインにおいて,コンテンツの視聴ライセンスの有無が使用条件として評価される。
図12に示すように,rendererドメインの条件式は,「’ivar.attr.A256’ = ’ivar.com.X001’」である。変数「’ivar.com.X001’」は,このライセンスLで使用されるPreviewの値であり,この値は定義セクションで「/0000000000000001」であると指定されている。変数「’ivar.attr.A256’」は,当該ライセンスLに対応するコンテンツCのセキュリティ情報内の属性情報における属性コード(変数名)A256の値を表す。
この使用条件情報URに基づいて評価する場合,条件式判断部140は,変数「’ivar.attr.A256’」に,上記コンテンツCの属性情報内のA256の値を読み込み,変数「’ivar.com.X001’」の値と一致しているか否かを判断し,一致していれば,ライセンスLの確認を終了する。
かかる使用条件情報URにおいて,変数「X001」は,「(r)」によって固定値であることが定義され,変数の型情報「unsigned long」によって,例えば8バイトの正の整数であることが定義されている。
次に,図13の使用条件情報URの記述例について説明する。図13に示す使用条件情報URの記述例では,rendererドメインに関して使用条件が記述されており,ライセンス提供サーバ25への定期更新の有無が使用条件として評価される。
図13に示すように,rendererドメインの条件式は,「’gvar.sys.ultc’+’ivar.rend.rtci’ > ’gvar.sys.trtm’」である。この条件式で,変数「’gvar.sys.ultc’」は,最後にサーバ25にアクセスした時間を表す変数である。変数「’ivar.rend.rtci’」は,サーバ25に定期的に接続すべき時間間隔である最低アクセス期間を表す変数であり,この値は定義セクションで「1」分であると指定されている。「’gvar.sys.trtm’」は現在時刻を表す変数である。
この使用条件情報URに基づいて評価する場合,条件式判断部140は,変数「’gvar.sys.ultc’」に,当該ライセンスLと関連付けられたステータス情報Sに記憶されている,ライセンス提供サーバ25に最後に接続した日時を代入し,この値に最低アクセス期間「ivar.rend.rtci」を加え,その結果が,現在時刻「’gvar.sys.trtm’」より後であるか否かを判断し,この条件式を満たせば,コンテンツの再生を許可する。
かかる使用条件情報URにおいて,変数「rtcl」は,ドメイン指定情報「rend.」によって,rendererドメインで使用される変数であると指定され,「(r)」によって固定値であることが定義され,変数の型情報「time_t」によって,日時を表す変数であることが定義されている。
次に,図14の使用条件情報URの記述例について説明する。図14に示す使用条件情報URの記述例では,rendererドメインに関して使用条件が記述されており,ライセンス提供サーバ25に対して接続して信頼のおける時間情報(Trusted Time)の更新の有無が使用条件として評価される。
図14に示すように,rendererドメインの条件式は,「’gvar.sys.ultc’>’gvar.sys.usst’」である。この条件式で,変数「’gvar.sys.ultc’」は,最後にサーバ25にアクセスした時間を表す変数である。変数「’gvar.sys.usst」は,ライセンス評価装置10において著作権管理部130(DRMモジュール)を含むアプリケーションが起動した日時を表す変数である。
この使用条件情報URに基づいて評価する場合,条件式判断部140は,当該ライセンスLと関連付けられたステータス情報Sに記憶されている,最後にライセンス提供サーバ25にアクセスした時刻「’gvar.sys.ultc’」と,アプリケーションの起動日時「’gvar.sys.usst’」とを比較して,ライセンス提供サーバ25へのアクセスがアプリケーション起動時刻より後に行われているか否かを判断し,この条件式を満たせば,コンテンツの再生を許可する。
かかる使用条件情報URにおいて,変数「ultc」,「usst」は,定義セクションの「(rw)」によって可変値であることが定義され,変数の型情報「time_t」によって,日時を表す変数であることが定義されている。
次に,図15に基づいて,本実施形態の変更例にかかる使用条件情報URにおける変数の指定方法の記述例について説明する。なお,図15は,本実施形態の変更例にかかる使用条件情報URにおける変数の指定方法の記述例を示す説明図である。
まず,図15(a)の記述例について説明する。図15(a)に示すように,使用条件情報URには,例えば,「umcc:lcm:global(r)」と記述されている。このうち「lcm:」は,上記ドメイン指定情報であり,「umcc」がrendererドメインで使用される変数であることを指定している。また,「global」は,上記グローバル/ローカル指定情報であり,「umcc」がグローバル変数であることを定義している。さらに,「(r)」は,上記可変値か固定値かを表す情報であり,「umcc」がdrmドメインにおいて固定値であることを定義している。
また,lcmドメインの定義セクションには「umcc=0:type=CHANGE」と記述されている。このうち「umcc=0」は,上記変数の初期値を表す情報であり,lcmドメインにおける変数「umcc」の初期値が0であることを表している。また,「type=CHANGE」は,上記可変値か固定値かを表す情報であり,lcmドメインにおける変数「umcc」が可変値であることを定義している。
このような図15(a)の記述例では,同一の表記で記述される変数「umcc」が,それぞれ,drm,lcm,divideドメインにおいて定義されている。かかる場合に,変数「umcc」がいずれのドメインで有効であるかを表すドメイン指定情報(上記「umcc:lcm」等)によって,変数「umcc」のドメインを指定することにより,上記ステータス情報Sに対する変数「umcc」の更新処理時に,更新すべきドメイン領域を判別できるようになる。
次に,図15(b)の記述例について説明する。図15(b)に示すように,「umcc:INCREMENTAL COUNTER:default=0」と記述されている。このうち,「INCREMENTAL COUNTER」は,上記変数の型情報および上記可変値か固定値かを表す情報に相当し,変数「umcc」の型が,単純増加するカウンター変数であることを定義するとともに,変数「umcc」が可変値であることを定義している。また,「default=0」は,上記変数の初期値を表す情報であり,変数「umcc」の初期値が「0」であることを表している。
また,「uefu:UNCHANGED DATE:default=初回再生日時」と記述されている。このうち,「UNCHANGED DATE」は,上記変数の型情報および上記可変値か固定値かを表す情報に相当し,変数「uefu」の型が,日時情報であることを定義するとともに,変数「uefu」が固定値であることを定義している。また,「default=初回再生日時」は,上記変数の初期値を表す情報であり,変数「uefu」の初期値が,ステータス情報Sに記憶されている「初回再生日時」であることを表している。
以上,図15(a)および(b)に基づいて,使用条件情報URにおける変数の属性の指定方法(定義方法)の変更例について説明したが,本発明は,上記例に限定されず,上記のような各種の変数属性情報を,多様な記述方式で使用条件情報URに記述して,変数の属性を指定することができる。
<ライセンス評価方法>
次に,図16に基づいて,本実施形態にかかる上記ライセンス評価装置10によって上記ライセンスLを評価する方法について説明する。なお,図16は,本実施形態にかかるライセンス評価方法を示すフローチャートである。
図16に示すように,まず,ステップS102では,ライセンス評価装置10がコンテンツの使用要求を受け付ける(ステップS102)。例えば,ライセンス評価装置10のユーザは,コンテンツCの使用を所望する場合,入力部102を操作してコンテンツCの使用要求を行う。この使用要求は,例えば,GUI画面上などで所望のコンテンツCを選択し,その使用内容を指示する入力を行うことによって成される。ライセンス評価装置10は,かかるユーザからの使用要求を受け付けて,その内容を解釈する。なお,ライセンス評価装置10が,予め設定された条件に基づいて,自動的に使用要求を生成するようにしてもよい。
次いで,ステップS104では,ライセンス評価装置10のコンテンツ利用部120のコンテンツ選択部122が,上記使用要求に基づいて,ユーザ所望の使用対象のコンテンツCを選択する(ステップS104)。コンテンツ選択部122は,選択したコンテンツCを特定する情報を著作権管理部130のライセンス抽出部132およびステータス情報抽出部134に出力する。
さらに,ステップS106では,著作権管理部130のライセンス抽出部132が,上記選択されたコンテンツCに対応するライセンスLが,ライセンスデータベース114に存在するか否かを判断する(ステップS106)。具体的には,ライセンス抽出部132は,上記選択された使用対象のコンテンツCに付加されているステータスIDを読み出し,かかるステータスIDに基づいてライセンスデータベース114を検索し,当該コンテンツCに対応するライセンスL(即ち,当該ステータスIDが付加されているライセンスL)が,ライセンスデータベース114に存在するか否かを判断する。
この判断の結果,対応するライセンスLが存在しない場合には,上記使用対象のコンテンツCの使用権限がないので,ステップS118で当該コンテンツCの使用を不許可して,すべての処理を終了する。一方,対応するライセンスLが存在する場合には,ステップS108に進む。
その後,ステップS108では,ライセンス抽出部132が,上記選択された使用対象のコンテンツに対応するライセンスLを,ライセンスデータベース114から抽出する(ステップS108)。このライセンスLの抽出は,上記のようにステータスIDに基づいてなされる。
次いで,ステップS110では,ライセンスLに含まれる新規変数が設定される。(ステップS110)。具体的には,変数分析部136は,上記抽出されたライセンスLを解析して,当該ライセンスL内に,ライセンス評価装置10において未設定の新規変数が存在するか否かを判断する。この判断の結果,新規変数が存在する場合には,変数設定部138は,変数属性情報に基づいて新規変数を設定する。なお,この新規変数の設定処理の詳細については後述する。
さらに,ステップS112では,ステータス情報抽出部134が,上記使用対象のコンテンツCおよび上記抽出されたライセンスLに対応するステータス情報Sを,ステータス情報データベース116から抽出する(ステップS112)。ライセンス抽出部132は,抽出したライセンスLに使用状態に関する変数があるか否かを確認し,使用状態に関する変数がある場合,ステータス情報抽出部134に対して,使用対象のコンテンツCに付加されているステータスIDを出力し,当該コンテンツCおよび上記抽出したライセンスLに対応するステータス情報Sを抽出するように指示する。
ステータス情報抽出部134は,入力されたステータスIDに基づいて,ステータス情報データベース116を検索し,当該コンテンツCおよびライセンスLに対応するステータス情報S(即ち,当該ステータスIDが付加されているステータス情報S)のうち,ライセンスLの使用条件判断に必要な変数を,テータス情報データベース116から抽出して,条件式判断部140に出力する。
一方,ライセンスLに使用状態に関する変数がない場合には,ステータス情報Sを抽出する必要がないので,本ステップS112は省略可能である。
その後,ステップS114では,条件式判断部140が,ライセンスLを評価して,ライセンスLの使用条件を満たすか否かを判断する(ステップS114)。具体的には,条件式判断部140は,上記抽出したライセンスLの使用条件情報UR内における,上記使用要求内容に応じたドメインの条件式を解釈し,当該条件式に,上記抽出されたステータス情報Sの使用状態を表す変数を代入するなどして,上記条件式を満たしているか否かを判断する。
このステップS114判断の結果,使用条件情報URの条件式を満たさないと判断された場合には,ステップS118に進み,条件式判断部140は,使用対象のコンテンツCの使用を許可せず(ステップS116),全ての処理を終了する。なお,この場合には,不許可となった理由(エラー理由)を出力部106に出力(表示等)して,ユーザに通知するようにしてもよい。
一方,ステップS114で条件式を満たすと判断された場合には,ステップS116に進み,条件式判断部140は,使用対象のコンテンツCの使用を許可する(ステップS116)。
次いで,ステップS120では,ステータス情報更新部114は,上記抽出されたステータス情報Sを更新する(ステップS120)。具体的には,上記ステップS116での使用許可の結果,ステータス情報S内の変数を更新する必要がある場合(例えば,再生回数を1つ増加させる場合等)には,条件式判断部140は,ステータス情報更新部114に,更新対象の変数と更新内容を出力する。この際,ドメイン特定部142は,使用条件情報UR内のドメイン指定情報に基づいて,更新対象の変数のドメインを特定し,ステータス情報更新部144に通知する。
すると,ステータス情報更新部144は,上記条件式判断部140およびドメイン特定部142の指示に基づいて,上記ステップ抽出されたステータス情報S内の更新対象の変数を,コンテンツSの使用内容に応じて更新する。かかるステータス情報Sの更新は,再生時間や再生日時の変更,再生回数やチェックアウト回数のインクリメント等が考えられる。また,かかるステータス情報Sの更新時には,ステータス情報更新部114は,更新対象の変数が含まれるドメイン領域をロックした上で,当該変数の書き換えを実行する。
その後,ステップS122では,コンテンツ処理部124は,上記使用を許可されたコンテンツCの使用処理(例えば,再生,チェックアウト等)を行う(ステップS122)。なお,本ステップS122でコンテンツCの使用が全て或いは一部完了した後に,上記ステップS120におけるステータス情報Sの更新処理を行うようにしてもよい。
<条件式判断処理>
次に,図17に基づいて,上述した図16のライセンス評価方法における条件式判断処理(S114)のより詳細なフロー例について説明する。なお,図17は,図16の条件式判断処理(S114)のより詳細なフローを示すフローチャートである。
ここでは,図10に例示した使用条件情報URにおけるrendererドメインの条件式を参照して,コンテンツCの再生要求が,再生期間内であるかどうかを確認するフローについて説明する。
図17に示すように,まず,ステップS202では,条件式判断部140は,ライセンスLの使用条件情報URから条件式「’gvar.rend.uefu’+’ivar.rend.rxp1’>=’gvar.sys.ucdt’」を読み取って解釈する(ステップS202)。
次いで,ステップS204では,条件式判断部140は,再生対象のコンテンツCの再生処理が,初回であるか,即ち,初めての視聴であるか否かを判断する(ステップS204)。この判断の結果,初回であると判断された場合には,ステップS206に進み,初回でない(即ち,過去に再生したことがある)と判断された場合には,ステップS208に進む。
次いで,再生が初回であると判断された場合のステップS206では,変数設定部138は,上記ライセンスLに対応するステータス情報Sのrendererドメイン領域430に,上記再生対象のコンテンツCを最初に再生した時間を示す変数「gvar.rend.uefu」を作成し,当該コンテンツCの最初の再生日時,即ち現在時刻を書き込む(ステップS206)。
一方,再生が初回でないと判断された場合のステップS208では,変数「gvar.rend.uefu」は,ステータス情報S内に既に作成されているので,ステータス情報抽出部134は,ステータス情報Sのrendererドメイン領域430から,変数「gvar.rend.uefu」の値を読み出して条件式判断部140に出力する。この結果,条件式判断部140は,最初に再生された時間「gvar.rend.uefu」の値を取得できる(ステップS208)。
次いで,ステップS210では,条件式判断部140は,条件式における「ivar.rend.rxp1」の内部変数に,ライセンスLの使用条件情報URの定義セクションに記述されている再生可能期間の固定値を代入する(ステップS210)。
さらに,ステップS212では,条件式判断部140は,条件式における他の内部変数「gvar.sys.ucdt」に現在日時を代入する(ステップS212)。
その後,ステップS214では,条件式判断部140は,上記のようにして変数が代入された条件式を評価して,再生条件を満たすか否かを判断する(ステップS214)。即ち,現在日時が,初回再生日時に上記再生可能期間を加えて得られる日時に達しているか否かを判断する。
この判断の結果,条件式を満たすと判断した場合には,ステップS216に進み,条件式判断部140は,使用許可信号を作成し,コンテンツ処理部134に出力する(ステップS216)。この結果,コンテンツ処理部は,上記再生対象のコンテンツCを再生することができる。
一方,条件式を満たさないと判断した場合には,ステップS218に進み,条件式判断部140は,使用不許可信号を作成し,コンテンツ処理部134に出力する(ステップS218)。この結果,コンテンツ処理部は,上記再生対象のコンテンツCを再生することができない。
<変数設定処理>
次に,図18に基づいて,上述した図16のライセンス評価方法における新規変数設定処理(S110)のより詳細なフロー例について説明する。なお,図18は,図16の新規変数設定処理(S110)のより詳細なフローを示すフローチャートである。
図18に示すように,まず,ステップS302では,変数分析部136は,使用対象のコンテンツCに対応するライセンスLを解析して,当該ライセンスLの使用条件情報URを構成する1又は2以上の変数の中に,ライセンス評価装置10において初めて処理する未設定の変数(新規変数)が存在するか否かを判断する。(ステップS302)。この判断の結果,新規変数が存在しないと判断した場合には,新規変数の設定をする必要がないので,変数分析部136は,当該ライセンスLを条件式判断部140に出力して,全ての処理を終了する。
一方,新規変数が存在すると判断した場合には,変数分析部136は,変数設定部138に,新規変数が存在する旨と,当該新規変数を特定する情報とを出力し,ステップS304に進む。なお,この段階では,新規変数は,当該ライセンス評価装置10のステータス情報Sに未登録である。
次いで,ステップS304では,変数設定部138は,上記検出された新規変数に対応する変数属性情報を,ライセンスLの使用条件情報URから読み出す(ステップS304)。ライセンスLの使用条件情報URには,上記のように,条件式に加え,条件式を構成する各変数の属性を表す変数属性情報がそれぞれ記述されている。この変数属性情報は,例えば,変数の初期値,変数が可変値または固定値のいずれであるかを表す情報,変数の型情報,グローバル/ローカル指定情報,変数のドメインを指定するドメイン指定情報などである。変数設定部138は,ライセンスLの使用条件情報URを解釈して,上記各変数に対応する変数属性情報のうち,上記新規変数に対応する変数属性情報を読み出す。
さらに,ステップS306では,変数設定部138は,上記読み出した変数属性情報のうち,変数が可変値または固定値のいずれであるかを表す情報に基づいて,新規変数が可変値であるか固定値であるかを判断する(ステップS306)。例えば,図9に示したように,使用条件情報UR内に,固定値であることを表す(r)が新規変数に関連づけて記述されていれば,当該新規変数は固定値であると判断できる。一方,可変値であることを表す(rw)が新規変数に関連付けて記述されていれば,当該新規変数は可変値であると判断できる。
かかる判断の結果,新規変数が可変値であると判断された場合には,特別な処理を行うことなく,ステップS310に進む。
一方,新規変数が固定値であると判断された場合には,ステップS308に進み,当該新規変数に関してコンスタント宣言を行う。このコンスタント宣言は,新規変数をステータス情報Sに書き込む際に,当該新規変数のヘッダに,コンスタント符号を付加する指示である。このようにコンスタント符号が付加されていれば,当該変数をステータス情報Sから読み出す際に,当該変数が固定値(コンスタント)であると判断可能になる。
次いで,ステップS310では,変数設定部138は,その他の変数属性情報に基づいて上記新規変数の属性を解釈して定義する(ステップS310)。例えば,変数設定部138は,変数の型情報に基づいて,上記新規変数のデータサイズ(length),上記新規変数が正の数であるか負の数であるか,上記新規変数の取りうる値の範囲などを定義する。また,変数設定部138は,グローバル/ローカル指定情報情報に基づいて,上記新規変数がグローバル変数であるかローカル変数であるかを定義する。また,変数設定部138は,ドメイン情報情報に基づいて,上記新規変数を使用するドメインを特定することもできる。このように,新規変数を定義することにより,新規変数をステータス情報Sに書き込む際に,如何なる形式(アドレス,サイズ,符号の有無など)で新規変数を書き込むかを決定できる。
さらに,ステップS312では,変数設定部138は,上記新規変数の定義に基づいて,ライセンスLに対応するステータス情報Sの特定されたドメイン領域内に,上記新規変数を書き込むための領域を設定する(ステップS312)。
その後,ステップS314では,変数設定部138は,当該ライセンスLの使用条件情報UR内に上記新規変数の初期値が記述されているか否かを判断する。(ステップS314)。
このステップS314での判断の結果,上記新規変数の初期値が記述されていると判断された場合には,ステップS316に進み,当該ライセンスLの使用条件情報UR内に記述されている初期値を,上記新規変数の初期値に設定する(ステップS316)。
一方,ステップS314での判断の結果,上記新規変数の初期値が記述されていないと判断された場合には,ステップS318に進み,著作権管理部130が保有している初期値(DRMモジュールのプログラムに記述されている値)を,新規変数の初期値に設定する(ステップS318)。この際,著作権管理部130が上記新規変数に対応する初期値を保有していない場合には,保有している所定のデフォルト値(例えば常に0)を,新規変数の初期値に設定する。
その後,ステップS320では,変数設定部138は,上記ステップS312で設定された,ステータス情報Sの特定されたドメイン領域内に,上記設定された新規変数の初期値を書き込み,新規変数の登録を完了する(ステップS320)。
以上,本実施形態にかかるコンテンツ配信システム100におけるライセンス評価装置10と,このライセンス評価装置10におけるライセンス評価方法について詳細に説明した。本実施形態によれば,変数の初期値や型などといった変数属性情報が,ライセンスLの使用条件情報URに明示的に記述されているので,ライセンス評価装置10は,ライセンスLから抽出した上記変数属性情報に基づいて各変数を設定することができる。従って,ライセンスLの使用条件情報URに新規変数が新たに追加された場合であっても,ライセンス評価装置10は,ライセンス評価用の装置やソフトウェアの設計変更をすることなく,当該新規変数に柔軟に対応できる。
また,使用条件情報URの条件式を構成する変数を,ドメインごとに分類することにより,ドメイン間の依存性がなくなり,モジュール性を向上できる。
さらに,変数に,可変値か固定値の情報やドメイン指定情報を関連付け,ステータス情報Sをドメインごとに区分することにより,ステータス情報Sの更新時に,ロックをかける範囲(ドメイン領域)を限定し,ステータス情報S全体にロックをかける必要がない。このため,複数のドメイン(lcmモジュールとexportモジュールと)による処理を,同時並行して実行することが可能となる。
また,変数をグローバル指定することにより,複数のコンテンツCライセンスを跨って可変数を設定することが可能である。このため,ライセンスLによるコンテンツCのステータス管理のバリエーションを拡張できる。
以上,添付図面を参照しながら本発明の好適な実施形態について説明したが,本発明は係る例に限定されないことは言うまでもない。当業者であれば,特許請求の範囲に記載された範疇内において,各種の変更例または修正例に想到し得ることは明らかであり,それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば,上記ライセンスLの使用条件情報URに含まれる変数属性情報は,上記実施形態の具体例に限定されず,変数を定義するために必要な情報であれば,上記以外の如何なる情報であってもよい。
また,上記使用条件情報URにおける変数属性情報の記述方法は,上記図9〜図15で例示した記述例に限定されず,各変数と,これに対応する各変数属性情報とが関連付けられて記述されていれば,任意の記述方法であってもよい。