Quick Guide to SCA
什么是SCA?
SCA是一個可執行的模型,用于將不同的 服務集成到一個業務解決方案。它簡化了實現業務服務的組件編程模型,這些組件可以使用不同編程語言實現。SCA帶來的一些益處主要為:
- 松耦合
組件件的集成不需要知道彼此是基于何種編程語言實現的。在同步、異步情況下,組件都可以被方便的調用。 - 可擴展性
組件可被簡單的被替換。既有的服務可被用來創建新的解決方案(自下而上),也可業務建模和開發(自上而下)。 - 生產率
SCA可讓你專心于分析業務邏輯,而不需要過多的去擔心系統架構。SCA簡化了所有開發者的使用體驗(包括J2EE和集成開發者)。
SCA組件實現
SCA的基本的組成部分是組件實現。 當你編寫SCA代碼時,你通常正在寫一個組件的實現或者將被這樣的組件使用的代碼。 一個組件通常由下列屬性描述:
- 服務:描述了該類型的組件所能提供的功能;
- 引用:描述了該類型的組件相關功能的依賴性;
- 屬性:定義了配置參數,控制程序邏輯如何實現,例如,使用何種貨幣;
- 策略:描述了組件行為策略,主要有兩種策略:
- 實現策略:對組件實現施加影響,例如:事務、監視以及日志;
- 互動策略:定義組件件如何互動,例如:安全;
一個典型的組件實現可以用下圖表示:
一個組件可以使用任何用戶想要的編程語言去實現,例如用BPEL去實現業務流程控制,XSL-T實現轉換,RUBY來編寫腳本,也可以使用純JAVA。這些服務、引用、屬性以及策略如何去定義界定了一個組件的是具體實現類型。
SCA組件實現
一個組件是配置了的組件實現的實例,同一個實現可被不同組件使用,SCA生存在一個復合的環境中。
SCA集成
單個組件可獨立使用,也可被組合起來作為一個合成組件使用。一個合成組件不是代碼,而是由一個或多個組件集成起來作為一個整體提供服務的。合成作為 一種解決方案,例如信用檢查組合。合成方案也可以在一個更大規模的解決方案中使用,例如信用檢查可能是一個訂單處理組合中的一部分,一個復合構建像一個組 件一樣具有同樣的特性,它提供服務,包含對其他組件的引用,并且可以配置成像單獨組件那樣使用屬性和策略。在下面的例子中,你可以看到一個計算復合組件, 它包含對四個組件的引用:加,減,乘,除。
配置信息使用服務組件定義語言(SCDL)定義在.composite 文件中。例如, calculator.composite 里定義了計算復合組件對其他組件的引用信息。
SCA Domain(域)
這些組件無論獨立還是集成,全部都是可在不同環境下使用多次 的可重用單元。一個合成組件,連帶它的配置信息,被打包到一個叫做contribution的部署單元部署到域。資源可以在不同contributions間重用,比如:JAVA類、XSD文件、WSDL文件等等。
一個SCA域是一個完整的運行配置,可能分布于一系列互聯的的節點運行,域配置的整體布局,是服務依賴、屬性、策略的配置。一個域是運行著的系統, 或者一組互相協作在一起工作工作的組件的邏輯視圖,它們通過SCA線路彼此連接。當它實際的用于一個SCA環境的時候,合成組件實例化。
SCA域非常靈活,可以很小也可以很大:
- 一個很小的域,可能是一個在測試環境內的ide內
- 中型域可能是一個單一的服務器還是小型集群,支持單一應用
- 大型的域可以描述一個部門或公司的全部服務
在一個大型域可能會有各種策略,定義組件可以在何處運行,以及它們如何連接到對方或對外服務。然而,在開發過程中人們不會關注這些。代碼被打包以供部署。Tuscany SCA Java 支持以JAR包或者文件的形式部署。
下面是一個有兩個contribution的域額度例子:
<全文完>
以上文章翻譯自Tuscany官網的SCA快速入門部分,原文:
posted on 2008-04-27 21:38 gembin 閱讀(476) 評論(0) 編輯 收藏 所屬分類: SCA 、SOA