由于 SCA規范面向企業應用集成,因此SCA構件的實現可以是Java,BPEL,EJB,WebService。從現有的已經實現的產品來看,OSGI更多 的被用來作為單一產品的整體架構,SCA規范更多的是被用在面向業務的構件的組裝規范,至于SCA產品的架構如何則不是SCA規范所關心的。

  最近一段時間先后看了SCA規范和OSGI的規范??赐曛笤賹Χ咦饕粋€全面的比較。

  首先,兩個規范制定的出發點和初衷是不一樣的。SCA規范是為了企業應用集成而制定,OSGI規范的初衷則是為移動設備計算而制定的。由于二者 的出發點不一樣,導致了兩個規范的側重點不一樣。SCA規范現在的版本是0.95,相對OSGI規范的4.0版本還顯得多少有些稚嫩。

  SCA規范中著重解決了現有企業應用之間的相互調用和企業應用如何以面向服務的思想來建立和部署。但是對于構件容器的實現方面的規定則有些不足,僅僅是站在使用者的角度描述了客戶端API的規格。

  而OSGI規范因為最初的出發點是為了移動設備的計算環境,因此更多的考慮了運行時框架和服務在運行時刻的動態匹配等問題。此外,提供了運行時刻應用程序的熱部署、解析、運行、卸載等能力。應該說,OSGI規范發展到4.0已經是一個比較完善的規范了。

  SCA規范中目前對SCA容器的實現尚沒有一個指導性的意見,但是OSGI規范在這方面已經做的很完善了。OSGI規范中定義了 Framework、Start Level、Package Admin、Security,詳細描述了不同組件之間的依賴規則(靜態依賴,動態導入),不同組件之間使用獨立的類名稱空間。

  由于SCA規范面向企業應用集成,因此SCA構件的實現可以是Java,BPEL,EJB,WebService。而OSGI的實現只面向Java語言。這也是由于二者的出發點不同導致的。

  對于SCA和OSGI的裝配模型,二者是大同小異。二者都可以對外提供服務(Service),但SCA更偏重設計時刻的構件組裝,而且定義了靈活的構件裝配模型,可以由最小的原子構件組裝成一個大系統。

  從現有的已經實現的產品來看,OSGI更多的被用來作為單一產品的整體架構,SCA規范更多的是被用在面向業務的構件的組裝規范,至于SCA產品的架構如何則不是SCA規范所關心的。

  從上邊的比較可以顯而易見的看出二者分別的缺點,SCA規范過于強調集成,但是對SCA構件的運行時刻行為描述太弱,所有的構件實現都是在設計 時刻綁定的。也許在SCA產品中可以實現運行時刻的動態綁定,但是作為一個規范,這是它所欠缺的。OSGI規范對組件的運行時刻描述很完備,但是所有的組 件必須運行在同一個虛擬機中,不同虛擬機中的組件服務互操作則稍顯不足。

 

    原文鏈接:http://gocom.primeton.com/blog839_14.htm

Flock 瀏覽器 創建

標簽: , , ,