説明

高効率のクライアントサーバ、タイル化およびキャッシングアーキテクチャを使用するネットワーク画像ビューサーバ

【課題】専用のクライアントワークステーション用画像閲覧ソフトウェアに関する問題点を、インターネットおよび業界の標準規格に基づいた画像Webブラウザをクライアントソフトウェアとして使用することによって解消する。
【解決手段】ビューデータの計算と伝送を増分の形で行うことが可能なように画像ビューをタイル化する。ネットワークのトラフィックをさらに低減させるために、ビュータイルはクライアントワークステーション上にキャッシングされる。ビュータイルの計算量を減少させるために、および、画像ビューサーバの応答性を増大させるために、ビュータイルはサーバ上にキャッシングされる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークサーバ上に記憶されているディジタルドキュメントの画像のワークステーションによる閲覧に関し、特に、クライアント/サーバアーキテクチャを使用する大型ディジタルドキュメント画像を閲覧することに関する。
【背景技術】
【0002】
ネットワーク接続環境内のワークステーションのための現行のディジタルドキュメント画像閲覧方法は、ネットワーク接続された画像ファイルサーバにアクセスするために、専用のワークステーションアプリケーションソフトウェアを使用する。画像の閲覧のために、このアプリケーションソフトウェアは、画像ファイル全体のコピーを画像ファイルサーバからネットワーク接続されたクライアントワークステーションに伝送する。この方法は、ネットワークの使用が非効率的であること、ワークステーション1台当たりのソフトウェア購入コストが高いこと、ワークステーション1台当たりのソフトウェア管理コストが高いこと、ワークステーションに対する演算負荷が高いこと、および、専用のソフトウェアが限られたタイプのワークステーションだけにしか利用できないことを含む、多くの制限を有する。他のネットワーク画像ビューワの中には、より最適化された画像伝送プロトコルを使用して画像閲覧を可能にするものもあるかも知れないが、こうしたビューワでは、専用のプロトコルと、専用のワークステーションソフトウェアとを使用することが不可欠である。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本発明の目的は、専用のワークステーションソフトウェアを必要としない、コンピュータワークステーションにおいて画像閲覧するための、ネットワークサーバからグラフィック画像を取得する方法を提供することである。
本発明の別の目的は、ネットワークを効率的に使用し、それによってワークステーションからの要求に応答してより高速に画像を表示する、ネットワークサーバからグラフィック画像を取得する方法を提供することである。
【0004】
本発明のさらに別の目的は、キャッシング機構を使用し、それによって、多数のクライアントがネットワークファイルサーバに同時にアクセスする時に、ネットワークファイルサーバ上のバランスのとれた負荷と、単一のクライアントに対するより短い応答時間とを実現する、ネットワークサーバからグラフィック画像を取得する方法を提供することである。
【0005】
本発明のさらに別の目的は、クライアントワークステーションに必要とされる計算リソースを最小化することである。
本発明のさらに別の目的は、グラフィック画像を記憶し、記憶装置から記憶済みのグラフィック画像の一部分を要求し、かつ、ワークステーション上に画像を迅速かつ効率的に表示する装置を提供することである。
【0006】
本発明のさらに別の目的は、ネットワークサーバ上に記憶されているグラフィック画像の一部分を要求することと、この一部分をワークステーション上に表示することとを容易にするコンピュータプログラムを提供することである。
【課題を解決するための手段】
【0007】
これらの目的と、後述の説明から明らかになる他の目的とが、本発明によって実現され、本発明は、その一側面において、コンピュータネットワークファイルサーバからグラフィック画像を識別し配送する方法であって、ディジタルドキュメント画像ファイルが記憶されているネットワークファイルサーバを設けることを含み、このサーバが、ユニフォームリソースロケータ(URL)コードの形でWebブラウザから要求を受け取り、要求されている画像ファイルおよびフォーマット選択を識別し、要求された画像を格子状のビュータイルに構成し、要求元のWebブラウザに対して、ビュータイルに関するHTMLコードを伝送するに適する、 方法を含む。
【0008】
本発明の別の側面は、ディジタルドキュメント画像ファイルを記憶するに適し、画像ファイルおよびフォーマットを識別するビューを特定するURLコードの形でクライアントのWebブラウザからの要求を受け取り、要求されているビューを構成し、この結果として得られたビューに関するHTMLコードを表示のためにクライアントのWebブラウザに伝送するようにプログラムされている、コンピュータネットワークサーバを含む装置を含む。
【0009】
本発明のさらに別の側面は、記憶装置内に記憶されているディジタルドキュメント画像ファイルの特定のビューを求めるワークステーションからのHTTP要求を解釈し、ディジタルドキュメント画像ファイルを検索し、要求されている画像ビューに対応する格子状のビュータイルを構成し、ワークステーションにサーバから伝送することが可能である形式で格子状のビュータイルに関するHTMLコードを計算するコードを含む、磁気媒体または光学媒体上に記録されている、ネットワークサーバで使用するためのコンピュータプログラムである。
【0010】
本明細書に組み入れられておりかつ本明細書の一部分を構成する添付図面が、本発明の実施様態を例示し、後述の一般的な説明と共に、本発明の原理を説明する役割を果たす。
【図面の簡単な説明】
【0011】
【図1】システムおよび画像ビューサーバの構成要素の関係を示すシステムアーキテクチャのブロック図である。
【図2】画像のビューを要求し、構成し、表示するために、システムによって行われる各ステップの流れ図である。
【図3A】ビュースケールによって決められるビュータイルグリッドを示す説明図である。
【図3B】ビュースケールによって決められるビュータイルグリッドを示す説明図である。
【図4A】初期の画像ビューのために構成された格子ビュータイルを示す説明図である。
【図4B】シフトした画像ビューのために構成された格子ビュータイルを示す説明図である。
【図5A】図4Aに対応する、初期ビューのためのビュータイルのWebブラウザ上の表示を示す説明図である。
【図5B】図4Bに対応する、シフトした画像ビューのためのビュータイルのWebブラウザ上の表示を示す説明図である。
【図6A】バックグラウンドビューコンポーザによって事前計算されたビュータイルを示す説明図である。
【図6B】バックグラウンドビューコンポーザによって事前計算されたビュータイルを示す説明図である。
【図7】フォアグラウンドビューコンポーザの高レベル流れ図である。
【図8】ビューコンポーザのビュージェネレータ構成要素に関する流れ図である。
【図9】ビューコンポーザのデータ出力構成要素に関する流れ図である。
【図10A】図10B、図10Cとともに、ビュータイルキャッシュのガベージコレクタに関する流れ図を構成する。
【図10B】図10A、図10Cとともに、ビュータイルキャッシュのガベージコレクタに関する流れ図を構成する。
【図10C】図10A、図10Bとともに、ビュータイルキャッシュのガベージコレクタに関する流れ図を構成する。
【発明を実施するための形態】
【0012】
以下では、添付図面に一例を示してある本発明の現時点で好ましい実施形態を詳細に説明する。この好ましい実施形態は、Intel Pentium(登録商標) Pro 200MHzプロセッサと、少なくとも128MBのRAMと、少なくとも4GBのハードディスク容量を伴うUltra−wide Fast SCSIディスクコントローラと、LAN/WAN/Internetネットワークインタフェースコントローラとから成るサーバPCである。このサーバは、NT File Systemを伴うWindows(登録商標) NT Server Version 4オペレーティングシステムと、Microsoft Internet Information Server Version 3と、ネットワーク画像サーバソフトウェアとを実行する。サーバとクライアントは、HTTP(Web)プロトコルをサポートするようにTCP/IPネットワークプロトコルで環境設定されている。クライアント側には、Webブラウザ以外のソフトウェアは不要である。好ましいWebブラウザは、Internet Explorer 3.0以上またはNetscape 3.0以上である。
【0013】
最初に図1を参照すると、クライアントワークステーション10、20を含むネットワークが、ネットワーク接続を経由して、ネットワーク画像ビューサーバ100に接続されており、このネットワーク画像ビューサーバは、ネットワークサーバインタフェース、好ましくは、ハイパーテキストトランスファープロトコル(HTTP)を使用するWebサーバ30と、要求ブローカ(request broker)40と、フォアグラウンドビューコンポーザ50と、ビュータイルキャッシュ60と、バックグラウンドビューコンポーザ80と、ガベージコレクタ70と、画像ファイルを有するドキュメントリポジトリ90とを含む。
【0014】
ネットワーク画像ビューサーバ、すなわち、クライアントワークステーション、すなわち、「ワークステーション」100は、例えばプロセッサとI/Oとメモリとディスク記憶装置とネットワークインタフェースとで構成されているパーソナルコンピュータのような、コンピュータにおいて実現されることが可能である。ネットワーク画像ビューサーバ100は、クライアントワークステーション10、20とのネットワークHTTPプロトコルリンクを実現するためのネットワークサーバオペレーティングシステムとWebサーバソフトウェア30とによって構成されている。典型的なネットワークは、1つ(場合によっては2つ以上)のネットワークサーバによってサービスを提供される多くのワークステーションを含み、サーバは、ワークステーションによってアクセス可能なファイルを維持するためのライブラリとして機能する。
【0015】
本発明の方法の一実施形態による動作では、クライアントワークステーション上でWebブラウザソフトウェアを使用することによって、ユーザが、HTTP言語を使用して特別な形式のユニフォームリソースロケータ(URL)コードによって指定されるスケールと領域を有する画像ビューを要求し(110(図2))、Webサーバは、このURLコードを、画像ビュー構成ソフトウェアに送られ、閲覧される画像ファイルとビューのスケールと閲覧画像の領域とを識別する要求として復号化することが可能である。ネットワーク画像サーバは、事前計算されたハイパーリンクを含むHTMLデータをクライアントに送り、その結果として、画像の特定の区域上をクリックしてハイパーリンクを辿ることによって、画像の個々の区域を配送する特定の要求、または、画像の解像度を変化させる特定の要求がサーバに送られることになる。この要求の結果として得られるHTMLは、さらに、ユーザが行ってもよい他の選択に関する事前計算されたハイパーリンクも含むだろう。
【0016】
コードはネットワークを経由してネットワークサーバに送られ、ネットワークサーバでは、Webサーバソフトウェアが要求を解釈し(120)、ビュー要求URLをコモンゲートウェイインタフェース(CGI)を経由してフォアグラウンドビューコンポーザソフトウェアに送り、このコモンゲートウェイインタフェース(CGI)は、Webサーバソフトウェアに対して外部のHTTP要求を処理することを可能にするように設計されており、それによって、Webサーバソフトウェアは、URLによって求められているスケールと領域とを有する要求された特定のビューを取得するように要求ブローカに命令する(130)。フォアグラウンドビューコンポーザが初期化され(140)、要求されたビューをネットワークサーバ上の記憶装置から回収した後に、この要求されたビューを構成する(150)。フォアグラウンドビューコンポーザソフトウェアはビュー要求を解釈し、そのビューのためにどのビュータイルが必要とされているかを計算し、要求を満たすために必要なビュータイルが既に計算されてワークステーションのキャッシュメモリ内に記憶されていない場合には、そのビューのために必要とされるビュータイルを生成し(160)、その次に、Webブラウザに対してビュー構成物を記述するためのハイパーテキストマークアップランゲージ(HTML)出力ファイルを生成し、一方、要求を満たすために必要なビュータイルが既に計算されてワークステーションのキャッシュメモリ内に記憶されている場合には、既に計算済みのビュータイルがWebブラウザによって回収される。どちらの場合にも、フォアグラウンドビューコンポーザは出力をフォーマットし(170)、その次に、そのフォーマット済みの出力をWebサーバに送るバックグラウンドビューコンポーザを初期化し(180)、一方、バックグラウンドビューコンポーザは、フォーマット済みの出力を要求元のワークステーション10上のWebブラウザにネットワークを経由して伝送し(200)、この要求元のブラウザは、サーバから取り出された新たに計算したビュータイル(220)と組み合わせて、既にキャッシング済みのあらゆるビュータイルを表示する(210)。
【0017】
ビュータイルの生成(160)は画像タイル化ルーチンによって取り扱われ、この画像タイル化ルーチンは、画像としてレンダリングされた特定のページを、ビュータイルA1、A2、B1等と呼ばれるより小さな画像の格子(図3A)(すなわち、画像ビューサーバの分脈においてはタイル)に分割する。ワークステーション上のブラウザソフトウェアから受け取ったURL要求にしたがって、これらのタイルを、特定の画像の個々の解像度(図3B)を得るように計算する。タイル化により、画像ビューサーバとクライアントワークステーションにおけるブラウザ10とにおける効果的な画像データのキャッシングが可能になる(60)。
【0018】
好ましいビュータイルの形式は128×128画素のGIF画像ファイルである。GIF画像ファイル形式は、Webブラウザの互換性と画像ファイルサイズとの点で好ましい。GIF画像ファイル形式は、画像Webブラウザにおいて最も広くサポートされている形式であり、したがって、画像ビューサーバに最大のクライアント互換性を与える。GIF画像形式は、損失の少ない画像データ圧縮、適度なデータ圧縮比率、カラーとグレースケールのサポート、および、ビュータイルサイズの選択に関連する比較的小さい画像ファイルヘッダという望ましい特性を有する。2,048バイトの白黒ビュータイルの生画像データサイズと、4:1の典型的なGIF圧縮との場合は、1つのビュータイルの圧縮データは約512バイトである。TIFFとJPEGのような多くの画像ファイル形式の場合には、画像ファイルヘッダ(および、データインデックスのような他のオーバヘッド情報)は、ビュータイルのような小さな画像の場合に、画像データ自体と同じ大きさか、または、この画像データよりも大きいが、一方、白黒画像のGIFヘッダはGIF画像ファイルに対してわずかに約31バイトを付加するにすぎない。Portable Network Graphics(PNG)のような別のビュータイル形式に対してネイティブなブラウザのサポートが一般的になってきているので、こうした形式を使用してもよい。
【0019】
128画素というビュータイルのサイズは、ビュータイルの粒状感とビュータイルのオーバヘッドとの間の適切な妥協点である。128画素のビュータイルの粒状感が、標準的な画像Webブラウザとレベル2のHTMLフォーマッティングとによって得られる最小ビュー移動距離(パン距離)を決定する。これは、200画素/インチの画像を1対1のスケールで目視する時に、0.64インチのグリッド上でビュー位置を調整することを可能にする。ビュータイルのサイズを縮小することによって、ビュー位置決めのためのより精細なグリッドが実現されるが、ビュータイルのオーバヘッドが過大になるという問題が生じる。
【0020】
ビュータイルは、典型的には、128×128画素程度の画像ファイルである。表示されるビューが2:1に縮小される場合には、各々のビュータイルは、128×128画素に縮小された、256×256画素領域の画像ファイルである。使用可能な各々のスケールファクタ毎に、ビューを表すためのタイルの配列が存在する。固定サイズのビューのタイル化が、サーバとクライアントとにおけるキャッシング機構のより効率的な使用を可能にするので、有益である。例えば512×512画素のビューを例にあげよう。タイル化を行わない場合には、このビューは、Webブラウザによって表示される単一のGIFファイルで構成され、したがって、ユーザが256画素だけビューを移動させることを要求する場合には、512×512画素の新たなGIF画像を構成してWebブラウザに伝送する必要がある。タイル化を行う場合には、最初のビューにより16個のビュータイルが計算されてWebブラウザによる表示のために伝送される。256画素だけビューを移動することが要求される場合には、256×512画素の区域を表す8個のビュータイルを計算するだけで足りる。これに加えて、シフトしたビューでは、Webブラウザのキャッシュから得られる8個のビュータイルが再使用されるので、8個の新たなビュータイルをWebブラウザに伝送するだけで足りる。この例では、タイル化により、計算とデータ伝送を半分に減少させる。
【0021】
さらに、ビュータイル化により、次のビュー要求によって求められるかも知れないビュータイルを画像ビューサーバが効果的に事前計算することが可能になる。画像ビューサーバのバックグラウンドビューコンポーザは、シフトしたビューに対する要求を予測して、最も最近のビュー要求の周囲を囲むビュータイルを計算する。シフトしたビューに対する要求が生じた場合には、フォアグラウンドビューコンポーザが事前計算済みのビュータイルを使用し、そのビューのために新たなビュータイルを計算する時間を不要にすることができる。頻繁にアクセスされる画像の場合には、ビュータイルキャッシュが最も最近にアクセスされたビュータイルを保持するので、ビューのためのビュータイルがビュータイルキャッシュ内に既に存在している可能性が高い。数百万個のビュータイルが生成され、最終的には画像ビューサーバの記憶容量を越えるかも知れないので、ビュータイルキャッシュのガベージコレクタが、記憶割当ての最大限度または空き記憶空間の最小限度に達する場合に、最も長時間アクセスのないビュータイルを除去する。
【0022】
特定のビューサイズをレンダリングするために必要なビュータイルの個数は、ビュータイルのサイズの2乗に反比例して増大する。64ピクセルのビュータイルでは、同じビュー区域をレンダリングするために、4倍の個数のビュータイルが必要になるだろうが、これは好ましくない。ビュータイルのオーバヘッドには、データの量に関するものとネットワークトランザクションの回数に関するものとが存在する。データ量オーバヘッドは、上述のような全体の画像ファイルサイズに比例したものとして、および、HTMLテキストファイルにおいてビュータイルの参照を行うために必要とされるデータとしての画像ファイルのヘッダサイズから生じる。ビュータイルの各々がネットワークトランザクションを必要とするので、ネットワークトランザクションのオーバヘッドは、ビュータイルが小さいほど増大する。より小さいビュータイルのサイズの場合に必要とされるネットワークトランザクションの個数の増大は、ビューをレンダリングするための応答を減速させるだろう。
【0023】
フォアグラウンドビューコンポーザによって生成されたHTML出力ファイルは、Webサーバソフトウェアに送られ、さらに、Webブラウザに伝送される。画像Webブラウザは、画像ビューサーバからのHTML出力を使用して、画像のビューを形成するビュータイルの配列を構成して表示することによって、画像ビューワとして機能する。HTMLページデータは、表示されるべき各ビュータイルに関するサイズと位置とハイパーリンクとをリストする。ビュータイルは、あらゆる一般的な画像Webブラウザによって表示可能であるGIF画像ファイルフォーマットで記憶される。表示されるべきビュータイルがローカルキャッシュ内に存在する場合には、Webブラウザは、こうしたビュータイルの各々をローカルキャッシュから検索し、そうでない場合には、画像ビューサーバから検索する。
【0024】
要求ブローカ40は、ネットワークサーバインタフェースから生の要求を受け取り(130)、その要求を解釈し、他のシステム構成要素と通信し、適切な応答が何であるべきかを決定する。さらに、要求ブローカ40は、どの時点で応答を戻すかを決定する。好ましい実施形態では、要求ブローカは、Webサーバのコモンゲートウェイインタフェース(CGI)によって具体化される。Webサーバに対する他の直接的なアプリケーションプログラムインタフェース(API)を使用するという選択肢も存在する。
【0025】
同じ1つの画像ビューサーバ上での多数の画像のタイル化とキャッシングをサポートするために、各々のビュータイルは、ビュータイルURLを使用するWebブラウザによる参照のために一意的に識別されなければならない。この一意性は、記憶位置とビュータイル命名との組合せによって実現される。画像相互間の一意性は、各画像について別々の記憶サブディレクトリをビュータイルキャッシュ内に有することによって実現される。各々のビュースケールに関するビュータイルの一意性は、各ビュータイルに関するファイル名によって実現される。ビュータイル名が次の形式であることが好ましい。
【0026】
V<SCALE> <TILE_NUMBER>.GIF
<SCALE>値は、256分の1を単位として表したビュースケール数のbase36符号化から形成される2文字の文字列である。<TILE_NUMBER>値は、次式によって求められる通りのタイル番号のbase36符号化から形成される5文字の文字列である。
【0027】
TILE_NUMBER = TILE_ROW*IMAGE_TILE_WIDTH + TILE_COLUMN
TILE_ROW値とTILE_COLUMN値は、この計算の場合にはゼロからスタートする。例えば、2:1のスケールにされた画像に関する第1の横列の第2のタイルは、この好ましいプロトコルでは次のように命名されることになる。
【0028】
V3J00001.GIF
画像ビューサーバ上の画像番号22に関する第1の横列の第2のタイルに対する完全なURL参照は、
http://hostname/view−tile−cache−path/000022/V3J00001.GIF
となるだろう。
【0029】
ビュータイル位置とビュースケールとに加えて、他のビュー属性が、ビュータイル記憶位置またはビュータイル名の形に符号化されてもよい。これらの属性は、ビュー回転角度、ビューxミラー(view x−mirror)、ビューyミラー(view y−mirror)、および、反転ビューである。これらの追加のビュー属性を伴うビュータイル名を次のように符号化することが可能である。
【0030】
V<SCALE> <TILE_NUMBER> <VIEW_ANGLE>
<X_MIRROR> <Y_MIRROR> <INVERT>.GIF
VIEW_ANGLEはA<ANGLE>の形式である。X_MIRRORとY_MIRRORとINVERTは、各々に単一の文字X、Y、Iによって符号化される。次に一例を示す。
【0031】
V3J00001A90XYI.GIF
Webブラウザ30は、画像ビューサーバの要求ブローカ40によって処理されなければならない、上記の特別にフォーマットされた要求ユニフォームリソースロケータ(URL)を認識するように構成されている。これは、URLパスまたはドキュメントファイル名拡張子に要求ブローカ40を対応づけることによって実現される。
【0032】
フォアグラウンドビューコンポーザ50は、ビュー要求コマンドを解釈して、どのビューが構成されなければならないか判定する(140)。このビュー要求は、スケールと位置を定義することによる絶対的なビュー要求であっても、先行のビューに対する差分としてスケールと位置を定義することによる相対的なビュー要求であっても、または、ビューの選択に関するシステムデフォルトにより暗黙に定義されてもよい。
【0033】
ビュー計算のソフトウェアルーチン150が図7に示されており、この図では、コマンドインタプリタ151がビュー要求を受け取り、そのビューのためにどのスケールのビュータイル格子が必要とされているかを決定し(152)、グリッド内のどのビュータイルがそのビューのために必要とされているかを決定し(150)(図2)、ビュータイルを生成し(153)、フォーマットされたビュー出力を生じさせる(154)。
【0034】
ビュータイルジェネレータルーチン160が、図8に示す好ましい諸ステップにしたがってビュータイルの実際の生成を行う。このビュータイルジェネレータは、ビューのためにどのビュータイルが必要とされているかに関する情報をビュー計算から受け取る。ビュータイルジェネレータは、どのビュータイルが既に生成済みでありかつキャッシュ内に存在しているか調べるために、キャッシュ80内のレコードにアクセスする。必要とされるビュータイルがキャッシュ内に存在する場合には、キャッシュガーべージコレクタがビュータイルを削除することを防止するために、ビュータイルジェネレータの最終アクセス時刻が更新される。必要とされるビュータイルがキャッシュ内に存在しない場合には、ビュータイルジェネレータは、画像ファイル90からビュータイルを生成する。ビュータイルジェネレータは、白黒ラスタ画像、グレースケールラスタ画像、カラーラスタ画像、および、Adobe Portable Document Format(PDF)やPostScriptやHPGL等のような様々なコンテンツに富む非ラスタフォーマットを含む、様々なディジタルドキュメントファイルフォーマットのレンダリングをサポートするソフトウェアイメージングライブラリを使用する。白黒画像データをレンダリングする場合には、圧縮画像の視覚的により訴求力の高いレンダリングを実現するために、イメージングライブラリのスケール対グレースケーリング(scale−to−gray scaling)を使用する。
【0035】
例えば、特定のビュー要求が、タイルB2、C2、B3、および、C3(図4Aと図5A)とを含むかも知れない。そうである場合は、これらのタイルを閲覧した後に、クライアントが、その直ぐ左のビューを要求することを決定し、サーバはタイルA2とタイルA3とを送るだろう(図4Bと図5B)。これは、クライアントがキャッシュ内にその他のタイルを保持していることを前提としている。クライアントがキャッシュ内にその他のタイルを保持していない場合には、タイルA2、A3、B2、B3が送られる。
【0036】
完成したビューを表示するために必要とされるビュータイルを参照するために、フォーマットされた出力が生成される(170)。このフォーマットされた出力は、表示すべき各ビュータイルの順序と位置とハイパーリンクとを記述するためにHTMLを使用する。出力フォーマッタは、白色ビュータイルを検出することと、画像に特有の白色ビュータイルに関するハイパーリンクを共通の基準白色タイルで置き換えることとによって、さらに別の最適化を行う。これは、1つの白色タイル以外の全ての白色タイルの伝送を排除し、共通の白色タイルがWebブラウザによってキャッシングされると直ちに、あらゆる白色タイルを伝送する必要を排除する。
【0037】
フォアグラウンドビューコンポーザ50は、フォアグラウンドビューが構成されている時にバックグラウンドビューコンポーザ80を停止させることと、その次に、この新たなビューの構成が完了する(180)と直ちに、最新のビューに関する情報によってバックグラウンドビューコンポーザを始動させることによって、バックグラウンドビューコンポーザを制御する。
【0038】
バックグラウンドビューコンポーザ80は、サーバに対するビュー要求の間に必要とされるかも知れないビュータイルを事前計算する(すなわち、構成する)ことによって、システムの性能を最適化するようにプログラムされていることが好ましい。事前計算すべきタイルは、最も最近のビューを取り囲んでおりかつこのビューと同じスケールを有するタイルである。ビュータイルの事前計算の順序は、最も最近のビューから時計回り方向に渦巻き状の順序である。不必要であるかも知れないビュータイルの無駄な生成を防止するために、ある1つのビューの周囲の事前計算されるビュータイルの個数は、システム構成パラメータによって制限されることが好ましい。事前計算されたビュータイルの数が、最も最近のビュースケールに関して最大数に達すると、事前計算を別のビュースケールに対して行うことが可能である。バックグラウンドビューコンポーザは、より重要なシステムタスクに対する干渉を最小限に抑えるために、低い優先順位で働くようにプログラムされることが好ましい。
【0039】
図6Aが、バックグラウンドビューコンポーザのアルゴリズムがどのように働くかを示している。クライアントによって特定のビューが要求されると、タイルC3、C4、D3、D4が配送され、これらのタイルがWebブラウザに配送された後に、サーバプログラム内のバックグラウンドビューコンポーザルーチンは、これらのタイルを囲むタイルを構成すなわち計算することによって、これらのタイルの周囲にE4から開始してタイルを生成する。クライアントがこのスケールファクタでこのページを閲覧し続ける限りは、サーバは、最後に要求されたタイルから外方に延びるビュータイルを計算するだろう。図6Bは、2回転分のタイルの生成の後に、クライアントによって行われる別の要求を示す。この要求はタイルG3、G4、H3、H4を求めた。この要求に答えるためにタイルの事前計算が始まると、この事前計算は、第1の回転においてタイルG5、H5、I5、I4、I3、I2、H2、G2を生成するが、縦列F内ではタイルを生成しようとはしないだろう。
【0040】
ビュータイルキャッシュのガベージコレクタのアルゴリズム70が、ビュータイルのための記憶装置の使用を管理することが好ましい(図10A、図10B、図10C)。このガベージコレクタは、記憶域の限度を下回る形にビュータイルのキャッシュ記憶域の使用を維持するように、および、空き記憶空間の限度を上回る空き記憶空間を維持するように、ビュータイルキャッシュ60を維持する(図1)。ガベージコレクタは、ビュータイルに関するサイズと古さの統計量とを集計するために、キャッシュを絶えずスキャンする。キャッシュサイズを減少させることが必要な時には、ガベージコレクタは、キャッシュサイズが範囲内に収まるまで、最も長時間アクセスのないビュータイルを選択して削除する。ガベージコレクタは、より重要なシステムタスクに対する干渉を最小限に抑えるために、低い優先順位で動作する。空き記憶空間の限度は、システムの記憶空間の空きが無くなることを防ぐためのフェールセイフ限度として設計されている。空き記憶空間の限度を周期的にチェックし、この限度を越える場合には、空ら記憶空間がその限度よりも大きくなるまで、ガベージコレクタが重要なシステムタスクとなって、高い優先順位で動作する。
【0041】
ディジタルドキュメントファイルは、Webサーバ上に、または、ネットワーク内の別のサーバ上に記憶されてよい。画像ファイルは、典型的には、ドキュメントリポジトリ90内にドキュメントと共に記憶される属性情報を有するディジタルドキュメントとして管理される。ディジタルドキュメント管理システムが、画像ビューサーバソフトウェアとは無関係にまたはこのソフトウェアと共同で動作することが可能である。ディジタルドキュメントファイルは、ラスタ画像ファイルであっても、非ラスタドキュメントファイルであってもよい。ディジタルドキュメントファイルが非ラスタ形式である場合には、このファイルは、閲覧のために、白黒ラスタ画像、グレースケールラスタ画像、または、カラーラスタ画像にレンダリングされる。
【0042】
クライアントワークステーション10上の画像Webブラウザは、表示されるべきビュータイルキャッシュ60内のビュータイルに対するハイパーリンクと、画像ビューを形成するためのタイルのレイアウトを記述するフォーマッティングとを含むHTMLデータを、画像ビューサーバ210から受け取る。Webブラウザは、最初に、ビューのための各ビュータイル220をビューサーバから取り出さなければならない。最初のビューの後で、ビューが同じスケールで先行のビューに重なる時にはいつでも、Webブラウザは、以前に表示されたビュータイルを、ビューサーバからではなくWebブラウザのローカルキャッシュから検索する(210)ことが好ましい。
【0043】
ドキュメント閲覧の性能と活用性を、タイリングした画像のプログレッシブ表示を使用することによって増大させることが可能である。画像コンテントの残り部分をダウンロードしている間に、画像の概略的なビューが表示されることを可能にする画像ファイルフォーマットを使用することによって、ドキュメントの概略的なビューをより迅速に見ることが可能である。
【0044】
ほとんどのWebブラウザは1度に1つから4つのGIF画像だけを伝送することが可能であるにすぎないので、ビュー配列内のビュータイルを全て同時にプログレッシブ表示することは一般的に不可能である。したがって、プログレッシブ表示を実現するためには、クライアント側でのタイリングとキャッシングの利点を生かしながらドキュメント閲覧区域スクリーン全体がプログレッシブ表示の利点を活用することを可能にする別のデータフォーマットを受け入れるように、クライアント側のアルゴリズムが提供されることが好ましい。これは、Java(登録商標)、Java(登録商標)Script、または、ActiveX技術で記述されたアルゴリズムを使用するWebブラウザ環境において実現されることが可能である。クライアントビューワを強化するためのクライアントソフトウェアを使用することにより、別のビュータイル画像フォーマットと画像圧縮アルゴリズムとを使用することによって性能をさらに向上させることが可能である。重要な一例は、全てのビュータイルによって共有される1つの共通画像ヘッダだけを画像ビューサーバとクライアントに伝送させ、その次に、はじめに各ビュータイルの低解像度の縮小画像データを送り、その次に各ビュータイルの最大解像度の画像データを送るという最適化を行うと同時に、Portable Network Graphics(PNG)フォーマットを使用することである。
【0045】
要求されたビューのためのビュータイル配列を表示することに加えて、HTMLデータは、ビュースケールの増減、ビュー区域の移動、または、ビューサイズの変更によって現在ビューを変更するためにサーバに要求を送る方法をユーザに提供するツールバーを形成するために使用される、ハイパーリンクを含むことが可能である。こうしたハイパーリンクは、現在ビューを参照し、さらには、ユーザによって選択されるハイパーリンクに基づいて新たなビューを構成するように画像ビューサーバに命令する命令コードも含むだろう。
【0046】
本発明の方法と装置とソフトウェア製品が、ネットワークを効率的に使用する、画像ビューサーバにアクセスするために画像Webブラウザを使用する改良されたクライアント/サーバアーキテクチャを提供する。この好ましい方法による画像タイリングとキャッシングとを使用することによって、既に受け取られかつ閲覧された画像の新たなビューをユーザが選択する時に、比較的少量のデータを伝送するだけで足りる。サーバは要求された画像を要求されたフォーマットでワークステーションに送り、その次に、画像ファイルのローカルコピーから画像を閲覧することを可能にする。画像ビューサーバは、画像Webブラウザによってワークステーション上で表示されることが可能な画像のビューを提供するネットワーク画像ビューサーバにアクセスするためのより優れた解決策を、ワークステーション用のより低コストの画像Webブラウザを使用して実現する。例えば、200画素/インチの白黒画像である場合には、Eサイズの技術図面のラスタ画像ファイルのサイズが800万バイトである。一般的に使用されているデータ圧縮を使用する場合に、この画像ファイルのサイズを250キロバイトに縮小することが可能である。約3キロバイト/秒のスループットを有する28.8キロボーの低帯域幅モデムネットワーク接続の場合には、閲覧用のワークステーションアプリケーションに前述の画像ファイルを伝送するためには83秒(250KB/3KB/秒)を要する。画像ビューサーバを使用する場合には、表示すべき画像データを送信するだけで足りる。896×512画素の典型的なビューサイズが、128×128画素のビュータイルの7×4配列で形成される。白黒ビュータイルが、一般的に各々512バイトのタイルを生じさせる圧縮フォーマットで伝送され、したがって、ビュー全体が約14キロバイト(0.5KB×28タイル)であり、伝送には約4.8秒(14KB/3KB/秒)を要する。この画像閲覧方法は、ネットワーク接続に対する要求を下げつつ、より優れた応答を実現する。ローカルエリアネットワークは典型的に10メガビット/秒の媒体を使用するので、画像ビューサーバの効率の良さは明らかには示されない。しかし、10メガビット/秒のネットワークを100人のユーザが共用する場合には、ユーザ1人当たりの平均帯域幅が約12.5キロバイト/秒にすぎず、したがって、画像ビューサーバの効率の良さがやはり利益をもたらすことになる。画像ビューサーバの別の利点は、ビュー画像のサイズが大きくなってもデータ伝送サイズが一定不変のままであるということである。より大きい画像や、より高解像度の画像や、より圧縮度の低い画像の場合のように、画像ファイルのサイズが上述の事例のサイズよりも4倍大きいサイズである場合には、従来の画像ビューワのネットワーク負荷は4倍になるが、一方、本発明の画像ビューサーバによるネットワーク負荷は変化しないままだろう。
【0047】
画像Webブラウザが、安価な一般的なワークステーションアプリケーションであり、Webブラウザに関するコストが、他の目的のためにワークステーションに関して必要とされるコストである場合が多く、かつ、多くの場合には、ワークステーションのオペレーティングシステムと共に含まれているので、本発明はソフトウェア購入コストを低減させる。サーバソフトウェアのコストを数百台のクライアントワークステーション全体で分担することが可能である。
【0048】
既に管理されている一般的なワークステーションアプリケーションである画像Webブラウザを使用することによって、専用の追加のワークステーションソフトウェアアプリケーションを排除することによって、および、各ワークステーションで管理するのではなく中央サーバだけにおいて管理すればよいサーバソフトウェアを使用することによって、ソフトウェア管理コストが低減させられる。
【0049】
画像Webブラウザは、一般的なタイプのワークステーション全てと、ノートブックコンピュータとパームトップコンピュータとネットワークコンピュータとWebテレビアダプタとのような他の装置とにおいて、様々に利用可能なソリューションを提供するために使用可能である。
本発明の範囲または思想から逸脱することなしに様々な改変と変形とをネットワーク画像ビューサーバと画像ビューサーバ方法とに加えることが可能であることが、当業者には明らかだろう。本明細書で説明した本発明の仕様と実施とを考察することによって、本発明の他の実施形態が当業者に明らかになるだろう。上述の仕様と実施形態が単なる具体例にすぎないことを意図しており、本発明の真の範囲と思想は後述の請求項によって示されている。

