国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

移動(dòng)網(wǎng)絡(luò)適用的數(shù)據(jù)增量同步策略研究與實(shí)現(xiàn)

2015-07-25 06:52:26劉捷龐冬梅
微型電腦應(yīng)用 2015年11期
關(guān)鍵詞:版本號(hào)增量工作站

劉捷,龐冬梅

0 引言

反假貨幣宣傳系統(tǒng)是一套用于宣傳貨幣防偽知識(shí)、提高公眾反假貨幣水平和能力的金融設(shè)備,通過(guò)人機(jī)互動(dòng),以圖文和動(dòng)畫視頻相結(jié)合的表現(xiàn)形式進(jìn)行信息的展示。

傳統(tǒng)的反假貨幣宣傳系統(tǒng)只包括工作站,工作站上大多采用Flash等技術(shù)進(jìn)行軟件開(kāi)發(fā),向公眾宣傳反假貨幣法律法規(guī)和貨幣防偽知識(shí)。軟件中的頁(yè)面與數(shù)據(jù)緊耦合,且所有信息均在出廠時(shí)初始化到工作站中,一般放置于各銀行的營(yíng)業(yè)廳內(nèi)供公眾自由使用。工作人員只能在設(shè)備現(xiàn)場(chǎng)手動(dòng)更新,是一種離線式觸摸終端。新一代的反假貨幣宣傳系統(tǒng)結(jié)合了數(shù)據(jù)庫(kù)和移動(dòng)網(wǎng)絡(luò),分為工作站和服務(wù)器兩個(gè)部分。工作站和服務(wù)器均利用數(shù)據(jù)庫(kù)有序管理各種數(shù)據(jù),實(shí)現(xiàn)了數(shù)據(jù)與展示頁(yè)面的分離,為數(shù)據(jù)的靈活修改提供了可能;同時(shí)利用移動(dòng)網(wǎng)絡(luò)進(jìn)行服務(wù)器和工作站之間數(shù)據(jù)的實(shí)時(shí)同步,使服務(wù)器上的最新數(shù)據(jù)能夠盡快地同步到設(shè)備上,既能及時(shí)展示最新信息,避免過(guò)時(shí)的內(nèi)容誤導(dǎo)公眾,又能減少工作人員現(xiàn)場(chǎng)作業(yè)的成本,是一種在線式觸摸終端。

本文分析了新一代的反假貨幣宣傳系統(tǒng)在實(shí)際場(chǎng)景中采用移動(dòng)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)同步時(shí)的特點(diǎn),針對(duì)性地提出了一種基于版本號(hào)進(jìn)行管理的增量數(shù)據(jù)同步策略,并在dotNET平臺(tái)上利用WCF技術(shù)進(jìn)行了實(shí)現(xiàn)。經(jīng)過(guò)測(cè)試,該策略達(dá)到了最初的設(shè)計(jì)目標(biāo),并已在實(shí)際生產(chǎn)中使用。

1 數(shù)據(jù)同步中需要解決的問(wèn)題

新一代的反假貨幣宣傳系統(tǒng)中的工作站放置于各銀行的營(yíng)業(yè)網(wǎng)點(diǎn)內(nèi),服務(wù)器放置于數(shù)據(jù)中心。各銀行的有線網(wǎng)均為銀行內(nèi)部網(wǎng)絡(luò),因此,工作站只能通過(guò)配備無(wú)線網(wǎng)卡,經(jīng)由電信運(yùn)營(yíng)商提供的VPN網(wǎng)絡(luò),與服務(wù)器進(jìn)行連接。系統(tǒng)結(jié)構(gòu)圖如圖1所示:

圖1 系統(tǒng)結(jié)構(gòu)圖

圖1系統(tǒng)中的數(shù)據(jù)包括文本、圖片、音頻和視頻,其中文本存儲(chǔ)在數(shù)據(jù)庫(kù),圖片、音頻和視頻存儲(chǔ)等資源文件在文件系統(tǒng),在進(jìn)行數(shù)據(jù)同步時(shí),需要將關(guān)聯(lián)的資源整體傳輸,否則會(huì)導(dǎo)致所傳輸?shù)男畔⒉煌暾鵁o(wú)法展示。

采用移動(dòng)網(wǎng)絡(luò)進(jìn)行通信給我們的數(shù)據(jù)同步策略帶來(lái)了兩個(gè)挑戰(zhàn):

