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

?

船舶管理系統(tǒng)船岸數(shù)據(jù)同步機(jī)制分析

2015-10-21 01:27:00肖金赫鄧義斌
船海工程 2015年3期
關(guān)鍵詞:服務(wù)程序總庫線程

肖金赫,鄧義斌

(1.中國船級社武漢分社,武漢430022;2.武漢理工大學(xué)能源與動力工程學(xué)院,武漢430063)

船舶管理系統(tǒng)船岸數(shù)據(jù)同步機(jī)制分析

肖金赫1,鄧義斌2

(1.中國船級社武漢分社,武漢430022;2.武漢理工大學(xué)能源與動力工程學(xué)院,武漢430063)

針對船舶管理系統(tǒng)網(wǎng)絡(luò)特點及其獨特的分布式數(shù)據(jù)庫同步需求,分析船岸數(shù)據(jù)同步更新機(jī)制,以數(shù)據(jù)同步組件方式,從數(shù)據(jù)采集、網(wǎng)絡(luò)數(shù)據(jù)交互模型、數(shù)據(jù)緩存、數(shù)據(jù)同步流程等方面設(shè)計和實現(xiàn)船岸數(shù)據(jù)同步。通過軟件技術(shù)解決數(shù)據(jù)同步的可靠性問題,為船舶管理系統(tǒng)的數(shù)據(jù)同步提出可行的解決方案。

船舶管理系統(tǒng);分布式數(shù)據(jù)庫;數(shù)據(jù)同步;觸發(fā)器

現(xiàn)代船舶電氣自動化程度越來越高,已從單一設(shè)備、子系統(tǒng)向全船綜合自動化發(fā)展[1],部分設(shè)備和船舶的整體狀況已能夠通過網(wǎng)絡(luò)實現(xiàn)岸基自動管理。船舶岸基自動化管理有助于航行安全,包括船隊的管理協(xié)調(diào)、船舶事故原因分析、船舶設(shè)備狀態(tài)監(jiān)控[2]、船舶的維修保養(yǎng)指導(dǎo),以及行政主管部門的監(jiān)管等;有助于提高航運(yùn)企業(yè)的經(jīng)營效率,降低生產(chǎn)成本。由于水運(yùn)的特殊性,其通信不像岸上通信方便、穩(wěn)定和同步,并且船舶具有的分散性、流動性及船岸分離等特點,使多數(shù)船舶管理系統(tǒng)采用分布式數(shù)據(jù)庫的架構(gòu)。

構(gòu)建一個數(shù)據(jù)庫首先要確定該船的主要功能和主要技術(shù)參數(shù)[3],每一艘船舶都是分布式數(shù)據(jù)庫系統(tǒng)中具有個性的獨立的數(shù)據(jù)庫。而分布式數(shù)據(jù)庫的同步是一項復(fù)雜的系統(tǒng)工程,在數(shù)據(jù)的采集、打包、傳輸、解包及更新等步驟中面臨著一致性、安全性、高效性等特殊要求[4-5]。一些商業(yè)數(shù)據(jù)庫廠商提出較為通用的數(shù)據(jù)庫復(fù)制方案,如基于電子郵件的同步方式、基于FTP的數(shù)據(jù)同步方式及數(shù)據(jù)同步組件方式,等[6],但仍無法滿足用戶的多樣性需求[7]。目前,分布式數(shù)據(jù)庫通信方式以移動載體數(shù)據(jù)庫和無線網(wǎng)絡(luò)應(yīng)用為主。薛明剛等[8]將基于電子郵件的船岸數(shù)據(jù)同步方式用于船舶燃料監(jiān)測系統(tǒng),但是存在郵件丟失和郵件的發(fā)送和接收順序不一致的情況,使數(shù)據(jù)同步變得非常復(fù)雜。因此需要針對船舶管理系統(tǒng)較為獨特的船岸同步需求,設(shè)計靈活方便的數(shù)據(jù)同步組件,使船舶管理系統(tǒng)從岸基版擴(kuò)展到船舶版,實現(xiàn)完整的船岸一體化船舶管理系統(tǒng)。

1 需求概述

1.1 分布式數(shù)據(jù)庫系統(tǒng)網(wǎng)絡(luò)架構(gòu)

大多數(shù)船舶管理系統(tǒng)采用分布式數(shù)據(jù)庫系統(tǒng)網(wǎng)絡(luò)架構(gòu),見圖1。

圖1 分布式數(shù)據(jù)庫系統(tǒng)網(wǎng)絡(luò)架構(gòu)

