事務(wù)處理技術(shù)在城域點(diǎn)播系統(tǒng)中的研究與實(shí)現(xiàn)_第1頁(yè)
事務(wù)處理技術(shù)在城域點(diǎn)播系統(tǒng)中的研究與實(shí)現(xiàn)_第2頁(yè)
事務(wù)處理技術(shù)在城域點(diǎn)播系統(tǒng)中的研究與實(shí)現(xiàn)_第3頁(yè)
事務(wù)處理技術(shù)在城域點(diǎn)播系統(tǒng)中的研究與實(shí)現(xiàn)_第4頁(yè)
事務(wù)處理技術(shù)在城域點(diǎn)播系統(tǒng)中的研究與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、事務(wù)處理技術(shù)在城域點(diǎn)播系統(tǒng)中的研究與實(shí)現(xiàn)摘要事務(wù)處理是維護(hù)數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)中數(shù)據(jù)一致性的重要方式。本文分析了幾種在分布式系統(tǒng)中實(shí)現(xiàn)事務(wù)處理的常用方法。結(jié)合城域點(diǎn)播系統(tǒng),利用AD事務(wù)處理技術(shù)提出了維護(hù)數(shù)據(jù)一致性的有效方案。關(guān)鍵詞事務(wù)處理;VD;AD數(shù)字電視城域點(diǎn)播系統(tǒng)是可覆蓋全城的擴(kuò)展的分布式VD系統(tǒng),為用戶提供方便快捷、穩(wěn)定流暢的高畫質(zhì)VD服務(wù)。該系統(tǒng)采用多層分布式系統(tǒng)架構(gòu),后臺(tái)數(shù)據(jù)庫(kù)搭建在SQLServer2000之上,SQLServer2000是可縮放、高性能的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),提供強(qiáng)大的事務(wù)處理功能,對(duì)事務(wù)恢復(fù)主要采用基于事務(wù)日志機(jī)制來(lái)保證數(shù)據(jù)的完整性。由于系統(tǒng)面向更具體的要求和應(yīng)用,

2、SQLServer2000提供的隱性事務(wù)控制還不能完全滿足系統(tǒng)的需要,而且還會(huì)造成應(yīng)用程序性能下降。因此,本文討論了如何在該系統(tǒng)中實(shí)現(xiàn)更全面、更完善的顯式事務(wù)控制,從而實(shí)現(xiàn)數(shù)據(jù)的一致性和完整性,保證整個(gè)系統(tǒng)的安全、有效的運(yùn)行。事務(wù)是一種能夠把數(shù)據(jù)庫(kù)的修改作為整體提交給數(shù)據(jù)庫(kù)的機(jī)制,從而保證數(shù)據(jù)庫(kù)的一致性。事務(wù)作為單個(gè)邏輯工作單元執(zhí)行的一系列操作。必須具備四個(gè)屬性:即原子性(Aty)、一致性(nsisteny)、隔離性(Islability)和持久性(Durability),稱為AID屬性。在DBLibrary應(yīng)用程序和TSQL腳本中可以使用BeginTransatin,itTransatin等

3、語(yǔ)句描述事務(wù),SQLServer2000可以按顯式、自動(dòng)提交或隱性模式啟動(dòng)事務(wù),用IT或RLLBAK結(jié)束事務(wù)。SQLserver應(yīng)用程序主要使用Transat-SQL語(yǔ)句或數(shù)據(jù)庫(kù)API函數(shù)通過(guò)指定事務(wù)啟動(dòng)和結(jié)束的時(shí)間來(lái)控制事務(wù)。常用的數(shù)據(jù)庫(kù)API有DB、LEDB和AD,不同的數(shù)據(jù)庫(kù)訪問(wèn)方式的效率和訪問(wèn)方式策略有不同,如AD不支持隱性事務(wù),LEDB沒(méi)有專門用來(lái)設(shè)置隱性事務(wù)模式的方法。2.1多層結(jié)構(gòu)體系介紹多層結(jié)構(gòu)系統(tǒng)由于其安全性、易擴(kuò)展、易于實(shí)現(xiàn)分布式的數(shù)據(jù)處理方式等優(yōu)勢(shì)使其應(yīng)用越來(lái)越廣泛。多層系統(tǒng)中典型的是三層結(jié)構(gòu)體系(如圖1),客戶端負(fù)責(zé)系統(tǒng)與用戶的交互,企業(yè)邏輯,數(shù)據(jù)訪問(wèn)規(guī)則,合法性校驗(yàn)等

