JP4745839B2 - データ転送システム、送信プログラム、受信プログラム及びデータ送信方法 - Google Patents

データ転送システム、送信プログラム、受信プログラム及びデータ送信方法 Download PDF

Info

Publication number
JP4745839B2
JP4745839B2 JP2006019129A JP2006019129A JP4745839B2 JP 4745839 B2 JP4745839 B2 JP 4745839B2 JP 2006019129 A JP2006019129 A JP 2006019129A JP 2006019129 A JP2006019129 A JP 2006019129A JP 4745839 B2 JP4745839 B2 JP 4745839B2
Authority
JP
Japan
Prior art keywords
data
shape
information
cache
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006019129A
Other languages
English (en)
Other versions
JP2006236334A (ja
Inventor
英敏 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006019129A priority Critical patent/JP4745839B2/ja
Priority to US11/386,426 priority patent/US7478098B2/en
Publication of JP2006236334A publication Critical patent/JP2006236334A/ja
Application granted granted Critical
Publication of JP4745839B2 publication Critical patent/JP4745839B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2876Pairs of inter-processing entities at each side of the network, e.g. split proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明はデータ転送システム、送信プログラム、受信プログラム及びデータ送信方法に関し、特にネットワークを介して接続するサーバとクライアントとの間で、サーバのアプリケーションで作成された描画情報をクライアントに転送するデータ転送システム、送信プログラム、受信プログラム及びデータ送信方法に関する。
従来、サーバで処理を行った結果をリモートクライアントに表示する技術の一つとして、Windows(登録商標)に採用されているRDP(Remote Desktop Protocol)がある。
RDPでは、サーバ側でクライアント側に表示されるべき画面イメージを保持しておき、クライアント側に表示するための情報を画像データの差分情報として適宜送信する。クライアント側では、送られてきた差分情報を元に現在表示されている画面を更新する。すなわち、画像データを生成する処理は、すべてサーバ側で行われる。このRDPでは、画像イメージが3次元形状になった場合でも同様に、サーバ側が画面イメージを保持し、差分情報をクライアントに適宜送信する画像データ転送方式により処理が行われる。
一方、RDPの様に画像データの情報を送信するのではなく、画像データを生成するための描画コマンドをそのまま送信する方法もある。しかしながら、描画コマンドは画像データよりデータ量が多く、特に、この方式で3次元画像を取り扱うと、画像データで送る場合に比べてデータ転送量が多くなるという問題がある。そこで、これを解決する一手段として、3次元描画ライブラリの標準であるOpenGL(Graphics Library)にはディスプレイリストという仕組みが存在する。
この仕組みでは、何度も繰り返して利用する一連の描画コマンドを予め定義しておき、一度だけサーバ側からクライアント側に送信する。クライアント側では、このディスプレイリストを記憶しておく。その後、サーバ側から送信したディスプレイリストを指定すれば、クライアント側で描画を行うことができる。このように、この仕組みは、1つの形状を何度も再描画する場合(3次元形状を様々な方向から見る操作などはこれに相当する)に効果を発揮する。
また、ネットワークの負荷を軽減するため、サーバ、クライアント双方に中継キャッシュを設け、サーバがクライアントに送信したデータを双方の中継キャッシュに格納しておき、クライアントは、クライアントアプリケーションが要求したデータが自装置の中継キャッシュにあればこれを利用するネットワーク通信システムが提案されている(たとえば、特許文献1参照)。
特開平9−251414号公報(段落番号〔0021〕〜〔0039〕、図1)
ところで、アプリケーションをサーバで一括管理するASP(Application Service Provider)と呼ばれる形態を用いる際、従来のスタンドアロン型のアプリケーションをそのまま使用できれば、アプリケーションの修正を行わずにASP運用に切り換えることができる。実際、多くの事務系アプリケーションは、RDPを用いることでASP形態での運用に対応できる。しかしながら、従来の技術を用いて3次元形状を扱うアプリケーションをASPに適用することを考えた場合、性能面から見てASP形態として実用的な運営が行えないという問題がある。
まず、サーバ側ですべての画像処理を行うRDPでは、サーバ側のCPU(Central Processing Unit)の負荷が大きくなるという問題がある。3次元形状の描画には多くの論理演算が必要であり、スタンドアロン型であれば、高速に処理するため、専用のグラフィックアクセラレータを用意してハードウェアレンダリングとする場合が多い。しかし、サーバでは複数のクライアントに対するアプリケーションが同時に動作し、サーバ側に保持している画面イメージへの描画も並行して行われるため、画面イメージごとの処理を基本とする一般的なグラフィックアクセラレータは使用できない。そのため、3次元形状の描画はすべてCPUによるソフトウェアレンダリングとなり、しかも複数のアプリケーションの描画を並行して処理しなければならず、サーバのCPUの負荷は非常に重くなる。サーバCPUの負荷が重くなればサーバの処理全体が遅くなるので、性能面から見てASP形態として実用的な運用が行えない。
一方、サーバ側から描画コマンドを送信する方法では、データ転送量が多大になるという問題点がある。OpenGLのディスプレイリストは、アプリケーションプログラムにディスプレイリストの処理を組み込まないと機能せず、ASP形態を考慮していない従来のアプリケーションでは、ディスプレイリストを効果的に使用できないものが大多数である。ディスプレイリストを使用していないアプリケーションでは、サーバ側からクライアント側へ大量のデータが流れることになる。このため、性能面ではやはりASP形態での実用的な運用が行えない。
以上のように、処理負荷が重く、データ転送量も多い3次元形状の処理を行うクライアント・サーバシステムでは、既存の3次元を扱うアプリケーションに手を加えることなく、ASP形態のアプリケーションとして運用することは難しい。
本発明はこのような点に鑑みてなされたものであり、サーバ側の負荷を軽減し、ネットワークに流れるデータ量を削減することが可能なデータ転送システムと、その送信プログラム、受信プログラム及びデータ送信方法を提供することを目的とする。
本発明では上記課題を解決するために、図1に示すようなデータ転送システムが提供される。本発明に係るデータ転送システムでは、ネットワーク3を介して接続するアプリケーションサーバ(以下、サーバとする)1とクライアント2との間で、サーバ1のアプリケーションで作成された描画情報がクライアント2に転送され、表示装置2fに表示される。サーバ1は、サーバ側キャッシュ(以下、キャッシュ1aとする)、検索登録手段1c及びデータ転送手段1dを具備し、クライアント2は、クライアント側キャッシュ(以下、キャッシュ2aとする)、登録手段2c及びデータ復元手段2dを具備する。
サーバ1では、キャッシュ1aは、所定の形状の描画に用いる形状データが登録される形状キャッシュ情報1fを記憶する。検索登録手段1cは、アプリケーション(図では3次元アプリケーション)1eによって描画情報が作成されると、描画情報に設定された形状データがキャッシュ1aの形状キャッシュ情報1fに登録されているかどうかを検索し、登録されていない場合はこの形状データを形状キャッシュ情報1fに登録する。データ転送手段1dは、形状データが形状キャッシュ情報1fに登録されていた場合に、登録されている形状データが格納される描画情報の領域を、形状キャッシュ情報1fに登録された登録形状データを指示する指示情報に置き換えて描画差分情報を作成し、クライアント2へ送信する。クライアント2では、キャッシュ2aは、形状キャッシュ情報2gを記憶する。登録手段2cは、送信された描画差分情報を取得すると、描画差分情報に設定された新たな形状データをキャッシュ2aの形状キャッシュ情報2gに登録する。データ復元手段2dは、描画差分情報に指示情報が含まれていた場合、その指示情報に基づいてキャッシュ2aの形状キャッシュ情報2gを検索し、描画差分情報の指示情報の領域を検索された登録形状データで置き換えて描画情報を復元する。
このようなデータ転送システムによれば、サーバ1のキャッシュ1aには形状キャッシュ情報1f、クライアント2のキャッシュ2aにも形状キャッシュ情報2gが保存されている。サーバ1では、アプリケーション1eにより新たに描画情報が作成されると、検索登録手段1cは、この描画情報に設定された形状データが形状キャッシュ情報1fに登録されているかどうかを検索し、登録されていない場合はこの形状データを形状キャッシュ情報1fに登録する。こうして、作成された描画情報に設定された形状データが形状キャッシュ情報1fに順次登録される。データ転送手段1dは、形状キャッシュ情報1fに登録された登録形状データが格納される描画情報の領域を指示情報に置き換え、描画差分情報を作成し、クライアント2に送信する。クライアント2では、登録手段2cが描画差分情報に設定された新たな形状データを形状キャッシュ情報2gに登録する。これにより、クライアント2の形状キャッシュ情報2gの登録形状データと、サーバ1の形状キャッシュ情報1fの登録形状データは同じになる。データ復元手段2dは、指示情報に基づいてクライアント側のキャッシュ2aの形状キャッシュ情報2gから登録形状データを検索し、描画差分情報の指示情報の領域を対応する登録形状データに置き換えることによって元の描画情報を復元する。この描画情報によって、所定の画像イメージが表示装置2fに表示される。このように、サーバ1とクライアント2間のデータ転送を描画情報でなく描画差分情報とすることで、データ転送量を削減する。
また、上記課題を解決するために、アプリケーションで作成された描画情報を、ネットワークを介して接続するクライアントに送信する処理をコンピュータに実行させる送信プログラムであって、前記コンピュータに、前記アプリケーションで作成された第1の描画情報に含まれる形状データが、形状データと識別情報とを対応づけて記憶する第1の記憶手段に記憶されていない第1の形状データである場合に、前記第1の形状データを所定の識別情報付与アルゴリズムにより付与された識別情報と対応づけて前記第1の記憶手段に記憶し、前記第1の形状データを含む前記第1の描画情報を前記クライアントに送信し、前記アプリケーションで作成された第2の描画情報に含まれる形状データが、前記第1の記憶手段に記憶されている前記第1の形状データである場合に、該第2の描画情報に含まれる前記第1の形状データを、対応する前記識別情報に置き換えて第3の描画情報を生成し、前記第3の描画情報を、前記第1の形状データを前記所定の識別情報付与アルゴリズムと同様のアルゴリズムにより付与された識別情報と対応づけて記憶済みの前記クライアントに送信する、処理を実行させることを特徴とする送信プログラムが提供される。
また、上記課題を解決するために、ネットワークを介して接続するサーバのアプリケーションで作成された描画情報を受信する処理をコンピュータに実行させる受信プログラムであって、前記コンピュータに、前記サーバのアプリケーションで作成された形状データを含む第1の描画情報を前記サーバから受信すると、受信した前記第1の描画情報に含まれる前記形状データを、前記サーバと同様の識別情報付与アルゴリズムにより付与された識別情報に対応づけて記憶手段に記憶し、前記サーバから前記形状データに対応する前記識別情報を含む第2の描画情報を受信すると、前記第2の描画情報に含まれる前記形状データに対応する前記識別情報を前記記憶手段に記憶された前記形状データに置き換える、処理を実行させることを特徴とする受信プログラムが提供される。
また、上記課題を解決するために、ネットワークを介して接続されるサーバとクライアントとの間で、前記サーバのアプリケーションで作成された描画情報を前記クライアントに送信するデータ送信方法において、前記サーバは、前記アプリケーションで作成された第1の描画情報に含まれる形状データが、形状データと識別情報とを対応づけて記憶する第1の記憶手段に記憶されていない第1の形状データである場合に、前記第1の形状データを識別情報と対応づけて前記第1の記憶手段に記憶して、前記第1の形状データを含む前記第1の描画情報を前記クライアントに送信し、前記クライアントは、受信した前記第1の描画情報に含まれる前記第1の形状データを、前記サーバと同様の識別情報付与アルゴリズムにより付与された識別情報に対応づけて第2の記憶手段に記憶し、前記サーバは、前記アプリケーションで作成された第2の描画情報に含まれる形状データが、前記第1の記憶手段に記憶されている前記第1の形状データである場合に、該第2の描画情報に含まれる前記第1の形状データを、対応する識別情報に置き換えて得られる第3の描画情報を前記クライアントに送信し、前記クライアントは、受信した前記第3の描画情報に含まれる識別情報に対応づけて前記第2の記憶手段に記憶された前記第1の形状データに置き換える、ことを特徴とするデータ送信方法が提供される。
本発明では、サーバとクライアントとで、形状データを形状キャッシュ情報に登録しておき、サーバからクライアントへ描画情報を送信する際に、登録された形状データをそのまま送信するのではなく、対応する形状キャッシュ情報に登録された登録形状データの指示情報として送信する。これにより、新たな形状データのみがそのまま設定される描画差分情報が転送され、データ転送量を削減することができる。また、描画情報として、描画コマンドを送信すれば、サーバ側の画像処理に要する負荷を削減することができる。この結果、ASP形態の3次元アプリケーションに適用すれば、既存の3次元を扱うアプリケーションに手を加えることなく、ASP形態のアプリケーションとしての運用に適した3次元表示性能を持つアプリケーションとして使用することができる。
以下、本発明の実施の形態を図面を参照して説明する。まず、実施の形態に適用される発明の概念について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、実施の形態に適用される発明の概念図である。
本発明に係るデータ転送システムは、サーバ1とクライアント2がネットワーク3を介して接続し、サーバ1で行ったアプリケーション処理の結果をクライアント2で表示するクライアント・サーバシステムに適用される。
サーバ1は、サーバ側キャッシュ1a、差分抽出処理部1b及び3次元アプリケーション1eを有する。また、差分抽出処理部1bは、検索登録手段1cとデータ転送手段1dを有する。
サーバ側キャッシュ1aは、サーバ1に設けられ、アプリケーションで設定された形状データが登録される形状キャッシュ情報1fを格納する記憶手段である。形状キャッシュ情報1fには、3次元アプリケーション1eによって作成された描画情報に設定される形状データ部が抽出され、形状データごとに一意の形状番号が付与されて登録される。
検索登録手段1cは、3次元アプリケーション1eによって描画情報が作成されると、描画情報に設定される形状データが、形状キャッシュ情報1fに登録されているかどうかを検索し、登録されていない場合は、この形状データを形状キャッシュ情報1fに登録する。登録は、形状キャッシュ情報1fへ形状データごとに一意の形状番号を付与して行う。たとえば、形状キャッシュ情報1fへの登録順に1から順に番号を付与していく。なお、詳細は後述するが、クライアント2でも同様の手順で形状データの登録が行われ、形状キャッシュ情報1fと同じ内容の形状キャッシュ情報2gが設定される。
データ転送手段1dは、3次元アプリケーション1eの作成した描画情報をクライアント2へデータ転送する。このとき、描画情報に設定された形状データ以外のデータは、そのまま送信データに設定する。形状データについては、検索登録手段1cによって形状キャッシュ情報1fに登録されていることが検索された形状データは、形状データの領域を形状キャッシュ情報1fの登録形状データを指示する指示情報に置き換える。たとえば、描画情報の形状データの領域を登録形状データに一意に設定される形状番号に置き換えて送信データに設定する。一般に、形状データは、描画情報の多くの部分を占め、所定の形状を描画するため、一つの形状について頂点や法線の指定などが複数設定される。このため、描画情報に設定された形状データの領域を指示情報(対応する登録形状データの形状番号)に置き換えることで、このデータ領域を削減することができる。また、検索登録手段1cによって登録が検索されなかった形状データは、そのまま送信データに設定する。このようにして、一度クライアント2に送信された形状データを指示情報に置き換えた描画差分情報(描画情報の差分情報)を送信データとしてクライアント2に送信する。
また、必要に応じて、座標値データをサーバ1側からクライアント2側に送信する際に、クライアント2側のディスプレイに描画される際にどの程度の精度が必要かを事前に計算し、座標値に高い精度が必要ないと判断できる場合は一部の座標値を近似値とすることで、送信データ量を削減する。その後、形状を拡大表示する操作などが行われ精度が必要になった場合は、その時点で座標値の精度を高めるための座標値差分データを送信する。
3次元アプリケーション1eは、アプリケーション処理を行って、所定の画面イメージを描画する描画情報を生成する。
なお、上記の説明のサーバ1の各処理手段は、サーバコンピュータがデータ転送サーバプログラムを実行することにより、その処理機能を実現する。
一方、クライアント2は、クライアント側キャッシュ2a、差分復元処理部2b、描画処理手段2e及び表示装置2fを有する。また、差分復元処理部2bは、登録手段2cとデータ復元手段2dを有する。
クライアント側キャッシュ2aは、クライアント2に設けられ、アプリケーションで設定された形状データが登録される形状キャッシュ情報2gを格納する記憶手段である。
登録手段2cは、描画差分情報を取得すると、描画差分情報に設定された形状データを自装置のクライアント側キャッシュ2aの形状キャッシュ情報2gに登録する。このとき、サーバ1の検索登録手段1cと同様に、形状キャッシュ情報2gへ形状データごとに一意の形状番号を付与する。たとえば、登録順に1から順に形状番号を付与して登録を行う。描画差分情報に設定されている形状データは、サーバ1側においても形状キャッシュ情報1fに登録されるので、サーバ1と同様の順序で登録を行えば、サーバ1の形状キャッシュ情報1fと同じ形状番号を付与することができる。また、サーバ1側から形状番号を指示するようにしておき、指示された形状番号で登録することもできる。また、サーバ1から座標値差分データを取得した場合には、座標値差分データを用いて形状キャッシュ情報2g内の座標値を修正し、修正した形状データを登録する。
データ復元手段2dは、描画差分情報に設定されている指示情報を読み出し、指示情報に基づいてクライアント側キャッシュ2aの形状キャッシュ情報2gを検索し、検索された登録形状データで指示領域を置き換える。上述のように、サーバ側の形状キャッシュ情報1fとクライアント側の形状キャッシュ情報2gには、同一の登録形状データについては同じ形状番号が付与されるので、指示情報によって指示された形状番号より、元の形状データを復元することができる。こうして、すべての指示情報を形状データに置き換えて、描画情報を復元する。
描画処理手段2eは、データ復元手段2dによって復元された描画情報を処理する。描画情報が描画コマンドである場合、描画コマンドを解釈し、画像イメージを生成し、表示装置2fにその画像イメージを表示させる。
なお、上記の説明のクライアント2の各処理手段は、クライアントコンピュータがデータ受信プログラムを実行することにより、その処理機能を実現する。
以上の説明のデータ転送システムの動作について説明する。
サーバ1では、3次元アプリケーション1eがクライアント2に転送する描画情報を作成したタイミングで、差分抽出処理部1bにより描画情報がフックされる。差分抽出処理部1bでは、検索登録手段1cが、作成された描画情報に設定される形状データが形状キャッシュ情報1fに登録されているかどうかを検索し、登録されていない場合は、その形状データに形状番号を付与して形状キャッシュ情報1fに登録する。形状データ以外のデータに、座標の精度に関する情報が含まれている場合は、これも含めて登録を行う。データ転送手段1dは、描画情報のうち、形状データについて、検索登録手段1cによって形状キャッシュ情報1fに登録されていることが確認されたものについて、形状データ領域を形状キャッシュ情報1fの登録形状データの指示情報に置き換える。また、置き換えを行わない場合についても、必要に応じて、クライアント側での描画に必要な精度を判定し、判定結果に応じて一部の座標値を近似値とすることで送信データ量を削減する。この場合、その後精度が必要になった場合は、置き換えた指示情報とともに座標値の精度を上げるための座標値差分データを送信する。こうして、形状データ以外のデータ及び形状キャッシュ情報1fに登録されていなかった形状データはそのままで、登録されていた形状データは指示情報に置き換えられた描画差分情報が生成され、クライアント2に送信される。
クライアント2では、描画差分情報を取得すると、差分復元処理部2bは、描画差分情報から描画情報を復元して描画処理手段2eへ送る。すなわち、登録手段2cは、描画差分情報に設定される形状データをサーバ1と同じ形状番号を付与して形状キャッシュ情報2gに登録する。また、座標値の精度を上げるための座標値差分データを取得した場合には、座標値差分データを用いて登録されている形状データの座標値を修正する。データ復元手段2dは、描画差分情報に設定された指示情報に基づき形状キャッシュ情報2gを検索し、検索された登録形状データで指示情報領域を置き換える。こうして、サーバ1の3次元アプリケーション1eが作成した描画情報が復元され、描画処理手段2eで処理され、表示装置2fにその画面イメージが表示される。
このように、描画情報すべてをデータ転送するのではなく、描画差分情報とすることで、データ転送量を削減することができる。特に3次元アプリケーションでは、視点を少しずらして表示を行うような操作がよく行われており、この場合、大多数の形状データは視点の移動前と移動後で変化がない。形状データはサイズが大きいので、変化のない形状データを、形状番号を指示するだけの指示情報に置き換えることにより、データ転送量を大幅に削減することができる。また、形状データの座標値の精度を考慮して送信データを決めることにより、データ量を削減し、初期表示時の待ち時間を短縮することができる。
なお、クライアントに形状データを確実に形状キャッシュ情報に登録させ、形状番号をサーバ側と一致させるため、サーバ側で送信データにキャッシュの登録指示コマンドと、形状番号を付与するようにしてもよい。クライアント側では、指示に従って形状データを登録し、形状番号を付与する。
以下、実施の形態を、OpenGLを用いた3次元アプリケーションシステムに適用した場合を例に、図面を参照して詳細に説明する。
図2は、第1の実施の形態の3次元アプリケーションシステム構成を示した図である。
第1の実施の形態の3次元アプリケーションシステムは、ネットワーク3を介して接続するクライアント1(20a)、クライアント2(20b)、・・・、クライアントn(20c)からの要求に応じてサーバ10の3次元アプリケーションが起動される。なお、nは任意の整数である。
サーバ10は、キャッシュ11、差分抽出処理部12、3次元アプリケーション(以下、3次元APとする)13、キャッシュ管理部14及び通信処理部15を有する。
キャッシュ11は、形状キャッシュ情報1fを記憶する記憶手段である。キャッシュテーブル100は、クライアントごとに設置されるキャッシュテーブル(形状キャッシュ情報の記憶領域)の集合体である。図2では、キャッシュテーブル(1)はクライアント1、キャッシュテーブル(2)はクライアント2、キャッシュテーブル(n)はクライアントnに対応する。差分抽出処理部12は、3次元APの作成した描画情報に基づき、クライアントごとのキャッシュテーブルを登録する検索登録手段と描画差分情報を作成してデータ転送するデータ転送手段を備える。3次元AP13は、クライアント側からの起動要求で3次元APを実行し、描画情報として、3次元画像の形状を描画するための描画コマンド群を作成する。キャッシュ管理部14は、キャッシュ11を管理し、各キャッシュテーブルの登録形状データの個数が増え、キャッシュテーブル100のデータサイズが所定の大きさを超えた場合に登録形状データの削除を行う。キャッシュテーブル100の管理の詳細については後述する。通信処理部15は、ネットワーク3を介して接続する各クライアントとの間の通信制御を行う。
クライアント1(20a)、クライアント2(20b)、・・・、クライアントn(20c)の構成は同様であるので、以下、クライアント1(20a)について説明する。
クライアント1(20a)は、キャッシュ21、通信処理部22、差分復元処理部23、描画処理部24、表示装置25及びキャッシュ管理部26を有する。
キャッシュ21は、形状キャッシュ情報2gを記憶する記憶手段である。キャッシュ21には、サーバ10のキャッシュテーブル100のうち、自装置に対応するキャッシュテーブルのデータが格納される。通信処理部22は、ネットワーク3を介してサーバ10との間の通信制御を行う。差分復元処理部23は、サーバ10から受信した描画差分情報に基づき、形状データの登録を行う登録手段と描画情報を復元するデータ復元手段を備える。描画処理部24は、描画情報の描画コマンドを解釈し、表示装置25に所定の画面を表示する。キャッシュ管理部26は、サーバ10のキャッシュ管理部14と同等のキャッシュ管理処理を行い、キャッシュテーブルの登録形状データの個数が増え、データサイズが所定の大きさを超えた場合に登録形状データの削除を行う。
以上の説明のサーバ10及びクライアント1(20a)、クライアント2(20b)、・・・、クライアントn(20c)は、コンピュータがそれぞれデータ転送サーバプログラム及びデータ受信プログラムを実行することによってその処理機能を実現する。以下、クライアントを特定する必要がない場合は、クライアント20と表記する。
ここで、クライアントコンピュータのハードウェア構成について説明する。図3は、第1の実施の形態のクライアントのハードウェア構成例を示すブロック図である。
クライアント20は、CPU201によって装置全体が制御されている。CPU201には、バス207を介してRAM(Random Access Memory)202、ハードディスクドライブ(HDD:Hard Disk Drive)203、描画処理装置204、入力インタフェース205、通信インタフェース206が接続されている。
RAM202には、CPU201に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM202には、CPU201による処理に必要な各種データが格納される。HDD203には、OSやアプリケーションのプログラムが格納される。描画処理装置204には、モニタ208が接続されており、CPU201からの命令に従って描画コマンドを解釈し、描画コマンドに基づく画像をモニタ208の画面に表示させる。入力インタフェース205には、キーボード209aやマウス209bが接続されており、キーボード209aやマウス209bから送られてくる信号を、バス207を介してCPU201に送信する。通信インタフェース206は、ネットワーク3に接続されており、ネットワーク3を介しサーバ10との間でデータの送受信を行う。
このようなハードウェア構成によって、第1の実施の形態の処理機能を実現することができる。なお、図3には、クライアントのハードウェア構成を示したが、サーバのハードウェア構成も同様である。
このような構成のデータ転送システムの動作について説明する。
クライアント1(20a)、クライアント2(20b)、・・・、クライアントn(20c)からのアプリケーション起動要求が通信処理部22を介してサーバ10に送信される。アプリケーション起動要求は、ネットワーク3を介してサーバ10の通信処理部15で受信される。起動要求により3次元AP13が処理を開始し、描画情報を生成する。
描画情報について説明する。図4は、第1の実施の形態のアプリケーションにより作成される描画情報の一例の構成図である。
3次元APによって作成される描画情報300は、形状データ以外のデータ部310と、処理単位ごとの形状データを含む形状全体部(図では、形状1の形状全体部320、・・・、形状nの形状全体部330)を有する。
形状データ以外のデータ部310は、視点の設定(glMatrix)、光源の設定(glLight)、色の指定(glColor)など、形状を表す形状データ以外のデータが設定される。
形状全体部320、330は、処理単位である形状ごとに、形状を描画するための描画コマンド群である形状データを含む形状に関する情報が設定される。各形状全体部は、形状1の形状全体部320を例にとると、形状1の位置行列の指定(glMatrix)321と、形状1の一部分の形状を描画するための形状コマンド列である部分形状1(322)、・・・、部分形状n(323)を有する。各部分形状は、部分形状1(322)を例にとると、形状定義開始(glBegin)322aで開始され、頂点の指定(glVertex)、法線の指定(glNormal)が繰り返され、形状定義終了(glEnd)322bで終了する。そして、同様に、各部分形状が、形状定義開始(glBegin)から形状定義終了(glEnd)の間で定義される。そして、最終の部分形状n(323)が、形状定義開始(glBegin)323aで開始され、形状定義終了(glEnd)323bで終了する。
差分抽出処理部12は、形状データとして、形状1の最初の部分形状1の形状定義開始(glBegin)322aから、最終の部分形状nの形状定義終了(glEnd)323bまでのコマンド列が繰り返される部分を1つの形状データ(キャッシュ単位)として認識し、キャッシュテーブル100の該当するクライアントのキャッシュテーブルに格納する。
次に、クライアントごとに用意されるキャッシュテーブルの構成について説明する。図5は、第1の実施の形態のキャッシュテーブルの一例の構成図である。なお、キャッシュテーブルは、クライアント20でも同様の構成で作成される。
キャッシュテーブルは、全体キャッシュサイズ401と最上位ポインタ402及び最下位ポインタ403から成る全体情報400と、各形状キャッシュデータ410、420、430、・・・を有する。
全体情報400の全体キャッシュサイズ401には、使用されているキャッシュメモリの全体キャッシュサイズが設定される。最上位ポインタ402には、最新に利用された形状キャッシュデータを指示するポインタ情報が、最下位ポインタ403には、最も古くに利用された形状キャッシュデータを指示するポインタ情報が設定される。これらの値は、形状データがキャッシュテーブルに登録されるごとに更新される。
各形状キャッシュデータ410、420、430、・・・は、形状キャッシュデータ410を例に取ると、登録時に付与される形状番号411と、形状キャッシュデータのデータサイズ412、形状データに関する精度情報413、自身より上位に設定される形状キャッシュデータを指示する上位ポインタ414、自身より下位に設定される形状キャッシュデータを指示する下位ポインタ415およびOpenGLコマンド形式の形状データ416を有する。形状データ416は、図4で説明した形状定義開始(glBegin)から形状定義終了(glEnd)の間で繰り返されるコマンド列である。なお、精度情報413は、必要がなければ削除されてもよい。これにより、最上位ポインタ402から各形状キャッシュデータの下位ポインタにより、登録される形状キャッシュデータを最新の形状キャッシュデータから順に辿ることができる。また、最下位ポインタ403から各形状キャッシュデータの上位ポインタにより、登録される形状キャッシュデータを最も古い形状キャッシュデータから順に辿ることができる。
サーバ10のキャッシュ管理部14及びクライアント20のキャッシュ管理部26は、登録される形状キャッシュデータの全体サイズが予め用意されたキャッシュメモリの範囲を超えないように、形状キャッシュデータの全体キャッシュサイズが最大値を超えると、最近利用されていない形状キャッシュデータから順に登録を削除し、新たな形状キャッシュデータを登録する領域を確保する。
このため、サーバ10の差分抽出処理部12では、形状キャッシュデータの検索・登録処理を行う際に、描画情報を順に調べ、描画情報に設定されている形状データが最上位となるように最上位ポインタ402と最下位ポインタ403及び各形状キャッシュデータの上位ポインタと下位ポインタを操作する。すなわち、新たに形状キャッシュデータを登録する場合は、最上位ポインタ402がこの形状キャッシュデータを指すように変更し、形状キャッシュデータの下位ポインタは、現在最上位の形状キャッシュテーブルを指示するように設定する。同様に、これまで最上位の形状キャッシュデータの上位ポインタは、新たに登録される形状キャッシュデータを指示するように変更する。また、描画情報の形状データが既に登録されていた場合、その形状データが最上位となるように、最上位ポインタ402及び最下位ポインタ403と関連する形状キャッシュデータの上位ポインタ及び下位ポインタを変更する。こうして、最新に利用された最上位の形状キャッシュデータから順に、形状キャッシュデータがポインタでつながるようにする。図の例では、最上位ポインタ402は、最上位として形状キャッシュデータ410を指示し、形状キャッシュデータ410は形状キャッシュデータ420、形状キャッシュデータ420は形状キャッシュデータ430を指示する。また、形状データが登録されるごとに、全体キャッシュサイズ401を更新しておく。なお、クライアント20の差分復元処理部23においても、サーバ10から取得した描画差分情報に基づき、新たに登録する形状データ及び指示情報に設定された既にキャッシュテーブル101に登録済みの形状キャッシュデータのポインタ操作を同様に行い、最新に利用された形状キャッシュデータから順につながるようにしておく。
キャッシュ管理部14は、所定のタイミングで全体キャッシュサイズ401を調べ、全体キャッシュサイズが最大値を超えていた場合、最下位ポインタ403を参照して、最も古い時刻に利用があった形状キャッシュデータから削除を行う。削除は、所定の空き領域が確保されるまで行う。なお、クライアント20のキャッシュ管理部26も同様の処理を行う。
次に、サーバ10の差分抽出処理部12が、図4に示した描画情報を取得してから、クライアント20に送信する描画差分情報を作成するまでの動作について図6と図7を参照して説明する。図6は、第1の実施の形態における形状データを送信する場合の送信データの一例を示した図であり、図7は、形状データを指示情報に置き換えて送信する場合の送信データの一例を示した図である。図6と図7の共通の部については、同じ番号を付す。
送信データ500a、500bは、形状データ以外のデータ510と、処理単位ごとの形状データのデータ、図の例では、形状1(520)、形状2(530)、・・・、の各形状データに関する情報部を有する。
差分抽出処理部12では、まず、描画情報の形状データ以外のデータ部310をそのまま送信用のデータを一時記憶する送信バッファに転送する。こうして、送信バッファの送信データ500a、500bに、視点の設定や光源の設定などの形状データ以外のデータ510が設定される。
次に、処理単位である形状全体部ごとに、まず、形状データ以外のデータである位置行列の指定が送信データ500a、500bの形状ごとの領域の先頭の関連データ521に設定される。こうして、形状1(520)の先頭領域に関連データ521が設定され、形状2(530)の先頭領域に関連データ531が設定される。
続いて、形状データが、該当キャッシュテーブルに登録されているかどうかを検索する。描画情報とキャッシュテーブルの形状データが一致しているかどうかの照合は、一般に知られている照合方法を適宜利用する。たとえば、形状データ全体を逐次比較する方法や、データから所定の照合キーを作成し、キー同士を比較する方法などがある。
検索の結果、キャッシュテーブル内に処理単位の形状データが登録されていない場合、描画情報の形状データ部をそのまま設定する。このとき、形状データの前に、キャッシュの開始を指示する「キャッシュ開始」コマンドを形状番号とともに設定する。たとえば、形状1と形状2が新たにキャッシュ対象となった場合、図6に示したように、形状1(520)に、形状番号を引数とするキャッシュ開始指示522と、形状データ523が設定される。形状データ523は、図4に示した形状1に関する形状定義開始322aから形状定義終了322bまでのコマンド群である。同様に、形状2(530)に、キャッシュ開始指示532と形状データ533が設定される。
一方、検索の結果、キャッシュテーブル内に形状データが登録されていた場合、描画情報の形状データ部を登録された形状情報を指示する情報に置き換える。たとえば、形状1と形状2がキャッシュ登録されている場合、図7に示したように、形状1(520)のキャッシュ開始指示522と形状データ523の領域部分に「キャッシュ利用」コマンドを設定し、キャッシュ利用指示524に置き換える。キャッシュ利用指示524は、利用する形状キャッシュデータの形状番号など、形状キャッシュデータを特定するための指示情報が設定される。同様に、形状2(530)のキャッシュ開始指示532と形状データ533がキャッシュ利用指示534に置き換えられる。
送信データ500aを受信したクライアント20は、キャッシュ開始指示522、532に従って、キャッシュ開始指示以降の形状データを指示された形状番号でキャッシュテーブル101に登録する。以降、送信データ500bを受信したクライアントは、キャッシュ利用指示524、534に従ってキャッシュテーブル101を検索し、指示された形状番号に該当する形状データをキャッシュテーブル101から抽出し、キャッシュ利用指示524、534と置き換える。これにより、サーバ10のアプリケーションが作成した描画情報が復元される。復元された描画情報は、描画処理部24で処理され、表示装置25に表示される。
このように、新たに作成された形状データは、図6に示したように、キャッシュ登録の指示とともに送信するが、一旦キャッシュ登録された形状データは、それを利用する指示情報のみを送信する。たとえば、クライアント2の画面に表示されている3次元形状を回転させるという操作を行った場合、形状データそのものは変化がないので、図6の送信データ500aが1回送信され、その後は、図7の送信データ500bが送信される。
これにより、ASP形態の3次元APにおけるサーバ・クライアント間のデータ転送量を大幅に削減することができる。また、データ転送量を削減できることから、画像データを送る場合に比べてデータ量が多くなる描画コマンド群のデータ転送を高速に処理することが可能となる。この結果、サーバのCPUの負荷を軽減し、ASP運用に適した3次元表示性能を有するアプリケーションシステムを実現することができる。特に、従来のクライアント・サーバ型のシステムとして、最適化されていない3次元APについて、このアプリケーションを変更することなく、ASP運用に耐えうる3次元表示性能を持つアプリケーションとして使用することが可能となる。
次に、第1の実施の形態におけるサーバ及びクライアントで実行されるデータ転送処理手順について、フローチャートを用いて順次説明する。
まず、データ転送処理全体について説明する。図8は、第1の実施の形態のデータ転送処理手順を示したフローチャートである。
サーバ、クライアント双方でコンピュータが起動され、クライアントでユーザが操作を行ったことで処理が開始される。
まず、クライアント側処理について説明する。
[ステップS11] クライアントに対し、ユーザが画像処理の操作を行ったので、その操作内容について、ネットワーク経由でサーバに通知する。
[ステップS12] サーバから描画差分情報が送信されるまで、データ待ちの状態を継続する。サーバから描画差分情報を取得すると、ステップS13へ処理を進める。
次に、クライアントから操作内容を取得した後のサーバ処理について説明する。
[ステップS21] サーバは、3次元APを起動し、操作に対する処理を行い、描画情報を作成する。
[ステップS22] 描画情報を形状データ以外のデータと形状データの2種類に区別する。
[ステップS23] ステップS22のデータ区別に従って、所定の領域が形状データに分離されているかどうかを判定する。形状データでない場合、処理をステップS25へ進める。
[ステップS24] 領域が形状データに分類された場合、形状データのキャッシュへの登録と、送信データの置き換えを行うキャッシュ処理を実行する。キャッシュ処理の詳細は後述する。キャッシュ処理により描画差分情報が送信バッファに設定される。
[ステップS25] ステップS24で作成された描画差分情報をクライアントにデータ転送する。
[ステップS26] キャッシュサイズをチェックし、必要に応じて形状キャッシュデータの登録を抹消するキャッシュ管理を実行する。キャッシュ管理処理の詳細は後述する。
[ステップS27] 全データが終了したがどうかを判定し、終了していない場合は、ステップS22に戻って、描画情報の次の領域の処理を実行する。終了した場合は、ステップS21に戻って、次の処理要求を待つ。
説明を描画差分情報を取得したクライアントの処理に戻す。
[ステップS13] 取得した描画差分情報に基づき、処理単位ごとに、形状キャッシュデータの登録、もしくは利用指示がされた形状データを復元するキャッシュ処理を行う。クライアントのキャッシュ処理の詳細は後述する。キャッシュ処理により、描画情報が復元される。
[ステップS14] 描画情報に基づき、処理単位の3次元画像イメージを表示する描画処理を行う。
[ステップS15] キャッシュサイズをチェックし、必要に応じて形状キャッシュデータの登録を抹消するキャッシュ管理を実行する。キャッシュ管理処理の詳細は後述する。
[ステップS16] 全データが終了したかどうかを判定し、終了していない場合は、ステップS13に戻って次の処理単位の処理を行う。終了した場合は、ステップS11に戻って、次の操作を待つ。
次に、サーバ側のキャッシュ処理について説明する。図9は、第1の実施の形態のサーバのキャッシュ処理手順を示したフローチャートである。
[ステップS101] 描画情報の形状データについて、今回のデータと一致する形状キャッシュデータがキャッシュテーブル内に存在するかどうか、キャッシュテーブルを検索する。
[ステップS102] ステップS101の処理により検索されたどうか、すなわち形状キャッシュデータであるかどうかを判定する。登録されていた場合、処理をステップS103へ進め、登録されていなかった場合は処理をステップS106へ進める。
[ステップS103] 今回のデータの形状データが登録されていた場合、一致した形状キャッシュデータの形状番号を取得する。
[ステップS104] 取得した形状番号を引数に設定し、「キャッシュ利用」コマンドを送信データに設定する。
[ステップS105] 一致した形状キャッシュデータ、すなわち、利用された形状キャッシュデータをキャッシュテーブルの最上位に移動し、関連する情報の書き換えを行う。
[ステップS106] 今回のデータの形状キャッシュデータが登録されていなかった場合、この形状データをキャッシュテーブルに登録する。一意の形状番号をこの形状データに割り当て、形状番号とともに所定のキャッシュテーブル領域に形状データを格納する。また、この形状キャッシュデータがキャッシュテーブルの最上位となるように関連する情報の書き換えを行う。
[ステップS107] 全体キャッシュサイズ401に、今回設定された形状キャッシュデータのサイズを追加し、全体キャッシュサイズ401を更新する。
[ステップS108] 設定した形状番号を引数に設定し、「キャッシュ開始」コマンドを形状データとともに送信データに設定する。
次に、クライアント側のキャッシュ処理について説明する。図10は、第1の実施の形態のクライアントのキャッシュ処理手順を示したフローチャートである。
[ステップS201] 描画差分情報の所定の領域ごとに、この領域に設定されたコマンドを判定する。コマンドが「キャッシュ利用」の場合、処理をステップS202へ進める。コマンドが「キャッシュ開始」の場合、処理をステップS205へ進める。そして、それ以外のコマンド、もしくはコマンドが設定されていない場合、処理をステップS208へ進める。
[ステップS202] 「キャッシュ利用」コマンドが設定されていた場合、コマンドの引数である形状番号を参照して、自装置のキャッシュテーブルを検索し、一致する形状番号の形状キャッシュデータを抽出する。
[ステップS203] 抽出された形状キャッシュデータを描画用バッファに設定する。こうして、描画に用いる描画情報が描画用バッファ上に復元される。
[ステップS204] この形状キャッシュデータがキャッシュテーブルの最上位になるように関連する情報の書き換えを行う。
[ステップS205] 「キャッシュ開始」コマンドが設定されていた場合、コマンドに続く形状データの終端までを描画用バッファに転送する。
[ステップS206] コマンドに続く形状データを指示された形状番号でキャッシュテーブルに登録する。この形状キャッシュデータがキャッシュテーブルの最上位になるように関連する情報の書き換えを行う。
[ステップS207] 全体キャッシュサイズ401に、今回取得した形状データのサイズを加算し、全体キャッシュサイズ401を更新する。
[ステップS208] そのほかのコマンドの場合、データは、形状データ以外に分類されるデータなので、そのまま描画用バッファに設定する。
次に、サーバ及びクライアントのキャッシュ管理処理について説明する。図11は、第1の実施の形態のサーバ及びクライアントのキャッシュ管理手順を示したフローチャートである。
[ステップS301] 全体キャッシュサイズ401と最大値を比較し、全体キャッシュサイズ401が最大値を超えたかどうかを判定する。最大値を超えていない場合は、処理を終了する。
[ステップS302] 全体キャッシュサイズ401が最大値を超えた場合、キャッシュテーブルのポインタ情報に従って、形状キャッシュデータを利用された時刻が古いものから順に削除する。削除は、全体のサイズが所定の「削除時規定値」に収まるまで行われる。これにより、次の形状キャッシュデータを登録する領域を確保する。「削除時規定値」は、システムに応じて任意に設定される。たとえば、削除処理を頻繁に実行したくない場合は、「削除時規定値」を小さく設定する。
[ステップS303] 全体キャッシュサイズ401から削除された形状キャッシュデータ分のサイズを減算し、全体キャッシュサイズ401を更新する。
以上の処理手順が実行されることにより、第1の実施の形態のデータ転送処理が行われる。
次に、第2の実施の形態について説明する。第1の実施の形態では、同じ形状でも形状データの用いる座標値の精度(解像度)が異なる場合には、新規にキャッシュに登録される形状データを全て送信していたが、第2の実施の形態では、座標値の精度判定を行い、必要がない場合には一部の座標値を近似値とすることで送信データ量を削減するとともに、表示サイズが変更され、精度の高いデータを送る必要が生じた場合には、座標値の精度を上げるための差分情報を送るとする。また、法線データをデータ量を削減できる形式に変換する。
なお、第2の実施の形態における3次元アプリケーションシステムが有する処理機能の構成要素は、図2に示した第1の実施の形態の構成要素と同様である。そこで、図2に示した構成要素の符号を用いて、第2の実施の形態における機能を説明する。また、第2の実施の形態における3次元アプリケーションシステムは、図3に示したものと同様のハードウェア構成のコンピュータで実現することができる。
ここで、第2の実施の形態で用いる座標値の精度判定とデータ量削減の原理について説明する。
図12は、形状データの座標値の精度判定に用いる精度情報を説明するための図である。図では、クライアントの表示画面600上に展開されるウィンドウ枠601の中に3次元形状602bが表示されている。
3次元形状が画面に表示される場合、形状はモデルビュー行列で位置や大きさが変換される。その結果得られる3次元形状602aの座標値と視体積603を比較し、座標値が視体積603内に収まっていれば、その3次元形状602aは表示対象となる。ビューポート604は、視体積603内の画像を画面上のピクセルに対応させるための値であり、基本的には、ビューポートの幅(vw)/ビューポートの高さ(vh)の値は、視体積の幅(ow)/視体積の高さ(oh)の値と等しい。したがって、画面上の1ピクセルあたりの座標値は、ow/vwであらわすことができる。なお、基本的にow/ohとvw/vhの値は等しいので、ow/vwの代わりにoh/vhを用いてもよい。このようにして1ピクセルあたりの座標値が算出され、これを用いて3次元形状602aの座標値をピクセル値に変換することができる。
ところで、変換の際、この値より小さい座標値は画面上ではすべて同じピクセル値に変換されることになる。よって、送信しようとする座標値群があった場合、1つめの座標はそのまま送信するとして、2つめ以降の座標値が1つめの座標値のow/vw以下の範囲にあれば、1つめの座標値と同じとしてしまうことができる。すなわち、データを送信しなくとも1つめの座標で近似することができる。
第2の実施の形態では、このような原理に従ってモデルビュー行列、視体積及びビューポートを用いた精度判定を行い、他の座標値で近似できる場合には、その座標値の送信をやめてデータ量を削減する。
さらに、第2の実施の形態では、データ量を削減するため、法線データを、水平(以下、xとする)、垂直(以下、yとする)、奥行き(以下、zとする)方向の3次元直交座標系で表現される3次元のベクトル形式から角度×2(θ1、θ2)の表現に変換する。実施の形態で用いるglNormalにおける法線は常に単位ベクトルであるので、角度×2の表現に変換しても問題ない。変換方法は、たとえば、
θ1= y/xのアークタンジェント、
θ2= z/xのアークタンジェント、 ・・・(1)
とする。
法線は、表示上では面のシェーディング処理に関係する。x、y、zの形式をθ1、θ2に変換したことでデータ量は2/3となるが、シェーディング表示のためのθということを考えると、θの精度を多少落としても、表示上に見た目の変化が感じられないものであると言える(面の光沢が微妙に変化するレベルである)。特に、CADアプリケーションでは、見た目のきれいさ、リアリティを追求するわけではないため、θの精度をかなり落としても実用上の問題は発生しないと考えられる。たとえば、1つの法線値のデータ量は、フローティング形式の場合12バイト(4バイト×3)である。これをθ1、θ2に変換し、CADアプリケーション使用の前提でθの精度を落とすことにすると、θ1つにつき1バイトにまで精度を落とすことができると考えられる。したがって、データ量は2バイトにまで削減できる。
以上の座標値の精度判定と法線値の変換処理は、図2に示したサーバ10の差分抽出処理部12と、クライアント20の差分復元処理部23の処理機能に付加される。
サーバ10の差分抽出処理部12では、3次元AP13が生成した描画情報を「形状データ以外のデータ」と「形状データ」に分類し、さらに、「形状データ以外のデータ」がモデルビュー行列、視体積、ビューポートに関するデータかどうか判断し、そうであればその設定値を記憶しておく。形状データ以外のデータはそのまま送信バッファに設定し、形状データは既に形状キャッシュデータに登録されているかどうかを確認する。同じデータが形状キャッシュデータに存在する場合、その形状キャッシュデータをキャッシュテーブルの中の最上位に位置付ける。さらに、形状キャッシュデータに登録されている送信済みのデータが座標値の精度の低いものである場合、精度判定を行い、送信済みのデータが精度の高いものである場合、または精度が低いものであるが精度の高いデータを送る必要がない場合は、図7に示したような送信データ500bの形式を用いて、形状データを設定する送信データ500aの形状データ部を、形状キャッシュ番号を引数とする「キャッシュ利用指示」に置き換える。送信済みのデータの精度が低く、精度の高いデータを送る必要がある場合、送信データ500bの形式、すなわち、形状キャッシュ番号を引数とする「キャッシュ利用指示」が設定される送信データに、座標値差分データを付加する。
図13は、第2の実施の形態の座標値の精度を上げるための座標値差分データを送信する場合の送信データの一例を示した図である。図6、図7と同じものには同じ番号を付し、説明は省略する。
送信済みのデータに対し、精度の高いデータを送る必要がある場合は送信データ500cとして、たとえば形状1(520)であれば、キャッシュ利用指示524に加え、座標値の精度を上げるための座標値差分データ525が設定される。同様に、形状2(530)であれば、座標値差分データ535が設定される。なお、送信データ500cと、送信データ500bの形式は、形状ごとに混在することができる。
また、同じデータが存在しない場合は、新規の形状キャッシュデータを作成して記憶するとともに、図6に示したような形式の送信データ500aでキャッシュ開始指示と形状データを送信する。このとき、クライアント側のディスプレイに表示される際にどの程度の精度が必要かを事前に計算し、座標値に高い精度が必要ないと判断できる場合は、一部の座標値を近似値とすることにより、送信データ量を削減する。また、法線データは、x、y、zのベクトル形式からθ×2の形式に変換することでデータ量を削減する。
こうして、たとえば、画面に表示されている3次元形状を回転するという操作を行った場合、形状データを含む送信データ500aが一回送信され、その後は形状データ部がキャッシュ利用指示に置き換えられた送信データ500bが送信される。そして、3次元形状の拡大操作が行われた場合、拡大された率に応じて座標値の精度が必要になった場合は、座標値差分データを含む送信データ500cが送信される。
このような送信データ500cを受信したクライアント20の差分復元処理部23では、「キャッシュ利用指示」で指定された形状データ番号に一致する形状キャッシュデータを検索し、座標値差分データを用いて検索した形状キャッシュデータ内の座標値を修正し、このデータを本来の形状データとして使用する。
ここで、座標値の精度判定に応じた近似値置き換えによるデータ量削減について具体例を用いて説明する。図14は、第2の実施の形態の座標値の近似値設定によるデータ量削減の具体例を示した図である。
まず、モデルビュー行列、視体積、ビューポートに基づき、クライアント側の表示画面において必要な精度を算出する。ここでは、視体積の幅(ow)、とビューポートの幅(vw)を用いて、ow/vwにより判定することとする。たとえば、ow=100、vw=500とすると、ow/vw=0.2が得られ、基準の座標値との差が0.2の範囲内であれば、基準の座標値で近似することができると判定される。
これをパターンAに当てはめてみる。パターンA座標値群701には、クライアントに送信されるある形状データに関する座標値1、座標値2及び座標値3の3つの座標値が設定されている。座標値1を基準とすると、座標値2のy座標値702は、基準の座標値1のy座標値との差が0.2以内であるので、座標値1で近似することができる。そこで、座標値2のy座標値702を削除して送信データを設定する。
送信データ703のポリゴンデータとしてパターンA座標値群701が設定される。座標値1はglVertex704、座標値2はglVertex705、座標値3はglVertex706に設定される。それぞれの座標値は、浮動小数点表現のフローティングフォーマット(4バイト)で構成される。このうち、glVertex705は、座標値2のy座標値は座標値1のy座標値で近似させることができるので、y座標値を省略したことを伝える設定情報707を設定し、y座標値を削除する。これにより、y座標値を送った場合の4バイトから設定情報を除いた2バイトの削除部分708ができ、データ量を2バイト減らすことができる。
設定情報707は、データが省略されていることを示す値であり、一般的なIEEE754のフローティングフォーマットの場合、指数部707aが255(バイナリ表現で11111111B)のときは非数または無限大であるため、通常255が設定されることはない。そこで、指数部707aに255が設定されている場合は、データが省略されているという特別な意味を持たせる。この場合、データ長は2バイトとし、指数部707a以降のビットを用いてどの値が省略されているかを示す。たとえば、省略座標設定部707bのXYZで示されたビットが1であれば省略されていないとする。この例では、XYZ=101とすることで、y座標が省略されていることを表す。
他の例を説明する。図15は、第2の実施の形態の座標値の近似値設定によるデータ量削減の他の具体例を示した図である。図14のパターンAよりもさらにデータ量が削減できる場合を示している。必要な精度は、パターンAと同じ値とする。
パターンB座標値群711は、座標値1を基準とすると、点線で囲んだ座標値2及び座標値3の全座標値で基準の座標値1との差が0.2以内であるので、座標値1で近似することができる。そこで、これらの座標値を削除して送信データ713を設定する。送信データ713は、座標値1に関するglVertex714には全ての座標値が設定され、座標値2に関するglVertex715及び座標値3に関するglVertex716には、x、y、z座標値全てを座標値1で近似させることが設定される。このためパターンAの場合と同様に、設定情報717は、指数部717aに座標値を省略すること、全座標値を省略したことを伝える省略座標設定情報(XYZ=000)717bが設定される。これにより、座標値を送信する場合の4バイト×3のデータ量を2バイトとすることができ、1座標値につき10バイトの削減部分718が生じる。
このような送信データを受信したクライアント側では、省略されたデータを既に送信されたデータで置き換える。図16は、第2の実施の形態におけるクライアント側の座標値の近似値設定処理の例を示した図である。(A)は図14に示したパターンAのクライアント側の座標値群を示し、(B)は図15に示したパターンBのクライアント側の座標値群を示す。
パターンAは、上記のように座標値2のy座標値が省略されて送信されてくる。クライアント側では、クライアント側パターンA座標値群721に示したように、省略された座標値2のy座標値に既に設定がされている座標値1のy座標値を設定する。
パターンBは、同様に座標値2と座標値3の全座標値が省略されて送信されてくる。クライアント側では、クライアント側パターンB座標値群731に示したように、省略された座標値に座標値1の値を設定する。
以上の処理により、送信データに設定される座標値のうち、近似値に置き換え可能なものを省略し、送信されるデータ量を削減することが可能となる。
次に、精度の高いデータが必要となり、図13に示した座標値差分データを送る場合の処理について説明する。図17は、第2の実施の形態の座標値差分データ送信処理の具体例を示した図である。
サーバ10の差分抽出処理部12は、上記処理の際に送信対象の座標値について、正確な座標値を送信したかどうかを記録しておく。たとえば、図のように、パターンA及びパターンBに属する座標値各々について、クライアントへ送信したかなどを示す送信情報741が設定される。送信情報741は、座標名と座標値及び送信したか否かを示す送信742を有する。送信742は、送信した座標値には「済」、送信していない座標値には「未」が設定される。ただし、ここでは座標値1は必ず送信されるので、送信情報741には含まれていない。そして、表示サイズが変更され、精度の高いデータが必要となった場合には、送信情報741を参照し、未送信の座標値を送信する。その座標値差分データ743、744は、差分データを指示する差分データ指示情報743a、744aと、座標値のデータ743b、744bとから構成される。差分データ指示情報743a、744aは、どの座標値を送信するかを示す情報で、送信される座標に割り当てられた送信情報741のNo.に対応するビットに1がセットされる。たとえば、差分データ指示情報743aに設定される「01000011」は、No.1からNo.8の座標値に対応し、No.2、No.及びNo.8が送信されることを示し、データ743bに対応する座標値が設定される。同様に、差分データ指示情報744aに設定される「11110000」は、No.9からNo.12が送信されることを示し、データ744bに対応する座標値が設定される。
このように未送信の座標値のみを送ることで、差分情報のデータ量がなるべく小さくなるようにする。
なお、上記の説明では、座標値コマンド(glVertex)が連続している場合を示したが、法線の指定コマンド(glNormal)とglVertexが交互に現れるなど、glVertexコマンド列が連続していない場合がある。その場合でも、glBeginからglEndの間のglVertexは一連の座標値列と考える。
図18は、第2の実施の形態におけるglVertexコマンドが連続していない場合の処理を示した図である。図で、B=glBegin、N=glNormal、V=glVertex、E=glEndである。
サーバ側キャッシュデータ751では、glVertexとglNormalが交互に出現しているが、近似値設定では、出現するglVertex752、753、754を一連の座標値列として処理する。ここでは、glVertex752を基準とし、上記の精度判定と近似値設定を行う。上記と同様、範囲を0.2以内とすると、glVertex753のy座標値753yをglVertex752のy座標値で近似することができる。そこで、この値を省略し、クライントに送信する。なお、送信時には、glNormalの値は、x、y、zの座標系からθ1、θ2に変換される。
クライアント側では、送信データを処理し、クライアント側キャッシュデータ761aを設定する。送信データで省略されているglVertex763aのy座標値763yは、glertex762aのy座標値が設定される。なお、このとき、glNormalは、元のx、y、z形式に変換した後、設定される。
そして、精度が必要になったとき、座標値差分データとして、未送信のglVertex763bのy座標値763yがクライアントに送信され、クライアント側キャッシュデータ761bのglVertex763bのy座標値763yが正確な値に修正される。
このように、第2の実施の形態では、形状データの精度を考慮して送信データを削減するので、送信に要する時間を短縮することができる。特に、データ量の多い形状データの転送において、一部の座標値を省略することができるため、形状データが特に多く送信される初期表示時の待ち時間を短縮することができる。
次に、第2の実施の形態における処理手順を説明する。第2の実施の形態における処理の全体的な流れは、図8に示した第1の実施の形態と同じである。ただし、サーバ側のキャッシュ処理(ステップS24)及びクライアント側のキャッシュ処理(ステップS13)については、第1の実施の形態と異なる処理が行われる。
まず、サーバ側のキャッシュ処理について説明する。図19は、第2の実施の形態のサーバのキャッシュ処理手順を示したフローチャートである。
図19に示した処理手順は、図9に示した第1の実施の形態のサーバのキャッシュ処理手順に、座標値差分データ生成処理(ステップS405)、精度に応じた形状データ生成処理(ステップS409)及び法線値の変換処理(ステップS410)を加えたものである。
すなわち、描画情報の形状データについて、今回のデータと一致する形状データがキャッシュテーブル内に存在するかどうかを検索し(ステップS401)、検索された場合は処理をステップS403へ進め、検索されない場合は処理をステップS407へ進める(ステップS402)。
検索された場合、すなわち形状キャッシュデータが既に登録されていた場合、一致した形状キャッシュデータの形状番号を獲得し(ステップS403)、一致した形状キャッシュデータをキャッシュテーブルの最上位に移動する(ステップS404)。次に、座標値の精度判定を行い、座標値差分データが必要であれば、座標値差分データを生成して送信データに設定する(ステップS405)。処理の詳細は後述する。そして、ステップS403で取得した形状番号を引数に設定し、「キャッシュ利用」コマンドと、ステップS40で送信データ(座標値差分データ)が生成されていれば送信データとを送信用バッファに追加し、処理を終了する(ステップS406)。
一方、検索されなかった場合、すなわち形状キャッシュデータが登録されていない場合、一意の形状番号を割り当て、形状番号とともにキャッシュテーブルの最上位に設定し、登録を行う(ステップS407)とともに、全体キャッシュサイズ401に今回設定された形状データのサイズを追加し、全体キャッシュサイズ401を更新する(ステップS408)。次に、座標値の精度判定を行って、算出された精度に応じて可能であれば一部の座標値を近似値とすることによって形状データ量を削減し、送信データに設定する(ステップS409)。このとき、算出されたow/vwなどの精度情報は、キャッシュ形状データの精度情報413に登録しておく。また、座標値を送信したか否かを含む送信情報741を設定しておく。次に、形状データの法線値データをx、y、z座標の形式からθ1、θ2の形式に変換し、送信データに設定する(ステップS410)。そして、設定した形状番号を引数に設定し、「キャッシュ開始」コマンドと、ステップS409とステップS410で生成された送信データを送信用バッファに追加し、処理を終了する(ステップS411)。
ここで、座標値差分データ生成処理(ステップS405)及び精度に応じた形状データ生成処理(ステップS409)について説明する。
図20は、第2の実施の形態のサーバの座標値差分データ生成処理手順を示したフローチャートである。
座標値差分データ生成処理は、所定の形状に関する形状キャッシュテーブルと今回生成された描画情報が指定されて、処理が開始される。
[ステップS501] 指定された形状キャッシュデータから精度情報を取り出す。取り出された精度情報(ow/vw)をdとする。dは、前回座標値データを送信したときのow/vwの値である。
[ステップS502] 指定された描画情報に基づき、現在のow/vwの値を求める。これをDとする。
[ステップS503] ステップS501で取り出されたdと、ステップS502で算出されたDとを比較し、前回と比較して高い精度が必要になったかどうかを判定する。D≦dの場合、すなわち、送信済みの座標値データの精度が今回要求されている精度より高い場合、座標値差分データは必要がないので処理を終了する。D>dの場合、すなわち、送信済みの座標値データの精度より高い精度が求められている場合、以下の処理を実行する。
[ステップS504] 形状キャッシュデータから1つの部分形状の1点目の座標値(x1,y1,z1)の座標値を獲得する。形状データの送信時には、1点目の座標値は必ず送信され、他の座標値を送信するか否かの判定基準となっているので、1点目の座標値を獲得し、同様の判定を行う。
[ステップS505] 形状キャッシュデータからこの部分形状のn点目の座標値(xn,yn,zn)を獲得する。nは、形状キャッシュデータに格納されている1点目を除く任意の点を表す。
[ステップS506] ステップS505で取得したxnとステップS504で取得した基準のx1の大きさを比較し、差が精度dの範囲内であるかどうかを判定する。範囲内でない場合は、既にxnは送信されたと判断し、xnを送信対象とはせずに、処理をステップS508へ進める。
[ステップS507] xnとx1の大きさの差が範囲内である場合は、xnは未送信であると判断し、xnを送信対象とする。
[ステップS508] ステップS505で取得したynとステップS504で取得した基準のy1の大きさを比較し、差が精度dの範囲内であるかどうかを判定する。範囲内でない場合は、既にynは送信されたと判断し、ynを送信対象とはせずに、処理をステップS510へ進める。
[ステップS509] ynとy1の大きさの差が範囲内である場合は、ynは未送信であると判断し、ynを送信対象とする。
[ステップS510] ステップS505で取得したznとステップS504で取得した基準のz1の大きさを比較し、差が精度dの範囲内であるかどうかを判定する。範囲内でない場合は、既にznは送信されたと判断し、znを送信対象とはせずに、処理をステップS512へ進める。
[ステップS511] znとz1の大きさの差が範囲内である場合は、znは未送信であると判断し、znを送信対象とする。
[ステップS512] ステップS506からステップS511までの処理により、(xn,yn,zn)のうち送信対象となる座標が決定したので、図17に示したように差分データ指示情報と、送信対象となった座標値のデータとを座標値差分データとして設定する。
[ステップS513] nがglBeginからglEndによって表される部分形状における最終の点であるかどうかを判定する。最終の点でない場合は、nを1つ進め、ステップS505からの処理を繰り返す。
[ステップS514] 1つの部分形状が終了した場合、形状キャッシュデータに設定されるすべての部分形状の処理が終了したかどうかを判定する。終了していない場合は、ステップS504に戻って次の部分形状に対して処理を繰り返す。
[ステップS515] これまでの処理で、すべての座標値データが送信されたので、精度情報413を初期化(=0)し、処理を終了する。
なお、上記の処理では、ステップS506からステップS511までの処理によって、座標値データを既に送信したかどうかを判断しているが、図17に示した送信情報741を参照し、未送信の座標値を送信するようにすることもできる。
また、上記の処理では、座標値差分データが必要となった場合、省略されている座標値データをすべて送るようになっている。しかしながら、要求される精度によっては、すべての座標値データを送る必要がない場合もある。そこで、一度に送信されるデータ量を少なくするため、今回算出された精度Dを用いて送信の要否を判定する。すなわち、ステップS506の判定条件を、D<|xn−x1|<dとし、ステップS50及びステップS510の判定条件も同様に変更する。また、この場合には、ステップS515において精度情報413を初期化せず、精度情報413にはDを設定する。このようにして、送信済みの座標値データは、近似された精度の低いものであっても、精度の高い元の座標値データを送る必要がない場合は、送信データから削除し、データ量を削減する。
次に、形状データ生成処理(ステップS40)について説明する。
図21は、第2の実施の形態の形状データ生成処理手順を示したフローチャートである。描画情報に設定される所定の形状データを新たに形状キャッシュデータに登録した場合に処理が開始される。
[ステップS601] 形状キャッシュデータに設定される現在のow/vwを算出し、その値(d)とする。
[ステップS602] ステップS601で算出されたdを形状キャッシュデータの精度情報413に設定する。この値は、図20に示した座標値差分データ生成処理において使用する。
[ステップS603] 形状キャッシュデータの1つの部分形状における1点目の座標値(x1,y1,z1)を獲得し、送信データに設定する。1点目の座標値は必ず送信され、他の座標値を送信するか否かの判定基準となる。
[ステップS604] 形状キャッシュデータからこの部分形状のn点目の座標値(xn,yn,zn)を獲得する。nは、形状キャッシュデータに格納されている1点目を除く任意の点を表す。
[ステップS605] ステップS604で取得したxnとステップS603で取得した基準のx1の大きさを比較し、差が精度dの範囲内であるかどうかを判定する。範囲内でない場合は、xnを送信対象とし、処理をステップS607へ進める。
[ステップS606] xnとx1の大きさの差が範囲内である場合は、xnはx1で近似できると判断し、xnを省略対象とする。
[ステップS607] ステップS604で取得したynとステップS605で取得した基準のy1の大きさを比較し、差が精度dの範囲内であるかどうかを判定する。範囲内でない場合は、ynを送信対象とし、処理をステップS609へ進める。
[ステップS608] ynとy1の大きさの差が範囲内である場合は、ynはy1で近似できると判断し、ynを省略対象とする。
[ステップS609] ステップS604で取得したznとステップS605で取得した基準のz1の大きさを比較し、差が精度dの範囲内であるかどうかを判定する。範囲内でない場合は、znを送信対象とし、処理をステップS611へ進める。
[ステップS610] znとz1の大きさの差が範囲内である場合は、znはz1で近似できると判断し、znを省略対象とする。
[ステップS611] ステップS605からステップS610までの処理により、(xn,yn,zn)のうち省略対象となる座標が決定したので、図14及び図15に示したように省略対象を削除した座標値データを送信データとして設定する。
[ステップS612] nがglBeginからglEndによって表される部分形状における最終の点であるかどうかを判定する。最終の点でない場合は、nを1つ進め、ステップS604からの処理を繰り返す。
[ステップS613] 1つの部分形状が終了した場合、形状キャッシュデータに設定されるすべての部分形状の処理が終了したかどうかを判定する。終了していない場合は、ステップS603に戻って次の部分形状に対して処理を繰り返す。
以上の処理手順が実行されることにより、サーバは、表示のために必要な精度に応じて一部の座標値を近似値とすることによって送信を省略し、送信データ量の削減を実現する。後に、より高い精度が必要となった場合は、送信を省略した座標値データを差分情報として送信する。
次に、クライアント側のキャッシュ処理について説明する。図22は、第2の実施の形態のクライアントのキャッシュ処理手順を示したフローチャートである。
図22に示した処理手順は、図10に示した第1の実施の形態のクライアントのキャッシュ処理手順に、形状キャッシュデータ設定処理(ステップS703)と、座標値差分データ処理(ステップS707)とを加えたものである。
すなわち、描画差分情報の所定の領域ごとに、この領域に設定されたコマンドを判定し、コマンドが「キャッシュ利用」の場合は処理をステップS706へ進め、コマンドが「キャッシュ開始」の場合は処理をステップS702へ進め、それ以外のコマンド、もしくはコマンドが設定されていない場合は処理をステップS711へ進める(ステップS701)。
「キャッシュ開始」コマンドが設定されていた場合、コマンドに続く形状データの終端までを描画用バッファに転送し(ステップS702)、一部の座標値データが省略され、法線値が変換されている受信データから形状データを復元し、形状キャッシュデータに設定する(ステップS703)。処理の詳細は後述する。続いて、ステップS703によって設定された形状キャッシュデータがキャッシュテーブルの最上位になるように関連する情報の書き換えを行い(ステップS704)、全体キャッシュサイズ401に、今回取得した形状データのサイズを加算し、全体キャッシュサイズ401を更新して処理を終了する(ステップS705)。
「キャッシュ利用」コマンドが設定されていた場合、コマンドの引数である形状番号を参照して、自装置のキャッシュテーブルを検索し、一致する形状番号の形状キャッシュデータを獲得し(ステップS706)、受信した座標値差分データを用いて形状キャッシュデータを更新する座標値差分データ処理を行う(ステップS707)。処理の詳細は後述する。そして、更新された形状キャッシュデータを描画用バッファに設定し(ステップS708)、この形状キャッシュデータがキャッシュテーブルの最上位になるように関連する情報の書き換えを行う(ステップS709)。
そのほかのコマンドの場合、データは、形状データ以外に分類されるデータなので、そのまま描画用バッファに設定する(ステップS711)。
次に、形状キャッシュデータ設定処理(ステップS703)と、座標値差分データ処理(ステップS707)について説明する。
図23は、第2の実施の形態の形状キャッシュデータ設定処理手順を示したフローチャートである。「キャッシュ開始」コマンドにより、処理が開始される。
[ステップS801] 描画用バッファに設定される形状データの1つの部分形状について、1点目の座標値(x1,y1,z1)を獲得する。1点目の座標値データは常に送信され、省略された座標値の近似値として用いられる。
[ステップS802] ステップS801で獲得した1点目の座標値(x1,y1,z1)を形状キャッシュデータに設定する。
[ステップS803] 描画用バッファからこの部分形状のn点目の座標値(xn,yn,zn)を獲得する。nは、描画用バッファに格納されている1点目を除く任意の点を表す。
[ステップS804] n点目の座標値(xn,yn,zn)を形式を確認し、通常の座標値のデータ形式であるか、図14及び図15に示した座標値の一部を省略した省略形式であるかどうかを判定する。省略形式である場合は、ステップS802で取得した1点目の座標値(x1,y1,z1)のうち対応する座標値で省略されている座標値を近似する。すなわち、xnが省略されていればxnをx1で近似する。同様に、ynはy1、znはz1で近似する。
[ステップS805] nがglBeginからglEndによって表される部分形状における最終の点であるかどうかを判定する。最終の点でない場合は、nを1つ進め、ステップS803からの処理を繰り返す。
[ステップS806] 1つの部分形状が終了した場合、形状キャッシュデータに設定されるすべての部分形状の処理が完了したかどうかを判定する。完了していない場合は、ステップS801に戻って次の部分形状に対して処理を繰り返す。
[ステップS807] θ1、θ2の形式に変換されている法線値を(x,y,z)を用いた表現形式に逆変換して形状キャッシュデータに設定し、処理を終了する。
図24は、第2の実施の形態の座標値差分データ処理手順を示したフローチャートである。「キャッシュ利用」コマンドにより処理が開始される。
[ステップS901] サーバが送信した送信データが、座標値差分データを含まない図7に示した形式の送信データ500bであるか、座標値差分データを含む図13に示した形式の送信データ500cであるかを判定する。座標値差分データを含まない場合は、処理は必要ないので処理を終了する。
[ステップS902] 座標値差分データが含まれる場合は、形状キャッシュデータから座標値差分データによって指定されたn点目の座標値(xn,yn,zn)を獲得する。
[ステップS903] 座標値差分データから、(xn,yn,zn)を更新するための情報を取得する。
[ステップS904] ステップS903で獲得した更新するための情報を用いて、n点目の座標値(xn,yn,zn)の該当する座標値を送られてきた座標値に更新し、形状キャッシュデータに設定する。
[ステップS905] nが部分形状における最終の点であるかどうかを判定する。最終の点でない場合は、nを1つ進め、ステップS902からの処理を繰り返す。
[ステップS906] 1つの部分形状が終了した場合、形状キャッシュデータに設定されるすべての部分形状の処理が完了したかどうかを判定する。完了していない場合は、ステップS902に戻って次の部分形状に対して処理を繰り返す。
以上の処理手順が実行されることにより、第2の実施の形態では、第1の実施の形態よりさらに、一度に送信される送信データ量を削減することができる。
なお、上記の処理機能は、サーバコンピュータとクライアントコンピュータとによって実現することができる。その場合、サーバが有すべきデータ転送機能の処理内容を記述したデータ転送サーバプログラム(サーバプログラム)、及びクライアントが有すべきデータ受信機能の処理内容を記述したデータ受信プログラム(クライアントプログラム)が提供される。サーバプログラムをサーバコンピュータで実行することにより、3次元アプリケーションにより作成された描画コマンドの差分データの転送と、キャッシュデータの登録・管理の処理機能がサーバコンピュータ上で実現される。また、クライアントプログラムをクライアントコンピュータで実行することにより、描画コマンドデータの復元と、キャッシュデータの登録・管理の処理機能がクライアントコンピュータ上で実現される。
処理内容を記述したサーバプログラムやクライアントプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
サーバプログラムやクライアントプログラムを流通させる場合には、たとえば、各プログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、クライアントプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータからクライアントコンピュータにクライアントプログラムを転送することもできる。
サーバプログラムを実行するサーバコンピュータは、たとえば、可搬型記録媒体に記録されたサーバプログラムを、自己の記憶装置に格納する。そして、サーバコンピュータは、自己の記憶装置からサーバプログラムを読み取り、サーバプログラムに従った処理を実行する。なお、サーバコンピュータは、可搬型記録媒体から直接サーバプログラムを読み取り、そのサーバプログラムに従った処理を実行することもできる。
クライアントプログラムを実行するクライアントコンピュータは、たとえば、可搬型記録媒体に記録されたクライアントプログラムもしくはサーバコンピュータから転送されたクライアントプログラムを、自己の記憶装置に格納する。そして、クライアントコンピュータは、自己の記憶装置からクライアントプログラムを読み取り、クライアントプログラムに従った処理を実行する。なお、クライアントコンピュータは、可搬型記録媒体から直接クライアントプログラムを読み取り、そのクライアントプログラムに従った処理を実行することもできる。また、クライアントコンピュータは、サーバコンピュータからクライアントプログラムが転送されるごとに、逐次、受け取ったクライアントプログラムに従った処理を実行することもできる。
(付記1) ネットワークを介して接続するサーバとクライアントとの間で、前記サーバのアプリケーションで作成された描画情報を前記クライアントに転送するデータ転送システムにおいて、
所定の形状の描画に用いる形状データが登録される形状キャッシュ情報を記憶するサーバ側キャッシュと、前記アプリケーションによって描画情報が作成されると、作成された前記描画情報に設定された前記形状データが前記サーバ側キャッシュの前記形状キャッシュ情報に登録されているかどうかを検索し、登録されていない場合は前記形状データを前記サーバ側キャッシュの前記形状キャッシュ情報に登録する検索登録手段と、前記形状データが登録されていた場合に前記描画情報の前記形状データの領域を前記形状キャッシュ情報に登録された登録形状データを指示する指示情報に置き換えて描画差分情報を生成し、前記クライアントに送信するデータ転送手段と、を具備するアプリケーションサーバと、
前記形状データが登録される前記形状キャッシュ情報を記憶するクライアント側キャッシュと、前記アプリケーションサーバから前記描画差分情報を取得すると、前記描画差分情報に設定された新たな前記形状データを前記クライアント側キャッシュの前記形状キャッシュ情報に登録する登録手段と、前記描画差分情報に設定された前記指示情報に基づいて前記クライアント側キャッシュの前記形状キャッシュ情報を検索し、前記描画差分情報の前記指示情報の領域を検索された登録形状データに置き換えて前記描画情報を復元するデータ復元手段と、を具備するクライアントと、
を有することを特徴とするデータ転送システム。
(付記2) 前記形状データは、3次元画像を処理する3次元アプリケーションによって作成される前記3次元画像の形状を描画するための描画コマンド群であることを特徴とする付記1記載のデータ転送システム。
(付記3) 前記アプリケーションサーバの前記検索登録手段は、前記描画情報中に表れる所定の一の形状を定義する前記描画コマンドの開始コマンドと終了コマンドを検出し、前記3次元画像の形状を描画するための描画コマンド群として抽出することを特徴とする付記2記載のデータ転送システム。
(付記4) 前記アプリケーションサーバの前記検索登録手段及び前記クライアントの前記登録手段は、前記形状データを登録する際に、前記形状データごとに一意の形状番号を付与し、
前記アプリケーションサーバの前記データ転送手段は、前記サーバ側キャッシュの前記形状キャッシュ情報に登録される前記登録形状データに付与された前記形状番号を前記指示情報に設定する、
ことを特徴とする付記1記載のデータ転送システム。
(付記5) 前記データ転送手段は、新たに前記形状キャッシュ情報に登録した前記形状データについて、前記描画差分情報に前記形状データの登録指示と前記形状番号を指示する情報を付加して前記クライアントに送信し、
前記クライアントの前記登録手段は、前記キャッシュ開始指示に従って、前記形状データに前記形状番号を付与し登録する、
ことを特徴とする付記4記載のデータ転送システム。
(付記6) 前記アプリケーションサーバの前記検索登録手段は、前記描画情報に設定された前記形状データを検出するごとに、対応する前記登録形状データを前記サーバ側キャッシュの前記形状キャッシュ情報の最上位に設定し、
前記クライアントの前記登録手段は、前記描画差分情報に設定された前記形状データまたは前記指示情報に対応する前記形状データを検出するごとに、対応する前記登録形状データを前記クライアント側キャッシュの前記形状キャッシュ情報の最上位に設定し、
最新に設定された前記形状データを最上位として設定順に前記形状キャッシュ情報に並べることを特徴とする付記1記載のデータ転送システム。
(付記7) 前記アプリケーションサーバ及び前記クライアントは、さらに、
前記形状キャッシュ情報に登録される前記形状データの合計のデータサイズが予め決められた所定の全体キャッシュサイズを超えたかどうかを判定し、超えている場合には、所定の削除時規定値に収まるまで前記形状キャッシュ情報に登録された前記登録形状データを削除するキャッシュ管理手段、
を具備することを特徴とする付記1記載のデータ転送システム。
(付記8) 前記アプリケーションサーバの前記検索登録手段は、前記描画情報に設定された前記形状データを検出するごとに、対応する前記登録形状データを前記サーバ側キャッシュの前記形状キャッシュ情報の最上位に設定し、前記クライアントの前記登録手段は、前記描画差分情報に設定された前記形状データまたは前記指示情報に対応する前記形状データを検出するごとに、対応する前記登録形状データを前記クライアント側キャッシュの前記形状キャッシュ情報の最上位に設定して前記形状キャッシュ情報を最新に設定された前記形状データを最上位として設定順に並べ、
前記キャッシュ管理手段は、前記形状キャッシュ情報の最下位に設定される前記形状データから順に削除する、
ことを特徴とする付記7記載のデータ転送システム。
(付記9) 前記アプリケーションサーバの前記データ転送手段は、前記検索登録手段によって前記形状データが前記サーバ側キャッシュの前記形状キャッシュ情報に登録された場合に、前記形状データに基づき前記クライアントの表示に必要な座標値の精度を算出し、算出された前記座標値の精度に応じて前記形状データの座標値データの一部を省略した前記形状データと、省略した前記座標値データを基準点の座標値で近似する近似指示情報とを前記クライアントに送信し、
前記クライアントの前記登録手段は、前記近似指示情報に基づき、取得した前記形状データにおいて省略された前記座標値データを前記基準点の座標値で近似して生成し、近似された前記座標値データを含む前記形状データを前記クライアント側キャッシュの前記形状キャッシュ情報に登録する、
ことを特徴とする付記1記載のデータ転送システム。
(付記10) 前記アプリケーションサーバの前記データ転送手段は、前記座標値データの一部を省略して前記クライアントに送信した前記形状データの表示条件が変化し、より高い前記座標値の精度が必要となった場合は、前記クライアントに未送信の前記座標値データのうち必要な前記座標値データと、前記座標値データの指示情報とを含む座標値差分データを送信し、
前記クライアントの前記登録手段は、前記座標値差分データに基づき、前記クライアント側キャッシュの前記形状キャッシュ情報に格納される前記座標値データを更新する、
ことを特徴とする付記9記載のデータ転送システム。
(付記11) 前記アプリケーションサーバの前記データ転送手段及び前記クライアントの前記登録手段は、前記形状データの部分形状ごとに設定される前記座標値データの1点目を前記基準点とする、
ことを特徴とする付記9記載のデータ転送システム。
(付記12) 前記アプリケーションサーバの前記データ転送手段は、前記座標値の精度を、前記形状データの形状に関する視体積の幅または高さと、ビューポートの幅または高さとの比率に応じて前記座標値の精度を求める、
ことを特徴とする付記9記載のデータ転送システム。
(付記13) 前記アプリケーションサーバの前記データ転送手段は、3次元のベクトルで表現される法線値を前記ベクトルのアークタンジェントによって表される形式に変換し、
前記クライアントの前記登録手段は、形式が変換された前記法線値を前記3次元のベクトル形式に逆変換し、前記クライアント側キャッシュの前記形状キャッシュ情報に登録する、
ことを特徴とする付記1記載のデータ転送システム。
(付記14) ネットワークを介して接続するサーバとクライアントとの間で、前記サーバのアプリケーションで作成された描画情報を前記クライアントに転送するデータ転送方法において、
前記サーバの検索登録手段が、前記アプリケーションによって前記描画情報が作成されると、作成された前記描画情報に設定された所定の形状の描画に用いる形状データが形状キャッシュ情報に存在するかどうかを検索し、登録されていない場合は前記形状キャッシュ情報に前記形状データを登録してサーバ側キャッシュに格納し、
前記サーバのデータ転送手段が、前記形状データが前記形状キャッシュ情報に登録されている場合は、前記描画情報の前記形状データの領域を前記形状キャッシュ情報に登録された登録形状データを指示する指示情報に置き換えて描画差分情報を生成して前記ネットワークを介してデータ転送し、
前記クライアントの登録手段が、前記描画差分情報を取得すると、前記描画差分情報に設定された新たな前記形状データを、クライアント側キャッシュに格納される前記形状キャッシュ情報に登録し、
前記クライアントのデータ復元手段が、前記描画差分情報に設定された前記指示情報に基づいて前記クライアント側キャッシュの前記形状キャッシュ情報を検索し、前記描画差分情報の前記指示情報の領域を検索された前記登録形状データに置き換えて前記描画情報を復元する、
ことを特徴とするデータ転送方法。
(付記15) アプリケーションで作成された描画情報を、ネットワークを介して接続するクライアントに転送するデータ転送サーバプログラムにおいて、
コンピュータに、
検索登録手段が、前記アプリケーションによって描画情報が作成されると、作成された前記描画情報に設定された所定の形状の描画に用いる形状データが形状キャッシュ情報に存在するか否かを検索し、前記形状データが登録されていない場合は、前記形状データを新たに前記形状キャッシュ情報に登録してサーバ側キャッシュに格納するステップと、
データ転送手段が、前記形状データが登録されている場合は、前記描画情報の前記形状データの領域を前記形状キャッシュ情報に登録された登録形状データを指示する指示情報に置き換えて描画差分情報を生成し、前記描画差分情報を、クライアント側キャッシュに前記形状キャッシュ情報を格納し、前記描画差分情報に設定された前記指示情報から前記クライアント側キャッシュを検索し、前記指示情報の領域を検索された前記登録形状データに置き換えて前記描画情報を復元する前記クライアントに送信するステップと、
を実行させることを特徴とするデータ転送サーバプログラム。
(付記16) アプリケーションで作成された描画情報を、ネットワークを介して接続するクライアントに転送するデータ転送サーバプログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータに、
検索登録手段が、前記アプリケーションによって描画情報が作成されると、作成された前記描画情報に設定された所定の形状の描画に用いる形状データが形状キャッシュ情報に存在するか否かを検索し、前記形状データが登録されていない場合は、前記形状データを新たに前記形状キャッシュ情報に登録してサーバ側キャッシュに格納するステップと、
データ転送手段が、前記形状データが登録されている場合は、前記描画情報の前記形状データの領域を前記形状キャッシュ情報に登録された登録形状データを指示する指示情報に置き換えて描画差分情報を生成し、前記描画差分情報を、クライアント側キャッシュに前記形状キャッシュ情報を格納し、前記描画差分情報に設定された前記指示情報から前記クライアント側キャッシュを検索し、前記指示情報の領域を検索された前記登録形状データに置き換えて前記描画情報を復元する前記クライアントに送信するステップと、
を実行させるデータ転送サーバプログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記17) ネットワークを介して接続するサーバのアプリケーションで作成された描画情報を受信するデータ受信プログラムにおいて、
コンピュータに、
登録手段が、形状の描画に用いる形状データが登録される形状キャッシュ情報をクライアント側キャッシュに記憶しておき、前記サーバによって作成された描画情報に設定された前記形状データのうち、前記形状キャッシュ情報に登録されている前記形状データの領域を、前記形状キャッシュ情報の登録形状データの領域を指示する指示情報に置き換えて生成され、データ転送された描画差分情報を取得し、前記描画差分情報に設定された新たな前記形状データを前記クライアント側キャッシュの前記形状キャッシュ情報に登録するステップと、
データ復元手段が、前記描画差分情報に設定された前記指示情報に基づいて前記クライアント側キャッシュの前記形状キャッシュ情報を検索し、前記描画差分情報の前記指示情報の領域を検索された前記登録形状データに置き換えて前記描画情報を復元するステップと、
を実行させることを特徴とするデータ受信プログラム。
(付記18) ネットワークを介して接続するサーバのアプリケーションで作成された描画情報を受信するデータ受信プログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータに、
登録手段が、形状の描画に用いる形状データが登録される形状キャッシュ情報をクライアント側キャッシュに記憶しておき、前記サーバによって作成された描画情報に設定された前記形状データのうち、前記形状キャッシュ情報に登録されている前記形状データの領域を、前記形状キャッシュ情報の登録形状データの領域を指示する指示情報に置き換えて生成され、データ転送された描画差分情報を取得し、前記描画差分情報に設定された新たな前記形状データを前記クライアント側キャッシュの前記形状キャッシュ情報に登録するステップと、
データ復元手段が、前記描画差分情報に設定された前記指示情報に基づいて前記クライアント側キャッシュの前記形状キャッシュ情報を検索し、前記描画差分情報の前記指示情報の領域を検索された前記登録形状データに置き換えて前記描画情報を復元するステップと、
を実行させるデータ受信プログラムを記録したコンピュータ読み取り可能な記録媒体。
実施の形態に適用される発明の概念図である。 第1の実施の形態の3次元アプリケーションシステム構成を示した図である。 第1の実施の形態のクライアントのハードウェア構成例を示すブロック図である。 第1の実施の形態のアプリケーションにより作成される描画情報の一例の構成図である。 第1の実施の形態のキャッシュテーブルの一例の構成図である。 第1の実施の形態における形状データを送信する場合の送信データの一例を示した図である。 形状データを指示情報に置き換えて送信する場合の送信データの一例を示した図である。 第1の実施の形態のデータ転送処理手順を示したフローチャートである。 第1の実施の形態のサーバのキャッシュ処理手順を示したフローチャートである。 第1の実施の形態のクライアントのキャッシュ処理手順を示したフローチャートである。 第1の実施の形態のサーバ及びクライアントのキャッシュ管理手順を示したフローチャートである。 形状データの座標値の精度判定に用いる精度情報を説明するための図である。 第2の実施の形態の座標値の精度を上げるための座標値差分データを送信する場合の送信データの一例を示した図である。 第2の実施の形態の座標値の近似値設定によるデータ量削減の具体例を示した図である。 第2の実施の形態の座標値の近似値設定によるデータ量削減の他の具体例を示した図である。 第2の実施の形態におけるクライアント側の座標値の近似値設定処理の例を示した図である。 第2の実施の形態の座標値差分データ送信処理の具体例を示した図である。 第2の実施の形態におけるglVertexコマンドが連続していない場合の処理を示した図である。 第2の実施の形態のサーバのキャッシュ処理手順を示したフローチャートである。 第2の実施の形態のサーバの座標値差分データ生成処理手順を示したフローチャートである。 第2の実施の形態の形状データ生成処理手順を示したフローチャートである。 第2の実施の形態のクライアントのキャッシュ処理手順を示したフローチャートである。 第2の実施の形態の形状キャッシュデータ設定処理手順を示したフローチャートである。 第2の実施の形態の座標値差分データ処理手順を示したフローチャートである。
符号の説明
1 サーバ(アプリケーションサーバ)
1a (サーバ側)キャッシュ
1b 差分抽出処理部
1c 検索登録手段
1d データ転送手段
1e 3次元アプリケーション
1f (サーバ側)形状キャッシュ情報
2 クライアント
2a (クライアント側)キャッシュ
2b 差分復元処理部
2c 登録手段
2d データ復元手段
2e 描画処理手段
2f 表示装置
2g (クライアント側)形状キャッシュ情報
3 ネットワーク

