サービス指向アーキテクチャー (SOA) とは、 例えば、サービス間でデータを受け渡したり、1 つ以上のサービス間でアクティビティーを調整するといった、 相互に通信するサービスの集合です。
企業は、ビジネス・バリュー・チェーン全体をカバーするビジネス・プロセス向けの情報技術 (IT) サポートを実装するために、 既存のシステムを統合することを望んでいます。 堅固な point-to-point 電子データ交換 (EDI) から Web オークションにいたるまで、 さまざまな設計が使用されています。 インターネットを使用することにより、 企業はその IT システムを内部部門や外部の顧客が使用できるようにすることができますが、 対話は柔軟ではなく、標準化されたアーキテクチャーがありません。
このような、 リソースとデータへの接続とそれらの共用をサポートするテクノロジーに対する要求が増加していることにより、 柔軟で標準化されたアーキテクチャーが求められています。 SOA は、大規模アプリケーションを、ビルディング・ブロック、 すなわち小規模のモジュラー機能単位またはサービスに構造化することにより、ビジネス・プロセスを統合して、 会社内外の異なるグループのユーザーが使用できるようにする柔軟なアーキテクチャーです。 ビルディング・ブロックは、 サービス・プロバイダー、サービス・ブローカー、またはサービス・リクエスターの 3 つの役割のうちの 1 つです。 これらの役割についての詳細は、サービス指向アーキテクチャーへの Web サービス・アプローチを参照してください。
SOA の要件
異なるプラットフォーム上のアプリケーション間で単一統合を行う場合の最も重要な基盤は、 通信プロトコルを準備することです。 このプロトコルは、ほとんどのシステムおよびプログラム言語で準備されています。
プロバイダーが提供するサービスを使用するには、 プロバイダー・システムにアクセスできることが必要であるばかりでなく、 サービス・インターフェースの構文もプラットフォームに依存する形式で明確に定義されていなければなりません。
設計時、あるいはシステムのランタイムでも有用な統合をサポートするには、 適切なサービスを検索するための検索メカニズムが必要です。 これらのサービスを、コンピューター・アクセスの可否、階層構造、 あるいは、各カテゴリー内のサービスが何を行い、 どのように呼び出されるのかに基づいた分類法 によって分類してください。