本文へジャンプ

WebSphereでビジネス統合を実現する

第2回 「Connectivity Services(サービス間接続要素)」

 
レベル: 初級・中級者向け
2005年07月06日(水)
WebSphereテクニカル・セールス 豊村明彦
SOAのサービスとは
SOAの概念では、サービスは、ビジネス・ロジックであったり、パッケージ・ソフトウェアのモジュールであったり、あるいはオペレーティング環境における一つの機能である場合もあります。サービスは、外の世界に対してその実装は隠蔽されていますが、アクセスするためのインターフェースは明確に定義され、スタンダードな機構によって呼び出すことができます。SOAの議論のなかで代表的なWebサービスというのはサービスを実装する良い方法ですが、サービスはEJBであったり、WebSphere MQのアプリケーションであっても良いのです。
サービスの粒度はさまざまであり、非常に限定されたサブルーチンのような機能から、ハイレベルなビジネス・ロジックを実装して複数の内部サービスを呼び出すものまで考えることができます。

Connectivity Services
図1
図1 Connectivity Services

ある2つのサービスの間でコミュニケーションを取ろうとすれば、その2つのサービスの間には「プロトコル」と「データ・フォーマット」を理解しあえる関係がなくてはなりません。Connectivity Servicesは、Enterprise Services Busという概念で代表され、トランスポート・サービス(Transport)、イベント・サービス(Event)、メディエーション・サービス(Mediation)の3つの機能を用意しています。WebSphere Integration Reference Architectureで、このサービス(機能)を提供している製品は、WebSphere MQとWBI Message Broker(WBI Event Brokerも含む)、そしてWebSphere Application Server(以下、WAS)V6のSIBusです。

上に戻る
WebSphere MQ
WebSphere MQ(以下、WMQ)は、デファクト・スタンダードとして活躍する非同期型のメッセージング・エンジンです。WMQは、13個の簡単なAPIでメッセージを使用するアプリケーションを開発することができ、データベースと同等のトランザクション管理を行なうことができますので、データ送信エラーに対するリカバリー処理もOKです。WMQは、システム統合に対して、現在最も多く利用されている高速のメッセージング・システムです。最近ではMQクラスターという構成によって負荷分散や障害回避なども広く行なわれています。
図2
図2  WebSphere MQ

Javaのインターフェースも充実しており、独自のAPIと共にJMSが実装されています。WMQのキュー・マネージャーはJMSプロバイダーになります。最新のWMQ V6.0では64ビット・アプリケーションにも対応しています。

上に戻る
WBI Message Broker
WBI Message Broker(以下、WBIMB)やWBI Event Broker(以下、WBIEB)は、MQやHTTP(Webサービス)などのプロトコルを基盤とするメッセージ・ブローカーです。WBIMBは、その内部でメッセージ・フォーマットの変換を行なうと同時に、メッセージの内容によって配信先のアプリケーションを選択するルーティング機能を備えています。WMQアプリケーションですので、MQと同等の信頼性を持ち、同期点によるトランザクション処理を行なうことができます。
図3
図3 WBIMBによるメディエーション
このWBIMBのような機能は、最近ではメディエーション(仲介:Mediation)と呼ばれることも多いようです。

上に戻る
SIBus
WASに実装されているSIBusは、WASのアプリケーションで利用できるJavaベースのメッセージング・エンジンと、メッセージのフォーマット変換やルーティングのメディエーション機能も実装された、Java環境におけるEnterprise Services Busです。JMSプロトコルに対してはJMSプロバイダーであり、WMQのキュー・マネージャーとの間でもメッセージのやりとりを行なうことができます。また、JAX-RPCプロトコルに対しては、Webサービスのリクエスターとプロバイダーの間を仲介することができます。
図4
図4 WAS V6のSIBus
上に戻る
WMQとWBIMBを使ったWebサービスの例
WMQとWBIMBを使ってWebサービスを利用する方法を考えて見ましょう。もともとWebサービスはSOAPというプロトコルを使ってコミュニケーションをします。このデータを送るためのトランスポート部分の既定はありませんが、多くのケースでHTTPプロトコルが使用されています。下の図5では、WBIMBがHTTPプロトコルをサポートするノードを持っているため、WBIMB自身がサービス・リクエストの受信、リプライの送信、そしてサービス・リクエストの送信を行なっています。また、既存のアプリケーションとの間はWMQ形式のメッセージを使用したコミュニケーションを行なっています。左側のメッセージ・フロー(1)(2)の処理では、WBIMB自身がサービス・プロバイダーとして機能し、アプリケーション(A)を隠蔽する形になっています。逆に右側のメッセージ・フロー(3)を使用したパターンでは、アプリケーション(B)からの要求をWBIMBがサービス・リクエスターとして代理処理し、サービス・プロバイダーからの応答をMQメッセージに変換してアプリケーション(B)に返しています。
図5
図5 WMQとWBIMBを使用したWebサービスの処理パターン例

もしアプリケーション(A)や(B)が、Webサービスに対応するインターフェースを実装していたならば、WBIMB内でデータ変換を行なわず、図5でWMQが扱うメッセージ、つまりデータ部分はSOAPフォーマットのまま送られることになるかもしれません。SOAPメッセージのトランスポート部分がHTTPからWMQに変わるのです。

このようにWMQとWBIMB/EBを組み合わせると、Connectivity Servicesに必要とされる機能が実現されます(Webサービスは、あくまでも一つの実装例です)。WMQは、確実で安全な伝送路(Transport)を提供します。WBIMBは、メッセージのフォーマット変換とルーティングといったメディエーション機能(Mediation)を提供します。WBIEBは、Pub/Sub(パブリッシュ/サブスクライブ)機能を提供することで、イベントの発信・配布といった機能(Event)を提供します。

また、最近のWebSphere製品はグラフィカル・ユーザー・インターフェースをEclipseベースに統一しており、製品をまたがって共通のオペレーション感覚で設定やデザインを行なうことができるようになっています。

上に戻る
前頁へ  |  次頁へ
この記事についてどう思われますか?
  
  
  
  
  



  
レベルマークについて

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

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

製品紹介
WebSphere MQ