JP4388562B2 - データ通信システムおよび方法、記録媒体 - Google Patents

データ通信システムおよび方法、記録媒体 Download PDF

Info

Publication number
JP4388562B2
JP4388562B2 JP2007062227A JP2007062227A JP4388562B2 JP 4388562 B2 JP4388562 B2 JP 4388562B2 JP 2007062227 A JP2007062227 A JP 2007062227A JP 2007062227 A JP2007062227 A JP 2007062227A JP 4388562 B2 JP4388562 B2 JP 4388562B2
Authority
JP
Japan
Prior art keywords
client
server
data
agent
data transfer
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
JP2007062227A
Other languages
English (en)
Other versions
JP2007209014A (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.)
NS Solutions Corp
Original Assignee
NS Solutions Corp
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 NS Solutions Corp filed Critical NS Solutions Corp
Priority to JP2007062227A priority Critical patent/JP4388562B2/ja
Publication of JP2007209014A publication Critical patent/JP2007209014A/ja
Application granted granted Critical
Publication of JP4388562B2 publication Critical patent/JP4388562B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

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

Claims (13)

  1. データ転送要求を行うクライアントとデータ供給を行うサーバを通信の帯域幅が時々刻々と変化するネットワーク上に備えたデータ通信システムにおいて、
    上記クライアントと上記サーバ間で最も広い帯域幅を確保できる経路を繰り返し探索する機能を有するエージェントを上記サーバに設け、上記クライアントからのデータ転送要求に応じて上記サーバは上記エージェントを上記クライアントへ送信し、上記クライアントに駐在したエージェントは、上記データ転送要求時に、帯域幅が最も広くなっている経路を探索し、上記探索した経路を用いてデータ転送を行うよう命令することを特徴とするデータ通信システム。
  2. 上記クライアントに駐在したエージェントは、経路を探索した結果に基づいて、最も帯域幅が広くなる経路に動的に切り替えることを特徴とする請求項1に記載のデータ通信システム。
  3. 上記クライアントに駐在したエージェントは、データ転送の経過情報を監視し、サーバが切り替えられたときに経過情報に基づいてデータ転送の再開を制御するレジューム機能を備えることを特徴とする請求項2に記載のデータ通信システム。
  4. 上記エージェントは、上記サーバと共通するデータを格納した複数のサーバが他にもある時には、上記複数のサーバの中でどれが最も広い帯域幅を確保できるかも含めて経路の探索を実行することを特徴とする請求項1〜3の何れか1項に記載のデータ通信システム。
  5. 上記クライアントに駐在したエージェントは、経路を探索する機能を繰り返し実行し、最も帯域幅が広くなる経路に動的に切り替えることを特徴とする請求項4に記載のデータ通信システム。
  6. 上記クライアントに駐在したエージェントは、上記各サーバへのアクセス接続状況を監視し続け、上記アクセス接続状況に応じて動的にサーバを切り替えることを特徴とする請求項5に記載のデータ通信システム。
  7. ネットワーク上の複数のサーバに、各サーバの接続経路のうち最も広い帯域幅を確保できる経路を探索する機能を有するエージェントを夫々設け、上記夫々のエージェントが探索した結果を相互に通信し、クライアントからあるサーバに対するデータ転送要求に応じて、上記サーバが上記エージェントを上記クライアントに送信し、上記通信の結果検出された最も広い帯域幅の経路を用いてデータ転送を行うよう命令することを特徴とするデータ通信システム。
  8. 上記複数のサーバに散在している各エージェントは、経路を探索する機能をクライアントからのデータ転送要求とは無関係に繰り返し実行することを特徴とする請求項7に記載のデータ通信システム。
  9. 上記エージェントは、送信先のクライアント自身の動作環境を調べ、調べた結果をデータ供給源としてのサーバに伝える機能も有することを特徴とする請求項1〜8の何れか1項に記載のデータ通信システム。
  10. データ転送要求を行うクライアントとデータ供給を行うサーバを通信の帯域幅が時々刻々と変化するネットワーク上に備えたデータ通信システムにおけるデータ通信方法において、
    上記クライアントからのデータ転送要求に応じて上記サーバは予め上記サーバに設けられたエージェントを上記クライアントへ送信し、上記クライアントに駐在した上記エージェントは、上記データ転送要求時に、上記クライアントと上記サーバ間で最も広い帯域幅を確保できる経路を繰り返し探索する機能を上記クライアント上で実行し、これにより探索された経路を用いてデータ転送を行うよう命令することを特徴とするデータ通信方法。
  11. ネットワーク上の複数のサーバに夫々設けたエージェントが、各サーバの接続経路のうち最も広い帯域幅を確保できる経路を探索してそれぞれのエージェントが探索した結果を相互に通信し、クライアントからあるサーバに対するデータ転送要求に応じて、上記サーバが上記エージェントを上記クライアントに送信し、上記通信の結果検出された最も広い帯域幅の経路を用いてデータ転送を行うよう命令することを特徴とするデータ通信方法。
  12. データ転送要求を行うクライアントとデータ供給を行うサーバを通信の帯域幅が時々刻々と変化するネットワーク上に備えたデータ通信システムにおけるデータ通信方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体において、
    上記クライアントからのデータ転送要求に応じて上記サーバは予め上記サーバに設けられたエージェントを上記クライアントへ送信し、上記クライアントに駐在した上記エージェントは、上記データ転送要求時に、上記クライアントと上記サーバ間で最も広い帯域幅を確保できる経路を繰り返し探索する機能を上記クライアント上で実行し、これにより探索された経路を用いてデータ転送を行うよう命令することをコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
  13. ネットワーク上の複数のサーバに夫々設けたエージェントが、各サーバの接続経路のうち最も広い帯域幅を確保できる経路を探索してそれぞれのエージェントが探索した結果を相互に通信し、クライアントからあるサーバに対するデータ転送要求に応じて、上記サーバが上記エージェントを上記クライアントに送信し、上記通信の結果検出された最も広い帯域幅の経路を用いてデータ転送を行うよう命令することをコンピュータに実行させるためのプログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
