(57)【特許請求の範囲】
【請求項１】
クライアント装置から処理の実行要求を受信する受信手段と、
前記受信された実行要求に対応する処理を実行して、表示データを格納する第１表示データ部と、当該表示データを表示するためのコマンドを格納する第１制御データ部を備える第１ヘッダー部とを備える表示処理対象データを生成する生成手段と、
当該表示データが新たに生成された表示データでない場合に、当該表示データの直前に保持された当該表示データに対応する表示データである前回表示データと当該表示データとの差分を求め、前記表示処理対象データにおける前記第１表示データ部と前記第１ヘッダー部とを分離して、前記第１表示データ部に対応するデータブロックであって、当該表示データの識別情報を格納する表示データブロック用識別情報部と、前記コマンドへのリンク情報として前記コマンドの識別情報を格納するデータリンク部と、当該表示データとを格納する第２表示データ部とを備える表示データブロックを生成し、前記第１ヘッダー部に対応するデータブロックであって、前記コマンドの識別情報を格納するコマンドブロック用識別情報部と、前記表示データへのリンク情報として当該表示データの識別情報を格納するデータリンク部を備え前記コマンドを格納する第２制御データ部を備える第２ヘッダー部とを備えるコマンドブロックを生成し、前記表示データブロックと前記コマンドブロックとを保持する分離処理手段と、
前記コマンドブロックを第１の通信速度を有する第１の通信プロトコルにより前記クライアント装置に対して送信するコマンド送信手段と、
当該表示データが新たに生成された表示データでない場合において、前記表示データブロックにおける当該表示データについて画像の変化率を算出し、前記変化率が予め定められた変化率閾値以上である場合に、前記差分を送信データとして、前記第１の通信速度とは異なる第２の通信速度を有する第２の通信プロトコルにより前記クライアント装置に対して送信し、前記変化率が前記変化率閾値未満である場合に、前記差分を送信データとして前記第１の通信プロトコルにより前記クライアント装置に対して送信し、当該表示データが新たに生成された表示データである場合において、前記表示データブロックを前記第２の通信プロトコルにより前記クライアント装置に対して送信するデータ送信手段とを備える
ことを特徴とするデータ送信装置。
【請求項２】
請求項１に記載のデータ送信装置において、
前記第１の通信プロトコルがＴＣＰであり、
前記第２の通信プロトコルがＵＤＰである
ことを特徴とするデータ送信装置。
【請求項３】
請求項１に記載のデータ送信装置が、更に、
前記受信された実行要求の受信量を算出し、当該受信量が予め定められた受信量閾値以上である場合に、前記データ送信手段に指示して前記クライアント装置に対する前記送信データの送信量を減少させ、当該受信量が前記受信量閾値未満である場合に、前記データ送信手段に指示して前記クライアント装置に対する前記送信データの送信量を増加させる送信量制御手段を備える
ことを特徴とするデータ送信装置。
【請求項４】
クライアント装置から実行要求された処理に応じた表示データを当該クライアント装置に対して送信するデータ送信方法であって、
前記クライアント装置から処理の実行要求を受信し、
前記受信された実行要求に対応する処理を実行して、表示データを格納する第１表示データ部と、当該表示データを表示するためのコマンドを格納する第１制御データ部を備える第１ヘッダー部とを備える表示処理対象データを生成し、
当該表示データが新たに生成された表示データでない場合に、当該表示データの直前に保持された当該表示データに対応する表示データである前回表示データと当該表示データとの差分を求め、前記表示処理対象データにおける前記第１表示データ部と前記第１ヘッダー部とを分離して、前記第１表示データ部に対応するデータブロックであって、当該表示データの識別情報を格納する表示データブロック用識別情報部と、前記コマンドへのリンク情報として前記コマンドの識別情報を格納するデータリンク部と、当該表示データとを格納する第２表示データ部とを備える表示データブロックを生成し、前記第１ヘッダー部に対応するデータブロックであって、前記コマンドの識別情報を格納するコマンドブロック用識別情報部と、前記表示データへのリンク情報として当該表示データの識別情報を格納するデータリンク部を備え前記コマンドを格納する第２制御データ部を備える第２ヘッダー部とを備えるコマンドブロックを生成し、前記表示データブロックと前記コマンドブロックとを保持する分離処理手段と、
前記コマンドブロックを第１の通信速度を有する第１の通信プロトコルにより前記クライアント装置に対して送信し、
当該表示データが新たに生成された表示データでない場合において、前記表示データブロックにおける当該表示データについて画像の変化率を算出し、前記変化率が予め定められた変化率閾値以上である場合に、前記差分を送信データとして、前記第１の通信速度とは異なる第２の通信速度を有する第２の通信プロトコルにより前記クライアント装置に対して送信し、前記変化率が前記変化率閾値未満である場合に、前記差分を送信データとして前記第１の通信プロトコルにより前記クライアント装置に対して送信し、当該表示データが新たに生成された表示データである場合において、前記表示データブロックを前記第２の通信プロトコルにより前記クライアント装置に対して送信する
ことを特徴とするデータ送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ送信装置及びデータ送信方法に関し、特に、クライアント装置から要求された処理の実行結果に対応するコマンド及び表示データを、別個にクライアント装置に送信するデータ送信装置及びデータ送信方法に関する。
【背景技術】
【０００２】
高性能で高品質な製品を短期間で低コストに開発するためには、早い段階でのシミュレーションが重要である。そのためには、設計者が何時でも何処からでも高性能のマシン環境で高性能なアプリケーション（例えばＣＡＤ等）を低コストに利用できることが必要である。また、全体のＴＣＯ（維持管理も含めたトータルコスト）の削減を図るＡＳＰ(Application Service Provider)等、オンデマンド方式のシステムを構築することが必要である。更に、アプリケーションの処理結果を高速に表示することができるオンデマンド方式のシステムを構築して、ユーザの操作に応じたアプリケーションの処理結果をユーザに高速に提供することが重要である。
【０００３】
なお、ユーザの操作に応じてアプリケーションに処理を実行させるシステムとして、サーバとシンクライアント端末との間で行う通信において、ＧＵＩコンポーネント単位でコマンドを定義し、ＧＵＩコンポーネントのプロパティ値及びＧＵＩコンポーネントに対するユーザの操作を表すコマンドを通信することにより、サーバとシンクライアント端末との間で通信されるデータ量を削減するシステムが提案されている（特許文献１参照）。
【特許文献１】特開２００５−２２８２２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
図１５は本発明の背景となる対話型処理システムを示す図であり、図１６は本発明の背景となる表示データの送信処理例を説明する図である。
【０００５】
クライアント装置２００は、図１５に示すように、ネットワーク３００を介して、サーバ１００に対してある処理を要求する。これに応じて、サーバ１００において、アプリケーションＡ〜Ｃのいずれかが要求された処理を実行する。この後、サーバ１００が、当該処理の実行結果に対応する表示データをクライアント装置２００に送信する。
【０００６】
例えば、クライアント装置２００のユーザが、図１６に示すように、アプリケーションＡ、Ｂ及びＣに対する処理の実行を要求するための操作入力を、この順に行うとする。図１６において、例えば、ａはアプリケーションＡによる処理の実行結果に対応する表示データ、Ａは表示データａをクライアント装置２００に表示させるためのコマンド、画像ａは表示データａに対応する画像である。ｂ、Ｂ、画像ｂ、ｃ、Ｃ、画像ｃについても同様である（図１１においても同じ）。
【０００７】
サーバ１００は、アプリケーションＡにおける実行結果に応じて、コマンドＡと表示データａとを一体のデータ（表示処理対象データ）として、ＴＣＰによりクライアント装置２００への送信を、時刻ｔ0 に開始する。クライアント装置２００は、コマンドＡと表示データａとが一体となったデータの全体の受信を時刻ｔ1 に完了し、これに応じて、コマンドＡと表示データａとに基づいて画像ａの表示（又は更新）を開始して、時刻ｔ2 にこれを完了する。以下、同様にして、画像ｂ及び画像ｃが表示される。
【０００８】
この過程において、クライアント装置２００は、時刻ｔ2 に画像ａの表示を完了すると、操作入力の待ち状態となる。これにより、ユーザは、クライアント装置２００に対して、サーバ１００に次の処理を要求するための操作入力、即ち、画像ｂの処理のための入力を行うことができる。
【０００９】
このように、サーバ１００は、コマンド及び表示データを一体のデータとして送信する。このため、クライアント装置２００は、サーバ１００からコマンドと表示データとが一体となったデータの全体を受信した後でなければ、画像の表示処理を開始することができない。この結果、サーバ１００が表示データの送信を開始してからクライアント装置２００が表示データを表示するまで時間がかかるという問題がある。
【００１０】
また、クライアント装置２００は、画像の表示処理が完了した後でなければ操作入力待ち状態とならない。従って、クライアント装置２００が、アプリケーションに対して処理の実行を要求するために、先行する操作入力（画像ａの処理のための入力）を行ってから次の操作入力を行うことができる状態になるまでに時間がかかる。この結果、特に、クライアント装置２００のユーザが、高速な表示レスポンスが要求されるアプリケーション（ＣＡＤ等）を用いた操作を行う場合でも、操作性が悪く、作業効率が低下する。即ち、先行する操作入力を行ってから次の入力を行うことができるまでの期間を短縮することができないという問題がある。
【００１１】
本発明は、クライアント装置から要求された処理の実行結果に対応するコマンド及び表示データを、別個にクライアント装置に対して送信するデータ送信装置を提供することを目的とする。
【００１２】
また、本発明は、クライアント装置から要求された処理の実行結果に対応するコマンド及び表示データを、別個にクライアント装置に対して送信するデータ送信方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本データ送信装置は、クライアント装置から処理の実行要求を受信する受信手段と、前記受信された実行要求に対応する処理を実行して、表示データを格納する第１表示データ部と、当該表示データを表示するためのコマンドを格納する第１制御データ部を備える第１ヘッダー部とを備える表示処理対象データを生成する生成手段と、当該表示データが新たに生成された表示データでない場合に、当該表示データの直前に保持された当該表示データに対応する表示データである前回表示データと当該表示データとの差分を求め、前記表示処理対象データにおける前記第１表示データ部と前記第１ヘッダー部とを分離して、前記第１表示データ部に対応するデータブロックであって、当該表示データの識別情報を格納する表示データブロック用識別情報部と、前記コマンドへのリンク情報として前記コマンドの識別情報を格納するデータリンク部と、当該表示データとを格納する第２表示データ部とを備える表示データブロックを生成し、前記第１ヘッダー部に対応するデータブロックであって、前記コマンドの識別情報を格納するコマンドブロック用識別情報部と、前記表示データへのリンク情報として当該表示データの識別情報を格納するデータリンク部を備え前記コマンドを格納する第２制御データ部を備える第２ヘッダー部とを備えるコマンドブロックを生成し、前記表示データブロックと前記コマンドブロックとを保持する分離処理手段と、前記コマンドブロックを第１の通信速度を有する第１の通信プロトコルにより前記クライアント装置に対して送信するコマンド送信手段と、当該表示データが新たに生成された表示データでない場合において、前記表示データブロックにおける当該表示データについて画像の変化率を算出し、前記変化率が予め定められた変化率閾値以上である場合に、前記差分を送信データとして、前記第１の通信速度とは異なる第２の通信速度を有する第２の通信プロトコルにより前記クライアント装置に対して送信し、前記変化率が前記変化率閾値未満である場合に、前記差分を送信データとして前記第１の通信プロトコルにより前記クライアント装置に対して送信し、当該表示データが新たに生成された表示データである場合において、前記表示データブロックを前記第２の通信プロトコルにより前記クライアント装置に対して送信するデータ送信手段とを備える。
【００１４】
好ましくは、本データ送信装置において、前記第１の通信プロトコルがＴＣＰであり、前記第２の通信プロトコルがＵＤＰである。
【００１５】
好ましくは、本データ送信装置が、更に、前記受信された実行要求の受信量を算出し、当該受信量が予め定められた受信量閾値以上である場合に、前記データ送信手段に指示して前記クライアント装置に対する前記送信データの送信量を減少させ、当該受信量が前記受信量閾値未満である場合に、前記データ送信手段に指示して前記クライアント装置に対する前記送信データの送信量を増加させる送信量制御手段を備える。
【００１７】
また、本データ送信方法は、クライアント装置から実行要求された処理に応じた表示データを当該クライアント装置に対して送信するデータ送信方法であって、前記クライアント装置から処理の実行要求を受信し、前記受信された実行要求に対応する処理を実行して、表示データを格納する第１表示データ部と、当該表示データを表示するためのコマンドを格納する第１制御データ部を備える第１ヘッダー部とを備える表示処理対象データを生成し、当該表示データが新たに生成された表示データでない場合に、当該表示データの直前に保持された当該表示データに対応する表示データである前回表示データと当該表示データとの差分を求め、前記表示処理対象データにおける前記第１表示データ部と前記第１ヘッダー部とを分離して、前記第１表示データ部に対応するデータブロックであって、当該表示データの識別情報を格納する表示データブロック用識別情報部と、前記コマンドへのリンク情報として前記コマンドの識別情報を格納するデータリンク部と、当該表示データとを格納する第２表示データ部とを備える表示データブロックを生成し、前記第１ヘッダー部に対応するデータブロックであって、前記コマンドの識別情報を格納するコマンドブロック用識別情報部と、前記表示データへのリンク情報として当該表示データの識別情報を格納するデータリンク部を備え前記コマンドを格納する第２制御データ部を備える第２ヘッダー部とを備えるコマンドブロックを生成し、前記表示データブロックと前記コマンドブロックとを保持する分離処理手段と、前記コマンドブロックを第１の通信速度を有する第１の通信プロトコルにより前記クライアント装置に対して送信し、当該表示データが新たに生成された表示データでない場合において、前記表示データブロックにおける当該表示データについて画像の変化率を算出し、前記変化率が予め定められた変化率閾値以上である場合に、前記差分を送信データとして、前記第１の通信速度とは異なる第２の通信速度を有する第２の通信プロトコルにより前記クライアント装置に対して送信し、前記変化率が前記変化率閾値未満である場合に、前記差分を送信データとして前記第１の通信プロトコルにより前記クライアント装置に対して送信し、当該表示データが新たに生成された表示データである場合において、前記表示データブロックを前記第２の通信プロトコルにより前記クライアント装置に対して送信する。
【発明の効果】
【００１８】
本データ送信装置及び本データ送信方法は、１個の処理要求の実行結果に対応する１個の表示処理対象データにおける表示データブロックとコマンドブロックとを、別個にクライアント装置に対して送信する。コマンドブロックを第１の通信プロトコルにより前記クライアント装置に対して送信する。表示データが新たに生成された表示データである場合において、表示データブロックを第２の通信プロトコルにより送信する。この際、表示データブロックは、当該表示データの識別情報を格納する表示データブロック用識別情報部とコマンドへのリンク情報としてコマンドの識別情報を格納するデータリンク部とを備え、コマンドブロックは、コマンドの識別情報を格納するコマンドブロック用識別情報部と表示データへのリンク情報として当該表示データの識別情報を格納するデータリンク部を備える。当該表示データが新たに生成された表示データでない場合に、表示データとしては、当該表示データと前回の表示データとの差分を送信すると共に、画像の変化率と変化率閾値との比較の結果に応じて、当該差分を第１又は第２の通信プロトコルにより送信する。
【００１９】
この結果、表示データとコマンドの送信を分離することにより、当該実行結果をクライアント装置に高速に表示させることができ、また、これにより、クライアント装置が処理の実行要求を行ってから次の処理の実行要求を行うことができるようになるまでの時間を短縮することができる。この際、別個に送信された表示データとコマンドとを受信したクライアント装置が、コマンドへのリンク情報と表示データへのリンク情報とに基づいて表示データに対応するコマンドを特定し、当該表示データに応じた画像を確実に表示することができる。また、差分を送信することにより、送信データのデータ量を少なくすることができ、当該実行結果をより高速に送信することができる。更に、画像の変化率に応じて通信プロトコルを変更することにより、表示データの差分のデータ量が小さい場合には信頼性の高い通信プロトコルにより、また、前記差分のデータ量が大きい場合には高速な通信プロトコルにより、データを送信することができる。以上により、表示データとコマンドとからなる表示処理対象データを、最小のデータ量で、最適な通信プロトコルにより送信することができる。
【００２０】
また、本データ送信装置は、第１の通信プロトコルとしてＴＣＰを用い、第２の通信プロトコルとしてＵＤＰを用いる。これにより、表示データの差分のデータ量が小さい場合には信頼性の高いＴＣＰにより、また、前記差分のデータ量が大きい場合には高速なＵＤＰにより、データを送信することができる。
【００２１】
また、本データ送信装置は、処理の実行要求の受信量と受信量閾値との比較の結果に応じて、クライアント装置に対する送信データの送信量を増減する。これにより、当該受信量の大きさに応じて、クライアント装置に対する送信データの送信量を制御することができる。
【発明を実施するための最良の形態】
【００２３】
図１は、データ処理システムの構成の一例を示す図である。データ処理システムは、図１に示すように、データ送信装置１、クライアント装置２、これらの間を接続する例えばインターネット等のネットワーク３を備える。
【００２４】
データ送信装置（又は、サーバ）１は、クライアント装置２から、ネットワーク３を介して実行要求された処理を実行し、処理の実行結果に対応する表示データをクライアント装置２に対して送信するコンピュータである。データ送信装置１は、処理実行要求受信部（以下、受信部）１１、分離処理部１２、コマンド送信部１３、データ送信部１４、スタックメモリ１５、アプリケーション１０１を備える。アプリケーション１０１は、実際には複数の（この例では３個の）アプリケーションＡ、Ｂ、Ｃからなり、例えば主メモリ（図示せず）上に存在する。
【００２５】
受信部１１は、クライアント装置２の通信部２１から送信された処理の実行要求を受信して、当該処理を実行するアプリケーション１０１を起動する。この時、受信部１１は、アプリケーション１０１（Ａ〜Ｃのいずれか）が起動中であることを、クライアント装置２に対して通知する。アプリケーション１０１は、当該実行要求に対応する処理を実行して、表示処理対象データを生成する生成手段である。いずれのアプリケーションがいずれの処理を実行するかは予め定められる。表示処理対象データは、当該処理の実行結果に対応する表示データと、当該表示データを表示するためのコマンドとからなる。
【００２６】
表示処理対象データ２０１の一例を、図２（Ａ）に示す。表示処理対象データ２０１は、例えば表示処理対象データを格納するデータブロックであり、ヘッダー部３０と表示データ部３１とを備える。ヘッダー部３０は、当該表示処理対象データの送信先等のデータを格納し、また、制御データ部３０１を備える。制御データ部３０１は表示処理対象データにおけるコマンドを格納する。表示データ部３１は表示処理対象データにおける表示データを格納する。ヘッダー部３０に格納される情報の情報量は、例えば１ＫＢ以下であり、表示データ部３１に格納される表示データのデータ量は、例えば１ＭＢ以下である。
【００２７】
アプリケーション１０１は生成した表示処理対象データを分離処理部１２に送る。分離処理部１２は、当該表示処理対象データにおける表示データについての差分を求め、この後、当該表示処理対象データをコマンドと表示データとに分離する。
【００２８】
即ち、分離処理部１２は、表示処理対象データにおける表示データ（当該表示データ）の直前に保持された当該表示データに対応する表示データ（以下、前回の表示データという）と、当該表示データとの差分を求める。前回の表示データは、当該表示データと同一の表示処理対象（例えば、同一の画面）について、スタックメモリ１５に直前に（前回）記憶された表示データである。例えば、現在時刻ｔにおける表示データと時刻（ｔ−１）における前回の表示データとが存在する場合、当該差分は、時刻ｔにおける表示データ部３１と時刻（ｔ−１）における表示データ部３１との差分である。時刻（ｔ−１）は時刻ｔより前の時刻である（以下において同じ）。
【００２９】
また、分離処理部１２は、表示処理対象データにおける表示データとコマンドとを分離して、これらをスタックメモリ１５に格納する。具体的には、分離処理部１２は、表示処理対象データ２０１のヘッダー部３０と表示データ部３１とを分離し、図２（Ｂ）に示すように、分離されたヘッダー部３０に対応するデータブロック（以下、コマンドブロックという）２０２と、分離された表示データ部３１に対応するデータブロック（以下、表示データブロックという）２０３とを生成する。コマンドブロック２０２は表示処理対象データにおけるコマンドを格納し、表示データブロック２０３は表示処理対象データにおける表示データを格納する。
【００３０】
コマンドブロック２０２は、識別情報部４０と、ヘッダー部３０に対応するヘッダー部４１とを備える。識別情報部４０は、制御データ部４１０内のコマンドの識別情報（この例では、＃ｃ０１）を格納する。コマンドの識別情報は一意に定まる。ヘッダー部４１は、制御データ部３０１に対応する制御データ部４１０を備える。制御データ部４１０はコマンドを格納する。コマンドは、表示データの表示をクライアント装置２に指示する制御情報であり、画面管理情報（図３参照）を含む。制御データ部４１０にはデータリンク部５００が新たに付加される。データリンク部５００は、制御データ部４１０のコマンドが対応する表示データへのリンク情報を格納する。このリンク情報は、この例では、対応する（分離された）表示データの識別情報である＃ｄ０１からなる。
【００３１】
表示データブロック２０３は、識別情報部５０と、データリンク部５１と、表示データ部３１に対応する表示データ部５２とを備える。識別情報部５０は、表示データブロック２０３内の表示データの識別情報（この例では、＃ｄ０１）を格納する。表示データの識別情報は一意に定まる。データリンク部５１は、新たに付加される情報であり、表示データ部５２の表示データが対応するコマンドへのリンク情報を格納する。このリンク情報は、この例では、対応するコマンドの識別情報である＃ｃ０１からなる。表示データ部５２は表示データを格納する。
【００３２】
スタックメモリ１５は、分離処理部１２が備える記憶手段であり、分離処理部１２により分離されたコマンド及び表示データ（即ち、コマンドブロック２０２及び表示データブロック２０３）を、相互に対応付けて（リンクして）記憶する。表示データとコマンドとは、図２に示すように、リンクによって対応付けられる。これにより、分離処理部１２は表示データとコマンドとを管理する。
【００３３】
分離処理部１２は、スタックメモリ１５に記憶したコマンド及び表示データ（コマンドブロック２０２及び表示データブロック２０３）を、各々、コマンド送信部１３及びデータ送信部１４に送る。これに加えて、分離処理部１２は、前記差分をデータ送信部１４に送る。当該差分をスタックメモリ１５に記憶するようにしても良い。
【００３４】
コマンド送信部１３とデータ送信部１４とで送信部を構成する。この送信部と受信部１１とで通信部を構成する。この通信部は、クライアント装置２の通信部２１に対応し、これとの間でデータ通信を行う。
【００３５】
コマンド送信部１３は、分離処理部１２によって分離されたコマンド（即ち、コマンドブロック２０２）を、第１の通信プロトコルによりクライアント装置２の通信部２１に対して送信する。第１の通信プロトコルは、第１の通信速度を有し、例えばＴＣＰ（Transmission Control Protocol ）からなる。ＴＣＰは、コネクション型の通信接続を行ってから通信を行う通信プロトコルであり、信頼性の高いデータ送信を可能とする。ＴＣＰにより、クライアント装置２における表示処理の内容を決定するコマンドを、高い信頼性で送信することができる。
【００３６】
データ送信部１４は、データ圧縮部１４１、画像変化判断部１４２、送信部１４３、データメモリ１４４を備える。前述のように、分離処理部１２は、スタックメモリ１５内の表示処理対象データにおける表示データと、表示データについての前記差分とを、データ送信部１４に送る。
【００３７】
データ圧縮部１４１は、表示処理対象データにおける表示データについての差分を、例えば周知のようにＪＰＥＧ画像データに圧縮して（図３参照）、データメモリ１４４に記憶する。なお、データメモリ１４４に、当該表示データ及びその差分を記憶するようにしても良い。
【００３８】
画像変化判断部１４２は、分離処理部１２から送信された表示データ（即ち、表示データブロック２０３）について画像の変化率を算出し、変化率が予め定められた閾値（変化率閾値）以上であるか否かを調べる。変化率としては、例えば、表示データの画像全体の面積に対する差分の画像の面積の割合が用いられる。又は、変化率として、表示データのデータ量に対する差分のデータ量の割合を用いるようにしても良い。変化率閾値の値は経験的（又は実験的）に定めることができる。画像全体の面積又は表示データのデータ量は、分離処理部１２からデータ送信部１４に送られた表示データ（表示データブロック２０３の表示データ部５２）から求められる。差分の画像の面積又は差分のデータ量は、分離処理部１２からデータ送信部１４に送られた当該差分から求められる。
【００３９】
変化率が変化率閾値未満（又は、変化率閾値以下）である場合、送信部１４３は、前記差分を送信データとして、第１の通信プロトコル（例えばＴＣＰ）によりクライアント装置２に対して送信する。変化率が変化率閾値未満であるデータは、そのデータサイズが小さく、元来送信に要する時間が短いので、これをＴＣＰにより高い信頼度で短時間で送信することができる。
【００４０】
変化率が変化率閾値以上である（又は、変化率閾値より大きい）場合、送信部１４３は、前記差分を送信データとして、第２の通信プロトコルによりクライアント装置２に対して送信する。第２の通信プロトコルは、第１の通信速度とは異なる（第１の通信速度より速い）第２の通信速度を有し、例えばＵＤＰ（User Datagram Protocol）からなる。ＵＤＰは、コネクションレス型の通信プロトコルであり、高速なデータ送信を可能とする。ＵＤＰにより、変化率が変化率閾値以上である大きなデータを高速で送信することができる。
【００４１】
以上によれば、表示データブロック２０３について、その画像の変化率を求め、これに基づいて適切な通信プロトコルを選択し、通信時間と通信の信頼度とのバランスを最適な設定とすることができる。
【００４２】
なお、データ送信部１４は、送信データをＵＤＰパケットに格納し、ＣＲＴＰ(Compressed Real Time Protocol) を用いてＵＤＰパケットのヘッダー情報を圧縮した上で当該ＵＤＰパケットをクライアント装置２に対して送信するようにしても良い。
【００４３】
また、アプリケーション１０１が新たに表示データを生成した場合には、分離処理部１２は、前記差分を求めず、スタックメモリ１５内に格納された当該新たに生成された表示データ（その表示データブロック２０３）をデータ送信部１４に送る。これに応じて、データ送信部１４は、分離処理部１２から送られた新たな表示データを送信データとして、クライアント装置２に対して送信する。
【００４４】
クライアント装置２は、ネットワーク３を介して、データ送信装置１に対して処理の実行を要求し、当該処理の実行結果に対応する表示データをデータ送信装置１から受信して表示するコンピュータである。クライアント装置２は、通信部２１、入力部２２、制御部２３、表示部２４、データメモリ２５を備える。
【００４５】
入力部２２は、クライアント装置２のユーザの操作入力に従って、処理の実行要求を通信部２１に入力する。通信部２１はデータ送信装置１との間での通信を実行する。即ち、通信部２１は、入力部２２によって入力された処理の実行要求をデータ送信装置１の受信部１１に対して送信する。また、通信部２１は、コマンド送信部１３から送信されるコマンド（コマンドブロック２０２）を受信するとともに、データ送信部１４から送信される表示データの差分（又は、新たに生成された表示データの表示データブロック２０３の全体、以下同じ）を受信する。
【００４６】
制御部２３は、通信部２１で受信されたコマンド（コマンドブロック２０２）及び表示データの差分を通信部２１から受け取り、データ圧縮された当該表示データの差分を伸張し、これらをデータメモリ２５に格納する。データメモリ２５に記憶されるコマンド及び表示データの差分は、データ送信装置１のスタックメモリ１５又はデータメモリ１４４に記憶されるコマンド及び表示データの差分と同じデータである。
【００４７】
制御部２３は、データメモリ２５に記憶されるコマンド及び表示データの差分に基づいて、表示部２４に当該画像を表示させる。即ち、表示部２４は、当該コマンド及び表示データの差分に応じた画像を表示画面（図示せず）上に表示する。この画像は、アプリケーション１０１による処理の実行結果に対応する画像である。
【００４８】
図３は分離処理部によるスタックメモリ内の表示データの管理を説明する図であり、図４はクライアント装置における画面表示例である。
【００４９】
クライアント装置２の表示部２４は、図３に示す表示データの管理に基づいて、図４に示す画面を表示する。最も基本の画面即ち最初に開かれた（表示された）画面が親画面と呼ばれ、親画面以外の画面が子画面と呼ばれる。図３及び図４において、画面２４Ａが親画面であり、それ以外の画面２４ｂ〜２４ｄは子画面である。親画面２４Ａ（画面Ａと表す）は、画面の階層においては最上位であり、一方、表示においては最も下に表示される。子画面２４ｂ〜２４ｄ（画面ｂ〜ｄと表す）は、画面の階層においては下位であり、表示においては親画面（及び他の子画面）の上（又は、他の子画面の下）に表示される。
【００５０】
分離処理部１２は、コマンドブロック２０２に格納されているコマンドに含まれる画面管理情報を用いて、図３に示すように、画面Ａ、ｂ、ｃ、ｄを、画面同士の階層関係を示しつつリンクさせて、スタックメモリ１５内で管理する。このために、親画面Ａには、その画面管理情報が付加される。
【００５１】
画面管理情報は、階層情報と位置情報と格納情報とを含む。階層情報は、表示データに対応する画像（又は画面）相互の階層関係を示す。位置情報は、表示データの表示部２４における表示位置を示す。格納情報は、各画像に対応する表示データのスタックメモリ１５内における格納アドレスを示す。画面同士の階層関係は、ある画面がどの画面の上に重なるかを示す（画面と画面との重なりの関係を示す）情報である。
【００５２】
例えば、分離処理部１２は、画面Ａ、ｂ、ｃ、ｄのそれぞれに対応する表示データを、画面Ａに画面ｃが重なり、画面ｃに画面ｂと画面ｄとが重なることを示す画面管理情報に従って、スタックメモリ１５に記憶する。図３において、点線の矢印は、画面管理情報による各々の画面の間におけるポインタを示している。
【００５３】
画面Ａ等の表示データの各々は、図３に示すように、データ圧縮部１４１によりＪＰＥＧ変換（データ圧縮）され、送信部１４３によりクライアント装置２に送信される。図３において、点線の矩形で囲まれた「ＪＰＥＧ変換」は、画面ｃについて、分離処理部１２が前回の画面ｃとの差分を求め、データ圧縮部１４１が当該差分をＪＰＥＧ変換することを示す。送信部１４３は、画面ｃについて、当該ＪＰＥＧ変換された当該差分のみをクライアント装置２に対して送信する。画面ｃの当該差分（又は、当該差分を生じさせた即ち変更された領域の画像）を部分画像ｃ（ｐ）と呼ぶこととする。部分画像ｃ（ｐ）は、図４において、点線で囲んで示す領域である（図６及び図７参照）。
【００５４】
制御部２３は、一旦データメモリ２５に格納したコマンド（に含まれる画面管理情報）を解釈して、データメモリ２５の伸張した表示データの差分を含む表示データを、表示部２４に表示させる。この結果、図４に示すように、画面Ａに画面ｃが重なり、画面ｃに画面ｂ及び画面ｄが重なるように画面表示される。この時で、画面ｃは、その差分（点線の矩形で囲った領域、部分画像ｃ（ｐ））により当該領域を上書きすることにより生成される。
【００５５】
図５は、データ送信装置によるコマンド及び表示データの送信処理フローの一例を示す図である。
【００５６】
データ送信装置１の受信部１１が、クライアント装置２の通信部２１から処理の実行要求を受信して（ステップＳ１）、当該処理を実行するアプリケーション１０１を起動し（ステップＳ２）、アプリケーション１０１が起動中であることをクライアント装置２に対して通知する。起動されたアプリケーション１０１は、当該処理を実行して、その実行結果に対応する表示データとコマンドとからなる表示処理対象データを生成し（ステップＳ３）、分離処理部１２に送る。分離処理部１２は、受け取った表示処理対象データをメモリ（図示せず）に一旦保持し、また、データ送信部１４に送る（ステップＳ４）。なお、ステップＳ３において、表示データが消去される場合もある。この場合、分離処理部１２は、例えばコマンドのみからなる（又は、表示データが「空」の）表示処理対象データを受け取る。
【００５７】
分離処理部１２は、当該表示処理対象データにおける表示データが新たに生成された表示データであるか、又は、ステップＳ３において表示データが消去されたか否かを調べる（ステップＳ５）。表示データが新たに生成された表示データではなく、かつ、表示データが消去されていない場合、分離処理部１２は、図６及び図７を参照して以下に説明するように、表示データについて差分抽出処理を行い、抽出した当該差分をデータ送信部１４に送る（ステップＳ６）。表示データが新たに生成された表示データであるか、又は、表示データが消去された場合、分離処理部１２は、ステップＳ６を省略する。
【００５８】
図６及び図７は、アプリケーション１０１の処理によって、画面ｃ内の部分画像ｃ（ｐ）が回転する場合について示す。特に、図６はデータ送信装置１における画面ｃの処理のみを示し、図７はクライアント装置２における画面ｃの表示について示す。
【００５９】
図６において、例えば、現在の表示データが、現在時刻である時刻ｔにスタックメモリ１５に記憶された画面（実際は、画面のデータ、以下同じ）１５ｃであり、前回の表示データが、時刻（ｔ−１）にスタックメモリ１５に記憶された画面（実際は、画面のデータ、以下同じ）１５ｃ’であるとする。図７（Ａ）及び図７（Ｂ）は、各々、時刻ｔ−１及び時刻ｔにスタックメモリ１５に記憶された画面１５ｃ’及び１５ｃが表示部２４に表示された画面２４ｃ’及び２４ｃを示す。
【００６０】
前回の表示データは、画面１５ｃ’及び画面２４ｃ’（図７（Ａ））であり、円柱２１０の画像を含む。この状態で、アプリケーション１０１の処理によって、例えば、円柱２１０が９０度回転して円柱２１１に変化させられるとする。円柱２１２は、円柱２１０から円柱２１１への変化の過程の画像であり、参考のために図示されている。スタックメモリ１５には、前回の表示データの処理の結果として画面１５ｃ’が格納されており、当該表示データの処理の結果として画面１５ｃが格納される。
【００６１】
この場合、分離処理部１２は、画面１５ｃと画面１５ｃ’との差分を抽出する。画面１５ｃと画面１５ｃ’との相違は、円柱２１０と円柱２１２との相違である。即ち、当該差分は、円柱２１０の部分画像ｃ（ｐ）及び円柱２１２の部分画像ｃ’（ｐ）の表示領域（当該円柱及びその周囲の所定の範囲の領域）である。換言すれば、当該差分は、前回の表示データにおける部分画像ｃ’（ｐ）を置換する当該表示データにおける部分画像ｃ（ｐ）である。部分画像ｃ（ｐ）と部分画像ｃ’（ｐ）とは同じ大きさである。分離処理部１２は、当該差分として、部分画像ｃ（ｐ）を抽出する。
【００６２】
この結果、画面ｃの表示データとして、当該画面ｃの全体の表示データではなく、差分である部分画像ｃ（ｐ）が、データ圧縮された上で、クライアント装置２に送信される（後述するステップＳ９）。これに応じて、制御部２３は、部分画像ｃ（ｐ）を伸張した上で、当該差分である部分画像ｃ（ｐ）に基づいて、図７（Ａ）に示す画面ｃ’における部分画像ｃ’（ｐ）を、部分画像ｃ（ｐ）により上書きし（更新し）、図７（Ｂ）に示すように、当該表示データに基づく画面ｃを表示する。
【００６３】
なお、図６に点線で示すように、回転途中の円柱２１２の部分画像を生成してスタックメモリ１５に格納し、これに基づいて、画面２４ｃにおいて回転途中の円柱２１２を表示するようにしても良い。
【００６４】
図５に戻って、分離処理部１２が、表示処理対象データにおける表示データとコマンドとを分離した後（ステップＳ７）、コマンド送信部１３がコマンドをＴＣＰによりクライアント装置２に対して送信し（ステップＳ８）、データ送信部１４がステップＳ６において抽出された差分を送信データとしてクライアント装置２に対して送信する（ステップＳ９）。この送信時において、当該表示データが新たに生成された表示データである場合には、データ送信部１４は、当該新たに生成された表示データの全体を送信データとしてクライアント装置２に対して送信する。
【００６５】
図８は、図５のステップＳ９においてデータ送信部１４により実行される送信データの送信処理の詳細を示す送信処理フローである。
【００６６】
データ送信部１４のデータ圧縮部１４１が、分離処理部１２から送られた当該差分をＪＰＥＧ変換（ＪＰＥＧ画像データに圧縮）して、データメモリ１４４に記憶する（ステップＳ９１）。
【００６７】
次に、画像変化判断部１４２が、表示データについて画像の変化率を算出する（ステップＳ９２）。例えば、画像変化判断部１４２は、図９に示すように、抽出された差分である部分画像ｃ（ｐ）の面積を求め、画面ｃの全体の面積に対する部分画像ｃ（ｐ）の面積（図９に示す点線の矩形部の面積）の割合を、画像の変化率として算出する。
【００６８】
次に、画像変化判断部１４２が、算出された変化率が変化率閾値以上であるか否かを調べる（ステップＳ９３）。画像変化判断部１４２は、変化率が変化率閾値以上である場合、当該差分をＵＤＰによりクライアント装置２に送信し（ステップＳ９４）。変化率が変化率閾値未満である場合、当該差分をＴＣＰによりクライアント装置２に送信する（ステップＳ９５）。
【００６９】
なお、新たに生成された表示データについては、データ送信部１４は、当該新たに生成された表示データを、例えばＪＰＥＧ画像データに圧縮した後、ステップＳ９２及びＳ９３の処理を実行することなく、ＵＤＰによりクライアント装置２に対して送信する。
【００７０】
図１０は、クライアント装置２における表示データの表示処理フローの一例を示す図である。
【００７１】
入力部２２が、ユーザの操作入力に従って、処理の実行要求を通信部２１に入力し（ステップＳ１０１）、これに応じて、通信部２１が当該実行要求をデータ送信装置１の受信部１１に対して送信する（ステップＳ１０２）。
【００７２】
この後、制御部２３は、通信部２１を介して、前記実行要求に応じてアプリケーション１０１が起動中であることをクライアント装置２から通知されると（ステップＳ１０３）、アプリケーションが起動中であることを示す情報を、表示部２４に表示させる（ステップＳ１０４）。
【００７３】
次に、通信部２１が、コマンド送信部１３からコマンドを受信し（ステップＳ１０５）、データ送信部１４から表示データの前記差分を受信する（ステップＳ１０６）。制御部２３が、受信されたコマンド及び表示データの差分とをデータメモリ２５に記憶し、これらに基づいて、表示部２４に表示すべき表示データを表示用メモリ（図示せず）上において更新し（ステップＳ１０７）、前記更新された表示データに応じた画像を、表示部２４に表示させる（ステップＳ１０８）。
【００７４】
図１１（Ａ）は本データ処理システムによる表示データの送信処理を示す。なお、比較のために、図１６を再度図１１（Ｂ）として示す。
【００７５】
図１１（Ａ）において、図１６と同様に、例えば、クライアント装置２００のユーザが、アプリケーションＡ、Ｂ及びＣに対する処理の実行を要求するための操作入力を、この順に行うとする。なお、図１１（Ａ）において、ａはアプリケーションＡによる処理の実行の結果に応じた表示データの差分（送信データ）である。ｂ及びｃも同様である。
【００７６】
データ送信装置１は、時刻ｔ0 に、コマンドＡをＴＣＰにより、送信データａをＵＤＰにより、別々にクライアント装置２に送信する。データ送信装置１は、コマンドＡの送信が完了した時刻ｔ01にコマンドＢの送信を開始し、送信データａの送信が完了した時刻に送信データｂの送信を開始する。コマンドＣ及び送信データｃについても同様である。
【００７７】
クライアント装置２は、データ送信装置１からのコマンドＡの受信が完了した時刻ｔ01に、コマンドＡと受信途中の送信データａとに基づいて、画像ａの表示を開始し、画像ａの表示が完了した時刻ｔ03に、既に受信を完了したコマンドＢと受信途中の送信データｂとに基づいて、画像ｂの表示を開始する。画像ｃの表示についても同様である。
【００７８】
時刻ｔ06に、クライアント装置２が画像ｃの表示を完了すると、クライアント装置２が操作入力の待ち状態となり、ユーザがデータ送信装置１に対して次の処理の実行を要求するための操作入力を行うことができる。例えば、クライアント装置２の制御部２３が、時刻ｔ06に、表示部２４に、ユーザに対して操作入力待ちとなったことを通知するための表示をさせる。
【００７９】
なお、データ送信装置１がコマンドＣの送信を完了した時刻ｔ04に、クライアント装置２が操作入力の待ち状態となるようにしても良い。
【００８０】
このように、データ送信装置１は、コマンドと表示データの差分とを別々にクライアント装置２に対して送信するので、クライアント装置２は、最初の（又は、先行する）コマンドの受信を完了した直後に、当該コマンドに対応する表示データに基づいて、最初の画像の表示処理を開始することができる。また、クライアント装置２は、次のコマンドの受信が完了していれば、前記最初の画像の表示処理が完了すると、次の画像の表示処理を実行することができる。従って、データ送信装置１が最初のコマンド（コマンドＡ）を送信してからクライアント装置２において画像の表示処理が全て完了するまでの時間（ｔ06−ｔ0 ）は、図１１（Ｂ）において画像の表示処理が全て完了するまでの時間（ｔ6 −ｔ0 ）に比べて、極めて短い。
【００８１】
また、クライアント装置２は、図１１（Ｂ) においてクライアント装置が操作入力の待ち状態となる時刻ｔ6 より大幅に早い時刻（時刻ｔ06）に、操作入力の待ち状態となる。例えば、クライアント装置２が画像ｃの表示を完了する時間は、図１１（Ｂ) において画像ｃの表示が完了する時間に比べて、約２分の１に短縮される。
【００８２】
図１２は、本データ処理システムの構成の他の一例を示す図である。図１２において、データ送信装置１’は、図１のデータ送信装置１が備える構成に加えて、送信量制御部１６を備える。送信量制御部１６は、受信部１１によって受信された処理の実行要求の受信量を算出して、算出された受信量と予め定められた閾値（受信量閾値）とを比較する。受信量閾値の値は経験的（又は実験的）に定めることができる。
【００８３】
送信量制御部１６は、前記比較の結果、受信量が受信量閾値以上である（又は、受信量閾値より大きい）場合に、データ送信部１４に、クライアント装置２に対する送信データの送信量を減少させる。また、送信量制御部１６は、受信量が受信量閾値未満（又は、受信量閾値以下）である場合に、データ送信部１４に、クライアント装置２に対する送信データの送信量を増加させる。
【００８４】
図１３は、送信量制御部が実行する送信データの送信量の制御処理フローの一例を示す図である。
【００８５】
送信量制御部１６が、受信部１１によって受信された処理の実行要求の受信量を算出し（ステップＳ１１１）、当該受信量が受信量閾値以上であるか否かを調べる（ステップＳ１１２）。送信量制御部１６は、当該受信量が受信量閾値以上である場合は、送信データの送信量を減少させ（ステップＳ１１３）、当該受信量が受信量閾値未満である場合は、送信データの送信量を増加させる（ステップＳ１１４）。
【００８６】
これにより、図１４に示すように、送信データ量を制御することができ、結果として、クライアント装置２における表示処理の負荷を適正に維持することができる。例えば、時刻ｔ0 からｔ1 の間は、処理の実行要求の受信量が多いので、送信データの送信量を減少させる。時刻ｔ1 からｔ2 の間は、処理の実行要求の受信量が少ないので、送信データの送信量を増加させる。時刻ｔ2 以降は、処理の実行要求の受信量が増加するので、送信データの送信量を減少させる。なお、図１４において、縦軸は受信部１１が受信した処理の実行要求の受信量を示し、横軸は時間を示す。
【産業上の利用可能性】
【００８７】
以上、説明したように、本データ送信装置及び本データ送信方法によれば、クライアント装置からの実行要求に応じた表示処理対象データの送信量を少なくすることができ、かつ、画像の変化率に応じて信頼性の高い通信プロトコルと高速な通信プロトコルとを使い分けることができる。これにより、先行する実行要求から次の実行要求までの時間を短縮することができ、また、当該実行結果をクライアント装置に対してより高速に送信し表示することができる。この結果、表示データとコマンドとからなる表示処理対象データを、最小のデータ量で、最適な通信プロトコルにより送信することができる。
【図面の簡単な説明】
【００８８】
【図１】データ処理システムの構成の一例を示す図である。
【図２】表示データとコマンドとの分離処理を説明する図である。
【図３】スタックメモリ内の表示データの管理を説明する図である。
【図４】クライアント装置における画面表示の一例を示す図である。
【図５】コマンド及び表示データの送信処理フローの一例を示す図である。
【図６】表示データについての差分抽出処理の例を説明する図である。
【図７】クライアント装置における画像の表示の一例を示す図である。
【図８】送信データの送信処理の詳細な例を説明する送信処理フローである。
【図９】画像の変化率の算出処理を説明する図である。
【図１０】表示データの表示処理フローである。
【図１１】表示データの送信処理を説明する図である。
【図１２】データ処理システムの構成の他の一例を示す図である。
【図１３】送信データの送信量の制御処理フローである。
【図１４】送信データの送信量の制御処理を説明する図である。
【図１５】本発明の背景となる対話型処理システムを示す図である。
【図１６】本発明の背景となる送信処理を説明する図である。
【符号の説明】
【００８９】
１    データ送信装置
２    クライアント装置
１１    処理実行要求受信部（受信部）
１２    分離処理部
１３    コマンド送信部
１４    データ送信部
１５    スタックメモリ
２１    通信部
２２    入力部
２３    制御部
２４    表示部
２５、１４４    データメモリ
１０１    アプリケーション
１４１    データ圧縮部
１４２    画像変化判断部
１４３    送信部
【図１】
0005130891.tif 000002
【図２】
0005130891.tif 000003
【図３】
0005130891.tif 000004
【図４】
0005130891.tif 000005
【図５】
0005130891.tif 000006
【図６】
0005130891.tif 000007
【図７】
0005130891.tif 000008
【図８】
0005130891.tif 000009
【図９】
0005130891.tif 000010
【図１０】
0005130891.tif 000011
【図１１】
0005130891.tif 000012
【図１２】
0005130891.tif 000013
【図１３】
0005130891.tif 000014
【図１４】
0005130891.tif 000015
【図１５】
0005130891.tif 000016
【図１６】
0005130891.tif 000017