(57)【要約】  トランザクションミドルウェアシステムは、リモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルを用いてローカルマシンとリモートマシンとの間でメッセージを交換してローカルメッセージ転送のような短い待ち時間を達成することができる。トランザクションミドルウェアマシン環境はシングルポイントボトルネックを防止することができる。トランザクションミドルウェアマシン環境は第１のトランザクションマシン中のサーバと関連付けられた第１のメッセージ待ち行列を備え、サーバは、第１のメッセージ待ち行列中の待ち行列アドレスを用いてアクセスされるように動作する。トランザクションミドルウェアマシン環境は第２のトランザクションマシン中のクライアントと関連付けられる第２のメッセージ待ち行列をさらに備える。クライアントは第１のメッセージ待ち行列を用いてサービスリクエストメッセージをサーバにダイレクトに送るように動作し、サーバはサービスリクエストメッセージを第１のメッセージ待ち行列から受信し、第２のメッセージ待ち行列を用いてサービス応答メッセージをクライアントにダイレクトに送るように動作する。
2014528611.tif 000002
【特許請求の範囲】
【請求項１】
トランザクションミドルウェアマシン環境においてダイレクトメッセージ転送を提供するためのシステムであって、
第１のトランザクションマシン中のトランザクションサーバと関連付けられる第１のメッセージ待ち行列と、
前記トランザクションミドルウェアマシン環境中のアドバタイズドテーブルとを備え、前記トランザクションサーバは、前記アドバタイズドテーブル中の前記第１のメッセージ待ち行列を公開するように動作し、
第２のトランザクションマシン中のクライアントサーバは、前記アドバタイズドテーブル中の前記第１のメッセージ待ち行列を見つけ出し、かつ前記第１のメッセージ待ち行列を用いて前記第１のトランザクションマシン中の前記トランザクションサーバとの接続を確立するように動作する、システム。
【請求項２】
前記クライアントサーバは、前記第２のトランザクションマシン中の第２のメッセージ待ち行列と関連付けられ、前記クライアントサーバは、前記第２のメッセージ待ち行列を用いてメッセージを受信するように動作する、請求項１に記載のシステム。
【請求項３】
前記クライアントサーバは、前記第１のメッセージ待ち行列を用いてサービスリクエストメッセージを前記トランザクションサーバにダイレクトに送るように動作する、請求項１または２に記載のシステム。
【請求項４】
前記トランザクションサーバは、前記サービスリクエストメッセージを前記第１のメッセージ待ち行列から受信し、前記第２のトランザクションマシン中の前記クライアントサーバと関連付けられる第２のメッセージ待ち行列を用いてサービス応答メッセージを前記クライアントサーバにダイレクトに送るように動作する、請求項３に記載のシステム。
【請求項５】
前記トランザクションミドルウェアマシン環境中のマシン同士の間でメッセージを転送する際にシングルポイントボトルネックが存在しない、請求項１から４のいずれか１項に記載のシステム。
【請求項６】
前記第１のメッセージ待ち行列は、高性能ネットワーク上で実行するマシンにわたってデータを転送するためのネットワークプロトコルを用いる、請求項１から５のいずれか１項に記載のシステム。
【請求項７】
前記ネットワークプロトコルは、Infiniband（ＩＢ）ネットワーク用リモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルである、請求項６に記載のシステム。
【請求項８】
前記第１のトランザクションマシン中の前記トランザクションサーバと関連付けられる第２のメッセージ待ち行列をさらに備え、前記トランザクションサーバは、前記第１のトランザクションマシン中のローカルクライアントとの通信のために前記第２のメッセージ待ち行列を用いる、請求項１から７のいずれか１項に記載のシステム。
【請求項９】
前記第２のメッセージ待ち行列は、ローカルブリッジプロセスと関連付けられるインタープロセスコミュニケーション（ＩＰＣ）待ち行列である、請求項８に記載のシステム。
【請求項１０】
前記トランザクションサーバは、異なるスレッドで同時に前記第１のメッセージ待ち行列および前記第２のメッセージ待ち行列の両方をリッスンし、メッセージを送るのにより速い経路を選ぶ、請求項８または９に記載のシステム。
【請求項１１】
トランザクションミドルウェアマシン環境においてダイレクトメッセージ転送を提供するための方法であって、
第１のトランザクションマシン中のトランザクションサーバと関連付けられる第１のメッセージ待ち行列を提供することと、
前記トランザクションサーバを介して、前記トランザクションミドルウェアマシン環境中のアドバタイズドテーブル中の前記第１のメッセージ待ち行列を公開することと、
第２のトランザクションマシン中のクライアントサーバが
前記アドバタイズドテーブル中の前記第１のメッセージ待ち行列を見つけ出し、かつ
前記第１のメッセージ待ち行列を用いて前記第１のトランザクションマシン中の前記トランザクションサーバとの接続を確立できるようにすることとを備える、方法。
【請求項１２】
前記クライアントサーバを、前記第２のトランザクションマシン中の第２のメッセージ待ち行列に関連付けることをさらに備え、前記クライアントサーバは、前記第２のメッセージ待ち行列を用いてメッセージを受信するように動作する、請求項１１に記載の方法。
【請求項１３】
前記クライアントサーバが前記第１のメッセージ待ち行列を用いてサービスリクエストメッセージを前記トランザクションサーバにダイレクトに送れるようにすることをさらに備える、請求項１１または１２に記載の方法。
【請求項１４】
前記トランザクションサーバを介して前記サービスリクエストメッセージを前記第１のメッセージ待ち行列から受信することと、前記トランザクションサーバを介して、前記第２のトランザクションマシン中の前記クライアントサーバと関連付けられる第２のメッセージ待ち行列を用いてサービス応答メッセージを前記クライアントサーバにダイレクトに送ることとをさらに備える、請求項１３に記載の方法。
【請求項１５】
前記トランザクションミドルウェアマシン環境中のマシン同士の間でメッセージを転送する際にシングルポイントボトルネックを防止することをさらに備える、請求項１１から１４のいずれか１項に記載の方法。
【請求項１６】
前記第１のメッセージ待ち行列が、高性能ネットワーク上で実行するマシンにわたってデータを転送するためのネットワークプロトコルを使用できるようにすることをさらに備える、請求項１１から１５のいずれか１項に記載の方法。
【請求項１７】
前記ネットワークプロトコルは、Infiniband（ＩＢ）ネットワーク用リモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルである、請求項１１から１６のいずれか１項に記載の方法。
【請求項１８】
前記第１のトランザクションマシン中の前記トランザクションサーバと関連付けられる第２のメッセージ待ち行列を提供することをさらに備え、前記トランザクションサーバは、前記第１のトランザクションマシン中のローカルクライアントとの通信のために前記第２のメッセージ待ち行列を用いる、請求項１１から１７のいずれか１項に記載の方法。
【請求項１９】
前記第２のメッセージ待ち行列は、ローカルブリッジプロセスと関連付けられるインタープロセスコミュニケーション（ＩＰＣ）待ち行列である、請求項１８に記載の方法。
【請求項２０】
前記トランザクションサーバを介して、異なるスレッドで同時に前記第１のメッセージ待ち行列および前記第２のメッセージ待ち行列の両方をリッスンすることと、メッセージを送るのにより速い経路を選ぶこととをさらに備える、請求項１８または１９に記載の方法。
【請求項２１】
請求項１１から２０のいずれか１項に記載の方法を実行するために１つ以上のコンピュータシステムが実行するためのプログラム命令を備えるコンピュータプログラム。
【請求項２２】
コンピュータ読出可能記憶媒体上に提供される請求項２１に記載のコンピュータプログラムを備えるコンピュータプログラム製品。
【請求項２３】
請求項のいずれか１項に記載の方法を１つ以上のプロセッサに実現させるためのコンピュータプログラム。
【請求項２４】
前記トランザクションサーバを介して、異なるスレッドで同時に前記第１のメッセージ待ち行列および前記第２のメッセージ待ち行列の両方をリッスンすることと、メッセージを送るのにより速い経路を選ぶこととをさらに備える、請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権表示
この特許文献の開示の一部は著作権保護の対象となる内容を含む。著作権者は、特許商標庁の特許ファイルまたは記録に現れた際には特許文献または特許開示のいずれによるファクシミリ再現に対しても異議を申立てないが、それ以外のすべてのいかなる著作権も留保する。
【０００２】
発明の分野
本発明は概してコンピュータシステムおよびミドルウェアなどのソフトウェアに関し、特定的にはトランザクションミドルウェアマシン環境のサポートに関する。
【背景技術】
【０００３】
背景
トランザクションミドルウェアシステムまたはトランザクション指向ミドルウェアは、オーガニゼーション内のさまざまなトランザクションを処理することができるエンタープライズアプリケーションサーバを含む。高性能ネットワークおよびマルチプロセッサコンピュータなどの新技術における発展により、トランザクションミドルウェアの性能をさらに向上する必要がある。これらは概して、発明の実施形態が扱おうとする分野である。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
本明細書中には、リモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルを用いるトランザクションミドルウェアマシン環境におけるローカルマシンとリモートマシンとの間でのメッセージ交換をサポートするためのシステムおよび方法を記載する。トランザクションミドルウェアマシン環境は、シングルポイントボトルネックを防止し、ローカルメッセージ転送のような態様の短い待ち時間を達成することができる。トランザクションミドルウェアマシン環境は、第１のメッセージ待ち行列および第２のメッセージ待ち行列を備える。第１のメッセージ待ち行列は、第１のメッセージ待ち行列中の待ち行列アドレスを用いてアクセス可能な第１のトランザクションマシン中のサーバと関連付けられる。第２のメッセージ待ち行列は、第２のトランザクションマシン中のクライアントと関連付けられる。クライアントは、第１のメッセージ待ち行列を用いてサービスリクエストメッセージをダイレクトにサーバに送ることができ、サーバは、第１のメッセージ待ち行列からサービスリクエストメッセージを受信し、第２のメッセージ待ち行列を用いてクライアントにダイレクトにサービス応答メッセージを送ることができる。
【図面の簡単な説明】
【０００５】
【図１】発明の実施形態に従う、ダイレクトメッセージ転送を提供することができるトランザクションミドルウェアマシン環境を図示する図である。
【図２】発明の実施形態に従う、トランザクションミドルウェアマシン環境においてダイレクトメッセージ転送を提供するための例示的なフローチャートである。
【図３】発明の実施形態に従うトランザクションミドルウェアマシン環境におけるバイパスブリッジプロセス特徴のセットアップを図示する図である。
【図４】発明の実施形態に従うトランザクションミドルウェアマシン環境の機能的構成を示す図である。
【図５】発明の実施形態に従うトランザクションサーバの機能ブロック図である。
【図６】発明の実施形態に従うクライアントサーバの機能ブロック図である。
【発明を実施するための形態】
【０００６】
詳細な説明
本明細書中には、複数のプロセッサを有する高速マシンおよび高性能ネットワーク接続を利用することができるTuxedoなどのトランザクションミドルウェアシステムのサポートのためのシステムおよび方法を記載する。トランザクションミドルウェアシステムは、リモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルを用いてローカルマシンとリモートマシンとの間でメッセージを交換してローカルメッセージ転送のような態様の短い待ち時間を達成することができる。トランザクションミドルウェアマシン環境は、第１のトランザクションマシン中のサーバと関連付けられる第１のメッセージ待ち行列を備え、サーバは、第１のメッセージ待ち行列中の待ち行列アドレスを用いてアクセスされるように動作する。トランザクションミドルウェアマシン環境は、第２のトランザクションマシン中のクライアントと関連付けられる第２のメッセージ待ち行列をさらに備える。クライアントは、第１のメッセージ待ち行列を用いてサービスリクエストメッセージをサーバにダイレクトに送るように動作し、サーバは、サービスリクエストメッセージを第１のメッセージ待ち行列から受信し、第２のメッセージ待ち行列を用いて、サービス応答メッセージをクライアントにダイレクトに送るように動作する。
【０００７】
発明の実施形態に従うと、システムは、WebLogic Suiteなどのアプリケーションサーバまたはミドルウェア環境とともに、たとえば６４ビットプロセッサ技術、高性能大型メモリ、ならびに冗長InfiniBandおよびイーサネット（登録商標）ネットワーキングなどの高性能ハードウェアの組合せを備えて、迅速に設けることができ、かつ要求に応じてスケーリング可能な超並列インメモリグリッドを含む完全Ｊａｖａ（登録商標）ＥＥアプリケーションサーバコンプレックスを提供する。実施形態に従うと、システムは、フル、ハーフもしくはクォーターラック、または他の構成として配備可能であり、これは、アプリケーションサーバグリッド、記憶領域ネットワーク、およびInfiniBand（ＩＢ）ネットワークを提供する。ミドルウェアマシンソフトウェアは、たとえば、WebLogic server、JRockit、またはHotspot JVM、Oracle Linux（登録商標）、またはSolaris、およびOracle VMなどのアプリケーションサーバ、ミドルウェア、ならびに他の機能性を提供することができる。実施形態に従うと、システムは、ＩＢネットワークを介して互いに通信する複数のコンピュートノード、ＩＢスイッチゲートウェイ、および記憶ノードまたはユニットを含むことができる。ラック構成として実現する場合は、ラックの未使用部分を空いたままにする、またはフィラで占めることができる。
【０００８】
「Sun Oracle Exalogic」または「Exalogic」と本明細書中で称される発明の実施形態に従うと、システムは、Oracle Middleware SW suiteまたはWebLogicなどのミドルウェアまたはアプリケーションサーバソフトウェアをホスティングするための、配備が容易なソリューションである。本明細書中で記載するように、実施形態に従うと、システムは、１つ以上のサーバ、記憶ユニット、記憶ネットワーキングのためのＩＢファブリック、およびミドルウェアアプリケーションをホスティングするのに必要なすべての他の構成要素を備える「グリッド・イン・ア・ボックス」である。たとえばReal Application ClustersおよびExalogic Openストレージを用いて超並列グリッドアーキテクチャを活用することにより、全種類のミドルウェアアプリケーションのためにかなりの性能を与えることができる。システムは、線形Ｉ／Ｏスケーラビリティによって向上した性能を与え、使用および管理が単純であり、かつ必須の可用性および信頼性を与える。
【０００９】
発明の実施形態に従うと、Tuxedoは、高性能の分散ビジネスアプリケーションの構築、実行、および管理を可能にするとともに、多数の複数層アプリケーション開発ツールがトランザクションミドルウェアとして用いてきたソフトウェアモジュールの組である。Tuxedoは、分散コンピューティング環境で分散トランザクション処理を管理するのに使用可能なミドルウェアプラットフォームである。これは、無限のスケーラビリティおよび仕様ベースの相互運用性を与えつつ、エンタープライズレガシーアプリケーションをアンロックし、かつそれらをサービス指向アーキテクチャに拡張するための実績あるプラットフォームである。
【００１０】
発明の実施形態に従うと、Tuxedoシステムなどのトランザクションミドルウェアシステムは、Exalogicミドルウェアマシンなどの複数のプロセッサを有する高速マシンおよびInfiniband（ＩＢ）ネットワークなどの高性能ネットワーク接続を利用することができる。
【００１１】
発明の実施形態に従うと、トランザクションミドルウェアシステムは、リモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルを用いてローカルマシンとリモートマシンとの間でメッセージを交換してローカルメッセージ転送のような態様の短い待ち時間を達成することができる。
【００１２】
ダイレクトメッセージ転送を提供する
発明の実施形態に従うと、Exalogicミドルウェアマシン環境などのミドルウェアマシン環境は、Tuxedoアプリケーションなどのトランザクションアプリケーションのための密に結合されかつ論理的に均一な環境であり得る。トランザクションミドルウェアマシン環境中のマシン同士の間でメッセージを転送する際に、シングルポイントボトルネックは存在しない。
【００１３】
図１は、発明の実施形態に従う、ダイレクトメッセージ転送を提供することができるトランザクションミドルウェアマシン環境の図示を示す。図１に示されるように、トランザクションミドルウェアマシン環境は、複数のトランザクションミドルウェアマシン、すなわちマシンＡ１０１およびマシンＢ１０２を含む。各々のトランザクションミドルウェアマシンは、たとえばTuxedoのBulletein Board（ＢＢ）などのアドバタイズドテーブル１１２または１１３を含む。アドバタイズドテーブルを異なるマシンが共有することができる。
【００１４】
図１に示されるように、マシンＢ１０２上のクライアントＢは、クライアントＢが必要とするサービスを提供するサーバを求めてアドバタイズドテーブルをルックアップすることができる。このターゲットサーバは、マシンＢ１０２上のサーバＢなどのローカルサーバまたはマシンＡ１０１上のサーバＡなどのリモートサーバのいずれかであり得る。
【００１５】
サービスがローカルサーバ上にある場合、クライアントＢは、マシンＢ１０２上のＩＰＣ待ち行列Ｂ１０８などの１つ以上のシステムＶインタープロセスコミュニケーション（ＩＰＣ）待ち行列を介してサービスリクエストメッセージをターゲットサーバに送り、サービス応答メッセージを受信することができる。
【００１６】
一方、サービスがマシンＡ１０１上のサーバＡなどのリモートサーバ上にある場合、クライアントＢは、複数のマシン間で物理的に分散されていても、ＲＤＭＡメッセージング待ち行列を用いてメッセージをダイレクトに交換することができる。ＲＤＭＡ待ち行列は、ＩＢネットワークなどの高性能ネットワーク上で実行するＲＤＭＡプロトコルに基づく、メッセージを送りかつ受信することができるライブラリである。
【００１７】
図１に示されるように、クライアントサーバＢ１０６は、トランザクションサーバＡ１０３と関連付けられるマシンＡ１０１上のＲＤＭＡ待ち行列Ａ１１０の中に、サービスリクエストメッセージをダイレクトに入れることができる。トランザクションサーバＡ１０３は、ＲＤＭＡ待ち行列Ａ１１０からサービスリクエストメッセージを入手することができ、サービスリクエストを処理する。次に、トランザクションサーバＡ１０３は、クライアントＢと関連付けられるマシンＢ１０２上のＲＤＭＡ待ち行列Ｂ１１１の中にダイレクトにサービス応答メッセージを入れることができ、これによりクライアントＢはサービス応答を入手することができる。
【００１８】
これに代えて、図１に示されるように、マシンＡ１０１上のブリッジプロセスＡ１１４およびマシンＢ１０２上のブリッジプロセスＢ１１５が存在し得る。これらのブリッジプロセスを用いて、マシンＢ１０２上のクライアントＢがメッセージをリモートマシンＡ１０１にターゲット決めする場合、クライアントＢはまず、ローカルブリッジプロセスであるブリッジプロセスＢ１１５と関連付けられるシステムＶ  ＩＰＣ待ち行列Ｂ１０８にサービスリクエストメッセージを送ることができる。次に、ブリッジプロセスＢ１１５は、別のブリッジプロセスであるリモートターゲットマシンＡ１０１上のブリッジプロセスＡ１１４にこのメッセージをネットワークを介して転送することができる。最後に、リモートターゲットマシンＡ１０１にあるブリッジプロセスＡ１１４は、ターゲットトランザクションサーバＡ１０３と関連付けられるシステムＶ  ＩＰＣ待ち行列Ａ１０７にメッセージを送ることができる。しかしながら、この手順は時間がかかる可能性があり、比較的長い待ち時間を導入する可能性がある。また、ブリッジプロセスの各々は、負荷が重い場合にあまりに繁忙である可能性があり、システム全体のスループットに影響を及ぼし得るシングルポイントボトルネックになる可能性がある。
【００１９】
図１に示されるように、トランザクションサーバＡ１０３は、異なるスレッドで同時にシステムＶ  ＩＰＣ待ち行列Ａ１０７およびＲＤＭＡ待ち行列Ａ１１０の両方をリッスンすることができる。クライアントＢなどのメッセージ送信元は、トランザクションサーバＡ１０３にメッセージを送るのにより速いほうを選ぶことができる。一般的に、リモートメッセージ転送にはＲＤＭＡ待ち行列を用いることができ、ローカルメッセージ転送にはシステムＶ  ＩＰＣ待ち行列を用いることができる。というのも、ＲＤＭＡ待ち行列は、ローカルメッセージ転送にはシステムＶ  ＩＰＣ待ち行列より遅いことがあるからである。
【００２０】
図２は、発明の実施形態に従うトランザクションミドルウェアマシン環境においてダイレクトメッセージ転送を提供するための例示的なフローチャートを図示する。図２に示されるように、ステップ２０１では、第１のトランザクションマシン中のトランザクションサーバと関連付けられる第１のメッセージ待ち行列が提供される。次に、ステップ２０２で、トランザクションサーバは、トランザクションミドルウェアマシン環境中のアドバタイズドテーブル中の第１のメッセージ待ち行列を公開することができる。最後に、ステップ２０３で、第２のトランザクションマシン中のクライアントサーバは、アドバタイズドテーブル中に第１のメッセージ待ち行列を見つけ出し、第１のメッセージ待ち行列を用いて第１のトランザクションマシン中のトランザクションサーバとの接続を確立することができる。
【００２１】
ＲＤＭＡプロトコルを用いてTuxedo中のブリッジプロセスをバイパスする
発明の実施形態に従うと、トランザクションミドルウェアシステムは、Tuxedo中のＭＳＧＱ待ち行列ライブラリなどのＲＤＭＡプロトコルを介したＲＤＭＡ待ち行列を用いてローカルマシンとリモートマシンとの間でメッセージを交換することができる。高性能ＩＢネットワーク上で実行するマシンを横断してデータを転送するのにＲＤＭＡプロトコルを用いることができる。ＲＤＭＡプロトコルを用いて、メッセージ送信元および受信者は、複数のマシン間で物理的に分散していたとしても、メッセージをダイレクトに交換することができる。
【００２２】
Tuxedoは、クラス分散クライアント−サーバ構造を有するトランザクションミドルウェアである。各々のTuxedoサーバは、ドメインを通じてアドバタイズされるテーブル中にそのＭＳＧＱ待ち行列名を公開することができる。クライアントサーバは、アドバタイズドテーブル中にターゲットサーバの待ち行列名を見つけ出し、これが初めての接続である場合は、ターゲットサーバとの接続を確立することができる。次に、クライアントサーバおよびターゲットサーバは、この待ち行列名に応じて接続を確立して、確立された接続を介してメッセージを送ることができる。
【００２３】
加えて、Tuxedoは、ドメイン内の各マシン中のブリッジプロセスを用いて、マシンを横断してメッセージを交換することができる。ブリッジプロセスを用いて、まず、リモートマシンをターゲットとするあらゆるメッセージを、ローカルブリッジプロセスと関連付けられるシステムＶ  ＩＰＣ待ち行列に送ることができる。次に、ローカルブリッジプロセスは、ネットワークを介して、リモートターゲットマシンにあるリモートブリッジプロセスにこのメッセージを転送することができる。最後に、リモートターゲットマシンにあるリモートブリッジプロセスは、ターゲットシステムＶ  ＩＰＣ待ち行列にメッセージを送ることができる。
【００２４】
発明の実施形態に従うと、ＲＤＭＡ待ち行列ライブラリは、システムＶスタイルを用いて実現される一連のメッセージ転送ＡＰＩを用いて、最小限のコード変更で実現可能である。これらのメッセージ転送ＡＰＩは、たとえば優先順位がある待ち行列からメッセージを受信するなどの、システムＶ  ＩＰＣ待ち行列が提供する同様の機能を提供することができる。
【００２５】
図３は、発明の実施形態に従うトランザクションミドルウェアマシン環境におけるバイパスブリッジプロセス特徴のセットアップの図示を示す。図３に示されるように、ステップ３０１で、ユーザ３１１はまずＤＡＥＭＯＮプロセスを開始することができる。ＤＡＥＭＯＮプロセス３１３は、Tuxedoアプリケーションなどのトランザクションアプリケーションとは別個のアプリケーションであり得る。また、Tuxedoの例では、各Tuxedoマシンごとに少なくとも１つのＤＡＥＭＯＮプロセスが開始される。次に、ステップ３０２および３０３で、ユーザは、アプリケーションサーバおよびトランザクションアプリケーション（Tuxedo）をそれぞれ構成することができる。最後に、ステップ３０４で、ユーザは、Tuxedoアプリケーションを開始してバイパスブリッジ特徴を用いることができ、ステップ３０５で、ユーザは、プロセス間でメッセージを交換するための通信を可能にする。
【００２６】
以下の表１は、Tuxedo中のＤＡＥＭＯＮプログラムを実行するための異なるオプションを示す。
【００２７】
【表１】
2014528611.tif 000003
【００２８】
たとえば、以下のコマンドを用いてＤＡＥＭＯＮプログラムを開始することができる。
Msgq_daemon-i 192.168.10.4-p 4040-m 100000000-k 9100
加えて、メッセージ待ち行列を利用するため、Tuxedoアプリケーションのために異なる種類のパラメータが構成される。これらのパラメータは、少なくとも、メッセージ待ち行列のパラメータと、ＤＡＥＭＯＮプロセスと通信するのにTuxedoアプリケーション中のプロセスが用いるパラメータとを含む。これらのパラメータは、TuxedoＵＢＢファイルなどのコンフィギュレーションファイルのMACHINESセクションの中に構成され得る。以下の表２は、これらの環境変数を示す。
【００２９】
【表２】
2014528611.tif 000004
【００３０】
以下のリスト１は、例示的なTuxedoコンフィギュレーションファイルの２、３個のセクションを含む。
【００３１】
【表３】
2014528611.tif 000005
【００３２】
以下のリスト２は、Tuxedoコンフィギュレーションファイル中のRESOURCESセクションの例である。
【００３３】
【表４】
2014528611.tif 000006
【００３４】
上記例に示すように、TuxedoコンフィギュレーションファイルのRESOURCESセクション中の項目ＯＰＴＩＯＮＳにＥＸＡＬＯＧＩＣおよびＲＤＭＡを加えることができる。ＯＰＴＩＯＮＳがＲＤＭＡおよびＥＸＡＬＯＧＩＣの両方を含む場合、バイパス特徴が活性化され、ローカルブリッジプロセスがバイパスされる。そうでない場合、バイパス特徴はオフにされる。ＲＤＭＡオプションをイネーブルする必要があれば、ＥＸＡＬＯＧＩＣオプションがまずイネーブルされる。RESOURCESセクション中のＲＤＭＡオプションをイネーブルした後には、MACHINESセクションの属性「ＴＹＰＥ」が設定されないことがある。というのも、デフォルトでは、ＭＰモードのいずれのマシンもＲＤＭＡ特徴をサポートする（同じ種類の）Exalogicマシンであるからである。
【００３５】
図４を参照して、発明の実施形態に従うトランザクションミドルウェアマシン環境においてダイレクトメッセージ転送を提供するためのシステム４００を説明する。図４はシステム４００の機能的構成を示す。システム４００は、提供ユニット４１０と、公開ユニット４２０と、メモリ４３０と、メッセージ待ち行列ファインダ４４０と、接続確立ユニット４５０とを含む。
【００３６】
提供ユニットは、マシンＢ１０３などの第１のトランザクションマシン中のトランザクションサーバと関連付けられる第１のメッセージ待ち行列を提供するように構成される。公開ユニット４２０は、トランザクションミドルウェアマシン環境中のアドバタイズドテーブル中の第１のメッセージ待ち行列をトランザクションサーバを介して公開するように構成される。メモリ４３０は、アドバタイズドテーブルを記憶するように構成される。メッセージ待ち行列ファインダ４４０は、アドバタイズドテーブル中の第１のメッセージ待ち行列を見つけ出すように構成される。接続確立ユニット４５０は、第１のメッセージ待ち行列を用いて第１のトランザクションマシン中のトランザクションサーバとの接続を確立するように構成される。メッセージ待ち行列ファインダ４４０および接続確立ユニット４５０はクライアントサーバ中に実現可能である。
【００３７】
発明の実施形態に従うと、図５および図６は、上述のような発明の原則に従って構成されるトランザクションサーバ５００およびクライアントサーバ６００の機能ブロック図を示す。トランザクションサーバおよびクライアントサーバの機能ブロックは、発明の原則を実行する、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組合せによって実現され得る。図５および図６に記載の機能ブロックは組合されるかまたはサブブロックに分離されて上述のような発明の原則を実現してもよいことが当業者には理解される。したがって、本明細書中の説明は、本明細書中に記載の機能ブロックの任意の可能な組合せまたは分離またはさらなる定義をサポートし得る。
【００３８】
図５に示されるように、トランザクションミドルウェアマシン環境中の第１のトランザクションマシンで用いるためのトランザクションサーバ５００は、公開ユニット５１０と接続確立ユニット５２０とを含む。公開ユニット５１０は、トランザクションミドルウェアマシン環境中のアドバタイズドテーブル中で、第１のトランザクションマシン中のトランザクションサーバ５００と関連付けられる第１のメッセージ待ち行列を公開するように構成される。接続確立ユニット５２０は、アドバタイズドテーブル中に第１のメッセージ待ち行列を見つけ出すように動作する第２のトランザクションマシン中のクライアントサーバに応答して、第１のメッセージ待ち行列を用いて第２のトランザクションマシン中のクライアントサーバとの接続を確立するように構成される。
【００３９】
いくつかの実施形態では、クライアントサーバは、第２のトランザクションマシン中の第２のメッセージ待ち行列と関連付けられ、クライアントサーバは、第２のメッセージ待ち行列を用いてメッセージを受信するように動作する。
【００４０】
いくつかの実施形態では、クライアントサーバは、第１のメッセージ待ち行列を用いてサービスリクエストメッセージをダイレクトにトランザクションサーバ５００に送るように動作する。
【００４１】
いくつかの実施形態では、トランザクションサーバ５００は第１の通信ユニット５３０をさらに備える。第１の通信ユニット５３０は、サービスリクエストメッセージを第１のメッセージ待ち行列から受信し、第２のトランザクションマシン中のクライアントサーバと関連付けられる第２のメッセージ待ち行列を用いて、サービス応答メッセージをクライアントサーバにダイレクトに送るように構成される。
【００４２】
いくつかの実施形態では、トランザクションミドルウェアマシン環境中のマシン同士の間でメッセージを転送する際にシングルポイントボトルネックは存在しない。
【００４３】
いくつかの実施形態では、第１のメッセージ待ち行列は、高性能ネットワーク上で実行するマシンを横断してデータを転送するためにネットワークプロトコルを用いる。
【００４４】
いくつかの実施形態では、ネットワークプロトコルは、Infiniband（ＩＢ）ネットワーク用リモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルである。
【００４５】
いくつかの実施形態では、トランザクションサーバ５００は第２の通信ユニット５４０をさらに備える。第２の通信ユニット５４０は、第１のトランザクションマシン中のローカルクライアントとの通信のために第１のトランザクションマシン中のトランザクションサーバ５００と関連付けられる第２のメッセージ待ち行列を用いるように構成される。
【００４６】
いくつかの実施形態では、第２のメッセージ待ち行列は、ローカルブリッジプロセスと関連付けられるインタープロセスコミュニケーション（ＩＰＣ）待ち行列である。
【００４７】
いくつかの実施形態では、トランザクションサーバ４００はリッスンユニット５５０をさらに備える。リッスンユニット５５０は異なるスレッドで同時に第１のメッセージ待ち行列および第２のメッセージ待ち行列の両方をリッスンするように構成され、メッセージを送るのにより速い経路を選ぶ。
【００４８】
図６に示されるように、トランザクションミドルウェアマシン環境中の第２のトランザクションマシンで用いるためのクライアントサーバ６００は、ファインディングユニット６１０と接続確立ユニット６２０とを含む。ファインディングユニット６１０は、第１のトランザクションマシン中のトランザクションサーバと関連付けられ、かつこれによって公開される第１のメッセージ待ち行列をトランザクションミドルウェアマシン環境中のアドバタイズドテーブル中に見つけ出すように構成される。接続確立ユニット６２０は、第１のメッセージ待ち行列を用いて第１のトランザクションマシン中のトランザクションサーバとの接続を確立するように構成される。
【００４９】
いくつかの実施形態では、クライアントサーバ６００は、第２のトランザクションマシン中のクライアントサーバと関連付けられる第２のメッセージ待ち行列を用いてメッセージを受信するように構成される受信ユニット６３０をさらに備える。いくつかの実施形態では、クライアントサーバ６００は、第１のメッセージ待ち行列を用いてサービスリクエストメッセージをトランザクションサーバにダイレクトに送るように構成される送出ユニット６４０をさらに備える。
【００５０】
いくつかの実施形態では、トランザクションサーバは、第１のメッセージ待ち行列からサービスリクエストメッセージを受信し、第２のトランザクションマシン中のクライアントサーバ６００と関連付けられる第２のメッセージ待ち行列を用いてクライアントサーバ６００にダイレクトにサービス応答メッセージを送るように動作する。
【００５１】
いくつかの実施形態では、トランザクションミドルウェアマシン環境中のマシン同士の間でメッセージを転送する際にシングルポイントボトルネックは存在しない。
【００５２】
いくつかの実施形態では、第１のメッセージ待ち行列は、高性能ネットワーク上で実行するマシンを横断してデータを転送するためにネットワークプロトコルを用いる。
【００５３】
いくつかの実施形態では、ネットワークプロトコルはInfiniband（ＩＢ）ネットワーク用リモートダイレクトメモリアクセス（ＲＤＭＡ）プロトコルである。
【００５４】
いくつかの実施形態では、トランザクションサーバは、第１のトランザクションマシン中のローカルクライアントとの通信のために、第１のトランザクションマシン中のトランザクションサーバと関連付けられる第２のメッセージ待ち行列を用いる。
【００５５】
いくつかの実施形態では、第２のメッセージ待ち行列は、ローカルブリッジプロセスと関連付けられるインタープロセスコミュニケーション（ＩＰＣ）待ち行列である。
【００５６】
いくつかの実施形態では、トランザクションサーバは、異なるスレッドで同時に第１のメッセージ待ち行列および第２のメッセージ待ち行列の両方をリッスンし、メッセージを送るのにより速い経路を選ぶ。
【００５７】
本発明は、本開示の教示に従ってプログラミングされる１つ以上のプロセッサ、メモリ、および／またはコンピュータ読出可能記憶媒体を含む、１つ以上の従来の汎用もしくは特化デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを用いて好都合に実現され得る。適切なソフトウェアコーディングは、ソフトウェア技術の当業者には明らかとなるように、本開示の教示に基づいて熟練したプログラマによって容易に準備され得る。
【００５８】
いくつかの実施形態では、本発明は、本発明のプロセスの任意のものを行なうようにコンピュータをプログラミングするように用いることができる命令をその上に／その中に記憶する記憶媒体またはコンピュータ読出可能媒体であるコンピュータプログラム製品を含む。記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、マイクロドライブ、および磁気光ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、ＤＲＡＭ、ＶＲＡＭ、フラッシュメモリデバイス、磁気もしくは光カード、（分子メモリＩＣを含む）ナノシステム、または、命令および／もしくはデータを記憶するのに好適な任意の種類の媒体もしくはデバイスを含むことができるが、これらに限定されるものではない。
【００５９】
本発明の以上の説明は、例示および説明の目的のために与えられた。網羅的であること、または開示される厳密な形態に発明を限定することは意図されない。当業者には多数の修正例および変形例が明らかであろう。変形例は本明細書中に開示される２つ以上の特徴の組合せを含み得る。実施形態は、発明の原則およびその実際的適用例を最もうまく説明し、それにより当業者がさまざまな実施形態についておよび企図される特定の使用に適したさまざまな修正例とともに発明を理解できるように選ばれ、記載された。発明の範囲は以下の請求項およびそれらの均等物によって規定されることが意図される。
【図１】
2014528611.tif 000007
【図２】
2014528611.tif 000008
【図３】
2014528611.tif 000009
【図４】
2014528611.tif 000010
【図５】
2014528611.tif 000011
【図６】
2014528611.tif 000012
【国際調査報告】
2014528611.tif 000013
2014528611.tif 000014
2014528611.tif 000015