Webサービスは破壊的な新しい技術なのか?

Webマジシャンさんによる、SOAの解説記事@IT

まだ、前半部だけの公開のためコメントするのはどうかと思うけど、この記事は非常に面白かったので思ったことを。 長文刑事書き殴り系だが。


この記事の前半では、Webマジシャンさんは、ビジネス的な観点とソフトウェア工学的な観点でSOAを定義している。そして、ソフトウェア工学的な観点の定義によって、SOAと分散オブジェクトの違いを説明していると思う。
記事自身とは多少違う解釈であるが、私は、この記事から非常に有用な考えが得られた。
→ ありがとうございます。

1. ソフトウェア工学的定義のSOAオブジェクト指向は異質のものではない。
2. 現在のWebサービス技術は、ソフトウェア工学的なSOAの定義を実現するための技術に過ぎず、目新しさはない。
3. Webサービス技術が新しい技術であるためには、ビジネス的な観点でのSOAを実現しなければならない。

1. ソフトウェア工学的定義のSOAオブジェクト指向は異質のものではない。
まず、エンジニア的に、どーもSOAが良くわからん理由は、ソフトウェア工学的定義のSOAが、既存の分散オブジェクトアーキテクチャと何が違うんだろうって点であろう。
疎粒度についてであるが、私は、粒度は相対的、ドメイン依存なものであって、「この粒度は、まさにサービス向き!Mr. 疎粒度!」といえる絶対的な指針があるわけではないと思う。また、オブジェクト指向でも、Facadeパターンなどを使い、より疎粒度であるメソッドを公開すれば、公開したい粒度を設計できるわけで、分散オブジェクトアーキテクチャ=疎粒度の分散システムの実現に向かないとも言い切れないと思う。
また、疎結合という観点では、たとえば、EJBのリモートインタフェースとWSDLに、どの程度loosely具合に優位があるというと、言語やプラットフォーム非依存という点以外は、あまり思い当たらない(ディスカバリ時の具体的な実装とか別だけど)。どちらにしろ、分散システム間を通るメッセージorオブジェクトのセマンティクスが変わってしまえば、インタフェースも含めたアプリーケションを変更しなければならない点は一緒である。
つまり、エンジニアは、ソフトウェア工学的な定義のSOAは、現在のオブジェクト指向で設計できる一アプリーケションと思ってしまうので、その差異がわからんのであろう。

2. 現在のWebサービス技術は、ソフトウェア工学的なSOAの定義を実現するための技術に過ぎず、目新しさはない。
で、決めてみましたってのが、今、Webサービス技術と言われているWS-XXな仕様ということではないであろうか。これは、ソフトウェア工学的なSOAの定義を満たすアーキテクチャを作るために貢献している。しかし、1で言ったように、オブジェクト指向の延長線上にしか見えない(オブジェクト指向の範囲っていまいち不明確だけど)。たとえば、一連のWS-Security群はJAASベースのセキュリティアーキテクチャやCORBAのセキュリティアーキテクチャと、どんだけ違うかといえば、うーむと思ってしまう。 これはどのWS-XXにでもいえることで、結局、新しい技術はないと言われてしまい、その技術をやっている研究者、開発者を苦しめるのである。
つまり、現在のWebサービス技術は、「本来満たすべきビジネス的観点の定義(これは定義というより、要件だと思うが)を実現するための技術ではない。」といえる。だから、私も論文とかの”1.Introduction”とかで、お約束でビジネス的な観点でのSOA定義を書きつつ、実際の内容は、ソフトウェア工学の定義に閉じた話ばっかりなので、なんか説得力0なものが出来上がるわけさ。

3. Webサービス技術が新しい技術であるためには、ビジネス的な観点でのSOAを実現しなければならない。
で、改めて二つの定義を見ると、ビジネス的観点の定義とソフトウェア工学的な観点での定義にはまだ乖離があると思う。ソフトウェア工学的な観点によるSOAの定義を実現したITアーキテクチャが、ビジネス的な観点の定義のSOAを必ず満たせるかというと、それは必要条件であるが十分には見えない。その点をまず認識して話を進めないと、わけがわからなくなる気がした。
つまり、WebサービスSOAを実現するための技術というなら、ここで言うビジネス的観点の定義を実現するための技術をやらなければ、新しい技術であるといえないのではないだろうか?(別に有用な技術が新しい技術である必要はないのではあるが)

もちろん、それがいったい何かがわかると苦労しない。(← ぜんぜん明日につながらないな)

開発方法論つくり、もしくはセマンティックWebやPolicyなどの意味づけによる自動化に、その解のしっぽを見つけようという動きもあるが、どうなんでしょうねえ。

しかし、この二つの定義の乖離をうーんと見比べることが、最初だとわかった。この記事に感謝。