本文へジャンプ


WebSphere Developer Domain > WebSphere Application Server > 

WebSphere Application Server V6 SIBus入門

 
レベル: 初級者向け
掲載日:2006年06月14日(水)
更新日:2006年06月20日(火)
WebSphere Application Server(以下、WAS) V6から、SIBus(サービス統合バス)という機能が提供されました。V6発表以降、技術詳細や手順についての技術資料がWebSphere Developer Domainでも公開されています(本ページ末尾の「参考資料」を参照)。SIBusはWASだけではなく、他のIBMソフトウェア製品でも内部的に使用されるようになり、「SIBusとは何でしょうか?」といった声を耳にします。
当記事は、SIBusについて知りたいけれど、「概要資料では何ができるのかよくわからない」「でも、技術資料じゃ難しすぎる」といったかた向けに記述しました。

はじめに
SIBusの基本機能は、大きく以下の3つに分けられます。
  • メッセージング・エンジン
  • SIBWS(Webサービスの使用可能化)
  • メディエーション
これらの機能について、それぞれどのようなことができるかを中心に説明します。
また、“SIBus”という用語については、日本語で“サービス統合バス”と訳されたり、管理コンソール上では単に“バス”と記載されたりしますが、当記事では“SIBus”という表現に統一します。

上に戻る
メッセージング・エンジン
SIBusの基本機能のひとつが「メッセージング・エンジン(ME)」です。アプリケーション・サーバーをSIBusのメンバーとして登録すると、アプリケーション・サーバー上にメッセージング・エンジン、つまりJavaベースの非同期通信基盤が構成されます。
SIBus上には、メッセージの送信先として「宛先」を定義します。この宛先の実体は、メッセージング・エンジン上に作成されます。
具体的に宛先は、JMSのキュー、トピックに相当し、WASの管理コンソールから、SIBusや宛先をJMSリソースとして定義することで、WAS上のJMSアプリケーションは宛先に対してメッセージを送受信することができます。

例えば、SIBus上の宛先(キュー)にメッセージをJMSで送信すると、WASの管理コンソールから、以下のようにメッセージング・エンジン上のキューにメッセージが溜まっている状況を見ることができます。
拡大図

一般的な非同期通信基盤が提供するメッセージの信頼性に応じた管理を、SIBusのメッセージング・エンジンも同様に提供します。そのため、メッセージング・エンジンではメッセージを保持させるメッセージストア(ファイルあるいはデータベース)を必要とします。

また、SIBusは、他のSIBus上のメッセージング・エンジンやWebSphere MQと接続すする機能も提供します。この場合、「宛先」の実体は、メッセージング・エンジン上のキュー、トピックではなく、他のSIBus上やWebSphere MQキューマネージャー上のキューになります。アプリケーションは、宛先の実体が何であるかを意識せず、メッセージの送受信を行うことができます。

考慮点
ここまでの説明を読んで、“SIBus = WebSphere MQのJava版”と考えた方もいらっしゃるかと思います。SIBusでは、WebSphere MQの全ての機能をサポートしてはいません。例えば、SIBusはWMQクラスターに参加できません。
その他、WebSphere MQとの違いについては、WAS V6.1 InfoCenterの「WebSphere MQ functions not supported by service integration(英語)」のページにも記述されておりますので、ご覧ください。
上に戻る
SIBWS(Webサービスの使用可能化)
SIBusの二つめの機能として、「Service Integration Bus Web Service Enablement (Webサービスの使用可能化。以下、SIBWS。)」があります。このコンポーネントは文字通り、SIBusにWebサービスアクセス機能を提供するもので、内部の通信には前述のメッセージング・エンジンが使用されています。
SIBWSはWebサービスクライアントとWebサービスの間に配置し、外部Webサービスの隠蔽や、後ほど説明するメディエーションの機能を提供します。