JP2007062227A 2007-03-12 2007-03-12 データ通信システムおよび方法、記録媒体 Expired - Fee Related JP4388562B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007062227A JP4388562B2 (ja) 2007-03-12 2007-03-12 データ通信システムおよび方法、記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007062227A JP4388562B2 (ja) 2007-03-12 2007-03-12 データ通信システムおよび方法、記録媒体

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP23639798A Division JP3957408B2 (ja) 1998-08-07 1998-08-07 データ通信システムおよび方法、記録媒体

Publications (2)

Publication Number Publication Date
JP2007209014A JP2007209014A (ja) 2007-08-16
JP4388562B2 true JP4388562B2 (ja) 2009-12-24

Family

ID=38487982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007062227A Expired - Fee Related JP4388562B2 (ja) 2007-03-12 2007-03-12 データ通信システムおよび方法、記録媒体

Country Status (1)

Country Link
JP (1) JP4388562B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5392913B2 (ja) 2008-01-29 2014-01-22 住友精密工業株式会社 圧電体膜を用いた振動ジャイロ及びその製造方法
WO2009119205A1 (ja) 2008-03-25 2009-10-01 住友精密工業株式会社 圧電体膜を用いた振動ジャイロ

Also Published As

Publication number Publication date
JP2007209014A (ja) 2007-08-16

Similar Documents

Publication Publication Date Title
US11418620B2 (en) Service request management
KR101811087B1 (ko) 파일 시스템 세션 내 다중채널 연결
EP2922275B1 (en) Tunnel broker in a service oriented architecture
CN102195882B (zh) 根据数据流应用类型选路的方法及装置
JP2005530372A5 (ja)
US10084862B2 (en) Session control method and computer-readable storage medium storing computer program
US7958231B2 (en) Method for redirection of web streaming clients using lightweight available bandwidth measurement
JP2002190821A (ja) 通信振り分け制御方法および制御装置
JP4190455B2 (ja) 負荷分散装置及びプログラム
EP1180886B1 (en) Load balancing method and system
JP6972182B2 (ja) Apiコール処理を可能にするための加速システム
US20150127837A1 (en) Relay apparatus and data transfer method
US7877479B2 (en) Bandwidth control system and method capable of reducing traffic congestion on content servers
JP2000029813A (ja) サーバ選択システム
JP4388562B2 (ja) データ通信システムおよび方法、記録媒体
KR20040012311A (ko) 무선 통신망에서 프리젠스 정보 기반 개인간 컨텐츠 공유서비스 시스템 및 방법
JP6764489B2 (ja) ネットワーク機器のスタッキング
JP2005182702A (ja) Ipネットワークにおけるアクセス制御方式
JP2009294736A (ja) イベント制御プログラム、イベント制御方法およびイベント制御装置
US7609692B2 (en) Method and apparatus for controlling route in network
CN112751724A (zh) 检测链路状态的方法及装置
JP3957408B2 (ja) データ通信システムおよび方法、記録媒体
CN108848175B (zh) 一种创建tcp连接的方法及装置
EP3562101A1 (en) Bras management method, packet forwarding method, packet forwarding controller, and bras
JP5577978B2 (ja) 通信装置、画像形成装置及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090623

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090821

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: 20090915

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: 20091002

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20121009

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20131009

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees