ESB、DI信息资源交换平台方案

4年前

1 背景


随着信息时代的不断发展,各企事业单位不同部门间的信息交互逐步增加。当大量的异构数据出现在网络上,面对多种多样的数据格式,如何有效的利用这些数据?这其实就是数据共享与数据交换的问题。简单地说,数据共享与数据交换就是让在不同地域、使用不同计算机的用户或者部门能够读取需要的数据并进行各种操作和分析;同时也提供信息资源供需要的人使用。


数据共享的程度反映了一个企业的信息发展水平,数据共享程度越高,信息化水平也就越高。要实现信息共享,需要建立一套统一的、法定的数据交换体系以及标准,同时规范数据格式,使用户尽可能采用规定的数据标准。


现阶段信息交换、资源共享成为IT发展的关键。目前系统缺少统一规划,各自为政、重复建设,对用资源共享与交换缺少统一信息平台作为依托。部门间的条块分割管理体制造成了诸多信息孤岛,数据割据造成了资源分散不利于今后其他系统的业务展开。各部门间的业务协作采用最原始的沟通方式,如:电话、Email、资源拷贝等方式,不能有效地保证数据的及时稳定传递,而且在实际工作中造成了许多人为的数据错误。


2 概述


信息资源交换体系为跨部门、跨地域信息资源交换与共享提供的电子信息服务基础设施。交换体系总体结构由交换平台、信息资源、技术标准和管理机制等几部分组成。不同服务模式的业务通过调用交换平台提供的交换服务,实现对信息资源的访问和操作,技术标准和管理机制为信息资源的交换和共享提供技术和管理的保障。



3 技术架构


Primeton DI在数据交换平台建设中可以统一数据的来源,主要提供了各业务系统之间的实时数据交换功能,将各个系统中的业务数据抽取,经过过滤、清洗、转换形成数据中心所需要的数据。最后通过ESB将数据中心发布成服务提供给其它业务系统调用实现信息共享。



整个数据中心的建立过程分为四步分来完成:


第一步:将业务系统中的数据通过文件或数据库同步到前置交换区


第二步:将前置交换区的数据同步到数据中心


第三步:如果有文本信息需要存入到数据库中通过数据中心上的DI Server来对文本数据抽取装载到数据中心的库中


第四步:使用ESB将数据中心的数据发布成服务共享给其它的业务系统


整个过程由监控机中的监控模块负责数据监控。


4 主要功能


4.1 业务系统到前置机同步


前置机数据同步是资源共享交换平台的重要组成部分。多个前置交换节点一同构成了分布式的资源交换与组件运行环境。前置机数据同步这里分为五种不同的情况来介绍同步的过程。


4.1.1 数据库同步


数据库同步是指业务机上的数据来源是数据库,前置机的目标也是数据库。在这样的情况下通过DI Agent将业务机上的数据库的数据同步到前置机的数据库中。DI支持所有主流数据库主要有:Oracle、Mysql、SqlServer、DB2、Informix、sybase等数据库。能够在这几种异构数据库之间交换数据。



例如:业务系统1中有一张人员信息表USERINFO,需要同步到前置交换区中。


首先需要在前置交换区的数据库中新建一张和USERINFO表结构一样的表。


接下来使用DI Studio来绘制数据处理模型。数据同步分为以下三种模型:


4.1.1.1 全文比对同步


前提条件:

源数据表中需要有可唯一标识某一行的列


实现方式:

全文比对方式同时将业务系统中USERINFO表的数据和前置交换区USERINFO表的数据抽取到“对比记录”步骤进行数据的分批比对,对比完成后“对比记录”会添加一个对比结果字段,将数据交给“Swinch/Case”步骤根据对比结果字段信息分别将三种不同的操作交给后面的流程处理。


new操作会将数据传送给“选择插入的数据”进行数据过滤交给“插入”把数据插入到前置交换区的USERINFO表中。

changed操作会将数据传送给“选择更新的数据”进行数据过滤交给“更新”把前置交换区的USERINFO表中对应的数据更新。

