《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于C/S和B/S混合結(jié)構(gòu)的遠(yuǎn)程抄表系統(tǒng)設(shè)計(jì)
基于C/S和B/S混合結(jié)構(gòu)的遠(yuǎn)程抄表系統(tǒng)設(shè)計(jì)
來源:微型機(jī)與應(yīng)用2014年第1期
劉春輝1,徐 平1,,朱世峰2
(1.杭州電子科技大學(xué) 生命信息與儀器工程學(xué)院,,浙江 杭州 310018,; 2.杭州電子科技大學(xué) 自
摘要: 設(shè)計(jì)了一種基于C/S和B/S混合結(jié)構(gòu)的水表遠(yuǎn)程抄表系統(tǒng),,以GPRS網(wǎng)絡(luò)和Internet網(wǎng)絡(luò)為通道,實(shí)現(xiàn)水表系統(tǒng)的遠(yuǎn)程數(shù)據(jù)采集和傳輸,,同時(shí)給出了一種基于Web集群和數(shù)據(jù)庫集群的負(fù)載均衡方案,。另外,設(shè)計(jì)了一款基于Android平臺的抄表機(jī)抄表軟件,。該軟件具有二維碼掃描,、GPS定位/地圖導(dǎo)航、拍照以及GPRS/WiFi通信等功能,。整個系統(tǒng)采用Internet編程,、多線程、數(shù)據(jù)庫管理等技術(shù),,采用模塊化,、結(jié)構(gòu)化的程序設(shè)計(jì)思想。系統(tǒng)完成后能夠解決傳統(tǒng)人工入戶抄表帶來的各種弊端,,降低供水部門的管理成本,,提高用水管理水平和服務(wù)質(zhì)量,實(shí)際運(yùn)行表明該系統(tǒng)通信可靠,,實(shí)時(shí)性好,。
Abstract:
Key words :

摘  要: 設(shè)計(jì)了一種基于C/S和B/S混合結(jié)構(gòu)的水表遠(yuǎn)程抄表系統(tǒng),,以GPRS網(wǎng)絡(luò)和Internet網(wǎng)絡(luò)為通道,,實(shí)現(xiàn)水表系統(tǒng)的遠(yuǎn)程數(shù)據(jù)采集和傳輸,同時(shí)給出了一種基于Web集群和數(shù)據(jù)庫集群的負(fù)載均衡方案,。另外,,設(shè)計(jì)了一款基于Android平臺的抄表機(jī)抄表軟件。該軟件具有二維碼掃描,、GPS定位/地圖導(dǎo)航,、拍照以及GPRS/WiFi通信等功能。整個系統(tǒng)采用Internet編程,、多線程,、數(shù)據(jù)庫管理等技術(shù),采用模塊化,、結(jié)構(gòu)化的程序設(shè)計(jì)思想,。系統(tǒng)完成后能夠解決傳統(tǒng)人工入戶抄表帶來的各種弊端,降低供水部門的管理成本,,提高用水管理水平和服務(wù)質(zhì)量,,實(shí)際運(yùn)行表明該系統(tǒng)通信可靠,實(shí)時(shí)性好,。
關(guān)鍵詞: 自動抄表,;無線分組業(yè)務(wù),;網(wǎng)絡(luò)編程多線程技術(shù),;Web集群服務(wù)器,;負(fù)載均衡

 隨著電子技術(shù)、計(jì)算機(jī)技術(shù)以及網(wǎng)絡(luò)通信技術(shù)的快速發(fā)展,,供水系統(tǒng)的自動化程度也在不斷地提高,,自動抄表已成為各大供水公司所關(guān)注的一個重要課題。目前國內(nèi)的自動抄表系統(tǒng)一般都采用兩層結(jié)構(gòu),,底層(集中器與采集器之間)一般利用低壓載波或RS-485總線的通信方式[1-2]。上層(集中器與管理中心之間)的通信根據(jù)信道介質(zhì)不同有電話線,、電力線載波,、光纖和無線等多種方式,并且以有線的方式居多,。但在很多情況下,,對于供水公司來說,水表測點(diǎn)分散,地理位置復(fù)雜,,實(shí)施布線比較困難,。
 目前基于公共互聯(lián)網(wǎng)遠(yuǎn)程監(jiān)控技術(shù)的研究與應(yīng)用在許多領(lǐng)域都引起了關(guān)注,互聯(lián)網(wǎng)已經(jīng)滲透到社會的每一個角落,,而通過GPRS網(wǎng)絡(luò)系統(tǒng)[3],,設(shè)備可采用Internet的技術(shù)標(biāo)準(zhǔn)與服務(wù)器交換數(shù)據(jù),實(shí)現(xiàn)與國際互聯(lián)網(wǎng)的連接,。
 然而基于供水系統(tǒng)自身的特點(diǎn),,采用自動抄表而沒有人為去監(jiān)督校驗(yàn)數(shù)據(jù)很難保證數(shù)據(jù)的完全可靠,所以必須開發(fā)一款手持抄表機(jī)去配合完成數(shù)據(jù)的檢驗(yàn),,目前國內(nèi)現(xiàn)有的抄表機(jī)抄表存在以下4個問題:(1)抄表機(jī)不能夠精確定位每一只水表,,導(dǎo)致找表困難;(2)供水企業(yè)難以掌握外出抄表員工的工作情況,,常出現(xiàn)有意估抄的情況,;(3)水表分布廣泛、不規(guī)律,,常常漏抄水表,;(4)現(xiàn)有抄表機(jī)界面不友好,不便于使用,。
 本文選用了基于GPRS的無線通信技術(shù)作為遠(yuǎn)程集中自動抄表的通信方式,,開發(fā)一款服務(wù)器后臺管理軟件,同時(shí)開發(fā)了一款基于安卓的手持抄表機(jī)終端,。
1 系統(tǒng)分析和設(shè)計(jì)
1.1 系統(tǒng)體系結(jié)構(gòu)

 C/S結(jié)構(gòu)是20世紀(jì)90年代開始流行的一種體系結(jié)構(gòu),,在C/S結(jié)構(gòu)下,應(yīng)用系統(tǒng)包括客戶機(jī)和服務(wù)器兩部分[4],,應(yīng)用處理由客戶端來完成,,數(shù)據(jù)訪問及事務(wù)處理由服務(wù)器來承擔(dān)。C/S結(jié)構(gòu)對程序整體性考慮較多,,注重流程及對權(quán)限進(jìn)行多層次校驗(yàn),,具有安全性高、聯(lián)機(jī)事務(wù)處理性能好的特點(diǎn),,并且還具有應(yīng)用程序開發(fā)效率高的優(yōu)點(diǎn),,但同時(shí)也具有內(nèi)在缺陷,例如客戶端平臺相關(guān)性,,客戶端管理復(fù)雜,,維護(hù)困難等。隨著C/S結(jié)構(gòu)的進(jìn)一步深化,,出現(xiàn)了基于Web的B/S結(jié)構(gòu),。B/S結(jié)構(gòu)用戶界面更加友好,,可跨平臺使用數(shù)據(jù)庫、超文本,、多媒體等多種形式的信息,,系統(tǒng)具有可靠性、整體性以及可擴(kuò)展性,,客戶端僅需配置操作系統(tǒng)和Web瀏覽器,,更利于軟件的開發(fā)、安裝,、升級,,節(jié)省開發(fā)維護(hù)費(fèi)用?;赪eb的B/S結(jié)構(gòu)特別適用于信息的瀏覽,、查詢與發(fā)布,適于領(lǐng)導(dǎo)輔助決策支持,。而C/S結(jié)構(gòu)適用于信息管理,、辦公自動化等事務(wù)處理的系統(tǒng)。根據(jù)系統(tǒng)的開發(fā)要求和系統(tǒng)目標(biāo),,系統(tǒng)選擇C/S和B/S混合的結(jié)構(gòu),,該混合結(jié)構(gòu)的軟件開發(fā)由瀏覽器、網(wǎng)頁服務(wù)器,、客戶端,、事務(wù)服務(wù)器、數(shù)據(jù)庫服務(wù)器(資源文件)和數(shù)據(jù)庫組成,,如圖1所示,。這種混合結(jié)構(gòu)既發(fā)揮傳統(tǒng)C/S結(jié)構(gòu)成熟的技術(shù),又能借Internet技術(shù)充分發(fā)揮B/S結(jié)構(gòu)的優(yōu)點(diǎn)[5-6],。系統(tǒng)的功能框圖如圖2所示,。

1.2 編程工具選擇和數(shù)據(jù)庫建立
 Visual C#是極其優(yōu)秀的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,具有開發(fā)簡單,、功能強(qiáng)大,、擴(kuò)展方便、易于維護(hù)的優(yōu)點(diǎn),,本系統(tǒng)采用該語言開發(fā)實(shí)現(xiàn),。ASP.NET實(shí)現(xiàn)了網(wǎng)頁的前臺和后臺的分離以及代碼的“隱藏”技術(shù)。因此,,利用ASP.NET構(gòu)建網(wǎng)站越來越多,,所以網(wǎng)頁部分采用ASP.NET技術(shù)實(shí)現(xiàn)。SQL Server作為微軟發(fā)布的一個典型的關(guān)系型數(shù)據(jù)庫應(yīng)用系統(tǒng),,功能強(qiáng)大,、操作簡便、安全可靠,。本系統(tǒng)設(shè)計(jì)中選擇Microsoft SQL Server 2008作為數(shù)據(jù)庫服務(wù)器平臺,。
 在數(shù)據(jù)庫設(shè)計(jì)中使用了存儲過程和事務(wù),增強(qiáng)了代碼的重用性和共享性,,應(yīng)用程序的開發(fā)速度,,開發(fā)質(zhì)量和效率都有所提高,對禁止用戶直接訪問的數(shù)據(jù)對象,,通過對用戶進(jìn)行存儲過程的使用授權(quán),,能夠通過執(zhí)行存儲過程去操作那些禁止直接訪問的下層數(shù)據(jù)對象,保證數(shù)據(jù)安全,、完整性,,通過將事務(wù)管理機(jī)制引入存儲過程,保證了系統(tǒng)數(shù)據(jù)的一致性和完整性,。
1.3 Internet編程
1.3.1 異步通信

 異步通信方式比之同步方式可以提高程序的并行度和效率,,其具體的實(shí)現(xiàn)是通過委托的方式,事件發(fā)生時(shí),,系統(tǒng)會自動地通知回調(diào)函數(shù)去執(zhí)行相關(guān)的操作,。但是,異步的方式一般需要在某種程度上的協(xié)調(diào)才能將功能發(fā)揮到極致,。例如,,在服務(wù)器上獲取正在嘗試連接的客戶端套接字時(shí),由于使用了異步方式,,這樣就使得可以在不等待客戶端連接接入,,而直接去執(zhí)行后面的代碼,看似好像是效率很高,,不阻塞就能夠執(zhí)行,,但是如果在該方法尚未接收到連接請求時(shí)就在此方法的后面調(diào)用了在套接字上的讀寫操作,就會造成程序執(zhí)行結(jié)構(gòu)的錯誤,。.NET Framework可以利用委托異步調(diào)用任何方法,,對于任何一種方法,如果希望異步執(zhí)行,,最簡單的方法就是通過調(diào)用委托的開啟方法開始異步執(zhí)行,,然后執(zhí)行其他操作,最后調(diào)用委托終止方法結(jié)束異步操作,,通過輪詢方式檢查異步調(diào)用是否完成,。終止方法在異步調(diào)用完成后才返回,因此這種方式非常適合執(zhí)行文件或網(wǎng)絡(luò)操作,。
1.3.2 多線程技術(shù)
 由于各個現(xiàn)場水表是獨(dú)立運(yùn)行的,,向服務(wù)器申請連接及數(shù)據(jù)傳輸事件時(shí)也是隨機(jī)的,,因此非常適合于多線程技術(shù)。當(dāng)主機(jī)監(jiān)聽到有連接請求時(shí),,就啟動一個新線程,,用于處理相應(yīng)的任務(wù)。一個終端對應(yīng)一個獨(dú)立的線程,,一旦該線程啟動,,將和主線程一起獨(dú)立運(yùn)行,主線程仍然處于監(jiān)聽狀態(tài),,從而確保整個系統(tǒng)處于有序狀態(tài),,多線程工作流程如圖3所示,創(chuàng)建線程包括創(chuàng)建監(jiān)聽端口的主線程和處理終端任務(wù)的輔助線程,。抄表終端工作流程如圖4所示,。

 (3)終端回饋信息格式如表2所示,。


?。?)在數(shù)據(jù)傳輸過程中,中心服務(wù)器每發(fā)一個小包,,必須等待終端有相應(yīng)的反饋后才繼續(xù)發(fā)送,。例如發(fā)心跳包后必須回心跳包,發(fā)狀態(tài)查詢包后必須回狀態(tài)查詢包,。
1.3.4 通信過程中異常處理
 為了保證通信安全可靠和系統(tǒng)的穩(wěn)定,,必須將通信過程中的異常處理問題放在一個比較高的位置,例如:(1)Socket連接的異常斷開:在發(fā)送信息失敗Socket斷開的情況需要重連接,。發(fā)送線程(Send Thread)在發(fā)現(xiàn)Send失敗后(由計(jì)時(shí)器通知),,關(guān)閉Socket連接,新建Socket并重新連接,;(2)發(fā)送請求包異常:發(fā)送請求包后T1時(shí)間內(nèi)沒有收到應(yīng)答包判定為應(yīng)答接收失敗,。發(fā)送請求包后沒有回應(yīng)的情況、檢測異常,,累計(jì)3次失敗視為終端掉線,,通信的異常情況較多,具體限于篇幅不做詳細(xì)介紹,。
