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

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

江川 潔

2006年12月19日 20:00

はじめに

   本連載は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の手順を参考にしてください。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30