(57)【要約】  端末装置ｔ１からのリクエストに応じて、ＷｅｂサーバＳ１は該リクエストに対応するページデータを中間処理装置ＰＳに送信し、前記中間処理装置ＰＳは、前記ＷｅｂサーバＳ１から受信したページデータを解釈し、該解釈結果に基づいて、当該ページのレイアウトの基礎となるレイアウトデータを生成し、前記生成したレイアウトデータを前記端末装置ｔ１に送信し、前記端末装置ｔ１は、前記中間処理装置ＰＳから受信したレイアウトデータに基づいてページのレイアウトを決定し、該決定したレイアウトに従ってページを表示するための描画データを生成し、該描画データに従ってページを表示することを特徴とするネットワークシステムを提供する。
2008078684.tif 000002
【特許請求の範囲】
【請求項１】
ページを表示するためのページデータのリクエストをＷｅｂサーバに送信する端末装置と、前記リクエストに応じてページデータを送信するＷｅｂサーバと、前記Ｗｅｂサーバから受信したページデータを処理して前記端末装置に送信する中間処理装置とからなるネットワークシステムであって、
前記Ｗｅｂサーバは、ページデータを保持するページデータ保持手段を有し、前記端末装置からのリクエストに応じて、該リクエストに対応する前記ページデータを前記中間処理装置に送信し、
前記中間処理装置は、
前記Ｗｅｂサーバから受信したページデータを解釈するページ解釈手段と、
前記ページ解釈手段による解釈結果に基づいて、当該ページのレイアウトの基礎となるレイアウトデータを生成するレイアウトデータ生成手段と
を有し、前記生成したレイアウトデータを前記端末装置に送信し、
前記端末装置は、
ページデータのリクエストを送信するリクエスト送信手段と、
前記中間処理装置から受信したレイアウトデータを保持するレイアウトデータ保持手段と、
前記レイアウトデータに基づいてページのレイアウトを決定し、該決定したレイアウトに従ってページを表示するための描画データを生成する描画データ生成手段と、
描画データに従ってページを表示する表示手段と
を有する
ことを特徴とするネットワークシステム。
【請求項２】
前記端末装置は、ユーザからの入力を受け付ける入力手段を更に有し、
前記ページのレイアウトを変更するように前記入力手段が操作されたとき、前記描画データ生成手段は、前記レイアウトデータ保持手段に保持された前記レイアウトデータに基づいて、前記ページの表示が前記表示手段の画面サイズ又は画面のアスペクト比の少なくとも一方に適合するように、表示中のページのレイアウトを変更して前記描画データを更新する
ことを特徴とする請求項１に記載のネットワークシステム。
【請求項３】
前記中間処理装置は、
前記表示手段に表示中のページが所定のイベントに応じてその一部分が動的に更新されるページである場合、前記所定のイベントが発生したときに当該イベントに対応するリクエストをＷｅｂサーバに送信するリクエスト送信手段と、
前記Ｗｅｂサーバより前記リクエストに対する所定のレスポンスを取得するレスポンス取得手段と、
該取得されたレスポンスに基づいて前記レイアウトデータの差分データを生成する差分データ生成手段と
を更に有し、
前記中間処理装置は生成した前記差分データを前記端末装置に送信し、前記端末装置の前記描画データ生成手段は、受信した前記差分データに基づいて、前記表示手段に表示中のレイアウトを変更して前記描画データを更新する
ことを特徴とする請求項２に記載のネットワークシステム。
【請求項４】
前記所定のイベントは、前記ページ中の動的に更新される部分に関する前記入力手段の操作に応じた信号を、前記中間処理装置が前記端末装置から受信することである
ことを特徴とする請求項３に記載のネットワークシステム。
【請求項５】
前記中間処理装置は、時刻を計る計時手段を更に有し、
前記所定のイベントは、前記中間処理装置が前記計時手段に基づいて、前記ページデータに含まれるスクリプトを実行するタイミングであると判定することである、請求項３に記載のネットワークシステム。
【請求項６】
前記レイアウトデータは、前記ページのレイアウトツリー、前記ページの各要素のＩＤおよび座標を含むこと、を特徴とする請求項１から請求項５の何れかに記載のネットワークシステム。
【請求項７】
Ｗｅｂサーバから受信したページデータを処理して端末装置に送信する中間処理装置であって、
前記ページデータを解釈するページ解釈手段と、
前記ページ解釈手段による解釈の結果に基づいて、当該ページのレイアウトの基礎となるレイアウトデータを生成するレイアウトデータ生成手段と、
を有し、前記レイアウトデータを前記端末装置に送信することを特徴とする中間処理装置。
【請求項８】
所定のイベントが発生したときに当該イベントに対応するリクエストを前記Ｗｅｂサーバに送信するリクエスト送信手段と、
前記Ｗｅｂサーバより前記リクエストに対する所定のレスポンスを取得するレスポンス取得手段と、
前記取得したレスポンスに基づいて前記レイアウトデータの差分データを生成する差分データ生成手段と、
を更に有し、前記生成した差分データを前記端末装置に送信することにより、前記端末装置において表示中のページの一部分を前記所定のイベントに応じて動的に更新可能にすることを特徴とする請求項７に記載の中間処理装置。
【請求項９】
前記所定のイベントは、前記端末装置からの所定の信号を受信することである、ことを特徴とする請求項８に記載の中間処理装置。
【請求項１０】
時刻を計る計時手段を更に有しており、
前記所定のイベントは、前記中間処理装置が前記計時手段に基づいて、前記ページデータに含まれるスクリプトを実行するタイミングであると判定することである、ことを特徴とする請求項８に記載の中間処理装置。
【請求項１１】
前記レイアウトデータは、前記ページのレイアウトツリー、前記ページの各要素のＩＤおよび座標を含むことを特徴とする請求項７から請求項１０の何れかに記載の中間処理装置。
【請求項１２】
ページを表示するためのページデータのリクエストをＷｅｂサーバに送信する送信手段と、
前記ページデータに基づいて中間処理装置が生成した、当該ページのレイアウトの基礎となるレイアウトデータを受信する受信手段と、
前記受信したレイアウトデータを保持するレイアウトデータ保持手段と、
前記レイアウトデータに基づいてページのレイアウトを決定し、該決定したレイアウトに従ってページを表示するための描画データを生成する描画データ生成手段と
前記描画データを使用してページを表示する表示手段と
を有する端末装置。
【請求項１３】
ユーザからの入力を受け付ける入力手段を更に有し、
前記ページのレイアウトを変更するように前記入力手段が操作されたときに、前記描画データ生成手段は、前記レイアウトデータ保持手段に保持された前記レイアウトデータに基づいて、前記ページの表示が前記表示手段の画面サイズ又は画面のアスペクト比の少なくとも一方に適合するように、表示中のページのレイアウトを変更して前記描画データを更新すること、を特徴とする請求項１２に記載の端末装置。
【請求項１４】
前記表示手段に表示中のページが、所定のイベントに応じてその一部分が動的に更新されるページである場合、前記受信手段は前記前記中間処理装置から前記レイアウトデータの差分データを受信し、前記描画データ生成手段は、前記受信した差分データに基づいて表示中のレイアウトを変更して前記描画データを更新すること、を特徴とする請求項１３に記載の端末装置。
【請求項１５】
前記所定のイベントは、前記ページ中の動的に更新される部分に関する前記入力手段が受け付ける操作であり、前記送信手段は前記操作に応じた信号を前記中間処理装置に送信すること、を特徴とする請求項１４に記載の端末装置。
【請求項１６】
前記レイアウトデータは、前記ページのレイアウトツリー、前記ページの各要素のＩＤおよび座標を含むこと、を特徴とする請求項１２から請求項１５の何れかに記載の端末装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Ｗｅｂサーバにページをリクエストする端末装置と、Ｗｅｂサーバからページデータを受信し処理を施して端末装置に送信する中間処理装置とを備えたネットワークシステムに関する。
【背景技術】
【０００２】
インターネットに代表されるコンピュータネットワークの急速な普及やその技術の発展に伴って、ユーザは、デスクトップ型やラップトップ型等のＰＣ（Personal Computer）のみならず、携帯電話や、ＰＤＡ（Personal Digital Assistance）、家電、カーナビゲーション装置等を含む様々な端末装置を用いてネットワーク上の情報を閲覧することができるようになってきている。これらの端末装置には情報閲覧ソフトウェア（以下、「ブラウザ」と記す）が組み込まれている。ブラウザは、例えばネットワーク上の情報（例えば、ＨＴＭＬ（Hyper Text Markup Language）等のマークアップ言語で記述された文書であるページデータ）を解釈する。次いで、その解釈結果に基づいてレイアウトデータを生成し、レンダリングを行う。そして、レンダリングによって得られた描画データを用いて描画処理を行い、端末装置のディスプレイに当該ページを表示させる。【０００３】
一方で、サーバと連携してページの表示を行うタイプのブラウザもある。例えば、特開平１１−１５８１９号公報（以下、「特許文献１」という）や特開２０００−５７０４４号公報（以下、「特許文献２」という）には、このような動作を行うサーバとブラウザを有したシステムが開示されている。これらの特許文献に記載されたシステムでは、サーバがブラウザの機能の一部（具体的には、中間コードの生成）を負担することにより、ブラウザ上にページを表示する速度の高速化が実現されている。【０００４】
ここで、本明細書において用いられる「ページ」、「レイアウトデータ」、「描画データ」は、以下のような意味を有する。
「ページ」：ネットワーク経由で取得される一群のデータに基づいて表示される情報であり、ユーザが対応するＵＲＩ（Uniform Resource Identifier）を指定したときに表示されるべき内容全体を指す。具体的には、例えばディスプレイ上の画像をスクロールすることによって表示することのできる内容の全体を指す。なお、このページには、オンラインで閲覧されるものに限らず、オフラインで閲覧されるものも含まれる。オフラインで閲覧されるページには、例えば、ネットワーク経由で取得されてブラウザによりキャッシングされたページや、端末のローカルフォルダ等にｍｈｔ形式で保存されたページ等が含まれる。ページは、例えばＨＴＭＬ文書、イメージファイル、音声データ等の種々のデータ（ページデータ）から構成される。
「レイアウトデータ」：ブラウザのページメーカ機能によって得られるレイアウトツリー、各要素のＩＤおよび座標等を含むバイナリ形式のデータであり、端末装置の画面サイズや画面のアスペクト比には依存しないものである。なお、ここでいう画面サイズとは、ＷＱＶＧＡ（Wide Quarter Video Graphics Array）やＶＧＡ（Quarter Video Graphics Array）等の画面のピクセル数を示す。
「描画データ」：レイアウトデータに基づいて端末装置の画面サイズや画面のアスペクト比に応じたレンダリングを行うことによって得られる画面表示用データ。【０００５】
ところが、上記の特許文献１や２に記載のシステムにおける中間コードは、所定のルールに基づいてＨＴＭＬデータを圧縮したものに過ぎない。従って、これらのシステムの利点は、ブラウザが処理すべきデータのサイズが小さくなるだけであり、ブラウザは、結局は中間コードの解釈、レンダリング、描画データ展開等の処理を行わなければならない。このため、ブラウザ（端末装置）の負担は実質的にはほとんど軽減されない。【０００６】
端末装置の負担を軽減する方法としては、例えば、その機能の大部分をサーバに負担させることが考えられる。例えば、ＨＴＭＬ文書の解釈から描画データ生成までの処理をサーバに負担させた場合、端末装置側では、サーバから受け取った描画データに対する処理を行うだけでページの表示を行うことができる。このように端末装置側の負担を大幅に軽減することは、例えば、利用できるリソースが限られる携帯電話等の無線端末において特に有用であると考えられる。【０００７】
しかしながら、本出願人は、上述のように処理の大部分をサーバに負担させた場合に、種々の不都合が生じ得ることを見出した。例えば、ユーザがページのレイアウトを変更したい場合、端末装置は、レイアウト変更のイベントが発生する度にサーバと通信する必要がある。また、携帯電話等の無線端末に至っては、電波の届かない場所ではネットワークに接続できないためにレイアウトを変更できないという不都合がある。また、ブラウザは、ページのごく一部を更新する場合であっても、ページ全体の描画データを新たに取得して、当該ページの全体の更新を行う必要がある。従って、Ａｊａｘ（Asynchronous JavaScript + XML）やＳＭＩＬ（Synchronized Multimedia Integration Language）のような、画面の一部を動的に更新するといった機能を実現することができない不都合がある。この場合、更新の対象がページ全体に及ぶため、データ通信量やデータ処理量が多くなり、例えば、ページ描画の更新時間が長くなったり、ユーザに余計な通信料金を負担させるという不都合も生じる。
【発明の開示】
【０００８】
このように、本出願人は、端末装置の負担軽減のために単にブラウザ機能の大部分をサーバに負担させたたけではユーザにとってブラウザの使い勝手を著しく低下させてしまうことを見出すに至った。本発明は、上記の事情に鑑みてなされたものであり、端末装置の負担を軽減しつつもユーザに対するブラウザの使い勝手を損なうことのないネットワークシステムを提供することを課題とする。
【０００９】
本発明の実施形態により、ページを表示するためのページデータのリクエストをＷｅｂサーバに送信する端末装置と、前記リクエストに応じてページデータを送信するＷｅｂサーバと、前記Ｗｅｂサーバから受信したページデータを処理して前記端末装置に送信する中間処理装置とからなるネットワークシステムであって、前記Ｗｅｂサーバは、前記ページデータを保持するページデータ保持手段を有し、前記端末装置からのリクエストに応じて、該リクエストに対応する前記ページデータを前記中間処理装置に送信し、前記中間処理装置は、前記Ｗｅｂサーバから受信したページデータを解釈するページ解釈手段と、前記ページ解釈手段による解釈結果に基づいて、当該ページのレイアウトの基礎となるレイアウトデータを生成するレイアウトデータ生成手段とを有し、生成した前記レイアウトデータを前記端末装置に送信し、前記端末装置は、ページデータのリクエストを送信するリクエスト送信手段と、前記中間処理装置から受信したレイアウトデータを保持するレイアウトデータ保持手段と、前記レイアウトデータに基づいてページのレイアウトを決定し、該決定したレイアウトに従ってページを表示するための描画データを生成する描画データ生成手段と、描画データに従ってページを表示する表示手段とを有することを特徴とするネットワークシステムが提供される。
【００１０】
このような構成によれば、端末装置は、例えばページのレイアウト変更をオフラインで行うことができ、ＡｊａｘやＳＭＩＬ等のページを適切に表示することができる。また、これと共に、ページの解釈およびレイアウトデータ作成処理が中間処理装置側で実行されるため、端末装置の負担も軽減される。すなわち、本発明の実施形態によれば、ユーザに対するブラウザの使い勝手を損なうことなく、端末装置の負担が軽減される、ネットワークシステムが提供される。
【００１１】
前記端末装置は、ユーザからの入力を受け付ける入力手段を更に有し、前記ページのレイアウトを変更するように前記入力手段が操作されたとき、前記描画データ生成手段は、前記レイアウトデータ保持手段に保持された前記レイアウトデータに基づいて、前記ページの表示が前記表示手段の画面サイズ又は画面のアスペクト比の少なくとも一方に適合するように、表示中のページのレイアウトを変更して前記描画データを更新するものであってもよい。
【００１２】
前記中間処理装置は、前記表示手段に表示中のページが所定のイベントに応じてその一部分が動的に更新されるページである場合、前記所定のイベントが発生したときに当該イベントに対応するリクエストをＷｅｂサーバに送信するリクエスト送信手段と、Ｗｅｂサーバより前記リクエストに対する所定のレスポンスを取得するレスポンス取得手段と、該取得されたレスポンスに基づいて前記レイアウトデータの差分データを生成する差分データ生成手段とを更に有し、前記差分データを前記端末装置に送信し、前記端末装置の前記描画データ生成手段は、受信した前記差分データに基づいて前記表示手段に表示中のレイアウトを変更して前記描画データを更新するものであってもよい。
【００１３】
前記所定のイベントは、前記ページ中の動的に更新される部分に関する前記入力手段の操作に応じた信号を、前記中間処理装置が前記端末装置から受信することであってもよい。
【００１４】
前記中間処理装置は、時刻を計る計時手段を更に有し、前記所定のイベントは、前記中間処理装置が前記計時手段に基づいて、前記ページデータに含まれるスクリプトを実行するタイミングであると判定することであってもよい。
【００１５】
前記レイアウトデータは、前記ページのレイアウトツリー、前記ページの各要素のＩＤおよび座標を含んでいてもよい。
【００１６】
本発明の実施形態によれば、端末装置の負担を軽減しつつもユーザに対するブラウザの使い勝手を損なうことのないネットワークシステムを提供することが可能となる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態によるネットワークシステムの構成を示す概略図である。
【図２】本発明の実施形態による端末装置の構成を示す概略ブロック図である。
【図３】本発明の実施形態によるネットワークシステムにおいて実行される処理を説明する概略状態遷移図である。
【図４】本発明の実施形態によるＷｅｂサーバの構成を示すブロック図である。
【図５】本発明の実施形態によるプロキシサーバの構成を示すブロック図である。
【図６】本発明の実施形態によるプロキシサーバのブラウザコア部の機能ブロック図である。
【図７Ａ】本発明の実施形態によるブラウザで表示される画面の一例を示す図である。
【図７Ｂ】本発明の実施形態によるブラウザで表示される画面の一例を示す図である。
【図８Ａ】本発明の実施形態によるブラウザで表示される画面の一例を示す図である。
【図８Ｂ】本発明の実施形態によるブラウザで表示される画面の一例を示す図である。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して、本発明の実施形態について説明する。なお、以下の記載及び図面において、「ステップ」を「Ｓ」と略記する。【００１９】
図１は、本発明の実施形態によるネットワークシステムの構成を示す図である。本発明の実施形態によるネットワークシステムは、複数のＷｅｂサーバＳ１〜Ｓｎ、プロキシサーバＰＳ、および複数の端末装置ｔ１〜ｔｍから構成されている。各サーバと各端末装置は、ＴＣＰ／ＩＰベースのネットワークを介して相互に接続されており、それぞれＷＷＷ（World Wide Web）サーバまたはＷＷＷクライアントとして動作するよう構成されている。【００２０】
本実施形態のＷｅｂサーバＳ１〜Ｓｎは、ＷＷＷクライアントに提供するためのページデータを格納する機器である。プロキシサーバＰＳは、端末装置ｔ１〜ｔｍとＷｅｂサーバＳ１〜Ｓｎとの通信を中継する機能と、ＷｅｂサーバＳ１〜Ｓｎが提供するページを各端末装置ｔ１〜ｔｍにおいて閲覧可能とするための処理を実行する機能を有する中間処理装置である。また、プロキシサーバＰＳは、端末装置ｔ１〜ｔｍと連携して、ＷｅｂサーバＳ１〜Ｓｎの提供するページを閲覧するための所定の処理を実行する機能も有している。端末装置ｔ１〜ｔｍにはブラウザが組み込まれている。なお、本実施形態において端末装置ｔ１〜ｔｍは携帯電話であるが、別の実施形態としては、例えば、デスクトップ型やラップトップ型等のＰＣ、ＰＤＡ、ＰＨＳ（Personal Handy phone System）、あるいは携帯ゲーム機等の通信機能を有する種々の形態のポータブル電子機器等が想定される。【００２１】
なお、本実施形態においては、ＷｅｂサーバＳ１〜Ｓｎは、互いに配信するページデータが異なるだけであり、構成としては実質的に同一である。また、本実施形態の端末装置ｔ１〜ｔｍは、ユーザがそれぞれ異なるだけであり、構成としては実質的に同一である。以下、説明の重複を避けるため、代表としてＷｅｂサーバＳ１および端末装置ｔ１の処理についてのみ説明し、他のＷｅｂサーバＳ２〜Ｓｎおよび端末装置ｔ２〜ｔｍについての説明を省略する。【００２２】
図２は、端末装置ｔ１の主な構成を示すブロック図である。図２に示されるように、端末装置ｔ１は、その全体を統括的に制御するＣＰＵ(Central Processing Unit)１０３を備えている。ＣＰＵ１０３にはバス１１９を介して各構成要素が接続されている。これらの構成要素には、ＲＯＭ(Read-Only Memory)１０５、ＲＡＭ(Random-Access Memory)１０７、ネットワークインタフェース１０９、ディスプレイドライバ１１１、インタフェース１１５等が含まれる。ディスプレイ１１３とユーザインタフェースデバイス１１７は、それぞれディスプレイドライバ１１１とインタフェース１１５を介してＣＰＵに接続されている。【００２３】
ＲＯＭ１０５には、各種のプログラムやデータが格納されている。ＲＯＭ１０５に格納されているプログラムには、例えば、ブラウザ１０５１がある。ブラウザ１０５１は、オンライン又はオフラインで得られるレンダリングデータに基づいて、ディスプレイ１１３にページを表示するための情報閲覧ソフトウェアである。【００２４】
ＲＡＭ１０７には、ＣＰＵが使用するプログラム等のデータが一時的に記憶される。例えば、ユーザインタフェースデバイス１１７を用いたユーザ・オペレーション（以下、単に「ユーザ・オペレーション」と記す）にしたがって、ＣＰＵ１０３は、ＲＯＭ１０５に格納されているプログラム（例えばブラウザ１０５１）を読み出すと、ＲＡＭ１０７の所定領域に展開して実行する。これにより、ブラウザ１０５１が起動する。【００２５】
なお、ユーザインタフェースデバイス１１７は、５ウェイキーおよびファンクションキーを含んでいる。５ウェイキーは、４つの方向キーと１つのエンターキーから構成される。ユーザがこれらのキーを押すと、携帯装置ｔ１は、押したキーに応じた所定の機能を実現するように動作する。【００２６】
ここで、本発明の実施形態によるネットワークシステムにおいて実行される処理の流れを図３に概略的に示す。例えば、ユーザ・オペレーションによってＵＲＩを入力するか、ディスプレイ１１３に表示中のページＰに含まれるアンカータグの一つを選択することによりＵＲＩを指定すると、ブラウザ１０５１は、指定されたＵＲＩ（例えば、ＷｅｂサーバＳ１）の示すページの取得を要求するメッセージであるリクエストＲＱを、ネットワークインタフェース１０９を介してＷｅｂサーバＳ１に向けて送信する（Ｓ１）。リクエストＲＱは、プロキシサーバＰＳによって中継されてもよいし、あるいは直接ＷｅｂサーバＳ１に送信されてもよい。【００２７】
図４は、ＷｅｂサーバＳ１の構成を示すブロック図である。ＷｅｂサーバＳ１は、その全体を統括的に制御するＣＰＵ２０３を備えている。ＣＰＵ２０３にはバス２１３を介して各構成要素が接続されている。これらの構成要素には、ＲＯＭ２０５、ＲＡＭ２０７、ネットワークインタフェース２０９、ＨＤＤ（Hard Disk Drive）２１１が含まれる。【００２８】
ＲＯＭ２０５には、クライアントからのリクエストに応じた処理を実行するための種々のプログラムやデータが格納されている。これらのプログラムはＷｅｂサーバＳ１の例えばＲＡＭ２０７に常駐する。すなわちＷｅｂサーバＳ１は、クライアントからのリクエストの有無を常に監視している。そして、リクエストがあれば、それに対応した処理を直ちに実行する。【００２９】
ＨＤＤ２１１には、端末装置ｔ１〜ｔｍに提供するためのページデータが格納されている。ＷｅｂサーバＳ１は、端末装置ｔ１〜ｔｍからリクエストＲＱを受け取ると、ＨＤＤ２１１を検索して当該リクエストＲＱに応じたページデータＰＤを抽出する（Ｓ２）。そして、リクエストＲＱに対するレスポンスとして、対応するページデータＰＤを端末装置ｔ１に送信する（Ｓ３）。本実施形態ではこのレスポンスは、プロキシサーバＰＳに中継されて端末装置ｔ１に送信される。【００３０】
図５は、プロキシサーバＰＳの構成を示したブロック図である。プロキシサーバＰＳは、その全体を統括的に制御するＣＰＵ３０３を備えている。ＣＰＵ３０３にはバス３１３を介して各構成要素が接続されている。これらの構成要素には、ＲＯＭ３０５、ＲＡＭ３０７、ネットワークインタフェース３０９、ブラウザコア部３１１が含まれる。【００３１】
ＲＯＭ３０５には、各種機能を達成するためのプログラムやデータが格納されている。これらのプログラムはプロキシサーバＰＳの例えばＲＡＭ３０７に展開されて常駐する。従って、プロキシサーバＰＳは、外部端末から何らかの信号を受信すると、それに対する処理を直ちに実行することができる。例えばＷｅｂサーバＳ１から上記のレスポンスを受信すると、ブラウザコア部３１１はページデータＰＤに対して以下に説明する所定の処理を実行する（Ｓ４）。【００３２】
図６は、ブラウザコア部３１１で実行される所定の処理を示す機能ブロックである。図６に示されるように、ブラウザコア部３１１は、パーサ３１１１およびページメーカ３１１３の各機能ブロックから構成されている。【００３３】
パーサ３１１１は、ページデータＰＤに含まれるＨＴＭＬ文書２１を解釈して、ＨＴＭＬ文書２１を構成する要素をツリー構造で表現したドキュメントツリー２３を生成する。なお、ドキュメントツリー２３は、ＨＴＭＬ文書２１の論理構造を表現するのみであり、表現形式に関する情報までは含んでいない。【００３４】
次いで、ページメーカ３１１３が、ドキュメントツリー２３、タグ、スタイルシート等の情報に基づいてレイアウトデータ２５を生成してＲＡＭ３０７に保持する。レイアウトデータ２５は、上述したようにバイナリデータであり、レイアウトツリー、各要素のＩＤおよび座標等を含んでいる。なお、レイアウトツリーは、ドキュメントツリー２３、タグ、スタイルシート等の情報に基づいて生成され、ＨＴＭＬ文書２１の表現形式、例えばblock, inline, table, list, item等を含むものである。なお、レイアウトツリーは、block, inline, table等の要素がどのような順序で配置されているか表している。但し、レイアウトツリーは、これらの要素が端末装置の画面の何処にどのような幅と高さで表示されるか、文字がどこで折り返されるか等の情報は含んでいない。【００３５】
なお、プロキシサーバＰＳは、ＰＣ用ブラウザのように、ページを表示する端末装置の仕様（例えば、ディスプレイの画面サイズやアスペクト比等）に依存しない標準的なレイアウトデータを生成する。つまり、プロキシサーバＰＳは、クライアントに依存しないトランスコード処理を行って汎用性のあるレイアウトデータ２５を生成するのであって、例えばＰＣブラウザと携帯電話のブラウザとを区別するような、クライアント側の実装に応じたトランスコード処理は行わない。【００３６】
プロキシサーバＰＳは、ブラウザコア部３１１が生成したレイアウトデータ２５を、リクエストＲＱに対するレスポンスとして端末装置ｔ１に送信する（Ｓ５）。【００３７】
端末装置ｔ１はレイアウトデータ２５を受け取るとＲＡＭ１０７に保持する。ブラウザ１０５１は、レイアウトデータ２５に基づいてレイアウト処理を実行し（Ｓ６）、ＷｅｂサーバＳ１のページＰをディスプレイ１１３に表示させる（Ｓ７）。具体的には、Ｓ６の処理において、ブラウザ１０５１のフォーマッタ機能が、レイアウトデータ２５のレイアウトツリーおよび端末装置ｔ１の仕様（例えばディスプレイ１１３の画面サイズやアスペクト比等）の情報に基づいてレイアウト（例えば表示画面幅方向のピクセル数に合わせた文字の折り返し、各要素の画面上での位置、幅、高さ等）を決定する。次いで、決定されたレイアウトに基づいてレンダリングを実行して、描画データを生成する。そして、Ｓ７の処理において、生成された描画データをＲＡＭ１０７のビデオメモリ領域に展開し、ＷｅｂサーバＳ１のページＰをディスプレイ１１３に表示させる。なお、例えばＰＣ用ブラウザのように、文字の折り返し等を加味しないレンダリングを実行するようにしても良い。この場合、ブラウザ１０５１は横スクロール可能な表示形態となり、表示画面幅方向のピクセル数を越えた座標値の要素は、ページＰを横スクロールさせることで閲覧可能となる。【００３８】
このように、本実施形態のネットワークシステムは、プロキシサーバＰＳがＨＴＭＬ文書の解釈からレイアウトデータ生成までの処理を負担し、それ以降の処理を端末装置側が実行するように構成されたものである。このような構成によれば、上述した種々の不都合を解消することができ、ブラウザの使い勝手を損なうことなく端末装置側の負担が軽減されたネットワークシステムが実現される。【００３９】
本実施形態のネットワークシステムにおいて、例えば表示中のページのレイアウトを変更するようなユーザ・オペレーションが行われたとき、ブラウザ１０５１は、ＲＡＭ１０７に保持されたレイアウトデータを用いて新たなレイアウト（上記ユーザ・オペレーションで指定されたレイアウト）を決定し、レンダリング処理およびディスプレイ１１３への表示処理を実行する。すなわち、本実施形態のネットワークシステムによれば、ブラウザ１０５１はページのレイアウト変更をオフラインで実行することができる。言い換えれば、ブラウザ１０５１は、サーバ（ＷｅｂサーバＳ１やプロキシサーバＰＳ）と通信することなくレイアウト変更することができる。このため、サーバにリクエストを出してレイアウト変更する場合と比較して、レイアウト変更に対する処理速度が速くなり、通信料金も抑えられるようになる。なお、ここでいうレイアウト変更とは、画面サイズや画面のアスペクト比に対して最適化又は適合するようになされるレイアウトの変更であり、例えばフォントサイズを変更するだけといった単純なものではない。【００４０】
また、端末装置の中には、当該装置の本体部分に対してディスプレイを面内で回転させることにより、本体部分に対する画面の向きを変えることが可能なものもある。このような端末装置においてディスプレイを例えば９０度回転させた場合、画面のアスペクト比が変わるため（例えば４：３から３：４）、ページの最適なレイアウトも変わる。サーバにリクエストを出してレイアウト変更する形態のシステムにおいて、例えば常にアスペクト比に応じた最適なレイアウトでページを表示させるためには、画面の向きを変更する度にサーバと通信して描画データを取得する必要があり、レイアウト変更に時間や通信料金等が掛かるといった不都合がある。これに対して本実施形態では、先に説明したように、ページのレイアウト変更に必要な処理を端末装置内部で実行することができるため、処理時間および通信料金の点で極めて有利である。【００４１】
また、例えば本実施形態のネットワークシステムでは、ブラウザ１０５１がＡｊａｘやＳＭＩＬに対応可能となる。以下、図７、８を参照して、Ａｊａｘによるブラウザ１０５１の動作について説明する。【００４２】
図７Ａおよび７Ｂは、Ａｊａｘを用いたポータルサイトのページＰ’（例えばＷｅｂサーバＳ２のページ）の画面表示の一例である。ページＰは、そのコンテンツとして「国際」、「株価」、「Ｓｉｍｐｌｅ  Ｃａｌｃ」を含んでいる。ブラウザ１０５１は、ページＰ’を表示している間、プロキシサーバＰＳを介してＷｅｂサーバＳ２と非同期に通信する。以下の説明では、既に、プロキシサーバＰＳがページＰ’に対する処理（ＨＴＭＬ文書の解釈からレイアウトデータ生成までの処理）を実行し、ブラウザ１０５１でページＰ’が表示された状態（図７Ａの状態）にあるものとする。【００４３】
図７Ａの状態において、ユーザ・オペレーションによって例えば「株価」の「編集」が選択されると、ブラウザ１０５１は、そのキーイベントの通知をプロキシサーバＰＳに送信する。プロキシサーバＰＳは、この通知を受け取ると、既に取得済みのページデータのＨＴＭＬ文書に記述されている「編集」に対応するスクリプトを読み込む。このスクリプトを実行することによってＤＯＭ（Document Object Model）を加工してページの構成や内容を一部変更し、更には、後で説明するＸＭＬＨｔｔｐＲｅｑｕｅｓｔをＷｅｂサーバに送信することが可能である。ここで、プロキシサーバＰＳは、上述したように、ブラウザコア部３１１によるＨＴＭＬ文書の解釈からレイアウトデータ生成までの処理を実行する。このため、ブラウザ１０５１における画面表示のステイタスを把握している。【００４４】
「編集」に対する何らかのユーザ・オペレーションのイベントが発生すると、ブラウザ１０５１は、イベントの内容をプロキシサーバＰＳに送信する。次いで、プロキシサーバＰＳは、イベントの内容に応じてスクリプトを実行し、その情報をＸＭＬＨｔｔｐＲｅｑｕｅｓｔとしてＷｅｂサーバＳ２に送信する。ＷｅｂサーバＳ２は、このＸＭＬＨｔｔｐＲｅｑｕｅｓｔに応じた処理を実行して、その結果をＸＭＬ（Extensible Markup Language）で記述したデータ（以下、「演算結果データ」と記す）を生成して、プロキシサーバＰＳに送信する。なお、演算結果データは、例えばＪＳＯＮ（JavaScript Object Notation）で記述されたデータであっても良い。【００４５】
プロキシサーバＰＳは、既に取得済みのレイアウトデータと演算結果データとに基づいてＤＯＭデータを部分的に更新する。そして、この更新されたＤＯＭ要素に関するレイアウトデータを、ページＰ’のレイアウトデータの差分データとしてブラウザ１０５１に送信する。また、差分データを、既に取得済みのレイアウトデータに関連付けて保持する。プロキシサーバＰＳは、これらの差分データおよびレイアウトデータに基づいて、ブラウザ１０５１における画面表示のステイタスを把握する。なお、ここでいう差分データとは、上述したように、更新されたＤＯＭ要素に関するレイアウトデータであって、例えば上記「『編集』に対する何らかのユーザ・オペレーション」の前後で発生するページＰ’のレイアウト変更の内容を表すデータであり、この変更を反映したレイアウトツリー、更新した要素のＩＤおよび座標等を含む。【００４６】
ブラウザ１０５１は、受信した差分データを、ＲＯＭ１０７に保持されている対応するレイアウトデータに関連付けて保持する。そして、ブラウザ１０５１は、この差分データに基づいてレイアウト処理をやり直して、ページの一部分のみを再度レンダリングし、新たな描画データを生成してページＰ’をディスプレイ１１３に表示させる。この結果、図７Ｂに示されるように、ブラウザ１０５１上において、ページＰ’の一部分が更新された表示となる。【００４７】
図８Ａおよび８Ｂは、Ａｊａｘを用いたポータルサイトのページＰ”（例えばＷｅｂサーバＳ３のページ）の一例であり、そのコンテンツとして「Ｄａｔｅ＆Ｔｉｍｅ」、「国際」、「株価」、「Ｓｉｍｐｌｅ  Ｃａｌｃ」を含む。なお、「Ｄａｔｅ＆Ｔｉｍｅ」、「国際」、「株価」の各コンテンツについては、ＷｅｂサーバＳ３から更新情報を定期的に取得するようにスクリプトが記述されている。ブラウザ１０５１は、ページＰ”を表示している間、プロキシサーバＰＳを介してＷｅｂサーバＳ３と非同期に通信する。以下の説明では、図７に示す実施形態と同様に、既に、プロキシサーバＰＳがページＰ”に対する処理（ＨＴＭＬ文書の解釈からレイアウトデータ生成までの処理）を実行し、ブラウザ１０５１でページＰ”が表示された状態（図８Ａの状態）にあるものとする。【００４８】
プロキシサーバＰＳは、図７の実施形態と同様に、ブラウザ１０５１における画面表示のステイタスを把握すると共に、内部クロック３１０を参照して、「Ｄａｔｅ＆Ｔｉｍｅ」、「国際」、「株価」のスクリプトを実行するタイミングを監視している。そして、上記タイミングであると判定したとき、上記スクリプトを実行する。プロキシサーバＰＳは、上記スクリプトの実行によって得られた情報をＸＭＬＨｔｔｐＲｅｑｕｅｓｔとしてＷｅｂサーバＳ３に送信する。ＷｅｂサーバＳ３は、そのＸＭＬＨｔｔｐＲｅｑｕｅｓｔに応じた処理を実行し、演算結果データを取得してプロキシサーバＰＳに送信する。【００４９】
プロキシサーバＰＳは、既に取得済みのレイアウトデータと上記演算結果データとに基づいて、ページＰ”のレイアウトデータの差分データを生成してブラウザ１０５１に送信する。また、上記差分データを、既に取得済みのレイアウトデータに関連付けて保持する。プロキシサーバＰＳは、これらの差分データおよびレイアウトデータに基づいて、ブラウザ１０５１上での表示のステイタスを把握する。【００５０】
ブラウザ１０５１は、受信した差分データを、ＲＯＭ１０７に保持されている、対応するレイアウトデータに関連付けて保持する。そして、この差分データに基づいてレイアウト処理し直してページの一部分のみを再度レンダリングし、新たな描画データを生成して、ページＰ”をディスプレイ１１３に表示させる。この結果、図８Ｂに示されるように、ブラウザ１０５１上において、ページＰ”の一部分が更新された表示となる。【００５１】
このように、本実施形態のネットワークシステムにおいては、端末装置側で、更新部分のデータを用いてレンダリングを実行することができる。このため、ディスプレイ１１３に表示されるページ全体を更新する遷移をことなく、ページの一部を動的に更新することが可能となっている。すなわち本実施形態のネットワークシステムによれば、ＡｊａｘやＳＭＩＬ等の、一部のＤＯＭ要素を動的に書き換えて応答性を向上したページの表示を行うことができる。【００５２】
本実施形態のネットワークシステムでは、上述したように、プロキシサーバＰＳがＨＴＭＬ文書の解釈からレイアウトデータ生成までの処理を実行する。これらの処理において、例えばｉｍａｇｅのリサイズ、間引き、ＪａｖａＳｃｒｉｐｔ等の処理も実行される。このため、プロキシサーバＰＳから端末装置ｔ１に送信されるデータ通信量が削減し、これにより、ユーザは、例えばページの表示速度が速くなるというメリットを享受できる。また、キャリアは、例えばトラフィック増大のリスクが軽減するというメリットを享受できる。【００５３】
また、パーサ、ページメーカ機能を端末装置に実装されたブラウザが実行する従来のシステムでは、最新のＣＳＳ（Cascading Style Sheets）を使用したページを表示するためには、端末装置に実装されたブラウザが最新のＣＳＳに対応する必要がある。一方で、本実施形態のネットワークシステムでは、プロキシサーバＰＳのブラウザコア部が最新のＣＳＳに対応していれば、プロキシサーバＰＳ側でそれらのＣＳＳが解釈可能である。このため、端末装置のブラウザ１０５１が最新のＣＳＳに対応していなくても、最新のＣＳＳが使用されたページを適切に表示することができる。【００５４】
また、携帯電話等のブラウザはバージョンアップを想定していないものが多い。従って、携帯電話等においては、例えば拡張・修正が継続的に行われるＣＳＳの最新版に対応することが実質的には困難である。また、各種プラグイン（例えばＦｌａｓｈ（登録商標）等）のバージョンアップに対応することも困難である。しかし、本実施形態のネットワークシステムでは、プロキシサーバＰＳのブラウザコア部３１１をバージョンアップすることにより、最新のＣＳＳやアプリケーション・ファイルを使用したページに対応することが可能である。このため、ブラウザのバージョンアップが不可能な端末装置でも、常に最新技術を使用して作成されたページを適切に表示することが可能になるという効果が得られる。【００５５】
すなわち本実施形態のネットワークシステムにおいては、当該システム内の全てのブラウザが、プロキシサーバＰＳの機能拡張のメリットを享受できる。【００５６】
また、本実施形態のネットワークシステムによれば、端末装置が表示可能なページが端末装置に実装されるブラウザに依存しない。例えばＰＣ等で広く普及しているブラウザのレイアウトエンジンをプロキシサーバＰＳのブラウザコア部３１１に実装することにより、ＰＤＡや携帯電話等のモバイル機器においてもＰＣ環境と同様のページ閲覧が可能となる。この結果、例えばウェブマスターが仕様の異なる様々なブラウザを想定してページを制作する必要がなくなる。一方、エンドユーザは、ＰＣ環境で閲覧するようなページを携帯電話等でも閲覧することが可能となる。従って、例えば携帯電話専用のブラウザの機能制限等によって発生するページの表示異常等の問題が解消される。【００５７】
また、本実施形態のネットワークシステムでは、上述したようにプロキシサーバＰＳがＨＴＭＬ文書の解釈からレイアウトデータ生成までの処理を実行することから、端末装置のリソース（例えばＣＰＵの負担、ＲＯＭ、ＲＡＭの容量等）を削減し、かつブラウザ１０５１の実装を簡素化することが可能となる。この結果、端末装置を高機能化させることなく、そのコストを抑えることが可能となる。【００５８】
また、端末装置側の機能を限定し、最新の仕様への追従等の機能拡張をプロキシサーバＰＳ側に負担させることにより、端末装置側のソフトウェア（ここではブラウザ）は最新の仕様に常に対応した状態にあると云え、その寿命を延ばすことが可能となる。それと同時に、端末装置側の機能を複雑化させないことにより、不具合等が発生するリスクが低減して品質向上につながる。【００５９】
クライアント側の負担等を軽減するためには、ブラウザの機能を可能な限りサーバ側に負担させてクライアントのリソースを削減させるのが従来の発想であった。しかしながら本実施形態のネットワークシステムにおいては、そのような発想とは逆に、フォーマッタ機能を敢えてクライアント側に残して実行するようにしている。これにより、クライアント側の負担軽減とユーザに対する利便性向上の両立を実現可能としている。【００６０】
以上が本発明の実施形態についての説明である。本発明はこれらの実施の形態に限定されるものではなく様々な範囲で変形が可能である。【００６１】
なお、本願明細書で使用したJavaおよびその他のJavaを含む商標は、米国  Sun Microsystems，Inc．の商標又は登録商標である。
【図１】
2008078684.tif 000003
【図２】
2008078684.tif 000004
【図３】
2008078684.tif 000005
【図４】
2008078684.tif 000006
【図５】
2008078684.tif 000007
【図６】
2008078684.tif 000008
【図７Ａ】
2008078684.tif 000009
【図７Ｂ】
2008078684.tif 000010
【図８Ａ】
2008078684.tif 000011
【図８Ｂ】
2008078684.tif 000012
【国際調査報告】
2008078684.tif 000013
2008078684.tif 000014
2008078684.tif 000015