SOA (Service Oriented Architecture)とは、大規模なシステムを「サービス」の集まりとして構築する設計手法。業務上の一処理に相当するソフトウェアの機能を一つのサービスと見なし、それらのサービスをネットワーク上で連携させて全体のシステムを構築するという考え方。業務処理の変化が加速しており、その変化をシステムの変更に素早く反映させたいというニーズに対応できると期待され、2004年頃からIT業界において注目を集めている。サービスとは、外部から標準化された手順によって呼び出すことができる一まとまりのソフトウェアの集合であり、単体で人間にとって意味のある単位の機能を持つものを指す。従来は自己完結していたアプリケーションソフトに他のソフトウェアとの連携機能を持たせたものと考えても良い。プログラム上の部品ではなく、たとえば「決済する」「在庫状況を照会する」などの大きな単位で一つのサービスとすることが求められる。ソフトウェアを部品化して呼び出し規約を標準化し、その組み合わせでシステムを構築していく手法は、従来から存在するが、部品化の単位はより細かいプログラム上の機能であり、また、システム全体がある程度共通の技術基盤に基づいて構築されることを前提としていることが多い。 一方、SOAでは、個々のアプリケーションの開発言語や動作環境などは問題とされず、標準化された共通のメッセージ交換インターフェースに対応しているだけでよい。また、アプリケーションの一部をサービスとすることもできるし、複数のアプリケーションをまとめて一つのサービスとすることもできる。SOAを実現する具体的な技術基盤の標準として「Webサービス」の拡張が図られている。ソフトウェアをWebサービス化することにより、各サービスがXMLで記述されたメッセージをSOAPでやり取りし、連携して、全体システムとして動作する。