早いもので、2005年も今日が仕事納めです。
来年に流行りそうだと感じていることをつらつらと
書こうかとも思ったのですが、JavaOneで取り上げた
セッションの中でJohn Crupi氏のPragmaticSOAに
ついて書き忘れてしまったいたので、それについて
触れておこうと思います。
PragmaticSOAの包括的な解説については
http://www.sun.com/products/soa/index.jsp
に掲載されていますので、ここでは同氏が
講演の中で触れたポイントをメモとして
完結に列挙しておきたいと思います。
1. クライアントとビジネスサービス層は疎結合にすべきだが、
ビジネスサービス層とリソース層は不必要に疎結合には
し過ぎないこと
SOAというと何でも疎結合(Loosely Coupled)にしたくなって
しまいますが、頻繁に入れ替わる可能性が高いのは「どんな
ビジネスサービスを利用するか?」であって、「どのビジネス
サービスがどんなデータにアクセスするか?」は比較的長期的
に固定されている場合が少なくありません。パフォーマンスや
セキュリティのことも考慮に入れると、ビジネスサービス層と
リソース層までやたらと疎結合にするのは避けた方が良いとい
うことでした。
2. 公開するサービスの粒度(Granularity)はテクノロジーだけに
基づいて決めずにビジネス内容を考慮して決めること
これは言われてみれば当然のことなのですが、いざシステムの
全体像を具体的に整理しようとすると無意識のうちにデザイン
パターン的に望ましい形であったり、システムパフォーマンス
の側面のみを優先してしまって、肝心のビジネスとしての括り
を忘れてしまうことがあります。綺麗なシステムにすることは
もちろん大事ですが、あくまで「ビジネスのためのシステム」
であることを常に意識しておかなければいけないということか
と思います。
3. BPELはWebサービスのオーケストレーションを記述する手段
であり、ビジネスプロセスそのものを扱うものではない
これは意外と正しく伝わっていない部分ではないかと思います。
ビジネスプロセス自体を記述する方法としてはBPMNなどがあり
ますが、BPELとBPMNの役割分担については確かに曖昧になって
いるような感じがします。なまじBPELでもある程度のプロセス
を表現することができるので、あたかもビジネスプロセスを記述
するかのような形でBPELを利用してしまうと、かえって変化に
対応しにくいシステムになってしまうので気をつけましょうと
いうポイントでした。
SOAについては概念ベースの話から具体的なノウハウの話に移って
きたのが2005年の傾向ではないかと思います。そうすると2006年
は実際の活用事例が多く出てくる年ということかも知れません。