ws_rmサンプルを試す〜オープンソースソリューションのこれから

2006年12月19日(火)
江川 潔

はじめに

   本連載はCeltix 1.0に用意されているサンプルデモのREADME.txtファイルを日本語訳したものです。README.txtファイルにはWindowsとUNIXにおける作業手順が記載されています。

   今回はサンプル23「ws_rm」デモについて解説します。

   連載ではWindowsについてのみ確認を行い、足りない手順についての内容を追加しています。UNIXを利用する場合には、Windowsの手順を参照してください。


なおビルドや起動にはCeltix 1.0環境が必要です。あらかじめ本誌連載「オープンソースESB『Celtix』を解き明かす」を参考にしてインストールを行っておいてください。

サンプル23 ws_rmのデモ

   この「ws_rm」は、CeltixがサポートしているWS-ReliableMessagingをどのように有効にするかを示したデモです。クライアントとサーバともにWS-RMハンドラをインストールして、ハンドラ構成を利用します。
ハンドラは、メッセージの信頼性に関するプロパティを管理する「LogicalHandler(RMHandler)」とSOAPヘッダーのプロパ ティをエンコード/デコードする「ProtocolHandler(RMSoapHandler)」から構成されています。

   WS-RMを利用するにはWS-Addressingが必要です。そのため「ws_addressing」サンプルと同様に、コンフィグレーション によって機能を有効にします。このとき、WS-Addressingの名前空間のURIが異なることに注意してください。ここでは 「http://www.w3.org/2005/08/addressing」ではなく「http://schemas.xmlsoap.org/ws /2004/08/addressing」を使用します。これは、WS-RMの仕様が未だに古いバージョンのWS-Addressingを基にしているた めです。

   このデモを実行するために、次の2つのProtocolHandlerを構成します。

  • 「HeaderSnooper」を利用し、クライアントとサーバの両方でSOAPヘッダーを参照してコンソー ルに表示します。送信側のRMプロトコルメッセージ(CreateSequenceおよびCreateSequenceResponse)とアプリケー ションレベルのメッセージのWS-RMヘッダー(Sequence、SequenceAcknowledgement、AckRequestedなど)の 使い方を示します。
  • 「MessageLossSimulator」をサーバ側で使用し、アプリケーションレベルのメッセージを毎秒破棄し、メッセージロストの状況をシミュレーションします。このシミュレーションによって、送達確認できていないメッセージの再送処理を観察できます。
表1:ProtocolHandlerの構成

   このデモでは、HTTPトランスポートを分けて使用します。例えばサーバからクライアントへのHTTPコネクションを応答送信のために利用し、モニ タ上で参照することができます。これはクライアントからサーバへのオリジナルコネクションの逆方向に「HTTP 202 Accepted」の応答が送られることで確認できます。

   「ws_rm」サンプルは基本的に「hello_world」サンプルと同様の構成となっており、アプリケーションに影響なくWS- Addressingを利用できることを示しています。なお、通常の「hello_world」サンプルのWSDLに対して、サービスエンドポイントが WS-Addressingをサポートすることを示すために拡張エレメントが指定されていま す。

   「ws_rm」デモを実行する前に、以下の内容を確認してから作業してください。

必要条件

   celtix.jarがCLASSPATHに登録されていて、JDKとantのbinディレクトリがPATHに登録されているのであれば、samplesディレクトリのREADMEにある環境変数の設定スクリプトを起動する必要はありません。

   環境変数が正しく設定されていなかったり、デモをビルドする際にwsdl2java、javacあるいはjavaコマンドを利用する場合は、環境変数の設定スクリプトを起動する必要があります。

※注1: 以下のUNIX環境での手順は著者の環境で動作確認をしていません。Windowsの環境についてはWindows XP Professionalで動作確認を行っていますので、UNIXの手順で不明な点がある場合はWindowsの手順を参考にしてください。
日本アイオナテクノロジーズ株式会社 テクニカルセールスマネージャ

株式会社富士通SSLでNTT仕様のオペレーティング・システムの開発に従事したのち、日本ディジタルイク イップメント株式会社でNTT向けシステムの開発、その後、ソフトウェアとハードウェアのプリセールス活動を展開した。DECの合併を経て、現職のミドル ウェア製品のマーケティング、アライアンス、プリセールスなどに従事。

blog「Essence is Real」
http://blogs.iona.com/essence/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています