船舶轴系试验台架文件型监测数据备份方法

2021-08-04 08:11王金璐周建辉
中国修船 2021年3期
关键词:数据备份服务端轴系

罗 恒,王金璐,孙 锋,周建辉,刘 杰

(1.中国舰船研究设计中心,湖北 武汉 430064;2.武汉理工大学能源与动力工程学院,湖北 武汉 430063)

在船舶轴系试验台架的试验过程中,会产生大量的台架监测数据,这些数据主要以数据库存储及文本存储2种主要形态进行保存[1-2]。对振动、视频图像等监测类型数据,用文件进行保存的形式具有优势,在实际项目中大多采用这一方式。为提高数据的安全性,防止意外灾害等情况下导致的数据丢失,一般都需要采用数据备份的处理方法,其中又以异地双机热备份的方式最为常见[3-4]。当前类似的软件程序如FreeFileSync等,在进行文件备份时主要是设置一定的时间间隔对监视的文件夹进行迭代式扫描,判断出发生改变的文件后对其进行文件备份[5]。此方式设计简单,但是需要使用定时器对文件夹进行全扫描,耗费计算机资源较多,运行效率低[1];对文件进行异地计算机备份操作时,需要通过网上邻居来指定备份路径,需要用户手动操作较多,体验较差[6]。

1 文件型监测数据备份的特征分析

船舶轴系试验台架监测数据的存储方式有文件存储和数据库存储2种主要方式。数据库系统以记录和字段为单位进行数据存储,可以实现整体数据的结构化、减少数据冗余、提高数据的读取速度;这种方式比较适合对温度、压力等单次监测数据量小的测试数据的存储。文件存储通过以文件为单位来组织数据存储,将一批数据组织成一个相对独立的数据文件;这种方式特别适合轴系试验台架的振动监测等数据的存储。对振动监测数据,因为采样频率很高,一次测试即使只持续采集几秒钟,也会产生上万行到几十万行的子数据,这种数据如果用数据库表直接存储,记录量太大,对数据库形成比较大的负载压力,而该类数据具有严格的时间序列特征,不需要进行排序、查找等典型的数据库操作;因此,将一次测试的数据用文件保存,而将该文件的路径信息保存到数据库,以实现文件的索引,这种方式具有更好的处理效率。

本文设计一种新的船舶轴系试验台架监测数据备份软件,其在进行本地存储时,使用配置文件来减少人为操作步骤并提高运行效率和计算机资源利用率;在进行异计算机备份数据操作时,使用网络通信TCP/IP协议传送文件数据进行双机远程备份,能够降低对操作系统依赖度,同时也能减少人为操作步骤和操作难度,提高人机交互能力。

2 方案设计

2.1 整体设计

针对文件型监测数据的备份,主要有本地备份和异地备份2种需求,本地备份是在文件所在的计算机上设定一个备份目录,将源文件备份到该备份目录;异地备份则是在另外一台计算机上创建备份目录。在设计备份处理程序时,将源文件复制到本机备份目录或者通过网络传输到异地的备份目录都有比较成熟的解决方案。问题的难点在于如何发现来源文件目录的文件变动事件。如新增加了一个文件、文件的修改、文件的删除等。采用定时器对文件目录进行扫描,再比较2次扫描之间的差异,从而获取到文件的变动,这种处理方式的效率太低。在Windows操作系统中,提供了一个文件系统监视器(FileSystemWatcher)组件,通过该组件,设定需要监控的文件夹目录及其子目录,监控目录下的任何文件事件都会发出一个消息,并被该组件所在的程序获取到。通过该组件就能很容易获取到特定目录下的文件变动事件,高效简单地实现获取来源文件的目的。图1所示为轴系试验数据备份软件处理流程。

图1 轴系试验数据备份软件处理流程

2.2 文件系统监视器

文件系统监视器(File SystemWatcher)是本文用到的主要工具之一,该工具为微软公司从Visual Studio 2008版本之后提供的一个组件,其主要功能是监控指定目录(可以包括其下的子目录)中的文件创建、删除、改动、重命名等事件,并发出相应的事件[3],开发的程序通过处理这些事件以实现特定的效果。该组件可以动态地定义需要监控的文件类型及文件属性改动的类型,以提供更精确的文件事件消息。

文件系统监视器可以通过属性来设定和配置相关的行为,最主要的几个属性如下。

①监测路径(Path)属性:用于设定需要获取文件夹相关文件系统事件的目录路径;②是否包括子目录(IncludeSubdirectories)属性:设置是否关联监视指定路径中的子目录;③文件类型过滤(Filter)属性:设置筛选字符串,用于确定在目录中监视的文件类型;④文件事件类型过滤(NotifyFilter)属性:设置目录下的哪些文件事件会被监测和触发监视事件,当同时监视多个文件属性的变动时要用“或”组合;⑤启用事件监听(Enable-Raising Events)属性:设置程序是否开始监听,默认为“非(False)”,所以需要在程序的初始化时就设置此属性值为“是(True)”。

文件系统监视器本身是一个多线程的控件,每实例化一个对象都会自动创建一个线程。由于开发的备份软件只需要在后台运行,只用记录备份信息,不需要界面展示,所以不需要进行跨线程的数据访问。如果需要同时监控多个文件目录,只需要创建其类型数组,每个文件目录使用一个对象进行监控即可。

2.3 网络通信TCP/IP协议

