于 淳 陳 明 李 巖
大連理工大學船舶CAD工程中心,遼寧大連 116024
面向船舶維護保養(yǎng)的分布數(shù)據(jù)同步
于 淳 陳 明 李 巖
大連理工大學船舶CAD工程中心,遼寧大連 116024
分布數(shù)據(jù)的同步是船舶維護保養(yǎng)工作中的重要內容,是船舶營運公司及時掌控船舶營運情況的重要手段。面向船舶營運公司分布數(shù)據(jù)庫(船端數(shù)據(jù)庫與岸端數(shù)據(jù)庫),建立了一種船舶維護保養(yǎng)過程中的數(shù)據(jù)同步方案,說明了現(xiàn)有的數(shù)據(jù)同步方案不能針對船體結構保養(yǎng)、格式表達擴展性差,附件不能進行傳輸,安全處理機制不夠完善等情況,論述了在維護保養(yǎng)流程中,同步數(shù)據(jù)的具體流向。同時,對數(shù)據(jù)同步過程中的主要技術問題,包括基于ADO.NET的XML同步文件表達、增量同步文件處理、同步附件壓縮處理、并發(fā)及死鎖的安全處理等進行了說明。
船舶;維護保養(yǎng);分布數(shù)據(jù);XML;數(shù)據(jù)同步
船舶產(chǎn)品是包含船體和各類舾裝、動力、電氣設備在內的復合集成產(chǎn)品[1],其數(shù)據(jù)本身是復雜而龐大的。船舶生命周期的不同階段,特別是對于船舶營運階段,對數(shù)據(jù)量有著極大的需求。營運船舶的維護保養(yǎng)工作中,對船體結構及機電等設備的數(shù)據(jù)處理是重中之重,是船舶公司實時掌握船舶營運狀態(tài),做出保養(yǎng)決策的重要內容。這些數(shù)據(jù)只有及時、可靠的在船岸間同步,才能使船舶狀態(tài)的監(jiān)控更為準確,維護保養(yǎng)工作更為高效,才能為船舶性能狀態(tài)的評估、營運工作的決策提供有效的信息資源。
現(xiàn)有的維護保養(yǎng)工作,僅針對船舶舾裝、電氣等設備有了數(shù)據(jù)管理方法及其軟件系統(tǒng),并有了相應的數(shù)據(jù)同步解決方案,且相關的軟件已投入使用。而對于船體結構的維護保養(yǎng),數(shù)據(jù)處理仍舊停留在紙質文檔和人工操作的階段,其相關數(shù)據(jù)還不能在船岸間同步,導致了這一過程中人工干預性強、數(shù)據(jù)時效性差、完整可靠性差、傳輸過程繁瑣,直接影響船體結構維護保養(yǎng)工作的效率。
現(xiàn)有的數(shù)據(jù)同步方案,如圖1所示。該方案中,多個營運船舶與岸端通過衛(wèi)星連線的方式發(fā)送同步郵件。同步郵件中,以附件的方式記錄了需同步數(shù)據(jù)的內容。船端向岸端發(fā)送維護保養(yǎng)情況的記錄,岸端向船端下達保養(yǎng)計劃指令的同時,對船端提交的記錄進行審核,岸端為多個客戶端并發(fā)程序,經(jīng)由公司服務器進行同步。船端與岸端的數(shù)據(jù)庫為分布式。

現(xiàn)有的數(shù)據(jù)同步方案僅用于船舶設備管理體系下,同時僅作用于以文字形式記錄保養(yǎng)情況的系統(tǒng),針對保養(yǎng)過程中的圖片、文檔、圖紙等,并不能進行同步;為節(jié)省帶寬,同步文件的提取格式多采用TXT文檔的形式傳輸,擴展性較差;對于同步過程中所可能出現(xiàn)的并發(fā)、死鎖等現(xiàn)象沒有相應的措施避免,使得在同步過程中,存在一定的安全隱患。
數(shù)據(jù)同步方案是針對船舶維護保養(yǎng)流程制定的,在此流程的基礎上,確定不同類別數(shù)據(jù)的具體流向。
本船舶維護保養(yǎng)體系如圖2所示。船端系統(tǒng)依照岸端制定規(guī)則進行維護保養(yǎng)。岸端制定維護保養(yǎng)清單,列出參與維護保養(yǎng)設備(包含船體結構單元及其他設備),將保養(yǎng)對象的基本屬性(位置,材料,重量等)導入設備卡后,在工作卡中為每個對象制定檢查的周期間隔,即保養(yǎng)級別。經(jīng)由數(shù)據(jù)同步至船端后,船端依此進行維護保養(yǎng),保養(yǎng)類型有月度、定期、航態(tài)等。船端可將保養(yǎng)情況經(jīng)數(shù)據(jù)同步導入岸端數(shù)據(jù)庫,供岸端機務人員審核。

