未踏が本格化すると、SOA について考えることなんてなくなってしまうと思うので、ここいらで SOA や Web 2.0 に関する私の考え方を整理しておきたいと思います。
SOA(サービス指向アーキテクチャ)と Web 2.0 は近しいところにおかれて語られることが多い気がしています。私は、両者はぜんぜん違うものだと思うのですが、そういうことを SOA の人に言うと、「え? おんなじ様なものでしょ?」と返されることもあります。確かに基盤技術はほとんど同じものを使っていますが、根本的な考え方が違っていると感じます。
○ SOA
SOA の一般的な理解はどのようなものなのでしょうか。多分、さすがに Web サービスをごにょごにょするというようなものだというような理解はもう終わっていると思います。SOA は、ひところ騒がれた Enterprise Architecture 的な考えを取り込んで、アプリケーションの機能や業務フローに登場するアクティビティをサービスとしてとらえて、変化に強い全体最適化されたシステムを作るための方法論(+それを実現する技術標準仕様と製品)的な意味合いを持つようになっています。今でもたまに、「SOA は Web サービスとどう違うの?」と聞かれることがありますが、SOA はサービスをどう組み合わせてビジネスをまわしていくかということを考えていくわけですから、個別の技術はあまりターゲットにしておらず(※)、根本的に違うといってもいいでしょう。実際、SOA で Web サービスを使わなくてはならないわけではありません。(使わないと非常にキツイですが。)
※ もっとも、実際には個別の技術(ESB だの WS-* だの)もターゲットにしていて、そこが SOA をわかりにくくしていると思います。
世の中的には、サービスの認識すら十分に行われていない企業が多いでしょうから、今の SOA はビジネスに必要なサービスはどのようなものなのか考えているところでしょう。SOA はビジネスと IT のギャップを埋めるというような言い方をするところもあります。まあ、それはそれで SOA の本質を表している気もします。
○ Web 2.0
私の理解が浅いのかもしれませんが、Web 2.0 は SOA 以上に定義があいまいです。最近の Web の状態を総称して Web 2.0 と呼んでいるのだと思いますが、SOA と違うと思う点は、SOA は IT ガバナンスに近い文脈で語られることが多いのですが、Web 2.0 はライフスタイルに関係する文脈で語られることです。ウェブ進化論とかウェブ人間論みたいな論調が SOA から出てくるとは思えないわけです。
技術的なコンセプトにも違いがあると感じています。基盤技術は SOA も Web 2.0 もほとんど同じなのですが、SOA で描かれるアーキテクチャは、ESB のようなものを中心にすえてバス型やスター型を意識させて、いかにもトップダウンを想起させます(サービスオーケストレーションという表現がいかにもですよね)が、Web 2.0 ではもっと曖昧でもやもやっとしたものになっています。強いて言うとネットワーク型(Web ですから)。Web 2.0 のアーキテクチャとして、リソース(データ)を重要視する REST がありますが、SOA は業務プロセスを構成するアクティビティを重視するので、そういう違いもあります。両者には Web サービスの設計方法も違いがあって、名詞を軸に Web サービスを設計する REST と、動詞を軸に設計する SOA という形になります。
ただ、技術基盤に対するスタンスは製品ベンダーの影が濃いか薄いか位の違いしか感じないですね。そういう意味では、IT エンジニアにとっては Web 2.0 も SOA もおんなじようなものだと。(※)
※ Web 2.0 ではユーザビリティは頻繁に話題に上りますが、SOA では話題に上りません。個人をあまり見ない SOA ならではですかね。基盤技術が同じでも、習得が必要なスキルは変わってくるかも。。。
○ 総括
Web 2.0 がビジネスモデルとライフスタイルを含んでいたり、SOA が IT ガバナンス的なものを含んでいたり、なんだかわけのわからない用語で世の中があふれていますね。仕事にも生活にも IT が必要になって領域横断的な用語が必要になったってことですかねぇ・・・。
最近のエントリ
最近の読書メモ