こんにちは、フルスタックエンジニアのryuです。
今回の記事は、基本情報技術者試験の過去問解説です。SOA(Service Oriented Architecture)についての問題を解説します。SOAとは、サービス指向アーキテクチャのことで、企業の業務システムなどの設計様式です。システムをサービスと呼ばれる単位で構成することを言います。
SOAを説明したものはどれか
今回の記事では、以下の問題を解説します。
SOAを説明したものはどれか。
ア:業務体系,データ体系,適用処理体系,技術体系の四つの主要概念から構成され,業務とシステムの最適化を図る。
イ:サービスというコンポーネントからソフトウェアを構築することによって,ビジネス変化に対応しやすくする。
ウ:データフローダイアグラムを用い,情報に関するモデルと機能に関するモデルを同時に作成する。
エ:連接,選択,反復の三つの論理構造の組合せで,コンポーネントレベルの設計を行う。
出典:平成30年秋期 問63
答えは、『イ』の「サービスというコンポーネントからソフ。ウェアを構築することによって,ビジネス変化に対応しやすくする。」です。
今回の記事では、SOA(サービス指向アーキテクチャ)について解説します。
その他の基本情報技術者試験の過去問についてはこちらの記事で解説しています。
SOA(サービス指向アーキテクチャ)とは?
ここからは、SOAについて解説します。
SOAはアプリをサービスに分解して構築すること
SOA(サービス指向アーキテクチャ)とは、アプリケーションをサービスに分解して構築すること言います。
例えば、ECサイトを例にすると、ECサイトを1つのアプリとして構築するのではなく、「発注システム」「在庫管理システム」「請求書作成システム」など各サービスに分解してアプリを構築します。
参考:サービス指向アーキテクチャ | Microsoft Docs
SOAとマイクロサービス
SOA似たようなものでマイクロサービスがあります。マイクロサービスは小さな独立した複数のサービスでソフトウェアを構成する手法です。
マイクロサービスはSOAに由来していますが、SOA はマイクロサービス アーキテクチャとは異なります。
SOAとマイクロサービスは似ていますが、以下のような違いがあります。
マイクロサービス | SOA | |
アーキテクチャー | 独立して動作可能なサービスをホストする設計 | サービス間でリソースを共有する設計 |
コンポーネントの共有 | 通常コンポーネントの共有を伴わない | 頻繁にコンポーネントの共有を伴う |
サービスの粒度 | 非常に小さいサービス | 比較的大きな、モジュール型のサービス |
データストレージ | 各サービスが独立したデータストレージを持つことが可能 | サービス間でデータストレージを共有 |
ガバナンス | チーム間で連携が必要 | チーム間で共通のガバナンスプロトコル |
大きさと範囲 | 小規模なWebベースのアプリケーションに適している | 大規模な統合に適している |
通信 | API層を介した通信 | ESBを介した通信 |
結合と凝集 | 境界付けられたコンテキストに結合を依存 | リソースの共有に依存 |
リモートサービス | RESTとJMSを使用 | SOAPやAMQPのようなプロトコルを使用 |
展開 | 素早く簡単な展開 | 柔軟性の低い展開 |
最近はマイクロサービスでシステムを構築することが多くあると思いますが、しっかりと違いなどを把握しておきましょう!
過去問解説まとめ
今回の記事では、以下の問題を解説しました。おさらいしましょう。
SOAを説明したものはどれか。
ア:業務体系,データ体系,適用処理体系,技術体系の四つの主要概念から構成され,業務とシステムの最適化を図る。
イ:サービスというコンポーネントからソフトウェアを構築することによって,ビジネス変化に対応しやすくする。
ウ:データフローダイアグラムを用い,情報に関するモデルと機能に関するモデルを同時に作成する。
エ:連接,選択,反復の三つの論理構造の組合せで,コンポーネントレベルの設計を行う。
出典:平成30年秋期 問63
答えは、『イ』でした。その他の選択肢については、以下の通り。
- ア→エンタプライズアーキテクチャの説明
- ウ→データ中心アプローチの説明
- エ→構造化プログラミングの説明
以上で解説を終わります。当ブログでは、このようなネットワークに関する内容や基本情報技術者試験の過去問解説をしているので興味のある方は引き続きご覧ください。