總庫數(shù)據(jù)服務(wù)器是岸基版船舶管理系統(tǒng)的數(shù)據(jù)中心,匯集整個系統(tǒng)的數(shù)據(jù)。各分庫布置在相應(yīng)的船舶上,只管理與本船相關(guān)的數(shù)據(jù)信息。不管是船舶版還是岸基版的船舶管理系統(tǒng),只對本地數(shù)據(jù)庫進(jìn)行操作,通過總庫與各分庫的數(shù)據(jù)同步來完成系統(tǒng)的數(shù)據(jù)更新。這種架構(gòu)優(yōu)點突出[9]。

1.2 船舶管理系統(tǒng)數(shù)據(jù)庫的技術(shù)特點

1)為方便進(jìn)行船岸數(shù)據(jù)交換,保持船端和岸端數(shù)據(jù)庫結(jié)構(gòu)的一致性,并且把船岸業(yè)務(wù)數(shù)據(jù)在數(shù)據(jù)表層面上分離,把船舶版的管理數(shù)據(jù)與岸基版的管理數(shù)據(jù)分別設(shè)計在不同的數(shù)據(jù)表中。

2)為保持?jǐn)?shù)據(jù)一致性同時減小數(shù)據(jù)傳輸量,在數(shù)據(jù)交換時,船舶分庫的變更數(shù)據(jù)全部更新至岸基總數(shù)據(jù)庫,而僅把總庫中與該船相關(guān)的數(shù)據(jù)更新至相應(yīng)的分庫。

1.3 數(shù)據(jù)庫之間的網(wǎng)絡(luò)狀況特點

總庫所在網(wǎng)絡(luò)有固定IP影射到外網(wǎng)。分庫所在網(wǎng)絡(luò)為動態(tài)分配IP,無固定IP,環(huán)境不穩(wěn)定,但都可以保證有連接機(jī)會。

1.4 數(shù)據(jù)同步功能要求和特點

1)記錄分庫的數(shù)據(jù)變更,定時同步分庫變更數(shù)據(jù)到總庫。

2)記錄總庫的數(shù)據(jù)變更,將總庫變更數(shù)據(jù)同步到相應(yīng)的分庫??値觳⒉皇前讶孔兏鼣?shù)據(jù)同步到分庫,而是把與該分庫有關(guān)的變更數(shù)據(jù)進(jìn)行同步。

3)各分庫之間不需要進(jìn)行數(shù)據(jù)同步。

4)鑒于船岸網(wǎng)絡(luò)連接的不穩(wěn)定,必須采用一種可靠的工作機(jī)制,保證同步數(shù)據(jù)的正確性。

1.5 設(shè)計程序框架

根據(jù)數(shù)據(jù)庫部署的網(wǎng)絡(luò)結(jié)構(gòu),采用C/S程序架構(gòu),在總庫所在網(wǎng)絡(luò)的外網(wǎng)服務(wù)器部署總庫同步服務(wù)端,在分庫所在的網(wǎng)絡(luò)部署分庫同步服務(wù)端。為了方便開發(fā)和維護(hù),把數(shù)據(jù)同步程序集成在一起開發(fā),形成一個同步服務(wù)程序,通過配置文件來決定該同步服務(wù)程序是分庫還是主庫,方便更新和維護(hù)。

1)數(shù)據(jù)庫自動同步配置工具。同步服務(wù)配置程序,負(fù)責(zé)定制同步任務(wù)和網(wǎng)絡(luò)通信的基礎(chǔ)參數(shù)。

2)數(shù)據(jù)同步服務(wù)程序。負(fù)責(zé)查詢本地數(shù)據(jù)庫,將變更數(shù)據(jù)發(fā)送到遠(yuǎn)端同步程序,同時負(fù)責(zé)把遠(yuǎn)端發(fā)來的數(shù)據(jù)寫入數(shù)據(jù)庫。

3)上傳數(shù)據(jù)任務(wù)。分庫上傳到總庫的查詢?nèi)蝿?wù),任務(wù)在分庫配置程序定義。

4)接受數(shù)據(jù)任務(wù)。分庫接收總庫數(shù)據(jù)的查詢?nèi)蝿?wù),任務(wù)在分庫配置程序定義,通過網(wǎng)絡(luò)發(fā)送到總庫服務(wù)端,總庫服務(wù)端將會依據(jù)這個查詢?nèi)蝿?wù)來查詢要同步的數(shù)據(jù),發(fā)送給分庫服務(wù)程序。

5)分庫數(shù)據(jù)時間戳。分庫只會從總庫下載這個時間以后的數(shù)據(jù)。

