(57)【要約】【課題】帯域幅が最も広くデータ転送速度が最も速いルートを確実に確保することにより、ユーザのストレスを軽減できるようにする。【解決手段】ネットワーク上のデータ供給源としてのサーバ８に、クライアント１とサーバ８，８'，８”間で最も広い帯域幅を確保できる経路を探索する機能を有するエージェント１０を設け、クライアント１からのデータ転送要求に応じてエージェント１０をクライアント１に送信し、クライアント１上でエージェント１０'の機能を実行して探索された経路でデータ転送を実行するようにすることにより、少なくともサーバ１にアクセスした時点で最適なルートを自動的に見つけられるようにして、データ転送の待ち時間をできるだけ短くすることができるようにする。【選択図】図１
2007209014.tif 000002
【特許請求の範囲】
【請求項１】
データ転送要求を行うクライアントとデータ供給を行うサーバを通信の帯域幅が変化するネットワーク上に備えたデータ通信システムにおいて、
上記クライアントと上記サーバ間で最も広い帯域幅を確保できる経路を探索する機能を有するエージェントを上記サーバに設け、上記クライアントからのデータ転送要求に応じて上記サーバは上記エージェントを上記クライアントへ送信し、上記クライアントに駐在したエージェントは、上記データ転送要求時に、帯域幅が最も広くなっている経路を探索し、上記探索した経路を用いてデータ転送を行うよう命令することを特徴とするデータ通信システム。
【請求項２】
上記クライアントに駐在したエージェントは、経路を探索した結果に基づいて、最も帯域幅が広くなる経路に動的に切り替えることを特徴とする請求項１に記載のデータ通信システム。
【請求項３】
上記クライアントに駐在したエージェントは、帯域幅が最も広くなっている経路を動的に探索し、上記探索した経路を用いてデータ転送を行うよう命令することを特徴とする請求項１又は２に記載のデータ通信システム。
【請求項４】
上記エージェントは、上記サーバと共通するデータを格納した複数のサーバが他にもある時には、上記複数のサーバの中でどれが最も広い帯域幅を確保できるかも含めて経路の探索を実行することを特徴とする請求項１〜３の何れか１項に記載のデータ通信システム。
【請求項５】
上記クライアントに駐在したエージェントは、経路を探索する機能を繰り返し実行し、最も帯域幅が広くなる経路に動的に切り替えることを特徴とする請求項４に記載のデータ通信システム。
【請求項６】
上記クライアントに駐在したエージェントは、上記各サーバへのアクセス接続状況を監視し続け、上記アクセス接続状況に応じて動的にサーバを切り替えることを特徴とする請求項５に記載のデータ通信システム。
【請求項７】
ネットワーク上の複数のサーバに、各サーバの接続経路のうち最も広い帯域幅を確保できる経路を探索する機能を有するエージェントを夫々設け、上記夫々のエージェントが探索した結果を相互に通信し、クライアントからあるサーバに対するデータ転送要求に応じて、上記サーバが上記エージェントを上記クライアントに送信し、上記通信の結果検出された最も広い帯域幅の経路を用いてデータ転送を行うよう命令することを特徴とするデータ通信システム。
【請求項８】
上記複数のサーバに散在している各エージェントは、経路を探索する機能をクライアントからのデータ転送要求とは無関係に繰り返し実行することを特徴とする請求項７に記載のデータ通信システム。
【請求項９】
上記エージェントは、送信先のクライアント自身の動作環境を調べ、調べた結果をデータ供給源としてのサーバに伝える機能も有することを特徴とする請求項１〜８の何れか１項に記載のデータ通信システム。
【請求項１０】
データ転送要求を行うクライアントとデータ供給を行うサーバを通信の帯域幅が変化するネットワーク上に備えたデータ通信システムにおけるデータ通信方法において、
上記クライアントからのデータ転送要求に応じて上記サーバは予め上記サーバに設けられたエージェントを上記クライアントへ送信し、上記クライアントに駐在した上記エージェントは、上記データ転送要求時に、上記クライアントと上記サーバ間で最も広い帯域幅を確保できる経路を探索する機能を上記クライアント上で実行し、これにより探索された経路を用いてデータ転送を行うよう命令することを特徴とするデータ通信方法。
【請求項１１】
ネットワーク上の複数のサーバに夫々設けたエージェントが、各サーバの接続経路のうち最も広い帯域幅を確保できる経路を探索してそれぞれのエージェントが探索した結果を相互に通信し、クライアントからあるサーバに対するデータ転送要求に応じて、上記サーバが上記エージェントを上記クライアントに送信し、上記通信の結果検出された最も広い帯域幅の経路を用いてデータ転送を行うよう命令することを特徴とするデータ通信方法。
【請求項１２】
データ転送要求を行うクライアントとデータ供給を行うサーバを通信の帯域幅が変化するネットワーク上に備えたデータ通信システムにおけるデータ通信方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体において、
上記クライアントからのデータ転送要求に応じて上記サーバは予め上記サーバに設けられたエージェントを上記クライアントへ送信し、上記クライアントに駐在した上記エージェントは、上記データ転送要求時に、上記クライアントと上記サーバ間で最も広い帯域幅を確保できる経路を探索する機能を上記クライアント上で実行し、これにより探索された経路を用いてデータ転送を行うよう命令することをコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１３】
ネットワーク上の複数のサーバに夫々設けたエージェントが、各サーバの接続経路のうち最も広い帯域幅を確保できる経路を探索してそれぞれのエージェントが探索した結果を相互に通信し、クライアントからあるサーバに対するデータ転送要求に応じて、上記サーバが上記エージェントを上記クライアントに送信し、上記通信の結果検出された最も広い帯域幅の経路を用いてデータ転送を行うよう命令することをコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ通信システムおよび方法、記録媒体に関し、特に、インターネットのように時々刻々と通信の帯域幅が変化するネットワーク上でのデータ通信制御に用いて好適なものである。
【背景技術】
【０００２】
近年、コンピュータ等に用いる中央処理装置（ＣＰＵ）の処理能力の向上、ハードウェアを動かすオペレーティングシステム（ＯＳ）の高機能化、ネットワークにおける通信情報の大容量化とディジタル化などに伴い、テキスト、画像、音声等の様々な情報を複合的に扱うことが可能なネットワークが広く用いられている。その１つの例として、全世界に存在する各情報供給源である複数のサーバが持つネットワークを相互接続した形のインターネットがある。
【０００３】
このインターネットでは、クライアント側からある目的のサーバに対してデータを要求するためにアクセスすると、そのクライアントと目的のサーバとが直接接続されるのではなく、ネットワーク上に存在する幾つもの他のサーバやルータを経由して接続が行われる。そして、どのような経路で接続されるかは、各サーバやルータにあらかじめ定められたルールに従って決められるので、基本的にはクライアントユーザには分からない。
【０００４】
また、このインターネットでは、サーバやルータだけでなく、クライアントもネットワーク上に数多く存在している。つまり、このインターネットは１：１の通信ではなく、多：多の通信を基本としているので、複数のクライアントから複数のサーバに対して同時にアクセスが行われているのが通常である。この場合、各ネットワークの接続状態は時々刻々と変化しており、その中で複数のユーザから同じサーバに対して同時にアクセスされるケースもある。
【０００５】
したがって、あるクライアントからネットワークを介してある目的のサーバに対してデータの要求をしたときに、経由するネットワークの太さやそのときの混雑度等によって、データ転送速度が大きく異なることとなる。つまり、データ通信の帯域幅は、どのタイミングでどの経路を通って接続するかということによって変わる。よって、同じクライアントから同じサーバに対してアクセスしたとしても、いつでも同じ時間でデータ通信が行われる訳ではない。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述のように、例えばインターネットのような多：多の通信を行うネットワークでは、経由するネットワークの太さや混雑度等によってデータ通信の帯域幅が大きく異なってくる。そのため、例えばクライアントからあるサーバにアクセスをしたときに十分な帯域幅を確保することができず、データ転送に非常に長い時間がかかってしまうことがよくあった。
【０００７】
目的とするデータを格納したサーバが１つしかない場合、基本的にクライアントのユーザはネットワークの経路を自由に選ぶことができないので、そのサーバのアドレスを入力してアクセスした後は、データ転送が完了するまでただ待つしかない。そのため、データ転送に長い時間がかかる場合には多大なストレスがたまってしまうという問題があった。特に、１つのサーバに対して多くのユーザがアクセスをしているときは、データを受け取るまでに極めて多くの時間がかかってしまい、ユーザのストレスは大きなものとなる。
【０００８】
このような問題に鑑みて、情報供給源のサイトでは、同じデータを格納したサーバを複数用意しておき、クライアントからのアクセスが分散するようにしていることがある。このような場合、ユーザは任意のサーバを選んで目的のデータを受信することができる。しかしながら、その選択は各サーバの知名度やユーザの勘に依るところが大きく、選択したサーバが他のサーバより広い帯域幅を確保できているかどうかは不明である。
【０００９】
これに対し、インターネットの通信プロトコルであるＴＣＰ／ＩＰのコマンドの中に、クライアントからサーバまでのネットワーク的な距離（物理的な距離ではなくデータ転送にかかる時間）を調べるためのpingコマンドがある。このコマンドを利用すれば、ユーザは同じデータを格納した複数のサーバの中で最も近いサーバを選ぶことができる。同じようなコマンドは、他のプロトコルやＯＳにも用意されている。
【００１０】
しかしながら、このようなコマンドを利用したとしても、インターネットではネットワークの混雑度が刻々と変化しているので、通信負荷の最も軽いサーバが選ばれていることは保証し得ない。すなわち、上述のコマンドを使って各サーバまでのネットワーク的な距離を順次調べて最も近いサーバを確認しても、その後そのサーバに接続するとき、あるいは接続した後では既に状況が変わっており、その時点で必ずしも通信負荷が最も軽いとは限らないのである。
【００１１】
よって、このようなコマンドを利用してユーザが良いと考えたサーバを選択したとしても、結局はそのサーバには広い帯域幅が確保されていないことがよくあった。この場合は、せっかくコマンドを使ってネットワーク的な距離が最短のサーバを調べたにもかかわらず、やはりデータ転送に非常に長い時間がかかってしまうこととなり、ユーザに多くのストレスを与える結果となってしまう。
【００１２】
また、コンピュータは通常、例えば画像ファイルを送受信するときと音声ファイルを送受信するとき、あるいはテキストファイルを送受信するときでポートの割り当てが異なる。これらのポートは、クライアント側で起動されているアプリケーションによって利用されていることがある。したがって、接続したサーバが偶然にも負荷が少なく、サーバ側からデータを読み出し易い状況であっても、クライアント側のポートの制約によって高い転送レートが得られないことがある。
【００１３】
さらに、クライアント側のセキュリティ等のために、あるポートに関して使用が拒否されていることもある。しかしながら、アプリケーションを立ち上げているクライアント側ではそのことを確認することができず、使用できないポートに対応するデータの受信をサーバ側に要求してしまうことがある。この場合は、サーバからクライアントの入口までデータが送られてきた後、受信できない旨のメッセージが表示されることとなり、ユーザに無駄な待機時間を強いることになるという問題もあった。
【００１４】
本発明は、このような問題を解決するために成されたものであり、クライアントからネットワークを介してサーバにデータの要求をしたときに、帯域幅が最も広くデータ転送速度が最も速いルートを確実に確保することにより、ユーザのストレスを軽減できるようにすることを目的とする。
また、本発明は、クライアント側のマシン環境に応じて無駄なデータ転送を行わないようにすることにより、ユーザのストレスを軽減できるようにすることをも目的とする。
【課題を解決するための手段】
【００１５】
本発明のデータ通信システムの第１の態様は、データ転送要求を行うクライアントとデータ供給を行うサーバを通信の帯域幅が変化するネットワーク上に備えたデータ通信システムにおいて、上記クライアントと上記サーバ間で最も広い帯域幅を確保できる経路を探索する機能を有するエージェントを上記サーバに設け、上記クライアントからのデータ転送要求に応じて上記サーバは上記エージェントを上記クライアントへ送信し、上記クライアントに駐在したエージェントは、上記データ転送要求時に、帯域幅が最も広くなっている経路を探索し、上記探索した経路を用いてデータ転送を行うよう命令することを特徴とする。
本発明のデータ通信システムの第２の態様は、ネットワーク上の複数のサーバに、各サーバの接続経路のうち最も広い帯域幅を確保できる経路を探索する機能を有するエージェントを夫々設け、上記夫々のエージェントが探索した結果を相互に通信し、クライアントからあるサーバに対するデータ転送要求に応じて、上記サーバが上記エージェントを上記クライアントに送信し、上記通信の結果検出された最も広い帯域幅の経路を用いてデータ転送を行うよう命令することを特徴とする。
本発明のデータ通信方法の第１の態様は、データ転送要求を行うクライアントとデータ供給を行うサーバを通信の帯域幅が変化するネットワーク上に備えたデータ通信システムにおけるデータ通信方法において、上記クライアントからのデータ転送要求に応じて上記サーバは予め上記サーバに設けられたエージェントを上記クライアントへ送信し、上記クライアントに駐在した上記エージェントは、上記データ転送要求時に、上記クライアントと上記サーバ間で最も広い帯域幅を確保できる経路を探索する機能を上記クライアント上で実行し、これにより探索された経路を用いてデータ転送を行うよう命令することを特徴とする。
本発明のデータ通信方法の第２の態様は、ネットワーク上の複数のサーバに夫々設けたエージェントが、各サーバの接続経路のうち最も広い帯域幅を確保できる経路を探索してそれぞれのエージェントが探索した結果を相互に通信し、クライアントからあるサーバに対するデータ転送要求に応じて、上記サーバが上記エージェントを上記クライアントに送信し、上記通信の結果検出された最も広い帯域幅の経路を用いてデータ転送を行うよう命令することを特徴とする。
本発明のコンピュータ読み取り可能な記録媒体の第１の態様は、データ転送要求を行うクライアントとデータ供給を行うサーバを通信の帯域幅が変化するネットワーク上に備えたデータ通信システムにおけるデータ通信方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体において、上記クライアントからのデータ転送要求に応じて上記サーバは予め上記サーバに設けられたエージェントを上記クライアントへ送信し、上記クライアントに駐在した上記エージェントは、上記データ転送要求時に、上記クライアントと上記サーバ間で最も広い帯域幅を確保できる経路を探索する機能を上記クライアント上で実行し、これにより探索された経路を用いてデータ転送を行うよう命令することをコンピュータに実行させるためのプログラムを記録したことを特徴とする。
本発明のコンピュータ読み取り可能な記録媒体の第２の態様は、ネットワーク上の複数のサーバに夫々設けたエージェントが、各サーバの接続経路のうち最も広い帯域幅を確保できる経路を探索してそれぞれのエージェントが探索した結果を相互に通信し、クライアントからあるサーバに対するデータ転送要求に応じて、上記サーバが上記エージェントを上記クライアントに送信し、上記通信の結果検出された最も広い帯域幅の経路を用いてデータ転送を行うよう命令することをコンピュータに実行させるためのプログラムを記録したことを特徴とする。
【発明の効果】
【００１６】
本発明は上述したように、ネットワーク上のデータ供給源としてのサーバに、クライアントとサーバ間で最も広い帯域幅を確保できる経路を探索する機能を有するエージェントを設け、クライアントからのデータ転送要求に応じてサーバはエージェントをクライアントに送信し、クライアントに駐在したエージェントは、データ転送要求時に、帯域幅が最も広くなっている経路を探索し、探索された経路を用いてデータ転送を行うように命令するので、サーバにアクセスした時点で最適なルートが自動的に見つけられ、そのルートでデータ転送が行われるようになるので、データ転送の待ち時間をできるだけ短くすることができ、ユーザのストレスを軽減することができる。
【００１７】
本発明の他の特徴によれば、クライアントに送信されたエージェントが経路探索機能を繰り返し実行するようにしたので、データ転送開始後のネットワークの接続状況等に応じて動的に経路が切り替えられ、時間と共に変化するネットワークの混雑度に対応して常に最適な経路でデータ転送を行うことができ、データ転送の時間を更に短くすることができる。
【００１８】
本発明のその他の特徴によれば、ネットワーク上の複数のサーバに、各サーバの接続経路のうち広い帯域幅を確保できる経路を探索する機能を有するエージェントを夫々設け、それぞれのエージェントで探索した結果を相互に通信するようにし、クライアントからあるサーバに対するデータ転送要求に応じて、各エージェントにより探索された経路でデータ転送を行うようにしたので、最適な経路を探索するために各エージェントは、自分の接続先のルートだけを調べればよく、個々の負荷を格段に減らすことができる。
【００１９】
本発明のその他の特徴によれば、複数のサーバ上に散在している各エージェントが、経路を探索する機能をクライアントからのデータ転送要求とは無関係に繰り返し実行するようにしたので、時々刻々と変わるネットワークの混み具合を常に正確に把握することができ、データ転送の要求に応じて直ちに最適な経路でデータ転送を開始することができる。また、データ転送を開始した後でも、刻々と変わるネットワークの混み具合に合わせてリアルタイムに近い形で最適な経路に順次切り替えることができ、アクセスからデータ転送完了までの時間を更に短くしてユーザのストレスを大幅に軽減することができる。
【００２０】
本発明のその他の特徴によれば、エージェントの送信先であるクライアント自身の動作環境を調べ、調べた結果をデータ供給源としてのサーバに伝える機能もエージェントに持たせたので、最も広い帯域幅の経路でしかもクライアント側で受信可能なデータだけを転送するようにすることができ、無駄なデータ転送をなくしてクライアント側のユーザにとってストレスのない最適な状態でデータ転送を行うことができ、かつ、ネットワークの負荷を軽減することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の一実施形態を図面に基づいて説明する。
図１は、本実施形態を説明するための図であり、インターネット上におけるあるクライアントからあるサーバへの接続ルートの例を示している。
【００２２】
図１において、１はクライアントマシン（以下、クライアントという）、８は情報供給源としてのサーバマシン（以下、サーバという）、２〜７はクライアント１とサーバ８との間をつなぐ中継サーバマシンあるいはルータ（以下、中継サーバという）である。なお、ここではクライアント１とサーバ８とをそれぞれ１つのみ示したが、実際にはインターネット上に多数存在している。
【００２３】
サーバ８は、供給する情報として例えばデータＡ，Ｂ，Ｃ，Ｄを持っているとする。また、これらのデータの転送要求が多数のクライアントから１つのサーバ８に集中しないように、同じデータＡ，Ｂ，Ｃ，Ｄを持つサーバ８'，８”がサーバ８とは別個に設けられている。なお、これらのサーバ８，８'，８”間のネットワーク的な距離は、必ずしも近いとは限らない。
【００２４】
これらのサーバ８，８'，８”のうち少なくとも１つ（図１の例ではサーバ８）は、エージェント１０を備えている。エージェントとは、何を処理するべきかを自ら判断し、能動的に実行することが可能なソフトウェア・モジュールのことである。エージェントは、所定のデータとそれを扱うための手続きといったオブジェクトと同じ機能を備える。
【００２５】
本実施形態のエージェント１０は、例えばサン・マイクロシステムズ社が開発したＪａｖａ（登録商標）などのように、各クライアント上のＯＳあるいはプロトコル等に依存することなく動作可能な手段で構成されており、ネットワーク上を自ら移動して各クライアント上で所定の処理を実行するものである。また、マイクロソフト社が提唱しているＡｃｔｉｖｅＸなどを利用すれば、選択的に特定のＯＳ上で実行させることもできる。本実施形態のエージェント１０が行う所定の処理の１つは、クライアントとサーバとをつなぐ様々なルートのうち、どのルートが最も広い帯域幅を確保できるかを探すことである。
【００２６】
すなわち、図１の例で、クライアント１とサーバ８，８'，８”とを結ぶ幾つかのルート（例えばクライアント１からサーバ８に至る経路は（１）〜（５）の５つある）のうち、どのルートが一番帯域幅が広く、ネットワーク的な距離が近いかを検索する。この処理は、例えば、クライアント１から各サーバ８，８'，８”に対して決まった長さのデータを様々なルートで送り、その応答が返ってくるまでの時間を計ることによって実現できる。このような処理でどのルートが最も良いかが分かれば、その後はそのルートでデータ転送が行われる。
【００２７】
次に、上記のように構成したデータ通信システムの動作を説明する。
クライアント１からのデータ転送の要求は、何れかの経路を通って、エージェント１０を備えるサーバ８に一旦取り込まれる。なお、ここで言うデータ転送の要求とは、ｆｔｐコマンドによるファイル転送の要求や、ホームページの表示に伴うテキスト、画像、音声データの転送要求の他、あらゆる種類のアクセスを含む。
【００２８】
上記データ転送の要求を受けたサーバ８は、自分が備えるエージェント１０をクライアント１に送信する。クライアント１に駐在したエージェント１０'は、クライアント１が備えるハードウェア資源を利用して、自分を送信したサイトが管理する複数のサーバ８，８'，８”に様々なルートでアクセスし、クライアント１とサーバ８，８'，８”間の帯域幅、ネットワーク的な距離を調べることにより、最も広い帯域がとれて転送速度が速くなる効率のよいルートを探し出す。
【００２９】
このようにしてクライアント１に駐在したエージェント１０'の処理によって最適な経路が判明すると、クライアント１からサーバ８，８'，８”の何れか（例えば、要求されたデータをサーバ８，８'から送るよりもサーバ８”から送った方が速いとの結果が得られていれば、自動的にサーバ８”が選ばれる）に対して、その判明した最適な経路でデータ転送を実行する旨の命令が送られる。この命令を受けたサーバ８”は、その最も効率のよい経路でクライアント１に対してデータ転送を行う。
【００３０】
以上説明したように、本実施形態によれば、アクセスした時点で最適なルートが確保され、そのルートによって自動的にデータ転送が行われるようになるので、データ転送の待ち時間をできるだけ短くすることができ、ユーザのストレスを軽減することができる。
【００３１】
なお、転送するデータの量が膨大な場合（例えば、静止画や動画、あるいは大きなプログラムなどのデータ）には、アクセスした時点で最適なルートによってデータ転送しても、ある程度の時間がかかる。そして、その間にも各ネットワークの接続状態は変化しており、混雑度も刻々と変化している。よって、データ転送を行っている最中にそのルートが最適なものでなくなる可能性もある。
【００３２】
そこで、クライアント１に駐在したエージェント１０'は、上述した最適なルートを探す処理を所定の時間間隔で繰り返し行い、その結果に応じてルートを動的に切り替えてデータ転送を続けるようにしても良い。特に、各サーバ８，８'，８”へのアクセス数が刻々と変化することが多いので、エージェント１０'はクライアント１上でその接続状況を判断し続け、動的にサーバを切り替えて同じデータの転送を続けるようにする。
【００３３】
このとき、１つのデータの転送途中でサーバを切り替えたとき、新しいサーバがそのデータの転送を最初からやり直していたのでは却って時間がかかってしまう。そのため、エージェント１０'は、どこまでデータ転送が完了しているかを常に監視し、サーバが切り替えられたときに次にどこからデータ転送を開始すれば良いかを新しいサーバに伝えるレジューム機能を備える。なお、ここではエージェント１０'がレジューム機能を備えているが、同様の機能をサーバ同士の通信によって実現しても良い。
【００３４】
このように、エージェント１０によるルート探索処理を所定時間ごとに行うことによって刻々と変化するネットワークの状況を絶えず監視し、動的にルートを切り替えるようにすることにより、時間と共に変化するネットワークの混雑度に対応して常に最適なルートでデータ転送を行うことができ、データ転送の時間を更に短くすることができる。
【００３５】
次に、本発明の第２の実施形態について説明する。
上述の実施形態では、エージェント１０は情報供給源としてのサーバ８にのみ備えられており、最適なルートの探索は、このサーバ８からクライアント１に送られた１つのエージェント１０'のみによって行っていた。もちろんこれでも最適なルートは探索できるが、１つのエージェント１０'で全てのルートを調べるのは非常に負荷が大きい。
【００３６】
そこで第２の実施形態では、中継サーバ２〜７も含めてネットワーク上の任意の場所に複数のエージェント１０を散在させておく。そして、各エージェント１０に対して、エージェント同士が協調して動作可能とする機能を付加し、各エージェント１０がルート探索の処理を行った結果のデータをやり取りするようにする。
【００３７】
各エージェント１０が行うルート探索の処理は、自分が存在しているサーバの接続先のルートに対してのみ行う。これにより効率の良いルートの順を検出し、その結果を他のサーバ内のエージェント１０に伝える。このようにすれば、何らかのデータ転送要求があったときに、各エージェント１０が検出した効率の良いルートをつなげば、クライアントから目的のサーバに至るまでの最適な経路が得られる。
【００３８】
すなわち、本実施形態は、ネットワーク上に分散して存在する複数のエージェント１０が互いに通信し合って、ネットワークの混雑度等を全体で把握するものである。このように構成すれば、最適な経路を探索するために各エージェント１０は、自分の接続先のルートだけを調べればよく、個々の負荷を格段に減らすことができる。
【００３９】
本実施形態において、各エージェント１０は、クライアント１からの要求に応じてルート探索の処理を開始するのではなく、例えばある決まった時間間隔で定期的に処理を実行する。したがって、時々刻々と変わるネットワークの混み具合を常に正確に把握することができる。
【００４０】
これにより、データ転送を要求するべくあるサーバにアクセスしたときには、そのサーバが有するエージェント１０がクライアント１に送られるが、その送られたエージェント１０'は、他のサーバに備えられたエージェントとの通信によってその時点でどの経路が最適であるかが既に分かっており、直ちに最適な経路でデータ転送を開始することができる。
【００４１】
また、最初にデータ転送を要求するために何れかのサーバにアクセスする際にも、既に知れている最適なルートでデータ転送の要求を行うことができる。さらに、データ転送を開始した後でも、刻々と変わるネットワークの混み具合に合わせてリアルタイムに近い形で最適なルートに順次切り替えることができ、アクセスからデータ転送完了までの時間を更に短くしてユーザのストレスを大幅に軽減することができる。
【００４２】
次に、本発明の第３の実施形態について説明する。
上述した第１、第２の実施形態では、エージェント１０は、特にネットワーク上の混み具合、つまり帯域幅の問題に関して最適な解を探すものであった。これに対して第３の実施形態では、エージェント１０は、このような機能に加えて、駐在先のクライアント１自身のマシン環境の問題に関しても最適な解を探す機能を備える。
【００４３】
従来例でも述べたように、クライアントマシンに割り当てられている各ポートが、クライアント側で起動されているアプリケーションによって利用されていたり、セキュリティのために使用が拒否されていることがある。また、ポートの使用はできても、クライアント側の他の動作環境によっては、データの受信が制約される場合もある。
【００４４】
このような場合には、せっかく最適なルートを探索してデータ転送を行っても、クライアントマシンの入口部分で受信が拒否されてしまい、そのデータ転送が無駄に終わってしまうことがある。この場合ユーザは、しばらく待った挙げ句にデータ受信ができないことを知ることとなり、そのストレスは非常に大きなものとなる。
【００４５】
そこで、第３の実施形態では、クライアント１に駐在したエージェント１０'にそのクライアント１側の動作環境も調べさせるようにすることで、帯域幅をいかにうまく確保するかということと同時に、無駄なデータ転送をいかに行わないようにするかということを調べ、ユーザにとってストレスのない最適解を得られるようにする。
【００４６】
図２は、第３の実施形態でエージェント１０が実行する処理の例を示すフローチャートである。
図２において、クライアント１に駐在したエージェント１０'は、まずステップＳ１で、上述の実施形態で述べたのと同様の手順で帯域幅を調べ、要求するデータの供給源であるサーバ８，８'，８”までの最適なルートを探索する。
【００４７】
次に、ステップＳ２では、クライアント１側で画像（静止画や動画）を受信できる態勢にあるかどうか、つまり、画像用のポートが空いているかどうかを調べる。ステップＳ３では、クライアント１側で音声を受信できるかどうか、つまり、音声用のポートが空いているかどうかを調べる。
【００４８】
ステップＳ４では、クライアント１上で動作しているブラウザの種類が何であるかを調べる。ブラウザの種類によっては、例えばＡｃｔｉｖｅＸ系のソフトウェアやデータを扱えない場合があるなど、使用しているブラウザによって制約を受けることがあるからである。ステップＳ５では、クライアント１側の記憶媒体の残り容量などを見ることによって、受信できるデータ量を調べる。
【００４９】
また、次のステップＳ６では、クライアント１に備えられているＣＰＵの処理能力、例えばクライアント１上で立ち上げられているアプリケーションの重さやＣＰＵパワー等を考慮して、データ転送にどれくらいの処理能力をさばけるかを調べる。
【００５０】
以上のステップＳ１〜Ｓ６の処理で確認した内容は、全て情報として保持している。なお、これらの処理順序はこの図２の例には限定されない。また、クライアント１のマシン環境を調べる処理内容自体も、この図２の例に限定されるものではない。最後に、ステップＳ７で、上記ステップＳ１〜Ｓ６の処理で得た各種情報を、データ転送の命令と共にサーバ８，８'，８”の何れかに送信する。
【００５１】
サーバ側では、クライアント１側から送られてきたこれら情報に基づいて、クライアント１側にとって最適な形態でデータ転送を行う。このとき、探索された最適なルートでデータ転送を行うことはもちろんであるが、クライアント１側のマシン環境に応じてどのような形態でデータ転送を行うかは、サーバ側のアプリケーションとして任意に設定可能である。ここではそのアプリケーションについては詳しく述べないが、一例を挙げれば以下の通りである。
【００５２】
例えば、動画用のポートの使用が禁止されているか、許可されていても空いていない場合には、例え動画の転送がクライアント１から要求されていても、これを転送すれば結局は無駄に終わるので、動画の転送は行わず、その代わりにＧＩＦの形態で画像を送るようにする。クライアント１がＧＩＦ画像の受信もできない状態であれば、画像の転送は一切行わず、テキスト情報のみを転送するようにする。
【００５３】
このようにすると、クライアント１側から見ると、要求したデータを受け取ることができないことになるが、少なくとも無駄なデータ転送を行わなくても済むので、待たされた挙げ句に受信できないということがなくなり、ユーザのストレスを軽減することができる。また、電話回線等を介してネットワークに接続している場合は、無駄なデータ転送が行われないので、接続料金を節約することもできる。このような無駄なデータ転送が減ることにより、ネットワーク自体の通信負荷が軽減されるというメリットも有する。
【００５４】
また、例えばホームページ上で動画配信を受けようとする場合に、最初にホームページにアクセスした時点で動画の受信が可能かどうかをエージェント１０'に調べさせ、不可能な状態であれば、通常は表示される動画ダウンロード用のアイコンを表示させないようにすることも可能である。このようにすれば、ユーザが最初から無駄な動画転送の要求をすることをなくすことができる。このように、本実施形態によれば、クライアント１側のニーズに合った最高のサービスを得ることができる。
【００５５】
なお、以上の各実施形態ではネットワークの例としてインターネットを挙げて説明したが、本発明はこれに限定されるものではない。例えば、ＴＣＰ／ＩＰベースのネットワークで、多：多のデータ通信を行うことが可能なネットワークであれば、何れにも適用可能である。
【００５６】
また、以上の実施形態では、ある１つのデータ、例えば図１のデータＡについてダウンロードしようとする際に、同じデータＡが格納されている複数のサーバ８，８'，８”の中から最も広い帯域幅を確保できるサーバを選んでデータ転送を行う例について説明している。これに対して、複数のデータをそれぞれ最も効率のよいサーバから別々に持ってくるようにしても良い。
【００５７】
例えば、ホームページを表示する際には、テキスト、画像、音声など、１ページを作るのに複数のデータをダウンロードするのが常識となってきている。すなわち、１ページを表示するためにはクライアント１側で数種のポートを使用することとなる。
【００５８】
その場合に、従来はＨＴＭＬのスクリプトに記述されてた所定のサーバからしか各データを持って来れなかったので、そのサーバに対して複数のユーザからアクセスが集中すると、帯域幅が狭くなって転送に時間がかかってしまうが、本実施形態によれば、どれか１つのデータだけでも別のサーバから持ってくることができる。つまり、複数のユーザが同時に同じホームページを表示しようと思ったときでも、それぞれの環境で最も効率の良いデータ転送が行えるので、全体としてのデータ転送時間を短くすることができる。
【００５９】
なお、以上に示した本実施形態の機能は、ＣＰＵあるいはＭＰＵ、ＲＯＭおよびＲＡＭ等からなるマイクロコンピュータシステムによって実現され、そのための作業プログラムはＲＯＭやＲＡＭに格納される。また、上記の機能を実現するためのプログラムをコンピュータに供給し、そのプログラムに従って上記の機能を実現させることによって実施したものも、本発明の範疇に含まれる。
【００６０】
この場合、上記プログラム自体、およびそのプログラムをコンピュータに供給するための手段、例えばかかるプログラムを格納した記録媒体は、本発明を構成する。かかるプログラムを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｉ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ、ｚｉｐ、磁気テープ、あるいは不揮発性のメモリカード等を用いることができる。
【００６１】
また、コンピュータが供給されたプログラムを実行することにより、上述の実施形態の機能が実現されるだけでなく、そのプログラムがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）あるいは他のアプリケーションソフト等の共同して上述の実施形態の機能が実現される場合にもかかるプログラムは本発明の実施形態に含まれることは言うまでもない。
【００６２】
さらに、供給されたプログラムがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって上述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【図面の簡単な説明】
【００６３】
【図１】本発明の一実施形態を説明するための図である。
【図２】第３の実施形態によるエージェントの動作を示すフローチャートである。
【符号の説明】
【００６４】
１  クライアント
８，８'，８”  サーバ
１０  エージェント
【図１】
2007209014.tif 000003
【図２】
2007209014.tif 000004