(57)【特許請求の範囲】
【請求項１】
アプリケーションに対して固定のメモリ領域を割り当てる環境で動作するブラウザプログラムを実行する装置において開かれる新たなページに対してメモリ領域を使用させるメモリ領域管理方法であって、
ページを開く要求に対して、そのページが最初に開かれる第１のページである場合、ページに割り当て可能なメモリ領域の全体を使用させるステップと、
前記第１のページが開かれている状態で新たに他のページを開く要求に対して、前記割り当て可能なメモリ領域の現時点の空き領域の全体を当該他のページに使用させるステップと、
前記新たに開かれる他のページが必要とするメモリ領域が前記空き領域では足りない場合、既に開かれているページに使用させるメモリ領域のうちページに埋め込まれる埋込み情報を記憶したメモリ領域を開放するステップと、
開放されたメモリ領域を含む空き領域を前記新たに開かれるページに使用させるステップと、
前記埋込み情報を記憶したメモリ領域を開放しても空き領域が足りない場合、既に開かれている少なくとも１つのページが使用しているすべてのメモリ領域を開放するステップと
を備えたことを特徴とするメモリ領域管理方法。
【請求項２】
ページを構成するマークアップ言語文書および前記埋込み情報をキャッシュメモリに記憶するステップと、
前記メモリ領域の少なくとも一部が開放されたページを再度開く際に前記キャッシュメモリに当該埋込み情報が存在すれば前記キャッシュメモリから当該埋込み情報を読み出して利用するステップと
を備えたことを特徴とする請求項１記載のメモリ領域管理方法。
【請求項３】
前記既に開かれている少なくとも１つのページが使用しているすべてのメモリ領域を開放するステップを実行する前に、装置のユーザにその実行に対する許可を求めるステップをさらに備えたことを特徴とする請求項１記載のメモリ領域管理方法。
【請求項４】
前記ブラウザプログラムは表示画面上に開いた一つのウインドウ内に、開かれた複数のページを切り替えて表示することを特徴とする請求項１に記載のメモリ領域管理方法。
【請求項５】
アプリケーションに対して固定のメモリ領域を割り当てる環境で動作し、開かれるページに対してメモリ領域を使用させる機能を有するブラウザプログラムであって、コンピュータに、
ページを開く要求に対して、そのページが最初に開かれる第１のページである場合、ページに割り当て可能なメモリ領域の全体を使用させるステップと、
前記第１のページが開かれている状態で新たに他のページを開く要求に対して、前記割り当て可能なメモリ領域の現時点の空き領域の全体を当該他のページに使用させるステップと、
前記新たに開かれる他のページが必要とするメモリ領域が前記空き領域では足りない場合、既に開かれているページに使用させるメモリ領域のうちページに埋め込まれる埋込み情報を記憶したメモリ領域を開放するステップと、
開放されたメモリ領域を含む空き領域を前記新たに開かれるページに使用させるステップと、
前記埋込み情報を記憶したメモリ領域を開放しても空き領域が足りない場合、既に開かれている少なくとも１つのページが使用しているすべてのメモリ領域を開放するステップと
を実行させるためのブラウザプログラム。
【請求項６】
ページを構成するマークアップ言語文書および前記埋込み情報をキャッシュメモリに記憶するステップと、
前記メモリ領域の少なくとも一部が開放されたページを再度開く際に前記キャッシュメモリに当該埋込み情報が存在すれば前記キャッシュメモリから当該埋込み情報を読み出して利用するステップと
を前記コンピュータにさらに実行させることを特徴とする請求項５記載のブラウザプログラム。
【請求項７】
前記既に開かれている少なくとも１つのページが使用しているすべてのメモリ領域を開放するステップを実行する前に、装置のユーザにその実行に対する許可を求めるステップを前記コンピュータにさらに実行させることを特徴とする請求項５記載のブラウザプログラム。
【請求項８】
表示画面上に開いた一つのウインドウ内に、開かれた複数のページを切り替えて表示することを特徴とする請求項５記載のブラウザプログラム。
【請求項９】
アプリケーションに対して固定のメモリ領域を割り当てる環境で動作するブラウザプログラムを実行するマークアップ言語文書処理装置であって、
マークアップ言語文書およびその文書中に埋め込まれる埋込み情報を受信する通信部と、
前記受信されたマークアップ言語文書および埋込み情報を記憶する記憶部と、
前記マークアップ言語文書を解析し、前記埋込み情報とともに表示する表示部と、
前記記憶部のメモリ領域を、開かれる新たなページに対して使用させるメモリ領域管理部とを備え、
前記メモリ領域管理部は、
ページを開く要求に対して、そのページが最初に開かれる第１のページである場合、ページに割り当て可能なメモリ領域の全体を使用させ、
前記第１のページが開かれている状態で新たに他のページを開く要求に対して、前記割り当て可能なメモリ領域の現時点の空き領域の全体を当該他のページに使用させ、
前記新たに開かれる他のページが必要とするメモリ領域が前記空き領域では足りない場合、既に開かれているページに使用させるメモリ領域のうちページに埋め込まれる埋込み情報を記憶したメモリ領域を開放し、
前記埋込み情報を記憶したメモリ領域を開放しても空き領域が足りない場合、既に開かれている少なくとも１つのページが使用しているすべてのメモリ領域を開放し、
開放されたメモリ領域を含む空き領域を前記新たに開かれるページに使用させる
ことを特徴とするマークアップ言語文書処理装置。
【請求項１０】
ページを構成するマークアップ言語文書および前記埋込み情報を記憶するキャッシュメモリを備え、
前記メモリ領域管理部は、前記メモリ領域の少なくとも一部が開放されたページを再度開く際に前記キャッシュメモリに当該埋込み情報が存在すれば前記キャッシュメモリから当該埋込み情報を読み出して利用することを特徴とする請求項９記載のマークアップ言語文書処理装置。
【請求項１１】
前記既に開かれている少なくとも１つのページが使用しているすべてのメモリ領域を開放するステップを実行する前に、装置のユーザにその実行に対する許可を求めるステップをさらに備えたことを特徴とする請求項９記載のマークアップ言語文書処理装置。
【請求項１２】
前記ブラウザプログラムは表示画面上に開いた一つのウインドウ内に、開かれた複数のページを切り替えて表示することを特徴とする請求項９に記載のマークアップ言語文書処理装置。
【請求項１３】
前記通信部は無線ネットワークインタフェースを含むことを特徴とする請求項９記載のマークアップ言語文書処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マークアップ言語文書の閲覧を行うブラウザプログラムおよびマークアップ言語文書処理装置、さらにはそのメモリ領域管理方法に関するものである。
【背景技術】
【０００２】
パーソナルコンピュータ（ＰＣ）を初めとして、コンピュータにより制御される種々の機器においてはマンマシンユーザインタフェースとして、表示装置の表示画面上で情報を表示する枠組みとしての「ウインドウ」が利用されることが多い。【０００３】
従来、機器上で、複数のウインドウ表示が可能なアプリケーションを動作させたとき、ウインドウを１つ開くたびにその表示に必要なメモリ領域をアプリケーションが獲得し、ウインドウを閉じると獲得していたメモリ領域を解放するという動作が行われている。【０００４】
マイクロソフト社（Microsoft Corporation）のＷｉｎｄｏｗｓ（登録商標）のような通常、ＰＣで利用されるＯＳでは、アプリケーションが必要なメモリをＯＳがフレキシブルに確保してくれるので、アプリケーションはかなり多数のウインドウを開くためのメモリ領域を確保することが可能である。例えば、ＷｉｎｄｏｗｓのようなＯＳ上で動作するインターネットブラウザアプリケーションは、複数のＷｅｂページを互いに異なるウインドウで表示することが一般的になっている。通常の複数のウインドウ表示が可能なアプリケーションと同様に、ウインドウを一つ開くたびにその表示に必要なメモリ領域をアプリケーションが獲得し、ウインドウズを閉じると獲得していたメモリ領域を解放する。【０００５】
また、Ｗｉｎｄｏｗｓ（登録商標）マシンにおいて、サーバからの符号化された画像データをクライアントで断片的に受信してキャッシュして表示する技術に関し、キャッシュしている符号化された画像データの内、再生画像に影響の少ないキャッシュデータを削除してキャッシュにおけるデータのオーバフローを防止しながらユーザの要求に応じた表示を行う画像処理方法が提案されている（特許文献１）。
【特許文献１】特開２００４−１４５７６０号公報
【特許文献２】特開２００３−２５６２１９号公報
【特許文献３】特開平７−３３４３３９号公報
【特許文献４】特開２００３−３１６５９１号公報
【非特許文献１】山本繁寿、有末一寿、「組み込み機器とプログラミング言語」（Ｉｎｔｅｒｆａｃｅ  ２００２年３月号，ｐ．４４−４８）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、携帯電話機、自動車、各種家電製品等のいわゆる組込み機器（Embedded device）と呼ばれる機器（特許文献２参照）に利用される組込み系ＯＳでは、アプリケーションに固定のメモリ領域が割り当てられている場合があり、ウインドウを開くために確保可能なメモリ領域は比較的少なく、割り当てを超えてメモリ領域を確保することはできない。組込みＯＳでは、空きメモリを探してきてアプリケーションに割り当てる仕組みは用意されていないからである（非特許文献１）。したがって、組込み系ＯＳでは、ブラウザアプリケーションが複数のページを同時に開く（あるいページを開いたまま他のページを開く）ためには、システムから割り当てられた固定のメモリ領域内で当該動作を行う必要がある。【０００７】
１つの解決策として、１つのページを表示するためのウインドウに対して割り当てるメモリ領域を定め、１つのページを開く必要が生じるたびに１つのウインドウ分のメモリ領域を確保することが考えられる。しかし、この方法では、ある１つのページを表示するために必要なメモリ容量が、割り当てられたメモリ領域を越えてしまうと、仮に他のウインドウに割り当てられたメモリ領域に空きがあっても、そのページは表示できず、極めてメモリの使用効率が悪く、ユーザの利便性も低い。【０００８】
一方、同時に開くことができる最大ウインドウ数を定めておき、あるウインドウを開いた後さらに別のウインドウを開く場合には、最下位のウインドウを消去して新しいウインドウを開くために必要なメモリ領域を確保し、新しいウインドウを開く技術が提案されている（特許文献３）。【０００９】
また、複数のページの同時表示とは直接関係しないが、プラグイン方式を用いて様々な埋め込みデータ処理機能拡張を実現するブラウザに関し、所定のプラグインモジュールを記憶する所定の容量の記憶装置にさらに別のプラグインモジュールを記憶するには容量が不足する場合に記憶装置に記憶されているプラグインモジュールを削除する技術が提案されている（特許文献４）。【００１０】
上記のようにインターネットブラウザにおいて、新しいページを開くために、以前のウインドウを消去してメモリ領域を解放することは、次のような問題がある。例えば、電子商取引等のＷｅｂサイトでは発注や決済に用いるＷＷＷサーバ上のＣＧＩ(Common Gateway Interface）に対してデータを再度ブラウザから送信しなければならず、データが消去された後では同じページを表示することは困難になる。その結果、発注や支払いの重複などのユーザに不測の不利益を与える恐れもある。表示するページのデータはネットワーク上にあるので、再度取得する際に必ず取得することを保証できない。この課題は、特に無線通信ネットワークで顕著である。【００１１】
本発明はこのような背景においてなされたものであり、その目的は、組込み系ＯＳのようなＯＳにおいてアプリケーションに対して固定のメモリ領域を割り当てる環境で動作するブラウザにおいて、複数のページを同時に開くときのメモリの使用効率を高め、結果としてユーザの利便性を向上させることにある。
【課題を解決するための手段】
【００１２】
本発明によるメモリ領域管理方法は、アプリケーションに対して固定のメモリ領域を割り当てる環境で動作するブラウザプログラムを実行する装置において開かれる新たなページに対してメモリ領域を使用させるメモリ領域管理方法であって、ページを開く要求に対して、そのページが最初に開かれる第１のページである場合、ページに割り当て可能なメモリ領域の全体を使用させるステップと、前記第１のページが開かれている状態で新たに他のページを開く要求に対して、前記割り当て可能なメモリ領域の現時点の空き領域の全体を当該他のページに使用させるステップと、前記新たに開かれる他のページが必要とするメモリ領域が前記空き領域では足りない場合、既に開かれているページに使用させるメモリ領域のうちページに埋め込まれる埋込み情報を記憶したメモリ領域を開放するステップと、開放されたメモリ領域を含む空き領域を前記新たに開かれるページに使用させるステップと、前記埋込み情報を記憶したメモリ領域を開放しても空き領域が足りない場合、既に開かれている少なくとも１つのページが使用しているすべてのメモリ領域を開放するステップとを備えたことを特徴とする。
【００１３】
このように、本発明ではメモリを効率よく使用するために、同時に開くページの数に上限値を規定せず、ページを開くために使用可能な所定メモリ領域を設け、第１のページを開くときには所定メモリ領域の全てを使用させる。また、第１のページが開かれている状態で新たに他のページを開く要求に対しては、所定メモリ領域の現時点の空き領域の全体を当該他のページに使用させる。これによって、同時に開かれるページの個数によらず効率的なメモリの利用が可能となる。【００１４】
また、新たに開かれる他のページが必要とするメモリ領域が前記空き領域では足りない場合、２段階の処理で対応する。すなわち、まず、既に開かれているページに使用させるメモリ領域のうちページに埋め込まれる埋込み情報を記憶したメモリ領域を開放することにより、新たなページの表示を可能とする（後述する第１のメモリ解放）。換言すれば、マークアップ言語文書自体は残すことにより、再度表示の際の当該文書の取得や再解釈の処理を省略することができる。【００１５】
埋込み情報のみの記憶領域の開放は、特にキャッシュメモリを有する場合に有用である。すなわち、ページを構成するマークアップ言語文書および前記埋込み情報をキャッシュメモリに記憶しておき、前記メモリ領域の少なくとも一部が開放されたページを再度開く際に前記キャッシュメモリに当該埋込み情報が存在すれば前記キャッシュメモリから当該埋込み情報を読み出して利用することができる。これにより、消去された埋込み情報の取得および再表示が迅速に行える。【００１６】
前記既に開かれているページに使用させるメモリ領域のうち埋込み情報を記憶したメモリ領域を開放しても空き領域が足りない場合、第２段階の処理として、既に開かれている少なくとも１つのページが使用しているすべてのメモリ領域を開放するステップを備える。すなわち、前記一部を破棄しても新しいページを開くためのメモリ領域が足りない場合には、前記他のページの全てのデータ（例えば、埋込み情報を含むマークアップ言語文書データおよびこれに対応する表示データの両方）を破棄することにより、空き領域を大幅に確保できる。このとき、さらに、ページのデータだけでなく、ウインドウ関連データ、すなわち、ウインドウでの設定データやウインドウ自体の表示データも破棄することでさらに空き領域を確保できる（後述する第２のメモリ解放）。【００１７】
但し、この場合、前記既に開かれている少なくとも１つのページが使用しているすべてのメモリ領域を開放するステップを実行する前に、装置のユーザにその実行に対する許可を求めるステップをさらに備えることが好ましい。これにより、消去するページが決済処理や検索処理のようにＣＧＩを利用しており、ページ消去により再現性が保証できなくなるような場合に、ページ消去をキャンセルすることをユーザに可能ならしめる効果がある。【００１８】
なお、それでもページをすべて開くことができない場合には、ページの一部分だけを開くようにしてもよい。【００１９】
前記ブラウザプログラムは、例えば、表示画面上に開いた一つのウインドウ内に、開かれた複数のページを切り替えて表示するタイプのものである。【００２０】
本発明は、さらに、上記各メモリ領域管理方法を端末上で実行するためのブラウザプログラムとして把握することができる。【００２１】
また、本発明は、ブラウザプログラムをインストールしたマークアップ言語文書処理装置として把握することも可能である。
【発明の効果】
【００２２】
本発明によれば、組込み系ＯＳのようなＯＳにおいてアプリケーションに対して固定のメモリ領域を割り当てる環境で動作するブラウザにおいて、当該固定のメモリ領域を、第１のページおよび後続のページに対して柔軟に使用させることにより、複数のページを同時に開くときのメモリの使用効率を高めることができる。結果として、ユーザの利便性を向上させることができる。【００２３】
また、メモリ領域の不足時のページ情報の破棄は、不足の程度に応じて段階的に行うことにより、破棄後の再表示の迅速性および再現性に配慮しつつ、メモリ領域の不足に対処することができる。
【図面の簡単な説明】
【００２４】
【図１】本発明が適用される装置の二例の外観を示す図である。
【図２】図１（ａ）に示したテレビ装置のハードウェア構成例を示すブロック図である。
【図３】図１（ｂ）に示した携帯電話機のハードウェア構成例を示ブロック図である。
【図４】本発明が適用される装置の基本的なソフトウェア構成を示す図である。
【図５】ブラウザのソフトウエア機能構成を示す図である。
【図６】本発明の実施の形態においてブラウザに割り当てられたメモリ領域の説明図を示す図である。
【図７】本発明の実施の形態においてブラウザ情報領域に格納されたページの各種情報を示す図である。
【図８】本発明の実施の形態においてウインドウに表示されたページのデータ構成例を示す図である
【図９】図６のブラウザ情報領域４２内に格納される各種情報の内容を示す図である。
【図１０】本発明が適用されるブラウザの一例として、いわゆるタブブラウザの画面例を示す図である。
【図１１】本発明の実施の形態においてページ＃１を開くときの処理を示す図である。
【図１２】本発明の実施の形態においてページ＃２を開くときの処理を示す図である。
【図１３】本発明の実施の形態においてページ＃３を開くときの処理を示す図である。
【図１４】本発明の実施の形態においてページ＃３に埋め込まれた画像＃１を展開するときの処理を示す図である。
【図１５】本発明の実施の形態においてページ＃３に埋め込まれた画像＃１を展開するときの処理を示す図である。
【図１６】本発明の実施の形態においてページ＃３に埋め込まれた画像＃２をさらに展開するときの処理（メモリ獲得失敗）を示す図である。
【図１７】本発明の実施の形態においてページ＃３に埋め込まれた画像＃２をさらに展開するときの処理（メモリ獲得成功）を示す図である。
【図１８】本発明の実施の形態におけるブラウザのメモリ管理機能のメモリ領域管理の処理例を表したフローチャートである。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の好適な実施の形態について図面を参照しながら詳細に説明する。以下の実施の形態では、第１のメモリ解放において、ページの表示データのうち画像情報を消去する場合について説明する。【００２６】
（発明が適用される装置）
図１は、本発明が適用されるマークアップ言語文書処理装置の二例の外観を示している。図１（ａ）は第１の例としてインターネット接続機能を有するテレビ装置５５の例を示している。図２（ｂ）は第２の例として携帯電話機１０の例を示している。【００２７】
図１（ａ）のテレビ装置５５は、この例では、データ放送対応、すなわちＢＭＬおよびＨＴＭＬ対応のテレビ装置の例を示し、専用のリモートコントローラ５０が付属している。このテレビ装置５５は、放送に限らず、インターネット等、通信ネットワーク経由で得られた情報も表示可能である。リモートコントローラ５０は、チャンネルキーおよびその他の操作キーが設けられている。【００２８】
なお、リモートコントローラ５０は、カラーボタンなどを持たないリモートコントローラであっても構わない。リモートコントローラ５０の通信媒体は一般的には赤外線（ＩｒＤＡ）であるが、必ずしも赤外線に限られるものではなく、また、有線・無線を問わない。【００２９】
図１（ａ）に示したテレビ装置５５は、マークアップ言語文書処理装置を内蔵したものを示すが、いわゆるセットトップ型のようなマークアップ言語文書処理装置をテレビ装置本体に外付けする型のものであってもよい。【００３０】
図１（ｂ）の携帯電話機１０は、電話機能の他、操作部１３の操作により通信ネットワークに接続され、ディスプレイ８の画面上でウェブ情報の閲覧が行えるようになっている。携帯電話機１０はディスプレイ８を有する上部筐体と、テンキー等の各種キーおよびカーソル移動操作キー等を含む操作部１３を備えた下部筐体とをヒンジ部で結合した折り畳み型の機器を示している。但し、本発明が適用される携帯電話機は二つ折り型であるか否かは問わない。このような通信ネットワークに接続され、ウェブ情報の閲覧を行える携帯電話機も、本発明の適用の対象となるマークアップ言語文書処理装置の一種と言える。【００３１】
なお、図１（ａ）（ｂ）に示した装置は本発明が適用される装置の典型例を挙げたものであり、本発明はこれらに限定されるものではない。【００３２】
図２はテレビ装置５５のハードウェア構成例を示すブロック図である。このテレビ装置５５は、本実施の形態にかかるブラウザをインストールした情報処理装置であって、中央制御部２０１と、ＲＡＭ２０２と、ＲＯＭ２０３と、ディスプレイドライバ２０４と、ディスプレイ２０５と、ネットワークインタフェース２０６、ユーザインタフェース（ＵＩ）デバイスインタフェース２０７と、フラッシュメモリ２０８と、ＩＲ受光部２０９と、アンテナ２１１と、データ放送対応の放送受信部２１２とを有している。【００３３】
中央制御部２０１、ＲＡＭ２０２、ＲＯＭ２０３、ディスプレイドライバ２０４、ネットワークインタフェース２０６と、ユーザインタフェース（ＵＩ）デバイスインタフェース２０７、フラッシュメモリ２０８、放送受信部２１２は互いにバス２１０により接続されており、このバス２１０を介して相互にデータの授受、コマンドの送受などが行われるようになっている。【００３４】
ＲＡＭ２０２は、中央制御部２０１の演算結果や外部から取得したデータ（マークアップ言語文書を含む）を一時的に保持格納するメモリである。ＲＯＭ２０３は、オペレーティングシステム（ＯＳ）やブラウザ２０３ａなどのプログラムや固定的なデータを保存する不揮発性のメモリであり、中央制御部２０１がＲＯＭ２０３からこれらのプログラムやデータを読み取り、プログラムに従って所定の処理を実行する。フラッシュメモリ２０８は、外部から取得したデータや、メールアドレス、ＵＲＬ（Uniform Resource Locator）などの情報を後の処理のために保持しておく再書き込み可能な不揮発性のメモリである。この例では、ブラウザ２０３ａをＲＯＭ２０３内に格納しているが、フラッシュメモリ２０８内に格納してもよい。ネットワークインタフェース２０６は、外部ネットワークとの接続を確立し、外部ネットワーク（インターネット等）とのデータの送受信を行う機能を有し、例えば、ＬＡＮボードなどによって構成される。ユーザインタフェースデバイスインタフェース２０７は、例えばＩＲ受光部２０９でリモートコントローラ５０からの入力を受け取り、これを中央制御部２０１に渡す機能を有する。Ｉｒ受光部２０９は、リモートコントローラ５０が発した赤外線信号を受光すると、電気信号に変換してユーザインタフェースデバイスインタフェース２０７に渡す機能を有する。【００３５】
ディスプレイドライバ２０４は、中央制御部２０１から文書やイメージ等の表示情報を受け取り、これに基づいてディスプレイを駆動する機能を有する。ディスプレイ２０５は、液晶表示装置、ＣＲＴ表示装置、プラズマ表示装置等の任意の表示装置であって、ディスプレイドライバ２０４からの駆動信号に基づいて画面を光学的に表示する機能を有する。放送受信部２１２はアンテナ２１１で受信された放送波から所望のチャンネルの信号を抽出し、復調再生する機能を有する。この放送受信部２１２は、携帯電話向けの地上波データ放送に対応するものであってもよい。【００３６】
図３は、携帯電話機１０のハードウェア構成例を示している。携帯電話機１０の各部の制御は、バス１１を介する中央制御部（例えばＣＰＵ）１のプログラム制御により実現される。ＲＯＭ２は、そのための制御プログラムや初期装備されたアプリケーションプログラム、および固定的なデータを格納する通常読み出し専用のメモリである。ＲＡＭ３は、データの一時的な保存領域や作業領域を提供する読み書き可能なメモリである。フラッシュメモリ４は、前述したような各種のデータを不揮発的に記憶する再書き込み可能なメモリである。ブラウザ２ａはＲＯＭ２内に格納している（但し、フラッシュメモリ４に格納してもよい。）無線ネットワークインタフェース６は、アンテナ５を介して基地局と無線による音声およびデータの通信を行う部位である。ディスプレイドライバ７は、中央制御部１により制御され、各種の情報の描画処理を行い、表示部であるディスプレイ８の表示画面上に表示を行う。操作部１３は、中央制御部１の制御下で、各種操作キーを含むキー、マイク、スピーカ等のユーザインタフェースデバイスを含む部位である。携帯電話機１０は、これらの他、図示しないが地上波データ放送等の放送受信部を備えてもよい。【００３７】
（システムの説明）
図４に本発明が適用される装置の基本的なソフトウェア構成を示す。この構成は本発明が適用される装置の別を問わず、基本的には同じである。ＲＯＭ等のメモリに格納されたアプリケーションとしてのブラウザプログラム２３（２ａおよび２０３ａに対応）は、システム（オペレーティングシステム：ＯＳ）２１の制御下で動作可能となる。そのために、システム２１は、アプリケーションに対して固定のメモリ領域を割り当てる。図４に示すように、ユーザ等からブラウザの起動要求があった場合、システム２１はメモリ（ＲＡＭ）２５上にブラウザ用メモリ領域２６を獲得して、ＲＯＭ上のブラウザプログラム２３をロードする。ブラウザは、このとき割り当てられたブラウザ用メモリ領域２６内で実行し、必要なデータを保持する必要がある。後述するように、ＯＳ２１から割り当てられたブラウザ用メモリ領域２６の範囲内で、ブラウザが各ページに使用させるメモリ領域の管理はブラウザ自身が行う。【００３８】
（ブラウザのソフトウエア機能構成）
図５はブラウザのソフトウエア機能構成を示している。【００３９】
ブラウザは、ページの取得指示３０があると、マークアップランゲージ（ＭＬ）文書取得部３１が、指示された当該ページのＭＬ文書を取得する。以下でのＭＬ文書としてＨＴＭＬ文書を例として説明する。但し、本発明におけるＭＬ文書はＨＴＭＬ文書に限るものではない。取得したＨＴＭＬ文書は、パーサ３２、ページメーカ３３により順次処理され、レイアウト情報と文字情報が生成される。レイアウト情報と文字情報はメモリ３９（図２のＲＡＭ２０２および図３のＲＡＭ３に対応）に格納される。一方、取得したＨＴＭＬ文書はキャッシュ処理部３５によりメモリ３９にキャッシュされる。【００４０】
ＨＴＭＬ文書の中に、特定のタグ、例えばイメージタグ＜ｉｍｇ＞により画像が指定されている場合、画像取得部３６は、指定された画像ファイルを取得し、画像展開部３７で画像情報（ビットマップデータ）に展開（デコード）し、メモリ３９に格納する。一方、取得したＨＴＭＬ文書は、キャッシュ処理部３５によりメモリ３９にキャッシュされる。レイアウタ３４は、レイアウト情報に従って文字情報および画像情報を表示する。【００４１】
ページメーカ３３、画像展開部３７及びキャッシュ処理部３５からのメモリ３９へのデータの書き込みは、メモリマネージャ３８を介して行われる。メモリマネージャ３８は、各部からの要求に対してメモリ３９上にメモリ領域を確保し、データの書き込みを行うようになっている。【００４２】
（ブラウザ割り当てメモリ領域）
図６に、ブラウザに割り当てられたメモリ領域の説明図を示す。本実施の形態に係るシステム環境においては、上述の通り、システムはブラウザに固定のメモリ領域を割り当てる。ブラウザは、割り当てられたメモリ領域内にブラウザが実行するためのブラウザ実行領域４１と、ブラウザが扱うデータ（キャッシュデータと表示データ）を格納するために使用されるブラウザ情報領域４２を確保する。【００４３】
本実施の形態に係るブラウザは、ブラウザ情報領域４２の最大メモリ領域（容量）を、表示するページ、言い換えればウインドウ毎に分けることなく、一つの領域として使用する。例えば、図７に示すように、ブラウザ情報領域４２に、ページ＃１用キャッシュ情報、ページ＃２用キャッシュ情報、ページ＃１用表示情報（レイアウト情報、文字情報、画像情報など）、ページ＃２用表示情報を書き込んでいく。なお、図７では、各種情報はブラウザ情報領域４２内で連続しており一つのフラグメントを形成しているが、必ずしもこのようでなくてもよく、非連続な複数のフラグメントに分かれていてもよい。【００４４】
（ウインドウとページ）
本明細書において「ウインドウ」とは画面上に開かれた表示枠を意味し、「ページ」とはウインドウ内に表示される内容を意味する。ブラウザが開く１つのウインドウ内には、１つのＵＲＬで指定されるページが表示される。さらにページには、通常、埋込み情報（例えば、画像、動画など）が埋め込まれている。例えば、図８に示すように、一つのページ６１０（ページ＃１）は、１つのＨＴＭＬ文書と同ページに埋め込まれた複数（ここでは２つ）の埋込み情報６１２、６１３（画像＃１、画像＃２）で構成される。また、ページが複数のフレームで構成されているときもある。この場合、一つのウインドウは複数のフレームに分割され、各フレームにはそれぞれ異なるＵＲＬを持つページが表示される。【００４５】
図８に示すように、このページ＃１を、一つのウインドウ６００（ウインドウ＃１）内に開いた場合にブラウザ情報領域４２内に格納される各種情報の内容を図９に示す。図９から分かるように、キャッシュ情報７１０として、ページ＃１ＨＴＭＬ文書７１１と、画像オリジナルデータ７１２、７１３（画像＃１、画像＃２のオリジナル情報）、つまり圧縮された画像ファイルが格納される。また、ページ表示情報７２０として、同ＨＴＭＬ文書を解析して得られたレイアウト情報７２１、文字情報７２２、ページ＃１に埋め込まれた画像＃１、画像＃２の情報７２３、７２４（圧縮された画像ファイルを展開した後のデータ）が格納される。さらに、図７に示さなかったが、ウインドウ関連情報７３０として、ウインドウ＃１における各種設定情報７３１（例えば、表示フォントサイズなど）、ウインドウ＃１の枠、ユーザインターフェース（ボタン、メニュー、タブ等）などのウインドウ＃１表示情報７３２が格納される。【００４６】
図１０に、本発明が適用されるブラウザの一例として、いわゆるタブブラウザの画面例を示す。タブブラウザとは、通常、紙ファイルの管理のための紙ベースのフォルダに付属している「タブ」に模して、表示画面上で、それぞれフォルダに相当する複数のウインドウの識別および選択の手助けとなるタブ部６２、６３、６４を設けたウインドウを含むウインドウ表示画面を用いるものである。複数のウインドウはタブ部以外完全に重なっているために、画面６１上には実質的には１つのウインドウが開かれているのみである。一般的なブラウザでは、新しくページを開くたびに画面上に新しいウインドウが開かれ、画面がウインドウであふれかえり、操作が面倒となる。これに対して、タブブラウザでは実質的なウインドウは一つしかなく、新しいページの作成時にはタブが追加されて同ウインドウ内に表示される。したがって、画面上にウインドウが大量に生成されることがない。したがって、起動された１つのブラウザについて、図９に示したウインドウ関連情報７３０はタブに関するもの以外、１組で足りる。現在選択されていないタブのページは隠れているのみで、タブの選択により直ちにそのページを表示させる（アクティブにする）ことができる。図１０の例では、３つのページにそれぞれタブ部６２、６３、６４が割り当てられており、現在、タブ６４のページがアクティブとなっている。【００４７】
（ページ＃１を開くときの処理）
次に、本実施の形態に係るブラウザが、１つ目のページ＃１を開くときの処理について説明する。【００４８】
図１１に示すように、ページ＃１のＨＴＭＬ文書を取得すると（ステップ(1)）、キャッシュ機能８１１は、メモリ管理機能８１４に対してページ＃１ＨＴＭＬ文書をキャッシュするためのメモリ獲得要求を行う（ステップ(2)）、メモリ管理機能８１４は指示されたメモリ領域をメモリ上に獲得する（ステップ(3)）。次にキャッシュ機能８１１は、ページ＃１ＨＴＭＬ文書をページ＃１キャッシュ情報としてメモリ上に書き込む（ステップ(4)）。【００４９】
一方、ページ解釈機能８１２は、ページ＃１ＨＴＭＬ文書を解釈し、これに基づいてレイアウト情報、文字情報が生成されるが、これらの情報を書き込むためのメモリ獲得をメモリ管理機能８１４に要求する（ステップ(5)）。メモリ管理機能８１４は要求されたメモリ領域をメモリ上に獲得する（ステップ(6)）。その後、ページ解釈機能８１２は、レイアウト情報及び文字情報をメモリ上に書き込む（ステップ(7)）。【００５０】
次に、ページ＃１に埋め込まれた画像＃１を取得すると（ステップ(8)）、キャッシュ機能８１１は、メモリ管理機能８１４にメモリ獲得を要求し（ステップ(9)）、メモリ管理機能８１４は、要求されたメモリ領域をメモリ上に獲得する（ステップ(10)）。メモリ獲得に成功したならば、キャッシュ機能８１１は、画像＃１をメモリ上にキャッシュする（ステップ(11)）。【００５１】
一方、画像展開機能８１３は、画像＃１の画像ファイルをデコードするため、メモリ管理機能８１４にメモリ獲得を要求する（ステップ(12)）。メモリ管理機能８１４がメモリ領域をメモリ上に獲得したならば（ステップ(13)）、画像展開機能８１３は画像＃１を展開してメモリ上に展開済みの画像＃１のデータ（以下、画像＃１情報という）を書き込む（ステップ(14)）。【００５２】
このように、メモリ管理機能８１４は、ブラウザ情報領域の全てからキャッシュ情報および表示情報の格納に必要なメモリ領域を確保することができる。これにより、もしページ＃１がとても大きくてもブラウザ情報領域４２の最大使用可能容量まで使って表示を行うことができる。【００５３】
（ページ＃２を開くときの処理）
上述のページ＃１を開いた状態でさらにページ＃２を開いた場合について説明する。ページ＃２には２つの画像＃１、＃２が埋め込まれているものとする。【００５４】
図１２のステップ(1)〜ステップ(14)までのページ＃２のＨＴＭＬ文書および画像＃１についての処理は上述と同様に行われ、ブラウザ情報領域４２の空き領域に、必要なメモリ領域を獲得して各情報を書き込む。さらに、ページ＃２の画像＃２についてもステップ(8)〜(14)と同様に、画像＃２の取得（ステップ(15)）、画像＃２のキャッシュ（ステップ(16)〜(18)）および画像＃２の展開データの書き込み（ステップ(19)〜(21)）が行われる。【００５５】
このように、ブラウザ情報領域の空き領域に余裕があれば、第１のページに続いて第２のページにその空き領域を使用させて、複数のページを開くことができる。【００５６】
（ページ＃３を開くときの処理）
上述のページ＃１、＃２を開いた状態でさらにページ＃３を開いた場合について説明する。ページ＃３には１つの画像＃１が埋め込まれているものとする。【００５７】
図１３に示すように、ページ＃３ＨＴＭＬ文書を取得すると（ステップ(1)）、キャッシュ機能８１１は、メモリ管理機能８１４に対してページ＃１ＨＴＭＬ文書をキャッシュするためのメモリ獲得要求を行う（ステップ(2)）、メモリ管理機能８１４は、指示されたメモリ領域をメモリ上の空き領域に獲得する（ステップ(3)）。次にキャッシュ機能８１１は、ページ＃１ＨＴＭＬ文書をメモリ上に書き込む（ステップ(4)）。【００５８】
一方、ページ解釈機能８１２は、ページ＃１ＨＴＭＬ文書を解釈し、これに基づいてレイアウト情報、文字情報が生成され、これらの情報を書き込むためのメモリ獲得をメモリ管理機能８１４に要求する（ステップ(5)）。メモリ管理機能８１４は要求されたメモリ領域をメモリ上に獲得する（ステップ(6)）。その後、ページ解釈機能８１２は、レイアウト情報及び文字情報をメモリ上に書き込む（ステップ(7)）。【００５９】
次に、図１４に示すように、ページ＃３に埋め込まれた画像＃１を取得すると（ステップ(8)）、キャッシュ機能８１１は、メモリ管理機能８１４にメモリ獲得を要求し（ステップ(9)）、メモリ管理機能８１４は、要求されたメモリ領域をメモリ上に獲得する（ステップ(10)）。メモリ獲得に成功したならば、キャッシュ機能８１１は、画像＃１のオリジナルデータをメモリ上にキャッシュする（ステップ(11)）。【００６０】
一方、画像展開機能８１３は、画像＃１の画像ファイルをデコードするため、メモリ管理機能８１４にメモリ獲得を要求する（ステップ(12)）。この要求に従ってメモリ管理機能８１４が、必要なメモリ領域をメモリ上の空き領域に獲得することを試みる（ステップ(13)）。しかし、この例では、空き領域が十分でないため、メモリ管理機能８１４はメモリ獲得に失敗する（ステップ(14)）。そこで、メモリ管理機能８１４は、現在非アクティブなページ＃１の表示情報の一部である画像＃１情報の破棄を決定し、実行する（ステップ(15)）。これにより、画像＃１の分だけメモリが解放され、空き領域が増える。このような、ページの表示情報の一部を破棄して空き領域を拡張することを、メモリの「第１の解放」と呼ぶ。【００６１】
この後、図１５に示すように、メモリ管理機能８１４は、画像＃１情報を書き込むためのメモリ領域を再び獲得することを試み（ステップ(16)）、成功する（ステップ(17)）。そして画像展開機能８１３はページ＃３の画像＃１を展開してメモリ上に画像＃１情報を書き込む（ステップ(18)）。【００６２】
このように、本実施の形態に係るブラウザによれば、情報を書き込むためのメモリ領域を空き領域に確保できない場合には、非アクティブなページ＃１の表示情報（この例では、レイアウト情報、文字情報および画像情報）のうち一部（この例では埋込み情報としての画像情報）を破棄してメモリを解放して空き領域を拡張することにより、新しいページ＃３用にメモリ領域を確保してページ＃３を開くことを可能にする。【００６３】
「第１の解放」では、ページの一部、特にレイアウト情報を残し、その他の情報、この例では画像を破棄しているので、ユーザが再び当該ページを開くことを要求した場合に、全ての処理を初めから実行する必要は無い。例えば、上述の例では、ページ＃１の表示が要求されたとき、キャッシュされた画像＃１のオリジナルデータを呼び出して再び展開することでページ＃１を容易に且つ迅速に表示することが可能である。【００６４】
この例では、ページの表示情報のうち、破棄する情報として画像を取り扱っているが、特に画像に限定されるものではなく、ページに埋め込まれている音声、動画など、他の任意のオブジェクトデータであってもよい。さらに、レイアウト情報や文字情報であってもよいが、ページを再び開くときにＨＴＭＬ文書を再度解釈する必要が生じるのであまり効率的ではない。つまり、本発明の好適な態様の一つは、レイアウト情報や文字情報を残し、ＨＴＭＬ文書中で指定された画像、動画、音声などの外部オブジェクトのデコード済みデータを破棄することである。【００６５】
ここで「非アクティブなページ」とは、アクティブでないページを意味する。アクティブなページとは、通常、最も前面に表示され、ユーザの閲覧および操作の対象となるページである。例えば図１０のタブブラウザの例では、新しいページ＃３を開くことにより、アクティブなページ＃３により隠れてしまい表示されなくなったページが非アクティブなページである。従って、この例では、ページ＃１、＃２がともに「非アクティブなページ」である。第１のメモリ開放において、非アクティブなページが複数存在する場合、いずれのページの情報を破棄するかは設定次第であって特に限定されない。また、複数の非アクティブなページから、その情報の一部を破棄するようにしても構わない。【００６６】
ここでは、実際にページ＃３ＨＴＭＬ文書を書き込んだ後で、画像＃１情報を書き込むための空き領域がないと判断しているが、ページ＃３ＨＴＭＬ文書を解釈した段階でどのくらいのメモリが必要かを決定又は推測して、第１のメモリ解放が必要かどうかを判断してもよい。【００６７】
次に、ページ＃３がさらに画像＃２を含んでいる場合について説明する。図１６に示すように、画像展開機能８１３は、画像＃２の画像ファイルを取得すると（ステップ(19)）、キャッシュ機能８１１は、メモリ管理機能８１４に必要なメモリ領域のメモリ獲得を要求し（ステップ(20)）、メモリ管理機能８１４は、要求されたメモリ領域をメモリ上に獲得する（ステップ(21)）。メモリ獲得に成功したならば、キャッシュ機能８１１は、画像＃２のオリジナルデータをメモリ上にキャッシュする（ステップ(22)）。【００６８】
次に、これをデコードするために、メモリ管理機能８１４に、必要なメモリ領域のメモリ獲得を要求する（ステップ(23)）。この要求に従ってメモリ管理機能８１４が必要なメモリ領域をメモリ上の空き領域に獲得することを試みる（ステップ(24)）。しかし、この例では、空き領域が十分でないため、メモリ管理機能８１４はメモリ獲得に失敗する（ステップ(25)）。そこで、メモリ管理機能８１４は、ページ＃１にそれ以上破棄可能な画像がないことを確認した後、ユーザに対してページ＃１を閉じてもよいか否かを問い合わせる（ステップ(26)）。ユーザの了解を得られたならば、メモリ管理機能８１４は、ページ＃１の全ての情報、つまり、キャッシュ情報、レイアウト情報及び文字情報を破棄する（ステップ(27)）。これにより、画像＃２情報を書き込むのに十分な空き領域を確保することができる。これを、メモリの「第２の解放」と呼ぶ。【００６９】
次いで、図１７に示すように、メモリ管理機能８１４は、ページ＃３画像＃２情報を書き込むためのメモリ領域を再び獲得することを試み（ステップ(28)）、成功する（ステップ(29)）。そして画像展開機能８１３は画像＃２を展開してメモリ上に画像＃２情報を書き込む（ステップ(30)）。【００７０】
一方、図１６に示すステップ(26)において、ユーザに確認を取ったときに、ユーザがページ＃１の破棄を認めなかったときは、ページ＃１の全ての情報を破棄することをキャンセルし、ブラウザはページ＃３を、処理済の範囲、この例ではテキストおよび画像＃１を表示する。【００７１】
もちろん、ページ＃１の全ての情報を削除する前に、ページ＃２の画像＃１情報、画像＃２情報を破棄してもよい。【００７２】
（メモリ領域管理のフローチャート）
図１８に本実施の形態におけるブラウザのメモリ管理機能８１４のメモリ領域管理の処理例を表したフローチャートを示す。【００７３】
ページを開く要求があったとき（Ｓ１１，Ｙｅｓ）、そのページが第１のページであれば（Ｓ１２，Ｙｅｓ）、使用可能なブラウザ情報領域４２の最大メモリ領域を当該ページに対して使用させる（Ｓ１３）。ここで「ページを開く」とは未だ表示していない新たなページを表示させることを意味する。すなわち、開いたが非アクティブとなっているページを再度アクティブにする場合は含んでいない。【００７４】
ステップＳ１２において、開く対象のページが第２のページ以降である場合、最大メモリ領域の空き領域のすべてを当該ページに使用させる（Ｓ１４）。この空き領域が足りない場合（Ｓ１５，Ｙｅｓ）、第１のメモリ解放を実行して、新たに空き領域となった部分も含めて当該ページに使用させる（Ｓ１６）。なお空き領域が足りない場合（Ｓ１７，Ｙｅｓ）、ユーザに対して第２のメモリ解放を行ってよいかどうかを問い合わせる（Ｓ１８）。ユーザの回答がＯＫであれば（Ｓ１９，Ｙｅｓ）、第２のメモリ解放を実行して新たな空き領域も含めて当該ページ用に使用させる（Ｓ２０）。それでも空き領域が足りない場合（Ｓ２１，Ｙｅｓ）、足りている分だけの内容を表示する旨のメッセージを出力し（Ｓ２２）、そのような表示を行う。但し、このようなメッセージ出力は必須のものではない。【００７５】
本発明は、携帯電話網のような無線通信ネットワークで用いられる無線移動体端末上で動作するブラウザプログラムに最適である。つまり、無線通信ネットワークでは端末が移動するため通信環境が変動することが多く、現在開いているページを一旦閉じてしまうと再び開くことができるかどうか保証が無い。そこで、新しいページを開くためのメモリ解放を段階的に行うことにより、「第１の解放」では再び非アクティブなページを表示すること（再現性）をできるだけ保証しつつ新しいページを開き、「第２の解放」ではページの全ての情報を破棄する前にユーザの確認を得ることで、ページが再び開けなくなると不都合が生じるページであればユーザにページの情報破棄をキャンセルする機会を与えることが可能である。【００７６】
本発明を適用して好適なブラウザの一例としてタブブラウザを挙げたが、本発明はタブブラウザへの適用に限られるものではない。
【産業上の利用可能性】
【００７７】
本発明は、マークアップ言語文書の閲覧を行うブラウザプログラムおよびマークアップ言語文書処理装置の製造や開発等に利用することができる。
【図１】
0004925436.tif 000002
【図２】
0004925436.tif 000003
【図３】
0004925436.tif 000004
【図４】
0004925436.tif 000005
【図５】
0004925436.tif 000006
【図６】
0004925436.tif 000007
【図７】
0004925436.tif 000008
【図８】
0004925436.tif 000009
【図９】
0004925436.tif 000010
【図１０】
0004925436.tif 000011
【図１１】
0004925436.tif 000012
【図１２】
0004925436.tif 000013
【図１３】
0004925436.tif 000014
【図１４】
0004925436.tif 000015
【図１５】
0004925436.tif 000016
【図１６】
0004925436.tif 000017
【図１７】
0004925436.tif 000018
【図１８】
0004925436.tif 000019