2008年2月15日金曜日

SOA オブジェクト指向との違い

2月15日晴れ。

技術は日進月歩、でも技術者は育たない、これには理由があります。

これは後日に。



でもはSOAについて、今日はオブジェクトの違いについてのべます。



再利用される範囲

SOAのサービスは、企業の内外を問わず、複数のアプリケーションをまたがって再利用できるようになっている。一方、オブジェクトやコンポーネントは、どちらかと言えば同一アプリケーション内、あるいは複数のアプリケーション間であっても企業内で再利用されるソフトウエア部品である。


ソフトウエア部品の粒度

SOAのサービスはビジネス環境の変化に効率よく対応できるように、ビジネス・プロセスの一部(サブ・プロセス)を表現していることが多い。例えば、「在庫確認サービス」「発注サービス」などだ。一方、オブジェクトやコンポーネントは、プログラム作成をいかに効率化させるかという点に着目しており、業務処理の変化をシステムの変更に素早く反映させたいという観点で見ると粒度が小さ過ぎる。オブジェクトやコンポーネントがシステム側の都合で構成されるのとは対照的に、サービスはビジネス視点で構成される。


結合度

オブジェクトやコンポーネントはアプリケーション同士が密接に結合(密結合)しており自由度が低かった。しかし、SOAではインタフェースの方式を決めておくだけの“疎結合”でつながっている。そのため、制約が少なく、多様な組み合わせを実現するための自由度が高い。


相互運用性、相互接続性

オブジェクトやコンポーネントは同質の技術との通信を前提に設計されているが、SOAは異機種混合環境を前提にしているので、多様なプラットフォームや技術間での連携が可能である。