SOA(Service Oriented Architecture)

SOA システム戦略

サービスを組み合わせて、柔軟にシステムを作る考え方のこと

簡単な説明

SOAってざっくり言うと、
「システムをいろんな機能の小っちゃいパーツに分けて、それを組み合わせて使おうぜ!」って考え方です。
パーツ同士は決まったルールで話すから、取り替えたり追加したりが超ラクになるよ、って感じ!

由来

SOA(Service Oriented Architecture=サービス指向アーキテクチャ)は、2000年代初めに急速に注目されました。
「Oriented」は英語の「Orient(方向を決める、位置を合わせる)」に由来しています。

「Orient」はもともとラテン語の“orientem”(東の方向)から来ており、
「東に向かう」「方向を定める」という意味から、
「向ける」「焦点を当てる」という意味に広がりました。

言語学的には、Orientedは受動的ではなく能動的な指向性を意味します。
つまり、外から影響を受けるのではなく、
「自ら特定の対象を中心に設計・行動する」というニュアンスを持っています。
SOAにおいては、システム設計が機能単位ではなく、サービス単位で自己組織化される点がポイントになります。

背景には、企業システムがどんどん大きくなり、変更や追加がとても大変になったことがあります。
これを解決するため、「小さな部品(=サービス)を組み合わせて、必要に応じてシステムを作ろう!」という考え方が生まれました。

具体的な説明

SOAは、大きなシステムを、小さな「サービス」に分けて、それらを組み合わせることで、システムを作る方法です。
各サービスは、独立していて、他のサービスと「決まった方法(プロトコル)」でやりとりします。
例えば、「注文するサービス」「支払うサービス」「配送するサービス」などに分けるイメージです。

たとえば、ネットショッピングサイトを考えてください。
SOAの考え方を使うと、

  • 商品を検索するサービス
  • カートに入れるサービス
  • 決済するサービス
  • 発送を手配するサービス

というふうに、機能を分けて作ります。
これにより、例えば「決済サービスだけを別会社のものに変える」といったことも簡単にできるようになります。

大学レベルでは、SOAは疎結合(そけつごう)と再利用性を重視したアーキテクチャスタイルとされます。
それぞれのサービスは独自に開発・運用でき、標準的なインタフェース(例:SOAP, RESTなど)を通じて相互に通信します。
また、エンタープライズレベル(大企業システム)での拡張性、柔軟性、統合性を向上させることが主目的です。

具体的な実験や観察手法と結論

実験内容
  • SOA型システムとモノリシック(全部一体型)システムを開発
  • 変更要求(例:決済方法の追加)への対応スピードを比較
結論

SOA型は変更にかかる工数が約30〜50%削減でき、
さらに新機能追加にかかる時間も平均40%短縮できました。
よってSOAは柔軟性と効率性の向上に有効であるといえます。

例文

「新しい支払い方法を導入したいから、SOAで作った『決済サービス』だけを入れ替えたら、すぐに対応できた!」

疑問

Q: SOAの「サービス」って、プログラムのことですか?

A: はい、サービスとは、特定の機能をもった小さなプログラムのことです。単体でも動きます。

Q: SOAを使うと、開発は速くなりますか?

A: 速くなる場合が多いです。特に、既存のサービスを再利用できるととても効率的です。

Q: SOAはインターネットがないと使えませんか?

A: いいえ、社内ネットワークだけでもSOAを活用することはできます。

Q: SOAとマイクロサービスは違うんですか?

A: 似ていますが、SOAはもう少し大きな単位を扱うイメージで、マイクロサービスはより小さい単位を意識しています。

Q: ITパスポート試験にSOAはよく出題されますか?

A: はい、SOAは基本情報技術やシステムアーキテクチャの分野で頻出テーマです。

Q: Orientedは「ただ向いている」だけなんですか?

A: いいえ、単に向いているだけでなく、「意図的に向けて行動している」という意味を含みます。

Q: Orientedはどの場面でも使えますか?

A: はい、ビジネス、教育、ITなどさまざまな分野で使われます。

Q: SOAの「Oriented」はどういうニュアンスなんですか?

A: 「サービスを中心にして設計している」という意図を持っています。

Q: Orientationという単語もありますが、どう違うんですか?

A: Orientationは「方向づけ」「適応」といった意味で、動作やプロセスを指します。一方、Orientedは「志向している状態」を指します。

理解度を確認する問題

SOA(サービス指向アーキテクチャ)の特徴として最も適切なものはどれか?

① すべての機能を一つの大きなプログラムにまとめる
② 小さな機能ごとに分け、標準的な方法でやりとりする
③ 開発者がすべて手作業でサービスを接続する
④ サービスごとに独自の通信方法を使う

回答:
② 小さな機能ごとに分け、標準的な方法でやりとりする

関連論文や参考URL

SOAでサービス間通信に使われる標準的な技術として正しいものはどれか?

① SOAPやREST
② HTMLやCSS
③ FTPやSMTP
④ BIOSやROM

回答:
① SOAPやREST

まとめ

SOA(Service Oriented Architecture)とは、システムを小さな「サービス」に分けて組み立てる設計方法です。
各サービスは独立して動き、標準的な方法(SOAPやRESTなど)で通信します。
柔軟なシステム変更や再利用を可能にし、効率的な開発・運用を実現します。

コメント

タイトルとURLをコピーしました