6)同步服務(wù)網(wǎng)絡(luò)配置參數(shù)。

7)本地修改緩存。從網(wǎng)絡(luò)端傳來的數(shù)據(jù),不會直接寫入數(shù)據(jù)庫,先存入本地修改緩存,只有全部網(wǎng)絡(luò)數(shù)據(jù)交互完畢才會把本地修改緩存數(shù)據(jù)寫入數(shù)據(jù)庫。

8)本地刪除緩存。分庫把數(shù)據(jù)傳到網(wǎng)絡(luò)的同時,會把這些數(shù)據(jù)寫入本地刪除緩存,待全部同步數(shù)據(jù)交互完畢才會執(zhí)行對數(shù)據(jù)庫的刪除。

9)注冊啟動數(shù)據(jù)同步服務(wù)。

10)停止反注冊數(shù)據(jù)同步服務(wù)。

11)異常日志。

2 數(shù)據(jù)同步方案

2.1 數(shù)據(jù)采集

采用差異同步法得到最小數(shù)據(jù)變動集,進(jìn)行數(shù)據(jù)同步可以減小傳輸數(shù)據(jù)量[10]。利用數(shù)據(jù)庫自身的數(shù)據(jù)觸發(fā)器功能來實現(xiàn)數(shù)據(jù)庫的變更記錄,對每張表建立一個變更記錄表,變更記錄表比原表多兩個字段。

1)字段一,標(biāo)識本次數(shù)據(jù)操作是Insert還是Delete,對于數(shù)據(jù)庫記錄的上傳數(shù)據(jù)操作,數(shù)據(jù)庫實際上是先執(zhí)行Delete,然后執(zhí)行一次Insert,因此,一條記錄的上傳數(shù)據(jù)操作,將會產(chǎn)生2條記錄到變更記錄表。

2)字段二,數(shù)據(jù)類型為datetime,記錄數(shù)據(jù)的變更時間。

對原表進(jìn)行的所有數(shù)據(jù)操作將會記錄到相應(yīng)的變更記錄表中。

2.2 數(shù)據(jù)交互模型

鑒于網(wǎng)絡(luò)傳輸數(shù)據(jù)的不穩(wěn)定性,分庫與主庫通過網(wǎng)絡(luò)交互數(shù)據(jù)時,并不直接寫入數(shù)據(jù)庫,而是存入本地緩存文件,當(dāng)網(wǎng)絡(luò)數(shù)據(jù)交互完畢,對數(shù)據(jù)庫的操作無異常發(fā)生時,才是一次有效的同步。主庫與分庫的網(wǎng)絡(luò)交互模型見圖2。

圖2 主庫與分庫之間的數(shù)據(jù)同步模型

2.3 數(shù)據(jù)庫寫入緩存設(shè)計

數(shù)據(jù)緩存分為2類,分別為修改緩存和刪除緩存,兩者結(jié)構(gòu)完全相同,其作用如下。

1)從遠(yuǎn)端網(wǎng)絡(luò)發(fā)來的同步數(shù)據(jù)記錄,這些記錄將會寫入本地數(shù)據(jù)庫的原始表中,因此把這些數(shù)據(jù)寫入本地的修改緩存文件。

2)本地備份表的變更記錄,在發(fā)送到遠(yuǎn)端服務(wù)器成功后,需要寫入刪除緩存文件。

2.4 數(shù)據(jù)同步流程設(shè)計

總庫同步服務(wù)程序啟動后,就啟動網(wǎng)絡(luò)監(jiān)聽線程,等待分庫發(fā)起同步連接??値焱焦ぷ髁鞒桃妶D3,有3類線程。

1)等候網(wǎng)絡(luò)連接線程。等待分庫的服務(wù)程序接入。

2)接收和發(fā)送同步數(shù)據(jù)線程。與分庫同步線程進(jìn)行交互,傳遞和接收同步數(shù)據(jù),同時把數(shù)據(jù)寫入本地緩存文件。

3)枚舉緩存線程。枚舉本地數(shù)據(jù)緩存文件,寫入數(shù)據(jù)庫,支持?jǐn)帱c寫入。

圖3 總庫同步服務(wù)工作流程圖

分庫同步工作流程見圖4。

