(57)【要約】【課題】  悪意あるコンテンツからのデータの盗み見やデータの削除を阻止する。【解決手段】  本発明の一態様としての再生装置は、マルチメディアデータとスクリプトとを含むコンテンツを読み込む読み込み手段と、前記マルチメディアデータを再生する再生手段と、前記スクリプトを解釈する解釈手段と、内部または外部の記憶装置にアクセスするアクセス手段と、前記スクリプトに前記記憶装置における特定の記憶領域へのアクセス命令記述が含まれる場合は前記コンテンツのアクセスIDを取得し、取得した前記アクセスIDに基づき前記特定の記憶領域に対するアクセスの可否を判断するアクセス可否判断手段と、を備える。【選択図】  図３
2006229597.tif 000002
【特許請求の範囲】
【請求項１】
マルチメディアデータとスクリプトとを含むコンテンツを読み込む読み込み手段と、
前記マルチメディアデータを再生する再生手段と、
前記スクリプトを解釈する解釈手段と、
内部または外部の記憶装置にアクセスするアクセス手段と、
前記スクリプトに前記記憶装置における特定の記憶領域へのアクセス命令記述が含まれる場合は前記コンテンツのアクセスIDを取得し、取得した前記アクセスIDに基づき前記特定の記憶領域に対するアクセスの可否を判断するアクセス可否判断手段と、
を備えた再生装置。
【請求項２】
前記アクセスIDは、前記コンテンツのメーカーIDまたはコンテンツIDまたはこれらの両方であることを特徴とする請求項１に記載の再生装置。
【請求項３】
アクセスIDと、記憶領域とを関連づけたデータベースをさらに備え、
前記アクセス可否判断手段は、前記アクセスIDと、前記特定の記憶領域との組み合わせが前記データベースに登録されている場合は、前記特定の記憶領域に対するアクセスを許可する、
ことを特徴とする請求項１又は２に記載の再生装置。
【請求項４】
前記アクセス可否判断手段は、前記スクリプトに前記記憶装置内の記憶領域の割り当てを要求する割り当て要求記述が含まれている場合は、前記アクセスIDと、割り当てる記憶領域とを前記データベースにおいて関連づけることを特徴とする請求項３に記載の再生装置。
【請求項５】
前記アクセスIDと、前記特定の記憶領域とからなるディレクトリ構造が前記記憶装置に存在するか否かを検査する検査手段をさらに備え、
前記アクセス可否判断手段は、前記記憶装置に前記ディレクトリ構造が存在する場合は、前記特定の記憶領域に対するアクセスを許可する、
ことを特徴とする請求項１又は２に記載の再生装置。
【請求項６】
前記アクセス可否判断手段は、前記スクリプトに前記記憶装置内の記憶領域の割り当てを要求する記述が含まれている場合は、前記アクセスIDと、割り当てる記憶領域とからなるディレクトリ構造を前記記憶装置に生成することを特徴とする請求項５に記載の再生装置。
【請求項７】
前記外部の記憶装置は、外部スロットに差し込まれた記憶装置、またはネットワーク接続された記憶装置であることを特徴とする請求項１乃至６のいずれかに記載の再生装置。
【請求項８】
前記アクセスIDは前記コンテンツ内に埋め込まれたことを特徴とする請求項１乃至７のいずれかに記載の再生装置。
【請求項９】
前記スクリプトは、XMLおよびECMAScript、またはXMLおよびJavaScriptにより記述されたことを特徴とする請求項１乃至８のいずれかに記載の再生装置。
【請求項１０】
ネットワークを介して制御対象機器と所定のプロトコルにより通信を行う通信手段と、
前記アクセス手段によって前記特定の記憶領域にデータが書き込まれた場合は、書き込まれた前記データに基づいて前記制御対象機器を制御するための制御データを生成する制御データ生成手段と、をさらに備え、
前記通信手段は、生成された前記制御データを前記制御対象機器に送信することを特徴とする請求項１乃至９のいずれかに記載の再生装置。
【請求項１１】
コンピュータに実行させることにより、前記コンピュータを、
マルチメディアデータとスクリプトとを含むコンテンツを読み込む読み込み手段、
前記マルチメディアデータを再生する再生手段、
前記スクリプトを解釈する解釈手段、
内部または外部の記憶装置にアクセスするアクセス手段、
前記スクリプトに前記記憶装置における特定の記憶領域へのアクセス命令記述が含まれる場合は前記コンテンツのアクセスIDを取得し、取得した前記アクセスIDに基づき前記特定の記憶領域に対するアクセスの可否を判断するアクセス可否判断手段、
として機能させるプログラム。
【請求項１２】
前記アクセスIDは、前記コンテンツのメーカーIDまたはコンテンツIDまたはこれらの両方であることを特徴とする請求項１１に記載のプログラム。
【請求項１３】
前記アクセス可否判断手段は、前記アクセスIDと、前記特定の記憶領域との組み合わせが所定のデータベースに登録されている場合は、前記特定の記憶領域に対するアクセスを許可する、
ことを特徴とする請求項１１又は１２に記載のプログラム。
【請求項１４】
前記アクセス可否判断手段は、前記スクリプトに前記記憶装置内の記憶領域の割り当てを要求する割り当て要求記述が含まれる場合は、前記アクセスIDと、割り当てる記憶領域とを前記データベースにおいて関連づけることを特徴とする請求項１３に記載のプログラム。
【請求項１５】
前記コンピュータに実行させることにより前記コンピュータを、
前記アクセスIDと、前記特定の記憶領域とからなるディレクトリ構造が前記記憶装置に存在するか否かを検査する検査手段としてさらに機能させ、
前記アクセス可否判断手段は、前記記憶装置に前記ディレクトリ構造が存在する場合は、前記特定の記憶領域に対するアクセスを許可する、
ことを特徴とする請求項１１又は１２に記載のプログラム。
【請求項１６】
前記アクセス可否判断手段は、前記スクリプトに前記記憶装置内の記憶領域の割り当てを要求する記述が含まれている場合は、前記アクセスIDと、割り当てる記憶領域とからなるディレクトリ構造を前記内部の記憶装置に生成することを特徴とする請求項１５に記載のプログラム。
【請求項１７】
前記アクセスIDは前記コンテンツ内に埋め込まれたことを特徴とする請求項１１乃至１６のいずれかに記載のプログラム。
【請求項１８】
前記スクリプトは、XMLおよびECMAScript、またはXMLおよびJavaScriptにより記述されたことを特徴とする請求項１１乃至１７のいずれかに記載のプログラム。
【請求項１９】
前記コンピュータに実行させることにより前記コンピュータを、
ネットワークを介して制御対象機器と所定のプロトコルにより通信を行う通信手段、
前記アクセス手段によって前記特定の記憶領域にデータが書き込まれた場合は、書き込まれた前記データに基づいて前記制御対象機器を制御するための制御データを生成する制御データ生成手段、としてさらに機能させ、
前記通信手段は、生成された前記制御データを前記制御対象機器に送信することを特徴とする請求項１１乃至１８のいずれかに記載のプログラム。
【請求項２０】
マルチメディアデータとスクリプトとを含むコンテンツを読み込み、前記コンテンツ内の前記マルチメディアデータを再生する再生装置において実行する方法であって、
前記スクリプトを解釈し、前記スクリプトに前記再生装置の内部または外部に配置された記憶装置における特定の記憶領域へのアクセス命令記述が含まれる場合は、前記コンテンツのアクセスIDを取得し、取得した前記アクセスIDに基づき、前記特定の記憶領域に対するアクセスの可否を判断することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチメディアデータを再生する再生装置、プログラムおよび方法に関する。
【背景技術】
【０００２】
従来、テレビ放送やDVDのコンテンツ再生装置において、ユーザへのコンテンツの提供は、動画や音声といったマルチメディアデータの単なる放送または再生という形で行われていた。近年、よりインタラクティブ性の高いコンテンツをユーザに提供するために、通常の再生機能のみならず、静止画や文字情報などを含むマルチメディアデータの表示位置や再生タイミングを指定する機能、ユーザからのリモコン入力などを検知しそれを画面に反映させるための機能、インターネットやホームネットワーク上のサーバ機器と通信する機能といった、マルチメディアデータの再生と連携した様々な機能を再生装置において実行する形態が実現されている。例えば近年開始されたデジタル放送や、ゲームコンテンツに対して、このような形態が既に実現されている。
【０００３】
特に映像や音声、静止画などのマルチメディアデータと連携を行うコンテンツの記述方法としては、デジタル放送でのBML(Broadcast Markup Language)や、WebコンテンツでのHTML(Hypertext Markup Language)およびSMIL(Synchronized Multimedia Integrate Language)に見られるように、コンテンツ全体をXML(eXtensible Markup Language)系の言語にて記述するとともに、XML文書中にスクリプト言語JavaScript、ECMAScriptによる処理記述を行いスクリプトからインタラクティブ用の機能をAPIとして呼び出す形をとることが多い。
【０００４】
こういったインタラクティブ性を持つコンテンツにおいては、ユーザからの操作により設定されたまたは取得したコンテンツ関連情報を、コンテンツ再生装置を介して記録媒体に保存する機能、または記録媒体からコンテンツ関連情報を読み出す機能も用いられる。例えばDVDなどの映像コンテンツにおいて、ユーザが設定した表示言語設定を再生装置中の内蔵メモリに保存したり、ゲームコンテンツにおいてゲームのハイスコアなどのセーブデータを保存したりといった使い方がなされる。
【０００５】
特許文献１では、コンピュータのオペレーティングシステム上で動作するアプリケーションプログラムが、コンピュータに接続されたデータ記憶装置に対してのデータの読み書きに際して、別途ポリシーファイルと呼ばれるデータを用意し、アクセス制御情報をそのポリシーファイルに記録し参照することで、アプリケーションごとのアクセス制御を実現する手法を提案している。
【０００６】
また特許文献２では、アプリケーションプログラムがデータ記憶装置に書き込むデータに対して、アクセス管理機構がアクセス制御情報を透過的に付与し参照することで、アプリケーションごとのアクセス制御を実現する手法を提案している。
【特許文献１】特開2001-337864公報
【特許文献２】特開2004-5084公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来におけるコンテンツからのデータの保存機構では、再生装置内蔵のメモリや、再生装置の特定のスロットに差し込まれた記憶装置など、限定された保存先に、少量の設定情報を書き込むといった使い方が主であった。例えばデジタル放送においては、データ保存先として、コンテンツ再生装置であるデジタルテレビに一つの内蔵メモリ(NVRAM：電源を切っても内容が消えない不揮発性メモリ)を必ず含めることが定められている。またデジタル放送では、仕様記述言語BML(Broadcast Markup Language)およびスクリプト言語ECMAScriptによりコンテンツ制御用の文書がコンテンツ内に記述されており、そのECMAScriptから利用可能なAPIとして、内蔵メモリに対する単純なデータ読み書き用のAPIが定義されている。
【０００８】
しかし、今後のデジタル放送におけるコンテンツの多様化に伴い、また将来の進化したDVDプレイヤーやレコーダー、SDカードにてAVコンテンツを保持可能なモバイルAV端末などにおいては、よりインタラクティブ性の高いコンテンツが登場することが予想される。このようなよりインタラクティブ性の高いコンテンツでは、SDカードやNAS(Network Attached Storage)といった、任意の記憶装置への幅広いデータの読み書き機能が求められると考えられる。例えば、以下のような使用方法が想定される。
【０００９】
・映像コンテンツ内の任意のスクリーンショットを、再生装置に接続されたSDカード中に保存する。ユーザはSDカードを別途プリンタに移して印刷を行う。
・あるコンテンツに関連した大容量の特典映像をサーバからダウンロードし、ホームネット内のNASに保存する。ユーザがそのあるコンテンツを再生すると、コンテンツがNASにアクセスして特典映像を再生し、ユーザは特典映像を視聴することができる。
【００１０】
ここで、ある正規のコンテンツが保存したデータXについて、そのデータXの読み書きに対し何ら制限がない場合、例えばユーザが悪意あるコンテンツを悪意あるコンテンツと意識せずに再生してしまった場合、悪意あるコンテンツからデータXが覗き見されてしまったり、改竄・削除されてしまったりするという問題が発生しうる。その一方で、ある正規コンテンツが保存したデータXについて、同じメーカーの別の正規コンテンツがそのデータXの存在を検出した場合、コンテンツを多く購入しているユーザに対する特典として、新たなおまけコンテンツを登場させるといったサービスも想定されうる。
【００１１】
すなわち、あるコンテンツが保存したデータXに対して、コンテンツごとまたはメーカーごとといった区分でアクセス許可・不許可を設定可能とする何らかのアクセス制限機構が存在するのが望ましい。
【００１２】
しかしながら、従来においては、デジタル放送やDVDコンテンツなどのコンテンツから、SDカードやNASといった任意の記憶装置に対して、コンテンツごとまたはメーカーごとのアクセス制限を考慮しつつデータの読み書きを行うことを可能にする手法は存在しなかった。
【００１３】
一方において、コンテンツと連携するサービスの一つとして、コンテンツからの記憶装置に対するデータの読み書きのみならず、コンテンツからネットワーク対応の家電機器、AV機器、おもちゃなどの宅内機器を制御するといったサービスの登場も考えられる。例えばEPG（電子番組表）からのHDDレコーダーへの録画予約命令の送信もその一つである。この場合も、悪意あるコンテンツの再生により、宅内機器が意図せず動作させられてしまうという危険が存在する。しかしながら、アクセス制限を考慮しつつ宅内機器の制御を行うことを可能にする手法は存在していなかった。
【００１４】
本発明は、悪意あるコンテンツからのデータの盗み見やデータの削除を阻止でき、また悪意あるコンテンツからの宅内機器の不正な制御を阻止できる再生装置、プログラムおよび方法を提供する。
【課題を解決するための手段】
【００１５】
本発明の一態様としての再生装置は、マルチメディアデータとスクリプトとを含むコンテンツを読み込む読み込み手段と、前記マルチメディアデータを再生する再生手段と、前記スクリプトを解釈する解釈手段と、内部または外部の記憶装置にアクセスするアクセス手段と、前記スクリプトに前記記憶装置における特定の記憶領域へのアクセス命令記述が含まれる場合は前記コンテンツのアクセスIDを取得し、取得した前記アクセスIDに基づき前記特定の記憶領域に対するアクセスの可否を判断するアクセス可否判断手段と、を備える。
【００１６】
本発明の一態様としてのプログラムは、コンピュータに実行させることにより、マルチメディアデータとスクリプトとを含むコンテンツを読み込む読み込み手段、前記マルチメディアデータを再生する再生手段、前記スクリプトを解釈する解釈手段、内部または外部の記憶装置にアクセスするアクセス手段、前記スクリプトに前記記憶装置における特定の記憶領域へのアクセス命令記述が含まれる場合は前記コンテンツのアクセスIDを取得し、取得した前記アクセスIDに基づき前記特定の記憶領域に対するアクセスの可否を判断するアクセス可否判断手段と、して機能させる。
【００１７】
本発明の一態様としての方法は、マルチメディアデータとスクリプトとを含むコンテンツを読み込み、前記コンテンツ内の前記マルチメディアデータを再生する再生装置において実行する方法であって、前記スクリプトを解釈し、前記スクリプトに前記再生装置の内部または外部に配置された記憶装置における特定の記憶領域へのアクセス命令記述が含まれる場合は、前記コンテンツのアクセスIDを取得し、取得した前記アクセスIDに基づき、前記特定の記憶領域に対するアクセスの可否を判断することを特徴とする。
【発明の効果】
【００１８】
本発明により、悪意あるコンテンツからのデータの盗み見やデータの削除を阻止でき、また悪意あるコンテンツからの宅内機器の不正な制御を阻止できる。
【発明を実施するための最良の形態】
【００１９】
以下、図を参照しながら、本発明の実施形態について詳細に説明する。
【００２０】
（第１の実施形態）
図１は、本実施形態に従ったコンテンツ再生装置を備えたコンテンツ再生システムの構成例を概略的に示すブロック図である。
【００２１】
コンテンツを格納した媒体であるDVDメディア１００、DVDメディア１００内のコンテンツを読み取り、マルチメディアデータの再生やスクリプトの解釈・実行などを行うDVDプレイヤー（コンテンツ再生装置）１０１、およびDVDプレイヤー１０１に接続されDVDメディア１００内のマルチメディアデータを表示するテレビ１０２が示される。また、データの読み書きの対象となる記憶装置として、DVDプレイヤー１０１に内臓の内蔵HDD１０３、SDスロットに挿入されたSDカード１０４、USB接続された外付けHDD１０５、およびイーサネット（EthernetTM）や無線LANを通してLAN接続されたNAS(Network Attached Storage)１０６が示される。記憶装置１０４〜１０６はDVDプレイヤー１０１と接続されており、DVDプレイヤー１０１との間でデータの受け渡しが可能である。
【００２２】
図２は、DVDメディア１００内のコンテンツのデータ構造を示す図である。
【００２３】
DVDメディア１００はコンテンツ２００を格納する。コンテンツ２００は、動画、音声、静止画やテキストといったマルチメディアデータ２０１を含む。また、コンテンツ２００は、マルチメディアデータ２０１の表示位置や表示タイミングを指定する記述、および記憶装置へのデータ読み書き命令等、任意の処理手順の記述からなるスクリプト２０２を含む。本実施形態ではスクリプト２０２は、現在のデジタル放送などで採用されている、XMLおよびECMAScriptにより記述されているものとする。
【００２４】
また、DVDメディア１００は、スクリプト２０２から参照可能なアクセスID、具体的にはメーカーID２０３とコンテンツID２０４とを保持している。メーカーID２０３はメーカー（コンテンツプロバイダ）ごとに異なり、コンテンツID２０４はコンテンツごとに異なるとし、それぞれ他のメーカーIDおよび他のコンテンツIDと衝突しない十分な長さを持つ文字列であるとする。なお、本実施形態では、説明の簡単のため、「メーカーIDは異なるがコンテンツIDは同じ」といったコンテンツはないものとする。
【００２５】
メーカーID２０３およびコンテンツID２０４は、第三者からは容易に覗き見や推測ができないものとする。スクリプト２０２が、メーカーID２０３およびコンテンツID２０４を取得するためには、例えばDVDプレイヤー１０１がDVDメディア１００内の特定領域に格納されたrawデータ（生データ）を読み込み、読み込みにより得た結果をスクリプト２０２に返す。または、読み込んだrawデータをもとに特定のサーバ装置と通信することにより、または何らかの計算式を通すことにより、メーカーIDおよびコンテンツIDを得る。または、メーカーIDおよびコンテンツIDをスクリプト２０２内に固定の文字列として埋め込む。本実施形態では、スクリプト２０２内に、メーカーID２０３とコンテンツID２０４とが、
var makerID=”594f803b380a41396ed63dca39503542”;
var contentsID=”74b87337454200d4d33f80c4663dc5e5”;
の形で直接埋め込まれているとする。この場合、スクリプト２０２自体が第三者から簡単に覗き見されないよう、何らかの暗号化が施されているとし、DVDプレイヤー１０１のみが、この暗号を復号可能であるとする。
【００２６】
図２では１つのDVDメディア１００内に１つのコンテンツ２００が含まれている例を示しているが、１つのDVDメディア１００に複数のコンテンツが含まれていてもよい。この場合、メーカーID２０３およびコンテンツID２０４はコンテンツごとに保持される。
【００２７】
図３は、図１に示すDVDプレイヤー１０１の内部構成例を概略的に示すブロック図である。
【００２８】
DVDメディア１００内のコンテンツ２００を読み込むコンテンツ読み込み部３００、コンテンツ２００内のマルチメディアデータ２０１を再生しテレビ１０２に出力するマルチメディアデータ出力部３０１、およびコンテンツ２００内のスクリプト２０２を解釈しその記述に従い処理を実行するスクリプト実行部３０２が示される。またスクリプト実行部３０２と連携して各記憶装置に対する操作を行う機能部として、記憶装置先収集部３０３、記憶装置情報取得部３０４、アクセス権管理部３０５、データ読み書き部３０６および対応情報格納装置３０７が示される。
【００２９】
コンテンツ読み込み部３００は、DVDメディア１００内のコンテンツ２００を読み込み、コンテンツ２００に含まれるマルチメディアデータ２０１をマルチメディアデータ出力部３０１に、スクリプト２０２をスクリプト実行部３０２にそれぞれ渡す機能を有する。すなわち、コンテンツ読み込み部３００は、コンテンツ２００からマルチメディアデータ２０１とスクリプト２０２とを分離するデータ分離機能を有する。また、コンテンツ読み込み部３００は、コンテンツ２００全体が暗号化されている場合は、コンテンツ２００全体を復号化する。すなわち、コンテンツ読み込み部３００は、復号機能を有する。これらデータ分離機能および復号機能は、既知の技術であるため、ここでは細説しない。
【００３０】
マルチメディアデータ出力部３０１は、コンテンツ読み込み部３００から受け取ったマルチメディアデータ２０１を再生してテレビ１０２に表示する。また、マルチメディアデータ出力部３０１は、スクリプト実行部３０２から受け取る指示に従ってマルチメディアデータの表示位置や表示タイミングの調整も行う。マルチメディアデータ出力部３０１は、映像データや音声データのデコード機能など、マルチメディアデータの再生に当たって必要な他の機能も含む。
【００３１】
スクリプト実行部３０２は、コンテンツ読み込み部３００から受け取ったスクリプト２０２を解釈および実行する。本実施形態ではスクリプト２０２としてXMLおよびECMAScriptによる記述を想定している。スクリプト実行部３０２は、XMLの記述内容に基づき、マルチメディアデータ２０１の表示位置や表示タイミングの指示をマルチメディアデータ出力部３０１に対して行う。また、スクリプト実行部３０２は、ECMAScriptの記述内容に基づき、割り込み制御やタイマー制御などを行う。これらXMLおよびECMAScriptにて処理される基本機能については既知の事項であるためここでは細説は省略する。
【００３２】
記憶装置先収集部３０３、記憶装置情報取得部３０４、アクセス権管理部３０５、データ読み書き部３０６および対応情報格納装置３０７の詳細は後に説明する。なお、データ読み書き部３０６は、内蔵HDD１０３用のデータ読み書き部、SDカード１０４用のデータ読み書き部、といったように、各記憶装置用のデータ書き込み部の集合を表してもよいし、単一の機能部として各記憶装置１０３〜１０６に対するデータ読み書き機能を全て行ってもよい。
【００３３】
以下、コンテンツから記憶装置へのデータの読み書き例として、DVDメディア１００内のコンテンツ２００が、DVDプレイヤー１０１による再生中、ユーザからのリモコン操作により、映像の任意の場面のスクリーンショットを画像データとしてSDカード１０４に保存する例を示す。また画像データを保存したコンテンツと同じコンテンツからはその画像データの読み込みが可能である例、異なるコンテンツからはその保存されている画像データを読み込むことが不可能である例を示す。
【００３４】
まずスクリプト２０２として記述される処理フローの例を図４および図５を用いて説明し、この後、スクリプト２０２として記述される処理が実際にどのようにDVDプレイヤー１０１によって実現されるのかを図６、図７および図８を用いて説明する。
【００３５】
図４は、スクリプト２０２によるデータ保存処理のフローを説明するフローチャートである。より詳細には、図４は、DVDメディア１００内のコンテンツ２００が、DVDプレイヤー１０１による再生中、ユーザからのリモコン操作により、映像の任意の場面のスクリーンショットを画像データとしてSDカード１０４に保存する場合の、スクリプト２０２の処理フローを示す。
【００３６】
スクリプト２０２は前提として、XMLによる「スクリーンショットをSDカードに保存しますか  はい/いいえ」といったテキスト表示のための記述、またユーザのリモコン操作により「はい」が選ばれたらECMAScriptによる一連の処理を開始するといったイベント検出の記述を含む。
【００３７】
SDカード１０４へのデータ保存処理のフローとして、まず、DVDプレイヤー１０１にSDカード１０４が接続されているかどうかを調べる（４００）。接続されていない場合はその旨をテレビ１０２に表示して終了する（４１０）。
【００３８】
接続されている場合、ここでは保存しようとするスクリーンショットのバイトサイズが１００KBであるとし、SDカード１０４に１００KB以上の空き容量があるかどうかを調べる（４０１）。容量が不足している場合はその旨をテレビ１０２に表示して終了する（４１１）。
【００３９】
次に、スクリプト２０２がこのコンテンツ２００のメーカーID２０３およびコンテンツID２０４を取得する（４０２）。
【００４０】
これは先に示したように、スクリプト中に
var makerID=”594f803b380a41396ed63dca39503542”;
var contentsID=”74b87337454200d4d33f80c4663dc5e5”;
と直接記述されている文字列を用いる。なお以降の説明および図中では、これら文字列を簡単のためメーカーID=X、コンテンツID=Aとして表記する。
【００４１】
これらのメーカーID=XおよびコンテンツID=Aを引数に、SDカード１０４上に１００KBのファイル（データ保存領域）αを作成する（４０３）。
【００４２】
ファイルαが生成されたら、ファイルαに対して実際にスクリーンショットのデータの書き込みを行う（４０４）。すなわち、このスクリプト２０２をスクリプト実行部３０２が実行することにより、SDカード１０４上に、メーカーID=XおよびコンテンツID=Aによるファイルαが生成される。メーカーID=X、コンテンツID=Aおよびファイルαの対応関係をスクリプト実行部３０２がどのように管理するかについては、後において図７および図８によって説明する。
【００４３】
図５は、スクリプト２０２によるデータ読み込み処理のフローを説明するフローチャートである。より詳細には、図５は、DVDメディア１００内のコンテンツ２００が、DVDプレイヤー１０１による再生中、ユーザからのリモコン操作により、SDカード１０４からスクリーンショットの画像データを読み込み、テレビ１０２に表示する場合の、スクリプト２０２の処理フローを示す。
【００４４】
スクリプト２０２は前提として、XMLによる「SDカードに保存されているスクリーンショットを表示しますか  はい/いいえ」といったテキスト表示のための記述、またユーザのリモコン操作により「はい」が選ばれたらECMAScriptによる一連の処理を開始するといったイベント検出の記述を含む。
【００４５】
SDカード１０４からのデータ読み出し処理のフローとして、まず、DVDプレイヤー１０１にSDカード１０４が接続されているかどうかを調べる（５００）。接続されていない場合はその旨をテレビ１０２に表示して終了する（５１０）。
【００４６】
接続されている場合、スクリプト２０２がこのコンテンツ２００のメーカーID２０３およびコンテンツID２０４を取得する（５０１）。これは先に示したように、スクリプト内に記述されている文字列を用いる。このメーカーIDおよびコンテンツIDを引数に、SDカード１０４上のファイルαにアクセスする（５０２）。
【００４７】
本実施形態においては、ここでもしメーカーIDおよびコンテンツIDの値が、図４と同じ
var makerID=”594f803b380a41396ed63dca39503542”;
var contentsID=”74b87337454200d4d33f80c4663dc5e5”;
すなわちメーカーID=XおよびコンテンツID=Aであった場合、図５でのスクリプト２０２は、保存されていたファイルαのデータ読み書きが可能であると判断し、スクリーンショットのデータをSDカード１０４から読み取り、テレビ１０２の画面に表示するなどの処理を行う（５０３）。
【００４８】
もしメーカーIDおよびコンテンツIDの少なくともいずれか一方が異なっていた場合、読み書き不可能という結果がスクリプト２０２に対して返され、スクリプト２０２は、アクセス不可能の旨を示す画像をテレビ１０２に表示する（５１１）。
【００４９】
以上において、SDカード１０４のファイルαに対するアクセス可否は、スクリプト実行部３０２がアクセス権管理部３０５とやりとりを行うことによって判定され、スクリプト２０２に結果が返される。これについては、後において図７および図８によって説明する。
【００５０】
以上の図４および図５における説明では、あるコンテンツがメーカーID=XおよびコンテンツID=Aを引数にファイルαを作成した場合、同じメーカーID=XおよびコンテンツID=Aを知り得るコンテンツのみ、そのファイルαの読み書きができる例を示した。さらに本実施形態においては、ファイル生成時の引数の与え方に応じて、コンテンツに次のような制限を与えることも可能である。
【表１】
2006229597.tif 000003
【００５１】
このようにメーカーIDおよびコンテンツID単位での制限により、あるコンテンツが保存したデータに対して、悪意あるコンテンツの再生によって覗き見や改竄、削除が行われてしまうことを防ぐことができる。またメーカーID単位での制限により、例えばあるコンテンツAを過去に見たことがあるユーザが、同じメーカーの別のコンテンツBを見た場合に、コンテンツB内のスクリプトが、コンテンツAが過去に保存したデータが記憶装置内に存在しているかどうかを調べ、存在していた場合、コンテンツBからおまけコンテンツをユーザに提供するといった、メーカー単位でのサービスの提供が可能となる。
【００５２】
図６は、図４および図５のスクリプト２０２がスクリプト実行部３０２において実行される際の、記憶装置先収集部３０３、記憶装置情報取得部３０４、アクセス権管理部３０５およびデータ読み書き部３０６間の関係を示している。以下図４および図５の各手順において、これら各機能部がどのように働くかを述べる。
【００５３】
（１）手順４００、５００で示した記憶装置の検索の記述をスクリプト実行部３０２が解釈すると（７００）、DVDプレイヤー１０１に現在記憶装置が接続されているかどうかを記憶装置先収集部３０３が検出する（７０１、７０２）。
【００５４】
記憶装置先収集部３０３は、内蔵HDD１０３やSDカード１０４、USB接続外付けHDD１０５、LAN接続されたNAS１０６といった、記憶装置が接続され得る形態に応じ、それぞれに合わせた手段（通信プロトコル）にて機器検出を行う。
【００５５】
例えば内蔵HDDやSDカードの場合はDVDプレイヤー１０１の特定スロットにこれらが物理的に挿入されているか否かにより検出を行い、NASの場合はLAN上でSMB（Server Message Block）といったプロトコルにて通信を行うことで検出を行う。
【００５６】
得られた結果は、スクリプト実行部３０２を介し（７０３）、インスタンス（オブジェクト）の配列としてスクリプト２０２に対して提供される。インスタンス１つが１つの記憶装置を表す。
【００５７】
どのインスタンスが、どの記憶装置にマッピングされるかの対応情報は、対応情報格納装置３０７に保持される。以降、記憶装置情報取得部３０４、アクセス権管理部３０５およびデータ読み書き部３０６からインスタンスに対する操作が行われるたびに、この対応情報格納装置３０７の内容が参照される。
【００５８】
（２）手順４０１で示したSDカード１０４の残り容量の取得といった、機器情報の取得を行う処理は、スクリプト２０２内では、インスタンスに対するメソッドとして記述される。
【００５９】
この記述をスクリプト実行部３０２が解釈すると（７１０）、記憶装置情報取得部３０４が、そのインスタンスにマッピングされた記憶装置から、情報の取得を行う（７１１、７１２）。
【００６０】
得られた結果は、スクリプト実行部３０２を介して（７１３）、メソッドの戻り値としてスクリプト２０２に返される。
【００６１】
（３）手順５０２で示したSDカード１０４上のファイルαの読み込みといった、ファイルへのアクセスを行う処理も、スクリプト２０２内では、インスタンスに対するメソッドとして記述される。
【００６２】
この記述をスクリプト実行部３０２が解釈すると（７２０）、まずアクセス権管理部３０５が、そのインスタンスにマッピングされた記憶装置内のファイルに対して、このコンテンツからのアクセスが許可されているかどうかを判定する。この判定の方法は後において図７および図８によって説明する。判定の際、必要ならば記憶装置との間で情報のやりとりを行ってもよい（７２１、７２２）。
【００６３】
判定の結果、このコンテンツからの指定ファイルへのアクセスが禁止されていれば、禁止の旨をメソッドの戻り値としてスクリプト２０２に返す。
【００６４】
一方、アクセスが許可されていたならば、アクセス権管理部３０５からデータ読み書き部３０６に処理が移り（７３０）、インスタンスにマッピングされた記憶装置に対して実際のデータの読み書きを行う（７３１、７３２）。
【００６５】
読み取ったデータの値や書き込みが成功した旨といった結果が、スクリプト実行部３０２を介して（７３３）、メソッドの戻り値としてスクリプト２０２に返される。
【００６６】
図７および図８は、アクセス権管理部３０５によるアクセス可否の判定方法の一例を説明する図である。より詳細には、図７はアクセス権管理部３０５のみによりアクセス可否を判定する方法、図８はアクセス権管理部３０５が記憶装置と連携してアクセス可否を判定する方法を示す。
【００６７】
スクリプト２０２の記述にてファイルにアクセスする際、記憶装置を表すインスタンス、ファイル名、メーカーIDおよびコンテンツIDが引数としてスクリプト２０２に指定される。スクリプト実行部３０２がスクリプト２０２を解釈すると、これらインスタンス、ファイル名、メーカーIDおよびコンテンツIDの情報をアクセス権管理部３０５に渡す。アクセス権管理部３０５では、まず対応情報格納装置３０７に保持されたデータを参照し、スクリプト実行部３０２から渡されたインスタンス情報が、どの記憶装置にマッピングされているのかを調べる。図７および図８ではSDカード１０４にマッピングされている例が示される。
【００６８】
図７の例では、アクセス権管理部３０５は、スクリプト実行部３０２からの指示により、記憶装置にファイルを生成した際に、ファイルの保存先記憶装置、ファイル名、メーカーIDおよびコンテンツIDの対応情報を、アクセス権管理情報８００として保持する。図７のアクセス権管理情報８００には、SDカード１０４上にファイル名α、メーカーID=XおよびコンテンツID=Aのファイルが生成されたことを示すエントリ等が含まれる。アクセス可否の判定は、このアクセス権管理情報８００のエントリを参照し、エントリが存在した場合のみ、次のデータ読み書き部３０６に処理を移すとすることで実現される。
【００６９】
図８の例では、アクセス権管理情報８００を、アクセス権管理部３０５に保持するのではなく、記憶装置先のディレクトリ構造として表現する方法が示される。
【００７０】
（１）例えばSDカード１０４上に、ファイル名=α、メーカーID=XおよびコンテンツID=Aのファイルを生成することが指定された場合、SDカード１０４上には、
/makerID_X/contentsID_A/file_α
といったパス名によるファイルが生成される。
【００７１】
（２）ファイル名=αおよびメーカーID=Xのみが指定された場合は、
/makerID_X/file_α
といったパス名によるファイルが生成される。
【００７２】
（３）ファイル名=αのみが指定された場合は、
/file_α
といったパス名によるファイルが生成される。
【００７３】
アクセス可否の判定は、
（１）/makerID_X/contentsID_A直下のファイルはメーカーID=XおよびコンテンツID=Aのみがアクセス可能
（２）/makerID_X直下のファイルはメーカーID=Xのコンテンツならばアクセス可能
（３）/直下のファイルは全てのコンテンツからアクセス可能
とみなすことで実現する。
【００７４】
図７の方法では、記憶装置にアクセスせずにアクセス可否を判定できるため高速な判定が可能であるが、アクセス権管理部３０５に各記憶装置個数に比例したアクセス権管理情報８００を保存する領域が必要となる。
【００７５】
図８の方法では、アクセス可否判定のために記憶装置にアクセスする必要があるが、アクセス権管理部３０５に大きな保存領域を用意する必要がない。また、ディレクトリ構造がそのままアクセス制限内容に対応しているため、あるメーカーIDおよびコンテンツID=Aが保存したデータ全て（/makerID_X/contentsID_A/）を一括して移動させるといったことが容易に実現できる。
【００７６】
なお、図８の方法において、SDカード１０４上に、例えば
/makerID_X/contentsID_A/file_α
と単にメーカーID=XおよびコンテンツID=Aをそのままディレクトリの一部として使用してしまうと、SDカード１０４を別途PCなどにて読み込んだ場合に、メーカーIDおよびコンテンツIDの値が露見してしまうため、例えば、XやAのMD5による一方向ハッシュ値などをディレクトリ名として使うなどといった方法を用いてもよい。
【００７７】
ここで、スクリプト２０２としてXMLおよびECMAScriptを想定する場合に、図４および図５に示した処理手順を、ECMAScriptによって実際に記述する例を以下に示す。
【００７８】
まず、ECMAScriptから利用可能なAPIとして、次のオブジェクトおよびメソッドを定義する。
【表２】
2006229597.tif 000004
2006229597.tif 000005
【００７９】
図４のスクリプト２０２を、これらメソッドを用いてECMAScriptとして記述した例を以下に示す。
【表３】
2006229597.tif 000006
【００８０】
図５のスクリプト２０２を、これらメソッドを用いてECMAScriptとして記述した例を以下に示す。
【表４】
2006229597.tif 000007
【００８１】
PStorage.REMOVABLEとして識別される記憶装置が複数あった場合、この記述例では単にdevices[0]で表される記憶装置を使うとしているが、例えばgetFreeSpace()にて空き容量を調べ十分な空き容量を持つ記憶装置を自動選択する、getName()にて記憶装置の名前を調べ特定の名前を持つ記憶装置を自動選択する、ユーザに画面を提示して選択させる、といった処理を記述することも可能である。
【００８２】
以上に説明した本実施形態では、コンテンツをDVDから読み込んだが、デジタルテレビ放送によって供給されるコンテンツを受信し、受信したコンテンツを読み込んでもよい。
【００８３】
以上のように、本実施形態によれば、コンテンツIDまたはメーカーIDまたはこれらの組み合わせによって、記憶装置内のファイルに対する読み書きに制限をかけるようにしたため、このコンテンツIDまたはメーカーIDまたはこれらの組み合わせを知らないコンテンツからこのファイルに対して読み書きされることを排除できる。すなわち、このコンテンツIDまたはメーカーIDまたはこれらの組み合わせを知らない悪意あるコンテンツからこのファイルのデータが盗み見されたり削除されたりすることを排除できる。
【００８４】
（第２の実施形態）
第１の実施形態では、コンテンツから各記憶装置におけるデータの読み書きに対してアクセス制限機能を導入することで、悪意あるコンテンツからのデータの覗き見といった行為を防ぐことが可能である例を示した。第２の実施形態では、第１の実施形態の応用として、ネットワーク制御可能な家電機器やAV機器、おもちゃを、コンテンツと連動して制御する例を示す。
【００８５】
図９は、本実施形態に従ったコンテンツ再生装置を備えた機器制御システムの構成例を概略的に示すブロック図である。
【００８６】
図９では、図１で示した構成に対して、エアコン（家電機器）１００１、ビデオカメラ（AV機器）１００２およびラジコンカー（おもちゃ）１００３が追加されている。
【００８７】
ラジコン１００１、ビデオカメラ１００２およびラジコンカー１００３は、ネットワーク制御が可能な制御対象機器である。これらの制御対象機器１００１〜１００３は、DVDプレイヤー１０１とUSB接続、またはEthernetや無線LANを通してLAN接続されている。
【００８８】
エアコン１００１やビデオカメラ１００２はECHONETTMやUPnPTMといった制御プロトコルにて制御される。
【００８９】
ラジコンカー１００３は通常の記憶装置と全く同じファイルシステムを持つ内部記憶部（図示せず）を有し、且つ、status.txt、control.txtという削除不可能な特定のファイルを内部記憶部に保持している。ラジコンカー１００３は”forward”(前進)、”backward”(後退)、”stop”(停止)、という３つの状態を有する。status.txtには、現在のラジコンカー１００３の状態を表すこれら文字列”forward”,”backward”,”stop”のうちのいずれかが、ラジコンカー１００３の機能によりリアルタイムに保存されている。また、ラジコンカー１００３は、外部入力等に基づきcontrol.txtに文字列”forward”,”backward”,”stop”のいずれかを書き込む。ラジコンカー１００３は、control.txtの内容を監視しており、control.txtの内容に応じた動作を行う機能を有する。
【００９０】
以下では、まず、コンテンツからラジコンカー１００３を制御する手法を詳細に説明する。ラジコンカー１００３の制御において、コンテンツのスクリプトからは、ラジコンカー１００３も記憶装置の一つとみなして扱われる。すなわちスクリプトからは、あくまで記憶装置に対するファイルの読み書きとしてラジコンカー１００３の制御が行われる。
【００９１】
図１０は、スクリプト２０２からラジコンカー１００３を制御する場合の処理フローを示す図である。
【００９２】
ラジコンカー１００３が接続されているか否かの検出処理（１１００）、接続されていない場合の処理（１１１０）、接続されている場合におけるメーカーIDおよびコンテンツIDの取得処理（１１０１）は、図５の手順５００、５１０、５０１と同様であるため、ここでは詳細な説明を省略する。
【００９３】
本実施形態においては、上述したように、ラジコンカー１００３は、通常の記憶装置と同じファイルシステムを持つ内部記憶部を有し、さらに、ラジコンカー１００３の状態を格納するファイルstatus.txtとラジコンカー１００３を制御するための情報を格納するファイルcontrol.txtとを上記内部記憶部に保持する。より詳細には、これらのファイルは、
・/makerID_X/contentsID_A/status.txt
・/makerID_X/contentsID_A/control.txt
といったディレクトリ構成で、内部記憶部に保存されている（１１２０）。
【００９４】
よって、これらのファイルstatus.txt、control.txtへは、メーカーID=XおよびコンテンツID=Aを持つコンテンツのみがアクセス可能である（１１０２）。
【００９５】
メーカーID=XおよびコンテンツID=Aを持つコンテンツは、ファイルstatus.txtからデータを読み込むことで、現在のラジコンカー１００３の状態（”forward”,”backward”or”stop”）を取得することができる（１１０３）。同様に、メーカーID=XおよびコンテンツID=Aを持つコンテンツは、ファイルcontrol.txtにデータ（”forward”,”backward”or”stop”）を書き込むことで、ラジコンカー１００３を動作させることができる。
【００９６】
すなわち第２の実施形態では、第１の実施形態におけるアクセス制限機構と同じ機構によって、メーカーID=XおよびコンテンツID=Aを持つコンテンツのみがラジコンカー１００３を制御可能である。すなわち不正なコンテンツの再生により、宅内のラジコンカー１００３が勝手に動作させられてしまうことを防ぐことができる。
【００９７】
上記では、通常の記憶装置と同じファイルシステムを実装したラジコンカー１００３を制御する例を示した。次に、ECHONETTMやUPnPTM対応のネットワーク機器であるエアコン１００１やビデオカメラ１００２をスクリプト２０２から制御する例を示す。
【００９８】
例えばECHONET対応のエアコン１００１の場合、記憶装置先収集部３０３による機器検出時、ECHONETによる機器検出も行い、対応情報格納装置３０７にて、スクリプト２０２に提示したインスタンスにマッピングされたエアコン１００１のECHONETアドレス(ECHONET機器を一意に特定するアドレス)を保持しておく。
【００９９】
データ読み書き部３０６はスクリプト２０２に対しあたかもファイルcontrol.txtが存在するかのように見える仮想ファイルを提示する。この仮想ファイルは例えばデータ読み書き部３０６の内部記憶部（図示せず）に保持されている。ただし、前提として、第１の実施形態と同様のアクセス制限機構により、ファイルcontrol.txtに対するアクセスが許可されているとする。スクリプト２０２は、仮想ファイル（仮想control.txt）に対して次のようなデータを書き込む。
【表５】
2006229597.tif 000008
【０１００】
ECHONETでは、上述のECHONETアドレス、およびこれらeoj（ECHONETオブジェクトコード）、epc（ECHONETプロパティコード）、data（プロパティに与えるデータ）の情報があれば、ECHONETパケットの組み立ておよび送信先の特定が可能である。
【０１０１】
スクリプト２０２内に記述されスクリプト実行部３０２によって実行される仮想control.txtへの書き込み処理を、データ読み書き部３０６はECHONETパケットの送信処理と解釈する。データ読み書き部３０６は、仮想control.txtに書き込まれたデータに基づいて、エアコン１００１を制御するためのECHONETパケットを生成し、エアコン１００１に送信する。これによりエアコン１００１の制御が実現できる。
【０１０２】
以上ではエアコン１００１を制御する例を説明したが、ビデオカメラ１００２のスクリプト２０２からの制御も、プロトコルが異なる他は、エアコン１００１の場合と同様にして実現できる。
【０１０３】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１０４】
【図１】本実施形態に従ったコンテンツ再生装置を備えたコンテンツ再生システムの構成例を概略的に示すブロック図である。
【図２】DVDメディア内のコンテンツのデータ構造を示す図である。
【図３】DVDプレイヤーの内部構成例を概略的に示すブロック図である。
【図４】スクリプトによるデータ保存処理のフローを説明するフローチャートである。
【図５】スクリプトによるデータ読み込み処理のフローを説明するフローチャートである。
【図６】スクリプトがスクリプト実行部において実行される際の各機能部間の関係を説明する図である。
【図７】アクセス権管理部によるアクセス可否の判定方法の一例を説明する図である。
【図８】アクセス権管理部によるアクセス可否の判定方法の一例を説明する図である。
【図９】本実施形態に従ったコンテンツ再生装置を備えた機器制御システムの構成例を概略的に示すブロック図である。
【図１０】スクリプトからラジコンカーを制御する場合の処理フローを示す図である。
【符号の説明】
【０１０５】
１００  DVDメディア
１０１  DVDプレイヤー（再生装置）
１０２  テレビ
１０３  内蔵HDD（内部の記憶装置）
１０４  SDカード（外部の記憶装置）
１０５  外付けHDD（外部の記憶装置）
１０６  NAS（外部の記憶装置）
２００  コンテンツ
２０１  マルチメディアデータ
２０２  スクリプト
３００  コンテンツ読み込み部
３０１  マルチメディアデータ出力部（再生手段）
３０２  スクリプト実行部（解釈手段）
３０３  記憶装置先収集部
３０４  記憶装置情報取得部
３０５  アクセス権管理部（アクセス可否判定手段）
３０６  データ読み書き部（アクセス手段）
３０７  対応情報格納装置
８００  アクセス権管理情報（データベース）
１００１  エアコン（制御対象機器）
１００２  ビデオカメラ（制御対象機器）
１００３  ラジコンカー（制御対象機器）
【図１】
2006229597.tif 000009
【図２】
2006229597.tif 000010
【図３】
2006229597.tif 000011
【図４】
2006229597.tif 000012
【図５】
2006229597.tif 000013
【図６】
2006229597.tif 000014
【図７】
2006229597.tif 000015
【図８】
2006229597.tif 000016
【図９】
2006229597.tif 000017
【図１０】
2006229597.tif 000018