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

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

Info

Publication number
WO2009084591A1
WO2009084591A1 PCT/JP2008/073612 JP2008073612W WO2009084591A1 WO 2009084591 A1 WO2009084591 A1 WO 2009084591A1 JP 2008073612 W JP2008073612 W JP 2008073612W WO 2009084591 A1 WO2009084591 A1 WO 2009084591A1
Authority
WO
WIPO (PCT)
Prior art keywords
module
browser
content
rendering
browser program
Prior art date
Application number
PCT/JP2008/073612
Other languages
English (en)
French (fr)
Inventor
Toshihiko Yamakami
Takuya Harakawa
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
Priority to US12/810,820 priority patent/US20100281403A1/en
Publication of WO2009084591A1 publication Critical patent/WO2009084591A1/ja

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

Definitions

  • the browser module management unit searches the content data and extracts an element to be processed using a dedicated module, and adds a predetermined content to the content based on the extraction result by the element extraction unit It has a content data changing unit for changing, a module starting unit for starting a dedicated module corresponding to the change, and a content transmitting unit for passing the changed content to the rendering module.
  • the rendering module causes the dedicated module that has been activated to execute the process for the part to which the content has been changed, and renders the content using the execution result.
  • the content changing unit make changes within the range that the rendering module can analyze the content.
  • a request to the server is made by the rendering module, and the browser module management unit intercepts a response to the request, and performs element extraction processing by the element extraction unit, content change processing by the content change unit, and module activation
  • the browser module activation process by the unit and the content transmission process by the content transmission unit are performed.
  • a terminal device comprising storage means for storing the browser program described above, browser program execution means for executing the browser program, and display means for displaying a rendering result by the executed browser program. Is done.
  • the browser module used when processing the content is determined based on a predetermined condition, an open source browser module or a non-open source is set by appropriately setting conditions. It is possible to process content by properly using various browser modules such as browsers. For this reason, the vendor development burden is reduced by using the open source browser module, and the confidentiality of the source code such as the extended function by allowing the non-open source browser to implement the mobile operator's original extended function, etc. It becomes possible to achieve the balance with securing.
  • the development load of a vendor is reduced by using a module such as an open source browser engine, and a non-open source dedicated module for realizing an individual extension function or the like is used.
  • a browser and a terminal device capable of achieving compatibility with ensuring confidentiality are provided.
  • -Network Video images, audio, and documents viewed by users that are transmitted via various communication networks and content networks including mobile communication networks, intranets, and the Internet of mobile carriers, or stored in terminals
  • a group of information / web content content composed of information such as a worksheet, or a combination thereof, and a group of information / web page created / viewed using web technology
  • One form of web content The entire content to be displayed when the user specifies a URI. That is, the entire content that can be displayed by scrolling through the images on the display.
  • Web pages are not limited to being browsed online, but include those browsed offline.
  • the terminal device 10 includes a CPU (Central Processing Unit) 103 that controls the entire device in an integrated manner.
  • Each component of the terminal device 10 is connected to the CPU 103 via the bus 119.
  • the CPU 103 implements various functions by performing data communication with other components via the bus 119. These components include a flash memory 105, a RAM (Random-Access Memory) 107, a network interface 109, a display 111, a user input device 113, a processing pattern DB (Data Base) 115, and the like.
  • the bus 119 includes a power supply line in addition to the data line.
  • Each component of the terminal device 10 including the CPU 103 is supplied with power from a battery (not shown) via a power line.
  • the open source browser engine module 1052 When accessing a web content, for example, when a URI is input by the user input device 113 (or the URI is specified by selecting an anchor on the web content, or stored in the terminal device 10 as a bookmark or a history) When a URI is selected), the open source browser engine module 1052 generates a request message for requesting a resource such as web content in accordance with HTTP (Hypertext Transfer Protocol) and sends it to a specified URI on the network. To do.
  • HTTP Hypertext Transfer Protocol
  • ⁇ Processing example 4> In addition to the specification of ⁇ Processing Example 3>, let us consider a case where there is a specification for confirming the transmission permission of the terminal ID with the user every time.
  • the definition of the script userconfirmwithtext () that is executed when the a element is clicked is inserted into the head element as a script element.
  • the activation management module 1051 executes the processing of S2 exemplified in the processing examples 1 to 4, it next passes the processed markup document to the open source browser engine module 1052 (S3).
  • FIG. 4 shows a flowchart for explaining processing S4 in FIG. 3, that is, rendering processing of Web content executed by the open source browser engine module 1052.
  • the open source browser engine module 1052 analyzes the received markup document (S41), and a document tree, for example, DOM (representing the logical structure of the markup document in a tree structure).
  • Document Object model) tree is created and expanded in the RAM 107 (S42).
  • the layout of each element on the display 111 is determined based on information such as a DOM tree, a tag, and a style sheet developed in the RAM 107 (S43).
  • the browser engine module 1052 executes rendering based on the determined layout to create drawing data (S44).
  • the drawing data created in this way is expanded in the video memory area of the RAM 107 as shown in FIG. 3 (S5).
  • the requested Web content placed at the designated URI is displayed on the display 111.
  • the activation management module 1051 processes the markup document so that the open source browser engine module 1052 has a document structure that can be analyzed and conforms to the original specifications of the mobile communication carrier. Pass to module 1052. For this reason, although the open source browser engine module 1052 is not compatible with the mobile carrier's original specification, in the processing examples 1 and 2, the display 111 is displayed in a state in which the Web content conforms to the specification. Is displayed. In processing examples 3 and 4, the browser engine module 1052 performs an operation that conforms to the original specifications of the mobile communication carrier.
  • the Web content is displayed on the display 111 in a state where the number of radio buttons of all the form elements in the Web content is limited to 16 or less.
  • the Web content is displayed on the display 111 in a state where the number of characters that can be input for all textarea elements in the Web content is limited to 4 columns and 20 characters or less.
  • the open source browser engine module 1052 takes the CGI (Common Gateway Interface) program specified by the element a as a parameter with the terminal ID “z0878e0003a99” as a server triggered by a user operation or the like. A message to be executed is transmitted to a server that distributes Web content.
  • the browser engine module 1052 calls the function “userconfirmwithtext ()” when the onclick event occurs. As a result, “userconfirmwithtext ()” is executed, and a confirmation message (“Can I send the terminal ID”) is displayed on the display 111.
  • the browser engine module 1052 transmits a message requesting to execute the CGI program with the terminal ID “z0878e0003a99” as an argument to the server.
  • a function for processing a markup document so as to conform to the original specifications of the mobile communication carrier is implemented in the activation management module 1051, and a general-purpose function is an open source.
  • the browser engine module 1052 is implemented. Vendors adopt such a program structure, that is, a program structure that loads only general-purpose functions to an open source browser engine such as WebKit, and develops a dedicated module for implementing general-purpose functions. There is no need to do.
  • the general-purpose functions of the composite browser 1055 are evolved with the development of the open source browser without being developed by the vendor. Vendors, on the other hand, develop their own specifications and extensions for mobile carriers using non-open source software.
  • the vendor does not need to disclose the source code of the mobile communication carrier's original specifications and extension functions, and can satisfy the request of the mobile communication operator who wants to keep the original specifications and extension functions secret.
  • the process S2 in FIG. 3, that is, the process of extracting an element to be processed by applying an extended function pattern or a specification pattern from a markup document and changing the element according to the pattern is performed by the activation management module 1051
  • a dedicated module for preprocessing may be executed.
  • the activation management module 1051 intercepts the markup document, the activation management module 1051 first passes the markup document to the dedicated module for preprocessing, and receives the changed markup document returned from the dedicated module for preprocessing. This is passed to the browser engine module 1052 to perform rendering processing.
  • FIG. 5 is a data flow diagram illustrating the flow of processing in which Web content is displayed on the display 111 in accordance with the access operation, as in FIG.
  • the activation management module 1051 first intercepts a response message in the same manner as the processing S1 in FIG. 3 (S11).
  • the process S12 for changing the markup document is executed as in the process of S2 in FIG. That is, the activation management module 1051 accesses the processing pattern DB 115 and refers to the rules stored in the database before passing the markup document to the open source browser engine module 1052, and adds the extended function pattern to the markup document. Extract the elements to be processed by applying the specification pattern. Then, when an element to be processed is extracted by applying the extended function pattern or the specification pattern, the activation management module 1051 performs the following processing (processing example 5 and processing example 6).
  • the activation management module 1051 executes the processing of S12 exemplified in the processing examples 5 and 6, next, the processed markup document is passed to the open source browser engine module 1052 (S13).
  • the activation management module 1051 converts the non-open source dedicated module 1053 in which the extended function of the skin setting is implemented in the processing example 6 based on the rules stored in the processing pattern DB 115.
  • the non-open source dedicated module 1054 in which the extension function of the background music setting is implemented is activated.
  • the open source browser engine module 1052 analyzes the received markup document, creates a DOM tree (S14), and expands it in the RAM 107 (S15). Then, the non-open source dedicated modules (1053, 1054) activated by the activation management module 1051 perform the following processing (processing of S16).
  • the non-open source dedicated module 1053 refers to each node by tracing the DOM tree expanded in the RAM 107, and a node to which the id attribute is added (here, “xx889” is added as the id attribute). Node).
  • the open source browser engine module 1052 performs processing. Specifically, the browser engine module 1052 determines the layout of each element on the display 111 based on information such as a DOM tree, a tag, and a style sheet after the node to which the id attribute is added is deleted. Then, rendering is executed based on the determined layout to generate drawing data (S17, 18). The drawing data created in this way is expanded in the video memory area of the RAM 107 (S19). As a result, the requested Web content placed at the designated URI is displayed on the display 111. In addition, when image data and audio data are stored in the predetermined local area, the browser engine module 1052 automatically reads these data in the process of S18 and automatically sets the image data as a skin.
  • the activation management module 1051 allows the non-open source dedicated module to execute a process corresponding to the mobile operator's unique extension function, while the open source browser engine module 1052 can handle the process as it is.
  • the processing is executed by the browser engine module 1052.
  • the browser engine module 1052 renders the Web content in a state where the functions of the non-open source dedicated module are additionally installed by the activation management module 1051.
  • an open source browser engine such as WebKit
  • the development burden by the vendor is reduced, and the source of original specifications and extended functions
  • a composite browser 1055 is provided that satisfies the requirements of mobile operators wishing to keep the code secret.
  • “# ce113fed3” is composed of three pieces of data: “current time (the current date and time is expressed in one-hour units)”, “secret key”, and “number of bytes of Web content (markup document)”.
  • a security key (hash value) generated by hashing a data set.
  • the secret key is a value that is secretly managed in the terminal device 10.
  • Such a security key limits the applicable Web content and enables the expiration date of the security key to be set. Further, since such a security key cannot be generated by an external terminal that cannot know a secret key, it is possible to effectively eliminate unauthorized access from the outside. Therefore, extremely high security can be ensured by using such a security key.
  • a onclick "phonebookdelete (2, '# ce113fed3')"> and insert the converted a element into the body element of the markup document instead of the original a element in the markup document .
  • the activation management module 1051 further inserts the following script into the head element of the markup document, and passes the markup document to the open source browser engine module 1052.
  • the “current time” that is a parameter for generating the hash value is expressed in units of hours and minutes, and the parameter for generating the hash value in the process (2) is “30 minutes before time”. Instead, it may be set as “one minute ago”.
  • a browser program is a computer-executable browser program that generates drawing data for displaying content on a display based on content data described in a markup language
  • a browser program comprising a first module configured to render content data in accordance with a first technical specification, and a second module for changing the content data so that the content data is rendered in accordance with the second technical specification.
  • the first technical specification is typically represented by standard technologies such as HTML, XML, DOM, etc., which are standardized in, for example, W3C (World Wide Web Consortium) and JavaScript, which is the de facto standard. It is a public technical specification that has been released.
  • the second technical specification is typically a private technical specification uniquely defined by a system operator such as a mobile communication carrier or a browser program vendor. Therefore, the second technical specification is generally a non-public technical specification.
  • the browser engine module 1052 in the description of the above embodiment corresponds to the first module, and the activation management module 1051, the dedicated modules 1053, 1054, and the like correspond to the second module.

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)
  • Stored Programmes (AREA)
  • Document Processing Apparatus (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に記載されたブラウザプログラムを格納する格納手段と、
     前記格納されているブラウザプログラムを実行するブラウザプログラム実行手段と、
     前記実行されたブラウザプログラムによるレンダリング結果を表示する表示手段と
    を備えたことを特徴とする端末装置。
PCT/JP2008/073612 2007-12-28 2008-12-25 ブラウザプログラム及び端末装置 WO2009084591A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009548065A JP5243452B2 (ja) 2007-12-28 2008-12-25 ブラウザプログラム及び端末装置
US12/810,820 US20100281403A1 (en) 2007-12-28 2008-12-25 Browser program and terminal device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2007338702 2007-12-28
JP2007-338702 2007-12-28

Publications (1)

Publication Number Publication Date
WO2009084591A1 true WO2009084591A1 (ja) 2009-07-09

Family

ID=40824305

Family Applications (1)

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

Country Status (3)

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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014507036A (ja) * 2011-02-22 2014-03-20 インターナショナル・ビジネス・マシーンズ・コーポレーション コンテンツのオンページ操作およびリアルタイム置換のための方法、システム、およびコンピュータ・プログラム
US9058405B2 (en) 2011-12-28 2015-06-16 Fujitsu Limited Playback apparatus and playback method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11080169B2 (en) * 2019-11-13 2021-08-03 Google Llc Framework for providing binary release isolation for parts of a web application

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001142711A (ja) * 1999-11-11 2001-05-25 Nec Yonezawa Ltd ウェブブラウザのプラグイン実現方式、ウェブブラウザのプラグイン実現方法およびウェブブラウザのプラグイン実現用プログラムを記録した記録媒体
JP2003303152A (ja) * 2002-02-08 2003-10-24 Matsushita Electric Ind Co Ltd コンテンツ送信システム
JP2004171257A (ja) * 2002-11-20 2004-06-17 Nec Corp 機能拡張型ブラウザ及びブラウザ部品並びにプログラム

Family Cites Families (6)

* 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 データ変換システム
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 三菱電機株式会社 通信装置及びプラグインモジュール制御方法及びコンピュータに実行させるためのプログラム及びコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
DE102004041395A1 (de) * 2004-08-26 2006-03-09 Siemens Ag Erzeugung dynamischer Webinhalte

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001142711A (ja) * 1999-11-11 2001-05-25 Nec Yonezawa Ltd ウェブブラウザのプラグイン実現方式、ウェブブラウザのプラグイン実現方法およびウェブブラウザのプラグイン実現用プログラムを記録した記録媒体
JP2003303152A (ja) * 2002-02-08 2003-10-24 Matsushita Electric Ind Co Ltd コンテンツ送信システム
JP2004171257A (ja) * 2002-11-20 2004-06-17 Nec Corp 機能拡張型ブラウザ及びブラウザ部品並びにプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SAISHIN GIJUTSU WA YORU NI HABATAKU WEBKIT NIGHTLY BUILD GA TOJO, MACPEOPLE, vol. 13, no. 1, 1 January 2007 (2007-01-01), pages 38 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014507036A (ja) * 2011-02-22 2014-03-20 インターナショナル・ビジネス・マシーンズ・コーポレーション コンテンツのオンページ操作およびリアルタイム置換のための方法、システム、およびコンピュータ・プログラム
US9058405B2 (en) 2011-12-28 2015-06-16 Fujitsu Limited Playback apparatus and playback method

Also Published As

Publication number Publication date
JP5243452B2 (ja) 2013-07-24
US20100281403A1 (en) 2010-11-04
JPWO2009084591A1 (ja) 2011-05-19

Similar Documents

Publication Publication Date Title
US10009356B2 (en) Redirection method for electronic content
CN110381135B (zh) 接口创建方法、服务请求方法、装置、计算机设备和介质
EP2976709B1 (en) Systems and methods for intercepting, processing, and protecting user data through web application pattern detection
JP4395178B2 (ja) コンテンツ処理システム、方法及びプログラム
US7293034B2 (en) Dynamically customizing a user interface for the aggregation of content
US8965958B2 (en) File fetch from a remote client device
CA2632793A1 (en) Information server and mobile delivery system and method
WO2013169827A1 (en) Enhanced document and event mirroring for accessing content
US11553035B2 (en) Cross-platform module for loading across a plurality of device types
CN103036871B (zh) 浏览器应用插件支持装置和方法
KR20100059996A (ko) 클라이언트 기기를 위해 브라우즈가능 문서를 만들기 위한 방법
JP5347429B2 (ja) ユニフォームリソースロケータ書換方法及び装置
CN106878366A (zh) 一种文件上传方法和装置
US8381269B2 (en) System architecture and method for secure web browsing using public computers
JP5243452B2 (ja) ブラウザプログラム及び端末装置
US8442961B2 (en) Method, system and computer programming for maintaining bookmarks up-to date
CN112925589A (zh) 扩展接口的调用方法及装置
JP2012515384A (ja) ライブラリに対するガジェットアクセスを安全にする方法
JPWO2008143284A1 (ja) コンテンツ提供装置、コンテンツ提供方法、およびコンピュータ使用可能な記憶媒体
CN102789557B (zh) 在网页中实现网页安全功能的数据处理系统及方法
JP5088269B2 (ja) 画面情報管理方法
US20050187914A1 (en) Method and system for managing objects
CN116382604B (zh) 一种在网页打印pdf文件的方法、系统、存储介质、设备
EP2472828B1 (en) Method and system for implementing coordinated operation between web equipment and flash equipment
CN113032042A (zh) 目标文件的处理方法、装置和终端设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08868843

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2009548065

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 12810820

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08868843

Country of ref document: EP

Kind code of ref document: A1