JP6151699B2 - トランザクショナルミドルウェアマシン環境において異なるメッセージキューをサポートするためのシステムおよび方法 - Google Patents

トランザクショナルミドルウェアマシン環境において異なるメッセージキューをサポートするためのシステムおよび方法 Download PDF

Info

Publication number
JP6151699B2
JP6151699B2 JP2014533633A JP2014533633A JP6151699B2 JP 6151699 B2 JP6151699 B2 JP 6151699B2 JP 2014533633 A JP2014533633 A JP 2014533633A JP 2014533633 A JP2014533633 A JP 2014533633A JP 6151699 B2 JP6151699 B2 JP 6151699B2
Authority
JP
Japan
Prior art keywords
queue
transactional
ipc
rdma
address
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
JP2014533633A
Other languages
English (en)
Other versions
JP2014528612A5 (ja
JP2014528612A (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 JP2014528612A publication Critical patent/JP2014528612A/ja
Publication of JP2014528612A5 publication Critical patent/JP2014528612A5/ja
Application granted granted Critical
Publication of JP6151699B2 publication Critical patent/JP6151699B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1865Transactional file systems
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9036Common buffer combined with individual queues
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Description

著作権表示:
この特許文書の開示の一部は、著作権保護の対象である内容を含む。著作権者は、何人によるこの特許文書または特許情報開示の、それが特許商標庁の特許のファイルまたは記録において現われるとおりの、ファクシミリ複製に異議を唱えないが、その他の態様においては、いかなる著作権もすべて保有する。
発明の分野:
この発明は、一般に、コンピュータシステムおよびミドルウェアのようなソフトウェアに関し、特に、トランザクショナルミドルウェアマシン環境をサポートすることに関する。
背景:
トランザクショナルミドルウェアシステムまたはトランザクション指向型ミドルウェアは、組織内におけるさまざまなトランザクションを処理することができるエンタープライズアプリケーションサーバを含む。高性能ネットワークおよびマルチプロセッサコンピュータのような新技術における開発で、トランザクショナルミドルウェアの性能をさらに改善するニーズがある。これらは、一般に、この発明の実施例が対応するように意図される分野である。
概要:
ここに記載されるのは、トランザクショナルミドルウェアマシン環境において異なるメッセージキューをサポートするためのシステムおよび方法である。トランザクショナルミドルウェアマシン環境は、第1のキューテーブルおよび第2のキューテーブルを含む、広告されるテーブルを含み、第1のキューテーブルは第1のメッセージキューについてアドレス情報を記憶し、第2のキューテーブルは第2のメッセージキューについてアドレス情報を記憶する。広告されるテーブルは、さらに、トランザクショナルサーバによって提供されるトランザクショナルサービスを見つけ出すよう、第1のトランザクショナルクライアントによって用いられるように適応可能である。第1のトランザクショナルクライアントは、第2のキューテーブルに記憶されるトランザクショナルサービスのアドレス情報を示すキーを求めて第1のキューテーブルを参照するように動作する。
この発明の実施例に従って異なるメッセージキューをサポートするトランザクショナルミドルウェアマシン環境の例示を示す。 この発明の実施例に従ってトランザクショナルミドルウェアマシン環境において異なるメッセージキューをサポートするための例示的なフローチャートを例示する。 この発明の実施例に従って、バイパスブリッジ特徴がアクティブにされたトランザクショナルミドルウェアマシン環境の例示を示す。 この発明の実施例に従って、バイパスブリッジ特徴がアクティブにされないトランザクショナルミドルウェアマシン環境の例示を示す。 この発明の実施例に従ってトランザクショナルミドルウェアマシン環境の機能図を示す。 この発明の実施例に従うトランザクショナルサーバの構造を例示するブロック図である。 この発明の実施例に従うトランザクショナルクライアントの構造を例示するブロック図である。
詳細な記載:
ここに記載されるのは、複数のプロセッサをともなう高速マシンを利用することができる、Tuxedoのようなトランザクショナルミドルウェアシステム、および高性能ネットワーク接続をサポートするための、システムならびに方法である。広告されるサービステーブルを、トランザクショナルサーバによって用いて、プロセス間通信(IPC)を介する代わりにリモートダイレクトメモリアクセス(RDMA)プロトコルを介してメッセージを送受することができるメッセージキューを見つけ出すことができる。トランザクショナルミドルウェアマシン環境は、第1のメッセージキューおよび第2のメッセージキューをリッスンする(listen)サーバを含む。トランザクショナルミドルウェアマシン環境は、第1のキューテーブルおよび第2のキューテーブルを含む、広告されるテーブルをさらに含み、第1のキューテーブルは第1のメッセージキューについてアドレス情報を記憶し、第2のキューテーブルは第2のメッセージキューについてアドレス情報を記憶する。広告されるテーブルは、サーバによって提供されるトランザクショナルサービスを見つけ出すよう、クライアントによって用いられるように適応可能である。第1のキューテーブルは、第2のキューテーブルにおいて記憶されるトランザクショナルサービスのアドレス情報を示すキーを含む。クライアントは、第1のキューテーブルにおいてキーを参照した後、第2のメッセージキューにおいてトランザクショナルサービスのアドレス情報を得ることができる。
この発明のある実施例によれば、このシステムは、高性能ハードウェア、たとえば64ビットのプロセッサ技術、高性能大型メモリ、ならびに冗長InfiniBandおよびイーサネット(登録商標)ネットワーキングの組合わせを、WebLogic Suiteのようなアプリケーションサーバまたはミドルウェア環境とともに含んで、迅速にプロビジョニングすることができ、オンデマンドでスケーリングすることができる、巨大に平行なインメモリグリッドを含む完全なJava(登録商標) EEアプリケーションサーバコンプレックスを提供する。ある実施例によれば、このシステムは、完全なラック、半分のラック、もしくは4分の1のラック、またはアプリケーションサーバグリッド、記憶域ネットワークおよびInfiniBand(IB)ネットワークを提供する他の構成として展開することができる。ミドルウェアマシンソフトウェアは、たとえば、WebLogic Server、JRockitまたはHotspot JVM、Oracle Linux(登録商標)またはSolaris、およびOracle VMのような、アプリケーションサーバ、ミドルウェアならびに他の機能性を提供することができる。ある実施例によれば、このシステムは、IBネットワークを介して互いと通信する、複数個の計算ノード、IBスイッチゲートウェイ、および記憶ノードまたはユニットを含むことができる。ラック構成として実現されるとき、ラックの未使用部分は、空のままにされるか、またはフィラーによって占められることができる。
"Sun Oracle Exalogic"または"Exalogic"とここでは呼ばれるこの発明の実施例によれば、このシステムは、Oracle Middleware SWスイートのようなミドルウェアもしくはアプリケーションサーバソフトウェア、またはWeblogicをホストするための、展開させることが容易なソリューションである。ここに記載されるように、ある実施例によれば、このシステムは、1つ以上のサーバ、記憶ユニット、記憶ネットワーキングのためのIBファブリック、およびミドルウェアアプリケーションをホストするよう必要とされる他のすべての構成要素を含む「箱の中のグリッド」である。たとえばReal Application ClustersおよびExalogic Openストレージを用いて、巨大に平行なグリッドアーキテクチャをてこ入れすることによって、大きな性能をすべてのタイプのミドルウェアアプリケーションに対して届けることができる。このシステムは、線形のI/Oスケーラビリティをともなう改善された性能を届け、使用および管理が単純であり、ミッションクリティカルな利用可能性および信頼性を届ける。
この発明のある実施例によれば、Tuxedoは、高性能の分散型ビジネスアプリケーションの構成、実行および管理を可能にするソフトウェアモジュールの組であり、多くの複数階層アプリケーション開発ツールによってトランザクショナルミドルウェアとして用いられてきた。Tuxedoは、分散型コンピューティング環境において分散型トランザクション処理を管理するために用いることができるミドルウェアプラットフォームである。それは、無限のスケーラビリティおよび規格に基づく相互運用性を届けながら、エンタープライズレガシーアプリケーションをロック解除し、それらをサービス指向型アーキテクチャに拡張するための、検証済みのプラットフォームである。
この発明のある実施例によれば、Tuxedoシステムのようなトランザクショナルミドルウェアシステムは、Exalogicミドルウェアマシンのような複数のプロセッサをともなう高速マシン、およびInfiniband(IB)ネットワークのような高性能ネットワーク接続を利用することができる。
この発明のある実施例によれば、トランザクショナルミドルウェアシステムは、リモートダイレクトメモリアクセス(RDMA)プロトコルを用いてローカルマシンと遠隔マシンとの間でメッセージを交換することにより、たとえばブリッジプロセスをバイパスし、シングルポイントボトルネックを防ぐことにより、ローカルメッセージ転送のような態様において短いレイテンシを達成することができる。RDMAプロトコルを用いてローカルマシンと遠隔マシンとの間でメッセージを交換することは、2012年3月8日に提出された、「トランザクショナルミドルウェアマシン環境においてシングルポイントボトルネックを防ぐためのシステムおよび方法(SYSTEM AND METHOD FOR PREVENTING SINGLE-POINT BOTTLENECK IN A TRANSACTIONAL MIDDLEWARE MACHINE ENVIRONMENT)」と題される米国特許出願第13/415,670号において開示され、その全体をここに引用により援用する。
異なるメッセージキューをサポートする
この発明のある実施例によれば、RDMAメッセージキューおよびシステムVプロセス間通信(IPC)メッセージキューのような異なるメッセージキューをトランザクショナルミドルウェアマシン環境においてサポートすることにより、マシン間でメッセージを転送する際にシングルポイントボトルネックを防ぐことができる。
図1は、この発明のある実施例に従って、異なるメッセージキューをサポートするトランザクショナルミドルウェアマシン環境の例示を示す。図1において示されるように、トランザクショナルサーバ106は、Tuxedoにおける掲示板のような広告されるテーブル101において1つ以上のトランザクショナルサービス110を公開することができる。広告されるテーブルは、サーバによって提供されるトランザクショナルサービスを見つけ出すよう、1つ以上のクライアント104および105によって用いられるように適応可能である。
この発明のある実施例によれば、広告されるサービステーブルは、IPCキューテーブル102に加えて、RDMAキューテーブル103を含むことができる。IPCキューは、IPCメッセージキュー107についてアドレス情報を記憶し、IPCキューにおいてトランザクショナルサービスを見つけ出すよう、トランザクショナルクライアントサーバ105によって用いることができる。加えて、RDMAキューテーブルは、RDMAメッセージキュー108についてアドレス情報を記憶し、RDMAキューにおいてトランザクショナルサービスを見つけ出すよう、トランザクショナルクライアントサーバ104によって用いることができる。
この発明のある実施例によれば、トランザクショナルサーバは、IPCキューおよびRDMAキューを同時にリッスンすることができる。RDMAキューテーブルは、RDMAキューをシステムV IPCキューと同時におよび一貫して用いることができるように、実現することができる。
トランザクショナルクライアントは、広告されるテーブルにおいてキューテーブルを参照して、それが必要とするサービスの位置情報を得ることができる。クライアントは、まず、広告されるテーブル101、たとえばTuxedo Bulletin Board(BB)において、IPCキューテーブル102を参照することができる。得られたアドレス情報が実IPCキューアドレス、たとえば正の値111をともなうアドレス1である場合、クライアントは、このIPCキューアドレスを用いて、要求されたトランザクショナルサービスに対してIPCキュー107を用いてトランザクショナルサーバにアクセスすることができる。
他方で、トランザクショナルクライアントは、実IPCキューアドレスの代わりにキー113を得ることができる。たとえば、得られたアドレス情報は、負の値をともなう「偽の」IPCキューアドレスであり得る。クライアントは、次いで、RDMAキューにおいてキューアドレス114に対して「偽の」IPCキューアドレスを用いて、RDMAキューテーブルを参照することができる。次いで、クライアントは、RDMAキューを用いて、要求されたトランザクショナルサービスを求めてトランザクショナルサーバにアクセスすることができる。
図2は、この発明のある実施例に従って、トランザクショナルミドルウェアマシン環境において異なるメッセージキューをサポートするための例示的なフローチャートを例示する。図2において示されるように、ステップ201において、第1のキューテーブルおよび第2のキューテーブルを含む、広告されるテーブルが提供され、第1のキューテーブルは第1のメッセージキューについてアドレス情報を記憶し、第2のキューテーブルは第2のメッセージキューについてアドレス情報を記憶する。次いで、ステップ202において、広告されるテーブルは、トランザクショナルサーバによって提供されるトランザクショナルサービスを見つけ出すよう、第1のトランザクショナルクライアントによって用いることができる。最後に、ステップ203において、第1のトランザクショナルクライアントは、第2のキューテーブルに記憶されるトランザクショナルサービスのアドレス情報を示すキーを求めて第1のキューテーブルを参照することができる。
Tuxedo Bulletin Board(BB)においてMSGQキュー情報を参照する
この発明のある実施例によれば、Tuxedoアプリケーションは、ブリッジプロセスをバイパスし、ローカルメッセージ転送と同様の態様においてより短いレイテンシを達成するために、RDMAプロトコルを利用し、RDMAキューであるMSGQキューを用いることができる。
バイパスブリッジ特徴がアクティブにされると、Tuxedoクライアントは、システムV IPCキューの代わりにMSGQキューを用いて、Tuxedoサーバにメッセージを送ることができる。バイパスブリッジ特徴がアクティブにされないとき、Tuxedoクライアントは、MSGQキューの代わりにシステムV IPCキューを用いて、Tuxedoサーバにメッセージを送ることができる。
この発明のある実施例によれば、Tuxedoの異なるバージョンはマルチプロセス構成において共存することができる。バイパスブリッジ特徴のないTuxedoのバージョンとともにインストールされたマシンにおけるプロセスは、バイパスブリッジ特徴をともなうTuxedoのバージョンにおいて広告されるテーブル(または掲示板)に、該Tuxedo Bulletin Boardにおける内部構造は変わらないままであるものの、問題なくアクセスすることができる。
たとえば、バイパスブリッジ特徴のないTuxedoのバージョンにおいては、共有メモリにおける掲示板は、各々が8バイトの「長い」の変数であるシステムV IPCキューアドレスのみを含む。他方、バイパスブリッジ特徴をともなうTuxedoのバージョンにおいては、RDMA MSGQアドレスは128バイトのアレイであり得る。従って、Tuxedo掲示板が変更される場合、異なる二進数における掲示板フィールドのオフセットは間違いであり得、バイナリ互換機能は壊されている。
図3は、この発明のある実施例に従って、バイパスブリッジ特徴がアクティブにされたトランザクショナルミドルウェアマシン環境の例示を示す。図3に示されるように、MSGQキューテーブル304をTuxedoにおいて形成することができるのは、バイパスブリッジ特徴がアクティブにされる場合である。このMSGQキューテーブル306または308における各エントリは、MSGQ/システム V IPCキューの対についての情報:{MSGQキュー名、MSGQキューキー、システムV IPCキューアドレス}を含む。
バイパスブリッジ特徴がアクティブにされるので、IPCキューテーブル303は、偽のシステムV IPCキューアドレス305または307を含むことができ、それはRDMAキューの位置がRDMAキューテーブルにおいて記憶されることを示す。たとえば、偽のシステムV IPCキューアドレスは負の値であり得る。次いで、クライアントはキュー情報を得るためにRDMAキューテーブルを覗くことができる。
図3に示されるように、掲示板データ構造は、バイパスブリッジ特徴が実現される状態で、変わらなく保持することができる。128バイトのMSGQアドレスエントリのテーブルを含む別のセクションを、掲示板の終わりに添付して形成することができる。エントリのインデックスは、システムV IPCキューアドレスフィールドにおいて元の掲示板において対応するエントリにおいて記憶することができる。多くて65536個のRDMA MSGQキューがあるので、インデックスは16ビットを必要とするかもしれず、他の16ビットを用いて、このキューアドレスがシステムV IPCキューアドレスであるかまたはRDMA MSGQキューアドレスについてのインデックスであるかを区別する。
図4は、この発明のある実施例に従って、バイパスブリッジ特徴がアクティブにされないトランザクショナルミドルウェアマシン環境の例示を示す。図4に示されるように、バイパスブリッジ特徴がアクティブにされないとき、MSGQセクションは形成されず、掲示板の内部構造は変わらないままである。したがって、バイパスブリッジ特徴がアクティブにされないとき、クライアントはIPCキューテーブル402において正のシステムV IPCキューアドレス404および406を見ることしかできない。掲示板におけるキューアドレスはシステムV IPCキューアドレスを示し、したがって、二進数は掲示板において任意のフィールドの正確なオフセットを有することができる。
この発明のある実施例によれば、データ構造変更は分離することができ、したがって、広告されるサービステーブルのデータ構造は変更される必要がないので、コード変更はより小さな範囲に限定することができる。さらに、CベースのアプリケーションであるTuxedoにおいてバイパスブリッジ特徴によって導入されたデータ構造変更は、Tuxedoの異なるバージョン間の相互運用性を維持する。
図5を参照して、この発明のある実施例に従うシステム500が記載される。図5はシステム500によって実現される機能を示す機能図である。システム500は、メモリ500、ロケータ520および参照ユニット530を含む。メモリ500は第1のキューテーブルおよび第2のキューテーブルを含む、広告されるテーブルを提供するように構成される。第1のキューテーブルは第1のメッセージキューについてアドレス情報を記憶し、第2のキューテーブルは第2のメッセージキューについてアドレス情報を記憶する。
ロケータ520は、広告されるテーブルが、トランザクショナルサーバによって提供されるトランザクショナルサービスを見つけ出すよう第1のトランザクショナルクライアントによって用いられることを可能にするように構成される。参照ユニット530は、第1のトランザクショナルクライアントが第2のキューテーブルに記憶されるトランザクショナルサービスのアドレス情報を示すキーを求めて第1のキューテーブルを参照することを可能にするように構成される。
図6は、この発明の実施例に従ってトランザクショナルミドルウェアマシン環境において異なるメッセージキューをサポートするためのトランザクショナルサーバ610の構造を例示するブロック図である。この発明の原理を実行するために、トランザクショナルサーバ610のブロックは、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組合わせによって実現されてもよい。図6に記載されるブロックを、組合わせるか、またはサブブロックに分離して、上記のこの発明の原理を実現してもよいことが、当業者には理解される。したがって、ここにおける記載は、ここに記載される機能的ブロックのいかなる可能な組合わせまたは分離またはさらには定義もサポートしてもよい。
図6に示されるように、トランザクショナルサーバ610は、広告されるテーブル(図示せず)において1つ以上のトランザクショナルサービスのアドレス情報を公開することに対して公開ユニット621を含んでもよい。上に記載されるように、広告されるテーブルは第1のキューテーブルおよび第2のキューテーブルを含んでもよく、第1のキューテーブルは第1のメッセージキューについてアドレス情報を記憶し、第2のキューテーブルは第2のメッセージキューについてアドレス情報を記憶する。広告されるテーブルは、1つ以上のトランザクショナルサービスからあるトランザクショナルサービスを見つけ出すよう第1のトランザクショナルクライアント(図示せず)によって用いられるように適応可能であってもよい。第1のトランザクショナルクライアントは、第2のキューテーブルに記憶されるトランザクショナルサービスのアドレス情報を示すキーを求めて第1のキューテーブルを参照するように動作してもよい。
この発明のある実施例によれば、トランザクショナルサーバ610は、さらに、第1のメッセージキューおよび第2のメッセージキューの両方をリッスンすることに対してリッスンユニット612を含んでもよい。
この発明のある実施例によれば、第1のトランザクショナルクライアントは、第2のキューテーブルに記憶されるトランザクショナルサービスのアドレス情報に基づいて、第2のメッセージキューを介してトランザクショナルサーバにメッセージを送るように動作してもよい。
この発明のある実施例によれば、広告されるテーブルは、1つ以上のトランザクショナルサービスからあるトランザクショナルサービスを見つけ出すよう第2のトランザクショナルクライアント(図示せず)によって用いられるように適応可能であってもよい。第2のトランザクショナルクライアントは、第1のキューテーブルに記憶されるトランザクショナルサービスのアドレス情報に基づいて、第1のメッセージキューを用いてローカルブリッジプロセスを介してトランザクショナルサーバにメッセージを送るように動作してもよい。
この発明のある実施例によれば、第1のメッセージキューはIPCキューであってもよく、第2のメッセージキューはRDMAキューであってもよい。キーは偽のIPCキューアドレスであってもよい。
この発明のある実施例によれば、第2のキューテーブルは、第1のキューテーブルのみをともなう既存の広告されるテーブルの終わりに添付されてもよい。
この発明のある実施例によれば、第2のキューテーブルにおける各エントリは、第1のメッセージキューおよび第2のメッセージキューの両方についての情報についての情報を含んでもよい。
図7は、この発明のある実施例に従ってトランザクショナルミドルウェアマシン環境において異なるメッセージキューをサポートするためのトランザクショナルクライアント710の構造を例示するブロック図である。この発明の原理を実行するために、トランザクショナルクライアント710のブロックは、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアとの組合わせによって実現されてもよい。図6に記載されるブロックを、組合わせるか、またはサブブロックに分離して、上記のこの発明の原理を実現してもよいことが、当業者には理解される。したがって、ここにおける記載は、ここに記載される機能的ブロックのいかなる可能な組合わせまたは分離またはさらには定義もサポートしてもよい。
図7に示されるように、トランザクショナルサーバ710は、1つ以上のトランザクショナルサービスからあるトランザクショナルサービスを見つけ出すよう、1つ以上のトランザクショナルサービスのアドレス情報がトランザクショナルサーバ(図示せず)によって公開される広告されるテーブル(図示せず)を使用することに関して、使用ユニット711を含んでもよい。上に記載されるように、広告されるテーブルは第1のキューテーブルおよび第2のキューテーブルを含んでもよい。第1のキューテーブルは第1のメッセージキューについてアドレス情報を記憶し、第2のキューテーブルは第2のメッセージキューについてアドレス情報を記憶する。トランザクショナルサーバ710は、さらに、第2のキューテーブルに記憶されるトランザクショナルサービスのアドレス情報を示すキーを求めて第1のキューテーブルを参照することに関して、参照ユニット712を含んでもよい。
この発明のある実施例によれば、トランザクショナルクライアント710は、さらに、第2のキューテーブルに記憶されるトランザクショナルサービスのアドレス情報に基づいて、第2のメッセージキューを介してトランザクショナルサーバにメッセージを送信することに関して、送信ユニット713を含んでもよい。
この発明のある実施例によれば、トランザクショナルクライアントは、さらに、第1のキューテーブルに記憶されるトランザクショナルサービスのアドレス情報に基づいて、第1のメッセージキューを用いてローカルブリッジプロセスを介してトランザクショナルサーバにメッセージを送信することに関して、送信ユニット713を含んでもよい。
この発明のある実施例によれば、トランザクショナルサーバは、第1のメッセージキューおよび第2のメッセージキューの両方をリッスンしてもよい。
この発明のある実施例によれば、第1のメッセージキューはIPCキューであってもよく、第2のメッセージキューはRDMAキューであってもよい。キーは偽のIPCキューアドレスであってもよい。
この発明のある実施例によれば、第2のキューテーブルは、第1のキューテーブルのみをともなう既存の広告されるテーブルの終わりに添付されてもよい。
この発明のある実施例によれば、第2のキューテーブルにおける各エントリは、第1のメッセージキューおよび第2のメッセージキューの両方についての情報についての情報を含んでもよい。
別の実施例は、トランザクショナルミドルウェアマシン環境において異なるメッセージキューをサポートするためのシステムを含み、このシステムは、第1のキューテーブルおよび第2のキューテーブルを含む、広告されるテーブルを提供するための手段を含み、第1のキューテーブルは第1のメッセージキューについてアドレス情報を記憶し、第2のキューテーブルは第2のメッセージキューについてアドレス情報を記憶し、このシステムはさらに、広告されるテーブルが、第1のトランザクショナルクライアントによって用いられて、トランザクショナルサーバによって提供されるトランザクショナルサービスを見つけ出すことを可能にするための手段と、第1のトランザクショナルクライアントが、第2のキューテーブルに記憶されるトランザクショナルサービスのアドレス情報を示すキーを求めて第1のキューテーブルを参照することを可能にするための手段とを含む。
別の実施例は、前記トランザクショナルサーバが第1のメッセージキューおよび第2のメッセージキューの両方をリッスンすることを可能にするための手段をさらに含むシステムを含む。
別の実施例は、第1のトランザクショナルクライアントが第2のキューテーブルに記憶されるトランザクショナルサービスのアドレス情報に基づいて第2のメッセージキューを介してトランザクショナルサーバにメッセージを送ることを可能にするための手段をさらに含むシステムを含む。
別の実施例は、広告されるテーブルが、第2のトランザクショナルクライアントによって用いられて、トランザクショナルサーバによって提供されるトランザクショナルサービスを見つけ出すことを可能にするための手段をさらに含むシステムを含む。
別の実施例は、第2のトランザクショナルクライアントが、第1のキューテーブルに記憶されるトランザクショナルサービスのアドレス情報に基づいて、第1のメッセージキューを用いてローカルブリッジプロセスを介してトランザクショナルサーバにメッセージを送ることを可能にするための手段をさらに含むシステムを含む。
別の実施例は、第1のメッセージキューはIPCキューであり第2のメッセージキューはRDMAキューであるシステムを含む。
別の実施例は、キーは偽のIPCキューアドレスであるシステムを含む。
別の実施例は、第2のキューテーブルが、第1のキューテーブルのみをともなう既存の広告されるテーブルの終わりに添付されることを可能にするための手段をさらに含むシステムを含む。
別の実施例は、トランザクショナルサーバが広告されるテーブルにおいてトランザクショナルサービスのアドレス情報を公開することを可能にするための手段をさらに含むシステムを含む。
別の実施例は、第2のキューテーブルにおける各エントリが第1のメッセージキューおよび第2のメッセージキューの両方についての情報についての情報を含むことを可能にするための手段をさらに含むシステムを含む。
この発明は、この開示の教示に従ってプログラミングされる、1つ以上の従来の汎用もしくは特化されたデジタルコンピュータ、計算装置、マシン、もしくは1つ以上のプロセッサを含むマイクロプロセッサ、メモリおよび/またはコンピュータ読取可能記憶媒体を使用して、簡便に実施されてもよい。ソフトウェア技術分野における当業者には明らかであるように、適切なソフトウェアコーディングが、この開示の教示に基づいて、熟練したプログラマによって、容易に準備されることができる。
いくつかの実施例においては、この発明は、この発明のプロセスの任意のものを実行するようにコンピュータをプログラミングするために使用することができる、命令が記憶された記憶媒体またはコンピュータ読取可能媒体であるコンピュータプログラム製品を含む。記憶媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む任意のタイプのディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリ素子、磁気もしくは光カード、ナノシステム(分子のメモリICを含む)、または命令および/もしくはデータを記憶するのに好適な任意のタイプの媒体もしくは装置を含み得るが、それらに限定はされない。
この発明の前述の記載は例示および記載の目的に対して提供された。それは、網羅的であったり、またはこの発明を開示された形式そのものに限定するように意図されるものではない。多くの修正および変形が当業者には明らかである。変形は、ここに開示される2つ以上の特徴の組合わせを含んでもよい。実施例は、この発明およびその実用的適用の原理について最もよく説明し、それによって、他の当業者が、この発明を、さまざまな実施例について、および企図される特定の使用に適したさまざまな修正とともに理解することを可能にするために選択され記載された。この発明の範囲は以下の特許請求の範囲およびそれらの等価物によって定義されることが意図される。

Claims (12)

  1. トランザクショナルミドルウェアマシン環境において、IPC(Inter-Process Communication)メッセージキューおよびRDMA(Remote Direct Memory Access)メッセージキューをサポートするためのシステムであって、
    トランザクショナルクライアントと、前記トランザクショナルクライアントによってアクセス可能なメモリと、トランザクショナルサーバとを備え、
    前記メモリは、IPCキューテーブルおよびRDMAキューテーブルを含む、広告されるテーブルを記憶し、
    前記IPCキューテーブルは、IPCメッセージキューについてのIPCキューアドレスを格納し、
    前記RDMAキューテーブルは、RDMAメッセージキューについてのRDMAキューアドレスを格納し、
    前記IPCキューテーブルは、前記RDMAキューテーブルにおけるRDMAキューアドレスを示すキーをさらに格納し、
    前記トランザクショナルクライアントは、前記IPCキューテーブルを参照して、前記IPCキューアドレスまたは前記キーを取得することにより、トランザクショナルサービスを提供する前記トランザクショナルサーバにアクセスするように構成されており、
    前記トランザクショナルクライアントは、前記IPCキューアドレスを取得した場合には、前記IPCキューアドレスを用いて前記トランザクショナルサーバにアクセスし、
    前記トランザクショナルクライアントは、前記キーを取得した場合には、前記キーを用いて前記RDMAキューテーブルにおけるRDMAキューアドレスを特定し、前記特定されたRDMAキューアドレスを用いて前記トランザクショナルサーバにアクセスする、システム。
  2. トランザクショナルミドルウェアマシン環境において、IPC(Inter-Process Communication)メッセージキューおよびRDMA(Remote Direct Memory Access)メッセージキューをサポートするためのシステムにより実行される方法であって、
    前記システムは、IPCキューテーブルおよびRDMAキューテーブルを含む、広告されるテーブルを記憶するためのメモリを備え、
    前記IPCキューテーブルは、IPCメッセージキューについてのIPCキューアドレスを格納し、
    前記RDMAキューテーブルは、RDMAメッセージキューについてのRDMAアドレスを格納し、
    前記IPCキューテーブルは、前記RDMAキューテーブルにおけるRDMAキューアドレスを示すキーをさらに格納し、
    前記方法は、
    第1のトランザクショナルクライアントが、前記IPCキューテーブルを参照して前記IPCキューアドレスまたは前記キーを取得することにより、トランザクショナルサービスを提供するトランザクショナルサーバにアクセスするステップを含み、
    前記IPCキューアドレスが取得された場合、前記アクセスするステップは、前記IPCキューアドレスを用いて前記トランザクショナルサーバにアクセスすることを含み、
    前記キーが取得された場合、前記アクセスするステップは、前記キーを用いて前記RDMAキューテーブルに記憶されるRDMAキューアドレスを特定し、前記特定されたRDMAキューアドレスを用いて前記トランザクショナルサーバにアクセスすることを含む、方法。
  3. 前記トランザクショナルサーバが前記IPCメッセージキューおよび前記RDMAメッセージキューの両方をリッスンするステップをさらに含む、請求項2に記載の方法。
  4. 前記第1のトランザクショナルクライアントが、前記RDMAキューテーブルに格納されている、前記トランザクショナルサーバにアクセスするための前記RDMAキューアドレスに基づいて、前記RDMAメッセージキューを介して前記トランザクショナルサーバにメッセージを送るステップをさらに含む、請求項2または3に記載の方法。
  5. 前記広告されるテーブルは、前記トランザクショナルサービスを提供する前記トランザクショナルサーバにアクセスするために第2のトランザクショナルクライアントによって用いられる、請求項2〜4のいずれか1に記載の方法。
  6. 前記第2のトランザクショナルクライアントが、前記IPCキューテーブルに格納されている、前記トランザクショナルサーバにアクセスするため前記IPCキューアドレスに基づいて、前記IPCメッセージキューを用いて前記トランザクショナルサーバにメッセージを送るステップをさらに含む、請求項5に記載の方法。
  7. 前記キーは、負の値を有するIPCキューアドレスであ、請求項2〜6のいずれか1に記載の方法。
  8. 前記負の値を有するIPCキューアドレス偽のIPCキューアドレスである、請求項に記載の方法。
  9. 前記RDMAキューテーブル、前記IPCキューテーブルの終わりに添付される、請求項2〜8のいずれか1に記載の方法。
  10. 前記トランザクショナルサーバが前記広告されるテーブルにおいて前記トランザクショナルサービスを提供する前記トランザクショナルサーバにアクセスするためのアドレス情報として、前記IPCキューアドレスおよび前記RDMAキューアドレスを公開するステップをさらに含む、請求項2〜9のいずれか1に記載の方法。
  11. 前記RDMAキューテーブルにおける各エントリは、前記IPCメッセージキューおよび前記RDMAメッセージキューの両方についての情報をむ、請求項2〜10のいずれか1に記載の方法。
  12. トランザクショナルミドルウェアマシン環境において、IPC(Inter-Process Communication)メッセージキューおよびRDMA(Remote Direct Memory Access)メッセージキューをサポートするためのシステムに含まれるトランザクショナルクライアントのプロセッサにより実行されるコンピュータプログラムであって、
    前記システムは、IPCキューテーブルおよびRDMAキューテーブルを含む、広告されるテーブルを格納するためのメモリを備え、
    前記IPCキューテーブルは、IPCメッセージキューについてのIPCキューアドレスを格納し、
    前記RDMAキューテーブルは、RDMAメッセージキューについてのRDMAアドレスを格納し、
    前記IPCキューテーブルは、前記RDMAキューテーブルにおけるRDMAキューアドレスを示すキーをさらに格納し、
    前記コンピュータプログラムは、前記プロセッサに、
    前記IPCキューテーブルを参照して前記IPCキューアドレスまたは前記キーを取得することにより、トランザクショナルサービスを提供するトランザクショナルサーバにアクセスするステップを実行させ、
    前記IPCキューアドレスが取得された場合、前記アクセスするステップは、前記IPCキューアドレスを用いて前記トランザクショナルサーバにアクセスすることを含み、
    前記キーが取得された場合、前記アクセスするステップは、前記キーを用いて前記RDMAキューテーブルに記憶されるRDMAキューアドレスを特定し、前記特定されたRDMAキューアドレスを用いて前記トランザクショナルサーバにアクセスすることを含む、コンピュータプログラム。
JP2014533633A 2011-09-29 2012-09-24 トランザクショナルミドルウェアマシン環境において異なるメッセージキューをサポートするためのシステムおよび方法 Active JP6151699B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161541055P 2011-09-29 2011-09-29
US61/541,055 2011-09-29
US13/415,700 2012-03-08
US13/415,700 US8832217B2 (en) 2011-09-29 2012-03-08 System and method for supporting different message queues in a transactional middleware machine environment
PCT/US2012/056950 WO2013048971A1 (en) 2011-09-29 2012-09-24 System and method for supporting different message queues in a transactional middleware machine environment

Publications (3)

Publication Number Publication Date
JP2014528612A JP2014528612A (ja) 2014-10-27
JP2014528612A5 JP2014528612A5 (ja) 2017-02-09
JP6151699B2 true JP6151699B2 (ja) 2017-06-21

Family

ID=47993701

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014533633A Active JP6151699B2 (ja) 2011-09-29 2012-09-24 トランザクショナルミドルウェアマシン環境において異なるメッセージキューをサポートするためのシステムおよび方法

Country Status (7)

Country Link
US (1) US8832217B2 (ja)
EP (1) EP2761822B1 (ja)
JP (1) JP6151699B2 (ja)
KR (1) KR101983331B1 (ja)
CN (1) CN103843290B (ja)
IN (1) IN2014CN02102A (ja)
WO (1) WO2013048971A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103516905B (zh) * 2013-09-24 2015-08-19 北京奇虎科技有限公司 服务定位方法和服务定位器
US9749445B2 (en) * 2014-04-28 2017-08-29 Oracle International Corporation System and method for updating service information for across-domain messaging in a transactional middleware machine environment
CN108762945A (zh) * 2018-05-14 2018-11-06 浪潮通用软件有限公司 一种支持多种消息队列的实现方法
CN113626221B (zh) * 2021-08-10 2024-03-15 迈普通信技术股份有限公司 一种消息入队方法及装置

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1124945A (ja) * 1997-06-30 1999-01-29 Nec Corp 複数プロセス間におけるデータ転送方法及び方式
FI980985A (fi) 1998-05-04 1999-11-05 Sonera Oy Järjestelmä ja menetelmä palvelupyynnön hajauttamiseksi
JP2000020490A (ja) * 1998-07-01 2000-01-21 Fujitsu Ltd 遠隔手続き呼出し機構またはオブジェクトリクエストブローカ機構を有する計算機、データ転送方法、および転送方法記憶媒体
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
US8005966B2 (en) * 2002-06-11 2011-08-23 Pandya Ashish A Data processing system using internet protocols
US7418505B2 (en) * 2003-05-26 2008-08-26 Ewha University Industry Collaboration Foundation IP address lookup using either a hashing table or multiple hash functions
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
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
JP5163128B2 (ja) * 2006-01-31 2013-03-13 富士通株式会社 共有メモリ型マルチプロセッサにおける手続の呼び出し方法、手続の呼び出しプログラム、記録媒体、およびマルチプロセッサ
US8116312B2 (en) 2006-02-08 2012-02-14 Solarflare Communications, Inc. Method and apparatus for multicast packet reception
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
US8527577B2 (en) 2007-05-22 2013-09-03 Oracle International Corporation System and method for configuration-driven deployment
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
JP5541292B2 (ja) 2009-10-15 2014-07-09 日本電気株式会社 分散システム、通信手段選択方法および通信手段選択プログラム
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
KR101983331B1 (ko) 2019-05-28
CN103843290A (zh) 2014-06-04
CN103843290B (zh) 2017-08-04
IN2014CN02102A (ja) 2015-05-29
EP2761822B1 (en) 2020-03-11
EP2761822A1 (en) 2014-08-06
WO2013048971A1 (en) 2013-04-04
EP2761822A4 (en) 2015-09-30
US20130086196A1 (en) 2013-04-04
US8832217B2 (en) 2014-09-09
JP2014528612A (ja) 2014-10-27
KR20140069143A (ko) 2014-06-09

Similar Documents

Publication Publication Date Title
JP6549663B2 (ja) ミドルウェアマシン環境においてマルチノードアプリケーションのためのメッセージキューを提供および管理するためのシステムおよび方法
US10091333B2 (en) System and method for supporting a bypass-domain model for across-domain messaging in a transactional middleware machine environment
US8756329B2 (en) System and method for parallel multiplexing between servers in a cluster
KR20160147909A (ko) 트랜잭셔널 환경에서 리소스 관리자(rm) 인스턴스 인지에 기초하여 공통 트랜잭션 식별자(xid) 최적화 및 트랜잭션 친화성을 지원하기 위한 시스템 및 방법
JP6154385B2 (ja) トランザクションミドルウェアマシン環境において複合メッセージヘッダをサポートするためのシステムおよび方法
JP6151699B2 (ja) トランザクショナルミドルウェアマシン環境において異なるメッセージキューをサポートするためのシステムおよび方法
KR101956320B1 (ko) 트랜잭셔널 미들웨어 머신 환경에서 단일 포인트 병목을 방지하는 시스템 및 방법
JP2014528612A5 (ja)
JP5945543B2 (ja) ミドルウェアマシン環境を含むシステム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150831

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160920

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20161220

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: 20170509

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170525

R150 Certificate of patent or registration of utility model

Ref document number: 6151699

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