SOA(えすおーえい)情報システム用語事典

service-oriented architecture / ソア / サービス指向アーキテクチャ

» 2004年07月29日 00時00分 公開
[@IT情報マネジメント編集部,@IT]

 ビジネスプロセスの構成単位に合わせて構築・整理されたソフトウェア部品や機能を、ネットワーク上に公開し、これらを相互に連携させることにより、柔軟なエンタープライズ・システム、企業間ビジネスプロセス実行システムを構築しようというシステムアーキテクチャのこと。

 ここでいう“サービス”とは、ほかのコンピュータから利用可能となるようにネットワーク上にインターフェイスを公開したソフトウェアという意味とであるのと同時に、「注文受付」「信用照会」「在庫確認」「出庫指示」「請求処理」などといった“ビジネスプロセス上の処理単位”を示している。

 すなわちSOAは、標準的なインターフェイスを持った再利用可能なソフトウェア部品の組み合わせによってシステムを構成するという“コンピュータシステムの作り方”であるとともに、独立して運営されるビジネスファンクションの組み合わせによってビジネスプロセスを構成するという“ビジネスシステム構築手法”という側面がある。

 全体システムを“組み合わせ”によって構築することによって、外部の“サービス”を新たにプロセスに組み込んだり、不要な“サービス”を外したりといった形で、プロセス変更が容易かつ柔軟に行えることがメリットとなる。また、(外部ソフトウェアからの)リクエストに対して処理結果をサービスとして返すスタイルであるため、ソフトウェアモジュールをデリバリ(配布)する必要がなく、ソフトウェア管理やメンテナンスの労力が軽減できる。

 コンピュータシステム・アーキテクチャとしてのSOAを実践するためには、構成要素となるソフトウェア・サービスは、標準化されたインターフェイスを実装している必要がある。1企業のエンタープライズ・システムのようなクローズドなシステムであれば、社内の標準としてプロトコルやデータ形式を定めればよいが、広範な社外連携を想定するならばグローバルな標準技術を採用することになる。

 その最右翼がWebサービスで、WebサービスがSOAの代名詞のように使われることもある。また、レガシーシステムのサービス化、サービス同士のビジネスプロセス制御などの機能を持つシステムインフラ製品としてEAIBPMESBなどが登場している。

 SOAの発展には、いくつかの段階があるとされる。第1段階はきちんと記述言語で定義されたサービスが、統一されたインターフェイスで静的に相互に接続し、イベントドリブンに動作するフェイズ、第2段階はビジネスプロセス定義に基づいてサービス同士が統合されるフェイズ、第3段階がUDDIのようなサービスブローカによって、サービス同士が動的に協調・連携する“コンポジット・アプリケーション”が実現されるフェイズだという。

 ただし、SOAの厳密な意味での定義・範囲は一定ではなく、非同期、疎結合、粗粒度の分散コンポーネント・コンピューティングと同義とするものから、上記のサービスブローカによるサービスの発見メカニズムが不可欠で、単にサービス同士の接続によるシステム構築アーキテクチャは、サービスベース・アーキテクチャ(SBA)と呼び、区別すべきだとする意見もある

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