SCAは、もともとはIBMやBEAによって開発された一連の仕様であり、現在はOpen Service Oriented Architectureコラボレーション(OSOA)(source)およびOASIS Open Composite Services Architecture (Open CSA)(サイト・英語)によって整備されている。その人気は高まりつつあるのだが、SCAの実体やその機能の範囲に関してはまだ十分理解されていない。IBMのMike Edwards氏によるComposing Business Solutions using SCA(source)およびSCA Approach to Policy and Bindings(source)のプレゼンは、アーキテクトやデベロッパがSOAの裏側にあるアーキテクチャーや実装に関する詳細を深く理解するのに非常に役立つ。
ビジネスソリューションの構成についてのMike氏のプレゼンは、サービスコンポーネントの構成ネットワークとしてサービス指向のアプリケーションを構築 するための実行可能なモデルとしてSCAを定義することから始めている。(Mike氏のプレゼンによる)構成内容は以下のとおりである。
- アセンブリーモデル
- 複合アプリケーション構造の定義方法
- クライアントおよび実装の仕様
- 特定の言語でのビジネスサービスの記述方法
- Java、C++、BPEL、PHP
- 仕様のバインディング
- アクセスメソッドの使用方法
- Webサービス、JMS、RMI-IIOP、REST
- ポリシーフレームワーク
- セキュリティ、トランザクション、高信頼性メッセージング
Mike氏は、SCAを使用することの利点を以下のように定義している。
- 疎結合:その他の実装方法を知る必要なしに、コンポーネントが統合される
- 柔軟性:コンポーネントの差し替えが簡単である
- 同期または非同期で簡単にサービスを起動できる
- ソリューションの構成:明確に記述される
- 生産性:コンポーネントの統合がさらに容易になり、複合アプリケーションを形成する
- 不均一性:複数の実装言語およびコミュニケーションメカニズム
- インフラストラクチャーサービスの宣言アプリケ-ション
- 全デベロッパ、統合者およびアプリケーション実装者向けの単純化
SCA使用が適用されないシナリオについても、定義している。
- 個々のワークフローをモデル化しない
- BPELまたはその他のワークフロー言語を使用する
- Webサービスではない
- SCAはWebサービスを使用する可能性があるが、Webサービスを使用せずにソリューションをビルドすることも可能
- 特定のランタイム環境と関連していない
- 分散、異機種、大規模、小規模
- 特定のプラグラミング言語およびテクノロジーを使うことを強制しない
- 多くの言語、テクノロジーの網羅を目的としている
それからプレゼンはSCAでのトップダウンおよびボトムアップの構成アプローチ、構成およびコンポーネントの実装を通じた実装の再利用、バインディングおよびポリシーに関する詳細へと続いている。
Mike氏は、 PolicyおよびBindingsプレゼンテーションにおいてポリシーやバインディングを詳述している。コンポーネントの実装からバインディングやポリ シーを分割することで、SCAが俊敏性や柔軟性を提供する方法を定義している。プレゼンはSCAバインディングモデル、その後で各バインディングタイプの 詳細を説明している。
- 具体的には以下のとおりである。
- アクセスメソッド/プロトコル/トランスポート
- 直列化
- フレームワーク
- サービスおよびリファレンスへの適用
- 通常はデプロイメント時に追加
- 拡張可能 - さらに多くのバインディングが追加可能
Mike氏はSCAポリシーモデルを定義し(そして説明し)、結果宣言モードの複雑性を取り除き、以下をサポートする。
- 実装コードは影響がない
- 宣言ポリシーの目的により、使用を簡略化する
- 適用および修正が容易
- 複雑な詳細がPolicySetsで保持されている
Policy Modelの主な機能は以下のとおりである。
- SCAポリシーの目的
- それぞれは1つの抽象QoS要求を表している - たとえば、保全性 修飾される場合がある - たとえば、 integrity.message 効果的にバインディング/ポリシーセットの組み合わせを抑制する
- SCAポリシーセット
- 一連の具体的なポリシーで抽象QoSの目的を実現する 具体的なバインディングタイプまたは実装タイプを適用する 本来バインディングまたは実装は、ポリシーを提供する
- WS-Policy
- ポリシーセットの具体的なポリシーの構文 他の構文形式は不可
SCAの今後の方向性を示すものは、Updated SCA Wishリスト(source)で参照することができる。もっとも可能性のある方向性として、興味深いものには以下のものが含まれる。
- SCA「レジストリー」-中央に格納し、構成やワイヤリングを管理する機能。
- RSS、ATOM、JSON-RPCなどを含む追加のSCAバインディングを改善/導入する。
- セキュリティ、高信頼性メッセージング、トランザクションにおける多数の機能強化
Mike Edwards氏の完全なパワーポイント、Composing Business Solutions using SCA(source) およびSCA Approach to Policy and Bindings(source)を必ず確認する。またInfoQによるSCA の記事(参考記事リンク)も参照するとよい。