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