操作系统  办公  实用知识  设计  开发  WEB开发  移动开发  数据库  软件工程  网管  安全  管理  信息化  答疑  渠道 

船岸之间的数据库同步

2007-6-19 作者:刘建武 网友评论 0 条 点击进入论坛

在航运业,由于船舶运输的特殊环境使得船舶与陆上企业之间的网络无法保持永远在线状态,这就给船岸之间的数据库同步带来困难。本文提供了一种利用电子邮件实现船舶和陆岸之间的分布式异构数据库复制方法。

在航运业中运用分布式数据库技术已经成为一种趋势,通过这一技术,可以将数据库应用系统延伸到船舶,并与管理机关进行数据复制,自动实现船岸之间的信息传递。从目前的技术现状来看,船岸之间难以长期保持在线连接的状态。如果在沿海航线使用CDMA/GPRS存在很多盲点,在远洋航线通过卫通F站保持长期连接的费用高昂。从费用和可靠性考虑,船岸之间一般只保持短时连接。鉴于此,有必要提供一种廉价的、基于现有成熟技术的远程数据库同步的解决方案。

方案的总体思路与可行性

本方案可抽象成如下结构的系统模型: 陆岸与船舶两端的系统通过一个抽象的网络连接来实现数据通信与传输。其中应用系统只负责处理数据和事务流程,中间由一个负责传输数据的抽象网络连接来为两端系统提供应用层上的连接和数据传输的通道。当需要进行数据通信时,系统将从数据库中查出待增量数据生成一个XML文档。这个XML文档实际上就是一个应用层的通信协议,要精炼、可扩展、功能完备。系统只需要将要同步的数据交由抽象的网络层处理、传输,并保证传输数据的顺序性、正确性与安全性。这样,就可以将整个系统中数据事务处理部分与数据传输同步部分分离开来,简化了系统的设计。

船岸之间的数据文件同步有很多解决方案,如建设专用通信网络(公网和私网),再利用数据库管理系统数据同步工具(如Oracle、Sybase等都自带有数据同步工具或组件)。但考虑船运的特殊环境,船岸间网络无法保持永远在线状态,通常的网络间数据文件同步方法无法达到需求。同时,如果几百条船都建设高速专用网络,建设成本难于承受。结合技术和经济的因素,本文提出的电子邮件复制数据方案具有明显的优势和不可替代性。反之,如果网络环境健全或不用考虑船岸之间的数据文件同步的建设成本,该电子邮件复制数据的方案谈不上优势。

电子邮件数据的推拉技术

方案采用目前成熟的互联网邮件系统来实施数据文件的推拉,使整个系统具有很好的稳定性和可靠性。

1. 用电子邮件复制数据的基本原理

本方案的基本思路是,源数据库将需要同步的数据生成电子邮件,通过互联网将电子邮件发送至目标数据库上,然后通过还原程序将电子邮件中的同步数据复制到数据库中。目标数据库处理完后,再将执行成功的信息通过电子邮件返回源数据库。如图1所示。

这种远程数据的发送与接收,不需要专门的网络线路或VPN网,只需要与当地的ISP连接(CDMA或卫星通信实现网络接入)即可,可以省去大量的通信费用。

2. 电子邮件推拉技术的实现

所谓推拉技术,指的是数据的主动传送及主动接收,需要发送的数据会主动传至目的地,同时目的对象会自动接收并处理,二者之间无需任何约定。推拉技术的实现主要靠服务器上的一个服务程序来完成,该服务程序是一个面向所有数据库的接口,负责解析所有的任务请求并完成数据库数据的更新。图2是一个服务程序的流程框图。

图2中所示的SDU、MRN、MSN、MAU、DEU、MR分别为数据处理单元、邮件接收节点、邮件发送节点、任务分配器、数据解释器、事务逻辑处理单元。以下对系统的组成做简要说明:

SDU: 系统数据单元,用于存储业务数据,执行数据操作指令,并把执行结果返回分配器。

MAU: 任务解释分配器,用于对系统的所有任务进行解释分配,捕捉任务请求消息,解释消息,提交任务到数据处理单元对数据进行操作; 或把任务请求解释为消息,提交后台执行相应的数据同步操作。

DEU: 数据解释器,用于对任务分配器提交的数据合成、处理,生成数据邮件,提交邮件发送单元发送; 或者对数据进行分解,提交任务分配器,执行数据更新操作。