(1)在移動(dòng)網(wǎng)絡(luò)中,信號(hào)強(qiáng)度容易受到干擾,導(dǎo)致連接速度的不穩(wěn)定,在一些信號(hào)較差的位置,甚至?xí)霈F(xiàn)大量超時(shí)丟包,出現(xiàn)網(wǎng)絡(luò)時(shí)斷時(shí)續(xù)的情況。基于此,我們的策略中應(yīng)提供斷點(diǎn)續(xù)傳的功能,最大限度保證傳輸?shù)耐暾浴?/p>

(2)電信運(yùn)營(yíng)商大多采用按流量計(jì)費(fèi)的方式,出于日常維護(hù)費(fèi)用方面的考慮,我們的策略中應(yīng)盡量減少數(shù)據(jù)包的大小。數(shù)據(jù)庫(kù)記錄可以轉(zhuǎn)化為SQL語(yǔ)句,經(jīng)過(guò)壓縮之后減少體積;資源文件本身難以進(jìn)一步壓縮,而且并不一定需要每次都進(jìn)行傳輸?;诖?,管理員應(yīng)能夠自由指定是否更新資源文件,從而避免相同資源文件的重復(fù)傳輸。

在實(shí)際應(yīng)用中,工作站能夠主動(dòng)發(fā)起數(shù)據(jù)更新從而實(shí)現(xiàn)定時(shí)同步,服務(wù)器也能夠主動(dòng)發(fā)起對(duì)某些指定工作站的數(shù)據(jù)更新從而實(shí)現(xiàn)最新數(shù)據(jù)的及時(shí)推送。為此,我們?cè)诠ぷ髡竞头?wù)器兩部分設(shè)計(jì)了不同的服務(wù)供對(duì)方調(diào)用。

2 SOA及WCF介紹

面向服務(wù)的體系結(jié)構(gòu)(SOA,Service-Oriented Architec-ture)是一個(gè)組件模型,它將應(yīng)用程序的不同功能單元(也稱為服務(wù))通過(guò)這些服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái)。接口是采用中立的方式進(jìn)行定義的,它應(yīng)該獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺(tái)、操作系統(tǒng)和編程語(yǔ)言。這使得構(gòu)建在各種各樣的系統(tǒng)中的服務(wù)可以使用一種統(tǒng)一和通用的方式進(jìn)行交互

Windows 通信開(kāi)發(fā)平臺(tái)(WCF, Windows Communi-cation Foundation)是微軟為構(gòu)建面向服務(wù)的應(yīng)用提供的分布式通信編程框架,是.NET Framework 3.5的重要組成部分。使用該框架,開(kāi)發(fā)人員可以構(gòu)建跨平臺(tái)、安全、可靠且支持事務(wù)處理的企業(yè)級(jí)互聯(lián)應(yīng)用解決方案。WCF是微軟分布式應(yīng)用程序開(kāi)發(fā)的集大成者,它整合了Net平臺(tái)下所有的和分布式系統(tǒng)有關(guān)的技術(shù),例如.Net Remoting、ASMX、WSE和MSMQ。

以通信范圍而論,WCF可以跨進(jìn)程、跨機(jī)器、跨子網(wǎng)、企業(yè)網(wǎng)乃至于 Internet;以宿主程序而論,WCF可以以ASP.NET、EXE、WPF、Windows Forms、NT Service、COM+作為宿主。WCF可以支持的協(xié)議包括TCP、HTTP、跨進(jìn)程以及自定義,安全模式則包括SAML、Kerberos、X509、用戶/密碼、自定義等多種標(biāo)準(zhǔn)與模式。

WCF支持大量的Web Service標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)包括XML、XSD、SOAP、Xpath、WSDL等標(biāo)準(zhǔn)和規(guī)范,所以對(duì)于現(xiàn)有的標(biāo)準(zhǔn),開(kāi)發(fā)人員能夠方便地進(jìn)行移植。同時(shí)WCF可以使用Attribute屬性進(jìn)行WCF應(yīng)用程序配置,提高了WCF應(yīng)用的靈活性。WCF遵循客戶端/服務(wù)器模式(C/S)在應(yīng)用程序之間進(jìn)行通信,客戶端程序能夠通過(guò)服務(wù)器提供的EndPoint端直接訪問(wèn)服務(wù)。在WCF框架下,開(kāi)發(fā)基于SOA的分布式系統(tǒng)變得容易了,微軟將所有與此相關(guān)的技術(shù)要素都包含在內(nèi),掌握了WCF,就相當(dāng)于掌握了叩開(kāi)SOA大門的鑰匙。

