ITmedia エンタープライズ:SOAがつくる変幻自在の情報システム

ITmediaの特集ページ。

エンタープライズ・システム業界で大流行のSOA(Service-Oriented Architectures)だが、その解説はしばしば、簡単な視点の変更とか言葉の言い換えにすぎず*1、抽象的で実体のない、ともすれば無意味なbuzzwordという印象を受ける。
第一に、何をサービスと呼ぶのか。それについて、過去のSOA関連記事を探ってみた。

サービスとは、アプリケーション境界を越えて複数のアプリケーションから共用されるソフトウェア部品である。

 従来からあるオブジェクトやコンポーネント(分散オブジェクト)などのソフトウェア部品のテクノロジーは、主に同一のアプリケーション内での共用を目指していたものだった。

 つまり、呼び出し側と呼び出される側のテクノロジー基盤やデータ設計が同一であることを前提としたものだった。さらに、同じプロセス内で1つのトランザクションとして、呼び出し側と呼び出される側が稼動していることが前提とされているケースもあった。

 SOAでは、このような前提なしでも、ソフトウェアコンポーネントとのやり取りが可能である実装を行うことが重要である。この要件、つまり、イントラアプリケーション(アプリケーション内)ではなく、インターアプリケーション(アプリケーション間)での共用を行うことを前提にすることより、上記の「独立して稼動」「中粒度」「実行時にバインド」などの要件が必然的に生じてくるわけである。

ソフトウェア部品の再利用については、従来、ソフトウェア開発の枠内で議論されてきた。
SOAの本質は、ソフトウェアの再利用というテクノロジーを、ソフトウェアの世界を超え、開発されたサービスを「組み合わせ」、新たな業務アプリケーションを構築することに生かすものだ。
SOAは、経費削減のみならず、企業価値そのものを生み出すツールへと、ITが変化するパラダイム・シフトである。
そのため、各サービスを必要に応じて連携させ、ビジネスプロセスに従ってコントロールする仕組みSOAには必要で、そういった機能を、現在はESB(Enterprise Service Bus)とBPM(Business Process Management)と呼んでいる。これらについてはIBM WebSphere刷新 - 明日から始めるSOA〜今日のSOAに足りないものは? (MYCOM PC WEB)に詳しい。
(以上、引用部分ITmedia Survey:SOA―サービス指向アーキテクチャー(後)

*1:>

SOAでは、情報システムを「アプリケーション」という単位ではなく「サービス」という視点で考えるように発想を転換