网络通信是本文实现异地双击备份用到的文件传输方法,其利用相关接口和协议通过网络线路传输数据信息到网络计算机上,从而实现2台计算机的远程信息交互[4]。本文使用最广泛的就是TCP/IP协议来完成数据交互。TCP/IP协议通常可以概括为4层:应用层、传输层、网络层和网络接口层。TCP/IP协议[5]按照层次由上到下,层层包装。最上面的是应用层,这里面有http等我们熟悉的协议。第二层是传输层,其中的TCP和UDP协议就在这个层次。第三层是网络层,IP协议就在这里,它负责对数据加上IP地址和其他的数据以确定传输的目标。第四层是网络接口层,也就是物理层,通信信息最后都会通过物理媒介进行传输。本文直接使用网络开发中封装好的Socket编程接口来进行网络数据传输。

2.4 程序实现流程

本地备份是指数据接收处理后,直接在本地进行实验数据备份,备份速度快。本地备份处理流程图如图2所示。

图2 本地备份处理流程图

在本地备份任务中,直接使用.net提供的IO数据流读取数据,然后在硬盘指定位置写数据即可。根据网络通信TCP/IP协议的特点,异地双机备份的程序分为服务端和客户端,本文设计异地备份目的计算机为服务端,本地数据产生计算机为客户端。此设计的优点是只有在有需要备份的文件时才进行2台计算机的连接和数据通信,可以节省本地计算机的计算资源,更好的为数据采集和处理服务。异地双机备份处理流程图如图3所示。

图3 异地双机备份处理流程图

当本地计算机产生需要备份的文件时,客户端软件中的文件系统监视器会丢出相应事件,促使客户端向服务端发送连接请求。客户端同服务端连接成功后,发送备份数据到服务端。然后服务端接收并保存数据,同时反馈备份信息。客户端通过反馈信息判断备份是否成功,成功则关闭与服务器的连接,失败则再次发送备份数据。

程序设计为可以保存用户设置的配置信息,以便能够自动完成备份任务。设计使用ini文件保存配置信息,其不仅可以使程序快速读取和保存配置信息,用户还可以手动按照ini格式自己修改配置信息。保存的配置信息主要包括远程计算机的IP地址、程序端口号、监视和保存的备份文件全路径及程序关闭密码。使用程序关闭密码是为了保证程序的安全稳定运行,防止人为操作失误导致的程序关闭。

2.5 数据发送格式

异地备份机制中使用网络通信TCP/IP协议时,设计以字节格式发送数据[6]。字节第一位表示文件更改类型,有4种类型——1表示新建(Created)类型,2表示删除(Deleted)类型,4表示修改(Changed)类型,8表示重命名(Renamed)类型。字节第二位表示文件或文件夹,0为文件,1为文件夹。字节后面的内容按照更改类型的不同而有所不同,Created类型和Deleted类型在后面只需要添加文件或文件夹的路径即可,Renamed类型需要在后面添加更改前和更改后的文件或文件夹名,Changed类型则需要在后面添加文件或文件夹路径和文件内容。文件或文件夹的路径名和文件内容都是以字符串的形式保存的,所以需要将字符串类型转换成字节类型。

将备份文件按照设计的方式以字节形式整合完毕后,通过网络通讯协议发送字节数据到服务端,对数据进行分析备份。服务端接收到字节数据后,通过解析字节数据来获得备份信息和备份文件,完成备份任务。

3 异常处理方式

数据备份程序由多个环节组成,异地备份任务中也需要2台计算机进行网络通信,因此在实际运行过程中可能发生异常,需要对相关异常进行处理,以提高程序的容错能力。主要可能发生的异常情景如下。

1)连接服务端时出现错误。不能连接到指定的异地备份服务端,有可能是服务端没启动或者服务端的IP地址或端口号错误,应检查服务端状态,保证运行正常,还要确定请求的服务端IP地址和端口号正确。

2)本地客户端因某些原因,程序挂掉后,仍有文件更改。本地客户端应在配置文件中保存一个最近的备份任务完成时间。当程序启动时,进行一个初始化操作,在监控文件夹下找出晚于最近备份任务完成时间的备份文件,加入到备份任务中进行备份,解决在程序异常期间产生的需备份文件没有完成备份的问题。

3)异地服务端因某些原因,程序停止运行,但本地客户端仍有文件需要备份。在异地服务器未响应期间,本地客户端应将监视文件中的所有更改文件信息全部放入备份任务中,并保存所有操作记录,待服务器响应后,再进行所有的文件更改备份操作。

4 结束语

为了解决现有文件性监测数据备份解决方案中所存在的操作复杂和不能进行网络传输的缺点,设计了一种基于文件系统监视器的自动备份软件的解决方案,并在实际的项目中成功运用。该方案只需要根据用户自己设定的配置信息就能完成船舶轴系试验台架监测数据的自动备份任务,通过修改配置信息来达到修改备份程序设置的目的,极大的降低了人为操作的失误,提高了轴系试验数据备份效率,经在实际工程试验台架系统中的应用验证,完全符合实际要求,可以推广应用到类似的应用场景,具有一定的工程实用价值。

猜你喜欢
数据备份服务端轴系
泉州高速公路收费系统远程数据备份研究
卧式异步电机轴系支撑载荷研究
海洋数据备份平台的设计和实现
程控交换机的数据备份与恢复技术分析
No.4 IDC:2019年上半年数据备份与恢复市场同比增长10.0%
双机、双桨轴系下水前的安装工艺
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
轴系校中参数与轴系振动特性相关性仿真研究
基于ANSYS的高速艇艉轴架轴系振动响应分析