SCA的基本思想是將業(yè)務(wù)功能作為一系列服務(wù)來提供,這些服務(wù)組合到一起,以創(chuàng)建滿足特定業(yè)務(wù)需要的解決方案。這些復(fù)合應(yīng)用程序既可以包含專門為該應(yīng)用程序創(chuàng)建的新服務(wù),也可以包含來自現(xiàn)有系統(tǒng)和應(yīng)用程序的業(yè)務(wù)功能(作為復(fù)合應(yīng)用程序的一部分來重用)。SCA為服務(wù)組合和服務(wù)組件的創(chuàng)建(包括SCA復(fù)合應(yīng)用程序內(nèi)部現(xiàn)有應(yīng)用程序功能的重用)提供了模型。
注:UML也是一種建模語言,而可以看到SCA組件模型是對應(yīng)的不是UML中的類,而可能是一個粗粒度的組件包,對于粗粒度的組件包,特別是一個服務(wù)組件,我們關(guān)注的就是它暴露了哪些服務(wù),有哪些屬性,引用了哪些其它子組件等。這些描述清楚了一個服務(wù)基本就描述清楚了。特別是在構(gòu)建組合服務(wù)的時候,我們看到服務(wù)和應(yīng)用描述方式很容易將多個子組件串聯(lián)在一起,而不需要通過BPEL服務(wù)編排方式實現(xiàn)。
SCA這一模型旨在包含廣泛的服務(wù)組件技術(shù)以及用于連接這些組件的訪問方法。對于組件,它不僅包括各種編程語言,還包括通常與這些語言一起使用的框架和環(huán)境。對于訪問方法,SCA復(fù)合應(yīng)用程序允許使用各種常用的通信和服務(wù)訪問技術(shù),例如,Web服務(wù)、消息傳遞系統(tǒng)和遠(yuǎn)程過程調(diào)用(RPC)。
SCA包括如下規(guī)范
- SCA Java EJB客戶及實現(xiàn)(SCA Java EJB Client and Implementation)
- SCA裝配模型(SCA Assembly Model)定義了構(gòu)成一個SCA系統(tǒng)的各種構(gòu)件和他們之間的關(guān)系
- SCA策略框架(SCA Policy Framework)
- SCA Java注釋、API和組件實現(xiàn)
- SCA綁定(SCA Binding)規(guī)范適用于服務(wù)和服務(wù)需求
服務(wù)組件提供給別的服務(wù)調(diào)用的入口叫Interface(接口)。而服務(wù)組件本身可能也需要調(diào)用別的服務(wù),這個調(diào)用出口叫Reference(引用)。無論是接口還是引用,其調(diào)用規(guī)范都是WSDL或Java接口SCA服務(wù)組件與傳統(tǒng)組件的主要區(qū)別在于:
- 服務(wù)組件往往是粗粒度的,而傳統(tǒng)組件以細(xì)粒度居多。
- 服務(wù)組件的接口是標(biāo)準(zhǔn)的,主要是WSDL接口,而傳統(tǒng)組件常以具體API形式出現(xiàn)。
- 服務(wù)組件的實現(xiàn)與語言是無關(guān)的,而傳統(tǒng)組件常綁定某種特定的語言
服務(wù)數(shù)據(jù)對象(SDO)
統(tǒng)一訪問不同數(shù)據(jù)源的數(shù)據(jù)編程模型,讓開發(fā)人員可以從不同的數(shù)據(jù)源以統(tǒng)一的方式訪問和操縱數(shù)據(jù)。服務(wù)數(shù)據(jù)對象(SDO)的設(shè)計是為了簡化和統(tǒng)一應(yīng)用程序處理數(shù)據(jù)的方式。利用SDO,應(yīng)用程序編程人員可以一致地訪問和操縱來自異構(gòu)數(shù)據(jù)源的數(shù)據(jù),包括關(guān)系數(shù)據(jù)庫、XML數(shù)據(jù)源、Web服務(wù)和企業(yè)信息系統(tǒng)。
在SDO中有兩個要素,一個是數(shù)據(jù)視圖,一個是數(shù)據(jù)視圖中的數(shù)據(jù)對象。數(shù)據(jù)視圖是描述數(shù)據(jù)對象的分層結(jié)構(gòu),包括數(shù)據(jù)對象樹和更改摘要;而數(shù)據(jù)對象是保存數(shù)據(jù)的組件,有鍵/值對組成,每個值可以是原始的數(shù)據(jù)類型,也可以是一個數(shù)據(jù)對象,并支持序列化。
為何要采用SCA和SDO?因為通過SCA和SDO獲得了更高的靈活性和更高的開發(fā)效率。可以在不改變應(yīng)用程序情況下,使用不同的技術(shù)來作為組件的實現(xiàn),或者改變通信協(xié)議等等,同時模塊也可以根據(jù)容易的被重用和組裝,易于修改和變更。
Author: orangelizq
email: orangelizq@163.com
|
|
歡迎大家訪問我的個人網(wǎng)站 萌萌的IT人