1.4 Web服務(wù)器集群和數(shù)據(jù)庫服務(wù)器集群技術(shù)[7]
1.4.1 負(fù)載均衡算法

 將一組服務(wù)器組成集群,,對外作為一個整體來提供服務(wù),可以提高服務(wù)器的服務(wù)質(zhì)量,。這樣就避免了一臺服務(wù)器由于資源的有限而只能為有限的用戶提供服務(wù)的弊端,。此時(shí)多個服務(wù)器集群中任務(wù)的合理分配至關(guān)重要。負(fù)載均衡算法的好壞直接決定集群中單個節(jié)點(diǎn)的負(fù)載,,進(jìn)而影響集群的性能,。
 目前應(yīng)用服務(wù)器集群負(fù)載均衡有硬件和軟件兩種方式,,在本系統(tǒng)設(shè)計(jì)中選用了軟件的方式,采用動態(tài)加權(quán)方式負(fù)擔(dān)負(fù)載,,在系統(tǒng)的運(yùn)行開始時(shí)通過收集每個服務(wù)器的負(fù)載情況設(shè)置權(quán)值,,真正實(shí)現(xiàn)負(fù)載均衡。數(shù)據(jù)庫的負(fù)載均衡的實(shí)現(xiàn)采用的是最小連接法,。在數(shù)據(jù)庫中存有連接表。Web服務(wù)器通過查看該表確定連接的對象,,同時(shí)動態(tài)地修改該表為其他的Web服務(wù)器提供連接標(biāo)準(zhǔn),。