圖2 船舶維護保養(yǎng)流程
保養(yǎng)記錄填寫及審核時,可為其添加附件,同步時與數(shù)據(jù)文件一起,以XML格式發(fā)送出去。
從系統(tǒng)架構上來看,如圖3所示,保養(yǎng)內容精確到板、梁,記錄了構件損壞及修理情況,記錄了艙室檢查情況,同時也包括了船舶涂層狀態(tài)的記錄,以及船舶機電設備的記錄等。

基于系統(tǒng)工作流程及其架構,確定數(shù)據(jù)同步的流向,如圖4所示。設備卡為船岸兩端共用內容,兩端均可修改后同步;定期、月度、航態(tài)、特殊指令等保養(yǎng)記錄均由岸端制定規(guī)則后,在船端生成,進行填寫;缺陷記錄為對于維護保養(yǎng)過程中發(fā)現(xiàn)的損壞情況的描述;涂層記錄、艙室評價記錄等均由船端填寫,單向同步至岸端。

本數(shù)據(jù)同步系統(tǒng)以CATIA平臺下的三維船體結構模型為對象,以MS-VS2005為編程工具,在系統(tǒng)中使用Dassault公司提供的免費3D模型瀏覽器3DXML Player進行模型的控制和選取,該瀏覽器以組件的形式嵌套在本系統(tǒng)中,并以MSSQLSERVER2005為數(shù)據(jù)庫工具進行架構,對現(xiàn)有的船岸數(shù)據(jù)同步方法進行了改進。在本系統(tǒng)中,CATIA建立的船舶結構模型輕量化存儲在每個軟件客戶端上,船岸兩端均具有各自的數(shù)據(jù)庫服務器。其中,船端為單機獨立訪問程序,岸端為多機并發(fā)訪問程序。在整個工作流程中,船舶3D模型不做修改,故不將其作為同步對象。
XML格式適用于存儲半結構化的數(shù)據(jù),其可擴展性即表現(xiàn)在元素和屬性是可以根據(jù)需要任意指定的。XML的這種可擴展性使得XML文檔是自描述的,且便于編程處理,因此可作為異構環(huán)境和網(wǎng)絡環(huán)境中的數(shù)據(jù)同步載體。XML格式文件需要有一種模式文件來對其進行定義、規(guī)定其內容及語義, 常見的用 DTD、Schema 和 Relax NG 3 種[2]。Schema具有相對較強的描述能力,且其本身也為XML文檔,故用其作為本系統(tǒng)中XML格式文件的模式文件,且在船岸兩端客戶端分別利用DES加密解密算法對XML文件進行了安全處理。
本文利用ADO.NET技術,在VB2005下編寫接口程序,提取/導入數(shù)據(jù)同步文件,提取流程如圖5所示,導入過程為其逆過程。
傳統(tǒng)的數(shù)據(jù)同步方式中,船岸兩端多以.txt文檔的形式描述同步數(shù)據(jù),這種方式不能滿足船體保養(yǎng)中附件傳輸?shù)男枰瑫r,接口程序編寫較為復雜,文件可擴展性差。利用XML文件進行數(shù)據(jù)同步,可將同步記錄涉及的附件文件封裝進來,同時接口程序易于編寫,有利于數(shù)據(jù)庫擴展。

船岸服務器端均編寫了SYN類作為數(shù)據(jù)同步的接口類,同時依托于其他數(shù)據(jù)庫基本操作、保養(yǎng)記錄更新等基本類,通過Adapter對象,將SQL操作作用于數(shù)據(jù)庫,將查詢結果提取至DataSet對象中。DataSet對象內包含若干個DataTable對象,記錄了同步數(shù)據(jù)對應表,表中內容僅為需同步數(shù)據(jù)的子集。DataSet對象進行轉換后,導出為XML文件及其Schema架構文件的形式。最后將二者封裝入RAR文檔內,作為電子郵件附件發(fā)送。接收端下載并對該XML及其架構文件進行讀取,轉換為一個DataSet對象,將其解析,也通過Adapter對象導入本地數(shù)據(jù)庫。
船岸數(shù)據(jù)同步通過E-Mail鏈路進行,兩端接口程序應用POP3、SMTP協(xié)議連接郵件服務器進行數(shù)據(jù)同步。同步方式為增量同步,即每條待同步記錄只包含于一個同步文件內。同時為每個同步文件以特定編碼形式進行唯一命名,圖4為同步文件命名示例。

