SOA已經成為公認的IT基礎架構發展的趨勢,它為我們描繪了一幅美妙的IT系統和業務系統完美結合的圖畫。然而,即使是在各咨詢機構推崇SOA,各廠商大肆宣傳推廣SOA,用戶普遍認可SOA的今天,SOA的美好未來依然給人一種不清晰、不踏實的感覺。
我們常常說SOA需要解決如何落地的問題。這個難題無法一蹴而就,必須花費很多時間才能逐步進行解決。但在目前,我們已經為SOA找到了一個著地的落腳點,這就是SCA/SDO規范。
2005年11月, IBM、BEA、IONA、Oracle、S等幾家廠商就合作建立新的業內規范來簡化 SOA 應用發展達成了一致,共同發布了兩項針對SOA的重要構件模型規范——SCA 0.9和SDO。此后,該團體陸續吸引了Red Hat、普元、TIBCO等多家公司的加盟,形成了OSOA(Open Service Oriented Architecture)聯盟,目前成員數量達到18家。OSOA聯盟旨在為SOA起草一系列的規范,并以免版稅的許可方式提供給業界使用。AP
2007年3月,OSOA聯盟宣布了SCA和SDO規范中關鍵部分的完成,發布了SCA 1.0和SDO 2.1,并將其正式提交給OASIS,通過其開放式標準過程進行推動。
SCA規范旨在簡化服務的創建和合成,對于運用基于SOA方式服務的應用構建十分關鍵。隨著SCA規范的完成,聯盟合作廠商希望將其標準化過程提交給OASIS。此外,聯盟廠商也已完成了SDO規范,旨在實現對多個站點中多種格式數據的統一訪問,并將把SDO基于Java的規范開發和管理提交給Java社團過程(Java Community Process,JCP)組織,而基于非Java的規范(C++)提交給OASIS。
SCA和SDO規范能幫助企業更便捷地創建新的以及改造現有的IT資產,使之可復用、易整合,以滿足不斷變化的業務需求。這些規范提供了統一服務的途徑,大大降低了在應用開發過程中,因程序設計語言與部署平臺的不同而產生的復雜性。SCA和SDO規范都是用于簡化業務邏輯和業務數據呈現的新興技術。
“我們對OSOA聯盟取得這一里程碑成就,并選擇了在接下來通過開放標準過程繼續推動這一重要工作表示歡迎和贊賞,”OASIS CEO和總裁Patrick Gannon說,“我們希望能進一步推進SCA規范,實現標準化,獲得最廣泛的行業應用。”
OASIS不只是研究和產生標準,同時也跟其他國際組織一起合作推動標準的采用和技術的發展。通過十多年的努力,OASIS已經得到廣泛的承認,可以直接向國際標準組織、國際電聯和聯合國相關標準組織直接提交標準提案。
SCA是一種規范,它使開發人員可以將注意力集中在業務邏輯的編寫上。更直接地說,它是一種大大改進了的部署描述符,它可以使用任何語言而不限于Java。此外,編程人員還可以使用編程式語言和聲明式語言,比如BPEL和XSLT(eXtensible Stylesheet Language Transformation,擴展樣式表轉換語言)。SCA的特別之處在于,它對安全性、事務和可靠消息傳遞之類的特性使用了聲明式策略的理念。
SCA是專門針對SOA設計的,而不像J2EE只是面向SOA做了修改。SCA關注的是如何描述按照各種編程模型和協議編寫的組件所組成的程序集。SCA允許開發應用程序集而不考慮特定的API或具體語言。中間件
SCA的核心概念是服務及其相關實現。服務由接口定義,而接口包含一組操作。服務實現可以引用其他服務,稱為引用。服務可以有一個或多個屬性,這些屬性是可以在外部配置的數據值。
SCA中的一個關鍵推動因素是SDO(Service Data Object,服務數據對象)。SDO用于表示業務數據、參數以及服務調用的返回值,當它遍歷服務網絡時,它還是一種表示數據的方式。注意,也可以使用XML Beans及其他技術。
SCA組件被組成為程序集。程序集是服務級的應用程序,它是服務的集合,這些服務被連接在一起,并進行了正確的配置。SCA程序集運行在兩個級別:第一種情況,程序集是系統內的一組松散連接的組件;另一種情況,程序集是模塊內的一組松散連接的組件。二者的區別在于,一般來說,模塊是組件的集合,而系統是模塊的集合。此外,系統對應于“大規模編程”(programming in the large或megaprogramming),而模塊對應于“小規模編程”(programming in the small),比如構建當今的典型應用程序。
將組件連接到它所依賴的服務的方式就是服務網絡“裝配”的方式。程序集已經在許多技術和框架中廣為應用,比如CORBA、J2EE、ATG Dynamo和Spring,也就是說,它并不是新出現的。從這些技術中我們可以知道,程序集提供了許多重要的優點,比如更輕松的迭代開發,以及避免使業務邏輯依賴于中間件容器。SCA使用程序集解決了許多SOA開發中的重要問題,包括:
*業務邏輯與底層基礎架構、服務質量和傳輸的分離。
*“小規模編程”與“大規模編程”的聯系。
*為架構的設計、編碼和操作性部署在自底向上(bottom-up)和自頂向下(top-down)兩種方法中來回切換提供了一種統一的方式。
Author: orangelizq
email: orangelizq@163.com
posted on 2010-11-30 09:54
桔子汁 閱讀(579)
評論(0) 編輯 收藏 所屬分類:
SOA