MSN: 邮件发送节点。用于完成对电子邮件进行密钥加密、发送邮件等工作。

MRN: 邮件接收节点。用于完成接收邮件,同时使用私钥对邮件进行解密的工作。

MR: 事务逻辑处理单元。对后台处理流程的任务请求进行解释,生成任务请求消息,发送任务分配器;或者捕捉MAU发来的任务请求消息,完成相应的任务操作。

安全保障

应用端到端的安全电子邮件技术,可以保证邮件从被发出到被接收的整个过程中内容保密、无法修改、并且不可抵赖。

比如通过加密算法对邮件内容进行签名,保证信件内容无法修改; 船舶和陆岸系统自动对电子邮件进行加密和解密,保证了传输数据的内容保密和安全。本方案采用的是常用的基于LZW无损压缩算法的压缩方法,一般能将数据压缩95%,这可以在一定程度上减少通信数据量。

另外,电子邮件系统也存在邮件伪造、邮件乱码、邮件丢失和邮件时序性混乱等不足,也需要分别分析并提出解决方法。

1. 电子邮件加密和过滤

在电子邮件系统中,邮件最终投递的目的地只是简单地用一个邮件地址来标识。如果应用系统将接收到的格式相同或近似的非法邮件导入数据库系统,很可能产生灾难性的结果。

解决这种问题最有效的办法就是应用加密技术和数字签名来对传送数据的邮件进行加密处理。应用系统在接收邮件处理数据时,只对那些能正确解密或其数字签名无误的邮件进行处理,这能在很大程度上预防攻击的发生。本方案利用SSL SMTP和SSL POP协议对邮件进行进一步的加密处理。

2. 解决邮件丢失的措施

在电子邮件系统中,邮件发送端和邮件接收端是通过邮件网关来通信的。为了避免邮件网关的不可靠造成的邮件丢失或误传,本方案采用了邮件确认以及错误重传的机制。其原理就是在邮件接收端收到正确的邮件并正确处理之后,回送确认信; 原发送端在收到确认信后才进行下次的数据传送。

3. 对邮件重新编码和数据校验

电子邮件产生乱码的主要原因是网络上的某些邮件网关所支持的邮件格式不同。数据邮件在传输中,经由不支持8位的非ASCⅡ格式的网关时,就有可能产生乱码。

本方案采用的是一些比较成熟的数据纠错和检测技术,对需要传输的数据邮件进行处理,在接收端收到邮件后,再将邮件中附带的数据做一次较验计算,将得出的校验码与邮件中附带的校验码做比较,如不一致,则说明数据出现乱码,系统会自动重发,当乱码引起的自动重发超过三次,系统提醒管理员进行人工干预,以免进入死循环。

4.保证电子邮件的时序性

造成电子邮件接收时序混乱的原因是邮件系统中邮件网关的使用以及外部网络的不可控制性。有可能发生的情况是: 上一封邮件与下一封邮件所经过的传递路径不同,如果邮件在两条不同的传递路径上传送所用时间不同的话,就可能会出现后一封邮件比前一封邮件早到达的情况。这会给接收方系统的数据带来混乱,发生错误。为有效保证邮件接收的时序性,本方案采用下面的处理措施:

首先,前面提到的邮件确认以及超时/错误重传的机制,除了能解决邮件丢失的问题外,也能很好地解决邮件的时序性问题。

其次,本方案还在生成邮件数据时,根据系统的时间(精确到毫秒)产生一个密文或者是直接把时间放到XML文件的一个域中,以便让接收方在接受同一个发件人发送的数据时能区分出来。

再者,如果发现本次收到的数据应是在上一次数据处理之前的,就利用数据库的事务回滚(Rollback)功能,回复到上一次的数据处理之前的状态,然后再将不正确的数据重新排序、重新处理,就可以得到正确的结果。

已有 0 位对此文章感兴趣的网友发布了看法    
我来评两句 登录邮箱: 密码:
  匿名发表
今日推荐
技术文库(共有 46430 篇文章)
操作系统
办公软件
实用知识
网络管理
软件开发
WEB开发
软件工程
数据库
设计在线
信息安全
行业信息化
管理信息化
重点推荐
电子杂志订阅
点击电子杂志名称查看样刊
输入E-mail地址即可订阅
E-mail