1.4.2 數(shù)據(jù)庫集群負(fù)載均衡結(jié)構(gòu)
 數(shù)據(jù)庫服務(wù)器在設(shè)計(jì)中采用了master/slave機(jī)制,每個節(jié)點(diǎn)同時(shí)扮演著master和slave的角色,,在每一個節(jié)點(diǎn)上操作數(shù)據(jù)庫,,其結(jié)果是每一個數(shù)據(jù)庫都得到相同的數(shù)據(jù)。連接到數(shù)據(jù)庫的服務(wù)按照一定的策略分配給其中的一臺服務(wù)器,,實(shí)現(xiàn)負(fù)載的分擔(dān),。同時(shí)該結(jié)構(gòu)一個master可以對應(yīng)增加多個slave,擴(kuò)展性良好,,如圖5所示,。

1.4.3 Web服務(wù)器負(fù)載均衡結(jié)構(gòu)
 負(fù)載均衡器負(fù)責(zé)接受客戶端的請求,根據(jù)服務(wù)器的情況將任務(wù)分配給服務(wù)器,,同時(shí)將結(jié)果返回給客戶,。服務(wù)器在接受任務(wù)和返回結(jié)果都需要負(fù)載均衡的參與。Internet連接直接和負(fù)載均衡器相連接,,而不是直接和Web服務(wù)器連接,,具體如圖6所示。

 

 

