数据交换中间件
2014-09-16 21:41:28
数据交换中间件的使用场景是进行数据的传输和采集,各个大区和区域中心的应用系统,先行将数据传输到其所在的数据中心,各个数据中心之间通过数据交换系统进行级联,分级交换传输,最后将数据传输到总部数据交换中心。数据交换中心不但要处理数据的传输,同时提供一个机制,可以实现数据的更新操作,即底层某个数据交换中心节点的数据变更时,可以触发上级已经交换的数据的变更。总体的数据交换节点之间的交换结构图如下图所示:
每个数据交换中心可以存储交换过来的数据。每次数据交换时,数据交换中心都会存储其原始的交换消息,同时,使用人员可以创建数据模型,将交换过来的数据直接映射到数据库表中。
由于数据交换中间件只提供对数据的初步加工,并将数据可靠地送到目的系统中。对于数据映射的模型的设计工作不在本开发中间件的范围。对于数据的统一编码及数据的约束和关系等,由开发人员根据需要确定。
具体的数据交换中间件的数据交换结构如下图所示:
上图总体结构中,数据交换中心节点将部署数据交换中间件,负责管理整个数据交换的各个节点和数据交换规则和配置,同时此节点负责对所有交换信息进行存储监控。数据交换平台提供以下几个部分:
- 数据交换中心节点
数据交换中心节点提供可交换应用的管理,包括对各个应用的编址,安全规则配置,数据处理规则,映射规则等。同时提供定时的消息交换调度,消息缓存,异步消息交换等。
数据交换中心可以监控原始的消息的路由和交换数据的详细情况,包括异常报警,日志审计等功能。
数据交换中心节点提供数据映射功能,可以将数据根据规则映射到实际的数据库表中,映射的规则可以进行自定义。
数据交换中心节点提供定时器,为定时进行数据交换提供支持,可以在固定的时间,发起数据交换请求,通过运行数据交换的规则,从源应用中获得数据,然后将数据交换到目标应用中去。
- 交换客户端通用应用
交换客户端通用应用是一个独立部署的java应用,通过浏览器进行访问,同时自带交换适配器。可以提供数据库联接或文件上传方式,先将数据导入应用,然后定制规则进行数据交换。在实际集成过程中,可能需要开发部分功能(如解析EXCEL文件或XML文件),进行数据的导入等操作。
对于部分通过中间交换库方式进行数据交换的应用,可以通过部署本应用,创建JDBC连接,进行直接的数据库读取,通过交换适配器,进行数据交换。
- 交换适配器
交换适配器需要部署在需要进行数据交换的应用中。同时要更改应用中的部分配置,以实现数据交换。
数据交换中间件提供各种应用和平台的数据交换,主要的交换集成方案有四种方式,从应用容器支持到SOA服务接口方式再到部署独立应用,囊括了所有开发语言和应用场景:
1) SOA接口方式
对于已经具备SOA接口的应用,可以直接通过SOA接口来进行数据交换,如果交换的接口不完整,可以在应用中根据数据交换需要开发新增服务。对于某些没有SOA接口的应用,或.NET和PHP服务,可以通过开发数据交换所需要的SOA服务,来完成数据交换。使用SOA接口方式进行数据交换时,只能通过定时方式,由数据交换中心节点进行服务调用,来获取数据,完成数据交换。
对于非JAVA应用的数据,如果要进行数据交换,除了SOA接口方式外,可以通过中间交换库方式,进行数据交换,但是此时需要部署一个平台提供的交换应用,来完成数据交换。
2) 外加交换适配器方式
外加交换适配器方式只适用于JAVA应用,在需要交换的应用中,添加交换适配器,由交换适配器进行数据交换工作。
交换适配器的交换规则和数据处理的相关配置都在数据交换中心节点上完成,配置完成后,通过消息总线,下载到应用中,交换适配器根据这些配置,进行数据的交换工作。
交换适配器的功能包括:
- 数据读取
- 数据清洗
交换接口
提供java方法方式的数据交换接口,由应用调用交换接口,通过应用接口,实现数据交换。交换接口方式只能调用API,数据必须经过预先处理,不进行数据清洗等工作,对于交换的目的应用,只能够配置交换后的处理方法,不进行映射等处理,由处理方法来进行数据映射等操作。
- 数据接收
- 数据映射
3) 中间交换库方式
对于某些应用,可以将需要交换的数据,写到一个中间交换库中,数据交换完成后,可以通过打标志、删除或记录上次交换时间等方式,将数据交换到其他地方。交换库方式是一种简单方便的交换方式,开发量比较小,简单可靠,是很多数据交换系统经常使用的方式。对于非JAVA平台,和无法开发SOA服务的应用,推荐使用本方法。
如果中间交换库所对应的应用是非JAVA平台,则需要部署数据交换中间件的交换应用,由交换应用连接到中间交换库,通过交换适配器,完成数据交换。
4) 部署交换应用方式
交换应用是一个通用的JAVA应用,其内置了交换适配器,通过解析各种配置,来完成数据交换功能。交换应用可以用于某些C/S应用,通过与C/S程序的数据库进行连接,来完成数据交换,同时也可以处理文件上传方式的数据交换,比如需要将一个EXCEL文件的内容交换到其他应用,系统提供文件上传并解析的功能,将上传文件的内容交换到其他应用。