.NETテクノロジーとSOAの関係(1/5 ページ)

Windows OS上のシステム構築において、SOAを適用するのは簡単なのか。また、どのような利点があるのか。.NETに代表されるマイクロソフトのテクノロジーやツールが、どのようにSOAをサポートしているのか。マイクロソフトとSOAをめぐる環境をレポートする。

» 2005年08月15日 03時28分 公開
[下村恭(ハンズシステム),ITmedia]

 .Net Frameworkが登場し、Windows環境でXML Webサービスが稼動するようになったのとほぼ時を同じくして、巷でSOAについて語られ始めた。そのため、SOAとはWebサービスを利用したシステム設計のことを指すと思っている方も多いだろう。だが、SOAを実現するためにWebサービスが必須というわけではない。

SOAとは何か

 そもそも、SOAとは何だろうか。もちろん、サービス指向アーキテクチャ(Service Oriented Architecture)の略であるが、何となく「サービス」に関連するものだということは分かるものの、これだけでは意味がつかめないだろう。これを理解するためには、まずサービスという言葉の定義が必要だ。

 技術的な見方でサービスを考えるなら、外部から標準化された手順によって呼び出すことができるひとまとまりのソフトウェアの集合をサービスと呼び、単体で人間にとって意味のある単位の機能を持つものを意味する。この意味では、既存のシステムでもWebサービスでくるんで、外部に機能を提供すればSOA的システムと解釈できなくもない。しかし、これではアプローチが逆で、本末転倒に思える。

 歴史的な背景から考えると、かつて、ソフトウェアの開発にはアセンブリ言語が使用されており、これがやがて、構造化言語に取って代わられた。ここまではいわゆる手続き型言語と呼ばれる範疇のもので、水が上流から下流へと流れていくように、淡々と処理が行われる仕組みと言える。これがさらに、オブジェクト指向言語に取って代わられ現在に至るわけだが、オブジェクト指向言語では、物(オブジェクト)単位で属性やできることを記述していく仕組みとなった。

 オブジェクト指向によって、より実際に即した考え方に基づいてプログラミングができようになったと言える。このため、構造化言語からオブジェクト指向言語へのパラダイムシフトの際に、システム設計の方法にも変化が及び、旧来のマシン主体のシステム設計から、ユーザー主体のシステム設計へと変化が起きてきたことに気づいた方も多いと思う。

 この流れが進み、ビジネスモデルに基づいたシステム設計を行おうという流れとなり、SOAという考え方が台頭してきたと考えることもできる。技術的にはオブジェクト指向が分散オブジェクト技術を生み、この分散オブジェクトの仕組みがSOAを生み出したとも言える。つまり、分散オブジェクトの仕組みでは、オブジェクト同士が通信する必要があり、汎用的な通信手段としてXML Webサービスが注目されるようになり、Webサービスを利用することによってSOAが実現できるようになった、というわけだ。

実際に即したSOAの定義

       1|2|3|4|5 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