SOA(サービス指向アーキテクチャ) えすおーえー(さーびすしこうあーきてくちゃ)
サービス指向アーキテクチャマイクロサービスESBWebサービス疎結合エンタープライズ統合
SOAについて教えて
簡単に言うとこんな感じ!
SOAは「システムの機能を小さな”サービス”に分けて、それをつなぎ合わせてシステム全体を作る考え方」だよ!レゴブロックみたいに、「顧客管理」「在庫管理」「請求処理」をそれぞれ独立したブロックとして作って、組み合わせる感じなんだ。
SOAとは
SOA(Service-Oriented Architecture、サービス指向アーキテクチャ) とは、システムの機能を「サービス」という独立した部品単位で構築し、それらをネットワーク経由で連携させることでシステム全体を実現するアーキテクチャ(設計思想)のことです。2000年代に大企業のシステム統合手段として広く普及しました。
従来のシステムは「モノリシック(一枚岩)」と呼ばれ、すべての機能が一つの大きなプログラムに詰め込まれていました。これでは一部を変更するだけで全体に影響が出てしまいます。SOAでは機能を疎結合(そけつごう)な独立サービスとして分離するため、「在庫管理サービスだけ改修する」「外部の決済サービスをつなぎ替える」といった柔軟な対応が可能になります。
ビジネスの視点で言えば、「営業システム・経理システム・物流システムがバラバラに動いている大企業が、それらを共通のルールでつなぎ、データを一元的に流せるようにする」ための設計方針です。システム発注の際に「既存システムとどうつなぐか」を考えるとき、SOAは重要なキーワードになります。
SOAの核心:サービスとは何か
SOAにおける「サービス」には、満たすべき4つの原則があります。
| 原則 | 意味 | たとえ話 |
|---|---|---|
| 疎結合 | 各サービスは互いの内部実装を知らない | 電話口で話す相手が、どこにいるか知らなくてもいい |
| 抽象化 | 内部の詳細を隠し、インターフェースだけ公開する | 自販機は中の仕組みを知らなくても使える |
| 再利用性 | 同じサービスを複数のシステムから呼び出せる | 「消費税計算サービス」を全社で使い回す |
| 発見可能性 | どんなサービスが存在するか検索・把握できる | 社内サービスカタログで一覧確認できる |
SOAの覚え方
「サービスは疎で抽象的、再利用して発見できる(さ・ちゅ・さい・はっ)」と4原則をセットで覚えましょう。
SOAを構成する主要コンポーネント
┌─────────────────────────────────────────────┐
│ サービス消費者 │
│ (営業システム / ECサイト / モバイルアプリ) │
└───────────────────┬─────────────────────────┘
│ サービス呼び出し
┌───────────────────▼─────────────────────────┐
│ ESB(エンタープライズ・サービス・バス) │
│ ルーティング/変換/監視/セキュリティ制御 │
└──────┬──────────────┬────────────────┬──────┘
│ │ │
┌──────▼──────┐ ┌────▼────┐ ┌──────▼──────┐
│ 顧客管理 │ │ 在庫管理 │ │ 請求処理 │
│ サービス │ │ サービス │ │ サービス │
└─────────────┘ └─────────┘ └─────────────┘
- ESB(Enterprise Service Bus):各サービスをつなぐ”共通バス”。メッセージのルーティング・形式変換・認証などを一手に担う
- サービスレジストリ:どんなサービスが存在し、どこにあるかを管理する「サービス名簿」
- WSDL(Web Services Description Language):サービスの仕様書。「何が使えて、どう呼ぶか」を記述する
歴史と背景
- 1990年代後半:大企業内でシステムがバラバラに乱立する「サイロ化」が深刻化。部門ごとに別々のシステムが存在し、連携できない問題が顕在化
- 2000年:Webサービス技術(SOAP・WSDL・UDDI)が登場。ネットワーク越しにシステムを呼び出す標準が整備される
- 2002〜2003年:Gartner社がSOAを大企業のシステム統合の主流アーキテクチャとして提唱。「SOAでシステムを再構築せよ」が流行語に
- 2005〜2010年:多くの大企業・金融機関でSOA導入プロジェクトが走る。ESB製品(IBM WebSphere、Oracle Service Busなど)が普及
- 2010年代前半:SOAの複雑さ・ESBのボトルネックが批判を浴びる。「重すぎる」「導入コストが高い」という声が高まる
- 2014年以降:SOAの反省を踏まえたマイクロサービスアーキテクチャが登場。よりシンプルで小さなサービス分割の考え方が主流に
- 現在:SOAの設計思想はマイクロサービスやAPI経済(APIエコノミー) に継承されており、考え方そのものは現役
SOA・マイクロサービス・モノリシックの比較
| 比較軸 | モノリシック | SOA | マイクロサービス |
|---|---|---|---|
| サービス粒度 | 分割なし | 大きめ(業務機能単位) | 小さい(機能単位) |
| 連携方式 | 内部呼び出し | ESB経由 | REST API / メッセージキュー |
| 変更のしやすさ | 低い | 中程度 | 高い |
| 導入コスト | 低い | 高い(ESB構築が重い) | 中〜高い |
| 向いている規模 | 小〜中規模 | 大規模エンタープライズ | 中〜大規模 |
| 代表的な製品 | 従来型パッケージ | IBM WebSphere ESB | Kubernetes / AWS ECS |
SOAとマイクロサービスの違いを一言で
- SOA:「大きなサービスをESBという”集中管制塔”でつなぐ」
- マイクロサービス:「小さなサービスが直接・分散的にやり取りする」
SOAが「中央集権型の高速道路網」なら、マイクロサービスは「多数の路地が直接つながる街路網」のイメージです。
関連する規格・RFC
| 規格・番号 | 内容 |
|---|---|
| OASIS SOA Reference Model | SOAの概念・用語を標準化したOASIS(標準化団体)による参照モデル |
| OASIS Web Services Security (WS-Security) | SOAにおけるWebサービスのセキュリティ標準 |
| W3C WSDL 2.0 | Webサービスのインターフェース記述言語の標準仕様 |
| W3C SOAP 1.2 | SOAで広く使われるXMLベースのメッセージプロトコル |
関連用語
- マイクロサービス — SOAの反省から生まれた、より小さな粒度でサービスを分割するアーキテクチャ
- ESB(エンタープライズサービスバス) — SOAでサービス間の通信を仲介する共通インフラ
- API — サービス同士が通信するための「窓口」となるインターフェース
- REST — Webサービス・APIの設計スタイル。マイクロサービスで主流
- SOAP — SOA時代に広く使われたXMLベースのWebサービスプロトコル
- 疎結合 — システム部品が互いに依存しすぎない設計原則。SOAの根幹
- モノリシックアーキテクチャ — SOAが解決しようとした「一枚岩型」の従来システム設計
- Webサービス — ネットワーク越しに機能を提供する仕組み。SOAの技術的基盤