IBM®
本文へジャンプ
    Japan [変更]    ご利用条件
 
 
検索範囲検索:    
    ホーム    製品    サービス & ソリューション    サポート & ダウンロード    マイアカウント    
skip to main content

developerWorks Japan  >  WebSphere  >

SOA入門: 第2回 SOAに関連する技術

developerWorks
ページオプション

JavaScript を要するドキュメントオプションは表示されません


レベル: 初級

牧野 あすか, SWテクニカル・プランニング, IBM

2007年 10月 15日

前回から開始した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サービスの呼び出し
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)
ESB(Enterprise Service Bus)


参考文献



著者について

牧野 あすか,日本アイ・ビー・エム株式会社




記事の評価


サイト改善のため、ご意見をお寄せください。こちらのフォームからお願いいたします。



 


 


不充分・不完全である大変素晴らしい
 


この記事を共有する

del.icio.us del.icio.us newsing newsing FC2ブックマーク FC2ブックマーク
Choix! Choix! ニフティクリップ ニフティクリップ Yahoo!ブックマーク Yahoo!ブックマーク
MM/memo MM/memo CZブックマーク CZブックマーク livedoorクリップ livedoorクリップ
はてなブックマーク はてなブックマーク Buzzurl(バザール) Buzzurl(バザール)




上に戻る


    日本IBMについて プライバシー お問い合わせ