SOA(サービス指向アーキテクチャ)
システムを「特定機能を提供する部品(サービス)の集まり」と見なす考え方だよ
それぞれの部品(サービス)は独立しているよ
私も よく分かってないよ
「SOA」と表現された場合は「Service Oriented Architecture」の略だよ
簡単に書くよ
SOA(サービス指向アーキテクチャ)(読:サービスシコウアーキテクチャ 英:service oriented architecture)とは
システムを「1つのデカいシステム」と捉えるのではなく「それぞれの機能を提供する部品(サービス)の集まり」と見なす考え方
です。
詳しく書くよ
最初に留意事項です。
某・資格試験の過去問に出てきたので無理やり取り上げてみましたが、ぶっちゃけ、私も自分の理解に自信がありません。
できれば他のところで情報を補完してください。
……と華麗に言い訳をしたところで本題に入ります。
ものすごい大雑把に言えば
システムを「それぞれが独立した部品の集まり」と見なす考え方
が「サービス指向アーキテクチャ」です。
「SOA(ソーア、エスオーエー)」と表現されることも あります。
「SOA」と表現された場合は「Service Oriented Architecture(サービス・オリエンテッド・アーキテクチャ)」の略です。
気が向いたら、覚えてあげてください。
※「Service Oriented Architecture」を何となく日本語にすると「サービス指向構成」となります。[詳細]
注意点として、今あなたが頭の中で連想したであろう「サービス」は忘れてください。
なんらかの機能を提供する「独立した部品」を「サービス」と呼んでいるだけです。
例えば、そうですね。
まずはピヨピヨカンパニーの例で説明しましょうか。
ピヨピヨカンパニーにはピヨ太君、ピヨ子さん、ピヨ太ママの3人がいます。
ピヨ太君は経営のプロです。
儲けるためのノウハウをガッツリ持っています。
やる気だけは致命的に足りないですが、それなりに優秀です。
ピヨ子さんは営業のプロです。
緩急自在の交渉術は大阪のおばちゃんにだって負けません。
その気になれば詐欺師相手に高級羽毛布団を売りつけることだって可能でしょう。
ピヨ太ママは接客のプロです。
豊富な人生経験から醸し出される包容力は神の領域に入ります。
頑固ジジイだって5分も話せば笑顔を見せるでしょう。
この3人がピヨピヨカンパニーの社員です。
……というのが、SOAではない考え方です。
SOAでは、3人は個人事業主です。
ピヨ太君もピヨ子さんもピヨ太ママも独立独歩の精神で生きています。
ピヨ太君は経営のプロです。
経営コンサルタント的な仕事で生計を立てています。
ピヨ子さんは営業のプロです。
営業代行で生計を立てています。
ピヨ太ママは接客のプロです。
気が向いたときにファミレスとか居酒屋でアルバイトをしています。
この個人事業主3人が協力し合って、対外的にはピヨピヨカンパニーとして行動しています。
「ピヨピヨカンパニー」という名前の集まりに3人が参加しているイメージです。
ただし、3人は、それぞれ独立して生きています。
ピヨピヨカンパニーとは無関係な人からピヨ太君個人に「経営分析をお願いしたいのですが……」と依頼が入ったら、ピヨ太君は普通にやります。
それはピヨ子さんやピヨ太ママも同じでしょう。
ピヨピヨカンパニーに参加してはいますが、縛られてはいないのです。
これがSOAの考え方です。
あなたが、中身はよく分からないけどスーパーハイテク便利な「ピヨピヨカンパニーシステム」を作ろうと思ったとしましょう。
ピヨピヨカンパニーシステムは「経営」「営業」「接客」の3つができるシステムです。
普通に考えたら、作るのは「ピヨピヨカンパニーシステム」です。
「経営」「営業」「接客」の3つの機能を持つピヨピヨカンパニーシステムを作ります。
SOAでは少し違います。
SOAでは、まず「経営」に関する機能を提供する「ピヨ太サービス」を作ります。
ピヨ太サービスは独立した機能です。
特定のルールに従ってやり取りすれば、ピヨ太サービスが提供する「経営」機能を利用できます。
次に「営業」に関する機能を提供する「ピヨ子サービス」を作ります。
ピヨ子サービスも独立した機能です。
特定のルールに従ってやり取りすれば、ピヨ子サービスが提供する「営業」機能を利用できます。
次に「接客」に関する機能を提供する「ピヨ太ママサービス」を作ります。
ピヨ太ママサービスも独立した機能です。
特定のルールに従ってやり取りすれば、ピヨ太ママサービスが提供する「接客」機能を利用できます。
この3つのサービスを利用する形で「ピヨピヨカンパニーシステム」を作ります。
それぞれのサービスは独立しています。
もし他のシステムを作るときに「経営」機能が欲しくなったら、そっちでもピヨ太サービスを利用できます。
このように「それぞれが独立した部品(サービス)」を用意して、それらを利用する形でシステムを構築する考え方が、サービス指向アーキテクチャ(SOA)です。
それぞれの機能が部品化されていて再利用できる形になっているので、柔軟性のあるシステム開発ができます……多分。
ちなみに、今回いろいろ調べたのですが、人によって細かい部分の定義が微妙に違ったりしました。
深いところまで突っ込んで見ていくと逆に混乱するかもしれません。
ご注意ください。
一言でまとめるよ
まぁ「サービス指向アーキテクチャ(SOA)」って単語が出てきたら「システムを『機能単位の部品(サービス)』の集まりと見なす考え方なんだな~」と お考えください。
おまけ
■訳してみるよ
「service(サービス)」はカタカナで「サービス」で分かりますよね。
「指向」は日本語です。
「architecture(アーキテクチャ)」の意味は「建築術」とか「建築学」とか「建築様式」とか「建物」とか「構造」とか「構成」とかです。
何となく くっつけると
サービス指向の構造
となります。






