昨日、JavaOne Tokyo 2005において、「SOA as Web2.0 ? - SOA+DIでPOJOをリミックス」というBOF講演を行ってきました。8時からという時間帯にもかかわらず、(たぶん)100名以上の方にお集まりいただきました。ご来場いただき、ありがとうございました。
45分間という時間の中に、僕らの考えていることを凝縮ししたため、急ぎ足であったことは否めなのですが、お聞きした範囲では「面白かった」と頂けました。
さて、以下がパワーポイントの資料になります(11/11差し替え)。
SOA as Web2.0@JavaOne Tokyoe 2005講演資料(SOA_as_Web20_at_JavaOne_Tokyo_2005.ppt)
デモアプリのソースコードですが、もうちょっとだけお待ちください。なにせ講演3日前に徹夜で仕上げたものでセットアップ手順がきれいに確立されていないためです。整理したら、すぐにアップします。
以下がソースコードです(11/11差し替え)。
1.JDK5.0をインストール。ダウンロードページよりJDK5.0を取得してインストール(5.0以下でもJMXなどのライブラリをproject.xmlに追加すれば動きます)
2.Maven1.Xをインストール。ダウンロードサイトより取得してインストール。Windowsであればインストーラーもあり。
3.Firefoxをインストール(IEで動かないものでw)。ダウンロードサイト。
4.環境変数を設定。
例:JAVA_HOME={インストールしたJDKのフォルダ}
5.Mavenにパスを通す。環境変数のPATHのお知りに追加。
例:PATH=....;{インストールしたMavinのフォルダ}\bin
6.meegle_20051111_1300.zipをダウンロードして、適当なフォルダに解凍。(以下、例はCドライブ直下にmeegleというフォルダ名で解凍したとします)
7.コマンドラインで6.のフォルダに移動して、”maven”を実行。
例:C:\meegle>maven
※環境設定等が正しければ様々なファイルがダウンロードされます。
8."maven createdb"でデータを作成(最初に1回だけでOK)
例:C:\meegle>maven createdb
9."maven hsql"(データベースサーバ),"maven exServiceMix"(外部ServiceMixサータ),"maven jetty"(Meegle本体のServiceMix)をそれぞれコマンドラインから実行
例:3つのコマンドプロンプトで、それぞれ
C:\meegle>maven hsql
C:\meegle>maven exServiceMix
C:\meegle>maven jetty
10.Firefoxでhttp://localhost:8080/exec/にアクセス
11.適当な人数とグループを選んでアクセス。Dukeが踊り続けるようであれば、リロードしてやり直してください(ServiceMix側のBugみたい)
12.「サ」をクリックして申し込み押下。適当に複数個選んだら右上の「これで予約する」。予約しましたと表示されたら成功
ソースコードはsrc/java配下にあります。Eclipseプロジェクトなので、がんがんいじってください。
(S):meegle.sp.impl.simple.*
(R):meegle.sp.impl.rdb.*
(F):meegle.sp.impl.filter.*
(DI):meegle.sp.impl.di.*
(EX):設定ファイル上のみ。実装は(F)と同じ
質問がありましたら、お気軽にコメント、メール(yusukeあっとarclamp.jp)ください。
講演にあたり、お誘いしたエーティーエルシステムズの北條さん、EC Oneの稲村さん、本当にお疲れ様でした。2人のおかげで価値ある資料&デモアプリを作ることができました。また、資料をレビューいただいた各位にも感謝いたします。
皆様、ありがとうございました&お疲れ様でした。
最後にパワポのサマリを載せておきます。
- SOAとは依存性を削減する設計手法。Webサービスはその実現方法の1つ。最近はBPEL、ESBなどEAI延長としてマーケットができている
- Web2.0とは感じるもの。たとえばオライリー氏のこれ。
- SOAの設計概念はいいけどEAIは仕事で使わない。Web2.0は楽しそうだけど仕事で使えない。というわけで、全然SOAとWeb2.0って違うのでは?
- でもシュワルツ氏は「参加の時代」(Web2.0と同意)であり、「SOAは参加のインフラ」と言っている。
- つまり、本来のSOAとはWeb2.0的なことを企業アプリでやるためのインフラなのでは!?
- では、SOAとWeb2.0は、なんでこんなにも違うものになってしまったのか
- SOA的企業(SUN、IBM、ORACLE、SAP、MS、、)とWeb2.0企業(Google、Amazon、Yahoo!、MSN、はてな)を比べると、厚利益少売と薄利多売
- SOA的企業は、SOAで製品を売らなきゃいけないから「SOAで依存性をなくせるから、この製品に依存してください」と意味不明なことをいわなくてはいけなった
- EAIに依存したSOAというのは間違った姿
- 話は戻って、Web2.0なSOAを実現するための技術とは?ロングテール的な多様なアプリを作るためには?
- DI。DIは「アプリケーションレベルのSOA」。だって、依存性を削減できるから
- 作ってみました(ここは資料&ソースを見てください)
- DIをうまく使うと、自然にサービスを組みあわせたような作りになる。ロングテール的なアプリを使いやすい。
- SOAのノウハウを小さなアプリケーション実装にいかすことができる(EAIのためだけのSOAではない)。ぜひ、SOAやJBIの概念に注目をして欲しい。
- DIをつかってSOAを実現しよう
11/11追記。パワポとソース(meegle_20051111_1300.zip)を差し替えました。
サイボウズラボの秋元さんから指摘を受けてメソッド名を修正しました。DynaAppCtx#regist -> DynaAppCtx#register。あわせてパワポ資料も書き換えてあります。不勉強で知りませんでしたが「regist という英語は無い」とのことです。なるほどぉ。これからは気をつけます。
11/16追記。インストール手順を追記
インストール手順が、あまりにもだろうという指摘で追記(typoが2箇所もありました。ごめんなさい)。わからなければコメント、メールくださいませ。

コメント (1)
こんにちは。
以前トラバさせていただいたネットの金のなる木のあがさです。
時々拝見していますが、すごく難しい内容ばかりで私にはとってもついていけません。
こちらのサイトはすごく人気が高いので、勝手に張らしていただいたトラバのおかげで、こちらのサイトから時々訪問してくださる方が日に何人かいらっしゃいます。お礼を申し上げようと思ってましたが、なかなか記事が理解できなくて・・・
どうもありがとうございます。
邪魔なコメントだったら削除してくださいね。
投稿者: あがさ | 2005年11月10日 13:47
日時: 2005年11月10日 13:47