Service Component Architecture(SCA) 是一組標(biāo)準(zhǔn),描述了一個通過SOA構(gòu)建應(yīng)用系統(tǒng)的模型。SCA擴展并補充了之前服務(wù)實現(xiàn)的方法,構(gòu)建在一些開放的標(biāo)準(zhǔn)之上,比如Web Services。
SCA提倡基于SOA的業(yè)務(wù)應(yīng)用能夠用組件(component)的形式來實現(xiàn)業(yè)務(wù)邏輯,這些組件通過面向服務(wù)的接口提供功能(服務(wù)),或者使用別的組件通過面向服務(wù)的接口提供的功能,即服務(wù)引用(Service references)。SCA將構(gòu)建一個SOA的應(yīng)用切分為兩個主要步驟:
?1.服務(wù)組件的實現(xiàn):提供或者使用(consume)服務(wù);
?2.服務(wù)組件的組裝:用來構(gòu)建完整的業(yè)務(wù)應(yīng)用,通過連接服務(wù)引用與服務(wù)(Through the wiring ??? of service reference to services)。
Figure 1. Service Component Architecture
SCA服務(wù)的實現(xiàn)支持使用多種的編程語言,既包括傳統(tǒng)的面向?qū)ο蠡蜻^程的語言,如:Java,PHP,C++,COBOL,以XML為核心的BPEL,XSLT等,又包括一些聲明語言(declarative language)如:SQL和XQuery。SCA同樣支持異步的和面向消息的調(diào)用以及同步的調(diào)用返回模式。
SCA支持綁定(Bindings)一組訪問機制用來調(diào)用服務(wù),包括Web Services,Messaging Systems 和 CORBA IIOP,Bindings 是聲明式的(are handled declarativly)獨立于實現(xiàn)代碼,SCA通過使用策略定義了基礎(chǔ)功能的使用,目的是為了更方便的應(yīng)用到業(yè)務(wù)系統(tǒng)。
SCA提倡使用Service Data Object(SDO)來表示服務(wù)中使用或返回的業(yè)務(wù)數(shù)據(jù),提供對業(yè)務(wù)數(shù)據(jù)統(tǒng)一的訪問來滿足對SCA自己提供的業(yè)務(wù)服務(wù)的統(tǒng)一訪問。
SCA規(guī)范由許多文檔共同描述,每一文檔描述SCA中的一個方面。裝配模型(Assembly Model)描述了組件間的配線連接。裝配模型獨立于實現(xiàn)語言。客戶端和實現(xiàn) 描述了服務(wù)的實現(xiàn)和服務(wù)客戶端—— 每一種實現(xiàn)語言有其自己的客戶端和針對該語言的SCA模型實現(xiàn)規(guī)范。