Claims (6)

  1. ネットワークを介して接続するサーバとクライアントとの間で、前記サーバのアプリケーションで作成された描画情報を前記クライアントに転送するデータ転送システムにおいて、
    所定の形状の描画に用いる形状データが登録される形状キャッシュ情報を記憶するサーバ側キャッシュと、前記アプリケーションによって描画情報が作成されると、作成された前記描画情報に設定された前記形状データが前記サーバ側キャッシュの前記形状キャッシュ情報に登録されているかどうかを検索し、登録されていない場合は前記形状データを前記サーバ側キャッシュの前記形状キャッシュ情報に登録する検索登録手段と、前記形状データが登録されていた場合に前記描画情報の前記形状データの領域を前記形状キャッシュ情報に登録された登録形状データを指示する指示情報に置き換えて描画差分情報を生成し、前記クライアントに送信するデータ転送手段と、を具備するアプリケーションサーバと、
    前記形状データが登録される前記形状キャッシュ情報を記憶するクライアント側キャッシュと、前記アプリケーションサーバから前記描画差分情報を取得すると、前記描画差分情報に設定された新たな前記形状データを前記クライアント側キャッシュの前記形状キャッシュ情報に登録する登録手段と、前記描画差分情報に設定された前記指示情報に基づいて前記クライアント側キャッシュの前記形状キャッシュ情報を検索し、前記描画差分情報の前記指示情報の領域を検索された登録形状データに置き換えて前記描画情報を復元するデータ復元手段と、を具備するクライアントと、
    を有することを特徴とするデータ転送システム。
  2. 前記アプリケーションサーバの前記検索登録手段及び前記クライアントの前記登録手段は、前記形状データを登録する際に、前記形状データごとに一意の形状番号を付与し、
    前記アプリケーションサーバの前記データ転送手段は、前記サーバ側キャッシュの前記形状キャッシュ情報に登録される前記登録形状データに付与された前記形状番号を前記指示情報に設定する、
    ことを特徴とする請求項1記載のデータ転送システム。
  3. 前記アプリケーションサーバの前記データ転送手段は、前記検索登録手段によって前記形状データが前記サーバ側キャッシュの前記形状キャッシュ情報に登録された場合に、前記形状データに基づき前記クライアントの表示に必要な座標値の精度を算出し、算出された前記座標値の精度に応じて前記形状データの座標値データの一部を省略した前記形状データと、省略した前記座標値データを基準点の座標値で近似する近似指示情報とを前記クライアントに送信し、
    前記クライアントの前記登録手段は、前記近似指示情報に基づき、取得した前記形状データにおいて省略された前記座標値データを前記基準点の座標値で近似して生成し、近似された前記座標値データを含む前記形状データを前記クライアント側キャッシュの前記形状キャッシュ情報に登録する、
    ことを特徴とする請求項1記載のデータ転送システム。
  4. アプリケーションで作成された描画情報を、ネットワークを介して接続するクライアントに送信する処理をコンピュータに実行させる送信プログラムであって、
    前記コンピュータに、
    前記アプリケーションで作成された第1の描画情報に含まれる形状データが、形状データと識別情報とを対応づけて記憶する第1の記憶手段に記憶されていない第1の形状データである場合に、前記第1の形状データを所定の識別情報付与アルゴリズムにより付与された識別情報と対応づけて前記第1の記憶手段に記憶し、
    前記第1の形状データを含む前記第1の描画情報を前記クライアントに送信し、
    前記アプリケーションで作成された第2の描画情報に含まれる形状データが、前記第1の記憶手段に記憶されている前記第1の形状データである場合に、該第2の描画情報に含まれる前記第1の形状データを、対応する前記識別情報に置き換えて第3の描画情報を生成し、
    前記第3の描画情報を、前記第1の形状データを前記所定の識別情報付与アルゴリズムと同様のアルゴリズムにより付与された識別情報と対応づけて記憶済みの前記クライアントに送信する、
    処理を実行させることを特徴とする送信プログラム。
  5. ネットワークを介して接続するサーバのアプリケーションで作成された描画情報を受信する処理をコンピュータに実行させる受信プログラムであって、
    前記コンピュータに、
    前記サーバのアプリケーションで作成された形状データを含む第1の描画情報を前記サーバから受信すると、受信した前記第1の描画情報に含まれる前記形状データを、前記サーバと同様の識別情報付与アルゴリズムにより付与された識別情報に対応づけて記憶手段に記憶し、
    前記サーバから前記形状データに対応する前記識別情報を含む第2の描画情報を受信すると、前記第2の描画情報に含まれる前記形状データに対応する前記識別情報を前記記憶手段に記憶された前記形状データに置き換える、
    処理を実行させることを特徴とする受信プログラム。
  6. ネットワークを介して接続されるサーバとクライアントとの間で、前記サーバのアプリケーションで作成された描画情報を前記クライアントに送信するデータ送信方法において、
    前記サーバは、前記アプリケーションで作成された第1の描画情報に含まれる形状データが、形状データと識別情報とを対応づけて記憶する第1の記憶手段に記憶されていない第1の形状データである場合に、前記第1の形状データを識別情報と対応づけて前記第1の記憶手段に記憶して、前記第1の形状データを含む前記第1の描画情報を前記クライアントに送信し、
    前記クライアントは、受信した前記第1の描画情報に含まれる前記第1の形状データを、前記サーバと同様の識別情報付与アルゴリズムにより付与された識別情報に対応づけて第2の記憶手段に記憶し、
    前記サーバは、前記アプリケーションで作成された第2の描画情報に含まれる形状データが、前記第1の記憶手段に記憶されている前記第1の形状データである場合に、該第2の描画情報に含まれる前記第1の形状データを、対応する識別情報に置き換えて得られる第3の描画情報を前記クライアントに送信し、
    前記クライアントは、受信した前記第3の描画情報に含まれる識別情報に対応づけて前記第2の記憶手段に記憶された前記第1の形状データに置き換える、
    ことを特徴とするデータ送信方法。
