平田です。
9/14のテーマはSwitchYardです。SwitchYardは、JBoss ESBに代わる次期ESB基盤です。
SwitchYardのワークショップは、下記の五つのトピックからなります。
- SwitchYard概要
- サービス指向のインテグレーション(実装寄りの話)
- 演習
- エンタープライズサービス開発
- ロードマップなど
SwitchYard概要
SOAやESBのお話と、SwitchYardの概要の説明です。
- SwitchYardが開発されるに至った経緯など
- JBoss ESBと同じチームが開発しているそうです。
- JBoss ESBの問題を解決しようとしたところ、あまりに影響が大きいので、別プロジェクトにしたのだとか。
- サービス指向とは
- インタフェース、メッセージング、実装、ポリシー、バインディングなどサービス指向における基本コンセプト(SwitchYardの中の人が考える)の説明です。このモデルを実現したのがSwitchYard(の特にBean Services)といった感じ。
- SwitchYard上で定義するサービスの種類
- Bean Service
- Java Interface + POJO + アノテーションで定義します。Session Beanっぽい。
- Camel Service
- Apache Camelを使ったサービスを記述できます。ESBが持つべき機能の大半は、Camelを組み込むことで実現している印象です。Camelを取り込んだESBというとApache ServiceMixというのがあるみたい。
- BPM Service
- jBPM5によるサービスオーケストレーションです。JBoss ESBだとjBPM 3.xですね。
- デプロイと実行形式
- JBoss AS6 or AS7 + SwitchYardに、JARをデプロイします。
- WAR形式でサーブレットコンテナにデプロイします。
- 組み込みデプロイで自動テストします。
- OSGiバンドル(予定)。
- ちなみに、JBoss ESBでは、中にJBoss ESB用の設定ファイルを同梱して*.esb形式にアーカイブしてデプロイします。
- テスト
- JBoss ESBでは全て統合しないとテストできなかった件を改善するそうです。
- SwitchYardRunnerというJUnitのテストランナーを使えます。
- CDIやHTTPなど、他のミドルウェア、プロトコルのテストサポートを追加できるしくみをMixInと言うらしいです。
- Arquillianも使えます。
- 開発生産性
- Maven、Seam Forge、Eclipse
サービス指向のインテグレーション
実装寄りのお話です。
- サービス
- Bean Services
- POJOでサービスが記述できる…って、バス内でサービスの実装はしないと思うんだけど。
- もろにSession Beanみたいなたたずまい。
- Camel Services
- XMLでもJava(流れるようなインタフェース)でも記述できます。
- ゲートウェイ
- JBoss ESBのゲートウェイと同じく、バスの入り口を定義します。
- 大半のプロトコルは、Camel Gatewayが解決する模様。
- Camel GatewayによるJMSのほか、直接HornetQのゲートウェイを定義できます。
- データ変換
- JBoss ESBでもおなじみのXSLT、Smooksは使えます。
- Java Transformer、つまり変換ロジックですよね。
- JAX-BやJSONなど。
- テスト
- JUnit4の例でした。
演習
演習ではサンプルを作成して実行しました。サンプルは二つあり、一つはSwitchYardに同梱されている在庫管理サービスと発注サービスの連携処理です。もう一つは、車の検査?のサービスです。
jBPM5と同様、あまり込み入ったものではありませんでした。
エンタープライズサービス開発
DroolsやjBPMとの統合、管理機能のお話です。全く頭に残っていませんしスライドを見返しても何のことか分かりません。完全に集中力を逸していた模様。
ロードマップなど
スライドが配布されなかったのですが、クラウド、ポリシー(PicketBoxと連動したセキュリティ)、Guvnorリポジトリ(JBoss ESBにおけるレジストリ?)、各種ツールなど、今後のロードマップのお話です。
ESB自体あまり使ったことがないので、ピンとこない部分も多かったです(私の問題)。印象に残った点としては次のことでしょうか。
- ESBの機能性は、エンタープライズ統合パターンをいかにカバーするか、なんじゃないかということ。
- エンタープライズ統合パターンのカバレッジは、Camelを取り込むことで確保している。
- XMLからPOJO、アノテーションへの流れが、EJBっぽい。
- 単に理解不足かもしれませんが、SwitchYardはESBってよりSOA基盤なのかもしれません。つまりサービス群の連携インフラとしてのメッセージバスではなく、サービスのコンテナというか。
- 実戦投入するにはもう少し時間がかかりそう。