JP2006252555A - 要求応答トランスポートを介した信頼性のある要求応答メッセージング - Google Patents

要求応答トランスポートを介した信頼性のある要求応答メッセージング Download PDF

Info

Publication number
JP2006252555A
JP2006252555A JP2006063237A JP2006063237A JP2006252555A JP 2006252555 A JP2006252555 A JP 2006252555A JP 2006063237 A JP2006063237 A JP 2006063237A JP 2006063237 A JP2006063237 A JP 2006063237A JP 2006252555 A JP2006252555 A JP 2006252555A
Authority
JP
Japan
Prior art keywords
message
computer system
request
response
responding
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.)
Granted
Application number
JP2006063237A
Other languages
English (en)
Other versions
JP2006252555A5 (ja
JP4916192B2 (ja
Inventor
Gavrylyuk Kirill
ガブリリュク キリル
Hrebicek Ondrej
フジェビーチェク オンドレイ
Hill Richard
ヒル リチャード
Shy Cohen
コーエン シャイ
Stefan R Batres
アール.バトレス ステファン
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006252555A publication Critical patent/JP2006252555A/ja
Publication of JP2006252555A5 publication Critical patent/JP2006252555A5/ja
Application granted granted Critical
Publication of JP4916192B2 publication Critical patent/JP4916192B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01LCHEMICAL OR PHYSICAL LABORATORY APPARATUS FOR GENERAL USE
    • B01L5/00Gas handling apparatus
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01DSEPARATION
    • B01D3/00Distillation or related exchange processes in which liquids are contacted with gaseous media, e.g. stripping
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B01PHYSICAL OR CHEMICAL PROCESSES OR APPARATUS IN GENERAL
    • B01LCHEMICAL OR PHYSICAL LABORATORY APPARATUS FOR GENERAL USE
    • B01L7/00Heating or cooling apparatus; Heat insulating devices
    • 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
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Chemical & Material Sciences (AREA)
  • Chemical Kinetics & Catalysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Clinical Laboratory Science (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】確立されたエンドツーエンド接続における要求側システムおよび応答側システムが、要求側システムによって意図されたように応答側システムが要求を処理する方法で、メッセージの送受信を可能にし、全てのメッセージ通信が要求側システムによって開始されるようにする、信頼性のある要求応答メカニズムを提供すること。
【解決手段】要求側および応答側システムは、キャッシュされた送信メッセージを再送信し、および、各メッセージの受信を確認することにより、断続的なネットワーク接続またはSOAP中間物のトランスポート障害など、幅広い範囲のメッセージング障害に対処できる。どのコンピュータシステムにおいてキャッシュされたメッセージも、適切な受信確認後に削除される。全ての送信されたメッセージが応答側システムによって受信され、要求側コンピュータが全ての応答メッセージを応答側コンピュータから受信した後、エンドツーエンド接続は、接続終了メッセージの交換により終了する。
【選択図】図2

Description

本発明は要求応答トランスポートを使用して、確実にメッセージを通信するためのシステム、方法およびコンピュータプログラム製品に関する。
コンピュータ化システムの人気が増しており、大規模および小規模ネットワーク内でコンピュータシステムのファイルおよび処理リソースを分散させる必要性も増した。一般に、コンピュータシステムおよび関係するデバイスは、ネットワークを介して、様々な理由のために、例えば、個人的な電子メッセージの交換、商品の販売、口座情報の提供などのために情報を通信する。しかし、コンピュータシステムおよびそれらの関係するアプリケーションはますます高機能になってきているので、ネットワーク上のデータおよびリソースの共有に関連付けられた課題もまた増していることは理解されよう。
一般に、ファイルおよびリソースを2つ以上のコンピュータシステムの間で配信させるための、いくつかの異なるメカニズムおよびプロトコルがある。例えば、メッセージをあるコンピュータシステムから1つまたは複数の他のコンピュータシステムへ、他のコンピュータシステムが応答することを必ずしも必要とするとは限らない方法で送信することができる。この一例は、例えば、電子メールメッセージの送信、または、あるコンテンツを他のコンピュータへ、UDP(User Datagram Protocol)を使用してストリーミングすることにより使用されるといった、コネクションレスプロトコルであろう。ファイルまたはリソースを共有するための他の方法には、伝送制御プロトコル(「TCP」)を使用するものなど、コネクション指向プロトコルの使用が含まれるだろう。コネクション指向通信は通常、一連の要求および応答を通じて、および、ある接続状態の情報を共有することによって、接続を確立することを含む。コンピュータに送信され、コンピュータから受信されたデータは通常、伝送されたデータをその接続に関連付ける、ある要素を有する。
コネクション指向通信は、それをあるアプリケーションのためのコネクションレス通信と区別する多くの利点を有する。例えば、TCPを使用して開始された接続は、すべてのデータが一端で受信されていることを保証するための多くの機能、ならびに、ある量のエラー訂正を提供する。例えば、送信側コンピュータは、それが20パケットのうち最初のパケットであることを指し示すパケットを送信することができる。受信側コンピュータは、すべての20パケットを接続セッションにおいて受信した後、受信確認(すなわち「ack」)を送信側コンピュータシステムに提示して、すべての20パケットが受信されたことを指し示す。ある場合には、受信側コンピュータシステムは、自らが受信しているパケット毎にackを送信する場合もある。信頼性のあるメッセージング(「RM」)メカニズムを使用する場合では、送信側コンピュータシステムがパケット毎にackを、またはすべての20パケットにつきackを受信しない場合、送信側コンピュータシステムはメッセージ全体を再度送信する場合があり、または、個々のパケットを受信側コンピュータに必要に応じて再送信する場合もある。
したがって、ハイパーテキスト転送プロトコル(「HTTP」)およびファイル転送プロトコル(「FTP」)など、多くの異なるフレーミングプロトコルがそれぞれコネクション指向トランスポートプロトコルの上に階層化されて、これらの前述の特性の1つまたは複数が利用される。例えば、クライアントコンピュータがHTTPを使用して情報を検索するとき、クライアントがウェブサーバに、歌をオンラインで購入してクライアントに送信するように依頼することができる、オンライン商取引の場合、クライアントコンピュータはウェブサーバとのTCP接続を確立し、HTMLファイルまたはイメージなど、リソースのためのHTTP要求、または、ウェブサーバがあるアクションを取るという要求を送信する。ウェブサーバはこの要求を受信し、対応する応答を提供し、この応答は、要求されたファイルのコンテンツを含むことができる。要求されたファイルを受信した後、または、クライアントコンピュータが、ウェブサーバとの通信が完了されると判断するとき、クライアントコンピュータはTCP接続をシャットダウンする。したがって、クライアントは、サービスの観点からアドレス可能である必要はない。例えば、クライアントはネットワークアドレス変換(NAT)サーバの背後にあることができ、または、HTTPプロキシを利用して、ファイアウォールを介して接続を橋渡しすることができる。もう1つの利点は、要求および応答が容易に相互に関連づけられ、各応答はそれに先行した要求に相互に関連づけられることである。
要求応答メカニズムのこれらおよび他の利点にもかかわらず、一般に、要求側または応答側コンピュータシステムが、その情報がうまく転送されたことを知るための特定の方法はない。例えば、要求はサーバに到達し、サーバは応答を作成したかもしれないが、この応答はHTTPプロキシエラーにより失われていた。したがって、従来の要求応答メカニズムでは、応答が他のコンピュータシステムから受信されていない場合、要求側コンピュータシステムが要求を再送信することは一般的である。例えば、従来のウェブブラウザはしばしば「リフレッシュ」ボタンを提供し、ウェブページがロードできないとき、このボタンを使用してHTTP要求を再試行することができる。例えば、インターネットのウェブページを単に要求するなど、いくつかの場合には、外見的に障害が起こった要求を繰り返すことは通常、有害な影響を有するようにはならない。例えば、冪等でないオペレーションによるなど、他の場合では、外見的に障害が起こった要求を繰り返すこと、または、適切に送信されていないように見えるメッセージを再送信することは、集約された影響を有する可能性があり、これは有害である場合がある。例えば、クライアントコンピュータは、銀行サーバから、最初の送金が成功したことを指し示す応答がないために、送金要求を銀行サーバに再送信するかもしれない。応答がないことは必ずしも、その要求が受信または処理されなかったことを指し示すとは限らない。例えば、要求は受信および処理されている可能性があるが、その応答は一時的なネットワーク切断またはHTTPプロキシ障害のために失われたということがある。したがって、銀行は、要求を再試行する上で送金の額を倍にする可能性があるが、これはクライアントによって意図されたものではなかった。
これらの難点は、応答側コンピュータシステム(例えば、銀行サーバ)が要求側コンピュータシステム(例えば、銀行顧客のクライアントPC)と直接通信して、要求の状況を知らせることができない接続において、特に深刻である可能性がある。例えば、クライアントコンピュータシステムは接続において匿名的に通信中である可能性があり、または、ファイアウォールの後ろ側にある可能性があり、または、ネットワークアドレス変換(「NAT」)サービスを受ける可能性がある。これらなどの場合、通常はクライアント、または要求側のコンピュータシステムのみが、通信を開始することができる。これは、受信確認および応答再送信を要求側に送信することが望ましい可能性がある場合、応答側コンピュータシステム(例えば、ネットワークサーバ)にとっての難点を生じる可能性がある。具体的には、現在、従来の要求応答プロトコルにおいて、特に、このような影響が集約されるべきでない場合にメッセージの影響を集約しないように、および、メッセージが望まれるような特定の順序でのみ処理されることを可能にするように、2つ以上のコンピュータシステムの間で信頼性のあるメッセージ転送を保証するための効率的なメカニズムはない。
したがって、信頼性のある要求応答メカニズムを保証するシステム、方法およびコンピュータプログラム製品は、当技術分野において利点となるであろう。具体的には、効率的な要求および応答メッセージならびにその対応する同一の受信確認を、ネットワーク接続の要求側および応答側コンピュータシステムの間で可能にする要求応答メカニズムにより、利点を実現することができる。さらに、要求側コンピュータのアドレスを識別することができるかどうかにかかわらず、アドレスを決定することが困難または不可能である接続において、または、このようなアドレスにサーバから接続することが不可能である場合に実施することができる、効率的な要求応答メカニズムにより、利点を実現することができる。
本発明は従来技術における前述の問題の1つまたは複数を、信頼性のあるメッセージングを要求応答環境内で保証するように構成されたシステム、方法およびコンピュータプログラム製品により解決する。具体的には、本発明の実施態様は部分的には、要求側コンピュータシステムによって送信されたメッセージを意図される方法でのみ処理するために、応答側コンピュータシステムに制約を課す、特定の要求および応答メカニズムに関する。
例えば、要求側コンピュータシステムの観点からの1つの方法は、応答側コンピュータシステムとのエンドツーエンド接続を確立することを含む。一実施態様では、エンドツーエンド接続は、処理が応答側コンピュータシステムでどのように発生するべきであるかを指し示す、接続コントラクトにより確立される。この方法はまた、第1のメッセージを応答側コンピュータシステムに送信することも含み、そして、第1のメッセージは第1の識別子を含む。要求側コンピュータシステムからの方法はまた、応答メッセージを応答側コンピュータシステムから受信することも含む。
加えて、すべての要求および応答メッセージが適切に受信確認されているとき、要求側コンピュータシステムの観点からの方法はまた、接続終了メッセージを応答側コンピュータシステムに送信することも含む。一実施態様では、終了メッセージは、終了メッセージ識別子、および、応答側コンピュータシステムによって送信されたすべての応答メッセージが受信されているという受信確認を含むことができる。その後、エンドツーエンド接続は、終了メッセージ識別子に関係する終了応答メッセージを要求側コンピュータシステムが受信するとき、終了される。
対照的に、応答側コンピュータシステムの観点からの方法は、要求側コンピュータシステムとのエンドツーエンド接続を受け入れることを含む。一実施態様では、これもまた、受信されたメッセージが処理されるようになる方法を命令する契約を含む。応答側コンピュータシステムの観点からの方法はまた、第1のメッセージを要求側コンピュータシステムから受信することも含み、そして、第1のメッセージは第1の識別子を含む。応答側コンピュータシステムは次いで、要求側コンピュータに応答メッセージを送信する。
すべての適切な応答メッセージが要求側コンピュータシステムによって受信された後、応答側コンピュータシステムは接続終了メッセージを要求側コンピュータシステムから受信する。終了メッセージは通常、終了メッセージ識別子、および、すべての応答メッセージが受信されたという要求側コンピュータシステムからの受信確認を含むようになる。応答側コンピュータシステムは次いで、終了メッセージ識別子に関係する終了応答メッセージ送信する。したがって、要求側および応答側コンピュータシステムは、エンドツーエンド接続において特定のメッセージの受信を確認する。
本発明の代表的な実施態様の追加の特徴および利点は以下の説明において示され、部分的にはその説明から明らかとなり、または、このような代表的な実施態様の実施によって知られるであろう。このような実施態様の特徴および利点は、特に付属の特許請求の範囲で指摘された手段および組み合わせによって実現され、得られるであろう。これらおよび他の特徴は、以下の説明および付属の特許請求の範囲からより十分に明らかとなり、または、以下に示されるこのような代表的な実施態様の実施によって知られるであろう。
本発明は、信頼性のあるメッセージングを要求応答環境内で保証するように構成されたシステム、方法およびコンピュータプログラム製品に及ぶ。具体的には、本発明の実施態様は部分的には、要求側コンピュータシステムによって送信されたメッセージを意図される方法でのみ処理するために、応答側コンピュータシステムに制約を課す、特定の要求および応答メカニズムに関する。
本明細書および特許請求の範囲から理解されるように、本発明の一態様は、要求側コンピュータシステムと応答側コンピュータシステムの間の、両方のコンピュータシステムからのメッセージを一意に識別するエンドツーエンド接続を確立することに関する。本発明のもう1つの態様は、要求メッセージを応答側コンピュータシステムへ送信し、そのメッセージの後に応答側コンピュータシステムからの応答メッセージが続くことに関する。応答側コンピュータシステムは、要求側コンピュータシステムからの要求メッセージを受信確認し、要求側コンピュータシステムは、応答側コンピュータシステムからの応答メッセージを受信確認する。本発明のさらなる態様は、応答側コンピュータシステムからの終了確認メッセージをも実施する方法で、通信を終了することに関する。
例えば、図1は、要求側コンピュータシステム100によって送信されたすべてのメッセージが応答側コンピュータシステム105によって適切に受信確認され、逆もまた同様である、本発明による一連の要求応答を例示する。一般に、本明細書で説明するエンドツーエンド接続を、TCPなど、要求応答対話に備えるいずれかのタイプのネットワーク接続の上に階層化することができ、その上に、HTTPなど、階層化要求応答フレーミングプロトコルが階層化される。言うまでもなく、本発明により実施することができる、他の要求応答トランスポートおよびフレーミングプロトコルがある。
いずれにしても、図1は、要求側コンピュータシステム100が接続開始要求メッセージ110「Create Sequence[Offer=A]」を応答側コンピュータシステム105に送信することによって、エンドツーエンド接続を開始することを示す。このエンドツーエンド接続は、1つまたは複数の基礎となるネットワーク接続を介して持続することができ、1つまたは複数のトランスポート接続が要求側コンピュータシステム100と応答側コンピュータシステム105の間で同時に存在できるようにし、これらの接続がエンドツーエンド接続識別子を使用して区別されるようにする。要求メッセージ110は識別子「A」を含み、この識別子は応答側コンピュータシステム105によってエンドツーエンド接続内のすべてのメッセージに対して使用されるようになる。図1はまた、応答側コンピュータシステム105が、確立された接続に対して応答120「Create SequenceResponse[B]」によりその接続を受け入れることも示す。応答メッセージ120は識別子「B」を含み、この識別子は要求側コンピュータシステム100によって、確立されたエンドツーエンド接続内でそれが送信するすべてのメッセージに対して使用されるようになる。
要求側コンピュータシステム100と応答側コンピュータシステム105の間のエンドツーエンド接続を確立するとき、またはその前に、2つのコンピュータはまた接続「コントラクト」を設定することもできる。例えば、接続要求メッセージ110は接続コントラクト(図示せず)の識別子を含むことができ、この接続コントラクトはメッセージ120内で同意される。接続コントラクトは、かなり多数のエンドに対しても構成することができるいくつもの命令をも含むことができる。例えば、一つの実施態様では、接続コントラクトは、応答側コンピュータシステム105によって受信された各メッセージが「正確に1回」または「多くて1回」または「少なくとも1回」処理されることを必要とする。
もう1つの実施態様では、接続コントラクトは、処理が順序付きの方法で、または、要求側コンピュータシステム100が応答側コンピュータシステム105からのすべての応答メッセージの受信を確認した後でのみ、行われることを指し示す。例えば、応答側コンピュータシステム105はすべての受信されたメッセージをキャッシュすることを必要とされる場合があり、すべてのメッセージが受信された後(どのような順序であれ)、および、要求側コンピュータシステム100によって適切に受信確認された後、応答側コンピュータシステム105は次いで、受信されたメッセージを特定の順序で処理することができる。応答側コンピュータシステム105は次いで、要求側コンピュータシステム100によって後に引っ張られるであろう応答を準備するようになる。
エンドツーエンド接続(および関係するコントラクト)が確立された後、要求側コンピュータシステム100は応答側コンピュータシステム105に、エンドツーエンド接続の第1のメッセージ130を送信する。第1のメッセージ130「Sequence[B,1]ID[α]」は識別子「B」を含み、この識別子は、応答側コンピュータシステム105によってメッセージ120内で提供されたものである。メッセージ130はまた、第1のメッセージ130のための連続番号「1」(すなわち、「B,1」)、および、別の第1の識別子「α」をも含む。第1の識別子「α」はメッセージ130を、第1のメッセージ130の相対的連続番号「1」とは別に一意に識別する。第1のメッセージ130を受信すると、応答側コンピュータシステムは応答メッセージ140「Sequence[A,1],Ack[B,1−1],RelatesTo[α]」を送信し、このメッセージは第1の識別子「α」に関係し、受信確認Ack[B,1−1]を含み、これは、どの要求メッセージが応答側コンピュータシステム105によって受信されているかを指し示す。
一つの実施態様では、要求および応答が通信スタックのトランスポートレベルで相関されるときなど、応答メッセージ140を要求側コンピュータシステム100に、第1のメッセージ130を配信するために使用されたトランスポート接続の返信レグ上でのみ送信することができる。もう1つの実施態様では、要求および応答が通信スタックのメッセージレベルで相関されるときなど、応答メッセージ140を要求側コンピュータシステム100に、要求側コンピュータシステム100によって確立されたいかなるトランスポート接続のいかなる返信レグ上でも戻すことができる。これは一つの実施態様において可能であり、これは、メッセージング層で相関されたメッセージが、要求側コンピュータシステム100のためのある相関情報を含むことができ、それにより要求側コンピュータシステム100は応答メッセージを、以前に送信した要求メッセージと突き合わせることが可能となるからである。例えば、応答側コンピュータシステム105からの返信メッセージで障害が起こっている可能性があり、後の返信に付属する後続の受信確認は、以前の要求が実際には受信されたことを指し示すようになる。したがって、要求側コンピュータシステム100は、前の返信が失われたことを指し示す、最後の返信についての受信確認メッセージを送信することができる。応答側コンピュータシステム105は、要求側コンピュータシステム100から受信された受信確認メッセージの返信レグを使用して、返信メッセージを再送信し、相関情報をメッセージ内で提供する(例えば、「RelatesTo[α]」)ことができる。
いずれにしても、図1は、応答メッセージ140が識別子「A,1」を含むことを示し、この識別子は、メッセージ140が、確立されたエンドツーエンド接続(「A」)に対して応答側コンピュータシステム105によって送信された第1のメッセージ(「1」)であることを指し示す。応答メッセージ140はまた受信確認「Ack[B,1−1]」をも含み、この受信確認は、応答側コンピュータシステム105が、要求側コンピュータシステム100によって使用されたエンドツーエンド接続識別子「B」において送信されたメッセージ1ないし1を有することを受信確認する。応答メッセージ140はまた、メッセージ140が第1の識別子「α」に関係する(すなわち、「RelatesTo」)ことも指し示し、この識別子は、要求側コンピュータシステム100に、メッセージ140が第1の要求メッセージへの応答(すなわち、「ID[α]」)であることを指し示す。
要求側コンピュータシステム100はまた、第2のメッセージ150「Sequence[B,2,LAST],Ack[A,1−1]ID[β]」をも送信する。第2のメッセージ150は識別子「B,2」を含み、この識別子は、メッセージ150が、コンピュータシステム100によって、確立されたエンドツーエンド接続についてのその識別子(すなわち、「B」)において送信された第2のメッセージであることを指し示す。第2のメッセージ150はまた識別子「LAST」をも含み、この識別子は、メッセージ150が、コンピュータシステム100によって、確立されたエンドツーエンドについてのその識別子「B」において送信されるべきアプリケーションメッセージの最後であることを指し示す。第2のメッセージ150はさらに受信確認「Ack[A,1−1]」をも含み、この受信確認は、応答側コンピュータシステム105に、要求側コンピュータシステム100が返信メッセージ140を受信していることを確認する。加えて、第2のメッセージ150は、それが送信された順序におけるその序数(すなわち、「B,1」、「B,2」など)には関係なく、特にメッセージ150を識別する第2の識別子「β」を含む。
したがって、図1は、応答側コンピュータシステム105がメッセージ150を受信し、応答メッセージ160「Sequence[A,2,LAST],Ack[B,1−2],RelatesTo[β]」により返信することを示す。応答メッセージ160は識別子[A,2,LAST]を含み、この識別子は、メッセージ160が、応答側コンピュータシステム105によって、確立されたエンドツーエンド接続についてのその識別子「A」と共に送信された第2の受信確認メッセージであること、および、メッセージ160が、確立されたエンドツーエンド接続についての受信側コンピュータシステムの識別子(「A」)において送信された「最後の」メッセージであることを指し示す。応答メッセージ160はさらに受信確認「Ack[B,1−2]」を含み、この受信確認は、応答側コンピュータシステム105が、要求側コンピュータシステム100によって使用されたエンドツーエンド接続識別子(「B」)において連続番号が付けられたメッセージ1ないし2を受信していることを識別する。加えて、応答メッセージ160は第2の識別子「β」を含み、この識別子は、要求側コンピュータシステム100に、これが以前に送信された第2の要求メッセージ150(すなわち、「ID[β]」)への応答であることを指し示す。
応答メッセージ160を受信すると、要求側コンピュータシステム100は、メッセージ交換がうまく完了したと判断し、確立されたエンドツーエンド接続を終了させるためのステップを開始する。具体的には、図1は、要求側コンピュータシステム100が接続終了メッセージ170「Terminate[B],Ack[A,1−2]ID[γ]」を送信することを示す。接続終了メッセージ170は、終了中であるエンドツーエンド接続を識別するための識別子「B」を含み、また、受信確認「Ack[A,1−2]」をも含む。受信確認「Ack[A,1−2]」は、要求側コンピュータシステム100が第1および第2の応答メッセージ(すなわち、140、160)の両方を応答側コンピュータシステム105から受信していることを指し示す。接続終了メッセージ170はまた終了メッセージ識別子「γ」をも含み、この識別子はメッセージ170を一意に識別する。
応答側コンピュータシステム105は、終了応答メッセージ180「Terminate[A],RelatesTo[γ]」により返信する。応答受信確認180は識別子「A」を含み、この識別子は、どのエンドツーエンド接続が終了中であるかを指し示す。応答受信確認180はまた、それが終了メッセージ識別子「γ」に「RelatesTo」するという指示をも含む。これを使用して、要求側コンピュータシステム100に対し、応答側コンピュータシステム105が実際に特定の接続終了メッセージ180を受信したことを確認することができる。したがって、図1は、要求側コンピュータシステム100および応答側コンピュータシステム105が、単に受信されたメッセージまたはメッセージのセットの一般的な受信確認を提供する以上のことを行うことを示す。具体的には、確立されたエンドツーエンド接続における要求側および応答側コンピュータシステムは豊富なメッセージ情報を提供することができ、この情報を使用して、特定のメッセージをこれらのメッセージの特定の受信確認、および処理のある順序と相関させることができる。
図2は、図1に類似の要求応答シナリオを例示するが、ただし、応答側コンピュータシステム105からの応答メッセージのうち1つで障害が起こっている。具体的には、図2は、要求側コンピュータシステム100および応答側コンピュータシステム105がエンドツーエンド接続をメッセージ200および210により確立することを示し、これらのメッセージは実質的に図1のメッセージ110および120に類似している。エンドツーエンド接続を確立すると、要求側コンピュータシステム100は第1の要求メッセージ220「Sequence[B,1],ID[α]」を送信し、このメッセージは実質的に図1のメッセージ130に類似しており、第1の識別子「α」を含む。図2はまた、応答側コンピュータシステム105が応答メッセージ240「Sequence[A,1],Ack[B,1−1]RelatesTo[α]」を送信することも示すが、図2は、メッセージ240が要求側コンピュータシステム100に到達することができないことを示す。
いかなる他の応答メッセージを受信する前にも、要求側コンピュータシステム100は第2の要求メッセージ230「Sequence[B,2,LAST],ID[β]」を送信し、このメッセージは実質的に図1のメッセージ150に類似しているが、ただし、メッセージ230は受信確認(例えば、「Ack[##]」)を含まない。具体的には、メッセージ230は応答側コンピュータシステム105に対し、応答側コンピュータシステム105が応答メッセージを送信しているにもかかわらず、要求側コンピュータシステム100が応答メッセージを受信していない(すなわち、メッセージ240が受信されなかった)ことを指し示す。それにもかかわらず、応答側コンピュータシステム105はメッセージ230に、応答メッセージ250「Sequence[A,2],Ack[B,1−2]RelatesTo[β]」により応答する。メッセージ250は、それが応答側コンピュータシステム105からの第2のメッセージ(すなわち、「A,2」)であること、および、応答側コンピュータシステム105が要求側コンピュータシステム100から順次に送信された両方のメッセージ(すなわち、「B,1−2」)を受信していることを指し示す。メッセージ250は第2の識別子「β」を含み、この識別子は要求側コンピュータシステム100に、メッセージ250が第2の要求メッセージ230(すなわち、「ID[β]」)への応答であることを指し示す。
メッセージ250を受信すると、要求側コンピュータシステム100は、メッセージ250がそのシーケンスにおける第2のメッセージ(すなわち、「Sequence[A,2]」)として識別されるので、応答側コンピュータシステム105がメッセージ220および230の両方に返信していると信じることを、認識する。しかし、要求側コンピュータシステム100は決して、第1の識別子「α」に関係する特定の応答メッセージを応答側コンピュータシステム105から受信しなかった(すなわち、メッセージ240を受信しなかった)ので、要求側コンピュータシステム100はメッセージ260「Sequence[B,1],Ack[A,2],ID[α]」を再送信する。いくつかの点では、メッセージ260は単にメッセージ220の複製であるのは、メッセージ260が識別子「B,1」を含み、この識別子は、これが要求側コンピュータシステム100によって送信されたシーケンスにおける第1のメッセージであることを示し、かつ、メッセージ260が第1の識別子「α」を含むためだからである。それにもかかわらず、メッセージ260が他の点で異なるのは、メッセージ260が受信確認「Ack[A,2]」(「A,1−2」ではない)を含むためだからであり、この受信確認は応答側コンピュータシステム105に、応答メッセージ250「A,2」のみ(両方のメッセージ240「A,1」および250「A,2」ではない)が受信されていることを伝えている。
メッセージ260を受信するとき、応答側コンピュータシステム105は必ずしも「α」として識別されたメッセージを再処理するとは限らないが、むしろ、メッセージ260を、接続コントラクトの一部として廃棄する。例えば、応答側コンピュータシステム105は、接続コントラクトが「正確に1回」または「多くても1回」の処理を必要とする場合、メッセージ260を廃棄する場合がある。この場合、応答メッセージは、受信確認されるまでキャッシュされるようになり、次いで、再伝送に応答して要求側コンピュータシステム100へ再送信されるようになる。あるいは、応答側コンピュータシステム105は、接続コントラクトが「少なくとも1回」の処理を指示する場合、両方のメッセージ220および260を処理する場合がある。例えば、メッセージ260を、メッセージ220のアップデートされたバージョンにすることができるのは、メッセージ220および260は他の大部分の点で等しいからである。
いずれにしても、図2は、応答側コンピュータシステム105が応答メッセージ270「Sequence[A,1],Ack[B,1−2]RelatesTo[α]」により返信することを示す。応答メッセージ270は、それが本質的に第1の応答メッセージ240のコピーであること(すなわち、「A,1」)を識別する。しかし、メッセージ270はまた受信確認「Ack[B,1−2]」をも含み、この受信確認は、それが要求側コンピュータシステム100によって送信されたメッセージ220および230の両方を受信していることを指し示す。加えて、「RelatesTo」フィールド内の一意の第1の識別子「α」は要求側コンピュータシステム100に、応答メッセージ270が第1の要求メッセージ(「ID[α]」)への応答であることを指し示す。
要求側コンピュータシステム100が今回はメッセージ270を受信すると仮定すると、要求側コンピュータシステム100は、エンドツーエンド接続を終了させるためのステップを開始する。しかし、要求メッセージ220および260の繰り返し、ならびに、応答メッセージ240および270の繰り返しを、両方のコンピュータシステムが互いのメッセージを十分に受信確認するまで、継続的に再送信されうることは理解されよう。一つの実施態様では、例えば、要求側コンピュータシステム100を、以前に送信された要求メッセージを再送信する前に、各応答メッセージを所定の時間(ほんの一瞬、数秒、数分など)で待機するように構成することができる。あるいは、要求側コンピュータシステム100を、送信エラーを中間ノード(例えば、HTTPプロキシサーバ)から受信するときは常に、以前に送信された要求メッセージを再送信するように構成することができる。
しかし、要求側コンピュータシステム100は、メッセージをチェック、および、または、再送信するように構成され、応答側コンピュータシステム105は、受信されたメッセージのいずれかまたはすべてを接続コントラクトに従って処理することに制限される。いずれにしても、確立されたエンドツーエンド接続を閉じるために、要求側コンピュータシステム100は接続終了メッセージ280「Terminate[B]Ack[A,1−2],ID[γ]」を送信し、応答側コンピュータシステムは終了応答メッセージ290「Terminate[A],RelatesTo[γ]」により返信し、このメッセージは終了メッセージ識別子「γ」に関係する。したがって、メッセージ280および290は実質的には、図1のメッセージ170および180についてそれぞれ説明したものと同じ機能を果たす。
図3は、要求側コンピュータシステム100によって送信された少なくとも1つのメッセージで障害が起こるというシナリオ以外は、以前の図に類似した要求応答シナリオを例示する。例えば、図3は、要求側コンピュータシステム100および応答側コンピュータシステム105がエンドツーエンド接続を、各々、要求メッセージ300「CreateSequence[Offer=A]」および応答メッセージ310「CreateSequenceResponse[B]」により確立することを示す。エンドツーエンド接続を確立すると、要求側コンピュータシステム100は、第1の識別子「α」を有する第1のメッセージ320「Sequence[B,1],ID[α]」を送信し、かつ、また、第2の識別子「β」を有する第2のメッセージ330a「Sequence[B,2],ID[β]」を送信する。第1のメッセージ320を受信した後、および、要求側コンピュータシステム100がメッセージ330aを送信したすぐ後またはその前に、応答側コンピュータシステム105は応答メッセージ350「Sequence[A,1],Ack[B,1−1]RelatesTo[α]」を送信する。
メッセージ350を受信するのに先立って、要求側コンピュータシステム100はまた、第3の識別子「γ」を有する第3のメッセージ340「Sequence[B,3,LAST],ID[γ]」をも送信する。メッセージ320、330aまたは340のいずれも、図1および2におけるように、応答メッセージのためのいかなる受信確認のインジケータをも含まず、これは、要求側コンピュータシステム100がまだいかなる応答メッセージをも応答側コンピュータシステム105から受信していないからである。最終的に、要求側コンピュータシステム100が応答メッセージ350を受信するとき、要求側コンピュータシステム100は即時に、メッセージ320を受信した直後に応答メッセージ350が、「ID[α]」によって識別された第1のメッセージ320に応答して送信されたことを、識別する。要求側コンピュータシステム100が「RelatesTo[α]」を特定したので、この識別は可能であり、この「RelatesTo[α]」は、メッセージ350が第1の要求メッセージ320に対する応答メッセージであることを指し示す。
図3はまた、応答側コンピュータシステム105が応答メッセージ360「Sequence[A,2],Ack[B,1,3]RelatesTo[γ]」を送信することも示すが、このメッセージは、応答側コンピュータシステム105によって送信された第2の応答(すなわち、「A,2」)でしかない。この場合、順序付け要件は接続コントラクトによって課せられておらず、それにより、送信された第3のメッセージ340が、応答側コンピュータシステム105によって第2のメッセージ330a(到着できなかった)を受信する前に処理されることが可能となった。メッセージ360はまた、応答側コンピュータシステム105がメッセージ320および340を、識別子「Ack[B,1,3]」を使用して受信していることも指し示す。加えて、メッセージ360はまた第3の識別子「γ」をも含むので、メッセージ360は要求側コンピュータ100に、この返信が、この同じ識別子「γ」を伝えたメッセージ340に応答するものであることを指し示す。
要求側コンピュータ100はメッセージ320および340の受信のみの確認を有するので、要求側コンピュータシステム100は第2のメッセージ330aを再送信する。具体的には、図3は、要求側コンピュータシステム100がメッセージ330aをメッセージ330b「Sequence[B,2],Ack[A,1−2],ID[β]」として再送信することを示す。メッセージ330bは、それが送信された第2のメッセージ「B,2」であることを指し示し、また、第1および第2の応答メッセージ350および360が受信されているという「Ack[A,1−2]」をも指し示す。メッセージ330bはまた、メッセージ330aに含まれた識別子「β」をも含む。メッセージ330bを受信すると、応答側コンピュータシステム105は応答メッセージ370「Sequence[A,3],Ack[B,1−3]RelatesTo[β]」を送信する。メッセージ370は、それが第3の応答メッセージ(すなわち、「A,3」)であることを指し示し、また、応答側コンピュータシステム105がこのとき、要求側コンピュータシステム100が送信している3つのメッセージのうち各々(すなわち、「Ack[B,1−3]」)を受信していることをも指し示す。加えて、メッセージ370の「RelatesTo」フィールド内の第2の識別子「β」は要求側コンピュータシステム100に、このメッセージが、再試行された要求メッセージ330bに応答するものであることを指し示す。
すべてのメッセージがこのとき、要求側コンピュータシステム100と応答側コンピュータシステム105の間で適切に受信および確認されているので、要求側コンピュータシステム100はエンドツーエンド接続を終了させる。具体的には、要求側コンピュータシステム100は接続終了メッセージ380「Terminate[B]Ack[A,1−3],ID[δ]」を送信し、このメッセージ380は応答メッセージ350、360および370の各々を識別子「Ack[A,1−3]」により受信確認し、終了メッセージ識別子「δ」を含む。応答側コンピュータシステム105は次いで、終了メッセージ識別子「δ」に関係する応答メッセージ390「Terminate[A],RelatesTo「δ」」により応答する。
したがって、本明細書で説明したスキーマは幅広い範囲のメッセージ伝送障害に対処し、メッセージが意図されたように要求側コンピュータシステムによって処理されることを保証する。具体的には、本明細書で説明したスキーマは、メッセージが応答側コンピュータシステムで受信される順序にかかわらず、要求側コンピュータシステムによって意図されたように、それらのメッセージを指定された順序で応答側コンピュータシステムでどのように処理することができるかを例示する。本発明をまた、本発明の方法を実施するための動作に関して説明することもできる。具体的には、図4は、要求側コンピュータシステム100の観点および応答側コンピュータシステム105の観点から、要求応答方法においてメッセージを確実に送信および受信する方法を流れ図において例示する。
例えば、図4は、要求側コンピュータシステム100の観点からの方法が、エンドツーエンド接続を確立する動作400を備えることを示す。動作400はまた、応答側コンピュータシステムとのネットワーク接続を確立することも含む。例えば、要求側コンピュータシステムは400で、メッセージ110「Create Sequence[Offer=A]」を送信し、このメッセージは接続コントラクト(図示せず)を含むことができ、接続コントラクトは、どのようにメッセージが応答側コンピュータシステム105によって接続内で処理されるべきであるかを表すことができる。同様に、応答側コンピュータシステム105の観点からの方法は、エンドツーエンド接続を受け入れる動作410を備える。動作410は、要求側コンピュータシステムとのエンドツーエンド接続を受け入れることを含む。例えば、応答側コンピュータシステム105は、メッセージ120「Create SequenceResponse[B]」を送信することによってエンドツーエンド接続を受け入れ、接続コントラクトの条件により(指定された場合)エンドツーエンド接続を受け入れる。
加えて、図4は、要求側コンピュータシステム100の観点からの方法が、第1のメッセージを送信する動作420を備えることを示す。動作420は、第1のメッセージを応答側コンピュータシステムに送信することを含み、第1のメッセージは第1の識別子を含む。例えば、要求側コンピュータシステム100は、第1のメッセージ130「Sequence[B,1]ID[α]」を送信することによって、要求返信シーケンスを開始し、このメッセージは、メッセージ130を一意に識別する第1の識別子「α」を含む。応答側コンピュータシステム105からの対応する方法は、したがって、第1のメッセージを受信する動作430を備える。動作430は、第1のメッセージを要求側コンピュータシステムから受信することを含み、第1のメッセージは第1の識別子を含む。例えば、応答側コンピュータシステム105はメッセージ130「Sequence[B,1]ID[α]」を受信し、第1の識別子「α」を識別する。確立されたエンドツーエンド接続を定義するコントラクトに応じて、応答側コンピュータシステム105はまたメッセージ130を処理し、または、さらなる通知までメッセージ130のコンテンツをキャッシュすることができる。
応答側コンピュータシステム105からの方法はまた、応答メッセージを送信する動作450をも備える。動作450は、要求側コンピュータに応答メッセージを送信することを含む。例えば、メッセージ130を受信した後、応答側コンピュータシステム105はメッセージ130を処理し、応答メッセージ140「Sequence[A,1],Ack[B,1−1],RelatesTo[α]」を準備および送信し、このメッセージは、メッセージ140が第1の識別子「α」に関係(すなわち、「RelatesTo」)するという標識を含む。したがって、図4は、要求側コンピュータシステム100の観点からの方法がまた、応答メッセージを受信する動作440をも備えることを示す。動作440は、応答メッセージを応答側コンピュータシステムから受信することを含む。例えば、要求返信シーケンスは、要求側コンピュータシステム100が応答メッセージ140「Sequence[A,1],Ack[B,1−1],RelatesTo[α]」を受信するとき、完了される。メッセージ140は受信確認の標識「Ack[B,1−1]」および「関係する」(すなわち[RelatesTo])フィールドを含み、これらは第1のメッセージ130の受信を確認し、メッセージ140がメッセージ130に応答するものであることを指し示す。しかし、要求返信シーケンスはまた、第1のメッセージで障害が起こったと決定するとき、例えば、ある数の再試行の後、または、応答の待機におけるある量の遅延の後、終了される場合もある。
図4はまた、要求側コンピュータシステム100の観点からの方法が、接続終了メッセージを送信する動作460を備えることも示す。動作460は接続終了メッセージを応答側コンピュータシステムに送信することを含み、終了メッセージは、終了メッセージ識別子、および、応答メッセージが受信されているという受信確認を含む。例えば、要求側コンピュータシステムは最終的に、応答側コンピュータシステム105から、要求側コンピュータシステム100によって送信されたすべてのメッセージが受信されているという認識および確認を伝える応答メッセージを受信し、また、応答側コンピュータシステム105から送信されたすべての応答メッセージが受信されていることも識別する。その後、要求側コンピュータシステム100は接続終了メッセージ170「Terminate[B],Ack[A,1−2]ID[γ]」を送信する。接続終了メッセージ170はまた、受信された応答メッセージ「Ack[A,1−2]」を受信確認し、特定の終了メッセージ識別子「γ」を含む。
さらに、図4は、応答側コンピュータシステム105の観点からの方法が、接続終了メッセージを受信する動作470を備えることを示す。動作470は、接続終了メッセージを要求側コンピュータシステムから受信することを含み、終了メッセージは、終了メッセージ識別子、および、応答メッセージが受信されたという受信確認を含む。例えば、応答側コンピュータシステム105は、メッセージ170「Terminate[B],Ack[A,1−2]ID[γ]」を受信し、このメッセージは、応答メッセージ140および160の受信を確認し(すなわち、「Ack[A,1−2]」を介して)、メッセージ170を一意に識別する終了識別子「γ」を含む。
応答において、図4は、応答側コンピュータシステム105の観点からの方法が、応答メッセージを送信してエンドツーエンド接続終了プロセスを完了させる動作490を備えることを示す。動作490は、終了メッセージ識別子に関係する応答終了メッセージを送信することを含む。例えば、応答側コンピュータシステム105は終了応答メッセージ180「Terminate[A],RelatesTo[γ]」を送信し、このメッセージはエンドツーエンド接続終了メッセージ170内の終了識別子「γ」を「RelatesTo」に有する。したがって、図4は、要求側コンピュータシステム100の観点からの方法が、終了応答メッセージを受信する動作480を備えることを示す。動作480は、終了メッセージ識別子に関係する終了応答メッセージを受信することを含む。例えば、要求側コンピュータシステム100はメッセージ180を受信し、このメッセージは、エンドツーエンド接続を終了させるための要求を確認し、したがって要求側コンピュータシステム100がエンドツーエンド接続を閉じることを可能にする。
本明細書で説明または例示した実施態様をまた、メッセージ、応答および/または受信確認を適切なときに交換するために構成された、要求側コンピュータシステム100および応答側コンピュータシステム105を有するシステムに関して説明することもできる。以下のシステムの実施例もまた、前の概略図に関して説明する。すなわち、要求側コンピュータシステムが要求メッセージを応答側コンピュータシステムに送信し、応答側コンピュータシステムが各要求メッセージに、応答メッセージにより応答する、コンピュータ化環境システムにおいて、要求メッセージを確実に送信および受信し、要求返信トランスポートを使用して応答メッセージを確実に送信および受信するための方法は、下記による動作を含む。
ある場合においては、要求側コンピュータシステム100は、接続要求メッセージ(例えば、110)を応答側コンピュータシステムへ要求返信トランスポート接続の要求レグ上で送信することによって、応答側コンピュータシステム105とのエンドツーエンド接続を確立する。応答時には、応答側コンピュータシステム105は接続要求を受け入れ、そのような受け入れ指示を要求側コンピュータシステムへ要求返信トランスポート接続の返信レグ上で提供する。すなわち、応答側コンピュータシステム105は、接続受け入れメッセージ(例えば、120)を要求返信トランスポート接続の返信レグ上で送信する。このメッセージ交換の完了の後、要求側コンピュータシステム100および応答側コンピュータシステム105はエンドツーエンド接続を確立する。要求側コンピュータシステム100は次いで要求返信シーケンスを開始し、それが確立した要求返信トランスポート接続の要求レグを使用して、要求メッセージ(例えば、130)を送信する。要求側コンピュータシステム100はまた、要求メッセージが応答側コンピュータシステム105によって受信確認されるまで、要求メッセージ(例えば、130)をキャッシュする。
要求側コンピュータシステム100からの要求メッセージ(例えば、110)が応答側コンピュータシステム105に到達するとき、応答側コンピュータシステム105は要求メッセージ(例えば、110)を処理し、対応する応答メッセージ(例えば、140)を作成する。応答メッセージ(例えば、140)は、要求側コンピュータシステム100の要求メッセージ110が受信されたことを指し示す受信確認(例えば、「Ack[B,1−1]」)を含む。要求メッセージ(例えば、130)を有する要求側コンピュータシステム100に似て、応答側コンピュータシステム105もまた、応答メッセージ(例えば、140)が要求側コンピュータシステム100によって適切に受信確認されるまで、応答メッセージ(例えば、140)をキャッシュする。応答側コンピュータシステム105は次いで応答メッセージ(例えば、140)を要求側コンピュータシステム100へ、要求側コンピュータシステムによって確立された要求返信トランスポート接続の返信レグのみを使用して送信する。
送信されたメッセージのための要求返信シーケンスは、要求側コンピュータシステム100が応答メッセージ(例えば、140)を受信するときに終了され、このメッセージは、要求側コンピュータシステム100が送信した要求メッセージについての受信確認(例えば、「Ack[B,1−1]」)を含む。(あるいは、他の場合では、要求メッセージでいくつかの理由のために障害が起こっているという判定の後、要求返信シーケンスが終了される場合がある。)要求側コンピュータシステム100は次いで、要求メッセージのキャッシュコピーを削除する。要求側コンピュータシステム100はまた、受信された応答メッセージ(例えば、140)についての受信確認(例えば、「Ack[A,1−1]」)を、応答側コンピュータシステム105へ送信する次のメッセージ(例えば、150)に付加する。
要求側コンピュータシステム100および応答側コンピュータシステム105は、上述の方法でさらなるメッセージを交換し続けることができる。例えば、要求側コンピュータシステム100は要求メッセージを送信し続け、応答側コンピュータシステム105に、対応する応答メッセージを送信するための要求返信接続の返信レグを提供することができる。加えて、要求側および応答側コンピュータシステムは、他方のコンピュータシステムがこれらのメッセージの受信を(最初に送信されたメッセージであるか、再試行であるかにかかわらず)認識するまで、メッセージをキャッシュし続ける。さらに、要求側および応答側コンピュータシステムはまた、対応する受信確認を、送信するメッセージに付加し、送信されたメッセージが他方のコンピュータシステムに、他方のコンピュータシステムが送信したメッセージの受信が成功したことを示すようにする。さらに、メッセージが適切に受信確認されるとき、両方のコンピュータシステムは、これらのメッセージのキャッシュされたバージョンを削除する。
すべての要求メッセージが適切に送信および受信確認されており、すべての返信メッセージが受信されており、要求返信シーケンスのいずれかまたはすべてが完了しているようになった後、要求側コンピュータシステム100は接続終了メッセージ(例えば、170)を、確立された要求返信トランスポート接続の要求レグ上で送信し、接続終了メッセージ(例えば、170)は、最後に受信されたもの(例えば、160)を含む、すべての応答側コンピュータシステムの応答メッセージの受信確認(例えば、「Ack[A,1−2]」)を含む。応答側コンピュータシステム105は次いで、接続終了メッセージ(例えば、170)および添付の受信確認(例えば、「Ack[A,1−2]」)を受信し、確認されている応答メッセージのキャッシュコピーを削除する。
したがって、本明細書で説明したスキーマおよび方法は、要求応答トランスポートを使用した信頼性のあるメッセージングに関係した多くの利点を提供する。例えば、本発明の実施態様は、確立されたエンドツーエンド接続内の要求側または応答側コンピュータシステムのところであるか、トランスポート中間物(例えば、HTTPプロキシサーバ)またはメッセージング中間物(SOAPルータなど)など、接続における1つまたは複数の中間ノードのところであるかにかかわらず、幅広い範囲のメッセージング障害に対処することができる。
加えて、本発明の1つまたは複数の実施態様は、適切に受信確認されないメッセージを再送信することができるが、それにもかかわらず、接続コントラクトと一致する場合のみ処理することができることを、保証することを含む。一態様では、これは、望まれる場合に重複処理を避けうることを保証することができ、または、望まれる場合に順序付き処理を実施しうることを保証することができる。さらに、本発明の実施態様は、通信スタックのトランスポートまたはメッセージ層がメッセージを相関させているかどうかに応じて、返信メッセージが、基礎となる要求返信トランスポートの適切な応答レグ上で送信されることを可能にする。さらに、本発明の1つまたは複数の実施態様は、受信確認が肯定的な形態で(すなわち、受信されたメッセージを指定する)、否定的な形態で(すなわち、未着メッセージを指定する)、またはそれらの組み合わせにおいても表現されることを可能にすることができる。
図5および以下の考察は、本発明を実施することができる適切なコンピューティング環境の簡単な全体的説明を提供するように意図される。必要とはされないが、ネットワーク環境内でコンピュータによって実行される、プログラムモジュールなど、コンピュータ実行可能命令の一般的な状況において本発明を説明する。一般に、プログラムモジュールには、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれ、これらは特定のタスクを実行するか、または特定の抽象データ型を実行する。コンピュータ実行可能命令、関連付けられたデータ構造、およびプログラムモジュールは、本明細書で開示された方法のステップを実行するためのプログラムコード手段の例を表す。このような実行可能命令または関連付けられたデータ構造の特定のシーケンスは、このようなステップで説明された機能を実施するための対応する動作の例を表す。
本発明を、多数の型、種類のコンピュータシステム構成を有するネットワークコンピューティング環境内で実施することができ、これらのコンピュータシステム構成には、パーソナルコンピュータ、ハンドへルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなどが含まれることは、当業者には理解されよう。本発明はまた分散コンピューティング環境内で実施することもでき、この環境ではローカルおよびリモート処理デバイスがタスクを実行し、通信ネットワークを通じてリンクされる(有線リンク、無線リンクによる、または、有線もしくは無線リンクの組み合わせによる)。分散コンピューティング環境では、プログラムモジュールはローカルおよびリモートのメモリストレージデバイス内に位置づけられる。
図5を参照すると、本発明を実施するための例示的システムは、従来のコンピュータ520の形態における汎用コンピューティングデバイスを含み、このデバイスには、処理装置521、システムメモリ522、および、システムメモリ522を含む様々なシステムコンポーネントを処理装置521に結合するシステムバス523が含まれる。システムバス523をいくつかのタイプのバス構造のいずれにすることもでき、これらのバス構造には、様々なバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バスおよびローカルバスが含まれる。システムメモリには、読み取り専用メモリ(ROM)524およびランダムアクセスメモリ(RAM)525が含まれる。基本入出力システム(BIOS)526は、起動中など、コンピュータ520内の複数の要素の間で情報を転送する助けとなる基本ルーチンを含み、ROM524に格納されよう。
コンピュータ520はまた、磁気ハードディスク539に対する読み書きを行うための磁気ハードディスクドライブ527、リムーバブル磁気ディスク529に対する読み書きを行うための磁気ディスクドライブ528、および、CD ROMまたは他の光メディアなど、リムーバブル光ディスク531に対する読み書きを行うための光ディスクドライブ530を含むこともできる。磁気ハードディスクドライブ527、磁気ディスクドライブ528、および、光ディスクドライブ530はそれぞれ、ハードディスクドライブインターフェイス532、磁気ディスクドライブインターフェイス533、および、光ドライブインターフェイス534によって、システムバス523に接続される。これらのドライブおよびそれらの関連付けられたコンピュータ可読メディアは、コンピュータ520用のコンピュータ実行可能命令、データ構造、プログラムモジュールおよび他のデータの不揮発性ストレージを提供する。本明細書で説明する例示的環境は、磁気ハードディスク539、リムーバブル磁気ディスク529、および、リムーバブル光ディスク531を使用するが、データを格納するための他のタイプのコンピュータ可読メディアを使用することができ、これらのメディアには、磁気カセット、フラッシュメモリカード、デジタル多用途ディスク、ベルヌーイカートリッジ、RAM、ROMなどが含まれる。
1つまたは複数のプログラムモジュールを備えるプログラムコード手段を、ハードディスク539、磁気ディスク529、光ディスク531、ROM524またはRAM525上に格納することができ、RAM525には、オペレーティングシステム535、1つまたは複数のアプリケーションプログラム536、他のプログラムモジュール537、およびプログラムデータ538が含まれる。ユーザーはコマンドおよび情報をコンピュータ520へ、キーボード540、ポインティングデバイス542、または、マイクロフォン、ジョイスティック、ゲームパッド、衛星放送受信アンテナ、スキャナなど、他の入力デバイス(図示せず)を通じて入力することができる。これらおよび他の入力デバイスはしばしば処理装置521へ、システムバス523に結合されたシリアルポートインターフェイス546を通じて接続される。また、これらの入力デバイスを、パラレルポート、ゲームポートまたはユニバーサルシリアルバス(USB)など、他のインターフェイスによって接続することができる。モニタ547または別の表示デバイスもまたシステムバス523へ、ビデオアダプタ548などのインターフェイスを介して接続される。モニタに加えて、パーソナルコンピュータには通常、スピーカおよびプリンタなど、他の周辺出力デバイス(図示せず)が含まれる。
コンピュータ520はネットワーク環境において、リモートコンピュータ549aおよび549bなど、1つまたは複数のリモートコンピュータへの論理接続を使用して動作することができる。リモートコンピュータ549aおよび549bはそれぞれ、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノードにすることができ、通常は、コンピュータ520に関連して上述した要素の多数またはすべてを含むが、メモリストレージデバイス550aおよび550bおよびそれらの関連付けられたアプリケーションプログラム536aおよび536bのみが図5において例示されている。図5に示す論理接続には、ローカルエリアネットワーク(LAN)551およびワイドエリアネットワーク(WAN)552が含まれ、これらのネットワークは本明細書で限定ではなく例として提示される。このようなネットワーキング環境は、オフィス全体または企業全体のコンピュータネットワーク、イントラネットおよびインターネットにおいて一般的である。
LANネットワーキング環境において使用されるとき、コンピュータ520はローカルネットワーク551へ、ネットワークインターフェイスまたはアダプタ553を通じて接続される。WANネットワーキング環境において使用されるとき、コンピュータ520は、モデム554、無線リンク、または、インターネットなどのワイドエリアネットワーク552を介して通信を確立するための他の手段を含むことができる。モデム554は内部であっても外部であってもよく、システムバス523へ、シリアルポートインターフェイス546を介して接続される。ネットワーク環境では、コンピュータ520に関連して示したプログラムモジュールまたはその一部を、リモートメモリストレージデバイスに格納することができる。図示のネットワーク接続は例示的であり、ワイドエリアネットワーク552を介して通信を確立する他の手段を使用することができることは理解されよう。
本発明を、その精神または本質的特性から逸脱することなく、他の特定の形態において実施することができる。説明した実施形態はあらゆる点で例示的でしかなく、限定的ではないと見なされるべきである。本発明の範囲は、したがって、前述の説明によってではなく、付属の特許請求の範囲によって示される。特許請求の範囲の等価物の意味および範囲内に入るすべての変更は、それらの範囲内に包含されるべきである。
要求側コンピュータシステムによって送信されたメッセージが応答側コンピュータシステムによって適切に受信確認される、本発明による一連の要求応答を例示する図である。 応答側コンピュータシステムからの少なくとも1つの応答メッセージで障害が起こる、本発明による一連の要求応答を例示する図である。 要求側コンピュータシステムによって送信された少なくとも1つの要求メッセージで障害が起こる、本発明による一連の要求応答を例示する図である。 要求側コンピュータの観点からおよび応答側コンピュータの観点から、本発明による、信頼性のある要求応答方法においてメッセージおよび応答を通信するため、ならびに受信確認を交換するための方法を例示する図である。 本発明の1つまたは複数の実施態様を実施するための適切なコンピューティング環境を例示する図である。
符号の説明
527 磁気ハードディスクドライブ
528 磁気ディスクドライブ
529 リムーバブル磁気ディスク
530 光ディスクドライブ
531 リムーバブル光ディスク
539 磁気ハードディスク
542 ポインティングデバイス
550a メモリストレージデバイス
550b メモリストレージデバイス

Claims (17)

  1. 要求側コンピュータシステムが要求メッセージを応答側コンピュータシステムに送信し、応答側コンピュータシステムが各要求メッセージに、応答メッセージにより応答する、コンピュータ化環境内の要求側コンピュータシステムにおいて、要求メッセージを確実に送信し、要求返信トランスポートを使用して、応答メッセージを確実に受信して、前記応答側コンピュータシステムが前記送信されたメッセージを意図されたようにのみ処理する方法であって、
    前記要求側コンピュータシステムによって確立された要求返信トランスポート接続の要求レグを使用して、初期要求メッセージを応答側コンピュータシステムに送信することによって、要求返信シーケンスを開始する動作と、
    前記要求返信トランスポートの障害指示メカニズムを通じて、前記初期要求メッセージで障害が起こっているという障害指示を受信する動作と、
    メッセージングシーケンスが完了されるまで、前記初期要求メッセージのキャッシュされたコピーを前記応答側コンピュータシステムに継続的に送信する動作であって、前記初期要求メッセージの前記キャッシュされたコピーを送信する前記動作は、前記応答側コンピュータシステムに、応答メッセージを送信するための前記要求返信トランスポート接続の返信レグを提供する動作と
    を備えたことを特徴とする方法。
  2. 前記メッセージングシーケンスの完了は、前記応答側コンピュータシステムから、前記初期要求メッセージの受信を確認するメッセージを受信する動作を備えることを特徴とする請求項1に記載の方法。
  3. 前記メッセージングシーケンスの完了は、障害が起こった再試行の1つまたは複数のしきい値を識別した上で、前記初期要求メッセージが再試行されるべきでないこと、または、指定された時間の後で応答が受信されていないことを決定する動作を備えることを特徴とする請求項1に記載の方法。
  4. 前記障害指示は、前記初期要求メッセージへの応答メッセージが前記要求返信トランスポートにおける障害により前記要求側コンピュータシステムに到達することができないことによって、引き起こされることを特徴とする請求項1に記載の方法。
  5. 前記初期要求メッセージの受信を確認する異なる応答メッセージ、および異なる要求メッセージを前記応答側コンピュータシステムから受信する動作であって、前記異なる応答メッセージは、うまく完了した異なる要求返信メッセージ交換を通じて受信された動作と、
    前記応答側コンピュータシステムに、前記異なる応答メッセージの受信を確認する前記初期要求メッセージのキャッシュされたコピーを送信する動作とをさらに備え、
    前記初期要求メッセージの前記キャッシュされたコピーを送信する前記動作は、前記応答側コンピュータシステムに、それにおいて初期応答メッセージのキャッシュされたバージョンを送信するべき、要求返信トランスポート接続の返信レグを提供することを特徴とする請求項4に記載の方法。
  6. 前記初期要求メッセージがうまく送信されたこと、および、応答メッセージが受信されていないことを識別する動作と、
    前記初期要求メッセージの前記キャッシュされたコピーを、指定された遅延間隔の後に繰り返して送信する動作であって、前記初期要求メッセージの各キャッシュされたコピーを送信する前記動作は、前記応答側コンピュータシステムに、それにおいて初期応答メッセージを送信するべき、前記確立された要求返信トランスポート接続の返信レグを提供する動作と
    をさらに備えたことを特徴とする請求項1に記載の方法。
  7. 前記初期要求メッセージへの初期応答メッセージを受信する動作と、
    指定された時間間隔が、それにおいて前記初期応答メッセージの受信確認を送信するべき追加の要求メッセージなしで経過したように、他の要求メッセージが送信される必要がないことを識別する動作と、
    受信確認メッセージを前記応答側コンピュータシステムに送信する動作であって、前記受信確認メッセージはいかなる要求をも含まない動作と
    をさらに備えたことを特徴とする請求項1に記載の方法。
  8. 前記メッセージングシーケンスの完了の上で、接続終了メッセージを前記応答側コンピュータシステムに送信することによって、終了メッセージングシーケンスを開始する動作と、
    前記要求返信トランスポートの前記障害指示メカニズムを通じて、前記接続終了メッセージで障害が起こっていることを識別する動作と、
    前記終了メッセージングシーケンスが完了するまで、前記接続終了メッセージを再送信する動作と
    をさらに備えたことを特徴とする請求項1に記載の方法。
  9. 前記終了メッセージングシーケンスの完了を識別する動作は、接続終了応答を前記応答側コンピュータシステムから、前記要求側コンピュータシステムによって確立された前記トランスポート接続の前記返信レグ上で受信する動作を備えることを特徴とする請求項8に記載の方法。
  10. 前記終了メッセージングシーケンスの完了を識別する動作は、前記接続終了メッセージの障害を決定する動作を備えることを特徴とする請求項8に記載の方法。
  11. 前記終了メッセージングシーケンスの前記完了は、障害が起こった再試行の1つまたは複数のしきい値を識別した上で、前記初期要求メッセージが再試行されるべきでないこと、または、指定された時間の後で応答が受信されていないことを決定する動作を備えることを特徴とする請求項10に記載の方法。
  12. 要求側コンピュータシステムが要求メッセージを応答側コンピュータシステムに送信し、応答側コンピュータシステムが各要求メッセージに、応答メッセージにより応答する、コンピュータ化環境内の応答側コンピュータシステムにおいて、要求メッセージを確実に受信し、要求返信トランスポートを使用して、応答メッセージを確実に送信して、前記応答側コンピュータシステムが前記送信されたメッセージを意図されたようにのみ処理する方法であって、
    メッセージを、1つまたは複数の要求返信接続のいずれかにおいて、要求側コンピュータシステムから要求返信トランスポートを通じて受信する動作と、
    メッセージを前記要求側コンピュータシステムへ、前記1つまたは複数の要求返信接続のいずれかの返信レグ上でのみ送信する動作と
    をさらに備えたことを特徴とする方法。
  13. 受信確認メッセージを前記要求側コンピュータシステムから、前記要求側コンピュータシステムによって確立された1つまたは複数の要求返信トランスポート接続のうち1つを通じて受信する動作であって、前記受信確認メッセージは追加の要求メッセージを含まず、前記受信確認メッセージは、前記応答側コンピュータシステムでキャッシュされた、1つまたは複数の以前に送信された応答メッセージを参照する動作と、
    前記受信された受信確認メッセージから、前記要求側コンピュータシステムが要求を提供しなかったことを識別する動作と、
    受信確認された、前記1つまたは複数の応答メッセージのキャッシュされたコピーを削除する動作と、
    受信確認のリターンメッセージを前記要求側コンピュータシステムへ、前記1つまたは複数の要求返信トランスポート接続のうち前記1つの提供された返信レグを使用して送信する動作であって、前記リターンメッセージは返信メッセージを含まず、前記受信確認のリターンメッセージは、すべての以前に受信された要求メッセージの受信を確認する動作と
    をさらに備えたことを特徴とする請求項12に記載の方法。
  14. 新しい要求メッセージが前記要求側コンピュータシステムによって送信されており、前記応答側コンピュータシステムは、少なくとも一時的に前期新しい要求メッセージの受け入れまたは処理ができず、前記応答側コンピュータシステムによって送信された1つまたは複数のメッセージのうち1つが、前記新しい要求メッセージではなく、前記要求側コンピュータシステムによって送信されたいずれかの他の以前に受信された要求メッセージのみを受信確認することを特徴とする請求項12に記載の方法。
  15. 初期要求メッセージおよび後続の要求メッセージが受信および処理されており、対応する初期応答および後続の応答メッセージが前記要求側コンピュータシステムに送信する方法であって、
    前記要求側コンピュータシステムから、前記後続の応答メッセージのみの受信を確認する新しいメッセージを受信する動作と、
    前記要求側コンピュータシステムへ、前記初期応答メッセージのキャッシュされたコピーを、最新に受信された新しいメッセージによって提供された前記返信レグ上で送信する動作と
    をさらに備えたことを特徴とする請求項12に記載の方法。
  16. 前記初期要求メッセージは、前記要求側コンピュータシステムによって送信される、または、前記応答側コンピュータシステムで受信される、第1の要求メッセージとは異なることを特徴とする請求項15に記載の方法。
  17. 要求側コンピュータシステムが要求メッセージを応答側コンピュータシステムに送信し、応答側コンピュータシステムが各要求メッセージに、応答メッセージにより応答する、コンピュータ化環境内の要求側コンピュータシステムにおいて、実行されるとき、要求側コンピュータシステムの1つまたは複数のプロセッサに方法を実行させるコンピュータ実行可能命令をその上に格納しているコンピュータプログラム記録媒体であって、前記方法は、要求メッセージを確実に送信し、要求返信トランスポートを使用して、応答メッセージを確実に受信して、前記応答側コンピュータシステムが前記送信されたメッセージを意図されたようにのみ処理する方法であって、前記方法は、
    前記要求側コンピュータシステムによって確立された要求返信トランスポート接続の要求レグを使用して、初期要求メッセージを応答側コンピュータシステムに送信することによって、要求返信シーケンスを開始する動作と、
    前記要求返信トランスポートの障害指示メカニズムを通じて、前記初期要求メッセージで障害が起こっているという障害指示を受信する動作と、
    メッセージングシーケンスが完了されるまで、前記初期要求メッセージのキャッシュされたコピーを前記応答側コンピュータシステムに継続的に送信する動作であって、前記初期要求メッセージの前記キャッシュされたコピーを送信する前記動作は、前記応答側コンピュータシステムに、応答メッセージを送信するための前記要求返信トランスポート接続の返信レグを提供する動作と
    を備えたことを特徴とするコンピュータプログラム記録媒体。
JP2006063237A 2005-03-08 2006-03-08 要求応答トランスポートを介した信頼性のある要求応答メッセージング Expired - Fee Related JP4916192B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/075,418 2005-03-08
US11/075,418 US7359919B2 (en) 2005-03-08 2005-03-08 Reliable request-response messaging over a request-response transport

Publications (3)

Publication Number Publication Date
JP2006252555A true JP2006252555A (ja) 2006-09-21
JP2006252555A5 JP2006252555A5 (ja) 2009-04-23
JP4916192B2 JP4916192B2 (ja) 2012-04-11

Family

ID=36118261

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006063237A Expired - Fee Related JP4916192B2 (ja) 2005-03-08 2006-03-08 要求応答トランスポートを介した信頼性のある要求応答メッセージング

Country Status (5)

Country Link
US (1) US7359919B2 (ja)
EP (1) EP1701509A1 (ja)
JP (1) JP4916192B2 (ja)
KR (1) KR101159363B1 (ja)
CN (1) CN1832475B (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8516054B2 (en) * 2000-12-20 2013-08-20 Aurea Software, Inc. Message handling
US8301800B1 (en) 2002-07-02 2012-10-30 Actional Corporation Message processing for distributed computing environments
US8191078B1 (en) 2005-03-22 2012-05-29 Progress Software Corporation Fault-tolerant messaging system and methods
US8301720B1 (en) * 2005-07-18 2012-10-30 Progress Software Corporation Method and system to collect and communicate problem context in XML-based distributed applications
US20070106804A1 (en) * 2005-11-10 2007-05-10 Iona Technologies Inc. Method and system for using message stamps for efficient data exchange
CA2631763A1 (en) * 2005-12-01 2007-06-07 Firestar Software, Inc. System and method for exchanging information among exchange applications
US7710958B2 (en) 2006-01-20 2010-05-04 Iona Technologies Limited Method for recoverable message exchange independent of network protocols
US20080014929A1 (en) * 2006-05-05 2008-01-17 Infosys Technologies Ltd. Occasionally connected computing for mobile web services
US8656350B2 (en) * 2007-02-06 2014-02-18 Software Ag Event-based process configuration
US8276115B2 (en) * 2007-02-06 2012-09-25 Progress Software Corporation Automated construction and deployment of complex event processing applications and business activity monitoring dashboards
US9009234B2 (en) 2007-02-06 2015-04-14 Software Ag Complex event processing system having multiple redundant event processing engines
US8812711B2 (en) * 2008-02-27 2014-08-19 Red Hat, Inc. Three-way communication protocol
US8139489B2 (en) * 2008-08-06 2012-03-20 International Business Machines Corporation Robust jitter-free remote clock offset measuring method
WO2010054062A2 (en) 2008-11-05 2010-05-14 Savvion Inc. Software with improved view of a business process
US20100138348A1 (en) * 2009-06-12 2010-06-03 Microsoft Corporation Providing resource-related information using a standardized format
US20100318376A1 (en) * 2009-06-12 2010-12-16 Microsoft Corporation Message-passing protocol between entities having dissimilar capabilities
RU2527728C2 (ru) * 2009-08-12 2014-09-10 Эппл Инк. Способ беспроводной связи (варианты), сетевой узел и мобильная станция
US8285775B2 (en) * 2009-10-22 2012-10-09 International Business Machines Corporation Expedited transaction failure handling by leveraging a reliable message transport protocol to assist detection of discarded processing
US8533355B2 (en) 2009-11-02 2013-09-10 International Business Machines Corporation Techniques for improved clock offset measuring
US9058191B2 (en) * 2010-03-22 2015-06-16 Qualcomm Incorporated Direct transfer of executable software image to memory allocated by target processor based on transferred image header
US9503223B2 (en) * 2011-03-04 2016-11-22 Blackberry Limited Controlling network device behavior
US8910182B2 (en) 2011-05-27 2014-12-09 Microsoft Corporation Managing and simplifying distributed applications
US9742728B2 (en) * 2011-08-30 2017-08-22 Sonus Networks, Inc. Determining expiration time of bindings for network address translation devices
US9979773B2 (en) * 2013-03-22 2018-05-22 International Business Machines Corporation Managing task object state utilizing a reliable messaging model
US9596297B2 (en) 2013-05-16 2017-03-14 Toshiba Global Commerce Solutions Holdings Corporation Managing communications in a multi-client, multi-server environment
CN105868002B (zh) 2015-01-22 2020-02-21 阿里巴巴集团控股有限公司 一种用于在分布式计算中处理重发请求的方法与设备
CN109073350B (zh) * 2016-04-29 2021-07-02 思科技术公司 应用性能数据的预测性汇总和缓存
CN107147562B (zh) * 2017-04-27 2018-09-14 腾讯科技(深圳)有限公司 消息处理方法和装置
CN109474688B (zh) * 2018-11-27 2021-05-14 北京微播视界科技有限公司 即时通信网络请求消息的发送方法、装置、设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60223351A (ja) * 1984-04-20 1985-11-07 Ricoh Co Ltd 通信制御方式
JPH02100538A (ja) * 1988-10-07 1990-04-12 Japan Radio Co Ltd ローカルエリアネットワークのデータ通信方法
JPH0563706A (ja) * 1984-06-01 1993-03-12 Digital Equip Corp <Dec> デジタルデータ処理システムのためのローカルエリアネツトワーク
WO2002023362A1 (en) * 2000-09-12 2002-03-21 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
JP2004208330A (ja) * 1998-02-25 2004-07-22 Nec Corp 放送番組蓄積装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604487A (en) * 1993-07-30 1997-02-18 Lockheed Martin Tactical Systems, Inc. Apparatus and method for user-selective data communication with verification
US5897657A (en) * 1996-07-01 1999-04-27 Sun Microsystems, Inc. Multiprocessing system employing a coherency protocol including a reply count
EP1196856B1 (en) * 1999-06-30 2011-01-19 Apptitude, Inc. Method and apparatus for monitoring traffic in a network
US6543005B1 (en) * 1999-10-27 2003-04-01 Oracle Corporation Transmitting data reliably and efficiently
US7099950B2 (en) * 2000-03-13 2006-08-29 At&T Corp. Method and apparatus for using XML for both a protocol layer and application layer
US6772216B1 (en) * 2000-05-19 2004-08-03 Sun Microsystems, Inc. Interaction protocol for managing cross company processes among network-distributed applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60223351A (ja) * 1984-04-20 1985-11-07 Ricoh Co Ltd 通信制御方式
JPH0563706A (ja) * 1984-06-01 1993-03-12 Digital Equip Corp <Dec> デジタルデータ処理システムのためのローカルエリアネツトワーク
JPH02100538A (ja) * 1988-10-07 1990-04-12 Japan Radio Co Ltd ローカルエリアネットワークのデータ通信方法
JP2004208330A (ja) * 1998-02-25 2004-07-22 Nec Corp 放送番組蓄積装置
WO2002023362A1 (en) * 2000-09-12 2002-03-21 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment

Also Published As

Publication number Publication date
KR20060099393A (ko) 2006-09-19
CN1832475B (zh) 2011-07-06
KR101159363B1 (ko) 2012-06-25
US20060206558A1 (en) 2006-09-14
EP1701509A1 (en) 2006-09-13
JP4916192B2 (ja) 2012-04-11
US7359919B2 (en) 2008-04-15
CN1832475A (zh) 2006-09-13

Similar Documents

Publication Publication Date Title
JP4916192B2 (ja) 要求応答トランスポートを介した信頼性のある要求応答メッセージング
US8612617B2 (en) Reliable multicast transport protocol
US7899921B2 (en) Verifying and maintaining connection liveliness in a reliable messaging for web services environment
US7702924B2 (en) End-to-end reliable messaging with complete acknowledgement
US20040249948A1 (en) Performing application layer transactions during the connection establishment phase of connection-oriented protocols
US7929422B2 (en) Method of moving a transport connection among network hosts
EP2360875B1 (en) Systems and methods for seamless host migration
US20110134930A1 (en) Packet-based networking system
US7185114B1 (en) Virtual memory systems and methods
US8812711B2 (en) Three-way communication protocol
JP5185955B2 (ja) 物理伝送媒体が中断した場合のtcpデータ伝送プロセスを改善する方法
JP2001527723A (ja) 持続セッションを使用しハンドヘルドデバイスで低信頼度トランスポート層を利用する高信頼通信の提供
JP2006094510A (ja) レートを同期させたクロックを使用した高信頼メッセージング
JP2006178961A (ja) 要求−応答トランスポートプロトコルによる高信頼一方向メッセージング
US6502128B1 (en) Server and a method for communicating event messages from the server connected to a peripheral device and a client computer
JP2018517992A (ja) ハイパーテキスト・トランスファ・プロトコル要求の再送方法及びデバイス並びにクライアント端末
US7483990B2 (en) Method, apparatus, and program for informing a client when a server is busy in the transfer control protocol
US7664837B2 (en) Data transmitting system using multicast addresses for networked resources
US7000024B1 (en) Systems and methods for providing transmission control protocol communications
US7689702B1 (en) Methods and apparatus for coordinating processing of network connections between two network protocol stacks
US10476919B2 (en) System and method for reliable messaging between application sessions across volatile networking conditions
JP2001524290A (ja) 設定可能なタイマを使用するハンドヘルド装置で、低信頼度のトランスポート層を利用した高信頼性のデータ処理方法及びその装置
US8549345B1 (en) Methods and apparatus for recovering from a failed network interface card
US8276158B2 (en) HTTP based bounding storage space protocol
Pitt Unicast udp

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090306

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090306

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110513

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110725

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

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

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

Free format text: PAYMENT UNTIL: 20150203

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4916192

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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