應用需求的快速發展帶動了計算機網絡技術的快速發展,其直接結果是產生了當前炙手可熱的網絡服務(Web Service)技術,如何合理地把Web服務應用到各類企業的IT系統和商業流程之中、并給企業帶來直接的經濟效益,一直是備受國內外企業管理者高度關注的課題。面向服務架構(SOA,Service-oriented architecture)就是在此背景下出現的,SOA被譽為下一代Web服務的基礎框架,目前已經成為計算機信息領域的一個新的發展方向。
1996年,Gartner最早提出SOA的思想,2002年12月,Gartner提出SOA是“現代應用開發領域最重要的課題”,預計到2008年,SOA將成為占有絕對優勢的軟件工程實踐方法。Gartner為SOA描述的遠景目標是:在于讓IT變得更有彈性,以更快地響應業務單位的需求,實現實時企業(Real-Time Enterprise)。一些IT組織已經成功建立并實施SOA應用軟件了,IBM等廠商也看到了它的價值,繼而紛紛跟進。
SOA與構件技術
研究SOA,不能不關注軟件構件技術,“基于構件技術提供網絡服務”是SOA的重要思想起源,做SOA研發的公司無不對構件技術有一定研究。
在SOA架構中,流動的應該是構件,而不是已經集成在一起的整個系統軟件。一個用戶選擇了一款軟件,一般都有定制的要求,尤其是系統管理軟件,如ERP、CRM
構件技術與構件化的概念是有區別的,構件化的關注點不在于構件本身的技術實現,而在于如何把應用系統分解成穩定、靈活、可重用的構件,在于如何利用已有的構件庫組裝出隨需應變的應用軟件,從一個面向構件的環境中去分析應用,如何做出靈活、重用的構件來思考。構件化的目的在于帶動軟件工業化。
但是,構件技術則是構件化的基礎,它為構件的工廠化生產提供技術保障。傳統的軟件方法學是從面向機器、面向數據、面向過程、面向功能、面向數據流等反映問題的本質;而構件技術關注的是在軟件已經可用的情況下,在高層次上的復用,如分布式異構互操作;跇嫾能浖O計方法學把應用和實現分離,提供標準接口和框架,使軟件開發變成構件的組合;跇嫷能浖椒▽W是以接口為中心、面向行為、基于體系結構設計的,它要求:對構件件要有明確的定義;用構件描述語言和規范,如UML、微軟COM構件技術中的IDL、科泰世紀CAR構件技術的CDL。
在基于對象模型描述的計算機網絡系統中,對象是最基本的概念,分布協同的基本單元就是這些對象構件。對象之間只能通過預先定義好的接口訪問,這些接口構成連接客戶和服務器的協議。任何對象都可向其他對象請求或提供服務。SOA是一種基于對象的構件計算模型,它將不同的功能單元通過預先定義好的接口和契約聯系起來。SOA的構件計算模型決定了軟件系統構架。在一個SOA系統中,提供具體服務的是一個實現相應功能的構件。
SOA與軟件工廠
作為面向服務的體系架構,當眾多用戶多次重用同一構件、或者需要在不同構件間進行互操作時,SOA需要提供一套統一的軟件標準或協議,用工業化生產的角度來看,SOA架構需要支持軟件的工廠化生產。
如果把軟件比喻成工業化產品,軟件工廠技術則包括軟件零件的生產、下載、組裝、使用、銷毀等重要環節,軟件工廠的本質在于提供一套統一的軟件規范:包括在各個環節中的軟件接口、標準或協議的制定原則、軟件零件的生產規范、網絡構件的下載與安全管理、軟件零件的組裝規則、組裝完成后的運行機制、運行完成后的清理或銷毀原則等。只要大家依照這些規范進行開發,就能夠保證軟件間的兼容性和互操作性,提高軟件的開發效率和質量。
經過幾十年的發展,軟件編程理念經歷了隨意編程、面向結構、面向對象、面向構件、面向Web服務等階段。相比之下,Web服務最為驚心動魄。Web服務之前的軟件體系結構,功能重用主要是通過源代碼級的封裝、繼承等特性來實現;而Web服務則是通過基于動態目標代碼級的封裝、繼承,及元數據的自描述技術、AOP技術等來實現的。
軟件工廠條件下的軟件積木式拼裝和零件化生產技術不斷成熟,理想的軟件工廠技術的標志性特征是基于目標代碼模塊的動態拼裝、動態運行、動態管理。以目標代碼為基本軟件模塊,展開對同一應用軟件的跨操作系統平臺研究、展開同一應用軟件的跨不同系統的集成運行環境的研究、展開不同應用程序之間的二進制兼容與互操作研究,這些都是促進SOA發展與應用的重要方面。
SOA與軟件平臺
在網絡環境下的面向服務的架構中,支持網絡軟件運行的基礎平臺是很重要的,尤其是支持軟件跨平臺運行。Java虛擬機為Java程序的跨平臺運行提供了基礎環境。微軟的.Net技術則充分考慮了企業級應用程序、尤其是由不同編程語言實現的應用程序之間的兼容性和互操作。
我國自主研發的“和欣”操作系統(英文名Elastos)創新性地實現了“CAR構件技術”(CAR,Component Assembly Runtime),提供了高效率的構件/中間件運行環境!昂托馈笔峭耆嫦驑嫾夹g的操作系統,其系統服務器都是以動態鏈接庫的中間件形式提供,如文件系統構件、設備驅動構件、網絡服務構件等。CAR構件技術完全面向下一代網絡服務,提供了Windows、Linux上的構件運行平臺,可實現“和欣”應用程序和CAR構件可以以目標代碼形式在Elastos、Windows(2K/XP/CE)、Linux操作系統上二進制兼容運行。
SOA與信息安全
美國總統信息技術顧問委員會的一份報告《計算機安全:轉折期的研發重點》(《Cyber Security:A Crisis of Prioritization》)中明確提到了:無止境的補丁不是解決問題的辦法。通過修正和重建網絡、計算機系統以及軟件來“增強”安全性和可靠性可能在短期是必要的,但是這些不足以滿足整個國家的網絡的安全要求,很難在已有復雜的系統中增加安全性的要求。即使一切最好的防范措施都被充分地使用,如果對信息安全沒有本質上的改變,我們仍將無止境地修補“堤壩上的漏洞”。因此,全新安全模式的研發需要從基礎軟件架構開始。通過對這些年來的軟件安全問題進行計算模型上的分析,可以看出原有的軟件體系架構已經無法滿足日益復雜軟件系統對安全的要求,新的,更安全的軟件架構呼之欲出,SOA就是新安全體系結構的代表。
傳統的軟件架構并沒有在安全性方面進行系統級支持,這是由于在軟件產業發展的初期,人們更關心的是軟件的功能和效率,而對軟件的安全并不是很重視。隨著計算機和軟件開發技術的普及,軟件的安全隱患陸續暴露出來,從病毒、盜版、到蠕蟲,軟件的安全性面臨巨大的挑戰。PKI就是在這種背景下誕生的安全架構,其部分解決對于信息認證及反盜版方面的問題,但對于原有的軟件體系架構自身的缺陷,PKI仍不能全面保護軟件和信息的安全,這也是大量破解軟件存在的主要原因之一。
文章來源于領測軟件測試網 http://www.kjueaiud.com/