- 相關(guān)推薦
移動(dòng)網(wǎng)絡(luò )適用數據增量同步實(shí)踐論文
反假貨幣宣傳系統是一套用于宣傳貨幣防偽知識、提高公眾反假貨幣水平和能力的金融設備,通過(guò)人機互動(dòng),以圖文和動(dòng)畫(huà)視頻相結合的表現形式進(jìn)行信息的展示。傳統的反假貨幣宣傳系統只包括工作站,工作站上大多采用Flash等技術(shù)進(jìn)行軟件開(kāi)發(fā),向公眾宣傳反假貨幣法律法規和貨幣防偽知識。軟件中的頁(yè)面與數據緊耦合,且所有信息均在出廠(chǎng)時(shí)初始化到工作站中,一般放置于各銀行的營(yíng)業(yè)廳內供公眾自由使用。工作人員只能在設備現場(chǎng)手動(dòng)更新,是一種離線(xiàn)式觸摸終端。新一代的反假貨幣宣傳系統結合了數據庫和移動(dòng)網(wǎng)絡(luò ),分為工作站和服務(wù)器兩個(gè)部分。工作站和服務(wù)器均利用數據庫有序管理各種數據,實(shí)現了數據與展示頁(yè)面的分離,為數據的靈活修改提供了可能;同時(shí)利用移動(dòng)網(wǎng)絡(luò )進(jìn)行服務(wù)器和工作站之間數據的實(shí)時(shí)同步,使服務(wù)器上的最新數據能夠盡快地同步到設備上,既能及時(shí)展示最新信息,避免過(guò)時(shí)的內容誤導公眾,又能減少工作人員現場(chǎng)作業(yè)的成本,是一種在線(xiàn)式觸摸終端。本文分析了新一代的反假貨幣宣傳系統在實(shí)際場(chǎng)景中采用移動(dòng)網(wǎng)絡(luò )進(jìn)行數據同步時(shí)的特點(diǎn),針對性地提出了一種基于版本號進(jìn)行管理的增量數據同步策略,并在dotNET平臺上利用WCF技術(shù)進(jìn)行了實(shí)現。經(jīng)過(guò)測試,該策略達到了最初的設計目標,并已在實(shí)際生產(chǎn)中使用。
1數據同步中需要解決的問(wèn)題
新一代的反假貨幣宣傳系統中的工作站放置于各銀行的營(yíng)業(yè)網(wǎng)點(diǎn)內,服務(wù)器放置于數據中心。各銀行的有線(xiàn)網(wǎng)均為銀行內部網(wǎng)絡(luò ),因此,工作站只能通過(guò)配備無(wú)線(xiàn)網(wǎng)卡,經(jīng)由電信運營(yíng)商提供的VPN網(wǎng)絡(luò ),與服務(wù)器進(jìn)行連接。采用移動(dòng)網(wǎng)絡(luò )進(jìn)行通信給我們的數據同步策略帶來(lái)了兩個(gè)挑戰:(1)在移動(dòng)網(wǎng)絡(luò )中,信號強度容易受到干擾,導致連接速度的不穩定,在一些信號較差的位置,甚至會(huì )出現大量超時(shí)丟包,出現網(wǎng)絡(luò )時(shí)斷時(shí)續的情況;诖,我們的策略中應提供斷點(diǎn)續傳的功能,最大限度保證傳輸的完整性。(2)電信運營(yíng)商大多采用按流量計費的方式,出于日常維護費用方面的考慮,我們的策略中應盡量減少數據包的大小。數據庫記錄可以轉化為SQL語(yǔ)句,經(jīng)過(guò)壓縮之后減少體積;資源文件本身難以進(jìn)一步壓縮,而且并不一定需要每次都進(jìn)行傳輸;诖,管理員應能夠自由指定是否更新資源文件,從而避免相同資源文件的重復傳輸。在實(shí)際應用中,工作站能夠主動(dòng)發(fā)起數據更新從而實(shí)現定時(shí)同步,服務(wù)器也能夠主動(dòng)發(fā)起對某些指定工作站的數據更新從而實(shí)現最新數據的及時(shí)推送。為此,我們在工作站和服務(wù)器兩部分設計了不同的服務(wù)供對方調用。
2SOA及WCF介紹
面向服務(wù)的體系結構(SOA,Service-OrientedArchitec-ture)是一個(gè)組件模型,它將應用程序的不同功能單元(也稱(chēng)為服務(wù))通過(guò)這些服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái)。接口是采用中立的方式進(jìn)行定義的,它應該獨立于實(shí)現服務(wù)的硬件平臺、操作系統和編程語(yǔ)言。這使得構建在各種各樣的系統中的服務(wù)可以使用一種統一和通用的方式進(jìn)行交互Windows通信開(kāi)發(fā)平臺(WCF,WindowsCommuni-cationFoundation)是微軟為構建面向服務(wù)的應用提供的分布式通信編程框架,是.NETFramework3.5的重要組成部分。使用該框架,開(kāi)發(fā)人員可以構建跨平臺、安全、可靠且支持事務(wù)處理的企業(yè)級互聯(lián)應用解決方案。WCF是微軟分布式應用程序開(kāi)發(fā)的集大成者,它整合了Net平臺下所有的和分布式系統有關(guān)的技術(shù),例如.NetRemoting、ASMX、WSE和MSMQ。以通信范圍而論,WCF可以跨進(jìn)程、跨機器、跨子網(wǎng)、企業(yè)網(wǎng)乃至于Internet;以宿主程序而論,WCF可以以ASP.NET、EXE、WPF、WindowsForms、NTService、COM+作為宿主。WCF可以支持的協(xié)議包括TCP、HTTP、跨進(jìn)程以及自定義,安全模式則包括SAML、Kerberos、X509、用戶(hù)/密碼、自定義等多種標準與模式。WCF支持大量的WebService標準,這些標準包括XML、XSD、SOAP、Xpath、WSDL等標準和規范,所以對于現有的標準,開(kāi)發(fā)人員能夠方便地進(jìn)行移植。同時(shí)WCF可以使用Attribute屬性進(jìn)行WCF應用程序配置,提高了WCF應用的靈活性。WCF遵循客戶(hù)端/服務(wù)器模式(C/S)在應用程序之間進(jìn)行通信,客戶(hù)端程序能夠通過(guò)服務(wù)器提供的EndPoint端直接訪(fǎng)問(wèn)服務(wù)。在WCF框架下,開(kāi)發(fā)基于SOA的分布式系統變得容易了,微軟將所有與此相關(guān)的技術(shù)要素都包含在內,掌握了WCF,就相當于掌握了叩開(kāi)SOA大門(mén)的鑰匙。
3數據增量同步策略的設計與實(shí)現
3.1版本定義
進(jìn)行增量更新的關(guān)鍵在于,如何標注服務(wù)器數據和工作站數據的當前狀態(tài),從而進(jìn)一步得知每次同步時(shí)所需傳輸的數據。在此,我們引入一個(gè)版本的概念,所謂版本是指某一時(shí)刻服務(wù)器所存儲的已確定的所有數據的集合。每一個(gè)增量更新包代表了以上一版本數據為基礎,經(jīng)過(guò)一系列修改之后形成下一版本數據,在這之間的數據變化,從而每個(gè)版本數據都可以看作是以前所有版本數據的疊加和最新修改之和,即版本版本新數據。工作站所維護的版本號和服務(wù)器所維護的版本號分別代表了其所存儲數據的當前狀態(tài),工作站在進(jìn)行數據更新時(shí),只需逐個(gè)下載增量更新包進(jìn)行更新,就可以確保最終與服務(wù)器的數據達到一致。數據庫作為系統存儲數據的核心,保存了所有的文本以及對資源文件的引用,因此我們?yōu)閿祿䦷熘械拿總(gè)表增加3個(gè)字段——“數據版本號”、“操作方式”和“同步更新標志”,以此記錄文本對應的版本信息,并間接記錄資源文件對應的版本信息。通過(guò)“數據版本號”,可以很容易地確定每個(gè)版本所包含的記錄(數據版本號小于等于指定版本號的記錄即為該版本中包含的記錄);通過(guò)“操作方式”,可以確定在更新時(shí)所對應的SQL語(yǔ)句;“同步更新標志”則表示在數據的變化過(guò)程中,資源文件是否有變化,是否需要傳輸至工作站。因為工作站在展示貨幣防偽信息時(shí),先讀取數據庫記錄,再由記錄上的內容確定資源文件,所以我們只需要標注記錄所在版本,即可間接標注資源文件的版本。
3.2管理員變動(dòng)數據
管理員對數據的變動(dòng)可分為3種:新增、修改、刪除。系統通過(guò)對記錄的數據版本號、操作方式、同步更新標志進(jìn)行不同標注,作為后續處理的基礎。(1)管理員新增數據時(shí),數據庫中將新增相應的記錄,文件系統中將新增相應的資源文件。此時(shí)數據庫記錄中的數據版本號為空,操作方式為A,同步更新標志為Y。(2)管理員修改數據時(shí),數據庫將保存修改后的數據,資源文件可能改變亦可能不改變(取決于管理員是否引入新的資源)。此時(shí)數據庫記錄中的數據版本號為空,操作方式為M,同步更新標志為Y或N。(3)管理員刪除數據時(shí),如果記錄為納入版本,即數據版本號為空時(shí),從數據庫直接刪除此記錄即可,無(wú)需與工作站同步;如果記錄已納入版本,即數據版本號不為空時(shí),數據庫并不立即清除數據和資源,而是將數據庫記錄中的數據版本號置空,操作方式置D,同步更新標志不變。
3.3生成新的版本
在管理員完成一系列操作之后,即可生成新的版本。在生成新版本時(shí),服務(wù)器遍歷每一張數據表,取出其中數據版本號為空的記錄,然后根據每條記錄中操作方式的不同,進(jìn)行不同的操作。之后,系統將把保存了所有SQL語(yǔ)句的文本文件、待打包列表中的指定的資源文件、待刪除列表統一打包為一個(gè)壓縮文件,并保存到系統的增量更新目錄下。生成新版本的算法如下:○1查詢(xún)已有版本,生成新的12位版本號!2對數據庫中每一張表,做以下○3至○4操作:對表中每一行數據版本號為空的記錄,根據操作方式的不同,做以下○4中操作:○4-○1操作方式為A,則生成完整的插入語(yǔ)句并保存到SQL文件,將資源文件鏈接放入待打包列表!4-○2操作方式為M,則生成完整的修改語(yǔ)句并保存到SQL文件,若同步更新標志為Y,則將資源文件鏈接放入待打包列表!4-○3操作方式為D,則生成刪除語(yǔ)句并保存到SQL文件,將資源文件鏈接放入待刪除列表,同時(shí)刪除數據庫中記錄以及相應的資源文件!5將SQL文件、待打包列表中的指定的資源文件、待刪除列表打包為壓縮文件,形成增量更新包,并標注版本號。
3.4增量更新流程
在新的版本生成之后,即可對工作站進(jìn)行更新。工作站主動(dòng)更新的過(guò)程可視作工作站從服務(wù)器下載,服務(wù)器主動(dòng)推送的過(guò)程可以視作服務(wù)器發(fā)送更新信號、工作站主動(dòng)更新兩部分,從而將整個(gè)更新流程的核心轉化為統一的工作站主動(dòng)下載,簡(jiǎn)化了系統所需的服務(wù)。另外,由于系統采用電信運營(yíng)商基于移動(dòng)網(wǎng)絡(luò )所提供的VPN網(wǎng)絡(luò ),工作站每次上網(wǎng)前需要進(jìn)行撥號以建立與移動(dòng)網(wǎng)絡(luò )的連接,而每次重新?lián)芴柡笏玫降腎P都不一樣,服務(wù)器主動(dòng)推送時(shí),又需要知道指定工作站的IP,所以我們額外設計了一系列服務(wù),實(shí)現在服務(wù)器上維護在線(xiàn)工作站IP信息的功能。工作站主動(dòng)更新數據時(shí),先通過(guò)CheckVersion服務(wù),得到服務(wù)器上的版本信息,然后將兩端的版本號進(jìn)行比對,從而判斷出是否有新的數據需要同步。在確定數據需要同步后,工作站通過(guò)Download服務(wù),逐個(gè)下載增量更新包,并在本地解壓、更新,同時(shí)在日志中記錄更新過(guò)程。在完成所有更新操作之后,工作站通過(guò)UpdateVersion回送本地的版本信息,以便在服務(wù)器確認更新操作的執行情況。服務(wù)器主動(dòng)推送數據時(shí),則由服務(wù)器通過(guò)Notify服務(wù),通知到工作站,然后由工作站完成以上一系列操作,直至更新成功或失敗。
4總結
本文分析了實(shí)際場(chǎng)景中采用移動(dòng)網(wǎng)絡(luò )進(jìn)行數據同步時(shí)的特點(diǎn),針對性地提出了一種基于版本號進(jìn)行管理的增量數據同步策略,并在dotNET平臺上利用WCF技術(shù)進(jìn)行了實(shí)現。經(jīng)過(guò)測試,該策略達到了最初的設計目標,并已在反假幣宣傳系統的實(shí)際生產(chǎn)中使用。策略的設計并不針對特定的業(yè)務(wù),因此本文所述的策略可應用于其它基于移動(dòng)網(wǎng)絡(luò )進(jìn)行增量數據同步的業(yè)務(wù)系統之中。
【移動(dòng)網(wǎng)絡(luò )適用數據增量同步實(shí)踐論文】相關(guān)文章:
大數據技術(shù)在移動(dòng)通信網(wǎng)絡(luò )優(yōu)化的運用論文06-09
移動(dòng)通信網(wǎng)絡(luò )優(yōu)化大數據分析論文09-22
數據挖掘技術(shù)在移動(dòng)通信網(wǎng)絡(luò )的應用07-05
大數據時(shí)代網(wǎng)絡(luò )教育論文09-12
大數據時(shí)代網(wǎng)絡(luò )信息安全探析論文10-06
基于Oracle數據庫的邏輯數據同步技術(shù)在實(shí)踐中的應用研究09-13
陜西文學(xué)精品移動(dòng)網(wǎng)絡(luò )論文09-10