4、放在應(yīng)用服務(wù)器層,客戶程序通過(guò)IAppServer接口與應(yīng)用服務(wù)器通訊,通訊的協(xié)議可以是TP/IP,D,TS或RBAT。應(yīng)用服務(wù)器通過(guò)數(shù)據(jù)集控件訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器。圖1三層體系結(jié)構(gòu)2.2多層結(jié)構(gòu)中顯式事務(wù)控制幾種方法2.2.1事務(wù)處理集中于客戶端這種處理方式主要利用客戶端的TlientDataSet組件,在其andText屬性中定義事務(wù),通過(guò)IAppServer接口將定義的SQL語(yǔ)句傳給應(yīng)用程序服務(wù)器中的數(shù)據(jù)集組件,數(shù)據(jù)集組件通過(guò)BDE訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù)服務(wù)器,并把含有事務(wù)處理的SQL語(yǔ)句傳給數(shù)據(jù)庫(kù)服務(wù)器,這樣實(shí)現(xiàn)事務(wù)的控制。在正常情況下,系統(tǒng)可有效的控制事務(wù),但若客戶端在開(kāi)始一個(gè)事務(wù)由于任何原因中

5、斷了客戶端和數(shù)據(jù)庫(kù)系統(tǒng)的通訊,由于此時(shí)數(shù)據(jù)表處于鎖定狀態(tài),只有提交或回滾才能解鎖,這必然影響到系統(tǒng)的正常運(yùn)行。2.2.2在數(shù)據(jù)庫(kù)服務(wù)器端控制事務(wù)在數(shù)據(jù)庫(kù)服務(wù)器后臺(tái),利用T-SQL語(yǔ)句定義存儲(chǔ)過(guò)程或觸發(fā)器來(lái)實(shí)現(xiàn)事務(wù)的控制.當(dāng)應(yīng)用服務(wù)器通過(guò)調(diào)用組件的方式執(zhí)行相應(yīng)存儲(chǔ)過(guò)程時(shí),數(shù)據(jù)庫(kù)將自動(dòng)完成數(shù)據(jù)的修改,從而實(shí)現(xiàn)事務(wù)的控制。但由于存儲(chǔ)過(guò)程和數(shù)據(jù)集控件綁定,這將影響松散耦合系統(tǒng)的維護(hù)和功能的擴(kuò)展,而且為滿足系統(tǒng)不同的功能需求,數(shù)據(jù)庫(kù)服務(wù)器將定義更多的存儲(chǔ)過(guò)程或觸發(fā)器來(lái)實(shí)現(xiàn)系統(tǒng)功能,這對(duì)數(shù)據(jù)庫(kù)服務(wù)器的移植和維護(hù)帶來(lái)一定的困難。2.2.3在應(yīng)用服務(wù)器控制事務(wù)在中間層實(shí)現(xiàn)事務(wù),由遠(yuǎn)程提交數(shù)據(jù)包給中間層由中間層

6、來(lái)進(jìn)行企業(yè)邏輯判斷和事務(wù)處理,客戶端只負(fù)責(zé)提交數(shù)據(jù)包,不進(jìn)行企業(yè)邏輯判斷,數(shù)據(jù)包提交后即使網(wǎng)絡(luò)中斷中間層也可繼續(xù)進(jìn)行企業(yè)邏輯判斷和事務(wù)處理,因?yàn)橹虚g層處理時(shí)間短,不會(huì)影響其它用戶。而且,后臺(tái)數(shù)據(jù)庫(kù)本身并不執(zhí)行太多的操作,這將提高整個(gè)系統(tǒng)的執(zhí)行效率。下面具體討論如何在城域點(diǎn)播系統(tǒng)應(yīng)用服務(wù)器中實(shí)現(xiàn)事務(wù)處理。3.1系統(tǒng)主要結(jié)構(gòu)該系統(tǒng)軟件開(kāi)發(fā)環(huán)境選用Delphi7.0+SQLServer2000,采用/S三層結(jié)構(gòu)模式,客戶端和應(yīng)用服務(wù)器之間采用RBA協(xié)議,實(shí)現(xiàn)在不同開(kāi)發(fā)語(yǔ)言環(huán)境和異構(gòu)系統(tǒng)之間數(shù)據(jù)交互,保證了整個(gè)系統(tǒng)運(yùn)行的穩(wěn)定性、高效性和安全性。軟件體系具體分成以下部分(如圖2):1)應(yīng)用服務(wù)器端:呼叫