SIBWS内部では以下の2つのコンポーネントが提供されています。(実際はもう少し細かくコンポーネントがわかれますが、当記事ではわかりやすくするために、2つにしています。)
  • インバウンド・サービス
    クライアント側に見せるWebサービスを提供し、クライアントからのメッセージを受け取ります。受け取ったメッセージはインバウンド・サービス用の宛先に送信されます。また応答メッセージ用に、インバウンド・サービス用のリプライ宛先も作成されます。

  • アウトバウンド・サービス
    外部のWebサービスを呼び出します。アウトバウンド・サービス用の宛先が作成され、宛先経由で外部のWebサービスが呼び出されます。

インバウンド・サービス用の宛先から、アウトバウンド・サービス用の宛先へ、メッセージを転送することで、Webサービスクライアントは外部のWebサービスを呼び出すことが出来るようになります。
例えば、外部Webサービスが複数存在し、アウトバウンド・サービスが複数定義されている場合、メッセージの転送先(ルーティング先)を変更することによって、呼び出すWebサービスを切り替えることができるようになります。


SIBWSの機能はデフォルトではWAS上に構成されていません。そのため、SIBWSを使用する場合は、SIBWSコンポーネントの初期導入が必要です。また、SIBWSには、WebサービスのWSDLの情報を保管するSDOリポジトリー用にデータベースが必要になります。

上に戻る
メディエーション
最後は「メディエーション」です。ここまでの説明でおわかりかと思いますが、SIBusを流れるメッセージはJMS、SIBWSでも、「宛先」を経由します。 宛先を経由するメッセージには、メディエーション(仲介)を行うことができます。具体的には、メッセージに対して、以下の操作を行えます。
  • メッセージ内容の参照/追加/補完
    • メッセージのデータ部分にアクセスできます

  • 別宛先あるいは複数宛先へのメッセージのルーティング
    • SIBus上を流れるメッセージに付加されているルーティング情報を変更します

  • メッセージ・フォーマット変換
    • Webサービス(SOAPメッセージ)やJMSのメッセージ・フォーマットの変換ができます


WASの管理コンソールで、メディエーションを宛先に登録します。宛先を通過するメッセージに登録されたメディエーションが適用されます。

拡大図

SIBusのメディエーションを開発するには、コーディングが必要です。メッセージにアクセスするために、IBM固有のAPI(com.ibm.websphere.sib.mediation.*)が提供されています。このAPIを理解し、メディエーション処理の全てをコーディングするのは、手間がかかりますが、その一方で、追加したい機能を自由にメディエーションの中にコーディングすることも可能になります。

静的なルーティングであれば、コーディングではなく、管理コンソールから設定ができます。(宛先の「デフォルトの転送ルーティング・パス」「応答宛先」で設定します。)Webサービスの場合であれば、メッセージの操作は、SIBusのメディエーションではなく、JAX-RPCハンドラーを使用するという選択もあります。要件に応じた機能を選択してください。

SIBusのメディエーション開発に興味があるかたは、WAS V6 SIBus 構成ガイドの「3. メディエーション」も参考にしてください。

また、メディエーション機能を提供する製品に、WebSphere Enterprise Service Bus(以下、WebSphere ESB)という製品もあります。メディエーション開発にコーディングが必要なSIBusに対して、WebSphere ESBは別製品であるWebSphere Integration Developerという開発ツールにより、GUIベースでのメディエーション開発が可能です。
WebSphere ESBについてご興味があるかたは、WebSphere Enterprise Service Bus V6アナウンスメント・ワークショップ資料超入門!WebSphere ESBをご覧ください。
上に戻る
おわりに
以上、SIBusの基本的な3つの機能「メッセージング・エンジン」「SIBWS」「メディエーション」について説明しました。
特に、「メッセージング・エンジン」については、今後、WASの非同期通信の基盤として定着していくのではないかと思います。

上に戻る
参考資料
WAS V6 SIBus 基盤構築ワークショップ  
WAS V6 SIBus 構成ガイド  
WebSphere Application Server V6管理ガイド  
超入門!WebSphere ESB  
WebSphere Enterprise Service Bus V6アナウンスメント・ワークショップ資料  


上に戻る

レベルマークについて

このページで紹介されている情報はレベル別にカテゴライズされています。

上級者向け
中級者向け
初級者向け
入門者向け

製品情報
WebSphere Application Server