于 淳 陈 明 李 岩
大连理工大学船舶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