(コンテンツ再生システム)
はじめに、本実施形態に係るコンテンツ再生システム1の構成について、図1に基づいて説明する。
図1は、コンテンツ再生システム1の構成を示すブロック図である。コンテンツ再生システム1は、図1に示したように、少なくとも1つのコンテンツ再生装置100と、中継サーバ(コンテンツデータ提供装置)200と、ネットワークアルバムデータベース(DB)300と、を含んで構成されている。各装置は、インターネットなどのネットワークを介して互いに通信可能に接続されている。
コンテンツ再生装置100は、中継サーバ200からコンテンツデータを取得し、取得したコンテンツデータに含まれるコンテンツを再生するための装置である。コンテンツ再生装置100は、例えば、ユーザの宅内に設置されたテレビジョン受像機として実現される。なお、図1において、コンテンツ再生システム1に含まれるコンテンツ再生装置100は1台であるが、コンテンツ再生装置100と同様に構成された複数のコンテンツ再生装置がコンテンツ再生システム1に含まれていてもよい。
中継サーバ200は、コンテンツ再生装置100にコンテンツデータを提供するための装置である。また、ネットワークアルバムDB300は、中継サーバ200にてコンテンツデータを合成するために必要となる各種データを、中継サーバ200に提供するための装置である。中継サーバ200とネットワークアルバムDB300とは、例えば、コンテンツ再生システム1を運営する事業者の事業所内に設置される。なお、図1においては、別体として構成された中継サーバ200とネットワークアルバムDB300とを示しているが、これらは単一の装置として1つの筐体内に実装されていても良い。
次に、コンテンツ再生システム1の動作の概要について、以下図1〜5に基づいて説明する。
まず、コンテンツ再生システム1がエラーなく正常動作した場合について、図2を参照しながら説明する。
図2(a)に示したように、コンテンツ再生装置100は、コンテンツの再生を開始するために、トップ画面コンテンツ要求R101を中継サーバ200に送る。中継サーバ200は、トップ画面コンテンツ要求R101を受信すると、トップ画面コンテンツ(再生対象コンテンツデータ、第1のコンテンツデータ)C101を合成する。この際、中継サーバ200は、トップ画面コンテンツC101を合成するために必要となる各種データを、ネットワークアルバムDB300から取得する。中継サーバ200は、合成したトップ画面コンテンツC101をコンテンツ再生装置100に送信する。コンテンツ再生装置100は、このトップ画面コンテンツC101を取得し、トップ画面コンテンツC101の主コンテンツであるトップ画面I101を再生・表示する。
図2(b)は、トップ画面コンテンツC101を再生することによりコンテンツ再生装置100に表示されるトップ画面I101を例示する画面構成図である。トップ画面I101には、ユーザがコンテンツ再生装置100にて最近閲覧したアルバム群が所定の数(図示した例では3)だけ一覧表示されている。ユーザは、トップ画面I101に一覧表示されたアルバム群から所望のアルバムを選択することができる。
ユーザがアルバムを選択すると、次に、コンテンツ再生装置100は、選択されたアルバムのタイトル画面I102を表示するために、タイトル画面コンテンツ要求R102を中継サーバ200に送る(図2(a)参照)。このタイトル画面コンテンツ要求R102には、ユーザが選択したアルバムを一意に特定するアルバムIDが含まれている。中継サーバ200は、タイトル画面コンテンツ要求R102に含まれるアルバムIDを参照し、そのアルバムIDに対応するアルバムのタイトル画面コンテンツ(取得対象コンテンツデータ、第2のコンテンツデータ)C102を合成する。この際、中継サーバ200は、タイトル画面コンテンツC102を合成するために必要となる各種データを、ネットワークアルバムDB300から取得する。中継サーバ200は、合成したタイトル画面コンテンツC102を、コンテンツ再生装置100に送信する。コンテンツ再生装置100は、このタイトル画面コンテンツC101を再生し、次コンテンツであるタイトル画面I101を表示する。
図2(c)は、タイトル画面コンテンツC102を再生することによりコンテンツ再生装置100に表示されるタイトル画面I102を例示する画面構成図である。タイトル画面I102には、ユーザにより選択されたアルバムのタイトル(図示した例では「陽光の旋律」)、作成日(図示した例では「2006/07/01」)、作成者(図示した例では「阿久 雄須也」)、コメント(図示した例では「うちのかわいい猫・・・」)等が表示される。ユーザは、アルバムの概要を確認した上で、スライドショー再生開始をコンテンツ再生装置100に対して指示できるようになっている。
コンテンツ再生装置100は、スライドショー再生開始を指示するユーザの操作を待ち受けている間に、最初のスライドコンテンツ要求R111を中継サーバ200に送る(図2(a)参照)。中継サーバ200は、スライドコンテンツ要求R111に対する応答として、スライドコンテンツ(コンテンツデータ)C111をコンテンツ再生装置100に送信する。コンテンツ再生装置100は、スライドコンテンツC111を再生することにより、選択したアルバムの1枚目の写真を含む第1のスライドを表示する。コンテンツ再生装置100は、以後同様の処理を繰り返し、第2、第3のスライドを所定の時間間隔をおいて順に表示していく。これにより、ユーザは、選択したアルバムに属する複数の写真を、次々に表示されるスライドとして閲覧することができる。
次に、タイトル画面コンテンツC102を取得するための通信処理においてエラーが発生した場合について、図1、および、図3〜図5を参照しながら説明する。
コンテンツ再生装置100は、中継サーバ200から取得したトップ画面コンテンツC101を再生している間に、次に再生するべきタイトル画面コンテンツC102の取得するための通信処理を行う。この通信処理においてエラーが発生すると、コンテンツ再生装置100は、タイトル画面I102を表示することができなくなる。
このようなエラーの発生に備えて、トップ画面コンテンツC101には、主コンテンツであるトップ画面I101を表示するための表示制御情報の他に、副コンテンツであるエラー画面E200を表示するための表示制御情報が含まれている。図1に示したように、コンテンツ再生装置100は、タイトル画面コンテンツC102の取得するための通信処理においてエラーが発生したとき、後者の表示制御情報に基いてエラー画面E200を再生する。
特に、図3(a)に示したように、コンテンツ再生装置100は、自装置内でエラーが発生したことを検知すると、コンテンツC101に含まれている第1の副コンテンツである端末エラー画面E201を表示する。端末エラー画面E201は、図3(b)に例示したように、端末であるコンテンツ再生装置100においてエラーが発生したことをユーザに提示するエラー画面であり、「端末エラーが発生しました」などの文字列を含んで構成されている。また、端末エラー画面E201には、決定ボタンを押下するとトップ画面に戻ることが示されている。これを確認したユーザが決定ボタンを押下する操作を施すと、コンテンツ再生装置100は、タイトル画面I102の代わりに表示する代替コンテンツとして、トップ画面コンテンツC101の主コンテンツであるトップ画面I101を再び再生する。
また、図4(a)に示したように、コンテンツ再生装置100は、エラーコードECを受信することにより中継サーバ200においてエラーが発生したことを検知すると、コンテンツC101に含まれている第2の副コンテンツであるサーバエラー画面E202を表示する。サーバエラー画面E202は、図4(b)に例示したように、中継サーバ200においてエラーが発生したことをユーザに提示するエラー画面であり、「サーバエラーが発生しました」などの文字列を含んで構成されている。また、端末エラー画面E202には、決定ボタンを押下するとトップ画面に戻ることが示されている。これを確認したユーザが決定ボタンを押下する操作を施すと、コンテンツ再生装置100は、タイトル画面I102の代わりに表示する代替コンテンツとして、トップ画面コンテンツC101の主コンテンツであるトップ画面I101を再び再生する。
端末エラー画面E201およびサーバエラー画面E202は、トップ画面コンテンツC101に予め格納されている表示制御制御情報に基づいてコンテンツ再生装置100にて生成される。従って、自装置においてエラーが発生したことを検知した場合でも、エラーコードECにより中継サーバ200にてエラーが発生したことを検知した場合でも、コンテンツ再生装置100は、トップ画面コンテンツC101に基づいて、これらを表示することができる。しかも、トップ画面コンテンツC101は、タイトル画面コンテンツC102を取得するための通信処理が開始可能になる時点で、必ずコンテンツ再生装置100に取得されている。従って、コンテンツ再生装置100は、端末エラーまたはサーバエラーを検知した時点で直ちに端末エラー画面E201またはサーバエラー画面E202を表示するための処理を開始することができる。
なお、図4(a)において、中継サーバ200がエラーコードECをコンテンツ再生装置100に送る構成を示したが、図5(a)に示したように、中継サーバ装置200がサーバエラー発生時にエラーコンテンツC200をコンテンツ再生装置100に送る構成に変形することも可能である。この場合、中継サーバ200は、自装置内でエラーが発生したことを検知すると、サーバエラーが発生したことをユーザに提示するためのエラーコンテンツC200を生成する。そして、コンテンツ再生装置100は、タイトル画面コンテンツ要求R102に対する応答として受信したエラーコンテンツC200を再生することにより、サーバエラー画面I200(図5(b)参照)を表示する。
(コンテンツデータのデータ構造)
次に、コンテンツ再生装置100にて再生されるコンテンツデータについて、図6〜8を参照して説明する。
図6は、コンテンツ再生装置100にて再生されるコンテンツデータのデータ構造を示すデータ構造図である。図6では特に、上述したトップ画面コンテンツC101のデータ構造を示している。
図6に示したように、コンテンツデータであるトップ画面コンテンツC101は、複数のファイルの集合体として構成されている。具体的には、状態遷移定義情報(処理指定情報)1011が格納されたファイルtop.mtd、主コンテンツであるトップ画面I101を表示するためのトップ画面用表示制御情報1012が格納されたファイルtop.svg、第1の副コンテンツである端末エラー画面E201を表示するための端末エラー画面用表示制御情報1013が格納されたファイルlocalerror.svg、第2の副コンテンツであるサーバエラー画面E202を表示するためのサーバエラー画面用表示制御情報1014が格納されたファイルservererror.svg、および、各種パラメータ1015が格納されたパラメータ用ファイルがトップ画面コンテンツC101に含まれている。図6に示した例では、パラメータ用ファイルとして、ユーザにより入力されたアルバムIDを格納するためのファイルalbumid.txtと、発生したエラーの種類を特定するためのエラーコードを格納するためのerror.txtとが利用される。
なお、トップ画面I101が画像を含むものである場合、その画像を表示するための画像データが、トップ画面コンテンツC101に含まれていてもよい。また、端末エラー画面E201が画像を含むものである場合、および、サーバエラー画面E202が画像を含むものである場合についても同様である。
状態遷移定義情報1011は、トップ画面I101を再生するためにコンテンツ再生装置100が実行するべき処理、および、トップ画面I101の次にタイトル画面I102を再生するために実行するべき処理を指定したスクリプトとして構成されている。コンテンツ再生装置100は、状態遷移定義情報1011に指定されている処理を順に実行していく。
図7(a)は、MTD(Message Template Definition)により記述された状態遷移定義情報1011の具体例を示す図である。図7(a)に例示した状態遷移定義情報1011は、コマンド1011a〜dにより構成されている。
1101aは、トップ画面コンテンツC101の主コンテンツであるトップ画面I101を再生する処理を指定するコマンド(再生処理指定情報)である。具体的には、top.svgに基いてトップ画面I101を生成して表示する処理を指定している。加えて、コマンド1101aでは、当該処理の返り値(アルバムID)をパラメータ用ファイルであるalbumid.txtに格納することが指定されている。
1011bは、トップ画面I101の次に再生するべきタイトル画面I102を含むタイトル画面コンテンツC102を取得する処理を指定するコマンド(取得処理指定情報)である。具体的には、@uri.txtに格納されているURIを有するサーバに対し、method−getTitle.txtに定義されたメソッドにより、タイトル画面コンテンツ要求R012を送信する処理を指定している。加えて、コマンド1011bでは、albumid.txtに格納されているアルバムIDをタイトル画面コンテンツ要求R102とともに送信すること、および、当該処理の返り値(エラーコード)をパラメータ用ファイルであるerror.txtに格納することが指定されている。タイトル画面コンテンツC102を取得して当該処理が正常終了した場合にはエラーコード200が、タイトル画面コンテンツC102に対する応答として中継サーバ200からエラーコードECが送られてきた場合にはエラーコード400が、端末エラーを検出して当該処理を異常終了した場合にはエラーコード500が、error.txtに格納される。
1011cは、error.txtに格納されているエラーコードに基づいて処理を分岐させるためのコマンドである。具体的には、エラーコードが200である場合、title.mtdに処理を移すこと、エラーコードが400である場合、idがservererrorであるコマンドに処理を移すこと、エラーコードが500である場合、idがlocalerrorであるコマンドに処理を移すことが指定されている。ここで、title.mtdは、タイトル画面コンテンツC102に含まれている状態遷移定義情報である。エラーコードが200である場合、すなわち、タイトル画面コンテンツC102の取得が正常に完了している場合、タイトル画面コンテンツC102の状態遷移定義情報の最初のコマンドに処理が移る。
1011dは、エラー発生時に再生するべき副コンテンツを、エラーの種類毎に指定するコマンド群(副コンテンツ指定情報、代替コンテンツ指定情報)である。idがservererrorである第1のコマンドは、エラーコードが400である場合に実行されるコマンドである。具体的には、サーバエラー発生時に実行するべき処理として、servererror.svgに基いて副コンテンツであるサーバエラー画面E202を生成して表示する処理が指定されている。また、同時に、サーバエラー画面E202から遷移する表示画面として、すなわち、再生することができなかったタイトル画面I102の代わりに、サーバエラー画面E202の次に再生するコンテンツとして、トップ画面I101を表示することが指定されている。一方、idがlocalerrorで第2のコマンドは、エラーコードが500のときに実行されるコマンドである。具体的には、端末エラー発生時に実行するべき処理として、localerror.svgから副コンテンツである端末エラー画面E201を生成して表示する処理が指定されている。また、端末エラー画面E201から遷移する表示画面として、すなわち、再生することができなかったタイトル画面I102の代わりに、端末エラー画面E201の次に再生するコンテンツとして、トップ画面I101を表示することが指定されている。
表示制御情報1012〜1014はそれぞれ、画面の描画方法を指定するレイアウト定義情報と、画面上のオブジェクトに対してユーザが行った操作に応じて実行するべき処理を指定するユーザ操作定義情報から構成される。特に、トップ画面用表示制御情報1012は、主コンテンツであるトップ画面I101の描画方法を指定するレイアウト定義情報を含み、端末エラー画面用表示制御情報1013は、第1の副コンテンツである端末エラー画面E201の描画方法を指定するレイアウト定義情報を含み、サーバエラー画面用表示制御情報1014は、第2の副コンテンツであるサーバエラー画面E202の描画方法を指定するレイアウト定義情報を含んでいる。
図7(b)は、図7(a)に示した状態遷移定義情報の変形例を示すものであり、タイトル画面コンテンツ要求R102に対する応答としてエラーコンテンツC200が中継サーバ200から送られてくる場合の、好ましい状態遷移定義情報の構成を示した図である。
図7(b)に示した状態遷移定義情報における、図7(a)に示したそれとの相違点は、コマンド1011c´において、エラーコードが300である場合(エラーコンテンツC200を受信した場合)、取得したエラーコンテンツC200の状態遷移定義情報(error.mtd)に処理を移すことが指定されている点である。これにより、コンテンツ再生装置100は、タイトル画面コンテンツ要求R102に対する応答としてエラーコンテンツC200を受信した場合には、再生対象コンテンツをエラーコンテンツC200に切り替え、エラーコンテンツに含まれている表示制御情報に基づいてエラー画面I200を表示することができる。
図7(c)は、図7(a)に示した状態遷移定義情報の他の変形例を示すものであり、タイトル画面コンテンツ要求R102に対する応答として、エラーコードECおよびエラーコンテンツC200の両方が送られてくる可能性がある場合の、好ましい状態遷移定義情報の構成を示した図である。
図7(b)に示した状態遷移定義情報における、図7(a)に示したそれとの相違点は、エラーコードが300である場合(エラーコンテンツC200を受信した場合)、取得したエラーコンテンツC200の状態遷移定義情報(error.mtd)に処理を移すこと、および、エラーコードが400である場合(エラーコードECを受信した場合)、idがservererrorであるコマンドに処理を移すことの両方が指定されている点である。これにより、コンテンツ再生装置100は、タイトル画面コンテンツ要求R102に対する応答としてエラーコンテンツC200を受信した場合には、再生対象コンテンツをエラーコンテンツC200に切り替え、エラーコンテンツに含まれている表示制御情報に基づいてエラー画面I200を表示することができるし、また、タイトル画面コンテンツ要求R102に対する応答としてエラーコードECを受信した場合には、servererror.svgに基いてサーバエラー画面E202を表示することができる。
図8は、レイアウト定義情報の一例として、サーバエラー画面用表示制御情報1014に含まれるレイアウト定義情報を示した図である。図8に示したレイアウト定義情報は、SVG(Scalable Vector Graphics)により記述されている。
図8に示したように、レイアウト定義情報は、画面に描画されるオブジェクト、および、そのオブジェクトのレイアウトを指定するコマンド群から構成される。レイアウト定義情報において、画面に描画されるオブジェクトは、リテラルとして直接指定されていてもよいし(特に文字列などの場合)、外部データへのリンクとして指定されていてもよい(特に画像データなどの場合)。図8に例示したレイアウト定義情報においては、サーバエラー画面E202に表示される文字列「サーバエラーが発生しました」が、その文字列の描画位置や描画フォントサイズとともに指定されている。
なお、タイトル画面コンテンツC102、スライドコンテンツC111、C112、・・・、などのコンテンツデータも、上述したトップ画面コンテンツC101と同様の構造を有している。
(コンテンツ再生装置の構成)
次に、コンテンツ再生装置100の概略構成について、図9〜11を参照しながら説明する。
図9は、コンテンツ再生装置100の要部構成を示すブロック図である。
図9に示すように、コンテンツ再生装置100は、制御部110、通信部120、記憶部130、表示部140、およびIR受信部150を含んで構成されている。
通信部120は、中継サーバ200との間で各種データの送受信を行うための通信インターフェースである。制御部110は、通信部120を介して、中継サーバ200にコンテンツ要求を送信したり、中継サーバ200からコンテンツデータを受信したりすることができる。
記憶部130は、メモリなどの記憶装置である。制御部110は、通信部120を介して中継サーバ装置200から取得したコンテンツデータを、記憶部130に記憶させておくことができる。また、制御部110は、コンテンツデータを再生するために必要となるパラメータを、記憶部130に記憶させ、任意のタイミングで参照することができる。
表示部140は、液晶表示パネルやブラウン管などの表示装置である。制御部110は、コンテンツデータを再生して得られた画像を、表示部140に表示させてユーザに提示することができる。
IR受信部150は、リモートコントローラ160との間で赤外線通信を行うための通信インターフェースである。リモートコントローラ160は、ユーザから受け付けた操作の内容を示す操作情報を、赤外線搬送波にのせてIR受信部150に送る。制御部110は、IR受信部150を介して取得した操作情報に基づいて、各種処理を実行することができる。
なお、制御部110の機能については、図11を参照して後に詳しく説明する。
図10は、コンテンツ再生装置100の概観を示す概観図である。
図10に示したように、コンテンツ再生装置100は、例えば、テレビジョン受像機として実現することができる。コンテンツ再生装置100をテレビジョン受像機として実現する場合、該テレビジョン受像機に含まれる表示パネルを表示部140として利用することができ、迫力のあるスライドショー再生を行うことができる。
図10には、リモートコントローラ160の構成例も示されている。同図において、リモートコントローラ160は、数字ボタン部161、および十字ボタン部163を含んで構成されている。
数字ボタン部161は、少なくとも0〜9に対応する数字ボタンを含んでいる。ユーザは、これらのボタンを適宜押下することにより、任意桁数の数字を入力することができる。ユーザはアルバムIDなどの数値を、この数字ボタン部161部により入力することができる。
また、コマンドボタン部162は、1つ以上のコマンドボタンを含んでいる。各コマンドボタンは、予め、あるいは、処理の進行状況に応じて、特定の指示に対応付けられている。ユーザは、コマンドボタンを押下することにより、そのコマンドボタンに対応付けられている指示を入力することができる。例えば、ユーザは、所定のコマンドボタンを押下することにより、アルバムの閲覧を開始するアルバム閲覧開始指示をコンテンツ再生装置100に与えることができる。
また、十字ボタン部163は、上下左右に対応した4つのボタンと、これらの4つのボタンの中心に配置された決定ボタンとを含んでいる。ユーザは、上下左右ボタンを押下することにより、表示部140に表示されているオブジェクト群の中から所望のオブジェクトの位置を指定したり、決定ボタンを押下することによりその時点で指定されているオブジェクトを選択したりすることができる。例えば、ユーザは、一覧表示されているサムネイルのなかから所望の画像を指定・選択することができる。また、ユーザは、画像を表示するスライドが表示されているときに右ボタンを押下することにより、現在表示中の画像の次の画像を表示することを指示する次画像表示指示を入力することができる。
図11は、コンテンツ再生装置100に含まれる制御部110の要部構成を示すブロック図である。
図1に示したように、制御部110は、イベント処理部111、データ管理部112、表示画面生成部113、画像データ展開部114、表示制御部115、タイマー部116、および、ユーザ操作解析部117を含んで構成されている。
データ管理部112は、コンテンツデータを中継サーバ200から取得するための通信処理と、取得したコンテンツデータの管理を行うためのブロックである。データ管理部112は、イベント処理部111の指示により、コンテンツデータを取得するためのコンテンツ要求を、通信部120を介して中継サーバ装置200に送る。そして、コンテンツデータの取得に成功すれば、取得したコンテンツデータを記憶部130に記憶し、データ取得成功通知をイベント処理部111に通知する。また、コンテンツデータの取得に失敗すれば、データ取得失敗通知をイベント処理部111に通知する。具体的には、コンテンツ要求に対する応答として中継サーバ200からエラーコードECを受信した場合にはサーバエラー発生通知を、また、コンテンツ要求を送信してから予め定められた所定の時間内にコンテンツデータの取得を完了できなかった場合には端末エラー発生通知を、イベント処理部111に通知する。
表示画面生成部113は、コンテンツデータに含まれる表示制御情報、特に、レイアウト定義情報に基づいて、表示部140に表示する表示画面を生成するためのブロックである。特定の表示制御情報に基づいた表示画面を生成することを要求する表示画面生成要求をイベント処理部111から受けると、表示画面生成部113は、その表示制御情報を要求するデータ要求をデータ管理部112に送る。データ管理部112は、要求された表示制御情報を記憶部130から読み出して、表示画面生成部113に渡す。また、データ管理部112は、表示するべきオブジェクトとして表示制御情報に指定されている画像データがあれば、その画像データも記憶部130から読み出して、表示画面生成部113に渡す。データ管理部112から表示制御情報を受け取ると、表示画面生成部113は、受け取った表示制御情報に基づいて表示画面を生成し、生成した表示画面を表示制御部115に渡すとともに、表示画面生成成功通知をイベント処理部113に送る。
表示制御情報に画像データを表示することが指定されており、その画像データが展開を要する圧縮画像データである場合、表示画面生成部113は、圧縮画像データを画像データ展開部114に渡す。画像データ展開部114は、圧縮画像データを表示可能な状態に展開し、展開済画像データを表示画面生成部113に返す。表示制御情報に画像データを表示することが指定されている場合、表示画面生成部113は、画像データ展開部114から得た展開済画像データを含む表示画面を生成し、生成した表示画面を表示制御部115に渡す。表示制御情報に指定された画像データが画像データ展開部114により展開できないフォーマットの画像データであるなど、表示制御情報に従って表示画面を生成する処理が完了しなかった場合、表示画面生成部113は、表示画面生成失敗通知をイベント処理部113に送る。
表示制御部115は、表示画面生成部113により生成された表示画面を、表示部140に表示させるためのブロックである。表示制御部115は、イベント処理部111から指示されたタイミングで、表示画面生成部113により生成された表示画面を表示するよう表示部140を制御する。
タイマー部116は、スライドショー再生においてスライドの表示切替タイミングをイベント処理部111に通知するためのブロックである。イベント処理部111は、表示制御部115がスライドの表示を開始すると、タイマー部116にタイマー起動を指示する。タイマー部116は、タイマー起動を指示された時点で、タイマーを起動する。そして、タイマー部116は、タイマーを起動してから所定のスライド表示時間が経過した時点で、タイマー通知をイベント処理部111に返す。イベント処理部111は、タイマー通知を受け付けると、現在表示中のスライドの次のスライドを表示するよう、表示制御部115に指示を出す。
ユーザ操作解析部117は、ユーザが行った操作の内容をイベント処理部111に通知するためのブロックである。IR受信部150を介してユーザによる操作が発生したことを検知すると、ユーザ操作解析部117は、その操作の内容を示す操作情報通知をイベント処理部111に渡す。
イベント処理部111は、コンテンツに含まれる状態遷移定義情報(MTD)に基づいて、上記各処理部を制御するためのブロックである。イベント処理部111は、状態遷移定義情報をデータ管理部112を介して記憶部130から読み出し、読み出した状態遷移定義情報に含まれているコマンドを、上記各処理部の何れかに実行させる。
(コンテンツ再生システムの処理)
コンテンツ再生システム1の処理について、図12〜図15を参照しながら説明すれば以下の通りである。
図12は、エラーなく正常動作した場合について、コンテンツ再生システム1において実行される処理の流れを示すシーケンス図である。
コンテンツ再生システム1における処理は、例えば、アルバムの閲覧の開始を指示するアルバム閲覧開始指示がユーザによりコンテンツ再生装置100に対して与えられることにより開始される。コンテンツ再生装置100は、アルバム閲覧開始指示をユーザから受け付けると、トップ画面コンテンツ要求R101を、中継サーバ200に対して送信する。中継サーバ200は、トップ画面コンテンツ要求R101を受信すると、トップ画面コンテンツC101を合成するために必要な合成用データD101をネットワークアルバムDB300に対して要求する。ネットワークアルバムDB300は、この合成用データ要求R101´に応じて、トップ画面コンテンツC101の合成に必要な合成用データD101を中継サーバ200に提供する。中継サーバ200は、取得した合成用データD101を用いて、トップ画面コンテンツC101を合成する。そして、トップ画面コンテンツC101の合成が完了すると、トップ画面コンテンツC101をコンテンツ再生装置100に送信する。
トップ画面コンテンツC101の状態遷移定義情報1011には、トップ画面コンテンツC101に含まれるトップ画面用表示制御情報1012に基づいて主コンテンツであるトップ画面I101を生成して表示することを指示するコマンドが含まれている(図6参照)。トップ画面コンテンツC101を取得したコンテンツ再生装置100は、この指示に従って、トップ画面用表示制御情報1012に基づいて主コンテンツであるトップ画面I101を生成して表示する。また、トップ画面コンテンツC101の状態遷移定義情報1011には、ユーザにより入力されたアルバムIDを含むタイトル画面コンテンツ要求R102を中継サーバ200に送信することを指示するコマンドが含まれている。コンテンツ再生装置100は、この指示に従って、ユーザによりアルバムIDが指定された時点で、指定されたアルバムIDを含むタイトル画面コンテンツ要求R102を中継サーバ200に送信する。
中継サーバ200は、タイトル画面コンテンツ要求R102を受信すると、アルバムIDにより指定されたアルバムのタイトル画面コンテンツC102を合成するために必要な合成用データD102を、ネットワークアルバムDB300に対して要求する。ネットワークアルバムDB300は、この合成用データ要求R102´に応じて、タイトル画面コンテンツC102の合成に必要な合成用データD102を中継サーバ200に提供する。中継サーバ200は、取得した合成用データD102を用いて、タイトル画面コンテンツC102を合成する。そして、タイトル画面コンテンツC102の合成が完了すると、タイトル画面コンテンツC102をコンテンツ再生装置100に送信する。
タイトル画面コンテンツC102の状態遷移定義情報には、タイトル画面コンテンツC102の表示制御情報に基づいてタイトル画面I102を生成して表示することが指示するコマンドが含まれている。タイトル画面コンテンツC102を取得したコンテンツ再生装置100は、この指定に従って、上記表示制御情報に基づいてタイトル画面I102を生成して表示する。この時点で、コンテンツ再生装置100に表示される表示画面がトップ画面I101からタイトル画面I102に遷移する。また、タイトル画面コンテンツC102の状態遷移定義情報には、最初のスライドコンテンツC111の取得を要求するためのスライドコンテンツ要求R111を中継サーバ200に送信することを指示するコマンドが含まれている。コンテンツ再生装置100は、この指定に従って、スライドコンテンツ要求R111を中継サーバ200に送信して、第1のスライドコンテンツC111を要求する。
中継サーバ200は、スライドコンテンツ要求R111を受信すると、スライドコンテンツC111を合成するために必要な合成用データD111を、ネットワークアルバムDB300に対して要求する。ネットワークワークアルバムDB300は、この合成用データ要求R111´に応じて、スライドコンテンツC111の合成に必要な合成用データD111を中継サーバ200に提供する。中継サーバ200は、取得した合成用データD111を用いて、第1のスライドコンテンツC111を合成する。そして、スライドコンテンツC1111の合成が完了すると、スライドコンテンツC111をコンテンツ再生装置100に送信する。
タイトル画面コンテンツC102の状態遷移定義情報には更に、ユーザからスライドショー再生開始指示を受け付けたとき、スライドコンテンツC111の状態遷移定義情報に処理を移すことを指示するコマンドが含まれている。コンテンツ再生装置100は、スライドショー再生開始指示を受け付けると、既に取得が完了しているスライドコンテンツC111の状態遷移定義情報を読み出し、該状態遷移定義情報に指定された処理の実行を開始する。
スライドコンテンツC111の状態遷移定義情報には、スライドコンテンツC111の表示制御情報に基づいて第1のスライドを生成して表示することを指示するコマンドが含まれている。コンテンツ再生装置100は、この指示に従って、上記表示制御情報に基づいて第1のスライドを生成して表示する。この時点で、コンテンツ再生装置100に表示されている表示画面が、タイトル画面I102から第1のスライドに遷移する。また、スライドコンテンツC111の状態遷移定義情報には、第2のスライドコンテンツC112の取得を要求するためのスライドコンテンツ要求R112を中継サーバ200に送信することを指示するコマンドが含まれている。コンテンツ再生装置100は、この指定に従って、スライドコンテンツ要求R112を中継サーバ200に送信し、第2のスライドコンテンツC112の取得を要求する。
中継サーバ200は、スライドコンテンツ要求R112を受信すると、スライドコンテンツC112を合成するために必要な合成用データD112を、ネットワークアルバムDB300に対して要求する。ネットワークワークアルバムDB300は、この合成用データ要求R112´に応じて、スライドコンテンツC112の合成に必要な合成用データD112を中継サーバ200に提供する。中継サーバ200は、取得した合成用データD112を用いて、第2のスライドコンテンツC112を合成する。そして、スライドコンテンツC1112の合成が完了すると、スライドコンテンツC112をコンテンツ再生装置100に送信する。
スライドコンテンツC111の状態遷移定義情報には更に、第1のスライドの表示を開始してから所定のスライド表示時間が経過したとき、あるいは、第1のスライドの次のスライドを表示することを指示する次画像表示指示をユーザから受け付けたとき、スライドコンテンツC112の状態遷移定義情報に処理を移すことを指示するコマンドが含まれている。コンテンツ再生装置100は、この指示に従って、第1のスライドの表示を開始してから所定のスライド表示時間が経過した時点、あるいは、ユーザから次画像表示指示を受け付けた時点で、スライドコンテンツC111の状態遷移定義情報を読み出し、読み出した状態遷移定義情報に指定された処理の実行を開始する。なお、第1のスライドの表示を開始してから所定のスライド表示時間が経過した時点は、例えば、イベント処理部111がタイマー部116からタイマー通知を得た時点として特定することができる。また、ユーザから次画像表示指示を受け付けた時点は、例えば、イベント処理部111がユーザ操作解析部117から次画像表示指示通知を受け付けた時点として特定することができる。
スライドコンテンツC112の状態遷移定義情報には、スライドコンテンツC112に含まれている表示制御情報から第2のスライドを生成して表示することを指示するコマンドが含まれている。コンテンツ再生装置100は、この指示に従って、上記表示制御情報に基づいて第2のスライドを生成して表示する。この時点で、コンテンツ再生装置100に表示されている表示画面が、第1のスライドから第2のスライドに遷移する。
コンテンツ再生装置100は、以上のような処理を、第3のスライド以降のスライドに対しても繰り返すことにより、第1から第nのスライドを所定のタイミングで切り換えながら順に表示していく。
図13は、端末エラーが発生した場合について、コンテンツ再生システム1において実行される処理の流れを示すシーケンス図である。
図13において注目すべきは、コンテンツ再生装置100がタイトル画面コンテンツC102の取得に失敗する端末エラーが発生している点である。コンテンツ再生装置100は、タイトル画面コンテンツ要求R102を送信してから予め定められた所定の時間内にタイトル画面コンテンツC102の取得を完了できなかった場合、端末エラーが発生したものと判定する。
トップ画面コンテンツC101の状態遷移定義情報1011には、端末エラーが発生した場合、トップ画面コンテンツC101に含まれる端末エラー画面用表示制御情報1013に基づいて端末エラー画面E201を生成して表示することを指示するコマンドが含まれている。コンテンツ再生装置100は、端末エラーを検出すると、この指示に従って、端末エラー画面E201を生成して表示する(図3(b)参照)。この時点で、コンテンツ再生装置100に表示される表示画面が、トップ画面I101から端末エラー画面E201に遷移する。端末エラー画面E201が表示されている状態で決定ボタンを押下する操作をユーザから受け付けると、コンテンツ再生装置100は、表示画面を再び複数のアルバムを一覧表示するトップ画面I101に遷移させる(図2(b)参照)。ユーザは、トップ画面I101が再び表示された状態で、所望のアルバムを再度指定することができる。
図14は、サーバエラーが発生した場合について、コンテンツ再生システム1において実行される処理の流れを示すシーケンス図である。
図14において注目すべきは、タイトル画面コンテンツ要求R102に対する応答として、中継サーバ200からコンテンツ再生装置100に、エラーコードECが送られている点である。コンテンツ再生装置100は、タイトル画面コンテンツ要求R102に対する応答としてエラーコードECを中継サーバ200から取得した場合、サーバエラーが発生したものと判定する。
トップ画面コンテンツC101の状態遷移定義情報1011には、サーバエラーが発生した場合、トップ画面コンテンツC101に含まれるサーバエラー画面用表示制御情報1014に基づいてサーバエラー画面E202を生成して表示することを指示するコマンドが含まれている。コンテンツ再生装置100は、サーバエラーを検出すると、この指示に従って、サーバエラー画面E202を生成して表示する(図4(b)参照)。この時点で、コンテンツ再生装置100に表示される表示画面が、トップ画面I101からサーバエラー画面E202に遷移する。サーバエラー画面E202が表示されている状態でユーザから決定ボタンを押下する操作を受け付けると、コンテンツ再生装置100は、表示画面を再び複数のアルバムを一覧表示するトップ画面I101に遷移させる(図2(b)参照)。トップ画面I101が再び表示された状態で、ユーザは所望のアルバムを再度指定することができる。
図15は、サーバエラーが発生した場合について、コンテンツ再生システム1において実行される他の処理の流れを示すシーケンス図である。
図15において注目すべきは、タイトル画面コンテンツ要求R102に対する応答として、中継サーバ200からコンテンツ再生装置100に、エラーコンテンツC200が送られている点である。コンテンツ再生装置100は、タイトル画面コンテンツ要求R102に対する応答として取得したコンテンツがエラーコンテンツC200であった場合、サーバエラーが発生したものと判定する。
サーバエラーが発生した場合の処理をエラーコンテンツC200に基づいて実行する場合、トップ画面コンテンツC101の状態遷移定義情報には、サーバエラーを検出したとき、エラーコンテンツC200の状態遷移定義情報に処理を移すことを指示するコマンドが含まれている必要がある。コンテンツ再生装置100は、この指示に従って、サーバエラーが検出されると、エラーコンテンツC200の状態遷移定義情報を読み出し、読み出した状態遷移定義情報に指定されている処理の実行を開始する。
エラーコンテンツC200の状態遷移定義情報には、エラーコンテンツC200に含まれる表示意制御情報からサーバエラー画面I200を生成して表示することを指示するコマンドが含まれている。コンテンツ再生装置100は、エラーコンテンツC200の表示制御情報(トップ画面コンテンツC101のサーバエラー画面用表示制御情報1014と同一)に基づいて、サーバエラー画面I200を生成して表示する(図5(b)参照)。この時点で、コンテンツ再生装置100に表示される表示画面が、トップ画面I101からサーバエラー画面I200に遷移する。また、エラーコンテンツC200の状態遷移定義情報には、サーバエラー画面I200表示中にユーザから決定ボタンを押下する操作を受け付けた場合、トップ画面コンテンツC101の状態遷移定義情報1011に処理を移すことが指示するコマンドが含まれている。コンテンツ再生装置100は、決定ボタンを押下する操作を受け付けると、トップ画面コンテンツC101の状態遷移定義情報1011を読み出して、読み出した状態遷移定義情報1011に指定されている処理の実行を開始する。
(コンテンツ再生装置の処理)
コンテンツ再生装置100の処理について、図16〜図18を参照しながら説明する。
図16は、コンテンツ再生装置100において実行される処理の流れを示したフローチャートである。
コンテンツ再生装置100が処理を開始すると、まず、データ管理部112が、トップ画面コンテンツ要求R101を中継サーバ200に送る(S101)。そして、データ管理部112は、トップ画面コンテンツ要求R101に対する応答として、トップ画面コンテンツC101を取得する(S102)。トップ画面コンテンツC101の取得が完了すると(S102:Yes)、データ管理部112は、トップ画面コンテンツC101を記憶部130に記憶し、イベント処理部111にデータ取得成功通知を送る。
データ管理部112からデータ取得成功通知を受け取ると、イベント処理部111は、記憶部130からトップ画面コンテンツC101の状態遷移定義情報1011を読み出す。以後の処理は、この状態遷移定義情報C1011のコマンドを順に実行することにより実現される。
イベント処理部111は、トップ画面I101を生成するよう表示画面生成部113に要求する。表示画面生成部113は、記憶部130からトップ画面コンテンツC101の表示制御情報1012を読み出し、これに基づいてトップ画面I101を生成する(S103)。生成されたトップ画面I101は、表示制御部115に渡される。表示制御部115は、渡されたトップ画面I101を表示部140に表示させる(S104)。
ユーザ操作解析部117は、ユーザによるアルバムの選択を受け付け、選択されたアルバムのアルバムIDをイベント処理部111に返す(S105)。イベント処理部111は、このアルバムIDにより特定されるアルバムのタイトル画面コンテンツC102を取得するよう、データ管理部112に要求する。データ管理部112は、この要求に応じて、タイトル画面コンテンツ要求R102を中継サーバ200に送る(S106)。
タイトル画面コンテンツ要求R102送信後の通信処理において、エラー解析S107が行われる。エラー解析S107により、タイトル画面コンテンツC102が正常に取得できたと判定された場合、エラーコード200がパラメータファイルerror.txtに格納される。また、タイトル画面コンテンツC102がサーバエラーにより取得できなかったと判定された場合、エラーコード400がパラメータファイルerror.txtに格納される。また、タイトル画面コンテンツC102が端末エラーにより取得できなかったと判定された場合、エラーコード400がパラメータファイルerror.txtに格納される。イベント処理部111は、エラーコードが格納されているパラメータファイルerror.txtを参照して、以後の処理を決定する(S108)。
パラメータファイルerror.txtにエラーコード200が格納されていた場合、すなわち、タイトル画面コンテンツC102が正常に取得された場合、イベント処理部111は、記憶部130からタイトル画面コンテンツC102の状態遷移定義情報1011を読み出す。イベント処理部111は、タイトル画面コンテンツC102の状態遷移定義情報に基づいて、タイトル画面I102の生成を表示画面生成部113に要求する。表示画面生成部113は、記憶部130からタイトル画面コンテンツC102の表示制御情報を読み出し、これに基づいてタイトル画面I102を生成する(S109)。生成されたタイトル画面I102は、表示制御部115に渡される。表示制御部115は、渡されたタイトル画面I102を表示部140に表示させる(S110)。このように、タイトル画面I102を表示部140に正常に表示させることができた場合、スライドを順に表示するスライドコンテンツ再生S111が実行される。
パラメータファイルerror.txtにエラーコード500が格納されていた場合、すなわち、端末エラーによりタイトル画面コンテンツC102が正常に取得できなかった場合、イベント処理部111は、トップ画面コンテンツC101の状態遷移定義情報1011に基づいて、端末エラー画面E201の生成を表示画面生成部113に要求する。表示画面生成部113は、記憶部130からトップ画面コンテンツC101の表示制御情報1013を読み出し、これに基づいて端末エラー画面E201を生成する(S112)。生成された端末エラー画面E201は、表示制御部115に渡される。表示制御部115は、渡された端末エラー画面E201を表示部140に表示させる(S113)。
パラメータファイルerror.txtにエラーコード400が格納されていた場合、すなわち、サーバエラーによりタイトル画面コンテンツC102が正常に取得できなかった場合、イベント処理部111は、トップ画面コンテンツC101の状態遷移定義情報1011に基づいて、サーバエラー画面E202の生成を表示画面生成部113に要求する。表示画面生成部113は、記憶部130からトップ画面コンテンツC101の表示制御情報1014を読み出し、これに基づいてサーバエラー画面E202を生成する(S114)。生成されたサーバエラー画面E202は、表示制御部115に渡される。表示制御部115は、渡されたサーバエラー画面E202を表示部140に表示させる(S115)。
端末エラー画面E201またはサーバエラー画面E202が表示されている状態で、ユーザ操作解析部117は、ユーザにより決定ボタンが押下されることを待ち受ける(S116)。ユーザにより決定ボタンが押下されると(S116:Yes)、ユーザ操作解析部117は、当該操作の発生をイベント処理部111に通知する。この操作情報通知を受けたイベント処理部111は、再度トップ画面I101を表示することを表示制御部115に指示する。表示制御部115は、トップ画面I101を表示部140に再度表示させる(S104)。
次に、上述したエラー解析S107について、図17を参照しながら、もう少し詳しく説明する。
図17は、エラー解析S107において実行される処理の流れを示したフローチャートである。図17は、特に、サーバエラーが発生したとき中継サーバ装置200からエラーコードECが送られてくる場合に好適な処理を示している。
データ管理部112は、タイトル画面コンテンツ要求R102に対する応答として中継サーバ200からデータを受信すると、受信したデータが正常なデータであるか否かを検証する(S201)。タイトル画面コンテンツC102の取得がHTTPにより実現されている場合について具体的に言えば、データ管理部112は、HTTPヘッダに含まれるContent−Lengthフィールドの値と受信したデータのボディー長とを比較し、取得したデータが欠落のない正常なデータであるか否かを検証する。これにより、データ管理部112は、中継サーバ200からコンテンツ再生装置100に至る通信経路にて発生した障害を検出することができる。
タイトル画面コンテンツ要求R102に対する応答として中継サーバ200から取得したデータに異常があった場合、データ管理部112は、受信処理においてエラーが発生したものと判定する(S201:Yes)。この場合、データ管理部112は、トップ画面コンテンツC101の一部として記憶部130に記憶されているパラメータ用ファイルerror.txtにエラーコード500を書き込む(S202)。
タイトル画面コンテンツ要求R102に対する応答として中継サーバ200から取得したデータが正常なデータであった場合(S201:No)、データ管理部112は、取得したデータがエラーコードであるか否かを判定する(S203)。当該判定は、所定のエラーコードパターンとのパターンマッチングによる方法など、任意の方法で実現されるものであって構わない。これにより、データ管理部112は、中継サーバ200において発生したサーバエラーを検出することができる。
中継サーバ200から取得したデータがエラーコードであった場合(S203:Yes)、すなわち、中継サーバ200においてサーバエラーが発生したことを検出した場合、データ管理部112は、パラメータ用ファイルerror.txtにエラーコード400を書き込む(S204)。
中継サーバ200から取得したデータがエラーコードではなかった場合(S203:No)、コンテンツ管理部112は、更にしたデータに対するコンテンツ解析を実行する(S205)。具体的には、コンテンツ解析S205において、取得したデータが所定のデータ構造を有するコンテンツデータ(図6参照)であるか否かが判定され、さらに、取得したデータが所定のデータ構造を有するコンテンツデータであった場合には、当該コンテンツデータに対する構文解析(具体的には、コンテンツデータに含まれる状態遷移定義情報や表示制御情報に対するXML構文解析)が行われる。
コンテンツ解析S205の結果、取得したデータが所定のデータ構造を有するコンテンツデータではないと判定された場合、または、構文解析の結果、コンテンツデータに構文エラーが発見された場合(S206:No)、データ管理部112は、パラメータ用ファイルerror.txtにエラーコード500を書き込む(S202)。
一方、コンテンツ解析S205の結果、取得したデータが所定のデータ構造を有するコンテンツデータであり、かつ、構文エラーを含まないことが判定された場合(S206:No)、パラメータ用ファイルerror.txtにエラーコード200を書き込む(S207)。また、データ取得成功通知をイベント処理部111に送り、取得に成功したコンテンツデータを記憶部130に記憶する。
図18は、図18に示したエラー解析処理の変形例を示すフローチャートである。図18は、特に、サーバエラーが発生したとき中継サーバ装置200からエラーコンテンツ200が送られてくる場合に好適な処理を示している。
図18に示したフローチャートと、図17に示したそれとの相違点は、取得したデータがエラーコードECであるか否かを判定するステップS203を省略するとともに、コンテンツ解析S205により取得したデータが正常なコンテンツデータであることが判定された後に(S206:Yes)、そのコンテンツデータがエラーコンテンツC200であるか否かを判定するステップS210を追加した点である。そして、取得したコンテンツデータがエラーコンテンツC200であった場合には(S210:Yes)、データ管理部112は、パラメータ用ファイルerror.txtにエラーコード300を書き込む(S211)ようにしている。
図19は、図17に示したエラー解析処理の他の変形例を示すフローチャートである。図19は、特に、サーバエラーが発生したとき中継サーバ装置200からエラーコードECとエラーコンテンツ200との何れが送られてくるかが予め決まっていない(どちらも送られてくる可能性がある)場合に好適な処理を示している。
図19に示したフローチャートと、図17に示したそれとの相違点は、コンテンツ解析S205により取得したデータが正常なコンテンツデータであることが判定された後に(S206:Yes)、そのコンテンツデータがエラーコンテンツC200であるか否かを判定するステップS210を追加した点である。そして、取得したコンテンツデータがエラーコンテンツC200であった場合には(S210:Yes)、データ管理部112は、パラメータ用ファイルerror.txtにエラーコード300を書き込む(S211)ようにしている。
(中継サーバの処理)
次に、中継サーバ200側の処理について、図20を参照しながら説明する。
図20は、中継サーバ200において実行される処理の流れを示したフローチャートである。図20では特に、サーバエラーが発生した場合に、エラーコードECをコンテンツ再生装置100に送信する構成に対して好適な処理を示している。
中継サーバ200は、コンテンツ再生装置100からトップ画面コンテンツ要求R101が送られてくることを待ち受ける(T101)。そして、トップ画面コンテンツ要求R101を受信すると、トップ画面コンテンツC101を合成するために必要な合成用データD101をネットワークアルバムDB300から取得し(T102)、取得した合成用データD101からトップ画面コンテンツC101を合成する(T103)。トップ画面コンテンツC101の合成が完了すると、中継サーバ200は、トップ画面コンテンツC101を、コンテンツ再生装置100に送信する(T104)。
次に、中継サーバ200は、コンテンツ再生装置100からタイトル画面コンテンツ要求R102が送られてくることを待ち受ける(T105)。タイトル画面コンテンツ要求R102を受信すると、中継サーバ200は、タイトル画面コンテンツC102を合成するために必要な合成用データD102を、ネットワークアルバムDB300に対して要求する(T106)。ネットワークアルバムDB300からの合成用データD102の取得が成功すると(T107:Yes)、中継サーバ200は、タイトル画面コンテンツC102の合成を開始する(T108)。そして、タイトル画面コンテンツC102の合成に成功すれば(T109:Yes)、タイトル画面コンテンツC102をコンテンツ再生装置100に対して送信する(T110)。その後、中継サーバ200は、コンテンツ再生装置100からの要求に応じて、スライドコンテンツを順に生成して送信する処理T111を実行する。
一方、ネットワークアルバムDB300からの合成用データD102の取得が失敗した場合(T107:No)、あるいは、タイトル画面コンテンツの合成が失敗した場合(T109:No)、中継サーバ装置200は、タイトル画面コンテンツC102を送信することが不可能であることを示すエラーコードECを、コンテンツ再生装置100に送信する(T112)。
ステップT107にて合成用データD102の取得に失敗したことが判定される場合としては、(1)ネットワークアルバムDB300が落ちていたり機能が停止していたりする場合、(2)中継サーバ200とネットワークアルバムDB300との間の通信エラーが発生した場合、(3)中継サーバ200の内部処理エラー、(4)コンテンツ再生装置100からの間違ったタイトル画面コンテンツ要求R102に基づいて、中継サーバ200がネットワークアルバムDB300に不正なデータ要求を行った場合、などが挙げられる。
なお、サーバエラーが発生した場合にエラーコンテンツC200をコンテンツ再生装置100に提供する構成の場合、図20に示したフローチャートにおいて、エラーコードECを送信する工程T112を、エラーコンテンツを送信する工程T112´に変更すればよい。
また、サーバエラーが発生した場合にコンテンツ再生装置100に提供するエラーコンテンツC200を中継サーバ200において合成する場合には、エラーコンテンツC200の合成に失敗する場合も生じ得る。このため、エラーコンテンツC200の合成に成功した場合にはそのエラーコンテンツC200をコンテンツ再生装置100に送信し、エラーコンテンツC200の合成に失敗した場合には、エラーコードECをコンテンツ再生装置100に送信するよう、中継サーバ装置200を構成することが好ましい。
図21は、中継サーバ200を上記のように構成する場合について、エラーコンテンツC200を送信する工程T112´の詳細を示したフローチャートである。
中継サーバ200は、タイトル画面コンテンツC102を合成するための合成用データの取得に失敗した場合(T107:No)、または、タイトル画面コンテンツC102の合成に失敗した場合(T109:No)、エラーコンテンツC200を合成する(T201)。エラーコンテンツC200の合成に成功すれば(S202:Yes)、そのエラーコンテンツC200をコンテンツ再生装置100に送信し(S203)、失敗すればエラーコードECを送信する(S204)。
なお、中継サーバ200は、合成用データを自装置内の記憶部から読み出してエラーコンテンツC200を合成するものであってもよいし、あるいは、合成用データをネットワークアルバムDB300から取得してエラーコンテンツC200を合成するものであってもよい。後者の場合、エラーコンテンツC200を合成するための合成用データの取得に失敗した場合にも、エラーコードECをコンテンツ再生装置に送信するよう構成してもよい。
(通信時以外のエラー処理について)
以上では、コンテンツデータであるトップ画面コンテンツC101を取得するための通処理において発生した通信エラーに対処するための処理についてしたが、通信処理以外の処理において発生したエラーに対しても、トップ画面コンテンツC101のデータ構造を利用して有効に対処することができる。
例えば、トップ画面I101を再生する処理においてエラーが発生した際に、ユーザに再生エラーが発生したことを知らせる再生エラー画面を表示するよう、コンテンツ再生装置100を構成することができる。トップ画面I101を再生する処理において発生し得るエラーとしては、トップ画面用表示制御情報1012の記述ミス、トップ画面用表示制御情報1012に指定された処理を実行する際の処理エラー、トップ画面表示制御情報1012から参照されている画像データの不適合、および、画像データの展開処理、あるいは、画像データの描画処理における処理エラーなどが挙げられる。
以下、主コンテンツ用の表示制御情報に基づいて表示画面を生成して表示するコンテンツ再生処理において再生エラーが発生したときの処理について、簡単に説明する。
図22は、再生エラーの発生に対処するための処理を指定した状態遷移定義情報の一例を示した図である。
1901は、test.svgに格納されている表示制御情報に基づいて表示画面を生成して表示することを指示するコマンドである。このコマンドに基づいて、表示画面生成部113は、test.svgに格納されている表示制御情報に基づいて表示画面を生成して、表示制御部115に表示させる。表示画面生成部113は、表示画面の生成に成功するとエラーコード200をイベント処理部111に返す。また、表示画面生成部113は、test.svgに含まれている各コマンドを実行する過程でエラーが発生すると、エラーコードをイベント処理部111に返す。具体的には、上記表示制御情報から参照されている画像データが、画像データ展開部114により展開することができない画像データであるとき、フォーマットエラーを示すエラーコード400をイベント処理部111に返す。また、サイズエラーを検出したときは、エラーコード300をイベント処理部111に返す。イベント処理部111は、返されたエラーコードを、パラメータ用ファイルerror.txtに格納する。
1902は、パラメータ用ファイルerror.txtに格納されているエラーコードに基づいて処理を分岐させるためのコマンドである。具体的には、エラーコードが200である場合、idがsuccessであるコマンドに処理を移すこと、エラーコードが300であるときidがsizerrorであるコマンドに処理を移すこと、エラーコードが400であるときidがfomaterrorであるコマンドに処理を移すことが指定されている。
1903は、各エラーコードに対して実行するべき処理を指定したコマンド群である。idがsuccessである第1のコマンドは、エラーコードが200である場合に実行されるコマンドであり、success.svgに格納されている表示制御情報に基づいて表示画面を生成して表示する処理を指定している。idがsizerrorである第2のコマンドは、エラーコードが300である場合に実行されるコマンドであり、sizerror.svgに格納されている表示制御情報に基づいて表示画面を生成して表示する処理を指定している。idがfomaterrorである第3のコマンドは、エラーコードが400である場合に実行されるコマンドであり、fomaterror.svgに格納されている表示制御情報に基づいて表示画面を生成して表示する処理を指定している。
以上のような状態遷移定義情報をコンテンツデータに埋め込むことにより、通信エラー以外の各種エラーに対しても、通信エラーに対するのと同様の方法により対処することができる。
(エラー画面表示後に遷移する画面について)
以上では、コンテンツデータであるトップ画面コンテンツC101に含まれるエラー画面用表示制御情報により生成されたエラー画面を表示した後、トップ画面I101に表示画面を遷移させる例について説明したが、エラー画面を表示した後に遷移する画面はトップ画面I101に限定されるものではなく、コンテンツデータにおいて任意に指定し得るものである。ここでは、コンテンツデータのこの特徴を利用した、スライドコンテンツ再生について、図23〜24を参照しながら簡単に説明する。
図23(a)は、端末エラーが発生した場合について、コンテンツ再生システム1において実行されるスライドコンテンツ再生の流れを示すシーケンス図である。
コンテンツ再生装置100がi−1番目のスライドコンテンツCi−1を再生している状態から説明を始める。このとき、コンテンツ再生装置100は、スライドコンテンツCi−1の主コンテンツでスライドi−1を表示している。スライドコンテンツCi−1の状態遷移定義情報には、次のスライドコンテンツCiを要求するスライドコンテンツ要求Riを中継サーバ200に送ることを指示するコマンドが含まれている。これに従って、コンテンツ再生装置100は、スライドコンテンツ要求Riを、中継サーバ200に送る。中継サーバ200は、ネットワークアルバムDBから合成用データDiを取得し、スライドコンテンツCiを合成してコンテンツ再生装置100に送る。
コンテンツ再生装置100は、スライドコンテンツCiを取得した後、スライドi−1の表示を開始してから所定のスライド表示時間が経過した時点、あるいは、ユーザからの次画像表示指示を受け付けた時点で、スライドコンテンツCiから状態遷移定義情報を読み出し、スライドコンテンツCiの状態遷移定義情報に基づいた処理を開始する。
スライドコンテンツCiの状態遷移定義情報には、スライドコンテンツCiに含まれている表示制御情報に基づいて主コンテンツであるスライドiを生成して表示することを指示するコマンドが含まれている。これに従い、コンテンツ再生装置100は、スライドコンテンツCiの表示制御情報を読み出して、これに基づいてスライドiを生成して表示する。
スライドコンテンツCiの状態遷移定義情報には、次に、次のスライドコンテンツCi+1を要求するスライドコンテンツ要求Ri+1を中継サーバ200に送ることを指示するコマンドが含まれている。これに従って、コンテンツ再生装置100は、スライドコンテンツ要求Ri+1を、中継サーバ200に送る。中継サーバ200は、ネットワークアルバムDBから合成用データDi+1を取得し、スライドコンテンツCi+1を合成してコンテンツ再生装置100に送る。
図23(a)では、このスライドコンテンツCi+1が中継サーバ200から送出された後、端末エラーが発生したものとしている。コンテンツ再生装置100は、スライドコンテンツ要求Ri+1を送信してから所定の時間が経過してもスライドコンテンツCi+1の取得が完了しなかった場合、端末エラーが発生したと判定する。このような端末エラーが発生した場合、コンテンツ再生装置100は、次のスライドi+1を表示するべきタイミングが来ても、次のスライドi+1を表示することができない。
スライドコンテンツCiの状態遷移定義情報には、端末エラーを検出した場合に、スライドコンテンツCiの副コンテンツである端末エラー画面E301(図23(b)参照)を生成して表示することが指示されている。コンテンツ再生装置100は、これに従って、スライドコンテンツCiから端末エラー画面用表示制御情報を読み出し、読み出した端末エラー画面表示制御情報に基づいて端末エラー画面E301を生成して表示する。なお、端末エラー画面E301を生成して表示するタイミングは、上記端末エラーが発生した時点であってもよいし、現在表示中のスライドiの次に表示するべきスライドi+1の表示を開始するべき時点であってもよい。図23(a)は後者の場合を示しているが、これに限定されるものではない。
スライドコンテンツCiの状態遷移定義情報には、端末エラー画面E301を表示している状態でユーザが決定ボタンを押下した場合、サムネイル一覧表示画面I301を表示することが指示されている。
図23(b)は、このときコンテンツ再生装置100において表示されるサムネイル一覧表示画面I301の構成を例示する画面構成図である。図23(b)からも分かるように、サムネイル一覧表示画面I301には現在閲覧中のアルバムに含まれる画像を各々縮小してなるサムネイル群が行列状に配置されて一覧表示されている。ユーザは、このサムネイル一覧表示画面I301から、所望の画像を選択することなどが可能である。
ここで、端末エラー画面E301から遷移する画面を特にサムネイル一覧表示画面I301に設定したことは、発生したエラーが端末エラーである場合、中継サーバ200自体は正常に動作しているので、再度スライドコンテンツCiを要求すれば今度は取得できる可能性が高いためである。
図24(a)は、端末エラーが発生した場合について、コンテンツ再生システム1において実行されるスライドコンテンツ再生の流れを示すシーケンス図である。
図24において注目すべきは、中継サーバ200がネットワークアルバムDBから合成用データDi+1の取得に失敗して、スライドコンテンツCi+1を合成することができないというサーバ側のエラーが発生している点である。このようにサーバエラーが発生した場合、中継サーバ200は、コンテンツ要求R1+iに対する応答として、エラーコートECをコンテンツ再生装置100に送り返す。コンテンツ再生装置100は、このエラーコードECを取得すると、サーバエラーが発生したものと判定する。
スライドコンテンツCiの状態遷移定義情報には、サーバエラーが発生したと判定した場合、スライドコンテンツCiの副コンテンツであるサーバエラー画面E302(図24(b)参照)を生成して表示することが指示されている。コンテンツ再生装置100は、これに従って、スライドコンテンツCiからサーバエラー画面用表示制御情報を読み出し、読み出したサーバエラー画面用表示制御情報に基づいてサーバエラー画面E302を生成して表示する。なお、サーバエラー画面E302を生成して表示するタイミングは、上記エラーコードを検出した時点でもよいし、現在表示中のスライドiの次に表示するべきスライドi+1の表示を開始するべき時点であってもよい。図24(a)は後者の場合を示しているが、これに限定されるものではない。
スライドコンテンツCiの状態遷移定義情報には、サーバエラー画面E302を表示している状態でユーザが決定ボタンを押下した場合、トップ画面I101を表示することを指示するコマンドが含まれている。
ここで、サーバエラー画面E302から遷移する画面を特にトップ画面I101に設定しているのは、発生したエラーがサーバエラーである場合、再度スライドコンテンツCiを要求しても取得できる可能性が低く、ユーザに閲覧対象となっているアルバムを再選択させる方が好ましいためである。
図25は、以上のようなスライドコンテンツ再生を実現するための状態遷移定義情報を例示する図である。図25では、1枚目のスライドコンテンツに含まれる状態遷移定義情報を示している。
2201は、次のスライドコンテンツとして2枚目のスライドコンテンツを要求するスライドコンテンツ要求を中継サーバ200に送ることを指示するコマンドである。2201は、発生した通信エラーの種類に応じて処理を分岐するためのコマンドであり、図7に示した1101cと同様に構成されている。2203は、サーバエラーを検出した場合に、1枚目のスライドコンテンツの副コンテンツであるサーバエラー画面を生成して表示することを指示するコマンドである。また、同時に、サーバエラー画面から遷移する表示画面としてトップ画面が指定されている。2204は、端末エラーを検出した場合に、1枚目のスライドコンテンツの副コンテンツである端末エラー画面を生成して表示することを指示するコマンドである。また、同時に、サーバエラー画面から遷移する表示画面としてサムネイル一覧表示画面が指定されている。
図26は、以上のようなスライドコンテンツ再生の処理の流れを示すフローチャートである。なお、図16に示したスライドコンテンツ再生S111は、このフローチャートに示した処理として実現することができる。
スライドコンテンツ再生開始時に、変数iが1に初期化される。この変数iは現在処理中のスライドコンテンツが何番目のスライドコンテンツであるかを示す変数であり、この変数iが再生すべきスライドコンテンツの数nに達するまで以下の処理が反復される。
i番目のスライドコンテンツに対する処理においては、まず、データ管理部112が、スライドコンテンツCiを要求するコンテンツ要求Riを中継サーバ200に送る(S302)。そして、そして、スライドコンテンツCiを取得するための通信処理において発生するエラーを検出するエラー解析S303が実行される。
エラー解析S303において実行される処理は、図27に示したように、図17に示したエラー解析処理S107と全く同様に実現される。
エラー解析S303により、スライドコンテンツCiが正常に取得できたと判定された場合、エラーコード200がパラメータファイルerror.txtに格納される。また、スライドコンテンツCiがサーバエラーにより取得できなかったと判定された場合、エラーコード400がパラメータファイルerror.txtに格納される。また、スライドコンテンツCiが端末エラーにより取得できなかったと判定された場合、エラーコード400がパラメータファイルerror.txtに格納される。イベント処理部111は、エラーコードが格納されているパラメータファイルerror.txtを参照して、以後の処理を決定する(S304)。
パラメータファイルerror.txtにエラーコード200が格納されていた場合、すなわち、スライドコンテンツCiが正常に取得された場合、イベント処理部111は、記憶部130からスライドコンテンツCiの状態遷移定義情報を読み出す。イベント処理部111は、スライドコンテンツCiの状態遷移定義情報に基づいて、スライドiの生成を表示画面生成部113に要求する。表示画面生成部113は、記憶部130からスライドコンテンツCiの表示制御情報を読み出し、これに基づいてスライドiを生成する(S305)。生成されたスライドiは、表示制御部115に渡される。表示制御部115は、渡されたスライドiを表示部140に表示させる(S306)。このように、スライドiを表示部140に正常に表示させることができた場合、変数iが1増加される(S307)。スライドコンテンツCiが最後のスライドコンテンツであれば(S308:Yes)、処理を終了する。そうでなければ(S308:No)、次のスライドコンテンツCi+1に対する処理が開始される。
パラメータファイルerror.txtにエラーコード500が格納されていた場合、すなわち、端末エラーによりスライドコンテンツCiが正常に取得できなかった場合、イベント処理部111は、スライドコンテンツCi−1(i=1の場合はタイトル画面コンテンツC102)の状態遷移定義情報に基づいて、端末エラー画面E301の生成を表示画面生成部113に要求する。表示画面生成部113は、記憶部130からスライドコンテンツCi−1の端末エラー画面用表示制御情報を読み出し、これに基づいて端末エラー画面E301を生成する(S309)。生成された端末エラー画面E301は、表示制御部115に渡される。表示制御部115は、渡された端末エラー画面を表示部140に表示させる(S310)。
端末エラー画面E301が表示されている状態で、ユーザ操作解析部117は、ユーザにより決定ボタンが押下されることを待ち受ける(S311)。ユーザにより決定ボタンが押下されると(S311:Yes)、ユーザ操作解析部117は、当該操作の発生をイベント処理部111に通知する。この操作情報通知を受けたイベント処理部111は、サムネイル一覧表示画面I301を生成するためのサムネイル一覧表示画面コンテンツの状態遷移定義情報を読み出す。そして、該状態遷移定義情報に従って、イベント処理部111は、サムネイル一覧表示画面I301を表示することを表示制御部115に指示する。表示制御部115は、サムネイル一覧表示画面コンテンツから表示制御情報を読み出し、これに基づいてサムネイル一覧表示画面I301を生成する(S312)。表示制御部115は、サムネイル一覧表示画面I301を表示部140に表示させる(S313)。
サムネイル一覧表示画面I301が表示されている状態で、ユーザ操作解析部117は、ユーザにより所望のスライドが選択されることを待ち受ける(S314)。ユーザにより所望のスライドが選択されると、変数iを選択されたスライドの番号に設定して(S315)、工程S302に戻る。
パラメータファイルerror.txtにエラーコード400が格納されていた場合、すなわち、サーバエラーによりスライドコンテンツCiが正常に取得できなかった場合、イベント処理部111は、スライドコンテンツCi−1(i=1の場合はタイトル画面コンテンツC102)の状態遷移定義情報に基づいて、サーバエラー画面E302の生成を表示画面生成部113に要求する。表示画面生成部113は、記憶部130からスライドコンテンツCi−1のサーバエラー画面用表示制御情報を読み出し、これに基づいてサーバエラー画面E302を生成する(S316)。生成されたサーバエラー画面E302は、表示制御部115に渡される。表示制御部115は、渡されたサーバエラー画面E302を表示部140に表示させる(S317)。
サーバエラー画面E302が表示されている状態で、ユーザ操作解析部117は、ユーザにより決定ボタンが押下されることを待ち受ける(S318)。ユーザにより決定ボタンが押下されると(S311:Yes)、処理を図16に示した工程S103に移し、トップ画面コンテンツI101を表示する。
(他のコンテンツデータに格納された表示制御情報の利用について)
なお、上述したコンテンツ再生装置100は、再生対象コンテンツデータに含まれている処理指定情報(状態遷移定義情報)により指定された処理を実行する過程で発生したエラーを検出するイベント処理部111(エラー検出手段)と、イベント処理部111(エラー検出手段)がエラーを検出したとき、上記再生対象コンテンツデータに含まれているエラー画面用表示制御情報(副コンテンツ)を再生する表示画面生成部113(副コンテンツ再生手段)と、を備えるものであった。しかし、エラー検出時に、再生対象コンテンツに限らず、コンテンツ再生装置100内に格納済みの他のコンテンツデータに含まれているエラー画面用表示制御情報(副コンテンツ)を再生するようにしてもよい。
このことについて、以下、図28を参照して、もう少し詳しく説明する。
図28は、エラー検出時に再生対象コンテンツデータの遷移先とすることができるコンテンツデータのバリエーションを説明するための説明図である。
図28に示した4つの例において、コンテンツ再生装置100は、パラメータコンテンツPP1、第1のコンテンツデータTP1、第2のコンテンツデータTP2、および、第3のコンテンツデータTP3を中継サーバ200から順に取得し、取得したコンテンツデータTP1〜TP3を順に再生する。パラメータコンテンツPP1は、コンテンツデータTP1〜TP3を再生中にコンテンツ再生装置が参照するパラメータを格納したコンテンツデータである。
図28(a)に示した例では、このパラメータコンテンツPP1に予めエラーコンテンツが格納されている。コンテンツデータTP2の状態遷移定義情報には、エラー検出時に遷移すべきコンテンツとして、パラメータコンテンツコンテンツのエラーコンテンツが指定されている。このため、コンテンツ再生装置100は、状態遷移定義情報に指定された処理の実行中にエラーを検出すると、パラメータコンテンツに含まれているエラーコンテンツを再生する。
図28(b)に示した例では、再生済コンテンツデータとして記憶部130に記憶されているコンテンツデータである、コンテンツデータTP1にエラーコンテンツが格納されている。コンテンツデータTP2の状態遷移定義情報には、エラー検出時に遷移すべきコンテンツとして、コンテンツデータTP1のエラーコンテンツが指定されている。コンテンツ再生装置100は、状態遷移定義情報に指定された処理の実行中にエラーを検出すると、この状態遷移定義情報に基づいて、コンテンツデータTP1に含まれるエラーコンテンツを再生する。
図28(c)に示した例では、記憶部130に記憶されているコンテンツデータである、コンテンツデータTP0にエラーコンテンツが格納されている。コンテンツデータTP0は、起動直後にパラメータコンテンツPPとともに取得され、一連のコンテンツデータの再生が終了するまで記憶部130に保持され続けるコンテンツである。コンテンツデータTP2の状態遷移定義情報には、エラー検出時に遷移すべきコンテンツとして、コンテンツデータTP0のエラーコンテンツが指定されている。コンテンツ再生装置100は、状態遷移定義情報に指定された処理の実行中にエラーを検出すると、この状態遷移定義情報に基づいて、コンテンツデータTP0に含まれるエラーコンテンツを再生する。
図28(d)に示した例では、コンテンツデータTP1(この例での再生対象コンテンツデータ)が再生されている時点では、まだ取得完了していないコンテンツデータTP3にエラーコンテンツが格納されている。コンテンツ再生装置100は、状態遷移定義情報に指定された処理の実行中にエラーを検出すると、この状態遷移定義情報に基づいて、コンテンツデータTP3を取得し、取得したコンテンツデータTP3に含まれているエラーコンテンツを再生する。
以上のように、コンテンツ再生装置100がエラー検出時に再生するエラーコンテンツは、必ずしも再生対象コンテンツデータに含まれているものに限定されるのではなく、再生対象コンテンツデータの状態遷移定義情報により指定されたコンテンツであれば、どのコンテンツデータに含まれるものであってもよい。
次に、以上のことを、状態遷移定義情報の具体的な構成例2例を挙げて、さらに詳しく説明する。
図29は、本発明により実現可能なコンテンツの遷移例を示す図である。
コンテンツデータTP2の状態遷移定義情報には、コンテンツデータTP3の取得が指示されており、画像表示装置100は、コンテンツデータTP2のコンテンツTP2c再生中に、コンテンツデータTP3の取得を試みる。そして、コンテンツデータTP3の取得に成功した場合には、コンテンツデータTP3のコンテンツTP3cを再生する。一方、サーバエラーを検出した場合には、コンテンツデータTP1のエラーコンテンツTP1e(サーバエラー画面用表示制御情報)が再生され、端末エラーを検出した場合には、パラメータコンテンツPP1のエラーコンテンツPP1eが再生され(端末エラー画面用表示制御情報)が再生される。
図30は、図29に示したコンテンツの遷移例を実現する状態遷移定義情報の構成例である。図30に示した状態遷移定義情報は、図7に示したそれと同様、MTDにより記述されたものである。
図30に示した状態遷移定義情報と、図7に示したそれとの相違点は、遷移先判定ステップにおけるエラーコード毎に定義された実行対象ステップの遷移先の違いのみである。符号3001で示した行で、エラーコードが200である場合(すなわち、コンテンツデータTP3が正常に取得できた場合に対応)、“tp3.mtd”に実行対象を移すことが指定されている。“tp3.mtd”はコンテンツデータTP3の状態遷移定義情報を示している。これにより、コンテンツデータTP3が正常に取得できた場合には、コンテンツデータTP3のコンテンツTP3cが再生される。
また、符号3002で示した行では、エラーコードが400である場合(すなわちサーバエラーが検出された場合に対応)、“tp1.mtd#servererror”、すなわち、コンテンツデータTP1の状態遷移定義情報のservererrorステップに実行対象を移すことが指定されている。これにより、コンテンツデータTP3の取得中にサーバエラーが検出された場合、コンテンツデータTP1のエラーコンテンツTP1eが再生される。
また、符号3003で示した行は、エラーコードが500である場合(端末エラーが発生した場合に対応)、“parameter.mtd#localerror”、すなわち、パラメータコンテンツPP1の状態遷移定義情報のlocalerrorステップに実行対象を移すことが指定されている。これにより、コンテンツデータTP3の取得中に端末エラーが検出された場合、パラメータコンテンツPP1のエラーコンテンツPP1eが再生される。
図31は、図30に示した状態遷移定義情報に基づいて実行される処理のうち、通信ステップの開始から上述した遷移先判定ステップが完了するまでの処理の流れを示したフローチャートである。通信ステップにおける各工程は、図17に示した工程S201〜207と同一であるので、同一の符号を付してその説明を省略する。また、遷移先判定ステップにおいて、遷移先を判定する工程S501、および、S501の判定結果に応じて実行対象ステップを遷移させる処理S502〜S504については、上に説明したとおりである。
図32は、本発明により実現可能な、コンテンツの他の遷移例を示す図である。
コンテンツデータTP4の状態遷移定義情報には、コンテンツデータTP5の取得が指示されており、画像表示装置100は、コンテンツデータTP4のコンテンツTP4c再生中に、コンテンツデータTP5の取得を試みる。そして、コンテンツデータTP5の取得に成功した場合には、コンテンツデータTP5のコンテンツTP5cを再生する。一方、サーバエラーを中継サーバ200からのエラーコードにより検出した場合には、コンテンツデータTP4自身のエラーコンテンツTP4se(サーバエラー画面用表示制御情報(servererror4.svg))が再生され、端末エラーを検出した場合には、コンテンツデータTP4自身のエラーコンテンツTP4le(端末エラー画面用表示制御情報(localerror4.svg))が再生される。
一方、図32に示した例では、コンテンツ再生装置100は中継サーバ200からエラーコードではなく、エラーコンテンツを受信することによってもサーバエラーを検出することができる。エラーコンテンツを受信した際、図5に示したように、受信したエラーコンテンツ自身を再生することも可能である。しかし、図32に示した例では、エラーコンテンツはエラー検出の目的だけに利用し、再生するエラーコンテンツとしては、パラメータコンテンツPP1のエラーコンテンツPP1e(サーバエラー画面用表示制御情報)を再生するようにしている。
図33は、図32に示したコンテンツの遷移例を実現する状態遷移定義情報の構成例である。これまでに例示した状態遷移定義情報と同様、ここでもMTDにより記述例を示す。
図33に示した状態遷移定義情報と、図30に示したそれとの相違点は、遷移先判定ステップにおけるエラーコード毎に定義された実行対象ステップの遷移先の違いのみである。
符号4001で示した行で、エラーコードが200である場合(すなわち、コンテンツデータTP5が正常に取得できた場合に対応)、“tp5.mtd”に実行対象を移すことが指定されている。“tp5.mtd”はコンテンツデータTP5の状態遷移定義情報を示している。これにより、コンテンツデータTP5が正常に取得できた場合には、コンテンツデータTP5のコンテンツTP5cが再生される。
また、符号4002で示した行では、エラーコードが300である場合(すなわちサーバエラーが、中継サーバ200からのエラーコンテンツにより検出された場合に対応)、“parameter.mtd#servererror”、すなわち、パラメターコンテンツPP1の状態遷移定義情報のservererrorステップに実行対象を移すことが指定されている。これにより、パラメータコンテンツTP5の取得中にエラーコンテンツによりサーバエラーが検出された場合、パラメータコンテンツPP1のエラーコンテンツPP1eが再生される。
また、符号4003で示した行では、エラーコードが400である場合(すなわちサーバエラーが中継サーバ200からのエラーコードにより検出された場合に対応)、“#servererror”、すなわち、自身の状態遷移定義情報のservererrorステップに実行対象を移すことが指定されている。図33からもわかるように、servererrorステップには、エラーコンテンツTP4seを再生することが指示されている。これにより、サーバエラーがエラーコードにより検出された場合、コンテンツデータTP4自身のエラーコンテンツTP4seが再生される。
また、符号4004で示した行は、エラーコードが500である場合(端末エラーが発生した場合に対応)、“#localerror”、すなわち、自身の状態遷移定義情報のlocalerrorステップに実行対象を移すことが指定されている。図33からもわかるように、localerrorステップには、エラーコンテンツTP4leを再生することが指示されている。これにより、端末エラーが検出された場合、コンテンツデータTP4自身のエラーコンテンツTP4leが再生される。
図34は、図33に示した状態遷移定義情報に基づいて実行される処理のうち、通信ステップの開始から上述した遷移先判定ステップが完了するまでの処理の流れを示したフローチャートである。通信ステップにおける各工程は、図19に示した工程S201〜210と同一であるので、同一の符号を付してその説明を省略する。また、遷移先判定ステップにおいて、遷移先を判定する工程S505、および、S505の判定結果に応じて実行対象ステップを遷移させる処理S506〜S509については、上に説明したとおりである。
以上のように、エラー検出時に再生するエラーコンテンツは、再生対象コンテンツデータの状態遷移定義情報に基づいて定まるものであり、再生対象コンテンツデータ以外のコンテンツデータに含まれているものであってもよい。そして、再生されるエラーコンテンツを内包するコンテンツデータは、その時点で未取得のコンテンツデータであっても構わない(図28(d)参照)。
ただし、再生対象コンテンツの再生が開始される時点で、記憶部130に格納済みのコンテンツデータからエラーコンテンツを読み出す方が、エラー検出時に迅速にエラーコンテンツに遷移できることは言うまでもない。しかしながら、記憶部130に格納済みのコンテンツデータからエラーコンテンツを読み出す場合、目的のコンテンツデータがエラー発生時に既に記憶部130から消去されている可能性が生じる。これは、テレビとして実現されたコンテンツ再生装置100では、記憶部130の容量が乏しく、不要になったコンテンツデータは削除する必要があるためである。
そこで、最後に、この記憶部130に格納されたコンテンツデータの管理について、簡単に説明する。
図35は、コンテンツ再生装置100において、記憶部130に格納されているコンテンツデータを管理するために用いられるコンテンツ管理テーブルを示した図である。図示したように、コンテンツ管理テーブルは、各コンテンツデータに対し、そのコンテンツデータの保存モードを定義するものである。保存モードとしては、少なくとも、staticとnormalとが用意されている。
コンテンツ再生装置100のデータ管理部112は、このコンテンツ管理テーブルに基づいて、記憶部130に格納されているコンテンツデータを管理する。具体的には、記憶部130の残りの記憶容量が所定の値を下回ると、保存モードがnormalであるコンテンツデータを削除し、空き容量を該所定の値に保つ。コンテンツデータの削除を実行した場合には、そのコンテンツデータに対応するコンテンツ名と保存モードとを、コンテンツ管理テーブルからも削除する。これにより、コンテンツ管理テーブルを参照するだけで、現有のコンテンツデータと、そのコンテンツデータの保存モードとが確認できる。
なお、図35に示したコンテンツ管理テーブルの内容から分かるように、パラメータコンテンツPP1(コンテンツ名parameter)はstaticで保存されているため、記憶部130から削除されることはない。従って、エラーコンテンツをパラメータコンテンツPP1に格納しておき、各コンテンツからこのパラメータコンテンツPP1内のエラーコンテンツを参照するようにすれば、確実にエラーコンテンツを表示することができる。
一方、コンテンツデータTP1(コンテンツ名tp1)、コンテンツデータTP2(コンテンツ名tp2)、および、コンテンツデータTP3(コンテンツ名tp3)は、記憶部130の空き容量が不足すればその時点で削除されてしまう。そこで、このようなnormalモードで保存されているコンテンツデータを参照する場合には、参照前にそのコンテンツデータが記憶部130に存在しているかを確認する存在確認ステップと、存在が確認できなかった場合には参照先をパラメータコンテンツPPに切り替える遷移先判定ステップとを実行すればよい。前者の存在確認ステップは、データ管理部112により実現される。
図36(a)は、コンテンツデータTP2に内包されている状態遷移定義情報の一部であり、エラー検出時の遷移先を判定する遷移先判定ステップに、コンテンツデータの存在確認ステップを組み込んだ状態遷移定義情報の一例である。
符号5001で示した行により、サーバエラーが検出された場合(エラーコード400に対応)、符号5002で示した箇所に定義されているコンテンツデータTP1の有無確認を実行するよう指定している。
符号5002で示した箇所は、コンテンツデータTP1の有無確認を実行することを指示している。具体的には、データ管理部112が上述したコンテンツ管理テーブルに基づいて、コンテンツデータTP1が記憶部130にまだ格納されているか否かを判定する。
符号5003で示した箇所は、コンテンツデータTP1が削除されていなければ、コンテンツデータTP1のサーバエラー対処ステップ(servererror)に処理対象を移すこと、および、削除済みであればパラメータコンテンツPP1のエラーコンテンツ削除対処ステップ(deleteerror)ステップに処理を移すことが指定されている。
図36(b)は、コンテンツデータTP1の状態遷移定義情報のうちの、サーバエラー対処ステップに対応する箇所を示したものである。ここでは、コンテンツデータTP1自身に含まれるエラーコンテンツを再生することが指定されている。
一方、図36(c)は、パラメータコンテンツPP1の状態遷移定義情報のうち、削除対処ステップに対応する箇所を示したものである。ここでは、図37に画面構成例を示したようなエラー画面を表示することを指示している。ここで表示されるエラー画面は、必要なコンテンツデータが削除されているため処理を継続することができないことをユーザに通知する表示画面である。
(付記事項)
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
最後に、コンテンツ再生装置100の制御部110に含まれる各ブロックは、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
すなわち、コンテンツ再生装置100は、各機能を実現する画像表示プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるコンテンツ再生装置100の画像表示プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記コンテンツ再生装置100に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、コンテンツ再生装置100を通信ネットワークと接続可能に構成し、通信ネットワークを介して上記プログラムコードを供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
また、中継サーバ装置200の制御部230に含まれる各ブロックも、ハードウェアロジックによって構成してもよいし、コンテンツ再生装置100について上述したのと同様に、CPUを用いてソフトウェアによって実現してもよい。