3 數(shù)據(jù)增量同步策略的設(shè)計(jì)與實(shí)現(xiàn)

3.1 版本定義

進(jìn)行增量更新的關(guān)鍵在于,如何標(biāo)注服務(wù)器數(shù)據(jù)和工作站數(shù)據(jù)的當(dāng)前狀態(tài),從而進(jìn)一步得知每次同步時(shí)所需傳輸?shù)臄?shù)據(jù)。在此,我們引入一個(gè)版本的概念,所謂版本是指某一時(shí)刻服務(wù)器所存儲(chǔ)的已確定的所有數(shù)據(jù)的集合。每一個(gè)增量更新包代表了以上一版本數(shù)據(jù)為基礎(chǔ),經(jīng)過(guò)一系列修改之后形成下一版本數(shù)據(jù),在這之間的數(shù)據(jù)變化,從而每個(gè)版本數(shù)據(jù)都可以看作是以前所有版本數(shù)據(jù)的疊加和最新修改之和,即版本n+1=版本k+新數(shù)據(jù)。

工作站所維護(hù)的版本號(hào)和服務(wù)器所維護(hù)的版本號(hào)分別代表了其所存儲(chǔ)數(shù)據(jù)的當(dāng)前狀態(tài),工作站在進(jìn)行數(shù)據(jù)更新時(shí),只需逐個(gè)下載增量更新包進(jìn)行更新,就可以確保最終與服務(wù)器的數(shù)據(jù)達(dá)到一致。

數(shù)據(jù)庫(kù)作為系統(tǒng)存儲(chǔ)數(shù)據(jù)的核心,保存了所有的文本以及對(duì)資源文件的引用,因此我們?yōu)閿?shù)據(jù)庫(kù)中的每個(gè)表增加3個(gè)字段——“數(shù)據(jù)版本號(hào)”、“操作方式”和“同步更新標(biāo)志”,以此記錄文本對(duì)應(yīng)的版本信息,并間接記錄資源文件對(duì)應(yīng)的版本信息。通過(guò)“數(shù)據(jù)版本號(hào)”,可以很容易地確定每個(gè)版本所包含的記錄(數(shù)據(jù)版本號(hào)小于等于指定版本號(hào)的記錄即為該版本中包含的記錄);通過(guò)“操作方式”,可以確定在更新時(shí)所對(duì)應(yīng)的SQL語(yǔ)句;“同步更新標(biāo)志”則表示在數(shù)據(jù)的變化過(guò)程中,資源文件是否有變化,是否需要傳輸至工作站。因?yàn)楣ぷ髡驹谡故矩泿欧纻涡畔r(shí),先讀取數(shù)據(jù)庫(kù)記錄,再由記錄上的內(nèi)容確定資源文件,所以我們只需要標(biāo)注記錄所在版本,即可間接標(biāo)注資源文件的版本。

3.2 管理員變動(dòng)數(shù)據(jù)

管理員對(duì)數(shù)據(jù)的變動(dòng)可分為3種:新增、修改、刪除。系統(tǒng)通過(guò)對(duì)記錄的數(shù)據(jù)版本號(hào)、操作方式、同步更新標(biāo)志進(jìn)行不同標(biāo)注,作為后續(xù)處理的基礎(chǔ),如表1所示:

表1 對(duì)數(shù)據(jù)的標(biāo)注

(1)管理員新增數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)中將新增相應(yīng)的記錄,文件系統(tǒng)中將新增相應(yīng)的資源文件。此時(shí)數(shù)據(jù)庫(kù)記錄中的數(shù)據(jù)版本號(hào)為空,操作方式為A,同步更新標(biāo)志為Y。

(2)管理員修改數(shù)據(jù)時(shí),數(shù)據(jù)庫(kù)將保存修改后的數(shù)據(jù),資源文件可能改變亦可能不改變(取決于管理員是否引入新的資源)。此時(shí)數(shù)據(jù)庫(kù)記錄中的數(shù)據(jù)版本號(hào)為空,操作方式為M,同步更新標(biāo)志為Y或N。

