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

?

一種應用于煤礦監(jiān)控系統(tǒng)文件同步組件的方案研究

2019-09-10 07:22丁瑞琦
現(xiàn)代信息科技 2019年7期

摘? 要:本文設計了一種可以應用在煤礦安全監(jiān)控系統(tǒng)中的,支持多客戶端多業(yè)務的文件同步組件,該組件可以同步煤礦安全監(jiān)控系統(tǒng)中主熱備計算機上的配置文件和其他相關業(yè)務文件,為煤礦安全監(jiān)控系統(tǒng)提供了相應的技術支持。

關鍵詞:煤礦安全監(jiān)控系統(tǒng);文件同步;文件監(jiān)視

中圖分類號:TD76;TP277? ? ? 文獻標識碼:A 文章編號:2096-4706(2019)07-0014-04

Abstract:This paper designs a file synchronization component which can be used in coal mine safety monitoring system and support multi-client and multi-service. The component can synchronize configuration files and other related business files on the main hot standby machine in coal mine safety monitoring system,and provide corresponding technical support for coal mine safety monitoring system.

Keywords:coal mine safety monitoring system;document synchronization;document monitoring

1? 背景

煤炭是一種重要的資源,但煤炭開采受煤層和地質情況的影響越來越大,很多礦井環(huán)境惡劣,還要受水災、火災、瓦斯爆炸、粉塵污染等自然災害的影響,因此國家要求煤礦必須安裝煤礦安全生產(chǎn)監(jiān)控系統(tǒng),通過一系列技術手段來保障煤礦生產(chǎn)的安全性和可靠性。

煤礦安全生產(chǎn)監(jiān)控系統(tǒng)一般通過采用雙機熱備的方式來保障系統(tǒng)的穩(wěn)定可靠,而雙機熱備技術又涉及主機和備機之間的數(shù)據(jù)交互,目前主要通過數(shù)據(jù)庫和網(wǎng)絡來傳輸相關信息,但監(jiān)控系統(tǒng)還可能存在大量的配置文件,這些配置以文件形式存放于相關目錄中,因此設計一款基于煤礦安全生產(chǎn)監(jiān)控系統(tǒng)的文件同步組件具有重要意義。

目前市面上流行著一些文件同步產(chǎn)品,但存在各種問題,比如配置安裝復雜、對外接口不通用、與監(jiān)控系統(tǒng)軟件不兼容,出現(xiàn)問題不能及時發(fā)現(xiàn)和解決等等,并不適合煤礦的使用環(huán)境,作者通過調(diào)研多個煤礦安全生產(chǎn)監(jiān)控系統(tǒng)軟件廠商,收集到了適合監(jiān)控系統(tǒng)環(huán)境下的文件同步需求,整理如下:

(1)文件同步組件需要能夠獨立運行,不依賴其他第三方的軟件,同時能夠對監(jiān)控系統(tǒng)提供相關參數(shù)設計的接口,以確定文件同步方向、同步的文件類型等等。

(2)文件同步組件需要能夠同步2臺或2臺以上的計算機之間的文件數(shù)據(jù)同步,并且支持雙向同步功能。

(3)由于煤礦生產(chǎn)的特殊性,相關使用人員的軟件知識不高,文件同步組件需要盡量簡化參數(shù)配置,同時能支持實時修改設置功能。

針對以上需求,有了本文的這款文件同步組件的設計方案。

2? 方案設計

2.1? 業(yè)務流程

整個系統(tǒng)業(yè)務流程如圖1所示。

組件業(yè)務流程如下:

(1)文件同步組件以Windows服務的方式統(tǒng)一對外提供服務接口,在不同計算機上運行的業(yè)務軟件各自啟動安裝好的文件同步組件服務。

(2)業(yè)務軟件向文件同步組件注冊當前需要同步的業(yè)務信息。

(3)文件同步組件根據(jù)當前注冊的業(yè)務向網(wǎng)絡中廣播,并根據(jù)其他文件同步組件廣播的信息組織整理一張完整的業(yè)務同步拓撲圖,包含當前業(yè)務所包含的所有文件同步組件所在計算機的IP、業(yè)務信息,以及同步身份等。

(4)業(yè)務軟件設置當前文件同步組件的身份:源機、目標機。

(5)文件同步組件根據(jù)身份和業(yè)務自動同步網(wǎng)絡中其他的文件同步組件,保證各個計算機上的文件同源機上的一致。

文件同步組件沒有UI界面,所有交互都統(tǒng)一通過對外開放的WCF接口。

2.2? 系統(tǒng)總體結構

系統(tǒng)的總體結構如圖2所示。

文件同步組件支持多個客戶端,支持每個客戶端的不同業(yè)務文件的分類同步,各個子業(yè)務之間互不干擾。

組件的主要功能包括:用戶參數(shù)設置、文件同步兩大功能模塊,其中用戶參數(shù)設置主要是用來調(diào)整組件同步的相關設置,比如業(yè)務注冊、業(yè)務注銷、同步參數(shù)等等,用戶通過這些外部接口,來調(diào)整組件的運行狀態(tài)。文件同步模塊主要包括文件監(jiān)視、文件讀寫、節(jié)點維護等,文件監(jiān)視主要是監(jiān)視本地注冊的業(yè)務內(nèi)的所有文件,如果發(fā)生變動,則生成最新的文件hash并廣播通知,文件讀寫主要是要根據(jù)多線程的讀寫文件狀態(tài)來設置相應的鎖,防止出現(xiàn)文件被占用的情況,節(jié)點維護主要是收集整個網(wǎng)絡中的其他文件同步組件,并在本地內(nèi)存中形成一個同步的拓撲結構。

