S はシンプルの Sを読みました。面白いです。SOAP を取り巻く仕様の複雑さをうまく言い表しています。WS-* の調査に苦戦している後輩君もこの記事にはうなづけるんじゃないか?

S はシンプルの S より

SOAPの人 私が何て言ったかなんて忘れてください。 これからは大粒度メッセージをやりとりするんです。いいでしょ? 大粒度って言葉。メッセージは XML スキーマに従ったものです。この新しいスタイルは document/literal って言うんです。あ、古いのは RPC/encoded ね。


会社でも、これに似た話が出て、極力阻止しようとしたのですが・・・。大粒度。相互運用性とか非機能要求(パフォーマンスとかね)のことのことを考えたら・・・。

Posted by あかさた
未踏が本格化すると、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 が必要になって領域横断的な用語が必要になったってことですかねぇ・・・。

Posted by あかさた
最近の仕事を振り返っておきます。10/10 ~ 11/10 までちょっとしたプロジェクトの PL をやっていました。最年少なのに!
# はてなの偉くない管理職みたいな話で面白いですけど。

社内に閉じたプロジェクトではなかったので、社外の人に気を使ったり、途中でメンバーが異動になったり、最終日の成果発表では意外な人が飛び入りしてきたり、私の年齢詐称疑惑が出たりと。短いのに波乱万丈でした。(^^;
# だから若いんだってば!

よかった点は、進捗管理やプロジェクトの都合上会議が多かったので、ファシリテータチックな動きもそこそこできたのではないかなと感じています。よくなかった点は、メンバー内の作業負荷にばらつきが出てしまったことか。拠点が会社をまたがって2箇所になるとプロジェクト運営は難しいなぁ・・・。

以下、アーキテクチャです。

サーバ構成:Windoes2003 Server + Apache + Tomcat + axis2 + MySQL
サーバアプリ:s2axis + s2dao
クライアント:rails

Web サービス(SOAP)には、soap4r 経由でアクセスしました。

うん、今回は久々の Java で楽しかった!

Posted by あかさた