Spring Integration(リンク)は、Springプログラミング モデル(リンク)の拡張を提供し、既知のEnterprise Integration Patternsをサポートしている。先日RC1の利用が可能になったとの発表を受け(リンク)、InfoQはSpringSourceのIwein Fuld氏とキーベネフィット、デプロイメント シナリオおよびSpring Integrationの今後の方向性についてQ&Aの場を設けた。
Spring IntegrationはSpringベースのアプリケーションでシンプルなメッセージングを可能とする。また、シンプルなアダプタを介し外部システムとの統合も行う。このアダプタは、Springがリモーティング、メッセージングおよびスケジューリングのサポートを行うのに対し、よりハイレベルな抽象化を提供する。その第一の目的は、メンテナンスやテストを行うのが容易なコードを作成する際に本質的な懸念事項を排除しつつ、エンタープライズな統合ソリューションの構築にシンプルなモデルを提供することである。
InfoQはIwein Fuld 氏と、このSpringポートフォリオへの新規追加について話し合った。
InfoQ:Spring Integrationを使用することによるキーベネフィットはどのようなものだと考えますか?
これまで、メッセージングはESB、また少なくともJMSブローカという形でエンタープライズに導入されてきました。これには新しい環境のセットアップ、または既存アプリケーションの大幅な変更が必要です。しかしSpring Integrationは異なります。それはSpring Integrationが既存アプリケーションの視点から統合化にアプローチするためです。これにより、開発者はアプリケーション サービスの実装を変更することなく、宣言的に非同期アプリケーションを統合できます。
われわれは実装において、物事をシンプルに保つよう細心の注意を払ってきました。開発者がフレームワークを利用するのに必要な作業を可能な限りシンプルに維持するのは重要である。それと同時に、開発者がデバッグをする時に理解する必要があるコードを可能な限りシンプルに維持することも重要です。
Springの他の部分同様、われわれはアプリケーションコードにプラミングを入れないようにしています。したがって、並列プログラミングの最もシンプルなルール(ステートレスなサービスや不変オブジェクト)に専念する限り、サービスをあらゆるプロデューサやコンシューマに接続するのは簡単でしょう。ほんの一例を挙げると、JMS から RMI へ切り替えたいのであれば、コードを変更する必要はなくなります。
InfoQ: InfoQ:一般的なデプロイメント シナリオにはどのようなものがありますか?
通常、ユーザはSpring IntegrationをJMSと組み合わせて使用するでしょう。JMS 設定の簡略化は、それを使い始めるにあたり既に激しい議論となっています。もちろん、他にもアプリケーションはあります。われわれは伝送メカニズムとしてJMSを当てにしているわけではないからです。
たとえば、Spring Integrationを用いてWebクライアントの応答待ちページが実装可能でしょう。 今日、多くのアプリケーションでは、外部Webサービスの呼び出し待機中にサーバのスレッドをブロックしますが、これはJMS の必要条件やいかなる並列コードも自身で記述せず、Spring Integrationを用いて容易に回避できます。プッシュ対応のリッチクライアントがあるなら、クライアントによりポーリングされる独自のキャッシュを記述することさえ必要ありません。
われわれはフォーラムで多くのユーザがディレクトリやあるアドレスに送信されたEメールにドロップされたファイルをベースにしたシンプルなEDAを持っているのを目にしました。われわれはユーザが独自のアダプタを非常に簡単に記述できるようにしています。また、ユーザはxmmp、OSGi、twitterをうまく試みています。物事を束ねるのは非常に容易であるため、Spring Integrationはネットをさらに興味深い場へとするのに大変有効であると考えています。
InfoQ: Spring Integrationは今後どのように発展していくと考えていますか?
まず、われわれはアダプタの種類を増やしています。Spring Extensionsプロジェクトは専用のSpring Integration Adaptersプロジェクトを受け入れ、Spring Integration Adaptersプロジェクトはユーザが選別可能なさまざまなアダプタを受け入れます。これによりコミュニティは、彼らが最も有効だと判断するアダプタに貢献するのに適した方法を得られます。
われわれが試みてきた2つ目の点は、Spring Integrationでスケーラブルなアプリケーションを構築することです。Spring Integrationは非常に簡潔な方法で並列処理を可能にするため、マルチコア環境でグリッド ソリューションを構築するにふさわしい候補者となるでしょう。われわれは、これに向けて将来的に少なくともいくつかのサンプルを実装する予定です。
われわれはこれまで、Spring IntegrationはESBなのか何度も聞かれました。即答すれば、「ノー」です。とはいえ、われわれが提供するコンポーネントからESBを構築するのは非常に簡単です。通常ESBはそれがなくても済むものですが、われわれはESBビルダがSpring Integrationを使用することもありうると考えています。
個人的な関心を除いて、Spring IntegrationをAmazon EC2と機能するオート スケーリング環境に用いるため、私はアイデアをいくつか描いてきました。これらのアイデアには大変期待がもてます。しかし通常、企業にとって最新の流行を追いかけるより、現在の問題のためにソリューションを見出すことのほうがより重要です。これはOSGiの前にFTPの統合を実装するという兆候であると考えています。われわれは、現在企業が取り組まなければならないプラミングの問題について感心があります。
Springポートフォリオ(参考記事リンク)、SOA(参考記事リンク)、アーキテクチャ(参考記事リンク)、Enterprise Integration Patterns (参考記事リンク) に関するさらなる情報はこちらを参照してほしい。
原文はこちらです:http://www.infoq.com/news/2008/11/spring_integration_rc1