(57)【要約】  トランザクションミドルウェアマシン環境にメッセージヘッダを記憶するために柔軟なトランザクションデータ構造を用いることができる。柔軟なトランザクションデータ構造は、動的な数のフィールドを有することができ、特定されたＩＤを介してアクセス可能である。メッセージヘッダは、第１のメッセージキューを用いてクライアントにアクセスするためのアドレス情報を記憶する第１のデータ構造と、第２のメッセージキューを用いてクライアントにアクセスするためのアドレス情報を記憶する第２のデータ構造とを含み得る。第１のタイプのサーバは、第１のメッセージキューを用いてクライアントにアクセスするためのアドレス情報を得るために第１のデータ構造だけを用いるよう動作する。第２のタイプのサーバは、第１のデータ構造からキーを取得するよう動作し、このキーを用いることにより、第２のメッセージキューを用いてクライアントにアクセスするためのアドレス情報を第２のデータ構造から取得するよう動作する。
2014532234.tif 000002
【特許請求の範囲】
【請求項１】
トランザクションミドルウェアマシン環境において複合メッセージヘッダをサポートするためのシステムであって、
第１のメッセージキューを用いてトランザクションクライアントにアクセスするためのアドレス情報を記憶する第１のデータ構造と、
第２のメッセージキューを用いてトランザクションクライアントにアクセスするためのアドレス情報を記憶する第２のデータ構造とを備え、
第１のタイプのトランザクションサーバは、
第１のメッセージキューを用いてトランザクションクライアントと通信するためのアドレス情報を得るために、複合メッセージヘッダにおける第１のデータ構造だけをチェックするよう動作し、
第２のタイプのトランザクションサーバは、
複合メッセージヘッダにおける第１のデータ構造からキーを得るよう動作し、
前記キーを用いることにより、第２のメッセージキューを用いてトランザクションクライアントと通信するためのアドレス情報を複合メッセージヘッダにおける第２のデータ構造から得るよう動作する、システム。
【請求項２】
トランザクションクライアントは、複合メッセージヘッダを用いてトランザクションサーバにメッセージを送信するよう動作する、請求項１に記載のシステム。
【請求項３】
トランザクションクライアントは、メッセージの送信前にトランザクションサーバについての情報を得るよう動作する、請求項２に記載のシステム。
【請求項４】
トランザクションサーバは、複合メッセージヘッダ内のアドレス情報に基づいてトランザクションクライアントに応答メッセージを送信するよう動作する、請求項２に記載のシステム。
【請求項５】
第１のデータ構造はＣデータ構造であり、第２のデータ構造は型付けされたバッファデータ構造である、請求項１に記載のシステム。
【請求項６】
トランザクションクライアントは、ローカルブリッジプロセスを介して第１のタイプのトランザクションサーバと通信するよう動作する、請求項１に記載のシステム。
【請求項７】
トランザクションクライアントは、高性能ネットワークを介して、直接、第２のタイプのトランザクションサーバと通信するよう動作する、請求項１に記載のシステム。
【請求項８】
高性能ネットワークは、リモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルを用いるＩｎｆｉｎｉｂａｎｄ（ＩＢ）ネットワークである、請求項６に記載のシステム。
【請求項９】
第１のタイプのトランザクションサーバは、複合メッセージヘッダにおける第２のデータ構造内のアドレス情報を理解しない、請求項１に記載のシステム。
【請求項１０】
第２のデータ構造は、特定されたＩＤを介して各々がアクセス可能である動的な数のフィールドを備えた柔軟なトランザクションデータ構造である、請求項１に記載のシステム。
【請求項１１】
トランザクションミドルウェアマシン環境において複合メッセージヘッダをサポートするための方法であって、
第１のメッセージキューを用いてトランザクションクライアントにアクセスするためのアドレス情報を記憶する第１のデータ構造を準備するステップと、
第２のメッセージキューを用いてトランザクションクライアントにアクセスするためのアドレス情報を記憶する第２のデータ構造を準備するステップと、
第１のメッセージキューを用いてトランザクションクライアントと通信するためのアドレス情報を得るために、第１のタイプのトランザクションサーバが複合メッセージヘッダにおける第１のデータ構造だけをチェックすることを可能にするステップと、
第２のタイプのトランザクションサーバが、
複合メッセージヘッダにおける第１のデータ構造からキーを取得することを可能にし、
前記キーを用いることにより、第２のメッセージキューを用いてトランザクションクライアントと通信するためのアドレス情報を複合メッセージヘッダにおける第２のデータ構造から取得することを可能にするステップとを含む、方法。
【請求項１２】
トランザクションクライアントが複合メッセージヘッダを用いてトランザクションサーバにメッセージを送信することを可能にするステップをさらに含む、請求項１１に記載の方法。
【請求項１３】
トランザクションクライアントがメッセージの送信前にトランザクションサーバについての情報を取得することを可能にするステップをさらに含む、請求項１２に記載の方法。
【請求項１４】
トランザクションサーバが複合メッセージヘッダ内のアドレス情報に基づいてトランザクションクライアントに応答メッセージを送信することを可能にするステップをさらに含む、請求項１２に記載の方法。
【請求項１５】
第１のデータ構造はＣデータ構造であり、第２のデータ構造は型付けされたバッファデータ構造である、請求項１１に記載の方法。
【請求項１６】
トランザクションクライアントがローカルブリッジプロセスを介して第１のタイプのトランザクションサーバと通信することを可能にするステップをさらに含む、請求項１１に記載の方法。
【請求項１７】
トランザクションクライアントが、高性能ネットワークを介して、直接、第２のタイプのトランザクションサーバと通信することを可能にするステップをさらに含む、請求項１１に記載の方法。
【請求項１８】
高性能ネットワークは、リモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルを用いるＩｎｆｉｎｉｂａｎｄ（ＩＢ）ネットワークである、請求項６に記載の方法。
【請求項１９】
第１のタイプのトランザクションサーバに、複合メッセージヘッダにおける第２のデータ構造内のアドレス情報を理解させないことを可能にするステップをさらに含む、請求項１１に記載の方法。
【請求項２０】
第２のデータ構造は、特定されたＩＤを介して各々がアクセス可能である動的な数のフィールドを備えた柔軟なトランザクションデータ構造である、請求項１１に記載の方法。
【請求項２１】
請求項１１から２０のいずれか１項に記載の方法を実行するためのプログラム。
【請求項２２】
請求項２１に記載のプログラムを記憶する不揮発性記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示：
この特許文書の開示の一部は、著作権の保護下にある内容を含む。著作権所有者は、特許商標庁の特許ファイルまたは記録に現れるので、誰でも当該特許文書または特許開示を複製することについて異議はないが、そうでなければ如何なる場合でもすべての著作権を留保する。
【０００２】
発明の分野：
この発明は、概して、ミドルウェアなどのコンピュータシステムおよびソフトウェアに関し、特に、トランザクションミドルウェアマシン環境をサポートすることに関する。
【背景技術】
【０００３】
背景：
トランザクションミドルウェアシステムまたはトランザクション指向のミドルウェアは、構成内におけるさまざまなトランザクションを処理することのできるエンタープライズアプリケーションサーバを含む。高性能ネットワークおよびマルチプロセッサコンピュータなどの新技術の開発に伴い、トランザクションミドルウェアの性能をさらに向上させる必要がある。これらは、概して、本発明の実施形態が対処するよう意図された分野である。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要：
トランザクションミドルウェアマシン環境において複合メッセージヘッダ（complex message header）をサポートするためのシステムおよび方法をこの明細書中において記載する。複合メッセージヘッダは、第１のメッセージキューを用いてトランザクションクライアントにアクセスするためのアドレス情報を記憶する第１のデータ構造と、第２のメッセージキューを用いてトランザクションクライアントにアクセスするためのアドレス情報を記憶する第２のデータ構造とを含む。第１のタイプのトランザクションサーバは、第１のメッセージキューを用いてトランザクションクライアントと通信するためのアドレス情報を得るために、複合メッセージヘッダにおける第１のデータ構造をチェックするよう動作する。第２のタイプのトランザクションサーバは、複合メッセージヘッダにおける第１のデータ構造からキーを得るよう動作し、当該キーを用いることにより、第２のメッセージキューを用いてトランザクションクライアントと通信するためのアドレス情報を複合メッセージヘッダにおける第２のデータ構造から得るよう動作する。
【図面の簡単な説明】
【０００５】
【図１】本発明の実施形態に従った、複合メッセージヘッダをサポートするトランザクションミドルウェアマシン環境の例を示す図である。
【図２】本発明の実施形態に従った、トランザクションミドルウェアマシン環境において複合メッセージヘッダをサポートするための例示的なフローチャートを示す図である。
【図３】本発明の実施形態に従った、トランザクションミドルウェアマシン環境における複合メッセージヘッダの例を示す図である。
【発明を実施するための形態】
【０００６】
詳細な説明：
複数のプロセッサを備えた高速マシンおよび高性能ネットワーク接続を活用することのできるＴｕｘｅｄｏなどのトランザクションミドルウェアシステムをサポートするためのシステムおよび方法をこの明細書中に記載する。柔軟なトランザクションデータ構造は、トランザクションミドルウェアマシン環境にメッセージヘッダを記憶するために用いることができる。柔軟なトランザクションデータ構造は、動的な数のフィールド（dynamic numbers of fields）を有することができ、特定されたＩＤを介してアクセス可能である。メッセージヘッダは、第１のメッセージキューを用いてクライアントにアクセスするためのアドレス情報を記憶する第１のデータ構造と、第２のメッセージキューを用いてクライアントにアクセスするためのアドレス情報を記憶する第２のデータ構造とを含み得る。第１のタイプのサーバは、第１のメッセージキューを用いてクライアントにアクセスするためのアドレス情報を得るために、第１のデータ構造だけを用いるよう動作する。第２のタイプのサーバは、第１のデータ構造からキーを得るよう動作し、次いで、当該キーを用いることにより、第２のメッセージキューを用いてクライアントにアクセスするためのアドレス情報を第２のデータ構造から得るよう動作する。
【０００７】
本発明の実施形態に従うと、当該システムは、高性能ハードウェア（たとえば６４ビットプロセッサ技術、高性能の大きなメモリ、ならびに冗長なＩｎｆｉｎｉｂａｎｄおよびイーサネット（登録商標）ネットワーキング）と、ＷｅｂＬｏｇｉｃ  Ｓｕｉｔｅなどのアプリケーションサーバまたはミドルウェア環境との組合せを含み、これにより、迅速に設けられ得るとともにオンデマンドでスケール変更可能な大規模並列メモリグリッドを含む完全なＪａｖａ（登録商標）  ＥＥアプリケーションサーバコンプレックスを提供する。一実施形態に従うと、当該システムは、アプリケーションサーバグリッド、ストレージエリアネットワーク、およびＩｎｆｉｎｉｂａｎｄ（ＩＢ）ネットワークを提供するフルラック、ハーフラック、もしくはクォーターラック、または他の構成として展開され得る。ミドルウェアマシンソフトウェアは、たとえばＷｅｂＬｏｇｉｃ  Ｓｅｒｖｅｒ、ＪＲｏｃｋｉｔまたはＨｏｔｓｐｏｔ  ＪＶＭ、Ｏｒａｃｌｅ  Ｌｉｎｕｘ（登録商標）またはＳｏｌａｒｉｓ、およびＯｒａｃｌｅ  ＶＭといった、アプリケーションサーバと、ミドルウェアと、他の機能性とを提供し得る。一実施形態に従うと、当該システムは、ＩＢネットワークを介して互いに通信する複数の計算ノードと、ＩＢスイッチゲートウェイと、ストレージノードまたはユニットとを含み得る。ラック構成として実施される場合、当該ラックの未使用部分は、空のままとされ得るか、またはフィラー（filler）によって占有され得る。
【０００８】
本願明細書において「Ｓｕｎ  Ｏｒａｃｌｅ  Ｅｘａｌｏｇｉｃ」または「Ｅｘａｌｏｇｉｃ」と称される本発明の実施形態に従うと、当該システムは、Ｏｒａｃｌｅ  Ｍｉｄｄｌｅｗａｒｅ  ＳＷ  ｓｕｉｔｅまたはＷｅｂｌｏｇｉｃといったミドルウェアまたはアプリケーションサーバソフトウェアをホスティングするための、展開が容易なソリューションである。本願明細書に記載されるように、一実施形態に従うと、当該システムは、１つ以上のサーバと、ストレージユニットと、ストレージネットワーキングのためのＩＢファブリックと、ミドルウェアアプリケーションをホストするのに必要な他のすべてのコンポーネントとを含む「グリッド・イン・ア・ボックス（grid in a box）」である。たとえばＲｅａｌ  Ａｐｐｌｉｃａｔｉｏｎ  ＣｌｕｓｔｅｒｓおよびＥｘａｌｏｇｉｃ  ｏｐｅｎ  ｓｔｏｒａｇｅを用いて大規模並列グリッドアーキテクチャを活用することにより、すべてのタイプのミドルウェアアプリケーションのために有意な性能が与えられ得る。このシステムは、線形のＩ／Ｏスケーラビリティとともに向上した性能を与え、使用および管理が簡易であり、ミッションクリティカルな可用性および信頼性を与える。
【０００９】
本発明の実施形態に従うと、Ｔｕｘｅｄｏは１セットのソフトウェアモジュールであって、高性能の分散型ビジネスアプリケーションの構築、実行および管理を可能にし、複数の多層アプリケーション開発ツールによってトランザクションミドルウェアとして用いられてきた。加えて、Ｔｕｘｅｄｏシステムなどのトランザクションミドルウェアシステムは、Ｅｘａｌｏｇｉｃミドルウェアマシンなどの、複数のプロセッサを備えた高速マシン、および、Ｉｎｆｉｎｉｂａｎｄ（ＩＢ）ネットワークなどの高性能ネットワーク接続を利用することができる。
【００１０】
本発明の実施形態に従うと、トランザクションミドルウェアシステムは、ローカルメッセージ転送と同様の態様で、たとえばブリッジプロセスを回避し、シングル・ポイント・ボトルネック（single point bottleneck）を防ぐ態様で、待ち時間を短くするために、リモートダイレクトメモリアクセス（Remote Direct Memory Access：ＲＤＭＡ）プロトコルを用いて、ローカルマシンとリモートマシンとの間でメッセージをやり取りすることができる。ＲＤＭＡプロトコルを用いたローカルマシンとリモートマシンとの間のメッセージのやり取りが、２０１２年３月８日に出願され、「トランザクションミドルウェアマシン環境においてシングル・ポイント・ボトルネックを防ぐためのシステムおよび方法（SYSTEM AND METHOD FOR PREVENTING SINGLE-POINT BOTTLENECK IN A TRANSACTIONAL MIDDLEWARE MACHINE ENVIRONMENT）」と題された米国出願第１３／４１５，７６０号に開示され、その出願全体が引用によりこの明細書中に援用されている。
【００１１】
複合メッセージヘッダのサポート
本発明の実施形態に従うと、マシン間でメッセージをやり取りする際にブリッジプロセスの回避をサポートし、シングル・ポイント・ボトルネックを防ぐために、トランザクションミドルウェアマシン環境は複合メッセージヘッダを用いることができる。複合メッセージヘッダは、ＲＤＭＡメッセージキューおよびシステムＶプロセス間通信（Inter-process Communication：ＩＰＣ）メッセージキューなどのさまざまなメッセージキューをトランザクションミドルウェアマシン環境においてサポートするための柔軟なデータ構造を用いることができる。
【００１２】
図１は、本発明の実施形態に従った、複合メッセージヘッダをサポートするトランザクションミドルウェアマシン環境の例を示す。図１に示されるように、トランザクションクライアント１０１はさまざまなサービス要求メッセージ、すなわちメッセージＡ  １０４およびメッセージＢ  １０５、をさまざまなタイプのトランザクションサーバ、すなわちサーバＡ  １０２およびサーバＢ  １０３に送信することができる。サーバＡは、ＩＰＣキューを用いる第１のタイプのサーバであり得、サーバＢは、ＲＤＭＡキューを用いる第２のタイプのサーバであり得る。加えて、サーバは、ＩＰＣキューおよびＲＤＭＡキューの両方を同時に受信することができる。サーバＡ  １０２およびサーバＢ  １０３はハードウェア計算ノードであり得る。サーバＡ  １０２およびサーバＢ  １０３はミドルウェアマシンのラックに設けられ得る。
【００１３】
本発明の実施形態に従うと、複合メッセージヘッダは、ブリッジプロセスの回避をサポートし、シングル・ポイント・ボトルネックを防止するために柔軟なデータ構造を用いることができる。図１に示されるように、メッセージヘッダＡ  １０６は、第１のデータ構造Ａ  １０８および第２のデータ構造Ａ  １１０を含み、メッセージヘッダＢ  １０７は、第１のデータ構造Ｂ  １０９および第２のデータ構造Ｂ  １１１を含む。第１のデータ構造Ａ  １０８および第１のデータ構造Ｂ  １０９の各々は、ＩＰＣキューを用いてクライアントにアクセスするためのアドレス情報を記憶する単純なデータ構造であり得る。加えて、メッセージヘッダＢ  １０７における第２のデータ構造Ｂ  １１１は、第２のメッセージキューを用いてクライアントにアクセスするためのアドレス情報を記憶するデータバッファであり得、メッセージヘッダＡ  １０６における第２データ構造Ａ  １１０は、空のままにしておくことができるか、存在し得ないかまたは最初に作り出すことができない。
【００１４】
図１に示されるような例においては、システムＶ  ＩＰＣキューＡ  １２２を用いることが好ましいサーバであるサーバＡ  １０２は、単純なデータ構造１０８だけを用いて、ブリッジプロセスＡ  １２０およびブリッジプロセスＣ  １１８を介してＩＰＣメッセージキューＣ  １１６を用いてクライアントにアクセスするためのアドレス情報を得ることができる。他方で、ＲＤＭＡキューを用いることが好ましいサーバであるサーバＢ  １０３は、単純なデータ構造１０９を用いて、キー１１３、たとえば負の長い値（negative long value）を有する偽のＩＰＣキューアドレスを得ることができる。さらに、サーバＢ  １０３は、キー１１３または特定されたフィールド名を用いてデータバッファを調べて、第２のメッセージキューを用いてクライアントにアクセスするためのアドレスＢ  １１４についての情報を得ることができる。
【００１５】
本発明の実施形態に従うと、クライアントはＩＰＣキューおよびＲＤＭＡキューを同時に維持することができる。クライアントがサービス要求メッセージをターゲットサーバに発信する前に、クライアントは、まず、クライアントが事前に受信した情報に基づいてターゲットサーバのタイプを判断することができる。ターゲットサーバがＩＰＣキューを用いることが好ましいと判断された場合、クライアントは、図１に図示のとおり、メッセージヘッダＡ  １０６と同様のフォーマットのメッセージヘッダを備えたサービス要求メッセージを送信することができる。逆に、ターゲットサーバがＲＤＭＡキューを用いることが好ましいと判断された場合、クライアントは、図１に図示のとおり、メッセージヘッダＢ  １０７と同様のフォーマットのメッセージヘッダを備えたサービス要求メッセージを送信することができる。
【００１６】
図２は、本発明の実施形態に従った、トランザクションミドルウェアマシン環境において複合メッセージヘッダをサポートするための例示的なフローチャートを示す。図２に図示のとおり、ステップ２０１において、第１のメッセージキューを用いてトランザクションクライアントにアクセスするためのアドレス情報を記憶するために第１のデータ構造が設けられる。また、ステップ２０２において、第２のメッセージキューを用いてトランザクションクライアントにアクセスするためのアドレス情報を記憶するために第２のデータ構造が設けられる。次いで、ステップ２０３において、第１のタイプのトランザクションサーバは、第１のメッセージキューを用いてトランザクションクライアントと通信するためのアドレス情報を得るために、複合メッセージヘッダにおける第１のデータ構造だけをチェックすることができる。また、ステップ２０４において、第２のタイプのトランザクションサーバは、複合メッセージヘッダにおける第１のデータ構造からキーを得ることができ、このキーを用いることにより、第２のメッセージキューを用いてトランザクションクライアントと通信するためのアドレス情報を複合メッセージヘッダにおける第２のデータ構造から得ることができる。
【００１７】
Ｔｕｘｅｄｏでのメッセージキュー情報の搬送
本発明の実施形態に従うと、Ｔｕｘｅｄｏアプリケーションは、システムＶ  ＩＰＣキューに関連付けられるブリッジプロセスを回避するために、ＲＤＭＡプロトコルを活用し、ＲＤＭＡキューを用いることができる。システムＶ  ＩＰＣキューに関連付けられるブリッジプロセスは、Ｔｕｘｅｄｏ環境におけるシングル・ポイント・ボトルネックになり得る。ＲＤＭＡキューを用いて、さまざまなＴｕｘｅｄｏマシン間でリモートメッセージをやり取りすることにより、ローカルメッセージ転送と同様の態様でより短い待ち時間を実現することができる。
【００１８】
Ｔｕｘｅｄｏクライアントおよびサーバは、さまざまなバージョンでコンパイルすることができ、さまざまなマシンにおいて展開することができる。すべてのマシンがバイパスブリッジプロセス特徴をサポートしない可能性がある。システムは、マシン間でのメッセージ互換性を維持することができる。たとえば、あるバージョンのＴｕｘｅｄｏサーバは、Ｔｕｘｅｄｏメッセージヘッダ内における正確なオフセットのすべてのフィールドにアクセスすることができるが、但し、このＴｕｘｅｄｏサーバはバイパスブリッジ特徴をサポートしない。このように、さまざまなバージョンのＴｕｘｅｄｏ上で実行されるアプリケーションは、互いから送信されるメッセージを認識することができる。
【００１９】
図３は、本発明の実施形態に従った、トランザクションミドルウェアマシン環境における複合メッセージヘッダの例を示す。図３に図示のとおり、複合メッセージヘッダは、Ｃ−構造３０１および３０２にいくつかのＴｕｘｅｄｏメッセージヘッダと、ＦＭＬ３２タイプのバッファ３０３にＴｕｘｅｄｏメッセージヘッダとを含む。
【００２０】
クライアントは、システムＶ  ＩＰＣキューアドレス情報をＣ−構造に記憶することができる。相互運用性の問題を解決するために、バイパスブリッジ特徴が作動される場合であっても、複数のＣ−構造をメッセージヘッダにおいて同じ位置で変化させずに維持することができる。加えて、クライアントは、その完全なＲＤＭＡメッセージキュー情報を、システムＶ  ＩＰＣキューアドレスには用いられないＩＤで、柔軟なトランザクションヘッダに、たとえばＦＭＬ３２タイプのバッファヘッダ３０３に記憶することができる。
【００２１】
ＦＭＬ３２タイプのバッファ内のＲＤＭＡメッセージキュー情報は、一般に、Ｃ−構造においてシステムＶ  ＩＰＣキューアドレス情報よりも多くのバイトを含む。たとえば、Ｔｕｘｅｄｏ要求メッセージヘッダにおけるＣ−構造は８バイトの「長い」変数を含み、ＲＤＭＡメッセージキューアドレスは１２８バイトの配列である。
【００２２】
ＦＭＬ３２タイプのバッファは、フィールドが索引付けされた柔軟なトランザクションデータ構造である。ＦＭＬ３２タイプのバッファにおけるすべてのエントリは特定されたフィールド名によって検索することができる。プロセスによりＦＭＬ３２タイプのバッファを得る場合、当該プロセスは、それ自体が知らないフィールド名によって値が得られない場合には、如何なる問題も引起こさない。さらに、如何なるプロセスでも、それ自体が知らないフィールドを介して値を得ようとする可能性はないだろう。
【００２３】
本発明の実施形態に従うと、動的な数のフィールド３０４および３０５は、特定されたＩＤを介してアクセス可能である同じバッファに入力することができる。バイパスブリッジ特徴が作動されない場合、プロセスはＦＭＬ３２ヘッダを調査せず、システムＶ  ＩＰＣキューにアクセスするだけでよい。というのも、Ｃ−構造ヘッダが変更されないからである。
【００２４】
バイパスブリッジ特徴が作動されると、クライアントは、システムＶ  ＩＰＣキューの代わりにＲＤＭＡメッセージキューを用いてサーバにメッセージを送信することができ、かつ、サーバが応答を返信することができるように、その返答ＲＤＭＡメッセージキューアドレスを要求メッセージに記憶することができる。
【００２５】
図３に図示のとおり、ＴｕｘｅｄｏサーバプロセスでＴｕｘｅｄｏクライアントからメッセージが受信されると、Ｔｕｘｅｄｏサーバプロセスでは、まず、Ｃ−構造におけるＩＰＣキューアドレス、たとえばＴｕｘｅｄｏメッセージヘッダＸ  ３０２、を得ることができる。Ｔｕｘｅｄｏサーバプロセスにより、エントリが負の長い値を有していることが判明した場合、Ｔｕｘｅｄｏサーバプロセスでは、特定されたフィールド名により、ＦＭＬ３２タイプのバッファにあるＴｕｘｅｄｏメッセージヘッダＹ  ３０３からＲＤＭＡメッセージキューアドレスを得ることができる。
【００２６】
さらに、Ｔｕｘｅｄｏクライアントは、要求の送信前にサーバからバージョン情報を得ることができる。このように、バイパスブリッジ特徴なしでコンパイルされたサーバの場合、システムＶ  ＩＰＣキューアドレスだけを要求メッセージヘッダに入力することができ、ＦＭＬ３２タイプのバッファには触れられない。
【００２７】
バイパスブリッジ特徴が無効にされると、ＦＭＬ３２バッファ３０３にはＲＤＭＡメッセージキューアドレスフィールドは存在しない。メッセージバッファ（Ｃ−構造部分）におけるキューアドレスは、正のＩＰＣキューアドレスであってもよく、システムＶ  ＩＰＣキューアドレスを示す。このように、Ｔｕｘｅｄｏがメッセージバッファからこのキューアドレスを得た場合、システムはＦＭＬ３２バッファを調査しない。
【００２８】
本発明の他の実施形態は、トランザクションミドルウェアマシン環境において複合メッセージヘッダをサポートするためのシステムを含む。当該システムは、第１のメッセージキューを用いてトランザクションクライアントにアクセスするためのアドレス情報を記憶する第１のデータ記憶ユニットと、第２のメッセージキューを用いてトランザクションクライアントにアクセスするためのアドレス情報を記憶する第２のデータ記憶ユニットと、第１のメッセージキューを用いてトランザクションクライアントと通信するためのアドレス情報を得るために、複合メッセージヘッダにおける第１のデータ構造だけをチェックするよう動作する第１のタイプのトランザクションサーバと、複合メッセージヘッダにおける第１のデータ構造からキーを得るよう動作し、当該キーを用いることにより、第２のメッセージキューを用いてトランザクションクライアントと通信するためのアドレス情報を複合メッセージヘッダにおける第２のデータ構造から得るよう動作する第２のタイプのトランザクションサーバとを備える。
【００２９】
別の実施形態が含むシステムにおいては、トランザクションクライアントは、複合メッセージヘッダを用いてトランザクションサーバにメッセージを送信するよう動作する。
【００３０】
別の実施形態が含むシステムにおいては、トランザクションクライアントは、メッセージの送信前にトランザクションサーバについての情報を得るよう動作する。
【００３１】
別の実施形態が含むシステムにおいては、トランザクションサーバは、複合メッセージヘッダ内のアドレス情報に基づいてトランザクションクライアントに応答メッセージを送信するよう動作する。
【００３２】
別の実施形態が含むシステムにおいては、第１のデータ構造はＣデータ構造であり、第２のデータ構造は型付けされたバッファデータ構造である。
【００３３】
別の実施形態が含むシステムにおいては、トランザクションクライアントは、ローカルブリッジプロセスを介して第１のタイプのトランザクションサーバと通信するよう動作する。
【００３４】
別の実施形態が含むシステムにおいては、トランザクションクライアントは、高性能ネットワークを介して、直接、第２のタイプのトランザクションサーバと通信するよう動作する。
【００３５】
別の実施形態が含むシステムにおいては、高性能ネットワークは、リモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルを用いるＩｎｆｉｎｉｂａｎｄ（ＩＢ）ネットワークである。
【００３６】
別の実施形態が含む請求項１のシステムにおいては、第１のタイプのトランザクションサーバは、複合メッセージヘッダにおける第２のデータ構造内のアドレス情報を理解しない。
【００３７】
別の実施形態が含むシステムにおいては、第２のデータ構造は、特定されたＩＤを介して各々がアクセス可能である動的な数のフィールドを備えた柔軟なトランザクションデータ構造である。
【００３８】
別の実施形態は、トランザクションミドルウェアマシン環境における複合メッセージヘッダをサポートするための装置を含む。当該装置は、第１のメッセージキューを用いてトランザクションクライアントにアクセスするためのアドレス情報を記憶する第１のデータ構造を設けるための手段と、第２のメッセージキューを用いてトランザクションクライアントにアクセスするためのアドレス情報を記憶する第２のデータ構造を設けるための手段と、第１のメッセージキューを用いてトランザクションクライアントと通信するためのアドレス情報を得るために、第１のタイプのトランザクションサーバが複合メッセージヘッダにおける第１のデータ構造だけをチェックすることを可能にするための手段と、第２のタイプのトランザクションサーバが、複合メッセージヘッダにおける第１のデータ構造からキーを得ることを可能にし、当該キーを用いることにより、第２のメッセージキューを用いてトランザクションクライアントと通信するためのアドレス情報を複合メッセージヘッダにおける第２のデータ構造から得ることを可能にするための手段とを含む。
【００３９】
別の実施形態が含む装置はさらに、トランザクションクライアントが複合メッセージヘッダを用いてトランザクションサーバにメッセージを送信することを可能にするための手段を含む。
【００４０】
別の実施形態が含む装置はさらに、トランザクションクライアントが、メッセージの送信前にトランザクションサーバについての情報を得ることを可能にするための手段を含む。
【００４１】
別の実施形態が含む装置はさらに、トランザクションサーバが、複合メッセージヘッダ内のアドレス情報に基づいてトランザクションクライアントに応答メッセージを送信することを可能にするための手段を含む。
【００４２】
別の実施形態が含む装置においては、第１のデータ構造はＣデータ構造であり、第２のデータ構造は型付けされたバッファデータ構造である。
【００４３】
別の実施形態が含む装置はさらに、トランザクションクライアントが、ローカルブリッジプロセスにより第１のタイプのトランザクションサーバと通信することを可能にするための手段を含む。
【００４４】
別の実施形態が含む装置はさらに、トランザクションクライアントが高性能ネットワークを介して、直接、第２のタイプのトランザクションサーバと通信することを可能にするための手段を含む。
【００４５】
別の実施形態が含む装置においては、高性能ネットワークは、リモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルを用いるＩｎｆｉｎｉｂａｎｄ（ＩＢ）ネットワークである。
【００４６】
別の実施形態が含む装置はさらに、第１のタイプのトランザクションサーバに、複合メッセージヘッダにおける第２のデータ構造内のアドレス情報を理解させないことを可能にするための手段を含む。
【００４７】
別の実施形態が含む装置においては、第２のデータ構造は、特定されたＩＤを介して各々がアクセス可能である動的な数のフィールドを備えた柔軟なトランザクションデータ構造である。
【００４８】
この発明は、本開示の教示に従ってプログラムされた１つ以上のプロセッサ、メモリおよび／またはコンピュータ読取り可能な記憶媒体を含む１つ以上の従来の汎用のまたは特化されたデジタルコンピュータ、演算装置、マシンまたはマイクロプロセッサを用いて、好都合に実現され得る。ソフトウェア技術の当業者に明らかとなるように、適切なソフトウェアコーディングは、熟練したプログラマによって本開示の教示に基づき容易に用意され得る。
【００４９】
いくつかの実施形態においては、本発明は、本発明のプロセスのいずれかを実行するようコンピュータをプログラムするのに用いられ得る命令を格納した記憶媒体またはコンピュータ可読媒体であるコンピュータプログラムプロダクトを含む。当該記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリ素子、磁気または光学カード、ナノシステム（分子メモリＩＣを含む）、または命令および／またはデータを格納するのに適した任意のタイプの媒体もしくは装置を含み得るが、これらに限定されない。
【００５０】
本発明の上述の記載は、例示および説明を目的として与えられており、網羅的であることまたは開示されたそのものの形態に本発明を限定することを意図したものではない。当業者にとっては、多くの修正例および変形例が明確となるであろう。上記の実施形態は、本発明の原理およびその実際的な適用をもっともよく説明するために選択および記載されたものであり、これにより他の当業者が、特定の使用に適したさまざまな修正例を考慮して、さまざまな実施形態について本発明を理解するのが可能になる。本発明の範囲は、添付の特許請求の範囲およびそれらの同等例によって定義されるよう意図されている。
【図１】
2014532234.tif 000003
【図２】
2014532234.tif 000004
【図３】
2014532234.tif 000005
【国際調査報告】
2014532234.tif 000006