なんか提案書書いたり、なんだりで更新が滞っております。さて、JavaOne Tokyoでの講演「SOA as Web2.0 ?- SOA+DIでPOJOをリミックス」の日程が決まりました。
11/9(木) 20:00-20:45
というわけでJavaNightの真裏ですorz。もちろんタイムテービルを組むのもご苦労があると思うので、わがままは言えません。JavaNightにいかない方は、ぜひお立ち寄りくださいということで。
昨日は仕事の合間を縫ってメンバーと打ち合わせて、ようやく骨子が固まりました。SOAとWeb2.0で書いてある事と基本に変化なしです。以下、概要。
What Is Web 2.0
タイミングよく Tim O'Reilly氏が What Is Web 2.0という文章を発表しているので、これから抽出する形でWeb2.0の概略。
What Is SOA
SOAの定義もあいまいなので、ベンダー会社の発表内容をサマリして説明。
SOA as Web2.0 ?
次に両キーワードの共通点と相違点と洗い出していきます。共通点として技術要素、相違点としては文化というか考え方というか、そんな感じですね。
SOA as Web2.0 !
Web2.0的な要素をSOAが受け入れるべきだという展開になります。ここの解釈に共感を持っていただけるかが重要なポイントになります。簡単に言えばWe2.0の盛り上がりをSOAに持ち込んで、ユーザー視点でやっていこうという事になる訳ですが、ここのロジックの組み立ては慎重に今週末やります。
We think
で、上記で提示したSOA像を元に"僕らが考えた姿&実装"を提示します。さすがにこれを書いてしまうとお楽しみがなくなってしまうので当日までの秘密という事でよろしくです。ヒントは副題「SOA+DIでPOJOをリミックス」にあるとだけ言っておきます。
個人的には、かなり面白いと感じています。Java技術を盛り込んだエンタープライズアプリケーションなのにWeb2.0的であるという気がします。ま、あまり時間もないので、完成度高くというわけにはいかないとは思うのですが、なにか「気づき」があるレベルには持っていきたいと思います。また、家に帰って試せるものにもします。そうでないと意味ないですからね。グリッドやエージェントとか、SOAの当初の定義を持ち出しても興ざめでしょうし(w。
ユーザー視点のSOAとはなにか
議論の中でメンバーと話題になったのはユーザー視点であるという意味です。これはベンダー視点と対立軸にあっては困ります。
ベンダーはプロダクトを売るという利益をあげられる手法に軸を置かざるを得ません。だからこそSOAの実現にはプロダクトが必要であるというメッセージになりがちです。そしてEAIというもっともお金がかけやすい(ユーザーにとってコスト削減効果が大きく、支払うお金が大きくなりがちな)部分にSOAがフォーカスをあててしまうことで、本当のSOAの姿が隠れてしまっていると考えています。
本来のSOAはアプリケーション・アーキテクチャ(のパターン)として示されるべきものです。そして商用製品というのは、アプリケーション・サーバのTomcatとWebShpere/WebLogicのように、O/Rマッピング・ツールのHibernate/iBATISとTopLinkのように、選択肢の1つであるべきです。SOAという概念でアプリケーションを作成した上で、必要な人だけが商用製品を使えばいいのです。
そもそもSOA市場が盛り上がらなくては商用製品が売れる訳がないのですから、自由に試せるSOAが提示されないことには広まる訳がないのです。僕らが提示したいものは、まさにここです。講演の中ではベンダーへの嫌みもあるとは思いますが(w、商用製品はだめだ、オープンソースがいいと叫ぶつもりはありません。
コンポーネントという意味で、オープンソース製品と商用製品は選択肢であるべきだというのが、ユーザー視点、つまり使う側の視点であると考えています。それは商用製品を売るというベンダー視点を包括したものなわけです。
いつまでもベンダーまかせでSOAを放っておいてはいけません。Web2.0というのは、まさにユーザー参加型で盛り上がっています。SOAも同じように盛り上がれるはずです。SOAの真の姿ってなんだ!ということに興味がある方は、ぜひお越し下さいませ(打倒JavaNight!?)。