deleted操作会将数据传送给“选择删除的数据”进行数据过滤交给“删除”把前置交换区的USERINFO表中对应的数据删除。



4.1.1.2 触发器同步


前提条件:

1. 创建临时表存放增量数据,临时表中要增加操作顺序以及操作类型两个字段。


2. 为源数据表创建三中操作类型的触发器。


源数据表需要有可唯一标识某一行的列。


实现方式:

以Oracle数据库为例,建立一张表结构和USERINFO表相同的USERINFO_TRI表并添加操作字段OPERATION和排序字段T_ID。增加一个Sequences(userinfo_seq)用于对操作排序。在USERINFO表上建立增删改对应的三个触发器。


USERINFO_INSERT触发器


create or replace trigger userinfo_insert

before insert on userinfo

for each row

declare

-- local variables here

begin

insert into userinfo_tri (id,name,......,operation,t_id) values(:new.id,:new.name,......,'insert',userinfo.nextval);

end userinfo_insert;

USERINFO_UPDATE触发器


create or replace trigger userinfo_update

before update on userinfo

for each row

declare

-- local variables here

begin

insert into userinfo_tri (id,name,......,operation,t_id) values(:new.id,:new.name,......,'update',userinfo.nextval);

end userinfo_update;

USERINFO_DELETE触发器


create or replace trigger userinfo_delete

before delete on userinfo

for each row

declare

-- local variables here

begin

insert into userinfo_tri (id,name,......,operation,t_id) values(:old.id,:old.name,......,'delete',userinfo.nextval);

end userinfo_delete;

业务系统对USERINFO表操作的时候会自动向USERINFO_TRI表中添加操作数据信息,DI模型获取USERINFO_TRI表中的数据,将数据交给“Swinch/Case”步骤根据USERINFO_TRI表的OPERATION字段信息分别将三种不同的操作交给后面的流程处理。


insert操作会将数据传送给“选择插入的数据”进行数据过滤交给“前置数据插入”把数据插入到前置交换区的USERINFO表中。

update操作会将数据传送给“选择更新的数据”进行数据过滤交给“前置数据更新”把前置交换区的USERINFO表中对应的数据更新。

delete操作会将数据传送给“选择删除的数据”进行数据过滤交给“前置数据删除”把前置交换区的USERINFO表中对应的数据删除。

最后做完以上操作后将同步完成的数据从USERINFO_TRI表中删除。完成整个同步过程。



4.1.25.1 时间戳同步


前提条件:

1. 业务系统表中要有一个默认值为Sysdate的时间戳字段

2. 业务系统表中需要有可唯一标识某一行的列,


实现方式:

基于时间戳的增量数据抽取只能针对Insert/Update操作,Delete操作需要结合其它模式。


先从“前置交换区”的USERINFO表中获取最大时间,接下来根据需要将日期的格式到“时间格式转换”步骤做日期格式的转换,然后将转换后的日期作为参数传递给“业务系统1”步骤查出业务系统中USERINFO表大于这个时间的所有数据交给“前置交换/插入更新”步骤来进行数据的插入或更新。



4.1.26 文件同步


文件同步是指业务系统上的数据来源是文件,前置机的目标也是文件。通过产品提供的P2P文件传输功能将文件从业务机传输到前置机上。



4.1.27 库和文件同步


如果数据库中的表的数据描述的是一个文件(例如:表中存储了一个视频文件的信息),这时候就不光需要将数据库的数据同步到前置机上,还需要将视频文件也传输到前置机上。



4.1.28 数据转文件同步


业务机上的文件也能够由DI从业务系统的数据库中生成。例如通过抽取USERINFO表中的信息写入到文本文件,存放到业务系统2的文件区中。



文件同步需要在业务系统2机器和前置交换机上安装文件传输客户端。通过对文件传输管理界面配置文件传输的规则。



4.1.29 文件转数据同步


非结构化文件同步可通过P2P文件传输直接传输到前置交换区的文件系统中,对于结构化的文件可以P2P文件方式传输也可以通过DI Agent对文件解析将文件中的数据存放到前置机的数据库中。支持的结构化文件有CSV、文本文件、xml和Excel文件。