(3)管理員刪除數(shù)據(jù)時(shí),如果記錄為納入版本,即數(shù)據(jù)版本號(hào)為空時(shí),從數(shù)據(jù)庫(kù)直接刪除此記錄即可,無(wú)需與工作站同步;如果記錄已納入版本,即數(shù)據(jù)版本號(hào)不為空時(shí),數(shù)據(jù)庫(kù)并不立即清除數(shù)據(jù)和資源,而是將數(shù)據(jù)庫(kù)記錄中的數(shù)據(jù)版本號(hào)置空,操作方式置D,同步更新標(biāo)志不變。

3.3 生成新的版本

在管理員完成一系列操作之后,即可生成新的版本。在生成新版本時(shí),服務(wù)器遍歷每一張數(shù)據(jù)表,取出其中數(shù)據(jù)版本號(hào)為空的記錄,然后根據(jù)每條記錄中操作方式的不同,進(jìn)行不同的操作。之后,系統(tǒng)將把保存了所有 SQL語(yǔ)句的文本文件、待打包列表中的指定的資源文件、待刪除列表統(tǒng)一打包為一個(gè)壓縮文件,并保存到系統(tǒng)的增量更新目錄下。

生成新版本的算法如下:

①查詢已有版本,生成新的12位版本號(hào)。

②對(duì)數(shù)據(jù)庫(kù)中每一張表,做以下③至④操作:

對(duì)表中每一行數(shù)據(jù)版本號(hào)為空的記錄,根據(jù)操作方式的不同,做以下④中操作:

④-①操作方式為 A,則生成完整的插入語(yǔ)句并保存到SQL文件,將資源文件鏈接放入待打包列表。

④-②操作方式為 M,則生成完整的修改語(yǔ)句并保存到SQL文件,若同步更新標(biāo)志為Y,則將資源文件鏈接放入待打包列表。

④-③操作方式為D,則生成刪除語(yǔ)句并保存到SQL文件,將資源文件鏈接放入待刪除列表,同時(shí)刪除數(shù)據(jù)庫(kù)中記錄以及相應(yīng)的資源文件。

⑤將SQL文件、待打包列表中的指定的資源文件、待刪除列表打包為壓縮文件,形成增量更新包,并標(biāo)注版本號(hào)。

3.4 增量更新流程

在新的版本生成之后,即可對(duì)工作站進(jìn)行更新。工作站主動(dòng)更新的過(guò)程可視作工作站從服務(wù)器下載,服務(wù)器主動(dòng)推送的過(guò)程可以視作服務(wù)器發(fā)送更新信號(hào)、工作站主動(dòng)更新兩部分,從而將整個(gè)更新流程的核心轉(zhuǎn)化為統(tǒng)一的工作站主動(dòng)下載,簡(jiǎn)化了系統(tǒng)所需的服務(wù)。

另外,由于系統(tǒng)采用電信運(yùn)營(yíng)商基于移動(dòng)網(wǎng)絡(luò)所提供的VPN網(wǎng)絡(luò),工作站每次上網(wǎng)前需要進(jìn)行撥號(hào)以建立與移動(dòng)網(wǎng)絡(luò)的連接,而每次重新?lián)芴?hào)后所得到的IP都不一樣,服務(wù)器主動(dòng)推送時(shí),又需要知道指定工作站的IP,所以我們額外設(shè)計(jì)了一系列服務(wù),實(shí)現(xiàn)在服務(wù)器上維護(hù)在線工作站 IP信息的功能。工作站和服務(wù)器所提供的服務(wù)如表2、表3所示:

表2 工作站所提供的服務(wù)

表3 服務(wù)器所提供的服務(wù)

工作站主動(dòng)更新數(shù)據(jù)時(shí),先通過(guò)CheckVersion服務(wù),得到服務(wù)器上的版本信息,然后將兩端的版本號(hào)進(jìn)行比對(duì),從而判斷出是否有新的數(shù)據(jù)需要同步。在確定數(shù)據(jù)需要同步后,工作站通過(guò)Download服務(wù),逐個(gè)下載增量更新包,并在本地解壓、更新,同時(shí)在日志中記錄更新過(guò)程。在完成所有更新操作之后,工作站通過(guò)UpdateVersion回送本地的版本信息,以便在服務(wù)器確認(rèn)更新操作的執(zhí)行情況。

