什么是SCA?
SCA是一種規范,它使開發人員可以將注意力集中在業務邏輯的編寫上。更直接地說,它是一種大大改進了的部署描述符,它可以使用任何語言而不限于Java。此外,您還可以使用編程式語言和聲明式語言,比如BPEL和XSLT。SCA的特別之處在于,它對安全性、事務和可靠消息傳遞之類的特性使用了聲明式策略的理念。
使SCA脫穎而出的是,它是專門針對SOA設計的,而不像J2EE只是面向SOA做了修改。SCA關注的是如何描述按照各種編程模型和協議編寫的組件所組成的程序集。
SCA的目標與BEA的目標是一致的:使事情(這次是應用程序的構建)更容易。SCA允許開發應用程序集而不考慮特定的中間件API或具體語言。
SCA的核心概念是服務及其相關實現。服務由接口定義,而接口包含一組操作。服務實現可以引用其他服務,稱為引用。服務可以有一個或多個屬性,這些屬性是可以在外部配置的數據值。
SCA中的一個關鍵推動因素是Service Data Object(服務數據對象,SDO)。AquaLogic Data Services Platform一直在使用它。SDO用于表示業務數據、參數以及服務調用的返回值,當它遍歷服務網絡時,它還是一種表示數據的方式。注意,也可以使用XMLBeans及其它技術。
SCA組件被組成為程序集。程序集是服務級的應用程序,它是服務的集合,這些服務被連接在一起,并進行了正確的配置。SCA程序集運行在兩個級別:第一種情況,程序集是系統內的一組松散連接的組件;另一種情況,程序集是模塊內的一組松散連接的組件。二者的區別在于,一般來說,模塊是組件的集合,而系統是模塊的集合。此外,系統對應于“大規模編程”(programming in the large或megaprogramming),而模塊對應于“小規模編程”(programming in the small),比如構建當今的典型應用程序。相關例子以及更詳細的說明請參見Dev2Dev站點上的SCA白皮書。
將組件連接到它所依賴的服務的方式就是服務網絡“裝配”的方式。程序集已經在許多技術和框架中廣為應用,比如CORBA、J2EE、ATG Dynamo和Spring,也就是說,它并不是新出現的。從這些技術中我們可以知道,程序集提供了許多重要的優點,比如更輕松的迭代開發,以及避免使業務邏輯依賴于中間件容器。SCA使用程序集解決了許多SOA開發中的重要問題,包括:
- 業務邏輯與底層基礎架構、服務質量和傳輸的分離。
- “小規模編程”與“大規模編程”的聯系。
- 為架構的設計、編碼和操作性部署在自底向上(bottom-up)和自頂向下(top-down)兩種方法中來回切換提供了一種統一的方式。
對BEA來說,它意味著什么?
SDO 2.0規范是整個SCA技術平臺的一個組成部分,它將在AquaLogic Data Services Platform (ALDSP)產品家族(已經支持SDO 1.0)的下一個主版本中實現。BEA AquaLogic Data Services Platform完全是針對SOA構建的,它自3.0版本開始就采用SCA技術。它提供企業數據服務的自動創建和維護,這可以幫助客戶獲得更高的生產力,進行業務優化,并更快地創造價值。BEA AquaLogic Data Services Platform提供了一個捕獲與數據訪問和數據更新有關的邏輯的單一位置。數據服務層提供了對相關的不同實時數據的可重用的、簡化了的訪問。注意,BEA Workshop中即將包含SCA支持。還有,BEA Workshop可免費下載。
為什么SCA如此重要?
SCA具有重大意義,因為它是第一項承諾提供一個組合模型以啟用服務網絡并支持構建下一代面向服務應用程序的技術。這一領域的每一次革新,都會導致出現一個新的抽象層,從而產生一批新的應用程序。C允許我們構建不能在匯編程序中構建的應用程序,而C++允許我們構建不能使用C構建的應用程序,Java又允許我們構建不能使用C++構建的應用程序。所有這些都是SCA的先例,簡單地說,SCA就是未來用于構建大規模企業組合應用程序的技術。