説明

要求−応答トランスポートプロトコルによる高信頼一方向メッセージング

【課題】一方向メッセージ交換形態におけるRMプロトコルと要求−応答トランスポートプロトコル(例えば、HTTP)の間の結合メカニズムを提供する。
【解決手段】本発明は、新しいインフラストラクチャサービスを再構成または配備することなく、要求−応答トランスポートプロトコルの既存のネットワーク特性を利用する。要求−応答トランスポートモデルは、非対称性を有し、要求フローと応答フローの2つのデータフローを提供する。イニシエータがアドレシング可能でない場合、および/または通信が要求−応答トランスポートを必要とする場合、本発明は、インフラストラクチャおよびアプリケーションメッセージが要求フロー上を送信され、肯定応答およびその他のインフラストラクチャメッセージがトランスポートの応答フローを介して返送されることを可能にする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、例えば、ウェブサービスなど、分散システム用の高信頼メッセージングプロトコルに関する。より詳細には、本発明は、分散システム用の高信頼メッセージングプロトコルを、一方向メッセージ交換形態環境において、要求−応答トランスポートプロトコル(例えば、HTTP)に結びつけることを可能にする。
【背景技術】
【0002】
コンピュータネットワークは、1台のコンピュータまたは装置が、電子メッセージを使用し、ネットワークを介して別のコンピューティングシステムと通信できるようにすることで、我々が通信を行い情報にアクセスする能力を向上させてきた。コンピューティングシステム間で電子メッセージを転送する場合、電子メッセージは、電子メッセージ内のデータに基づいて動作(例えば構文解析、ルーティング、フロー制御など)を実行するプロトコルスタックを通過する。開放型システム間相互接続(OSI)モデルは、プロトコルスタックを実装するためのネットワークフレームワークの一例である。
【0003】
OSIモデルは、電子メッセージを転送するための動作を、各々がデータ転送プロセスにおいて一定の動作を実行するように指示された7つの異なるレイヤに分解する。プロトコルスタックは、潜在的には各レイヤを実装できるが、多くのプロトコルスタックは、ネットワークを介してデータを転送するのに使用するレイヤだけを選択して実装している。データは、コンピューティングシステムから送信されるとき、アプリケーションレイヤから送出され、中間のより下位のレイヤへと渡されていき、最後にネットワークに渡される。データは、ネットワークから受信されるとき、物理レイヤに入り、中間のより上位のレイヤへと渡されていき、最終的にアプリケーションレイヤに渡される。アプリケーションレイヤ―最上位レイヤ―は、アプリケーションおよびエンドユーザ処理を支援する責任を負う。さらに、アプリケーションレイヤ内に、複数の異なるレイヤ(例えばSimple Object Access Protpcol(SOAP)レイヤなど)が存在することができる。大部分のプロトコルスタックに組み込まれる別のレイヤに、トランスポートレイヤがある。トランスポートレイヤの一例が、伝送制御プロトコル(TCP)である。
【0004】
ウェブサービス(WS)は、コンピューティングシステム間の通信を進歩させる推進力となっており、ソフトウェアの構築および利用方法をすっかり逆転させている。ウェブサービスは、アプリケーションにデータを共用させ、より強力には―他のアプリケーションから機能を呼び出させるが、これらのアプリケーションがどこに構築されているか、どのようなオペレーションシステムまたはプラットフォーム上で動作しているか、どのような装置を使用してこれらのアプリケーションにアクセスするかを問うことはない。ウェブサービスは、SOAP、XML(拡張マークアップ言語)、UDDI(Universal Description,Discovery and Integration)、WSDL(ウェブサービス記述言語)などを含む業界標準プロトコルによって、インターネットを介して呼び出される。ウェブサービスは、互いに独立であり続けるが、緩やかに結合し合って、特定のタスクを実行する連携グループを形成することができる。
【0005】
現在のWS技術は、イニシエータ(例えばクライアント)とアクセプタ(例えばサービス)の間で、直接SOAPメッセージングを提供する。通常の双方向メッセージの場合、SOAP要求メッセージは、イニシエータからアクセプタに送信され、SOAP応答メッセージは、要求メッセージに対する応答として送信される。エンドポイント間の別種の通信形態に、単方向メッセージがあり、この形態では、イニシエータは、アクセプタにメッセージを送信するが、応答を受け取らない。
【0006】
新たに生まれたWSアーキテクチャの主要な利点は、統合された同じ操作性のソリューションを提供できる能力にある。しかし、ウェブサービスは、異なる企業、発信元、およびその他のサービスプロバイダからの様々なサービスを、インターネットなどの低信頼通信チャネルを介して提供するので、WSの信頼性がますます重要な要素となっている。WSの信頼性は、ウェブサービスのエンドポイントの信頼性、ウェブサービスがそれを介してアクセスされる通信チャネルの信頼性特性、性能および耐故障性特性、ならびにウェブサービスが複数クライアントによる同時アクセスを処理できる限度などを含むが、これらに限定されない複数の要因によって影響を受ける。
【0007】
メッセージ(例えばSOAPメッセージ)がエンドポイント間でそれを用いて交換される高信頼トランスポートプロトコルを選択することによって、ウェブサービスの高信頼メッセージングを達成しようという試みがなされてきた。例えば、メッセージキューなどの高信頼メッセージングプロトコルは、イニシエータとアクセプタの間で高い信頼性でメッセージを配送するのに使用することができる。メッセージキューイング通信技術は、信頼性維持のため障害発生時も内容を保持し続けるキューにメッセージを送信し、キューからメッセージを読み出すことによって、異なるシステム上のアプリケーションが互いに通信することを可能にする。
【0008】
キューイングシステムは、SOAPメッセージを高い信頼性で伝送するのに使用できるトランスポートを提供するが、このようなシステムにはいくつかの短所がある。例えば、これらのシステムは、要求(およびおそらくはその応答)が孤立して転送され、処理される非同期動作のためのソリューションを提供する。したがって、これらのシステムは、一般に多くのリソースを消費し、処理メッセージ用の耐久性のある記憶装置を備え、配備、プログラムモデル、および管理において複雑さがかなり増した、複数の仲介手段を必要とする。このすべては、高信頼直接通信には不必要なものであり、待ち時間(latency)を最短化するという目的を損ねる。さらに、前記プログラムモデルは、要求−応答型のプログラミングまたはセッションをサポートしていない。したがって、待機型(queud)の通信モデルは、現在の「対話型」ウェブサービスモデルとは異なっており、「接続されている」ことが不可欠なシナリオ、および「対話型」アプリケーションには対処できない。例えば、適時的な方式による応答が期待される場合、または分散トランザクションコンテキストがイニシエータとアクセプタとで共用される必要がある場合には、待機型の通信モデルはあまり適していない。
【0009】
基礎的な低信頼トランスポートプロトコルの上に、例えば高信頼HTTP、すなわちHTTPRなどの高信頼転送レイヤを定義しようという試みもなされてきた。しかし、このソリューションを悩ませている共通の問題は、キューイングソリューションのときと同様に―イニシエータとアクセプタの間の通信に特定の高信頼トランスポートプロトコルが使用された場合だけしか、その高信頼メッセージングを達成できないというものである。ウェブサービスの基本的性質は、特定の供給業者のプラットフォーム、実装言語、および特定のトランスポートプロトコルからの独立性を要求する。一般的な場合、イニシエータは、特定のプロトコルを使用して、アクセプタに直接メッセージを送信することはできず(例えば、アクセプタはそのプロトコルをサポートしていない)、またはメッセージは、送信ノードを出て、宛先ノードに到着するまでに、複数のホップを通過する必要があるかもしれない。特定のホップに含まれる2つのノード間の接続の性質に応じて、高信頼メッセージング特性を提供しないトランスポートプロトコルを、適切なプロトコルとして選択しなければならないかもしれない。
【0010】
仲介手段は、プロトコルスタックの異なるレベルにも存在することができ、したがって、完全なエンドツーエンドの信頼性を提供しない。例えば、トランスポートプロトコルは、より下位の仲介手段(例えば、IPレベルの仲介手段―例えば、IPルータ)の間での信頼性を提供することができる。しかし、トランスポートプロトコルは、SOAP仲介手段またはアプリケーションレイヤ(例えば、HTTPプロキシ)で終了することがある。したがって、トランスポートプロトコルは、その仲介手段の間での信頼性を提供できないことが、すなわち、アプリケーションレイヤにおけるエンドツーエンドの信頼性を提供できないことがある。
【0011】
ここ最近になって、分散システム用の様々な高信頼メッセージングプロトコル(これ以降、「RMプロトコル」と呼ぶ)が、現在の高信頼メッセージングシステムが持っている上記で確認された欠点に対するソリューションを提供している。これらのプロトコル(例えばウェブサービス(WS)用のRMプロトコルで、WS−ReliableMessaging、WS−Reliabilityなどを含む)は、ソフトウェアコンポーネント、システム、またはネットワークに障害があっても、メッセージがエンドポイントのアプリケーション間で高い信頼性で配送されることを可能にする、トランスポートに捉われずに接続が行われるプロトコル(transport agnostic connected protocol)である。したがって、RMプロトコルは、イニシエータとアクセプタの間で、潜在的にセッション指向の高信頼エンドツーエンド通信のためのソリューションを提供する。
【0012】
これらのRMプロトコルは、TCPが、インターネットプロトコル(IP)ルータと複数のネットワークを介した、TCP送信者からTCP受信者へのバイトストリームの、一回限りの順序正しい高信頼配送(reliable,exactly−once,in−order delivery)を提供する点で、TCPに類似している。分散システム用の高信頼メッセージングプロトコルは、これと同等以上のものを、(トランスポートおよびSOAPレベルの仲介手段を含む)複数の仲介手段、トランスポート、およびコネクションの間のメッセージ(注:転送単位はバイトではなくメッセージ)に提供する。RMプロトコル(およびより一般にはSOAPレイヤ)はOSIモデルのアプリケーションに存在するので、TCPおよびRMプロトコルは共に、「高信頼」プロトコルであるが、RMプロトコルは、データを転送するのに使用されるトランスポートプロトコルに関わらず、高信頼メッセージングを提供する。したがって、RMプロトコルは、エンドポイント間でメッセージを転送するのに使用される特定のトランスポートまたはその他のプロトコルに縛られることはない。
【発明の開示】
【発明が解決しようとする課題】
【0013】
ここ最近になって数種類のRMプロトコルが普及してきたが、これらのプロトコルの仕様には、まだいくつかの短所および欠点が存在する。例えば、分散システム用の高信頼メッセージングプロトコルは、一般に双方向メッセージ交換を必要とし、すなわち、アプリケーションからのメッセージは一つの方向に進み、インフラストラクチャからの肯定応答は反対の方向に進む。さらに、要求に基づかないアクセプタからイニシエータへの通信(unsolicited acceptor−to−initiator communication)が行えない場合が存在する。例えば、これに当たるのが、イニシエータがファイアウォールの背後におり、アクセプタと通信するために、(例えば、HTTPプロキシをトンネリングすることで)要求−応答トランスポートプロトコル(例えば、HTTP)接続を使用するときである。しかしながら、前記イニシエータは一般にアドレシング可能ではなく、および/または通信は要求−応答トランスポートプロトコルに限定されるので、肯定応答およびその他のインフラストラクチャからのメッセージを前記イニシエータに送信しようとすると問題が生じる。したがって、要求−応答メッセージング形態を提供するトランスポートを介した、イニシエータからアクセプタへの一方向メッセージ交換形態におけるアプリケーションレベルメッセージ―および双方向のRMインフラストラクチャメッセージ―の高信頼送信を統合する必要が生じている。
【課題を解決するための手段】
【0014】
分散システム(例えばウェブサービスなど)用の現在の高信頼メッセージングプロトコルに関する、上記で確認された欠点および短所は、本発明の例示的な実施形態によって克服される。例示的な実施形態は、要求−応答トランスポートプロトコル上でアプリケーションレベルメッセージを送信するときに、新しいインフラストラクチャサービスを再構成または配備することなく、要求−応答トランスポートプロトコルの既存のネットワーク特性を利用することによって、分散システム用の高信頼メッセージングプロトコル(RMプロトコル、例えばWS−ReliableMessaging)を提供する。
【0015】
イニシエータのコンピューティング装置では、例示的な実施形態は、アクセプタ側エンドポイントとのアプリケーションレベルメッセージの高信頼な一方向メッセージ交換形態のために、イニシエータ側エンドポイントでアプリケーションレベルメッセージの作成を実施する。次に、アプリケーションレベルメッセージは、分散システム用の高信頼メッセージングプロトコル(RMプロトコル)に従ってフォーマットされる。その後、アプリケーションレベルメッセージは、要求−応答トランスポートプロトコルの要求フローを介して送信される。次に、RMプロトコルに準拠させるために、対応するトランスポートレベルの応答メッセージが、要求−応答トランスポートの応答フローを介して受信され、RMプロトコルインフラストラクチャ情報にリンクされる。
【0016】
一方、アクセプタのコンピューティング装置では、別の例示的な実施形態が、イニシエータからアクセプタへの高信頼な一方向メッセージ交換形態におけるアプリケーションレベルメッセージの受信を実施する。アプリケーションレベルメッセージは、匿名の(anonymous)要求−応答トランスポートプロトコルの要求フローを介して受信される。さらに、アプリケーションレベルメッセージは、分散システム用の高信頼メッセージングプロトコル(RMプロトコル)に従ってフォーマットされていることが確認される。次に、RMプロトコルインフラストラクチャ情報が、トランスポートレベルの応答にリンクされるが、インフラストラクチャ情報は、1つまたは複数のアプリケーションレベルメッセージの高信頼な交換に対応している。その後、RMプロトコルに準拠させるために、トランスポートレベルの応答が、要求−応答トランスポートの応答フローを介して送信される。
【0017】
本発明のさらなる特徴および利点は、以下の説明において述べられ、部分的にはその説明から明らかとなり、あるいは本発明を実施することによって理解することができよう。本発明の特徴および利点は、特に添付の特許請求の範囲において指摘される手段および組み合わせによって実現し、また獲得することができよう。本発明の上記およびその他の特徴は、以下の説明および添付の特許請求の範囲からより完全に明らかとなり、あるいは以下で述べるように本発明を実施することによって理解することができよう。
【0018】
本発明の上記およびその他の特徴を獲得できる方法を説明するため、上で簡略に説明された本発明のより詳細な説明が、添付の図面に示された本発明の具体的な実施形態を参照しながら行われる。これらの図面は本発明の典型的な実施形態を表したに過ぎず、したがって、本発明の範囲を限定するものと見なされてはならないという了解のもと、本発明が、添付の図面を利用して、さらなる具体性および詳しさをもって述べられ、また説明される。
【発明を実施するための最良の形態】
【0019】
本発明は、(例えば、ウェブサービスなどの)分散システム用の高信頼メッセージングプロトコルを、エンドポイント間の一方向メッセージ交換形態において、(例えば、HTTPなどの)要求−応答トランスポートプロトコルに結び付けるための方法、システム、およびコンピュータプログラム製品に関する。本発明の実施形態は、以下により詳細に説明するように、様々なコンピュータハードウェアを含む専用または汎用コンピュータを含むことができる。
【0020】
本発明は、分散システム用の高信頼メッセージングプロトコル(これ以降、「RM」プロトコルと呼ぶ)の拡張に関し、ソフトウェアコンポーネント、システム、またはネットワークに障害があっても、メッセージが分散アプリケーション間で高い信頼性で配送されることを可能にするプロトコルについて説明する。分散システム(例えばウェブサービスなど)用の高信頼メッセージングプロトコルは、送信元(以降、「イニシエータ」)から例えばサービスなどの宛先(以降、「アクセプタ」)へのメッセージ送信が容易に成功するようにし、エラー状態が検出可能となるように保証する。これらのプロトコルは、トランスポートに捉われず、それらを異なるネットワーク転送技術を用いて実装することを可能にする。さらに、高信頼メッセージングプロトコルの様々な実装は、アプリケーションから断続的な通信障害を隠蔽し、システム障害時における回復性を提供する。
【0021】
上で述べたように、例示的な実施形態は、RMプロトコルと(例えば、HTTPなどの)要求−応答トランスポートプロトコルの間の結合メカニズムを提供する。本発明は、新しいインフラストラクチャサービスを再構成または配備することなく、要求−応答トランスポートプロトコルの既存のネットワーク特性を利用する。要求−応答トランスポートモデルは、非対称性を有し、要求フローと応答フローの2つのデータフローを提供する。そのような要求−応答モデルは、応答メッセージを、要求メッセージに対する応答としてのみ、要求メッセージに続いて、要求によって提供されたトランスポートコネクションを用いて送信できるようにメッセージング形態を制限する。要求−応答トランスポート(例えばSOAPトランスポート)プロトコルの標準的な例は、「匿名(anonymous)HTTP」であり、その場合、イニシエータは、アドレシング可能ではなく、HTTPプロトコルの応答フローを用いたときだけしかメッセージを受信できない。
【0022】
例示的な実施形態は、肯定応答およびその他のインフラストラクチャメッセージをイニシエータに送信するために、そのような応答フローを利用する。本明細書で説明される匿名要求−応答トランスポートプロトコルについての詳細は、イニシエータが直接アドレシング可能ではない(すなわち、イニシエータの要求に基づかないメッセージを送信する方法がない)任意の要求−応答トランスポートプロトコルにも当てはまる。しかし、本発明は匿名要求−応答トランスポートプロトコルに限定されるものではなく、要求−応答トランスポートプロトコルに限定される任意の通信にも適用されることに留意されたい。したがって、本明細書で説明される要求−応答トランスポートプロトコルの具体的な用途は、説明の目的で使用されているに過ぎず、明示的に主張されない限り、本発明の範囲を限定したり、または別の方法によって狭めたりしようとするものではない。
【0023】
図1Aは、例示的な実施形態による、要求−応答トランスポートプロトコル上での高信頼の単方向メッセージ交換形態のためのプロトコルスタックを示している。アプリケーションレベルメッセージ(図示せず)は、イニシエータ側エンドポイント105によって、例えばウェブサービスなどの分散システムプロトコルに従って、アプリケーションレイヤ115において生成することができる。一般にウェブサービスにおいては、アプリケーションレベルメッセージは、適切なSOAPヘッダを有するSOAPメッセージである。さらに、このメッセージは、アクセプタ側エンドポイント110において処理を行うための入力動作を一般に含むが、アクセプタ側エンドポイント110からイニシエータ側エンドポイント105へのアプリケーションレイヤ160での出力メッセージフローがないという点で、一方向メッセージと見なされる。
【0024】
アプリケーションレベルメッセージは、高信頼メッセージングレイヤ120に渡され、そこにおいて、RMプロトコル(例えばWS−ReliableMessaging、WS−Reliabilityなど)に従ってフォーマットされる。高信頼メッセージングレイヤ120で受信されたメッセージ135はまた、以下で説明するように、対応する肯定応答メッセージが受信されない場合の再送信の可能性に備えて、イニシエータ側バッファ130に保存される。次に、アプリケーションレベルメッセージは、(例えば匿名HTTPなどの)要求−応答トランスポートレイヤ125の要求フロー145を介して送信され、アクセプタ側エンドポイント110のトランスポートレイヤ156で受信される。アプリケーションレベルメッセージは、高信頼メッセージングレイヤ155に渡され、このレイヤは、アクセプタ側エンドポイント110のアプリケーションレイヤ160におけるその後の処理のために、受信メッセージ170をアクセプタ側バッファ165に保存する。
【0025】
高信頼メッセージングレイヤ155からアプリケーションレイヤ160へは一方向の線が引かれているが、これは、イニシエータ側エンドポイントは一般にアドレシング可能でなく、および/または通信は要求−応答型のプロトコルを必要とするので、アプリケーションレイヤ160からイニシエータ側エンドポイント105へのメッセージフローがないことを示していることに留意されたい。しかし、先に述べたように、例示的な実施形態は、肯定応答(図示せず)およびその他のインフラストラクチャメッセージを要求−応答トランスポートレイヤ156、125を介して送信するために、例えばHTTPなど典型的な要求−応答トランスポートプロトコルに特徴的な応答フロー140を利用する。言い換えると、RMインフラストラクチャ情報は、トランスポートレベル応答メッセージにリンクされ、またはピギーバックされる。
【0026】
さらに、トランスポートレベル応答メッセージにリンクされるインフラストラクチャ情報は、複数の異なる方法で特徴づけることができることに留意されたい。例えば、インフラストラクチャ情報(例えばAck応答)を生成して、トランスポートレベル応答にカプセル化することができ、次に、トランスポートレベル応答は、要求−応答トランスポートプロトコルの応答フロー140を介して伝送される。これは、インフラストラクチャ情報内にフォーマットされるようにトランスポートレベル応答メッセージを特徴づけるのに類似している。もちろん、インフラストラクチャ情報が、どのようにトランスポートレベル応答メッセージにリンクされるかを特徴づけるその他の方法が存在する。さらに、トランスポートレベル応答メッセージをインフラストラクチャ情報と一緒にカプセル化し、またはフォーマットするための、数多くの周知の方法が存在する。したがって、本発明に適用されるインフラストラクチャ情報のトランスポートレベル応答メッセージへのリンクは、インフラストラクチャ情報をトランスポートレベル応答メッセージにフォーマットまたはピギーバックするための任意のタイプのプロセスを包含すると広く解釈するべきである。
【0027】
インフラストラクチャ情報が、どのようにトランスポートレベル応答にリンクされ、また応答フロー140を介してイニシエータ側エンドポイント105で受信されるかに関わらず、インフラストラクチャ情報が肯定応答(例えば、WS−ReliableMessagingによって定義されたAckメッセージ)である場合、高信頼メッセージングレイヤ120は、イニシエータ側バッファ130から適切なアプリケーションメッセージ135を削除する。しかし、メッセージに対する肯定応答が受信されない場合、イニシエータ側エンドポイント105は、上で説明したのと同様の方式で(すなわち、RMプロトコルに従って要求−応答トランスポートを使用して新しい要求を開始することによって)、メッセージ135の送信をリトライすることができることに留意されたい。一定の制限時間が過ぎても、または所定回数のリトライを行っても、またはその他のリトライポリシー管理手順を試みた後も、肯定応答が受信されない場合は、障害通知をアプリケーションレイヤ115に上げることができる。
【0028】
高信頼メッセージングレイヤ120、155からのインフラストラクチャメッセージ(例えば、シーケンス生成またはシーケンス終了要求)は、どちらの方向にも送信することができるが、要求−応答トランスポートの制約を受けることに留意されたい。特に、アクセプタ側エンドポイント110からのインフラストラクチャメッセージは、イニシエータの要求に伴うトランスポートレベル応答の上にのみ出現することができる。さらに、トランスポート要求メッセージは、インフラストラクチャ(RMプロトコル)情報ばかりでなく、(例えば、SOAPヘッダ内のフィールドとして)アプリケーションレベルメッセージも含むことができることに留意されたい。
【0029】
上で述べたように、肯定応答メッセージおよびその他のインフラストラクチャメッセージは、要求−応答トランスポートの応答フロー140上を送信される必要がある。しかし、アクセプタ側エンドポイント110は、アプリケーションレベルメッセージを受信した場合、肯定応答を送信しないと決定したときでも、要求−応答トランスポートプロトコルに準拠させるために、標準トランスポートレベル応答(例えば、ヌル応答)を送信すべきである。イニシエータ側エンドポイント105は、トランスポートレベル要求が完遂されたこと、またアクセプタ側エンドポイント110はもうこの応答フローを利用してインフラストラクチャメッセージを転送することができないということ以外、そのようなヌル応答から特別の意味を推論することはできない。例えば、HTTPの場合、アクセプタ側エンドポイント110は、HTTPの202 OK、204 No Content、またはその他の同様のHTTPレベル応答メッセージを用いて応答することができる。この応答は、RMインフラストラクチャによって処理されないが、RMインフラストラクチャは、RMインフラストラクチャ応答メッセージを待機すべきでないことを知る必要がある場合、トランスポートレベル応答を受信したことを知らされることができることに留意されたい。
【0030】
別の例示的な実施形態は、RMプロトコルに従って一方向メッセージ交換形態における1つまたは複数のメッセージを高い信頼性で転送するために、RMシーケンスセッションの生成および使用をサポートする。シーケンスセッションを生成する要求は、(例えば、アプリケーションレベルメッセージにリンクされて)コネクションの要求フロー145を介して受信することができ、固有のシーケンス識別子が、一般に同じトランスポートコネクションの応答フロー140を介して直ちに送信される。しかし、本発明で利用可能なシーケンスセッションを生成する別の方法も存在することに留意されたい。例えば、イニシエータ側エンドポイント105が、固有のシーケンス識別子を生成し、それを要求に含めて送信することができ、または固有のシーケンス識別子をアウトオブバンドで送信することができる。したがって、シーケンスセッションを確立するよく知られた方法はどれも、本発明で利用することができ、シーケンスセッションをどのように確立するかについての具体的な言及はどれも、説明の目的で使用されているに過ぎず、明示的に主張されない限り、本発明の範囲を限定したり、または別の方法で狭めたりしようとするものではない。
【0031】
一般に、シーケンス肯定応答は、対応するアプリケーションメッセージを受信したときに送信すべきである。言い換えると、シーケンスに対する肯定応答を遅延させ、一括処理する代わりに、例示的な実施形態では、1対1対応がメッセージと肯定応答の間で用いられるべきである。すなわち、メッセージは要求フロー145を介して送信され、対応する肯定応答は応答フロー140上で受信される。しかし、本発明では一括処理も利用できることに留意されたい。例えば、最終メッセージ表示を受信する前に―または最終メッセージ表示を受信したときですらも、イニシエータ105に一括肯定応答を、応答フロー140を介して送信することができる。しかし、上で述べたように、肯定応答が直ちに送信されない場合でも、要求−応答トランスポートプロトコル要求条件に準拠させるため、標準トランスポートレベル応答がイニシエータ105に送信されるべきである。
【0032】
肯定応答のタイプ(すなわち、一括または個別)に関わらず、肯定応答は、着信コネクションの応答フロー140上で、またシーケンスセッションについてはそれらの応答フロー140上でのみ、イニシエータ側エンドポイント105に送信されるべきである。それにもかかわらず、イニシエータ側エンドポイント105は、先に送信されたメッセージに対する肯定応答を待機することなく、新しい要求−応答コネクション上でメッセージ(インフラストラクチャまたはアプリケーションレベルメッセージ)を送信することができる。イニシエータ側エンドポイント105は、いくつかの理由で、肯定応答を受信することなく、メッセージを送信したいと望むことがある。例えば、イニシエータ側エンドポイント105は、肯定応答を得ていないアプリケーションレベルメッセージ135の送信をリトライする必要があるかもしれない。代替として、またはそれと併せて、イニシエータ側エンドポイント105は、アクセプタ側エンドポイント110が肯定応答を一括処理しているという仮定の下で生成された新しいメッセージを送信したいと望むかもしれない。さらに、イニシエータ側エンドポイント105は、アクセプタ側エンドポイント110にインフラストラクチャメッセージを送信し、次に、アクセプタ側エンドポイント110に、例えば、一括処理されているかもしれない、または失敗したトランスポート応答により失われたかもしれない肯定応答を送るためにトランスポート応答を使用する機会を提供したいと望むかもしれない。
【0033】
別の例示的な実施形態では、アクセプタ側エンドポイント110は、受信したアプリケーションメッセージを廃棄し、それに肯定応答を与えないことができる。アクセプタ側エンドポイント110は、シーケンスが指示されているのに、メッセージが順序通りに受信されなかった場合、またはメッセージを保存するバッファ領域が不足したため(例えば、フロー制御)、またはその他の数々の理由のため、これを行うよう選択することができる。しかし、アクセプタ側エンドポイントは、いずれの場合にしろ、トランスポートプロトコル要求条件に準拠させるために、少なくとも応答フロー上で標準トランスポートレベル応答を用いて応答するべきである。
【0034】
また別の例示的な実施形態では、匿名要求−応答トランスポートプロトコル上で確立された単方向シーケンスを終了させる能力が提供される。上で説明したシーケンスセッション生成プロセスと同様に、シーケンス終了インフラストラクチャメッセージは、コネクションの要求フロー145を介して送信することができる。シーケンス終了メッセージは、インフラストラクチャプロトコルによって(例えば、ヘッダフィールドとして)、またはインフラストラクチャメッセージとして、アプリケーションレベルメッセージにリンクすることができる。いずれの場合も、アクセプタ側エンドポイント110は一般に、RMプロトコルに準拠させるために、(シーケンスセッションのすべてのメッセージが受信されたと仮定して)シーケンスセッションとして送信された最終メッセージに対するシーケンス肯定応答を用いて応答すべきである。それにもかかわらず、何らかの理由により、肯定応答またはその他のインフラストラクチャメッセージがアクセプタ110によって送信されない場合、トランスポートプロトコルに準拠させるため、少なくとも標準トランスポート応答を応答フロー140上で送信すべきである。
【0035】
図1Bは、例示的な実施形態による、要求−応答トランスポートプロトコル上での可能なRMプロトコルメッセージシーケンス交換の図を示している。ここに示されるように、イニシエータ側エンドポイント105は、単方向シーケンスセッションを生成する要求102を作成し、それを匿名要求−応答トランスポートの要求フロー上で送信する。イニシエータ側エンドポイント105からアクセプタ側エンドポイント110に向う矢印は、トランスポートプロトコルの要求フローを表し、アクセプタ側エンドポイント110からイニシエータ側エンドポイント105にUターンして向う矢印は、トランスポートプロトコルの応答フローを表していることに留意されたい。さらに、単方向シーケンスセッションを生成する要求102は、アプリケーションレベルメッセージの中に含まれることができることに留意されたい。
【0036】
単方向RMプロトコルシーケンスセッションを生成する要求102に応答して、アクセプタ側エンドポイント110は、イニシエータ105にトランスポートレベル応答104をトランスポートの応答フロー上で返送する。この例に示されるように、このトランスポートレベル応答104は、単方向RMシーケンスセッション用のシーケンス識別子108など、RMインフラストラクチャ情報を含む。言い換えると、応答をトランスポートレベルの応答フロー上で送信する前に、インフラストラクチャ情報が、トランスポートレベル応答にリンクされる。
【0037】
その後、イニシエータ側エンドポイント105は、アプリケーションレベルメッセージ106を要求−応答トランスポート用の後続コネクションの要求フロー上で送信するために、シーケンス識別子108を利用する。各メッセージは、順序づけおよびその他の高信頼メッセージング目的のために、メッセージ番号114によって識別されるべきである。アクセプタ側エンドポイント110は、アプリケーションレベルメッセージ106を受信すると、一般に、RM情報112を含むトランスポートレベル応答104を用いて応答する。より具体的には、RMインフラストラクチャ情報112は、シーケンス識別子108、および1つまたは複数のアプリケーションレベルメッセージ用の肯定応答128を含むことができる。
【0038】
トランスポートレベル応答104は、RM情報を含む必要はなく、単なる標準トランスポートレベル応答であることができる。例えば、次の交換に示されるように、シーケンス識別子108、および最終メッセージ116ヘッダを含む(一般には、図示されていないメッセージ番号も含む)、アプリケーションレベル一方向メッセージ118が送信される。イニシエータ側エンドポイント105が、メッセージをトランスポートの要求フローを介して送信した後、アクセプタ側エンドポイント110は、この例では、標準トランスポートレベルヌル応答122を用いて応答フロー上で応答する。上で述べたように、要求−応答トランスポートプロトコルに準拠させるために、そのような応答を送信することができる。しかし、この例では、RMプロトコルに準拠させるために、アクセプタ側エンドポイント110は、メッセージに対する肯定応答128を最終的に送信するべきである。上で述べたように、一定の制限時間が過ぎても、または所定回数のリトライを行っても、またはその他のリトライポリシー管理手順を試みた後も、肯定応答が受信されない場合は、障害通知をアプリケーションレイヤに上げることができる。
【0039】
最終メッセージに対する肯定応答が、イニシエータ側エンドポイント105によって受信されたと仮定すると、その後、シーケンス識別子108を含むシーケンス終了126が、要求−応答トランスポートプロトコルのもう一つの要求フローを介して送信される。最後に、この例では、アクセプタ側エンドポイント110が、別のトランスポートレベルヌル応答124を用いて応答する。そのような場合、両方の側が、シーケンスセッションの終了を判断することができる。ヌル応答124を送信する代わりに、アクセプタ側エンドポイント110は、シーケンス終了メッセージ126に対する肯定応答を用いて応答することもできることにも留意されたい。
【0040】
本発明は、機能的ステップ(functional step)および/または非機能的動作(non−functional act)を含む方法に関して説明することもできる。以下の説明は、本発明を実施する際に実行することができるステップおよび/または動作に関するものである。通常、機能的ステップは、達成される結果に関して本発明を説明し、非機能的動作は、特定の結果を実現するためのより具体的な動作を説明する。機能的ステップおよび/または非機能的動作は、特定の順序で説明または請求することができるが、本発明は、ステップおよび/または動作の特定の順序または組み合わせに必ずしも限定されない。さらに、請求項の詳説―および以下の図2のフローチャートの説明―におけるステップおよび/または動作の使用は、そのような語の所望の特定の使用を示すために使用される。
【0041】
図2は、本発明の様々な例示的な実施形態に関するフローチャートを示している。以下の図2の説明は、図1Aおよび図1Bの対応する要素にときどき言及する。これらの図の特定の要素に言及することがあっても、そのような要素は、説明の目的で使用されているに過ぎず、明示的に主張されない限り、本発明の範囲を限定したり、または別の方法で狭めたりしようとするものではない。
【0042】
図2は、要求−応答トランスポートプロトコル上でアプリケーションレベルメッセージを送信するときに、RMプロトコルを提供する方法200のフローチャート例を示している。イニシエータ側で、方法200は、アプリケーションレベルメッセージを生成する動作205を含む。例えば、イニシエータ側エンドポイント105は、高信頼の一方向メッセージ交換形態によりアクセプタ側エンドポイント110に転送するため、アプリケーションレベルメッセージを生成することができる。一般に、イニシエータ側エンドポイント105は、アドレシング可能ではない。すなわち、アプリケーションレベル115のメッセージは、一般にアクセプタ側エンドポイント110における処理のための入力情報を含むが、アクセプタ側エンドポイント110からイニシエータ側エンドポイント105に返送されるアプリケーションレベル160の出力情報はない。もちろん、先に説明したように、インフラストラクチャメッセージ(例えばack要求、セッション生成、セッション終了など)は、アプリケーションレベル115のメッセージにリンクされることもできる。
【0043】
しかし、一般に、シーケンスセッションの開始を要求するインフラストラクチャメッセージ(および終了インフラストラクチャメッセージ)は、アプリケーションレベルメッセージにリンクされない。実際、通常、シーケンスセッション生成は、アプリケーションレイヤ115からの例えばCreateSessionまたはOpen.SessionなどのローカルAPI呼出しに応答して、RMレイヤ120によって生成される。したがって、先に述べたように、シーケンスセッションを確立もしくは開始する(および/またはシーケンスセッションを終了する)ための特定のプロセスは、説明の目的で使用されているに過ぎず、明示的に主張されない限り、本発明の範囲を限定したり、または別の方法で狭めたりしようとするものではない。
【0044】
インフラストラクチャ情報がアプリケーションレベルメッセージにリンクされるかどうかに関わらず、方法200は、RMプロトコルに従ってアプリケーションレベルメッセージをフォーマットする動作210も含む。例えば、イニシエータ側エンドポイント105における高信頼メッセージングレベル120は、アプリケーションレベルメッセージをフォーマットし、リトライ目的のためにアプリケーションレベルメッセージ135のコピーをイニシエータ側バッファ130に保存する。次に、方法200は、トランスポート要求フローを介してアプリケーションレベルメッセージを送信する動作215を含む。すなわち、例えば、メッセージは、高信頼メッセージングレイヤ120から下位の要求−応答トランスポートレイヤ125に送られる。次に、メッセージは、要求フロー145上をアクセプタ側エンドポイント110に送信される。要求−応答トランスポートプロトコルは、例えば匿名HTTPなどの匿名トランスポート、またはその他の類似の要求−応答トランスポートプロトコルとすることができる。
【0045】
いずれにしても、アクセプタ側で、方法200は、要求フローを介してアプリケーションレベルメッセージを受信する動作225をさらに含む。例えば、アクセプタ側エンドポイント110は、要求−応答トランスポートレイヤ156において要求フロー145を介してアプリケーションレベルメッセージを受信することができる。その後、方法200は、アプリケーションレベルメッセージがRMプロトコルに従ってフォーマットされていることを確認する動作230も含む。さらに、方法200は、RMプロトコルインフラストラクチャ情報をトランスポートレベル応答にリンクする動作235を含む。例えば、高信頼メッセージングレイヤ155は、アクセプタ側エンドポイント110のアプリケーションレイヤ160による後の処理のために、アプリケーションレベルメッセージ170をアクセプタ側バッファ165に保存することができる。その後、高信頼メッセージングレイヤ155は、トランスポートレベル応答を、イニシエータ105からアクセプタ110に送信された1つまたは複数のアプリケーションレベルメッセージの高信頼の交換に対応するRMインフラストラクチャ情報112にリンクすることができる。
【0046】
トランスポートレベル応答にリンクされるインフラストラクチャ情報は、アクセプタが1つまたは複数のアプリケーションレベルメッセージを高い信頼性で受信したことを示す肯定応答とすることができる。肯定応答は、要求フロー上を送信されたアプリケーションレベルメッセージに対する肯定応答を含むことができる。さらに、フォーマットされたアプリケーションレベルメッセージは、RMプロトコルに従って肯定応答要求にリンクすることもできる。そのような場合、肯定応答は、肯定応答要求に応答するものとなる。代替として、アプリケーションレベルメッセージが単方向シーケンスセッションを生成する要求にリンクされる場合、RM情報は、シーケンス識別子108とすることができる。
【0047】
トランスポートレベル応答をフォーマットした後、方法200は、トランスポートレベル応答を、応答フローを介して送信する動作240を含む。同様に、イニシエータ側では、方法200は、対応するトランスポートレベル応答を、応答フローを介して受信する動作220も含む。例えば、アクセプタ側エンドポイント110は、トランスポートレベル応答、例えば104、114を、応答フロー140を介して送信し、その後、トランスポートレベル応答は、イニシエータ側エンドポイント105において受信される。次に、RMまたはインフラストラクチャレベル応答が、トランスポートレベル応答から取り出され、RMレイヤ120に供給される。次に、RMレイヤ120は、イニシエータ側バッファ130からメッセージ135のコピーを削除する。
【0048】
別の例示的な実施形態では、アプリケーションレベルメッセージを送信する前に、固有のシーケンス識別子によって識別される単方向シーケンスセッションが、イニシエータ105とアクセプタ110の間で確立される。したがって、アプリケーションレベルメッセージは、固有のシーケンス識別子を含む。その後、固有のシーケンス識別子を含む後続メッセージは、RMプロトコルに従ってフォーマットされ、要求−応答トランスポートの要求フロー145を介して送信することができる。この後続メッセージは、最初のアプリケーションレベルメッセージに対応する肯定応答を受信する前に、送信することができる。その後、後続トランスポートレベル応答が、イニシエータ105において要求−応答トランスポートの応答フロー140を介して受信される。
【0049】
さらに別の実施形態では、後続メッセージは、アクセプタ側エンドポイント110における処理のための入力情報を含むアプリケーションレベルメッセージであるが、イニシエータ側エンドポイントに返送されるアプリケーションレベル出力情報はない。この実施形態では、後続トランスポートレベル応答は、アクセプタ側エンドポイント110が少なくとも後続アプリケーションレベルメッセージを受信したことを示す肯定応答128を含むRMプロトコルインフラストラクチャ情報112に、リンクされることができる。
【0050】
後続メッセージが、シーケンス終了エレメント126を含むRMプロトコルインフラストラクチャメッセージである場合、要求−応答トランスポートプロトコルに準拠させるため、後続のトランスポートレベル応答、例えばヌル応答124を送信することができる。代替として、トランスポートレベル応答は、アクセプタ110がシーケンスセッションにおける最後のアプリケーションレベルメッセージを受信したことを示す肯定応答128であるRMプロトコルインフラストラクチャ情報を含むことができる。
【0051】
さらに別の実施形態では、トランスポートプロトコルは、HTTPとすることができ、その場合、後続のトランスポートレベル応答は、要求−応答トランスポートプロトコルに準拠させるために送信されるHTTPメッセージ(例えば、202 OKメッセージ)となる。また別の例示的な実施形態では、別のアプリケーションレベルメッセージがシーケンスセッションにおいて受信されるものの、順序通り到着していないため、アクセプタ側エンドポイントはこれを廃棄し、肯定応答を送信しないが、要求−応答トランスポートプロトコルに準拠させるため、トランスポートレベル応答は送信される。
【0052】
本発明の範囲内の実施形態は、コンピュータ実行可能命令またはデータ構造をそこに格納して搬送または保持するためのコンピュータ読取り可能媒体も含む。そのようなコンピュータ読取り可能媒体は、汎用または専用コンピュータによってアクセスできる任意の利用可能媒体とすることができる。例えば、そのようなコンピュータ読取り可能媒体は、RAM、ROM、EEPROM、CD−ROMもしくはその他の光ディスク記憶、磁気ディスク記憶またはその他の磁気記憶装置、またはコンピュータ実行可能命令またはデータ構造の形態の所望のプログラムコード手段を搬送または保存するのに使用でき、汎用または専用コンピュータによってアクセスできるその他の任意の媒体を含むことができるが、これらに限定されるものではない。情報がネットワークまたは別のコネクション(有線、無線、または有線もしくは無線の組み合わせ)を介してコンピュータに転送または提供される場合、コンピュータは、コネクションをコンピュータ読取り可能媒体として適切に見なす。したがって、そのようなコネクションは、当然のことながら、コンピュータ読取り可能媒体と呼ばれる。上記のものの組み合わせも、コンピュータ読取り可能媒体の範囲内に含まれるべきである。コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理装置に一定の機能または機能群を実行させる命令およびデータを含む。
【0053】
図3および以下の説明は、本発明を実施することができる適切なコンピューティング環境についての簡略で概括的な説明を提供することを意図したものである。必須ではないが、本発明は、ネットワーク環境内のコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令を一般的前提として説明される。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。コンピュータ実行可能命令、関連付けられたデータ構造、およびプログラムモジュールは、本明細書で開示される方法のステップを実行するプログラムコード手段の例を表す。そのような実行可能命令または関連データ構造の特定のシーケンスは、そのようなステップで説明される機能を実施するための対応する動作の例を表す。
【0054】
当業者であれば、パーソナルコンピュータ、ハンドヘルド装置、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能な消費者向け家電、ネットワークPC、ミニコンピュータ、およびメインフレームコンピュータなどを含む数多くのタイプのコンピュータシステム構成を有するネットワークコンピューティング環境において、本発明を実施できることが理解されよう。本発明は、通信ネットワークを介して(有線リンク、無線リンク、または有線もしくは無線リンクの組み合わせによって)結合されたローカルおよびリモート処理装置によってタスクが実行される分散コンピューティング環境でも実施することができる。分散コンピューティング環境では、プログラムモジュールは、ローカルとリモート両方のメモリ記憶装置に配置することができる。
【0055】
図3を参照すると、本発明を実施するための例示的なシステムは、プロセッシングユニット321と、システムメモリ322と、システムメモリ322を含む様々なシステムコンポーネントをプロセッシングユニット321に結合するシステムバス323とを含む従来のコンピュータ320の形態をとる汎用コンピューティング装置を含む。システムバス323は、メモリバスまたはメモリコントローラ、周辺バス、および様々なバスアーキテクチャのいずれかを用いるローカルバスを含む複数のタイプのバス構造のいずれかとすることができる。システムメモリは、読取り専用メモリ(ROM)324、およびランダムアクセスメモリ(RAM)325を含む。基本入出力システム(BIOS)326は、起動処理中などにコンピュータ320内の要素間での情報転送を助ける基本ルーチンを含み、ROM324に記憶しておくことができる。
【0056】
コンピュータ320は、磁気ハードディスク339に対して読み書きを行う磁気ハードディスクドライブ327、着脱可能な磁気ディスク329に対して読み書きを行う磁気ディスクドライブ328、およびCD−ROMまたはその他の光媒体など着脱可能な光ディスク331に対して読み書きを行う光ディスクドライブ330も含むことができる。磁気ハードディスクドライブ327、磁気ディスクドライブ328、および光ディスクドライブ330は、それぞれハードディスクドライブインタフェース332、磁気ディスクドライブインタフェース333、および光ドライブインタフェース334によって、システムバス323に接続される。ドライブおよび関連コンピュータ読取り可能媒体は、コンピュータ実行可能命令、データ構造、プログラムモジュール、およびその他のデータの不揮発性メモリをコンピュータ320に提供する。本明細書で説明する例示的な環境は、磁気ハードディスク339、着脱可能な磁気ディスク329、および着脱可能な光ディスク331を利用するが、データを保存するために、磁気カセット、フラッシュメモリカード、DVD、ベルヌイカートリッジ、RAM、およびROMなどを含むその他のタイプのコンピュータ読取り可能媒体を使用することもできる。
【0057】
1つまたは複数のプログラムモジュールを含むプログラムコード手段は、ハードディスク339、磁気ディスク329、光ディスク331、ROM324、またはRAM325に保存することができ、オペレーティングシステム335、1つまたは複数のアプリケーションプログラム336、その他のプログラムモジュール337、およびプログラムデータ338を含む。ユーザは、キーボード340、ポインティングデバイス342、またはマイクロホン、ジョイスティック、ゲームパッド、衛星放送用パラボラアンテナ、もしくはスキャナなどのその他の入力装置(図示せず)を介して、コンピュータ320にコマンドおよび情報を入力することができる。上記およびその他の入力装置は、システムバス323に結合されたシリアルポートインタフェース346を介して、しばしばプロセッシングユニット321に接続される。代替として、入力装置は、パラレルポート、ゲームポート、またはユニバーサルシリアルバス(USB)などのその他のインタフェースによって接続されてもよい。モニタ347または別のディスプレイ装置も、ビデオアダプタ348などのインタフェースを介してシステムバス323に接続される。モニタの他、パーソナルコンピュータは一般に、スピーカおよびプリンタなどのその他の周辺出力装置(図示せず)を含むことができる。
【0058】
コンピュータ320は、リモートコンピュータ349a、349bなど1つまたは複数のリモートコンピュータへの論理接続を用いて、ネットワーク環境で動作することができる。リモートコンピュータ349a、349bは各々、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置、またはその他の共通ネットワークノードとすることができ、コンピュータ320に関して上で説明した多くまたはすべての要素を一般に含むことができるが、図3には、メモリ記憶装置350a、350bおよび関連アプリケーションプログラム336a、336bだけが示されている。図3に示す論理接続は、ローカルエリアネットワーク(LAN)351およびワイドエリアネットワーク(WAN)352を含むが、これらは例としてここに提示されており、これらに限定されるものではない。そのようなネットワーク環境は、オフィス規模または企業規模のコンピュータネットワーク、イントラネット、およびインターネットで一般的なものである。
【0059】
LANネットワーク環境で使用される場合、コンピュータ320は、ネットワークインタフェースまたはアダプタ353を介してローカルネットワーク351に接続される。WANネットワーク環境で使用される場合、コンピュータ320は、インターネットなどのワイドエリアネットワーク352を介して通信を確立するために、モデム354、無線リンク、またはその他の手段を含む。モデムは、内蔵または外付けとすることができ、シリアルポートインタフェース346を介してシステムバス323に接続される。ネットワーク環境では、コンピュータ320に関して示したプログラムモジュールまたはその部分は、リモートメモリ記憶装置に保存することができる。示されたネットワーク接続は例示的なものであり、ワイドエリアネットワーク352を介して通信を確立するその他の手段も使用できることは理解されよう。
【0060】
本発明は、その主旨または本質的特徴から逸脱することなく、その他の特定の形態でも実施することができる。説明した実施形態は、すべての点で、説明的なものに過ぎず、限定的なものではないと見なされるべきである。したがって、本発明の範囲は、上述の説明によってではなく、むしろ添付の特許請求の範囲によって示される。特許請求の範囲の等価物の意味および範囲内に収まるすべての変更は、それらの範囲に包含されるものとする。
【図面の簡単な説明】
【0061】
【図1A】例示的な実施形態による、要求−応答トランスポートプロトコル上でのアプリケーションレベルメッセージの高信頼な一方向メッセージ交換形態のためのプロトコルスタックの図である。
【図1B】例示的な実施形態による、要求−応答トランスポートプロトコル上での一可能性としての高信頼な一方向メッセージシーケンス交換の図である。
【図2】例示的な実施形態による、要求−応答トランスポートプロトコル上でアプリケーションレベルメッセージを送信するときに、分散システム用の高信頼なメッセージングプロトコルを提供する方法のフローチャートである。
【図3】本発明にとって適切な動作環境を提供するシステム例の図である。
【符号の説明】
【0062】
105 イニシエータ側エンドポイント
110 アクセプタ側エンドポイント
320 コンピュータ
327 磁気ハードディスクドライブ
328 磁気ディスクドライブ
330 光ディスクドライブ