2 具體實(shí)現(xiàn)
2.1 系統(tǒng)登錄

 管理人員登錄時(shí)要輸入用戶名和密碼,,同時(shí)要對系統(tǒng)的基本參數(shù)進(jìn)行設(shè)置,,只有通過認(rèn)證才能進(jìn)入系統(tǒng)主界面,否則無法進(jìn)入,。
2.2 用戶管理的實(shí)現(xiàn)
 為確保信息的安全性,,用戶管理模塊對系統(tǒng)使用者的名稱、密碼,、權(quán)限等信息做了規(guī)定,。該模塊實(shí)現(xiàn)了用戶添加、用戶刪除,、密碼修改等功能,。系統(tǒng)登錄時(shí)會根據(jù)登錄者的權(quán)限提供全部或部分功能,當(dāng)?shù)卿浾呤枪芾韱T時(shí),,將提供全部的功能,,如果登錄者是一般用戶,,將只提供部分功能。
2.3 水表管理的實(shí)現(xiàn)
 管理人員可以增加,、修改,、刪除水表信息,導(dǎo)出用戶信息,,增加街區(qū)信息等,,并且能夠查看修改單個水表的具體信息。管理人員可以實(shí)時(shí)查看各個自動抄表模塊的運(yùn)行情況以及手持終端的地理信息位置,。
