SOA サービス中心設計
SOAはService Oriented Architectureである。
サービス指向アーキテクチャとはその名の通り、サービス中心で設計しよう、というコンピューターソフトウェアの設計パラダイムである。
SOAの中心的な考え方はアプリケーションは互いに通信するサービスの集合体で構成されるというものです。
この通信は単純なデータの受け渡しを含むこともあれば、2つ以上のサービスが何らかの活動を調整することもある。
ビジネスのレベルで
ビジネス用語ではSOAは企業が異種システムをより効果的に統合するのに役立ちます。
SOAのモジュール性(サービスを独立して構築、更新、交換、拡張できる)は、柔軟性と既存資産の再利用という点でメリットをもたらす。
例
在庫管理、注文処理、出荷のための個別のシステムを持つ小売企業を考えてみましょう。これらのシステムはそれぞれ独立して構築され、サイロの中で動作しています。
SOAを導入することで各システムはその機能をサービスとして公開し、他のシステムで利用することができるようになります。
受注処理システムは在庫システムのサービスを利用して在庫レベルを確認し、出荷システムのサービスを利用して配送を手配することができます。
これは重複を減らすだけでなく、1つのシステムを変更しても他のシステムを混乱させることがないようにするためです。
アプリケーションのレベルで
アプリケーションの面では、SOAはビジネスプロセス管理(BPM)やエンタープライズアプリケーション統合(EAI)でよく利用されます。
BPMツールでは、SOAを活用して、さまざまなシステムから公開されるサービスを利用して、ビジネスプロセスのオーケストレーションと自動化を行うことが多い。
EAIではSOAを利用して異種システムを統合し、より効果的に通信・連携できるようにすることができる。
例
ある保険会社が顧客対応システムとバックエンド処理システムを統合するためにSOAを導入した事例を考えてみましょう。
以前は顧客が同社のウェブサイトで入力した情報を、バックエンドシステムに手作業で再入力する必要がありました。
SOAを導入することでバックエンドの機能をサービスとして公開し、顧客向けシステムから直接呼び出すことができるようになり、重複を排除して効率化を図ることができました。
ただSOAは万能ではありません。
サービスが適切に細分化され、過度に結合されないよう慎重に設計する必要があります。
また、サービスのライフサイクルを管理しビジネスのニーズを満たすようにするための優れたガバナンスが求められます。

