專利名稱:基于學(xué)生宿舍通道系統(tǒng)的系統(tǒng)架構(gòu)及系統(tǒng)數(shù)據(jù)同步方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于學(xué)生宿舍通道系統(tǒng)的系統(tǒng)架構(gòu)及系統(tǒng)數(shù)據(jù)同步方法。
背景技術(shù):
學(xué)生公寓無(wú)障礙通道系統(tǒng)目前普遍采用C/S架構(gòu),一般由一個(gè)服務(wù)器作為數(shù)據(jù)源提供系統(tǒng)數(shù)據(jù)和網(wǎng)站訪問(wèn),每臺(tái)通道機(jī)對(duì)應(yīng)一臺(tái)PC作為客戶端,負(fù)責(zé)實(shí)時(shí)監(jiān)控和數(shù)據(jù)上傳。這種架構(gòu)普遍存在幾個(gè)問(wèn)題1.客戶端普遍采用裝有windows桌面系統(tǒng)的pc機(jī)目前國(guó)內(nèi)學(xué)生公寓無(wú)障礙通道系統(tǒng)客戶端普遍使用裝有windows桌面系統(tǒng)的pc 機(jī)作為系統(tǒng)的軟、硬件平臺(tái)。使用該平臺(tái)主要有兩個(gè)缺陷1)眾所周知,windows桌面系統(tǒng)安全性較差,容易受到蠕蟲(chóng),木馬等各種計(jì)算機(jī)病毒攻擊,而無(wú)障礙通道系統(tǒng)一般處于封閉網(wǎng)絡(luò)中,即便安裝了殺毒軟件其病毒庫(kù)也無(wú)法更新,因此對(duì)于病毒攻擊也形同虛設(shè)。這使得客戶端數(shù)據(jù)始終處于不安全的環(huán)境中,容易因系統(tǒng)崩潰而丟失或被竊取,另外為保障所有系統(tǒng)正常運(yùn)行,管理員的大量日常維護(hù)也頗為費(fèi)事。2)無(wú)障礙通道系統(tǒng)客戶端功能相對(duì)專一,只用來(lái)進(jìn)行監(jiān)控,抓拍,上傳數(shù)據(jù)等簡(jiǎn)單工作,使用PC機(jī)作為其硬件平臺(tái)是一種資源浪費(fèi),而且客戶端數(shù)量眾多,使用pc大大增加了整個(gè)系統(tǒng)的成本2.服務(wù)器普遍壓力較大,工作效率低下學(xué)生公寓無(wú)障礙通道系統(tǒng)通??蛻舳吮姸?,而且實(shí)時(shí)或定期上傳的通過(guò)記錄數(shù)據(jù)量較大,據(jù)統(tǒng)計(jì),一所擁有在校生三萬(wàn)人左右的大學(xué),所有宿舍一個(gè)月內(nèi)將產(chǎn)生五至六百萬(wàn)條通過(guò)記錄,這些通過(guò)記錄上傳在服務(wù)器端所產(chǎn)生的大量數(shù)據(jù)庫(kù)I/O操作讓服務(wù)器總是處于滿負(fù)荷工作的狀態(tài),令其不堪重負(fù),無(wú)力及時(shí)響應(yīng)用戶的查詢請(qǐng)求。3.客戶端不易增加或改變功能系統(tǒng)在使用過(guò)程中,數(shù)據(jù)庫(kù)的同步通過(guò)后臺(tái)的同步程序保證,一般來(lái)說(shuō),數(shù)據(jù)庫(kù)同步程序同步策略是,將同步語(yǔ)句寫(xiě)入程序,程序設(shè)計(jì)為一個(gè)死循環(huán),不斷輪詢執(zhí)行這些固定不變的語(yǔ)句,以此保持客戶端與服務(wù)器數(shù)據(jù)庫(kù)的一致性。用戶可能希望增加或改變某些功能,原有的數(shù)據(jù)庫(kù)結(jié)構(gòu)可能不支持這些新的功能,因此往往要求改變數(shù)據(jù)庫(kù)結(jié)構(gòu),如增加或刪除表,改變表結(jié)構(gòu),增加或刪除約束等等,同步流程也會(huì)隨之變化,客戶端數(shù)量眾多,無(wú)法手動(dòng)修改,只能通過(guò)數(shù)據(jù)庫(kù)的同步程序,傳統(tǒng)的更新方式是生成新版本的程序,但每次對(duì)數(shù)據(jù)庫(kù)的結(jié)構(gòu)進(jìn)行簡(jiǎn)單更改都更換數(shù)據(jù)庫(kù)同步程序無(wú)謂增加了開(kāi)發(fā)人員的負(fù)擔(dān),是一種非常不經(jīng)濟(jì)的做法。
發(fā)明內(nèi)容
為彌補(bǔ)現(xiàn)有技術(shù)的不足,本發(fā)明提供一種基于學(xué)生宿舍通道系統(tǒng)的系統(tǒng)架構(gòu)及系統(tǒng)數(shù)據(jù)同步方法,以增強(qiáng)系統(tǒng)的穩(wěn)定性,安全性的同時(shí)降低系統(tǒng)成本;減輕服務(wù)器壓力,以及解決系統(tǒng)升級(jí)帶來(lái)的麻煩。為實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案基于學(xué)生宿舍通道系統(tǒng)的系統(tǒng)架構(gòu),該系統(tǒng)采用Client/Server架構(gòu),共分三層結(jié)構(gòu),它包括中心服務(wù)器,中心服務(wù)器與若干臺(tái)分中心服務(wù)器雙向連接,每臺(tái)分中心服務(wù)器與至少一臺(tái)客戶端雙向連接;所述中心服務(wù)器還與客戶端連接。所述客戶端采用安裝WinCE系統(tǒng)的嵌入式設(shè)備?;趯W(xué)生宿舍通道系統(tǒng)的系統(tǒng)數(shù)據(jù)同步方法,該同步方法實(shí)現(xiàn)步驟如下1)系統(tǒng)初始化;2)將客戶端與中心服務(wù)器連接,并判斷中心服務(wù)器已連接多少客戶端;3)如果中心服務(wù)器連接數(shù)未達(dá)設(shè)定值,則執(zhí)行步驟5),如達(dá)到設(shè)定值則執(zhí)行步驟
4);4)客戶端等待一定時(shí)間再次嘗試連接,如果嘗試次數(shù)小于設(shè)定次數(shù),則轉(zhuǎn)到步驟 2),如果嘗試連接次數(shù)已達(dá)設(shè)定次數(shù),則將客戶端連接到本校區(qū)的分中心服務(wù)器,執(zhí)行步驟
5);5)從建立連接的數(shù)據(jù)庫(kù)獲取新的數(shù)據(jù)庫(kù)同步策略;6)根據(jù)已獲得的數(shù)據(jù)庫(kù)同步策略,同步本樓人員信息;7)判斷是否有更新內(nèi)容需要下發(fā)到通道機(jī);如需下發(fā)則執(zhí)行步驟8),反之則轉(zhuǎn)到執(zhí)行步驟9);8)下發(fā)完整名單到通道機(jī);9)上傳通過(guò)記錄到本校區(qū)的分中心服務(wù)器,完成后刪除本地已上傳的記錄,并轉(zhuǎn)入步驟2、繼續(xù)執(zhí)行。所述步驟幻或步驟6)中所述數(shù)據(jù)庫(kù)同步策略由中心數(shù)據(jù)庫(kù)控制,客戶端的同步語(yǔ)句不再寫(xiě)入程序本身,而是作為文本內(nèi)容,逐行存入中心服務(wù)器數(shù)據(jù)庫(kù)的一張表中,客戶端同步程序負(fù)責(zé)下載該表內(nèi)容,完成后按照符合Transact-SQL語(yǔ)法規(guī)范進(jìn)行文本提取,解釋并執(zhí)行文本所包含的sql語(yǔ)句;因此客戶端本身并不固化任何同步策略,需要添加新功能或?qū)蛻舳藬?shù)據(jù)庫(kù)格式進(jìn)行修改時(shí),只要?jiǎng)h除服務(wù)器中的文本內(nèi)容并將新的文本重新插入即可,不需要替換新版本的同步程序,從而使客戶端數(shù)據(jù)庫(kù)的結(jié)構(gòu)更為靈活。所述數(shù)據(jù)庫(kù)同步策略具體步驟如下1)申請(qǐng)并初始化一個(gè)字符串空間;2)游標(biāo)指向sql語(yǔ)句表第一行;3)讀取當(dāng)前行內(nèi)容,并在該行末尾加一個(gè)空格字符,去掉該行開(kāi)頭的所有空白字符;4)判斷當(dāng)前行是否有需要舍棄的字符,如有則舍棄并轉(zhuǎn)入步驟5),反之繼續(xù)執(zhí)行步驟5);5)判斷當(dāng)前行字符是否包含執(zhí)行標(biāo)志,如包含則丟棄執(zhí)行標(biāo)志及執(zhí)行標(biāo)志之后的內(nèi)容,并將剩余部分加入字符串尾部,繼續(xù)執(zhí)行步驟6);如未包含執(zhí)行標(biāo)志,則直接將該行加入字符串尾部,轉(zhuǎn)入步驟6);6)以AdoDB方式執(zhí)行字符串中語(yǔ)句;7)清空該行,并判斷該行是否是最后一行;如是則執(zhí)行步驟9),反之執(zhí)行步驟8);8)游標(biāo)指向下一行,并返回步驟幻繼續(xù)執(zhí)行;9)關(guān)閉數(shù)據(jù)庫(kù)連接;結(jié)束運(yùn)行。本發(fā)明的技術(shù)方案中系統(tǒng)平臺(tái)方面,用安裝WinCE系統(tǒng)的嵌入式設(shè)備代替安裝windows桌面系統(tǒng)的pc 機(jī),作為無(wú)障礙通道系統(tǒng)的客戶端,以增強(qiáng)系統(tǒng)的穩(wěn)定性,安全性,同時(shí)降低系統(tǒng)成本。數(shù)據(jù)訪問(wèn)和同步流程方面,在每個(gè)校區(qū)架設(shè)一臺(tái)分中心服務(wù)器,用來(lái)接收該校區(qū)通道客戶端上傳的通過(guò)記錄,并且可以在必要時(shí)分流服務(wù)器訪問(wèn)量,減輕服務(wù)器壓力。數(shù)據(jù)同步策略方面,提出一種新的客戶端數(shù)據(jù)庫(kù)同步策略,以使客戶端數(shù)據(jù)庫(kù)結(jié)構(gòu)更加容易控制,從而可以減少開(kāi)發(fā)人員在增加或修改客戶端功能時(shí)的工作量。下面將從系統(tǒng)結(jié)構(gòu),數(shù)據(jù)訪問(wèn)和同步流程,客戶端數(shù)據(jù)同步策略三方面作出具體說(shuō)明1.本系統(tǒng)采用Client/Server架構(gòu),共分三層結(jié)構(gòu),其中通道客戶端采用安裝 WinCE的嵌入式設(shè)備,系統(tǒng)主要包括以下幾部分1)中心服務(wù)器,中心服務(wù)器采用windows server2003操作系統(tǒng),使用Microsoft SQL Server2005作為數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù),中心服務(wù)器職能具體包括a)從校園卡中心服務(wù)器獲取學(xué)生基本信息和校園卡卡號(hào)等數(shù)據(jù),并存儲(chǔ)在本地?cái)?shù)據(jù)庫(kù);b)發(fā)布系統(tǒng)管理網(wǎng)站,提供各級(jí)賬戶訪問(wèn);C)提供更改住宿信息功能,使具有權(quán)限的管理員可以添加、更改人員住宿信息;d)將制定校區(qū)服務(wù)器和客戶端數(shù)據(jù)同步策略的sql文件錄入數(shù)據(jù)庫(kù)表中;e)將新版的客戶端軟件存入數(shù)據(jù)庫(kù)供客戶端下載。2)分中心服務(wù)器,每個(gè)校區(qū)架設(shè)一臺(tái)分中心服務(wù)器,同樣使用windows server 2003操作系統(tǒng),Microsoft SQL Server 2005數(shù)據(jù)庫(kù),分中心服務(wù)器職能具體包括a)同步本校區(qū)人員數(shù)據(jù),住宿信息,以供客戶端同步。b)存儲(chǔ)本校區(qū)上傳通過(guò)記錄,通過(guò)抓拍圖像。3)嵌入式通道系統(tǒng)客戶端客戶端上位機(jī)采用嵌入式WinCE操作系統(tǒng),數(shù)據(jù)庫(kù)使用Microsoft SQL Server CE,系統(tǒng)客戶端分為上位機(jī)和下位機(jī),上位機(jī)主要實(shí)現(xiàn)人機(jī)界面交互及信息查詢等功能;下位機(jī)即無(wú)障礙通道機(jī),主要由控制器和讀卡器組成,實(shí)現(xiàn)刷卡功能,本發(fā)明不涉及下位機(jī)部分,因此后文中提到客戶端均指客戶端上位機(jī)部分。通道系統(tǒng)客戶端主要有以下職能a)從中心或校區(qū)服務(wù)器獲取本樓對(duì)應(yīng)的人員、房間及下發(fā)信息;b)人員通過(guò)時(shí)在監(jiān)視器上顯示通過(guò)信息,持卡人員信息以及抓拍圖像;c)將通過(guò)記錄及抓拍圖像存入數(shù)據(jù)庫(kù)并上傳到校區(qū)服務(wù)器。2.系統(tǒng)數(shù)據(jù)訪問(wèn)和同步流程方面,中心服務(wù)器與各分中心服務(wù)器均使用 Microsoft SQLServer 2005 數(shù)據(jù)庫(kù),客戶端使用 Microsoft SQL Server CE 數(shù)據(jù)庫(kù)系統(tǒng), 中心服務(wù)器數(shù)據(jù)庫(kù)與各分中心服務(wù)器數(shù)據(jù)庫(kù)之間建立鏈接服務(wù)器,客戶端Microsoft SQL Server CE數(shù)據(jù)庫(kù)通過(guò)RDA方式訪問(wèn)中心與分中心服務(wù)器數(shù)據(jù)庫(kù),人員信息更新的數(shù)據(jù)流向?yàn)閺闹行牡娇蛻舳嘶驈闹行牡椒种行脑俚娇蛻舳?,客戶端上傳通過(guò)記錄到各自對(duì)應(yīng)的分中心服務(wù)器。具體包括以下部分1)中心服務(wù)器從校園卡中心獲得數(shù)據(jù)學(xué)生基本信息;通過(guò)網(wǎng)站錄入學(xué)生住宿信息,各客戶端和分中心數(shù)據(jù)庫(kù)可以此為依據(jù),同步各自對(duì)應(yīng)的用戶信息;2)分中心服務(wù)器從中心服務(wù)器數(shù)據(jù)庫(kù)取得本校區(qū)人員數(shù)據(jù);3)通道機(jī)客戶端通道機(jī)客戶端的數(shù)據(jù)同步流程為a)系統(tǒng)初始化;b)將客戶端與中心服務(wù)器連接,并判斷中心服務(wù)器已連接多少客戶端;c)如果中心服務(wù)器連接數(shù)未達(dá)設(shè)定值,則執(zhí)行步驟e),如達(dá)到設(shè)定值則執(zhí)行步驟 d);d)客戶端等待一定時(shí)間再次嘗試連接,如果嘗試次數(shù)小于設(shè)定次數(shù),則轉(zhuǎn)到步驟 b),如果嘗試連接次數(shù)已達(dá)設(shè)定次數(shù),則將客戶端連接到本校區(qū)的分中心服務(wù)器,執(zhí)行步驟 e);e)從建立連接的數(shù)據(jù)庫(kù)獲取新的數(shù)據(jù)庫(kù)同步策略;f)根據(jù)已獲得的同步策略,同步本樓人員信息,包括學(xué)號(hào),卡號(hào),姓名,院系等基本信息,以及住宿和授權(quán)信息;g)判斷是否有更新內(nèi)容需要下發(fā)到通道機(jī),以便通道機(jī)在客戶端系統(tǒng)不運(yùn)行時(shí)也能正確判斷人員通過(guò)是否合法,如需下發(fā)則執(zhí)行步驟h),反之則轉(zhuǎn)到執(zhí)行步驟i);h)下發(fā)完整名單到通道機(jī);i)上傳通過(guò)記錄到本校區(qū)的分中心服務(wù)器,完成后刪除本地已上傳的記錄,并轉(zhuǎn)入步驟2、繼續(xù)執(zhí)行。3.客戶端數(shù)據(jù)同步策略方面,客戶端數(shù)據(jù)庫(kù)結(jié)構(gòu)和同步策略由中心數(shù)據(jù)庫(kù)控制, 客戶端的同步語(yǔ)句不再寫(xiě)入程序本身,而是作為文本內(nèi)容,逐行存入中心服務(wù)器數(shù)據(jù)庫(kù)的一張表中,客戶端同步程序負(fù)責(zé)下載該表內(nèi)容,完成后只需要按照一定規(guī)則提取出文本,解釋并執(zhí)行文本所包含的sql語(yǔ)句。因此客戶端本身并不固化任何同步策略,這種設(shè)計(jì)為數(shù)據(jù)庫(kù)的結(jié)構(gòu)和功能更新帶來(lái)了很大便利,需要添加新功能或?qū)蛻舳藬?shù)據(jù)庫(kù)格式進(jìn)行修改時(shí),只要?jiǎng)h除服務(wù)器中的文本內(nèi)容并將新的文本重新插入即可,不需要替換新版本的同步程序,從而使客戶端數(shù)據(jù)庫(kù)的結(jié)構(gòu)更為靈活。中心服務(wù)器提供的同步語(yǔ)句嚴(yán)格遵守 Transact-SQL語(yǔ)法規(guī)范。該同步策略具體步驟如下1)程序連接中心數(shù)據(jù)服務(wù)器,同步中心庫(kù)的sql語(yǔ)句表到本地sql語(yǔ)句表;2)申請(qǐng)并初始化一個(gè)字符串空間;3)游標(biāo)指向本地sql語(yǔ)句表第一行;4)讀取當(dāng)前行內(nèi)容,并在該行末尾加一個(gè)空格字符;5)舍棄當(dāng)前行中需要舍棄的字符,如注釋等;6)判斷當(dāng)前行是否包含語(yǔ)句執(zhí)行標(biāo)志,如按照Transact-SQL語(yǔ)法規(guī)范,包含“go” 則需要執(zhí)行,如果包括,則舍棄該標(biāo)志,并轉(zhuǎn)到步驟8);7)把該行剩余字符加入申請(qǐng)的字符串,轉(zhuǎn)到10);8)執(zhí)行字符串中所存sql語(yǔ)句;
9)清空字符串內(nèi)容;10)如果游標(biāo)尚未到達(dá)表最后一行,游標(biāo)指向表下一行,轉(zhuǎn)到4)重復(fù)執(zhí)行;11)清空本地sql語(yǔ)句表內(nèi)容。本發(fā)明的有益效果是1.使用WinCE嵌入式操作系統(tǒng),增強(qiáng)了系統(tǒng)安全性,穩(wěn)定性,使用嵌入式設(shè)備作為 C/S系統(tǒng)客戶端,縮減了系統(tǒng)成本,節(jié)省資源。2.使用三層的系統(tǒng)架構(gòu),在中心服務(wù)器訪問(wèn)量到達(dá)一定限度時(shí),分流部分訪問(wèn)量到分中心服務(wù)器,從而有效減輕了中心服務(wù)器的負(fù)擔(dān)。另外,將通過(guò)記錄存儲(chǔ)在分中心服務(wù)器,可以控制通過(guò)記錄表的規(guī)模,避免出現(xiàn)規(guī)模過(guò)大的表格,以致影響系統(tǒng)查詢速度,有效改善了客戶體驗(yàn),而且,用戶通過(guò)中心服務(wù)器網(wǎng)站查詢時(shí),中心服務(wù)器實(shí)際上只需要向各分中心發(fā)送查詢命令,本地?cái)?shù)據(jù)庫(kù)不需要真正執(zhí)行大量運(yùn)算,從而進(jìn)一步節(jié)省了中心服務(wù)器資源。3.將客戶端數(shù)據(jù)同步策略的決定者由客戶端同步程序移交給中心服務(wù)器,簡(jiǎn)化客戶端同步程序功能,即便需要升級(jí)數(shù)據(jù)庫(kù)結(jié)構(gòu)或增加新的同步數(shù)據(jù)項(xiàng),也不需要修改程序, 從而提高了工作效率,簡(jiǎn)化了開(kāi)發(fā)人員的工作。
圖1為本發(fā)明無(wú)障礙通道系統(tǒng)結(jié)構(gòu)框圖;圖2為客戶端數(shù)據(jù)同步流程圖;圖3為客戶端同步策略流程圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明如圖1所示,系統(tǒng)采用Client/Server架構(gòu),由中心服務(wù)器,分中心服務(wù)器,客戶端三部分構(gòu)成,中心服務(wù)器數(shù)據(jù)庫(kù)與各分中心服務(wù)器數(shù)據(jù)庫(kù)之間建立鏈接服務(wù)器,客戶端 Microsoft SQL Server CE數(shù)據(jù)庫(kù)通過(guò)RDA方式訪問(wèn)中心與分中心服務(wù)器數(shù)據(jù)庫(kù),分中心數(shù)據(jù)庫(kù)從中心數(shù)據(jù)庫(kù)實(shí)時(shí)同步本校區(qū)人員信息,根據(jù)訪問(wèn)量限值,客戶端選擇從中心或分中心同步數(shù)據(jù),人員信息更新的數(shù)據(jù)流向?yàn)閺闹行牡娇蛻舳嘶驈闹行牡椒种行脑俚娇蛻舳耍?客戶端上傳通過(guò)記錄和通過(guò)人員抓拍到各自對(duì)應(yīng)的分中心服務(wù)器。具體實(shí)施步驟如下中心服務(wù)器從校園卡中心獲得數(shù)據(jù)學(xué)生基本信息;通過(guò)網(wǎng)站錄入學(xué)生住宿信息,各客戶端和分中心數(shù)據(jù)庫(kù)可以此為依據(jù),同步各自對(duì)應(yīng)的用戶信息。分中心服務(wù)器從中心服務(wù)器數(shù)據(jù)庫(kù)取得本校區(qū)人員數(shù)據(jù)通道機(jī)客戶端同步步驟如圖2所示,1)連接服務(wù)器,同步Sql語(yǔ)句表,獲取新的數(shù)據(jù)庫(kù)同步策略和新的結(jié)構(gòu)。2)查看中心數(shù)據(jù)庫(kù)目前已有多少客戶端連接,中心數(shù)據(jù)庫(kù)允許的最大連接數(shù)為 20個(gè)。3)如果連接數(shù)未達(dá)最大允許值,執(zhí)行步驟5 ;4)如果連接數(shù)已達(dá)最大值,則客戶端需要等待一段時(shí)間后(如兩分鐘)再次嘗試連接,如果嘗試次數(shù)不到3次,轉(zhuǎn)到步驟2,如果已達(dá)3次,連接本校區(qū)的分中心服務(wù)器。
8
5)如果發(fā)現(xiàn)軟件版本更新或有新軟件需要執(zhí)行,從服務(wù)器下載軟件,并更新本地?cái)?shù)據(jù)庫(kù)中的軟件版本號(hào)6)為了減少遠(yuǎn)程查詢開(kāi)銷和網(wǎng)絡(luò)流量,客戶端同步程序從中心或分中心服務(wù)器下載完整的本樓人員數(shù)據(jù)到臨時(shí)表7)將臨時(shí)表中的信息與本地人員信息比對(duì),并以臨時(shí)表信息為準(zhǔn)更新本地人員信肩、ο8)刪除臨時(shí)表中數(shù)據(jù)9)上傳通過(guò)記錄到本校區(qū)的分中心服務(wù)器,完成后刪除本地已上傳的記錄。10)刪除sqltext表中內(nèi)容,轉(zhuǎn)到步驟1客戶端數(shù)據(jù)庫(kù)同步策略控制流程如圖3所示,具體包括以下步驟1)程序連接中心數(shù)據(jù)服務(wù)器,同步中心庫(kù)的sql語(yǔ)句表到本地sql語(yǔ)句表;2)申請(qǐng)并初始化一個(gè)字符串空間;3)游標(biāo)指向sql語(yǔ)句表第一行;4)讀取當(dāng)前行內(nèi)容,并在該行末尾加一個(gè)空格字符;5)如果該行中包含“一”,則丟棄“一”及之后的內(nèi)容(在Microsoft SQL Server 2005中,以“一”作為一行中開(kāi)始注釋的標(biāo)志);6)剩余部分字符中包含語(yǔ)句執(zhí)行標(biāo)志“go”,則丟棄“go”及該行之后的內(nèi)容, 把該行未被忽略的內(nèi)容加入字符串末尾,轉(zhuǎn)到步驟8),這里選擇“go”作為是為了符合 Transact-SQL 語(yǔ)法規(guī)范;7)把該行剩余部分字符加入字符串末尾,轉(zhuǎn)到步驟10);8)執(zhí)行字符串中所存sql語(yǔ)句;9)清空字符串內(nèi)容;10)如果游標(biāo)尚未到達(dá)表最后一行,游標(biāo)指向sql語(yǔ)句表下一行,轉(zhuǎn)到步驟4重復(fù)執(zhí)行,否則關(guān)閉結(jié)果集;11)清空本地sql語(yǔ)句表內(nèi)容。
權(quán)利要求
1.基于學(xué)生宿舍通道系統(tǒng)的系統(tǒng)架構(gòu),其特征是,該系統(tǒng)采用Client/Server架構(gòu),共分三層結(jié)構(gòu),它包括中心服務(wù)器,中心服務(wù)器與若干臺(tái)分中心服務(wù)器雙向連接,每臺(tái)分中心服務(wù)器與至少一臺(tái)客戶端雙向連接;所述中心服務(wù)器還與客戶端連接。
2.如權(quán)利要求1所述的基于學(xué)生宿舍通道系統(tǒng)的系統(tǒng)架構(gòu),其特征是,所述客戶端采用安裝winCE系統(tǒng)的嵌入式設(shè)備。
3.如權(quán)利要求1所述的基于學(xué)生宿舍通道系統(tǒng)的系統(tǒng)數(shù)據(jù)同步方法,其特征是,該同步方法實(shí)現(xiàn)步驟如下1)系統(tǒng)初始化;2)將客戶端與中心服務(wù)器連接,并判斷中心服務(wù)器已連接多少客戶端;3)如果中心服務(wù)器連接數(shù)未達(dá)設(shè)定值,則執(zhí)行步驟幻,如達(dá)到設(shè)定值則執(zhí)行步驟4);4)客戶端等待一定時(shí)間再次嘗試連接,如果嘗試次數(shù)小于設(shè)定次數(shù),則轉(zhuǎn)到步驟2), 如果嘗試連接次數(shù)已達(dá)設(shè)定次數(shù),則將客戶端連接到本校區(qū)的分中心服務(wù)器,執(zhí)行步驟 5);5)從建立連接的數(shù)據(jù)庫(kù)獲取新的數(shù)據(jù)庫(kù)同步策略;6)根據(jù)已獲得的數(shù)據(jù)庫(kù)同步策略,同步本樓人員信息;7)判斷是否有更新內(nèi)容需要下發(fā)到通道機(jī);如需下發(fā)則執(zhí)行步驟8),反之則轉(zhuǎn)到執(zhí)行步驟9);8)下發(fā)完整名單到通道機(jī);9)上傳通過(guò)記錄到本校區(qū)的分中心服務(wù)器,完成后刪除本地已上傳的記錄,并轉(zhuǎn)入步驟2)繼續(xù)執(zhí)行。
4.如權(quán)利要求3所述的基于學(xué)生宿舍通道系統(tǒng)的系統(tǒng)數(shù)據(jù)同步方法,其特征是,所述步驟幻或步驟6)中所述數(shù)據(jù)庫(kù)同步策略由中心數(shù)據(jù)庫(kù)控制,客戶端的同步語(yǔ)句不再寫(xiě)入程序本身,而是作為文本內(nèi)容,逐行存入中心服務(wù)器數(shù)據(jù)庫(kù)的一張表中,客戶端同步程序負(fù)責(zé)下載該表內(nèi)容,完成后按照符合Transact-SQL語(yǔ)法規(guī)范進(jìn)行文本提取,解釋并執(zhí)行文本所包含的sql語(yǔ)句;因此客戶端本身并不固化任何同步策略,需要添加新功能或?qū)蛻舳藬?shù)據(jù)庫(kù)格式進(jìn)行修改時(shí),只要?jiǎng)h除服務(wù)器中的文本內(nèi)容并將新的文本重新插入即可,不需要替換新版本的同步程序,從而使客戶端數(shù)據(jù)庫(kù)的結(jié)構(gòu)更為靈活。
5.如權(quán)利要求4所述的基于學(xué)生宿舍通道系統(tǒng)的系統(tǒng)數(shù)據(jù)同步方法,其特征是,所述數(shù)據(jù)庫(kù)同步策略具體步驟如下1)申請(qǐng)并初始化一個(gè)字符串空間;2)游標(biāo)指向sql語(yǔ)句表第一行;3)讀取當(dāng)前行內(nèi)容,并在該行末尾加一個(gè)空格字符,去掉該行開(kāi)頭的所有空白字符;4)判斷當(dāng)前行是否有需要舍棄的字符,如有則舍棄并轉(zhuǎn)入步驟5),反之繼續(xù)執(zhí)行步驟5);5)判斷當(dāng)前行字符是否包含執(zhí)行標(biāo)志,如包含則丟棄執(zhí)行標(biāo)志及執(zhí)行標(biāo)志之后的內(nèi)容,并將剩余部分加入字符串尾部,繼續(xù)執(zhí)行步驟6);如未包含執(zhí)行標(biāo)志,則直接將該行加入字符串尾部,轉(zhuǎn)入步驟6);6)以AdoDB方式執(zhí)行字符串中語(yǔ)句;7)清空該行,并判斷該行是否是最后一行;如是則執(zhí)行步驟9),反之執(zhí)行步驟8);8)游標(biāo)指向下一行,并返回步驟幻繼續(xù)執(zhí)行;9)關(guān)閉數(shù)據(jù)庫(kù)連接;結(jié)束運(yùn)行。
全文摘要
本發(fā)明公開(kāi)了基于學(xué)生宿舍通道系統(tǒng)的系統(tǒng)架構(gòu)及系統(tǒng)數(shù)據(jù)同步方法;該系統(tǒng)采用Client/Server架構(gòu),共分三層結(jié)構(gòu),它包括中心服務(wù)器,中心服務(wù)器與若干臺(tái)分中心服務(wù)器雙向連接,每臺(tái)分中心服務(wù)器與至少一臺(tái)客戶端雙向連接;所述中心服務(wù)器還與客戶端連接。客戶端使用嵌入式設(shè)備作為C/S系統(tǒng)客戶端,縮減了系統(tǒng)成本,節(jié)省資源;使用三層的系統(tǒng)架構(gòu),在中心服務(wù)器訪問(wèn)量到達(dá)一定限度時(shí),分流部分訪問(wèn)量到分中心服務(wù)器,從而有效減輕了中心服務(wù)器的負(fù)擔(dān);將客戶端數(shù)據(jù)同步策略的決定者由客戶端同步程序移交給中心服務(wù)器,簡(jiǎn)化客戶端同步程序功能,也不需要修改程序,從而提高了工作效率,簡(jiǎn)化了開(kāi)發(fā)人員的工作。
文檔編號(hào)H04L29/08GK102158475SQ20111004199
公開(kāi)日2011年8月17日 申請(qǐng)日期2011年2月22日 優(yōu)先權(quán)日2011年2月22日
發(fā)明者侯墨語(yǔ), 劉其鵬, 商振, 李紹林, 王洪君, 鐘浩然 申請(qǐng)人:山東大學(xué)