SOAとは何か?サービス指向アーキテクチャの概要とメリットを紹介

2021年1月30日

SOAの概要

SOAとは“Service Oriented Architecture”の略称です。
日本語では「サービス指向アーキテクチャ」と言います。「エスオーエー」あるいは「ソーア」と呼ぶこともあります。
SOAは特定のシステムや製品を指すものではなく、「コンピュータ・システムを開発する時の考え方・手法」を指した言葉です。
SOAには様々な解釈がありますが、主に業務システムにおける考え方を指しており、とくに組織規模のシステム製作において話題に上ります。

SOAの考え方

SOAは1つのシステムを「1つの大きな製品」ではなく「複数の部品(サービス)が集まったもの」として考えます。
基本的に「1つの処理に1つのサービス」として区切られており、個々の独立性は高く、サービス同士の依存性は低いのが特徴です。
この「1つの処理」とは、多くの場合ユーザー視点で区切りをつけます。たとえば「顧客への連絡」「在庫の確認」といった業務上の単位です。
これら個々のサービスは、外部から呼び出し可能であることが前提となります。多くはWebを媒介してアクセスできるように、標準的なインターフェースが設けられています。

SOAのメリット

ここからはSOAのメリットを紹介していきます。

柔軟性の高いシステム開発

SOAでは個々のサービスを作ったあとにアプリケーションを組み立てます。
組み立ての際に不都合なサービスがあった場合、そのサービスだけ修正を行い、他のサービスと取り替えるといったことも可能です。
組み合わせの数だけ選択肢が広がるため、より柔軟にシステム開発が行えます。
各サービスはブラックボックス化されていますが、これによりサービス同士の依存によるシステムの煩雑化を防ぐことができます。サービス同士の依存性が低いため、より低いコストでシステムを運用することが可能です。

他システム製作をより簡単に

「外部から呼び出される」という前提でサービスを作ることで、他のシステムを作る際にも活用が可能になります。
たとえば新システムを作る時、過去に作ったサービスから必要なものを選んで組み合わせ、必要な部分だけ付け足したり、作り直すことができます。これもSOAの大きなメリットです。
過去のサービスを利用できるため、たとえば1つの企業で似たようなシステムをいくつも開発する……といった重複開発も防げます。これにより、新システムを開発する際のコストを抑えやすくなります。
また、過去に開発されたサービスであればデバッグも完了しているため、信頼性も確保されます。

完成後の変化対応が容易

たとえば業務用システムでは、完成して顧客が使用し始めた後にもシステムの変更を迫られることがあります。
これを「1つの大きな製品」として作っていると、処理の変更には時間がかかり、デバッグの負担も大きくなります。
一方SOAの手法で製作していた場合、変更の必要があるサービスのみ調整を行い、短時間で対応することが可能です。開発コストを抑えられるため、SOA方式は顧客にとっても大きなメリットとなります。

1つのシステムのみに注目すると、個々のインターフェースを設定せねばならないSOAは煩雑に思えます。
しかし「企業におけるシステム開発の考え方」として捉えると、長期的に見てより効率化しやすい手法といえるでしょう。

参考