N2 ToolBox(跡地)

跡地です。引っ越しました。http://d.hatena.ne.jp/nosen

JSR-208 Java Business Integration

2005-03-08 01:56:10 | その他
石原さんのBlogによると、J2EE6.0(!)の目玉になる可能性が高い
JSR-208 Java Business IntegrationのPublic Review がリリースされたとのこと。
初耳だったので、一体これは何だ?とちょこっとだけ仕様を読んで
みたところ、どうもSOAの話らしいです。
もう、いろんな所でいろんな人がSOA,SOAと連呼していて、うんざり
してしまうが、まだなお新しいSOA関連の仕様をつくるのか~、と
思いつつも、あまり先入観をもつのも良くないので、なるべく
ニュートラルな心持ちで読んでみました。

結論からいうと、JBIというのはBPEL4WSとかよりも更に
一段抽象度の高いフレームワークで、BPELエンジン自体を
一つのコンポーネントとして扱うということです。
で、BPELエンジンとかと同列のコンポーネントとして
EJBコンテナとかがある、と。

少し詳しく説明すると、JBIというのは以下の3つの部分より
構成されるらしいです。あらかじめ断っておくと、全ての仕様を
精読した訳ではないし、なにより今、安い泡盛をあおって酔っ払ってる
ので、そのへん差し引いてよんでください。
(ああ、つくづくだめだな、僕と言う人間)

--
1. コンポーネントフレームワーク
サービスのコンシューマ、あるいはプロバイダとなるコンポーネント。
コンポーネントには以下の2種類が存在する。

a. サービスエンジン
BPELエンジンやEJBコンテナ、XSLT変換などのサービスを他のコンポーネント
に対して提供すると同時に、自らも他のサービスのコンシューマとなる。
b. バインディングコンポーネント
SOAP over HTTPであるとか、JMSといった外部サービスへの接続を提供する。

サービスエンジンが基本的にJBIフレームワークと同一VMで動作するのに対し、
バインディングコンポーネントで接続される外部サービスは別のVMやマシン上で
動作することが想定されているようです。

2. 正規化されたメッセージのルータ(Normalized Message Router)
各コンポーネントは互いに直接依存しあっている訳ではなく、
Delivery Channelというものを通じて全てこのNormalized Message Router
につながっているということです。
Normalized Message Routerというからにはこの一種のルータを通過できるのは
「正規化されたメッセージ」だけ。「正規化されたメッセージ」とは、
JBIの世界では、WSDL2.0にのっとった構造をもったメッセージ+それらのメッセージ
に関するメタデータであるということです。
コンポーネントがルータに対してできることは、この正規化されたメッセージを
送信したり、受信したりすること。 他のあらゆる種類のメッセージも
コンポーネントは正規化されたメッセージに変換してこのルータに送出する
必要があります。後はルータが適切な他のコンポーネントにこの
メッセージを送り届けてくれるというわけらしい。

3.マネジメント
JMXベースの管理フレームワークが定義されており、コンポーネントの
インストール、ライフサイクル管理、各種設定など、標準的なツールを
使って可能になるらしいです。
--

この仕様のミソは、細かい「ビジネスロジック」的な部分を「サービスエンジン」
というコンポーネントに隔離してしまっているところだと思います。
BPEL4WSとかWSCIのような仕様が難しいところは、複数のサービスを繋合わせる
ときに、必須となるデータ変換やさまざまなロジックをその仕様のなかに内包
してしまっている点かと思います。JBIはそうしたややこしい部分を、それらの
仕様に任せて、自分は「メッセージのルーティング」に徹することで
自らのシンプルさを保つ、という思想にもとづいているとみました。
仕様書もそんなにボリュームがなくて、たぶん全部読破するのは
そんなに大変じゃないです。

酔っ払っているので、全然自信ありません。間違ってたらだれか突っ込んで
ください!

それにしても、SOAというもの、流行っているんだか、なんだか
よくわからないですね。僕のなかでは、SOAというものが、
EAIとどう違うのかというと、「サービス」というもののインターフェース
が"WSDL"という形で拡張性を保ちつつ標準化されている点かと思います。

そういう意味ではSOAというのは新しい概念ではなくて、WSDLによって
理想に近付いたEAI、程度に僕は理解してます。
それをマーケティングだかなんだかのために大げさにいう
人がいるから訳のわからない事態に落ちいってしまうのではないかと、
そんなことを考えております。