服務(wù)器主動(dòng)推送數(shù)據(jù)時(shí),則由服務(wù)器通過(guò)Notify服務(wù),通知到工作站,然后由工作站完成以上一系列操作,直至更新成功或失敗。

增量更新的序列圖如圖2所示:

圖2 增量更新序列圖

4 總結(jié)

本文分析了實(shí)際場(chǎng)景中采用移動(dòng)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)同步時(shí)的特點(diǎn),針對(duì)性地提出了一種基于版本號(hào)進(jìn)行管理的增量數(shù)據(jù)同步策略,并在dotNET平臺(tái)上利用WCF技術(shù)進(jìn)行了實(shí)現(xiàn)。經(jīng)過(guò)測(cè)試,該策略達(dá)到了最初的設(shè)計(jì)目標(biāo),并已在反假幣宣傳系統(tǒng)的實(shí)際生產(chǎn)中使用。策略的設(shè)計(jì)并不針對(duì)特定的業(yè)務(wù),因此本文所述的策略可應(yīng)用于其它基于移動(dòng)網(wǎng)絡(luò)進(jìn)行增量數(shù)據(jù)同步的業(yè)務(wù)系統(tǒng)之中。

[1] 常抓不懈 持之以恒 努力開(kāi)創(chuàng)反假貨幣工作新局面——國(guó)務(wù)院反假貨幣工作聯(lián)系會(huì)議第五次會(huì)議在北京召開(kāi)[J].金融會(huì)計(jì),2013(01):84.

[2] 毛新生.SOA 原理·方法·實(shí)踐[M].北京: 電子工業(yè)出版社,2007:3-4.

[3] Juval Lowy(著).張逸,徐寧(譯). WCF 編程(第 2 版)[M].北京:機(jī)械工業(yè)出版社,2009.

[4] Roger Jennings(著). 孟兆煒(譯).ADO.NET 3.5高級(jí)編程——應(yīng)用LINQ & Entity Framework[M]. 北京:清華大學(xué)出版社,2010.

[5] 劉黎志,吳云韜.應(yīng)用WCF分布式框架實(shí)現(xiàn)移動(dòng)數(shù)據(jù)同步[J].計(jì)算機(jī)應(yīng)用, 2011(12):3281-3284.

[6] 王文琴, 費(fèi)賢舉, 鞠時(shí)光. 基于數(shù)據(jù)復(fù)制技術(shù)實(shí)現(xiàn)移動(dòng)數(shù)據(jù)同步[J]. 計(jì)算機(jī)應(yīng)用, 2006, 26(7) : 1676-1678.

[7] 楊志和,胡虛懷.移動(dòng)環(huán)境下的數(shù)據(jù)同步模型研究[J].計(jì)算機(jī)工程與應(yīng)用,2007, 43(13):191-193.

猜你喜歡
版本號(hào)增量工作站
左權(quán)浙理大 共建工作站
提質(zhì)和增量之間的“辯證”
戴爾Precision 5750移動(dòng)工作站
“價(jià)增量減”型應(yīng)用題點(diǎn)撥
認(rèn)識(shí)vSphere安裝程序
基于均衡增量近鄰查詢的位置隱私保護(hù)方法
深入淺出 全面獲知系統(tǒng)版本號(hào)
德州儀器(TI)發(fā)布了一對(duì)32位增量-累加模數(shù)轉(zhuǎn)換器(ADC):ADS1262和ADS126
多種方法查看系統(tǒng)版本號(hào)
電腦迷(2014年8期)2014-04-29 08:53:03
移動(dòng)式CIP及SIP工作站(可記錄型)
防城港市| 禄丰县| 潼南县| 景宁| 措勤县| 北流市| 于都县| 云林县| 武山县| 化州市| 栾川县| 北安市| 贵港市| 扎兰屯市| 西安市| 林甸县| 长葛市| 巫溪县| 灵寿县| 东城区| 天镇县| 盐城市| 广宗县| 专栏| 报价| 临泽县| 永靖县| 平南县| 石狮市| 巴马| 合作市| 上高县| 望奎县| 阳曲县| 砚山县| 娄底市| 盘锦市| 沙坪坝区| 新源县| 东丰县| 仙居县|