WebSphere Integration Developer では、プロトコルに SOAP over JMS が選択されたモジュールに対しては、組み込み (SIBus) JMS プロバイダーを使用すること、そして常に組み込み JMS プロバイダーのリソースを生成することを前提に、インポート・バインディングまたはエクスポート・バインディングが生成されます。WebSphere Process Server と WebSphere ESB のランタイム実装では JMS API を使用するため、管理者は生成された JMS リソースを置き換えることによって、MQ JMS での SOAP メッセージ転送に他の JMS プロバイダー (具体的には、WebSphere MQ JMS プロバイダー) を使用することができます。
この記事では、WebSphere Process Server および WebSphere Enterprise Service Bus で、WebSphere MQ JMS リソースを使用するように Web サービス SOAP over JMS バインディングを設定したインポートおよびエクスポートを構成する方法を説明します。この記事で紹介するサンプル SCA (Service Component Architecture) アプリケーションには、Web サービス・ベースの SOAP over JMS バインディングを設定したインポートおよびエクスポートを組み込みます。そして、WebSphere MQ JMS リソースを使用するように、それらのインポートおよびエクスポートを変更する方法を説明します。記事で説明する手順をひと通り読めば、この手順を他のインポートとエクスポートにも適用できるようになります。
説明する手順は、エクスポートとインポートでは幾分異なります。エクスポートではメッセージ駆動型 Bean (MDB) を使用してリクエストを受信し、各リクエストの JMSReplyTo ヘッダーによって指定された宛先にレスポンスを送信します。エクスポートのリソースを変更するには、IBM WebSphere Application Server 管理コンソールを使用します。WebSphere Process Server および WebSphere ESB V7.0 での MQ JMS プロバイダーは、JCA (J2EE (Java 2 Platform, Enterprise Edition) Connector Architecture) リソース・アダプターです。つまり、MDB は、以前のリリースで使用されていたリスナー・ポート・オブジェクトではなく、アクティベーション・スペック・オブジェクトによって構成されることを意味します。
インポートでは MDB を使用せずにレスポンスを受信します。そのため、WebSphere Integration Developer ツールでインポート・バインディングに指定する JMS URL によって、単一の返信キューを使用するように構成することも、リクエストごとに 1 つの一時返信キューを使用するように構成することもできます。JMS URL の構文のなかで、この構成に該当する部分については、この記事で説明します。
以上の構成手順に従うには、以下のソフトウェアが必要です。
- Refresh Pack 7.0.1.0 を適用した WebSphere MQ V7.0
- WebSphere Integration Developer V7.0.0.x
- WebSphere Process Server V7.0.0.x または WebSphere Enterprise Service Bus V7.0.0.x
この記事で使用するアプリケーション・モジュールは、WebSphere Process Server V7.0.0.3 で開発およびテストされています。これらのモジュールは、WebSphere Integration Developer と WebSphere Process Server または WebSphere Enterprise Service Bus で SOAP over JMS を使用した SCA モジュールを作成および構成する方法を説明するためのサンプルです。WebSphere Integration Developer V7.0.0.3 には、ダウンロード可能なプロジェクト交換ファイルが用意されています。
このセクションでは、WebSphere MQ および WebSphere MQ JMS リソースを定義する手順を説明します。定義したリソースは、Web サービス SOAP over JMS バインディングを設定したインポートまたはエクスポートで使用できるようになります。ここで使用するリソース名は単なる例なので、必要に応じて変更して構いません。最初に説明するのは、キュー宛先を使用したポイント・ツー・ポイント・メッセージング・モデルを扱う方法です。トピックを使用したパブリッシュ/サブスクライブ・メッセージング・モデルを扱う方法については、後で記載する「パブリッシュ/サブスクライブ・メッセージングに必要なリソース」セクションで説明します。WebSphere MQ キュー・マネージャーおよびキューを作成するには、以下の 2 つの方法があります。
- WebSphere MQ Explorer から作成する
- コマンドライン・ウィンドウから WebSphere MQ コマンドを使用して作成する
例えばコマンドライン・ウィンドウから作成する場合、「crtmqm
QMGR」と入力してキュー・マネージャーを作成し、「strmqm
QMGR」と入力してそのキュー・マネージャーを起動します (必要なオブジェクトの作成方法について詳しく説明している WebSphere MQ V7.0
インフォメーション・センターへのリンクを「参考文献」で参照してください)。
この手順のために、以下の WebSphere MQ キュー・マネージャーおよび WebSphere MQ キューを作成する必要があります。
- WebSphere MQ キュー・マネージャー: QMGR
- WebSphere MQ キュー: Web サービス SOAP over JMS バインディングを設定したエクスポートで使用するための REQUESTQ および RESPONSEQ を QMGR に作成します。
- WebSphere MQ キュー: Web サービス SOAP over JMS バインディングを設定したインポートで使用するための REQUESTQ1 および RESPONSEQ1 を QMGR に作成します。
さらに、WebSphere Enterprise Service Bus または WebSphere Process Server の管理コンソールで、上記の WebSphere MQ リソースに対応する WebSphere MQ JMS Provider リソースを作成する必要があります。これらのリソースは、ノード・スコープで WebSphere MQ JMS Provider のリソースとして作成しなければなりません。以下のステップに従って、エクスポートおよびインポート構成に必要なリソースを作成します。
- エクスポートとインポート両方のリクエスト接続に使用する WebSphere MQ キュー接続ファクトリーとして、requestMQCF を作成します。このキュー接続ファクトリーは、QMGR を使用します。
- エクスポートとインポート両方に返信する際の接続に使用する WebSphere MQ JMS キュー接続ファクトリーとして、replyMQCF を作成します。このキュー接続ファクトリーは、QMGR を使用します。
- エクスポートでリクエスト・メッセージを受信するための WebSphere MQ JMS キュー宛先として、requestQ を作成します。このキュー宛先は、REQUESTQ を使用します。
- インポートからリクエスト・メッセージを送信するための WebSphere MQ JMS キュー宛先として、requestQ1 を作成します。このキュー宛先は、REQUESTQ1 を使用します。
- サーバー上に、requestQ を使用するアクティベーション・スペック、MQAS を作成します。
- サーバー上に、requestQ1 を使用するアクティベーション・スペック、MQAS1 を作成します。
- レスポンス・メッセージを送信するための WebSphere MQ キュー宛先として、replyQ を作成します。このキュー宛先は、RESPONSEQ を使用します。
注: クライアント・アプリケーションはこのキューを、返信の送信先として使用します。JMS メッセージの JMSReplyTo ヘッダーで指定されるこの宛先は、Web サービス SOAP over JMS エクスポート・バインディングまたはインポート・バインディングに対しては構成されません。
ポイント・ツー・ポイント・メッセージング・モデルの場合のアプリケーション・シナリオ
図 1. ポイント・ツー・ポイント・メッセージング・モデルの場合のシナリオの例
- WSMQJMSClient: JSP (JavaServer Pages) の sendMessage.jsp を使用して SOAP メッセージを送信する Web アプリケーション。
- WSMQJMSBackEndService: SOAP over JMS で WebSphere MQ リソースを使用する Web サービス。この Web サービスの実装は、別の Web サービスを呼び出します。
- WSMQJMSServiceProvider: WebSphere MQ リソースを使用する別の Web サービス・プロバイダー。これらのアプリケーションの間でのメッセージ・フローは以下のとおりです。
- クライアントは、指定された WebSphere MQ キューに SOAP メッセージを送信します。
- WebSphere MQ キューに入れられた SOAP メッセージが、Web サービス SOAP over JMS バインディングを設定したエクスポートによってビジネス・オブジェクトに変換されます。
- Java コンポーネントがメッセージを処理し、Web サービス SOAP over JMS バインディングを設定したインポートを使用して別の Web サービス・プロバイダーを呼び出します。
- Java コンポーネントが、Web サービス SOAP over JMS バインディングを設定したエクスポートを使用して、指定された WebSphere MQ キューにレスポンス・メッセージを返します (リクエスト操作がレスポンスを伴う操作 (リクエスト/レスポンス操作) の場合)。
SOAP over JMS エクスポート・バインディングを使用するアプリケーションを作成する
このアプリケーションは、Web サービス SOAP over JMS バインディングを設定したエクスポートと、Web サービスのインターフェースを実装した Java コンポーネントを使用するように設計されています。このエクスポートは、JMS クライアント・アプリケーションが送信する SOAP メッセージを受信します。SOAP メッセージは、アプリケーション内のコンポーネントが使用できるように、ランタイムによってビジネス・オブジェクトに変換されます。例として引用するこのアプリケーションを、この後 WebSphere MQ JMS リソースを使用するように変更します。これと同じ手順は、Web サービス SOAP over JMS バインディングを設定した独自のエクスポートにも適用することができます。それでは、手順を追っていきましょう。
- MyLibrary という名前のライブラリーを作成します。このライブラリーには、以下の 3 つの関数を持つ
CustomerServiceインターフェースがあります (リスト 1 を参照)。
リスト 1. CustomerService インターフェース
CustomerInfo getCustomerInfo(String id); void createCustomer(String id); int getQuantity(String id); |
- WSMQJMSServiceProvider という名前のモジュールを作成します。このモジュールには、Web サービス SOAP over JMS バインディングを設定したエクスポート、そして WebSphere Integration Developer の Java コンポーネントを格納します。図 2 に、ProviderSOAPMQJMSExport の Web サービス SOAP over JMS バインディングを示します。
図 2. WSMQJMSServiceProvider アプリケーション
- このアプリケーションが MyLibrary に依存していることを確認します。
WebSphere Integration Developer で、以下の手順に従ってプロジェクトを作成し、インストールします。
- WSMQJMSServiceProvider プロジェクトを作成します。
- 「File (ファイル)」 > 「Export (エクスポート)」 > 「Export project to integration module export (プロジェクトを統合モジュール・エクスポートにエクスポート)」の順に選択して、プロジェクトを WSMQJMSServiceProvider.ear ファイルにエクスポートします。
- WebSphere Process Server または WebSphere Enterprise Service Bus のランタイムを起動します。
- WebSphere Application Server 管理コンソールから .ear ファイルをインストールします。
アプリケーションをインストールし、WebSphere MQ JMS を使用するようにこのアプリケーションを変更する
アプリケーションの一部のリソースは、アプリケーションをインストールした後で管理コンソールから変更する必要があります。WebSphere Process Server および WebSphere Enterprise Service Bus V7.0 以降では、インストール時に管理コンソールからリソースを変更することはできません。
デプロイ手順は以下のとおりです。
- WSMQJMSServiceProvider.ear ファイルを変更せずにデフォルトのままインストールします。
- インストール後に、リソースを変更します。それにはまず、インストール済みアプリケーションのリストに進みます。
- WSMQJMSServiceProviderApp アプリケーションをダブルクリックして、構成を表示します (図 3 を参照)。
図 3. アプリケーション構成
- 構成に含まれる「Message Driven Bean listener bindings (メッセージ駆動型 Bean リスナー・バインディング)」(図 3 で赤丸 1 として囲ってあります) をクリックします。
- 「Activation Specification Target Resource JNDI Name (アクティベーション・スペックのターゲット・リソース JNDI 名)」を「MQAS1」に変更します (図 4 を参照)。
図 4. SOAP/MQJMS エクスポートのアクティベーション・スペックの構成
- 構成に含まれる「Resource references (リソース参照)」(図 3 で赤丸 2 として囲ってあります) をクリックします。
- EJB MessageDriven_ProviderSOAPMQJMSExport_CustomerServiceJmsPort エクスポートの「Target Resource JNDI Name (ターゲット・リソース JNDI 名)」を jms/WebServicesReplyQCF から replyMQCF に変更して、JNDI 名と WebSphere MQ リソースをマッピングします。
図 5. JNDI 名と WebSphere MQ リソースのマッピング
- アプリケーションを起動します。
Web サービス SOAP over JMS バインディングを設定したインポートとエクスポートを使用するアプリケーションを作成する
このセクションで説明するアプリケーションには、以下の構成要素があります。
- Web サービス SOAP over JMS バインディングを設定したエクスポート。SOAP メッセージを受信してビジネス・オブジェクトに変換するために使用します。
- Java コンポーネント実装。データ・フィールドをビジネス・オブジェクトに出力します。
- Web サービス SOAP over JMS バインディングを設定したインポート。WSMQJMSServiceProvider を呼び出します。
このアプリケーションは、WebSphere Integration Developer で図 6 のように作成します。
図 6. WSMQJMSBackEndService アプリケーション
アプリケーションを作成したら、以下の手順を実行してください。
- CustomerServiceImport1 を選択し、アドレス・プロパティーの宛先および接続ファクトリーの値を図 7 のように変更します。アドレス・プロパティーの更新後の値は以下のとおりです。
リスト 2. SOAP over JMS バインディングを設定した Web サービス・インポートのアドレス・プロパティー
jms:/queue?destination=requestQ1& connectionFactory=requestMQCF& targetService=ProviderSOAPMQJMSExport_CustomerServiceJmsPort |
図 7. SOAP/MQJMS インポートのプロパティー
- アプリケーションをビルドします。
- アプリケーションを WSMQJMSBackEndService.ear ファイルにエクスポートします。
- WSMQJMSBackEndService.ear ファイルを変更せずにデフォルトのままインストールします。
- WSMQJMSBackEndServiceApp を、WSMQJMSServiceProviderApp で行ったように構成します。
- WSMQJMSServiceProviderApp のステップ 5 で行ったように、「Activation Specification Target Resource
JNDI Name (アクティベーション・スペックのターゲット・リソース JNDI 名)」を変更します。ただし、今回は名前を
MQASに変更してください。 - WSMQJMSServiceProviderAppのステップ 7 と同じようにリソースに対するリソース参照のマッピングを変更し、EJB
MessageDriven_BackEndSOAPMQJMSExport_CustomerServiceJmsPort エクスポートの JNDI 名を
jms/WebServicesReplyQCFからreplyMQCFに、WebServiceReference の JNDI 名をjms/ProviderSOAPMQJMSExportQCFからrequestMQCFに変更します。
デフォルトでは、SOAP over JMS バインディングを設定したインポートによってリクエスト/レスポンス操作が呼び出されると、ランタイムがレスポンス用の一時キューを作成します。このキューは、SOAP over JMS サービスに送信される JMS メッセージ内で replyTo キューとして渡されます。すると、SOAP over JMS バインディングは、レスポンス・メッセージが返信用の一時キューに入れられるのを待ちます。最終的に返信が読み取られると、バインディングは一時キューを破棄します。したがって、一時キューでは永続メッセージを保持することはできません。この理由またはその他の理由から、インポートで返信用に永続キューを使用しなければならない場合には、インポート・バインディングに構成された URL によって、使用するキューを識別することができます。以下は、返信用のキューを指定する URL 構文の一例です。
リスト 3. 返信用のキューを指定する URL 構文の例
jms:/queue?destination=requestQ1& connectionFactory=requestMQCF& targetService=ProviderSOAPMQJMSExport_CustomerServiceJmsPort& replyToDestination=permanentReplyQ |
このように構成したインポートを使用する前に、必ず permanentReplyQ JMS リソースとこれに対応する MQ キューを作成する必要があります。
SOAP/MQ JMS クライアント・アプリケーションを作成する
このセクションでは、SOAP メッセージを WebSphere MQ JMS
宛先に送信し、前の手順で再構成したエクスポートに対応するクライアント・アプリケーションに必要な振る舞いについて説明します。SOAP
メッセージのフォーマットとプロパティーは、メッセージが SOAP over JMS エクスポートで正しく使用されるように適切な方法で指定しなければなりません。リスト 4 に記載する SOAP メッセージの例は、前に定義した CustomerService インターフェースを使用した片方向のメッセージです。
リスト 4. SOAP JMS メッセージの例
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:q0="http://MyLibrary/CustomerService"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<q0:createCustomer>
<id>123</id>
</q0:createCustomer>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
|
SOAP over JMS エクスポートに送信されるメッセージには、以下の 3 つのJMS ユーザー・プロパティーを設定する必要があります。
- targetFunctionName: 呼び出し対象とする
CustomerServiceインターフェースの処理 (関数) の名前。この例の場合、値は createCustomer または getCustomerInfo のいずれかに設定する必要があります。 - JMSReplyTo: レスポンス・メッセージの宛先。このプロパティーは、
replyQに設定します。 - targetService: Web サービス・ポート名。この値は、BackEndSOAPMQJMSExport_CustomerServiceJmsPort に設定する必要があります。図 8 に、JSP として実装されたクライアント・アプリケーションの例を示します。このクライアント・アプリケーションは、SOAP メッセージを requestQ に送信して、replyQ からレスポンスを受け取ります。
図 8. リクエスト・メッセージを送信するクライアント・アプリケーション
「sendMessage (メッセージ送信)」ボタンをクリックすると、ランタイムの実行経過がコンソール・ウィンドウに表示され (図 9 を参照)、JSP クライアントがレスポンス・メッセージを受信します (図 10 を参照)。
図 9. コンソール・ウィンドウに表示されたランタイムの実行経過
図 10. クライアント・アプリケーションが受信したレスポンス・メッセージ
パブリッシュ/サブスクライブ・メッセージングに必要なリソース
このセクションでは、WebSphere MQ JMS プロバイダーを使って、Web サービス SOAP over JMSバインディングを設定したインポートおよびエクスポートでパブリッシュ/サブスクライブ・モデルを使用する方法を説明します。
パブリッシュ/サブスクライブ・モデルは、アプリケーション (パブリッシャー) が、このアプリケーションに関心のある一連のアプリケーション (サブスクライバー) に対してメッセージを送信するように設計されています。サブスクライバーは特定のトピックに対する関心事を登録し、パブリッシャーはメッセージがどのトピックと関連するのかを示します。パブリッシャーとサブスクライバーとの間にはブローカーが介在し、特定のトピックに関する各メッセージのコピーを適切なサブスクライバーに送信します。WebSphere MQ には、ブローカーが組み込まれています。パブリッシュ/サブスクライブ・モデルを WebSphere MQ で使用するには、WebSphere Enterprise Service Bus または WebSphere Process Server の管理コンソールで、ノード・スコープに以下の WebSphere MQ リソースを構成する必要があります。
- WebSphere MQ JMS トピック接続ファクトリーを作成します (図 11 を参照)。ブローカーは基本的なバージョンであればよいため、WebSphere MQ の組み込みブローカーを使用することができます。
図 11. WebSphere MQ JMS トピック接続ファクトリーの構成
MQTopicDestという名前の WebSphere MQ JMS トピック宛先を作成し、JNDI 名をMQTopicDestに、基本トピック名をGreetingsに設定します (図 12 を参照)。
図 12. JNDI 名を MQTopicDest に設定した WebSphere MQ トピックの構成
MQTopicASという名前のアクティベーション・スペックを作成します。このアクティベーション・スペックは MQTopicCF を使用します (図 13 を参照)。
図 13. WebSphere MQ トピック・アクティベーション・スペックの構成
WebSphere MQ ブローカー・サービスを使用するには、ブローカーを初めて使用するときにのみ、以下の初期セットアップを行う必要があります。この初期セットアップによって、いくつものキューが作成されます。そのなかでも、サブスクリプション・メッセージを処理するために使用されるキューは、SYSTEM.BROKER.CONTROL.QUEUE というキューです。
$WMQ_INSTALL\Java\bin runmqsc QMGR <MQJMS_PSQ.mqsc
パブリッシュ/サブスクライブ・モデルの場合のアプリケーション・シナリオ
このアプリケーション・シナリオは、パブリッシャーとサブスクライバーの両方が WebSphere MQ リソースを使用して SOAP メッセージで通信できるように設計されています。図 14 は、アプリケーション・シナリオの一例です。このシナリオには、WSMQJMSPublisher アプリケーションと WSMQJMSSubscriber アプリケーションが含まれています。WSMQJMSPublisher は、メッセージを MQTopicDest トピックにパブリッシュするクライアント・アプリケーションです。WSMQJMSSubscriber は、MQTopicDest トピックをサブスクライブして SOAP メッセージを受信するための Web サービス・アプリケーションです。
図 14. パブリッシュ/サブスクライブ・モデルの場合のアプリケーション・シナリオ
Web サービス SOAP over JMS バインディングを設定したインポートまたはエクスポートでパブリッシュ/サブスクライブを使用する場合には、サポートされる操作は片方向の操作のみです。したがって、ここで必要となるのは片方向の操作を行うためのインターフェースです。以下の手順に従って、インターフェースを作成してください。
- MyLibrary に含める
GreetingServiceという名前の新規インターフェースを作成します。 - インターフェースに
void sayHello(String message);という片方向の操作を作成します。 - MyLibrary を保存してビルドします。
- WebSphere Integration Developer で、
WSMQJMSSubscriberという名前の新規モジュールを作成します。このモジュールには、SubscriberSOAPMQJMSExportという Web サービス SOAP over JMS バインディングを設定したエクスポートと、HandleTopicという Java コンポーネントを設定します (図 15 を参照)。
図 15. Web サービス・アプリケーションの例
このモジュールでは、Web サービス SOAP over JMS バインディングを設定したエクスポートで WebSphere MQ JMS トピックを使用する方法を示します。
- MyLibrary 内の WSMQJMSSubscriber_SubscriberSOAPMQJMSExport.wsdl という WSDL
ファイルを開き、SubscriberSOAPMQJMSExport バインディングのアドレス・プロパティーがリスト 5 のようになるように、メッセージ・タイプを
queueからtopicに変更します。
リスト 5. SOAP over JMS バインディングを設定した Web サービス・エクスポートのアドレス・プロパティー
jms:/topic?destination=jms/SubscriberSOAPMQJMSExport& connectionFactory=jms/SubscriberSOAPMQJMSExportQCF& targetService=SubscriberSOAPMQJMSExport_GreetingServiceJmsPort |
上記の変更は、SOAP over JMS エクスポートのプロパティー・ウィンドウ (図 16 を参照) では実行することができません。
図 16. WSMQJMS エクスポートのプロパティー
この変更により、エクスポートは、リクエスト・メッセージを受信するにはトピックをサブスクライブする必要があることを確実に認識します。HandleTopic メソッドの実装は単に、SubscriberSOAPMQJMSExport から渡されるメッセージを sayHello(String message) メソッドで出力するにすぎません。
- 変更内容を保存して、WSMQJMSSubscriber アプリケーションをビルドします。
サブスクライバー・アプリケーションをデプロイおよびインストールする
WSMQJMSSubscriber アプリケーションを EAR ファイルにエクスポートして、このファイルを WebSphere Enterprise Service Bus または WebSphere Process Server の管理コンソールからインストールします。この手順は、「アプリケーションをインストールし、WebSphere MQ JMS を使用するようにこのアプリケーションを変更する」セクションで説明した手順と同じです
このセクションでは、Web サービス SOAP over JMS バインディングが設定されたインポートを利用するサンプル・パブリッシャー・アプリケーションの作成方法を説明します。ここで作成するモジュールには、Web サービス SOAP over JMS バインディングが設定されたインポートのみが含まれるようにします。以下の手順で、その作成方法を説明します。
WSMQJMSPublisherという名前の新しいモジュールを作成します。- 「MyLibrary」 > 「Web Service Ports (Web サービス・ポート)」 > 「SubscriberSOAPMQJMSExport_GreetingServiceJmsPort」の順にナビゲートします。
- 「SubscriberSOAPMQJMSExport_GreetingServiceJmsPort」を「WSMQJMSPublisher」アセンブリー図にドラッグして、Web サービス SOAP over JMS バインディングを設定したインポートを作成します。
- インポート・コンポーネントの名前を
GreetingServiceSOAPMQJMSImportに変更します。 - アドレス・プロパティーの値をリスト 6 に記載する内容に変更します。
リスト 6. SOAP over JMS バインディングを設定した Web サービス・インポートのトピック宛先用のアドレス・プロパティー
jms:/topic?destination=jms/SubscriberSOAPMQJMSExport& connectionFactory=jms/SubscriberSOAPMQJMSExportQCF& targetService=SubscriberSOAPMQJMSExport_GreetingServiceJmsPort |
以上の変更は、インポートの Web サービス・バインディングのプロパティー・ウィンドウ (図 17 を参照) で直接行うことができます。
図 17. WSMQJMSPublisher およびインポート・プロパティー
- モジュールをビルドして、EAR ファイルとしてエクスポートします。
パブリッシャー・アプリケーションを WebSphere Integration Developer でテストする
WebSphere Integration Developer から、パブリッシャー・アプリケーションを現在稼働中のサーバーに追加します。
- TestWSMQJMSPub プロジェクトを右クリックして、「Test (テスト)」 > 「Test Module (モジュールのテスト)」の順に選択します (図 18 を参照)。
図 18. 完成したパブリッシャーのテスト
- メッセージ・フィールドに任意のストリング (例えば、「
hello」) を入力します。すると、入力したメッセージが Greetings トピックのメッセージとしてパブリッシュされます。 - サブスクライバーはメッセージを受信し、コンソール・ウィンドウに表示されたメッセージとまったく同じメッセージを出力します。
この記事では、ポイント・ツー・ポイント・メッセージング・モデルとパブリッシュ/サブスクライブ・メッセージング・モデルの両方を使用して、Web サービス SOAP over JMS バインディングで使用する WebSphere MQ リソースを構成する方法を説明しました。ポイント・ツー・ポイント・メッセージング・モデルの場合には、アプリケーションをインストールした後、WebSphere MQ JMS メッセージ・アクティベーション・スペックを使用するようにエクスポートを変更し、エクスポートの返信用接続ファクトリーを WebSphere MQ JMS 接続ファクトリーに変更します。インポートについて必要な作業は、アドレス・プロパティーの変更のみです。具体的には、アプリケーションをインストールする前に、事前定義された WebSphere MQ JMS キュー宛先を指定するように宛先を変更し、事前定義された WebSphere MQ JMS 接続ファクトリーを指定するように接続ファクトリーを変更します。リクエスト/レスポンス・メッセージの場合には、クライアント・アプリケーションが JMS メッセージに JMSReplyTo ヘッダーを設定する必要があります。
パブリッシュ/サブスクライブ・メッセージング・モデルでは、エクスポート・バインディングのアドレス・プロパティーを変更して、宛先タイプをトピックにします。さらに、アプリケーションのインストール後に、エクスポートのアクティベーション・スペックも変更する必要があります。インポートについては、アプリケーションをインストールする前に、WebSphere MQ JMS トピック宛先を指定するように宛先を変更し、WebSphere MQ JMS トピック接続ファクトリーを指定するように接続ファクトリーを変更します。
| 内容 | ファイル名 | サイズ | ダウンロード形式 |
|---|---|---|---|
| Applications for point-to-point messaging | SOAPMQJMSP2P.zip | 41KB | HTTP |
| Applications for publish subscribe messaging | SOAPMQJMSPubSub.zip | 26KB | HTTP |
学ぶために
- 「Building
a JMS Web service using SOAP over JMS and WebSphere Studio」
- 記事「Building
a JMS Web service using SOAP over JMS and WebSphere Studio」(developerWorks、2004年2月) を読んでください。
- 「Web
services client programming for WebSphere Process Server」(developerWorks、2006年8月) を読んで、詳細な情報を入手してください。
- IBM WebSphere Developer Technical
Journal開発者向け技術ジャーナル「Deploying publish and subscribe applications into the Service Integration Bus」(developerWorks、2005年8月) を読んでください。
- IBM developerWorks の SOA and Web
services ゾーンには、Web サービス・アプリケーションの開発に関する解説記事や、初級者、中級者、上級者向けのチュートリアルが豊富に揃っています。
- IBM SOA Sandbox で、IBM SOA エントリー・ポイントを使用した実用的かつ実際的な体験を通して SOA のスキルを磨いてください。
- developerWorks の on-demand
demos で、初心者向けの製品のインストールとセットアップから、熟練開発者向けの高度な機能に至るまで、さまざまに揃ったデモを見てください。
製品や技術を入手するために
- ご自分に最適な方法で IBM
製品を評価してください。評価の方法としては、製品の試用版をダウンロードすることも、オンラインで製品を試してみることも、クラウド環境で製品を使用することもできます。また、SOA Sandbox では、数時間でサービス指向アーキテクチャーの実装方法を効率的に学ぶことができます。

Simon Holdsworth は、IBM Hursley Lab のソフトウェア・エンジニアとして、これまでさまざまなプロジェクトに携わってきました。これらのプロジェクトには、メインフレーム・アセンブラー・プログラミング、C、C++、そしてごく最近では Java も含まれます。現在、IBM WebSphere Enterprise Service Bus および WebSphere Process Server 製品の全体的ソフトウェア・アーキテクチャーと接続性の高位設計を担当する彼は、OASIS SCA Bindings 技術委員会の議長でもあります。Web サービスをサポートするシステムの設計および実装を始めたのは 2001年に遡り、この最先端技術に対する取り組みを通して、15 の特許を取得しました。彼は、IBM Master Inventor です。
