コンポーネント技術は90年代前半から継続的に発展してきた。それらはSpringとDependency Injectionパターン(source)による開発の登場によって新たな局面を迎え、高度なコンポジションの仕組みが提供されるようになった。
先日、SAP Labsの標準アーキテクトであるSanjay Patil氏は、サービスコンポーネントアーキテクチャ(source)によって可能となるいくつかのコンポジション戦略について書かれた「サービスコンポーネントアーキテクチャのためのITシナリオ(source)」という記事を公開した。
先月、IBMのチームは異なるコンポーネント技術とそれらがサポートするコンポジションについて比較した(source)。
- インタフェース結合
- データ(型システムとメッセージ形式)
- バージョン弾力性
- トランスポート独立
- インタラクションパターン
- 会話
- 調停能力
- 動的性
Sanjay氏にとって、最も重要な2つの要素はトランスポート独立によるデプロイの柔軟性と、ポリシーを使用することでSCAが達成した動的性だ。
IBMの記事ではまたコンポーネントの粒度が影響する多くの要素についても調査しているが、それは以下のように現在の業界の考えを支持している。
一般的に、疎結合なコンポーネントは粗粒度であり、その一方で密結合なコンポーネントは細粒度になりやすい傾向があります。
記事では以下のように主張している。
SCAは参照によるコンポジションと実装によるコンポジションの2つを提供します。
- SCAコンポーネントはサービスが何処にどのようにデプロイされるかに依存しない、単一のプログラミングモデルによってサービスの呼び出しパターンを組織化することで、サービスを構成することができます。
- SCAはまた粗粒度なコンポーネントの実装として、細粒度なコンポーネントのアセンブリを利用することでコンポジションを提供することもできます。
それらの分析はSanjay氏の考えと共通している。
- さまざまな既存の実装アーチファクトを組み立てることで構成されるアプリケーションでの、ボトムアップなコンポジションのシナリオ
- 異種環境でのコンポジションのシナリオ ... SCAではインテグレーションロジックと関連するファンクション(マッピングなど)を、ファーストクラスのコンポーネントとして構造化することができ、その他のコンポーネントとの関連は、正しく定義されたコンポジットの一部として捉えられます
しかし、彼はさらに「ドップダウン」なシナリオについても説明する。
.... コンポジットを作成するための反対のアプローチ ... アセンブラの目標は高度なビジネス要求を分析し、まだ実装されていないコンポーネントの頂点にコンポジットを作成することです。
IBMの記事では以下のように結論を下している。
SCAの長所の1つは、疎粒度のサービスコンポーネントを実装するために、細粒度のさまざまなコンポーネントモデルを組み合わせられる能力です。SCAは、大局的なソリューションの構造をモデリングする、敏捷性や柔軟性を提供する、実装コードの中に複雑な設定の詳細を定義する必要をなくす、などの価値をもたらします。それにはまた、全体的なソリューションのさまざまな部分で利用される、さまざまなコンポーネントモデルを接続できるという長所もあります。
原文はこちらです:http://www.infoq.com/news/2008/01/sap-ibm-sca-composition