« なぜオープンソースを採用するか リスクと責任と価格 | メイン | SOA as Web2.0 ? 資料&ソースコード公開 »

SOAとは何かを考える from JavaOne

丸山先生が語るSOAのサマリともいうべき内容でした。短い時間でしたがSOAの定義がきれいに組み立てられていて非常に勉強になりました。すばらしいです。メモ書きをのせておきます。

-------------------------
◆SOAの技術的な切り口
SOAの定義はWebサービスを念頭においているので、表現が抽象的にならざるを得ない。近年やっと具体的になってきた。
最近の言い方は「Webサービス"で"統合」から「Webサービス"を"統合するためにSOAが必要」

◆SOAのビジネス的な切り口
ビジネスの変化に即応する(アジリティ、オンデマンド、アダプティブ)ためのSOA。
これは、逆に言えばSOAが適応する経営モデルも定義してしまっているのでは?
ビジネスをSOAで解釈すると「ビジネス分野1つ1つがサービス」「横断的なビジネスはアスペクト」

◆SOAが生まれた背景
20世紀はコンピューターの時代。21世紀はネットワークの時代。
ムーアの法則。18ヶ月で性能2倍。ただし、あと10年で限界になる。集積の限界。その後継と目される量子コンピュータには目処が立っていない(少なくとも2035年以降)。
ギルダーの法則。ネットワークのスピードは6ヶ月で2倍。2010年Tera、2015年Peta。これからのネットワークの成長の方が高い

◆ネットワークコンピューティングの可能性
過去の提唱者はローカルのオブジェクトと、ネットワーク越しのオブジェクトは区別するべきだとした。遅延が発生するなど問題が多かった。ところがネットワークが成長すると「内部バスよりもネットワークが早くなればコンピュータのパーツはばらばらにできる」ということになる。

◆サービスがネットワークと出会う
GridとSOAの共通点。「ネットワーク自体がサービスを統合する」

◆サービスを統合する技術の変化
非同期メッセージ:Webサービスに構造的な変化をもたらす(結局、大半のビジネスは非同期なんだし)
Message Exchange Pattern:同期、非同期、コールバック
Document Centric:引数と返値(RPC)ではなくて、メッセージの交換という考え方
WS-Addressing:Callbackの実現には必要。簡単に言えばSOAPヘッダに行き先と帰り先をきちんといれる。これまではプロトコルレベルでやっていた(HTTPのURLとか)。行きと帰りのプロトコルすら同じでなくて良い(HTTP -> SMTPとか)。

◆BEPLとは
WSサービスの統合が得意。

◆ESBとは
MOM起源でメッセージ交換によるサービス統合。メッセージの流れによって処理を考える

◆SOAとはなにか
ネットワークが大事になるんだ。サービスが大事な時代なんだ。ビジネスの各分野にネットワークを導入しサービスとして切り出すのだ。
サービスはネットワークによって提供される。
コンポーネント間は疎結合。メッセージの交換による関係だけ!(コンポーネントの再利用につながる)


-------------------------

 SOAを「メッセージ交換によるコンポーネント間の疎結合の実現」と定義されていたのが、ずばっと本質をついていました。これは、非常にわかりやすいSOAの説明ですね。

 僕らのBOF「SOA as Web2.0? - DIコンテナでPOJOをRemix」はSOAの概念をマクロレベルに使おうという主張になります。そのためのキーがDIコンテナです。
 でも、丸山先生に「SOAとDIコンテナは一緒なんです」といったら「そうなの?」といわれてしまいました(w。ま、メッセージ交換を前提にされてしまうと不可能ですね。

 現場のエンジニアはネットワークではなくメモリの中の話をしています。ですから、SOAがメッセージ交換といわれてしまうと使う気になりません。そうではなく、SOAを「依存性を解消」と捉えることでDIコンテナというのが現実的な選択肢となります。しかもDIコンテナを使っていればWebサービスにシームレスにつながります。
 というわけで、僕(現場のエンジニア)にとっては、DIのほうが"丸山先生が言うところのSOA"よりも重要、というかDIがないと"丸山先生が言うところのSOA"を生かしきれないという言うべきかもしれませんね。なお、BOFには、これを体現した実装を持って行きます。

 明日(11/9)の20:00-20:45で無料です。会社帰りでも立ち寄りOKです。こちらから、まだまだ申し込み可能です。よろしくです。


11/11追記。資料がCSQのダウンロードページから取得できます。

トラックバック

このエントリーのトラックバックURL:
http://www.arclamp.jp/mt33/mt-tracback.cgi/1501

この一覧は、次のエントリーを参照しています: SOAとは何かを考える from JavaOne:

» キャッシュについて 送信元 昼間のメモ
⇒SOAとは何かを考える from JavaOne@arclamp.jp リソースAとリソースBがあり、リソースAはリソースBより100倍速いとする。たとえば、リソースAがメモリ、リソースBがハードディスク。 アプリケーションが設定ファイルを見て、動作を切り替えるとする。たとえば... [詳しくはこちら]

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

About

2005年11月08日 16:41に投稿されたエントリーのページです。

ひとつ前の投稿は「なぜオープンソースを採用するか リスクと責任と価格」です。

次の投稿は「SOA as Web2.0 ? 資料&ソースコード公開」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.
Powered by
Movable Type