2.4 統(tǒng)計(jì)分析的實(shí)現(xiàn)
 具有編制單個用戶每月報(bào)表,、全部用戶的每日報(bào)表、費(fèi)用結(jié)算單等功能,,并將系統(tǒng)采集到的信息,,統(tǒng)計(jì)匯總出二次信息,以數(shù)據(jù)表格和趨勢圖的形式顯示統(tǒng)計(jì)的詳細(xì)數(shù)據(jù),,用于管理決策,。統(tǒng)計(jì)分析模塊除了統(tǒng)計(jì)各種常用信息外還包括經(jīng)常發(fā)生故障的用戶及地段等信息。
2.5 系統(tǒng)維護(hù)功能的實(shí)現(xiàn)
 系統(tǒng)維護(hù)主要是對系統(tǒng)中需要用到的一些參數(shù)進(jìn)行設(shè)置或重新配置以及對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行維護(hù),,這些參數(shù)一般是比較固定的,,但是用戶可以根據(jù)實(shí)際的變動情況對其設(shè)置。系統(tǒng)維護(hù)包括系統(tǒng)參數(shù)設(shè)置和數(shù)據(jù)維護(hù)部分,,其中參數(shù)設(shè)置包括系統(tǒng)常用參數(shù)設(shè)置和數(shù)據(jù)庫參數(shù)設(shè)置,,系統(tǒng)常用參數(shù)設(shè)置指的是對公司名稱,站點(diǎn)等相關(guān)信息進(jìn)行設(shè)置,,數(shù)據(jù)庫參數(shù)設(shè)置指的是對服務(wù)器名稱,、數(shù)據(jù)庫類型、數(shù)據(jù)庫名稱等的恢復(fù)及定期刪除數(shù)據(jù)庫中部分?jǐn)?shù)據(jù)的功能,。此外,,后臺服務(wù)管理軟件對數(shù)據(jù)采集的時(shí)間和周期也可自行設(shè)定,具體實(shí)現(xiàn)鑒于篇幅不做具體描述,。
 本文提出了一種基于C/S和B/S混合結(jié)構(gòu)的水表遠(yuǎn)程抄表和管理系統(tǒng)的設(shè)計(jì)方案,。既發(fā)揮了C/S模式成熟的技術(shù)特長,避免建立多層C/S模式的高昂代價(jià),,又能借Internet技術(shù)充分發(fā)揮B/S模式的優(yōu)點(diǎn),,有效實(shí)現(xiàn)快速的信息交流和信息共享。該系統(tǒng)能夠解決傳統(tǒng)抄表帶來的各種弊端,,降低供水部門的管理成本,,提高用水管理水平和服務(wù)質(zhì)量。手持抄表終端增加現(xiàn)有抄表機(jī)沒有的二維碼讀取、地圖導(dǎo)航等功能,,彌補(bǔ)了現(xiàn)有抄表機(jī)存在的不足,。下一步計(jì)劃實(shí)現(xiàn)與營業(yè)收費(fèi)系統(tǒng)的互聯(lián)。該系統(tǒng)除在供水公司應(yīng)用外,,同時(shí)也為電表,、煤氣表的數(shù)據(jù)抄收工作以及智能家居提供了技術(shù)解決方案。
參考文獻(xiàn)
[1] 劉基華,,盧延詩.基于C/S與B/S的電廠信息管理系統(tǒng)[J].中國測試技術(shù),,2003,29(1):49-50.
[2] 栗玉霞,,徐建政,,劉愛兵.GPRS技術(shù)在自動抄表系統(tǒng)中的應(yīng)用[J].電力自動化設(shè)備,2003,,23(12):52-53.
[3] 孫忠富,曹洪太,,李洪亮,,等.基于GPRS和WEB的溫室環(huán)境信息采集系統(tǒng)的實(shí)現(xiàn)[J].農(nóng)業(yè)工程學(xué)報(bào),2006,,22(6):131-134.
[4] 王喜富,,陳建廣.基于B/S與C/S模式的鐵路運(yùn)輸安全管理信息系統(tǒng)[J].中國安全科學(xué)學(xué)報(bào),2004,,14(3):73-76.
[5] SAEED GHASEMI,, MAJID MEGHDAD. The design and management of intelligent systems in mechanical domestic water meters[J]. Open Journal of Urology, 2011,,2(4):424-429.
[6] 馮鑒煒.太陽能熱水工程遠(yuǎn)程監(jiān)測系統(tǒng)開發(fā)[D].杭州:杭州電子科技大學(xué),,2012.
[7] 張鋒,祝永志.B/S模式服務(wù)器集群系統(tǒng)的研究與應(yīng)用[J].電腦知識與技術(shù),,2009,,5(1):88-89.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。