(57)【要約】  プラグインモジュールが、共有可能なエンティティが所定のメモリ領域に登録されているか否かを判定し、共有可能なエンティティが登録されていないと判定したときには新しいエンティティを作成する作成ステップを実行し、共有可能なエンティティが登録されていると判定したときには当該エンティティを共有する共有ステップを実行する。【特許請求の範囲】
【請求項１】
プラグインモジュールが実行するプラグインモジュール実行方法であって、
共有可能なエンティティが所定のメモリ領域に登録されているか否かを判定する登録判定ステップを含み、
共有可能なエンティティが登録されていないと判定したときには新しいエンティティを作成する作成ステップを実行し、
共有可能なエンティティが登録されていると判定したときには当該エンティティを共有する共有ステップを実行すること、を特徴とするプラグインモジュール実行方法。
【請求項２】
前記登録判定ステップにおいて、プラグインモジュールは、自身の解釈すべきプラグイン指定ファイルと同一のものを解釈して作成されたエンティティが該メモリ領域に登録されているとき、当該エンティティを共有可能と判定すること、を特徴とする請求項１に記載のプラグインモジュール実行方法。
【請求項３】
前記登録判定ステップにおいて、プラグインモジュールは、自身の解釈すべきプラグイン指定ファイルと同一のものを解釈して作成されたエンティティが該メモリ領域に登録され、且つ、それが所定の付加情報を有するとき、当該エンティティを共有可能と判定すること、を特徴とする請求項１に記載のプラグインモジュール実行方法。
【請求項４】
該所定の付加情報は、そのエンティティがインタラクティブ性を有さないことを示す情報、又は、そのエンティティが共有可能なものであることを示す情報の何れか一方であること、を特徴とする請求項３に記載のプラグインモジュール実行方法。
【請求項５】
プラグインモジュールが実行するプラグインモジュール実行方法であって、
外部プログラムからプラグイン指定ファイルを指定した処理要求があった際に、該プラグイン指定ファイルと処理アルゴリズムからなるプログラムの実体をメモリに登録し、
該外部プログラムから該プラグイン指定ファイルと同一のプラグイン指定ファイルを指定した処理要求があった際に、新たにプログラムの実体を作成することなく、該メモリ内の実体を動作させて該処理要求に応じること、を特徴とするプラグインモジュール実行方法。
【請求項６】
該外部プログラムがブラウザ又はメーラの何れか一方であること、を特徴とする請求項５に記載のプラグインモジュール実行方法。
【請求項７】
ブラウザが実行するブラウザ実行方法であって、
共有可能なエンティティが所定のメモリ領域に登録されているか否かを判定する登録判定ステップを含み、
共有可能なエンティティが登録されていないと判定したときには新しいエンティティを作成する作成ステップを実行し、
共有可能なエンティティが登録されていると判定したときには当該エンティティを共有する共有ステップを実行すること、を特徴とするブラウザ実行方法。
【請求項８】
メーラが実行するメーラ実行方法であって、
共有可能なエンティティが所定のメモリ領域に登録されているか否かを判定する登録判定ステップを含み、
共有可能なエンティティが登録されていないと判定したときには新しいエンティティを作成する作成ステップを実行し、
共有可能なエンティティが登録されていると判定したときには当該エンティティを共有する共有ステップを実行すること、を特徴とするメーラ実行方法。
【請求項９】
請求項１から請求項８の何れかに記載の方法をコンピュータに実行させるためのプログラム。
【請求項１０】
プラグインソフトウェアが実装された端末装置において、
プラグインソフトウェアに基づいて作成される少なくとも一つのプラグインモジュールと、
プラグインモジュール間で共有可能なエンティティが所定のメモリ領域に登録されているか否かを判定する登録判定手段と、
前記登録判定手段が共有可能なエンティティが登録されていないと判定したときには新しいエンティティを作成するエンティティ作成手段と、
前記登録判定手段が共有可能なエンティティが登録されていると判定したときには当該エンティティを共有するエンティティ共有手段と、を備えたこと、を特徴とする端末装置。
【請求項１１】
前記登録判定手段は、プラグインモジュールが解釈すべきプラグイン指定ファイルと同一のものを解釈して作成されたエンティティが該メモリ領域に登録されているとき、当該エンティティを共有可能と判定すること、を特徴とする請求項１０に記載の端末装置。
【請求項１２】
前記登録判定手段は、プラグインモジュールが解釈すべきプラグイン指定ファイルと同一のものを解釈して作成されたエンティティが該メモリ領域に登録され、且つ、それが所定の付加情報を有するとき、当該エンティティを共有可能と判定すること、を特徴とする請求項１０に記載の端末装置。
【請求項１３】
該所定の付加情報は、そのエンティティがインタラクティブ性を有さないことを示す情報、又は、そのエンティティが共有可能なものであることを示す情報の何れか一方であること、を特徴とする請求項１２に記載の端末装置。
【請求項１４】
プラグインソフトウェアが実装された端末装置において、
外部プログラムからプラグイン指定ファイルを指定した処理要求があった際に、該プラグイン指定ファイルと処理アルゴリズムからなるプログラムの実体をメモリに登録する実体登録手段と、
該外部プログラムから該プラグイン指定ファイルと同一のプラグイン指定ファイルを指定した処理要求があった際に、新たにプログラムの実体を作成することなく、該メモリ内の実体を動作させて該処理要求に応じる実体共有手段と、を備えたこと、を特徴とする端末装置。
【請求項１５】
該外部プログラムがブラウザ又はメーラの何れか一方であること、を特徴とする請求項１４に記載の端末装置。
【請求項１６】
ブラウザが実装された端末装置において、
共有可能なエンティティが所定のメモリ領域に登録されているか否かを判定する登録判定手段と、
前記登録判定手段が共有可能なエンティティが登録されていないと判定したときには新しいエンティティを作成するエンティティ作成手段と、
前記登録判定手段が共有可能なエンティティが登録されていると判定したときには当該エンティティを共有するエンティティ共有手段と、を備えたこと、を特徴とする端末装置。
【請求項１７】
メーラが実装された端末装置において、
共有可能なエンティティが所定のメモリ領域に登録されているか否かを判定する登録判定手段と、
前記登録判定手段が共有可能なエンティティが登録されていないと判定したときには新しいエンティティを作成するエンティティ作成手段と、
前記登録判定手段が共有可能なエンティティが登録されていると判定したときには当該エンティティを共有するエンティティ共有手段と、を備えたこと、を特徴とする端末装置。
【請求項１８】
マークアップ言語の文書をレンダリング可能なブラウザ機能も備えたこと、を特徴とする請求項１７に記載の端末装置。
【請求項１９】
請求項１から請求項８の何れかに記載の方法を利用するページデータが記録されたコンピュータ読み取り可能な記録媒体であって、
該ページデータに埋め込まれたプラグイン要素が、外部プログラムに所定のプラグイン指定ファイルを取得させるよう記述されていること、を特徴とするページデータが記録されたコンピュータ読み取り可能な記録媒体。
【請求項２０】
該プラグイン指定ファイルがベクター画像記述言語で記述されていること、を特徴とする請求項１９に記載のページデータが記録されたコンピュータ読み取り可能な記録媒体。
【請求項２１】
該ベクター画像記述言語がＳＶＧであること、を特徴とする請求項２０に記載のページデータが記録されたコンピュータ読み取り可能な記録媒体。
【請求項２２】
該ページデータ内に、単一のプラグイン指定ファイルに対してそれぞれ異なる描画領域を指定した複数のプラグイン要素を埋め込むこと、を特徴とする請求項１９から請求項２１の何れかに記載のページデータが記録されたコンピュータ読み取り可能な記録媒体。
【請求項２３】
単一のベクター画像が描画されるよう単一のプラグイン指定ファイルが作成されているとき、該単一のベクター画像が複数に分割されるよう各描画領域を指定すること、を特徴とする請求項２２に記載のページデータが記録されたコンピュータ読み取り可能な記録媒体。
【請求項２４】
複数のベクター画像が描画されるよう単一のプラグイン指定ファイルが作成されているとき、複数のベクター画像の各々が各領域に単独で収まるよう各描画領域を指定すること、を特徴とする請求項２２に記載のページデータが記録されたコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プラグインモジュールが実行するプラグインモジュール実行方法、ブラウザが実行するブラウザ実行方法、メーラが実行するメーラ実行方法であって、特に、エンティティを共有するための方法に関する。また、これらの方法をコンピュータに実行させるためのプログラム、端末装置、及び、当該方法を利用するページデータが記録されたコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
近年、インターネットに代表されるネットワークの急速な普及やその技術の発展に伴って、ユーザは、デスクトップやラップトップ等のＰＣ（Personal Computer）のみならず、携帯電話や、ＰＤＡ（Personal Digital Assistance）、家電、カーナビゲーション装置等を含む様々な情報端末を用いてネットワーク上の情報を閲覧することができる。これらの情報端末には情報閲覧ソフトウェア（以下、ブラウザと記す）が組み込まれている。ブラウザが、例えばＨＴＭＬ（Hyper Text Markup Language）で記述されたマークアップ言語の文書を解釈し、次いでその解釈結果に基づいたレイアウト処理を行うことにより、端末の表示部にネットワーク上の情報（例えばＷｅｂコンテンツ）が表示（すなわちレンダリング）される。【０００３】
ここで、同一のイメージ要素が単一のページデータに複数埋め込まれている（換言すると、表示されるべき同一のイメージがコンテンツ中の単一のページに複数含まれている）場合、ブラウザは、例えば特開平６−５９６６４号公報に示されているように、メモリにキャッシュされているイメージファイルを利用してこれらのイメージを表示する。なお、ここでいうイメージは静止画像を示す。また、イメージ要素は、例えばイメージファイルのパス（イメージファイルを格納しているサーバのドメイン名及びディレクトリ名）、及び、イメージファイル名を少なくとも含んだものを示す。また、ページは、ブラウザに一度に表示される要素のまとまりを示す。要素は、テキストデータやＨＴＭＬによるレイアウト情報、文書中に埋め込まれたイメージやサウンド、アニメーション等から構成される。ページデータは、コンテンツ中の単一のページのデータを示す。【０００４】
図１は、従来のブラウザが実行する処理であって、ページに含まれるイメージを取得する処理を示したフローチャートである。ブラウザは、例えばＨＴＭＬ文書の解釈結果を参照してイメージ要素を見つけたとき（ステップ１：ＹＥＳ、以下の明細書及び図面では、ステップを「Ｓ」と略記）、端末内のキャッシュメモリを検索して、上記イメージ要素に対応するイメージファイルが格納されているか否かを判定する（Ｓ２）。格納されていないと判定したとき（Ｓ２：ＮＯ）、上記イメージ要素に含まれるパスに基づいて、例えばそのコンテンツを提供するサーバにアクセスする（Ｓ３）。そしてそのサーバからＧＩＦ（Graphic Interchange Format）等の圧縮されたイメージファイルをダウンロードする（Ｓ４）。次いで、ダウンロードされたイメージファイルをデコーダにデコードさせて（Ｓ５）、ビットマップ・イメージファイルを取得する（Ｓ６）。取得されたビットマップ・イメージファイルをキャッシュメモリに格納する（Ｓ７）。ビットマップ・イメージファイル格納後、Ｓ１の処理に復帰する。Ｓ６の処理で取得されたビットマップ・イメージファイルは、ブラウザによりレンダリングされて、端末のディスプレイに表示される。【０００５】
また、Ｓ２の処理において、ブラウザは、上記イメージ要素に対応するイメージファイルがキャッシュメモリに格納されていると判定したとき（Ｓ２：ＹＥＳ）、そのイメージファイルを取得する（Ｓ８）。ビットマップ・イメージファイル取得後、Ｓ１の処理に復帰する。Ｓ８の処理で取得されたビットマップ・イメージファイルは、先と同様にブラウザによりレンダリングされて、端末のディスプレイに表示される。【０００６】
すなわちブラウザは、イメージ要素を見つける度にキャッシュメモリを参照し、共有可能なイメージファイル（すなわち同一のイメージファイル）が当該キャッシュメモリに格納されているか否かを検出する。共有可能なイメージファイルが格納されていることを検出した場合、ネットワーク経由でイメージファイルをダウンロードすることなく、キャッシュメモリ内で検出された共有可能なイメージファイルを用いる。このため、レンダリング処理が高速化する。【０００７】
近年、リッチなコンテンツが増加している。このようなコンテンツには、例えばイメージに加えてプラグインを用い、アニメーションや音声を再生させるものがある。このようなプラグインは、マウスやキーボード等の入力に応じてインタラクティブに動作し得る。プラグインを実行するプラグインソフトウェアには、例えばＳＶＧ（Scalable Vector Graphics）やＦｌａｓｈ（登録商標）等が挙げられる。これらのプラグインでは、マウス等の入力に応じて例えばアニメーションが再生されたり停止されたりし得る。
【発明の開示】
【０００８】
ここで、プラグインは、例えば処理すべきファイル及び処理内容が各プラグイン間で同一であってもそれぞれ独立して動作することを前提としている。従って上記イメージの例と同様に、例えば同一のファイルを処理するプラグインが単一のページデータに複数埋め込まれている（換言すると、同一のファイルを用いて動作し得るプラグインが単一のページに複数含まれている）場合であっても、これらのプラグインはそれぞれ別個の系統として動作する。このため、各プラグインを動作させる毎に、各データやスクリプト等を格納するためのメモリ容量やＣＰＵによる各処理が必要となってしまう。
【０００９】
そこで、本発明は上記の事情に鑑みて、ページデータに埋め込まれたプラグインを動作させる際のリソース（必要とされるメモリ容量、ＣＰＵの処理負担、処理時間等）を低減することができるプラグインモジュール実行方法、ブラウザ実行方法、メーラ実行方法、プログラム、端末装置、及び、ページデータが記録されたコンピュータ読み取り可能な記録媒体を提供することを課題としている。
【００１０】
上記の課題を解決する本発明の一態様に係るプラグインモジュールが実行するプラグインモジュール実行方法は、共有可能なエンティティが所定のメモリ領域に登録されているか否かを判定する登録判定ステップを含み、共有可能なエンティティが登録されていないと判定したときには新しいエンティティを作成する作成ステップを実行し、共有可能なエンティティが登録されていると判定したときには当該エンティティを共有する共有ステップを実行することを特徴とする。
【００１１】
また、上記の課題を解決する本発明の別の態様に係るプラグインモジュールが実行するプラグインモジュール実行方法は、外部プログラムからプラグイン指定ファイルを指定した処理要求があった際に、該プラグイン指定ファイルと処理アルゴリズムからなるプログラムの実体をメモリに登録し、外部プログラムから該プラグイン指定ファイルと同一のプラグイン指定ファイルを指定した処理要求があった際に、新たにプログラムの実体を作成することなく、該メモリ内の実体を動作させて該処理要求に応じることを特徴とする。なお、上記外部プログラムはブラウザ又はメーラの何れか一方であり得る。
【００１２】
上記の課題を解決する本発明の一態様に係るブラウザが実行するブラウザ実行方法は、共有可能なエンティティが所定のメモリ領域に登録されているか否かを判定する登録判定ステップを含み、共有可能なエンティティが登録されていないと判定したときには新しいエンティティを作成する作成ステップを実行し、共有可能なエンティティが登録されていると判定したときには当該エンティティを共有する共有ステップを実行することを特徴とする。
【００１３】
上記の課題を解決する本発明の一態様に係るメーラが実行するメーラ実行方法は、共有可能なエンティティが所定のメモリ領域に登録されているか否かを判定する登録判定ステップを含み、共有可能なエンティティが登録されていないと判定したときには新しいエンティティを作成する作成ステップを実行し、共有可能なエンティティが登録されていると判定したときには当該エンティティを共有する共有ステップを実行することを特徴とする。
【００１４】
また、上記の課題を解決する本発明の一態様に係るプログラムは、上記方法をコンピュータに実行させるためのものである。
【００１５】
また、上記の課題を解決する本発明の一態様に係るプラグインソフトウェアが実装された端末装置は、プラグインソフトウェアに基づいて作成される少なくとも一つのプラグインモジュールと、プラグインモジュール間で共有可能なエンティティが所定のメモリ領域に登録されているか否かを判定する登録判定手段と、登録判定手段が共有可能なエンティティが登録されていないと判定したときには新しいエンティティを作成するエンティティ作成手段と、登録判定手段が共有可能なエンティティが登録されていると判定したときには当該エンティティを共有するエンティティ共有手段とを備えたことを特徴とする。
【００１６】
また、上記の課題を解決する本発明の別の態様に係るプラグインソフトウェアが実装された端末装置は、外部プログラムからプラグイン指定ファイルを指定した処理要求があった際に、該プラグイン指定ファイルと処理アルゴリズムからなるプログラムの実体をメモリに登録する実体登録手段と、該外部プログラムから該プラグイン指定ファイルと同一のプラグイン指定ファイルを指定した処理要求があった際に、新たにプログラムの実体を作成することなく、該メモリ内の実体を動作させて該処理要求に応じる実体共有手段とを備えたことを特徴とする。なお、上記外部プログラムはブラウザ又はメーラの何れか一方であり得る。
【００１７】
また、上記の課題を解決する本発明の一態様に係るブラウザが実装された端末装置は、共有可能なエンティティが所定のメモリ領域に登録されているか否かを判定する登録判定手段と、登録判定手段が共有可能なエンティティが登録されていないと判定したときには新しいエンティティを作成するエンティティ作成手段と、登録判定手段が共有可能なエンティティが登録されていると判定したときには当該エンティティを共有するエンティティ共有手段とを備えたことを特徴とする。
【００１８】
また、上記の課題を解決する本発明の一態様に係るメーラが実装された端末装置は、共有可能なエンティティが所定のメモリ領域に登録されているか否かを判定する登録判定手段と、登録判定手段が共有可能なエンティティが登録されていないと判定したときには新しいエンティティを作成するエンティティ作成手段と、登録判定手段が共有可能なエンティティが登録されていると判定したときには当該エンティティを共有するエンティティ共有手段とを備えたことを特徴とする。なお、上記端末装置は、マークアップ言語の文書をレンダリング可能なブラウザ機能も備えたものであっても良い。
【００１９】
また、上記の課題を解決する本発明の一態様に係る上記方法を利用するページデータが記録されたコンピュータ読み取り可能な記録媒体は、該ページデータに埋め込まれたプラグイン要素が、外部プログラムに所定のプラグイン指定ファイルを取得させるよう記述されていることを特徴とする。なお、プラグイン指定ファイルはベクター画像記述言語で記述されたものであっても良い。このようなベクター画像記述言語は例えばＳＶＧであり得る。
【図面の簡単な説明】
【００２０】
【図１】従来のブラウザが実行する処理であって、ページに含まれるイメージを取得する処理を示したフローチャートである。
【図２】本発明の実施の形態の端末装置の外観を示した図である。
【図３】本発明の実施の形態の端末装置の構成を示したブロック図である。
【図４】本発明の第１の実施例において、プラグインを指定したタグがページデータに含まれているときのブラウザの処理を示したフローチャートである。
【図５】本発明の第１の実施例において、通信部により受信されるページデータを示した図である。
【図６】本発明の第１の実施例において、プラグインモジュールが実行する処理を示したフローチャートである。
【図７】本発明の第１の実施例において、プラグインデポに登録されるエンティティの一例を示した模式図である。
【図８】本発明の第２の実施例を説明するための図である。
【図９】本発明の第２の実施例において、ディスプレイに表示されるページを示した図である。
【図１０】本発明の第３の実施例を説明するための図である。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して、本発明の実施の形態について説明する。【００２２】
図２は、本発明の実施の形態の端末装置１０の外観を示した図である。また、図３は、本発明の実施の形態の端末装置１０の構成を示したブロック図である。本実施形態において端末装置１０は携帯電話であるものとするが、ＰＨＳ（Personal Handy phone System）等の他の小型移動端末に置き換えることもできる。【００２３】
図２及び図３に示されるように、端末装置１０は、ＣＰＵ（Central Processing Unit）１００、ＲＯＭ（Read Only Memory）１０２、ＲＡＭ（Random Access Memory）１０４、アンテナ１０６、通信部１０８、ディスプレイ１１０、及び、入力インターフェース部１１２を有している。【００２４】
ＣＰＵ１００は端末装置１０全体を統括的に制御する。ＲＯＭ１０２には、各種プログラムや各種データが格納されている。ＲＯＭ１０２に格納されているプログラムには、例えばブラウザがある。【００２５】
ＲＡＭ１０４は、例えばＲＯＭ１０２に格納されている各種プログラムの展開先である。ＣＰＵ１００は、ＲＯＭ１０２に格納されているプログラム（例えばブラウザ）を読み出して、ＲＡＭ１０４の所定領域に展開して実行させる。また、ＲＡＭ１０４の所定の領域には、サードパーティからダウンロードしたＳＶＧやＦｌａｓｈ等のプラグインソフトウェアが登録されている。このため本実施形態のブラウザは、自己で解釈可能なＨＴＭＬタグ（tag）のみから成るコンテンツだけでなく、ＳＶＧやＦｌａｓｈ等のプラグインを含むコンテンツもユーザに閲覧させることができる。なお、ブラウザは、上記の如きプラグインソフトウェアと同一の機能を果たすモジュールを元々実装しているものであっても良い（すなわちプラグインソフトウェアがブラウザの一部である）。この場合、プラグインソフトウェアをダウンロードしてＲＡＭ１０４に登録する必要がない。【００２６】
通信部１０８は、例えばユーザによる入力インターフェース部１１２の所定の操作に応じて、アンテナ１０６により捕捉される電波の中から必要なものを受信する。入力インターフェース部１１２には、文字や数字、記号等を入力するための入力キーが含まれている。入力キーには、例えば方向指示キー１１４、決定キー１１６が含まれる。方向指示キー１１４は、例えば「上」、「下」、「左」、「右」の何れかに画面内の注視箇所（例えばカーソルやキャレット）を移動させたり、画面をスクロールさせたりすることができる。決定キー１１６は、例えば方向指示キー１１４によって選択されたオブジェクト（例えば画像や文字列で表示されたハイパーリンク等）を実行するためのデバイスである。以下、これらのキーを用いたユーザの入力操作をユーザ・オペレーションと記す。【００２７】
ここで、マークアップ言語の文書（例えばＨＴＭＬ文書）から成るページデータを受信した場合、ＣＰＵ１００は、ブラウザを起動させて以下に示されるレンダリング処理を開始し、ディスプレイ１１０にその内容（コンテンツ）を表示させる。【００２８】
ブラウザのレンダリング処理について説明する。ブラウザは、その基本的な機能ブロックとして、パーサー、ページメーカ、及び、フォーマッタを有している。これらの機能ブロックは、マークアップ言語の文書に対して次のように処理を順次実行していく。パーサーは、マークアップ言語の論理的な構造を解析し、その構造に関するドキュメントツリーを生成する。ページメーカは、生成されたドキュメントツリーに基づいて、各タグで決められた表現形式の情報を含むレイアウトツリーを生成する。フォーマッタは、生成されたレイアウトツリーに基づいて、表示画面幅などの実際の表示画面に関する情報を用いてレイアウトを行う。
【実施例１】
【００２９】
図４は、本発明の第１の実施例（以下、本実施例１と略記）において、プラグインを指定したタグがページデータに埋め込まれているときのブラウザの処理を示したフローチャートである。また、図５は、本実施例１において通信部１０８により受信されるページデータを示した図である。【００３０】
ブラウザ（より正確にはページメーカ）は、パーサーによる解釈結果を参照して特殊なタグtag１を見つけると、それがプラグイン要素であるか否かを判定する（Ｓ１１）。なお、プラグイン要素には、objectタグ、プラグインで指定されたファイル（以下、プラグイン指定ファイルと略記）のパス（例えばプラグイン指定ファイルを格納しているサーバのドメイン名及びディレクトリ名）、及び、プラグイン指定ファイル名（例えばfoo.svg、bar.svg等）が少なくとも含まれている。すなわちプラグイン指定ファイルのパスとプラグイン指定ファイル名とを含んだプラグイン要素のアドレスは、ＵＲＬ（Uniform Resource Locator）によって指定される。なお本明細書において「ＵＲＬ」と記載された箇所は全て「ＵＲＩ（Uniform Resource Identifier）」と読み替えることも可能である。【００３１】
タグtag１がobjectタグであり、その記述内容（例えばtype="image/svg +xml"）から、ページメーカは、それがＳＶＧのプラグイン要素であると判定し（Ｓ１１：ＹＥＳ）、タグtag１を含むプラグイン要素を参照して処理を行う。なお、図５のＰＥ１がタグtag１を含むプラグイン要素である。また、ＰＥ２、ＰＥ３が、それぞれ、タグtag２、tag３を含むプラグイン要素である。【００３２】
ページメーカは、タグtag１を含むプラグイン要素の記述を参照して、ＲＯＭ１０２又はＲＡＭ１０４に登録されているＳＶＧのプラグインソフトウェアを呼び出す。それと共にそのパス（http://○○○/○○/com）を参照して例えばそのコンテンツを提供するサーバにアクセスする（Ｓ１２）。そしてプラグイン指定ファイル名（foo.svg）を参照してそのサーバからプラグイン指定ファイルをダウンロードする（Ｓ１３）。【００３３】
ページメーカは、呼び出されたプラグインソフトウェアとダウンロードされたプラグイン指定ファイルを用いて、プラグインモジュールＰ１を作成する（Ｓ１４）。ここで作成されたプラグインモジュールＰ１は、プラグイン要素ＰＥ１で記述されているプラグイン指定ファイルの属性情報を管理するためのモジュールである。ページメーカは、作成されたプラグインモジュールＰ１をＲＡＭ１０４の所定の領域（デポ（Depot））に登録する（Ｓ１５）。登録後、Ｓ１１の処理に復帰してパーサーによる解釈結果を再び参照する。なお、ここで作成されるプラグインモジュールには、ダウンロードされたプラグイン指定ファイル、プラグイン指定ファイルの属性情報（例えばファイル名や、ファイルサイズ、作成日時、ＵＲＬ等）、ブラウザの指示に従ってプラグインを動作させる所定のアルゴリズムを記述したプログラム（スクリプト）等が含まれる。【００３４】
ページメーカは、プラグイン要素ＰＥ２及びＰＥ３についても同様の処理を行う。上記の如き一連の処理により、プラグイン要素ＰＥ２で記述されているプラグイン指定ファイルの属性情報を管理するためのプラグインモジュールＰ２、及び、プラグイン要素ＰＥ３で記述されているプラグイン指定ファイルの属性情報を管理するためのプラグインモジュールＰ３を作成し、それらをデポに登録する。【００３５】
次に、図６に示されたフローチャートを参照して、プラグインモジュールが実行する処理について説明する。図６のフローチャートは、プラグインモジュールが作成されて起動したときに実行される処理を示している。【００３６】
プラグインモジュールは、ＲＡＭ１０４の所定の領域（プラグインデポ）を参照して、共有可能なエンティティ（実行データ）が登録されているか否かを判定する（Ｓ２１）。なお、エンティティとは、プラグインモジュールによって作成される一単位のデータであり、ＵＲＬ、及び、プラグインモジュールによるプラグイン指定ファイルの解釈結果を含んだものである。ここでのＵＲＬは、プラグイン指定ファイルを格納しているサーバのドメイン名、ディレクトリ名、及び、ファイル名を含んだ情報、すなわちプラグイン指定ファイルの格納場所を示した情報である。また、プラグイン指定ファイルの解釈結果は、例えばアニメーションのためのベクターデータ、ＳＶＧのスプリクト等を含んでいる。【００３７】
プラグインデポに何れのエンティティも登録されていない場合、Ｓ２１の処理においてプラグインモジュールは、エンティティ未登録と判定して（Ｓ２１：ＮＯ）、Ｓ２２の処理に進む。これに対して一つでもエンティティが登録されている場合、それが共有可能か否かを判定する。例えば以下に列挙されたパラメータに基づいて、エンティティが共有可能か否かを判定する。
（１）ＵＲＬ
（２）ＵＲＬと所定の付加情報
（３）ＵＲＬとエンティティの内容【００３８】
上記パラメータに基づいた各判定処理の例について説明する。
＜（１）ＵＲＬ＞
この場合、プラグインモジュールは、自己の持つプラグイン指定ファイルの属性情報（より正確にはＵＲＬ）と、プラグインデポ内の各エンティティの持つＵＲＬとを比較する。これらのエンティティの中に同一のＵＲＬを持つものがあると判断されるとき、プラグインモジュールは、そのエンティティが自身の解釈すべきプラグイン指定ファイルと同一のものを解釈して作成されたものであることから、そのエンティティを共有可能なエンティティであると判定してＳ２３の処理に進む。また、自己の持つプラグイン指定ファイルのＵＲＬと同一のＵＲＬを持つエンティティがプラグインデポ内にない場合、共有可能なエンティティがないと判定してＳ２２の処理に進む。なおこの例では、コンテンツ制作側は、複数のプラグインに同一のプラグイン指定ファイルが対応し得る場合においてそれらを共有させたくないときには、名称だけが異なるプラグイン指定ファイルを複数作成して、その各々をそれぞれのプラグインが参照するようにプラグイン要素を記述すれば良い。【００３９】
＜（２）ＵＲＬと所定の付加情報＞
この場合、プラグインモジュールは、先ず、自己の持つプラグイン指定ファイルのＵＲＬと、プラグインデポ内の各エンティティの持つＵＲＬとを比較する。一致するＵＲＬを持つエンティティがプラグインデポ内にない場合、共有可能なエンティティがないと判定してＳ２２の処理に進む。一致するＵＲＬを持つエンティティがある場合、そのエンティティが持っている付加情報を参照する。ここでいう付加情報は、例えばコンテンツ制作側によりページデータ内に記述されたタグであり、プラグイン指定ファイルの解釈結果としてエンティティに含まれている。このような付加情報には、例えば「interactive」や、「non-interactive」、「sharable」、「non-sharable」等がある。【００４０】
ここで、先にも記載したように、従来方式のプラグインはエンティティを共有しないことを前提としていた。その主な理由として、プラグインがインタラクティブ性を有し得ることが挙げられる。仮にインタラクティブ性を有する複数のプラグインでエンティティを共有したとき、例えばユーザが何れかの一つのプラグインに対してマウスをクリックすると、共有されている全てのプラグインがそのクリックに対応した動作を行ってしまう。すなわち本来動作すべきでないプラグインまでもが動作してしまう。このような誤動作を防止するため、各プラグインに対してそれぞれ別個のエンティティをプラグインデポに登録するようにし、各プラグインは自己専用のエンティティを用いて動作していた。しかしながらプラグインの性質によってはエンティティを共有することが可能であり得る。本発明者はこの点に着目し、「interactive」や、「non-interactive」、「sharable」、「non-sharable」等の付加情報を提案している。【００４１】
「interactive」は、そのエンティティがインタラクティブ性を有することを示す情報である。エンティティがインタラクティブ性を有する場合、上述した問題（すなわちユーザ・オペレーションにより本来動作すべきでないプラグインまでもが動作してしまうこと）が起こり得る。従ってこの場合、プラグインモジュールは、そのエンティティを共有可能なエンティティでないと判定してＳ２２の処理に進む。【００４２】
「non-interactive」は、そのエンティティがインタラクティブ性を有さないことを示す情報である。エンティティがインタラクティブ性を有さない場合、上述した問題が起こり得ない。従ってこの場合、プラグインモジュールは、そのエンティティを共有可能なエンティティであると判定してＳ２３の処理に進む。【００４３】
「sharable」は、そのエンティティがインタラクティブ性を有するか否かに拘わらず共有可能なものであることを示す情報である。従ってこの場合、プラグインモジュールは、そのエンティティを共有可能なエンティティであると判定してＳ２３の処理に進む。例えばコンテンツ制作側の意図によっては、インタラクティブ性を有するプラグインを共有させても問題ない（すなわち何れかのプラグインが例えばクリックされて、それに共有されている全てのプラグインがそのクリックに対応した動作を行っても問題ない、或いは、共有される全てのプラグインを同期して動作させたい）場合があり得る。このような場合、「sharable」は極めて有用である。【００４４】
「non-sharable」は、そのエンティティがインタラクティブ性を有するか否かに拘わらず共有できないものであることを示す情報である。従ってこの場合、プラグインモジュールは、そのエンティティを共有可能なエンティティでないと判定してＳ２２の処理に進む。【００４５】
＜（３）ＵＲＬとエンティティの内容＞
この場合、プラグインモジュールは、先ず、自己の持つプラグイン指定ファイルのＵＲＬと、プラグインデポ内の各エンティティの持つＵＲＬとを比較する。一致するＵＲＬを持つエンティティがプラグインデポ内にない場合、共有可能なエンティティがないと判定してＳ２２の処理に進む。一致するＵＲＬを持つエンティティがある場合、そのエンティティの内容（例えばプラグイン指定ファイルの解釈結果）を見て共有可能か否かを判定する。そのエンティティがインタラクティブ性を有する内容である場合、共有可能なエンティティでないと判定してＳ２２の処理に進む。また、そのエンティティがインタラクティブ性を有さない内容である場合、共有可能なエンティティであると判定してＳ２３の処理に進む。【００４６】
Ｓ２１の処理においてプラグインモジュールは、共有可能なエンティティがプラグインデポに登録されていないと判定したとき（Ｓ２１：ＮＯ）、プラグイン指定ファイルを解釈して、その解釈結果及びプラグイン指定ファイルのＵＲＬを単一のエンティティとしてプラグインデポに登録する（Ｓ２２）。エンティティ登録後、プラグインモジュールは当該エンティティを実行させる。また、例えば、そのエンティティがインタラクティブ性を有する場合、ユーザ・オペレーションに応答して当該エンティティを実行させることができる状態に移行する。ユーザ・オペレーションによる入力があったとき、ブラウザはそれに呼応して、プラグインモジュールに対してプラグインを実行するよう命令する。プラグインモジュールは、その命令に従ってエンティティを実行させる。【００４７】
また、Ｓ２１の処理においてプラグインモジュールは、共有可能なエンティティがプラグインデポに登録されていると判定したとき（Ｓ２１：ＹＥＳ）、そのエンティティを取得して（Ｓ２３）、当該エンティティを実行させる。また、そのエンティティがインタラクティブ性を有する場合、ユーザ・オペレーションに応答して当該エンティティを実行させることができる状態に移行する。【００４８】
図７は、図６のフローチャートでプラグインデポに登録されるエンティティの一例を示した模式図である。図５を参照して説明すると、先ず、プラグインモジュールＰ１がプラグインデポを参照する。このときプラグインデポには何れのエンティティも登録されていない。このためプラグインモジュールＰ１は、エンティティＥ１を作成してプラグインデポに登録する。【００４９】
次いで、プラグインモジュールＰ２がプラグインデポを参照する。ここで、プラグインモジュールＰ２の持つプラグイン指定ファイルのＵＲＬと、エンティティＥ１の持つＵＲＬとは互いに同一である。例えばＵＲＬのみに基づいてＳ２１の判定処理が行われる場合、プラグインモジュールＰ２は、エンティティＥ１を共有可能なエンティティであると判定する。このためプラグインモジュールＰ１とＰ２は、エンティティＥ１を共有する。【００５０】
次いで、プラグインモジュールＰ３がプラグインデポを参照する。ここで、プラグインモジュールＰ３の持つプラグイン指定ファイルのＵＲＬと、エンティティＥ１の持つＵＲＬとは互いに異なる。このためプラグインモジュールＰ３は、エンティティＥ１を共有することなく、エンティティＥ２を作成してプラグインデポに登録する。【００５１】
図７の例によると、ページに含まれているプラグインの数が三つであるのに対して、プラグインデポに登録されているエンティティの数は二つである。すなわちこの例では、登録されるべきエンティティの数を、上述の共有設定の処理を実行することにより三つから二つに削減している。本実施例１では、プラグインモジュールＰ２は、プラグインモジュールＰ１により実行されるエンティティＥ１を参照するだけである。プラグインモジュールＰ２自体はエンティティを実行しないため、端末装置１０全体としてのリソース（例えばプラグイン実行時に必要とされるメモリ容量、それに伴ったＣＰＵの処理負担、処理時間等）が低減される。【００５２】
また、本実施例１では、インクルージョン（プラグインモジュールやイメージ用デコーダ等の総称）がインクルージョンデータ（プラグイン指定ファイルやイメージファイル等の総称）の共有設定処理を行う。別の観点では、ブラウザがインクルージョンデータの共有設定処理を行わない。従ってプラグイン動作時において、ブラウザの実装に依存することなくリソースを低減させることが可能となる。なお、別の実施例ではブラウザがプラグインモジュールの機能も包括的に果たすようにしても良い。
【実施例２】
【００５３】
図８及び図９は、本発明の第２の実施例（以下、本実施例２と略記）を説明するための図である。本実施例２では、単一のページに複数のプラグインが含まれている。これらのプラグインの各々は、同一のプラグイン指定ファイルのそれぞれ異なる描画領域を指定している。これにより、例えば各プラグインにおいてアニメーションが完全に同期した状態で表示される。【００５４】
図８（ａ）は、あるプラグインで動作し得るアニメーションを示した模式図である。本実施例２のプラグインは、例えばhttp://example.com/に格納されているMyDrawing.svgというプラグイン指定ファイルを用いて動作する。当該プラグインを動作させると、描画領域ｒの周辺部に沿ってボールＢが時計回り（図中の矢印の方向）に回転移動するアニメーションが表示される。なお、描画領域ｒは、座標（０，０）を基準として、幅ｗ、高さｈを有した領域であり、例えばディスプレイ１１０の表示領域と同一サイズであり得る。【００５５】
図８（ｂ）は、本実施例２のプラグインと各指定領域（領域ｒ１〜ｒ４）との関係を示した図である。領域ｒ１〜ｒ４の各々は描画領域ｒの一部である。領域ｒ１は、座標（ｘ１、ｙ１）を基準として、幅ｗ１、高さｈ１を有した領域である。領域ｒ２は、その一部が領域ｒ１及びｒ３の一部に隣接している。また、領域ｒ３は、その一部が領域ｒ２及びｒ４の一部に隣接している。また、領域ｒ４は、その一部が領域ｒ１及びｒ３の一部に隣接している。例えばページデータ内に以下の記述（プラグイン要素）があるとき、描画領域ｒ内の領域ｒ１が指定される。
<http://example.com/MyDrawing.svg#svgView(viewBox(x1,y1,w1,h1))>
なお、他の領域も上記と同様に指定される。ボールＢは、領域ｒ１、ｒ２、ｒ３、ｒ４を順に移動するよう描画される。【００５６】
図９は、本実施例２においてディスプレイ１１０に表示されるページを示した図である。本実施例２のページでは、例えばＨＴＭＬ形式のコンテンツＣが四つのプラグインＳＶＧ１〜ＳＶＧ４によって囲まれた状態で表示される。なお、ＳＶＧ１、ＳＶＧ２、ＳＶＧ３、ＳＶＧ４は、それぞれ、領域ｒ１、ｒ２、ｒ３、ｒ４に対応したプラグインである。【００５７】
本実施例２では、ページデータ内に領域ｒ１、ｒ２、ｒ３、ｒ４の各々を指定した四つのプラグイン要素が埋め込まれている。本実施例２のブラウザは、本実施例１のブラウザと同様に、各プラグイン要素を見つけるとそれに対応したプラグインモジュールを作成する。ここで、各プラグイン要素は、単一の描画領域内においてそれぞれ異なる領域を指定したものであり、同一のプラグイン指定ファイル（MyDrawing.svg）を参照するものである（換言すると、同一のＵＲＬを参照するものである）。従って、例えばＵＲＬのみに基づいてＳ２１と同様の判定処理が行われる場合、何れかのプラグインモジュールがエンティティを作成した後、残りの三つのプラグインモジュールがそのエンティティを共有することになる。【００５８】
以上説明されたように本実施例２においても本実施例１と同様に、各プラグインにおいてエンティティの共有が行われ、リソースの低減が成される。【００５９】
また、本実施例２では、各プラグインで描画されるアニメーションが完全に同期する。例えばボールＢが領域ｒ１から領域ｒ２に移るとき、従来の方式による各プラグインは、それぞれ異なるプラグイン指定ファイルを参照していた。このため、互いのプラグインでアニメーションを完全に同期させることは非常に困難であった。例えばボールＢが二つの領域を跨って位置している間、互いのプラグインが完全には同期し得ないことから、当該ボールＢの形状が領域の境界でずれて表示されることがあった。【００６０】
しかしながら本実施例２では、各プラグインモジュールが同一のプラグイン指定ファイルを参照している。従って各プラグイン間で同期をとることなく、各プラグインで描画されるアニメーションが完全に同期する。従って例えばボールＢが領域を跨って位置している間であっても、当該ボールＢの形状がその境界でずれて表示されることなく、正確な円として表示される。このようなプラグインを例えばウインドウや電子メールの装飾フレームとして利用することもできる。この場合、ユーザに対してコンテンツやメールを、アニメーションが正確に描画されるフレームを付加させた状態で閲覧させることができる。【００６１】
本実施例２の（すなわちプラグインを含むＨＴＭＬ形式の電子メールを処理可能な）端末装置には、ブラウザの代替として、図９に示されたような画像を電子メールで送受信可能なメーラが実装されている。ここでいうメーラには、電子メールやＭＭＳ（Multimedia Messaging Service）メッセージ等を送受信するための周知のメールクライアント、メッセージングクライアント等の機能、及び、本実施例１のブラウザと同様の機能が含まれている。なお、別の実施例では、ＨＴＭＬ形式に非対応で且つプラグインに対応したメーラも想定される。このようなメーラは、ＨＴＭＬ文書をレンダリングするブラウザ機能が実装されていない一方で、それ以外に関しては本実施例２のメーラと同様の機能を備えている。
【実施例３】
【００６２】
図１０は、本発明の第３の実施例（以下、本実施例３と略記）を説明するための図である。本実施例３でも本実施例２と同様に、単一のページに複数のプラグインが含まれており、これらのプラグインの各々は、同一のプラグイン指定ファイルのそれぞれ異なる描画領域を指定している。なお、本実施例３におけるページは例えばＨＴＭＬ形式の電子メールである。各プラグインはその文章中に配列されている。【００６３】
図１０（ａ）に、本実施例３の電子メールの文章を示す。図１０（ａ）の文章は、テキストと、例えばキャリアが提供している「絵文字」とによって構成されている。本実施例３では「絵文字」はＳＶＧ文書によって記述されている。「太陽」、「日本」、及び、「弁当箱」の絵が「絵文字」のデータから成り、それ以外の文字がテキストデータから成る。すなわち上記文章は、テキストデータ中にＳＶＧプラグインが埋め込まれたデータから成る。【００６４】
また、図１０（ｂ）に、本実施例３のプラグインと各指定領域（領域ｒ１１〜ｒ１３）との関係を示す。領域ｒ１１〜ｒ１３の各々は、描画領域ｒ１０の一部であり、単一のプラグインにおいてそれぞれ異なった領域を指定したものである。領域ｒ１１、領域ｒ１２、領域ｒ１３には、それぞれ、「太陽」、「日本」、「弁当箱」の「絵文字」が描画されている。これらの「絵文字」は、本実施例２と同様の領域指定の記述により描画領域ｒ１０から抽出されて、電子メールの文章中に表示されている。【００６５】
本実施例３でも本実施例２と同様に、各「絵文字」に対応したプラグインが、それぞれ同一のプラグイン指定ファイルを参照している。従って各プラグインにおいてエンティティの共有が行われ、リソースの低減が成される。本実施例３では、全てのプラグインが同一のプラグイン指定ファイルを参照するため、プラグイン実行時に必要とされるメモリ容量、それに伴ったＣＰＵの処理負担、処理時間等が極めて効率良く抑えられる。【００６６】
また、本実施例３でも本実施例２と同様に、各「絵文字」のアニメーションを完全に同期させることができる。このため、例えば各「絵文字」を連動するようアニメーションさせることもできる。例えば全ての「絵文字」を同一のタイミングで動作させることや、「絵文字」の各々をそれぞれ異なるタイミング毎に動作させることもできる。本実施例２と同様に、単一のプラグイン指定ファイルを元にこれらのアニメーションを行っているため、各プラグイン間で同期をとる必要がない。本実施例３では、ユーザは、例えば正確に連動するようアニメーションする「絵文字」が付加されたメールを閲覧することができる。【００６７】
以上が本発明の実施形態である。本発明はこれらの実施形態に限定されるものではなく様々な範囲で変形が可能である。例えばコンテンツに含まれるプラグインはＳＶＧやＦｌａｓｈ等に限定されず、他の様々なものも想定される。また、Ｗ３Ｃ（登録商標）により、ＳＶＧやＳＭＩＬ（Synchronized Multimedia Integration Language）等をコンバインする規格が提案されている。本発明の端末装置やプログラム、方法、記録媒体を利用して、このような規格に基づいて作成されたページデータを処理する場合であっても、エンティティの共有が可能であり、リソースの消費を効率良く抑えることができる。なお、本発明におけるブラウザは、狭義のＷｅｂブラウザに限定されるものではなく、コンテンツを処理して再生させるプログラム全般を指すものである。またエンティティの共有は単一のページ（ＨＴＭＬ等）内に限定されず、例えば複数の異なるページ間で実現することも可能である。【００６８】
本発明のプラグインモジュール実行方法、ブラウザ実行方法、メーラ実行方法、プログラム、端末装置、及び、ページデータが記録されたコンピュータ読み取り可能な記録媒体を採用すると、例えばページデータに埋め込まれたプラグインを動作させる際のリソース（必要とされるメモリ容量、ＣＰＵの処理負担、処理時間等）を低減することができる。【００６９】
なお本発明の一つの実施の形態において上記登録判定ステップでは、プラグインモジュールは、自身の解釈すべきプラグイン指定ファイルと同一のものを解釈して作成されたエンティティが該メモリ領域に登録されているとき、当該エンティティを共有可能と判定することができる。【００７０】
また本発明の一つの実施の形態において上記登録判定ステップでは、プラグインモジュールは、自身の解釈すべきプラグイン指定ファイルと同一のものを解釈して作成されたエンティティが該メモリ領域に登録され、且つ、それが所定の付加情報を有するとき、当該エンティティを共有可能と判定することができる。ここでいう所定の付加情報とは、そのエンティティがインタラクティブ性を有さないことを示す情報、又は、そのエンティティが共有可能なものであることを示す情報の何れか一方であり得る。【００７１】
また本発明の一つの実施の形態の端末装置において、登録判定手段は、プラグインモジュールが解釈すべきプラグイン指定ファイルと同一のものを解釈して作成されたエンティティが該メモリ領域に登録されているとき、当該エンティティを共有可能と判定することができる。【００７２】
また本発明の一つの実施の形態の端末装置において、登録判定手段は、プラグインモジュールが解釈すべきプラグイン指定ファイルと同一のものを解釈して作成されたエンティティが該メモリ領域に登録され、且つ、それが所定の付加情報を有するとき、当該エンティティを共有可能と判定することができる。ここでいう所定の付加情報とは、そのエンティティがインタラクティブ性を有さないことを示す情報、又は、そのエンティティが共有可能なものであることを示す情報の何れか一方であり得る。【００７３】
また本発明の一つの実施の形態に係るプラグインモジュール実行方法を利用するページデータが記録されたコンピュータ読み取り可能な記録媒体において、該ページデータ内に、単一のプラグイン指定ファイルに対してそれぞれ異なる描画領域を指定した複数のプラグイン要素を埋め込んでも良い。なお、単一のベクター画像が描画されるよう単一のプラグイン指定ファイルが作成されているとき、該単一のベクター画像が複数に分割されるよう各描画領域を指定しても良い。また、複数のベクター画像が描画されるよう単一のプラグイン指定ファイルが作成されているとき、複数のベクター画像の各々が各領域に単独で収まるよう各描画領域を指定しても良い。
【図１】
2007013280.tif 000002
【図２】
2007013280.tif 000003
【図３】
2007013280.tif 000004
【図４】
2007013280.tif 000005
【図５】
2007013280.tif 000006
【図６】
2007013280.tif 000007
【図７】
2007013280.tif 000008
【図８】
2007013280.tif 000009
【図９】
2007013280.tif 000010
【図１０】
2007013280.tif 000011
【国際調査報告】
2007013280.tif 000012
2007013280.tif 000013
2007013280.tif 000014
2007013280.tif 000015