SOAはテクノロジーではなく思想。
最新の考え方ではなく、古くからある考え方。
実現手段としてWebサービスが成熟したというだけの話。
もう3年、4年前からSOAのお勉強をしてきたけど。
ようやく実際の開発でどう活用するかを検討中。
「再利用性を高める」なんて言葉をよく聞かされたけど。
実際のシステムの機能の中で再利用されるものなんて
限られている。
「再利用」を中心に考えると、それは粒度の小さい部品になり、
「ビジネスに価値をもたらす単位」というSOAの思想から大きく
外れてしまう。
「再利用」を中心に考えてはいけない。
「俊敏性(アジリティ)」と考えよう。
既存の資産の有効利用が俊敏性を高めることになるが、
それは同時並行で複数のビジネスのために同じ資産を
活用することだけを指すのではない。
既存の資産をほぼそのままに新しい機能を追加できるよう、
「疎結合」が守られているなんてこともそうだし。
データアクセスやビジネスロジックは変更せず、
画面の見た目や操作性のようなユーザビリティだけを
「作りかえられる」仕組みにすることもそう。
そんなことを考えていると、SOAの構成要素として
よく言われる「ESB」や「BPEL」の必要性が少し
わかってきた気がする。
原点はやはりビジネス。
なぜその技術が必要なのかを考えないと。