例如:


通过DI的Excel输入组件将Excel文件中的数据收取放入到前置交换区的表中。



由于文件的所在机器发生变化,文件的位置也可能发生变化,所以在对视频信息进行数据同步的时候需要将指定文件路径的字段位置更改后在放入到前置机中。这一步可以通过“javascript”组件实现。这里以全文对比为例,如图:



javaScript的配置界面如下图:



4.2 前置机到数据中心


经过上节描述的五种方式已经将业务系统的数据同步到了前置机中,下一步需要将前置机的数据同步到数据中心。


同步的方式参考前置机的同步方式。


对于远程传输数据有两种模式,包括:数据库直连以及基于P2P协议的文件传输。


4.2.1 数据库直连


将前置机的数据库端口开放,使数据中心的DI Server能够访问到。DI Server通过JDBC方式连接到前置机数据库抽取数据通过过滤转换将数据放置到数据中心。


4.2.2 文件传输


在前置机上部署文件传输Agent,数据中心也部署一个文件传输Agent,通过文件调度配置定期将前置机上的文件同步导数据中心。


5 同步方式


5.1 定期同步


通过DI governor的调度配置对DI模型进行周期的调度操作,实现业务的定期数据同步工作。


建立数据同步模型通过DI governor配置调度策略将数据从前置数据库中同步到数据中心。


建立作业


通过操作“作业管理”下的“作业/作业流”模块来配置DI模型的运行环境。



接着建立计划调度



5.2 手工同步


在DI governor上建立的作业除了能够通过配置计划定期的去调度,还能够通过手动触发来执行单次作业。


6 数据共享


使用DI将各个不同业务系统中的数据装载到数据中心后,用ESB将数据中心的数据发布服务共享给其它业务系统使用。提供跨业务、跨数据库的统一数据访问接口满足各部门的业务需求。



ESB将数据中心的数据发布成服务的过程如下:


首先通过ESB Studio建立数据服务模型,在ESB Studio的数据库资源管理器中先建立数据库连接。



接着创建ESB工程



创建数据集建立数据映射关系



建立ESB中介服务通过中介进行数据处理。



最后通过建立http transport和webservice proxy将USERINFO表作为服务发布。


7 数据管理


7.1 数据直报


由于有的部门没有建立数据库或文件系统,这时可以通过EOS快速搭建一条从业务部门将数据上报到数据中心的直报系统。业务部门的数据可以直接通过直报系统将数据录入到数据中心。


7.2 数据补录


当自动同步的数据不能满足同步的需求时,可以通过补录系统进行人工补录数据来管理和修改数据中心的数据。


数据补录平台可通过EOS的快速开发进行平台快速搭建。完成数据验证,数据图表、数据管理以及权限管理等功能。



8 监控管理


DI产品、ESB产品和文件传输产品都提供了数据监控或服务监控模块,这三个监控可以和直报系统放置在一台服务器上运行。



8.1 ESB监控


软件资产管理系统主要功能模块(软件资产管理、上线部署管理、资产审计管理、服务运行监控)和1个辅助功能模块(在线工具),能够提供对服务的注册、查找、部署、审计、监控功能以及良好的SLA管理功能,并且结合ESB相关套件,能够实现优秀的SOA服务治理。控各服务节点的运行状态、负载、传输量等一系列交换信息。



8.2 DI监控


前置机采集交换数据至数据中心,提供了统一的数据转换、清洗、比对和整合加工功能模块,形成了共享数据中心。在数据处理过程中,平台监控管理系统提供了对处理流程实时的能力,能对数据处理流程进行远程控制,查看某一节点的数据的详细信息;并对流程进行启动、停止、状态转换等操作。



8.3 文件传输监控


文件传输监控主要对文件传输过程提供了服务器管理、代理管理、调度策略管理、传输策略管理以及文件传输监控中的实时状态查看、历史日志查看、统计分析等功能。



COMMENTS

需要 后方可回复
如果没有账号可以 一个帐号。