DIコンテナによってアプリケーションの実装構造を疎結合にして,ビジネス要件を柔軟に実現することが可能になります.
インターネット時代にいたっては,ビジネス要件はもはやアプリケーション単体で語られることはないと思います.GoogleやAmazonなどのネット上のサービスをマッシュアップさせて自社のサービスを構築することはすでに多くの事例があります.
転じて,実装構造を鑑みると,アプリケーション内部のクラスなどの部品をDIコンテナで疎に結合することと同じように,インターネット上のアプリケーションサービスを部品とし,”何かのコンテナ”によって疎に結合するという必要性がでてきています.つまり、サービスレベルでの疎結合によって、インターネットを前提としたあらゆるビジネス要件に柔軟に対応する基盤を作ると考えられます。
この何かのコンテナとは,ESB(Enterprise Service Bus)です.
ESBとは,ネット上に偏在するサービスをシステムバスの概念で統合するアーキテクチャパターンをいいます.マルチプロトコルなメッセージが扱えるバスというイメージです.すでにプロダクトとしてはServiceMix, Muleなどが存在します.(MuleはS2にも対応したフレームワークがあるようです。S2Mule)
DIコンテナがクラス間をインターフェイスで依存関係を疎に保つのと同様に,ESBもサービス間を正規化されたメッセージで依存関係を疎に保つことができます.
そういう意味では,サービスレベルで必要になる疎結合プラットフォームはESBであると感じています.GeronimoやJBossにおいてもESBの統合は行われていくので,今後はメインストリームになっていくことは間違いないでしょう.