引:Open CSA組織促進(jìn)了服務(wù)組件架構(gòu)(SCA)和服務(wù)數(shù)據(jù)對象(SDO)規(guī)范系列的創(chuàng)建和采用。
Open CSA組織促進(jìn)了服務(wù)組件架構(gòu)(SCA)和服務(wù)數(shù)據(jù)對象(SDO)規(guī)范系列的創(chuàng)建和采用。
服務(wù)組件架構(gòu)(SCA)
服務(wù)組件架構(gòu)(SCA)是一組規(guī)范,它描述了利用面向服務(wù)架構(gòu)(SOA)來構(gòu)建應(yīng)用程序和系統(tǒng)的模型。SCA是基于開放標(biāo)準(zhǔn)(例如Web服務(wù))構(gòu)建的,它擴展和補充了先前的服務(wù)實現(xiàn)方法。
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)用程序功能的重用)提供了模型。
SCA這一模型旨在包含廣泛的服務(wù)組件技術(shù)以及用于連接這些組件的訪問方法。對于組件,它不僅包
括各種編程語言,還包括通常與這些語言一起使用的框架和環(huán)境。對于訪問方法,SCA復(fù)合應(yīng)用程序允許使用各種常用的通信和服務(wù)訪問技術(shù),例如,Web服
務(wù)、消息傳遞系統(tǒng)和遠(yuǎn)程過程調(diào)用(RPC)。
SCA包含以下規(guī)范:
SCA EJB組件模型
SCA Java EJB客戶及實現(xiàn)(SCA Java EJB Client and Implementation)規(guī)范描述了如何在SCA復(fù)合應(yīng)用程序中使用EJB和EJB模塊。它在兩個層次上定義了EJB的使用:
- 可以將完整的EJB模塊像SCA復(fù)合體一樣使用,不需要做任何內(nèi)部細(xì)節(jié)上的改動,借助SCA連接到EJB模塊提供的服務(wù)上,并將EJB模塊的服務(wù)需求連接到EJB模塊的外部組件所提供的服務(wù)上。
- 可以使用單個EJB,由SCA提供所有的連接。
SCA裝配模型
SCA裝配模型(SCA Assembly Model)定義了構(gòu)成一個SCA系統(tǒng)的各種構(gòu)件和他們之間的關(guān)系。包括:SCA復(fù)合體,SCA構(gòu)件,服務(wù),服務(wù)實現(xiàn),服務(wù)需要,連線等等。
SCA策略框架(SCA Policy Framework)
非功能性需求(例如安全性)的捕獲和表示是服務(wù)定義的一個重要方面,在組件和復(fù)合應(yīng)用程序的整個生命周期中都會對SCA產(chǎn)生影響。SCA提供了策略框架以支持約束、能力和服務(wù)質(zhì)量(QoS)預(yù)期的規(guī)范,從組件設(shè)計直到具體部署。此規(guī)范描述了框架及其使用。
SCA Java注釋、API和組件實現(xiàn)
SCA Java公共注釋和API(SCA Java Common Annotations
and API)規(guī)范定義了Java
API和注釋,以支持使用Java編程語言來構(gòu)建服務(wù)組件和服務(wù)客戶。有一些緊密相關(guān)的模型,它們描述了如何在SOA上下文中使用其他基于Java的框架
和模型,例如Spring和EJB,這些模型也使用此規(guī)范定義的公共注釋和API。此外,Java組件實現(xiàn)規(guī)范還定義了用于創(chuàng)建服務(wù)組件的簡單Java
POJO模型。
SCA客戶及實現(xiàn):C++
SCA C++客戶及實現(xiàn)(C++ C&I)規(guī)范定義了API和注釋,以支持使用C++來編寫適合SCA組裝模型的服務(wù)組件和服務(wù)客戶。
SCA客戶及實現(xiàn):BPEL
SCA WS-BPEL客戶及實現(xiàn)(BPEL C&I)模型指定了如何將WS-BPEL進(jìn)程用作SCA組件。
SCA客戶及實現(xiàn):PHP
針對PHP的SCA客戶及實現(xiàn)模型定義了如何在“SCA裝配”中使用PHP腳本和對象。
SCA客戶機及實現(xiàn):Spring
針對Spring的SCA Java客戶及實現(xiàn)模型指定了Spring框架如何與SCA一起使用,以實現(xiàn)以下目的:
進(jìn)行粗粒度的集成:與Spring的集成將在SCA復(fù)合體層次進(jìn)行,其中Spring應(yīng)用程序上下文提供了完整的SCA復(fù)合體,并通過SCA暴露的服務(wù)和服務(wù)需求。這意味著Spring應(yīng)用程序上下文定義了SCA復(fù)合體的具體實現(xiàn)的內(nèi)部結(jié)構(gòu)。
從SCA組件類型開始:利用Spring,可以實現(xiàn)任何SCA復(fù)合應(yīng)用程序,這些應(yīng)用程序使用WSDL或Java接口來定義可能具有某些特定于SCA擴展的服務(wù)。
從Spring上下文開始:可以將任何有效的Spring應(yīng)用程序上下文用作SOA中的組件實現(xiàn)。特別地,應(yīng)該可以從任何Spring上下文生成SCA復(fù)合應(yīng)用程序,并在“SCA裝配”中使用這些復(fù)合應(yīng)用程序。
SCA綁定規(guī)范
SCA綁定(SCA Binding)規(guī)范適用于服務(wù)和服務(wù)需求。綁定允許通過特定的訪問方法或傳輸來提供服務(wù)并滿足服務(wù)需求。
Web服務(wù)綁定允許利用Web服務(wù)技術(shù)來訪問外部需求或公開SCA服務(wù)。SCA提供了服務(wù)組件之
間的互連的復(fù)合視圖,而Web服務(wù)提供了用于訪問服務(wù)組件的互操作方式。Web服務(wù)綁定還提供了SCA系統(tǒng)與其他服務(wù)之間的互操作銜接,這里的其他服務(wù)是
指SCA系統(tǒng)的外部服務(wù),但它們供SCA復(fù)合體使用。
JMS綁定允許SCA組件使用JMS API來通信。它提供了連接到所需的JMS資源的JMS特有的連接細(xì)節(jié)。它支持使用Queue和Topic類型的目標(biāo)。
EJB Session Bean綁定可以將先前部署的Session Bean集成到SCA裝配中,并允許向使用EJB編程模型的客戶公開SCA服務(wù)。EJB綁定既支持無狀態(tài)的Session Bean模型也支持有狀態(tài)的Session Bean模型。
服務(wù)數(shù)據(jù)對象(SDO)
服務(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)。
為支持各種可能的應(yīng)用,標(biāo)準(zhǔn)中包括了對各種常用語言的支持,包括:SDO for Java and C++,SDO for PHP,SDO for C,SDO for COBOL。詳細(xì)內(nèi)容可以從相關(guān)的白皮書和規(guī)范正文中獲得。