(57)【特許請求の範囲】
【請求項１】
複数の項目データと、前記複数の項目データの種類をそれぞれ識別する項目識別子と、該項目識別子の少なくとも一つに関連付けられた項目データの再生処理を実行するためのプログラムであって前記複数の項目データに添付される添付プログラムとから構成されるデジタルデータを読み込んで項目データを処理するデータ処理装置であって、
前記項目識別子は、前記複数の項目データに共通のデータ長を有し、かつ、前記項目データの終端を示す情報は、前記複数の項目データに共通であり、
前記項目識別子にそれぞれ対応する前記再生処理を行うための複数の処理モジュールを、内部プログラムとして格納するためのプログラム格納手段と、
前記項目識別子の内容に応じて、プログラム格納手段に格納されている前記処理モジュールか前記添付プログラムのいづれかを選択するプログラム選択手段と、
前記プログラム選択手段の選択により選択された前記処理モジュールまたは前記添付プログラムを実行して、対応する前記項目データを再生する処理実行手段とを備えることを特徴とするデータ処理装置。
【請求項２】
前記プログラム選択手段は、読み込んだ前記項目識別子に関連付けられた項目データを実行する添付プログラムがある場合に、前記添付プログラムを選択することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記内部プログラムの処理モジュールおよび前記添付プログラムは、作成者情報あるいはバージョン情報を含み、これらの情報の比較結果に基づいて、前記プログラム選択手段は、前記内部プログラムか前記添付プログラムのいづれかを選択することを特徴とする請求項１記載のデータ処理装置。
【請求項４】
複数の項目データと、前記複数の項目データの種類をそれぞれ識別する項目識別子と、該項目識別子の少なくとも一つに関連付けられた項目データの再生処理を実行するためのプログラムであって前記複数の項目データに添付される添付プログラムとから構成されるデジタルデータを読み込んで項目データを処理するデータ処理装置であって、
前記項目識別子にそれぞれ対応する前記再生処理を行うための複数の処理モジュールを、内部プログラムとして格納するためのプログラム格納手段と、
前記項目識別子の内容に応じて、プログラム格納手段に格納されている前記処理モジュールか前記添付プログラムのいづれかを選択するプログラム選択手段と、
前記プログラム選択手段の選択により選択された前記処理モジュールまたは前記添付プログラムを実行して、対応する前記項目データを再生する処理実行手段とを備え、
前記添付プログラムおよび前記処理モジュールにはプログラムの作成者を示す作成者情報が含まれており、
前記プログラム選択手段は、前記項目データに対する再生処理が前記添付プログラムと前記処理モジュールのどちらでも処理できる場合は、両者のプログラム作成者を比較して、一致しないときには、前記添付プログラムを選択することを特徴とするデータ処理装置。
【請求項５】
前記添付プログラムおよび前記処理モジュールには、さらにバージョン情報が含まれており、
前記プログラム選択手段は、前記作成者情報が一致する場合は、前記バージョン情報に基づいてバージョンの新しい方を選択する、請求項４記載のデータ処理装置。
【請求項６】
前記内部プログラムの処理モジュールを、前記添付プログラムで選択的に置き換える置換手段をさらに備えることを特徴とする請求項１または４のいずれか１項に記載のデータ処理装置。
【請求項７】
前記添付プログラムは、前記添付プログラムの実行のみを許可する再生承認情報、前記添付プログラムの実行および前記内部プログラムの処理モジュールを前記添付プログラムで置き換えを許可する置き換え承認情報、の少なくともいづれかを有することを特徴とする請求項１または４のいずれか１項に記載のデータ処理装置。
【請求項８】
前記置換手段は、
前記データ処理装置内部に格納されている前記処理モジュールを更新する処理モジュール更新手段を含み、
前記処理モジュール更新手段は、
前記デジタルデータ内に前記識別子に関連する前記添付プログラムが存在するかどうかを確認する手段と、
前記項目データの前記識別子に関連する前記添付プログラムと前記処理モジュールがともに存在する場合は、予め定められた選択方法に基づき前記添付プログラムを前記内部プログラムの処理モジュールに置換えて格納する手段と、
前記添付プログラムのみが存在する場合は、前記データ処理装置内部に追加する手段を含む、請求項６記載のデータ処理装置。
【請求項９】
前記添付プログラムには、前記内部プログラムの前記処理モジュールを前記添付プログラムで置換えることを許可する場合には置換え認証情報が付されており、
前記処理モジュール更新手段は、置換え認証情報が付されているか否かを判定する置換え認証情報判定手段をさらに有し、
前記置換え認証情報判定手段において置換え認証情報が存在すると判断された場合のみ、前記添付プログラムを前記データ処理内部に格納する、請求項８に記載のデータ処理装置。
【請求項１０】
前記添付プログラムおよび前記処理モジュールには、作成者情報とバージョン情報がそれぞれ付されており、
前記処理モジュール更新手段は、
前記項目データの前記識別子に関連する前記添付プログラムと前記処理モジュールがともに存在する場合、両者の前記作成者情報が一致するか否かを調べる手段と、
前記作成者情報が両者一致する場合、前記添付プログラムのバージョン情報が前記処理モジュールよりも新しいかどうかを判定する手段と、
前記添付プログラムのバージョン情報が前記処理モジュールよりも新しい場合に前記処理モジュールに代わって前記データ処理装置内部に格納する手段を含む、請求項８に記載のデータ処理装置。
【請求項１１】
前記添付プログラムには、前記処理モジュールを前記添付プログラムで置換えることを許可する場合には置換え認証情報が付されており、
前記処理モジュール更新手段は、前記添付プログラムに置換え認証情報が付されているか否かを判定する置換え認証情報有無判定手段をさらに含み、
置換え認証情報が付されていない場合には、前記添付プログラムおよび前記処理モジュールに付された前記作成者情報、前記バージョン情報の値に関わらず、前記データ処理装置内部に格納しない、請求項８に記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ソフトウエアで拡張や変更ができる、データフォーマットや装置の各種機能の拡張や変更を行うことのできるデータ処理装置に関する。
【０００２】
【従来の技術】
文書ファイルなどを始めとしてコンピュータが処理可能なデジタルデータは、データに互換性をもたせるため、何らかのフォーマット方式に従って記録媒体に記録される。通常、どのフォーマットにおいても、新たな機能の追加などのため、しばしばフォーマットの拡張が行われるが、フォーマット拡張の仕方によっては、旧式の再生プログラムではデータを読み込めなくなるだけでなく、期待している形式とは異なるデータが入力されることによって、プログラムが暴走してしまう恐れもある。これに関して、特開平４−２７８２６２号公報では、識別符号を格納する領域を設けて、この値により再生されるデジタル信号が互換性のある基本機能に属するか、互換性のない専用機能に属するか識別できるようにし、再生する際に自身の装置で再生できるかどうか確認した後、再生できる機能だけを再生するようにしていた。従って、メーカにとって互換性を維持しつつ、機能拡張を自由にできるように考慮されていた。
【０００３】
また、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）で用いられているＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）ではタグと呼ばれる識別子を用い、オープンタグ＜ａｂｃ＞とクローズタグ＜／ａｂｃ＞の間に処理対象のデータを挟むことによって（ａｂｃの所にタグ名が書かれる）、間に挟まれた部分を”ａｂｃ”という識別子に割り当てられた処理を実行するように指定する。新たに機能を追加する場合には、新しいタグを追加する事によって拡張ができるように設計されており、以前のフォーマットにしか対応していない表示装置では、解釈できないタグに遭遇した場合、オープンタグとクローズタグの間に挟まれた領域を読み飛ばすことによって、その機能を無視することができるように考慮されている。
【０００４】
また、ＨＴＭＬ形式で書かれたデータを解釈して画面に表示するブラウザでは、プラグインと呼ばれる外部プログラムをブラウザに追加することによって機能を拡張する仕組みが設けられている。プラグインは、ファイル名の最後につけられた、データの種類を示す．ｍｏｖ、や．ａｖｉなどの拡張子と１対１に対応づけられる。もし、ＨＴＭＬ文書の中にブラウザで処理できない種類のファイルが存在する場合には、そのファイルの拡張子を調べ、それと１対１に対応づけられたプラグインを起動して処理するようにしていた。
【０００５】
【発明が解決しようとする課題】
しかしながら、特開平４−２７８２６２号公報の識別符号やＨＴＭＬ形式のタグなどによりデータの拡張性が考慮されていても、その拡張機能を処理するためには、装置内部にあらかじめその処理プログラムを埋め込んで置く必要があり、装置内部に処理プログラムが無い場合は、拡張機能の実行ができないという問題があった。
【０００６】
また、ＷＷＷブラウザのプラグインでは、データとプログラムが全く別の経路で配布されるため、拡張子名とその拡張子名が示すデータの種類が１対１に対応していない場合も存在する。このため、プラグインが期待しているデータとは異なるデータを実行する可能性があり、最悪の場合プログラムの暴走につながるという問題があった。
【０００７】
また、プラグインの信頼性を考慮することなくブラウザに取り込むため、バグのあるプラグインやコンピュータウイルスの入ったプラグインなど、信頼性の低いプラグインが組み込まれてしまう危険性があった。
【０００８】
また、データの種類によっては様々な機能がふんだんに盛り込まれたフォーマットのものも存在するが、プラグインはブラウザの一つの機能として盛り込まれるため、たとえ機能の一部しか使われていないデータを実行するためであっても、全ての機能を実行できるようにプログラミングされている必要がある。このためプログラムは、より複雑となり、バグが入り易い、プラグインの作成に時間がかかる、動作確認に時間がかかり動作の確認もれを起こし易いなどの問題があった。
【０００９】
本発明の目的は、上記問題点に鑑み、入力されるデジタルデータのフォーマットや装置本体の各種機能の拡張や変更を行い、安全なソフトウエアだけ選択的に装置内部のプログラムとして取り込むこのとできるデータ処理装置を実現するものである。
【００１０】
【課題を解決するための手段】
請求項１記載のデータ処理装置は、複数の項目データと、複数の項目データの種類をそれぞれ識別する項目識別子と、該項目識別子の少なくとも一つに関連付けられた項目データの再生処理を実行するためのプログラムであって複数の項目データに添付される添付プログラムとから構成されるデジタルデータを読み込んで項目データを処理するデータ処理装置であって、項目識別子は、複数の項目データに共通のデータ長を有し、かつ、項目データの終端を示す情報は、複数の項目データに共通であり、項目識別子にそれぞれ対応する再生処理を行うための複数の処理モジュールを、内部プログラムとして格納するためのプログラム格納手段と、項目識別子の内容に応じて、プログラム格納手段に格納されている処理モジュールか添付プログラムのいづれかを選択するプログラム選択手段と、プログラム選択手段の選択により選択された処理モジュールまたは添付プログラムを実行して、対応する項目データを再生する処理実行手段とを備えることを特徴とする。
【００１１】
請求項２記載のデータ処理装置は、請求項１記載のデータ処理装置において、前記プログラム選択手段は、読み込んだ前記項目識別子に関連付けられた項目データを実行する添付プログラムがある場合に、前記添付プログラムを選択することを特徴とする。
【００１２】
請求項３記載のデータ処理装置は、請求項１記載のデータ処理装置において、前記内部プログラムの処理モジュール及び前記添付プログラムは、作成者情報あるいはバージョン情報を含み、これらの情報の比較結果に基づいて、前記プログラム選択手段は、前記内部プログラムか前記添付プログラムのいづれかを選択することを特徴とする。
【００１３】
請求項４記載のデータ処理装置は、複数の項目データと、複数の項目データの種類をそれぞれ識別する項目識別子と、該項目識別子の少なくとも一つに関連付けられた項目データの再生処理を実行するためのプログラムであって複数の項目データに添付される添付プログラムとから構成されるデジタルデータを読み込んで項目データを処理するデータ処理装置であって、項目識別子にそれぞれ対応する再生処理を行うための複数の処理モジュールを、内部プログラムとして格納するためのプログラム格納手段と、項目識別子の内容に応じて、プログラム格納手段に格納されている処理モジュールか添付プログラムのいづれかを選択するプログラム選択手段と、プログラム選択手段の選択により選択された処理モジュールまたは添付プログラムを実行して、対応する項目データを再生する処理実行手段とを備え、添付プログラムおよび処理モジュールにはプログラムの作成者を示す作成者情報が含まれており、プログラム選択手段は、項目データに対する再生処理が添付プログラムと処理モジュールのどちらでも処理できる場合は、両者のプログラム作成者を比較して、一致しないときには、添付プログラムを選択することを特徴とする。
【００１４】
請求項５記載のデータ処理装置は、請求項４記載のデータ処理装置において、添付プログラムおよび処理モジュールには、さらにバージョン情報が含まれており、プログラム選択手段は、作成者情報が一致する場合は、バージョン情報に基づいてバージョンの新しい方を選択する。
請求項６記載のデータ処理装置は、請求項１または４記載のデータ処理装置において、内部プログラムの処理モジュールを、添付プログラムで選択的に置き換える置換手段をさらに備えることを特徴とする。
請求項７記載のデータ処理装置は、請求項１または４記載のデータ処理装置において、添付プログラムは、添付プログラムの実行のみを許可する再生承認情報、添付プログラムの実行および内部プログラムの処理モジュールを添付プログラムで置き換えを許可する置き換え承認情報、の少なくともいづれかを有することを特徴とする。
請求項８記載のデータ処理装置は、請求項６記載のデータ処理装置において、置換手段は、データ処理装置内部に格納されている処理モジュールを更新する処理モジュール更新手段を含み、処理モジュール更新手段は、デジタルデータ内に識別子に関連する添付プログラムが存在するかどうかを確認する手段と、項目データの識別子に関連する添付プログラムと処理モジュールがともに存在する場合は、予め定められた選択方法に基づき添付プログラムを内部プログラムの処理モジュールに置換えて格納する手段と、添付プログラムのみが存在する場合は、データ処理装置内部に追加する手段を含む。
請求項９記載のデータ処理装置は、請求項８記載のデータ処理装置において、添付プログラムには、内部プログラムの処理モジュールを添付プログラムで置換えることを許可する場合には置換え認証情報が付されており、処理モジュール更新手段は、置換え認証情報が付されているか否かを判定する置換え認証情報判定手段をさらに有し、置換え認証情報判定手段において置換え認証情報が存在すると判断された場合のみ、添付プログラムをデータ処理内部に格納する。
請求項１０記載のデータ処理装置は、請求項８記載のデータ処理装置において、添付プログラムおよび処理モジュールには、作成者情報とバージョン情報がそれぞれ付されており、処理モジュール更新手段は、項目データの識別子に関連する添付プログラムと処理モジュールがともに存在する場合、両者の作成者情報が一致するか否かを調べる手段と、作成者情報が両者一致する場合、添付プログラムのバージョン情報が処理モジュールよりも新しいかどうかを判定する手段と、添付プログラムのバージョン情報が処理モジュールよりも新しい場合に処理モジュールに代わってデータ処理装置内部に格納する手段を含む。
請求項１１記載のデータ処理装置は、請求項８記載のデータ処理装置において、添付プログラムには、処理モジュールを添付プログラムで置換えることを許可する場合には置換え認証情報が付されており、処理モジュール更新手段は、添付プログラムに置換え認証情報が付されているか否かを判定する置換え認証情報有無判定手段をさらに含み、置換え認証情報が付されていない場合には、添付プログラムおよび処理モジュールに付された作成者情報、バージョン情報の値に関わらず、データ処理装置内部に格納しない。
【００１５】
【発明の実施の形態】
以下、発明の実施の形態について、データ処理装置として電子書籍表示装置を例に挙げて説明する。この電子書籍装置は、デジタルデータとして週刊誌や小説やマンガ等の電子書籍データ（以下、「書籍データ」という）を入力し順次再生して表示するものである。なお、本実施の形態では、電子書籍表示装置を例に挙げたが、他のデジタルデータを再生して表示する画像ファイリング装置など一般的なデータ処理装置に対しても適用可能である。また、本発明では、ソフトウエアの置き換え等により機能拡張（機能変更も含む）を行うものであり、拡張機能に相当する要素データを処理するプログラムを入力されるデジタルデータに添付し、その拡張機能を実行できないデータ処理装置においても実行可能とするとともに、安全なプログラムだけ選択的に処理装置内部のプログラムとして取り込むことができるようにしており、例えば、静止画やテキストしか表示できない装置を、映像データやアニメのような動画を表示できるようにする。
【００１６】
図１に、本実施の形態に係る電子書籍表示装置のブロック構成を示す。同図において、１０１は装置全体の制御を行うＣＰＵ、１０２は装置のプログラムやプログラムのメタ情報（認証情報、プログラムの作成者情報、バージョン情報）を格納するプログラム格納手段、１０３はプログラムやプログラムの作業領域、及び書籍データなどを格納するために用いられるＲＡＭ、１０４は記録媒体などに記録された書籍データを読み込むディスクドライブや通信回線等の入力手段、１０５は再生された書籍データを表示するための表示手段、１０６はユーザが表示中のページの切り替えを指示するページめくり指示手段、１０７は書籍データに添付されたプログラムを解釈して実行する外部プログラム実行手段、１０８は書籍データ内に添付されたプログラムの処理モジュールとプログラム格納手段１０２に格納されているプログラムの処理モジュールのうち、処理に用いる処理モジュールを選択したり、必要に応じて書籍データに添付された処理モジュールによってプログラム格納手段１０２に格納された処理モジュールを置き換えるようにＣＰＵ１０１に指示するプログラム選択手段、１０９は装置構成要素を接続するＣＰＵバスである。ＣＰＵ１０１は、プログラム格納手段１０２内に格納されたプログラムに従い、前記ページめくり指示手段１０６などからのユーザの指示や書籍データの内容に応じて、各種処理を行う。
【００１７】
図２に、図１の記録媒体に記録されている書籍データの概略構造を示す。図２に示すように、書籍データは、記録に用いられているフォーマット名などの情報を格納するフォーマット情報領域と、書誌情報領域、ページ情報領域、及びコピー許可情報領域などからなる管理情報領域と、各ページ毎に分割されて記録されている書籍データの本文に相当するページデータ領域と、前記各領域のデータの少なくとも一部を実行するプログラムを格納する添付プログラム領域とからなり、ＩＣカードやディスク等の記録媒体に記録されていたり、あるいは通信回線から供給される。
【００１８】
図３に、図２のフォーマット情報領域の格納例を示す。フォーマット情報領域は、フォーマット情報であることを示すフォーマット情報識別子と、フォーマット名文字列以降のデータサイズ、フォーマット名を示すフォーマット名文字列などから構成されている。なお、図３の右側に記した数値は、その内容を記録するのに使用するバイト数であり、フォーマット情報識別子には２バイト、データサイズには４バイト使用することを示し、フォーマット名文字列にはｎバイト（ｎバイトはデータによって異なる不定値）使用することを示している（図４、図６〜図１０の説明においても同様）。また、このように、データサイズが分かるため、書籍データを順次読み込んで再生することができる。
【００１９】
以下、順次説明していくように、書籍データは、複数の項目データに区切られて格納されており、全ての項目データは、項目データの種類を識別する項目識別子、項目データのデータサイズ、項目データの形式で格納される。項目データによっては、その一部がさらにこの３つの組み合わせで再帰的に記録されている場合もある。ここで項目データの種類とは、画像、音声、文字などのようなデータの種類のみならず、項目データの格納形式の種類をさし、格納される形式が異なれば、同一種類のデータでも異なる種類の項目データと判断する。例えば、フォーマット情報が、図３のフォーマット情報領域の格納形式からフォーマット名文字列を取り除いた形式で格納される場合には、図３の形式のフォーマット情報とは、項目データの種類が異なるものと判断し、別の項目識別子を用いて格納される。また、項目識別子とデータサイズの各領域は、項目データによらず、必ず２バイト、４バイトで記録する。これにより、項目識別子とデータサイズの領域はどの項目データでも同じになるので、書籍データの中に表示装置で処理できない項目データが存在していても、その項目データのデータサイズを正確に読取ることができ、その項目データの格納形式を知らなくても、簡単に次の項目データの処理に移る事ができる。なお、両者の記録に用いるバイト数は２バイトと４バイトでなくても、全ての項目識別子、データサイズがあらかじめ定められたサイズで記録されていればよい。また、この実施の形態ではデータサイズ領域を設けて項目データの終わりを特定できるようにしたが、ＨＴＭＬ文書で使われているようにタグを使って、項目データの始まりと終わりを特定できるようにしてもよい。
【００２０】
図４に、図２の管理情報領域の格納例を示す。管理情報領域は、管理情報領域であることを示す管理情報識別子で区別され、書籍のタイトル名、著者名などを記録する書誌情報領域と、ページサイズや総ページ数などを記録するページ情報領域と、コピーの許可・不許可の指定と著作権者を記録するコピー許可情報領域などからなる。図４の右側に示すように、各領域は、項目識別子として、書誌情報識別子、ページ情報識別子、コピー許可情報識別子により区別されて格納されている。ここでページ情報領域内のページサイズとは、各ページの大きさのことを示し、各ページに仮想的に設けられた、ページの左上の頂点を原点とした座標系におけるページ右下の頂点の座標をさす。
【００２１】
図５に示すように、書籍データの各ページは、文字データ、画像データ、動画データなどの要素データ（以下オブジェクトと表記）によって構成され、図４のページ情報領域に記録されたページの大きさを持つ仮想的なページ紙面の上に、各オブジェクトが配置されることによって各ページが構成されている。
【００２２】
図６に、図２のページデータ領域の格納例を示す。この領域は、ページデータであることを示すページデータ識別子、ページデータのバイト数を示すデータサイズ、このページデータのページ番号、このページ番号に貼り付けられたオブジェクト数が記録され、オブジェクト毎にオブジェクトデータが格納されている。
【００２３】
オブジェクトデータ領域の格納方法は、オブジェクトの種類や格納方法によって異なる。例えば、図７は文字データの格納例であり、文字データであることを示す文字データ識別子、この項目データのデータサイズの後に、文字データを表示する領域を特定する文字領域の左上と右下の座標（図７では始点、終点の座標に相当）、文字間隔及び行間隔、文字列の表示に用いるフォント種別とフォントサイズ、文字列の色を指定する文字色と背景色の情報が続き、その後に実際の文字列データが格納されている。
【００２４】
図８は静止画データの格納例であり、画像データであることを示す画像データ識別子、この項目データのデータサイズの後に、画像の大きさ、ページに貼り付けられる位置を指定する始点座標、画像データに使われている画素値と実際の画素濃度との対応表であるカラーテーブル、実際の画像データの順に格納されている。
【００２５】
このような格納形式が、オブジェクト種類分用意されており、各ページに含まれるオブジェクト毎に所定の格納形式で格納されてページデータとして記録されている。
【００２６】
ところで、書籍データの互換性を維持するため、フォーマット管理組織が、書籍データのフォーマットを管理しているものと想定する。このフォーマット管理組織では、フォーマットのバージョン毎に使用できる項目識別子（項目識別子の具体値）とその項目データの種類や格納形式や再生方法を管理するとともに、フォーマットの正式なバージョンアップも行う。フォーマット管理組織によって認められた項目データ以外の項目データは、全て拡張機能に相当する。
【００２７】
この拡張機能に相当する項目データの埋め込みは以下のように行う。例えば、現在のフォーマットのバージョンにおいて、映像データはページデータ領域内のオブジェクトとして利用できないものとする。このとき、現在のフォーマットを拡張して映像データもオブジェクトとして用いるようにするには、現在のフォーマットでは使用されていない項目識別子を使って図９のように記述し、図６のオブジェクトの１データとして格納し、本装置に入力する必要がある。図９は、映像データの格納方法の例であり、映像データであることを示す識別子、そのデータサイズ、ページに貼り付けられる位置を指定する始点座標、映像の圧縮方式、実際の時系列での映像データの順に格納されている。このように、フォーマットの拡張に相当する項目データは、必ず現在使われていない項目識別子を付けて格納する。この拡張機能の追加は、フォーマット管理組織が正式にバージョンアップする場合に行うだけでなく、書籍データの作成者によって拡張される場合にも行われる。
【００２８】
さて、新しい種類の項目データを追加しても、処理できなければ意味がないので、その項目データを処理するプログラムを格納するために、図２の添付プログラム領域を設けている。
【００２９】
図１０に、図２の添付プログラム領域の格納例を示す。添付プログラム領域は、添付プログラム領域であることを示す添付プログラム領域識別子、データサイズの後、添付するプログラム数とそのプログラム数分のプログラムデータ領域からなる。各プログラムデータ領域は、図１０の右側に示すように、各プログラムデータ領域を区別するためのプログラムデータ領域識別子、データサイズの後、その添付プログラムが処理対象とする項目データの項目識別子、認証情報とそのサイズ、このプログラムの作成者を特定可能な作成者情報とそのサイズ、プログラムのバージョン情報とそのサイズ、そして実際のプログラムによって格納されている。このうち、認証情報、プログラムの作成者情報、バージョン情報がプログラムのメタ情報に相当する。ただしメタ情報にはこれ以外の項目が含まれていてもよい。
【００３０】
認証情報は、そのプログラムをユーザに対して正規に配布してもよいとフォーマット管理組織が判断したとき発行される文字列等の情報であり、添付した書籍データの実行だけではなく、他の書籍データ内の項目データに対してこのプログラムを実行しても不具合を引き起こさないなど安全性の高いプログラムに対して発行される。認証情報にはあらかじめ定められた認証文字列などをそのまま記入するようにしてもよいが、不正なプログラムが出回ることを一層防ぐため、書籍データのタイトルなどの書籍毎に異なる文字列を暗号化のキーにして、認証文字列を暗号化し、認証情報の領域に格納されている内容が書籍毎に異なるようにしてもよい。認証情報が正しく記録されているプログラムは、後述するように装置内部に格納され、他の書籍データの処理にも利用される場合がある。なお、書籍データの作成者が個人的に機能拡張した場合など、フォーマット管理組織から配布が承認されていないプログラムの場合には、認証情報領域には何も記録せずに、認証情報サイズを０とする。この場合、プログラムの実行は、添付された書籍データの処理にのみ限定して用いられ、書籍データ内の処理対象項目識別子の領域に記録された項目識別子が付けられた項目データの処理に使われる。
【００３１】
また、添付プログラム領域に格納されるプログラムの処理対象項目識別子は、現在のフォーマットで正規に使用されている項目識別子であってもよい。この場合の項目識別子に対応づけられた項目データは、基本的には装置内部のプログラムによって処理するが、内部プログラムとは異なる処理をさせたり、内部プログラムよりも性能のよいプログラムによって実行させたりしたい場合には、添付プログラム領域にその処理プログラムを添付すればよい。この場合、基本的には書籍データに添付されたプログラムの方が優先され、実行される。
【００３２】
なお、この領域に添付されるプログラムがどのような形態のものであるかは特定しないが、どのようなＣＰＵを積んだ装置で書籍データが再生表示されるか分からないため、どのＣＰＵでも処理可能なプログラムであることが望ましい。例えば、スクリプト言語で書かれたプログラムとか、米国Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ社の開発したＪＡＶＡ言語で書かれたプログラムなどをこの領域に記録すればよい。このとき、装置側には、スクリプト言語やＪＡＶＡ言語で書かれたプログラムを解釈して実行する手段が必要となり、この手段として外部プログラム実行手段１０７が設けられている。
【００３３】
次に、電子書籍表示装置として動作させるプログラムについて図１１を用いて説明する。ここでは、項目データの種類あるいは格納形式に対応した項目識別子毎に所定の処理をする処理モジュールに分割されており、各処理モジュールの呼び出し実行などを制御するメインプログラムとは別のファイルとしてプログラム格納手段１０２に格納されている。先に述べたように、項目データの中にさらに別の項目データが存在するような階層関係が存在するものもあるので、図１１の識別子ｋの処理モジュールに示すように、各処理モジュールはさらに別の処理モジュールを呼び出す場合もある。なお、本実施の形態のプログラムは、この形態に限定するものではなく、各処理モジュールが項目識別子毎に分離可能な状態になっていれば、各処理モジュールとメインプログラムが一つのファイルに統合されていてもよい。
【００３４】
なお、項目識別子によっては処理を一つの処理モジュールとして抽出できないものも存在する。これは、未知の処理モジュールに対して、任意の引数の受け渡しや処理結果の受け渡しができないことに起因する。例えば、図４のページ情報領域を処理するモジュールの場合、解析したページサイズ、総ページ数はメインプログラムや他のモジュールで使用される事になるが，この処理結果をメインプログラムに引き渡せない場合には、メインプログラムや他のモジュールの処理が出来なくなるため、一つの処理モジュールに分割できない。一方、図８の画像データを処理する処理モジュールは、図８に書かれている内容を解釈して表示する処理になるが、処理モジュールの実行のために必要な情報は図８の内容以外になく、処理結果を他の処理モジュールで利用することもない。このように閉じた処理モジュールになっているものは一つの処理モジュールとして分割できるので、この分割可能なモジュールのみを、図１１のように分割して外部ファイルとして持ち、その他の分割不能なモジュールはメインプログラム内に埋め込むようにしてもよい。ただし、引数や処理結果の受け渡しができる場合には、図１１に示すように項目識別子毎の処理モジュールに全て分割する方が望ましい。
【００３５】
また、各項目識別子の処理モジュールに関するメタ情報を記録するため、図１２に示すようなプログラム情報テーブルをプログラム格納手段１０２に記録しておく。図１２に示すように、プログラム情報テーブルには、各項目識別子の処理モジュール毎に、ファイル名、作成者に関する作成者情報、処理モジュールのバージョン情報が記録される。このテーブルには本体装置が処理可能な全ての識別子に対応する処理モジュールのメタ情報が記録され、処理できない識別子に対応する処理モジュールに関するメタ情報は記録されていない。また、メインプログラム内に埋め込まれていて分離されていない処理モジュールの場合でも、ファイル名の領域を利用して、メインプログラムに内蔵されていることがわかるようにして記録しておく。
【００３６】
次に、電子書籍表示装置の再生表示処理方法について簡単に説明しておく。まず本体装置の電源が投入されると、書籍データのフォーマット情報領域に記録されたフォーマット情報領域と管理情報領域の内容が読み込まれ、ページデータの表示処理に入る。表示するページを先頭ページにし、表示するページに貼り付けられた全てのオブジェクトデータを読込み、オブジェクトの種類に応じて各々再生処理を行うことにより、そのページの表示処理を行う。そして、ページめくり指示手段１０６でページめくりを指示されるたびに、表示するページ番号を更新し、そのページに含まれるオブジェクトデータを読込み、オブジェクトの種類に応じた各ページの再生表示を行う。
【００３７】
以上のようにして書籍データの再生、表示が行われるが、書籍データの各情報は全て項目識別子、データサイズ、項目データの組を単位にして記録されており、本体装置は全てこの単位毎に処理を行っている。
【００３８】
次に、この単位毎の処理過程のフローチャートを示した図１３を用いて、本装置の動作について説明する。ただし、処理モジュールに分割できず、メインプログラム内に融合されている場合には、メインプログラムに従って処理され、図１３に示すような処理は行われない。なお、本実施の形態では、項目識別子毎の処理に分割した個々のプログラムを処理モジュールとしており、書籍データの添付プログラムも添付処理モジュールである。
【００３９】
まず、ステップＳ１００において項目識別子を順次読み込む。そして、書籍データの添付プログラム領域を調べ、読み込んだ項目識別子に関連付けられた処理モジュールを処理対象とするプログラムがあるかどうか調べる（ステップＳ１０１）。もし処理対象とする添付プログラムが見つかれば、ステップＳ１０２の処理に移る。ステップＳ１０２では、プログラム格納手段１０２内に格納されている図１２のプログラム情報テーブルを調べ、現在処理している項目識別子の処理モジュールに関するメタ情報が記録されているかどうか確認する。もし、記録されていなければ、装置の内部プログラムによって処理することはできないと判断し、書籍データに添付されたプログラムによってこの項目データを処理する（ステップＳ１０５）。一方、プログラム情報テーブル内にこの項目識別子の処理モジュールに関するメタ情報が記録されている場合には、ステップＳ１０３に移る。ステップＳ１０３では、プログラム情報テーブル内の処理モジュールの作成者情報と、図１０の形式で格納された添付プログラムの作成者情報を比較し、同一作成者かどうか判断する。もし作成者情報が一致すればステップＳ１０４に進み、両者のプログラムのバージョン情報を比較し、新しい方のプログラムによってこの項目データを実行する。一方、作成者情報が一致しないならば、書籍データに添付されたプログラムによってこの項目データを実行する（ステップＳ１０５）。ステップＳ１０４またはステップＳ１０５の処理が終了すると、後述するように、特定の条件のもとで表示装置内部のプログラムの処理モジュールの一部を添付されたプログラムによって置き換え、この項目データの処理を終了する。一方、ステップＳ１０１で添付プログラム無しと判断されると、ステップＳ１０２と同様にして装置の内部プログラムで処理可能か判断し（ステップＳ１０６）、処理可能ならば装置の内部プログラムで実行し（ステップＳ１０７）、処理できないならば項目データに付加されているデータサイズを用いて処理することなく読み飛ばす（ステップＳ１０８）。
【００４０】
次に、ステップＳ１０９での置き換え処理について図１４のフローチャートを用いて説明する。図１４に示すように、まずステップＳ２００において、書籍データに添付されたプログラムに認証情報が記録されているかどうかを調べる。記録されていなければ、プログラム格納手段１０２内のプログラムの置き換えをすることなく処理を終了する。記録されていれば、ステップＳ２０１に進み、プログラム情報テーブルの中に、処理対象としている項目識別子の処理モジュールに関するメタ情報が記録されているかどうかを調べる。もし、記録されていなければ、装置内部にこの識別子の処理モジュールがないと判断し、このプログラムを装置内部のプログラム格納手段１０２にファイル名を付けて保存するとともに、添付プログラムに付加されたメタ情報を参照して、プログラム情報テーブルに処理対象の識別子、プログラムのファイル名、作成者情報、プログラムのバージョン情報を書き込む（ステップＳ２０４）。一方、ステップＳ２０１で、プログラム情報テーブル内に処理対象としている項目識別子の処理モジュールに関するメタ情報が記録されていれば、表示装置内部にこの識別子の処理モジュールがあると判断し、ステップＳ２０２以降の処理に移る。ステップＳ２０２では、プログラム情報テーブル内に記録された、この項目識別子に対する処理モジュールの作成者情報と、書籍データに添付されたプログラムに付加された作成者情報を比較する。作成者情報が一致すれば、両者のプログラムのバージョン情報を比較し、新しい方を表示装置内部に残す（ステップＳ２０３）。もし書籍データに添付されたプログラムの方が新しいならば、この添付プログラムをプログラム格納手段１０２にファイル名を付けて保存し、プログラム情報テーブル内のこの識別子の処理モジュールに関するメタ情報のうち、ファイル名、バージョン情報をこの添付プログラムのメタ情報に書き換える。なお、書き換える際、もともとプログラム格納手段１０２に記録されていた処理モジュールは、消去してもしなくてもどちらでも構わない。またステップＳ２０２で作成者情報が一致しない場合には、ステップＳ２０５でユーザに置き換えるかどうかを問い合わせ、置き換えるように指示された場合には、添付プログラムをプログラム格納手段１０２にファイル名を付けて保存し、プログラム情報テーブル内の該当個所のメタ情報を書き換える（ステップＳ２０６）。ステップＳ２０３、Ｓ２０４、Ｓ２０６での書き換え後は、更新後のプログラム情報テーブルを参照して各項目データが処理されるので、書き換えた添付プログラムによって実行されることになる。
【００４１】
次に、第２の実施の形態について説明する。この実施の形態では、図１０の認証情報領域に格納される内容を２種類設ける。一つは、添付したプログラムの実行を許可する事を示す文字列等からなる再生承認情報と、もう一つは添付したプログラムの実行と表示装置内部プログラムの置き換えを共に許可する事を示す文字列等からなる置き換え承認情報とである。再生承認情報、置き換え承認情報は共にフォーマット管理組織から発行される。認証情報領域に再生承認情報が格納された添付プログラムは、添付した書籍データ内の項目データの再生のみに使用を制限する。従って、添付した書籍データ内の項目データだけを再生できればよいので、プログラムのサイズが小さくなり、開発期間が小さくて済む、バグが入りにくくなるなどの利点がある。一方、認証情報領域に置き換え承認情報が格納された添付プログラムは、添付した書籍データ内の項目データの再生だけでなく、装置内部のプログラムを置き換えることによって、他の書籍データ内の項目データの再生にも使われる。従って、装置内部の処理プログラムを更新することができ、書籍データのフォーマットのバージョンアップにも柔軟に対応できる。また、これらの認証情報が記録されていないプログラムの実行は、装置を使用しているユーザに問い合わせ、実行／不実行を判断してもらう。なお、第１の実施の形態に記載の内容は、認証情報に格納される情報が置き換え承認情報の１種類のみの場合に相当する。
【００４２】
ここで、第２の実施の形態のブロック図、書籍データの格納形式は、第１の実施の形態と同様なので説明を省略するが、項目データ毎の処理手順を示すフローチャートを示す図１５を用いて第２の実施の形態の動作について説明する。
【００４３】
まず、ステップＳ３００〜ステップＳ３０１処理は図１３のステップＳ１００〜ステップＳ１０１と同様なので説明を省略する。ステップＳ３０１で現在処理対象としている項目データを処理するプログラムが書籍データに添付されている場合、添付プログラムに付加された認証情報領域を調べ、認証情報（再生承認情報、置き換え承認情報のいづれか）が格納されているかどうかを調べる（ステップＳ３０２）。認証情報が格納されていない場合にはステップＳ３０３に進み、添付プログラムのメタ情報を表示手段に表示するなどして、ユーザにこの添付プログラムで実行してよいかどうか問い合わせる。実行が許可された場合には、ステップＳ３０４〜ステップＳ３１１の処理を図１３のステップＳ１０２〜ステップＳ１０９と同様にして行う。一方、実行を許可しなかった場合は、添付プログラムがなかったものと判断し、ステップＳ３０８〜ステップＳ３１０までの処理を、図１３のステップＳ１０６〜ステップＳ１０８の処理と同様にして行う。一方、ステップＳ３１１の置き換え処理は図１４の処理と同様なので説明を省略する。従って、第１の実施の形態と違い、再生処理に対しても認証情報をチェックするようにしたので、添付プログラムの実行時の危険性をより減らすことができる。
【００４４】
【発明の効果】
本発明によれば、データに添付したプログラムによって従来処理できないデータに対しても実行するようにしたので、これまでにない新たな機能を追加することができる。
【００４５】
また、データとプログラムが一体となって配布されるため、添付プログラムが処理対象とするデータの内容と実際のデータの内容との食い違いがなくなり、プログラムの暴走などの不具合を防止できる。また、基本的に、添付プログラムは添付されたデータを実行するために使われるので、プログラムはより単純となり、プログラミング時の手間が省け、バグの混入を減らすことができるようになる。
【００４６】
さらに、認証情報の記録された安全なプログラムだけを装置内部に格納するので、信頼性の低いプログラムが組み込まれる危険性が少なくなる。
【図面の簡単な説明】
【図１】本実施の形態に係る書籍表示装置のブロック図である。
【図２】本実施の形態に係る書籍表示装置で再生する書籍データのフォーマットを示す図である。
【図３】書籍データに記録されるフォーマット情報領域の格納状態を示す図である。
【図４】書籍データに記録される管理情報領域の格納状態を示す図である。
【図５】ページが各種オブジェクトにより構成されていることを示す模式図である。
【図６】書籍データに記録されるページデータの格納状態を示す図である。
【図７】オブジェクトデータのうち、文字データの格納状態を示す図である。
【図８】オブジェクトデータのうち、画像データの格納状態を示す図である。
【図９】オブジェクトデータのうち、現在のフォーマットでは採用されていない映像データを格納する場合の格納状態を示す図である。
【図１０】書籍データに記録される添付プログラム領域の格納状態を示す図である。
【図１１】プログラム格納手段内のプログラムの格納状態を模式的に示す図である。
【図１２】プログラム格納手段に格納されるプログラムのメタ情報を格納するプログラム情報テーブルを示す図である。
【図１３】項目データ毎の処理手順を示すフローチャートである。
【図１４】項目データの処理手順のうち、添付プログラムを装置内部に格納する際の処理手順を示すフローチャートである。
【図１５】第２の実施の形態における、項目データ毎の処理手順を示すフローチャートである。
【符号の説明】
１０１  ＣＰＵ
１０２  プログラム格納手段
１０３  ＲＡＭ
１０４  入力手段
１０５  表示手段
１０６  ページめくり指示手段
１０７  外部プログラム実行手段
１０８  プログラム選択手段
１０９  ＣＰＵバス
ａ  項目識別子
ｂ  項目データ
【図１】
0003586560.tif 000002
【図２】
0003586560.tif 000003
【図３】
0003586560.tif 000004
【図４】
0003586560.tif 000005
【図５】
0003586560.tif 000006
【図６】
0003586560.tif 000007
【図７】
0003586560.tif 000008
【図８】
0003586560.tif 000009
【図９】
0003586560.tif 000010
【図１０】
0003586560.tif 000011
【図１１】
0003586560.tif 000012
【図１２】
0003586560.tif 000013
【図１３】
0003586560.tif 000014
【図１４】
0003586560.tif 000015
【図１５】
0003586560.tif 000016