SHIP用以唯一標識船舶名稱;第二位用CREW或COMPANY標識該文件來自船端還是岸端;SN標識該同步文件為該船所有同步文件中的第幾個;RN標識該文件屬于SN序列中的第幾個版本的文件,即某同步文件重發(fā)后,重發(fā)的文件RN自動加1,以進行唯一標識;DATE標識文件發(fā)送日期;最后一位用SEND或RECIEVE標識該郵件是同步郵件還是回執(zhí)郵件。
回執(zhí)機制借鑒于TCP/IP協(xié)議握手原理,接收端向發(fā)送端發(fā)送回執(zhí)后,發(fā)送端只有接收到對應回執(zhí)后,方可認為該文件同步成功。對于未收到回執(zhí)文件的情況,發(fā)送端設立回執(zhí)等待時限,若超時未收到,則自動重發(fā),直至正確接收回執(zhí)為止。
增量同步過程中,同步發(fā)送端對每一項同步記錄也以上述編碼在數(shù)據(jù)庫中進行標識,接口程序每次同步文件發(fā)送成功后,將該編碼賦予每一行同步記錄項,收到回執(zhí)后,將該編碼清空。而在未收到回執(zhí)的情況下,同步記錄項不允許修改。這一方式基于時間戳的概念,避免了不同同步文件對同一記錄的重復發(fā)送問題,同時也限制了數(shù)據(jù)同步時用戶并發(fā)修改的可能。
針對每一項維護保養(yǎng)記錄,均可對其添加附件(照片、文檔、圖紙),并在數(shù)據(jù)同步中進行發(fā)送。受船岸通信帶寬大小的限制,本系統(tǒng)中同步記錄對應附件可提取單獨發(fā)送,與同步記錄一同發(fā)送時,對于圖片附件的尺寸大小進行壓縮。圖片附件壓縮采用JEPG標準,用戶可通過對圖片質量參數(shù)進行設定,來達到壓縮圖片的目的。其算法流程如圖7所示。
首先,設定圖片質量為80%,得到圖片壓縮上限尺寸sizeMax。如果小于設定的圖片最小尺寸intMaxPicSize,則跳出循環(huán)。如不滿足要求,進行進一步壓縮。
設定圖片質量為0%,得到圖片壓縮下限尺寸sizeMin。如果壓縮后值大于設定的圖片最小尺寸intMaxPicSize,說明JPEG無法對圖片進行繼續(xù)壓縮,則跳出循環(huán),完成壓縮。

JPEG對圖像進行壓縮時,當圖片質量在0%~80%時,壓縮尺寸與壓縮大小近似滿足線性規(guī)律,因此進行線性插值循環(huán),進行壓縮。根據(jù)上限sizeMax(0),下限 sizeMin(0)和標準 intMaxPic-Size,進行線性插值,得出圖片質量i。如得出的附件滿足要求,退出循環(huán)。不滿足要求,得到新的sizeMax(1)和 sizeMin(1),繼續(xù)進行線性插值。 直到得到滿足要求的附件。
由于岸端程序為多個用戶并發(fā)操作,在數(shù)據(jù)同步過程中,有沖突發(fā)生的可能,導致同步數(shù)據(jù)的不真實性,為此必須采取相應的隔離技術來避免這一情況。SQL SERVER2005中的隔離級別(未提交讀、已提交讀、可重復讀、可序列化、快照)針對的是提交的數(shù)據(jù)庫事務請求。然而,由于同步數(shù)據(jù)涉及內容較復雜,不適用于事務操作,故采用單用戶同步的方式,即僅對管理員用戶開放數(shù)據(jù)同步權限。管理員一經(jīng)請求同步,客戶端調用數(shù)據(jù)庫存儲過程,自動將其他權限用戶暫時屏蔽且為避免同步錯誤的出現(xiàn),數(shù)據(jù)同步前,通過調用存儲過程,先將數(shù)據(jù)庫增量文件備份至數(shù)據(jù)庫服務器。一旦同步過程失敗,可將數(shù)據(jù)庫還原。同步完成后,自動恢復非管理員用戶的進程。
死鎖的產(chǎn)生,是由于資源占用的互斥情況,使資源的申請方永遠分配不到必需的資源而無法繼續(xù)進行工作。本數(shù)據(jù)同步體系下,可能在多用戶對同一記錄進行請求時發(fā)生死鎖。數(shù)據(jù)的增量同步解決了同步文件的重復修改問題。然而,若同步雙方恰好修改同樣的數(shù)據(jù)項,同時同步該內容,則導致互相鎖定數(shù)據(jù),不能進行修改,無法正確導入同步文件,同步不能正確進行,進入死鎖狀態(tài)。系統(tǒng)設定岸端優(yōu)先級大于船端;即船端無條件接受來自岸端的同步文件,即使待修改記錄標識為屬于某同步文件,也將其更新。
系統(tǒng)分為船端、岸端兩部分,在CATIA建立船舶模型的基礎上,通過CATIA瀏覽器3DXML Player開放的VB編程接口,將船舶3D輕量化模型與使用VB.NET編制程序的數(shù)據(jù)表進行交互操作,模型中構件或設備與數(shù)據(jù)表項唯一對應。數(shù)據(jù)項來源于系統(tǒng)SQL-Server數(shù)據(jù)庫。
船端系統(tǒng)中(圖8),船員選擇數(shù)據(jù)表記錄或模型中構件,填寫維護保養(yǎng)情況,通過數(shù)據(jù)同步(圖9),設置相應選項后,進行同步。
岸端系統(tǒng)中(圖10),岸端機務讀取船端維護保養(yǎng)內容,選擇數(shù)據(jù)表記錄或模型中構件,對船員維護保養(yǎng)情況進行審核,也通過數(shù)據(jù)同步,反饋給船員。

