摘 要:為解決檔案信息數(shù)據(jù)在服務(wù)器、Web客戶端、移動客戶端等不同平臺之間的數(shù)據(jù)傳輸問題,設(shè)計出能夠?qū)崿F(xiàn)高效、跨平臺數(shù)據(jù)傳輸?shù)哪P途哂兄匾饬x。從數(shù)據(jù)傳輸效率、安全、技術(shù)等方面對數(shù)據(jù)傳輸模型現(xiàn)狀進行研究,提出檔案信息共享平臺的數(shù)據(jù)傳輸模型需求與設(shè)計方式,采用基于WCF技術(shù)架構(gòu),使用NET技術(shù)進行跨平臺系統(tǒng)開發(fā)檔案信息共享平臺數(shù)據(jù)傳輸模型,使該模型運用于檔案信息共享平臺。通過對檔案信息共享平臺數(shù)據(jù)傳輸模型應(yīng)用效果進行評估,實踐架構(gòu)模型可滿足檔案信息共享平臺在不同平臺數(shù)據(jù)傳輸?shù)囊?,實現(xiàn)高效準確傳輸檔案信息數(shù)據(jù)的目的。
關(guān)鍵詞:數(shù)據(jù)傳輸;檔案信息;共享平臺;模型設(shè)計;WCF
0 引言
“檔案是有史以來最早產(chǎn)生的文獻之一,也是現(xiàn)代社會的核心信息資源的重要門類”[1],有效開發(fā)和合理利用檔案信息,不僅是社會技術(shù)進步的需要,更重要的是關(guān)系到檔案信息創(chuàng)新成果能否充分運用到社會生產(chǎn)中。伴隨著社會科技的發(fā)展,檔案信息共享平臺除了可以在傳統(tǒng)的Web平臺上進行信息資源共享,移動平臺的檔案信息共享也成為越來越重要的需求點,尤其是如何利用WCF技術(shù)進行不同平臺之間的信息資源傳輸與共享是當前研究的重點。本文的目的在于研究一款數(shù)據(jù)傳輸模型,使用該模型可以便捷地在服務(wù)器端、客戶端、移動終端之間進行數(shù)據(jù)交互,并實現(xiàn)數(shù)據(jù)傳輸?shù)陌踩咝А?/p>
1 數(shù)據(jù)傳輸模型研究現(xiàn)狀及意義
隨著移動互聯(lián)網(wǎng)技術(shù)的發(fā)展,用戶除了可以通過傳統(tǒng)的電腦進行檔案信息的研究外,還能夠隨時隨地通過移動設(shè)備接入檔案信息共享平臺進行研究[2]??缙脚_作為檔案信息的新特點,對數(shù)據(jù)傳輸安全與數(shù)據(jù)傳輸效率的要求較高。
1.1 數(shù)據(jù)傳輸效率。提高數(shù)據(jù)傳輸?shù)男?,主要包括兩個方面因素,一是取決于服務(wù)器端與客戶端的網(wǎng)絡(luò)帶寬;二是如何減少數(shù)據(jù)在傳輸過程中產(chǎn)生的信息。在減少數(shù)據(jù)傳輸產(chǎn)生的信息方面,一是控制未處理的信息包含在傳輸?shù)臄?shù)據(jù)中,二是對傳輸過程中的數(shù)據(jù)格式進行優(yōu)化,即同樣的信息在被客戶端接收后能夠無損進行識別,這是數(shù)據(jù)傳輸效率提升的關(guān)鍵所在。檔案信息共享平臺的數(shù)據(jù)在傳輸過程中目前可以采用的格式有FSV格式、XML格式、JSON格式。對于這三種格式的傳輸效率國內(nèi)外已有相關(guān)研究[3],其中XML已經(jīng)被業(yè)界廣泛地使用,其在數(shù)據(jù)傳輸過程中采用XMLHttp方式,而JSON才剛剛開始,其作為新生代的純文本數(shù)據(jù)格式,在Ajax 數(shù)據(jù)交換中有著得天獨厚的應(yīng)用優(yōu)勢。對于JSON數(shù)據(jù)格式比較簡單,易于讀寫,格式都是壓縮的,占用帶寬小,且支持多種語言,包括C、C#、Java、JavaScript、Perl、PHP和Python等服務(wù)器端語言,便于服務(wù)器端的解析。
1.2 數(shù)據(jù)傳輸安全。檔案信息共享平臺的數(shù)據(jù)在傳輸過程中需要加密處理,到達目標后需要進行解密處理,這就需要采用對稱加密算法對數(shù)據(jù)進行處理,數(shù)據(jù)傳輸?shù)陌踩攸c需要對適用于數(shù)據(jù)傳輸過程中的加密算法進行研究。在數(shù)據(jù)傳輸過程中利用對稱密碼技術(shù)[4]構(gòu)造安全的數(shù)據(jù)傳輸協(xié)議,以及復(fù)雜的密鑰分配,密鑰管理協(xié)議等[5]。在公鑰密碼算法優(yōu)化方面,優(yōu)化了傳統(tǒng)公鑰密碼算法中的模大數(shù)乘法和模大數(shù)的指數(shù)等基本數(shù)學運算,針對橢圓曲線密碼系統(tǒng)中的基本運算,同樣有類似的研究,采用點乘和點加的優(yōu)化[6]。
1.3 數(shù)據(jù)傳輸技術(shù)。檔案信息共享平臺的數(shù)據(jù)傳輸技術(shù)可以采用.NET技術(shù)實現(xiàn),其采用方式目前有以下幾種方式:Socket、.Net Remoting、WebService、WCF。如目前比較流行的騰訊QQ、銀行系統(tǒng)之間通訊對于Socket通訊應(yīng)用比較廣泛;再如前幾年比較火的SOA以及當前比較火的云計算之類的應(yīng)用在技術(shù)層面上采用的是WebService技術(shù)進行數(shù)據(jù)傳輸,對于企業(yè)內(nèi)部應(yīng)用.Net Remoting傳輸技術(shù)應(yīng)用比較廣泛。而現(xiàn)行的WCF技術(shù)對.Net Remoting、 WebService等的簡化、統(tǒng)一,在檔案信息共享平臺數(shù)據(jù)傳輸平臺上可以通過配置來切換不同的底層實現(xiàn)且較好地適應(yīng)外部環(huán)境的變化。
1.4 數(shù)據(jù)傳輸模型研究意義。檔案信息共享平臺的發(fā)展趨勢在于移動化、多平臺化,這就需要有一個能夠支持多平臺數(shù)據(jù)實時傳輸與信息更新的模型。這種模型研究將有利于探索支持跨平臺數(shù)據(jù)傳輸?shù)淖钚录夹g(shù),該技術(shù)能夠以統(tǒng)一的方式支持不同平臺進行數(shù)據(jù)交互,特別需要對移動平臺數(shù)據(jù)交互支持;同時有有利于探索最有效的數(shù)據(jù)傳輸方式,能夠有效地解決數(shù)據(jù)傳輸過程中的效率與安全瓶頸。
2 檔案信息共享平臺數(shù)據(jù)傳輸模型需求及其設(shè)計
通過對傳統(tǒng)的數(shù)據(jù)傳輸模型進行研究,其在數(shù)據(jù)傳輸?shù)拈_放性及安全性方面存在不足,對于移動互聯(lián)網(wǎng)時代的檔案信息共享平臺數(shù)據(jù)傳輸模型需要滿足高效、安全及支持跨平臺的需求,其中高效是數(shù)據(jù)在傳輸過程中采用最少的信息,安全是確保傳輸?shù)臄?shù)據(jù)在應(yīng)用程序級能夠采用適當?shù)募用芊绞讲槐环欠ㄓ脩艚厝〔⒎欠ɡ?。支持跨平臺是不同平臺可以采用相同的方式調(diào)用該模型進行數(shù)據(jù)請求與數(shù)據(jù)接收。因此,檔案信息共享平臺的數(shù)據(jù)傳輸模型的需求與設(shè)計方式要做到數(shù)據(jù)傳輸高效、傳輸過程安全和支持跨平臺傳輸。
2.1 數(shù)據(jù)傳輸高效。檔案信息共享平臺是開放給社會用戶及相關(guān)科技工作者使用的,就會存在多用戶的并發(fā)操作該平臺,這樣就涉及數(shù)據(jù)傳輸性能的問題。如果數(shù)據(jù)傳輸出現(xiàn)瓶頸,直接導(dǎo)致的后果是平臺不能正常使用。對于檔案信息共享平臺首先要解決的是傳輸效率問題,使用戶在操作的過程中能夠正常使用系統(tǒng),從系統(tǒng)開發(fā)與實踐的角度看,主要是減少平臺在數(shù)據(jù)交互中的傳輸?shù)臄?shù)據(jù)量。本數(shù)據(jù)模型在數(shù)據(jù)傳輸前會將需要傳輸?shù)臄?shù)據(jù)轉(zhuǎn)換成JSON(JavaScript Object Notation),這是一種輕量級的數(shù)據(jù)交換格式,基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一個子集[7],到達目標后將JSON數(shù)據(jù)再次轉(zhuǎn)換成需要操作的數(shù)據(jù)類型,設(shè)計流程如圖1所示:
2.2 傳輸過程安全。檔案信息共享平臺在互聯(lián)網(wǎng)上是一個開放的平臺,涉及的數(shù)據(jù)包含了用戶的私人信息,這部分信息應(yīng)該是不被明文傳輸,需要將原始信息進行加密處理,即需要達到即使傳輸?shù)臄?shù)據(jù)被非法獲取也不能被正常解密。為保證信息在傳輸過程中的安全,模型采用動態(tài)GUID(Globally Unique Identifier)作為密鑰進行加密的方式處理,動態(tài)GUID為全局唯一標識符。在每個用戶的賬戶通過審核后,會為其自動分配一個GUID,用戶在后繼的數(shù)據(jù)請求中,模型會自動將用戶的GUID作為密鑰進行信息傳輸,在數(shù)據(jù)達到用戶端將采用用戶自帶的GUID作為密鑰進行數(shù)據(jù)解密操作,設(shè)計流程如圖2所示:
2.3 支持跨平臺傳輸。移動互聯(lián)網(wǎng)的發(fā)展使得數(shù)據(jù)傳輸不局限于傳統(tǒng)的PC之間進行,同時需要數(shù)據(jù)傳輸能夠?qū)崟r支持移動客戶端設(shè)備。這就要求平臺的數(shù)據(jù)模型需要支持不同的平臺,即實現(xiàn)跨平臺的需求。要實現(xiàn)數(shù)據(jù)在不同平臺共享,就需要一個支持跨平臺數(shù)據(jù)通信的應(yīng)用程序框架,比較流行的方式有SOA的架構(gòu)模式[8],檔案信息共享平臺數(shù)據(jù)傳輸模型采用微軟的WCF(Windows Communication Foundation)服務(wù)作為中間的介質(zhì),這是因為WCF技術(shù)支持多種通信協(xié)議Http/Https 、Remoting、命名管道、TCP/UDP、MSMQ、對等網(wǎng)、消息可達性、事務(wù)流等[9],在開發(fā)移動客戶端上具有兩個顯著優(yōu)點:一是向下兼容;二是安全性高。WCF技術(shù)整合了原有的windows通訊的.net Remoting,WebService,Socket的機制,并融合有Http和Ftp的相關(guān)技術(shù),檔案信息共享平臺所有的數(shù)據(jù)的請求經(jīng)過WCF服務(wù)進行,不同平臺的信息經(jīng)過WCF服務(wù)的轉(zhuǎn)換可以到達相同的平臺或者不同的平臺,通過合理的配置,使該數(shù)據(jù)傳輸模型在不同平臺之間自由進行數(shù)據(jù)傳輸與數(shù)據(jù)轉(zhuǎn)換,數(shù)據(jù)請求流程如圖3所示:
3 檔案信息共享平臺數(shù)據(jù)傳輸模型實現(xiàn)
檔案信息共享平臺數(shù)據(jù)傳輸模型采用基于WCF技術(shù)架構(gòu),使用.NET技術(shù)進行跨平臺系統(tǒng)開發(fā),SQL Server2008作為后臺數(shù)據(jù)庫。要使數(shù)據(jù)傳輸模型達到高效、安全及支持跨平臺的要求,在WCF服務(wù)具體的相關(guān)傳輸模型上需要設(shè)計相關(guān)接口,供數(shù)據(jù)傳輸模型中具體的數(shù)據(jù)操作與訪問,為了使數(shù)據(jù)傳輸模型具有安全高效的能力,還需要設(shè)計部分通用的過程,其中包括數(shù)據(jù)轉(zhuǎn)換(JSON)、安全、通用數(shù)據(jù)操作。在此基礎(chǔ)上,還需要考慮模型中的文件及圖片信息的處理,最后需要在該模型具體實現(xiàn)上設(shè)計一個對外的WCF服務(wù),該服務(wù)的使用需要經(jīng)過身份驗證。
3.1 數(shù)據(jù)傳輸模型的核心架構(gòu)。數(shù)據(jù)傳輸模型包含三個部分:數(shù)據(jù)契約、服務(wù)契約、服務(wù)接口實現(xiàn)。為了實現(xiàn)開發(fā)的可擴展性與獨立性,將這三個部分分別設(shè)為三個具體的項目,包括服務(wù)數(shù)據(jù)契約項目,該項目主要定義數(shù)據(jù)操作及數(shù)據(jù)傳輸?shù)幕締卧环?wù)契約項目,該項目預(yù)先定義模型相關(guān)方法的名稱及參數(shù),使不同的平臺調(diào)用服務(wù)采用相同的定義規(guī)則;服務(wù)實現(xiàn)項目,該項目依賴于服務(wù)數(shù)據(jù)契約與服務(wù)契約,主要職責為實現(xiàn)具體傳輸?shù)倪壿?,及根?jù)傳入的服務(wù)及參數(shù),經(jīng)過邏輯處理傳出用戶需要的數(shù)據(jù),最終通過服務(wù)提供給外界平臺使用。數(shù)據(jù)傳輸模型采用基于WCF技術(shù)的架構(gòu),在實際的應(yīng)用中根據(jù)用戶的實際需求,向三個項目中添加不同的實現(xiàn),這樣也可以做到項目的分工,不同角色的人員維護不同的項目,具體的項目之間的關(guān)系如圖4所示:
3.2 數(shù)據(jù)傳輸模型中的通用方法工程。正如數(shù)據(jù)傳輸模型核心架構(gòu)所示,為了更好地重用相關(guān)具體操作,對常用的功能與傳輸模型的特色部分需要封裝。這部分主要包含兩個項目:數(shù)據(jù)訪問與操作工程、通用方法工程。對于數(shù)據(jù)訪問與操作工程,為了支持未來的數(shù)據(jù)庫的可擴展,采用抽象工廠的模式,暫時實現(xiàn)了支持SQL Server數(shù)據(jù)庫的訪問與操作的相關(guān)方法,在實際的模型調(diào)用中將根據(jù)配置文件動態(tài)調(diào)用具體的數(shù)據(jù)庫方法;對于通用方法工程中,數(shù)據(jù)傳輸?shù)姆绞脚c加密處理為該工程的核心,在實際的數(shù)據(jù)傳輸中,需要將需要傳輸?shù)男畔⑻幚沓蒍SON格式,這就包含了生成與解析JSON字符串的通用方法,涉及用戶隱私信息的部分需要進行加密傳輸,以確保數(shù)據(jù)傳輸?shù)陌踩?,在具體實現(xiàn)上在每個方法的參數(shù)上加上了一個GUID標簽,根據(jù)標簽驗證服務(wù)訪問的合法性與內(nèi)容加密的證據(jù),具體的是安全實現(xiàn)流程如圖5所示:
3.3 數(shù)據(jù)傳輸模型中的WCF實現(xiàn)方式。在數(shù)據(jù)傳輸模型中,核心代碼包含接口定義與接口實現(xiàn),在實際的開發(fā)中需要對代碼的實現(xiàn)進行版本控制,以便于追溯代碼不同版本,本模型的開發(fā)采用了Visual Source Safe 2005作為版本控制工具,每次新功能開發(fā)開始需要從版本控制工具中將最新的代碼簽出進行開發(fā),開發(fā)完成編譯無誤后,再將代碼加上注釋簽入到版本控制工具。
3.4 數(shù)據(jù)傳輸模型中的WCF服務(wù)發(fā)布。在傳輸模型相關(guān)功能的開發(fā)完成之后,需要將服務(wù)發(fā)布到互聯(lián)網(wǎng)上才能真正實現(xiàn)跨平臺的信息傳輸服務(wù)。檔案信息共享平臺模型的發(fā)布服務(wù)每個接口提供一個服務(wù)地址,也就是需要為每個接口實現(xiàn)配置*.SVC文件,在WCF服務(wù)配置中采用微軟的IIS7作為傳輸模型的核心服務(wù)器。為了便于服務(wù)的調(diào)用,還需要一個固定的IP地址作為數(shù)據(jù)模型的訪問入口,為了使傳輸模型的平臺管理服務(wù)不暴露于公共的環(huán)境,需要對服務(wù)的使用范圍在服務(wù)器層面進行限定。
4 檔案信息共享平臺數(shù)據(jù)傳輸模型應(yīng)用效果評估
在檔案信息共享平臺的數(shù)據(jù)模型實現(xiàn)之后,通過不同的平臺進行調(diào)用并采用HttpWatch來監(jiān)控數(shù)據(jù)傳輸過程中的信息,來確認本模型是否達到以下目標:不同平臺可以調(diào)用本平臺的服務(wù)、論證用戶在數(shù)據(jù)傳輸過程中是加密的JSON數(shù)據(jù)。
4.1 數(shù)據(jù)傳輸模型跨平臺應(yīng)用效果評估。數(shù)據(jù)傳輸模型跨平臺應(yīng)用效果評估采用傳統(tǒng)的服務(wù)器、移動客戶端模擬器作為介質(zhì),其中對于移動客戶端模擬器采用蘋果的IOS系統(tǒng),具體的流程為在Web開發(fā)的項目與移動客戶端項目通過發(fā)布的WCF服務(wù)地址添加相同服務(wù),并運用WCF服務(wù)實現(xiàn)用戶的注冊與登錄功能,在Web上注冊一個用戶賬戶,然后在IOS模擬器上使用在Web平臺上注冊的賬戶進行登錄,采用該模型可以順利實現(xiàn)不同平臺之間的數(shù)據(jù)傳輸。
4.2 數(shù)據(jù)傳輸模型安全及性能效果評估。數(shù)據(jù)傳輸模型的安全及性能效果評估采用HttpWatch來分析數(shù)據(jù)傳輸過程中的數(shù)據(jù)變化情況,具體的流程為執(zhí)行一次獲取指定條件的檔案信息作者信息數(shù)據(jù)請求,查看在數(shù)據(jù)請求中包含了哪些信息,在數(shù)據(jù)返回給用戶是以何形式來展現(xiàn),其中對于檔案信息返回結(jié)果數(shù)據(jù)的聯(lián)系方式信息部分是采用加密的方式處理,通過該方式確認該模型能夠達到傳輸需求,圖6為監(jiān)控的采用該數(shù)據(jù)傳輸模型的信息交互情況:
通過圖6發(fā)現(xiàn),①為數(shù)據(jù)請求的條件,兩次請求輸入的條件是一樣的,但是輸入條件的時間點不一樣,是兩次不同的登錄,由于每次登錄產(chǎn)生的動態(tài)GUID是會變化的,所以相同的請求會根據(jù)用戶的登錄信息產(chǎn)生動態(tài)的加密信息,這樣可以確保加密信息只能被合法用戶識別,將保證檔案信息數(shù)據(jù)的高效傳輸及其傳輸過程中的安全。
5 總結(jié)
檔案信息共享平臺設(shè)計了從數(shù)據(jù)請求、傳輸數(shù)據(jù)加工到數(shù)據(jù)接收處理為一體的平臺數(shù)據(jù)傳輸模型。與現(xiàn)有的數(shù)據(jù)傳輸模型相比,該平臺建立了一個具有跨平臺能力的數(shù)據(jù)傳輸模型,在實際的生產(chǎn)中具有較廣的應(yīng)用。模型在具有跨平臺傳輸?shù)哪芰A(chǔ)上,首先將傳輸?shù)膬?nèi)容進行獨特的用戶隨機GUID方式加密,確保了信息傳輸?shù)陌踩?,其次將?shù)據(jù)傳輸?shù)母袷睫D(zhuǎn)換處理為JSON格式,使傳輸?shù)臄?shù)據(jù)量達到最精簡,最后將WCF技術(shù)引入到整個傳輸模型,使該模型具有了跨平臺的能力。但采用該數(shù)據(jù)傳輸模型也存在著一些缺點,主要是需要增加系統(tǒng)實現(xiàn)的開發(fā)與后期的維護成本,對于系統(tǒng)需求本身比較簡單的平臺不適宜采用該模型進行數(shù)據(jù)傳輸。實踐表明,該平臺模型能夠有效地滿足檔案信息共享平臺未來不斷擴展的數(shù)據(jù)傳輸需求。
參考文獻:
[1]陳兆祦,和寶榮,王英瑋.檔案管理學基礎(chǔ)(第三版)[J] .北京:中國人民大學,2005:10
[2]卞咸杰. 基于WCF技術(shù)的科技論文共享平臺架構(gòu)研究[J].情報科學,2015(1):100~104.
[3]Ramon Lawrence.The space efficiency of XML[J].Information and Software Technology,2004,46(4):753~759.
[4]毛黎華.基于云計算用戶數(shù)據(jù)傳輸與存儲的安全策略研究[J].電子技術(shù)與軟件工程,2014(13):234.
[5]李志永.移動互聯(lián)網(wǎng)數(shù)據(jù)傳輸安全機制研究與設(shè)計[D].南京航空航天大學,2010:8~9.
[6]Cohen H,Miyaji A,Ono T.Efficient elliptic curve exponentiation using mixed coordinates [M].Lecture Notes in Computer Science,Heidelberg:Springer Berlin,1998:51~65.
[7]董偉,呂同斌.RFID技術(shù)和移動互聯(lián)網(wǎng)在考務(wù)系統(tǒng)中的應(yīng)用與實現(xiàn)[J].電腦知識與技術(shù),2014(2):281~283.
[8]王先平,張永芬.基于SOA 架構(gòu)的分布式聚類算法的Web服務(wù)模型研究[J].數(shù)字技術(shù)與應(yīng)用,2014(4):136~137.
[9]Kola Siva Tharun. ADVANTAGES OF WCF OVER WEB SERVICES. International Journal of Computer Science and Mobile Computing [J].2013(4):340~345.