SOAとWebサービス
SOAの議論の中で、気をつける必要があるのが「Webサービス」との関わりあいです。
Webサービス
狭義のWebサービスが目指すところは、IFと実装の分離です。
特にIF記述をWSDLによって記述され、実装はJava、.Net、あるいは何らかの言語によって実装されれば良いことになります。*1
このことが実装に依存することなく、複数のプラットフォームで連携ができることを達成してくれます。
一方で、関数呼び出しのような単一のサービスを意識しておりSOAP-RPCの利用が主になります。
サービスを実装するということがここでのポイントになります。
SOA
一方でSOAのパラダイムにしたがって考えるとビジネスプロセスにしたがったフローを意識する必要があるのではないでしょうか。
その意味ではBPMが意識される中心になるといえます。
但し、システム的には「外部システムとの連携」というのがポイントでしょう。
と考えるとすれば、複数システムの連携がないシステムはSOAを適用するのは
オーバースペックかもしれません。(計画的に進める場合は別)
システム形状
「ハブ&スポーク」の形状と「バス」の形状の2つがあります。
従来はハブ&スポークになることが多く、段階的な開発というのが難しかったのですが
ESBを利用したバス形状にすることでESB間接続することで段階的な開発を可能にしました。