2.3? 關鍵技術

2.3.1? 心跳模塊設計

心跳模塊主要是用來按照一定的業(yè)務邏輯通過通信接口模塊向網(wǎng)絡中其他的文件同步組件發(fā)送心跳包,并解析自身接收到的心跳包。

其監(jiān)聽算法流程如圖3所示。

心跳模塊監(jiān)聽過程中,主要收到兩種信息包:常規(guī)身份信息包和文件變動廣播包。常規(guī)身份信息包主要包含自身文件同步組件所使用的網(wǎng)卡IP地址、組件當前的身份、組件的升成源機身份的時間等等,常規(guī)身份信息包可以幫助組件了解整個同步網(wǎng)絡的情況,并結合自身狀態(tài)進行身份的切換。文件變動廣播包主要是在當本地監(jiān)控的文件發(fā)生了變動后,向整個網(wǎng)絡廣播變動信息,使其他組件能夠及時獲取變動文件并更新自身的狀態(tài)。

為了防止網(wǎng)絡上的其他無效數(shù)據(jù)的干擾,心跳包需要做一些特殊的處理,比如所有字節(jié)的異或校驗、長度校驗等等,只有通過校驗的數(shù)據(jù)包才是組件能正常解析的心跳包,其他不符合的都將被丟棄。心跳包的設計方案如圖4所示。

2.3.2? 文件信息維護模塊設計

該模塊主要是用來定時監(jiān)視相關業(yè)務的文件系統(tǒng),當業(yè)務或業(yè)務對應的文件發(fā)生變動時,自動維護文件信息。

文件信息維護模塊算法流程如圖5所示。

組件為每一個業(yè)務創(chuàng)建一個文件監(jiān)視對象,該對象可以實時監(jiān)視該業(yè)務所包含的文件系統(tǒng),并將所有的文件的變動情況存儲于對象的隊列中。文件信息維護模塊遍歷所有業(yè)務,并循環(huán)遍歷該業(yè)務中的變動隊列,遍歷的同時檢查該文件是否處于正常狀態(tài),如果處于非正常狀態(tài)則將該變動信息置于隊列末尾,若處于正常狀態(tài)則處理該變動信息,檢查當前組件身份是否為源機,如果是目標機,則不需要處理,如果是源機,則生成UDP變動包并廣播通知其他目標機,其他目標機回歸根據(jù)變動包來主動獲取一次文件信息,其余時候則是定時獲取。

2.3.3? 文件同步模塊設計

該模塊主要是用來定時向源機獲取文件信息,并與本地文件信息列表進行比較,并根據(jù)相關規(guī)則決定是否同步該文件。

具體算法流程如圖6所示。

組件定時判斷自身的身份狀態(tài),如果是源機狀態(tài),則不需要進行處理,如果是目標機,則向目前網(wǎng)絡環(huán)境中的當前業(yè)務系統(tǒng)的源機發(fā)送文件信息請求,文件信息包括文件路徑、文件hash碼、文件當前狀態(tài)等一系列的內(nèi)容,目標機收到源機的回復后,和本地的文件進行比較,如果發(fā)現(xiàn)本地文件不存在或是和源機的hash碼不一致,則說明源機的文件發(fā)生了變動,需要下載對應的文件并覆蓋本地文件,這里需要注意的是,當源機被目標機下載文件時,防止多個目標機同時下載相同文件時發(fā)生讀寫失敗的問題,需要約定在同一業(yè)務中,同一時間只允許最多有一個文件在被下載,在文件被允許下載的時候,需要將該文件狀態(tài)設置為正在同步狀態(tài)。

3? 系統(tǒng)應用成果

系統(tǒng)開發(fā)完成后,筆者將該系統(tǒng)應用于實際的監(jiān)控系統(tǒng)中,軟件能夠正常同步兩臺監(jiān)控主機和備機之間的配置文件,并且同步的實時性較高。同步的文件可以指定特定的后綴,文件的變動類型包括新建、修改、刪除、改名,同時也支持子文件夾的目錄結構。在業(yè)務系統(tǒng)沒有特殊的通信接口的環(huán)境下,文件同步組件很好地彌補了不同系統(tǒng)間的文件保持同步的功能,試驗測試結果驗證了該系統(tǒng)的優(yōu)勢和實用性。

4? 結? 論

基于煤礦安全監(jiān)控系統(tǒng)的文件同步組件的設計與實現(xiàn),彌補了煤礦安全監(jiān)控系統(tǒng)的安全盲點,使得安全監(jiān)控系統(tǒng)的使用更符合安全規(guī)程,進而確保煤礦生產(chǎn)的安全性。該方案的設計不僅具有實踐意義,而且也能為將來的監(jiān)控系統(tǒng)的發(fā)展提供一定的參考意義。

參考文獻:

[1] 丁賢林.基于SVN的項目文檔管理系統(tǒng)實現(xiàn) [D].成都:電子科技大學,2012.

[2] 薛一波,易成岐.云存儲 [J].中興通訊技術,2012,18(1):57-60.

作者簡介:丁瑞琦(1981-),男,漢族,江蘇常州人,碩士研究生,研究方向:煤礦監(jiān)控類軟件設計與研發(fā)。