(57)【特許請求の範囲】
【請求項１】
サーバ装置とクライアント装置との間のデータ転送の最適化を行うクライアント装置側に設けた転送最適化装置において、
前記サーバ装置が備える並列に受信処理を行なう当該並列数に対応する数のサーバアクティビティとの間で複数の電文を送信する送信手段と、
前記サーバ装置に電文をレスポンス時間よりも短い時間内に順次送信してその応答電文のレスポンス時間が所定値以下の電文数を、前記サーバ装置におけるサーバアクティビティの数と予測する手段と、
次回以降の電文送出時に前記サーバ装置における予測したサーバアクティビティの数をもとに一時に送出する電文数を制御する手段と
を前記クライアント装置に設けたことを特徴とするクライアント装置側に設けた転送最適化装置。
【請求項２】
ライト時にサーバ装置に電文を送信するときに当該サーバ装置における予測したサーバアクティビティの数分迄の電文を一時に送出する手段をクライアント装置に設けたことを特徴とする請求項１記載のクライアント装置側に設けた転送最適化装置。
【請求項３】
リード時にサーバ装置における予測したサーバアクティビティの数分の電文の先読みを要求する手段をクライアント装置に設けたことを特徴とする請求項１記載のクライアント装置側に設けた転送最適化装置。
【請求項４】
サーバ装置とクライアント装置との間のデータ転送の最適化を行うクライアント装置側に設けた転送最適化装置を構成するコンピュータを、
前記サーバ装置が備える並列に受信処理を行なう当該並列数に対応する数のサーバアクティビティとの間で複数の電文を送信する送信手段と、
前記サーバ装置に電文をレスポンス時間よりも短い時間内に順次送信してその応答電文のレスポンス時間が所定値以下の電文数を、前記サーバ装置におけるサーバアクティビティの数と予測する手段と、
次回以降の電文送出時に前記サーバ装置における予測したサーバアクティビティの数をもとに一時に送出する電文数を制御する手段と
して機能させるプログラムを格納したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、サーバ装置とクライアント装置との間のデータ転送の最適化を行う転送最適化システムであって、サーバ装置およびクライアント装置の相互で相手側のアクティビティ数を意識してネットワークデータ転送の最適化を行う転送最適化システムに関するものである。
【０００２】
【従来の技術】
従来、ネットワークを介してデータを転送する場合、図１３に示すように、サーバ装置およびクライアント装置の間では相手側のアクティビティ数を意識することなくデータ転送を行っていた。以下図１３の従来の構成および動作を簡単に説明する。
【０００３】
図１３は、従来技術の説明図を示す。
図１３において、クライアント装置およびサーバ装置は、ネットワークを介してデータを相互に転送するものである。
【０００４】
アクティビティは、サーバ装置およびクライアント装置上に常駐し、ネットワークデータ転送処理を行うデーモンプロセスである。
サーバアクティビティは、サーバ装置上で複数存在しクライアント装置からの要求データを受信するための受け口などとなるものである。サーバ装置は、アクティビティ数分の要求（電文）を同時に受信などして処理することができる。
【０００５】
クライアントアクティビティは、クライアント装置上で複数存在しアプリケーションからのデータ転送要求を代行して行うなどするものである。これにより、非同期に多重のデータ転送処理を行うことが可能となる。尚、図１３は、クライアント装置のアプリケーションからサーバ装置にデータ転送する場合であるが、同様にサーバ装置からクライアント装置へのデータ転送も行う。
【０００６】
次に、動作を説明する。
クライアント装置上のアプリケーションからのデータ転送要求▲１▼は、アクティビティを管理するネットワークプロトコルによって、クライアント装置上のアクティビティに振り分けられ（▲２▼）、実際のネットワーク転送処理は当該振り分けられた各アクティビティが代行して行う（▲３▼）。
【０００７】
クライアント装置から送信されてきた要求データ（電文）は、サーバ装置のネットワーク層にキューイングされ、サーバ装置のアクティビティが受信するのを待ち合わせる。サーバ装置のアクティビティは、ネットワーク層にキューイングされた要求データ（電文）を受信し（▲４▼）、１次記憶装置および２次記憶装置に対するＩ／Ｏ処理を行う（▲５▼）。
【０００８】
以上の図１３の従来のネットワークデータ転送では、一連の処理の中で、サーバ装置およびクライアント装置で相手側のアクティビティ数を意識することなくデータ転送を行っていた。
【０００９】
【発明が解決しようとする課題】
上述したように従来のネットワークデータ転送では、相手側のアクティビティ数を意識することなくデータ転送を行っていたため、以下の問題が発生していた。
【００１０】
（１）  クライアント装置からサーバ装置に対するデータ転送において、クライアント装置でサーバ装置のアクティビティ数を意識していないため、クライアント装置はサーバ装置のアクティビティ数を越えるデータ転送を行った場合、サーバ装置がアクティビティ数を越えた分のデータ転送を受信処理できないため、クライアント装置でタイムアウトとなってデータ転送を再送する必要が生じてしまうことがあり、効率が低下してしまう問題があった。
【００１１】
（２）  サーバ装置でのクラスタリング処理において、サーバ装置でクライアント装置のアクティビティ数を意識していないため、クライアント装置のアクティビティ数分のデータを受信しこれ以上クライアント装置からのデータ転送がない場合であっても、サーバ装置ではクラスタリング処理の監視時間中はクライアント装置からのデータ転送の待合せを行うこととなり、その待合せ時間分だけクライアント装置に対するレスポンスが遅延するという問題があった。
【００１２】
（３）  クライアント装置からのｒｅａｄ処理において、クライアント装置でサーバ装置のアクティビティ数を意識していないため、クライアント装置はサーバ装置に対して何ブロックの先読みが可能か判断できないという問題があった。
【００１３】
（４）  サーバ装置でのｒｅａｄ処理において、サーバ装置でクライアント装置のアクティビティ数を意識していないため、サーバ装置はクライアント装置からのｒｅａｄ要求に対して、何ブロックの先読みを行っておくべきか判断できないという問題があった。
【００１４】
本発明は、これらの問題を解決するため、サーバ装置およびクライアント装置で相手のアクティビティ数を予め判断して最適なデータ転送やｒｅａｄ処理時などの先読みを行い、最適なネットワークデータ転送を実現することを目的としている。
【００１５】
【課題を解決するための手段】
図１、図３、図５、図７、図９および図１１を参照して課題を解決するための手段を説明する。
【００１６】
図１、図３、図５、図７、図９および図１１において、サーバ装置１は、回線を介して複数のクライアント装置２にサービスを提供するものであって、ここでは、サーバアクティビティ１１、クラインアント情報１２、１次記憶装置１３、２次記憶装置１４、クラスタリング機能１５などからなるものである。
【００１７】
クライアント装置２は、サーバ装置１に回線を介して各種サービスの提供を受けるものであって、ここでは、クライアントアクティビティ２１、サーバ情報２２などからなるものである。
【００１８】
次に、動作を説明する。
クライアント装置２がサーバ装置１に電文を初めて送信するときに自己のアクティビティ数を電文にして送信し、その応答電文でサーバ装置１のアクティビティ数を受信して保持し、次回以降の電文送出時にサーバ装置１のアクティビティ数をもとに一時に送出する電文数を制御するようにしている。
【００１９】
また、クライアント装置２がサーバ装置１に電文を順次送信してその応答電文のレスポンス時間が所定値以下の電文数をサーバ装置１のアクティビティ数と予測し、次回以降の電文送出時にサーバ装置１の予測したアクティビティ数をもとに一時に送出する電文数を制御するようにしている。
【００２０】
また、サーバ装置１がクライアント装置２から所定時間内に受信した電文数をクライアント装置のアクティビティ数と予測し、次回以降の電文送出時にクライアント装置２の予測したアクティビティ数をもとに一時に送出する電文数を制御するようにしている。
【００２１】
また、クライアント装置２がライト時に電文をサーバ装置１に送信するときにサーバ装置１のアクティビティ数迄の電文を送出するようにしている。
また、サーバ装置１がライト時に受信した電文を一次記憶装置１３に順次格納して受信数がクラアイアント装置２のアクティビティ数分となったときに２次記憶装置１４に一括して書き出すようにしている。
【００２２】
また、クライアント装置２がリード時にサーバ装置１のアクティビティ数分の電文を要求してサーバ装置１の１次記憶装置１３から電文として一時に読み出すようにしている。
【００２３】
サーバ装置１がリード時にクライアント装置２のアクティビティ数分の電文を２次記憶装置１４から１次記憶装置１３に先読みし、１次記憶装置１３から電文をクライアント装置２に一時に送出するようにしている。
【００２４】
従って、サーバ装置１およびクライアント装置２で相手のアクティビティ数を予め判断して最適なデータ転送やリード処理の先読みなどを行い、最適なネットワークデータ転送を実現することが可能となる。
【００２５】
【発明の実施の形態】
次に、図１および図２を用いて、クライアント装置２が複数の電文を同時に送り、その応答電文のレンスポンス時間からサーバ装置１のアクティビティ数を予測する構成および動作を詳細に説明する。ここで、各構成図において、図示外の記録媒体からプログラムを読み出し主記憶にローディングして起動し、以下に説明する各種制御を行うようにしている。
【００２６】
図１は、本発明の実施例構成図（その１）を示す。
図１において、サーバ装置１は、回線を介して複数のクライアント装置２にサービスを提供するものであって、ここでは、サーバアクティビティ１１を図示のように例えば２つもつものである。
【００２７】
クライアント装置２は、サーバ装置１に回線を介して各種サービスの提供を受けるものであって、サーバ情報２２などを持つものである。ここでは、クライアントアクティビティ２１を図示のように４つもつものである。
【００２８】
サーバ情報２２は、サーバ装置毎に設け、ここでは図示のように
・サーバ名：
・レスポンス時間：
・アクティビティ数：
を持つものである。ここで、サーバ名は、電文を送信してサービスを受けるサーバ装置１の名前である。レスポンス時間は、電文をサーバ装置１に送って返送されてくるまでの時間である。アクテイビティ数は、クライアント装置２が後述する図２の方法に従い、サーバ装置１のアクティビティを予想したものである。
【００２９】
次に、図２のフローチャートに示す順序に従い、図１の構成の動作を詳細に説明する。
図２は、本発明の動作説明フローチャート（その１）を示す。
【００３０】
図２において、Ｓ１は、クライアント装置２が同時に複数の電文を送信、ここでは、サーバ装置１のアクティビティ数よりも多い、▲１▼、▲２▼、▲３▼、▲４▼の４つの電文を連続して送信する。
【００３１】
Ｓ２は、Ｓ１でクライアント装置２から送信されてきた電文をサーバ装置１が受信し、キューイングする。
Ｓ３は、早い順にアクティビティ数分、サーバアクティビティ１１がそれぞれ電文を取り出す。
【００３２】
Ｓ４は、Ｓ３で取り出した電文の処理を行う。
Ｓ５は、Ｓ４で処理した電文を送信元（クライアント装置２）に応答（送信）する。
【００３３】
Ｓ６は、Ｓ５で送信されてきた電文をクライアント装置２が受信し、レスポンス時間（電文をサーバ装置１に送信してから、受信するまでの時間）を記録する。
【００３４】
Ｓ７は、レンスポンス時間の早い、遅いの総数を集計し、早い方のグループの数をサーバアクティビティ数と予測する。遅い方のグループは、サーバ装置１のサーバアクティビティ１１が同時に処理を行うことできなかった電文である。
【００３５】
Ｓ８は、登録する。
以上によって、クライアント装置２は、電文を同時に連続してサーバ装置１のアクティビティ数よりも多く送信し、サーバ装置１から返送されてきた電文のレンスポンス時間をそれぞれ測定して記録し、記録したレンスポンス時間の早いグループの数を求めてこれをサーバアクティビティ数と予測することにより、サーバアクティビティ数（図示の状態では“２”）として予測することが可能となる。
【００３６】
次に、図３および図４を用いて、クライアント装置２から複数の電文を同時に送り、サーバ装置１で同時に受信したサーバアクティビティ数が最も多い数をクライアントアクティビティ数と予測する構成および動作を詳細に説明する。
【００３７】
図３は、本発明の実施例構成図（その２）を示す。
図３において、サーバ装置１は、回線を介して複数のクライアント装置２にサービスを提供するものであって、ここでは、サーバアクティビティ１１を図示のように例えば４つおよびクライアント情報１２を持つものである。
【００３８】
クライアント情報１２は、クライアント装置２毎に設け、ここでは図示のように
・クライアント名：
・要求数：
・アクティビティ数：
を持つものである。ここで、クライアント名は、電文を受信するクライアント装置の名前である。要求数は、サーバアクティビティ１１がクライアント装置２から電文を受信したときに＋１し、応答の電文をクライアント装置２に送信したときに−１し、同時に何個のサーバアクティビティ１１が電文を受信処理中かを管理するものである。アクティビティ数は、クライアント装置２のアクティビティ数を予測したものであって、ここでは、要求数の最大の数である（現在の要求数と、アクティビティ数とを比較し、要求数が多くなれば当該要求数でアクティビティ数を更新して予測したものである。）。
【００３９】
次に、図４のフローチャートに示す順序に従い、図３の構成の動作を詳細に説明する。
図４は、本発明の動作説明フローチャート（その１）を示す。
【００４０】
図４において、Ｓ１１は、クライアント装置２が同時に複数の電文を送信する。
Ｓ１２は、Ｓ１１でクライアント装置２から送信されてきた電文をサーバ装置１が受信し、キューイングする。
【００４１】
Ｓ１３は、早い順にアクティビティ数分、サーバアクティビティ１１がそれぞれ電文を取り出す。
Ｓ１４は、Ｓ１３で取り出した電文の受信数をカウントアップする。
【００４２】
Ｓ１５は、過去の同時に受け付けた数と、現在のカウント数とを比較する。
Ｓ１６は、過去＜現在か判別する。これは、過去の同時に受け付けた数よりも、現在のＳ１４でカウントアップした数の方が大か判別する。ＹＥＳの場合には、Ｓ１７で同時受付数を更新し、Ｓ１８に進む。一方、ＮＯの場合には、Ｓ１８に進む。
【００４３】
Ｓ１８は、取り出した電文の処理を行う。
Ｓ１９は、受信数をカウントダウンする。
Ｓ２０は、送信元に応答の電文を送信する。
【００４４】
Ｓ２１は、Ｓ２０で送信された電文をクライアント装置２が受信する。
以上によって、サーバ装置１は、クライアント装置２から電文を同時に連続してキューイングし、当該キューからサーバアクティビティ１１がそれぞれ電文をアクティビティ数だけ取り出して受信数分だけカウントアップし、このカウントアップした現在の受信数が以前の受信数よりも大きいときに同時受信数（＝クライアントアクティビティ数）を更新することを繰り返し、サーバ装置１はクライアント装置２毎にクライアントアクティビティ数を予測することが可能となる。
【００４５】
次に、図５および図６を用いてクライアント装置２が電文のライト処理をサーバ装置１に行うときのデータ転送の最適化を行うときの構成および動作を詳細に説明する。
【００４６】
図５は、本発明の実施例構成図（その３）を示す。
図５において、サーバ装置１は、回線を介して複数のクライアント装置２にサービスを提供するものであって、ここでは、サーバアクティビティ１１を図示のように例えば２つ持つものである。
【００４７】
クライアント装置２は、サーバ装置１に回線を介して各種サービスの提供を受けるものであって、サーバ情報２２などを持つものである。ここでは、クライアントアクティビティ２１を図示のように４つもつものとする。
【００４８】
サーバ情報２２は、サーバ装置毎に設け、ここでは図示のように
・サーバ名：
・要求数：
・アクティビティ数：
を持つものである。ここで、サーバ名は電文を送信してサービスを受けるサーバ装置の名前である。要求数はサーバ装置１に電文を送信しているクライアントアクティビティ２１の数である。アクティビティ数は、サーバ装置１のアクティビティ数であって、予め既述した図１ないし図２の方法によって獲得あるいは予測して設定したものである。
【００４９】
次に、図６のフローチャートに示す順序に従い、図５の構成の動作を詳細に説明する。
図６は、本発明の動作説明フローチャート（その１）を示す。
【００５０】
図６において、Ｓ３１は、クライアント装置２のアプリ（アプリケーションプログラム）からｗｒｉｔｅ要求を受け取る。
Ｓ３２は、クライアント装置２がｗｒｉｔｅデータを分割して電文とし、クラアイアントアクティビティ２１に渡す。
【００５１】
Ｓ３３は、クライアントアクティビティ２１が要求数をカウントアップする。
Ｓ３４は、要求数≦サーバアクティビティ数か判別する。これは、ｗｒｉｔｅ要求のあった電文の数が、サーバ情報２２に予め設定されているサーバ装置１のアクティビティ数よりも小か判別する。ＹＥＳの場合には、Ｓ３５でサーバアクティビティ数分だけクライアントアクティビティ２１がデータ送信を行う。一方ＮＯの場合には、サーバアクティビティ数を越えた分のクライアントアクティビティ２１がスリープし、Ｓ４１で起こされるまで待機する。
【００５２】
Ｓ３６は、Ｓ３５でクライアント装置２から送信されてきた電文をサーバ装置１のサーバアクティビティ１１がそれぞれ受信する。
Ｓ３７は、Ｓ３６で受信した電文をサーバアクティビティ１１がそれぞれ処理する。
【００５３】
Ｓ３８は、送信元に応答の電文を送信する。
Ｓ３９は、Ｓ３８で送信された電文をクライアント装置２が受信し、要求数からサーバアクティビティ数を引算し、Ｓ４０で０以上か判別し、ＹＥＳのときにＳ４１に進み、ＮＯのときにＳ３３に戻る。
【００５４】
Ｓ４１は、待ちクライアントアクティビティ２１のスリープを起こす（Ｓ３４のＮＯときにスリープさせた、サーバアクティビティ数を越えた分のクライアントアクティビティ２１を起こす）。
【００５５】
Ｓ４２は、要求数をカウントダウンする。そして、Ｓ３３に戻り、繰り返す。
以上によって、クライアント装置２は、ｗｒｉｔｅ時に、サーバ装置のアクティビティ数分の電文をクライアントアクティビティ２１に送信させ、こえる分はスリープさせておき、サーバ装置１から返答の電文を受信したときにスリープさせたクライアントアクティビティ２１を起こして電文を送信させることにより、クライアント装置２は常にサーバ装置１のアクティビティ数分だけ電文を送信し、当該サーバ装置１で電文を同時に受信処理できるようにし、サーバ装置１で電文が受信できなくなってしまい、再送信する必要が生じてしまう事態を無くすことにより、ｗｒｉｔｅ時のデータ転送の最適化を図ることが可能となった。
【００５６】
次に、図７および図８を用いてサーバ装置１でクライアント装置２からの電文をクラスタリングする際の待合せの最適化を行うときの構成および動作を詳細に説明する。
【００５７】
図７は、本発明の実施例構成図（その４）を示す。
図７において、サーバ装置１は、回線を介して複数のクライアント装置２にサービスを提供するものであって、ここでは、サーバアクティビティ１１、１次記憶装置１３、２次記憶装置１４、クライアント情報１２、およびクラスタリング機能１５などを持つものである。
【００５８】
サーバアクティビティ１１は、受信処理などを行うものである。
１次記憶装置１３は、サーバアクティビティ１１がクライアント装置２から送信されてきた電文を受信して一時的に格納するキャッシュである。
【００５９】
２次記憶装置１４は、１次記憶装置１３に一時的に格納した電文をまとめて一括して保存する媒体である。
クライアント情報１２は、クライアン装置２毎に設け、ここでは図示のように
・クライアント名：
・要求数：
・アクティビティ数：
を持つものである。ここで、クライアント名は電文を送信したクライアント装置２の名前である。要求数は受信した電文を処理しているサーバアクティビティ１１の数である。アクティビティ数は、クライアント装置２のアクティビティ数であって、予め既述した図３ないし図４の方法によって獲得あるいは予測して設定したものである。
【００６０】
次に、図８のフローチャートに示す順序に従い、図７の構成の動作を詳細に説明する。
図８は、本発明の動作説明フローチャート（その４）を示す。
【００６１】
図８において、Ｓ５１は、クライアント装置２が同時に複数のｗｒｉｔｅ要求の電文を送信する。
Ｓ５２は、Ｓ５１で送信されてきた電文をサーバ装置１が受信する。
【００６２】
Ｓ５３は、要求数をカウントアップする。
Ｓ５４は、要求数がクライアントアクティビティ数よりも小か判別する。ＮＯの場合には、Ｓ５７に進む。一方、ＹＥＳの場合には、要求数がクライアントアクティビティ数に満たないので、Ｓ５５でメモリ（１次記憶装置１３）上に書き出し、Ｓ５６でスリープし、Ｓ５８で起こされるまで待機する。
【００６３】
Ｓ５７は、メモリ（１次記憶装置１３）に書き出し（追加）、メモリからディスク（２次記憶装置１４）に一括して書き出しする。
Ｓ５８は、スリープしているサーバアクティビティ１１を起こす（Ｓ５６でスリープさせたサーバアクティビティ１１を起こす）。
【００６４】
Ｓ５９は、要求数をカウントダウンする。
Ｓ６０は、応答の電文を返す。
Ｓ６１は、Ｓ６０で送信されたた電文をクライアント装置２が受信する。
【００６５】
以上によって、サーバ装置１は、ｗｒｉｔｅ時に、クライアント装置２のアクティビティ数分の電文をメモリ（１次記憶装置１３）に格納した後、一括して２次記憶装置１４に保存することにより、サーバ装置１におけるｗｒｉｔｅ時のクラスタリング処理（１次記憶装置１３から２次記憶装置１４に電文を一括して保存する処理）の最適化を図ることが可能となった。
【００６６】
次に、図９および図１０を用いてクライアント装置２からサーバ装置１に対するｒｅａｄ処理において先読み要求の最適化を行うときの構成および動作を詳細に説明する。
【００６７】
図９は、本発明の実施例構成図（その５）を示す。
図９において、サーバ装置１は、回線を介して複数のクライアント装置２にサービスを提供するものであって、ここでは、サーバアクティビティ１１を持つものである。
【００６８】
クライアント装置２は、サーバ装置１からサービスの提供を受けるものであって、ここでは、クライアントアクティビティ２１、およびサーバ情報２２からなるものである。
【００６９】
クライアントアクティビティ２１は、受信処理などを行うものである。
サーバ情報２２は、サーバ装置毎に設け、ここでは図示のように
・サーバ名：
・要求数：
・アクティビティ数：
を持つものである。ここで、サーバ名は電文を送信してサービスを受けるサーバ装置の名前である。要求数はサーバ装置１に電文を送信しているクライアントアクティビティ２１の数である。アクティビティ数は、サーバ装置１のアクティビティ数であって、予め既述した図１ないし図２の方法によって獲得あるいは予測して設定したものである。
【００７０】
次に、図１０のフローチャートに示す順序に従い、図９の構成の動作を詳細に説明する。
図１０は、本発明の動作説明フローチャート（その５）を示す。
【００７１】
図１０において、Ｓ７１は、アプリがｒｅａｄ要求をクライアント装置２に行う。
Ｓ７２は、クライアント装置２がＳ７１から受け取ったｒｅａｄ要求をクライアントアクティビティ２１の１つに渡す。
【００７２】
Ｓ７３は、要求数をカウントアップする。
Ｓ７４は、要求数がサーバアクティビティ数よりも小か判別する。ＹＥＳの場合には、Ｓ７５で次のアクティビティを起こし、Ｓ７６に進む。一方、ＮＯの場合には、Ｓ７６に進む。
【００７３】
Ｓ７６は、ｒｅａｄ要求を送信する。
Ｓ７７は、Ｓ７６で送信されてきたｒｅａｄ要求を、サーバ装置１が受信する。
【００７４】
Ｓ７８は、Ｓ７７で受信したサーバ装置１のサーバアクティビティ１１が処理を行う。
Ｓ７９は、応答を行う。
【００７５】
Ｓ８０は、Ｓ７９の応答で送信されてきた電文をクライアント装置２のクライアントアクティビティ２１が受信する。
以上によって、クライアント装置２は、ｒｅａｄ時に、サーバ装置１のアクティビティ数分のｒｅａｄ要求をサーバ装置１に送信し、当該サーバ装置１のサーバアクティビティ１１がｒｅａｄ要求のあったデータを設定した電文を返信し、クライアント装置２のクライアントアクティビティ２１が受信することにより、アプリからのｒｅａｄ要求に対して、クライアントアクティビティ２１で最適な先読みを行っておき、そのデータをアプリに応答するときの最適化を図ることが可能となった。
【００７６】
次に、図１１および図１２を用いてクライアント装置２からサーバ装置１に対するｒｅａｄ処理で、サーバ装置１での先読み処理の最適化を行うときの構成および動作を詳細に説明する。
【００７７】
図１１は、本発明の実施例構成図（その６）を示す。
図１１において、サーバ装置１は、回線を介して複数のクライアント装置２にサービスを提供するものであって、ここでは、サーバアクティビティ１１、１次記憶装置１３、２次記憶装置１４、およびクライアント情報１２を持つものである。
【００７８】
サーバアクティビティ１１は、受信処理などを行うものである。
１次記憶装置１３は、サーバアクティビティ１１が２次記憶装置１４から先読みして格納するキャッシュである。
【００７９】
２次記憶装置１４は、データを保存する媒体である。
クライアント情報１２は、クライアント装置２毎に設け、ここでは図示のように
・クライアント名：
・要求数：
・アクティビティ数：
を持つものである。ここで、クライアント名は電文を送信したクライアント装置２の名前である。要求数は受領した電文を処理しているサーバアクティビティ１１の数である。アクティビティ数は、クライアント装置２のアクティビティ数であって、予め既述した図３ないし図４の方法によって獲得あるいは予測して設定したものである。
【００８０】
次に、図１２のフローチャートに示す順序に従い、図１１の構成の動作を詳細に説明する。
図１２は、本発明の動作説明フローチャート（その６）を示す。
【００８１】
図１２において、Ｓ８１は、クライアント装置２が同時に複数のｒｅａｄ要求を送信する。
Ｓ８２は、サーバ装置１が送信された電文を受信する。
【００８２】
Ｓ８３は、要求数をカウントアップする。
Ｓ８４は、要求数がクライアントアクティビティ数よりも小か判別する。ＹＥＳの場合には、Ｓ８５で別のサーバアクティビティ１１を起こし、Ｓ８７に進む。一方、Ｓ８４のＮＯの場合には、Ｓ８７に進む。
【００８３】
Ｓ８７は、メモリ（１次記憶装置１３）上にデータ（電文）があるか判別する。ＹＥＳの場合には、Ｓ８９でメモリ（１次記憶装置１３）から読み出し、Ｓ９０に進む。一方、Ｓ８７のＮＯの場合には、Ｓ８８でディスク（２次記憶装置１４）からデータ（電文）を読み出しメモリ（１次記憶装置１３）にコピーし、Ｓ８９でメモリ（１次記憶装置１３）から読み出し、Ｓ９０に進む。
【００８４】
Ｓ９０は、要求数をカウントダウンする。
Ｓ９１は、応答を行う。
Ｓ９２は、Ｓ９１の応答で送信されてきた電文をクライアント装置２のクライアントアクティビティ２１が受信する。
【００８５】
以上によって、サーバ装置１は、ｒｅａｄ時に、クライアント装置２のアクティビティ数分の先読みを行って２次記憶装置１４から１次記憶装置１３に格納しておき、当該サーバ装置１のサーバアクティビティ１１がｒｅａｄ要求のあったデータを、先読みされて格納されたメモリ（１次記憶装置１３）から読み出し、クライアント装置２に送信することが可能となる。
【００８６】
【発明の効果】
以上説明したように、本発明によれば、サーバ装置１およびクライアント装置２で相手のアクティビティ数を予め判断して最適なデータ転送やリード処理の先読みをなどを行う構成を採用しているため、サーバ装置１と複数のクライアント装置２との間で最適なネットワークデータ転送を実現することができる。これらにより、
（１）  クライアント装置２からサーバ装置１に対するデータ転送時に、クライアント装置２でサーバ装置１のアクティビティ数を意識することで、クライアント装置２はサーバ装置１のアクティビティ数を越えるデータ転送を行わない最適なデータ転送が可能となる。
【００８７】
（２）  サーバ装置１のｗｉｔｅクラスタリング処理時に、クライアント装置２のアクティビティ数を意識することで、サーバ装置１のｗｒｉｔｅクラスタリング処理で無駄な待合せを行わない最適なデータ転送が可能となる。
【００８８】
（３）  クライアント装置２からのｒｅａｄ時に、クライアント装置２でサーバ装置１のアクティビティ数を意識することで、クライアント装置２に最適なブロック数分のリード要求を行うことが可能となる。
【００８９】
（４）  サーバ装置１でのｒｅａｄ時に、サーバ装置１でクライアント装置２のアクティビティ数を意識することで、サーバ装置１に最適なブロック数分の先読みを事前に行っておくことが可能となる。
【図面の簡単な説明】
【図１】本発明の実施例構成図（その１）である。
【図２】本発明の動作説明フローチャート（その１）である。
【図３】本発明の実施例構成図（その２）である。
【図４】本発明の動作説明フローチャート（その２）である。
【図５】本発明の実施例構成図（その３）である。
【図６】本発明の動作説明フローチャート（その３）である。
【図７】本発明の実施例構成図（その４）である。
【図８】本発明の動作説明フローチャート（その４）である。
【図９】本発明の実施例構成図（その５）である。
【図１０】本発明の動作説明フローチャート（その５）である。
【図１１】本発明の実施例構成図（その６）である。
【図１２】本発明の動作説明フローチャート（その６）である。
【図１３】従来技術の説明図である。
【符号の説明】
１：サーバ装置
１１：サーバアクティビティ
１２：クライアント情報
１３：１次記憶装置（メモリ）
１４：２次記憶装置（ディスク）
１５：クラスタリング機能
２：クライアント装置
２１：クライアントアクティビティ
２２：サーバ情報
【図１】
0004346698.tif 000002
【図２】
0004346698.tif 000003
【図３】
0004346698.tif 000004
【図４】
0004346698.tif 000005
【図５】
0004346698.tif 000006
【図６】
0004346698.tif 000007
【図７】
0004346698.tif 000008
【図８】
0004346698.tif 000009
【図９】
0004346698.tif 000010
【図１０】
0004346698.tif 000011
【図１１】
0004346698.tif 000012
【図１２】
0004346698.tif 000013
【図１３】
0004346698.tif 000014