(57)【要約】  第１クライアントアプリケーションと第２クライアントアプリケーションとの間で通信を行う方法を説明する。ここで、両クライアントアプリケーションは異なるメッセージングインタフェースを採用している。本方法は、第１クライアントアプリケーションから第１メッセージングインタフェースを有するメッセージ（６６、７０）を出力し、第１メッセージングインタフェースを有する該メッセージを共通メッセージングインタフェース（ＣＭＩ）（１０）へと、アプリケーションをＣＭＩに結び付けるインタフェースアダプタ（４３２）を用いて変換し、共通メッセージングインタフェースにおけるメッセージを第２メッセージングインタフェースへと、ミドルウェアアダプタ（４３４）を利用して変換し、第２メッセージングインタフェースを有するメッセージを第２クライアントアプリケーションへと転送することを含む。
2011505048.tif 000002
【特許請求の範囲】
【請求項１】
サービス指向アーキテクチャ（ＳＯＡ）をインプリメントするシステムであって、
第１アプリケーションと、
前記第１アプリケーションが結び付くよう設計されている第１ミドルウェアプラットフォームインプリメンテーション（２２）と、
前記第１ミドルウェアプラットフォームインプリメンテーションに関連付けられたインタフェースと互換性がない第２アプリケーションと、
前記第２アプリケーションからのメッセージ（６６、７０）を傍受し、前記第２アプリケーションに関連付けられたミドルウェアプラットフォームインタフェースに基づく予め規定された共通メッセージインタフェース（１０）を用いて、傍受されたメッセージと等価の中間メッセージプロトコルを特定し、前記第１アプリケーションであるメッセージ宛先に基づいて中間メッセージプロトコルと等価のターゲットメッセージプロトコルを特定し、前記第１ミドルウェアプラットフォームインプリメンテーションと互換性のある等価のターゲットメッセージプロトコルを実行することによりメッセージを送信するよう構成されている共通メッセージングインタフェース（ＣＭＩ）層（４３０）と
を含むシステム。
【請求項２】
前記ＣＭＩ層（４３０）がインタフェースアダプタ実行時ライブラリを含み、前記ライブラリが、傍受されたメッセージを共通メッセージインタフェース（１０）へと変換するようコード化されている、請求項１に記載のシステム。
【請求項３】
前記ＣＭＩ層（４３０）がミドルウェアアダプタ実行時ライブラリを含み、前記ライブラリが、共通メッセージインタフェース（１０）から傍受されたメッセージを前記第１ミドルウェアプラットフォームインプリメンテーション(２２)と互換性のあるメッセージングインタフェースへと変換するようコード化されている請求項１に記載のシステム。
【請求項４】
前記第１アプリケーションおよび前記第２アプリケーションに関連付けられたメッセージ（７６）が、接続およびアプリケーションプログラミングインタフェース呼出しのうちの少なくとも一方を含む請求項１に記載のシステム。
【請求項５】
等価のターゲットメッセージプロトコルを実行するために、前記ＣＭＩ層（１０）が、前記第１ミドルウェアプラットフォームインプリメンテーション(２２)と互換性のある実行時ライブラリを呼び出すよう構成されている、請求項１に記載のシステム。
【請求項６】
前記第１アプリケーションおよび前記第２アプリケーションに関連付けられたインタフェースが、種々のＪａｖａメッセージングサービス、分散データサービス、共通オブジェクトリクエストブローカーアーキテクチャならびにウェブサービス記述言語および簡易オブジェクトアクセスプロトコルを含む請求項１に記載のシステム。
【請求項７】
サービス指向アーキテクチャにアプリケーションを統合するための共通メッセージングインタフェースシステムであって、
第１アプリケーションに関連付けられた第１ミドルウェアプラットフォームインプリメンテーション（２２）に基づいて、傍受されたメッセージ呼出しを予め規定された共通メッセージインタフェース（１０）へと変換するようコード化されたインタフェースアダプタ（４３２）と、
予め規定された共通メッセージインタフェースに関連付けられたメッセージ呼出しを第１ミドルウェアプラットフォームインプリメンテーションとは異なるミドルウェアプラットフォームインプリメンテーションと互換性のあるメッセージングインタフェースへと変換するようコード化されたミドルウェアアダプタ（４３４）と
を含む共通メッセージングインタフェースシステム。
【請求項８】
前記インタフェースアダプタ（４３２）および前記ミドルウェアアダプタ（４３４）が、それぞれ実行時ライブラリを含む、請求項７に記載の共通メッセージングインタフェースシステム。
【請求項９】
前記インタフェースアダプタ（４３２）が、少なくとも１つのメッセージ（６６、７０）またはアプリケーションプログラミングインタフェース呼出しメッセージを傍受するようコード化されている、請求項７に記載の共通メッセージングインタフェースシステム。
【請求項１０】
前記ミドルウェアアダプタ（４３４）が、第１ミドルウェアプラットフォームインプリメンテーションとは異なるミドルウェアプラットフォームインプリメンテーション（２２）と互換性のある実行時ライブラリを呼び出すようコード化されている、請求項７に記載の共通メッセージングインタフェースシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、アプリケーションのためのメッセージングインタフェースに関し、具体的には、共通メッセージングインタフェースを用いてアプリケーションをサービス指向アーキテクチャに統合することに関する。
【背景技術】
【０００２】
サービス指向アーキテクチャ（ＳＯＡ）は、メッセージング技術またはプロトコルを介して、疎結合したサービスまたはアプリケーションが互いにデータを交換したり、通信したりすることができるようにするアーキテクチャである。該アーキテクチャは、特定の技術に拘束されない。ＳＯＡに適合するアプリケーションは、ＪＭＳ（Ｊａｖａメッセージングサービス）、ＪＢＩ（共同戦闘空間情報圏）、ＤＤＳ（分散データサービス）、ＣＯＲＢＡ（共通オブジェクトリクエストブローカーアーキテクチャ）およびウェブサービス（ＨＴＴＰ、ＷＳＤＬ、ＳＯＡＰ）などはほんの一例であるが、これらを含む広範な標準メッセージングインタフェース／プロトコルを用いてインプリメントすることができる。これらインタフェース／プロトコルをインプリメントするさまざまな民間の、政府のおよびオープンソースのメッセージ指向ミドルウェア（ＭＯＭ）が存在する。これらアプリケーションの例として、ＪＢＯＳＳおよびＡｃｔｉｖｅＭＱ（ＪＭＳインプリメンテーションプロバイダ）ならびにＲＴＩ−ＤＤＳ（ＤＤＳインプリメンテーションプロバイダ）が挙げられる。
【０００３】
ＭＯＭにより、アプリケーションは、アプリケーションプログラミングインタフェース（ＡＰＩ）またはメッセージングインタフェースを介して接続および通信可能であり、かつ、サービス／アプリケーションまたはサービスがそのタスクを行う手法の事前知識なしにメッセージのペイロードを介してデータまたは情報を提供／消費可能である。しかしながら、種々のＡＰＩが用いられている種々のミドルウェアプラットフォームからの異種のアプリケーションを統合する際には、相互運用性の問題が生じる。アプリケーションまたはサービスの相互運用性を提供する目的により、種々のミドルウェアプラットフォームを用いた編成からのアプリケーションまたはサービスを結び付けて統合しようとする一方で、複数の異なる編成からのアプリケーションまたはサービスを共有することに対する需要はより顕著となる。
【０００４】
この問題に対する比較的手っ取り早い１つのソリューションは、種々のＭＯＭインプリメンテーションを結びつけるコードを開発することである。しかしながら、このソリューションは、拡張可能ではなく、かつ、１つまたは２つのＭＯＭインプリメンテーション向けのものであるので、２つより多くのＭＯＭがブリッジされることとなるアプリケーションにおいては実現可能ではない。この種の拡張可能なソリューションは、きわめて少なく、かつ、追加のインフラストラクチャを要する可能性がある。
【発明の概要】
【０００５】
一態様において、第１クライアントアプリケーションと第２クライアントアプリケーションとの間で通信を行う方法が提供され、ここで、両クライアントアプリケーションは、異なるメッセージングインタフェースを採用している。該方法は、第１クライアントアプリケーションから第１メッセージングインタフェースを有するメッセージを出力し、第１メッセージングインタフェースを有する該メッセージを共通メッセージングインタフェース（ＣＭＩ）へと、アプリケーションをＣＭＩに結び付けるインタフェースアダプタを用いて変換し、ミドルウェアアダプタを利用して、共通メッセージングインタフェースにおけるメッセージを第２メッセージングインタフェースへと変換し、第２メッセージングインタフェースを有するメッセージを第２クライアントアプリケーションへと転送することを含む。
【０００６】
別の態様において、サービス指向アーキテクチャ（ＳＯＡ）を利用してシステム内の１つ以上のアプリケーションと通信する方法が提供される。ＳＯＡは、第１ミドルウェアプラットフォームインプリメンテーションをインプリメントし、かつ、アプリケーションの少なくとも１つは、第１ミドルウェアプラットフォームインプリメンテーションとは異なる第２ミドルウェアプラットフォームインプリメンテーションに結びつけるために設計されている。該方法は、ＳＯＡ環境における１つ以上のアプリケーションの各々が共通メッセージングインタフェース（ＣＭＩ）層と直接結び付くように、ＳＯＡ環境におけるＣＭＩ層を実行し、１つ以上のアプリケーションの１つ目からのＣＭＩ層におけるメッセージング呼出しを自動的に傍受し、傍受された機能呼出しは、第１ミドルウェアプラットフォームインプリメンテーションとは異なる第２ミドルウェアプラットフォームインプリメンテーションに基づいており、アプリケーションのミドルウェアプラットフォームインタフェースに基づく予め規定された共通メッセージインタフェースからの傍受された呼出しと等価の中間メッセージプロトコルを特定し、メッセージの宛先に基づいて中間メッセージプロトコルと等価のターゲットメッセージプロトコルを特定し、前記特定された等価のターゲットメッセージプロトコルを実行することによりメッセージを送信することを含み、ターゲットメッセージプロトコルは、第１ミドルウェアプラットフォームインプリメンテーションを用いてＳＯＡ環境において運用可能である。
【０００７】
さらに別の態様において、第１アプリケーションと、第１ミドルウェアプラットフォームインプリメンテーションと、第２アプリケーションと、共通メッセージングインタフェース（ＣＭＩ）層とを含む、サービス指向アーキテクチャ（ＳＯＡ）をインプリメントするシステムが提供され、第１アプリケーションは、第１ミドルウェアプラットフォームインプリメンテーションと結び付くよう設計されており、第２アプリケーションは、第１ミドルウェアプラットフォームインプリメンテーションに関連付けられたインタフェースとは互換性がない。ＣＭＩ層は、第２アプリケーションからのメッセージを傍受し、第２アプリケーションに関連付けられたミドルウェアプラットフォームインタフェースに基づく予め規定された共通メッセージインタフェースを用いて、傍受されたメッセージと等価の中間メッセージプロトコルを特定し、第１アプリケーションであるメッセージ宛先に基づいて中間メッセージプロトコルと等価のターゲットメッセージプロトコルを特定し、第１ミドルウェアプラットフォームインプリメンテーションと互換性のある等価のターゲットメッセージプロトコルを実行することによりメッセージを送信するよう構成されている。
【０００８】
さらに別の態様において、サービス指向アーキテクチャにアプリケーションを統合するための共通メッセージングインタフェースシステムが提供される。共通メッセージングインタフェースシステムは、第１アプリケーションに関連付けられた第１ミドルウェアプラットフォームインプリメンテーションに基づいて、傍受されたメッセージ呼出しを予め規定された共通メッセージインタフェースへと変換するようコード化されたインタフェースアダプタと、予め規定された共通メッセージインタフェースに関連付けられたメッセージ呼出しを第１ミドルウェアプラットフォームインプリメンテーションとは異なるミドルウェアプラットフォームインプリメンテーションと互換性のあるメッセージングインタフェースへと変換するようコード化されたミドルウェアアダプタとを含む。
【０００９】
上に説明した特徴、機能および利点は、本開示のさまざまな実施形態において独立して達成可能であり、または、以下の説明および図面を参照してさらなる詳細が理解可能であるさらに他の実施形態において組み合わせてもよい。
【図面の簡単な説明】
【００１０】
【図１】図１は、共通メッセージングインタフェースに関連付けられた機能を示す。
【図２】図２は、所与のデータドメインまたはサービス指向アーキテクチャ（ＳＯＡ）環境におけるメッセージ出版／購読クライアントおよびミドルウェアの通常の制御フローを示す。
【図３】図３は、ＳＯＡ環境内のメッセージ出版／購読アプリケーションにおける共通メッセージングインタフェースの構造および制御フローを示す。
【図４】図４は、共通メッセージングインタフェースを種々のＳＯＡ環境に組み込むためのアプリケーション例である。
【図５】図５は、ＳＯＡの層における共通メッセージングインタフェースの構造を示す。
【図６】図６は、複数のミドルウェア環境に対して現在利用されている一般的ブリッジングまたは変換ソリューションの一例である。
【図７】図７は、単一のミドルウェアインプリメンテーションを両クライアントアプリケーションに対して利用可能とするサービス指向アーキテクチャ枠を用いて第２クライアントと通信する第１クライアントアプリケーションを示す。
【発明を実施するための形態】
【００１１】
説明される実施形態は、標準のアプリケーションプログラミングインタフェース（ＡＰＩ）を有するサービスを、追加のコードを何ら必要とすることなくいかなるＳＯＡ環境にも接続可能とするソフトウェアソリューションを提供することにより、上記サービス指向アーキテクチャ（ＳＯＡ）を使用した情報システムの相互運用性の問題を解決する。したがって、そのような実施形態は、統合が、シームレスであり、追加のメッセージングインタフェースおよびミドルウェアに適合するよう拡張可能であり、クライアントアプリケーションが異なるミドルウェアを用いるのに追加のコードを必要とせず、かつ、例えばサーバといった追加のインフラストラクチャを必要としないような構造を有する。言い換えれば、説明される実施形態により、種々のミドルウェアプラットフォームインプリメンテーションに基づくＳＯＡを使用するシステムが、依然として統合努力を最小化しながら、単一のミドルウェアプラットフォームインプリメンテーションを用いて相互運用可能となる。
【００１２】
以下の説明から明らかとなるであろうが、クライアントアプリケーションが、種々のミドルウェアプラットフォームインプリメンテーションと通信でき、かつ、種々のデータドメインまたはＳＯＡインプリメンテーションからのサービスを共有できるようにする能力が提供される。図１は、メッセージングインタフェースアダプタ１２とメッセージングミドルウェアアダプタ１４とを含む共通メッセージングインタフェース（ＣＭＩ）１０を簡潔に示している。以下にさらに説明するように、ＣＭＩ１０は、さまざまなメッセージングインタフェース２０とミドルウェアプラットフォームインプリメンテーション２２との間のインタフェースを提供する。
【００１３】
メッセージングインタフェースアダプタ１２は、メッセージングインタフェースまたはアプリケーションプログラミングインタフェース（ＡＰＩ）呼出しを共通メッセージングインタフェース（ＣＭＩ）１０またはＡＰＩ呼出しにマッピングする。ＣＭＩ１０は、中でも、出版／購読またはピアツーピア接続、セッションの構築、トピックの登録、メッセージ配信といった基本的なメッセージング機能を扱う。ＣＭＩ１０は、各インタフェースがそのメッセージ内容を共通フォーマットで表すことができるようにするメッセージフォーマットを含む。
【００１４】
メッセージングミドルウェアアダプタ１４は、ターゲットミドルウェアプラットフォームを用いてＣＭＩ１０のメッセージング機能を行う。言い換えると、ミドルウェアアダプタ１４は、メッセージトランスポートのためにターゲットミドルウェアプラットフォームを利用する。特定のアプリケーションでは、メッセージングインタフェースとミドルウェアプラットフォームとの間、例えば、図１におけるＪＭＳインタフェースとＲＴＩ−ＤＤＳミドルウェアとの間に一対一の機能マッピングが存在しないこともある。そのようなアプリケーションでは、ミドルウェアアダプタ１４は、基礎をなすミドルウェアプラットフォームインプリメンテーション２２によりサポートされていないメッセージングインタフェース２０が指定する機能をシミュレートする。
【００１５】
図２は、所与のデータドメインにおける出版者クライアント５０および購読者クライアント５２ならびにミドルウェアＡインプリメンテーション５４の間のメッセージの通常の制御フローを示す。出版者クライアント５０と購読者クライアント５２との両方が、ミドルウェアＡインプリメンテーション５４のクライアントである。したがって、クライアント５０および５２は、ミドルウェアＡインプリメンテーション５４の実行時ライブラリ５６および５８をそれぞれ用いて実行するよう構成されている。出版者クライアント５０と購読者クライアント５２との間で受け渡しされるメッセージに関するイベントの通常のシーケンスを、以下の段落において説明する。
【００１６】
出版者クライアント５０は、ミドルウェアＡ実行時ライブラリ５６に対して１つ以上のミドルウェアＡ ＡＰＩ接続６０を行う。別途、購読者クライアント５２は、それに対応するミドルウェアＡ実行時ライブラリ５８に対して１つ以上のミドルウェアＡ ＡＰＩ接続６２を行う。例えば、ミドルウェアＡ実行時ライブラリ５６を利用して、「出版／送信／書き込みメッセージ」接続６４が行われると、ミドルウェアＡインプリメンテーション５４は、出版者クライアント５０から受信されたメッセージを取り込み、保存する。次いで、出版者クライアント５０は、ミドルウェアＡインプリメンテーション５４に１つ以上のメッセージ６６を出版／送信／書き込む。
【００１７】
「購読／受信／読み取りメッセージ」接続６８が行われると、ミドルウェアＡインプリメンテーション５４は、購読者クライアント５２に（トピックのような）購読基準を満たすメッセージを配信する。次いで、ミドルウェアＡインプリメンテーション５４は、購読者クライアント５２にメッセージ７０を配布する。
【００１８】
図２に示されている実施形態は、単一のミドルウェアプラットフォームインプリメンテーションを利用するために出版者および購読者クライアントの両方がインプリメントされている状況の代表例である。図３は、単一のミドルウェアプラットフォームインプリメンテーションを利用するようにはインプリメントされていない出版者クライアントおよび購読者クライアントに関する構造および制御フローを示す。具体的には、図３は、図２と同じ出版者クライアント５０および購読者クライアント５２が統合されたデータドメイン１００を示す。さらに説明するように、データドメイン１００への統合は、そのようなクライアントに対して問題を生じる。というのも、データドメイン１００は、ここでミドルウェアＢインプリメンテーション１０２と呼ばれる異なるミドルウェアプラットフォームインプリメンテーションを利用するからである。さらに、種々のデータドメインにより用いられる種々のミドルウェアインプリメンテーションとの相互運用に対するソリューションを提供するものとして、データドメイン１００に関する実施形態を例示し、かつ、説明する。
【００１９】
ここで特に図３を参照して、出版者クライアント５０および購読者クライアント５２に加えて、データドメイン１００には出版者クライアント１１０および購読者クライアント１１２が含まれている。
【００２０】
図２において説明したインプリメンテーションと同様に、出版者クライアント１１０は、ミドルウェアＢ実行時ライブラリ１１６に対して１つ以上のミドルウェアＢ ＡＰＩ接続１１４を行う。別途、購読者クライアント１１２は、それに対応するミドルウェアＢ実行時ライブラリ１２０に対して１つ以上のミドルウェアＢ ＡＰＩ接続１１８を行う。例えば、ミドルウェアＢ実行時ライブラリ１１６を利用して、「出版／送信／書き込みメッセージ」接続１３０が行われると、ミドルウェアＢインプリメンテーション１０２は、出版者クライアント１１０から受信されたメッセージを取り込み、保存する。次いで、出版者クライアント１１０は、ミドルウェアＢインプリメンテーション１０２に１つ以上のメッセージ１３２を出版／送信／書き込む。
【００２１】
「購読／受信／読み取りメッセージ」接続１４０が行われると、ミドルウェアＢインプリメンテーション１０２は、購読者クライアント１１２に（トピックのような）購読基準を満たすメッセージを配信する。次いで、ミドルウェアＢインプリメンテーション１０２は、購読者クライアント１１２にメッセージ１４２を配布する。
【００２２】
出版者クライアント５０および購読者クライアント５２は、図２に示されているミドルウェアＡ実行時ライブラリの利用に基づいてミドルウェアＡインプリメンテーションに結び付けられるよう構成されている。ミドルウェアＢインプリメンテーション１０２を利用するデータドメイン１００においては、出版者クライアント５０および購読者クライアント５２の利用を可能とする実施形態を採用し、さらに以下に説明する。
【００２３】
データドメイン１００に統合されるためには、クライアント５０および５２は、ミドルウェアＢ実行時ライブラリ１５０および１５２とそれぞれ互換性を持たせねばならない。しかしながら、クライアント５０および５２は、ミドルウェアＢインプリメンテーション１０２により用いられるメッセージインタフェースとは異なる（図２に示されている）ミドルウェアＡインプリメンテーションのメッセージインタフェースを利用している。
【００２４】
これらの不一致に対処するために、データドメイン１００は、インタフェースＡアダプタ実行時ライブラリ１６０および１６２ならびにミドルウェアＢアダプタ実行時ライブラリ１６４および１６６を採用する。これら実行時ライブラリ１６０、１６２、１６４および１６６は、クライアントアプリケーション（出版者クライアント５０および購読者クライアント５２）とそれぞれのミドルウェアＢ実行時ライブラリ１５０および１５２との間にそれぞれ接続される。実行時ライブラリ１６０、１６２、１６４および１６６は、全体としてブリッジングソリューションと呼ばれることもある。出版者クライアント５０および購読者クライアント５２でのブリッジングソリューションを利用したイベント、例えば、メッセージの出版および購読のシーケンスは、以下の通りである。
【００２５】
具体的には、出版者クライアント５０は、ミドルウェアＡ ＡＰＩ接続１８０を行う。このＡＰＩ接続１８０は、インタフェースＡアダプタ実行時ライブラリ１６０に受信され、インタフェースＡアダプタ実行時ライブラリ１６０は、ミドルウェアＢアダプタ実行時ライブラリ１６４における対応する共通メッセージングインタフェース（ＣＭＩ）ＡＰＩに対して接続１８２を行うようコード化されている。より包括的に、このプロセスは、対応する共通メッセージングインタフェース（ＣＭＩ）ＡＰＩに対して接続１８２を行うミドルウェアＡアプリケーションプログラミングインタフェース（ＡＰＩ）として説明される。
【００２６】
ミドルウェアＢアダプタ実行時ライブラリ１６４から、ＣＭＩ ＡＰＩ（例えば、ミドルウェアＢアダプタ実行時ライブラリ１６４）は、対応するミドルウェアＢ ＡＰＩ（例えば、ミドルウェアＢ実行時ライブラリ１５０）に対して接続１８４を行って、メッセージング機能を行う。
【００２７】
ここで、購読者クライアント５２に関して、ミドルウェアＡ ＡＰＩ接続１９０も行う。このＡＰＩ接続１９０は、インタフェースＡアダプタ実行時ライブラリ１６２に受信され、インタフェースＡアダプタ実行時ライブラリ１６２は、ミドルウェアＢアダプタ実行時ライブラリ１６６における対応する共通メッセージングインタフェース（ＣＭＩ）ＡＰＩに対して接続１９２を行うようコード化されている。上記のように、このプロセスは、対応する共通メッセージングインタフェース（ＣＭＩ）ＡＰＩに対して接続１９２を行うミドルウェアＡアプリケーションプログラミングインタフェース（ＡＰＩ）として説明されることがある。
【００２８】
ミドルウェアＢアダプタ実行時ライブラリ１６６から、ＣＭＩ ＡＰＩ（例えば、ミドルウェアＢアダプタ実行時ライブラリ１６６）は、対応するミドルウェアＢ ＡＰＩ（例えば、ミドルウェアＢ実行時ライブラリ１５２）に対して接続１９４を行って、メッセージング機能を行う。
【００２９】
インタフェースＡアダプタ実行時ライブラリ１６０および１６２は、インタフェースＡ仕様およびＣＭＩ仕様（すなわち、インタフェースＡから共通メッセージインタフェースへと指定されたメッセージ機能を変換またはマッピングするプロセス）に基づいて、各インタフェースＡ ＡＰＩ（または機能）が対応する共通メッセージインタフェース（ＣＭＩ）ＡＰＩ（または機能）を呼び出すようコード化（またはプログラム）されている。
【００３０】
ミドルウェアＢアダプタ実行時ライブラリ１６４および１６６は、ＣＭＩ仕様およびミドルウェアＢに関連付けられたインタフェースＢの仕様（すなわち、共通メッセージインタフェースからミドルウェアＢへと指定されたメッセージ機能を変換またはマッピングするプロセス）に基づいて、各共通メッセージインタフェース（ＣＭＩ）ＡＰＩ（または機能）が対応する１つ以上のミドルウェアＢ ＡＰＩ（または機能）を呼び出すようコード化（またはプログラム）されている。
【００３１】
さらに図３を参照して、例えば、「出版／送信／書き込みメッセージ」ＡＰＩ接続２００が行われると、ミドルウェアＢ１０２は、出版者クライアント５０から発信されたメッセージを取り込み、保存する。次に、出版者クライアント５０は、ミドルウェアＢ１０２にメッセージを出版／送信／書き込む２０２。
【００３２】
「購読／受信／読み取りメッセージ」ＡＰＩ接続２１０が行われると、ミドルウェアＢ１０２は、上に説明したライブラリおよびアダプタを介して購読者クライアント１０２に（トピックのような）購読基準を満たすメッセージを配信する。図３では特に、ミドルウェアＢ１０２は、購読者クライアント５２にメッセージを配布する。
【００３３】
図３に示された実施形態は、幾分包括的であるが、図４は、共通メッセージングインタフェースを組み込んだ特定の実施形態を示している。図４において、接続２２０および２２２は、レガシーシステムクライアント２３０が、例えば、ＪＭＳインタフェースに基づいたＡｃｔｉｖｅＭＱミドルウェア２３２に基づいていることを示している。レガシーシステムのインプリメンテーションのために、クライアント２３０は、ＪＭＳインタフェースに基づいており、かつ、ＡｃｔｉｖｅＭＱ実行時ライブラリ２４０を利用している。同様に、接続２５０および２５２は、高度システムクライアント２６０が、ＤＤＳインタフェースに基づいたＲＴＩ−ＤＤＳミドルウェアインプリメンテーション２６２に基づいており、かつ、ＲＴＩ−ＤＤＳ実行時ライブラリ２６４とともに運用可能であることを示している。したがって、高度システムクライアント２６０のいずれも、ＤＤＳインタフェースに基づいている。
【００３４】
さらに現在の開示に関連して、接続２７０および２７２は、本実施例ではＪＭＳインタフェースに基づいているレガシーシステムクライアント２３０が、ＪＭＳインタフェースアダプタ実行時ライブラリ２８０およびＤＤＳミドルウェアアダプタ実行時ライブラリ２８２を介してＲＴＩ−ＤＤＳミドルウェア２６２と相互運用していることを示している。アダプタ実行時ライブラリ２８０および２８２により、ＪＭＳインタフェースに基づくレガシーシステムクライアント２３０は、ＲＴＩ−ＤＤＳ実行時ライブラリ２８４を利用して、ＲＴＩ−ＤＤＳミドルウェア２６２と相互運用することができる。繰り返して、接続２７０および２７２は、レガシーシステム２３０のＪＭＳインタフェースに基づくクライアントが、ＪＭＳインタフェースからＲＴＩ−ＤＤＳミドルウェア２６２へとブリッジされていることを示している。
【００３５】
同様に、接続２９０および２９２は、高度システムクライアント２６０が、ＤＤＳインタフェースアダプタ実行時ライブラリ３００およびＪＭＳミドルウェアアダプタ実行時ライブラリ３０２を介してＡｃｔｉｖｅＭＱミドルウェア２３２と相互運用していることを示している。アダプタ実行時ライブラリ３００および３０２により、ＤＤＳインタフェースに基づく高度システムクライアント２６０は、ＡｃｔｉｖｅＭＱ実行時ライブラリ３０４を利用して、ＡｃｔｉｖｅＭＱミドルウェア２３２と相互運用することができる。繰り返して、接続２９０および２９２は、高度システムのＤＤＳインタフェースに基づくクライアントが、ＤＤＳインタフェースからＡｃｔｉｖｅＭＱミドルウェア２３２へとブリッジされていることを示している。
【００３６】
図５は、ＣＭＩアプローチを利用した上記実施形態を示している。具体的に、かつ、ＳＯＡ環境３００に言及して、ＣＭＩアプローチは、共通メッセージングインタフェースと総称されることがあるメッセージングインタフェースアダプタ３０２およびメッセージングミドルウェアアダプタ３０４を提供するものである。特に、メッセージングインタフェースアダプタ３０２は、クライアントアプリケーション３０５のメッセージングインタフェースを共通メッセージングインタフェース（ＣＭＩ）へと変換し、かつ、メッセージングミドルウェアアダプタ３０４は、ＣＭＩインタフェースを基礎をなすメッセージングプロトコルのミドルウェアプラットフォーム３０６へと変換して、オペレーティングシステム３１０に、例えば、メッセージングインタフェースを提供する。
【００３７】
図６は、現在用いられている複数のミドルウェア環境３５０のための一般的なブリッジングまたは変換ソリューションの別の一例である。環境３５０において、２つの異なるミドルウェアプラットフォームインプリメンテーション３５２および３５４は、メッセージサービス３６２と同様に環境３６０に組み込まれている。第１ミドルウェアプラットフォームインプリメンテーション３５２は、共通メッセージングインタフェースを使用しているので、クライアントアプリケーション３６６のＡＰＩ接続およびその他のメッセージングニーズを扱う。メッセージサービス３６２は、第１ミドルウェアプラットフォームインプリメンテーション３５２からのメッセージおよび呼出しに第２ミドルウェアプラットフォームインプリメンテーション３５４との互換性を持たせるようにこれらメッセージおよび呼出しの変換を提供するようインプリメントされており、この結果、環境３６０および３７０は、ネットワーク３８０を介してメッセージ（またはデータ）の通信または交換ができる。そのようなソリューションにおいて、環境３６０は、ブリッジされるか、または、変換されることとなる両ミドルウェアプラットフォームインプリメンテーション３５２および３５４を要する。
【００３８】
繰り返して、メッセージサービス３６２は、第１ミドルウェアプラットフォームインプリメンテーション３５２と第２ミドルウェアプラットフォームインプリメンテーション３５４との間でのみ変換するようカスタムプログラムされており、かつ、ここで説明されている実施形態で記載されているように共通メッセージングインタフェースを採用していない。
【００３９】
クライアントアプリケーション３６６が、ＣＭＩ層４３０の利用を通して、各環境４１０および４２０における第２ミドルウェアプラットフォームインプリメンテーション３５４のみを用いて、ネットワーク３８０を介したクライアントアプリケーション３６８との通信が可能であることを除いて、図７の環境４００は、環境４１０および環境４２０により示されているように、（図６に示した）環境３５０と同じ機能を提供する。このソリューションが可能であるのは、クライアントアプリケーション３６６メッセージを共通メッセージングインタフェース（ＣＭＩ）へと変換することにより、クライアントアプリケーション３６６から受信されるメッセージングにミドルウェアプラットフォームインプリメンテーション３５４のメッセージングとの互換性を持たせる変換によるものである。ＣＭＩへの変換は、インタフェースアダプタ４３２内で行われ、次のＣＭＩインタフェースにミドルウェアプラットフォームインプリメンテーション３５４のメッセージングとの互換性を持たせる変換は、ミドルウェアアダプタ４３４内で行われる。したがって、単一のミドルウェアプラットフォームインプリメンテーション３５４の別々のインスタンスを利用して、ＳＯＡ環境４１０とＳＯＡ環境４２０との間でメッセージを転送する。
【００４０】
要約すると、ミドルウェアアダプタ４３４は、ミドルウェアプラットフォームを用いて、上に述べた共通メッセージングインタフェースをインプリメントする。言い換えると、ミドルウェアアダプタ４３４は、トランスポートのために利用可能なミドルウェアプラットフォーム３５４を用いる。（クライアント３６６のための）メッセージングインタフェースとミドルウェアプラットフォームインプリメンテーション３５４との間には、一対一の機能マッピングが存在しないこともある。ミドルウェアプラットフォームの一例として、ＡｃｔｉｖｅＭＱおよびＲＴＩ−ＤＤＳが挙げられる。そのような場合、図７に示されているように、ミドルウェアアダプタ４３４は、ミドルウェアプラットフォームによりサポートされていないメッセージングインタフェースが指定する機能をシミュレートする。
【００４１】
上に述べた実施形態は、少なくとも２つの点で現在利用されているソリューションとは異なる。第１に、該実施形態は、特定のクライアントアプリケーションではなく、メッセージングインタフェースとミドルウェアプラットフォームとをブリッジする。この結果、そのような実施形態は、拡張可能であり、モジュラー化されており、かつ、クライアントアプリケーション（メッセージングインタフェース）とミドルウェアプラットフォームインプリメンテーションとの間でシームレスな統合を提供する。したがって、上に述べた実施形態は、広範な一見競合するように思われるメッセージングインタフェースおよびミドルウェアソリューションに対処する全体として拡張可能なソリューションである。該実施形態は、基本的なメッセージング機能、例えば、出版／購読、ピアツーピア接続、セッションの構築、トピックの登録、メッセージ配信を提供する。
【００４２】
上に述べた実施形態は、単なる変換ツールではない。むしろ、該実施形態は、アプリケーションがその目的では設計されていないミドルウェアプラットフォームを有するＳＯＡ環境に、アプリケーションのソフトウェアの変更を要することなく、ホストとしてアプリケーションを処理することができる方法をもたらす。ソリューションは、ＳＯＡ環境の基礎をなすミドルウェアインプリメンテーションからアプリケーションを隔離し、アプリケーションの元のミドルウェアにおけるメッセージングＡＰＩを自動的に傍受する枠組みであり、かつ、メッセージの宛先により必要とされる適切なメッセージフォーマットおよびメッセージングのプロトコル／シーケンスを特定する。新たな変換機構を開発する代わりにアプリケーションの実行時ライブラリを構成することにより、枠組み内でアプリケーションをホストとして処理する。
【００４３】
さまざまな特定の実施形態について本開示を説明したが、当業者は、本開示が請求の範囲の精神とその範囲内で変更して実施可能であることを認識するであろう。
【図１】
2011505048.tif 000003
【図２】
2011505048.tif 000004
【図３】
2011505048.tif 000005
【図４】
2011505048.tif 000006
【図５】
2011505048.tif 000007
【図６】
2011505048.tif 000008
【図７】
2011505048.tif 000009
【国際調査報告】
2011505048.tif 000010
2011505048.tif 000011
2011505048.tif 000012