SOAでサービスを設計する際の注意点|情報処理安全確保支援士 平成30年 秋期午前Ⅱ試験 問23

出典:平成30年秋期 午前Ⅱ 問23 分野:ソフトウェア開発管理技術 / 開発プロセス・ 手法
SOAでサービスを設計する際の注意点のうち,適切なものはどれか。
  • ア:可用性を高めるために,ステートフルなインタフェースとする。
  • イ:業務からの独立性を確保するために,サービスの名称は抽象的なものとする。
  • ウ:業務の変化に対応しやすくするために,サービス間の関係は疎結合にする。
  • エ:セキュリティを高めるために,一度開発したサービスの設計は再利用しない。
解説

SOAは、業務機能を独立したサービスとして構成し、それらを組み合わせてシステムを実現する設計思想です。

サービス間を疎結合にすると、一つのサービスの変更が他のサービスへ与える影響を抑えられます。そのため、業務内容の変更や新しいサービスの追加にも対応しやすくなり、既存サービスの再利用もしやすくなります。

したがって、が適切です。

❌他選択肢が誤りの理由
ア:可用性を高めるために,ステートフルなインタフェースとする。
⇒ステートフルなインタフェースでは、サービスが利用者ごとの処理状態を保持するため、障害時の代替や負荷分散が複雑になりやすくなります。SOAでは、独立性や可用性を高めるために、可能な限りステートレスなインタフェースとすることが望まれます。
イ:業務からの独立性を確保するために,サービスの名称は抽象的なものとする。
⇒サービスの名称を抽象的にすることが、業務からの独立性を確保する条件ではありません。サービスの目的や提供する業務機能が利用者に伝わるよう、内容を適切に表す名称にする必要があります。
エ:セキュリティを高めるために,一度開発したサービスの設計は再利用しない。
⇒SOAでは、既存サービスを再利用できることが重要な特徴です。再利用を避けることがセキュリティ向上に直結するわけではなく、認証・認可や通信の暗号化などを適切に実装して安全性を確保します。
TSUNAGARU-ADVICE

まず押さえたいこと

SOA(Service Oriented Architecture)では、業務機能をサービスとして切り出し、それらを組み合わせてシステムを構成します。業務の変化に対応しやすくするには、サービス同士を強く依存させず、疎結合に設計することが重要です。

迷ったときの判断軸

可用性を高めるためにステートフルにするとは限らず、状態を持ちすぎるとサービスの再利用性や拡張性が下がることがあります。サービス名を抽象的にしすぎると、何の業務機能か分かりにくくなります。また、SOAでは一度作ったサービスを再利用しやすくすることが重要です。SOAは、再利用しやすいサービスを疎結合で連携させる考え方と判断しましょう。

科目Bにつなげるために

科目Bでは、業務変更・サービス連携・API・システム間連携・可用性・認証・認可などと絡めて問われることがあります。SOAでは、あるサービスの変更が他のサービスへ大きく波及しないように、インタフェースを明確にし、依存関係を小さくする視点を持ちましょう。