SOAは技術論ではなくアーキテクチャだ
ここで改めて、SOAとは何かを確認しておこう。ご存じの通り"Service Oriented Architecture"の頭字語であり、日本語といってもカタカナばかりだが「サービス指向アーキテクチャ」という訳を充てる。
この言葉が最初に使われたのは、1996年にガートナーが発表したレポートの中であり、すでに登場から12年の月日が経過する息の長いIT業界注目のキーワードなのだ。
SOAは、ITシステムあるいはその一部の機能を部品化し、それを組み合わせて企業全体のシステムを構築するための概念、または設計手法と捉えることができる。
当初は部品化の単位であるとか、部品どうしを接続する方法、そして部品を連携させ自動的に動かす仕組みなどに注目が集まり、どちらかと言えばSOAの技術的側面が話題の中心となることが多かった。 部品化という考え方自体は、IT業界においては目新しいものではない。
1980年代ころから流行っていたオブジェクト指向の中でも、この部品化はすでに登場していた考え方だ。当時はプログラミング技法として語られることが多く、プログラム部品の再利用性を高めることで、メンテナンス性の良いプログラムを効率的かつ迅速に構築する手法だった。
乱暴な言い方になるかもしれないが、
SOAも基本的な考え方はオブジェクト指向プログラミングと同じであり、対象がプログラミングというミクロなレベルから、個別のシステム、さらには企業全体のシステムへとマクロなレベルにまで拡大したものだ。
部品化、再利用性というのは、SOAの実現に必要な技術要素ではあるが、サービス指向という意味からはこれらが先にありきというわけではない。
いつのころからかSOAは、導入することこそがその目的になってしまったきらいがあり、その結果部品化すること、それらの再利用にばかり終始するようになった気がする。 しかしながら、改めて振り返ってみれば、そもそもなぜSOAでシステム構築しなければならないのだろうか。
企業にとって重要なのは、激しい市場変化など企業を取り巻く環境変化にITシステムを追随し、遅れを取らないようにすることである。さらには、ITを武器に市場競争に打ち勝っていくことが目的であり、そのためにはITシステムには柔軟性と素早く変更できることが必要だ。
この柔軟で素早く変化する企業のITシステム実現に、SOAの部品化、再利用性の向上が極めて有効な方法なのだ。SOAを導入する目的は、変化に俊敏に対応できる柔軟なITシステムを構築すること。SOAについて考える際には、このことを忘れないようにしたい。