【特許請求の範囲】
【請求項1】
分散システム内のイニシエータコンピューティング装置において、要求−応答トランスポートプロトコル上でアプリケーションレベルメッセージを送信するときに、新しいインフラストラクチャサービスを再構成または配備することなく、前記要求−応答トランスポートプロトコルの既存のネットワーク特性を利用することによって、分散システム用の高信頼メッセージングプロトコル(RMプロトコル)を提供する方法であって、
高信頼の一方向メッセージ交換形態におけるアプリケーションレベルメッセージをアクセプタ側エンドポイントに転送するために、イニシエータ側エンドポイントにおいて前記アプリケーションレベルメッセージを生成する動作と、
前記アプリケーションレベルメッセージを分散システム用の高信頼メッセージングプロトコル(RMプロトコル)に従ってフォーマットする動作と、
前記アプリケーションレベルメッセージを要求−応答トランスポートの要求フローを介して送信する動作と、
対応するトランスポートレベル応答を前記要求−応答トランスポートの応答フローを介して受信する動作であって、前記トランスポートレベル応答は、前記RMプロトコルに準拠させるためにRMプロトコルインフラストラクチャ情報にリンクされることと、
を備えることを特徴とする方法。
【請求項2】
前記トランスポートレベル応答にリンクされる前記インフラストラクチャ情報は、前記アクセプタが1つまたは複数のアプリケーションレベルメッセージを高い信頼性で受信したことを示す肯定応答であることを特徴とする請求項1に記載の方法。
【請求項3】
前記肯定応答は、前記要求フロー上を送信された前記アプリケーションレベルメッセージに対する肯定応答を含むことを特徴とする請求項2に記載の方法。
【請求項4】
前記フォーマットされたアプリケーションレベルメッセージは、前記RMプロトコルに従って肯定応答要求にリンクされ、前記肯定応答は、前記肯定応答要求に応答したものであることを特徴とする請求項3に記載の方法。
【請求項5】
前記アプリケーションレベルメッセージを送信する前に、固有のシーケンス識別子によって識別される単方向シーケンスセッションが、前記イニシエータと前記アクセプタの間で確立され、前記アプリケーションレベルメッセージは、前記固有のシーケンス識別子を含むことを特徴とする請求項1に記載の方法。
【請求項6】
後続メッセージを前記RMプロトコルに従ってフォーマットする動作であって、前記後続メッセージは前記固有のシーケンス識別子を含むことと、
要求−応答トランスポートの要求フローを介して、前記後続メッセージを送信する動作と、
をさらに備えることを特徴とする請求項5に記載の方法。
【請求項7】
前記要求−応答トランスポートの応答フローを介して、後続トランスポートレベル応答を受信する動作をさらに備えることを特徴とする請求項6に記載の方法。
【請求項8】
前記後続メッセージは、前記アクセプタ側エンドポイントにおける処理のための入力情報を含むアプリケーションレベルメッセージであるが、前記イニシエータ側エンドポイントに返送されるアプリケーションレベル出力情報はなく、前記後続トランスポートレベル応答は、前記アクセプタが少なくとも前記後続メッセージを受信したことを示す肯定応答を含むRMプロトコルインフラストラクチャ情報にリンクされることを特徴とする請求項7に記載の方法。
【請求項9】
前記後続メッセージは、シーケンス終了エレメントを含むRMプロトコルインフラストラクチャメッセージであり、前記後続トランスポートレベル応答は、前記要求−応答トランスポートプロトコルに準拠させるために受信されるか、または前記アクセプタが少なくとも前記シーケンスセッションにおける最終アプリケーションレベルメッセージを受信したことを示す肯定応答を含むRMプロトコルインフラストラクチャ情報を含むことを特徴とする請求項7に記載の方法。
【請求項10】
前記後続トランスポートレベル応答は、前記要求−応答トランスポートプロトコルに準拠させるために受信されることを特徴とする請求項7に記載の方法。
【請求項11】
前記トランスポートプロトコルは、HTTPであり、前記後続トランスポートレベル応答は、HTTP準拠メッセージであることを特徴とする請求項10に記載の方法。
【請求項12】
前記後続メッセージは、前記アプリケーションレベルメッセージに対応する肯定応答を受信する前に送信されることを特徴とする請求項6に記載の方法。
【請求項13】
分散システム内のアクセプタコンピューティング装置において、要求−応答トランスポートプロトコル上でアプリケーションレベルメッセージを送信するときに、新しいインフラストラクチャサービスを再構成または配備することなく、前記要求−応答トランスポートプロトコルの既存のネットワーク特性を利用することによって、分散システム用の高信頼メッセージングプロトコル(RMプロトコル)を提供する方法であって、
イニシエータからアクセプタへの高信頼の一方向メッセージ交換形態におけるアプリケーションレベルメッセージを受信する動作であって、前記アプリケーションレベルメッセージは、要求−応答トランスポートプロトコルの要求フローを介して受信されることと、
前記アプリケーションレベルメッセージが分散システム用の高信頼メッセージングプロトコル(RMプロトコル)に従ってフォーマットされていることを確認する動作と、
RMプロトコルインフラストラクチャ情報をトランスポートレベル応答にリンクする動作であって、前記インフラストラクチャ情報は、前記イニシエータから前記アクセプタに送信された1つまたは複数のアプリケーションレベルメッセージの高信頼な交換に対応することと、
前記RMプロトコルに準拠させるために、前記要求−応答トランスポートの応答フローを介して前記トランスポートレベル応答を送信する動作と、
を備えることを特徴とする方法。
【請求項14】
前記トランスポートレベル応答にリンクされた前記インフラストラクチャ情報は、前記アクセプタが1つまたは複数のアプリケーションレベルメッセージを高い信頼性で受信したことを示す肯定応答であることを特徴とする請求項13に記載の方法。
【請求項15】
前記肯定応答は、前記要求フロー上を送信された前記アプリケーションレベルメッセージに対する肯定応答を含むことを特徴とする請求項14に記載の方法。
【請求項16】
前記フォーマットされたアプリケーションレベルメッセージは、前記RMプロトコルに従って肯定応答要求にリンクされ、前記肯定応答は、前記肯定応答要求に応答したものであることを特徴とする請求項15に記載の方法。
【請求項17】
前記アプリケーションレベルメッセージを受信する前に、固有のシーケンス識別子によって識別された単方向シーケンスセッションが前記イニシエータと前記アクセプタの間で確立され、前記アプリケーションレベルメッセージは、前記固有のシーケンス識別子を含むことを特徴とする請求項13に記載の方法。
【請求項18】
要求−応答トランスポートの要求フローを介して、前記固有のシーケンス識別子を含む後続メッセージを受信する動作と、
前記後続メッセージが前記RMプロトコルに従ってフォーマットされていることを確認する動作と、
をさらに備えることを特徴とする請求項17に記載の方法。
【請求項19】
前記要求−応答トランスポートの応答フローを介して、後続トランスポートレベル応答を送信する動作をさらに含むことを特徴とする請求項18に記載の方法。
【請求項20】
前記後続メッセージは、前記アクセプタ側エンドポイントにおける処理のための入力情報を含むアプリケーションレベルメッセージであるが、前記イニシエータ側エンドポイントに返送されるアプリケーションレベル出力情報はなく、前記後続トランスポートレベル応答は、前記アクセプタが少なくとも前記後続メッセージを受信したことを示す肯定応答を含むRMプロトコルインフラストラクチャ情報にリンクされることを特徴とする請求項19に記載の方法。
【請求項21】
前記後続メッセージは、シーケンス終了エレメントを含むRMプロトコルインフラストラクチャメッセージであり、前記後続トランスポートレベル応答は、前記要求−応答トランスポートプロトコルに準拠させるために受信されるか、または前記アクセプタが少なくとも前記シーケンスセッションにおける最終アプリケーションレベルメッセージを受信したことを示す肯定応答を含むRMプロトコルインフラストラクチャ情報を含むことを特徴とする請求項20に記載の方法。
【請求項22】
前記後続トランスポートレベル応答は、前記要求−応答トランスポートプロトコルに準拠させるために受信されることを特徴とする請求項20に記載の方法。
【請求項23】
前記トランスポートプロトコルはHTTPであり、前記後続トランスポートレベル応答はHTTP準拠メッセージであることを特徴とする請求項22に記載の方法。
【請求項24】
前記後続メッセージは、前記アプリケーションレベルメッセージに対応する肯定応答を送信する前に受信されることを特徴とする請求項18に記載の方法。
【請求項25】
分散システム内のイニシエータコンピューティング装置において、要求−応答トランスポートプロトコル上でアプリケーションレベルメッセージを送信するときに、新しいインフラストラクチャサービスを再構成または配備することなく、前記要求−応答トランスポートプロトコルの既存のネットワーク特性を利用することによって、分散システム用の高信頼メッセージングプロトコル(RMプロトコル)を提供する方法を実施するためのコンピュータプログラム製品であって、前記コンピュータプログラム製品は、プロセッサによって実行されたときに分散コンピューティングシステムに以下のことを実行させることができるコンピュータ実行可能命令を格納した1つまたは複数のコンピュータ読取り可能媒体を含み、以下のこととは、
高信頼の一方向メッセージ交換形態におけるアプリケーションレベルメッセージをアクセプタ側エンドポイントに転送するために、イニシエータ側エンドポイントにおいて前記アプリケーションレベルメッセージを生成することと、
分散システム用の高信頼メッセージングプロトコル(RMプロトコル)に従って、前記アプリケーションレベルメッセージをフォーマットすることと、
要求−応答トランスポートの要求フローを介して、前記アプリケーションレベルメッセージを送信することと、
前記要求−応答トランスポートの応答フローを介して、対応するトランスポートレベル応答を受信することであって、前記トランスポートレベル応答は、前記RMプロトコルに準拠させるためにRMプロトコルインフラストラクチャ情報にリンクされることと、
を含むことを特徴とするコンピュータプログラム製品。
【請求項26】
前記アプリケーションレベルメッセージを送信する前に、固有のシーケンス識別子によって識別される単方向シーケンスセッションが、前記イニシエータと前記アクセプタの間で確立され、前記アプリケーションレベルメッセージは前記固有のシーケンス識別子を含むことを特徴とする請求項25に記載のコンピュータプログラム製品。
【請求項27】
前記トランスポートレベル応答は、前記要求−応答トランスポートプロトコルに準拠させるために受信されることを特徴とする請求項25に記載のコンピュータプログラム製品。
【請求項28】
前記トランスポートプロトコルはHTTPであり、前記後続トランスポートレベル応答はHTTP準拠メッセージであることを特徴とする請求項27に記載のコンピュータプログラム製品。
【請求項29】
前記トランスポートレベル応答にリンクされた前記インフラストラクチャ情報は、前記アクセプタが1つまたは複数のアプリケーションレベルメッセージを高い信頼性で受信したことを示す肯定応答であることを特徴とする請求項25に記載のコンピュータプログラム製品。
【請求項30】
前記肯定応答は、前記要求フロー上を送信された前記アプリケーションレベルメッセージに対する肯定応答を含むことを特徴とする請求項29に記載のコンピュータプログラム製品。
【請求項31】
前記フォーマットされたアプリケーションレベルメッセージは、前記RMプロトコルに従って肯定応答要求にリンクされ、前記肯定応答は、前記肯定応答要求に応答したものであることを特徴とする請求項30に記載のコンピュータプログラム製品。
【請求項32】
分散システム内のアクセプタコンピューティング装置において、要求−応答トランスポートプロトコル上でアプリケーションレベルメッセージを送信するときに、新しいインフラストラクチャサービスを再構成または配備することなく、前記要求−応答トランスポートプロトコルの既存のネットワーク特性を利用することによって、分散システム用の高信頼メッセージングプロトコル(RMプロトコル)を提供する方法を実施するコンピュータプログラム製品であって、前記コンピュータプログラム製品は、プロセッサによって実行されたときに分散コンピューティングシステムに以下のことを実行させることができるコンピュータ実行可能命令を格納した1つまたは複数のコンピュータ読取り可能媒体を含み、以下のこととは、
イニシエータからアクセプタへの高信頼な一方向メッセージ交換形態におけるアプリケーションレベルメッセージを受信することであって、前記アプリケーションレベルメッセージは、要求−応答トランスポートプロトコルの要求フローを介して受信されることと、
前記アプリケーションレベルメッセージが分散システム用の高信頼なメッセージングプロトコル(RMプロトコル)に従ってフォーマットされていることを確認することと、
RMプロトコルインフラストラクチャ情報をトランスポートレベル応答にリンクすることであって、前記インフラストラクチャ情報は、前記イニシエータから前記アクセプタに送信された1つまたは複数のアプリケーションレベルメッセージの高信頼な交換に対応することと、
前記RMプロトコルに準拠させるために、前記要求−応答トランスポートの応答フローを介して前記トランスポートレベル応答を送信することと、
を含むことを特徴とするコンピュータプログラム製品。
【請求項33】
前記トランスポートレベル応答は、前記要求−応答トランスポートプロトコルに準拠させるために受信されることを特徴とする請求項32に記載のコンピュータプログラム製品。
【請求項34】
前記トランスポートプロトコルはHTTPであり、前記後続トランスポートレベル応答はHTTP準拠メッセージであることを特徴とする請求項32に記載のコンピュータプログラム製品。
【請求項35】
前記後続メッセージは、前記アプリケーションレベルメッセージに対応する肯定応答を送信する前に受信されることを特徴とする請求項34に記載のコンピュータプログラム製品。
【請求項36】
前記トランスポートレベル応答にリンクされた前記インフラストラクチャ情報は、前記アクセプタが1つまたは複数のアプリケーションレベルメッセージを高い信頼性で受信したことを示す肯定応答であることを特徴とする請求項32に記載のコンピュータプログラム製品。
【請求項37】
前記肯定応答は、前記要求フロー上を送信された前記アプリケーションレベルメッセージに対する肯定応答を含むことを特徴とする請求項36に記載のコンピュータプログラム製品。
【請求項38】
前記フォーマットされたアプリケーションレベルメッセージは、前記RMプロトコルに従って肯定応答要求にリンクされ、前記肯定応答は、前記肯定応答要求に応答したものであることを特徴とする請求項37に記載のコンピュータプログラム製品。
【請求項39】
前記アプリケーションレベルメッセージを送信する前に、固有のシーケンス識別子によって識別される単方向シーケンスセッションが、前記イニシエータと前記アクセプタの間で確立され、前記アプリケーションレベルメッセージは、前記固有のシーケンス識別子を含むことを特徴とする請求項32に記載のコンピュータプログラム製品。

【図1A】
image rotate

【図1B】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2006−178961(P2006−178961A)
【公開日】平成18年7月6日(2006.7.6)
【国際特許分類】
【出願番号】特願2005−358213(P2005−358213)
【出願日】平成17年12月12日(2005.12.12)
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】