基于Windows服务的异构数据库同步应用2011-09-03 博客园 Jack随着电子信息化的发展与应用,各个企业各个单位之间都开发和应用了自己的 信息化系统。各个单位之间使用了不同的开发技术和后台数据库,它们之间是分 离,没有关系的。企业集成不仅仅能创建一个三(表现层、业务层、数据访问层) 层应用结构,还能使一个应用分布到多台计算机上。分布式应用中,单个的一层 是无法自己运行的,而集成应用中的每一个应用都能独立运行,它们时间通过偶 合完成功能。异步消息传递体系结构来集成多个应用,异构数据库的同步问题是 实际项目中急待解决的问题1 系统需求电子数据交换最主要的任务是实现不同系统,不同业务之间的数据交换与系统 整合,下图是一个实际项目中各个系统的分布图(图1),各个系统之间是彼此独 立的,使用各自不同的数据库。首先企业端通过一站式申报平台申报单证信息到 海关由海关进行审批工作,如果海关审批通过,相应的企业端信息状态则进行变 更,然后企业端发送车辆信息到物流园区场站系统,场站系统接收到海关端的放 行信息和企业端发送的车辆信息则进行车辆通过放行工作。

图1

图2整个系统之间是通过各自独立的Windows服务监控自己的数据库,对应表发生 变更以后,生成变更后的XML报文,通过路由设置由MQ消息队列把报文发送到接收 端,接收端服务接收到MQ报文以后,对接收的XML报文解析进入接收端数据库。各 个报文定义使用Schema定义来完成,只有符合Schema规则定义的报文才可以进入 消息队列来进行传输。例如客户关系Schema报文定义如(图2)所示,只有符合 Schema格式的报文才可以生成XML报文进行传输。