(57)【特許請求の範囲】
【請求項１】
送信側から受信側へ一つ以上のメッセージを伝送する方法であって、
前記受信側へ前記一つ以上のメッセージを前記送信側から該受信側へ伝送されるデータの受渡しを保証できない不信頼移送機構で伝送するステップと、
前記受信側が前記一つ以上のメッセージを受信するはずであることを示すために、該受信側へ該一つ以上のメッセージを識別する検証メッセージを前記送信側から該受信側へ伝送されるデータの受渡しを保証できる信頼移送機構で伝送するステップと、
を含む方法。
【請求項２】
前記一つ以上のメッセージが前記受信側によって受信されていないことを示す前記受信側からの応答を受信するステップと、
前記応答を受信することに応じて、前記受信側へ前記一つ以上のメッセージを再伝送するステップと、
を更に含むことを特徴とする請求項１記載の方法。
【請求項３】
前記応答を受信することに応じて、前記一つ以上のメッセージを含むデータを再生成するステップと、
前記一つ以上のメッセージとして前記データを前記受信側へ再伝送するステップと、
を更に含むことを特徴とする請求項２記載の方法。
【請求項４】
前記検証メッセージは、前記少なくとも一つのメッセージを再伝送するために前記受信側からの要求を受信する前記送信側に応じて前記一つ以上のメッセージの少なくとも一つのメッセージを再処理するために前記送信側によって用いられるデータを含むことを特徴とする請求項１記載の方法。
【請求項５】
不信頼移送機構で伝送するステップは、ネットワークで伝送することを含むことを特徴とする請求項１記載の方法。
【請求項６】
信頼移送機構で伝送するステップは、ネットワークで伝送することを含むことを特徴とする請求項１記載の方法。
【請求項７】
不信頼移送機構で伝送するステップは、データの不信頼移送を供給するプロトコルを用いて伝送するステップを含み、
信頼移送機構で伝送するステップは、データの信頼移送を供給するプロトコルを用いて伝送するステップを含むことを特徴とする請求項１記載の方法。
【請求項８】
信頼移送機構で伝送するステップの実行は、前記不信頼移送機構で前記一つ以上のメッセージを伝送した後ある期間遅延されることを特徴とする請求項１記載の方法。
【請求項９】
不信頼移送機構で伝送するステップは、第２の処理である受信側へ一つ以上のメッセージを不信頼移送機構で伝送する第１の処理を含み、前記第１の処理は、コンピュータのオペレーティング・システムによって制御され、前記第２の処理は、前記オペレーティング・システムによって制御され、
信頼移送機構で伝送するステップは、前記第２の処理へ前記検証メッセージを前記信頼移送機構で伝送する第１の処理を含むことを特徴とする請求項１記載の方法。
【請求項１０】
一つ以上のメッセージを不信頼移送機構で伝送するステップは、各々が一つ以上のデータのパケットを含む一つ以上のメッセージを伝送することを含むことを特徴とする請求項１記載の方法。
【請求項１１】
前記一つ以上のメッセージが前記受信側によって受信されていないことを示す該受信側からの応答を受信するステップと、
前記応答を受信したことに応じて、前記一つ以上のメッセージを再生成し、該一つ以上のメッセージを該受信側に再伝送するステップと、
を更に含むことを特徴とする請求項１記載の方法。
【請求項１２】
前記送信側が前記一つ以上のメッセージを送信し、前記受信側が該一つ以上のメッセージを受信していない場合であっても、該一つ以上のメッセージを再伝送しないことを特徴とする請求項１記載の方法。
【請求項１３】
信頼移送機構で伝送するステップを実行した後、不信頼移送機構で伝送するステップを開始することを特徴とする請求項１記載の方法。
【請求項１４】
信頼移送機構で伝送するステップを実行する前に、不信頼移送機構で伝送するステップを開始することを特徴とする請求項１記載の方法。
【請求項１５】
信頼移送機構で伝送するステップと不信頼移送機構で伝送するステップとを同時に実行することを特徴とする請求項１記載の方法。
【請求項１６】
送信側から受信側へ送られた一つ以上のメッセージを受信する方法であって、
前記受信側が前記送信側から該受信側へ伝送されるデータの受渡しを保証できない不信頼移送機構で受信するはずの前記一つ以上のメッセージを識別する該送信側からの検証メッセージを該送信側から該受信側へ伝送されるデータの受渡しを保証できる信頼移送機構で受信するステップと、
前記検証メッセージを受信することに応じて、前記受信側は、前記一つ以上のメッセージが受信されることを確保するステップと、
を含む方法。
【請求項１７】
前記確保するステップは、
前記一つ以上のメッセージが受信されたかどうかを決定するステップと、
前記一つ以上のメッセージが受信されていない場合には、前記一つ以上のメッセージを再伝送するために前記送信側に対して要求を伝送するステップと、
を含むことを特徴とする請求項１６記載の方法。
【請求項１８】
前記送信側に対して要求を伝送するステップは、前記一つ以上のメッセージが前記検証メッセージを受信した後ある期間受信されなかったときに実行されることを特徴とする請求項１７記載の方法。
【請求項１９】
送信者側から受信者側へ一つ以上のメッセージを伝送するための一つ以上の命令の一つ以上のシーケンスをキャリーしているコンピュータ読取り可能媒体であって、一つ以上の命令の前記一つ以上のシーケンスは、一つ以上のプロセッサによって実行されたときに当該一つ以上のプロセッサに、
前記受信側へ前記一つ以上のメッセージを前記送信側から該受信側へ伝送されるデータの受渡しを保証できない不信頼移送機構で伝送するステップと、
前記受信側が前記一つ以上のメッセージを受信するはずであることを示すために、該受信側へ該一つ以上のメッセージを識別する検証メッセージを前記送信側から該受信側へ伝送されるデータの受渡しを保証できる信頼移送機構で伝送するステップと、
を実行させる命令を含むことを特徴とするコンピュータ読取り可能媒体。
【請求項２０】
前記一つ以上のメッセージが前記受信側によって受信されていないということを示す前記受信側からの応答を受信するステップと、
前記応答を受信することに応じて、前記受信側へ前記一つ以上のメッセージを再伝送するステップと、
を実行するための命令のシーケンスを更に含むことを特徴とする請求項１９記載のコンピュータ読取り可能媒体。
【請求項２１】
前記応答を受信することに応じて、前記一つ以上のメッセージを含むデータを再生成するステップと、
前記一つ以上のメッセージとして前記データを前記受信側へ再伝送するステップと、
を更に含むことを特徴とする請求項２０記載のコンピュータ読取り可能媒体。
【請求項２２】
前記検証メッセージは、前記少なくとも一つのメッセージを再伝送するために前記受信側からの要求を受信する前記送信側に応じて、前記一つ以上のメッセージの少なくとも一つのメッセージを再処理するために前記送信側によって用いられるデータを含むことを特徴とする請求項１９記載のコンピュータ読取り可能媒体。
【請求項２３】
不信頼移送機構で伝送するステップは、ネットワークで伝送することを含むことを特徴とする請求項１９記載のコンピュータ読取り可能媒体。
【請求項２４】
信頼移送機構で伝送するステップは、ネットワークで伝送することを含むことを特徴とする請求項１９記載のコンピュータ読取り可能媒体。
【請求項２５】
不信頼移送機構で伝送するステップは、データの不信頼移送を供給するプロトコルを用いて伝送するステップを含み、
信頼移送機構で伝送するステップは、データの信頼移送を供給するプロトコルを用いて伝送するステップを含むことを特徴とする請求項１９記載のコンピュータ読取り可能媒体。
【請求項２６】
信頼移送機構で伝送するステップの実行は、前記不信頼移送機構で前記一つ以上のメッセージを伝送した後ある期間遅延されることを特徴とする請求項１９記載のコンピュータ読取り可能媒体。
【請求項２７】
不信頼移送機構で伝送するステップは、第２の処理である受信側へ一つ以上のメッセージを不信頼移送機構で伝送する第１の処理を含み、前記第１の処理は、コンピュータのオペレーティング・システムによって制御され、前記第２の処理は、前記オペレーティング・システムによって制御され、
信頼移送機構で伝送するステップは、前記第２の処理へ前記検証メッセージを前記信頼移送機構で伝送する第１の処理を含むことを特徴とする請求項１９記載のコンピュータ読取り可能媒体。
【請求項２８】
一つ以上のメッセージを不信頼移送機構で伝送するステップは、各々が一つ以上のデータのパケットを含む一つ以上のメッセージを伝送することを含むことを特徴とする請求項１９記載のコンピュータ読取り可能媒体。
【請求項２９】
前記一つ以上のメッセージが前記受信側によって受信されていないことを示す該受信側からの応答を受信するステップと、
前記応答を受信したことに応じて、前記一つ以上のメッセージを再生成し、該一つ以上のメッセージを該受信側に再伝送するステップと、
を更に含むことを特徴とする請求項１９記載のコンピュータ読取り可能媒体。
【請求項３０】
前記送信側が前記一つ以上のメッセージを送信し、前記受信側が該一つ以上のメッセージを受信していない場合であっても、該一つ以上のメッセージを再伝送しないことを特徴とする請求項１９記載のコンピュータ読取り可能媒体。
【請求項３１】
信頼移送機構で伝送するステップを実行した後、不信頼移送機構で伝送するステップを開始することを特徴とする請求項１９記載のコンピュータ読取り可能媒体。
【請求項３２】
信頼移送機構で伝送するステップを実行する前に、不信頼移送機構で伝送するステップを開始することを特徴とする請求項１９記載のコンピュータ読取り可能媒体。
【請求項３３】
信頼移送機構で伝送するステップと不信頼移送機構で伝送するステップとを同時に実行することを特徴とする請求項１９記載のコンピュータ読取り可能媒体。
【請求項３４】
受信側へ送信側によって送られた一つ以上のメッセージを受信するための一つ以上の命令の一つ以上のシーケンスをキャリーするコンピュータ読取り可能媒体であって、一つ以上の命令の前記一つ以上のシーケンスは、一つ以上のプロセッサによって実行されるときに、該一つ以上のプロセッサに、
前記送信側から前記受信側へ伝送されるデータの受渡しを保証できない不信頼移送機構で受信するはずの前記一つ以上のメッセージを識別する該送信側からの検証メッセージを該送信側から該受信側へ伝送されるデータの受渡しを保証できる信頼移送機構で受信するステップと、
前記検証メッセージを受信することに応じて、前記受信側が前記一つ以上のメッセージを受信するということを確保するステップと、
を実行させる命令を含むことを特徴とするコンピュータ読取り可能媒体。
【請求項３５】
前記確保するステップは、
前記一つ以上のメッセージが受信されたかどうかを決定するステップと、
前記一つ以上のメッセージが受信されていない場合には、該一つ以上のメッセージを再伝送するために前記送信側へ要求を伝送するステップと、
を含むことを特徴とする請求項３４記載のコンピュータ読取り可能媒体。
【請求項３６】
前記送信側に対して要求を伝送するステップは、前記一つ以上のメッセージが前記検証メッセージを受信した後ある期間受信されなかったときに実行されることを特徴とする請求項３５記載のコンピュータ読取り可能媒体。
【請求項３７】
前記受信側へ前記一つ以上のメッセージを再伝送する前記ステップが、不信頼移送機構で伝送することを特徴とする請求項２記載の方法。
【請求項３８】
前記受信側へ前記一つ以上のメッセージを再伝送する前記ステップが、不信頼移送機構で伝送することを特徴とする請求項２０記載のコンピュータ読取り可能媒体。
【発明の詳細な説明】
【０００１】
本発明の分野
本発明は、データを伝送することに関し、特に、受渡しを保証する方法で効率的にデータを伝送することに関する。
【０００２】
本発明の背景
コンピュータ・システムによって実行される一つの重要な機能は、同じか又は異なるコンピュータ・システムに存在しうる処理間でデータを伝送することである。処理間でデータを伝送するために、処理は、移送機構を用いる。移送機構は、処理間でデータを移送するために用いられる組合せソフトウェア及びハードウェアである。移送機構は、例えば、ネットワーク、ネットワーク・カード、及び処理にネットワークでデータを伝送させるインタフェース・ソフトウェアの組合せを含みうる。多くの場合、移送機構は、ＵＮＩＸ（登録商標）で利用可能なソケットのような、オペレーティング・システムによって供給されるユティリティの使用を通してアクセスされる。データを伝送するために、処理は、オペレーティング・システム・ユティリティを呼出し、その結果、別のコンピュータにネットワークでデータを伝送するためにコンピュータ・システムのハードウェアと通信する。
【０００３】
移送機構は、データを伝送するときにプロトコルに従う。プロトコルは、データを伝送する処理を制御する一組の規則、手順、及び規定である。通常のプロトコルの例は、伝送制御プロトコル（ＴＣＰ）及びユーザ・データグラム・プロトコル（ＵＤＰ）である。プロトコルは、二つの競合する移送機構特性−信頼性とスピードとの間のトレードオフを含む。
【０００４】
信頼性は、受信側へ送信側によって伝送されたデータの受渡しを保証する移送機構の能力を示す。送信側は、受信側と呼ばれる別の処理にデータを伝送するために移送機構を呼出す処理である。信頼移送機構は、受信側へ送信側によって伝送されるデータの受渡しを保証する。ＴＣＰを用いる移送機構は、信頼移送機構の例である。不信頼移送機構は、データの受渡しを保証しない。ＵＤＰを用いる移送機構は、不信頼移送機構の例である。
【０００５】
一般に、信頼移送機構は、不信頼移送機構のように高速ではない。信頼移送機構は、伝送されたデータが受渡されることを確保する、ハンドシェイキング・アルゴリズムのような、手順を呼出す。これらの手順は、受渡しを確保すると同時に、より大きなオーバヘッド及びレイテンシーをもたらす。例えば、信頼移送機構は、送信側ノードから受信側ノードまでネットワークでデータを伝送するために用いられる。受信側ノードまでネットワークで伝送されたデータは、バッファに記憶される。受信側ノードがデータを受信すると、受信側ノードは、肯定応答を送信側ノードに伝送する。送信側ノードが肯定応答を受信すると、送信側ノードは、バッファを解放して、バッファを他の目的のために使用できるようにする。ある期間後に送信側ノードが受信側ノードから肯定応答を受信しなかった場合には、送信側ノードは、受信側ノードへデータを再伝送する。
【０００６】
上記に基づき、通常の信頼移送機構によって被ったオーバーヘッドを被ることなくデータを確実に移送する方法及び機構を供給することが明らかに望ましい。
【０００７】
【発明の概要】
不信頼移送機構でメッセージを確実に伝送するための方法及び機構を記述する。本発明の一形態によれば、送信側は、受信側へ不信頼機構で第１のメッセージを伝送し、かつ第１のメッセージを識別する第２のメッセージは、受信側へ信頼移送機構で移送される。受信側が第２のメッセージを受信すると、受信側は、それが第１のメッセージを受信したかどうかを決定する。受信していないならば、受信側は、第１のメッセージの再伝送を要求する。
【０００８】
好適な実施形態の詳細な説明
データを伝送するための方法及び装置を記述する。以下の記述において、説明の目的のために、本発明の完全な理解を提供するために多くの具体的な詳細が示される。しかしながら、本発明がこれらの具体的な詳細なしで実現されるということは、当業者には明らかであろう。他の例では、既知の構造及び装置は、本発明を不必要に不明瞭にすることを回避するためにブロック図形式で示される。
【０００９】
例示的なメッセージ伝送システム
図１は、本発明の実施形態による例示的なメッセージ伝送システム１００を示す。受信側１９０及び送信側１８０が、それぞれノード１０２及び１０４に存在する処理である。送信側１８０は、不信頼移送機構１５０及び信頼移送機構１６０で受信側１９０にメッセージを伝送する。メッセージは、ある処理から別の処理に伝送されるデータの識別可能な組である。
【００１０】
特に、送信側１８０は、アプリケーション・メッセージ１２０のような、アプリケーション・メッセージを不信頼移送機構１５０で受信側１９０に伝送し、かつ信頼移送機構１６０で、検証メッセージ１２４のような、検証メッセージを伝送する。検証メッセージは、別の移送機構で受信側によって受信されるべき別のメッセージをメッセージの受信側に対して識別する移送機構で移送されるメッセージである。アプリケーション・メッセージは、検証メッセージによって識別されるメッセージである。
【００１１】
例えば、受信側１９０及び送信側１８０は、データベース・システムの制御下の処理である。送信側１８０は、アプリケーション・メッセージ１２０の形式で不信頼移送機構１５０でデータ・ブロックを受信側１９０に送る。アプリケーション・メッセージ１２０が送られたということを受信側１９０に示すために、送信側１８０は、アプリケーション・メッセージ１２０を識別する検証メッセージ１２４を伝送する。検証メッセージ１２４−１、１２４−２、及び１２４−３は、アプリケーション・メッセージ１２０−１、１２０−２、１２０−３をそれぞれ識別する。
【００１２】
一般的に、アプリケーション・メッセージを識別するために必要なデータ量は、アプリケーション・メッセージのデータ量よりも遥かに少ない。その結果、検証メッセージは、それが識別するアプリケーション・メッセージよりも小さい。更に、検証メッセージは、一つ以上のアプリケーション・メッセージを識別しうる。
【００１３】
送信側から受信側へメッセージを伝送するために必要な時間量は、ここでレテンシーと称する。アプリケーション・メッセージは、サイズが大きいが、通常の動作条件下では、不信頼移送機構でアプリケーション・メッセージを伝送するためのレテンシーは、信頼移送機構に関連付けられたオーバーヘッドのために、検証メッセージを伝送するためのレテンシーよりも小さい。
【００１４】
不信頼移送機構１５０及び信頼移送機構１６０は、同じか又は異なるネットワーク・リンクでデータを伝送しうる。例えば、不信頼移送機構１５０及び信頼移送機構１６０は、同じＬＡＮでデータを伝送しうると同時に、それらは、異なるプロトコルを用いてデータを伝送しうる。更に、用いられたネットワーク・リンクは、パケット・ベースである。それゆえに、不信頼移送機構１５０及び信頼移送機構１６０がアプリケーション・メッセージ又は検証メッセージを伝送するときに、メッセージは、パケットの形式の一つ以上のより小さいメッセージとして伝送されうる。
【００１５】
受信メッセージ・リスト１１０のような、受信メッセージ・リストは、ユニットとして受信される一組のメッセージの一部である受信側１９０によって受信されたアプリケーション・メッセージを含む。組のメンバーが受信されるとき、それは、リストに加えられる。次いで、アプリケーション・メッセージは、メッセージが伝送された目的のために受信側によって処理される。詳述するように、受信側１９０は、一組のアプリケーション・メッセージのどのメンバーが受信されたかを追跡するために受信メッセージ・リスト１１０を用いる。受信メッセージ・リスト１１０は、アプリケーション・メッセージ１２０−１、１２０−２、１２０−３を含む。
【００１６】
移送機構によるバッファの使用
Ｒ＿バッファ１８７は、それが信頼移送機構１６０によって用いられるネットワーク・リンクでノード１０４からノード１０２に伝送する検証メッセージのコピーを記憶するために信頼移送機構１６０によって用いられる。信頼移送機構１６０は、信頼移送機構１６０が検証メッセージがノード１０２によって成功裏に受信されたか否かを決定するまでそれがネットワーク・リンクで伝送する検証メッセージのコピーを記憶する。信頼移送機構１６０が検証メッセージが成功裏に受信されなかったということを決定した場合には、信頼移送機構１６０は、検証メッセージのコピーを含んでいるＲ＿バッファ１８７からメッセージを取得し、かつネットワーク・リンクでそれを再伝送する。信頼移送機構１６０が検証メッセージが成功裏に受信されたということを決定した場合には、伝送された検証メッセージのコピーを含んでいるＲ＿バッファ１８７は、別の目的に用いられるために解放される。
【００１７】
他方、不信頼移送機構１５０は、不信頼移送機構１５０によって用いられたネットワーク・リンクにアプリケーション・メッセージのコピーを伝送した後、それを記憶しない。
【００１８】
メッセージの伝送
図２は、不信頼移送機構でメッセージを確実に伝送するための処理を示すフローチャートである。ステップは、例示的なメッセージ伝送システム１００を用いて説明される。
【００１９】
ステップ２１０において、送信側１８０は、受信側１９０へ不信頼移送機構１５０を介してアプリケーション・メッセージ１２０−１を伝送する。
【００２０】
ステップ２１６において、送信側１８０は、アプリケーション・メッセージ１２０−１を識別する検証メッセージを伝送する。特に、送信側１８０は、受信側１９０へ信頼移送機構１６０を介して検証メッセージ１２４−１を伝送する。
【００２１】
一般的に、アプリケーション・メッセージは、アプリケーション・メッセージがより速い不信頼移送機構１５０で移送されるので、検証メッセージが小さくても対応する検証メッセージの前に到着する。アプリケーション・メッセージ１２０が不信頼移送機構１５０を介して受信側１９０によって受信されるときに、それは、受信メッセージ・リスト１１０に追加される。
【００２２】
ステップ２５０において、受信側１９０は、検証メッセージ１２４−１を受信する。ステップ２５４では、検証メッセージ１２４−１によって識別されたアプリケーション・メッセージ（即ち、アプリケーション・メッセージ１２０−１）が受信メッセージ・リスト１１０にあるかどうか決定される。アプリケーション・メッセージ１２０−１が受信メッセージ・リスト１１０にあるので、制御は、ステップ２６２へフローし、アプリケーション・メッセージ１２０−１が受信メッセージ・リスト１１０から削除される。
【００２３】
他方、受信側１９０がアプリケーション・メッセージ１２０−１を受信しておらず、受信メッセージ・リスト１１０に挿入していなかった場合には、ステップ２５０において、アプリケーション・メッセージ１２０−１が受信メッセージ・リスト１１０にないということが決定される。この場合には、制御は、ステップ２５８へフローする。
【００２４】
ステップ２５８において、受信側１９０は、検証メッセージ１２４−１によって識別されたアプリケーション・メッセージを再伝送するように送信側１８０へ要求を伝送する。ステップ２２０において、アプリケーション・メッセージの再伝送に対する要求が送信側１８０によって受信される。制御は、ステップ２１０へフローし、アプリケーション・メッセージが再伝送され、そしてステップ２１６へフローし、アプリケーション・メッセージに対する別の検証メッセージが再伝送される。
【００２５】
図２によって示された処理は、様々な効果を有する。まず、アプリケーション・メッセージが不信頼移送機構で伝送されてもアプリケーション・メッセージの伝送が保証される。特に、検証メッセージは、受信側へ確実に伝送され、受信側が、最小でも、アプリケーション・メッセージが伝送されたということを知らされることを保証する。受信側がアプリケーション・メッセージを受信していないということを決定した場合には、受信側は、アプリケーション・メッセージの再伝送を要求する。受信側がアプリケーション・メッセージを受信していないということを決定したときに検証メッセージを受信しかつ再伝送を要求することは、受信側がアプリケーション・メッセージを受信したということを決定するまで繰り返される処理である。
【００２６】
更に、信頼移送でアプリケーション・メッセージを伝送することのコストを回避すると同時にアプリケーション・メッセージの伝送が保証される。アプリケーション・メッセージに対応する検証メッセージが発生されかつ信頼移送機構で伝送されると同時に、検証メッセージは、その対応アプリケーション・メッセージよりも小さい。その結果、より少ないデータが信頼移送機構で伝送される。ハンドシェイキング、その受渡しが検証されるまでメッセージのコピーを記憶するためのバッファの使用、及びデータを確実に移送することに対して損害を招くオーバーヘッドの他の形式が低減される。
【００２７】
伝送中に失われたアプリケーション・メッセージの許容誤差
不信頼移送機構１５０は、不信頼移送機構１５０によって用いられたネットワーク・リンクへアプリケーション・メッセージを伝送した後アプリケーション・メッセージのコピーを記憶しない。その結果、アプリケーションは、アプリケーションが損失を知らされる限り、伝送中のアプリケーション・メッセージの損失を許容することができなければならない。
【００２８】
例えば、アプリケーションは、繰返し可能であるアプリケーション・メッセージの損失を許容しうる。用語「繰返し可能」は、望ましくない副作用をもたらすことなく再現されうるデータを示す。繰返し可能なメッセージを説明するために、以下の例を示す。メッセージ伝送システムは、銀行業務システムにおいてメッセージを移送するための用いられうる。アプリケーション・メッセージは、預金引出しを確認するメッセージ、及びある期間記録されたトランザクションのリストを特定するメッセージを含む。預金引出しを確認するメッセージは、別の預金引出し−望ましくない副作用をもたらすことによってだけ再発生することができる。従って、預金引出しを確認するメッセージは、繰返し可能ではない。他方、所与の期間に対して記録されたトランザクションをリストするメッセージの発生は、副作用をもたらさないし、従って繰返し可能である。
【００２９】
本発明は、繰返し可能なアプリケーション・メッセージの使用に限定されない。データを伝送するためのここに開示した技法は、伝送中のその損失が損失を知らせるアプリケーションによって許容されうるアプリケーション・メッセージを伝送するために用いうる。従って、本発明は、繰返し可能であるアプリケーション・メッセージに限定されないということが理解される。
【００３０】
検証メッセージは、アプリケーション・メッセージを再処理するためにアプリケーションによって用いられる情報を含みうる（“再処理情報”）。用語「再処理」は、メッセージを再伝送するためにアプリケーションによって実行される動作を示し、かつアプリケーション・メッセージを再発生し、送信側への再伝送のためにアプリケーション・メッセージを準備し、かつ送信側へメッセージを再伝送するためのオペレーションを含む。受信側がアプリケーション・メッセージの再伝送を要求するとき、受信側は、受信側へ再処理情報を伝送する。ある期間記録されたトランザクションを特定するアプリケーション・メッセージに関する例では、再処理情報は、期間、口座、及び送信側を特定するデータを含みうる。
【００３１】
先に到着する検証メッセージ
あるオペレーショナル・コンテキストでは、検証メッセージは、不信頼移送機構と比較して比較的速い信頼移送機構で移送されうる。信頼移送機構と不信頼移送機構との間のレイテンシーにおける差は、比較的小さい。例えば、不信頼移送機構１５０は、汎用ＬＡＮを用いうる。他方、信頼移送機構１６０は、より速いスピードで確実にデータを伝送することができる専用ネットワーク・リンクを用いうる。
【００３２】
そのような状況下において、不信頼移送機構１５０でのアプリケーション・メッセージの移送において問題が何も発生しなくても、対応するアプリケーション・メッセージの前に検証メッセージが到着することは、珍しくはないであろう。検証メッセージがアプリケーション・メッセージが到着する前に到着しかつ受信メッセージ・リスト１１０に挿入されるときに、受信側１９０は、その伝送中に問題が何も発生しなくても、アプリケーション・メッセージの再伝送を要求しうる。アプリケーション・メッセージの再伝送に対する要求の発生は、望ましくない程かなり頻繁に発生しうる。
【００３３】
アプリケーション・メッセージを再伝送する頻度を低減するために、タイムアウト機構を用いうる。特に、受信側１９０が、検証メッセージによって識別されたアプリケーション・メッセージが受信メッセージ・リスト１１０にないということを決定した後、受信側１９０は、ある一定期間待機する。ある一定期間が過ぎた後、受信側１９０は、次いで、受信メッセージ・リスト１１０がいまアプリケーション・メッセージを含むかどうかを決定し、かつ上述したように続ける。
【００３４】
代替的に、アプリケーション・メッセージを伝送した後、送信側１８０は、対応する検証メッセージを伝送することを延期する。延期は、アプリケーション・メッセージが検証メッセージの前に到着するということを確保する。
【００３５】
本発明は、ネットワーク又はデータの移送のための特定の媒体でデータを伝送する移送機構の使用に限定されない。例えば、送信側及び受信側は、同じコンピュータで実行する処理である。ここに記述した技法は、バスで処理間でデータを確実に伝送するために用いられうる。代替的に、技法は、モデムでデータを転送する処理間でデータを伝送するために用いうる。
【００３６】
ハードウェア概観
図３は、本発明の実施形態が実現されうるコンピュータ・システム３００を示すブロック図である。コンピュータ・システム３００は、情報を通信するためのバス３０２又は他の通信機構、及び情報を処理するためにバス３０２に接続されたプロセッサ３０４を含む。また、コンピュータ・システム３００は、プロセッサ３０４によって実行される情報及び命令を記憶するためにバス３０２に接続された、ランダム・アクセス・メモリ（ＲＡＭ）又は他の動的記憶装置のような、主メモリ３０６も含む。また、主メモリ３０６は、プロセッサ３０４によって実行される命令の実行中に一時変数又は他の中間情報を記憶するためにも用いられうる。コンピュータ・システム３００は、プロセッサ３０４に対する静的情報及び命令を記憶するためにバスに接続されたリード・オンリー・メモリ（ＲＯＭ）３０８又は他の静的記憶装置を更に含む。磁気ディスク又は光ディスクのような、記憶装置３１０が供給されかつ情報及び命令を記憶するためにバス３０２に接続される。
【００３７】
コンピュータ・システム３００は、コンピュータ・ユーザに情報を表示するために、陰極線管（ＣＲＴ）のような、表示装置３１２にバス３０２を介して接続されうる。英数字及び他のキーを含んでいる、入力装置３１４は、プロセッサ３０４に情報及びコマンド選択を通信するためにバス３０２に接続される。ユーザ入力装置の別のタイプは、プロセッサ３０４にディレクション情報及びコマンド選択を通信しかつ表示装置３１２上のカーソル移動を制御するためのマウス、トラックボール、又はカーソル・ディレクション・キーのような、カーソル制御３１６である。この入力装置は、装置に平面での位置を特定させる、二つの軸、第１の軸（例えば、ｘ）及び第２の軸（例えば、ｙ）、において二つの自由度を一般的に有する。
【００３８】
本発明は、ここに記述した技法を実現するためのコンピュータ・システム３００の使用に関する。本発明の一実施形態によれば、それらの技法は、主メモリ３０６に含まれた一つ以上の命令の一つ以上のシーケンスを実行しているプロセッサ３０４に応じてコンピュータ・システム３００によって実現される。そのような命令は、記憶装置３１０のような、別のコンピュータ読取り可能媒体から主メモリ３０６に読み取られうる。主メモリ３０６に含まれた命令のシーケンスの実行は、プロセッサ３０４にここで記述した処理ステップを実行させる。代替実施形態では、ハードワイヤード回路は、本発明を実現するためにソフトウェア命令の代わりに又はソフトウェア命令との組合せで用いられうる。それゆえに、本発明の実施形態は、ハードウェア回路及びソフトウェアの特定の組合せに限定されない。
【００３９】
ここで用いられる用語「コンピュータ読取り可能媒体」は、実行のためにプロセッサ３０４へ命令を供給することに関与する媒体を示す。そのような媒体は、不揮発性媒体、揮発性媒体、及び伝送媒体を含んでいるがそれらに限定されない、多くの形式を取りうる。例えば、不揮発性媒体は、記憶装置３１０のような、光又は磁気ディスクを含む。揮発性媒体は、主メモリ３０６のような、動的記憶装置を含む。伝送媒体は、バス３０２を備えているワイヤを含んでいる、同軸ケーブル、銅線及び光ファイバを含む。また、伝送媒体は、電波及び赤外データ通信中に発生されたもののような、音波又は光波の形式を取ることもできる。
【００４０】
コンピュータ読取り可能媒体の一般的な形式は、例えば、フロッピー（登録商標）・ディスク、フレキシブル・ディスク、ハード・ディスク、磁気テープ、又は他の磁気媒体、ＣＤ−ＲＯＭ、他の光媒体、パンチカード、紙テープ、ホールのパターンを有する他の物理的媒体、ＲＡＭ、ＰＲＯＭ、及びＥＰＲＯＭ、ＦＬＡＳＨ−ＥＰＲＯＭ、他のメモリ・チップ又はカートリッジ、以下に説明する搬送波、又はコンピュータがそれから読み取ることができる他の媒体を含む。
【００４１】
様々な形式のコンピュータ読取り可能媒体は、実行のためにプロセッサ３０４へ一つ以上の命令の一つ以上のシーケンスをキャリーすることに含まれうる。例えば、命令は、遠隔コンピュータの磁気ディスクで初めに処理されうる。遠隔コンピュータは、その動的記憶装置に命令をロードしかつモデムを用いて電話回線で命令を送ることができる。コンピュータ・システム３００に対してローカルなモデムは、電話回線でデータを受信することができかつデータを赤外信号に変換するために赤外送信機を用いることができる。赤外検出器は、赤外信号でキャリーされたデータを受信することができかつ適当な回路がバス３０２にデータを配置することができる。バス３０２は、データを主メモリ３０６へキャリーし、そこからプロセッサ３０４は、命令を検索しかつ実行する。主メモリ３０６によって受信された命令は、プロセッサ３０４による実行の前又は後のいずれかで記憶装置３１０に選択的に記憶されうる。
【００４２】
また、コンピュータ・システム３００は、バス３０２に接続された通信インタフェース３１８も含む。通信インタフェース３１８は、ローカル・ネットワーク３２２に接続されるネットワーク・リンク３２０への双方向データ通信結合を供給する。例えば、通信インタフェース３１８は、電話回線の対応するタイプへのデータ通信接続を供給するための統合サービス・デジタル網（ＩＳＤＮ）カード又はモデムである。別の例として、通信インタフェース３１８は、コンパチブルＬＡＮへのデータ通信接続を供給するためのローカル・エリア・ネットワーク（ＬＡＮ）カードである。また、無線リンクも実現されうる。そのような実現において、通信インタフェース３１８は、様々なタイプの情報を表しているデジタル・データ・ストリームをキャリーする電気、電磁気又は光信号を送信しかつ受信する。
【００４３】
ネットワーク・リンク３２０は、他のデータ装置への一つ以上のネットワークを通したデータ通信を一般的に供給する。例えば、ネットワーク・リンク３２０は、ホスト・コンピュータ３２４又はインターネット・サービス・プロバイダ（ＩＳＰ）３２６によって動作されるデータ機器へのローカル・ネットワーク３２２を通した接続を供給しうる。ＩＳＰ３２６は、その結果、“インターネット”３２８といま一般的に呼ばれるワールド・ワイド・パケット・データ通信ネットワークを通してデータ通信サービスを供給する。ローカル・ネットワーク３２２及びインターネット３２８の両方は、デジタル・データ・ストリームをキャリーする電気、電磁気又は光信号を用いる。デジタル・データをコンピュータ・システム３００へ又はコンピュータ・システム３００からキャリーする、様々なネットワークを通る信号及びネットワーク・リンク３２０及び通信インタフェース３１８を通る信号は、情報を移送する搬送波の例示的な形式である。
【００４４】
コンピュータ・システム３００は、ネットワーク、ネットワーク・リンク３２０、及び通信インタフェース３１８を通して、プログラム・コードを含んでいる、メッセージを送信しかつデータを受信することができる。インターネット例では、サーバ３３０は、インターネット３２８、ＩＳＰ３２６、ローカル・ネットワーク３２２及び通信インタフェース３１８を通してアプリケーション・プログラムに対する要求コードを伝送しうる。本発明によれば、一つのそのようなダウンロードされたアプリケーションは、ここに記述した技法を実現する。
【００４５】
受信コードは、それが受信されたように、及び／又は記憶装置３１０、又はその後での実行のために他の不揮発性記憶装置に記憶されたように、プロセッサ３０４によって実行されうる。このような方法で、コンピュータ・システム３００は、搬送波の形式でアプリケーション・コードを取得しうる。
【００４６】
上記明細書では、本発明は、その特定の実施形態を参照して記述された。しかしながら、本発明のより広い精神及び範疇から逸脱することなく様々な変更及び変形がそれに対してなされうるということは、明らかであろう。従って、明細書及び図面は、限定的なものではなく説明的なものであると考えるべきである。
【図面の簡単な説明】
本発明は、例により説明され、限定するものではないが、添付した図面の図においてかつ同じ参照番号が同様な要素を示す以下の図による。
【図１】  本発明の実施形態が実現されうる例示的なメッセージ伝送システムのブロック図
【図２】  不信頼移送機構でデータを確実に伝送するための処理を示すフローチャート
【図３】  本発明の実施形態が実現されうる例示的なコンピュータ・システム
【図１】
0004008707.tif 000002
【図２】
0004008707.tif 000003
【図３】
0004008707.tif 000004