7、服務(wù)中心(allenter),是整個(gè)系統(tǒng)控制的中心,主要實(shí)現(xiàn)用戶點(diǎn)播業(yè)務(wù),啟動(dòng)點(diǎn)播服務(wù)器,與VD點(diǎn)播服務(wù)器、運(yùn)營(yíng)管理中心保持通信,回復(fù)客戶的各種信息查詢要求等等。在內(nèi)部實(shí)現(xiàn)上,主要由23個(gè)動(dòng)態(tài)連接庫(kù)(DLL)組成,其中ustanager.dll動(dòng)態(tài)庫(kù)主要實(shí)現(xiàn)對(duì)用戶信息管理,底層數(shù)據(jù)庫(kù)模塊VDDateBase.dll主要負(fù)責(zé)與數(shù)據(jù)庫(kù)的連接和數(shù)據(jù)的處理和執(zhí)行。2)數(shù)據(jù)庫(kù)服務(wù)器端:SQLserver2000;主要存儲(chǔ)系統(tǒng)數(shù)據(jù)、節(jié)目數(shù)據(jù)、用戶數(shù)據(jù)等。3)客戶端:用戶接入服務(wù)器(ESNP/SServer)、視頻服務(wù)器群(VDServers)、用戶管理模塊(Useranageent)、運(yùn)營(yíng)管理模塊(Sys

8、Runanageent)、系統(tǒng)管理模塊(Systeanageent)、節(jié)目管理模塊(ediaanageent)、系統(tǒng)監(jiān)控模塊(Systenitr)等。系統(tǒng)結(jié)構(gòu)圖如下:圖2城域點(diǎn)播系統(tǒng)結(jié)構(gòu)圖客戶端和服務(wù)器端利用RBA協(xié)議進(jìn)行通信,當(dāng)客戶端發(fā)出請(qǐng)求時(shí),allenter通過(guò)調(diào)用內(nèi)部相應(yīng)動(dòng)態(tài)連接庫(kù)DLL接口負(fù)責(zé)響應(yīng)客戶端請(qǐng)求,DLL中相應(yīng)函數(shù)將需處理的數(shù)據(jù)信息寫入TlientDataSet,然后allenter調(diào)用底層數(shù)據(jù)庫(kù)操作模塊(VdDataBase模塊),執(zhí)行參數(shù)TlientDataSet中的信息,實(shí)現(xiàn)數(shù)據(jù)庫(kù)相應(yīng)操作。3.2事務(wù)控制在系統(tǒng)中的實(shí)現(xiàn)3.2.1數(shù)據(jù)庫(kù)操作模塊(VdDataBase類)

9、的設(shè)計(jì)和實(shí)現(xiàn)圖3VdDataBase類圖VdDataBase類封裝了系統(tǒng)對(duì)數(shù)據(jù)庫(kù)操作的成員變量(Fnnetd)和函數(shù):1)成員變量(Fnnetd):Tnnetd類封裝數(shù)據(jù)庫(kù)連接組件,連接方式(如圖4)所示:圖4數(shù)據(jù)庫(kù)連接組件TADnnetin類封裝了AD連接對(duì)象,通過(guò)設(shè)置nnetinstring屬性連接數(shù)據(jù)庫(kù)服務(wù)器,方法BeginTrans,itTrans,RllbakTrans用來(lái)控制事務(wù),IslatinLevel屬性用來(lái)設(shè)置事務(wù)隔離級(jí)別,隔離級(jí)別值有九個(gè)(此處設(shè)置為ilIslated),TADDataSet是AD數(shù)據(jù)集部件,TDatasetPrvider屬于遠(yuǎn)程數(shù)據(jù)模塊,提供了客戶端訪問(wèn)應(yīng)