JP2006019129A 2005-01-28 2006-01-27 データ転送システム、送信プログラム、受信プログラム及びデータ送信方法 Expired - Fee Related JP4745839B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006019129A JP4745839B2 (ja) 2005-01-28 2006-01-27 データ転送システム、送信プログラム、受信プログラム及びデータ送信方法
US11/386,426 US7478098B2 (en) 2005-01-28 2006-03-22 Data transfer system and computer-readable recording medium recording a data transfer server program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005020557 2005-01-28
JP2005020557 2005-01-28
JP2006019129A JP4745839B2 (ja) 2005-01-28 2006-01-27 データ転送システム、送信プログラム、受信プログラム及びデータ送信方法

Publications (2)

Publication Number Publication Date
JP2006236334A JP2006236334A (ja) 2006-09-07
JP4745839B2 true JP4745839B2 (ja) 2011-08-10

Family

ID=36816849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006019129A Expired - Fee Related JP4745839B2 (ja) 2005-01-28 2006-01-27 データ転送システム、送信プログラム、受信プログラム及びデータ送信方法

Country Status (2)

Country Link
US (1) US7478098B2 (ja)
JP (1) JP4745839B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8433747B2 (en) * 2008-02-01 2013-04-30 Microsoft Corporation Graphics remoting architecture
US9639963B2 (en) * 2008-12-08 2017-05-02 Microsoft Technology Licensing, Llc Command remoting techniques
US8307103B2 (en) * 2009-03-09 2012-11-06 Microsoft Corporation Tear-free remote desktop protocol (RDP) display
US8941660B2 (en) * 2009-06-17 2015-01-27 Panasonic Intellectual Property Management Co., Ltd. Image generating apparatus, image generating method, and image generating integrated circuit
WO2011061305A1 (en) * 2009-11-20 2011-05-26 Alcatel Lucent Expediting the distribution of data files between a server and a set of clients
CN102236663B (zh) 2010-04-30 2014-04-09 阿里巴巴集团控股有限公司 一种基于垂直搜索的查询方法、***和装置
US10031636B2 (en) * 2011-09-08 2018-07-24 Microsoft Technology Licensing, Llc Remoting desktop displays using move regions
JP5641018B2 (ja) * 2012-06-28 2014-12-17 カシオ計算機株式会社 データ処理装置およびプログラム
JP7127959B2 (ja) * 2015-12-23 2022-08-30 トムテック イメージング システムズ ゲゼルシャフト ミット ベシュレンクテル ハフツング 医療調査データをレビューするための方法及びシステム
JP7081142B2 (ja) 2017-12-26 2022-06-07 富士通株式会社 情報処理装置、情報処理方法、及びプログラム
JP6981247B2 (ja) 2017-12-27 2021-12-15 富士通株式会社 情報処理装置、情報処理方法、及び情報処理プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002063066A (ja) * 2000-08-21 2002-02-28 Dainippon Printing Co Ltd 画像管理システム、サーバ、ユーザコンピュータ、及び記録媒体
JP2002189618A (ja) * 2000-12-21 2002-07-05 Hitachi Information Systems Ltd 差分キャッシュを用いたwwwサーバとwwwブラウザの処理方法、およびそのプログラム
JP2005513658A (ja) * 2001-12-20 2005-05-12 フランス テレコム サーバとクライアント端末との間でオブジェクトを送信する方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761328A (en) * 1995-05-22 1998-06-02 Solberg Creations, Inc. Computer automated system and method for converting source-documents bearing alphanumeric text relating to survey measurements
US5859971A (en) 1996-02-15 1999-01-12 International Business Machines Corp. Differencing client/server communication system for use with CGI forms
JPH09251414A (ja) 1996-03-15 1997-09-22 N T T Data Tsushin Kk ネットワーク通信システム及び方法
JP2000116647A (ja) * 1998-10-16 2000-04-25 Hitachi Medical Corp X線ct装置
US7181466B2 (en) * 2002-01-31 2007-02-20 International Business Machines Corporation Method and system for creating a storage repository for graphical images on a computer network
JP4020676B2 (ja) 2002-03-26 2007-12-12 株式会社東芝 Webシステム及びWebシステムの制御方法
US7064765B2 (en) * 2002-06-24 2006-06-20 Hewlett-Packard Development Company, L.P. System and method for grabbing frames of graphical data
US20060149810A1 (en) * 2005-01-05 2006-07-06 Koo Sing C Method and procedure in creating a server side digital image file as receipt for web transactions

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002063066A (ja) * 2000-08-21 2002-02-28 Dainippon Printing Co Ltd 画像管理システム、サーバ、ユーザコンピュータ、及び記録媒体
JP2002189618A (ja) * 2000-12-21 2002-07-05 Hitachi Information Systems Ltd 差分キャッシュを用いたwwwサーバとwwwブラウザの処理方法、およびそのプログラム
JP2005513658A (ja) * 2001-12-20 2005-05-12 フランス テレコム サーバとクライアント端末との間でオブジェクトを送信する方法