【特許請求の範囲】
【請求項1】
ファイルサーバからのグラフィック画像を識別し配送する方法であって、
ディジタルドキュメント画像ファイルを前記ファイルサーバに格納し、
ユニフォームリソースロケータ(URL)コードの形でWebブラウザから前記ディジタルドキュメント画像の少なくとも特定された部分に対するビューの要求を受け取り、
要求されている画像ファイルおよびフォーマット選択を識別し、
前記画像ファイルを格子状のビュータイルに、前記識別されたフォーマット選択によって特定される前記要求されたビューをビュータイルの配列に分割し、ここで、前記ビュータイルの配列は、前記ディジタルドキュメント画像の前記特定された部分のビューの要求を満たす、前記格子状のビュータイルの部分集合であり、
要求元のWebブラウザに対して、前記ディジタルドキュメント画像の前記特定された部分の前記ビュータイルの配列に関するHTMLコードを伝送することを含み、
ここで、シフトされたビューの要求を受け取ったとき、前記ファイルサーバは、前記シフトされたビューの要求に答えて、シフトされたビュー全体に対する全てのビュータイルを前記ファイルサーバが変更し、計算し、伝送することなく、以前に伝送されたビュータイルのいくつかを使用して表示用のシフトされた配列を形成すべく、前記格子状のビュータイルからの追加的なビュータイルのみを、前記要求元のWebブラウザへ提供し、
前記Webブラウザはシフトされたビューの要求に答えてシフトされたビュー全体を表示し、前記シフトされたビューは、シフトされたビュー全体を表示するための、前記シフトされたビューの要求に答えて計算され転送された追加的なビュータイルと前記以前に伝送されたビュータイルのいくつかとの配列を含む、
方法。
【請求項2】
前記画像ファイルは複数のページを有し、
前記要求は、画像ファイルと、前記画像ファイル内のページの番号と、表示すべき画像の位置、いずれも画像の表示に関するものであるスケール、回転角度、xミラー、yミラー、反転、領域、ビューの更新を選択するためのopコード、および、前記ビューの表現を決めるためのビューテンプレートの1つまたは複数を含むフォーマットとを識別し、前記ビュータイルに関する伝送されたHTMLコードは、要求されたフォーマットで要求されたグラフィック画像の要求されたビューを前記要求元のWebブラウザに表示させる請求項1に記載の方法。
【請求項3】
前記URLによって記述された要求を満たすために前記ビュータイルグリッドから選択されるビュータイルの配列が、前記ファイルサーバによって計算され、前記ネットワークを経由して前記ワークステーション上の前記WebブラウザにHTMLおよびGIFフォーマットで伝送される請求項2に記載の方法。
【請求項4】
前記ファイルサーバは、表示されるべき各ビュータイルに関するサイズと位置とハイパーリンクとをリストするHTML出力ファイルを生成し、前記ビュータイルは、前記Webブラウザによる表示のために、各ビュータイル毎にGIF画像ファイルフォーマットの形で記憶される請求項3に記載の方法。
【請求項5】
前記URLによって記述された要求を満たすために前記Webブラウザに伝送されたビュータイル配列に隣接したビュータイルが、前記ビュータイル配列の伝送の後続の時間期間中に前記ファイルサーバによって計算され、前記隣接したビュータイルは、前記ワークステーションから受け取る可能性がある将来の要求を予想して前記サーバ上にキャッシュの形で記憶される請求項1に記載の方法。
【請求項6】
前記Webブラウザに伝送されたビュータイル配列に隣接したビュータイルは、伝送されたビュータイル配列から時計回りまたは反時計回りの外向きの渦巻き状の順序に前記サーバによって計算され、前記隣接したビュータイルはネットワークサーバ記憶装置内にキャッシングされる請求項5に記載の方法。
【請求項7】
前記Webブラウザは、表示と閲覧のために受け取られたビュータイルをワークステーションの記憶装置内にキャッシングするようになっており、および、前記ワークステーションの記憶装置内にキャッシングされた1つまたは複数の前記ビュータイルを含むビューが後で要求される時に、前記ファイルサーバからではなく、ローカルワークステーションの記憶装置から、前記キャッシングされた1つまたは複数のビュータイルを検索するようになっている請求項2に記載の方法。
【請求項8】
前記ビュータイルは128×128画素のGIF画像ファイルである請求項2に記載の方法。
【請求項9】
前記ビュータイルの各々は、記憶位置とビュータイル命名データとを含む固有のURLを使用して前記サーバによって識別される請求項2に記載の方法。
【請求項10】
ビュータイルキャッシュ内において前記ファイルサーバによって別々の記憶サブディレクトリが各画像毎に計算される請求項2に記載の方法。
【請求項11】
前記URLは、各ビュータイル毎のファイル名によってビューの各スケールを識別する識別データを含む請求項9に記載の方法。
【請求項12】
ビュータイルは、V<SCALE> <TILE NUMBER>.GIFの形式で命名され、ここで、<SCALE>値は、256分の1を単位として表したビュースケール数のbase36符号化から形成される2文字の文字列であり、<TILE NUMBER>は、次式によって求められる通りのタイル番号のbase36符号化から形成される5文字の文字列であり、
TILE NUMBER = TILE ROW*IMAGE TILE WIDTH + TILE COLUMN
ここでTILE ROW値とTILE COLUMN値はゼロからスタートする請求項11に記載の方法。
【請求項13】
前記回転角度、前記xミラー、前記yミラー、および、前記反転の情報が、URL命名形式で
V<SCALE> <TILE NUMBER> <VIEW ANGLE> <X MIRROR> <Y MIRROR> <INVERT>.GIF
の形に符号化され、ここでVIEW ANGLEはA<ANGLE>の形式であり、X MIRRORとY MIRRORとINVERTは各々に単一の文字X、Y、Iによって符号化される請求項11に記載の方法。
【請求項14】
前記Webサーバは、Webサーバコモンゲートウェイインタフェース(CGI)によって実現される請求項1に記載の方法。
【請求項15】
前記要求元のクライアントワークステーションは、前記クライアントワークステーションに伝送される必要がある冗長データの量をさらに減少させるように前記ファイルサーバとの通信を改善するために、アプレットまたはスクリプトを送るように構成されている請求項1に記載の方法。
【請求項16】
前記クライアントワークステーションと前記ネットワークサーバは、前記クライアントに送られる冗長データの量を最小化するに適する請求項1に記載の方法。
【請求項17】
前記クライアントにおけるより低い解像度の画像を取り出すために、より高い解像度の画像が前記サーバによって使用される請求項1に記載の方法。
【請求項18】
前記ファイルサーバは、グレースケール画像ビューおよび/またはカラー画像ビューを前記クライアントに提供するに適する請求項1に記載の方法。
【請求項19】
前記クライアントによる閲覧のために非ラスタファイルが前記サーバによってラスタ化される請求項1に記載の方法。
【請求項20】
画像ファイルは第2のサーバに記憶され、必要に応じて前記ファイルサーバによって検索され一時的に記憶される請求項1に記載の方法。
【請求項21】
ディジタルドキュメント画像ファイルを記憶するに適し、
画像ファイルおよびフォーマットを識別するビューを特定するURLコードの形でWebブラウザからの要求を受け取り、
要求されている画像ファイルとフォーマットを識別し、
識別された画像ファイルと識別されたフォーマットによって特定される、要求されているビューを格子状のビュータイルに分割して前記ディジタルドキュメント画像の前記特定された部分のビューの要求を満たす前記格子状のビュータイルの部分集合を含むビュータイルの配列を形成し、
この結果として得られた前記ディジタルドキュメント画像の前記特定された部分のビュータイルの配列に関するHTMLコードをWebブラウザに伝送するようにプログラムされているファイルサーバであって、
ここで、シフトされたビューの要求を受け取ったとき、前記ファイルサーバは、前記シフトされたビューの要求に答えて、シフトされたビュー全体に対する全てのビュータイルを前記ファイルサーバが変更し、計算し、伝送することなく、以前に伝送されたビュータイルのいくつかを使用してWebブラウザによる表示用のシフトされた配列であって、前記シフトされたビューの要求に答えて計算され転送された追加的なビュータイルと前記以前に伝送されたビュータイルのいくつかとの配列をシフトされたビューとして含むシフトされた配列を形成すべく、前記格子状のビュータイルからの追加的なビュータイルのみを、前記要求元のWebブラウザへ提供する、
ファイルサーバ。
【請求項22】
前記ファイルサーバには、Webサーバソフトウェアとフォアグラウンドビューコンポーザがプログラムされており、前記フォアグラウンドビューコンポーザは、前記ビュー要求を解釈し、格子状のビュータイルの形の画像を計算し、要求されたビューのために必要とされるビュータイルの配列を計算し、前記要求されたビューのために必要とされるビュータイルの配列を構成し、前記Webブラウザに対してビュー構成物を記述するためのHTML出力ファイルを生成するに適する請求項21に記載のファイルサーバ。
【請求項23】
前記ファイルサーバには、バックグラウンドビューコンポーザがプログラムされており、前記バックグラウンドビューコンポーザは、最も最近のビューと同じスケールで前記最も最近のビュー要求の周囲を囲むビュータイルを、ビュー要求中に計算してキャッシングするに適し、その結果として、ファイルサーバのプログラムが、新たなシフトしたビューが後で要求される時に、結果としてのキャッシングされた周囲のビュータイルのどれが、シフトしたビューに関する要求に応答して使用されることが可能であるかを計算し、1つまたは複数のキャッシング済みビュータイルを含むビューを構成する請求項21に記載のファイルサーバ。
【請求項24】
前記周囲を囲むビュータイルは、前記最も最近のビューから外向きに時計回りまたは反時計回りの渦巻きの形で前記バックグラウンドビューコンポーザによって計算される請求項21に記載のファイルサーバ。
【請求項25】
前記Webブラウザは、前記ファイルサーバに対する要求に応答して受け取られるビュータイルをキャッシングするように、かつ、後から要求されるビューに含まれる配列内に含まれる時に前記キャッシング済みビュータイルにアクセスするに適する請求項21に記載のファイルサーバ。
【請求項26】
前記ファイルサーバにはビュータイルキャッシュガベージコレクタがプログラムされており、前記ビュータイルキャッシュガベージコレクタは、記憶割当ての最大限度または空き記憶空間の最小限度に達する時に、最も長時間アクセスのないビュータイルを取り除くに適する請求項21に記載のファイルサーバ。
【請求項27】
コンピュータに請求項21に記載のファイルサーバを実現させるプログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10A】
image rotate

【図10B】
image rotate

【図10C】
image rotate


【公開番号】特開2010−33611(P2010−33611A)
【公開日】平成22年2月12日(2010.2.12)
【国際特許分類】
【出願番号】特願2009−257987(P2009−257987)
【出願日】平成21年11月11日(2009.11.11)
【分割の表示】特願2007−302048(P2007−302048)の分割
【原出願日】平成10年2月12日(1998.2.12)
【出願人】(506123025)イー−プラス キャピタル,インコーポレイティド (2)
【Fターム(参考)】