1 裝配模型
1.1 簡介
該文檔描述SCA裝配模型,其覆蓋如下內(nèi)容:
本文檔由對SCA裝配模型的簡短概述開始。文檔的后半部分描述了SCA的核心元素,SCA component(譯為:組件)和SCA composite(譯為:構(gòu)件)。
1.2 概述
SCA為構(gòu)建應用和基于SOA的解決方案提供了編程模型。它基于將業(yè)務(wù)功能作為一系列的服務(wù),并由該一系列的服務(wù)組裝在一起來滿足特定業(yè)務(wù)的需求的理念。這些組合的應用既包含新創(chuàng)建的服務(wù),又包含已存在系統(tǒng)和應用作為復用的構(gòu)件。SCA既為服務(wù)的組件也為組件服務(wù)的創(chuàng)建,包括對SCA構(gòu)件中復用已存在的應用功能提供了模型。SCA就是一個致力于包含各種廣泛的服務(wù)組件和服務(wù)組件訪問方式的技術(shù)模型。對于訪問方式,SCA構(gòu)件允許各種通訊和廣泛使用的服務(wù)訪問技術(shù)的使用。其中包括象Web service、Messaging 系統(tǒng)和遠程過程調(diào)用(RPC)技術(shù)等。
SCA裝配模型由系列工件組成。這些工件定義了包含了服務(wù)組件(component)和連接(connection)的裝配信息和描述了他們是如何連接在一起的相關(guān)工件的SCA域配置信息。
SCA的基礎(chǔ)工件就是component,他是SCA的構(gòu)成單元。組件(component)由一個被配置了的實現(xiàn)實例組成。在此當中,實現(xiàn)是一段提供了業(yè)務(wù)功能的程序代碼。該業(yè)務(wù)功能被其他組件作為服務(wù)(service)來使用。實現(xiàn)也許依賴于由其他組件提供的服務(wù),這些依賴就稱作”引用”(reference)。實現(xiàn)可以有一個可以設(shè)置的屬性(properties),該屬性是可以改變業(yè)務(wù)功能操作的數(shù)據(jù)值。組件通過提供屬性值和引用來配置實現(xiàn)。
SCA允許各種廣泛采用的實現(xiàn)技術(shù),比如傳統(tǒng)的象Java,C++,BPEL的編程語言,也包括象PHP,Javascript的腳本語言,還有象XQuery和SQL的聲明性語言。
SCA在裝配中描述的內(nèi)容和應用的聯(lián)接稱為“composite”。構(gòu)件能包含組件,服務(wù),引用,屬性聲明還有描述這些元素連接方式的連線(wire)。構(gòu)件可以分組和連接到用不同技術(shù)實現(xiàn)的組件。依次地,構(gòu)件能作為完整的組件實現(xiàn)來使用:提供服務(wù),依賴引用和可設(shè)置的屬性值。構(gòu)件實現(xiàn)能作為其他構(gòu)件中的組件來使用,支持業(yè)務(wù)解決方案的分層構(gòu)建。在該解決方案中,高層服務(wù)內(nèi)部是由一系列的低層服務(wù)實現(xiàn)的。構(gòu)件的內(nèi)容能作為元素組來使用。該元素組被包含于高層構(gòu)件中發(fā)揮作用。
構(gòu)件是被部署于SCA Domain域中的。典型地,SCA域描述了一系列的服務(wù),這些服務(wù)提供了由某個單一組織控制的業(yè)務(wù)功能范圍。舉個例子來說,商務(wù)中的會計部門,SCA域也許會涵蓋所有的財務(wù)相關(guān)的功能,還會包含一系列的處理特定會計范圍的、某個處理客戶帳戶的以及處理應付帳戶的構(gòu)件。為了方便構(gòu)建和配置SCA域,構(gòu)件被用于分組和配置相關(guān)的工件。
SCA為它的工件定義了XML文件格式。這些XML文件定義了輕便的SCA工件的描述。SCA運行時可以有其他的被這些XML文件所描述的工件的描述。特別地,用某種編程語言實現(xiàn)的組件實現(xiàn)可以有屬性或用于指定SCA裝配模型中某些元素的注解(annotation)。這些XML為SCA 域的配置定義了一個靜態(tài)的格式。SCA運行時也運行動態(tài)地修改域的配置。
1.2.1 用于描述SCA工件圖
該文檔將用可視化工件之間的關(guān)系的方式來描述各種SCA工件圖。這些圖用來配合和闡述SCA工件的案例。下圖說明了SCA組件的某些特征:
下列圖闡述了使用一系列組件裝配的構(gòu)件的某些特征:
下圖說明了由一系列高層構(gòu)件裝配成的SCA域,其中某些高層構(gòu)件是由低層組件依次實現(xiàn)的。