Also Published As

Publication number Publication date
US7478098B2 (en) 2009-01-13
JP2006236334A (ja) 2006-09-07
US20060184545A1 (en) 2006-08-17

Similar Documents

Publication Publication Date Title
JP4745839B2 (ja) データ転送システム、送信プログラム、受信プログラム及びデータ送信方法
Rusinkiewicz et al. Streaming QSplat: A viewer for networked visualization of large, dense models
KR101144694B1 (ko) 원격 디스플레이로의 전송을 위해 프레임버퍼를 복제하기 위한 방법 및 시스템
AU2010313045B2 (en) Image file generation device, image processing device, image file generation method, image processing method, and data structure for image files
US6437778B1 (en) Virtual space communication system, three-dimensional image display method, and apparatus therefor
US8878851B2 (en) Method and system for streaming documents, e-mail attachments and maps to wireless devices
JP3102369B2 (ja) データ処理装置
WO2006052390A9 (en) System and method for managing communication and/or storage of image data
JP2005513658A (ja) サーバとクライアント端末との間でオブジェクトを送信する方法
JPH1188866A (ja) 高精細画像表示装置及びそのプログラム記憶媒体
JP5368254B2 (ja) 画像ファイル生成装置、画像処理装置、画像ファイル生成方法、画像処理方法、および画像ファイルのデータ構造
US8139074B2 (en) Memory optimized cache generation for image tiling in GIS/CAD browser applications
WO2010013854A1 (en) Three dimensional geographical information client apparatus, server apparatus and three dimensional geographical information system having the same
WO2012011215A1 (ja) 画像処理装置、画像表示装置、画像処理方法、および画像ファイルのデータ構造
JP6373555B2 (ja) コンピュータシステム、医用画像診断装置、画像表示方法、及び画像表示プログラム
US7146382B2 (en) Image processing apparatus and its method and server apparatus
JPH11232433A (ja) 地図表示制御システム
JP5296656B2 (ja) 画像処理装置および画像処理方法
JP2858556B2 (ja) 3次元形状通信システム
JP4390837B2 (ja) 図形データ検索システム及び方法、及び図形データの画面表示方法
WO2023170726A1 (ja) 点群データ表示装置、点群データ記憶装置、点群データ表示方法及び点群データ表示プログラム
JPH0962590A (ja) マルチメディアデータ配送方法および装置
JP4121967B2 (ja) 図形データ管理方法
JP3880335B2 (ja) 3次元cgモデル表示方法、3次元cgモデル表示システム、3次元cgモデル表示サーバ
JP2001256141A (ja) 地図データ送信装置および方法、ならびにそのプログラムの記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080526

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110208

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110408

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110510

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110512

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

Free format text: PAYMENT UNTIL: 20140520

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees