SCA
(Service Component Architecture)編程模型
1).
使用服務組件的客戶端可以選擇使用WSDL接口或Java接口。
??????
服務組件提供給別的服務調(diào)用的入口叫Interface(接口)。而服務組件本身可能也需要調(diào)用別的服務,這個調(diào)用出口叫Reference(引用)。無論是接口還是引用,其調(diào)用規(guī)范都是WSDL或Java接口。
2).SCA
服務組件與傳統(tǒng)組件的主要區(qū)別在于:
1
. 服務組件往往是粗粒度的,而傳統(tǒng)組件以細粒度居多。
2
. 服務組件的接口是標準的,主要是WSDL接口,而傳統(tǒng)組件常以具體API形式出現(xiàn)。
3
. 服務組件的實現(xiàn)與語言是無關的,而傳統(tǒng)組件常綁定某種特定的語言。
4
. 服務組件可以通過組件容器提供QoS的服務,而傳統(tǒng)組件完全由程序代碼直接控制。
3).
服務模塊(Module)
服務模塊(簡稱模塊)由一個或多個具有內(nèi)在業(yè)務聯(lián)系的服務組件構成。把多少服務組件放在一個模塊中,或者把哪些服務組件放在一起主要取決于業(yè)務需求和部署上靈活性的要求
4).
導入(Import)和導出(Export)
兩個特殊的"端點",一個是導入(Import),它的作用是使得模塊中的服務組件可以調(diào)用模塊外部的服務。另一個是導出(Export),它的作用是使得模塊外部的應用可以調(diào)用模塊中的服務組件。
導入端點提供了四種綁定方式,包括:JMS綁定,Web Service綁定,SCA綁定和無狀態(tài)會話BEAN的綁定。導出端點提供了三種綁定方式,包括:JMS綁定,Web Service綁定和SCA綁定。
5).
共享庫(Library)
共享庫包含的內(nèi)容只有:數(shù)據(jù)定義,接口定義,數(shù)據(jù)映射和關系。與模塊最大的區(qū)別使共享庫不包含服務組件,因此也就不包含業(yè)務邏輯
6).Standalone Reference
模塊中的服務組件是不能直接被外部Java代碼使用的,Standalone Reference(端點)就是為了讓外部的Java代碼能夠使用模塊中的服務組件。這個端點只有引用(Reference),而沒有接口(Interface)。這個引用可以調(diào)用相應的服務組件。
7).
同步調(diào)用和異步調(diào)用
面對是基于粗粒度的服務組件,面對的是一些需要比較長時間才能有響應的應用場景,那么我們就需要一種非阻塞式調(diào)用方式,即異步調(diào)用方式。
SCA
編程模式提供了三種方式的異步調(diào)用,它們分別是:
1
. 單向調(diào)用方式。
2
. 延遲響應方式。
3
. 請求回調(diào)方式。
8).SCA
客戶端的兩種調(diào)用方式
從接口的角度,SCA的客戶端編程模型有兩種方式:
1
. 靜態(tài)調(diào)用方式
2
. 動態(tài)調(diào)用方式
9).
接口類型與調(diào)用方式
實際上客戶端采用哪種調(diào)用方式是與接口類型有密切的關系。當提供的接口類型是WSDL類型的,那么客戶端的調(diào)用方式只能是動態(tài)調(diào)用方式。由于WSDL是SCA模型中主要的接口方式,這樣就導致動態(tài)調(diào)用方式在SCA編程模型中非常普遍。但是如果提供的接口類型時Java類型的,那么客戶端的調(diào)用方式可以是動態(tài)調(diào)用方式,也可以是靜態(tài)調(diào)用方式。