【えすおーえー】

SOA(サービス指向アーキテクチャ) とは?

最終更新:
💡 業務の機能を「サービス」として切り出し、組み合わせて使う

業務の機能を「サービス」という部品として切り出し、標準的なインターフェースで連携させてシステムを組み立てる設計の考え方。

📌 このページのポイント
SOA — サービス指向アーキテクチャ ESB(エンタープライズサービスバス) 注文サービス SOAP/REST 在庫サービス SOAP/REST 決済サービス SOAP/REST 顧客サービス SOAP/REST Webアプリ モバイルアプリ 外部システム サービスを再利用可能な部品として共有・連携する設計思想
SOAのサービス連携イメージ
ひよこ ひよこ
SOAの「サービス」って、何のこと?
ペンギン先生 ペンギン先生
「顧客の与信チェック」「在庫の引き当て」のように、何度も使う業務のまとまりのことだよ。利用する側は中身を知らなくても、決められたインターフェースで呼び出せる「部品」として扱うんだ
ひよこ ひよこ
マイクロサービスとどう違うの?
ペンギン先生 ペンギン先生
考え方は近いけど、範囲が違うことが多いよ。SOAは会社にある複数のシステムをつなぐ「企業全体の統合」、マイクロサービスは「1つのアプリを小さなサービスに分ける」設計として語られることが多いんだ。SOAが街全体の交通整理なら、マイクロサービスは1つのビルの内部設計のイメージだね
ひよこ ひよこ
ESBって何?
ペンギン先生 ペンギン先生
Enterprise Service Busの略で、サービス同士の通信を仲介する仕組みだよ。メッセージの形式変換やルーティング、プロトコルの変換を中央でまとめて担当するんだ
ひよこ ひよこ
真ん中にまとめると便利そうだけど、問題はないの?
ペンギン先生 ペンギン先生
ESBに処理を詰め込みすぎると、変更のたびにESBを直す必要が出て、全体が動かしにくくなることがあるよ。マイクロサービスを提唱した記事では、通信路は単純にして処理は各サービスに持たせる「smart endpoints and dumb pipes」という方針が示されているんだ
ひよこ ひよこ
SOAはもう使われないの?
ペンギン先生 ペンギン先生
言葉を聞く機会は減ったけど、「機能をサービスとして切り出し、標準的なインターフェースで連携させる」という基本は今のAPI連携やマイクロサービスにも通じているよ。ただSOAという言葉は人によって指す範囲が違うから、話すときは「ESBを使う統合のこと?」のように中身を確かめるといいね
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「SOA」って出てきたら「業務の機能をサービス単位の部品にして、標準的な方法で連携させる設計」と思えればだいたいOK!
📖 おまけ:英語の意味
「Service-Oriented Architecture」 = サービス指向アーキテクチャ
💬 Service-Oriented(サービスを中心に考える)Architecture(設計の構造)。The Open Groupは「サービス指向を支えるアーキテクチャのスタイル」と定義しているよ

参考資料

← 用語集にもどる