(57)【特許請求の範囲】
【請求項１】
トランザクションミドルウェアマシン環境においてドメイン間メッセージ通信をサポートするための方法であって、
トランザクションドメインにより、前記トランザクションドメインに関連付けられたサービステーブルに登録された１つ以上のサービスを、リモートトランザクションドメインからインポートするステップと、
前記トランザクションドメインにおけるクライアントにより、前記１つ以上のサービスを提供する前記リモートトランザクションドメインにおけるリモートサーバを前記サービステーブルから見付け出すステップと、
前記クライアントにより、前記１つ以上のサービスを呼出すようにとのメッセージを前記リモートサーバに直接送信するステップと、
トランザクションをコミットする前記クライアントにより、前記トランザクションに含まれる前記トランザクションドメインおよび前記リモートトランザクションドメインの両方における１つ以上のトランザクション管理サーバを取得するステップとを含む、方法。
【請求項２】
前記トランザクションドメインおよび前記リモートトランザクションドメインはドメイングループにあり、前記ドメイングループにおける各々のドメインは一意識別子（ＩＤ）に関連付けられている、請求項１に記載の方法。
【請求項３】
前記トランザクションドメインおよび前記リモートトランザクションドメインにより、マシン関連およびトランザクション関連の情報を含むグローバルリソースを共有するステップをさらに含む、請求項１または２に記載の方法。
【請求項４】
共有ファイルおよびサーバのうち少なくとも１つを用いて前記グローバルリソースをサポートするステップをさらに含む、請求項３に記載の方法。
【請求項５】
ドメインゲートウェイを用いて、前記マシン関連およびトランザクション関連の情報を含む前記グローバルリソースをインポートするステップをさらに含む、請求項３または４に記載の方法。
【請求項６】
前記インポートされたマシン関連およびトランザクション関連の情報をローカルの共有メモリに格納するステップをさらに含む、請求項５に記載の方法。
【請求項７】
前記クライアントにより、前記トランザクションドメインに常駐する１つ以上のゲートウェイサーバを介して前記リモートサーバに別のメッセージを送信するステップをさらに含む、請求項１〜６のいずれか１項に記載の方法。
【請求項８】
前記クライアントにより、前記リモートサーバに関連付けられたメッセージキューについてのアドレスを取得するステップをさらに含む、請求項１〜７のいずれか１項に記載の方法。
【請求項９】
前記アドレスはリモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルに基づいている、請求項８に記載の方法。
【請求項１０】
実行されると、システムに、請求項１〜９のいずれか１項に記載の方法のステップを実行させる命令を含むコンピュータプログラム。
【請求項１１】
トランザクションミドルウェアマシン環境においてドメイン間メッセージ通信をサポートするためのシステムであって、
１つ以上のマイクロプロセッサと、
前記１つ以上のマイクロプロセッサ上で実行されるトランザクションドメインとを含み、前記トランザクションドメインは、リモートトランザクションドメインから１つ以上のサービスをインポートするように動作し、前記１つ以上のサービスは、前記トランザクションドメインに関連付けられたサービステーブルに登録されており、前記システムはさらに、
前記トランザクションドメインにクライアントを含み、前記クライアントは、
前記１つ以上のサービスを提供する前記リモートトランザクションドメインにおけるリモートサーバを前記サービステーブルから見付け出し、
前記１つ以上のサービスを呼出すようにとのメッセージを、直接、前記リモートサーバに送信するように動作し、
トランザクションをコミットする前記クライアントは、前記トランザクションに含まれる前記トランザクションドメインおよび前記リモートトランザクションドメインの両方における１つ以上のトランザクション管理サーバを取得するように動作する、システム。
【請求項１２】
トランザクションドメインにおけるクライアントであって、前記トランザクションドメインはリモートトランザクションドメインから１つ以上のサービスをインポートするように動作し、前記１つ以上のサービスは、前記トランザクションドメインに関連付けられたサービステーブルに登録され、前記クライアントは、
前記１つ以上のサービスを提供する前記リモートトランザクションドメインにおけるリモートサーバを前記サービステーブルから見付け出すように構成された見付け出しユニットと、
前記１つ以上のサービスを呼出すようにとのメッセージを、直接、前記リモートサーバに送信するように構成された第１の送信ユニットと、
トランザクションに含まれる前記トランザクションドメインおよび前記リモートトランザクションドメインの両方における１つ以上のトランザクション管理サーバを取得するように構成された第１の取得ユニットとを含む、クライアント。
【請求項１３】
命令を含むコンピュータプログラムであって、前記命令は、実行されると、システムに、
トランザクションドメインにより、前記トランザクションドメインに関連付けられたサービステーブルに登録されている１つ以上のサービスをリモートトランザクションドメインからインポートするステップと、
前記トランザクションドメインにおけるクライアントにより、前記１つ以上のサービスを提供する前記リモートトランザクションドメインにおけるリモートサーバを前記サービステーブルから見付け出すステップと、
前記クライアントにより、前記１つ以上のサービスを呼出すようにとのメッセージを、直接、前記リモートサーバに送信するステップと、
トランザクションをコミットする前記クライアントにより、前記トランザクションに含まれる前記トランザクションドメインおよび前記リモートトランザクションドメインの両方における１つ以上のトランザクション管理サーバを取得するステップと、を実行させる、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示：
この特許文献の開示の一部は、著作権保護の対象となる題材を含んでいる。著作権の所有者は、特許商標庁の包袋または記録に掲載されるように特許文献または特許情報開示を誰でも複製できることに対して異議はないが、その他の点ではすべての如何なる著作権をも保有する。
【０００２】
発明の分野：
本発明は、一般に、コンピュータシステムおよびミドルウェアなどのソフトウェアに関し、特に、トランザクションミドルウェアマシン環境に関する。
【背景技術】
【０００３】
背景：
トランザクションミドルウェアシステムまたはトランザクション指向型ミドルウェアは、組織内のさまざまなトランザクションを処理することができるエンタープライズアプリケーションサーバを含む。高性能ネットワークおよびマルチプロセッサコンピュータなどの新技術の開発によって、トランザクションミドルウェアの性能をさらに改善する必要がある。これらは、本発明の実施形態が対処しようとする一般的に認識された領域である。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要：
トランザクションミドルウェアマシン環境においてドメイン間メッセージ通信をサポートすることができるシステムおよび方法がこの明細書中に記載される。トランザクションドメインは、リモートトランザクションドメインから１つ以上のサービスをインポートすることができる。上記１つ以上のサービスは、トランザクションドメインに関連付けられたサービステーブルに登録される。さらに、トランザクションドメインにおけるクライアントは、上記１つ以上のサービスを提供するリモートトランザクションドメインにおけるリモートサーバをサービステーブルから見付け出し、トランザクションドメインおよびリモートトランザクションドメインの両方における１つ以上のドメインゲートウェイサーバをバイパスして、上記１つ以上のサービスを呼出すようにとのメッセージを、直接、リモートサーバに送信することができる。
【０００５】
トランザクションミドルウェアマシン環境においてドメイン間メッセージ通信をサポートすることができるシステムおよび方法がこの明細書中に記載される。トランザクションドメインにおけるゲートウェイサーバは、１つ以上のリモートトランザクションドメインにおける１つ以上のゲートウェイサーバに対して１つ以上のサービスにおける更新の通知を提供するように動作する。さらに、ゲートウェイサーバは、上記１つ以上のサービスについての問合せをリモートトランザクションドメインから受信し、応答をリモートトランザクションドメインにおけるゲートウェイサーバに送信することができる。当該応答は、上記リモートトランザクションドメインにおけるクライアントが上記１つ以上のサービスを呼出すことを可能にする情報を含んでいる。
【０００６】
トランザクションミドルウェアマシン環境においてドメイン間メッセージ通信をサポートすることができるシステムおよび方法がこの明細書中に記載される。プロキシモデルを用いると、第１のトランザクションドメインは、第２のトランザクションドメインに１つ以上のサービスをエクスポートすることができる。上記１つ以上のサービスは第３のトランザクションドメインからインポートされる。さらに、トランザクションドメインにおける第１のゲートウェイサーバは、第３のトランザクションドメインにおける上記１つ以上のサービスを呼出すようにとの要求を第２のトランザクションドメインにおけるクライアントから受信することができ、かつ、当該要求を上記１つ以上のサービスを提供する第３のトランザクションドメインにおけるサーバにルーティングすることができる。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてドメインゲートウェイを介してドメイン間メッセージ通信をサポートする例を示す図である。
【図２】本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてドメインゲートウェイをバイパスしてドメイン間メッセージ通信をサポートする例を示す図である。
【図３】本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてドメイン間メッセージ通信をサポートする例を示す図である。
【図４】本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてドメイン間メッセージ通信をサポートするための例示的なフローチャートである。
【図５】本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてバイパスドメイングループをサポートする例を示す図である。
【図６】本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてドメイン間メッセージ通信をサポートするサービス情報を共有および更新する例を示す図である。
【図７】本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてドメイン間メッセージ通信をサポートするサービス情報を共有および更新するための例示的なフローチャートである。
【図８】本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてプロキシモデルを提供する例を示す図である。
【図９】本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてプロキシモデルを用いてドメイン間メッセージ通信をサポートする例を示す図である。
【図１０】本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてプロキシモデルを用いてドメイン間メッセージ通信をサポートするための例示的なフローチャートである。
【図１１】本発明の一実施形態に従った、トランザクションミドルウェアマシン環境におけるトランザクションドメイン内のクライアントを示す例示的なブロック図である。
【図１２】本発明の一実施形態に従った、トランザクションミドルウェアマシン環境におけるトランザクションドメイン内のゲートウェイサーバを示す例示的なブロック図である。
【図１３】本発明の一実施形態に従った、トランザクションミドルウェアマシン環境における第１のトランザクションドメイン内の第１のゲートウェイサーバを示す例示的なブロック図である。
【図１４】本発明の一実施形態に従った、トランザクションミドルウェアマシン環境における第１のトランザクションドメイン内の第２のゲートウェイサーバを示す例示的なブロック図である。
【発明を実施するための形態】
【０００８】
詳細な説明：
本発明は、同様の参照符号で同様の要素を示している添付の図面において、限定によってではなく例示によって説明されている。この開示における「ある」または「１つの」または「いくつかの」実施形態への言及は、必ずしも同じ実施形態に対するものではなく、そのような言及は「少なくとも１つ」という意味である。
【０００９】
以下の本発明の説明は、トランザクションミドルウェアマシン環境についての一例としてＴｕｘｅｄｏ環境を用いている。他のタイプのトランザクションミドルウェアマシン環境が限定なしに使用可能であることが当業者にとって明らかになるだろう。
【００１０】
トランザクションミドルウェアマシン環境をサポートすることができるシステムおよび方法がこの明細書中に記載される。
【００１１】
トランザクションミドルウェアマシン環境
本発明の一実施形態によれば、迅速に用意することができ且つオンデマンドで拡張することができる大規模並列処理インメモリグリッドを含むＪａｖａ（登録商標）ＥＥアプリケーションサーバ複合体を提供するために、当該システムは、６４ビットプロセッサ技術などの高性能ハードウェア、高性能大容量のメモリ、冗長インフィニバンド（InfiniBand）およびイーサネット（登録商標）ネットワーク、ならびにＷｅｂＬｏｇｉｃ（登録商標）スイートなどのアプリケーションサーバまたはミドルウェア環境の組合せを含む。一実施形態によれば、当該システムは、アプリケーションサーバグリッド、ストレージエリアネットワーク、およびインフィニバンド（ＩＢ）ネットワークを提供するフルラック、ハーフラックまたはクォーターラックもしくは他の構成として展開可能である。ミドルウェアマシンソフトウェアは、アプリケーションサーバ、ミドルウェアおよび他の機能、たとえば、ＷｅｂＬｏｇｉｃ  Ｓｅｒｖｅｒ、ＪＲｏｃｋｉｔもしくはＨｏｔｓｐｏｔ  ＪＶＭ、Ｏｒａｃｌｅ  Ｌｉｎｕｘ（登録商標）もしくはＳｏｌａｒｉｓ、およびＯｒａｃｌｅ（登録商標）ＶＭなどを提供することができる。一実施形態によれば、当該システムは、ＩＢネットワークを介して互いに通信する複数の計算ノード、ＩＢスイッチゲートウェイ、およびストレージノードまたはストレージユニットを含むことができる。ラック構成として実装される場合、ラックの未使用部分は、空のままにしてもよく、充填物で充填されてもよい。
【００１２】
本発明の一実施形態によれば、当該システムは、ＯｒａｃｌｅミドルウェアＳＷスイートまたはＷｅｂＬｏｇｉｃなどのミドルウェアまたはアプリケーションサーバソフトウェアをホストするために、展開容易な解決案を提供する。本明細書に説明されるように、一実施形態に従ったシステムは、ミドルウェアアプリケーションをホストするために必要とされる１つ以上のサーバ、ストレージユニット、ストレージネットワーク用のＩＢファブリック、およびすべての他の要素を含む「グリッド・イン・ア・ボックス」（grid in a box）である。たとえば、リアルアプリケーションクラスタおよびＥｘａｌｏｇｉｃオープンストレージなどを使用する大規模並列グリッドアーキテクチャを活用することによって、すべての種類のミドルウェアアプリケーションに高い性能を提供することができる。このシステムは、線形Ｉ／Ｏ拡張性によって改善した性能を提供し、使用および管理が簡単であり、ミッションクリティカルな可用性および信頼性を提供する。
【００１３】
本発明の一実施形態に従うと、Ｏｒａｃｌｅ  Ｔｕｘｅｄｏシステムなどのトランザクションミドルウェアシステムは、Ｏｒａｃｌｅ  Ｅｘａｌｏｇｉｃミドルウェアマシンなど複数のプロセッサや、ＩＢネットワークなどの高性能ネットワーク接続を備えた高速マシンを利用することができる。付加的には、Ｏｒａｃｌｅ  Ｔｕｘｅｄｏシステムは、キャッシュアーキテクチャが共有されているクラスタ化されたデータベースであるＯｒａｃｌｅのリアルアプリケーションクラスタ（Real Application Clusters：ＲＡＣ）エンタープライズデータベースなどのクラスタ化されたデータベースを利用することができ、かつ、クラウドアーキテクチャのコンポーネントにもなり得る。Ｏｒａｃｌｅ  ＲＡＣは、従来のシェアド・ナッシング・アプローチおよびシェアド・ディスク・アプローチの制限事項を克服して、ビジネス用途で使用できるように高度に拡張可能かつ利用可能なデータベースソリューションを提供することができる。
【００１４】
本発明の一実施形態によれば、Ｏｒａｃｌｅ  Ｔｕｘｅｄｏシステムは、高性能分散型ビジネスアプリケーションの構築、実行および管理を可能にするソフトウェアモジュールのセットであり、トランザクションミドルウェアとして多くの複層アプリケーション開発ツールによって使用されてきた。Ｔｕｘｅｄｏは、分散コンピューティング環境において分散トランザクション処理を管理するために使用することができるミドルウェアプラットフォームである。Ｔｕｘｅｄｏは、無制限の拡張性および標準ベースの相互運用性を提供しながら、エンタープライズレガシーアプリケーションのロックを解除し、これらエンタープライズレガシーアプリケーションをサービス指向アーキテクチャに拡張するための有効なプラットフォームである。
【００１５】
ドメイン間メッセージ通信
本発明の一実施形態に従うと、トランザクションミドルウェアマシン環境は、ドメインゲートウェイサーバに基づいてドメイン間メッセージ通信をサポートすることができる。
【００１６】
ドメインゲートウェイサーバは、ローカルドメインをリモートドメインに接続し、インポートされたサービスをローカルドメインにアドバタイズし（advertising）、２つのドメイン間で要求／応答を転送するためのプロキシとして機能し、トランザクションのためのサブオーディネータとして機能する役割を果たすことができる。たとえば、Ｔｕｘｅｄｏにおけるドメインゲートウェイサーバ上に常駐するＧＷＴＤＯＭＡＩＮプロセスは、リモートドメインにおける他のＧＷＴＤＯＭＡＩＮプロセスと通信することができ、ドメイン間通信をサポートする。
【００１７】
図１は、本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてドメインゲートウェイを介してドメイン間メッセージ通信をサポートする例を示す。図１に示されるように、トランザクションミドルウェアマシン環境１００、たとえばＴｕｘｅｄｏシステムは、ドメインゲートウェイＡ１０３を備えたトランザクションドメインＡ１０１、およびドメインゲートウェイＢ１０４を備えたトランザクションドメインＢ１０２などの複数のドメインを含み得る。
【００１８】
さらに、トランザクションミドルウェアマシン環境１００におけるトランザクションドメインＡ１０１−Ｂ１０２は、たとえば共有メモリ１０５−１０６内のサービステーブル１０７−１０８にサービス関連情報を格納することができる。たとえば、Ｔｕｘｅｄｏシステムは、掲示板（bulletin board：ＢＢ）を利用することができる。掲示板（ＢＢ）は、さまざまなアプリケーションにおけるさまざまなプロセスに関連付けられた情報、たとえばＵＢＢＣＯＮＦＩＧファイルにおいて定義された情報ならびに他の統計情報および位置情報など、を格納するための共有メモリを用いる。
【００１９】
図１に示されるように、トランザクションドメインＡ１０１におけるクライアント１１１は、トランザクションドメインＢ１０２におけるターゲットサービス（たとえば、ＳＶＣ１２３）のホストとなるサーバ１２２のアドレスを取得するために共有メモリ１０５におけるサービステーブル１０７をチェックすることができる。次いで、クライアント１１１は、メッセージをドメインゲートウェイＡ１０３に送信することができ、当該ドメインゲートウェイＡ１０３は、たとえば、イーサネット（登録商標）ネットワーク１１０を介する伝送制御プロトコル（transmission control protocol：ＴＣＰ）プロトコルに基づいたネットワーク接続を介して、当該メッセージをリモートトランザクションドメインＢ１０２におけるドメインゲートウェイＢ１０４に転送する。
【００２０】
さらに、ドメインゲートウェイＢ１０４は、受信したメッセージをトランザクションドメインＢ１０２におけるターゲットサーバ１２２に送信することができる。これに応じて、ターゲットサービス（すなわちＳＶＣ１２３）のホストとなるターゲットサーバ１２２は、同じ経路を介してクライアント１１１に応答を送信することができる。
【００２１】
加えて、トランザクションドメインＢ１０２におけるクライアント１２１は、トランザクションドメインＡ１０１におけるターゲットサービス（たとえば、ＳＶＣ１１３）のホストとなるサーバ１１２のアドレスを取得するために、共有メモリ１０６におけるサービステーブル１０８をチェックすることができる。次いで、クライアント１２１は、ドメインゲートウェイＡ１０３およびドメインゲートウェイＢ１０４を介してターゲットサービスを呼出すことができる。
【００２２】
本発明の一実施形態に従うと、メッセージ通信システムは、たとえば、トランザクションミドルウェアマシン環境１００におけるさまざまなプロセス間通信（inter-process communication：ＩＰＣ）キューまたはリモートダイレクトメモリアクセス（remote direct memory access：ＲＤＭＡ）キューを介して、ドメイン間でメッセージを送信するために、ドメインゲートウェイＡ１０３およびドメインゲートウェイＢ１０４などのドメインゲートウェイサーバにおいてさまざまなパッキング動作およびアンパッキング動作を実行する必要があるかもしれない。
【００２３】
たとえば、Ｔｕｘｅｄｏにおいては、クライアント１１１は、リモートドメイン内のターゲットサーバ１２２へのアドレスを掲示板（ＢＢ）から取得した後、ＩＰＣキューを介してローカルのＧＷＴＤＯＭＡＩＮプロセスにメッセージを送信することができる。
【００２４】
次いで、ＧＷＴＤＯＭＡＩＮプロセスは、ＩＰＣメッセージをアンパックし、どのリモートゲートウェイ（すなわちリモートドメイン内の別のＧＷＴＤＯＭＡＩＮプロセス）に対してメッセージがルーティングされるべきであるかを決定することができる。さらに、ＧＷＴＤＯＭＡＩＮプロセスは、メッセージをネットワークメッセージとしてパックすることができ、当該ネットワークメッセージをリモートのＧＷＴＤＯＭＡＩＮサーバに送信することができる。
【００２５】
ネットワークメッセージを受信した後、ＧＷＴＤＯＭＡＩＮプロセスは、ネットワークメッセージをアンパックしてから、メッセージをＩＰＣメッセージにパックして、当該メッセージをローカルのＩＰＣキューを介してサーバに送信することができる。最後に、サーバ１２２はローカルのＩＰＣキューからメッセージを検索することができる。
【００２６】
このため、ドメインゲートウェイＡ１０３およびドメインゲートウェイＢ１０４などのドメインゲートウェイサーバは、高度な同時処理（concurrence）シナリオにおいて障害となる可能性がある。なぜなら、パッキング動作およびアンパッキング動作がメッセージ通信システムの性能に悪影響を及ぼすおそれがあるからである。
【００２７】
バイパスドメインモデル
本発明の一実施形態に従うと、トランザクションミドルウェアマシン環境は、バイパスドメインモデル（バイパス型ドメインモデルとしても知られている）に基づいてドメイン間メッセージ通信をサポートすることができる。
【００２８】
バイパスドメインモデルを用いると、インポートされたサービスが呼出されたとき、当該システムは、ゲートウェイドメインサーバ間でメッセージを転送する代わりに、リモートドメインに対して直接メッセージを送達するために、高性能および低レイテンシのネットワークプロトコルを利用することができる。
【００２９】
たとえば、Ｔｕｘｅｄｏにおいては、システムは、ＩＢネットワークを利用してメッセージを転送することによってＧＷＴＤＯＭＡＩＮプロセスをスキップすることができる。ＩＢネットワークは、ローカルクライアントがリモートノードにおけるメモリにデータを直接書込むことを許可するリモートデータアクセスをサポートすることができる。
【００３０】
図２は、本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてドメインゲートウェイをバイパスしてドメイン間メッセージ通信をサポートする例を示す。図２に示されるように、トランザクションミドルウェアマシン環境２００、たとえばＴｕｘｅｄｏ環境は、ドメインゲートウェイＡ２０３を備えたトランザクションドメインＡ２０１およびドメインゲートウェイＢ２０４を備えたトランザクションドメインＢ２０２などの複数のドメインを含み得る。
【００３１】
本発明の一実施形態に従うと、トランザクションドメインＡ２０１およびトランザクションドメインＢ２０２は、（たとえば、システムの起動中に）さまざまな情報をやり取りするためにグローバルリソース２３０を用いることができる。たとえば、Ｔｕｘｅｄｏシステムは、さまざまなドメインゲートウェイサーバ間での情報のやり取りを可能にするサーバを実現することができるか、または、ネットワークファイルシステム（network file system：ＮＦＳ）ファイルを用いて情報を共有することができる。これにより、Ｔｕｘｅｄｏドメインは、グローバルリソース２３０を介して間接的に接続されたドメインから、マシン識別子（machine identifier：ＭＩＤ）、グループ番号（group number：ＧＲＰＩＤ）およびトランザクション管理サーバ（transaction management server：ＴＭＳ）サービス情報などのさまざまなマシン情報およびトランザクション情報を取得することができる。
【００３２】
さらに、トランザクションミドルウェアマシン環境２００におけるトランザクションドメインＡ２０１−Ｂ２０２は、たとえば共有メモリ２０５−２０６に、さまざまなマシン関連およびサービス関連の情報を格納することができる。たとえば、Ｔｕｘｅｄｏシステムは、ローカルドメインおよびリモートドメインの両方についてのさまざまなマシン関連およびサービス関連の情報を格納するさまざまなテーブルを含み得る掲示板（ＢＢ）を利用することができる。これらのテーブルは、ノードテーブル、プロセス（process：ＰＥ）テーブル、サーバグループテーブル、サービステーブル、ルーティングテーブルおよびルーティングデータテーブルを含み得る（中でも、ノードテーブルおよびプロセス（ＰＥ）テーブルは複数のセクションに分割されていてもよく、すなわち単一のドメインに対して１つのセクションを備えていてもよい）。
【００３３】
バイパスドメインモデルを用いると、ゲートウェイドメインＡ２０３−Ｂ２０４は、インポートされたサービス関連の情報をローカルの共有メモリ２０５−２０６（たとえば、Ｔｕｘｅｄｏ  ＢＢ）におけるサービステーブル２０７−２０８に登録することができる。
【００３４】
これにより、クライアント２１１または２２２は、ローカルドメインゲートウェイ２０３−２０４によってインポートされるリモートサービス２２３または２１３についてのアドレスをローカルサービステーブル２０７−２０８から取得することができる。次いで、クライアント２１１または２２２は、リモートサービスを呼出すようにとの要求を送信することができる。ここで、リモートサービスの呼出しは、イーサネットネットワーク２１０を介するＴＣＰではなく、ＩＢネットワーク２２０を介するＲＤＭＡに基づいてなされてもよい。
【００３５】
たとえば、クライアント２１１は、ローカルの共有メモリ２０５内のサービステーブル２０７においてターゲットサービス（たとえば、ＳＶＣ２２３）のためのプロバイダを見付け出して、たとえばＲＤＭＡキューを介して、リモートサーバ２２１に直接メッセージを送信することができる。また、クライアント２２２は、ローカルの共有メモリ２０６内のサービステーブル２０８においてターゲットサービス（たとえば、ＳＶＣ２１３）のためのプロバイダを見付け出し、たとえばＲＤＭＡキューを介してリモートサーバ２１２に直接メッセージを送信することができる。
【００３６】
図３は、本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてドメイン間メッセージ通信をサポートする例を示す図である。図３に示されるように、トランザクションミドルウェアマシン環境３００（たとえばＴｕｘｅｄｏ環境）は、トランザクションドメインＡ３０１−Ｂ３０２などの複数のドメインを含み得る。
【００３７】
図３に示されるように、トランザクションドメインＡ３０１におけるドメインゲートウェイサーバであるＧＷＴＤＯＭＡＩＮ  Ａ３０３は、ローカルの掲示板（ＢＢ）Ａ３０５からサービス情報およびトランザクション情報をＮＦＳ共有ファイル３０７に書込むことができ、トランザクションドメインＢ３０２におけるドメインゲートウェイサーバであるＧＷＴＤＯＭＡＩＮ  Ｂ３０４は、ローカルのＢＢ  Ｂ３０６からサービス情報およびトランザクション情報をＮＦＳ共有ファイル３０８に書込むことができる。ＮＦＳ共有ファイル３０７およびＮＦＳ共有ファイル３０８は共に、トランザクションドメインＡ３０１およびトランザクションドメインＢ３０２によって共有することができる。
【００３８】
さらに、サービス情報およびトランザクション情報は、さまざまなサービス３１３−３１４および／またはトランザクション管理サーバ（ＴＭＳ）３１５−３１６に関連している可能性もある。Ｔｕｘｅｄｏにおいては、このような情報はマシン情報、グループ情報、ＴＭＳ情報を含み得る。
【００３９】
たとえば、リモートトランザクションドメインＢ３０４からサービス３１４をインポートするために、ＧＷＴＤＯＭＡＩＮ  Ａ３０３は、システム立ち上げ中および／または接続の確立後に、トランザクションドメインＢ３０４におけるＮＦＳファイル３０８から情報を読出すことができる。さらに、トランザクションドメインＡ３０１は、ローカルの掲示板（ＢＢ）Ａ３０５に、サービス３１４（たとえば、トランザクションドメインＢ３０２におけるＲＤＭＡＱアドレス）を登録することができる。
【００４０】
次いで、トランザクションドメインＡ３０１におけるクライアント３１１は、ローカルの掲示板（ＢＢ）Ａ３０５を調べて、（トランザクションドメインＢ３０２において）ターゲットサービス３１４を提供するリモートサーバを見付け出すことができる。トランザクションドメインＢ３０２におけるリモートサーバのアドレス情報を取得した後、クライアント３１１は、たとえば（ゲートウェイサーバＡ３０３−Ｂ３０４をバイパスして）インフィニバンド（ＩＢ）３２０ネットワーク上でリモートダイレクトメモリアクセス（ＲＤＭＡ）に基づいたネットワーク接続を介して、リモートサーバにメッセージを直接送信することによってターゲットサービス３１４を呼出すことができる。
【００４１】
同様に、クライアント３１２は、ゲートウェイサーバＡ３０３−Ｂ３０４をバイパスしてリモートサーバに直接メッセージを送信することによって、ターゲットサービス３１３を呼出すことができる。また、クライアント３１１または３１２は、トランザクションのコミッタおよび／またはコーディネータとして機能する場合、ローカルおよびリモートのＴＭＳ３１５−ＴＭＳ３１６を取得することができる。
【００４２】
加えて、クライアント３１１または３１２は、イーサネットネットワーク３１０を介するＴＣＰにより、ドメインゲートウェイＡ３０３−Ｂ３０４を用いて、リモートサーバにメッセージを送信することができる。
【００４３】
これにより、システムは、バイパスドメインモデルを利用することによってメッセージ通信システムのドメイン間メッセージ通信の性能を著しく向上させることができる。また、トランザクションは、従属関係のないドメインにわたって伝播させることができる。
【００４４】
図４は、本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてドメイン間メッセージ通信をサポートするための例示的なフローチャートである。図４に示されるように、ステップ４０１において、トランザクションドメインは、リモートトランザクションドメインから１つ以上のサービスをインポートすることができる。上記１つ以上のサービスは、トランザクションドメインに関連付けられたサービステーブルに登録されている。次いで、ステップ４０２において、トランザクションドメインにおけるクライアントは、サービステーブルから上記１つ以上のサービスを提供するリモートトランザクションドメインにおけるリモートサーバを見付け出すことができる。さらに、ステップ４０３において、クライアントは、上記１つ以上のサービスを呼出すためにリモートサーバに直接メッセージを送信することができる。
【００４５】
バイパスドメイングループ
本発明の一実施形態に従うと、バイパスドメイングループは、バイパスドメインモデルに基づいて、互いに、直接的または間接的に相互接続する１セットのドメインを含み得る。
【００４６】
図５は、本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてバイパスドメイングループをサポートする例を示す。図５に示されるように、トランザクションミドルウェアマシン環境５００、たとえばＴｕｘｅｄｏシステムは、ドメインゲートウェイＡ５２１−Ｃ５２３を備えたトランザクションドメインＡ５０１−Ｃ５０３などの複数のドメインを含むバイパスドメイングループ５２０を含み得る。
【００４７】
さらに、さまざまなトランザクションドメインＡ５０１−Ｃ５０３は、バイパスドメイングループ５２０内でグローバルリソース５１０における情報を共有することができる。
たとえば、Ｔｕｘｅｄｏシステムは、ローカルの掲示板（ＢＢ）５３１−５３３に格納されているマシン識別子（ＭＩＤ）、グループ番号（ＧＲＰＩＤ）、トランザクション管理サーバ（ＴＭＳ）およびルーティング（ＤＤＲ）情報を共有するためのネットワークファイルシステム（ＮＦＳ）を用いることができる。Ｔｕｘｅｄｏにおいては、各々のトランザクションドメインは、グローバルリソース５１０が提供されているネットワークファイルシステム（ＮＦＳ）ファイルを利用することができる。加えて、ＮＦＳファイルは、バイパスドメイングループ５２０におけるさまざまなドメインによってアクセス可能である。
【００４８】
本発明の一実施形態に従うと、バイパスドメイングループ５２０内の各々のドメインはドメイン識別子（ＩＤ）に関連付けることができる。たとえば、トランザクションドメインＡ５０１はドメインＩＤ５１１に関連付けることができ、トランザクションドメインＢ５０２はドメインＩＤ５１２に関連付けることができ、トランザクションドメインＣ５０３はドメインＩＤ５１３に関連付けることができる。
【００４９】
さらに、バイパスドメイングループ５２０内の各々のドメインは、各々の単一のドメイン内において固有である（ＭＩＤおよびＧＲＰＩＤなどの）１セットの識別子を利用することができる。しかしながら、これらの識別子は、サービス５４２−５４３が（サービス情報の一部として）ドメインにわたってインポートされた後にそれらの一意性を維持することができないかもしれない。
【００５０】
本発明の一実施形態に従うと、各々のドメインＩＤは、（ドメイングループ５２０内における特定のドメインを識別する固有の番号である、ＴｕｘｅｄｏにおけるＤＭＳＱＮＭなどの）ドメインシーケンス番号を含み得る（かまたは、ドメインシーケンス番号によって表わすことができる）。
【００５１】
たとえば、ドメインシーケンス番号を用いると、Ｔｕｘｅｄｏは、ＭＩＤの一部としてＤＭＳＱＮＭを用いたり、ＧＲＰＩＤをＤＭＳＱＮＭと組合せたりして、ＭＩＤを再構築することができる。これにより、Ｔｕｘｅｄｏシステムは、ドメイン間メッセージ通信において識別子（たとえば、ＭＩＤおよびＧＲＰＩＤ）の一意性を維持することができる。
【００５２】
本発明の一実施形態に従うと、システムは、トランザクションをサポートするための固有のドメインシーケンス番号のリストを伝播させることができる。
【００５３】
Ｔｕｘｅｄｏにおいては、システムは、ＧＲＰＩＤと共にＤＭＳＱＮＭのリストを伝播させ、グローバルトランザクションテーブルエントリ（global transaction table entry：ＧＴＴＥ）にＤＭＳＱＮＭを追加することができる。次いで、コミッタ（またはＴＭＳ＿ＭＡＮＡＧＥ）は、適切なＴＭＳを決定する（すなわち、トランザクションに含まれている複数のＴＭＳを識別する）ためにＤＭＳＱＮＭとＧＲＰＩＤとの組合せを用いることができる。
【００５４】
これにより、トランザクションのコミッタは、クライアント５４１がリモートサービス５４２を直接呼出したとき、トランザクションドメインＡ５０１−Ｃ５０３にわたってすべてのＴＭＳサービスを検知することができる。
【００５５】
また、ＧＷＴＤＯＭＡＩＮプロセスはトランザクション管理サーバ（ＴＭＳ）としてトランザクションに参加する必要がないかもしれない。また、ＧＷＴＤＯＭＡＩＮプロセスは、クライアント５４１によって呼出されたリモートサービス５４２が他のリモートサービス（たとえば、サービス５４３）を呼出すか否かを知る必要がないかもしれない。
【００５６】
サービス情報の更新
図６は、本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてドメイン間メッセージ通信をサポートするサービス情報を共有および更新する例を示す。図６に示されるように、トランザクションミドルウェアマシン環境６００（たとえば、Ｔｕｘｅｄｏシステム）は、トランザクションドメインＡ６１０およびトランザクションドメインＢ６２０などの複数のドメインを含み得る。
【００５７】
さらに、トランザクションドメインＢ６２０におけるドメインゲートウェイサーバであるＧＷＴＤＯＭＡＩＮ  Ｂ６２３は、マシン関連およびトランザクション関連の情報をローカルのＢＢ  Ｂ６２２から共有のＮＦＳファイル６３０にエクスポートすることができる。次いで、トランザクションドメインＡ６１０におけるドメインゲートウェイサーバであるＧＷＴＤＯＭＡＩＮ  Ａ６１３は、マシン関連およびトランザクション関連の情報を共有のＮＦＳファイル６３０からローカルのＢＢ  Ａ６１２にインポートすることができる。
【００５８】
たとえば、Ｔｕｘｅｄｏは、エクスポート動作とインポート動作とをそれぞれ実行するために時間刻みごとにスケジューリングされ得る２つの動作ＧＷＥＶ＿ＲＤＭＡ＿ＥＸＰＯＲＴＬＢＢおよびＧＷＥＶ＿ＲＤＭＡ＿ＩＭＰＯＲＴＲＢＢを実現することができる。
【００５９】
ＧＷＴＤＯＭＡＩＮ  Ｂ６２３は、トランザクションモニタインターフェイス（transaction monitor interface：ＡＴＭＩ）呼出しに対するアプリケーションを実行するために、他のドメインノードによって使用可能であるローカルのＭＩＤ、ＧＲＰＩＤおよびＴＭＳ情報をエクスポートするためのＧＷＥＶ＿ＲＤＭＡ＿ＥＸＰＯＥＴＬＢＢ動作を用いることができる。ＧＷＥＶ＿ＲＤＭＡ＿ＥＸＰＯＥＴＬＢＢ動作は、ローカルのＢＢ  Ｂ６２２に関連付けられたバージョンを最後に書込まれたＢＢバージョンと比較することができ、リソース、マシン、グループおよびＴＭＳサービスの情報を共有ファイル６３０に書込むことができる。
【００６０】
ＧＷＴＤＯＭＡＩＮ  Ａ６１３は、予め定義されたＮＦＳファイルに基づいて（すなわち、０からＭＡＸＤＯＭＡＩＮまでのシーケンス番号に対して）ドメイングループ内のすべてドメインからＭＩＤ、ＧＲＰＩＤおよびＴＭＳの情報をインポートするためにＧＷＥＶ＿ＲＤＭＡ＿ＩＭＰＯＲＴＲＢＢ動作を用いることができる。ＧＷＥＶ＿ＲＤＭＡ＿ＩＭＰＯＲＴＲＢＢ動作はまた、当該ドメインに間接的に接続されているドメインを有する共有のＮＦＳファイルから情報をインポートしてもよい。ＧＷＥＶ＿ＲＤＭＡ＿ＩＭＰＯＲＴＲＢＢ動作は、ローカルのＢＢ  Ａ６１２に関連付けられたバージョンを最後に書込まれたＢＢバージョンと比較することができ、さらに、共有ファイル６３０からリソース、マシン、グループおよびＴＭＳサービスの情報を読出す。
【００６１】
図６に示されるように、システムは、（ＧＷＴＤＯＭＡＩＮ  Ａ６１３およびＧＷＴＤＯＭＡＩＮ  Ｂ６２３などの）さまざまなドメインゲートウェイサーバに基づいてリモートサービス６２１内の変更に対処することができる。
【００６２】
ステップ６０１において、システムはサービス６２１が変化した後にＢＢ  Ｂ６２２を更新することができる。
【００６３】
ステップ６０２において、ＧＷＴＤＯＭＡＩＮ  Ｂ６２３は、ＢＢ  Ｂ６２２に関連付けられたバージョンをチェックすることができる。たとえば、Ｔｕｘｅｄｏは、スケジューリングされた時間刻みに基づいて定期的にｇｗ＿ｒｄｍａ＿ｃｈｅｃｋ＿ＢＢ＿ｃｈａｎｇｅ（）ファンクション呼出し（call）を呼出す（invoke）ことができる。このファンクションは、ドメイングループにおけるすべてのドメイン（すなわち０からＭＡＸＤＯＭＡＩＮ）内をループすることができ、共有ファイル６３０に関連付けられたバージョンを比較する。
【００６４】
ステップ６０３において、ＢＢ  Ｂ６２２においていずれかのサービスが変更されていた場合、ＧＷＴＤＯＭＡＩＮ  Ｂ６２３は、たとえばＧＷＥＶ＿ＮＷ＿ＢＢＣＨＧ＿ＮＯＴＩＦＹメッセージを接続されたすべてのゲートウェイに送信することによって、接続されているすべてのドメインに通知し得る。
【００６５】
ステップ６０４において、ドメインＡ６１０におけるドメインゲートウェイサーバ、たとえばＧＷＴＤＯＭＡＩＮ  Ａ６１３がリモートドメインＢ６２０から通知メッセージを受信すると、ドメインゲートウェイサーバは、たとえばＧＷＥＶ＿ＮＷ＿ＢＢＣＨＧ＿ＮＯＴＩＦＹメッセージにおけるＢＢバージョンをローカルのＢＢ  Ａ６１２のバージョンと比較することによって、リモートドメインＢ６２０からインポートされるべきサービスのリストを決定することができる。
【００６６】
ステップ６０５において、ＧＷＴＤＯＭＡＩＮ  Ａ６１３は、リモートドメインＢ６２０からインポートされるべきサービスについての問合せメッセージ（たとえば、ＧＷＥＶ＿ＮＷ＿ＩＮＱＲＤＯＭＤＡＴＡメッセージ）をＧＷＴＤＯＭＡＩＮ  Ｂ６２３に送信することができる。
【００６７】
ステップ６０６において、ＧＷＴＤＯＭＡＩＮ  Ｂ６２３がＧＷＥＶ＿ＮＷ＿ＩＮＱＲＤＯＭＤＡＴＡメッセージを受信すると、ＧＷＴＤＯＭＡＩＮ  Ｂ６２３はデータパッケージからサービス名を検索して、（ＲＤＭＡＱアドレスなどの）さまざまなマシン情報およびサービス情報を求めてローカルのＢＢ  Ｂ６２２を探索することができる。
【００６８】
ステップ６０７において、ＧＷＴＤＯＭＡＩＮ  Ｂ６２３は、応答（たとえば、ＧＷＥＶ＿ＮＷ＿ＩＮＱＲＤＯＭＤＡＴＡ＿ＲＰＬＹメッセージ）をＧＷＴＤＯＭＡＩＮ  Ａ６１３に送り返して、次の予定時刻まで待つことができる。
【００６９】
ステップ６０８において、ドメインＡ６１０におけるクライアント６１１は、ローカルのＢＢ  Ａ６１２をチェックすることができ、さらに、ターゲットサービス６２１についてのＲＤＭＡＱアドレスを取得する。
【００７０】
ステップ６０９において、クライアント６１１は、リモートドメインにおいてターゲットサービス６２１を直接呼出すことができる。
【００７１】
本発明の一実施形態に従うと、システムは、ターゲットサービスをインポート（またはエクスポート）する際に、ターゲットサービスに関連付けられたメッセージキューについてのＲＤＭＡアドレスを取得する（かまたは提供する）ためにさまざまな戦略を用いることができる。
【００７２】
システムは、ドメイン間のデータ依存型ルーティング（data-dependent routing：ＤＤＲ）をサポートすることができる。バイパスドメインモデルを用いると、クライアントは、ローカルのＤＤＲに従って（直接的または間接的に接続された）適切なリモートサービスを選択することができる。なぜなら、ドメインゲートウェイサーバが構成ファイルにおいて定義されるようにＤＤＲ設定を実現することができるからである。たとえば、ドメインゲートウェイサーバは、ＤＤＲ設定を構成ファイル（たとえば、Ｔｕｘｅｄｏ  ｄｍｃｏｎｆｉｇファイル）から、ローカルのＤＤＲ設定についての情報を維持しているローカルのＢＢに変換することができる。これにより、リモートサービス呼出し（たとえば、Ｔｕｘｅｄｏ  ｔｐｃａｌｌ）は、ローカルの呼出しと同様のやり方で、リモートサービスを選択するためにローカルのＢＢを用いることができる。
【００７３】
また、システムはアクセスコントロール（access control：ＡＣＬ）情報をやり取りすることができる。たとえば、ドメインゲートウェイサーバが、たとえばサービスをインポートするリモートドメインに対してＲＤＭＡＱアドレスを公開する（exposing）ことによって、サービスをエクスポートすると、このドメインゲートウェイサーバは、構成設定に従ってキーを生成することができ、さらに、リモートドメインに対してキーを提供する。次いで、リモートドメイン内のクライアントは、受取ったキーを用いて、リモートサービスを呼出す、たとえばｔｐｃａｌｌを構成する、ことができる。
【００７４】
さらに、システムはサービスのフェイルオーバーをサポートすることができる。ドメインゲートウェイサーバは、ローカルのＢＢにリモートサービスＲＤＭＡＱアドレスをインポートすることで利用できなくなる可能性のある（フェイルオーバー数などの）フェイルオーバー情報をチェックすることによって、リモートドメインにサービス要求をルーティングすることができる。
【００７５】
たとえば、ドメインゲートウェイサーバがリモートサービスをインポートすると、このドメインゲートウェイサーバはインポートされたサービスについてのフェイルオーバー数をチェックする。同じ（または同様の）サービスが存在しているのであれば、システムはインポートされたサービスをフェイルオーバーサービスとして処理することができ、この場合、ドメインゲートウェイサーバは、インポートされたサービスの状態を「ＳＵＳＰＥＮＤＥＤ」に変更してもよく、さらに、適切な負荷を設定する。
【００７６】
また、ドメインゲートウェイサーバがリモートサービスを削除すると、ドメインゲートウェイサーバは、リモートドメインがフェイルオーバーリンクの（上部）において削除されるべきサービスのプロバイダであるかどうかをチェックし、最小のフェイルオーバー数を有する残りのサービスを再開させる。
【００７７】
さらに、システムは、インポートされたサービスをリモートドメインから削除することができる。たとえば、ＧＷＴＤＯＭＡＩＮ  Ａ６１３は、シャットダウン時に、インポートされたサービスをローカルのＢＢ  Ａから削除することができる。
【００７８】
加えて、リモートドメインへの接続が（ネットワークに問題があるせいで、または、リモートドメインゲートウェイがシャットダウンされているために）ダウンしている場合、システムは、リモートドメインに関連するすべてのサービスを削除することができる。さらに、システムは、リモートドメインがフェイルオーバーリンク（の上部）におけるいくつかのサービスのプロバイダであるかどうかをチェックして、最小のフェイルオーバー数を有する残りのサービスを再開させることができる。
【００７９】
図７は、本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてドメイン間メッセージ通信をサポートするサービス情報を共有および更新するための例示的なフローチャートである。図７に示されるように、ステップ７０１において、トランザクションドメインにおけるゲートウェイサーバは、１つ以上のサービスにおける更新を１つ以上のリモートトランザクションドメインにおける１つ以上のゲートウェイサーバに対して通知することができる。次いで、ステップ７０２において、ゲートウェイサーバは、上記１つ以上のサービスについての問い合わせをリモートトランザクションドメインから受信することができる。さらに、ステップ７０３において、ゲートウェイサーバはリモートトランザクションドメインにおけるゲートウェイサーバに対して応答を送信することができる。当該応答は、上記リモートトランザクションドメインにおけるクライアントが上記１つ以上のサービスを呼出すことを可能にする情報を含んでいる。
【００８０】
プロキシモデル
図８は、本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてプロキシモデルを提供する例を示す。図８に示されるように、トランザクションミドルウェアマシン環境８００（たとえばＴｕｘｅｄｏ環境）は、ドメインゲートウェイＡ８１１−Ｃ８１３および掲示板（ＢＢ）８２１−８２３をそれぞれ備えたトランザクションドメインＡ８０１−Ｃ８０３などの複数のドメインを含み得る。
【００８１】
さらに、さまざまなドメインＡ８０１−Ｃ８０３は、グローバルリソース８１０内で情報を共有することができる。たとえば、Ｔｕｘｅｄｏシステムは、ＭＩＤ、ＧＲＰＩＤ、ＴＭＳ、ルーティングの情報を共有するためのネットワークファイルシステム（ＮＦＳ）を用いることができる。
【００８２】
図８に示されるように、トランザクションドメインＢ８０２はさまざまなサービスをさまざまなリモートドメインにエクスポートすることができる。たとえば、トランザクションドメインＢ８０２はサービス８２３をトランザクションドメインＡ８０１にエクスポートすることができる。また、トランザクションドメインＢ８０２は、別のリモートトランザクションドメインＣ８０３からインポートされたサービス８３３を（プロキシモデルを用いて）トランザクションドメインＡ８０１にエクスポートすることができる。
【００８３】
本発明の一実施形態に従うと、クライアント８３１は、ローカルの呼出しと同様に、リモートサービス８３２を選択するためにローカルのＢＢ８２１を用いることができる。クライアント８３１は、ドメイン間で１つ以上のメッセージをルーティングするためにデータ依存型ルーティング（ＤＤＲ）手順を用いることができる。ＤＤＲ手順は、ローカルのＢＢ８２１に格納された（構成ファイルから変換された）ＤＤＲ設定８１４に基づき得る。
【００８４】
代替的には、クライアント８３１はＤＤＲ設定８１４に従ってリモートサービス８３３を選択してもよい。プロキシモデルを用いると、トランザクションドメインＢ８０２はサービス８３３をエクスポートすることができる。トランザクションドメインＢ８０２は、サービス８３３についての最終的なＲＤＭＡＱアドレスを公開するのではなく、リモートトランザクションドメインＣ８０３からサービスをインポートしたドメインゲートウェイＢ８１２についてのＲＤＭＡＱアドレスを公開してもよい。
【００８５】
次に、クライアント８３１がサービス８３３を呼出すと、当該要求（たとえば、ｔｐｃａｌｌ）はドメインゲートウェイＢ８１２に向けられてもよく、ローカルのＢＢ８２２に格納されたＤＤＲ設定８２４に従ってリモートサービス８３３にルーティングすることができる（ワン・サイド・バイパスドメイン（one-side-bypass-domain）とも称される）。
【００８６】
図９は、本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてプロキシモデルを用いてドメイン間メッセージ通信をサポートする例を示す。図９に示されるように、トランザクションミドルウェアマシン環境９００（たとえばＴｕｘｅｄｏ環境）は、トランザクションドメインＡ９２１−Ｃ９２３などの複数のドメインを含み得る。
【００８７】
たとえば、トランザクションドメインＢ９２２におけるＧＷＴＤＯＭＡＩＮ  Ｂ２  ９２８はトランザクションドメインＣ９２３においてサービス９３０をＧＷＴＤＯＭＡＩＮ  Ｃ９２９からインポートすることができる。さらに、トランザクションドメインＢ９２２におけるＧＷＴＤＯＭＡＩＮ  Ｂ１  ９２６は、トランザクションドメインＡ９２１においてサービス９３０をＧＷＴＤＯＭＡＩＮ  Ａ９２５にエクスポートすることができる。
【００８８】
ステップ９０１において、トランザクションドメインＣ９２３におけるＧＷＴＤＯＭＡＩＮ  Ｃ９２９が、サービス９３０に関連付けられた変更を検出し得る。
【００８９】
ステップ９０２において、ＧＷＴＤＯＭＡＩＮ  Ｃ９２９は、トランザクションドメインＢ９２２におけるＧＷＴＤＯＭＡＩＮ  Ｂ２  ９２８に対して、サービス９３０の変更について通知することができる。次いで、ステップ９０３において、ＧＷＴＤＯＭＡＩＮ  Ｂ２  ９２８は、（サービス９３０を含む）サービスのリストについての問合せメッセージをＧＷＴＤＯＭＡＩＮ  Ｃ９２９に送信することができる。さらに、ステップ９０４において、ＧＷＴＤＯＭＡＩＮ  Ｃ９２９は、応答時にサービス９３０の変更をＧＷＴＤＯＭＡＩＮ  Ｂ２  ９２８に提供することができる。
【００９０】
ステップ９０５において、ＧＷＴＤＯＭＡＩＮ  Ｂ２  ９２８は、サービス９３０についての更新済み情報を用いてローカルのＢＢ９２７を更新する。ステップ９０６において、ＧＷＴＤＯＭＡＩＮ  Ｂ１  ９２６はローカルのＢＢ９２７を定期的にチェックすることができる。
【００９１】
ステップ９０７において、ＧＷＴＤＯＭＡＩＮ  Ｂ１  ９２６は、トランザクションドメインＡ９２１におけるＧＷＴＤＯＭＡＩＮ  Ａ９２５に対してサービス９３０の更新について通知することができる。次いで、ステップ９０８において、ＧＷＴＤＯＭＡＩＮ  Ａ９２５は、（サービス９３０を含む）サービスのリストについての問合せメッセージをＧＷＴＤＯＭＡＩＮ  Ｂ１  ９２６に送信することができる。
【００９２】
さらに、ステップ９０９において、ＧＷＴＤＯＭＡＩＮ  Ｂ１  ９２６は、応答時にサービス９３０における更新をＧＷＴＤＯＭＡＩＮ  Ａ９２５に提供することができる。たとえば、ＧＷＴＤＯＭＡＩＮ  Ｂ１  ９２６は、リモートトランザクションドメインＣ９２３からサービス９３０をインポートするＧＷＴＤＯＭＡＩＮ  Ｂ２  ９２８に関連付けられたメッセージキューについてのアドレスを、トランザクションドメインＡ９２１におけるＧＷＴＤＯＭＡＩＮ  Ａ９２５に公開することができる。
【００９３】
ステップ９１０において、クライアント９２４は、ＧＷＴＤＯＭＡＩＮ  Ｂ２  ９２８に関連付けられたメッセージキューについてのアドレスを取得し、サービス９３０を呼出すようにとの要求をＧＷＴＤＯＭＡＩＮ  Ｂ２  ９２８に送信することができる。
【００９４】
これにより、ステップ９１１において、ＧＷＴＤＯＭＡＩＮ  Ｂ２  ９２８は、トランザクションドメインＣ９２３におけるサービス９３０に対して要求をルーティングすることができる。
【００９５】
図１０は、本発明の一実施形態に従った、トランザクションミドルウェアマシン環境においてプロキシモデルを用いてドメイン間メッセージ通信をサポートするための例示的なフローチャートを示す。図１０に示されるように、ステップ１００１において、第１のトランザクションドメインは、第３のトランザクションドメインからインポートされた１つ以上のサービスを第２のトランザクションドメインにエクスポートすることができる。次いで、ステップ１００２において、トランザクションドメインにおける第１のゲートウェイサーバは、第３のトランザクションドメインにおける上記１つ以上のサービスを呼出すようにとの要求を第２のトランザクションドメインにおけるクライアントから受信することができる。さらに、ステップ１００３において、第１のゲートウェイサーバは、上記１つ以上のサービスを提供する第３のトランザクションドメインにおけるサーバに対して上記要求をルーティングすることができる。
【００９６】
図１１は、本発明の一実施形態に従った、トランザクションミドルウェアマシン環境におけるトランザクションドメイン内のクライアントの例示的なブロック図を示す。トランザクションドメインはリモートトランザクションドメインから１つ以上のサービスをインポートするように動作する。上記１つ以上のサービスはトランザクションドメインに関連付けられたサービステーブルに登録されている。
【００９７】
図１１に示されるように、例示的なクライアント１１００は見付け出し（finding）ユニット１１１０および第１の送信ユニット１１２０を含み得る。見付け出しユニット１１１０は、上記１つ以上のサービスを提供するリモートトランザクションドメインにおけるリモートサーバをサービステーブルから見付け出すように構成されてもよい。第１の送信ユニット１１２０は、上記１つ以上のサービスを呼出すようにとのメッセージを直接リモートサーバに送信するように構成されてもよい。
【００９８】
一実施形態においては、トランザクションドメインおよびリモートトランザクションドメインはドメイングループにあり、ドメイングループにおける各々のドメインは一意識別子（unique identifier：ＩＤ）に関連付けられている。
【００９９】
一実施形態においては、トランザクションドメインおよびリモートトランザクションドメインは、マシン関連およびトランザクション関連の情報を含むグローバルリソースを共有する。
【０１００】
一実施形態においては、グローバルリソースは、共有ファイルおよびサーバのうち少なくとも１つを用いてサポートされる。
【０１０１】
一実施形態においては、トランザクションドメインは、ドメインゲートウェイサーバを用いて、マシン関連およびトランザクション関連の情報を含むグローバルリソースをインポートするように動作する。
【０１０２】
一実施形態においては、ドメインゲートウェイサーバは、インポートされたマシン関連およびトランザクション関連の情報をローカルの共有メモリに格納するように動作する。
【０１０３】
一実施形態においては、例示的なクライアント１１００はさらに第１の取得ユニット１１３０を含み得る。第１の取得ユニット１１３０は、トランザクションに含まれるトランザクションドメインおよびリモートトランザクションドメインの両方において１つ以上のトランザクション管理サーバを取得するように構成され得る。
【０１０４】
一実施形態においては、例示的なクライアント１１００はさらに第２の送信ユニット１１４０を含み得る。第２の送信ユニット１１４０は、トランザクションドメインに常駐する１つ以上のゲートウェイサーバを介してリモートサーバに別のメッセージを送信するように構成され得る。
【０１０５】
一実施形態においては、例示的なクライアント１１００はさらに第２の取得ユニット１１５０を含み得る。第２の取得ユニット１１５０は、リモートサーバに関連付けられたメッセージキューについてのアドレスを取得するように構成され得る。メッセージキューはリモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルに基づいている。
【０１０６】
図１２は、本発明の一実施形態に従った、トランザクションミドルウェアマシン環境におけるトランザクションドメイン内のゲートウェイサーバの例示的なブロック図を示す。
【０１０７】
図１２に示されるように、例示的なゲートウェイサーバ１２００は第１の提供ユニット１２１０、受信ユニット１２２０および送信ユニット１２３０を含み得る。第１の提供ユニット１２１０は、１つ以上のリモートトランザクションドメインにおける１つ以上のゲートウェイサーバに対して１つ以上のサービスにおける更新の通知を提供するように構成され得る。受信ユニット１２２０は、リモートトランザクションドメインから上記１つ以上のサービスについての問合せを受信するように構成され得る。送信ユニット１２３０は、リモートトランザクションドメインにおけるゲートウェイサーバに応答を送信するように構成され得る。上記応答は、上記リモートトランザクションドメインにおけるクライアントが上記１つ以上のサービスを呼出すことを可能にする情報を含む。
【０１０８】
一実施形態においては、トランザクションドメインおよびリモートトランザクションドメインはドメイングループにあり、ドメイングループにおける各々のドメインは一意識別子（ＩＤ）に関連付けられている。
【０１０９】
一実施形態においては、トランザクションドメインおよびリモートトランザクションドメインは、マシン関連およびトランザクション関連の情報を含むグローバルリソースを共有する。
【０１１０】
一実施形態においては、上記ドメインＩＤは、ドメイングループにおいて固有のマシン関連およびトランザクション関連の情報を維持するのに用いられるドメインシーケンス番号である。
【０１１１】
一実施形態においては、例示的なゲートウェイサーバ１２００はさらに伝播ユニット１２４０を含み得る。伝播ユニット１２４０は、トランザクションをサポートするためにドメイングループにおいてドメインシーケンス番号のリストを伝播させるように構成され得る。
【０１１２】
一実施形態においては、例示的なゲートウェイサーバ１２００はさらに第２の提供ユニット１２５０を含み得る。第２の提供ユニット１２５０は、リモートトランザクションドメインにおけるゲートウェイサーバに対してアクセスコントロール（ＡＣＬ）情報を提供するように構成され得る。
【０１１３】
一実施形態においては、ゲートウェイサーバは、リモートトランザクションドメインがフェイルオーバーをサポートすることを可能にする。
【０１１４】
一実施形態においては、例示的なゲートウェイサーバ１２００はさらにチェックユニット１２６０を含み得る。チェックユニット１２６０は、上記１つ以上のサービスにおいて更新がなされたかどうかローカルの掲示板をチェックするように構成され得る。
【０１１５】
一実施形態においては、例示的なゲートウェイサーバ１２００はさらに、上記リモートトランザクションドメインにおけるクライアントが上記１つ以上のサービスを呼出すことを可能にする情報を求めてローカルの掲示板内を探索するように構成され得る探索ユニット１２７０と、上記１つ以上のサービスに関連付けられたメッセージキューについてのアドレスを公開するように構成され得る公開ユニット（exposing unit）１２８０とを含み得る。
【０１１６】
図１３は、本発明の一実施形態に従った、トランザクションミドルウェアマシン環境における第１のトランザクションドメイン内の第１のゲートウェイサーバの例示的なブロック図を示す。第１のトランザクションドメインは、第３のトランザクションドメインからインポートされた１つ以上のサービスを第２のトランザクションドメインに対してエクスポートするように動作する。
【０１１７】
図１４は、本発明の一実施形態に従った、トランザクションミドルウェアマシン環境における第１のトランザクションドメイン内の第２のゲートウェイサーバの例示的なブロック図を示す。
【０１１８】
図１３に示されるように、例示的な第１のゲートウェイサーバ１３００は第１の受信ユニット１３１０およびルーティングユニット１３２０を含み得る。第１の受信ユニット１３１０は、第３のトランザクションドメインにおける上記１つ以上のサービスを呼出すようにとの要求を第２のトランザクションドメインにおけるクライアントから受信するように構成され得る。ルーティングユニット１３２０は、当該要求を、上記１つ以上のサービスを提供する第３のトランザクションドメインにおけるサーバにルーティングするように構成され得る。
【０１１９】
一実施形態においては、第１のトランザクションドメインならびに第２および第３のトランザクションドメインはドメイングループにあり、ドメイングループにおける各々のドメインは一意識別子（ＩＤ）に関連付けられている。
【０１２０】
一実施形態においては、第１のトランザクションドメインならびに第２および第３のトランザクションドメインは、マシン関連およびトランザクション関連の情報を含むグローバルリソースを共有している。
【０１２１】
一実施形態においては、例示的な第１のゲートウェイサーバ１３００はさらに第２の受信ユニット１３３０を含み得る。第２の受信ユニット１３３０は、上記１つ以上のサービスにおける更新についての通知を第３のトランザクションドメインから受信するように構成され得る。
【０１２２】
一実施形態においては、例示的な第１のゲートウェイサーバ１３００はさらに更新ユニット１３４０を含み得る。更新ユニット１３４０は、第３のトランザクションドメインからインポートされる上記１つ以上のサービスの更新のために、第１のトランザクションドメインにおけるローカルの掲示板を更新するように構成され得る。
【０１２３】
一実施形態においては、第１のトランザクションドメインはさらに第２のゲートウェイサーバ１４００を含む。第２のゲートウェイサーバ１４００はチェックユニット１４１０を含み得る。チェックユニット１４１０は、第３のトランザクションドメインからインポートされる上記１つ以上のサービスにおいて更新がなされているかどうか、ローカルの掲示板内をチェックするように構成され得る。
【０１２４】
一実施形態においては、第２のゲートウェイサーバ１４００はさらに公開ユニット１４２０を含み得る。公開ユニット１４２０は、第１のトランザクションドメインにおける第１のゲートウェイサーバに関連付けられているメッセージキューについてのアドレスを第２のトランザクションドメインに対して公開するように構成され得る。
【０１２５】
一実施形態においては、要求のルーティングは、第１のトランザクションドメイン内のローカルの掲示板におけるデータ依存型ルーティング設定に基づいている。
【０１２６】
一実施形態においては、第２のトランザクションドメインはクライアントを含む。クライアントは、第１のゲートウェイサーバに関連付けられたメッセージキューについてのアドレスを取得するように構成され得る取得ユニットと、第３のトランザクションドメインにおける上記１つ以上のサービスを呼出すようにとの要求を第１のゲートウェイサーバに送信するように構成され得る送信ユニットとを含む。
【０１２７】
図１１〜図１４において記載されたユニットは、本発明の原理を実行するために、（フィールドプログラマブルゲートアレイ（field programmable gate array：ＦＰＧＡ）、集積回路（integrated circuit：ＩＣ）、または特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）などの）ハードウェア、ソフトウェア、ファームウェアまたはそれらのいずれかの組合せによって実現されてもよい。図１１〜図１４に記載されるユニットが上述のとおり本発明の原理を実現するためにサブユニットに組合わされ得るかまたはサブユニットに分離され得ることが当業者によって理解される。したがって、図１１〜図１４に記載されるユニットは、実際のニーズに従った上述の実施形態に記載されるように本発明の原理に従ってさまざまな動作を実行することができる。
【０１２８】
本発明に従ったいくつかの例示的な実施形態は以下のとおりであり得る。
（１）トランザクションミドルウェアマシン環境においてドメイン間メッセージ通信をサポートするためのシステムであって、リモートトランザクションドメインから１つ以上のサービスをインポートするように動作するトランザクションドメインを含む。上記１つ以上のサービスは、トランザクションドメインに関連付けられたサービステーブルに登録されている。トランザクションドメインはクライアントを含む。当該クライアントは、上記１つ以上のサービスを提供するリモートトランザクションドメインにおけるリモートサーバをサービステーブルから見付け出し、上記１つ以上のサービスを呼出すようにとのメッセージをリモートサーバに直接送信するように動作する。
【０１２９】
（２）トランザクションミドルウェアマシン環境においてメッセージ通信をサポートするためのシステムは、ゲートウェイサーバを含むトランザクションドメインを備える。ゲートウェイサーバは、１つ以上のリモートトランザクションドメインにおける１つ以上のゲートウェイサーバに対して１つ以上のサービスにおける更新の通知を提供し、リモートトランザクションドメインから上記１つ以上のサービスについての問合せを受信し、リモートトランザクションドメインにおけるゲートウェイサーバに応答を送信するように動作する。上記応答は、上記リモートトランザクションドメインにおけるクライアントが上記１つ以上のサービスを呼出すことを可能にする情報を含む。
【０１３０】
（３）トランザクションミドルウェアマシン環境においてメッセージ通信をサポートするためのシステムであって、第２のトランザクションドメインに１つ以上のサービスをエクスポートするように動作する第１のトランザクションドメインを含む。上記１つ以上のサービスは第３のトランザクションドメインからインポートされる。第１のトランザクションドメインは第１のゲートウェイサーバを含む。第１のゲートウェイサーバは、第３のトランザクションドメインにおける上記１つ以上のサービスを呼出すようにとの要求を第２のトランザクションドメインにおけるクライアントから受信し、当該要求を、上記１つ以上のサービスを提供する第３のトランザクションドメインにおけるサーバにルーティングするように動作する。本発明の一実施形態に従うと、トランザクションミドルウェアマシン環境においてメッセージ通信をサポートするための方法であって、トランザクションドメインにおけるゲートウェイサーバにより、１つ以上のリモートトランザクションドメインにおける１つ以上のゲートウェイサーバに対して１つ以上のサービスにおける更新の通知を提供するステップと、ゲートウェイサーバにより、リモートトランザクションドメインから上記１つ以上のサービスについての問合せを受信するステップと、ゲートウェイサーバにより、リモートトランザクションドメインにおけるゲートウェイサーバに対して応答を送信するステップとを含む。上記応答は、上記リモートトランザクションドメインにおけるクライアントが上記１つ以上のサービスを呼出すことを可能にする情報を含む。
【０１３１】
本発明の一実施形態に従うと、当該方法はさらに、トランザクションドメインおよびリモートトランザクションドメインがドメイングループにあることを可能にするステップを含む。ドメイングループにおける各々のドメインは一意ドメイン識別子（ＩＤ）に関連付けられている。
【０１３２】
本発明の一実施形態に従うと、当該方法はさらに、トランザクションドメインおよびリモートトランザクションドメインにより、ドメイングループにおけるさまざまなトランザクションドメインについてのマシン関連およびトランザクション関連の情報を含むグローバルリソースを共有するステップを含む。
【０１３３】
本発明の一実施形態においては、当該方法はさらに、上記ドメインＩＤが、ドメイングループにおいて固有のマシン関連およびトランザクション関連の情報を維持するのに用いられるドメインシーケンス番号となることを可能にするステップを含む。
【０１３４】
本発明の一実施形態においては、当該方法はさらに、トランザクションをサポートするためにドメイングループにおいてドメインシーケンス番号のリストを伝播させるステップを含む。
【０１３５】
本発明の一実施形態においては、当該方法はさらに、アクセスコントロール（ＡＣＬ）情報をリモートトランザクションドメインにおけるゲートウェイサーバに提供するステップを含む。
【０１３６】
本発明の一実施形態においては、当該方法はさらに、リモートトランザクションドメインがフェイルオーバーをサポートすることを可能にするステップを含む。
【０１３７】
本発明の一実施形態においては、当該方法はさらに、ゲートウェイサーバにより、上記１つ以上のサービスにおいて更新がなされたかどうか、ローカルの掲示板をチェックするステップを含む。
【０１３８】
本発明の一実施形態においては、請求項８に記載の方法はさらに、ゲートウェイサーバにより、上記リモートトランザクションドメインにおけるクライアントが上記１つ以上のサービスを呼出すことを可能にする情報を求めて、ローカルの掲示板内を探索するステップを含む。
【０１３９】
本発明の一実施形態においては、当該方法はさらに、ゲートウェイサーバにより、上記１つ以上のサービスに関連付けられたメッセージキューについてのアドレスを公開するステップを含む。
【０１４０】
本発明の一実施形態においては、命令が格納された非一時的な機械読取可能な記憶媒体であって、当該命令は、実行されると、システムに、上記方法のうちいずれかの方法のステップを実行させる。
【０１４１】
本発明の一実施形態においては、トランザクションミドルウェアマシン環境においてメッセージ通信をサポートするためのシステムであって、１つ以上のマイクロプロセッサと、１つ以上のマイクロプロセッサ上で実行される、トランザクションドメインにおけるゲートウェイサーバとを含む。ゲートウェイサーバは、１つ以上のリモートトランザクションドメインにおける１つ以上のゲートウェイサーバに対して１つ以上のサービスにおける更新の通知を提供し、上記１つ以上のサービスについての問合せをリモートトランザクションドメインから受信し、リモートトランザクションドメインにおけるゲートウェイサーバに応答を送信するように動作する。上記応答は、上記リモートトランザクションドメインにおけるクライアントが上記１つ以上のサービスを呼出すことを可能にする情報を含む。
【０１４２】
本発明の一実施形態においては、システムにおいて、トランザクションドメインおよびリモートトランザクションドメインはドメイングループにある。ドメイングループにおける各々のドメインは一意識別子（ＩＤ）に関連付けられている。
【０１４３】
本発明の一実施形態においては、当該システムにおいて、トランザクションドメインおよびリモートトランザクションドメインは、マシン関連およびトランザクション関連の情報を含むグローバルリソースを共有する。
【０１４４】
本発明の一実施形態においては、当該システムにおいて、上記ドメインＩＤは、ドメイングループに固有のマシン関連およびトランザクション関連の情報を保持するために用いられるドメインシーケンス番号である。
【０１４５】
本発明の一実施形態においては、当該システムにおいて、ゲートウェイサーバは、トランザクションをサポートするためにドメイングループにおけるドメインシーケンス番号のリストを伝播させるように動作する。
【０１４６】
本発明の一実施形態においては、当該システムにおいて、トランザクションドメインにおけるゲートウェイサーバは、アクセスコントロール（ＡＣＬ）情報をリモートトランザクションドメインにおけるゲートウェイサーバに提供するように動作する。
【０１４７】
本発明の一実施形態においては、当該システムにおいて、トランザクションドメインにおけるゲートウェイサーバは、リモートトランザクションドメインがフェイルオーバーをサポートすることを可能にする。
【０１４８】
本発明の一実施形態においては、当該システムにおいて、ゲートウェイサーバは、上記１つ以上のサービスにおいて更新があるかどうかについてローカルの掲示板をチェックするように動作する。
【０１４９】
本発明の一実施形態においては、当該システムにおいて、ゲートウェイサーバは、上記リモートトランザクションドメインにおけるクライアントが上記１つ以上のサービスを呼出すことを可能にする情報を求めてローカルの掲示板内を探索し、上記１つ以上のサービスに関連付けられたメッセージキューについてのアドレスを公開するように動作する。
【０１５０】
本発明の一実施形態においては、トランザクションドメインにおけるゲートウェイサーバは、１つ以上のリモートトランザクションドメインにおける１つ以上のゲートウェイサーバに対して１つ以上のサービスにおける更新の通知を提供するように構成された第１の提供ユニットと、上記１つ以上のサービスについての問合せをリモートトランザクションドメインから受信するように構成された受信ユニットと、リモートトランザクションドメインにおけるゲートウェイサーバに応答を送信するように構成された送信ユニットとを含む。当該応答は、上記リモートトランザクションドメインにおけるクライアントが上記１つ以上のサービスを呼出すことを可能にする情報を含む。
【０１５１】
本発明の一実施形態においては、ゲートウェイサーバにおいて、トランザクションドメインおよびリモートトランザクションドメインはドメイングループにあり、ドメイングループにおける各々のドメインは一意識別子（ＩＤ）に関連付けられている。
【０１５２】
本発明の一実施形態においては、ゲートウェイサーバにおいて、トランザクションドメインおよびリモートトランザクションドメインは、マシン関連およびトランザクション関連の情報を含むグローバルリソースを共有する。
【０１５３】
本発明の一実施形態においては、ゲートウェイサーバにおいて、上記ドメインＩＤは、ドメイングループに固有のマシン関連およびトランザクション関連の情報を保持するために用いられるドメインシーケンス番号である。
【０１５４】
本発明の一実施形態においては、ゲートウェイサーバはさらに、トランザクションをサポートするために、ドメイングループにおいてドメインシーケンス番号のリストを伝播させるように構成された伝播ユニット（propagating unit）を含む。
【０１５５】
本発明の一実施形態においては、ゲートウェイサーバはさらに、リモートトランザクションドメインにおけるゲートウェイサーバに対してアクセスコントロール（ＡＣＬ）情報を提供するように構成された第２の提供ユニットを含む。
【０１５６】
本発明の一実施形態におけるゲートウェイサーバに従うと、当該ゲートウェイサーバは、リモートトランザクションドメインがフェイルオーバーをサポートすることを可能にする。
【０１５７】
本発明の一実施形態においては、ゲートウェイサーバはさらに、上記１つ以上のサービスにおいて更新がなされたかどうかについて、ローカルの掲示板をチェックするように構成されたチェックユニットを含む。
【０１５８】
本発明の一実施形態においては、ゲートウェイサーバはさらに、上記リモートトランザクションドメインにおけるクライアントが上記１つ以上のサービスを呼出すことを可能にする情報を求めてローカルの掲示板内を探索するように構成された探索ユニット（searching unit）と、上記１つ以上のサービスに関連付けられたメッセージキューについてのアドレスを公開するように構成された公開ユニット（exposing unit）とを含む。
【０１５９】
本発明の一実施形態においては、命令が格納された非一時的な機械読取可能な記憶媒体であって、当該命令は、実行されると、システムに、トランザクションドメインにおけるゲートウェイサーバにより、１つ以上のサービスにおける更新の通知を、１つ以上のリモートトランザクションドメインにおける１つ以上のゲートウェイサーバに対して提供するステップと、ゲートウェイサーバにより、上記１つ以上のサービスについての問合せをリモートトランザクションドメインから受信するステップと、ゲートウェイサーバにより、リモートトランザクションドメインにおけるゲートウェイサーバに対して応答を送信するステップとを実行させる。当該応答は、上記リモートトランザクションドメインにおけるクライアントが上記１つ以上のサービスを呼出すことを可能にする情報を含んでいる。
【０１６０】
本発明の一実施形態においては、トランザクションミドルウェアマシン環境においてメッセージ通信をサポートするための方法であって、第１のトランザクションドメインにより、第３のトランザクションドメインからインポートされた１つ以上のサービスを第２のトランザクションドメインにエクスポートするステップと、トランザクションドメインにおける第１のゲートウェイサーバにより、第３のトランザクションドメインにおける１つ以上のサービスを呼出すようにとの要求を第２のトランザクションドメインにおけるクライアントから受信するステップと、第１のゲートウェイサーバにより、当該要求を、上記１つ以上のサービスを提供する第３のトランザクションドメインにおけるサーバにルーティングするステップとを含む。
【０１６１】
本発明の一実施形態においては、当該方法はさらに、トランザクションドメインおよびリモートトランザクションドメインがドメイングループにあることを可能にするステップを含む。ドメイングループにおける各々のドメインは一意ドメイン識別子（ＩＤ）に関連付けられている。
【０１６２】
本発明の一実施形態においては、当該方法はさらに、トランザクションドメインおよびリモートトランザクションドメインにより、ドメイングループにおけるさまざまなトランザクションドメインについてのマシン関連およびトランザクション関連の情報を含むグローバルリソースを共有するステップを含む。
【０１６３】
本発明の一実施形態においては、当該方法はさらに、第１のゲートウェイサーバにより、上記１つ以上のサービスにおける更新についての通知を第３のトランザクションドメインから受信するステップを含む。
【０１６４】
本発明の一実施形態においては、当該方法はさらに、第１のゲートウェイサーバにより、第３のトランザクションドメインからインポートされた上記１つ以上のサービスにおける更新のために、第１のトランザクションドメインにおけるローカルの掲示板を更新するステップを含む。
【０１６５】
本発明の一実施形態においては、当該方法はさらに、第１のトランザクションドメインにおける第２のゲートウェイサーバにより、第３のトランザクションドメインからインポートされた上記１つ以上のサービスにおける更新がなされたどうか、ローカルの掲示板内をチェックするステップを含む。
【０１６６】
本発明の一実施形態においては、当該方法はさらに、第１のトランザクションドメインにおける第２のゲートウェイサーバにより、第１のトランザクションドメインにおける第１のゲートウェイサーバに関連付けられたメッセージキューについてのアドレスを第２のトランザクションドメインに公開するステップを含む。
【０１６７】
本発明の一実施形態においては、当該方法はさらに、要求のルーティングが、第１のトランザクションドメイン内のローカルの掲示板におけるデータ依存型ルーティング設定に基づいてなされることを可能にするステップを含む。
【０１６８】
本発明の一実施形態においては、当該方法はさらに、第２のトランザクションドメインにおけるクライアントにより、第１のトランザクションドメインにおける第１のゲートウェイサーバに関連付けられたメッセージキューについてのアドレスを取得するステップを含む。
【０１６９】
本発明の一実施形態においては、当該方法はさらに、第２のトランザクションドメインにおけるクライアントにより、第３のトランザクションドメインにおける上記１つ以上のサービスを呼出すようにとの要求を第１のトランザクションドメインにおける第１のゲートウェイサーバに送信するステップを含む。
【０１７０】
本発明の一実施形態においては、命令が格納された非一時的な機械読取可能な記憶媒体であって、当該命令は、実行されると、システムに、上記方法のうちいずれかの方法のステップを実行させる。
【０１７１】
本発明の一実施形態においては、トランザクションミドルウェアマシン環境においてメッセージ通信をサポートするためのシステムであって、１つ以上のマイクロプロセッサと、１つ以上のマイクロプロセッサ上で実行される第１のトランザクションドメインとを含む。第１のトランザクションドメインは、第２のトランザクションドメインに１つ以上のサービスをエクスポートするように動作する。上記１つ以上のサービスは第３のトランザクションドメインからインポートされる。当該システムはさらに、第１のトランザクションドメインに第１のゲートウェイサーバを含む。第１のゲートウェイサーバは、第３のトランザクションドメインにおける上記１つ以上のサービスを呼出すようにとの要求を第２のトランザクションドメインにおけるクライアントから受信し、当該要求を、上記１つ以上のサービスを提供する第３のトランザクションドメインにおけるサーバにルーティングするように動作する。
【０１７２】
本発明の一実施形態においては、当該システムにおいて、第１のトランザクションドメインならびに第２および第３のトランザクションドメインはドメイングループにある。ドメイングループにおける各々のドメインは一意識別子（ＩＤ）に関連付けられている。
【０１７３】
本発明の一実施形態においては、当該システムにおいて、第１のトランザクションドメインならびに第２および第３のトランザクションドメインは、マシン関連およびトランザクション関連の情報を含むグローバルリソースを共有している。
【０１７４】
本発明の一実施形態においては、当該システムにおいて、第１のトランザクションドメインにおける第１のゲートウェイサーバは、上記１つ以上のサービスにおける更新についての通知を第３のトランザクションドメインから受信するように動作する。
【０１７５】
本発明の一実施形態においては、当該システムにおいて、第１のトランザクションドメインにおける第１のゲートウェイサーバは、第３のトランザクションドメインからインポートされた上記１つ以上のサービスにおける更新のために、第１のトランザクションドメインにおけるローカルの掲示板を更新するように動作する。
【０１７６】
本発明の一実施形態においては、当該システムにおいて、第１のトランザクションドメインにおける第２のゲートウェイサーバは、第３のトランザクションドメインからインポートされた上記１つ以上のサービスにおける更新がなされたかどうか、ローカルの掲示板内をチェックするように動作する。
【０１７７】
本発明の一実施形態においては、当該システムにおいて、第１のトランザクションドメインにおける第２のゲートウェイサーバは、第１のトランザクションドメインにおける第１のゲートウェイサーバに関連付けられたメッセージキューについてのアドレスを第２のトランザクションドメインに対して公開するように動作する。
【０１７８】
本発明の一実施形態においては、当該システムにおいて、要求のルーティングは、第１のトランザクションドメイン内のローカルの掲示板におけるデータ依存型ルーティング設定に基づいている。
【０１７９】
本発明の一実施形態においては、当該システムにおいて、第２のトランザクションドメインにおけるクライアントは、第１のトランザクションドメインにおける第１のゲートウェイサーバに関連付けられたメッセージキューについてのアドレスを取得し、第３のトランザクションドメインにおける上記１つ以上のサービスを呼出すようにとの要求を第１のトランザクションドメインにおける第１のゲートウェイサーバに送信するように動作する。
【０１８０】
本発明の一実施形態においては、命令が格納された非一時的な機械読取可能な記憶媒体であって、当該命令は、実行されると、システムに、第１のトランザクションドメインにより、第３のトランザクションドメインからインポートされた１つ以上のサービスを第２のトランザクションドメインにエクスポートするステップと、トランザクションドメインにおける第１のゲートウェイサーバにより、第３のトランザクションドメインにおける上記１つ以上のサービスを呼出すようにとの要求を第２のトランザクションドメインにおけるクライアントから受信するステップと、第１のゲートウェイサーバにより、当該要求を、上記１つ以上のサービスを提供する第３のトランザクションドメインにおけるサーバにルーティングするステップとを実行させる。
【０１８１】
本発明の一実施形態においては、第１のトランザクションドメインにおける第１のゲートウェイサーバにおいて、第１のトランザクションドメインは、１つ以上のサービスを第２のトランザクションドメインにエクスポートするように動作する。上記１つ以上のサービスは、第３のトランザクションドメインからインポートされる。第１のゲートウェイサーバは、第３のトランザクションドメインにおける上記１つ以上のサービスを呼出すようにとの要求を第２のトランザクションドメインにおけるクライアントから受信するように構成された第１の受信ユニットと、当該要求を、上記１つ以上のサービスを提供する第３のトランザクションドメインにおけるサーバにルーティングするように構成されたルーティングユニットとを含む。
【０１８２】
本発明の一実施形態においては、第１のゲートウェイサーバにおいて、第１のトランザクションドメインならびに第２および第３のトランザクションドメインはドメイングループにある。ドメイングループにおける各々のドメインは一意識別子（ＩＤ）に関連付けられている。
【０１８３】
本発明の一実施形態においては、第１のゲートウェイサーバにおいて、第１のトランザクションドメインならびに第２および第３のトランザクションドメインは、マシン関連およびトランザクション関連の情報を含むグローバルリソースを共有する。
【０１８４】
本発明の一実施形態においては、第１のゲートウェイサーバはさらに、上記１つ以上のサービスにおける更新についての通知を第３のトランザクションドメインから受信するように構成された第２の受信ユニットを含む。
【０１８５】
本発明の一実施形態においては、第１のゲートウェイサーバはさらに、第３のトランザクションドメインからインポートされた上記１つ以上のサービスにおける更新のために、第１のトランザクションドメインにおけるローカルの掲示板を更新するように構成された更新ユニットを含む。
【０１８６】
本発明の一実施形態においては、第１のゲートウェイサーバにおいて、第１のトランザクションドメインはさらに第２のゲートウェイサーバを含む。第２のゲートウェイサーバは、第３のトランザクションドメインからインポートされた上記１つ以上のサービスにおける更新がなされたかどうか、ローカルの掲示板内をチェックするように構成されたチェックユニットを含む。
【０１８７】
本発明の一実施形態においては、上述の記載に従った第１のゲートウェイサーバにおいて、第２のゲートウェイサーバはさらに、第１のトランザクションドメインにおける第１のゲートウェイサーバに関連付けられたメッセージキューについてのアドレスを第２のトランザクションドメインに対して公開するように構成された公開ユニットを含む。
【０１８８】
本発明の一実施形態においては、上述に記載の第１のゲートウェイサーバにおいて、要求のルーティングは、第１のトランザクションドメイン内のローカルの掲示板におけるデータ依存型ルーティング設定に基づいている。
【０１８９】
本発明の一実施形態においては、上述に記載の第１のゲートウェイサーバにおいて、第２のトランザクションドメインはクライアントを含む。クライアントは、第１のゲートウェイサーバに関連付けられたメッセージキューについてのアドレスを取得するように構成された取得ユニットと、第３のトランザクションドメインにおける上記１つ以上のサービスを呼出すようにとの要求を第１のゲートウェイサーバに送信するように構成された送信ユニットとを含む。
【０１９０】
本発明の一実施形態においては、命令が格納された非一時的な機械読取可能な記憶媒体であって、当該命令は、実行されると、システムに、第１のトランザクションドメインにより、第３のトランザクションドメインからインポートされた１つ以上のサービスを第２のトランザクションドメインにエクスポートするステップと、トランザクションドメインにおける第１のゲートウェイサーバにより、第３のトランザクションドメインにおける上記１つ以上のサービスを呼出すようにとの要求を第２のトランザクションドメインにおけるクライアントから受信するステップと、第１のゲートウェイサーバにより、当該要求を、上記１つ以上のサービスを提供する第３のトランザクションドメインにおけるサーバにルーティングするステップとを実行させる。
【０１９１】
本発明の多くの特徴は、ハードウェア、ソフトウェア、ファームウェアまたはそれらの組合せにおいて、それらを用いて、またはそれらの支援により、実行可能である。したがって、本発明の特徴は、（たとえば、１つ以上のプロセッサを含む）処理システムを用いて実現され得る。
【０１９２】
この発明の特徴は、ここに提示された特徴のうちのいずれかを行なうように処理システムをプログラミングするために使用可能な命令を格納した記憶媒体またはコンピュータ読取可能媒体であるコンピュータプログラム製品において、それを使用して、またはその助けを借りて実現され得る。記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリ装置、磁気カードもしくは光カード、ナノシステム（分子メモリＩＣを含む）、または、命令および／もしくはデータを格納するのに好適な任意のタイプの媒体もしくは装置を含み得るものの、それらに限定されない。
【０１９３】
この発明の特徴は、機械読取可能媒体のうちのいずれかに格納された状態で、処理システムのハードウェアを制御するために、および処理システムがこの発明の結果を利用する他の機構とやり取りすることを可能にするために、ソフトウェアおよび／またはファームウェアに取込まれ得る。そのようなソフトウェアまたはファームウェアは、アプリケーションコード、装置ドライバ、オペレーティングシステム、および実行環境／コンテナを含み得るものの、それらに限定されない。
【０１９４】
この発明の特徴はまた、たとえば、特定用途向け集積回路（application specific integrated circuit：ＡＳＩＣ）などのハードウェアコンポーネントを使用して、ハードウェアにおいて実現されてもよい。ここに説明された機能を行なうようにハードウェアステートマシンを実現することは、関連技術の当業者には明らかであろう。
【０１９５】
加えて、この発明は、この開示の教示に従ってプログラミングされた１つ以上のプロセッサ、メモリおよび／またはコンピュータ読取可能記憶媒体を含む、１つ以上の従来の汎用または特殊デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練したプログラマによって容易に準備され得る。
【０１９６】
この発明のさまざまな実施形態が上述されてきたが、それらは限定のためではなく例示のために提示されたことが理解されるべきである。この発明の精神および範囲から逸脱することなく形状および詳細をさまざまに変更できることは、関連技術の当業者には明らかであろう。
【０１９７】
この発明は、特定された機能およびそれらの関係の実行を示す機能的構築ブロックの助けを借りて上述されてきた。説明の便宜上、これらの機能的構築ブロックの境界は、この明細書中ではしばしば任意に規定されてきた。特定された機能およびそれらの関係が適切に実行される限り、代替的な境界を規定することができる。このため、そのようないかなる代替的な境界も、この発明の範囲および精神に含まれる。
【０１９８】
この発明の前述の説明は、例示および説明のために提供されてきた。それは、網羅的であるよう、またはこの発明を開示された形態そのものに限定するよう意図されてはいない。この発明の幅および範囲は、上述の例示的な実施形態のいずれによっても限定されるべきでない。多くの変更および変形が、当業者には明らかになるだろう。これらの変更および変形は、開示された特徴の関連するあらゆる組合せを含む。実施形態は、この発明の原理およびその実用的応用を最良に説明するために選択され説明されたものであり、それにより、考えられる特定の使用に適したさまざまな実施形態についての、およびさまざまな変更例を有するこの発明を、当業者が理解できるようにする。この発明の範囲は、請求項およびそれらの同等例によって定義されるよう意図されている。
【図１】
0006539677.tif 000002
【図２】
0006539677.tif 000003
【図３】
0006539677.tif 000004
【図４】
0006539677.tif 000005
【図５】
0006539677.tif 000006
【図６】
0006539677.tif 000007
【図７】
0006539677.tif 000008
【図８】
0006539677.tif 000009
【図９】
0006539677.tif 000010
【図１０】
0006539677.tif 000011
【図１１】
0006539677.tif 000012
【図１２】
0006539677.tif 000013
【図１３】
0006539677.tif 000014
【図１４】
0006539677.tif 000015