JPWO2009084591A1 - ブラウザプログラム及び端末装置 - Google Patents

ブラウザプログラム及び端末装置 Download PDF

Info

Publication number
JPWO2009084591A1
JPWO2009084591A1 JP2009548065A JP2009548065A JPWO2009084591A1 JP WO2009084591 A1 JPWO2009084591 A1 JP WO2009084591A1 JP 2009548065 A JP2009548065 A JP 2009548065A JP 2009548065 A JP2009548065 A JP 2009548065A JP WO2009084591 A1 JPWO2009084591 A1 JP WO2009084591A1
Authority
JP
Japan
Prior art keywords
module
browser
content
rendering
dedicated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009548065A
Other languages
English (en)
Other versions
JP5243452B2 (ja
Inventor
俊彦 山上
俊彦 山上
卓也 原川
卓也 原川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Access Co Ltd
Original Assignee
Access Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Access Co Ltd filed Critical Access Co Ltd
Priority to JP2009548065A priority Critical patent/JP5243452B2/ja
Publication of JPWO2009084591A1 publication Critical patent/JPWO2009084591A1/ja
Application granted granted Critical
Publication of JP5243452B2 publication Critical patent/JP5243452B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Document Processing Apparatus (AREA)
  • Stored Programmes (AREA)

Abstract

マークアップ言語で記述されたコンテンツデータに基づいてディスプレイに該コンテンツを表示するための描画データを生成する、コンピュータによって実行可能なブラウザプログラムであって、それぞれ異なる機能が実装された複数のブラウザモジュールと、複数のブラウザモジュールを管理するブラウザモジュール管理部とを備え、複数のブラウザモジュールの一つはコンテンツデータをレンダリングして描画データを生成するレンダリングモジュールであり、複数のブラウザモジュールの少なくとも一つはレンダリングモジュールの機能の一部を代替若しくは変更し又は該レンダリングモジュールの機能に別の機能を追加する専用モジュールであり、ブラウザモジュール管理部は、所定の条件に基づいて何れの専用モジュールを用いて前記コンテンツデータに含まれる要素を処理するかを決定し、コンテンツデータに所定の変更を加えたものをレンダリングモジュールに処理させるものが提供される。

Description

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

Claims (9)

  1. マークアップ言語で記述されたコンテンツデータに基づいてディスプレイに該コンテンツを表示するための描画データを生成する、コンピュータによって実行可能なブラウザプログラムであって、
    それぞれ異なる機能が実装された複数のブラウザモジュールと、
    前記複数のブラウザモジュールを管理するブラウザモジュール管理部と
    を備え、
    前記複数のブラウザモジュールの一つは、前記コンテンツデータをレンダリングして描画データを生成するレンダリングモジュールであり、
    前記複数のブラウザモジュールの少なくとも一つは、前記レンダリングモジュールの機能の一部を代替若しくは変更し、又は該レンダリングモジュールの機能に別の機能を追加する専用モジュールであり、
    前記ブラウザモジュール管理部は、所定の条件に基づいて、何れの専用モジュールを用いて前記コンテンツデータに含まれる要素を処理するかを決定し、前記コンテンツデータに所定の変更を加えたものを前記レンダリングモジュールに処理させる
    ことを特徴とするブラウザプログラム。
  2. 前記ブラウザモジュール管理部は、
    前記コンテンツデータを検索して前記専用モジュールを用いて処理すべき要素を抽出する要素抽出部と、
    前記要素抽出部による抽出結果に基づいて前記コンテンツデータに所定の変更を加えるコンテンツデータ変更部と、
    前記変更に対応する前記専用モジュールを起動させるモジュール起動部と、
    前記変更が加えられたコンテンツを前記レンダリングモジュールに渡すコンテンツ送信部と
    を有し、
    前記レンダリングモジュールは、前記コンテンツの前記変更が加えられた部分に対する処理を前記起動された専用モジュールに実行させ、その実行結果を用いて前記コンテンツをレンダリングすることを特徴とする請求項1に記載のブラウザプログラム。
  3. 前記コンテンツ変更部は、所定の制御情報が付加された所定の要素を前記コンテンツに挿入することを特徴とする請求項2に記載のブラウザプログラム。
  4. 前記所定の制御情報は、前記専用モジュールを呼び出して前記レンダリングモジュールの機能に該専用モジュールの機能を追加するための情報であることを特徴とする請求項3に記載のブラウザプログラム。
  5. 前記所定の制御情報には、前記専用モジュールが前記所定の要素にアクセスするための識別情報が含まれることを特徴とする請求項4に記載のブラウザプログラム。
  6. 前記コンテンツ変更部は、前記レンダリングモジュールが前記コンテンツを解析できる範囲で変更を加えることを特徴とする請求項2に記載のブラウザプログラム。
  7. サーバへのリクエストは前記レンダリングモジュールが行い、
    前記ブラウザモジュール管理部は、前記リクエストに対するレスポンスをインターセプトして、前記要素抽出部による要素抽出処理、前記コンテンツ変更部によるコンテンツ変更処理、前記モジュール起動部によるブラウザモジュール起動処理、および前記コンテンツ送信部によるコンテンツ送信処理を行うことを特徴とする請求項2に記載のブラウザプログラム。
  8. 前記レンダリングモジュールは、オープンソース化されたブラウザモジュールであることを特徴とする請求項1に記載のブラウザプログラム。
  9. 請求項1に記載されたブラウザプログラムを格納する格納手段と、
    前記格納されているブラウザプログラムを実行するブラウザプログラム実行手段と、
    前記実行されたブラウザプログラムによるレンダリング結果を表示する表示手段と
    を備えたことを特徴とする端末装置。
JP2009548065A 2007-12-28 2008-12-25 ブラウザプログラム及び端末装置 Expired - Fee Related JP5243452B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009548065A JP5243452B2 (ja) 2007-12-28 2008-12-25 ブラウザプログラム及び端末装置

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2007338702 2007-12-28
JP2007338702 2007-12-28
JP2009548065A JP5243452B2 (ja) 2007-12-28 2008-12-25 ブラウザプログラム及び端末装置
PCT/JP2008/073612 WO2009084591A1 (ja) 2007-12-28 2008-12-25 ブラウザプログラム及び端末装置

Publications (2)

Publication Number Publication Date
JPWO2009084591A1 true JPWO2009084591A1 (ja) 2011-05-19
JP5243452B2 JP5243452B2 (ja) 2013-07-24

Family

ID=40824305

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009548065A Expired - Fee Related JP5243452B2 (ja) 2007-12-28 2008-12-25 ブラウザプログラム及び端末装置

Country Status (3)

Country Link
US (1) US20100281403A1 (ja)
JP (1) JP5243452B2 (ja)
WO (1) WO2009084591A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012115981A1 (en) * 2011-02-22 2012-08-30 Tealeaf Technology, Inc. On-page manipulation and real-time replacement of content
JP5821631B2 (ja) 2011-12-28 2015-11-24 富士通株式会社 再生装置、再生方法、及び再生プログラム
US11080169B2 (en) * 2019-11-13 2021-08-03 Google Llc Framework for providing binary release isolation for parts of a web application

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473609B1 (en) * 1995-12-11 2002-10-29 Openwave Systems Inc. Method and architecture for interactive two-way communication devices to interact with a network
JP3202968B2 (ja) * 1998-06-30 2001-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 表示制御情報生成方法及びコンピュータ
JP2001084183A (ja) * 1999-09-17 2001-03-30 Nec Corp データ変換システム
JP3576897B2 (ja) * 1999-11-11 2004-10-13 Necパーソナルプロダクツ株式会社 ウェブブラウザのプラグイン実現方式、ウェブブラウザのプラグイン実現方法およびウェブブラウザのプラグイン実現用プログラムを記録した記録媒体
JP2003303152A (ja) * 2002-02-08 2003-10-24 Matsushita Electric Ind Co Ltd コンテンツ送信システム
EP1335306A3 (en) * 2002-02-08 2005-04-27 Matsushita Electric Industrial Co., Ltd. System for jointly transmitting hypertext content and a UI operation program
JP3942941B2 (ja) * 2002-04-22 2007-07-11 三菱電機株式会社 通信装置及びプラグインモジュール制御方法及びコンピュータに実行させるためのプログラム及びコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4292789B2 (ja) * 2002-11-20 2009-07-08 日本電気株式会社 ブラウザ機能拡張方法
DE102004041395A1 (de) * 2004-08-26 2006-03-09 Siemens Ag Erzeugung dynamischer Webinhalte

Also Published As

Publication number Publication date
JP5243452B2 (ja) 2013-07-24
WO2009084591A1 (ja) 2009-07-09
US20100281403A1 (en) 2010-11-04

Similar Documents

Publication Publication Date Title
US8825799B2 (en) Redirection method for electronic content
JP4395178B2 (ja) コンテンツ処理システム、方法及びプログラム
US8965958B2 (en) File fetch from a remote client device
US9727354B2 (en) System and methods for loading an application and its modules in a client device
CA2632793A1 (en) Information server and mobile delivery system and method
US9317681B2 (en) Information processing apparatus, information processing method, and computer program product
US11553035B2 (en) Cross-platform module for loading across a plurality of device types
WO2013169827A1 (en) Enhanced document and event mirroring for accessing content
CN106878366A (zh) 一种文件上传方法和装置
JP5243452B2 (ja) ブラウザプログラム及び端末装置
US8442961B2 (en) Method, system and computer programming for maintaining bookmarks up-to date
JP2012515384A (ja) ライブラリに対するガジェットアクセスを安全にする方法
CN112925589A (zh) 扩展接口的调用方法及装置
CN114489603A (zh) 代码生成方法、装置、电子设备、介质和产品
JP5088269B2 (ja) 画面情報管理方法
US20130239027A1 (en) Apparatus and method for generating wiki previews
CN115296915B (zh) 网页数据访问方法及其装置、设备、介质、产品
CN116382604B (zh) 一种在网页打印pdf文件的方法、系统、存储介质、设备
KR20080051060A (ko) 인터넷 웹 페이지에 저장되어 있는 개인 정보를 검색하는시스템 및 그 개인 정보 검색 방법
JP2009211601A (ja) ネットワーク配信型文書閲覧システム、文書配信サーバ、文書配信方法および文書配信プログラム
CN113032042A (zh) 目标文件的处理方法、装置和终端设备
CN116955294A (zh) 文件预览方法、装置、电子设备及存储介质
JP5500020B2 (ja) Webアプリケーション提供方法、中継サーバ装置、Webサーバ装置
WO2005088446A1 (ja) 利便性、安全性の高いWebサービスをユーザに提供できるアプリケーション作成装置
Chernich et al. An Open Source Annotation Service for the Atlas of Living Australia

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110906

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130220

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130315

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130404

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160412

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees