解讀SOA架構(gòu)及其安全性的問題
CIO時(shí)代 發(fā)表于:13年05月10日 12:30 [轉(zhuǎn)載] 比特網(wǎng)
IT組織已經(jīng)成功建立并實(shí)施SOA應(yīng)用軟件很多年了,并有效的節(jié)約了成本和提高的生產(chǎn)效率,取得了很好的成果。那么,SOA如此風(fēng)靡,它究竟是一種什么東西呢?簡單來說,SOA就是一個(gè)組件模型,應(yīng)該屬于一個(gè)軟件一體化中的一個(gè)概念。這個(gè)組件模型,將不同的服務(wù)以應(yīng)用程序的不通功能單元的形式,通過已經(jīng)預(yù)定義的接口和協(xié)議聯(lián)系起來。這些預(yù)定義的接口,一般都使用比較中立的定義,這樣可以確保這種接口可以做到跟編程語言無關(guān),跟所有的軟硬件無關(guān),最大可能的滿足其跨平臺性。這樣,當(dāng)構(gòu)建一個(gè)這樣的平臺后,這樣一個(gè)平臺中的系統(tǒng)就能以一個(gè)統(tǒng)一的通用的方式進(jìn)行交互,而不用去關(guān)心這些系統(tǒng)被部署在什么樣的環(huán)境中和部署在什么地方這些問題了。
當(dāng)然,即使到目前,SOA依舊沒有一個(gè)統(tǒng)一的官方的定義,很多廠家在在拿出自己的SOA決絕方案的時(shí)候,都給除了自己的定義。這里,我們僅僅提供一個(gè)W3C提供的定義:SOA是指服務(wù)提供者完成一組工作,為服務(wù)使用者交付所需的最終成果。最終結(jié)果通常會使使用者的狀態(tài)發(fā)生變化,但也可以使提供者的狀態(tài)發(fā)生改變,或者雙方都發(fā)生改變。
在實(shí)施SOA架構(gòu)時(shí)的關(guān)鍵目標(biāo)是什么呢?其實(shí)就是為了節(jié)約成本,實(shí)現(xiàn)企業(yè)IT資產(chǎn)重用的最大化。這一目標(biāo)促使人們在實(shí)施SOA的時(shí)候,必須考慮以下方面:可從企業(yè)外部訪問,這個(gè)是因?yàn)闉榱藵M足企業(yè)的業(yè)務(wù)伙伴的需求。使業(yè)務(wù)伙伴即外部用戶也能像企業(yè)內(nèi)部用戶一樣訪問相同的服務(wù)。當(dāng)業(yè)務(wù)伙伴基于業(yè)務(wù)的目的交換業(yè)務(wù)信息時(shí),這個(gè)會話過程應(yīng)該不會受到阻止:隨時(shí)可用,當(dāng)有服務(wù)使用者請求服務(wù)時(shí),SOA要求服務(wù)提供者能夠及時(shí)響應(yīng)。
這里有個(gè)問題需要說明的是,在實(shí)際上,服務(wù)的提供者總是多于服務(wù)的使用者,當(dāng)使用者多到一定程度時(shí),對使用者來說,很容易受到服務(wù)提供者短缺的影響,所以為了緩解這個(gè)問題,一般在提供服務(wù)時(shí),會考異步應(yīng)用,因?yàn)楫惒綉?yīng)用要更為穩(wěn)健,其采用隊(duì)列請求設(shè)計(jì)?梢匀菰S服務(wù)暫時(shí)短缺或遲滯的情況:考慮到減少使用者和服務(wù)層之間的多次往復(fù),在設(shè)計(jì)接口時(shí)一般采用粗粒度服務(wù)接口,因?yàn)榇至6确⻊?wù)一次能提供一項(xiàng)特定的服務(wù)功能。但是這里也會出現(xiàn)一個(gè)問題,那就是,粗粒度設(shè)計(jì)雖然能有效減少使用者和服務(wù)層的多次往復(fù),但其重用性卻很差,有的甚至沒法重用,為了解決這個(gè)問題,人們在設(shè)計(jì)SOA架構(gòu)的時(shí)候,采用了不通的粗粒度等級來創(chuàng)建服務(wù)。這種服務(wù)分級包含了粒度較細(xì),重用性較高的服務(wù),也包含粒度較粗,重用性較差的服務(wù)。在設(shè)計(jì)時(shí),還有一個(gè)重要的特性。那就是需要滿足松散耦合,這以特性的滿足,使SOA與其它的大多數(shù)組件架構(gòu)區(qū)別開來,而且,也將服務(wù)使用者和服務(wù)提供者在使用服務(wù)和提供服務(wù)上實(shí)現(xiàn)了完全的透明。早些時(shí)候,SOA架構(gòu)一般采用ESB通信。但現(xiàn)在采用較多的是web services,這要優(yōu)于與服務(wù)特定接口的連接。還有一個(gè)特性就是需要可重用的接口設(shè)計(jì),這個(gè)就不用說了,為了滿足重用性和易于管理性了。
由于SOA架構(gòu)滿足上面描述的那些特性,其具有的優(yōu)點(diǎn)是顯而易見的。其具有的優(yōu)點(diǎn)主要表現(xiàn)在:編碼靈活性;能使每一個(gè)開發(fā)人員的角色明確:由于其采用了中立的通信格式,所以能支持多重客戶類型;其松散耦合讓其具有更易維護(hù)性,更高的可用性。對企業(yè)來說,最關(guān)心就是對現(xiàn)有的資產(chǎn)的利用和易于集成和管理了,而這個(gè)也能滿足,所以,企業(yè)的成本就自然而然的降低了。
雖然SOA現(xiàn)在發(fā)展的如火如荼,但還是處在不斷的發(fā)展中,還是存在很多有待改進(jìn)的地方。其缺點(diǎn)目前來說,主要表現(xiàn)在以下幾個(gè)方面:可靠性,安全性,性能。在電子商務(wù)的應(yīng)用中,有一個(gè)很重要的可靠性,就是不可否認(rèn)性,信息確保發(fā)送且僅且一次以及事務(wù)的回滾,這點(diǎn)是必須得到滿足的,但是,目前來說,SOA架構(gòu)還沒有為此做好準(zhǔn)備。至于安全性我們在下面會做詳細(xì)的分析。至于性能問題,不可否認(rèn),這個(gè)SOA架構(gòu)最遭人詬病的地方。SOA架構(gòu)的性能稍低,主要是因?yàn)镾OA的分布性質(zhì)和web服務(wù)協(xié)議的開銷。任何分布式系統(tǒng)的執(zhí)行速度都不如獨(dú)立式系統(tǒng),因?yàn)檫@里面有網(wǎng)絡(luò)的制約因素。所以,在對那些實(shí)時(shí)性要求較高的地方,在構(gòu)建SOA架構(gòu)之前,就應(yīng)該先搞清楚它的適用范圍了。
這里之所以特意把安全問題拿出來作為一個(gè)獨(dú)立的段落,是因?yàn)榘踩珕栴}對一個(gè)系統(tǒng)來說應(yīng)該受到足夠的重視。如果你沒有在在它上面付出應(yīng)有的努力,也許,它就會成為導(dǎo)致SOA架構(gòu)在實(shí)施的時(shí)候失敗的主要原因。
由于SOA架構(gòu)的松散耦合性,當(dāng)其向客戶提供服務(wù)時(shí),任何形式的網(wǎng)絡(luò)都能獲取IT應(yīng)用程序和系統(tǒng)時(shí),人們會本能的擔(dān)心非正當(dāng)人群也能訪問程序和系統(tǒng);ヂ(lián)網(wǎng)對世界開放,從而更加劇了人們的這一擔(dān)憂。通常我們企業(yè)都知道保護(hù)網(wǎng)絡(luò)接入,認(rèn)證用戶以及運(yùn)行訪問控制列表。假設(shè)所采用的SOA基礎(chǔ)架構(gòu)具有實(shí)施安全粒度的全力,這就使得有效控制訪問方式成為可能。但是,如果保證數(shù)據(jù)在網(wǎng)絡(luò)中輸送的隱秘性又是一個(gè)難題,要達(dá)到一定的保護(hù)水平,可以采用各種加密標(biāo)準(zhǔn)。然而不幸的是,市場并沒有很好的處理整個(gè)SOA安全事件,簡單的看很多與安全相關(guān)的web服務(wù)“標(biāo)準(zhǔn)”草案都是尚未成熟,考慮欠佳,并不真正的實(shí)用。
那么一般來說,我們針對SOA的安全能做些什么呢?需要的SOA網(wǎng)絡(luò)安全策略和許多的基于web的應(yīng)用程序是采用相同的策略的,他們采用的方式都可以歸結(jié)為創(chuàng)建一個(gè)虛擬局域網(wǎng)來保證服務(wù)器和客戶端達(dá)到交互,使用數(shù)字證書來建立SSL(secure socket layer)保護(hù)或者HTTPS;蛘咄ㄟ^在軟件或者硬件上部署防火墻基礎(chǔ)架構(gòu)來檢測通過SOA進(jìn)來的可疑請求。但是這只是構(gòu)建一個(gè)安全的通道,我們依舊不能保證數(shù)據(jù)不被竊取,所以,為了確保數(shù)據(jù)的安全性,我們需要對數(shù)據(jù)加密。針對SOA架構(gòu)來,說,就是對原始的XML數(shù)據(jù)進(jìn)行保護(hù)了,通常,我們采用XML加密和XML簽名來把安全加入到基于XML的數(shù)據(jù)中去。XML加密可以讓數(shù)據(jù)能夠在請求者和晌應(yīng)者之間以一種模糊的方式傳輸,這樣,即使數(shù)據(jù)受到竊取,信息也很難讀懂。而XML簽名,則是用來進(jìn)行XML文檔的篡改檢測的。它可以保證所傳輸?shù)臄?shù)據(jù)沒有收到篡改或者狀態(tài)沒有發(fā)生改變。至于具體的操作方式,限于篇幅。就不在這里詳細(xì)講解了。
盡管SOA產(chǎn)品和平臺已經(jīng)發(fā)展有一段時(shí)間了。但這僅僅意味著開始。相信SOA架構(gòu)在以后的一段時(shí)間內(nèi),仍然會有巨大的發(fā)展。但畢竟SOA架構(gòu)也還是存在一些問題,所以,對于用戶而言,究竟該選擇什么平臺或者什么產(chǎn)品,的確是應(yīng)該三思而行。
公司簡介 | 媒體優(yōu)勢 | 廣告服務(wù) | 客戶寄語 | DOIT歷程 | 誠聘英才 | 聯(lián)系我們 | 會員注冊 | 訂閱中心
Copyright © 2013 DOIT Media, All rights Reserved. 北京楚科信息技術(shù)有限公司 版權(quán)所有.