(57)【要約】  マークアップ言語で記述されたコンテンツデータに基づいてディスプレイに該コンテンツを表示するための描画データを生成する、コンピュータによって実行可能なブラウザプログラムであって、それぞれ異なる機能が実装された複数のブラウザモジュールと、複数のブラウザモジュールを管理するブラウザモジュール管理部とを備え、複数のブラウザモジュールの一つはコンテンツデータをレンダリングして描画データを生成するレンダリングモジュールであり、複数のブラウザモジュールの少なくとも一つはレンダリングモジュールの機能の一部を代替若しくは変更し又は該レンダリングモジュールの機能に別の機能を追加する専用モジュールであり、ブラウザモジュール管理部は、所定の条件に基づいて何れの専用モジュールを用いて前記コンテンツデータに含まれる要素を処理するかを決定し、コンテンツデータに所定の変更を加えたものをレンダリングモジュールに処理させるものが提供される。
2009084591.tif 000002
【特許請求の範囲】
【請求項１】
マークアップ言語で記述されたコンテンツデータに基づいてディスプレイに該コンテンツを表示するための描画データを生成する、コンピュータによって実行可能なブラウザプログラムであって、
それぞれ異なる機能が実装された複数のブラウザモジュールと、
前記複数のブラウザモジュールを管理するブラウザモジュール管理部と
を備え、
前記複数のブラウザモジュールの一つは、前記コンテンツデータをレンダリングして描画データを生成するレンダリングモジュールであり、
前記複数のブラウザモジュールの少なくとも一つは、前記レンダリングモジュールの機能の一部を代替若しくは変更し、又は該レンダリングモジュールの機能に別の機能を追加する専用モジュールであり、
前記ブラウザモジュール管理部は、所定の条件に基づいて、何れの専用モジュールを用いて前記コンテンツデータに含まれる要素を処理するかを決定し、前記コンテンツデータに所定の変更を加えたものを前記レンダリングモジュールに処理させる
ことを特徴とするブラウザプログラム。
【請求項２】
前記ブラウザモジュール管理部は、
前記コンテンツデータを検索して前記専用モジュールを用いて処理すべき要素を抽出する要素抽出部と、
前記要素抽出部による抽出結果に基づいて前記コンテンツデータに所定の変更を加えるコンテンツデータ変更部と、
前記変更に対応する前記専用モジュールを起動させるモジュール起動部と、
前記変更が加えられたコンテンツを前記レンダリングモジュールに渡すコンテンツ送信部と
を有し、
前記レンダリングモジュールは、前記コンテンツの前記変更が加えられた部分に対する処理を前記起動された専用モジュールに実行させ、その実行結果を用いて前記コンテンツをレンダリングすることを特徴とする請求項１に記載のブラウザプログラム。
【請求項３】
前記コンテンツ変更部は、所定の制御情報が付加された所定の要素を前記コンテンツに挿入することを特徴とする請求項２に記載のブラウザプログラム。
【請求項４】
前記所定の制御情報は、前記専用モジュールを呼び出して前記レンダリングモジュールの機能に該専用モジュールの機能を追加するための情報であることを特徴とする請求項３に記載のブラウザプログラム。
【請求項５】
前記所定の制御情報には、前記専用モジュールが前記所定の要素にアクセスするための識別情報が含まれることを特徴とする請求項４に記載のブラウザプログラム。
【請求項６】
前記コンテンツ変更部は、前記レンダリングモジュールが前記コンテンツを解析できる範囲で変更を加えることを特徴とする請求項２に記載のブラウザプログラム。
【請求項７】
サーバへのリクエストは前記レンダリングモジュールが行い、
前記ブラウザモジュール管理部は、前記リクエストに対するレスポンスをインターセプトして、前記要素抽出部による要素抽出処理、前記コンテンツ変更部によるコンテンツ変更処理、前記モジュール起動部によるブラウザモジュール起動処理、および前記コンテンツ送信部によるコンテンツ送信処理を行うことを特徴とする請求項２に記載のブラウザプログラム。
【請求項８】
前記レンダリングモジュールは、オープンソース化されたブラウザモジュールであることを特徴とする請求項１に記載のブラウザプログラム。
【請求項９】
請求項１に記載されたブラウザプログラムを格納する格納手段と、
前記格納されているブラウザプログラムを実行するブラウザプログラム実行手段と、
前記実行されたブラウザプログラムによるレンダリング結果を表示する表示手段と
を備えたことを特徴とする端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテンツをレンダリングするブラウザおよび当該ブラウザを搭載した端末装置に関連し、より具体的には、オーブンソースブラウザモジュールと非オープンソースブラウザモジュールとを連係動作させてコンテンツをレンダリングするブラウザプログラムおよび端末装置に関する。
【背景技術】
【０００２】
ネットワーク上の情報（主にマークアップ言語によって統合されたデータ群として構成されるもの）を閲覧するための情報閲覧ソフトウェアプログラム（以下、「ブラウザ」という。）が広く知られ実用に供されている。ブラウザには、ネットワーク上の情報（例えば、ＨＴＭＬ（Hyper Text Markup Language）やＸＨＴＭＬ（Extensible Hyper Text Markup Language）等のマークアップ言語で記述された文書であるＷｅｂページ）を解釈し、その解釈結果に基づいて画面表示用データの生成（以下、「レンダリング」という）を行う機能が実装されている。ユーザは、ＵＲＩ（Uniform Resource Identifier）を指定することにより、ブラウザ上で所望のＷｅｂページを閲覧することができる。このようなブラウザは、ＰＣのみならず、例えば携帯電話やＰＤＡ（Personal Digital Assistants）、情報家電等の様々な機器に搭載されている。【０００３】
ブラウザを搭載する機器の中でも携帯電話は特に利用者数が多く、その市場規模も大きい。各移動体通信事業者は、付加価値の高いサービスをユーザに提供して他社との差別化を図ることで移動体通信サービスの市場占有率を上昇させようとしている。そのため、各移動体通信事業者は、例えば、標準技術では実現できない独自の拡張機能を実装したブラウザを携帯電話に搭載して携帯電話の機能や性能を向上させることにより付加価値の高いサービスをユーザに提供している。【０００４】
このような移動体通信事業者の事情により、移動体通信事業者にブラウザを供給するベンダは、各移動体通信事業者の仕様に適合するブラウザを各移動体通信事業者向けに別個に開発する必要がある。このように各移動体通信事業者向けに専用のブラウザを開発する場合には、各移動体通信事業者向けのブラウザで共通する機能についての重複開発を回避して開発工数を削減することによりブラウザの開発効率を向上させることが望まれる。【０００５】
ところで、近年、ソフトウェアの開発効率を向上させるため、オープンソースソフトウェアを利用することによって汎用的な機能を担うモジュールの重複開発を回避しつつ独自のソフトウェアを開発する開発手法の導入が急速に進んでいる。例えばWebKit（The WebKit Open Source Project <http://webkit.org/>［２００７年１２月２１日閲覧］）等のブラウザエンジンがオープンソース化され、このようなオープンソースソフトウェアを用いて誰でも自由に独自のブラウザを開発できる環境にある。このため、ベンダには、オープンソースソフトウェアを利用してブラウザを開発することによりブラウザの開発効率を向上させてリードタイム短縮やコストダウン等を達成したい考えがある。【０００６】
一般に、オープンソースソフトウェアの改変を行う場合、オープンソースソフトウェアの利用許諾契約（ライセンス）により、作成者には改変したソフトウェアのソースコードを公開する義務が生じる。従って、ベンダは、オープンソースのブラウザを改変して派生ブラウザを開発した場合には、そのソースコードを公開することになる。  
【発明の開示】
【０００７】
しかしながら、移動体通信事業者は、他社との差別化やセキュリティ確保を図るため、自社独自の拡張機能や、システム運用上の都合により制約を加えている機能に関するソースコード等を秘匿することを望む。つまり、オープンソースブラウザを改変して派生ブラウザを開発するという手法は、開発効率において極めて有効であるものの、ライセンス条件において携帯電話用ブラウザの開発には適していない。
【０００８】
その一方で、移動体通信事業者は、オープンソースブラウザによって実現された機能を各移動体通信事業者向けの専用ブラウザにも早期に実装することをベンダに要求する。このため、ベンダは、各移動体通信事業者向けに、独自の拡張機能を実現するためのソフトウェアの開発に加えて、オープンソースブラウザで実現された機能を専用ブラウザに実装するためのソフトウェア開発を行う必要がある。しかしながら、オープンソースブラウザの機能を専用ブラウザに実装する場合、プログラム構造の複雑化によるブラウザの品質低下や、開発負担の増大、リードタイムの長期化、コストアップなどが懸念される。
【０００９】
本発明は上記の事情に鑑みてなされたものであり、オープンソースのブラウザエンジンと非オープンソースのモジュールとを連係して起動させることにより、最新のオープンソースブラウザの機能を実現しつつ、オープンソースブラウザを改変することなく個別の拡張機能や仕様に対応可能なブラウザプログラム、および当該ブラウザプログラムを搭載した端末装置を提供することを目的とする。
【００１０】
本発明の実施形態により、マークアップ言語で記述されたコンテンツデータに基づいてディスプレイにコンテンツを表示するための描画データを生成する、コンピュータによって実行可能なブラウザプログラムであって、それぞれ異なる機能が実装された複数のブラウザモジュールと、複数のブラウザモジュールを管理するブラウザモジュール管理部とを備え、複数のブラウザモジュールの一つはコンテンツデータをレンダリングして描画データを生成するレンダリングモジュールであり、複数のブラウザモジュールの少なくとも一つはレンダリングモジュールの機能の一部を代替若しくは変更し又はレンダリングモジュールの機能に別の機能を追加する専用モジュールであり、ブラウザモジュール管理部は、所定の条件に基づいて何れの専用モジュールを用いてコンテンツデータに含まれる要素を処理するかを決定し、コンテンツデータに所定の変更を加えたものをレンダリングモジュールに処理させるものが提供される。
【００１１】
このように構成されたブラウザによれば、コンテンツを処理する際に用いるブラウザモジュールが所定の条件に基づいて決定されるため、適切な条件設定を行うことにより、オープンソースブラウザモジュールや非オープンソースブラウザ等の各種ブラウザモジュールを好適に使い分けてコンテンツを処理することが可能となる。このため、オープンソースブラウザモジュールを利用することによるベンダの開発負担の軽減と、移動体通信事業者の独自の拡張機能等を非オープンソースブラウザに実装させることによる拡張機能等のソースコードの秘匿性確保との両立を達成することができるようになる。  
【００１２】
本発明の一実施形態において、ブラウザモジュール管理部は、コンテンツデータを検索して専用モジュールを用いて処理すべき要素を抽出する要素抽出部と、要素抽出部による抽出結果に基づいてコンテンツに所定の変更を加えるコンテンツデータ変更部と、変更に対応する専用モジュールを起動させるモジュール起動部と、変更が加えられたコンテンツをレンダリングモジュールに渡すコンテンツ送信部とを有している。レンダリングモジュールは、コンテンツの変更が加えられた部分に対する処理を起動された専用モジュールに実行させ、その実行結果を用いてコンテンツをレンダリングする。
【００１３】
コンテンツ変更部は、所定の制御情報が付加された所定の要素をコンテンツに挿入してもよい。また、所定の制御情報は、専用モジュールを呼び出してレンダリングモジュールの機能に専用モジュールの機能を追加するための情報であってもよい。また、所定の制御情報には、専用モジュールが所定の要素にアクセスするための識別情報が含まれていてもよい。
【００１４】
また、コンテンツ変更部は、レンダリングモジュールがコンテンツを解析できる範囲で変更を加えることが望ましい。
【００１５】
本発明の一実施形態において、サーバへのリクエストはレンダリングモジュールが行い、ブラウザモジュール管理部は、リクエストに対するレスポンスをインターセプトして、要素抽出部による要素抽出処理、コンテンツ変更部によるコンテンツ変更処理、モジュール起動部によるブラウザモジュール起動処理、およびコンテンツ送信部によるコンテンツ送信処理を行う。
【００１６】
レンダリングモジュールは、オープンソース化されたブラウザモジュールであることが好ましい。
【００１７】
なお、上記のブラウザプログラムを記述するコードは、Ｃ言語、Ｃ＋＋言語、Ｊａｖａ（登録商標）等の様々なプログラミング言語を使用して記述することができる。また、上記のブラウザプログラムを記述するコードは、ＲＡＭ、ＲＯＭ又はフラッシュメモリに格納されたファームフェアを含む。また、該コードは、磁気テープ、フロッピーディスク、ハードディスク、コンパクトディスク（ＣＤ）、光磁気ディスク、デジタル多用途ディスク（ＤＶＤ）、フラッシュディスク等のコンピュータが読み取り可能な記録媒体に記録されたものを含む。更に、本発明の一実施形態により、上記のブラウザプログラムが記録されたコンピュータが読み取り可能な記録媒体が提供される。
【００１８】
本発明の一形態により、上述したブラウザプログラムを格納する格納手段と、ブラウザプログラムを実行するブラウザプログラム実行手段と、実行されたブラウザプログラムによるレンダリング結果を表示する表示手段とを備えた端末装置が提供される。
【００１９】
このように構成された端末装置によれば、コンテンツを処理する際に用いるブラウザモジュールが所定の条件に基づいて決定されるため、適切な条件設定を行うことにより、オープンソースブラウザモジュールや非オープンソースブラウザ等の各種ブラウザモジュールを好適に使い分けてコンテンツを処理することが可能となる。このため、オープンソースブラウザモジュールを利用することによるベンダの開発負担の軽減と、移動体通信事業者の独自の拡張機能等を非オープンソースブラウザに実装させることによる拡張機能等のソースコードの秘匿性確保との両立を達成することができるようになる。
【００２０】
本発明の実施形態によれば、オープンソースのブラウザエンジン等のモジュールを利用することによるベンダの開発負担の軽減と、個別の拡張機能等を実現するための非オープンソースの専用モジュールを利用することによる秘匿性確保との両立が達成可能なブラウザおよび端末装置が提供される。
【図面の簡単な説明】
【００２１】
【図１】図１は、本発明の実施の形態による端末装置の外観を示す図である。
【図２】図２は、本発明の実施の形態による端末装置の構成を示したブロック図である。
【図３】図３は、アクセス操作にしたがって取得されたＷｅｂコンテンツがディスプレイに表示されるまでの、本発明の実施の形態による処理の流れを説明するデータフロー図である。
【図４】図４は、本発明の実施の形態によるオープンソースのブラウザエンジン・モジュールが実行する、Ｗｅｂコンテンツレンダリング処理のフローチャートである。
【図５】図５は、アクセス操作にしたがって取得されたＷｅｂコンテンツがディスプレイに表示されるまでの、本発明の実施の形態による処理の流れを説明するデータフロー図である。
【発明を実施するための最良の形態】
【００２２】
以下、図面を参照して、本発明の実施の形態について説明する。【００２３】
先ず、本明細書において用いられる用語について定義する。
・ネットワーク
移動体通信事業者の移動体通信網、イントラネット、インターネット等を含む各種通信網
・コンテンツ
ネットワーク経由で伝送される、又は端末に格納されている、ユーザが閲覧する映像や画像、音声、文書、ワークシート等の情報、或いはそれらの組み合わせから構成される一群の情報
・Ｗｅｂコンテンツ
コンテンツの一形態であり、Ｗｅｂ技術を利用して作成・閲覧される一群の情報
・Ｗｅｂページ
Ｗｅｂコンテンツの一形態であり、ユーザがあるＵＲＩを指定したときに表示されるべき内容全体。すなわち、ディスプレイ上の画像をスクロールすることにより表示され得る内容全体。なお、Ｗｅｂページにはオンラインで閲覧されるものに限らず、オフラインで閲覧されるものも含まれる。オフラインで閲覧されるＷｅｂページには、例えばインターネット経由で伝送されてブラウザによりキャッシングされたページや、端末装置のローカルフォルダ等にｍｈｔ形式で保存されたページ等が含まれる。Ｗｅｂページは、例えばＨＴＭＬやＸＨＴＭＬ文書、イメージファイル、音声データ等の種々のデータ（Ｗｅｂページデータ）から構成される。【００２４】
上記定義によれば、コンテンツはＷｅｂコンテンツを包含し、ＷｅｂコンテンツはＷｅｂページを包含する。【００２５】
図１に、本発明の実施の形態の端末装置１０の概略外観図を示す。また、図２は、端末装置１０の概略構成を示すブロック図である。なお、本実施形態における端末装置１０は携帯電話であるが、例えばＰＤＡや、ＰＨＳ（Personal Handy phone System）、携帯ゲーム機、家電等のブラウザを搭載した別形態の端末においても本発明は実施可能である。【００２６】
図２に示されるように、端末装置１０には、装置全体を統括的に制御するＣＰＵ（Central Processing Unit）１０３が備えられている。ＣＰＵ１０３にはバス１１９を介して端末装置１０の各構成要素が接続されている。ＣＰＵ１０３は、バス１１９を介して他の各構成要素とデータ通信を行うことにより各種機能を実現する。これらの構成要素には、フラッシュメモリ１０５、ＲＡＭ（Random-Access Memory）１０７、ネットワークインタフェース１０９、ディスプレイ１１１、ユーザ入力デバイス１１３、および処理パターンＤＢ（Data Base）１１５等がある。なお、バス１１９はデータラインの他に電源ラインも備えている。ＣＰＵ１０３を始めとする端末装置１０の各構成要素には、図示しないバッテリから電源ラインを介して電源供給が行われる。【００２７】
フラッシュメモリ１０５には、端末装置１０全体を管理するＯＳ（Operating System）１０５０、およびＯＳ１０５０上で動作する複数のプログラムモジュール、すなわち起動管理モジュール１０５１や複数の起動モジュールが格納されている。【００２８】
起動管理モジュール１０５１は、複数の起動モジュールを統括的に管理する。複数の起動モジュールには、WebKit等のオープンソースのブラウザエンジン・モジュール１０５２、および移動体通信事業者独自の拡張機能や仕様に関する処理を行うための非オープンソースの専用モジュール１０５３、１０５４、・・・がある。【００２９】
なお、起動管理モジュール１０５１、オープンソースのブラウザエンジン・モジュール１０５２、非オープンソースの各種専用モジュール１０５３、１０５４・・・はそれぞれ、単一のプログラムモジュールとして、或いはより細分化されたプログラムモジュール群として構成されてもよい。【００３０】
ＲＡＭ１０７は、不揮発性のメモリであり、ＣＰＵ１０３のワークスペース、すなわちＣＰＵ１０３が使用する各種データやプログラムの展開先として機能する。例えばユーザ入力デバイス１１３によりＷｅｂコンテンツへのアクセス操作が行われると、起動管理モジュール１０５１、オープンソースのブラウザエンジン・モジュール１０５２、および非オープンソースの各種専用モジュール１０５３、１０５４、・・・が、必要に応じてＲＡＭ１０７のワークエリアに展開されて互いに連係動作し、ＨＴＭＬやＸＨＴＭＬ等のマークアップ言語で記述されたオンライン又はオフラインのコンテンツを閲覧するための、見かけ上、単一のブラウザとして機能する。具体的には、起動管理モジュール１０５１のみが直接ＯＳ１０５０上で動作し、オープンソースのブラウザエンジン・モジュール１０５２、および非オープンソースの各種専用モジュール１０５３、１０５４、・・・は、それぞれ起動管理モジュール１０５１上で動作する。このため、ＯＳ１０５０は起動管理モジュール１０５１のみを単一のブラウザとして認識する。各モジュール１０５２、１０５３、１０５４・・・からの出力は起動管理モジュール１０５１を介してＯＳ１０５０に渡され、ＯＳ１０５０からの入力は起動管理モジュール１０５１を介して各モジュール１０５２、１０５３、１０５４・・・に渡される。なお、以下の説明において、従来はＯＳ１０５０から直接ブラウザエンジンに渡されていた入力を、本発明の実施形態による起動管理モジュール１０５１がその間で受け取ることをインターセプトと呼ぶ。このように複数のモジュールが連係動作して単一のブラウザとして機能するモジュール群を、ここでは複合ブラウザ１０５５と呼ぶ。複合ブラウザ１０５５による処理の結果、ディスプレイ１１１にＷｅｂコンテンツを表示するための描画データが生成され、ディスプレイに送信される。ユーザは、描画データに基づいてＷｅｂコンテンツが表示されるディスプレイ１１１を通じてＷｅｂブラウジング、すなわちＷｅｂコンテンツの閲覧ができるようになる。【００３１】
ところで、ブラウザエンジン・モジュール１０５２は、オープンソースのモジュールであり、多くの移動体通信事業者の携帯電話用ブラウザ等に実装されている汎用的な機能を提供できるように構成されている。一方、非オープンソースの専用モジュール１０５３、１０５４、・・・は、ベンダが独自に開発した非オープンソースのモジュールであり、移動体通信事業者の独自の拡張機能を提供し、また、複合ブラウザ１０５５が移動体通信事業者の独自の仕様に準拠した動作を行うように機能する。すなわち、移動体通信事業者が秘匿したい独自の拡張機能や仕様に適合した動作は非オープンソースの専用モジュールにより実現される。非オープンソースの各専用モジュールにより提供される拡張機能はそれぞれ異なる。【００３２】
処理パターンＤＢ１１５には、移動体通信事業者の独自の拡張機能のパターン（以下、「拡張機能パターン」という。）、Ｗｅｂコンテンツを移動体通信事業者の独自の仕様に適合させるための処理パターン（以下、「仕様パターン」という。）、およびこれらのパターンを適用して何れの起動モジュールを起動させてレンダリング等の処理を行うかを判定するためのルールがデータベース化されている。なお、本実施形態においては、処理パターンＤＢ１１５はフラッシュメモリ１０５とは別の記憶装置（例えば着脱可能な第２のフラッシュメモリ）として構成されている。しかしながら、別の実施形態においては複合ブラウザ１０５５の一部として構成されてもよい。【００３３】
次に、Ｗｅｂコンテンツへのアクセス操作が行われたときに各プログラムモジュールが実行する処理について説明する。図３は、アクセス操作にしたがって取得されたＷｅｂコンテンツがディスプレイ１１１に表示されるまでの処理の流れを説明するデータフロー図である。なお、以下の説明及び図面において、各処理（ステップ）を「Ｓ」と略記する。【００３４】
Ｗｅｂコンテンツへのアクセス操作、例えばユーザ入力デバイス１１３によりＵＲＩが入力されると（又はＷｅｂコンテンツ上のアンカーが選択されたことによりＵＲＩが指定され、或いは端末装置１０内部にブックマークや履歴として保持されたＵＲＩが選択されると）、オープンソースのブラウザエンジン・モジュール１０５２は、ＨＴＴＰ（Hypertext Transfer Protocol）に準拠した、Ｗｅｂコンテンツ等のリソースを要求するリクエスト・メッセージを生成してネットワーク上の指定ＵＲＩに送信する。【００３５】
次いで、指定ＵＲＩに対応するサーバは、受け取ったリクエスト・メッセージに応じたレスポンス・メッセージを作成して返信する。返信されたレスポンス・メッセージがネットワークを経由して端末装置１０に受信されると、起動管理モジュール１０５１が当該レスポンス・メッセージをインターセプトする（Ｓ１）。レスポンス・メッセージのメッセージ・ボディには、ＵＲＩで指定された、ＨＴＭＬやＸＨＴＭＬ等で記述されたマークアップ文書が埋め込まれている。【００３６】
起動管理モジュール１０５１は、レスポンス・メッセージをインターセプトすると以下の処理（Ｓ２の処理）を行う。すなわち起動管理モジュール１０５１は、レスポンス・メッセージをオープンソースのブラウザエンジン・モジュール１０５２に渡す前に、処理パターンＤＢ１１５にアクセスしてデータベース化されているルールを参照しながら、レスポンス・メッセージ中のマークアップ文書を検索し、マークアップ文書から拡張機能パターンや仕様パターンを適用して処理すべき要素を抽出する。そして、起動管理モジュール１０５１は、拡張機能パターンや仕様パターンを適用して処理すべき要素が抽出された場合には以下に例示する処理（処理例１〜４等）を行う。【００３７】
＜処理例１＞
移動体通信事業者の独自の仕様として「form要素のラジオボタンの数を１６以下に制限する」というものがある場合を考える。この場合、起動管理モジュール１０５１は、ラジオボタンの数が１６を超えるform要素を変更（例えば、form要素内に記述されているtype属性値が「radio」であるフォームコントロール（input要素）の数が１６になるように少なくとも１つのフォームコントロールを削除）する。【００３８】
＜処理例２＞
移動体通信事業者の独自の仕様として「textarea要素の入力可能字数を４列２０文字以下に制限する」というものがある場合を考える。起動管理モジュール１０５１は、マークアップ文書中に、例えば「<textarea name="impressions" rows="10" cols="40">ここに感想を記入してください。</textarea>」と記述されたtextarea要素がある場合、当該textarea要素を「<textarea name="impressions" rows="4" cols="20">ここに感想を記入してください。</textarea>」に変換する。【００３９】
＜処理例３＞
移動体通信事業者の独自の仕様として「<a href="http://foo.bar.com/program.cgi?action=q" terminalid> という要素に対して端末ＩＤをtidとしてＷｅｂサイトに送信する」というものがある場合を考える。起動管理モジュール１０５１は、アクセスしたＷｅｂサイトに端末ＩＤを送信するため、例えば端末装置１０のＳＩＭカード（Subscriber Identity Module Card）から端末ＩＤ（例えばz0878e0003a99）を読み出して、マークアップ文書中のa要素 <a href="http://foo.bar.com/program.cgi?action=q" terminalid> を <a href="http://foo.bar.com/program.cgi?action=q&tid=z0878e0003a99" > に変換し、マークアップ文書中のオリジナルのa要素に代えて変換したa要素をマークアップ文書に挿入する。この処理の効果等の詳細については後述する。【００４０】
＜処理例４＞
＜処理例３＞の仕様に加えて、更に、端末ＩＤの送信許可を毎回ユーザに確認する仕様がある場合を考える。起動管理モジュール１０５１は、先ずＳＩＭカードから端末ＩＤ（例えばz0878e0003a99）を読み出して、次いで、読み出された端末ＩＤとJavascript（登録商標）を実行するコードを <a href="http://foo.bar.com/program.cgi?action=q" terminalid> に埋め込む。具体的には、起動管理モジュール１０５１は、マークアップ文書中の上記のa要素を <a href="http://foo.bar.com/program.cgi?action=q&tid=z0878e0003a99" onclick="userconfirmwithtext（'端末ＩＤを送信していいですか'）" > に変換し、マークアップ文書中のオリジナルのa要素に代えて、変換されたa要素をマークアップ文書に挿入する。なお、a要素がクリックされたときに実行されるスクリプトuserconfirmwithtext()の定義は、script要素としてhead要素に挿入される。【００４１】
起動管理モジュール１０５１は、処理例１〜４に例示されたＳ２の処理を実行すると、次に処理後のマークアップ文書をオープンソースのブラウザエンジン・モジュール１０５２に渡す（Ｓ３）。【００４２】
図４に、図３における処理Ｓ４、すなわちオープンソースのブラウザエンジン・モジュール１０５２が実行するＷｅｂコンテンツのレンダリング処理を説明するフローチャートを示す。【００４３】
図４に示されるように、オープンソースのブラウザエンジン・モジュール１０５２は、受け取ったマークアップ文書を解析して（Ｓ４１）、当該マークアップ文書の論理構造をツリー構造で表現したドキュメントツリー、例えばＤＯＭ（Document Object model）ツリーを作成してＲＡＭ１０７に展開する（Ｓ４２）。次いで、ＲＡＭ１０７に展開されたＤＯＭツリー、タグ、スタイルシート等の情報に基づいてディスプレイ１１１上の各要素のレイアウトを決定する（Ｓ４３）。ブラウザエンジン・モジュール１０５２は、決定されたレイアウトに基づいてレンダリングを実行して描画データを作成する（Ｓ４４）。このようにして作成された描画データは、図３に示されるようにＲＡＭ１０７のビデオメモリ領域に展開される（Ｓ５）。これにより、指定ＵＲＩに置かれている、リクエストされたＷｅｂコンテンツがディスプレイ１１１に表示される。【００４４】
このように、起動管理モジュール１０５１は、マークアップ文書をオープンソースのブラウザエンジン・モジュール１０５２が解析可能な文書構造でかつ移動体通信事業者の独自の仕様に適合するように処理してブラウザエンジン・モジュール１０５２に渡す。このため、オープンソースのブラウザエンジン・モジュール１０５２が移動体通信事業者の独自の仕様に非対応であるにも拘わらず、処理例１、２では、Ｗｅｂコンテンツが当該仕様に適合した状態でディスプレイ１１１に表示される。また、処理例３、４では、ブラウザエンジン・モジュール１０５２が移動体通信事業者の独自の仕様に適合した動作を行う。【００４５】
具体的には、処理例１の場合、Ｗｅｂコンテンツは、Ｗｅｂコンテンツ中の全てのform要素のラジオボタン数が１６以下に制限された状態でディスプレイ１１１に表示される。処理例２の場合、Ｗｅｂコンテンツは、Ｗｅｂコンテンツ中の全てのtextarea要素の入力可能字数が４列２０文字以下に制限された状態でディスプレイ１１１に表示される。【００４６】
また、処理例３の場合、オープンソースのブラウザエンジン・モジュール１０５２は、ユーザ操作等を契機とし、端末ＩＤ「z0878e0003a99」を引数として上記のa要素で指定されたＣＧＩ（Common Gateway Interface）プログラムをサーバに実行させるメッセージをＷｅｂコンテンツを配信するサーバに送信する。処理例４の場合、ブラウザエンジン・モジュール１０５２は、onclickイベントが発生すると関数「userconfirmwithtext()」を呼び出す。これにより、「userconfirmwithtext()」が実行されて、確認メッセージ（「端末ＩＤを送信していいですか」）がディスプレイ１１１に表示される。ブラウザエンジン・モジュール１０５２は、表示されたメッセージの内容を確認するユーザ操作がなされると、端末ＩＤ「z0878e0003a99」を引数としてＣＧＩプログラムを実行するよう要求するメッセージをサーバに送信する。【００４７】
すなわち本実施形態の複合ブラウザ１０５５によれば、移動体通信事業者の独自の仕様等に適合するようにマークアップ文書を処理する機能が起動管理モジュール１０５１に実装され、汎用的な機能がオープンソースのブラウザエンジン・モジュール１０５２に実装されている。ベンダは、このようなプログラム構造、つまり、汎用的な機能のみをWebKit等のオープンソースのブラウザエンジンに負担させるプログラム構造を採用することにより、汎用的な機能を実装するための専用モジュールを自社開発する必要がない。複合ブラウザ１０５５の汎用的な機能は、ベンダが自社開発することなくオープンソースブラウザの発展に伴って進化していく。一方、ベンダは、移動体通信事業者の独自の仕様や拡張機能については、非オープンソースソフトウェアを用いて自社開発を行う。このため、ベンダは、移動体通信事業者の独自の仕様や拡張機能のソースコードを公開する必要がなく、独自の仕様や拡張機能を秘匿したい移動体通信事業者の要求を満たすことができる。また、別の実施形態においては、図３の処理Ｓ２、すなわち拡張機能パターンや仕様パターンを適用して処理すべき要素をマークアップ文書から抽出して当該パターンに従って変更する処理を、起動管理モジュール１０５１ではなく前処理用の専用モジュールが実行するように構成されてもよい。この場合、起動管理モジュール１０５１は、マークアップ文書をインターセプトすると、まず前処理用の専用モジュールにマークアップ文書を渡し、前処理用の専用モジュールから戻された変更済みのマークアップ文書を受け取ると、これをブラウザエンジン・モジュール１０５２に渡してレンダリング処理を行わせる。【００４８】
次に、図５のデータフロー図を参照して、図３のデータフロー図に示す処理とは別の処理の形態について説明する。なお、図５は、図３と同様に、アクセス操作にしたがってＷｅｂコンテンツがディスプレイ１１１に表示される処理の流れを説明するデータフロー図である。【００４９】
図５に示す実施の形態では、先ず、起動管理モジュール１０５１は、図３における処理Ｓ１と同様に、まずレスポンス・メッセージをインターセプトする（Ｓ１１）。次いで、図３におけるＳ２の処理と同様にマークアップ文書に変更を加える処理Ｓ１２を実行する。すなわち起動管理モジュール１０５１は、マークアップ文書をオープンソースのブラウザエンジン・モジュール１０５２に渡す前に、処理パターンＤＢ１１５にアクセスしてデータベース化されているルールを参照しながら、当該マークアップ文書に拡張機能パターンや仕様パターンを適用して処理すべき要素を抽出する。そして、起動管理モジュール１０５１は、拡張機能パターンや仕様パターンを適用して処理すべき要素が抽出された場合には、以下に例示する処理（処理例５や処理例６など）を行う。【００５０】
＜処理例５＞
移動体通信事業者の独自の拡張機能として「<mobilebackground img="fujisan.jpg"> という独自の要素によりブラウザのスキンを設定する」というものがある場合を考える。この場合、起動管理モジュール１０５１は、 <mobilebackground img="fujisan.jpg"> にid属性（又はclass属性）を付加する変更を行う。すなわち <mobilebackground img="fujisan.jpg"> を <a id="xx889" href="mobilebackground:fujisan.jpg"> に変換し、マークアップ文書中のオリジナルのa要素に代えて、変換して得られたa要素をマークアップ文書のbody要素に挿入する。【００５１】
＜処理例６＞
移動体通信事業者の独自の拡張機能として「<mobilebackground audio="march.mp3"> という要素によるＷｅｂコンテンツのバックグラウンドミュージックを設定する」というものがある場合を考える。この場合、起動管理モジュール１０５１は、要素 <mobilebackground audio="march.mp3"> にid属性を付加する変更を行う。すなわち <mobilebackground audio="march.mp3"> を <a id="xx889" href="mobilebackgroundaudio:march.mp3"> に変換し、マークアップ文書中のオリジナルのa要素に代えて、変換して得られたa要素をマークアップ文書のbody要素に挿入する。【００５２】
起動管理モジュール１０５１は、処理例５、６で例示されたＳ１２の処理を実行すると、次に処理後のマークアップ文書をオープンソースのブラウザエンジン・モジュール１０５２に渡す（Ｓ１３）。また、起動管理モジュール１０５１は、処理パターンＤＢ１１５にデータベース化されているルールに基づいて、処理例５の場合にはスキン設定の拡張機能が実装された非オープンソースの専用モジュール１０５３を、処理例６の場合にはバックグラウンドミュージック設定の拡張機能が実装された非オープンソースの専用モジュール１０５４を起動する。【００５３】
次いで、オープンソースのブラウザエンジン・モジュール１０５２は、受け取ったマークアップ文書を解析してＤＯＭツリーを作成し（Ｓ１４）、ＲＡＭ１０７に展開する（Ｓ１５）。そして、起動管理モジュール１０５１により起動された非オープンソースの専用モジュール（１０５３、１０５４）が、以下の処理（Ｓ１６の処理）を行う。【００５４】
処理例５の場合、非オープンソースの専用モジュール１０５３は、ＲＡＭ１０７に展開されたＤＯＭツリーを辿って各ノードを参照し、id属性が付加されたノード（ここではid属性として「xx889」が付加されたノード）にアクセスする。非オープンソースの専用モジュール１０５３は、「mobilebackground:fujisan.jpg」のデータにアクセスし「fujisan.jpg」のファイルをダウンロードして所定のローカルフォルダに保存する。そして、ノード <a id="xx889" href="mobilebackground:fujisan.jpg"> をＤＯＭツリーから削除する。【００５５】
処理例６の場合、非オープンソースの専用モジュール１０５４は、ＲＡＭ１０７に展開されたＤＯＭツリーを辿って各ノードを参照し、id属性が付加されたノード（ここではid属性として「xx889」が付加されたノード）にアクセスする。非オープンソースの専用モジュール１０５４は、「mobilebackgrouaudio:march.mp3」のデータにアクセスし「march.mp3」のファイルをダウンロードして所定のローカルフォルダに保存する。そして、ノード <a id="xx889" href="mobilebackgroundaudio:march.mp3"> をＤＯＭツリーから削除する。【００５６】
続いて、オープンソースのブラウザエンジン・モジュール１０５２が処理を行う。具体的には、当該ブラウザエンジン・モジュール１０５２は、id属性が付加されたノードが削除された後のＤＯＭツリー、タグ、スタイルシート等の情報に基づいてディスプレイ１１１上の各要素のレイアウトを決定し、決定されたレイアウトに基づいてレンダリングを実行して描画データを作成する（Ｓ１７、１８）。このようにして作成された描画データは、ＲＡＭ１０７のビデオメモリ領域に展開される（Ｓ１９）。これにより、指定ＵＲＩに置かれている、リクエストされたＷｅｂコンテンツがディスプレイ１１１に表示される。また、ブラウザエンジン・モジュール１０５２は、上記の所定のローカルに画像データや音声データが保存されている場合には、Ｓ１８の処理においてこれらのデータを自動的に読み込み、画像データをスキンとして自動設定し、音声データをバックグラウンドミュージックとして自動設定するように構成されている。処理例５の場合、Ｓ１８の処理においてブラウザエンジン・モジュール１０５２は、上記ローカルフォルダに保存されている「fujisan.jpg」にアクセスして「fujisan.jpg」の画像をスキンとして設定する。また、処理例６の場合、Ｓ１８の処理においてブラウザエンジン・モジュール１０５２は、上記ローカルフォルダに保存されている「march.mp3」にアクセスしてバックグラウンドミュージックとして設定する。当該Ｗｅｂコンテンツがディスプレイ１１１に表示される間、「march.mp3」音楽がバックグラウンドで流れる。【００５７】
このように、起動管理モジュール１０５１は、移動体通信事業者の独自の拡張機能に対応する処理を非オープンソースの専用モジュールに実行させる一方で、そのままオープンソースのブラウザエンジン・モジュール１０５２によって対応可能な処理を当該ブラウザエンジン・モジュール１０５２に実行させている。言い換えれば、ブラウザエンジン・モジュール１０５２は、起動管理モジュール１０５１によって非オープンソースの専用モジュールの機能が追加実装された状態でＷｅｂコンテンツをレンダリングする。図５の実施の形態においても、図３の実施の形態と同様に、WebKit等のオープンソースのブラウザエンジンを利用することでベンダによる開発負担が軽減されるとともに、独自の仕様や拡張機能のソースコードを秘匿したい移動体通信事業者の要求が満たされる複合ブラウザ１０５５が提供される。また、別の実施形態においては、図５の処理Ｓ１２、すなわち拡張機能パターンや仕様パターンを適用して処理すべき要素をマークアップ文書から抽出して当該パターンに従って変更する処理を、起動管理モジュール１０５１ではなく前処理用の専用モジュールが実行するように構成されてもよい。この場合、起動管理モジュール１０５１は、マークアップ文書をインターセプトすると、まず前処理用の専用モジュールにマークアップ文書を渡し、前処理用の専用モジュールから戻された変更済みのマークアップ文書を受け取ると、これをブラウザエンジン・モジュール１０５２に渡してＤＯＭツリーを生成させた後、専用モジュール１０５３や１０５４に処理を行わせてから、ブラウザエンジン・モジュール１０５２にレンダリングを実行させる。【００５８】
ところで、端末装置１０は、電話帳等の機密性の高い情報を有するデータを保有している。このような機密性の高いデータにアクセスする機能拡張や仕様がある場合には、セキュリティ面に配慮した処置を行う必要がある。本実施形態では以下に説明する処置を行うことにより、機密性の高い情報を保護している。【００５９】
＜セキュリティ例１＞
移動体通信事業者の独自の仕様として「電話帳の項目を削除するための「Phonebook.delete(i, securitykey)」（i はi番目のエントリを示す）という端末装置１０の内部からしか実行できないインタフェースがあり、要素 <phonebookdelete param="i"> が与えられたときに Phonebook.delete(i, securitykey) を実行して電話帳の項目を削除する」というものがある場合を考える。起動管理モジュール１０５１は、インターセプトしたレスポンス・メッセージにおいて要素 <phonebookdelete param="2"> が与えられているとき、<phonebookdelete param="2"> を例えば <a onclick="phonebookdelete(2, '#ce113fed3')"> に変換し、マークアップ文書中のオリジナルのa要素に代えて、変換して得られたa要素をマークアップ文書のbody要素に挿入する。起動管理モジュール１０５１は、更に、Javascriptで記述された次の非オープンソースの専用モジュールを呼び出してマークアップ文書のhead要素に挿入し、当該マークアップ文書をオープンソースのブラウザエンジン・モジュール１０５２に渡す。なお、「#ce113fed3」は、「現在時刻（現在の日時を１時間単位で表すもの）」、「秘密の鍵」、および「Ｗｅｂコンテンツ（マークアップ文書）のバイト数」の３つのデータからなるデータのセットにハッシュをかけることにより生成されたセキュリティキー（ハッシュ値）である。秘密の鍵は、端末装置１０内部で秘密に管理されている値である。このようなセキュリティキーは、適用可能なＷｅｂコンテンツを限定し、セキュリティキーの有効期限を設定することを可能にする。また、このようなセキュリティキーは、秘密の鍵を知り得ない外部端末によっては生成不可能であるため、外部からの不正アクセスを有効には排除することを可能にする。従って、このようなセキュリティキーの使用によって極めて高いセキュリティを確保することができる。
<script>
function phonebookdelete (arg, securitykey)
{
if (securitycheck(securitykey) == "passed") /* もしセキュリティチェックがOKなら"passed"が返る */
{
if (userconfirm(arg) == "ok") /* ユーザにチェックする。OKなら"ok"が返る */
{
Phonebook.delete(i, securitykey);
}
}
else
{
/* セキュリティがチェックできない */
}
}
</script>
次いで、オープンソースのブラウザエンジン・モジュール１０５２は、図４のＷｅｂコンテンツのレンダリング処理を実行した後にonclickイベントが発生すると、head要素に挿入された上記のJavascriptを実行する。まず、関数securitycheck(securitykey)を実行して２通りのハッシュ値を生成し、何れか一方のハッシュ値が「#ce113fed3」と一致するか否かを判定する。そして、何れか一方のハッシュ値がセキュリティキー「#ce113fed3」と一致すると判定されると、関数userconfirm(arg)によりユーザに電話帳の項目の削除を実行してよいかどうかを確認し、ユーザが許可（OK）した場合に限り、命令Phonebook.delete(i, securitykey)による電話帳の項目の削除を実行する。具体的には、命令Phonebook.delete()により以下の処理（１）〜（５）が実行される。
（１）「現在時刻」、「秘密の鍵」、および「Ｗｅｂコンテンツのバイト数」の３つのデータからなるデータのセットからハッシュ値を生成する。
（２）「３０分前の時刻」、「秘密の鍵」、および「Ｗｅｂコンテンツのバイト数」の３つのデータからなるデータのセットからもハッシュ値を生成する。
（３）（１）又は（２）で生成されたハッシュ値とセキュリティキー「#ce113fed3」とを突き合わせる。
（４）何れのハッシュ値もセキュリティキー「#ce113fed3」と一致しないときには"rejected"を返す。
（５）一方のハッシュ値がセキュリティキー「#ce113fed3」と一致すれば"passed"を返す。
オープンソースのブラウザエンジン・モジュール１０５２は、"passed"が返された場合には電話帳の項目の削除を実行し、"rejected"が返された場合には当該削除を実行しない。ここで、例えばPhoneboook.delete(i, securitykey)という命令が直接サーバから端末装置１０に送り込まれた場合、端末装置１０内部において当該命令が実行される。しかし、サーバは「秘密の鍵」を知らないため、当該命令が実行されたとしてもセキュリティキーの突き合わせ処理でエラーとなり、上記（４）のように"rejected"が返されるだけで、サーバから端末装置１０の電話帳の項目を削除することはできない従って、外部から端末装置１０の電話帳の項目を削除するためには要素 <phonebookdelete param="i"> を使用する必要がある。この場合には、命令 Phoneboook.delete(i, securitykey) が実行される前にユーザによる確認が要求されるため、ユーザが意図しない電話帳の項目削除が行われることがない。このようにセキュリティ面に配慮した処置を施すと、端末装置１０の電話帳の項目が悪意のあるコードによってユーザの意図に反して削除されることはない。【００６０】
＜セキュリティ例２＞
セキュリティ例１と同様の仕様がある場合、起動管理モジュール１０５１は、インターセプトしたレスポンス・メッセージにおいて要素 <phonebookdelete param="2"> が与えられているとき、<phonebookdelete param="2"> を例えば <a onclick="phonebookdelete(2, '#ce113fed3')"> に変換し、マークアップ文書中のオリジナルのa要素に代えて、変換して得られたa要素をマークアップ文書のbody要素に挿入する。起動管理モジュール１０５１は、更に、以下のスクリプトをマークアップ文書のhead要素に挿入し、当該マークアップ文書をオープンソースのブラウザエンジン・モジュール１０５２に渡す。なお、「#ce113fed3」は、セキュリティ例１と同じくセキュリティキーである。
<script>
function phonebookdelete (arg, securitykey)
{
Phonebook.delete(i, securitykey); 
}
</script>
次いで、オープンソースのブラウザエンジン・モジュール１０５２は、図４のＷｅｂコンテンツレンダリング処理を実行後にonclickイベントが発生すると、head要素に挿入されたJavascriptを実行して、命令Phonebook.delete(i, securitykey)に対応する非オープンソースのオブジェクトコードである専用モジュールを呼び出す。そして、呼び出された非オープンソースの専用モジュールは、セキュリティ例１の処理（１）〜（５）と同じ処理を行い、生成したハッシュ値の一方とセキュリティキーとが一致すると、ユーザに電話帳の項目の削除を実行してよいかどうかを確認するダイアログを表示する。ユーザが削除を許可する操作を行うと、"passed"をブラウザエンジン・モジュール１０５２に返す。生成したハッシュ値の一方とセキュリティキーとが一致しないか、ユーザが削除を許可しなければ、"rejected"をブラウザエンジン・モジュール１０５２に返す。ブラウザエンジン・モジュール１０５２は、"passed"が返された場合には電話帳の項目の削除を実行し、"rejected"が返された場合には当該削除を実行しない。セキュリティ例２の場合、ハッシュ値を計算するプログラムをhead要素に挿入する必要がない点がセキュリティ上、好適である。【００６１】
本発明は、これらの実施形態に限定されるものではなく、本発明の技術的思想の範囲において様々な変形が可能である。例えば移動体通信事業者の独自の拡張機能や仕様は、処理例１〜５やセキュリティ例１、２等に示されるものに限定されない。このような拡張機能や仕様には、例えばform要素等に対する入力文字数制限や、特定のテキストに対するマーキ等の視覚効果付与、ひらがなやカタカナの入力モード設定のローカライズ、ダウンロード済みのＪａｖａプログラムの再ダウンロード禁止等が挙げられる。【００６２】
また、セキュリティ例１や２においてオープンソースのブラウザエンジン・モジュール１０５２や非オープンソースの専用モジュールによる処理（１）〜（５）の実行には３０分もかからない。このため、ハッシュ値を生成するためのパラメータである「現在時刻」は時分単位で表されるものとし、かつ処理（２）においてハッシュ値を生成するためのパラメータを「３０分前の時刻」に換えて「１分前の時刻」としてもよい。【００６３】
また上記の各実施形態は、次のように表現することもできる。すなわち、本発明の一実施形態によるブラウザプログラムは、マークアップ言語で記述されたコンテンツデータに基づいてディスプレイにコンテンツを表示するための描画データを生成する、コンピュータによって実行可能なブラウザプログラムであって、コンテンツデータを第１の技術仕様に従ってレンダリング可能に構成された第１モジュールと、コンテンツデータが第２の技術仕様に従ってレンダリングされるようにコンテンツデータを変更する第２モジュールとを備えたブラウザプログラムである。【００６４】
ここで、第１の技術仕様とは、典型的には、例えばＷ３Ｃ等（World Wide Web Consortium）において標準化されているＨＴＭＬ，ＸＭＬ，ＤＯＭ等やデファクトスタンダードであるJavaScript等の標準技術に代表される、公開されたパブリックな技術仕様である。また、第２の技術仕様とは、典型的には、例えば移動体通信事業者等のシステム運用者やブラウザプログラムのベンダによって独自に規定されたプライベートな技術仕様である。従って、第２の技術仕様は一般には非公開な技術仕様である。上記実施形態の説明におけるブラウザエンジン・モジュール１０５２が第１モジュールに該当し、起動管理モジュール１０５１や専用モジュール１０５３、１０５４等が第２モジュールに該当する。このように第１技術仕様をベースに派生した様々な第２技術仕様に対応するブラウザプログラムを開発する場合に、上記のような構成を採用することにより、第１技術仕様で規定される機能を実装する作業を派生仕様毎に行なう必要が無くなり、ブラウザプログラム開発の効率が向上する。特に、第１の技術仕様が標準技術であり、第２の技術仕様がプライベートな技術仕様である場合、第１モジュールはオープンソース化されたブラウザエンジンであることが好ましい。ブラウザプログラムをこのように構成すれば、ベンダは標準技術に対応するためのプログラムプログラム開発を行う必要が無くなり、移動体通信事業者等のシステム運用者によって規定された技術仕様への対応や、ベンダ独自の技術開発に専念することが可能になる。これによりプログラムの開発効率が格段に向上するため、ブラウザ技術の劇的な進歩が可能になる。【００６５】
本発明の一実施形態において、第２モジュールは、コンテンツデータに所定の要素が含まれているときに、所定のルールに基づいて所定の要素を変更若しくは削除し、又はコンテンツデータに別の要素を追加する。【００６６】
この場合において、第２モジュールは、更に、変更又は追加した要素に含まれる命令を定義するスクリプトをコンテンツデータに追加してもよい。また、第２モジュールは、第１モジュールが処理不能な第２の技術仕様に従って作成されたコンテンツデータを第１モジュールが処理可能なものに変更してもよい。例えば、第２モジュールは、第２の技術仕様で規定された要素を第１の技術仕様に適合する要素に変更することができる。この場合において、第２モジュールは、更に変更された要素を第１モジュールに代わって処理してもよい。【００６７】
本発明の一実施形態において、第２モジュールは、管理部と一つ以上の専用モジュールを含んでいる。この場合において、管理モジュール部は、所定の条件に基づいて、第１モジュール及び一つ以上の専用モジュールの何れを用いてコンテンツデータに含まれる要素を処理するかを決定する。上記実施形態の説明においては、起動管理モジュール１０５１が管理部に、専用モジュール１０５３、１０５４等がここでの専用モジュールに該当する。
【図１】
2009084591.tif 000003
【図２】
2009084591.tif 000004
【図３】
2009084591.tif 000005
【図４】
2009084591.tif 000006
【図５】
2009084591.tif 000007
【手続補正書】
【提出日】平成22年7月5日(2010.7.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マークアップ言語で記述されたコンテンツデータに基づいてディスプレイに該コンテンツを表示するための描画データを生成する、コンピュータによって実行可能なブラウザプログラムであって、
それぞれ異なる機能が実装された複数のモジュールと、
前記複数のモジュールを管理するモジュール管理部と
を備え、
前記複数のモジュールの一つは、前記コンテンツデータをレンダリングして描画データを生成するレンダリングモジュールであり、
前記複数のモジュールの少なくとも一つは、前記レンダリングモジュールの機能の一部を代替若しくは変更し、又は該レンダリングモジュールの機能に別の機能を追加する専用モジュールであり、
前記モジュール管理部は、所定の条件に基づいて、何れの専用モジュールを用いて前記コンテンツデータに含まれる要素を処理するかを決定し、前記コンテンツデータに所定の変更を加えたものを前記レンダリングモジュールに処理させるように構成され、
更に、前記モジュール管理部は、
前記コンテンツデータを検索して前記専用モジュールを用いて処理すべき要素を抽出する要素抽出部と、
前記要素抽出部による抽出結果に基づいて前記コンテンツデータに所定の変更を加えるコンテンツデータ変更部と、
前記変更に対応する前記専用モジュールを起動させるモジュール起動部と、
前記変更が加えられたコンテンツを前記レンダリングモジュールに渡すコンテンツ送信部と
を有し、
前記レンダリングモジュールは、前記コンテンツの前記変更が加えられた部分に対する処理を前記起動された専用モジュールに実行させ、その実行結果を用いて前記コンテンツをレンダリングすることを特徴とするブラウザプログラム。
【請求項２】
前記コンテンツ変更部は、所定の制御情報が付加された所定の要素を前記コンテンツに挿入することを特徴とする請求項１に記載のブラウザプログラム。
【請求項３】
前記所定の制御情報は、前記専用モジュールを呼び出して前記レンダリングモジュールの機能に該専用モジュールの機能を追加するための情報であることを特徴とする請求項２に記載のブラウザプログラム。
【請求項４】
前記所定の制御情報には、前記専用モジュールが前記所定の要素にアクセスするための識別情報が含まれることを特徴とする請求項３に記載のブラウザプログラム。
【請求項５】
前記コンテンツ変更部は、前記レンダリングモジュールが前記コンテンツを解析できる範囲で変更を加えることを特徴とする請求項１に記載のブラウザプログラム。
【請求項６】
サーバへのリクエストは前記レンダリングモジュールが行い、
前記モジュール管理部は、前記リクエストに対するレスポンスをインターセプトして、前記要素抽出部による要素抽出処理、前記コンテンツ変更部によるコンテンツ変更処理、前記モジュール起動部によるブラウザモジュール起動処理、および前記コンテンツ送信部によるコンテンツ送信処理を行うことを特徴とする請求項１に記載のブラウザプログラム。
【請求項７】
前記レンダリングモジュールは、オープンソース化されたブラウザモジュールであることを特徴とする請求項１に記載のブラウザプログラム。
【請求項８】
請求項１に記載されたブラウザプログラムを格納する格納手段と、
前記格納されているブラウザプログラムを実行するブラウザプログラム実行手段と、
前記実行されたブラウザプログラムによるレンダリング結果を表示する表示手段と
を備えたことを特徴とする端末装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
本発明の実施形態により、マークアップ言語で記述されたコンテンツデータに基づいてディスプレイに該コンテンツを表示するための描画データを生成する、コンピュータによって実行可能なブラウザプログラムであって、それぞれ異なる機能が実装された複数のモジュールと、複数のモジュールを管理するモジュール管理部とを備え、複数のモジュールの一つは、コンテンツデータをレンダリングして描画データを生成するレンダリングモジュールであり、複数のモジュールの少なくとも一つは、レンダリングモジュールの機能の一部を代替若しくは変更し、又は該レンダリングモジュールの機能に別の機能を追加する専用モジュールであり、モジュール管理部は、所定の条件に基づいて、何れの専用モジュールを用いてコンテンツデータに含まれる要素を処理するかを決定し、コンテンツデータに所定の変更を加えたものをレンダリングモジュールに処理させるように構成されるものが提供される。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
本構成において、更に、モジュール管理部は、コンテンツデータを検索して専用モジュールを用いて処理すべき要素を抽出する要素抽出部と、要素抽出部による抽出結果に基づいてコンテンツデータに所定の変更を加えるコンテンツデータ変更部と、変更に対応する専用モジュールを起動させるモジュール起動部と、変更が加えられたコンテンツをレンダリングモジュールに渡すコンテンツ送信部とを有し、レンダリングモジュールは、コンテンツの変更が加えられた部分に対する処理を、起動された専用モジュールに実行させ、その実行結果を用いてコンテンツをレンダリングする。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
このように構成されたブラウザによれば、コンテンツを処理する際に用いるブラウザモジュールが所定の条件に基づいて決定されるため、適切な条件設定を行うことにより、オープンソースブラウザモジュールや非オープンソースブラウザ等の各種ブラウザモジュールを好適に使い分けてコンテンツを処理することが可能となる。このため、オープンソースブラウザモジュールを利用することによるベンダの開発負担の軽減と、移動体通信事業者の独自の拡張機能等を非オープンソースブラウザに実装させることによる拡張機能等のソースコードの秘匿性確保との両立を達成することができるようになる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
本発明の一実施形態において、サーバへのリクエストはレンダリングモジュールが行い、モジュール管理部は、リクエストに対するレスポンスをインターセプトして、要素抽出部による要素抽出処理、コンテンツ変更部によるコンテンツ変更処理、モジュール起動部によるブラウザモジュール起動処理、およびコンテンツ送信部によるコンテンツ送信処理を行う。
【国際調査報告】
2009084591.tif 000008
2009084591.tif 000009
2009084591.tif 000010
2009084591.tif 000011