第9回Spring勉強会行ってきた

日程が合ったので、2回目の参加をしてきました。
前回は初心者向けの内容だったのですが、今回はSpringレベルが高い人向け(というよりも業務アプリの知識がある人向けというべきか)の内容で、レベル1の身としては新用語がどんどん出てくるので、いっぱいいっぱいでした。

Springを利用したWebアプリケーションのリファクタリング

id:hasebeanさんに、インターフェース未使用のアプリケーションがSpringを取り入れることでどう変わっていくのかを順に話していただきました。
最近Spring2.5を触ってみたのですが、自分のSpringの使い方の認識が間違っていないことがわかってよかったです。
Springは、Strutsのような他のフレームワークに比べて、使ったことがない人にわかりやすい利点がない、と述べられていましたが、AOPの具体例を紹介してもらえると利点がわかりやすくなるのではないかと思いました。

コールセンターのデモによるESBの紹介

ゆうすけさんによる発表。ServiceMixを使ったコールセンターのデモを通じてESBについて発表していただきました。
SOAな話題はほとんど追っていないので、知らない用語がたくさん出てきました。
以下に重要そうな用語をまとめておきます。

SOA

正式名称はService Oriented Aarchitecture。
ソフトウェアをサービスと呼ばれる単位で公開し、それらを統合することでシステムを作る設計思想です。
HTTPとXMLをベースにしたもので、私の認識ではWEB APIの考え方に近いものだと思っています。WEB APIでよく用いられるRESTではなく、SOAPWSDL、UDDIが要素技術となっています。

SIP

正式名称はSession Initiation Protocol。
インターネット電話などで使われるステートフルなプロトコルです。
仕様があいまいなところがあるので、ベンダー同士で実装が異なることがあり、そんな独自仕様のSIPを相互接続するのが「SIProp」というオープンソース・プロジェクトだそうです。

ESB

正式名称はEnterprise Service Bus。
SOAを実現するときにメッセージのやりとりの真ん中にバスを入れて処理を行う、ベンダー主体で進んでいる概念らしいです。

JBI

正式名称はJava Business Integration。
JavaにおけるESBの標準仕様です。
メッセージ交換手法だけを標準化しているそうです。

ServiceMix

Apache Software Foundationが開発している、JBIをベースにして実装されたESBのオープンソースソフトウェアです。

EDA

正式名称はEvent Driven Architecture。
イベントという概念を導入することで、サービスをセンダーとレシーバーに分離する、疎結合な設計を実現する方法?
イベント単位ということで、非同期が基本らしいです。
GUIにおけるイベントドリブンとは別の概念らしいです。

SEDA

正式名称はStaged Event Driven Architecture。
イベントをステージという単位に区切って処理をスケールアウトするEDAの進化系です。



とりあえず、3文字IT用語には自重してほしいですね。


Spring Integration

川村さんによるSpring FrameworkのサブプロジェクトであるSpring Integrationの話。
複雑なエンタープライズソリューションを実装するためにシンプルなモデルを提供するのが目的のものらしいです。



呑み会にも参加をしたのですが、Springの思想についてのお話や私が疑問に思っている点を聞くことができたので非常に参考になりました。