分庫同步服務(wù)程序啟動后,分庫同步申請線程將定時發(fā)起,定時時間間隔由用戶設(shè)置。線程首先枚舉修改緩存和刪除緩存,寫入數(shù)據(jù)到數(shù)據(jù)庫;然后向服務(wù)器發(fā)起連接,連接成功后查詢本分庫的數(shù)據(jù)變更集,發(fā)到服務(wù)器端,在收到服務(wù)器端寫入緩存完畢的反饋后,將本地數(shù)據(jù)變更集刪除。至此,分庫數(shù)據(jù)向總庫更新傳輸過程已完成,將數(shù)據(jù)更新到總庫服務(wù)器的工作由服務(wù)器端的枚舉緩存線程完成。此后分庫同步服務(wù)將向總庫服務(wù)器申請將總庫有關(guān)本分庫的數(shù)據(jù)更新同步到本分庫中。首先將該分庫的數(shù)據(jù)同步配置文件中下載任務(wù)列表發(fā)送到總庫服務(wù)器。對于一些所有分庫都需要的公共基礎(chǔ)數(shù)據(jù),可以不指定查詢條件;而對于本船相關(guān)的數(shù)據(jù),可以在下載任務(wù)列表中將船舶作為查詢條件,由總庫服務(wù)器從數(shù)據(jù)庫中查詢出相關(guān)數(shù)據(jù)形成數(shù)據(jù)包,發(fā)送到相應(yīng)的分庫,由分庫同步服務(wù)線程寫入數(shù)據(jù)庫,從而完成主庫與分庫之間的同步數(shù)據(jù)傳輸。

圖4 分庫同步服務(wù)程序工作流程

由于各分庫數(shù)據(jù)同步時間不一致,而且總庫上一些公共數(shù)據(jù)變更,每個分庫都需要進(jìn)行同步,所以不能對服務(wù)器端的變更記錄表進(jìn)行刪除操作,因此引入上次下載時間戳,每次同步后,在分庫保留一個時間戳,這個時間戳記錄該分庫取得服務(wù)器變更數(shù)據(jù)的最后時間,當(dāng)下次同步查詢數(shù)據(jù)時,把上次時間戳反饋給總庫服務(wù)端,總庫服務(wù)根據(jù)分庫的時間戳,過濾出該時間以后的變更數(shù)據(jù)進(jìn)行同步。

3 數(shù)據(jù)同步的可靠性論證

1)數(shù)據(jù)傳輸。構(gòu)建本地緩存能有效避免由于網(wǎng)絡(luò)不穩(wěn)定造成數(shù)據(jù)丟失引發(fā)的數(shù)據(jù)不一致問題。通過網(wǎng)絡(luò)交互邏輯來保證正確有效的緩存才是一次完整的同步數(shù)據(jù)傳輸操作,從而解決網(wǎng)絡(luò)不穩(wěn)定可能引發(fā)的問題。

2)緩存數(shù)據(jù)寫入數(shù)據(jù)庫。從緩存向數(shù)據(jù)庫寫入數(shù)據(jù)時,記錄寫入的斷點。一旦數(shù)據(jù)庫服務(wù)器斷電或應(yīng)用程序異常崩潰,下次程序啟動時,可以接續(xù)斷點向數(shù)據(jù)庫寫入數(shù)據(jù),從而保證數(shù)據(jù)庫的數(shù)據(jù)完備性。

3)數(shù)據(jù)沖突。由于船岸數(shù)據(jù)表分離,業(yè)務(wù)流程產(chǎn)生的船岸數(shù)據(jù)不會發(fā)生沖突;對于一些公共基礎(chǔ)數(shù)據(jù),全都由總庫在負(fù)責(zé)管理,同步到各分庫也不會發(fā)生沖突,而各分庫的專用數(shù)據(jù)都有船舶編碼作為主鍵,也保證不會發(fā)生數(shù)據(jù)沖突。

4 結(jié)束語

該數(shù)據(jù)同步更新機(jī)制的實時性受制于網(wǎng)絡(luò)環(huán)境,但只要有可用網(wǎng)絡(luò),數(shù)據(jù)同步就會自動進(jìn)行,并且能保證數(shù)據(jù)的一致性和完備性,這非常適用于實時性要求不那么嚴(yán)格的船舶管理等相關(guān)業(yè)務(wù),從而為實現(xiàn)完整的船岸一體化船舶管理系統(tǒng)奠定基礎(chǔ)。

目前該技術(shù)已在長江上航行的某些船舶上成功應(yīng)用,其數(shù)據(jù)同步效果良好。

[1]劉沿陽,邵 旻.艦船綜合自動化系統(tǒng)的現(xiàn)狀與發(fā)展趨勢[J].船舶工程,2006,28(2):63-66.

[2]吳志東,楊士喜.基于3G無線通信網(wǎng)絡(luò)的船舶遠(yuǎn)程監(jiān)控系統(tǒng)研究[J].船海工程,2011(5):16-19.

