pulpul 日本の試験

ネットワークスペシャリスト 概念書 · システム開発・アーキテクチャ

SOAとサービス指向アーキテクチャ

SOA(Service-Oriented Architecture、サービス指向アーキテクチャ)は、業務システムの機能を独立性の高い単位に分け、サービスとして提供したうえで、それらを組み合わせてシステムを構築する考え方である。業務プロセスとの対応付けや、他のソフトウェアとの連携を容易にすることを主な狙いとする。SOAは特定の製品や技術仕様を指すものではなく、設計の方針を表す概念である点に注意が必要である。

原理と仕組み

SOAでは、業務上の機能を利用者の視点から切り出し、内部の処理を隠したサービスとして提供する。呼び出す側は、そのサービスが何を行うかと利用の取り決めを知っていれば足り、内部の実装を変更しても他の部分に影響が及びにくい。このため、サービスを組み合わせて新しい業務の流れを作ったり、既存の機能を再利用したりしやすくなる。

サービスの利用者と提供者を仲立ちする仕組みとして、ブローカーがある。ブローカーは分散環境においてサービスの登録と検索を行い、メッセージのやり取りを仲介する。クライアントとサーバが互いの所在や構成に直接依存しなくなるため、両者の相互依存性が弱まる。

ブローカーはアーキテクチャパターンの一つであり、サービスを組み合わせる設計の考え方そのものであるSOAとは別の概念である。両者を混同せず、何を単位として設計するかを基準に区別することが求められる。

判断の基準

ある機能をサービスとして切り出せるかどうかは、機能の独立性と、業務プロセスとの対応の明確さで判断する。機能どうしが強く絡み合っていると、独立したサービスに分けにくく、再利用や連携の利点が得られにくい。SOAの本質は、個々の部品の性能を高めることよりも、部品の組み合わせ方を設計する点にある。

また、業務の流れを構成する要素と、それを支えるIT基盤を、ソフトウェア部品であるサービスとして提供する点もSOAの特徴である。業務の見直しに合わせてサービスの組み合わせを変えれば、対応しやすくなるという利点がある。

この節の続き

ここまでが冒頭部分です。ログインすると、無料でも1日2節まで全文をお読みいただけます。

アプリでこの節を読む