10、用程序的接口,它將發(fā)送給客戶端應(yīng)用程序的數(shù)據(jù)信息打包,同時(shí)把客戶端對(duì)數(shù)據(jù)進(jìn)行的更新在數(shù)據(jù)庫(kù)服務(wù)器上的實(shí)現(xiàn)。2)成員函數(shù):TVdDataBase類的成員函數(shù)封裝了對(duì)數(shù)據(jù)庫(kù)操作的實(shí)現(xiàn)。其中事務(wù)操作函數(shù)為:VdDataBase_Begintrans、VdDataBase_itTrans和VdDataBase_RllbakTrans:它們通過(guò)調(diào)用ADnnetin組件的事務(wù)處理方法的相應(yīng)函數(shù)處理事務(wù)和獲得事務(wù)嵌套級(jí)別。另外需要做的一項(xiàng)重要工作是判斷事務(wù)執(zhí)行狀態(tài),借助于異常處理編程語(yǔ)句,當(dāng)接收異常時(shí)回滾事務(wù),否則提交事務(wù)。3.2.2事務(wù)處理的程序?qū)崿F(xiàn)下面以用戶管理模塊中的添加用戶方法為例說(shuō)明程序的實(shí)現(xiàn):數(shù)

11、據(jù)庫(kù)中與用戶相關(guān)的表有:ustInftbl記錄點(diǎn)播用戶基本信息,ustBundledPhneNu記錄用戶綁定的電話信息,ustAunttbl記錄用戶的帳務(wù)信息,ustVdPaytbl記錄用戶點(diǎn)播費(fèi)用。當(dāng)客戶端系統(tǒng)管理模塊執(zhí)行添加用戶操作時(shí),服務(wù)器端調(diào)用相應(yīng)動(dòng)態(tài)庫(kù)ustanager.dll的AddNe函數(shù),將開(kāi)戶成功的用戶信息(姓名、住址、綁定電話號(hào)碼、密碼等等)添加到數(shù)據(jù)庫(kù)系統(tǒng)中。AddNe函數(shù)具體實(shí)現(xiàn)代碼為:funtinTusteranager_Inner.uster_AddNe(ValusterInf:TusterInfRerd):HResult;varVallientDataSet:Tl

12、ientDataSet;BeginTry/生成數(shù)據(jù)庫(kù)操作對(duì)象,并連接數(shù)據(jù)庫(kù)VdDataBase:=TVdDataBase.reate;VallientDataSet:=TlientDataSet.reate(nil);VdDataBase_BeginTrans;/顯式啟動(dòng)一個(gè)事務(wù)Try/加入信息到ustInftbl表中VallientDataSet.andText:=insertintustInftblvalues(ValusterInf.usterID,.)/判斷數(shù)據(jù)庫(kù)操作是否成功IfVdDataBase.exeSql(VallientDataSet)=0thenBegin/加信息到ustA

13、unttblAddNeInfIntustAuntTbl(ValusterInf)/加信息到ustVdPaytblAddNeIDIntVdPayTbl(VausterInf);/加入信息到ustBundledPhneNuAddBundledInf(ValusterInf);/全部執(zhí)行成功VdDataBase.itTrans;End;exeptne:Exeptindbegin/若其中一個(gè)操作失敗VdDataBase.rllbakTrans;end;end;finally/釋放對(duì)象VallientDataSet.Free;VdDataBase.destry;end;End;函數(shù)操作開(kāi)始時(shí),開(kāi)啟事務(wù),即將后面的所有操作置于一個(gè)事務(wù)之中,若事務(wù)內(nèi)任何一個(gè)操作在執(zhí)行過(guò)程中出現(xiàn)錯(cuò)誤,整個(gè)事務(wù)將回滾,事務(wù)回到最初狀態(tài)。當(dāng)事務(wù)內(nèi)所有對(duì)數(shù)據(jù)庫(kù)的修改和操作都成功時(shí),整個(gè)事務(wù)才提交,從而保證事務(wù)AID屬性。以上對(duì)事務(wù)處理技術(shù)在分布式系統(tǒng)中實(shí)現(xiàn)的幾種方案進(jìn)行了分析和比較,并結(jié)合城域點(diǎn)播系統(tǒng)著重分析和實(shí)現(xiàn)了在應(yīng)用服務(wù)器端維護(hù)和控制事務(wù)。測(cè)試表明:在系統(tǒng)實(shí)際運(yùn)行過(guò)程中,可以有效的維護(hù)事務(wù)的一致性和完整性,從而確保整個(gè)系統(tǒng)的安全、有效的運(yùn)行。隨著整個(gè)系統(tǒng)由中心數(shù)據(jù)庫(kù)向分布式數(shù)據(jù)庫(kù)擴(kuò)展,必將涉及到更復(fù)雜的事務(wù)控制(如分布式事務(wù)處理)來(lái)維護(hù)事務(wù)的AID屬性。系統(tǒng)也將在本方案的基礎(chǔ)上作進(jìn)一步的深入和完善。1.美n

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論