マイクロソフト社のHaryy Pierson(a.k.a.
DevHawk)はマイクロソフト社製のSOAに関する4つの思想を捨て去るべきだということを
述べている。というのもHarry氏の意見としてそれにはもう実用性がないということだ-少なくとも今はもう役に立たないのだ。
私は思想の行うべき目的は完了したのでそれらを捨て去るべきであると思う。一度サービス指向のパラダイムを受け入れてしまったらその思想はそれ以上どんなガイダンスをもたらしてくれるのだろうか。あったとしてもそれほどのものはないだろう。
SOA思想はもともと2004年にMSDN誌上でDon Box氏による"
A Guide to developing and Running Connected Systems with Indigo"という記事が出版されたときに始まったものである。(Indigoは現在ではWindows Communication Foundation略してWCTとして知られている。)そこでDon Box氏はWCTはSOA規則に基づいていて、他のアプローチと異なり、とりわけオブジェクト指向とは違いSOAが異なる仮説を必要とするものだと述べている。
Indigoではサービスはメッセージ交換によって影響し合う簡潔なプログラムなのだ。 デプロイされたサービスの集合体がシステムなのである。個別のサービスは永遠に存続し -与えられたサービスの有効性と安定性は非常に危険なのである。サービスの集合システムは変化を許容する- というのはそのシステムは元来のサービスとクライアントがデプロイされた後しばらくして現れる新たなサービスに適応させる必要がありまたこれが機能を壊すことがあってはならないのだ。
Don氏は下記の4つの思想を定義し、また説明している。
- 境界が明白である。
- サービスが自律的なものである。
- サービスはスキーマ、クラスではなくコントラクトを共有している。
- サービスの互換性はポリシーに基づいて決定されている。
さっきも言ったように、Harry氏はこの思想があまり役に立つものだと考えていない。またHarry氏は、SOA思想がソリューションスペースを制限しないことに関して
著したJohn Heintz氏とのディスカッションに基づいてこの結論を出したのだ。
思想1:境界が明白である。(もちろん、しかし全てそうなのだろうか?SQLベースのインテグレーションストラテジーはこのカテゴリーに収まらない。とな るとどのように良質の境界を作ればいいのだろうか?何がもっと適応するだろうか?マッシュアップと統合に対してバリアが低いのはなんだろうか?)
思想2:サービスが自律的なものである。(そうだ。これはゴールであるがそれを達成するガイダンスと境界は含んでいない。)
思想3:サービスはスキーマ、クラスではなくコントラクトを共有している。(私のインターフェースとクラスを伴うオブジェクト指向プログラムもそうだ。SOAをそれとは異なるものにするオブジェクト指向デザインとは何が違うだろう。)
思想4:サービスの互換性はポリシーに基づいて決定されている。(これは良いスタートだ。:ポリシーのタイプとスコープはアーキテクチャを形作ることがで きる。そしてポリシーはシステムの中に制限されている。確固たる定義はされていないがそこにあるべきというステートメントはある。)
Hartmut Wilms氏はこれらの主張に
あまり同意しておらず完璧なSOAの世界ではそれが本当かもしれないが現実世界にはあり得ないと述べている。
あなた達は本当に全ての開発者達がメッセージ指向のパラディムに適応していて”サービス指向が主流である”と思っているのですか?私はそうは思いませんね。 ベンダーによってCLRやJVM等の初めのアプローチが宣言されて大衆がそれを聞いてそれに続く限り、4つの思想はまだまだ存続しつづけるのです!!
一番初めの記事を書いたDon Box氏はそれに関して
コメントしておりその思想はもともとWCFが作られた規則を説明するために発行されたものであると述べている。
抽象レベルで”私たちはこれを使ってこうして欲しいです。”ということ以上にガイダンスを提供するのが目的ではなかったのです。
元来の目的とは関係なしにこの4つの思想は過去4年間、マイクロソフト社のSOAメッセージによって独占されていた。この思想に何かまだメリットがあるのだろうか? それともHarry氏が正しくそれを捨て去るべきなのか? 最後に、どちらにしてもMicrosoftの開発業界以外でそれに関して興味がある人がいるのだろうか?