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