本文へジャンプ

WebSphere Developer Domain > テクノロジー > 

SOA入門

第2回 SOAに関連する技術

レベル: 初級者向け
日本アイ・ビー・エム株式会社
SWテクニカル・プランニング 牧野あすか

前回から開始したSOA(Service Oriented Architecture)の連載ですが、予想以上の反響があり、非常に驚いております。開発者の皆さん、やはりSOAに関心をもたれている方が多いですね。前回はSOAとは何かについて説明しました。今回はSOAに関連する主要な技術を3つやさしくご説明したいと思います。


Webサービス

まずSOAに関連する技術として一番よく取り上げられるのがWebサービスです。Webサービス自体は目新しいものでなく数年前に注目された技術でしたがここにきて再び脚光をあびています。Webサービスとは、第1回の連載でご説明した「サービス」をWebの仕組みを使ってリモートから呼び出せるように設計された技術です。では、リモートから呼び出すためにはどのような技術が必要でしょうか。それは「通信プロトコル」とインターフェイスを定義するための「記述言語」です。Webサービスでは通信プロトコルとしてSOAP、記述言語としてWSDLを使います。SOAPは異機種間でXMLを使ってサービスを呼び出すための業界標準プロトコルです。WSDLにはWebサービスにアクセスするために必要な情報が定義されています。例えば引数や戻り値の型、呼び出し方法や呼び出しアドレスなどです。
ここで注意したいのですが、SOAはイコールWebサービスではありません。サービスの呼び出し方法はJavaBeansやEJBなど他にもいくつかありますが、異機種間接続にはWebサービスが最適な方法です。
また、Webサービスの機能は、多くのITベンダーが対応しており、相互接続性のキーにもなります。
※WebサービスにはUDDIという発見メカニズムもありますが今回はあえて省略しています。

Webサービスの呼び出し

上に戻る

BPEL(Business Process Execute Language)

Webサービスを統合する場合、複数のベンダーを通してビジネスプロセスを実行し、エラー時に処理を元に戻したり、同期を取ったりする必要があります。これらの処理をプログラマが記述するとなると大変でコストがかかります。また、処理順序などはプログラムで記述するより、図などで定義したほうが、より現場に近い人が作業できるため、効率がよく、変化に柔軟に対応できるというメリットもあります。そのため、こうしたメリットを生かした使い方ができるミドルウェアとして、ワークフロー・エンジンというミドルウェアが存在します。IBMでは、このようなミドルウェアの中で、SOAに対応したサービスの呼び出し順を実行するエンジンのことを「コレオグラフィー」と呼んでいます。これは日本語訳で振り付けという意味です。ビジネスプロセスの振る舞いを決定するというところに由来しています。他ベンダーでは「オーケストレーション」と呼ばれることもあります。
しかし各ベンダーでサービスを統合する際には実行コンセプトと記述言語を業界で標準化する必要があります。そこでBPELという技術が登場しました。
BPELは、IBM、マイクロソフト、BEAなどがOASISという団体に提案した「サービス統合の記述言語」で、どのサービスをどういう順番で呼び出し、実行すればよいか、を記述する方法を決めています。BPELが実用化されることで、複数のベンダーが混じった環境でも複雑なビジネスプロセスを、SOAを用いて柔軟な方法で統合できるようになります。

コレオグラフィー

上に戻る

ESB(Enterprise Service Bus)

最後にSOA関連技術として欠かさず出てくるキーワードESB(Enterprise Service Bus)について簡単にご説明したいと思います。「サービス」へのアクセスはバスを介して行うという「アーキテクチャー・パターン」がESBです。ESBも具体的な製品ではなく、概念に近いものです。よってその実装はベンダーによってさまざまです。IBMではWAS V6でサービス統合バスとしてこれを実現していますが、この詳細についてはまた後日詳細をお伝えすることとします。さまざまな形式のソフトウェア・コンポーネントやデータを「サービス」として抽象化して実行できるのがSOAの特徴ですが、サービスがどんどん増えていくとサービスの呼び出しで交換されるメッセージが非常に多くなります。そのためメッセージを交通整理する伝送路が必要となります。この伝送路の役目を果たすのがESBです。WebSphere MQをご存知の方はIBMのEAI製品であるWBI Message Broker(旧MQSI)をイメージしていただくとよいかもしれません。MQは基本的に1対1の通信をサポートするソフトウエアですが、この1対1の接続があちこちで増えると収拾がつかなくなります。そのため、真ん中にメッセージハブ(Message Broker)をおき、やりとりはハブを通して行うという方法がよく行われます。SOA版のMessage BrokerがESBと思っていただいてもよいでしょう。ESBではサービスの交通整理だけなく、フォーマット変換やルーティングといった付加機能も追加されます。このあたりもMessage Brokerに似ています。ESBではこれらの機能はメディエーション(仲介)と呼ばれることもあります。
バスにサービスを接続することで、他のサービスの追加や変更にも柔軟に対応することが可能となります。またバス同士が連携すれば他のバスにあるサービスを呼び出すことも可能です。こうして柔軟性そして拡張性を実現できることがESBの大きな能力といえるでしょう。

ESB(Enterprise Service Bus)

上に戻る

前頁へ  |  次頁へ
レベルマークについて

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

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

SOAポータル
詳細はこちら  

ビジネスの方もITの方も貴方の「SOA度」を試してみませんか?
詳細はこちら