陳應權
摘 要:SOAP(SimpleObjectAccessProtocol,簡單對象訪問協(xié)議)主要是從信息服務角度提升性能和功能水平,通過分散和數(shù)據(jù)接口交換信息服務處理,可以保證信息服務符合資源定位的需求,提高客戶端和服務端信息服務能力。保證各項信息交換服務符合協(xié)議控制的要求。
關鍵詞:SOAP;信息服務;XML
中圖分類號:TP393
SOAP架構的底層是傳送協(xié)議,如HTTP和SMTP。采用和傳統(tǒng)客戶機/服務器模式的集中式共享不同的架構。SOAP模式在網(wǎng)絡中每個節(jié)點都是“對等”。這些數(shù)量巨大的節(jié)點共同構建了一個網(wǎng)絡環(huán)境(重疊網(wǎng)、網(wǎng)中網(wǎng)、覆蓋網(wǎng)),每個節(jié)點都能迅速查詢路由表,訪問任何一個節(jié)點,同時任何一個節(jié)點都能訪問此節(jié)點,也就是每個節(jié)點同時充當服務器和客戶端的角色。F載資源時,可以從多個節(jié)點并行下載數(shù)據(jù),不會有C/S結構的服務器端的瓶頸.而且節(jié)點越多下載資源的速度反而越快。
1 面向SOAP的信息服務架構設計
SOAP技術的一個核心問題就是資源定位,圍繞著資源定位算法誕生2種主要的SOAP架構,稱為結構化SOAP和非結構化SOAP架構。
1.1 非結構化SOAP
非結構化SOAP是指其中一臺計算機充當中心控制,負責響應所有接入計算機的資源定位請求,所有的資源位置信息都在這個中央服務器上,這時的SOAP并不是一個嚴格對等的結構。資源的分享需要通過中央服務器“路由”。但這有個缺陷就是當接入的計算機越多中心服務器的壓力就越犬,最大好處就是簡單,以及資源存儲的位置和網(wǎng)絡結構無關,這也是這種模式被稱為“非結構”的原因。這種結構是典型的資源分享方式。
1.2 結構化SOAP
SOAP結構化體系就是所有接入的計算機都處于對等的地位,也稱為純SOAP。相對于非結構的SOAP來說是沒有中心控制點。結構化SOAP有著復雜的資源定位算法,資源的定位和一個具體的Hash算法密切相關,各種不同的結構化SOAP其區(qū)別主要在于Hash算法不同,最為典型的Hash算法為Chord這類算法也叫DHT(DistributedHashTable),該算法廣泛應用于分布資源。
2 Web網(wǎng)絡結構設計
對于結構化SOAP只能通過Hash碼查找資源,不支持模糊查詢,每次查找聯(lián)動多個Node,查詢效率不如非結構SOAP高。網(wǎng)絡波動對結構SOAP的影響比較大,Node的加入和退出對覆蓋網(wǎng)路結構有改變,不能保證數(shù)據(jù)的安全。退出的Node有可能帶走部分數(shù)據(jù),加入Node可能需要移動數(shù)據(jù)。還有這2種SOAP體系不太適合存儲大尺寸數(shù)據(jù)文件,也沒有統(tǒng)一的存儲空間分配調度和管理。結構化SOAP沒有負載分擔。
雖然SOAP有其局限性,但相對于傳統(tǒng)C/S模式,SOAP思想的出現(xiàn)為軟件的開發(fā)帶來新的思路,SOAP最初主要用來在Internet上構建數(shù)據(jù)分享平臺,我們也可以利用其基本的構建分享平臺思想,構建新的存儲平臺。本文就是在某種意義上充分借鑒了非結構化SOAP的思想的基礎上,構建的一個數(shù)據(jù)接口交換文件系統(tǒng)。
不同組的存儲服務器之間不會相互通信,同組內的存儲服務器之間會相互連接進行文件同步。存儲服務器采用binlog文件記錄文件上傳、刪除等更新操作。binlog中只記錄文件名,不記錄文件內容。
文件同步只在同組內的存儲服務器之間進行,采用push方式,即源頭服務器同步給目標服務器。只有源頭數(shù)據(jù)才需要同步,備份數(shù)據(jù)并不需要再次同步,否則就構成環(huán)路了。有個例外,就是新增加一臺存儲服務器時,由已有的一臺存儲服務器將已有的所有數(shù)據(jù)(包括源頭數(shù)據(jù)和備份數(shù)據(jù))同步給該新增服務器。
存儲服務器中由專門的線程根據(jù)binlog進行文件同步。為了最大程度地避免相互影響以及出于系統(tǒng)簡潔性考慮,存儲服務器對組內除自己以外的每臺服務器都會啟動一個線程來進行文件同步。
3 可擴展標識語言select設計
select最早于1983年出現(xiàn)在4.2BSD中,它通過一個select()系統(tǒng)調用來監(jiān)視多個文件描述符的數(shù)組,當select()返回后,該數(shù)組中就緒的文件描述符便會被內核修改標志位,使得進程可以獲得這些文件描述符從而進行后續(xù)的讀寫操作。
select目前幾乎在所有的平臺上支持,其良好跨平臺支持也是它的一個優(yōu)點,事實上從現(xiàn)在看來,這也是它所剩不多的優(yōu)點之一。select的一個缺點在于單個進程能夠監(jiān)視的文件描述符的數(shù)量存在最大限制,在Linux上一般為1024,不過可以通過修改宏定義甚至重新編譯內核的方式提升這一限制。
另外,select()所維護的存儲大量文件描述符的數(shù)據(jù)結構,隨著文件描述符數(shù)量的增大,其復制的開銷也線性增長。同時,由于網(wǎng)絡響應時間的延遲使得大量TCP連接處于非活躍狀態(tài),但調用select()會對所有socket進行一次線性掃描,所以這也浪費了一定的開銷。
3.1 信息服務文件訪問模型設計優(yōu)化
一個系統(tǒng)的設計存在著很多的約束條件,系統(tǒng)運行的環(huán)境便是其中重要的約束條件之一。本系統(tǒng)主要是為廣大中、小型的電商網(wǎng)站考慮而設計,因此并不是運行在商用的、高性能的服務器上,而是運行于普通機器所組成的集群上以便于節(jié)省成本以及便于擴展。又因為本系統(tǒng)被設計為主要用作諸如圖片服務器等場合,因此雖然對大文件存儲同樣支持的非常好,但更加主要的還是用于存儲數(shù)量巨大的小型文件,并對此做出了特別的優(yōu)化。本系統(tǒng)主要應用的是“一次寫入多次取出”的文件訪問模型。一個文件一旦經上傳、寫入后,就不需要改變了。
另外,眾所周知大多數(shù)網(wǎng)站都需要存儲用戶上傳的文件,如圖片、視頻、電子文檔等。出于降低帶寬和存儲成本的考慮,網(wǎng)站通常都會限制用戶上傳的文件大小,例如圖片文件不能超過5兆字節(jié)、視頻文件不能超過100兆字節(jié)等。本系統(tǒng)不對文件進行分塊存儲,與支持文件分塊存儲的其它數(shù)據(jù)接口交換文件系統(tǒng)相比,更加簡潔高效,并且完全能滿足絕大多數(shù)互聯(lián)網(wǎng)應用的實際需要。
3.2 系統(tǒng)的技術方案
數(shù)據(jù)接口交換系統(tǒng)設計中有一個重要的目標,是以這樣的方式構建系統(tǒng):它可以從部分失效中自動恢復,而且不會嚴重的影響整體性能。特別是,當故障發(fā)生時,數(shù)據(jù)接口交換系統(tǒng)應該在進行恢復的同時繼續(xù)以可接受的方式進行操作,也就是說,它應該能容忍錯誤,在發(fā)生錯誤時某種程度上可以繼續(xù)操作。
由于本數(shù)據(jù)接口交換文件系統(tǒng)運行在由多臺普通的機器所組成的集群上[15],而普通機器一般相對商用高性能服務器來說更容易發(fā)生故障一些,比如操作系統(tǒng)存在的缺陷,人為的非法操作造成的錯誤或者磁盤、內存、網(wǎng)絡、意外斷電造成的問題等等。正因為如此,某些機器在某些時間可能是無法工作的,而一些機器發(fā)生故障后則可能不能恢復。因此,系統(tǒng)的設計必須滿足可用性、可靠性、安全性以及可維護性。
4 總結
客戶端和存儲服務器主動連接跟蹤服務器。存儲服務器主動向跟蹤服務器報告其狀態(tài)信息,包括磁盤剩余空間、文件同步狀況、文件上傳下載次數(shù)等統(tǒng)計信息。存儲服務器會連接集群中所有的跟蹤服務器,向他們報告自己的狀態(tài)。存儲服務器啟動一個單獨的線程來完成對一臺跟蹤服務器的連接和定時報告。需要說明的是,一個組包含的存儲服務器不是通過配置文件設定的,而是通過跟蹤服務器獲取到的。
參考文獻:
[1]孫健.單點登錄技術在數(shù)字化校園網(wǎng)中的應用[J].科技信息,2010(30).
[2]胡立春,武友新,張燁.SOAP環(huán)境下的統(tǒng)一用戶管理系統(tǒng)的研究與實現(xiàn)[J].計算機工程與設計,2007(04).
[3]杜淑琴.基于輕量目錄訪問協(xié)議和SOAP的統(tǒng)一認證框架設計[J].現(xiàn)代計算機,2006(02).
[4]薛宏智,王俊,張書杰.基于SOAP的企業(yè)訪問控制系統(tǒng)設計與實現(xiàn)[J].計算機與信息技術,2006(Z1).
[5]趙保翠,劉崗.基于SOAP的統(tǒng)一用戶管理系統(tǒng)的設計和實現(xiàn)[J].微電子學與計算機,2005(11).