[3]張茴棟,何炎平.基于EXCELL的ACCESS起重船數(shù)據(jù)庫的實現(xiàn)[J].船海工程,2010(3):5-9.

[4]IQBAL H,MUHAMMAD M A.SQL query based data synchronization in heterogeneous database environment[C]∥2012 International Conterence on Computer Communication and Informatics(ICCCI2012),Jan,10-12, 2012,Coimbatore,INDIA,2012:1-5.

[5]ZHANG Y H,KANG P.The data synchronization server design based on middleware technology[C]∥2010 2nd International Conference on Computer Engineering and Technology,2010(3):462-466.

[6]姜亦學(xué).分布式數(shù)據(jù)庫系統(tǒng)同步技術(shù)研究[D].長春:長春理工大學(xué),2008.

[7]LOU X A,CHEN J,YUAN P.The design and implementation of data synchronization mechanism in the food tracing system[C]∥Advances in Computer Science,Environment,Ecoinformatics,and Education-International Conference 2011,Part V,Communications in Computer and Information Science,2011:175-179.

[8]薛明剛,徐承飛,趙衛(wèi)麗,等.船岸一體化數(shù)據(jù)同步的實現(xiàn)[J].中國修船,2011,24(1):21-24.

[9]閔 媛,熊前興.移動數(shù)據(jù)庫數(shù)據(jù)同步技術(shù)研究[J].武漢理工大學(xué)學(xué)報:交通科學(xué)與工程版,2008,32 (2):156-159.

[10]孫廣雨,山 嵐.數(shù)據(jù)同步中差異數(shù)據(jù)捕獲的設(shè)計與實現(xiàn)[J].北京化工大學(xué)學(xué)報:自然科版,2011,38 (3):125-128.

Data Synchronization Mechanism for Ship Management System

XIAO Jin-he1,DENG Yi-bin2
(1Wuhan Branch of China Classification Society,Wuhan 430000,China; 2 School of Energy and Power Engineering,Wuhan University of Technology,Wuhan 430063,China)

According to network architecture features of ship management system and its unique requirements of distributed database synchronization,the ship-to-shore data synchronization updatemechanism is researched.Bymeans of data synchronization components,the ship-to-shore data synchronization is designed and realized in aspects of the data acquisition,network data interactionmodel,data caching and data synchronization process.The reliability of data synchronization is ensured by software technology,offering feasible solutions to the data synchronization of ship management system.

ship management system;distributed database;data synchronization;trigger

10.3963/j.issn.1671-7953.2015.03.030

U692

A

1671-7953(2015)03-0128-04

2015-02-09

修回日期:2015-03-10

交通運(yùn)輸部科技項目(2012lg0122)

肖金赫(1977-),男,碩士,工程師

研究方向:船舶電氣系統(tǒng)檢驗

E-mail:jhxiao@ccs.org.cn

猜你喜歡
服務(wù)程序總庫線程
基于移動終端的人事信息員工自助服務(wù)系統(tǒng)設(shè)計
基于C#的進(jìn)程守護(hù)程序的設(shè)計
視聽(2020年3期)2020-06-11 14:28:18
“中國知網(wǎng)”《現(xiàn)代電生理學(xué)雜志》發(fā)行與傳播統(tǒng)計報告
關(guān)于我刊實行《中國學(xué)術(shù)期刊網(wǎng)絡(luò)出版總庫》“刪除學(xué)術(shù)不端文獻(xiàn)的暫行辦法”的通知
淺談linux多線程協(xié)作
水利工程施工監(jiān)理服務(wù)程序及質(zhì)量控制
告 示
本刊2012年論文下載排行(以“中國學(xué)術(shù)期刊網(wǎng)絡(luò)出版總庫”統(tǒng)計)
Linux線程實現(xiàn)技術(shù)研究
么移動中間件線程池并發(fā)機(jī)制優(yōu)化改進(jìn)
兴山县| 晋江市| 丰城市| 江川县| 甘孜县| 南岸区| 和龙市| 章丘市| 丰都县| 富锦市| 青神县| 彰武县| 慈利县| 潼南县| 抚远县| 怀远县| 惠州市| 霍山县| 平定县| 彩票| 扎兰屯市| 盘山县| 阿勒泰市| 南丹县| 闻喜县| 温州市| 云南省| 新宁县| 黔南| 射洪县| 金湖县| 台中市| 江陵县| 新闻| 苍山县| 沙坪坝区| 循化| 永济市| 平湖市| 馆陶县| 大连市|