數(shù)據(jù)如何同步,同步過程如何保證準確、及時,是船舶維護保養(yǎng)信息處理的關鍵問題。本文針對這一過程中的不同部門需求,提出了一種面向船舶維護保養(yǎng)的數(shù)據(jù)同步方案。針對船體結構的日常維護保養(yǎng)要求,為船岸兩端編寫了軟件客戶端,同時提出了船舶數(shù)據(jù)同步過程中可能涉及問題的解決方案,如采用XML格式的同步文件表達、增量同步機制、同步文件壓縮處理、并發(fā)及死鎖的安全處理等。
在船舶生命周期管理過程中,涉及到的部門還有許多,這種數(shù)據(jù)同步方案使船舶營運公司高效進行維護保養(yǎng)的同時,全面、詳細的對船體結構狀態(tài)、設備狀態(tài)信息進行掌控,為船舶營運公司、船級社等部門可能進一步進行的結構計算、評估、決策等提供了必要的數(shù)據(jù)基礎。
[1]張俊,余劍峰.船舶異地協(xié)同設計設備資源庫設計[J].船舶工程,2006(1):50-53.
[2]李玉剛,紀卓尚,林焰.基于XML的船舶型值表表達標準化[J].中國造船,2008(3):79-86.
[3]賀澤.船舶協(xié)同設計及智力資源配置方法研究 [D].哈爾濱:哈爾濱工程大學,2006.
[4]邱長華,楊靜通,史東巖,等.基于STEP的船舶產(chǎn)品數(shù)據(jù)交換技術[J].船舶工程,2003(3):26-31.
[5]劉福順,唐寧九.利用Web服務和XML實現(xiàn)數(shù)據(jù)庫同步[J].計算機應用研究,2005(2):51-56.
[6]萬歷,吳麗琴,王啟付.PLM中產(chǎn)品數(shù)據(jù)的建模及其過程狀態(tài)的管理[J].微計算機信息,2007(11):4-6.
[7]張國華.船舶產(chǎn)品數(shù)據(jù)管理中BOM信息的研究[D].哈爾濱:哈爾濱工程大學,2004.
[8]景旭文,易紅,趙良才.船舶全壽期動態(tài)建模及其應用[J].中國造船,2006(2):59-62.
[9]Solid Quality Learning.SQL Server 2005 實現(xiàn)與維護[M].施平安,譯.北京:清華大學出版社,2007.
A Design Solution of Ship Maintenance-Oriented Distributed Data Synchronization
Yu Chun Chen Ming Li Yan
Ship CAD Engineering Center, Dalian University of Technology, Dalian 116024, China
Synchronization of distributed data is of importance to ship maintenance, which is an efficient means required for ship operating company to access real-time information of ship operation status.This paper is to give a kind of data synchronization solution for ship maintenance based on the distributed database (both ship-based database and shore-based database) of ship operating company.The disadvantages of existing data synchronization such as failure of addressing the hull structure maintenance,poor extension of format expression,untransmittability of attachment and insufficient security handling mechanism are presented.The flows of synchronized data specific for maintenance process are also examined.In addition, the main technical issues with regard to the existing data synchronization are investigated, including expression of ADO.NET-based XML synchronization files, processing of incremental synchronization documents, synchronization attachments compression, security handling of concurrent and deadlock, etc.
ship; maintenance;distributed data;XML;data synchronization
U672.7
A
1673-3185(2010)06-78-06
10.3969/j.issn.1673-3185.2010.06.016
2009-09-16
于 淳(1984-),男,碩士研究生。研究方向:智能船舶CAD及可視化、集成信息系統(tǒng)。E-mail:dayuchun@sina.com
陳 明(1972-),男,教授。研究方向:智能船舶CAD與集成信息系統(tǒng)。E-mail:chenming@dlut.edu.cn