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

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

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

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

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

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

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

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

數據如何同步,同步過程如何保證準確、及時,是船舶維護保養信息處理的關鍵問題。本文針對這一過程中的不同部門需求,提出了一種面向船舶維護保養的數據同步方案。針對船體結構的日常維護保養要求,為船岸兩端編寫了軟件客戶端,同時提出了船舶數據同步過程中可能涉及問題的解決方案,如采用XML格式的同步文件表達、增量同步機制、同步文件壓縮處理、并發及死鎖的安全處理等。
在船舶生命周期管理過程中,涉及到的部門還有許多,這種數據同步方案使船舶營運公司高效進行維護保養的同時,全面、詳細的對船體結構狀態、設備狀態信息進行掌控,為船舶營運公司、船級社等部門可能進一步進行的結構計算、評估、決策等提供了必要的數據基礎。
[1]張俊,余劍峰.船舶異地協同設計設備資源庫設計[J].船舶工程,2006(1):50-53.
[2]李玉剛,紀卓尚,林焰.基于XML的船舶型值表表達標準化[J].中國造船,2008(3):79-86.
[3]賀澤.船舶協同設計及智力資源配置方法研究 [D].哈爾濱:哈爾濱工程大學,2006.
[4]邱長華,楊靜通,史東巖,等.基于STEP的船舶產品數據交換技術[J].船舶工程,2003(3):26-31.
[5]劉福順,唐寧九.利用Web服務和XML實現數據庫同步[J].計算機應用研究,2005(2):51-56.
[6]萬歷,吳麗琴,王啟付.PLM中產品數據的建模及其過程狀態的管理[J].微計算機信息,2007(11):4-6.
[7]張國華.船舶產品數據管理中BOM信息的研究[D].哈爾濱:哈爾濱工程大學,2004.
[8]景旭文,易紅,趙良才.船舶全壽期動態建模及其應用[J].中國造船,2006(2):59-62.
[9]Solid Quality Learning.SQL Server 2005 實現與維護[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及可視化、集成信息系統。E-mail:dayuchun@sina.com
陳 明(1972-),男,教授。研究方向:智能船舶CAD與集成信息系統。E-mail:chenming@dlut.edu.cn