(57)【要約】【課題】コンテンツに含まれるコードに関する詳細な知識がなくても、再生時に近い状態でしかも簡易な操作でデバッグを行えるようにしたデバッグ装置およびデバッグ方法を提供する。【解決手段】デバッグ装置は、コンテンツが再生されているときにイベントを発行するイベント発行手段と、発行されたイベントにしたがった処理を実行し、その実行記録を示すイベントログを出力する１または２以上のイベント処理手段と、イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるイベント処理制御手段と、イベント処理制御手段に対し、イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるための指示を入力する指示入力手段と、イベント処理手段が出力するイベントログを表示させるイベントログ表示制御手段とを有する。【選択図】図１
2009009406.tif 000002
【特許請求の範囲】
【請求項１】
インタラクティブ機能を実現するためのプログラムを含むコンテンツの再生装置を用いて実現されるデバッグ装置であって、
前記再生装置によって前記コンテンツが再生されているときにイベントを発行するイベント発行手段と、
該イベント発行手段によって発行された前記イベントにしたがった処理を実行し、その実行記録を示すイベントログを出力する１または２以上のイベント処理手段と、
前記イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるイベント処理制御手段と、
該イベント処理制御手段に対し、前記イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるための指示を入力する指示入力手段と、
前記イベント処理手段が出力する前記イベントログを表示させるイベントログ表示制御手段とを有するデバッグ装置。
【請求項２】
前記イベント処理手段が出力する前記イベントログを記憶するイベントログ記憶手段と、
前記イベントログを前記イベントログ記憶手段に出力して記憶させるイベントログ記憶制御手段とを更に有し、
前記イベントログ表示制御手段は、前記イベントログ記憶手段から前記イベントログを読み出して表示させる請求項１記載のデバッグ装置。
【請求項３】
前記イベント処理手段は、前記イベントログを出力した後、実行中断状態に移行することなく終了する請求項１または２記載のデバッグ装置。
【請求項４】
前記イベント処理手段は、前記イベントログとして前記イベントの発行時刻を含む時刻付きログを出力する請求項１〜３のいずれか一項記載のデバッグ装置。
【請求項５】
前記イベントログ表示制御手段は、前記時刻付きログに含まれる前記イベントの発行時刻が明示されるようにして前記イベントログを表示させる請求項４記載のデバッグ装置。
【請求項６】
前記イベントログ表示制御手段は、前記時刻付きログに含まれる前記イベントの発行時刻、前記イベント処理手段における実行時間のいずれか一方または両方を表すイベントバーを時間軸上に表示させる請求項４記載のデバッグ装置。
【請求項７】
前記イベントログ表示制御手段は、前記時刻付きログに含まれる前記イベントの発行時刻順に前記イベントログの属性を並べた表形式で前記イベントログを表示させる請求項４記載のデバッグ装置。
【請求項８】
インタラクティブ機能を実現するためのプログラムを含むコンテンツの再生装置に適用されるデバッグ方法であって、
前記再生装置によって前記コンテンツが再生されているときにイベントを発行するイベント発行手段と、該イベント発行手段によって発行された前記イベントにしたがった処理を実行し、その実行記録を示すイベントログを出力する１または２以上のイベント処理手段とを設け、
前記イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるための指示を入力し、
その入力される前記指示にしたがい前記イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替え、
前記イベント処理手段が出力する前記イベントログを表示させるデバッグ方法。
【請求項９】
前記イベントログとして前記イベントの発行時刻を含む時刻付きログを前記イベント処理手段によって出力する請求項８記載のデバッグ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツのデバッグに用いられるデバッグ装置およびデバッグ方法に関する。
【背景技術】
【０００２】
従来、ソフトウェアやハードウェアの欠陥及び誤りを発見して除去するため、種々のデバッグ方法が知られている。従来のデバッグ方法の一例として、例えば特許文献１には、次のようなデバッグ方法が開示されている。
【０００３】
このデバッグ方法では、ＲＯＭに格納されたデバッグ用ブートプログラムの実行により、外部からＲＡＭにデバッグプログラムを書き込み可能にするとともに、デバッグコマンドの入力にしたがいデバッグプログラムをＲＡＭに書き込み、そのデバッグプログラムを実行してユーザプログラムをデバッグするようになっている。
【特許文献１】特開２００６−９１９９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、近年、従来のＤＶＤよりも大きな記憶容量を有する次世代ＤＶＤ（例えば、ＨＤ  ＤＶＤ）が提案されている。次世代ＤＶＤによる再生装置では、従来のＤＶＤによる再生装置とは異なり、ユーザの操作により表示内容が変化する等インタラクティブ性の高いコンテンツを再生することができる。
【０００５】
この種のコンテンツは、例えば、スクリプト言語及びＸＭＬ（Extensible Markup Language）等を利用して、スタジオ等のコンテンツオーサによって作成される。従って、この種のコンテンツを作成するときは、コンテンツに含まれるスクリプト言語又はＸＭＬで記述されたプログラムをデバッグする必要がある。
【０００６】
一方、インタラクティブ性の高いコンテンツは、ユーザの操作や時間経過などのリアルタイムな情報がイベントとしてコンテンツ側に通知され、予めイベントごとに登録されたイベントハンドラによって、それらのイベントに従った処理を行うイベントドリブンなコンテンツとして実現される場合が多い。
【０００７】
このようなコンテンツとして、従来、例えばＨＤ  ＤＶＤによるコンテンツやAdobe  Flash（Adobe社が開発したＷｅｂコンテンツを作成するソフトまたはそのソフトで作成されたコンテンツ）などがある。
【０００８】
そして、Adobe  Flash上でのコンテンツの動作試験やデバッグについては、各イベントハンドラが正しく処理を行っているかどうかを次のような機能を用いて確認する、といった方法がある。この方法では、イベントハンドラ内部のプログラムコードにブレークポイントを設定し、そのブレークポイントでコンテンツの実行（再生）を一時的に止めるといった機能が用いられる。
【０００９】
このデバッグ方法では、コンテンツの実行（再生）がブレークポイントで止まった状態で変数の値を確認するなどしてデバッグが行われる。
【００１０】
しかし、このデバッグ方法では、コンテンツの実行を止めた状態での確認を伴うため、コンテンツを通常どおり再生した場合と違ってコンテンツの挙動が異なり、デバッグを行っているときには問題が発生しないのに通常どおり再生すると問題が発生するといったことが起こり得る。
【００１１】
従って、できる限り通常どおり再生しているときと同じ条件でデバッグを行えるようにすることが、特にＨＤ  ＤＶＤによるコンテンツのように動画を主体とするコンテンツでは重要である。
【００１２】
また、前述のデバッグ方法には、コンテンツに含まれるコードのどこにブレークポイントを設定すれば動作の確認が行えるかといったコードに関する詳細な知識がないと実行が困難である、という問題もある。
【００１３】
その一方、コンテンツのデバッグ方法としては、コンテンツの要所要所にデバッグ用のログを出力するコードを組み込んでおき、コンテンツを実行したときに得られるログを解析するという方法も知られている。
【００１４】
しかし、このデバッグ方法には、検査したい部分にデバッグ用のコードを追加することはもとより削除するための手間を要するし、前述の場合と同様にコードに関する詳細な知識が要求されるという問題があり、この方法だけで不具合の原因を特定するには手間がかかることも多い。
【００１５】
そこで、本発明は上記課題を解決するためになされたもので、コンテンツに含まれるコードに関する詳細な知識がなくても、再生時に近い状態でしかも簡易な操作でデバッグを行えるようにしたデバッグ装置およびデバッグ方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するため、本発明は、インタラクティブ機能を実現するためのプログラムを含むコンテンツの再生装置を用いて実現されるデバッグ装置であって、再生装置によってコンテンツが再生されているときにイベントを発行するイベント発行手段と、そのイベント発行手段によって発行されたイベントにしたがった処理を実行し、その実行記録を示すイベントログを出力する１または２以上のイベント処理手段と、イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるイベント処理制御手段と、そのイベント処理制御手段に対し、イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるための指示を入力する指示入力手段と、イベント処理手段が出力するイベントログを表示させるイベントログ表示制御手段とを有するデバッグ装置を特徴とする。
【００１７】
また、本発明は、インタラクティブ機能を実現するためのプログラムを含むコンテンツの再生装置に適用されるデバッグ方法であって、再生装置によってコンテンツが再生されているときにイベントを発行するイベント発行手段と、そのイベント発行手段によって発行されたイベントにしたがった処理を実行し、その実行記録を示すイベントログを出力する１または２以上のイベント処理手段とを設け、イベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替えるための指示を入力し、その入力される指示にしたがいイベント処理手段のそれぞれを実行可能状態または実行不能状態のいずれかに切り替え、イベント処理手段が出力するイベントログを表示させるデバッグ方法を提供する。
【発明の効果】
【００１８】
以上詳述したように、本発明によれば、コンテンツに含まれるコードに関する詳細な知識がなくても、再生時に近い状態でしかも簡易な操作でデバッグを行えるようにしたデバッグ装置およびデバッグ方法が得られる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態について説明する。なお、同一要素には同一符号を用い、重複する説明は省略する。
【００２０】
（デバッグ装置の構成）
まず、図１を参照しつつ、本発明の実施形態に係るデバッグ装置の構成について説明する。図１は、本発明の実施形態に係るデバッグ装置を実現する再生装置１００の概略構成を示すブロック図である。
【００２１】
本発明の実施形態に係るデバッグ装置は、例えばＨＤ  ＤＶＤによる再生装置（以下「再生装置」という）１００によって実現される。再生装置１００は通常モードとデバッグモードの２つのモードで作動する。
【００２２】
再生装置１００はディスクドライブ１０１と、ネットワーク制御部１０２と、メディアドライブ１０３と、データプロセッサ１０４と、メモリ１０５と、分離部（ＤＭＵＸ）１０６を有している。また、再生装置１００はビデオデコーダ１０７と、サブピクチャデコーダ１０８と、グラフィックデコーダ１０９と、オーディオデコーダ１１０とを有している。さらに、再生装置１００はビデオプロセッサ１１１と、デジタル／アナログ（Ｄ／Ａ）変換部１１２、１１３と、ＭＰＵ１１４、キー入力部１１５およびＲＯＭ１１６を有している。
【００２３】
再生装置１００は、ＨＤ  ＤＶＤによる光ディスク等の記録媒体１から、そこに記録されているデジタルデータを読み出してビデオ信号およびオーディオ信号を再生する。
【００２４】
記録媒体１は図示しないディスクトレーに載せてディスクドライブ１０１に収納される。ディスクドライブ１０１は、収納された記録媒体１を回転駆動し、光ピックアップ（図示せず）を用いてデジタルデータを取得する。
【００２５】
ネットワーク制御部１０２は、再生装置１００にネットワークを介して接続された後述するネットワーク機器２と通信を行うための制御を行う。
【００２６】
メディアドライブ１０３は、メディアドライブ１０３に接続された後述する外部デバイス（ストレージメディア）３にアクセスして、外部デバイス３からデータを取得する。
【００２７】
データプロセッサ１０４はディスクドライブ１０１、ネットワーク制御部１０２、又はメディアドライブ１０３で取得されたデータが供給される。また、データプロセッサ１０４は供給されたデータにエラー訂正処理を施し、データプロセッサ１０４内のバッファ（図示せず）に格納する。バッファに格納されるデータには、例えば、管理データや動画像データ等が含まれる。管理データはメモリ１０５に供給され、動画像データは分離部１０６に供給される。
【００２８】
メモリ１０５は、供給された管理データを記憶する。また、メモリ１０５は、管理データを再生制御やデータ管理等に利用する。
【００２９】
分離部１０６は供給された動画像データを、ビデオデータ、サブピクチャデータ、グラフィックユニットデータおよびオーディオデータに分離する。また、分離部１０６は、ビデオデータ、サブピクチャデータ、グラフィックユニットデータおよびオーディオデータを、それぞれビデオデコーダ１０７、サブピクチャデコーダ１０８、グラフィックデコーダ１０９およびオーディオデコーダ１１０に供給する。なお、サブピクチャデータとは、字幕等の画像を表示するデータである。
【００３０】
ビデオデコーダ１０７はビデオデータにデコード処理を施す。サブピクチャデコーダ１０８はサブピクチャデータにデコード処理を施す。グラフィックデコーダ１０９はグラフィックユニットデータにデコード処理を施す。
【００３１】
ビデオデコーダ１０７でデコード処理が施されたビデオデータと、サブピクチャデコーダ１０８でデコード処理が施されたサブピクチャデータと、グラフィックデコーダ１０９でデコード処理が施されたグラフィックデータとは、ビデオプロセッサ１１１に供給される。一方、オーディオデコーダ１１０でデコード処理が施されたオーディオデータは、Ｄ／Ａ変換部１１３に供給される。
【００３２】
ビデオプロセッサ１１１は、ビデオデコーダ１０７と、サブピクチャデコーダ１０８と、グラフィックデコーダ１０９とから供給されたデータの重畳処理を行い、生成されるビデオデータをＤ／Ａ変換部１１２に供給する。
【００３３】
Ｄ／Ａ変換部１１２は、ビデオプロセッサ１１１から供給されたビデオデータをアナログ信号に変換する。変換された信号は、再生装置１００に接続され、液晶ディスプレイ、プラズマディスプレイ、ＣＲＴ（Cathode-Ray Tube）等を備えた図示しない映像表示装置にビデオ信号として出力される。
【００３４】
Ｄ／Ａ変換部１１３は、オーディオデコーダ１１０から供給されたオーディオデータをアナログ信号に変換する。変換された信号は、図示しないスピーカ等の音声再生装置にオーディオ信号として出力される。
【００３５】
ＭＰＵ１１４は、上述したような光ディスク１、ネットワーク機器２、及び外部デバイス３に対する一連の再生動作を制御する制御部として機能する。
【００３６】
また、ＭＰＵ１１４はキー入力部１１５から入力される操作データにしたがい、ＲＯＭ１１６に格納されているプログラムに基づいて、再生装置１００の各構成要素（例えば、図１において、ＭＰＵ１１４と矢印で接続されている構成要素）の動作を制御する。
【００３７】
ネットワーク機器２は、パーソナルコンピュータ等のネットワークを介した通信機能を有する機器である。ネットワーク機器２には、Ｗｅｂブラウザ１１８がインストールされている。また、ネットワーク機器２は、後述するＨＴＴＰサーバモジュール２１４に各種のコマンドを送信したり、Ｗｅｂブラウザ１１８により、ＨＴＴＰサーバ２１４からの応答をＧＵＩ画面上に表示する。
【００３８】
なお、再生装置１００がＷｅｂページの閲覧機能を有する場合はネットワーク機器２を再生装置１００に接続しなくてもよい。この場合、Ｄ／Ａ変換部１１２から出力されるビデオ信号を用いて映像を表示するテレビモニタ等の表示装置をネットワーク機器２の代わりに使用することができる。
【００３９】
この際、ＨＤ  ＤＶＤによるコンテンツと、デバッグ作業用のＧＵＩ画面とを表示装置の同一画面上にピクチャインピクチャ（ＰＩＰ）にしたり、半透明に重ね合わせて表示することができる。また、ＨＤ  ＤＶＤによるコンテンツと、デバッグ作業用のＧＵＩ画面とを異なる表示装置に表示してもよい。
【００４０】
再生装置１００とネットワーク機器２とを接続するネットワークは、例えば、インターネット、ＬＡＮ（Local  Area  Network）等である。なお、ネットワーク機器２はパーソナルコンピュータに限定されず、Ｗｅｂページの閲覧機能を有するデジタルテレビでもよい。また、ネットワーク機器２にインストールされるソフトウェアはＷｅｂブラウザ１１８に限定されず、ＨＴＭＬ及びＪａｖａＳｃｒｉｐｔ（登録商標）で記述されたプログラムを処理することができるアプリケーションでもよい。
【００４１】
外部デバイス３は、データ記憶手段を備え、かつメディアドライブ１０３に着脱可能な装置であって、例えば、ＵＳＢデバイス、メモリカード、ＨＤＤ（Hard  Disk  Drive）又はパーソナルコンピュータである。
【００４２】
また、外部デバイス３は、データ記憶手段にプラグインモジュール（デバッグモードモジュール）１１７が記憶されている。デバッグモードモジュール１１７は、メディアドライブ１０３及びデータプロセッサ１０４を介してメモリ１０５にインストールされる。
【００４３】
なお、ＵＳＢデバイスは、機器毎に有効又は無効を設定することができる（機器認証機能）。このため、ＵＳＢデバイスを外部デバイス３として用いる場合、再生装置１００のセキュリティ機能を高めることができる。
【００４４】
次に、図２を参照しつつ、デバッグモードモジュール１１７について、より詳細に説明する。
【００４５】
図２は、デバッグモードモジュール１１７が、外部デバイス３から図１に示す再生装置１００にインストール（アップロード）された後の状態を示すブロック図である。より具体的には、図２は、デバッグモードモジュール１１７を記憶している外部デバイス３と、デバッグモードモジュール１１７を外部デバイス３からインストールした再生装置１００と、再生装置１００に接続されたネットワーク機器２とを示すブロック図である。
【００４６】
このデバッグモードモジュール１１７がインストールされた再生装置１００を用いてデバッグ装置が実現されるようになっている。
【００４７】
デバッグモードモジュール１１７は必要に応じて外部デバイス３からインストールされるが、予め再生装置１００にインストールしておくこともできる。
【００４８】
デバッグモードモジュール１１７は、インタラクティブ機能を実現するためのプログラムを含むコンテンツ（インタラクティブコンテンツともいう）について、そのコンテンツに含まれているプログラムをデバッグする機能を有するソフトウェアモジュール（プラグインモジュール）である。
【００４９】
インタラクティブコンテンツは、再生装置１００で再生されるコンテンツの一部として含まれてもよい。インタラクティブコンテンツには、例えば、ＨＤ  ＤＶＤ規格におけるアドバンストコンテンツが含まれる。また、デバッグモードモジュール１１７は、外部デバイス３から再生装置１００に必要に応じて（動的に）インストールすることができる。
【００５０】
さらに、図２に示すように、外部デバイス３に記憶されているデバッグモードモジュール１１７は、ＨＴＴＰサーバモジュール１１７Ａ、デバッグ端末プラグイン１１７Ｂおよびプレイヤプラグイン１１７Ｃを有している。
【００５１】
ＨＴＴＰサーバモジュール１１７Ａは、ＨＴＴＰサーバ機能を有する動的ライブラリで構成される。この動的ライブラリは、再生装置１００で実行中のプロセスで用いられ、再生装置１００のＭＰＵ１１４（図１）で独立したスレッド（ＨＴＴＰサーバスレッド）として実行される。
【００５２】
デバッグ端末プラグイン１１７Ｂは、ＨＴＭＬファイル、ＪａｖａＳｃｒｉｐｔ（登録商標）ファイル、ＰＮＧ／ＪＰＥＧイメージファイル等を有している。これらのファイルは、後述するＨＴＴＰサーバモジュール２１４を介してネットワーク機器２に配信されるファイルである。
【００５３】
プレイヤプラグイン１１７Ｃは、後述するスクリプトエンジン２０３上で実行されるスクリプトファイル、ＸＭＬファイル等の処理モジュールを有している。
【００５４】
そして、外部デバイス３に記憶されるデバッグモードモジュール１１７が再生装置１００にインストールされると、ＨＴＴＰサーバモジュール１１７ＡはＨＴＴＰサーバモジュール２１４として機能する。
【００５５】
また、デバッグ端末プラグイン１１７ＢはＧＵＩ画面ファイル２１０および端末スクリプトファイル２１３として機能する。
【００５６】
プレイヤプラグイン１１７Ｃはイベントハンドラ２０４、イベントハンドラ制御モジュール２０５、指示入力モジュール２０６、イベントログ記憶制御モジュール２０７、イベントログ出力制御モジュール２０８、状態監視モジュール２０９、データ変換モジュール２１１およびプレイヤスクリプトファイル２１２として機能する。
【００５７】
次に、図２を図１とともに参照しつつ、上述したデバッグモードモジュール１１７のインストール後の再生装置１００について、ソフトウェアの観点から説明する。
【００５８】
デバッグモードモジュール１１７をインストールした後の再生装置１００は、図２に示す制御モジュール２０１、スクリプトエンジン２０３およびデバッグモードモジュール１１７にしたがって動作を実行する。
【００５９】
デバッグモードモジュール１１７は、イベントハンドラ２０４と、イベントハンドラ制御モジュール２０５と、指示入力モジュール２０６と、イベントログ記憶制御モジュール２０７およびイベントログ出力制御モジュール２０８を有している。
【００６０】
また、デバッグモードモジュール１１７は、状態監視モジュール２０９と、ＧＵＩ画面ファイル２１０と、データ変換モジュール２１１と、プレイヤスクリプトファイル２１２と、端末スクリプトファイル２１３およびＨＴＴＰサーバモジュール２１４を有している。なお、図２において、再生装置１００にインストールされたデバッグモードモジュール１１７は、破線で囲まれている。
【００６１】
再生装置１００が通常モードで使用される場合は、制御モジュール２０１と、アドバンストコンテンツアプリケーション２０２およびスクリプトエンジン２０３が使用される。一方、再生装置１００がデバッグモードで使用される場合、通常モードで使用される上記モジュールに加えて、デバッグモードモジュール１１７に含まれる各モジュールが使用される。
【００６２】
まず、通常モードで使用されるモジュールについて説明する。制御モジュール２０１は、再生装置１００のＲＯＭ１１６（図１参照）に記憶されている実行プログラムであり、再生装置１００を制御する。制御モジュール２０１は、例えば、ビデオ映像の再生制御、アドバンストコンテンツで必要な状態管理、リソース管理等を行う。制御モジュール２０１は、再生装置１００が起動されると同時にＭＰＵ１１４上で実行される。
【００６３】
また、制御モジュール２０１はアドバンストコンテンツアプリケーション２０２を用いてインタラクティブコンテンツの再生が行われている場合において、ユーザが何らかの操作を行ったり、その再生がある時間に達したときにその時刻や操作に応じて異なった種類のイベントＥｖを発行する。制御モジュール２０１はイベント発行手段としての機能を有している。
【００６４】
アドバンストコンテンツアプリケーション２０２は、例えば、記録媒体１から再生装置１００に供給される。この場合、アドバンストコンテンツアプリケーション２０２は、記録媒体１から、ディスクドライブ１０１、データプロセッサ１０４および分離部１０６を介してメモリ１０５にロードされる。アドバンストコンテンツアプリケーション２０２は、ビデオ映像の再生に加えてインタラクティブ機能を実現することができる。
【００６５】
アドバンストコンテンツアプリケーション２０２は、ビデオコンテンツと同様に、映像スタジオ等のコンテンツオーサ（コンテンツプロバイダ）によって作成される。アドバンストコンテンツアプリケーション２０２は、スクリプト言語（例えば、ＥＣＭＡスクリプト）を用いて記述されたスクリプトファイルと、マークアップ言語（例えば、ＸＭＬ）を用いて記述されたＸＭＬファイルとを有し、これらによってインタラクティブ機能を実現するためのプログラムが構成されている。
【００６６】
なお、スクリプトファイルはスクリプトエンジン２０３によって実行される。ＸＭＬファイルは、スクリプトエンジン２０３と連携し、ＸＭＬエンジン（図示せず）によって処理される。
【００６７】
スクリプトエンジン２０３は、制御モジュール２０１に対して、ビデオ映像の再生／停止を指示するコマンドや、コンテンツのタイトル一覧の表示を指示するコマンドといった各種のコマンドを発行する。スクリプトエンジン２０３はＲＯＭ１１６に記憶されている実行モジュールを再生装置１００の起動後にＭＰＵ１１４が実行することによって実現される。
【００６８】
次に、デバッグモードで使用されるモジュールについて説明する。イベントハンドラ２０４は、イベント処理手段としての機能を有し、１または２種類以上のイベントＥｖに対応して複数（図２では、イベントハンドラ２０４ａ，２０４ｂ，２０４ｃの３つ）設けられている。イベントＥｖとイベントハンドラ２０４の対応については後述する。
【００６９】
また、発行されたイベントＥｖに対応するイベントハンドラ２０４が実行可能状態にあるときに作動し、後述するイベントログＬｇを出力する。
【００７０】
イベントハンドラ制御モジュール２０５は、後述する指示入力モジュール２０６からの指示データＩｎにしたがい各イベントハンドラ２０４を実行可能状態または実行不可能状態に切り替える切替制御を行い、イベント処理制御手段としての機能を有している。
【００７１】
指示入力モジュール２０６は、ユーザの操作に応じて指示データＩｎを生成し、その指示データＩｎをイベントハンドラ制御モジュール２０５に入力する。
【００７２】
ここで、指示データＩｎには、イベントハンドラ２０４を実行可能状態にするか実行不能状態にするかを区別するためのフラグデータと、指示の対象となるイベントの種類を特定するためのデータが含まれている。
【００７３】
イベントログ記憶制御モジュール２０７は、イベントハンドラ２０４が出力するイベントログＬｇをメモリ１０５等の記憶手段に書き込ませる。
【００７４】
イベントログＬｇはそのイベントに関する情報一式を含むイベントの実行記録を示すデータである。イベントログＬｇは、各イベントが発行された時刻（発行時刻）に関する時刻情報が含まれている時刻付きログとなっている。また、イベントログＬｇはイベントに関するその他の一般的なデータとして、イベントの種類やイベントを受け取った後述するルート要素などのデータも含まれる。
【００７５】
イベントログ出力モジュール２０８はイベントログ記憶制御モジュール２０７の制御によって記憶されたイベントログＬｇをメモリ１０５等記憶手段から読み出し、そのイベントログＬｇに含まれている時刻情報を用いて後述するログリスト４００，４１０を表示させる。イベントログ出力モジュール２０８はイベントログ表示制御手段としての機能を有している。このログリスト４００，４１０はＨＴＴＰサーバモジュール２１４が作動することによってネットワーク機器２に送信され、Ｗｅｂブラウザ１１８によって表示装置に表示される。
【００７６】
状態監視モジュール２０９は、制御モジュール２０１及びスクリプトエンジン２０３の状態を監視し、状態変化を検出する。制御モジュール２０１の状態変化には、例えば、映像（コンテンツ）再生状態の変化、ＣＰＵの利用率の変化、コンテンツで利用可能なリソースの使用率の変化等が含まれる。映像再生状態の変化には、例えば、アドバンストコンテンツアプリケーションの実行の開始／停止、ビデオ映像の再生の開始／停止、タイトルジャンプ、チャプタージャンプ、及び、再生時刻、サブタイトル又は音声等の変化が含まれる。一方、スクリプトエンジン２０３の状態変化の例には、ブレークポイントでの実行中断、ステップ実行、例外発生等が含まれる。また、状態監視モジュール２０９は、コンテンツの再生中（アドバンストコンテンツアプリケーションの実行中）にエラーが発生したか否かを判定する。
【００７７】
ＧＵＩ画面ファイル２１０は、ＨＴＴＰサーバモジュール２１４によりネットワーク機器２のＷｅｂブラウザ１１８に配信されるファイルであり、例えば、ＨＴＭＬファイル及びイメージファイル等で構成される。ＧＵＩ画面ファイル２１０は、状態監視モジュール２０９によって検出される再生装置１００の状態変化を、ユーザ（コンテンツオーサ）に通知することが可能なＧＵＩ画面を構成する。
【００７８】
データ変換モジュール２１１は、状態監視モジュール２０９で検出された状態変化をＨＴＴＰサーバモジュール２１４によってネットワーク機器２（又はＷｅｂブラウザ１１８）に送信するためのデータフォーマットに変換する。つまり、データ変換モジュール２１１は、上記状態変化をネットワーク機器２（又は、Ｗｅｂブラウザ１１８）が処理可能なデータ形式に変換する。このデータフォーマットには、ＸＭＬやＪＳＯＮ（JavaScript  Object  Notation）形式等が含まれる。
【００７９】
プレイヤスクリプトファイル２１２は、スクリプト言語で記述されるファイルであり、再生装置１００の状態を制御する。プレイヤスクリプトファイル２１２は、状態監視モジュール２０９によって検出されたアドバンストコンテンツアプリケーションの開始／停止に応じて、制御モジュール２０１を介してスクリプトエンジン２０３に読み込まれて実行される。
【００８０】
端末スクリプトファイル２１３は、ＧＵＩ画面ファイル２１０と同様に、ＨＴＴＰサーバモジュール２１４により、Ｗｅｂブラウザ１１８に配信される。端末スクリプトファイル２１３は、スクリプト言語で記述され、Ｗｅｂブラウザ１１８上で実行される。
【００８１】
なお、上述したＨＴＴＰサーバモジュール２１４、ＧＵＩ画面ファイル２１０、端末スクリプトファイル２１３、プレイヤスクリプトファイル２１２およびデータ変換モジュール２１１は、再生装置１００の状態の変化をネットワーク機器２に送信し、その変化をユーザに通知する状態通知モジュールとしての機能を実現する。
【００８２】
ＨＴＴＰサーバモジュール２１４は、再生装置１００をネットワーク機器２と通信を行うサーバとして機能させるモジュールである。
【００８３】
ＨＴＴＰサーバモジュール２１４は、再生装置１００のＭＰＵ１１４で独立したスレッドとして実行され、ネットワーク制御部１０２を介してネットワーク機器２と通信を行う。
【００８４】
（イベントの伝播）
続いて、再生装置１００におけるイベントの伝播について図３を参照して説明する。本実施の形態では、コンテンツはデータ上では木構造で表現されるものとする。（このような表現方法はＸＭＬやＨＴＭＬで使われる。）
【００８５】
例えば図３に示すように、インタラクティブコンテンツの再生画面３００上に２つのボタン３０１，３０２が表示されるとする。この場合、データ構造としてはルート要素（イベントが伝播されるときの一番大元の要素）３１０の下に２つのボタン３０１，３０２があるという構成になる。ただし、ルート要素３１０の直下にボタン３０１，３０２があるのではなく、ルート要素の下に矩形領域があり、その矩形領域の中にボタンがある、といったように何重かの入れ子構造になっていることもある。
【００８６】
そして、ユーザのリモコン操作などの操作入力によってボタン３０１が押された（例えば、カーソルがボタン３０１上にあり、その状態でユーザがＯＫボタンを押した）とする。すると、まず、ルート要素３１０にボタン３０１に対応したイベントが通知される。
【００８７】
その後、そのイベントはボタン３０１に伝播し、更にもう一度ルート要素３１０に伝播する。ここで、ルート要素３１０からボタン３０１，３０２に向かう方向のイベントの伝播をcapturing（Ｃａ）、逆方向のイベントの伝播をbubbling（Ｂｕ）という。
【００８８】
何らかの理由によりイベントの伝播が途中でキャンセルされることもある。また、インタラクティブコンテンツのバグにより、意図しないキャンセルが起きることがインタラクティブコンテンツの動作不具合につながることもある。そのため、どの要素（ここでは、ルート要素またはボタン）がイベントを受け取ったかという情報はコンテンツのデバッグ上重要である。
【００８９】
そして、イベントの最終的な行き先をイベントのターゲットという。前述のイベントの場合、ターゲットはボタン３０１である。また、ルート要素３１０やボタン３０１，３０２といったイベントの伝播に関わる要素をイベントが伝播していくとき、イベントが現在届いている要素をカレントターゲットという。前述の例では、カレントターゲットは時間の経過に伴いルート要素３１０、ボタン３０１、ルート要素３１０と変化する。
【００９０】
（デバッグ装置の動作内容）
次に、インタラクティブコンテンツをデバッグするときのデバッグ装置の動作内容について、図４〜図６に示すフローチャートを参照して説明する。
【００９１】
図４に示すように、デバッグ装置はデバッグ動作を開始すると、まず、Ｓ１で指示入力モジュール２０６により、ユーザの操作を受け取り、ユーザの操作に応じた指示データＩｎをイベントハンドラ制御モジュール２０５に出力する。
【００９２】
ここでのユーザの操作は、イベントトレースを実行可能にする操作と、実行不能にする操作の２種類がある。また、デバッグ装置はＳ１で実行可能または実行不能にするイベントの種類も受け取る。デバッグ装置はユーザが操作を行うまでＳ１で待機する。
【００９３】
デバッグ装置はユーザが操作を行うと、Ｓ２に動作を進め、イベントハンドラ制御モジュール２０５によってユーザの操作がイベントトレースを実行可能にする操作かどうかを判定する。ユーザの操作がイベントトレースを実行可能にする操作であったときはＳ３に動作が進み、そうでなければＳ５に動作が進む。
【００９４】
デバッグ装置はＳ３に動作を進めると、イベントハンドラ制御モジュール２０５によって、Ｓ１で受け取った種類（ここでは、イベントタイプという）のイベントに対応するルート要素３１０のイベントハンドラ２０４が実行可能状態になっているかどうかを判定する。ここで、実行可能状態になっていればＳ４を実行せずにそのままＳ２に戻るが、そうでなければＳ４に動作を進める。
【００９５】
デバッグ装置はＳ４に動作を進めると、イベントハンドラ制御モジュール２０５によって、イベントタイプに対応するルート要素３１０のイベントハンドラ２０４を実行可能状態に切り替える。この場合、デバッグ装置はイベントタイプに対応するルート要素３１０のCapturing用イベントハンドラ２０４と、イベントタイプに対応するルート要素３１０のbubbling用のイベントハンドラ２０４を２つとも実行可能状態にする。その後、デバッグ装置はＳ２に動作を戻す。
【００９６】
これ以降、例えばユーザがボタン３０１を押すなどしてイベントＥｖが発生し、そのイベントＥｖがルート要素３１０に通知されると、そのイベントＥｖに対応しているイベントハンドラ２０４が通知されたイベントＥｖにしたがった処理を実行する。
【００９７】
また、デバッグ装置はＳ５に動作を進めると、イベントハンドラ制御モジュール２０５により、Ｓ１で受け取った種類（イベントタイプ）のイベントに対応するイベントハンドラ２０４が既に実行可能状態になっているかどうかを判定する。ここで、実行可能状態になっていればＳ６に動作を進め、そうでなければＳ６を実行せずにそのままＳ２に戻る。
【００９８】
デバッグ装置はＳ６に動作を進めると、イベントハンドラ制御モジュール２０５によって、イベントタイプに対応するルート要素３１０のイベントハンドラ２０４を実行不能状態に切り替える。この場合、デバッグ装置はCapturing用イベントハンドラ２０４とbubbling用のイベントハンドラ２０４を２つとも実行不能状態にする。その後、デバッグ装置はＳ２に動作を戻す。
【００９９】
これ以降、イベントＥｖが発生し、そのイベントＥｖがルート要素３１０に通知されても、そのイベントＥｖに対応しているイベントハンドラ２０４はイベントＥｖにしたがった処理を実行しないこととなる。
【０１００】
以上のように、デバッグ装置は、ユーザがイベントの種類および対応するイベントハンドラについて、実行可能状態または実行不能状態のどちらにするかを指定する操作を行うことにより、各イベントハンドラを実行可能状態または実行不能状態のいずれかに切替られるようになっている。
【０１０１】
デバッグ装置は図４に続いて図５にしたがって動作を行う。図５はルート要素のイベントハンドラの動作手順を示すフローチャートである。
【０１０２】
デバッグ装置はデバッグ動作を開始するとＳ１１に動作を進め、イベントハンドラ２０４がイベントパラメータを生成する。イベントパラメータはイベントハンドラ２０４がイベントＥｖにしたがった処理を実行したときに生成されるデータである。
【０１０３】
続いてデバッグ装置はＳ１２に動作を進め、イベントハンドラ２０４により、現在のイベントの伝播がcapturingかbubblingかを判定する。ここで、デバッグ装置は、イベントハンドラ２０４がCapturingと判定したときはＳ１３に動作を進め、bubblingと判定したときはＳ１５に動作を進める。
【０１０４】
デバッグ装置は続くＳ１３に動作を進めると、イベントハンドラ２０４により、Ｓ１１で生成したイベントパラメータを調べ、ターゲットがルート要素３１０であるかどうかを判定する。デバッグ装置はターゲットがルート要素３１０でなければＳ１４に動作を進め、ターゲットがルート要素３１０であればＳ１５に動作を進める。
【０１０５】
そして、デバッグ装置はＳ１４に動作を進めると、イベントハンドラ制御モジュール２０５により、ターゲットと、ルート要素３１０からターゲットまでの間に存在する要素のイベントハンドラ２０４を実行可能状態に切り替える。ルート要素３１０からターゲットまでの間にある要素では、capturing用のイベントハンドラ２０４とbubbling用のイベントハンドラ２０４を２つとも実行可能状態にする。ターゲットに関しては１つのイベントハンドラ２０４を実行可能状態にする。
【０１０６】
デバッグ装置はＳ１５に動作を進め、イベントハンドラ２０４が１件のイベントログＬｇを出力し、そのイベントログＬｇをイベントログ記憶制御モジュール２０７によりメモリ１０５等記憶手段に追加して書き込ませると、動作を終了する。
【０１０７】
以上のように、デバッグ装置によれば、イベントハンドラ２０４がイベントログＬｇを出力すると、イベントログ記憶制御モジュール２０７によりそのイベントログＬｇがメモリ１０５等記憶手段を書き込まれ、イベントハンドラ２０４はユーザの入力待ちなどで実行中断状態に移行することなく動作を終了するようになっている。
【０１０８】
したがって、デバッグ装置は、コンテンツを通常通り再生した場合と近い条件でイベントログＬｇを取得することができるようになっている。
【０１０９】
また、図６はルート要素以外の要素のイベントハンドラ２０４の動作を示すフローチャートである。
【０１１０】
デバッグ装置は動作を開始するとＳ２１に動作を進め、イベントハンドラ２０４がイベントパラメータを生成する。続くＳ２２では、イベントハンドラ２０４が１件のイベントログＬｇを出力し、そのイベントログＬｇをイベントログ記憶制御モジュール２０７によりメモリ１０５等記憶手段に追加して書き込ませる。また、デバッグ装置は続いてＳ２３に動作を進め、イベントハンドラ２０４が自分自身を実行不能状態にすると、デバッグ装置は動作を終了する。
【０１１１】
このように、デバッグ装置はルート要素３１０以外のイベントハンドラ２０４も、ルート要素のイベントハンドラ２０４と同様にイベントログＬｇを出力すると、ユーザの入力待ちなどで実行中断状態に移行することなく動作を終了するようになっている。
【０１１２】
以上のように、本発明の実施の形態に係るデバッグ装置は、デバッグを行う際にコンテンツの再生を停止することなく、コンテンツの挙動にはできる限り影響を与えない状態でイベントログＬｇを出力できるから再生時に近い状態でデバッグを行える。イベントログＬｇにはイベントＥｖの動作に関する様々な情報が含まれているので、これを参照することでイベント発生をトレースできる。
【０１１３】
しかも、ユーザは、イベントハンドラ２０４を実行不能状態または実行不能状態に切り替える操作を行うだけで、チェックしたいイベントを切り替えることができるので、デバッグの際に注目するポイントを手軽に変えることができ、簡易な操作でデバッグを行える。そのため、ユーザによるコンテンツ開発の効率が向上する。
【０１１４】
また、イベントそのものの定義は個々のコンテンツに特有の一部のイベントを除いてはコンテンツから独立しており、コードの詳細に関する知識がなくともどういうイベントをトレースすればよいかは判断できる場合が多く、コンテンツ作成者でなくても、動作試験を行いやすいという長所を有している。
【０１１５】
さらに、動画を含むコンテンツの再生中、イベントの発生状況をコンテンツの再生を停止せずに簡単に確認でき、イベントというインターフェイスが定まっている切り口でコンテンツの動作を追跡できるのでコンテンツの動作試験を効率的に行える。
【０１１６】
一方、出力されるイベントログＬｇを用いて例えば、図７，８に示すようなログリスト４００，４１０を表示させることができる。
【０１１７】
図７はイベントＥｖを時系列上に表示したログリスト４００を示す図である。ログリスト４００は時間の目盛りが付けられた時間軸４０１と、イベントの発生、終了などを示す時間軸４０１上に表示された帯状のイベントバー４０２とを有している。
【０１１８】
イベントバー４０２は、イベント発行時刻を示す時刻ｔ１、ターゲット到着時刻（イベントＥｖがターゲットのイベントハンドラ２０４に伝播した時刻）を示す時刻ｔ２およびイベント終了時刻（bubblingでルート要素のイベントハンドラ２０４に到達した時刻）を示す時刻ｔ３を表し、イベント発行時刻や終了時刻といったイベントに関する時刻を明示するようにして表示されている。時刻ｔ２から時刻ｔ３までの時間はイベントハンドラ２０４による処理の実行時間を表している。
【０１１９】
また、図８は、各イベントログＬｇの属性を発行時刻順に並べた表形式で表示されるログリスト４１０を示す図である。ログリスト４１０は時刻部４１０ａ、イベント種類部４１０ｂ、ターゲット４１０ｃおよび現在のターゲット４１０ｄを有している。時刻部４１０ａ、イベント種類部４１０ｂ、ターゲット４１０ｃおよび現在のターゲット４１０ｄには、各イベントログＬｇの属性を示すデータが表示される。
【０１２０】
以上のようなログリスト４００，４１０によって、ユーザはイベントの動作状況を視覚的に把握できるから、イベントの動作状況を把握しやすくなり、動作試験を効率的に行えるようになる。
【０１２１】
なお、イベントハンドラ２０４には、デバッグ装置が使用するものの他にコンテンツ自体に含まれるものもある。同一の要素、同一種類のイベントに両方のイベントハンドラがある場合、コンテンツの挙動を変えないという観点から、その両方が実行される必要がある。その場合、以下の１）、２）、３）の３つのバリエーションが考えられる。
１）両方のイベントハンドラ２０４に同時にイベントが発行され、２つのイベントハンドラ２０４が並行して処理を実行する。
２）２つのイベントハンドラ２０４のうちの一方に先にイベントが発行され、その後、他方にイベントが発行される。
３）イベントハンドラ２０４からコンテンツのイベントハンドラを呼び出す。
【０１２２】
本発明の実施の形態に係るデバッグ装置を実現するためには１）、２）、３）のどれを用いてもよく、どの方法を使うかは実装に依存する。
【０１２３】
以上の説明は、本発明の実施の形態についての説明であって、この発明の装置及び方法を限定するものではなく、様々な変形例を容易に実施することができる。又、各実施形態における構成要素、機能、特徴あるいは方法ステップを適宜組み合わせて構成される装置又は方法も本発明に含まれるものである。
【図面の簡単な説明】
【０１２４】
【図１】本発明の実施形態に係るデバッグ装置を実現する再生装置の概略構成を示すブロック図である。
【図２】デバッグモードモジュールが外部デバイスから再生装置にインストール（アップロード）された後の状態を示すブロック図である。
【図３】インタラクティブコンテンツの再生画面と再生装置におけるイベントの伝播を模式的に示した図である。
【図４】デバッグ装置の動作手順を示すフローチャートである。
【図５】デバッグ装置の別の動作手順を示すフローチャートである。
【図６】デバッグ装置のさらに別の動作手順を示すフローチャートである。
【図７】ログリストの一例を示す図である。
【図８】別のログリストの一例を示す図である。
【符号の説明】
【０１２５】
２…ネットワーク機器、３…外部デバイス、１００…再生装置、１０１…ディスクドライブ、１０２…ネットワーク制御部、１０５…メモリ、１０６…分離部（ＤＭＵＸ）、１０７…ビデオデコーダ、１０８…サブピクチャデコーダ、１０９…グラフィックデコーダ、１１０…オーディオデコーダ、１１４…ＭＰＵ、１１５…キー入力部、１１６…ＲＯＭ、１１７…デバッグモードモジュール、２０１…制御モジュール、２０２…アドバンストコンテンツアプリケーション、２０３…スクリプトエンジン、２０４…イベントハンドラ、２０５…イベントハンドラ制御モジュール、２０６…指示入力モジュール、２０７…イベントログ記憶制御モジュール、２０８…イベントログ出力モジュール
【図１】
2009009406.tif 000003
【図２】
2009009406.tif 000004
【図３】
2009009406.tif 000005
【図４】
2009009406.tif 000006
【図５】
2009009406.tif 000007
【図６】
2009009406.tif 000008
【図７】
2009009406.tif 000009
【図８】
2009009406.tif 000010