Service Component Architecture(サービス・コンポーネント・アーキテクチャ、SCA)は、サービス指向アーキテクチャ(SOA)に基づくアプリケーションを、サービスとして提供されるコンポーネントの組み合わせとして構築・構成するためのモデルを定めた一連の仕様である。特定のプログラミング言語や実行環境に依存しないことを特徴とする。

歴史 2005年11月30日、BEAシステムズ、IBM、IONAテクノロジーズ、オラクル、SAP、シーベル・システムズ、サイベース、Xcalia、Zend Technologiesの各社が、SCAとデータアクセスの仕様であるService Data Objects(SDO)を共同で発表した。これらの仕様は、後に参加企業が拡大した業界団体Open SOA Collaboration(OSOA)で策定が進められ、2007年3月21日には18社の参加のもと、アセンブリモデル、ポリシーフレームワーク、Java・Spring・BPEL・C++による実装、Webサービス・JMS・EJBセッションBeanとのバインディングなどからなる10件のSCA 1.0仕様が公開された。同時に、以後の標準化をOASISに移管する方針が示された。

2007年8月、OASISはOpen CSAメンバーセクションの下に、アセンブリモデル(SCA-Assembly)、ポリシー(SCA-Policy)、バインディング(SCA-Bindings)、BPEL(SCA-BPEL)、C/C++(SCA-C-C++)、Java(SCA-J)の6つの技術委員会を設置し、バージョン1.1の策定を開始した。しかし、中核となるアセンブリモデル仕様1.1はコミッティドラフトの段階にとどまり、SCA-Assembly技術委員会は2013年以降活動を停止したのち、2016年4月29日に閉鎖された。

代表的なオープンソース実装であったApache Tuscanyも、2016年に開発を終了し、Apacheソフトウェア財団のAttic(終了したプロジェクトの保管場所)に移された。

主な概念 SCAのアセンブリモデルでは、アプリケーションを次のような要素の組み合わせとして記述する。 コンポーネント(component) 実装を設定したインスタンス。プロパティの値や、参照先となるサービスとの接続を指定する。 実装(implementation) ビジネス機能を具体的に実現するプログラム。JavaのクラスやBPELのプロセス、別のコンポジットなどを用いる。 サービス(service) 実装が外部に提供する、アドレス指定可能なインタフェース。 参照(reference) 実装が、他のコンポーネントが提供するサービスを必要とすることを表す。 プロパティ(property) 実装の動作を外部から設定するための値。 コンポジット(composite) コンポーネントやサービス、参照と、それらを結ぶワイヤ(wire)を論理的にまとめたもの。構成と配備の基本単位となる。 バインディング(binding) サービスや参照が、WebサービスやJMSなどの具体的な通信手段でどのようにアクセスされるかを指定する。 ドメイン(domain) 通常は単一の組織が管理する、ある業務領域の機能を提供するサービスの集まり。

また、セキュリティやトランザクション、信頼性のあるメッセージングといった非機能要件は、ポリシーフレームワークにより宣言的に指定する。

関連項目 サービス指向アーキテクチャ Service Data Objects エンタープライズ・サービス・バス

脚注

外部リンク OASIS Open CSA – Service Component Architecture