JP6088528B2 - トランザクションミドルウェアマシン環境においてシングルポイントボトルネックを防止するためのシステムおよび方法 - Google Patents

トランザクションミドルウェアマシン環境においてシングルポイントボトルネックを防止するためのシステムおよび方法 Download PDF

Info

Publication number
JP6088528B2
JP6088528B2 JP2014533632A JP2014533632A JP6088528B2 JP 6088528 B2 JP6088528 B2 JP 6088528B2 JP 2014533632 A JP2014533632 A JP 2014533632A JP 2014533632 A JP2014533632 A JP 2014533632A JP 6088528 B2 JP6088528 B2 JP 6088528B2
Authority
JP
Japan
Prior art keywords
transaction
message queue
server
machine
message
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014533632A
Other languages
English (en)
Other versions
JP2014528611A (ja
JP2014528611A5 (ja
Inventor
リトル,トッド
ジン,ヨンシュン
ニウ,エルリー
Original Assignee
オラクル・インターナショナル・コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オラクル・インターナショナル・コーポレイション filed Critical オラクル・インターナショナル・コーポレイション
Publication of JP2014528611A publication Critical patent/JP2014528611A/ja
Publication of JP2014528611A5 publication Critical patent/JP2014528611A5/ja
Application granted granted Critical
Publication of JP6088528B2 publication Critical patent/JP6088528B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2012Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant and using different communication protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Description

著作権表示
この特許文献の開示の一部は著作権保護の対象となる内容を含む。著作権者は、特許商標庁の特許ファイルまたは記録に現れた際には特許文献または特許開示のいずれによるファクシミリ再現に対しても異議を申立てないが、それ以外のすべてのいかなる著作権も留保する。
発明の分野
本発明は概してコンピュータシステムおよびミドルウェアなどのソフトウェアに関し、特定的にはトランザクションミドルウェアマシン環境のサポートに関する。
背景
トランザクションミドルウェアシステムまたはトランザクション指向ミドルウェアは、オーガニゼーション内のさまざまなトランザクションを処理することができるエンタープライズアプリケーションサーバを含む。高性能ネットワークおよびマルチプロセッサコンピュータなどの新技術における発展により、トランザクションミドルウェアの性能をさらに向上する必要がある。これらは概して、発明の実施形態が扱おうとする分野である。
概要
本明細書中には、リモートダイレクトメモリアクセス(RDMA)プロトコルを用いるトランザクションミドルウェアマシン環境におけるローカルマシンとリモートマシンとの間でのメッセージ交換をサポートするためのシステムおよび方法を記載する。トランザクションミドルウェアマシン環境は、シングルポイントボトルネックを防止し、ローカルメッセージ転送のような態様の短い待ち時間を達成することができる。トランザクションミドルウェアマシン環境は、第1のメッセージ待ち行列および第2のメッセージ待ち行列を備える。第1のメッセージ待ち行列は、第1のメッセージ待ち行列中の待ち行列アドレスを用いてアクセス可能な第1のトランザクションマシン中のサーバと関連付けられる。第2のメッセージ待ち行列は、第2のトランザクションマシン中のクライアントと関連付けられる。クライアントは、第1のメッセージ待ち行列を用いてサービスリクエストメッセージをダイレクトにサーバに送ることができ、サーバは、第1のメッセージ待ち行列からサービスリクエストメッセージを受信し、第2のメッセージ待ち行列を用いてクライアントにダイレクトにサービス応答メッセージを送ることができる。
発明の実施形態に従う、ダイレクトメッセージ転送を提供することができるトランザクションミドルウェアマシン環境を図示する図である。 発明の実施形態に従う、トランザクションミドルウェアマシン環境においてダイレクトメッセージ転送を提供するための例示的なフローチャートである。 発明の実施形態に従うトランザクションミドルウェアマシン環境におけるバイパスブリッジプロセス特徴のセットアップを図示する図である。 発明の実施形態に従うトランザクションミドルウェアマシン環境の機能的構成を示す図である。 発明の実施形態に従うトランザクションサーバの機能ブロック図である。 発明の実施形態に従うクライアントサーバの機能ブロック図である。
詳細な説明
本明細書中には、複数のプロセッサを有する高速マシンおよび高性能ネットワーク接続を利用することができるTuxedoなどのトランザクションミドルウェアシステムのサポートのためのシステムおよび方法を記載する。トランザクションミドルウェアシステムは、リモートダイレクトメモリアクセス(RDMA)プロトコルを用いてローカルマシンとリモートマシンとの間でメッセージを交換してローカルメッセージ転送のような態様の短い待ち時間を達成することができる。トランザクションミドルウェアマシン環境は、第1のトランザクションマシン中のサーバと関連付けられる第1のメッセージ待ち行列を備え、サーバは、第1のメッセージ待ち行列中の待ち行列アドレスを用いてアクセスされるように動作する。トランザクションミドルウェアマシン環境は、第2のトランザクションマシン中のクライアントと関連付けられる第2のメッセージ待ち行列をさらに備える。クライアントは、第1のメッセージ待ち行列を用いてサービスリクエストメッセージをサーバにダイレクトに送るように動作し、サーバは、サービスリクエストメッセージを第1のメッセージ待ち行列から受信し、第2のメッセージ待ち行列を用いて、サービス応答メッセージをクライアントにダイレクトに送るように動作する。
発明の実施形態に従うと、システムは、WebLogic Suiteなどのアプリケーションサーバまたはミドルウェア環境とともに、たとえば64ビットプロセッサ技術、高性能大型メモリ、ならびに冗長InfiniBandおよびイーサネット(登録商標)ネットワーキングなどの高性能ハードウェアの組合せを備えて、迅速に設けることができ、かつ要求に応じてスケーリング可能な超並列インメモリグリッドを含む完全Java(登録商標)EEアプリケーションサーバコンプレックスを提供する。実施形態に従うと、システムは、フル、ハーフもしくはクォーターラック、または他の構成として配備可能であり、これは、アプリケーションサーバグリッド、記憶領域ネットワーク、およびInfiniBand(IB)ネットワークを提供する。ミドルウェアマシンソフトウェアは、たとえば、WebLogic server、JRockit、またはHotspot JVM、Oracle Linux(登録商標)、またはSolaris、およびOracle VMなどのアプリケーションサーバ、ミドルウェア、ならびに他の機能性を提供することができる。実施形態に従うと、システムは、IBネットワークを介して互いに通信する複数のコンピュートノード、IBスイッチゲートウェイ、および記憶ノードまたはユニットを含むことができる。ラック構成として実現する場合は、ラックの未使用部分を空いたままにする、またはフィラで占めることができる。
「Sun Oracle Exalogic」または「Exalogic」と本明細書中で称される発明の実施形態に従うと、システムは、Oracle Middleware SW suiteまたはWebLogicなどのミドルウェアまたはアプリケーションサーバソフトウェアをホスティングするための、配備が容易なソリューションである。本明細書中で記載するように、実施形態に従うと、システムは、1つ以上のサーバ、記憶ユニット、記憶ネットワーキングのためのIBファブリック、およびミドルウェアアプリケーションをホスティングするのに必要なすべての他の構成要素を備える「グリッド・イン・ア・ボックス」である。たとえばReal Application ClustersおよびExalogic Openストレージを用いて超並列グリッドアーキテクチャを活用することにより、全種類のミドルウェアアプリケーションのためにかなりの性能を与えることができる。システムは、線形I/Oスケーラビリティによって向上した性能を与え、使用および管理が単純であり、かつ必須の可用性および信頼性を与える。
発明の実施形態に従うと、Tuxedoは、高性能の分散ビジネスアプリケーションの構築、実行、および管理を可能にするとともに、多数の複数層アプリケーション開発ツールがトランザクションミドルウェアとして用いてきたソフトウェアモジュールの組である。Tuxedoは、分散コンピューティング環境で分散トランザクション処理を管理するのに使用可能なミドルウェアプラットフォームである。これは、無限のスケーラビリティおよび仕様ベースの相互運用性を与えつつ、エンタープライズレガシーアプリケーションをアンロックし、かつそれらをサービス指向アーキテクチャに拡張するための実績あるプラットフォームである。
発明の実施形態に従うと、Tuxedoシステムなどのトランザクションミドルウェアシステムは、Exalogicミドルウェアマシンなどの複数のプロセッサを有する高速マシンおよびInfiniband(IB)ネットワークなどの高性能ネットワーク接続を利用することができる。
発明の実施形態に従うと、トランザクションミドルウェアシステムは、リモートダイレクトメモリアクセス(RDMA)プロトコルを用いてローカルマシンとリモートマシンとの間でメッセージを交換してローカルメッセージ転送のような態様の短い待ち時間を達成することができる。
ダイレクトメッセージ転送を提供する
発明の実施形態に従うと、Exalogicミドルウェアマシン環境などのミドルウェアマシン環境は、Tuxedoアプリケーションなどのトランザクションアプリケーションのための密に結合されかつ論理的に均一な環境であり得る。トランザクションミドルウェアマシン環境中のマシン同士の間でメッセージを転送する際に、シングルポイントボトルネックは存在しない。
図1は、発明の実施形態に従う、ダイレクトメッセージ転送を提供することができるトランザクションミドルウェアマシン環境の図示を示す。図1に示されるように、トランザクションミドルウェアマシン環境は、複数のトランザクションミドルウェアマシン、すなわちマシンA101およびマシンB102を含む。各々のトランザクションミドルウェアマシンは、たとえばTuxedoのBulletein Board(BB)などのアドバタイズドテーブル112または113を含む。アドバタイズドテーブルを異なるマシンが共有することができる。
図1に示されるように、マシンB102上のクライアントBは、クライアントBが必要とするサービスを提供するサーバを求めてアドバタイズドテーブルをルックアップすることができる。このターゲットサーバは、マシンB102上のサーバBなどのローカルサーバまたはマシンA101上のサーバAなどのリモートサーバのいずれかであり得る。
サービスがローカルサーバ上にある場合、クライアントBは、マシンB102上のIPC待ち行列B108などの1つ以上のシステムVインタープロセスコミュニケーション(IPC)待ち行列を介してサービスリクエストメッセージをターゲットサーバに送り、サービス応答メッセージを受信することができる。
一方、サービスがマシンA101上のサーバAなどのリモートサーバ上にある場合、クライアントBは、複数のマシン間で物理的に分散されていても、RDMAメッセージング待ち行列を用いてメッセージをダイレクトに交換することができる。RDMA待ち行列は、IBネットワークなどの高性能ネットワーク上で実行するRDMAプロトコルに基づく、メッセージを送りかつ受信することができるライブラリである。
図1に示されるように、クライアントサーバB106は、トランザクションサーバA103と関連付けられるマシンA101上のRDMA待ち行列A110の中に、サービスリクエストメッセージをダイレクトに入れることができる。トランザクションサーバA103は、RDMA待ち行列A110からサービスリクエストメッセージを入手することができ、サービスリクエストを処理する。次に、トランザクションサーバA103は、クライアントBと関連付けられるマシンB102上のRDMA待ち行列B111の中にダイレクトにサービス応答メッセージを入れることができ、これによりクライアントBはサービス応答を入手することができる。
これに代えて、図1に示されるように、マシンA101上のブリッジプロセスA114およびマシンB102上のブリッジプロセスB115が存在し得る。これらのブリッジプロセスを用いて、マシンB102上のクライアントBがメッセージをリモートマシンA101にターゲット決めする場合、クライアントBはまず、ローカルブリッジプロセスであるブリッジプロセスB115と関連付けられるシステムV IPC待ち行列B108にサービスリクエストメッセージを送ることができる。次に、ブリッジプロセスB115は、別のブリッジプロセスであるリモートターゲットマシンA101上のブリッジプロセスA114にこのメッセージをネットワークを介して転送することができる。最後に、リモートターゲットマシンA101にあるブリッジプロセスA114は、ターゲットトランザクションサーバA103と関連付けられるシステムV IPC待ち行列A107にメッセージを送ることができる。しかしながら、この手順は時間がかかる可能性があり、比較的長い待ち時間を導入する可能性がある。また、ブリッジプロセスの各々は、負荷が重い場合にあまりに繁忙である可能性があり、システム全体のスループットに影響を及ぼし得るシングルポイントボトルネックになる可能性がある。
図1に示されるように、トランザクションサーバA103は、異なるスレッドで同時にシステムV IPC待ち行列A107およびRDMA待ち行列A110の両方をリッスンすることができる。クライアントBなどのメッセージ送信元は、トランザクションサーバA103にメッセージを送るのにより速いほうを選ぶことができる。一般的に、リモートメッセージ転送にはRDMA待ち行列を用いることができ、ローカルメッセージ転送にはシステムV IPC待ち行列を用いることができる。というのも、RDMA待ち行列は、ローカルメッセージ転送にはシステムV IPC待ち行列より遅いことがあるからである。
図2は、発明の実施形態に従うトランザクションミドルウェアマシン環境においてダイレクトメッセージ転送を提供するための例示的なフローチャートを図示する。図2に示されるように、ステップ201では、第1のトランザクションマシン中のトランザクションサーバと関連付けられる第1のメッセージ待ち行列が提供される。次に、ステップ202で、トランザクションサーバは、トランザクションミドルウェアマシン環境中のアドバタイズドテーブル中の第1のメッセージ待ち行列を公開することができる。最後に、ステップ203で、第2のトランザクションマシン中のクライアントサーバは、アドバタイズドテーブル中に第1のメッセージ待ち行列を見つけ出し、第1のメッセージ待ち行列を用いて第1のトランザクションマシン中のトランザクションサーバとの接続を確立することができる。
RDMAプロトコルを用いてTuxedo中のブリッジプロセスをバイパスする
発明の実施形態に従うと、トランザクションミドルウェアシステムは、Tuxedo中のMSGQ待ち行列ライブラリなどのRDMAプロトコルを介したRDMA待ち行列を用いてローカルマシンとリモートマシンとの間でメッセージを交換することができる。高性能IBネットワーク上で実行するマシンを横断してデータを転送するのにRDMAプロトコルを用いることができる。RDMAプロトコルを用いて、メッセージ送信元および受信者は、複数のマシン間で物理的に分散していたとしても、メッセージをダイレクトに交換することができる。
Tuxedoは、クラス分散クライアント−サーバ構造を有するトランザクションミドルウェアである。各々のTuxedoサーバは、ドメインを通じてアドバタイズされるテーブル中にそのMSGQ待ち行列名を公開することができる。クライアントサーバは、アドバタイズドテーブル中にターゲットサーバの待ち行列名を見つけ出し、これが初めての接続である場合は、ターゲットサーバとの接続を確立することができる。次に、クライアントサーバおよびターゲットサーバは、この待ち行列名に応じて接続を確立して、確立された接続を介してメッセージを送ることができる。
加えて、Tuxedoは、ドメイン内の各マシン中のブリッジプロセスを用いて、マシンを横断してメッセージを交換することができる。ブリッジプロセスを用いて、まず、リモートマシンをターゲットとするあらゆるメッセージを、ローカルブリッジプロセスと関連付けられるシステムV IPC待ち行列に送ることができる。次に、ローカルブリッジプロセスは、ネットワークを介して、リモートターゲットマシンにあるリモートブリッジプロセスにこのメッセージを転送することができる。最後に、リモートターゲットマシンにあるリモートブリッジプロセスは、ターゲットシステムV IPC待ち行列にメッセージを送ることができる。
発明の実施形態に従うと、RDMA待ち行列ライブラリは、システムVスタイルを用いて実現される一連のメッセージ転送APIを用いて、最小限のコード変更で実現可能である。これらのメッセージ転送APIは、たとえば優先順位がある待ち行列からメッセージを受信するなどの、システムV IPC待ち行列が提供する同様の機能を提供することができる。
図3は、発明の実施形態に従うトランザクションミドルウェアマシン環境におけるバイパスブリッジプロセス特徴のセットアップの図示を示す。図3に示されるように、ステップ301で、ユーザ311はまずDAEMONプロセスを開始することができる。DAEMONプロセス313は、Tuxedoアプリケーションなどのトランザクションアプリケーションとは別個のアプリケーションであり得る。また、Tuxedoの例では、各Tuxedoマシンごとに少なくとも1つのDAEMONプロセスが開始される。次に、ステップ302および303で、ユーザは、アプリケーションサーバおよびトランザクションアプリケーション(Tuxedo)をそれぞれ構成することができる。最後に、ステップ304で、ユーザは、Tuxedoアプリケーションを開始してバイパスブリッジ特徴を用いることができ、ステップ305で、ユーザは、プロセス間でメッセージを交換するための通信を可能にする。
以下の表1は、Tuxedo中のDAEMONプログラムを実行するための異なるオプションを示す。
たとえば、以下のコマンドを用いてDAEMONプログラムを開始することができる。
Msgq_daemon-i 192.168.10.4-p 4040-m 100000000-k 9100
加えて、メッセージ待ち行列を利用するため、Tuxedoアプリケーションのために異なる種類のパラメータが構成される。これらのパラメータは、少なくとも、メッセージ待ち行列のパラメータと、DAEMONプロセスと通信するのにTuxedoアプリケーション中のプロセスが用いるパラメータとを含む。これらのパラメータは、TuxedoUBBファイルなどのコンフィギュレーションファイルのMACHINESセクションの中に構成され得る。以下の表2は、これらの環境変数を示す。
以下のリスト1は、例示的なTuxedoコンフィギュレーションファイルの2、3個のセクションを含む。
以下のリスト2は、Tuxedoコンフィギュレーションファイル中のRESOURCESセクションの例である。
上記例に示すように、TuxedoコンフィギュレーションファイルのRESOURCESセクション中の項目OPTIONSにEXALOGICおよびRDMAを加えることができる。OPTIONSがRDMAおよびEXALOGICの両方を含む場合、バイパス特徴が活性化され、ローカルブリッジプロセスがバイパスされる。そうでない場合、バイパス特徴はオフにされる。RDMAオプションをイネーブルする必要があれば、EXALOGICオプションがまずイネーブルされる。RESOURCESセクション中のRDMAオプションをイネーブルした後には、MACHINESセクションの属性「TYPE」が設定されないことがある。というのも、デフォルトでは、MPモードのいずれのマシンもRDMA特徴をサポートする(同じ種類の)Exalogicマシンであるからである。
図4を参照して、発明の実施形態に従うトランザクションミドルウェアマシン環境においてダイレクトメッセージ転送を提供するためのシステム400を説明する。図4はシステム400の機能的構成を示す。システム400は、提供ユニット410と、公開ユニット420と、メモリ430と、メッセージ待ち行列ファインダ440と、接続確立ユニット450とを含む。
提供ユニットは、マシンB103などの第1のトランザクションマシン中のトランザクションサーバと関連付けられる第1のメッセージ待ち行列を提供するように構成される。公開ユニット420は、トランザクションミドルウェアマシン環境中のアドバタイズドテーブル中の第1のメッセージ待ち行列をトランザクションサーバを介して公開するように構成される。メモリ430は、アドバタイズドテーブルを記憶するように構成される。メッセージ待ち行列ファインダ440は、アドバタイズドテーブル中の第1のメッセージ待ち行列を見つけ出すように構成される。接続確立ユニット450は、第1のメッセージ待ち行列を用いて第1のトランザクションマシン中のトランザクションサーバとの接続を確立するように構成される。メッセージ待ち行列ファインダ440および接続確立ユニット450はクライアントサーバ中に実現可能である。
発明の実施形態に従うと、図5および図6は、上述のような発明の原則に従って構成されるトランザクションサーバ500およびクライアントサーバ600の機能ブロック図を示す。トランザクションサーバおよびクライアントサーバの機能ブロックは、発明の原則を実行する、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組合せによって実現され得る。図5および図6に記載の機能ブロックは組合されるかまたはサブブロックに分離されて上述のような発明の原則を実現してもよいことが当業者には理解される。したがって、本明細書中の説明は、本明細書中に記載の機能ブロックの任意の可能な組合せまたは分離またはさらなる定義をサポートし得る。
図5に示されるように、トランザクションミドルウェアマシン環境中の第1のトランザクションマシンで用いるためのトランザクションサーバ500は、公開ユニット510と接続確立ユニット520とを含む。公開ユニット510は、トランザクションミドルウェアマシン環境中のアドバタイズドテーブル中で、第1のトランザクションマシン中のトランザクションサーバ500と関連付けられる第1のメッセージ待ち行列を公開するように構成される。接続確立ユニット520は、アドバタイズドテーブル中に第1のメッセージ待ち行列を見つけ出すように動作する第2のトランザクションマシン中のクライアントサーバに応答して、第1のメッセージ待ち行列を用いて第2のトランザクションマシン中のクライアントサーバとの接続を確立するように構成される。
いくつかの実施形態では、クライアントサーバは、第2のトランザクションマシン中の第2のメッセージ待ち行列と関連付けられ、クライアントサーバは、第2のメッセージ待ち行列を用いてメッセージを受信するように動作する。
いくつかの実施形態では、クライアントサーバは、第1のメッセージ待ち行列を用いてサービスリクエストメッセージをダイレクトにトランザクションサーバ500に送るように動作する。
いくつかの実施形態では、トランザクションサーバ500は第1の通信ユニット530をさらに備える。第1の通信ユニット530は、サービスリクエストメッセージを第1のメッセージ待ち行列から受信し、第2のトランザクションマシン中のクライアントサーバと関連付けられる第2のメッセージ待ち行列を用いて、サービス応答メッセージをクライアントサーバにダイレクトに送るように構成される。
いくつかの実施形態では、トランザクションミドルウェアマシン環境中のマシン同士の間でメッセージを転送する際にシングルポイントボトルネックは存在しない。
いくつかの実施形態では、第1のメッセージ待ち行列は、高性能ネットワーク上で実行するマシンを横断してデータを転送するためにネットワークプロトコルを用いる。
いくつかの実施形態では、ネットワークプロトコルは、Infiniband(IB)ネットワーク用リモートダイレクトメモリアクセス(RDMA)プロトコルである。
いくつかの実施形態では、トランザクションサーバ500は第2の通信ユニット540をさらに備える。第2の通信ユニット540は、第1のトランザクションマシン中のローカルクライアントとの通信のために第1のトランザクションマシン中のトランザクションサーバ500と関連付けられる第2のメッセージ待ち行列を用いるように構成される。
いくつかの実施形態では、第2のメッセージ待ち行列は、ローカルブリッジプロセスと関連付けられるインタープロセスコミュニケーション(IPC)待ち行列である。
いくつかの実施形態では、トランザクションサーバ400はリッスンユニット550をさらに備える。リッスンユニット550は異なるスレッドで同時に第1のメッセージ待ち行列および第2のメッセージ待ち行列の両方をリッスンするように構成され、メッセージを送るのにより速い経路を選ぶ。
図6に示されるように、トランザクションミドルウェアマシン環境中の第2のトランザクションマシンで用いるためのクライアントサーバ600は、ファインディングユニット610と接続確立ユニット620とを含む。ファインディングユニット610は、第1のトランザクションマシン中のトランザクションサーバと関連付けられ、かつこれによって公開される第1のメッセージ待ち行列をトランザクションミドルウェアマシン環境中のアドバタイズドテーブル中に見つけ出すように構成される。接続確立ユニット620は、第1のメッセージ待ち行列を用いて第1のトランザクションマシン中のトランザクションサーバとの接続を確立するように構成される。
いくつかの実施形態では、クライアントサーバ600は、第2のトランザクションマシン中のクライアントサーバと関連付けられる第2のメッセージ待ち行列を用いてメッセージを受信するように構成される受信ユニット630をさらに備える。いくつかの実施形態では、クライアントサーバ600は、第1のメッセージ待ち行列を用いてサービスリクエストメッセージをトランザクションサーバにダイレクトに送るように構成される送出ユニット640をさらに備える。
いくつかの実施形態では、トランザクションサーバは、第1のメッセージ待ち行列からサービスリクエストメッセージを受信し、第2のトランザクションマシン中のクライアントサーバ600と関連付けられる第2のメッセージ待ち行列を用いてクライアントサーバ600にダイレクトにサービス応答メッセージを送るように動作する。
いくつかの実施形態では、トランザクションミドルウェアマシン環境中のマシン同士の間でメッセージを転送する際にシングルポイントボトルネックは存在しない。
いくつかの実施形態では、第1のメッセージ待ち行列は、高性能ネットワーク上で実行するマシンを横断してデータを転送するためにネットワークプロトコルを用いる。
いくつかの実施形態では、ネットワークプロトコルはInfiniband(IB)ネットワーク用リモートダイレクトメモリアクセス(RDMA)プロトコルである。
いくつかの実施形態では、トランザクションサーバは、第1のトランザクションマシン中のローカルクライアントとの通信のために、第1のトランザクションマシン中のトランザクションサーバと関連付けられる第2のメッセージ待ち行列を用いる。
いくつかの実施形態では、第2のメッセージ待ち行列は、ローカルブリッジプロセスと関連付けられるインタープロセスコミュニケーション(IPC)待ち行列である。
いくつかの実施形態では、トランザクションサーバは、異なるスレッドで同時に第1のメッセージ待ち行列および第2のメッセージ待ち行列の両方をリッスンし、メッセージを送るのにより速い経路を選ぶ。
本発明は、本開示の教示に従ってプログラミングされる1つ以上のプロセッサ、メモリ、および/またはコンピュータ読出可能記憶媒体を含む、1つ以上の従来の汎用もしくは特化デジタルコンピュータ、コンピューティングデバイス、マシン、またはマイクロプロセッサを用いて好都合に実現され得る。適切なソフトウェアコーディングは、ソフトウェア技術の当業者には明らかとなるように、本開示の教示に基づいて熟練したプログラマによって容易に準備され得る。
いくつかの実施形態では、本発明は、本発明のプロセスの任意のものを行なうようにコンピュータをプログラミングするように用いることができる命令をその上に/その中に記憶する記憶媒体またはコンピュータ読出可能媒体であるコンピュータプログラム製品を含む。記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および磁気光ディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気もしくは光カード、(分子メモリICを含む)ナノシステム、または、命令および/もしくはデータを記憶するのに好適な任意の種類の媒体もしくはデバイスを含むことができるが、これらに限定されるものではない。
本発明の以上の説明は、例示および説明の目的のために与えられた。網羅的であること、または開示される厳密な形態に発明を限定することは意図されない。当業者には多数の修正例および変形例が明らかであろう。変形例は本明細書中に開示される2つ以上の特徴の組合せを含み得る。実施形態は、発明の原則およびその実際的適用例を最もうまく説明し、それにより当業者がさまざまな実施形態についておよび企図される特定の使用に適したさまざまな修正例とともに発明を理解できるように選ばれ、記載された。発明の範囲は以下の請求項およびそれらの均等物によって規定されることが意図される。

Claims (12)

  1. トランザクションミドルウェアマシン環境においてダイレクトメッセージ転送を提供するためのシステムであって、
    第1のトランザクションマシン中のトランザクションサーバと関連付けられる第1のメッセージ待ち行列と、
    前記トランザクションミドルウェアマシン環境中のアドバタイズドテーブルとを備え、前記トランザクションサーバは、前記アドバタイズドテーブル中の前記第1のメッセージ待ち行列を公開するように動作し、
    第2のトランザクションマシン中のクライアントサーバは、前記アドバタイズドテーブル中の前記第1のメッセージ待ち行列を見つけ出し、かつ前記第1のメッセージ待ち行列を用いて前記第1のトランザクションマシン中の前記トランザクションサーバとの接続を確立するように動作し、
    前記第1のトランザクションマシン中の前記トランザクションサーバと関連付けられる第2のメッセージ待ち行列をさらに備え、
    前記トランザクションサーバは、前記第1のメッセージ待ち行列および前記第2のメッセージ待ち行列の両方をリッスンし、メッセージを送るのにより速い経路を選ぶ、システム。
  2. トランザクションミドルウェアマシン環境においてダイレクトメッセージ転送を提供するためのシステムであって、
    第1のトランザクションマシン中のトランザクションサーバと関連付けられる第1のメッセージ待ち行列と、
    前記トランザクションミドルウェアマシン環境中のアドバタイズドテーブルとを備え、前記トランザクションサーバは、前記アドバタイズドテーブル中の前記第1のメッセージ待ち行列を公開するように動作し、
    第2のトランザクションマシン中のクライアントサーバは、前記アドバタイズドテーブル中の前記第1のメッセージ待ち行列を見つけ出し、かつ前記第1のメッセージ待ち行列を用いて前記第1のトランザクションマシン中の前記トランザクションサーバとの接続を確立するように動作し、
    前記第1のトランザクションマシン中の前記トランザクションサーバと関連付けられる第2のメッセージ待ち行列をさらに備え、
    前記トランザクションサーバは、前記第1のトランザクションマシン中のローカルクライアントとの通信のために前記第2のメッセージ待ち行列を用いる、システム。
  3. 前記クライアントサーバは、前記第2のトランザクションマシン中の第のメッセージ待ち行列と関連付けられ、前記クライアントサーバは、前記第のメッセージ待ち行列を用いてメッセージを受信するように動作する、請求項1または2に記載のシステム。
  4. 前記クライアントサーバは、前記第1のメッセージ待ち行列を用いてサービスリクエストメッセージを前記トランザクションサーバにダイレクトに送るように動作する、請求項に記載のシステム。
  5. 前記トランザクションサーバは、前記サービスリクエストメッセージを前記第1のメッセージ待ち行列から受信し、前記第2のトランザクションマシン中の前記クライアントサーバと関連付けられる前記のメッセージ待ち行列を用いてサービス応答メッセージを前記クライアントサーバにダイレクトに送るように動作する、請求項に記載のシステム。
  6. 前記第1のメッセージ待ち行列は、高性能ネットワーク上で実行するマシンにわたってデータを転送するためのネットワークプロトコルに基づくメッセージを送受信するためのライブラリである、請求項1から5のいずれか1項に記載のシステム。
  7. 前記ネットワークプロトコルは、Infiniband(IB)ネットワーク用リモートダイレクトメモリアクセス(RDMA)プロトコルである、請求項6に記載のシステム。
  8. 前記第2のメッセージ待ち行列は、ローカルブリッジプロセスと関連付けられるインタープロセスコミュニケーション(IPC)待ち行列である、請求項1〜7のいずれか1項に記載のシステム。
  9. トランザクションミドルウェアマシン環境においてダイレクトメッセージ転送を提供するための方法であって、
    第1のトランザクションマシン中のトランザクションサーバと関連付けられる第1のメッセージ待ち行列を提供することと、
    前記トランザクションサーバを介して、前記トランザクションミドルウェアマシン環境中のアドバタイズドテーブル中の前記第1のメッセージ待ち行列を公開することと、
    第2のトランザクションマシン中のクライアントサーバが前記アドバタイズドテーブル中の前記第1のメッセージ待ち行列を見つけ出し、かつ前記第1のメッセージ待ち行列を用いて前記第1のトランザクションマシン中の前記トランザクションサーバとの接続を確立できるようにすることと
    前記第1のトランザクションマシン中の前記トランザクションサーバと関連付けられる第2のメッセージ待ち行列を提供することと、
    前記トランザクションサーバを介して、前記第1のメッセージ待ち行列および前記第2のメッセージ待ち行列の両方をリッスンすることと、メッセージを送るのにより速い経路を選ぶこととを備える、方法。
  10. トランザクションミドルウェアマシン環境においてダイレクトメッセージ転送を提供するための方法であって、
    第1のトランザクションマシン中のトランザクションサーバと関連付けられる第1のメッセージ待ち行列を提供することと、
    前記トランザクションサーバを介して、前記トランザクションミドルウェアマシン環境中のアドバタイズドテーブル中の前記第1のメッセージ待ち行列を公開することと、
    第2のトランザクションマシン中のクライアントサーバが、前記アドバタイズドテーブル中の前記第1のメッセージ待ち行列を見つけ出し、かつ前記第1のメッセージ待ち行列を用いて前記第1のトランザクションマシン中の前記トランザクションサーバとの接続を確立できるようにすることと、
    前記第1のトランザクションマシン中の前記トランザクションサーバと関連付けられる第2のメッセージ待ち行列を提供することと、
    前記トランザクションサーバが、前記第1のトランザクションマシン中のローカルクライアントとの通信のために前記第2のメッセージ待ち行列を用いることとを備える、方法。
  11. トランザクションミドルウェアマシン環境においてダイレクトメッセージ転送を提供するためのコンピュータにより実行されるコンピュータプログラムであって、
    前記コンピュータプログラムは、前記コンピュータに、
    第1のトランザクションマシン中のトランザクションサーバと関連付けられる第1のメッセージ待ち行列を提供することと、
    前記トランザクションサーバを介して、前記トランザクションミドルウェアマシン環境中のアドバタイズドテーブル中の前記第1のメッセージ待ち行列を公開することとを実行させ、
    第2のトランザクションマシンは、前記アドバタイズドテーブル中の前記第1のメッセージ待ち行列を見つけ出し、かつ前記第1のメッセージ待ち行列を用いて前記第1のトランザクションマシン中の前記トランザクションサーバとの接続を確立するように構成されており、
    前記コンピュータプログラムは、前記コンピュータに、
    前記第1のトランザクションマシン中の前記トランザクションサーバと関連付けられる第2のメッセージ待ち行列を提供することと、
    前記トランザクションサーバを介して、前記第1のメッセージ待ち行列および前記第2のメッセージ待ち行列の両方をリッスンすることと、メッセージを送るのにより速い経路を選ぶこととを、さらに実行させる、プログラム。
  12. トランザクションミドルウェアマシン環境においてダイレクトメッセージ転送を提供するためのコンピュータにより実行されるコンピュータプログラムであって、
    前記コンピュータプログラムは、前記コンピュータに、
    第1のトランザクションマシン中のトランザクションサーバと関連付けられる第1のメッセージ待ち行列を提供することと、
    前記トランザクションサーバを介して、前記トランザクションミドルウェアマシン環境中のアドバタイズドテーブル中の前記第1のメッセージ待ち行列を公開することとを実行させ、
    第2のトランザクションマシンは、前記アドバタイズドテーブル中の前記第1のメッセージ待ち行列を見つけ出し、かつ前記第1のメッセージ待ち行列を用いて前記第1のトランザクションマシン中の前記トランザクションサーバとの接続を確立するように構成されており、
    前記コンピュータプログラムは、前記コンピュータに、
    前記第1のトランザクションマシン中の前記トランザクションサーバと関連付けられる第2のメッセージ待ち行列を提供することと、
    前記第1のトランザクションマシン中のローカルクライアントとの通信のために前記第2のメッセージ待ち行列を用いることとを、さらに実行させる、プログラム。
JP2014533632A 2011-09-29 2012-09-24 トランザクションミドルウェアマシン環境においてシングルポイントボトルネックを防止するためのシステムおよび方法 Active JP6088528B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161541054P 2011-09-29 2011-09-29
US61/541,054 2011-09-29
US13/415,670 2012-03-08
US13/415,670 US9116761B2 (en) 2011-09-29 2012-03-08 System and method for preventing single-point bottleneck in a transactional middleware machine environment
PCT/US2012/056945 WO2013048970A1 (en) 2011-09-29 2012-09-24 System and method for preventing single-point bottleneck in a transactional middleware machine environment

Publications (3)

Publication Number Publication Date
JP2014528611A JP2014528611A (ja) 2014-10-27
JP2014528611A5 JP2014528611A5 (ja) 2015-10-08
JP6088528B2 true JP6088528B2 (ja) 2017-03-01

Family

ID=47993667

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014533632A Active JP6088528B2 (ja) 2011-09-29 2012-09-24 トランザクションミドルウェアマシン環境においてシングルポイントボトルネックを防止するためのシステムおよび方法

Country Status (6)

Country Link
US (1) US9116761B2 (ja)
EP (1) EP2761453B1 (ja)
JP (1) JP6088528B2 (ja)
KR (1) KR101956320B1 (ja)
CN (1) CN103827830B (ja)
WO (1) WO2013048970A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495325B2 (en) 2013-12-30 2016-11-15 International Business Machines Corporation Remote direct memory access (RDMA) high performance producer-consumer message processing
US9723110B2 (en) * 2014-04-28 2017-08-01 Oracle International Corporation System and method for supporting a proxy model for across-domain messaging in a transactional middleware machine environment
CN104539661B (zh) * 2014-12-11 2018-11-06 曙光信息产业(北京)有限公司 消息队列处理方法和装置
US10528759B2 (en) * 2017-10-17 2020-01-07 Aagey Holding, LLC Application programming interface bridge for transporting a local request from a local client system to a target server system, and method thereof
CN113420076A (zh) * 2021-06-02 2021-09-21 浪潮软件股份有限公司 一种政务服务平台的服务调度方法及调度模型系统
CN114553956B (zh) * 2022-01-04 2024-01-09 北京国电通网络技术有限公司 基于uep中间件的数据传输方法和系统

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5133053A (en) * 1987-02-13 1992-07-21 International Business Machines Corporation Interprocess communication queue location transparency
US6157927A (en) * 1998-04-22 2000-12-05 Unisys Corporation Methods and apparatus for enabling a component in a first transaction processing environment to access a resource in another environment that is under the control of an Xatmi complaint transaction manager
FI980985A (fi) * 1998-05-04 1999-11-05 Sonera Oy Järjestelmä ja menetelmä palvelupyynnön hajauttamiseksi
US6615282B1 (en) * 1999-05-21 2003-09-02 Intel Corporation Adaptive messaging
US7281030B1 (en) * 1999-09-17 2007-10-09 Intel Corporation Method of reading a remote memory
US6766358B1 (en) 1999-10-25 2004-07-20 Silicon Graphics, Inc. Exchanging messages between computer systems communicatively coupled in a computer system network
US7171484B1 (en) 2000-05-24 2007-01-30 Krause Michael R Reliable datagram transport service
US6611883B1 (en) 2000-11-16 2003-08-26 Sun Microsystems, Inc. Method and apparatus for implementing PCI DMA speculative prefetching in a message passing queue oriented bus system
US6938138B2 (en) 2001-01-11 2005-08-30 International Business Machines Corporation Method and apparatus for managing access to memory
US7185105B2 (en) 2001-05-11 2007-02-27 Bea Systems, Inc. Application messaging system with flexible message header structure
US7711793B1 (en) 2001-07-17 2010-05-04 Adaptec, Inc. No single point of failure RAID box using SATA drives
US6789143B2 (en) 2001-09-24 2004-09-07 International Business Machines Corporation Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries
US7487264B2 (en) 2002-06-11 2009-02-03 Pandya Ashish A High performance IP processor
GB0308991D0 (en) * 2003-04-17 2003-05-28 Psion Digital Ltd A data access replication or communication system comprising a distributed software application
US7631314B2 (en) 2003-08-26 2009-12-08 International Business Machines Corporation Method and system for dynamically associating type information and creating and processing meta-data in a service oriented architecture
US7990994B1 (en) 2004-02-13 2011-08-02 Habanero Holdings, Inc. Storage gateway provisioning and configuring
US7383290B2 (en) * 2004-03-09 2008-06-03 Hewlett-Packard Development Company, L.P. Transaction processing systems and methods utilizing non-disk persistent memory
US7620693B1 (en) * 2004-03-29 2009-11-17 Sun Microsystems, Inc. System and method for tracking infiniband RDMA read responses
US20050220128A1 (en) 2004-04-05 2005-10-06 Ammasso, Inc. System and method for work request queuing for intelligent adapter
US7574536B2 (en) 2005-04-22 2009-08-11 Sun Microsystems, Inc. Routing direct memory access requests using doorbell addresses
US7464189B2 (en) 2005-05-23 2008-12-09 International Business Machines Corporation System and method for creation/deletion of linear block address table entries for direct I/O
US7865684B2 (en) 2005-06-27 2011-01-04 Ab Initio Technology Llc Managing message queues
US8116312B2 (en) 2006-02-08 2012-02-14 Solarflare Communications, Inc. Method and apparatus for multicast packet reception
WO2007149745A2 (en) * 2006-06-19 2007-12-27 Liquid Computing Corporation Methods, systems and protocols for application to application communications
US8233380B2 (en) 2006-11-06 2012-07-31 Hewlett-Packard Development Company, L.P. RDMA QP simplex switchless connection
US7895601B2 (en) * 2007-01-10 2011-02-22 International Business Machines Corporation Collective send operations on a system area network
US7864787B2 (en) * 2007-03-26 2011-01-04 Voltaire Ltd. Device, system and method of multicast communication
US8001246B2 (en) 2007-05-22 2011-08-16 Oracle International Corporation System and method for exposing distributed transaction services as web services
US7805551B2 (en) * 2007-09-27 2010-09-28 Integrated Device Technology, Inc. Multi-function queue to support data offload, protocol translation and pass-through FIFO
CN101227379B (zh) * 2008-01-25 2012-07-04 中兴通讯股份有限公司 一种实现数据同步的系统和方法
US8312190B2 (en) * 2008-03-06 2012-11-13 Integrated Device Technology, Inc. Protocol translation in a serial buffer
JP2010165022A (ja) * 2009-01-13 2010-07-29 Ricoh Co Ltd プロセッサ間通信装置、プロセッサ間通信方法、プログラムおよび記録媒体
US20100183024A1 (en) 2009-01-21 2010-07-22 Brocade Communications Systems, Inc Simplified rdma over ethernet and fibre channel
US8305883B2 (en) * 2009-03-20 2012-11-06 Intel Corporation Transparent failover support through pragmatically truncated progress engine and reversed complementary connection establishment in multifabric MPI implementation
US20120221621A1 (en) * 2009-10-15 2012-08-30 Tomoyoshi Sugawara Distributed system, communication means selection method, and communication means selection program
US8839267B2 (en) 2011-02-21 2014-09-16 Universidade Da Coruna-Otri Method and middleware for efficient messaging on clusters of multi-core processors

Also Published As

Publication number Publication date
KR101956320B1 (ko) 2019-03-08
KR20140070611A (ko) 2014-06-10
JP2014528611A (ja) 2014-10-27
CN103827830A (zh) 2014-05-28
EP2761453A1 (en) 2014-08-06
US20130086148A1 (en) 2013-04-04
CN103827830B (zh) 2017-06-09
US9116761B2 (en) 2015-08-25
EP2761453B1 (en) 2020-05-20
WO2013048970A1 (en) 2013-04-04

Similar Documents

Publication Publication Date Title
US9495392B2 (en) System and method for parallel multiplexing between servers in a cluster
JP6310461B2 (ja) 分散型データグリッドクラスタにおけるスケーラブルなメッセージバスをサポートするシステムおよび方法
US9558048B2 (en) System and method for managing message queues for multinode applications in a transactional middleware machine environment
JP6088528B2 (ja) トランザクションミドルウェアマシン環境においてシングルポイントボトルネックを防止するためのシステムおよび方法
US9723110B2 (en) System and method for supporting a proxy model for across-domain messaging in a transactional middleware machine environment
US10826977B2 (en) System and method for supporting asynchronous request/response in a network environment
JP6154385B2 (ja) トランザクションミドルウェアマシン環境において複合メッセージヘッダをサポートするためのシステムおよび方法
JP6151699B2 (ja) トランザクショナルミドルウェアマシン環境において異なるメッセージキューをサポートするためのシステムおよび方法
JP2013543169A (ja) ミドルウェアマシン環境を含むシステム
JP2014528612A5 (ja)

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150818

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150818

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161012

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170110

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170203

R150 Certificate of patent or registration of utility model

Ref document number: 6088528

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250