BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース OpenCredoがSpring Integration向けのAMQPサポートを発表

OpenCredoがSpring Integration向けのAMQPサポートを発表

原文(投稿日:2010/03/05)へのリンク

Jonas Partner氏とRuss Miles氏らが率いるコンサルティング会社OpenCredoは、Spring Integrationを使って構築したアプリケーションをAMQPエンドポイントと連携させるためのアダプタをオープンソースで公開した。

Advanced Message Queuing Protocol (AMQP)はメッセージングミドルウエアとクライアントの間のメッセージングを定義する、プラットフォームに依存しない仕様だ。AMQPはAPIだけでなく低レベルでのフォーマットも規定しない。非同期メッセージングに特化したプロトコルと考えればよいだろう。どんなクライアントでもこのプロトコルを実装できる。もちろん、JMS APIを使っても実装できる。

RabbitMQErlangで実装されたメッセージ指向ミドルウエア(MOM)であり、Erlangの特性上、優れたスレッド管理とマルチコア対応能力を持っている。また、Erlangは単一の仮想マシン上で複数の物理ノード上にある分散アプリケーション向けに並列実行コードをシームレスに切り替えることができる。RabbitMQはJMSクライアントを提供しないが、AMQPクライアントは提供する。スケールの問題を考慮して実装にErlangを使っているミドルウエアはRabbitMQだけではない。例えば、ejbabberd (XMPPを使ったインスタントメッセージングサーバ)、CouchDB (ドキュメントデータベース)、AmazonのSimpleDB (分散データベース)はErlangを使っている。

JMSはJavaのクライアントとメッセージングミドルウエアの間を連結するとても普及している標準的なメカニズムだ。しかし、JMSがメッセージングミドルウエアとの連携の唯一の選択肢ではない。AMQPはJavaのユーザにも洗練されたメッセージングソリューションを提供する。OpenCredoが発表したSpring IntegrationフレームワークとAMQPとの統合が表しているのは、Springフレームワークを通してエンタープライズ分野にAMQPベースのメッセージングシステムを導入する実践的な事例だ。

Springフレームワークの一番上に位置するSpring Integrationはメッセージ指向ソリューションを可能にするフレームワークで、ESBにとても似ている。Spring Integrationが提供するアダプタを使うと、EJBのJava EEメッセージ駆動型BeanやSpringのメッセージ駆動POJOとほぼ同じように多数の外部のシステムのイベントに反応するコードを書ける。OpenCredoフレームワークの目標は、さまざまなJavaネイティブのAPIに対して一貫したイディオムの用法を提供し、それらのクライアントをSpring Integrationのバスへフックすることだ。今のところ、今回リリースされたアダプタにはRabbitMQのAMQPのJavaクライアントも含まれていて、Spring Integrationを使って間接レイヤを挟むことでクライアントのコードはメッセージングシステムを意識しなくて済むようになる。重要なのはAMQPがオープンなネットワークプロトコルであるという点だ。したがって、クライアントはさまざまなベンダと連携できるだろう。一方、JMSの場合はクライアントはJMSサーバとそのバージョンに依存してしまう。

OpenCredoにはRabbitMQ社のCEOのAlexis Richardson氏とRabbitMQの開発チームが関与している。今回のリリースを実現したのも彼らでアップグレードも計画しているようだ。イベント駆動(ポーラー駆動の反対)クライアントへの対応やクライアントのための宣言的なSpringトランザクション管理の提供等が to-doリストに上がっている。OpenCredoは複合イベント処理(CEP)ソリューションであるEsperとSpring Integrationの連携をサポートすることを発表した。EsperをサポートすることでPOJO中心のシンプルなSpring Integrationのスタンドポイントからのメッセージングとモニタリングを提供できる。これは強力な連携だ。

この記事に星をつける

おすすめ度
スタイル

BT