JP4495977B2 - 多層ネットワーク通信システム用再試行技術 - Google Patents

多層ネットワーク通信システム用再試行技術 Download PDF

Info

Publication number
JP4495977B2
JP4495977B2 JP2003585401A JP2003585401A JP4495977B2 JP 4495977 B2 JP4495977 B2 JP 4495977B2 JP 2003585401 A JP2003585401 A JP 2003585401A JP 2003585401 A JP2003585401 A JP 2003585401A JP 4495977 B2 JP4495977 B2 JP 4495977B2
Authority
JP
Japan
Prior art keywords
retry
communication
component
server
sender
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 - Lifetime
Application number
JP2003585401A
Other languages
English (en)
Other versions
JP2005527899A5 (ja
JP2005527899A (ja
Inventor
フ,ウェイ
ロアイザ,ジュアン
Original Assignee
オラクル・インターナショナル・コーポレイション
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 オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2005527899A publication Critical patent/JP2005527899A/ja
Publication of JP2005527899A5 publication Critical patent/JP2005527899A5/ja
Application granted granted Critical
Publication of JP4495977B2 publication Critical patent/JP4495977B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Description

発明の分野
この発明は、ネットワーク経由の通信の管理に関する。特定的に、この発明の各実施例は多層ネットワーク通信システムにおける再試行技術に関する。
発明の背景
クライアント/サーバ型の通信に対処するネットワークの応用はますます高度なものとなっている。典型的なクライアント/サーバ通信においては、クライアントがサーバに要求を送信し、サーバがクライアントに応答を返す。典型的に、サーバはクライアントの要求に対処する複数の論理コンポーネントからなる。しばしば、クライアントの要求に応じて応答が生成される前に、サーバ内の複数の論理コンポーネントによりクライアントの要求に或る処理がなされる場合がある。
典型的な応用例では、サーバはクライアントの要求に応じてデータ源にアクセスしてクライアントのための情報を検索する。サーバ内の各論理コンポーネントはクライアントの要求に対して或る関数を実行し、それからクライアントの要求を意図されたデータ源または別のコンポーネントへ転送(forward)する。たとえば、サーバ内コンポーネントの1つは、JAVA(登録商標)プログラムであって、或る計算を実行し、選択データを得るためにデータ源に問合せ、さらに或る計算を実行して結果をクライアントに返すものであり得る。サーバ内のその他のコンポーネントは当該の通信にシーケンシャルに対処して、追加の計算を実行したりまたはさらなるデータベース問合せを行なったりできる。
また、サーバ内コンポーネントのうちいくつかはクライアントの要求への応答に対処する場合もある。たとえば、データ源へクライアント要求を転送するのに加え、サーバ内コンポーネントはまたデータ源からクライアントへ応答を転送して返すことがある。上記コンポーネントはまた、クライアントの要求への応答を受取るのに応じて計算を実行しかつ/または追加の問合せを行なうことがある。
いくつかの構成例においては、クライアント通信に対処する装置は負荷平衡装置およびサーバマシンを含む。サーバマシンは負荷平衡装置により一群のサーバマシンから選択される。選択されたサーバマシンおよび負荷平衡装置を用いて、データベースなどのデータ源とクライアントとの間の通信のやり取りがなされる。サーバマシンはクライアント通信を負荷平衡装置から意図されたデータベースへ転送する。データベースは、ウェブサーバや、またはその他クライアント通信のための情報へのアクセスを可能にするマシンに対応し得る。
クライアント通信に対処する複数の装置は一緒になって多数の論理コンポーネントをもたらし、これらがクライアント通信を処理してからデータベースへの転送がなされる。たとえば、論理コンポーネントをサーバマシン内で層状にして、クライアント通信に対処するのに用いられるプロセスを分散させる場合がある。これら層状になったコンポーネントはクライアント通信にシーケンシャルに対処する。その結果、クライアント通信は、異なるマシンに常駐する多数のコンポーネントによりシーケンシャルに処理されてから意図されたデータベースにより受取られる。
ところで、クライアント通信がその宛先に到達するのに失敗することがしばしばある。このようなクライアント通信の障害の理由としては、クライアント通信が宛先へ合図されたときにこの宛先がアクセス不可能であるというものがある。クライアント通信の障害の理由としてはさらに、クライアント通信に対処するコンポーネントの1つに障害が生じるというものがある。
多くのクライアント/サーバシステムにおいて、コンポーネントは、障害が検出された時点で障害の起きたクライアント通信を再試行するように構成されている。多層構成においては、障害検出は、クライアント通信に個々に対処する論理コンポーネントすべてへ伝搬される。その結果、1つのサーバマシン内の多数のコンポーネントは障害の起きたクライアント通信の再試行を個々に試みることになる。さらに、多層構成においては、いくつかのコンポーネントは、障害がクライアントへ報告される前に、障害の起きたクライアント通信の送信を多数回再試行することになる。このように障害の起きたクライアント通信の再試行を余分に試みることは、その大部分が無駄なことでしかない。
たとえば、図8に示すように、サーバマシン800において、第1のアプリケーション830、第2のアプリケーション840およびサーバアプリケーション820を含む通信経路が与えられると仮定する。この通信経路はクライアント810を或る宛先へ結合するのに用いられる。この例においてはこの宛先とはデータ源850である。再試行コンポーネントが指定されていない従来のシステムにおいては、第2のアプリケーション840、第1のアプリケーション830およびサーバアプリケーション820を用いて、障害の起きたクライアント通信を繰返し再試行する。たとえば障害が生じたのが第2のアプリケーション840によるデータ源850との交信の試行時である場合、従来のシステムであれば第2のアプリケーション840がクライアント通信を再試行し、それからこの障害を第1のアプリケーション830に対して標示することになる。そして、第1のアプリケーションは障害の起きたクライアント通信を再試行する。データ源850が第2のアプリケーション840にとってなお利用可能でなければ、第1のアプリケーション830による再試行の後に第2のアプリケーション840はもう一度再試行を行なう。第2のアプリケーション840が二度再試行を行ない第1のアプリケーション830が一度再試行を行なった後にサーバ内コンポーネント820に対して当該の障害が通知される。サーバ内コンポーネント820が再試行すれば、場合により、第2のアプリケーション840はさらに二度再試行し、第1のアプリケーション830も再び再試行する。その結果、クライアント810はクライアント通信に障害が発生したことを通知されるまでにかなり長い間待たされることになる。
いくつかの既存のシステムにおいては、冗長コンポーネントを伴う環境で障害が発生したとき、この環境は自らを再構成して、以後の要求が別のなお活きているインスタンスへ送信されるようにする。こうすれば要求の再試行は通常首尾よく行なわれるが、別のマシンおよび追加のリソースが必要となる。たとえば、或るデータベースサーバがクラッシュした場合、環境は自らを再構成して以後の要求が別のサーバマシンへ行くようにする。別のサーバマシンの選択は、しばしば元のサーバマシン内の内部コンポーネントに障害が発生した後、負荷平衡装置により行なうことができる。
上記の事情に鑑み、通信経路で生じた障害に応じて通信経路内での多数のコンポーネントが再試行動作を実行する結果として生じる無駄なしに、通信の障害に対処するための技術を提供することが明らかに望ましい。
発明の概要
クライアントとデータ源との間で障害の起きた通信を再試行するための技術が提供され
る。一実施例において、クライアントとデータ源との間の通信経路の一部を形成するサーバマシンは、単一の内部論理コンポーネントにおいて再試行ロジックを含むように構成される。上記サーバマシン内のその他の論理コンポーネントは、再試行を試みるよう指定されたコンポーネントに対し、障害が起きたクライアント通信を報告する。
一実施例に従うと、再試行通信は再試行ロジックが常駐するコンポーネントから管理され得る。再試行ロジックは、いくつかの通信を再試行可能、および他の通信を再試行不可能として選択的に識別するように構成され得る。再試行ロジックはまた、障害の起きたクライアント通信のために新たな通信経路を選択するためのロジックと組合せられる場合もある。
他の実施例では、クライアント通信の経路における別の装置からの再試行技術および再試行通信の管理を組込む。たとえばこの試行技術は負荷平衡装置で実現されたり、またはクライアントで実現されたりする。
添付の図面の各図を参照して、この発明について制限としてでなく例として説明を行なう。図中においては、同様の参照番号は同様の要素を指す。
発明の詳細な説明
データ源にアクセスするための方法および装置が記載される。以下の記載においては、この発明の完全な理解がもたらされるよう説明上多くの具体的な詳細について述べる。しかし、この発明がこれら具体的な詳細なしに実施可能であることは明らかであろう。一方で、周知の構造および装置については、これをブロック図の形で示すことによりこの発明を不必要に不明瞭にすることを避けている。
A.概観
一実施例に従うと、クライアントとデータ源との間の通信経路を形成するシーケンシャルなコンポーネントについて再試行ポイントが指定される。指定された再試行コンポーネントは上記通信経路内のコンポーネントのうち1つにおいて設けられる。クライアントからデータ源への通信がその宛先に到達するのに失敗した場合、上記指定された再試行コンポーネントが、上記宛先への上記クライアント通信の送信を再試行する唯一のコンポーネントである。その他のコンポーネントは宛先への通信の送信を再試行するのではなく、当該の通信が宛先に到達するのに失敗したことを再試行コンポーネントに報知する。
再試行コンポーネントが必要とされる場合としては、クライアント通信に対してその通信経路内のコンポーネントの1つで障害が起きた場合がある。加えて、再試行コンポーネントが必要とされる場合としてはさらに、通信経路内のコンポーネントのうち1つが欠落した場合や、またはその他でクライアント通信の処理に失敗した場合がある。
上記宛先はデータ源であり得る。データ源の例としてはデータベースおよびディレクトリがある。一実施例では、データベースサーバとデータベースとを含むデータベースシステムがこのデータ源を構成し得る。
データ源は、ネットワークサーバ、データデポジトリたとえばディレクトリやデータベース装置、およびその他の記憶装置を含み得る。インターネット用途では、典型的にデータ源50はウェブサーバまたはウェブ対応型データデポジトリである。
論理コンポーネントは、プログラム、アプリケーション、ソフトウェア、符号化したファームウェアまたはハードウェアを含み、これらはクライアント通信を処理して特定の作
業を実行するように構成されたものである。再試行コンポーネントは、データ源へのクライアント通信の送信を再試行するように構成された論理コンポーネントである。場合により再試行コンポーネントは、データ源へ通信を送信する際、データ源への通信経路の一部を形成する中間コンポーネントへ上記通信を送る。再試行コンポーネントは、元の通信経路またはその等価物を用いてクライアント通信の送信を再試行することができる。これに代えて、再試行コンポーネントは、再試行コンポーネントの外部にある装置において、異なる中間コンポーネントにより形成される別の通信経路を選択するように構成される場合もある。再試行コンポーネントはまた、通信経路で障害が起きたのが元のデータ源であれば、別のデータ源へアクセスを試みてもよい。
再試行コンポーネントの特定の例として、サーバマシンについて入来する要求に応対してこれを発送するサーバマシンにあるサーバ内論理コンポーネントがある。その他の、サーバマシンのためのインターフェイスとして働くコンポーネントもまた、再試行ロジックを実現するのに適している。
一実施例において、複数の論理コンポーネントがシーケンシャルに結合されてクライアントからデータ源への通信を転送する。これらコンポーネントのうち1つが通信経路内のコンポーネントについての再試行コンポーネントとして指定される。再試行コンポーネントは、当該クライアント通信がデータ源へのアクセスに失敗したことが検出された場合にデータ源への第1の通信の送信を再試行する。通信経路内の他のコンポーネントは、当該の通信に障害があったという標示を再試行コンポーネントへ転送するように指定される。通信経路内の1つのコンポーネントに障害が生じると、その前のコンポーネント(すなわち障害の生じたコンポーネントへ要求を転送したコンポーネント)が標示を再試行コンポーネントへ転送する。再試行コンポーネントではないが通信経路内にあるコンポーネントはいずれも上記標示を受取り、同様にこの標示を再試行コンポーネントへ転送することになる。このように、他のコンポーネントの各々が上記標示を再試行コンポーネントへ合図する際にデータ源へ第1の通信を再送信することはない。
通信経路は、シーケンシャルに組合せられてクライアント通信をデータ源へ転送する論理コンポーネントを含む。通信経路内の論理コンポーネントは異なる装置に常駐し得る。再試行ポイントとは、障害の起きたクライアント通信の送信を再試行するためのロジックが常駐する通信経路上の場所である。
再試行ロジックは、障害の起きたクライアント通信をデータ源へ再送信しようと試みる前に、このクライアント通信が再試行可能であるかどうかを判断する場合がある。いくつかの種類の通信または特定の要求は再試行不可能であると指定され得る。これら指定は再試行ロジックに組込まれ得る。
再試行ロジックはまた、障害の起きたクライアント通信を再送信する前に代替的な通信経路を判断する場合がある。この代替的な通信経路は、以前の通信経路内のコンポーネントが常駐する装置の外側に常駐し得る。再試行コンポーネントは、障害の起きた通信を迂回するような任意の経路に沿って上記要求を送信することができる。たとえば、再試行ロジックは、障害が発生した装置の外側に通信を送信する必要があるかどうかを検討する場合がある。この判断を行なう際、再試行コンポーネントはまた、或る特定の要求が再試行可能であるかどうかを判断する場合がある。
別の実施例において、クライアントとデータ源との間の第1の通信経路上に再試行ポイントが指定される。この第1の通信経路は、シーケンシャルにクライアント通信を受取りデータ源へ転送する複数の論理コンポーネントを含む。再試行ポイントは通信経路の一部をなす。クライアント通信の経路内のコンポーネントのうち1つに障害が起きるか、また
はこれが他でその宛先に到達できない場合、この障害が再試行コンポーネントに通知される。
たとえば、一実施例において、クライアント通信が通信経路のうち再試行ポイントとデータ源との間の部分においてデータ源にアクセスすることに失敗した場合、クライアント通信がデータ源へのアクセスに失敗したという標示が、通信経路内の他のコンポーネントのうち1つ以上により再試行ポイントに対して合図される。
一実施例に従うと、再試行ロジックは、クライアント通信が再試行可能であるかどうかについての判断を行なう。再試行ロジックは、クライアントの要求が再試行可能であると判断された場合にのみクライアント通信を再送信することができる。
ここに記載の技術を用いると、システムは単一の指定された再試行コンポーネントを用いて最適な数の再試行を実行することができる。多くの場合、データ源がアクセス可能であるかを判断するには単一回の再試行で十分であろう。これとは対照的に、従来のシステムに対しては、再試行を最適な回数だけ、とりわけただ1回だけ実行するように設定をすることができないが、それは典型的に各々のコンポーネントがクライアント通信をその障害検出時に自動的に再試行するからである。したがって、各々のコンポーネントが再試行を単一回だけ実行するように構成されている場合でも、実際に実行される再試行の回数は、少なくとも再試行を実行するコンポーネントの数と同数であろう。
さらに、この発明についてのいくつかの実施例においては、再試行ロジックはその他の判断および決定を行なうように構成可能である。具体的には、再試行コンポーネントは、或る特定のクライアント通信が再試行可能であるかを判断し、かつ必要に応じ新たな通信経路を識別するように構成され得る。従来のシステムでは、障害の起きたクライアント通信を再試行するコンポーネントが多すぎるため、再試行ロジックの構成は困難でより非効率的になっている。
別の実現例において、再試行コンポーネントはクライアント通信の送信の再試行前に或る判断を行なう。この判断は、当該のクライアント通信について再試行が以前に試みられた回数に対応し得る。再試行コンポーネントは、以前の試行数が再試行についての最大閾値よりも小さい場合にクライアント通信の送信を再試行することができる。
B.再試行技術を伴うシステムの説明
図1は、クライアントとデータ源との間で合図される通信についての指定された再試行コンポーネントを有するシステム100を例示する。システム100内の選択コンポーネントはシーケンシャルに組合せられてクライアント10とデータ源50との間に1つ以上の通信経路を形成する。障害の起きたクライアント通信がデータ源50にアクセスするために再送信されることが可能な、選択された通信経路において指定された場所が、再試行コンポーネントで示される。
説明上、クライアント10が情報をデータ源50から要求するという文脈においてシステム100の説明を行なう。しかしながら、送信元コンピュータから宛先コンピュータへの通信を処理し転送する、および宛先コンピュータから送信元コンピュータへ応答を処理し転送するもっと広い文脈においてシステム100を採用することもまた可能である。したがって、データ源50をクライアント通信の宛先として参照しているのは、宛先がたとえばデータベースシステムであるという一応用例を示すためである。
システム100はクライアント10とデータ源50との間に多数の通信経路を有し得る。各々の通信経路はただ1つのコンポーネントを含むことも、または代替的に、任意の1
つのマシンにあって通信経路の一部をなす選択コンポーネントのみを含むこともあり、これは障害の起きたクライアント通信のデータ源への送信を再試行するように構成される。各々の通信経路におけるその他のコンポーネントは、障害の起きたクライアント通信を再試行コンポーネントに送るように構成される。
この発明の実施例には、とりわけ障害の起きたクライアント通信の無駄な再試行が増大することを回避するという利点がある。再試行の実行に1つのコンポーネントを選択することにより、システム100が実行する再試行の回数は減少する。その結果、クライアント10へ障害を報告する際の遅延は、再試行ロジックを特に使用しない他システムと比較して大幅に減少させることができ、これは特に、他のシステムであって、最終的に再試行要求を行なうことになるコンポーネントがいくつもあるシステムにおいて見られる最悪の事態と比較した場合に顕著である。
一実施例により得られる別の利点として、再試行ロジックを比較的容易にかつ支援をほとんど受けずにシステム内で実現できることが挙げられる。たとえば、再試行ロジックはサーバマシン内の単一の論理コンポーネントにおいて実現され得る。再試行ロジックが既にある状態で、時間の経過に伴い追加のコンポーネントを環境に対する実質的な構成なしに環境に追加することができる。
加えて、再試行ロジックを1コンポーネントに集中化させることにより再試行通信の管理が容易となる。再試行ロジックは、再試行不可能であると予め指定されたクライアント通信についての再試行を除外するように構成され得る。たとえば、安全(secure)な通信は再試行不可能であると予め指定され得る。要求が再試行可能であるかどうかの判断は要求の種類に基づいて行なうことができる。たとえば、いつなされたかを問わず同じ答を返す要求は再試行可能なものである。
これとは対照的に、その他の従来のシステムにおいては、通信経路内の各々のコンポーネントが障害の起きたクライアント通信を再送信することができてしまう。この結果としてしばしば長期間の遅延が生じるが、それは1つのコンポーネントに障害が生じると、通信経路内の上流にある複数のコンポーネントがクライアント通信の送信を再試行してからやっと以前の通信に障害が生じたことがクライアントに通知される場合があるからである。
図1に示す構成において、システム100は、負荷平衡装置25、第1のサーバマシン20、第2のサーバマシン30および第3のサーバマシン40を含む。このように組合わせたサーバマシンは、クライアント通信を宛先へ転送する前にクライアント通信を処理するためのサーバファーム(server farm)に対応し得る。負荷平衡装置25はこれらサーバマシンのうち1つを選択してクライアント10とデータ源50との間の通信経路を形成する。
ネットワーク15はインターネットなどの広域ネットワークに対応し得る。クライアント10はネットワーク15経由で通信を行なうように構成された端末であり得る。クライアント10およびネットワーク15の典型的な例には、インターネットにアクセスするウェブブラウザを入れたデスクトップコンピュータが挙げられる。
負荷平衡装置25は、クライアント10からデータ源50へ合図されたクライアント通信を途中で受ける。このクライアント通信はデータの要求に対応し得る。これに代えて、クライアント通信は、データ源50内におけるデータの書込、既存のデータの変更または既存のデータの消去を要求するものであってもよい。クライアント通信を受取るのに応答して負荷平衡装置25は、各々のサーバマシンにおける利用可能なリソースに依存してサ
ーバマシンのうち1つを選択してデータ源50にアクセスさせる。サーバマシン20,30,40の各々は、クライアント通信をシーケンシャルに処理する複数の論理コンポーネントを含む。図1に示す例では、負荷平衡装置25は第1のサーバマシン20を選択し、こうしてクライアント10、負荷平衡装置25、第1のサーバマシン20およびデータ源50によって通信経路12が形成される。第1のサーバマシン20内の複数の論理コンポーネント(図2を参照)はシーケンシャルに組合せられて通信経路12の一部を形成する。
一実施例に従うと、サーバマシン20,30,40の各々は、障害の起きたクライアント通信を当該サーバマシン内の指定された論理コンポーネントから再送信するための再試行ロジックを伴って構成される。図1は再試行コンポーネント22を含むように構成された第1のサーバマシン20を例示する。一実現例において、再試行コンポーネント22は負荷平衡装置25と直接通信する。たとえば、再試行コンポーネント22は、負荷平衡装置25から直接クライアント通信を発送するサーバ内論理コンポーネントにおいて実現され得る。第1のサーバマシン20内にある複数の他のコンポーネント24は通信経路12においては再試行コンポーネント22の後に位置付けられる。
この構成において、シーケンシャルに組合せられて通信経路12を形成する第1のサーバマシン20内の各コンポーネントを振り分けて、このシーケンスにおける第1のコンポーネントが、障害の起きたクライアント通信を再試行する唯一のコンポーネントとなるようにする。障害の起きたクライアント通信について、第1のサーバマシン20内の他のコンポーネント24はクライアント通信に障害が生じたという標示を再試行コンポーネント22に返す。コンポーネント24は障害の起きたクライアント通信の再送信を試みることはない。
他の実施例においては、再試行ロジックは他のところでクライアント10とデータ源50との間の一通信経路に設けられ得る。一実現例においては、再試行コンポーネント22として働くロジックを含むのは負荷平衡装置25である。別の実現例では、再試行コンポーネント22として働くロジックを含むのはクライアント10である。再試行コンポーネント22をデータ源50から遠くへ動かせば、通信経路12において、障害の起きたクライアント通信をデータ源50へ送り返すことを再試行し得るコンポーネントの数が減少する。
図2は、再試行ロジックを含むように構成されたサーバマシンの動作を説明するブロック図である。サーバマシンは、サーバマシンへの通信をシーケンシャルに処理する複数の論理コンポーネントを含む。
一実施例において、第1のサーバマシン120は、多数の層状にされたコンポーネントを用いてクライアント通信112を処理する。これらコンポーネントは、シーケンス114に従いクライアント通信112を処理するように調整される。シーケンス114内のコンポーネントのうち少なくとも1つは再試行ポイント122として指定される。
一実施例において、再試行コンポーネント122は、シーケンス114内で最初にクライアント通信112を受取るコンポーネントに対応する。シーケンス114内で用いられる他のコンポーネントは第1のアプリケーション124および第2のアプリケーション126を含む。第1のアプリケーション124は再試行ポイント122からクライアント通信112を受取る。第2のアプリケーションは第1のコンポーネント124からクライアント通信112を受取る。第2のアプリケーション126はクライアント通信112をデータ源150へ転送する。クライアント通信112に障害が起きると、この通信をサーバマシン120がデータ源150へ再送信しようと試みるのは再試行ポイント122におい
てのみである。
一実施例において、再試行ポイント122は、再試行ロジックを含むように構成された第1のサーバマシン120のサーバ内コンポーネントに対応する。第1のアプリケーション124は、データ源150からの情報をクライアント110に呈示するためのプレゼンテーション層に対応し得る。第2のアプリケーション126は事務用ロジックまたはその他特定の種類のネットワーク通信用のアプリケーションに対応し得る。たとえば、JAVA(登録商標)環境においては、第1のアプリケーション124は、データ源150からのJAVA(登録商標)対応データを呈示するためのJAVA(登録商標)Servlet Engine(JSERVE)アプリケーションである。第2のアプリケーション126は、事務用アプリケーションを完全なものにするためのロジックを担うEJBサーバアプリケーションに対応し得る。各々のアプリケーションはクライアント通信112を独立して処理してこれに変更を加え得る。
データ源150は逆シーケンス116を用いてクライアントに応答132を合図して返すことができる。逆シーケンス116において、応答132はデータ源150により第2のアプリケーション126へ合図され、これは次にこの応答を第1のアプリケーション124へ、そして再試行ポイント122へ転送する。それから応答132はクライアント110へと転送されて戻る。
しばしば、クライアント通信112に対処するコンポーネントの1つに障害が生じる。この障害はシーケンス114内のいずれかのコンポーネントによって引起こされることも、またはこれに代えてデータ源150により引起こされることもある。たとえば、データ源150が利用できなくなったり、またはクライアント通信112を処理できないほどの渋滞が起きたりする場合がある。このときに第2のアプリケーション126がクライアント通信112をデータ源150に合図しようと試みると障害が生じる。クライアント通信に障害が起きたポイントにあるコンポーネントは、逆シーケンス116を用いて、クライアント通信112に障害が生じたという標示を合図できる。再試行ポイント122は、クライアント通信112に障害が生じたという標示を受取るのに応答して、データ源150へのクライアント通信112の送信を再試行できる。
再試行ポイント122は、障害の起きたクライアント通信112を再送信する際に再試行シーケンスを実現する。一実施例において、第1の再試行シーケンス118はシーケンス114と同じコンポーネントおよび機構を含む。別の実施例では、第2の再試行シーケンス119が別のサーバマシン130のコンポーネントを含む。たとえば、第2の再試行シーケンス119においては、再試行ポイント122がクライアント通信112を第2のサーバマシン130の第1のアプリケーション134に合図する場合がある。第1のアプリケーション134はそのサーバマシンにある第2のアプリケーション136へクライアント通信112を転送できる。第2のサーバマシン130の第1のコンポーネント134および第2のコンポーネント136は、第1のサーバマシン120の第1のアプリケーション124および第2のアプリケーション126と類似または同一の機能を実行することができる。
さらにまた、サーバマシン120がクライアント通信を処理し転送するための多重プロセスを有する場合、他の実施例で再試行ポイント122は同じサーバマシン120におけるもう1つのプロセスを選択することができる。
一実施例において、各々のコンポーネントはその後続の層にあるコンポーネントのトポロジマップを維持する。そして、各々のコンポーネントは活きている(alive)コンポーネントを選択することができる。再試行ポイント122はトポロジマップを用いて、他の
サーバマシンまたは同じマシンにあるコンポーネントの状態を判断できる。再試行ポイント122には、トポロジマップからの情報を用いて再試行の送信に好適な経路の選択を行なうための知能が与えられ得る。
さらに別の実施例では他の再試行シーケンスが設けられ得る。たとえば、シーケンス114内のコンポーネントのうち1つに障害が起きたことが検出されると、再試行ポイント122にあるコンポーネントは、障害の起きたクライアント通信112の送信を再試行するときにそのコンポーネントを迂回するような選択を行なうことができる。
サーバ内コンポーネント122は再試行シーケンスを選択するロジックを含み得る。たとえば、クライアント通信112が安全なものであれば、サーバ内コンポーネント122は第1のサーバマシン120の内部にある再試行シーケンスのみを用いることができる。これに代えて、サーバ内コンポーネント122が再試行コンポーネントを性能に基づいて選択することもある。たとえばサーバ内コンポーネント122は、特定のクライアント要求に有用なデータセットを有するキャッシュを用いるために再試行を同じサーバマシンに維持するのがよいと判断する場合がある。
図3は、クライアント310とデータ源350との間の通信経路内の再試行ロジックを実現するシーケンス図を示す。ここでの通信経路は、負荷平衡装置315、サーバ内コンポーネント320、第1のアプリケーション330、第2のアプリケーション340およびデータ源350を含む。図3は、サーバ内コンポーネント320が再試行ロジックを含むと仮定したものである。加えて、図3においては、再試行ロジックは障害の起きたクライアント通信を再送信するのに新たな通信経路を選択しないと仮定してある。
上述のように、図3のシステムが従来の再試行技術を用いた場合、その結果として無駄な再試行が増大するというおそれがある。ここで図3を用いて、障害の起きたクライアント通信を指定されたコンポーネントから再試行するように構成されたため従来のシステムで生じていた遅延が減少するシステムの動作を説明する。指定された再試行コンポーネント320のみを用いることにより、この発明の実施例において再試行の数を単一の試みへと減少させることができる。
ここに記載の技術を用いて、クライアントはクライアント通信312を合図し、これはネットワーク経由で負荷平衡装置315に引渡される。負荷平衡装置315はクライアント通信312をサーバ内コンポーネント320へ転送する。サーバ内コンポーネント320は、負荷平衡装置315により選択されたサーバマシンに常駐し得る。クライアント通信312は、サーバ内コンポーネント320、第1のアプリケーション330そして第2のアプリケーション340により転送されてデータ源350に至る。
たとえば第2のアプリケーション340がデータ源350へのアクセスに失敗すると、第2のアプリケーション340はこの障害についての通知322を第1のアプリケーション330に対して合図する。第1のアプリケーション330はこの通知322をサーバ内コンポーネント320へ転送する。
第1のアプリケーション330から通知322を受取るのに応答して、サーバ内コンポーネント320は再試行332を第1のアプリケーション330へ合図することができる。再試行332はクライアント通信312の内容を含む。再試行332は、第1のアプリケーション330、第2のアプリケーション340それからデータ源350へ転送される。
再試行332が首尾よく行なわれれば、データ源350からの応答342がクライアン
ト310へ返される。応答342は、第2のアプリケーション340、第1のアプリケーション330、サーバ内コンポーネント320、負荷平衡装置315およびクライアント310からなるシーケンスを用いてクライアント310へ転送され得る。
C.再試行技術の実現の方法
図4は、クライアントをデータ源に結合するのに用いるサーバマシンのための再試行ロジックを実現する方法を説明する。図4に記載するような方法は図2に記載するようなコンポーネントおよびシステムで実現され得る。
ステップ410にて、障害の起きたクライアント通信を検出する。この障害の起きたクライアント通信は障害のポイントで検出され得る。たとえば、第2のアプリケーション126(図2)がデータ源150へのアクセスに失敗した場合、その検出のポイントは第2のアプリケーション126においてである。
ステップ420にて、障害の起きたクライアント通信を再試行ポイントに報告する。障害を検出したコンポーネントは、通信経路のシーケンスに従って上記障害を隣接するコンポーネントへ報告することができる。1つ以上の中間のコンポーネントが組合せられて、クライアント通信をこの障害を検出したコンポーネントから再試行ポイントへシーケンシャルに転送する。これに代えて、障害の起きたクライアント通信を検出したコンポーネントがこの障害を再試行ポイントに直接報告するように構成されることもあり、こうすれば通信経路における中間コンポーネントを迂回することができる。
ステップ430にて、障害の起きたクライアント通信を再試行ポイントからデータ源へ再送信する。このステップは自動的に実行可能であり、クライアント通信に障害が起きたという報告を再試行ポイントが受取るのに応答して行なわれる。
ステップ440にて、上記再試行が首尾よく行なわれたかどうかについての判断を行なう。一実施例に従うと、再試行が失敗した場合、この障害がステップ450にてクライアントに報告される。したがって、再試行ポイントはただ一度再試行を試みるように構成され得る。
再試行が首尾よく行なわれれば、ステップ460にて、データ源からの応答をクライアントに報告する。たとえば、クライアント通信が読出動作に対応する場合、クライアントへの応答には、クライアントのブラウザがクライアントの要求に対応する情報を出力できるようにするデータおよびその他の情報が入っている。
他の再試行技術とは対照的に、図4に記載したような実施例で得られる利点の1つとして、障害の起きたクライアント通信が検出されこれに対する処置がなされるポイントがクライアント通信の経路内の或る選択コンポーネントに局所化されるということがある。再試行アクションが行なわれるポイントは、クライアント通信の通信経路内における多数のコンポーネントにより無差別的に共有されるわけではない。多数の論理コンポーネントが組合せられてクライアント通信の通信経路を形成しながら、一実施例においては障害への処置をとるコンポーネントはただ1つだけとする。このような方法により、何百または何千ものクライアント通信に同時的に対処するシステムにおいてリソースが節約される。
加えて、再試行コンポーネントが、クライアント通信経路において障害が検出されるただ1つの場所である場合がある。これに代えて、障害のポイントがクライアント通信経路内のもう1つのコンポーネントで検出されることもある。さらにまた、障害の起きたクライアント通信が外部のモニタにより検出されてこれを再試行コンポーネントが再試行することもある。
さらに、図4に記載のものなどの方法を実現するよう構成されたシステムはまた、上記再試行ロジックによりその他の機能も実現するよう構成可能な場合もある。他の種類の技術の一例を図5に記載する。
図5は、クライアントをデータ源に結合するためのシステムにおいて再試行ロジックを実現する方法を説明する。ここでは図2での番号を参照しているが、これは一実施例で用いられるコンポーネントの例を示すことを意図したものである。図5に記載の方法は、クライアント110とデータ源150との間の通信経路を形成する1つ以上の論理コンポーネントにおいて実現され得る。
ステップ510にて、クライアント通信に障害の起きたことが、データ源へ当該クライアント通信を伝える論理コンポーネントの1つにより検出される。この論理コンポーネントは、シーケンス114において再試行ポイント122の後に続くコンポーネントに対応するものであり得る。クライアント通信に障害が起きていると検出される場合として、論理コンポーネントのうち1つがシーケンス114におけるすぐ次のコンポーネントへのアクセスに失敗した場合がある。クライアント通信に障害が起きたと検出される場合としてはまた、シーケンス114における最後の論理コンポーネントがデータ源150へのアクセスに失敗した場合もあり得る。
ステップ520にて、クライアント通信に障害が起きたという標示が再試行ポイントに対して合図される。この標示は逆シーケンスに従って再試行コンポーネント122へ伝えられる場合がある。これに代えて、障害の起きたクライアント通信を検出しているコンポーネントがその標示を直接再試行ポイント122に対して合図する場合もあり、その場合には、クライアント通信が最初に再試行ポイント122から転送されたときにこれに対処した中間コンポーネントは迂回される。
ステップ530にて、上記障害の起きたクライアント通信が再試行可能であるかどうかについて判断を行なう。一実施例では、この判断は再試行ポイント122で行なわれる。たとえば再試行ポイント122は、サーバマシン120内の1サーバ内コンポーネントであって、障害の起きたクライアント通信が再試行可能であるかを判断するための知能を含む再試行ロジックを伴って構成されたサーバ内コンポーネントに対応し得る。
クライアント通信が再試行可能であるかを識別するために、再試行ポイント122は当該クライアント通信についての情報を識別することがある。この情報をテーブルまたはその他のデータ構造内で参照することで、障害の起きたクライアント通信を再試行すべきかどうかを標示できるようにする場合がある。再試行ポイント122は、或る種類の通信は再試行不可能であると判断できる。たとえば安全な通信は再試行不可能であると判断されることになる。これに代えて、当該の要求が再試行可能であるかどうかを通信の種類によって標示する場合もある。たとえば、静的なデータに対する要求は再試行可能であると予め判断される場合がある。さらにまた、再試行ポイント122は、クライアント通信についてのいくつかの送信元および/または宛先を再試行不可能であると識別するように構成され得る。
ステップ530にて、障害の起きたクライアント通信が再試行不可能であると判断された場合、ステップ540ではクライアント通信に障害が起きたことをクライアントに通知する。たとえば、クライアント通信に障害が起きたという標示を再試行ポイント122がクライアント110へ転送する。
一方、一実施例において、ステップ530にて障害の起きたクライアント通信が再試行
可能であると判断された場合、ステップ550にて、再試行ポイント122は通信経路を選択して障害の起きたクライアント通信の送信を再試行する。たとえば、再試行ポイント122は別のサーバマシンにアクセスして、上記別のサーバマシン内のコンポーネントを組込む新たな通信経路を用いる場合がある。これに代えて、たとえば障害がデータ源150に生じたと判断された場合には再試行ポイント122は以前の通信経路の使用を決定してもよい。
通信経路が一旦選択されれば、再試行コンポーネント122は障害の起きたクライアント通信をデータ源150へ再送信する。再試行ポイント122はクライアント通信の転送の際、選択された通信経路のシーケンスにおいて次に続くコンポーネントにクライアント通信を合図する。
ウェブベースの通信などの用途においては、要求が再試行可能であるかどうかが要求の内容によって標示される場合がある。たとえばURLには、要求が再試行可能であるかどうかを標示する変数またはその他の文字列が入っている場合がある。
図6は、或る障害の起きたクライアント通信が再試行可能であるかどうかを判断する再試行ロジックで実現され得るデータ構造600を説明する。データ構造500は、クライアント通信の中から識別された1つ以上のパラメータを対応する値とつき合わせて、当該クライアント通信が再試行可能であるかどうかを判断する。上記クライアント通信の中から識別された1つ以上のパラメータは1組のパラメータ特性610に属する。各々のパラメータについてのそれぞれ対応する値は1組のパラメータ値620に属する。
想定された一例において、パラメータ特性610は、クライアント通信が安全なものであるかどうかを識別するためのセキュリティパラメータ612、どの動作(読出、書込、消去など)が当該クライアント通信により指定されているかを識別するための動作パラメータ614、1つ以上のユーザ定義パラメータ616、および/または1つ以上のベンダ指定パラメータ618を含む。ユーザ定義パラメータはクライアントのユーザにより定義または構成可能である。ベンダ定義パラメータはサーバマシンのベンダにより定義または構成可能である。たとえばサーバファームにおいては、サーバマシンに1つ以上の論理アプリケーションがベンダにより設けられるかまたは構成される。
パラメータ値620は以下のものを含む。セキュリティパラメータの値622は、障害の起きたクライアント通信が、安全でない通信の場合には必ず再試行されるが、安全な通信の場合には決して再試行されないように定めることがあり得る。動作パラメータ614の値624は、再試行が、読出動作を指定するクライアント通信については実行され得るが書込または消去の動作については実行され得ないように指定することがあり得る。値626は、ユーザ定義パラメータ616と整合するように構成可能である。たとえば値626は、クライアント通信の宛先が或る特定のネットワークアドレスIP(a)である場合には、障害の起きたクライアント通信の再試行を除外する場合がある。値628はベンダ定義パラメータ618と整合するように構成可能である。たとえば、ベンダ定義パラメータとして、ID(a)を有するクライアントユーザについては、障害の起きたクライアント通信の再試行を除外するパラメータを設けることができる。
さらに、再試行可能なクライアント通信を識別するためのもっと高度なデータ構造および技術が考えられ得る。一実施例においては、データ構造600に変更を加えて、再試行ポイントの外側にある新たな通信経路で再試行可能なクライアント通信を識別できるようにする場合がある。たとえば、安全なクライアント通信を、同じサーバマシン内のコンポーネントを用いて合図された場合のみ再試行可能とすることができる。
特定の一応用例において、テーブル600は、URL(uniform resource locator)のパターンに対応し得る。たとえば、ウェブブラウザから送られたHTTP(Hypertext Transfer Protocol)要求におけるURLパターンに特定のパターンが含まれていた場合、このパターンを特定の再試行関数または命令とつき合わせる。たとえば、"http://website/documents/reads/*"などのパターンを指定するかまたはこれを含む要求は再試行可能であると指定され得る。一方、"http://website/documents/updates/*"などのパターンを指定する要求は再試行不可能であると指定され得る。後者の場合、当該要求は再試行不可能であり得るが、それはデータを更新する要求は本来的に、アクセスされているデータが静的でなく動的であることを意味しているからである。
D.代替形態
ここに記載した各実施例はクライアント10とデータ源50との間の通信経路での単一の再試行コンポーネントのみを記載しているが、実施例によっては多数の再試行コンポーネントがある場合もある。具体的に、多数の再試行コンポーネントをクライアント10とデータ源50との間の通信経路で適当に位置付けることができる。たとえば、一実現例においては、サーバマシン20および負荷平衡装置25の各々が再試行コンポーネントを含んでもよい。サーバマシン20内にあるコンポーネントは、サーバマシンとデータ源との間でクライアント通信に障害が起きた場合に当該サーバマシンの再試行コンポーネントから障害の起きたクライアント通信の送信を再試行するように構成される。同様に、負荷平衡装置25内のコンポーネントもまた、負荷平衡装置の論理コンポーネントのうち1つでクライアント通信に障害が起きた場合に当該負荷平衡装置の再試行コンポーネントからクライアント通信の送信を再試行するように構成される。
ここに記載の各実施例ではクライアントからデータ源への通信に焦点をあてて説明している。しかし、ここに記載の技術はこの文脈に限定されるものではなく、送信側がメッセージを意図された受信側に送信し、このメッセージが多数の中間コンポーネントを通過することになるあらゆる事例で採用可能である。たとえば上記メッセージは、クライアントからの要求に応じてデータ源からクライアントへ送信される応答である場合がある。この要求はまた、クライアントから、サービスを提供するがクライアントにより検索可能なデータの供給源ではないサーバへの要求であり得る。
E.ハードウェアの説明
図7は、この発明の一実施例が実現され得るコンピュータシステム700を示すブロック図である。コンピュータシステム700は、バス702またはその他情報を通信するための通信機構と、バス702に結合され情報を処理するプロセッサ704とを備える。コンピュータシステム700はさらにランダムアクセスメモリ(RAM)またはその他の動的記憶装置などの主メモリ706を備え、これはバス702に結合されて、プロセッサ704が実行する命令および情報を記憶する。主メモリ706はまた、プロセッサ704が命令を実行している間に一時的な変数またはその他の中間情報を蓄積するためにも用いられ得る。コンピュータシステム700はさらに、バス702に結合されてプロセッサ704のための静的情報および命令を記憶する読出専用メモリ(ROM)708またはその他の静的記憶装置を備える。さらに、バス702に結合されて情報および命令を記憶するための磁気ディスクまたは光ディスクなどの記憶装置710が設けられる。
コンピュータシステム700はバス702を介して、情報をコンピュータユーザに対して表示するための陰極線管(CRT)などの表示装置712に結合され得る。英数字式キーおよびその他のキーを含む入力装置714がバス702に結合されて情報およびコマンド選択をプロセッサ704に通信する。別の種類のユーザ入力装置として、マウス、トラックボールまたはカーソルキーなどのカーソル操作装置716があり、これにより方向情報およびコマンド選択をプロセッサ704に通信し、ディスプレイ712におけるカーソ
ルの動きを制御する。一般的にこの入力装置は、第1の軸(たとえばx軸)および第2の軸(たとえばy軸)の2本の軸上における2自由度を有し、これにより入力装置は或る平面上の位置を指定することができる。
この発明は、コンピュータシステム700を使用してここに記載の技術を実現することに関する。この発明の一実施例に従うと、主メモリ706に入っている1つ以上の命令からなる1つ以上のシーケンスをプロセッサ704が実行するのに応じてここに記載の技術がコンピュータシステム700により実行される。上記命令は別のコンピュータ読取可能媒体、たとえば記憶装置710から主メモリ706に読込まれ得る。主メモリ706に入っている命令シーケンスが実行されるのに伴い、プロセッサ704においてここに記載されたプロセスステップが実行される。これに代わる実施例では、ソフトウェアによる命令に代えて、またはこれと組合せて、ハードウェア回路を用いてこの発明を実現する場合もある。したがってこの発明の各実施例は、ハードウェア回路およびソフトウェアのいかなる特定の組合せにも限定されない。
ここで用いる「コンピュータ読取可能媒体」という用語は、命令をプロセッサ704が実行できるようここに供給することに関与するあらゆる媒体を指す。このような媒体は多くの形態をとることができ、これには不揮発性媒体、揮発性媒体および伝送媒体が含まれるがこれに限定されない。不揮発性媒体にはたとえば、記憶装置710などの光ディスクまたは磁気ディスクが含まれる。揮発性媒体には主メモリ706などのダイナミックメモリが含まれる。伝送媒体には同軸ケーブル、銅線および光ファイバが含まれ、これにはバス702を構成するワイヤが含まれる。伝送媒体はまた音波または光波の形態をとることもでき、これにはたとえば電波通信および赤外線データ通信の際に生成されるものなどがある。
コンピュータ読取可能媒体の一般的な形態にはたとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、またはその他任意の磁気媒体、CD−ROM、その他任意の光媒体、パンチカード、紙テープ、その他任意の孔パターンによる物理的媒体、RAM、PROM、EPROM、FLASH−EPROM、その他任意のメモリチップまたはカートリッジ、後に記載するような搬送波、またはその他コンピュータが読出可能な任意の媒体が含まれる。
1つ以上の命令からなる1つ以上のシーケンスをプロセッサ704が実行できるようここへ伝達することにはさまざまな形態のコンピュータ読取可能媒体が関与し得る。たとえば、命令はまず遠隔コンピュータの磁気ディスクに収められ得る。この遠隔コンピュータは命令を自分のダイナミックメモリにロードし、モデムを用いて電話回線経由でこれら命令を送信し得る。コンピュータシステム700に対してローカルなモデムが電話回線上のデータを受信し、赤外線送信機を用いてこのデータを赤外線信号に変換し得る。赤外線信号で搬送されたデータは赤外線検出器で受信され、適当な回路がこのデータをバス702に出力することになる。バス702はデータを主メモリ706へと伝達し、ここからプロセッサ704は命令を検索して実行する。任意には、主メモリ706が受取った命令をプロセッサ704による実行前または実行後に記憶装置710に記憶させてもよい。
コンピュータシステム700はさらに、バス702に結合された通信インターフェイス718を含む。通信インターフェイス718は、ローカルネットワーク722に接続されたネットワークリンク720に対する2方向データ通信結合を行なうものである。たとえば通信インターフェイス718として統合デジタル通信サービス網(ISDN)カードまたはモデムを用いることができ、これにより対応する種類の電話回線に対するデータ通信接続を行なう。別の例として、通信インターフェイス718にローカルエリアネットワーク(LAN)カードを用いてもよく、これにより対応するLANに対するデータ通信接続
を行なう。無線リンクもまた実現可能である。このような実現例のいずれにおいても、通信インターフェイス718は、さまざまな種類の情報を表わすデジタルデータの流れを搬送する電気信号、電磁信号または光信号を送受信する。
一般的にネットワークリンク720は、1つ以上のネットワーク経由で他のデータ装置に対するデータ通信を可能にする。たとえばネットワークリンク720はローカルネットワーク722経由で、ホストコンピュータ724や、またはインターネットサービスプロバイダ(ISP)726の稼動させるデータ装置に対する接続を行なうことができる。そしてISP726は、現在一般に「インターネット」と称される全世界規模パケットデータ通信網728を通じてデータ通信サービスを提供する。ローカルネットワーク722およびインターネット728ではともに、デジタルデータの流れを搬送する電気信号、電磁信号または光信号を使用する。このようにさまざまなネットワークを経由する信号や、デジタルデータをコンピュータシステム700に入出力するように搬送するネットワークリンク720上および通信インターフェイス718経由の信号は、情報を運ぶ搬送波の形態の例である。
コンピュータシステム700は、ネットワーク、ネットワークリンク720および通信インターフェイス718を通じてメッセージを送信し、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバ730は或るアプリケーションプログラムについての要求されたコードを、インターネット728、ISP726、ローカルネットワーク722そして通信インターフェイス718経由で送信することがあり得る。
こうして受信されたコードは、受信されるとプロセッサ704により実行され、かつ/または記憶装置710もしくはその他の不揮発性記憶装置内で、後で実行されるように蓄積され得る。このようにコンピュータシステム700は搬送波の形でアプリケーションコードを取得し得る。
以上の明細書においては、この発明をその特定の実施例を参照して記載した。しかし、この発明のより広い意味および範囲から逸脱することなく、さまざまな変形および変更がこの発明で可能であることが明らかであろう。したがってこの明細書および図面は、限定的でなく例示的な意味で考えられるべきである。
クライアントとデータ源との間で合図される通信のための指定された再試行コンポーネントを有するシステムを説明する図である。 再試行ロジックを含むように構成されたサーバマシンの動作を説明するブロック図である。 クライアントとデータ源との間の通信経路において再試行ロジックを実現するためのシーケンス図である。 クライアントをデータ源に結合するのに用いるサーバマシンのための再試行ロジックを実現する一方法を説明する図である。 クライアントをデータ源に結合するためのシステムにおける再試行ロジックを実現する一方法を説明する図である。 障害の起きた或るいくつかの通信が再試行可能であるかどうかを判断する再試行ロジックで実現され得るデータ構造を説明する図である。 この発明の一実施例が実現され得るコンピュータシステムを説明するブロック図である。 クライアントとサーバとの間で障害の起きた通信を再試行する先行技術のシステムを説明する図である。

Claims (51)

  1. 送信側と、意図された受信側との間の通信を管理するためのシステムであって、
    前記送信側から前記意図された受信側への送信側通信をシーケンシャルに転送するようにシーケンスで結合された複数の論理コンポーネントと、
    前記送信側通信が前記意図された受信側に到達することに失敗した場合に前記意図された受信側への前記送信側通信の送信を再試行するように指定された、前記複数の論理コンポーネントのうちの再試行コンポーネントとを含み
    前記再試行コンポーネントは、前記複数の論理コンポーネントのうち、前記意図された受信側への前記送信側通信の送信を再試行するように指定された唯一のコンポーネントであり、前記システムは、
    前記複数の論理コンポーネントのうちの多数のコンポーネントをさらに含み、前記多数のコンポーネントは、前記送信側通信に障害が起きたのに応じて、前記送信側通信に障害が起きたという標示を前記再試行コンポーネントへ転送し、自らは前記意図された受信側への前記送信側通信の送信を再試行せず、
    前記多数のコンポーネントのうちの少なくとも1つは、前記標示を前記再試行コンポーネントに直接送信することにより前記送信側通信に障害が起きたことに応答するように構成され、前記標示を直接前記再試行コンポーネントに送信することは、前記多数のコンポーネントのうちの少なくともいずれか1つの他のコンポーネントを迂回することを含み、
    前記多数のコンポーネントのうちの少なくとも1つは、前記再試行コンポーネントから間接的に通信を受取るように前記シーケンス内に位置付けられるコンポーネントであり、
    前記送信側はクライアントであり、
    前記意図された受信側はデータを管理するサーバであり、前記サーバは装置である、システム。
  2. 前記送信側通信は、データを管理する前記サーバにより管理されるデータへの要求であり、前記サーバはデータベースサーバであり、前記データはデータベースに記憶される、請求項1に記載のシステム。
  3. 前記再試行コンポーネントは、前記クライアントからデータを管理する前記サーバへの通信経路において前記多数のコンポーネントの前にある、請求項1に記載のシステム。
  4. 前記再試行コンポーネントはサーバマシンのインターフェイスの一部として設けられ、前記インターフェイスは、他の装置からの要求を処理するように構成されたものであり、前記サーバマシンおよび前記他の装置は前記クライアントおよびデータを管理する前記サーバとは異なる、請求項1に記載のシステム。
  5. 前記再試行コンポーネントは、要求を、データを管理する前記サーバへ送信するサーバマシン内のサーバ内論理コンポーネントであり、前記サーバマシンは前記クライアントおよびデータを管理する前記サーバとは異なる、請求項1に記載のシステム。
  6. 前記再試行コンポーネントは、前記クライアントから前記送信側通信を受取る負荷平衡装置に常駐し、前記複数の論理コンポーネントにおける他のコンポーネントを含むサーバマシンに前記送信側通信を送信し、前記サーバマシンおよび前記負荷平衡装置は前記クライアントおよびデータを管理する前記サーバとは異なる、請求項1に記載のシステム。
  7. 前記複数の論理コンポーネントのうち少なくとも前記多数のコンポーネントは第1のサーバマシンに常駐し、前記再試行コンポーネントは、第2のサーバマシンにおけるコンポーネントを使用して、データを管理する前記サーバへの前記送信側通信の送信を再試行するように構成され、前記第1のサーバマシンおよび前記第2のサーバマシンは前記クライアントおよびデータを管理する前記サーバとは異なる、請求項1に記載のシステム。
  8. 前記再試行コンポーネントはトポロジマップにアクセスして前記多数のコンポーネントのうちどれが適正に機能しているかを判断する、請求項1に記載のシステム。
  9. さらに、前記複数の論理コンポーネントの外部にある外部モニタを含み、前記外部モニタは、前記送信側通信が、データを管理する前記サーバに到達するのに失敗したかどうかを検出し、かつ前記送信側通信がデータを管理する前記サーバに到達するのに失敗したときに前記再試行コンポーネントに通信するように構成される、請求項1に記載のシステム。
  10. 前記再試行コンポーネントは、前記送信側通信を再送信する前に前記送信側通信が再試行可能であるかどうかを判断する、請求項1に記載のシステム。
  11. 前記再試行コンポーネントは、前記送信側通信がデータを管理する前記サーバに到達するのに失敗したことが前記多数のコンポーネントのうち1つ以上により標示された場合にデータを管理する前記サーバへの前記送信側通信の送信を再試行するように構成された唯一のコンポーネントである、請求項1に記載のシステム。
  12. 前記再試行コンポーネントは、前記送信側通信の特性に少なくとも部分的に基づいて前記送信側通信が再試行可能であるかどうかを判断する、請求項10に記載のシステム。
  13. 前記再試行コンポーネントおよび前記多数のコンポーネントはサーバマシンに常駐し、前記再試行コンポーネントは、前記送信側通信が、データを管理する前記サーバに到達するのに失敗したことが前記多数のコンポーネントのうちいずれかにより標示された場合に他のサーバマシンと交信して前記送信側通信を再送信するように構成され、前記サーバマシンおよび前記他のサーバマシンは前記クライアントおよびデータを管理する前記サーバとは異なる、請求項10に記載のシステム。
  14. 前記再試行コンポーネントは前記クライアントに常駐しており、広域ネットワークにわたり前記多数のコンポーネントと通信する、請求項1に記載のシステム。
  15. 前記再試行コンポーネントは、前記送信側通信が再試行可能であるかどうかを判断するのに際し、前記送信側通信が安全にされているかどうかを判断する、請求項10に記載のシステム。
  16. 前記再試行コンポーネントは、前記送信側通信が再試行可能であるかどうかを判断するのに際して前記クライアントの識別情報を識別する、請求項10に記載のシステム。
  17. 前記再試行コンポーネントは、データを管理する前記サーバの識別情報に基づいて前記送信側通信が再試行可能であるかどうかを判断する、請求項10に記載のシステム。
  18. 前記再試行コンポーネントはサーバマシンに常駐し、単一の前記再試行コンポーネントは前記サーバマシンにおける少なくとも1つの他の代替コンポーネントを識別し、かつ前記送信側通信を前記少なくとも1つの他の代替コンポーネントへ転送することによりデータを管理する前記サーバへの前記送信側通信の送信を再試行し、前記サーバマシンは前記クライアントおよびデータを管理する前記サーバとは異なる、請求項1に記載のシステム。
  19. 前記再試行コンポーネントは、前記送信側通信の送信を再試行する前に、当該の送信側通信につき再試行が以前に試みられた回数を判断し、そして、前記回数が再試行についての最大閾値未満である場合にのみ前記送信側通信の送信を再試行する、請求項1に記載のシステム。
  20. ネットワーク通信を管理する、コンピュータにより実現される方法であって、
    送信側と意図された受信側との間の第1の通信経路において再試行ポイントを指定するステップを含み、前記第1の通信経路は、前記送信側から前記意図された受信側への送信側通信をシーケンシャルに受取り転送する、シーケンスで結合された複数の論理コンポーネントを含み、前記再試行ポイントは前記第1の通信経路の一部を形成し、前記方法はさらに、
    前記第1の通信経路のうち前記再試行ポイントを超えた部分において前記送信側通信が前記意図された受信側に到達するのに失敗した場合に、前記複数の倫理コンポーネントのうちの1つの論理コンポーネントが、前記送信側通信が前記意図された受信側に到達するのに失敗したという標示を前記再試行ポイントに送信するステップを含み
    前記標示を前記再試行ポイントに送信するステップは、前記標示を前記再試行コンポーネントに直接送信するステップを含み、前記標示を直接前記再試行コンポーネントに送信することは、前記多数のコンポーネントのうちの少なくともいずれか1つの他のコンポーネントを迂回することを含み、前記方法はさらに、
    前記送信側通信を前記意図された受信側へ前記再試行ポイントからのみ再送信するステップを含み、
    前記再試行ポイントは、前記複数の論理コンポーネントのうち、前記意図された受信側へ前記送信側通信を再送信するように指定された全てのコンポーネントを含み、
    前記論理コンポーネントは、前記再試行ポイントから間接的に通信を受取るように前記シーケンス内に位置付けられ、
    前記送信側はクライアントであり、
    前記意図された受信側はデータを管理するサーバであり、前記サーバは装置である、方法。
  21. 前記送信側通信が、データを管理する前記サーバに到達するのに失敗したという標示を前記再試行ポイントに送信するステップは、前記送信側通信が、データを管理する前記サーバに到達するのに失敗したことが検出されるのに応じて実行される、請求項20に記載の方法。
  22. 前記再試行ポイントを指定するステップは、サーバ内論理コンポーネントを再試行ロジックの実行に指定するステップを含む、請求項20に記載の方法。
  23. 前記送信側通信が、データを管理する前記サーバに到達するのに失敗したことを検出するステップは、データを管理する前記サーバが利用不可能であることを検出するステップを含む、請求項21に記載の方法。
  24. 前記送信側通信が、データを管理する前記サーバに到達するのに失敗したことを検出するステップは、前記第1の通信経路にある論理コンポーネントに障害が起きたことを検出するステップを含む、請求項21に記載の方法。
  25. さらに、前記送信側通信に障害が起きたことを検出した後に前記送信側通信のための新たな通信経路を選択するステップを含む、請求項20に記載の方法。
  26. 新たな通信経路を選択するステップは、前記再試行ポイントにおけるロジックを使用して、データを管理する前記サーバに到達するために利用可能な通信経路を識別するステップを含む、請求項25に記載の方法。
  27. 前記再試行ポイントを指定するステップは、前記第1の通信経路を形成する前記複数の論理コンポーネントのうちの少なくとも2つの論理コンポーネントを前記再試行ポイントとして選択するステップを含む、請求項20に記載の方法。
  28. 前記複数の論理コンポーネントのうちの少なくとも2つの論理コンポーネントを選択するステップは、作業負荷を複数のサーバマシン間に分散させる負荷平衡装置から前記複数の論理コンポーネントのうちの少なくとも2つの論理コンポーネントを選択するステップを含み、前記複数の論理コンポーネントのうちの少なくとも2つの論理コンポーネントは前記複数のサーバマシンのうちの1つに常駐し、前記複数のサーバマシンおよび前記負荷平衡装置は前記クライアントおよびデータを管理する前記サーバとは異なる、請求項27に記載の方法。
  29. さらに、前記送信側通信が再試行可能であるかどうかを判断するステップと、
    前記送信側通信が再試行可能である場合にのみ前記送信側通信を再送信するステップとを含む、請求項20に記載の方法。
  30. 前記送信側通信が再試行可能であるかどうかを判断するステップは、前記クライアントの識別情報を判別するステップと、前記クライアントの前記識別情報が前記送信側通信の再送信を許すように指定されている場合に前記送信側通信を再送信するステップとを含む、請求項29に記載の方法。
  31. 前記送信側通信が再試行可能であるかどうかを判断するステップは、データを管理する前記サーバの識別情報を判別するステップと、データを管理する前記サーバの前記識別情報が前記送信側通信の再送信を許すように指定されている場合に前記送信側通信を再送信するステップとを含む、請求項29に記載の方法。
  32. 前記送信側通信が再試行可能であるかどうかを判断するステップは、前記送信側通信が安全にされていた場合に前記送信側通信が再試行不可能であると判断するステップを含む、請求項29に記載の方法。
  33. 前記送信側通信が再試行可能であるかどうかを判断するステップは、前記送信側通信につき以前に再試行が試みられた回数を判断するステップと、前記回数が再試行についての最大閾値未満である場合にのみ前記送信側通信を再試行するステップとを含む、請求項29に記載の方法。
  34. 前記送信側通信が再試行可能であるかどうかを判断するステップは、前記送信側通信の特性を、前記送信側通信が再試行可能であるかどうかについての対応する標示と照合させるステップを含む、請求項29に記載の方法。
  35. 前記クライアントとデータを管理する前記サーバとの間の前記第1の通信経路において前記再試行ポイントを指定するステップは、前記クライアントに対応するサーバ内論理コンポーネントを前記再試行ポイントして選択するステップを含む、請求項29に記載の方法。
  36. データを管理する前記サーバに前記送信側通信を再送信するステップは、異なる通信経路を使用して、データを管理する前記サーバへ前記送信側通信を再送信するステップを含む、請求項29に記載の方法。
  37. 前記異なる通信経路を使用するステップは、データを管理する前記サーバのために前記送信側通信を転送するように前記第1の通信経路の外部にある通信装置にアクセスするステップを含む、請求項36に記載の方法。
  38. 前記送信側通信が、データを管理する前記サーバに到達するのに失敗したという標示を前記再試行ポイントに送信するステップは、前記再試行ポイントとデータを管理する前記サーバとの間にある前記複数の論理コンポーネントのうちの1つにおいて前記送信側通信が、データを管理する前記サーバに到達するのに失敗したかどうかを検出するステップを含む、請求項29に記載の方法。
  39. 前記送信側通信を、データを管理する前記サーバへ前記再試行ポイントからのみ再送信するステップは、前記再試行ポイントにおける対応する装置の外部にある装置を一部分が通る新たな通信経路を選択するステップを含む、請求項29に記載の方法。
  40. 前記送信側通信が再試行可能であるかどうかを判断するステップは、前記新たな通信経路が使用されることになるかどうかを判断するステップを含む、請求項39に記載の方法。
  41. さらに、前記送信側通信が安全であるかどうかを判断するステップと、前記新たな通信経路が前記送信側通信の再送信に使用されることになる場合に前記送信側通信が再試行不可能であると判断するステップとを含む、請求項40に記載の方法。
  42. 前記送信側通信が再試行可能であるかどうかを判断するステップは、前記送信側通信が安全にされているかどうかを判断するステップと、データを管理する前記サーバに前記送信側通信を再送信するステップが前記第1の通信経路の外部にある通信装置を使用するステップを含むかどうかを判断するステップとを含む、請求項29に記載の方法。
  43. 送信側と意図された受信側との間の通信を管理するためのシステムであって、前記システムは、シーケンシャルに組合せられて送信側通信を前記意図された受信側に転送する、シーケンスで結合された複数の論理コンポーネントを含む装置において実現され、前記システムは、
    データを蓄積するメモリを含み、前記データは、通信についての1つ以上の特性を識別し、かつ前記1つ以上の特性を有する通信が再試行可能であるかどうかを標示し、前記システムはさらに、
    前記複数の論理コンポーネントのうちの再試行コンポーネントを含み、前記再試行コンポーネントは、前記送信側通信において前記特性を識別し、前記送信側通信が前記意図された受信側に到達するのに失敗した場合に前記メモリにアクセスして前記送信側通信の送信を再試行すべきかどうかを判断し、
    前記再試行コンポーネントは、前記複数の論理コンポーネントのうち、前記意図された受信側への前記送信側通信の送信を再試行するように指定された唯一のコンポーネントであり、
    前記複数の論理コンポーネントのうちの多数のコンポーネントは、前記送信側通信に障害が起きたのに応じて、前記送信側通信に障害が起きたという標示を前記再試行コンポーネントへ転送し、自らは前記意図された受信側への前記送信側通信の送信を再試行せず、
    前記多数のコンポーネントのうちの少なくとも1つは、前記標示を前記再試行コンポーネントに直接送信することにより前記送信側通信に障害が起きたことに応答するように構成され、前記標示を直接前記再試行コンポーネントに送信することは、前記多数のコンポーネントのうちの少なくともいずれか1つの他のコンポーネントを迂回することを含み、
    前記多数のコンポーネントのうちの少なくとも1つは、前記再試行コンポーネントから間接的に通信を受取るように前記シーケンス内に位置付けられ、
    前記送信側はクライアントであり、
    前記意図された受信側はデータを管理するサーバであり、前記サーバは装置である、システム。
  44. メモリ内に蓄積された前記データは、前記送信側通信が安全にされているかどうかに基づいて前記送信側通信が再試行可能であるかどうかを標示する、請求項43に記載のシステム。
  45. メモリ内に蓄積された前記データは、前記送信側通信の動作に基づいて前記送信側通信が再試行可能であるかどうかを標示する、請求項43に記載のシステム。
  46. 前記再試行コンポーネントは、前記複数の論理コンポーネントのうち、データを管理する前記サーバに到達するのに失敗した送信側通信を再試行する唯一のコンポーネントとして構成される、請求項43に記載のシステム。
  47. 前記再試行コンポーネントは、前記通信の送信を再試行するための送信経路として働くように前記装置において前記複数の論理コンポーネントを含む1群のコンポーネントからコンポーネントの組合せを選択するように構成され、前記1群のコンポーネントにおける前記コンポーネントのうち少なくともいくつかは前記装置の外部にある、請求項46に記載のシステム。
  48. ネットワーク通信を管理するための1つ以上の命令シーケンスを担うコンピュータ読取可能媒体であって、1つ以上のプロセッサによる前記1つ以上の命令シーケンスの実行は、前記1つ以上のプロセッサに、請求項20から請求項42のいずれかに記載の方法を実行させる、コンピュータ読取可能媒体。
  49. 前記再試行コンポーネントから間接的に通信を受取るように前記シーケンス内に位置付けられるコンポーネントは、前記シーケンス内の前記再試行コンポーネントから少なくとも1つのコンポーネント離れて位置付けられる特定のコンポーネントである、請求項1に記載のシステム。
  50. 前記再試行ポイントから間接的に通信を受取るように前記シーケンス内に位置付けられる論理コンポーネントは、前記シーケンス内の前記再試行ポイントから少なくとも1つのコンポーネント離れて位置付けられる特定のコンポーネントである、請求項20に記載の方法。
  51. 前記再試行コンポーネントから間接的に通信を受取るように前記シーケンス内に位置付けられるコンポーネントは、前記シーケンス内の前記再試行コンポーネントから少なくとも1つのコンポーネント離れて位置付けられる特定のコンポーネントである、請求項43に記載のシステム。
JP2003585401A 2002-04-05 2003-03-21 多層ネットワーク通信システム用再試行技術 Expired - Lifetime JP4495977B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/118,203 US7337234B2 (en) 2002-04-05 2002-04-05 Retry technique for multi-tier network communication systems
PCT/US2003/009134 WO2003088621A2 (en) 2002-04-05 2003-03-21 Retry technique for multi-tier network communication systems

Publications (3)

Publication Number Publication Date
JP2005527899A JP2005527899A (ja) 2005-09-15
JP2005527899A5 JP2005527899A5 (ja) 2006-04-13
JP4495977B2 true JP4495977B2 (ja) 2010-07-07

Family

ID=28674380

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003585401A Expired - Lifetime JP4495977B2 (ja) 2002-04-05 2003-03-21 多層ネットワーク通信システム用再試行技術

Country Status (7)

Country Link
US (1) US7337234B2 (ja)
EP (1) EP1493261A2 (ja)
JP (1) JP4495977B2 (ja)
CN (1) CN1647482B (ja)
AU (1) AU2003225991B2 (ja)
CA (1) CA2481326C (ja)
WO (1) WO2003088621A2 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0324597D0 (en) 2003-10-21 2003-11-26 Nokia Corp A communication system
US7421695B2 (en) * 2003-11-12 2008-09-02 Cisco Tech Inc System and methodology for adaptive load balancing with behavior modification hints
JP4939102B2 (ja) * 2006-04-21 2012-05-23 株式会社日立製作所 ネットワークブート計算機システムの高信頼化方法
US8254271B1 (en) * 2006-06-16 2012-08-28 Cisco Technology, Inc. Point-to-multipoint connectivity verification
JP2008061091A (ja) * 2006-09-01 2008-03-13 Hitachi Communication Technologies Ltd パス設定方法およびノード装置
US8656058B2 (en) * 2008-09-05 2014-02-18 Lsi Corporation Back-off retry with priority routing
US20100268981A1 (en) * 2009-04-20 2010-10-21 Futurewei Technologies, Inc. System and Method for Tunneling System Error Handling Between Communications Systems
US8880668B2 (en) * 2011-02-28 2014-11-04 Verizon Patent And Licensing Inc. Method and system for integrating data from multiple sources
EP2579546B1 (en) * 2011-09-27 2016-05-25 Alcatel Lucent Method of failure detection in an operating system
JP6281175B2 (ja) * 2012-12-07 2018-02-21 株式会社ジェイテクト Plc通信システム
US9660919B2 (en) * 2013-01-28 2017-05-23 Apple Inc. Adaptive data connection retry by a wireless communication device
JP6204058B2 (ja) * 2013-05-07 2017-09-27 株式会社ジェイテクト Plc通信システム
CN105897781B (zh) * 2016-06-30 2019-05-31 北京奇虎科技有限公司 移动终端与服务器之间数据传输的控制方法及装置
US11010248B2 (en) * 2019-02-28 2021-05-18 International Business Machines Corporation Reuse of resources in a storage controller for executing write commands over a plurality of interfaces
US10996891B2 (en) 2019-02-28 2021-05-04 International Business Machines Corporation Token management for write commands transmitted by a host over a plurality of interfaces to a storage controller
US11509619B2 (en) * 2020-01-14 2022-11-22 Capital One Services, Llc Techniques to provide streaming data resiliency utilizing a distributed message queue system
CN111611057B (zh) * 2020-04-23 2024-02-02 瑞庭网络技术(上海)有限公司 分布式重试方法、装置、电子设备和存储介质

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5235599A (en) * 1989-07-26 1993-08-10 Nec Corporation Self-healing network with distributed failure restoration capabilities
ATE176744T1 (de) * 1992-11-27 1999-02-15 Ibm Mehrfachsende-leitweglenkung zwischen bereichen
US6185619B1 (en) 1996-12-09 2001-02-06 Genuity Inc. Method and apparatus for balancing the process load on network servers according to network and serve based policies
US5737543A (en) * 1995-02-23 1998-04-07 International Business Machines Corporation High performance communications path
US5862125A (en) * 1995-06-07 1999-01-19 Mci Communication Corporation Automated restoration of unrestored link and nodal failures
US5983090A (en) * 1996-04-02 1999-11-09 Kabushiki Kaisha Toshiba Mobile communication system with access function to computer network
US5905872A (en) * 1996-11-05 1999-05-18 At&T Corp. Method of transferring connection management information in world wideweb requests and responses
US6445704B1 (en) * 1997-05-02 2002-09-03 Cisco Technology, Inc. Method and apparatus for virtualizing a locally initiated outbound connection from a connection manager
US6343067B1 (en) * 1997-08-29 2002-01-29 Intel Corporation Method and apparatus for failure and recovery in a computer network
US6181704B1 (en) * 1997-08-29 2001-01-30 Intel Corporation Method and apparatus for input/output link retry, failure and recovery in a computer network
US6367018B1 (en) * 1998-02-05 2002-04-02 3Com Corporation Method for detecting dedicated link between an end station and a network device
US6163856A (en) * 1998-05-29 2000-12-19 Sun Microsystems, Inc. Method and apparatus for file system disaster recovery
US6122363A (en) * 1998-07-24 2000-09-19 Mci Communications Corp. Multi-protocol interface apparatus at a service control point
US6327243B1 (en) * 1998-08-03 2001-12-04 Samsung Electronics Co., Ltd. System and method for performing a seamless switchover from a primary packet router to a secondary packet router
US6854007B1 (en) * 1998-09-17 2005-02-08 Micron Technology, Inc. Method and system for enhancing reliability of communication with electronic messages
US6256641B1 (en) * 1998-12-15 2001-07-03 Hewlett-Packard Company Client transparency system and method therefor
US6836470B1 (en) * 1999-01-29 2004-12-28 International Business Machines Corporation Method for reliable message delivery in a network of mobile computers
US6651103B1 (en) * 1999-04-20 2003-11-18 At&T Corp. Proxy apparatus and method for streaming media information and for increasing the quality of stored media information
US6335933B1 (en) * 1999-05-21 2002-01-01 Broadcom Homenetworking, Inc. Limited automatic repeat request protocol for frame-based communication channels
US6813240B1 (en) * 1999-06-11 2004-11-02 Mci, Inc. Method of identifying low quality links in a telecommunications network
US6859834B1 (en) * 1999-08-13 2005-02-22 Sun Microsystems, Inc. System and method for enabling application server request failover
EP1256210A2 (en) * 2000-02-04 2002-11-13 HRL Laboratories, LLC System and method for pricing-based quality of service
JP3790658B2 (ja) * 2000-03-27 2006-06-28 富士通株式会社 ネットワークにおけるルーティング情報マッピング装置、その方法及び記録媒体
US7814208B2 (en) * 2000-04-11 2010-10-12 Science Applications International Corporation System and method for projecting content beyond firewalls
JP2001339431A (ja) * 2000-05-26 2001-12-07 Fujitsu Ltd 通信方式、中継装置、エンドシステム及び通信方法
US6862430B1 (en) * 2000-07-05 2005-03-01 Echelon Corporation System and method for selecting repeaters
US6977908B2 (en) * 2000-08-25 2005-12-20 Hewlett-Packard Development Company, L.P. Method and apparatus for discovering computer systems in a distributed multi-system cluster
US20020035631A1 (en) * 2000-09-21 2002-03-21 Kevin Chung Method and system for establishing communication link between host computer provided with multiple communication tools and communication network
US20020152293A1 (en) * 2001-01-31 2002-10-17 Hahn Terry G. Dynamic server directory for distributed computing system
JP3966711B2 (ja) * 2001-11-06 2007-08-29 富士通株式会社 代理応答方法
US6954877B2 (en) * 2001-11-29 2005-10-11 Agami Systems, Inc. Fault tolerance using logical checkpointing in computing systems
US20030145108A1 (en) * 2002-01-31 2003-07-31 3Com Corporation System and method for network using redundancy scheme
US20030177259A1 (en) * 2002-02-04 2003-09-18 Wookey Michael J. Remote services systems data delivery mechanism
US20030149771A1 (en) * 2002-02-04 2003-08-07 Wookey Michael J. Remote services system back-channel multicasting

Also Published As

Publication number Publication date
WO2003088621A2 (en) 2003-10-23
CA2481326C (en) 2012-08-21
WO2003088621A3 (en) 2004-01-08
US20030191831A1 (en) 2003-10-09
EP1493261A2 (en) 2005-01-05
CA2481326A1 (en) 2003-10-23
AU2003225991B2 (en) 2008-05-08
JP2005527899A (ja) 2005-09-15
AU2003225991A1 (en) 2003-10-27
CN1647482A (zh) 2005-07-27
US7337234B2 (en) 2008-02-26
CN1647482B (zh) 2010-08-25

Similar Documents

Publication Publication Date Title
JP4495977B2 (ja) 多層ネットワーク通信システム用再試行技術
US8914429B2 (en) Method for creating global distributed namespace
KR101159363B1 (ko) 요청-응답 전송을 사용하여, 요청 메시지들을 신뢰성있게송신하고, 응답 메시지들을 신뢰성있게 수신하기 위한 방법및 컴퓨터 프로그램 제품
US7975047B2 (en) Reliable processing of HTTP requests
US20100030880A1 (en) Failover in proxy server networks
US7461128B2 (en) Method, apparatus and system for processing message bundles on a network
US20070204275A1 (en) Method and system for reliable message delivery
US20070180332A1 (en) System and method for multipath I/O support for fibre channel devices
US20070112812A1 (en) System and method for writing data to a directory
US8478898B2 (en) System and method for routing directory service operations in a directory service network
US8572201B2 (en) System and method for providing a directory service network
US7092982B2 (en) Storage system with method of minimizing redundant transmissions over a plurality of communication paths
US6678726B1 (en) Method and apparatus for automatically determining topology information for a computer within a message queuing network
JP4336735B1 (ja) サービス処理装置、システム、プログラム及び記録媒体
US20040019636A1 (en) System and method for dynamically routing web procedure calls
US20060168145A1 (en) Method for creating a secure and reliable content distribution framework
JP2005527899A5 (ja)
JP4437956B2 (ja) ファイル共有アプリケーションに対するインデックス・サーバ・サポートを提供する方法
US20100131465A1 (en) Method for duplicating a database in a network of machines, and system of machines comprising a duplicated database
US8234338B1 (en) System and method for reliable message delivery
JP5029685B2 (ja) バックアップ装置
JP2002368781A (ja) ユーザ位置管理ドメインネーム変換システム
JP2008129628A (ja) 複数のコンピュータシステムでメッセージをやり取りすることによって所定の業務を処理するシステムでの通信方式、及び、メッセージ中継プログラム
US7143313B2 (en) Support interface module bug submitter
US20070106691A1 (en) System and method for efficient directory performance using non-persistent storage

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060227

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080729

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090811

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100204

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100311

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4495977

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130416

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140416

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term