スタートページWeb教材一覧システム調達

SOA


SOA(Service Oriented Architecture)とは、ソフトウェアを部品化して、再利用するシステム開発方法の一つです。SOAでは、「受注」とか「出荷」というような、業務で意味をもつ小さい単位をサービスといいます。サービス単位でのソフトウェアを部品として使えるようにすれば、それらのサービスの部品を組み合わせることにより、販売システムのような情報システムを構築することができます。

部品化の観点

従来の部品化技法とSOAの違いに注目すると、次のことがあげられます。

部品化をするのに、どの程度の粒度にするかが問題になります。「販売」というような大きな粒度にすれば、情報システムを構築するには便利ですが、部品として再利用できる度合いが少なくなります。逆に、「新商品の登録」というような小さな粒度にしたのでは、部品の数が膨大になり、SOAの利点を失うことになります。業務をよく理解している利用者が参画しないと、使いにくい部品になってしまいます。

開発アプローチからの観点

SOAは、データ中心アプローチオブジェクト指向アプローチの発展形態であるという見方もできます。

データ中心アプローチでは、対象業務に必要となるデータの構造に着目したデータベースを構築し、そのデータベースを更新したり、データベースから情報を取り出したりする処理を記述するのがプログラムである、すなわち、データベースが主でプログラムが従であるという考え方です。環境の変化により処理は変化するが、データ構造はあまり変化しないので、環境変化による保守・改訂への影響を少なくするとともに、保守・改訂作業を容易にする効果があります。

オブジェクト指向アプローチでは、データベースの処理(メソッド)もオブジェクトに組み込みました。また、インヘリタンス(継承)の概念により、部品の再利用を効果的に行えるようになりました。
 オブジェクト指向アプローチでは、オブジェクトという「主体」が中心になります。その主体とは「商品」や「出荷」であり、情報システムと離れて、業務で取り扱うモノ(オブジェクト)を中心に考えることができるようになりました。

SOAでは、さらに業務指向が進み、データベースやオブジェクトという情報システムに密着した概念から、「何をするのか」という「サービス」を対象にした考え方へと発展してきたのだといえます。

利用環境からの視点

既存の情報システム(アプリケーション)は、レガシー時代の汎用コンピュータ、クライアントサーバシステム、Web環境のプラットフォームに散在しています。これらを統合することが望まれますが、抜本的に移行するには膨大な作業が発生します。また、アプリケーションによっては、それに適したフラットフォームで運用するのが適切な場合もあります。それを分散アプリケーションといいます。
 複数の分散アプリケーションをサービスという単位でとらえて、インタフェースを統一することにより、あたかも一つのアプリケーションとして運用することが重要であることは、従来からも認識されており、多くの技術や標準化が行われてきました。SOAは、そのような発展を前提にしたシステム開発の方法論だともいえます。


理解度チェック: 正誤問題選択問題
過去問題