主管单位:中国电力企业联合会
主办单位:中国电力教育协会
国际标准刊号:ISSN 1007-0079
国内统一刊号:CN 11-3776/G4
版权信息主管单位:中国电力企业联合会 主办单位:中国电力教育协会 国际标准刊号:ISSN 1007-0079 国内统一刊号:CN 11-3776/G4 联系我们
|
企业级应用松耦合数据同步集成关键技术研究
1 引言
数据同步技术是一个在分布式环境下信息系统必须要解决的的问题,技术实现方式也有很多种,其实现原理也各不相同。数据同步技术的目标是保持数据源与目标数据的体制性和数据的实时性、高效性及安全性,在这个总体目标下,随着信息化建设进程的不断发展和推进,各种复杂业务不断增长,而且业务要求不断提升,数据同步当然也就要面临不断的迭代升级以适应新的需求,久而久之,就形成了现在市面上百花齐放的局面。但是现代企业往往更注重实际的企业级业务流程,然而,对数据同步这种后台模块的研发投入往往较少,使得数据同步一直是业务提供对外集成服务的薄弱环节,于是出现了多个业务系统面临集成时不得不开发一套新的支撑个性化业务的数据同步方式用于对外的多业务系统集成的尴尬局面,这样的情况层出不穷。
因此,本文提出了一种基于企业级应用场景的松耦合数据集成同步实现技术,旨在解决企业多数据源、多方式及多目的地址等各种复杂业务集成场景的数据同步问题。
2 传统身份同步技术分析
传统模式下业务系统解决数据同步问题一般采用以下几种模式进行:
1)DB-DB模式,借助于数据库的自身工具进行同步。例如Oracle的DBLink实现的数据同步就是典型的利用数据库工具进行的同步,一般使用数据库触发器,但受限于Oracle数据库本身,因为使用的是数据库业务数据,往往在数据量上升的情况下对系统的使用造成影响。
2)WebService-WebService模式,开发WebService实现端对端的数据同步。基于双方约定的数据结构进行接口的调用和反调用进行的数据同步方式,接口的实现方式,缺陷是若约定的一方进行升级,则可能需要开发新的接口或者升级现有的接口,涉及多次开发和联调。
3)目录同步模式,借助于公共目录实现数据同步。目录同步一般借助于Linux系统的监听进行同步,大多数情况下对运维人员要求较高,而且对服务器会产生一定的负载。
4)文件同步模式,使用导出文件和导入文件方式实现数据同步。采用线上导出和导入,线下使用数据文本的方式,一般时效性较差,而且大多数情况下数据不能完全匹配,需要手工修改,需要运维人员对数据流向和数据组装都非常清楚,否则容易出错而导致各种生产事故。
5)其他同步模式,原理类似于其他方式,只是数据源发生变化。基于日志、全文对比、时间戳等方式进行的数据同步,大多使用场景单一,一旦发生环境或者使用场景表更,很可能会进行多次开发和联调。
3松耦合数据同步技术分析
传统实现方案:
触发数据同步,同步适配器根据数据重新封装成同步数据格式(DataType+DataList)。在同步适配器中,针对不同的DataType有不同的同步实现。系统定时器定时扫描数据缓存池,根据DataType调用不同接口进行数据同步。
同步流程如下: 大致步骤如下:
1)Hibernate拦截器出发数据同步,将数据push到缓存池。
2)Task Manager调度线程从缓存池里读取数据。
3)将数据进行二次封装,加入数据类型。
4)Task Manager根据数据类型调度适配器进行数据分发,完成数据同步。
此方案在使用过程中发下有如下问题:
1)迭代周期快,不管是管理端还是客户端,任何需求变更都要对同步数据进行考虑,产品通用性不强。
2)推送方式和目标地址在程序中写死,耦合性高,集成灵活性差。
3)无法进行同步关系管理,同步过程黑盒,无法实现数据的有效管理,可能导致数据丢失。
松耦合同步实现方案特点:
1)针对常规和非常规方式同步数据提出了数据标准,在遵照标准的情况下可实现无改造的数据同步集成。
2)服务内部的弹性实现原理可应对多种数据同步场景,在标准范围内,包括不对称协议和多协议场景,可自由进行切换。
3)与业务系统实现解耦,可通过接口或配置等方式实现数据同步,具有高度的业务无关性。
4)同步过程和同步数据的全生命周期管理,使过程透明化、配置化,同时使数据的从产生到同步结束的全生命周期内可查询、管理和追溯。
本文为实现数据同步三段式解耦和全生命管理,采用如下方案:
技术架构说明如下:
1)定义API和SAPI的标准,遵照标准情况下,可以在多种数据格式下自由切换(文件、数据库、目录等),以灵活适用各种场景。
2)IDC核心转换器内置多种管理器实现对同步过程的全生命周期管理,数据可查看、管理和追溯。
3)而API和SAPI的设计均包含主动和被动两种模式,同步关系可在配置页面进行在线动态配置,本文自成技术体系,具有高度的易用性和通用性。
优点:
1)本文主要优点是数据解耦和业务解耦,通用匹配和可管理同步关系和同步数据,并提供了相应的策略灵活应对各种场景。
2)本文主要针对数据同步业务,若有其他业务场景可能会存在不兼容或性能问题,需要具体问题具体分析。
3)本文前提是数据来源和目标源对IDC的Connector相对开放的情况,有数据隔离或其他装置的情况需要针对具体情况进行匹配标准。
4)同步过程和同步数据全生命周期管理,让操作过程和数据过程全面处理监管状态下,提高了数据安全性和可靠性。
4 松耦合数据同步技术解决方案
技术方案:为了产品的通用性和解耦以及全生命周期管理,本文所采用的技术方案是前段通过Gateway API进行服务化集成、中段使用IDC Server进行同步过程和数据的管理、后段通过路由进行数据下发。
4.1前段:
本文抛弃以往定义数据结构、双方约定接口的方式,采用定义标准的API和提供多种实现通用Connector的方式,实现了业务系统到同步目标的解耦。
标准的API方式可定制Connector的两种管理方式:本地管理(Local)和服务端统一管理(Server),一般根据使用场景自行选择。
4.2中段:
IDC内置多种管理器,以此实现对同步过程和同步数据的全生命周期管理,其中:
Connector Manager提供标准的API,并进行同步配置的在线管理和内部线程的调度,确保IDC的高效运行。
Account Manager提供鉴权API和数据流量控制API,全程进行数据监听,必要时可根据策略进行限流或暂停服务等。
Strategy Manager提供策略服务API,为IDC的调度提供支撑。
SyncData Manager提供数据转化和封装API,也是IDC的API标准制定参照,使用该标准可通过该服务转换成预定义的数据结构。
SAPI Manager基于多数据源对外暴露的API,标准的接口之一。
4.3 后段:
通过对标准的SAPI的实现,由匹配的路由表,路由到不同的数据源。其大致步骤如下: 为实现双方同步数据解耦,需要使用中间服务提供API来实现双方数据交流,并制定标准,使双方调用者都能匹配自身的协议进行接口调用。
MSG:自主研发了新的消息机制,主要用于解决消息服务卡死和消息通道阻塞等技术问题。
Account:为保证数据安全,数据通道使用AES进行了加密,并且使用切面技术对所有请求进行拦截和鉴权,其中在切面实现中,使用了新算法实现关键字生成和解析,提升了切面的运行效率。
Strategy:在策略使用的技术上,基于原有的策略技术方式进行了新的改进,对策略生成方式和策略的结构都进行了新算法调整,让策略匹配速度提高了50%。
AUDIT:在原始审计消息基础上加入了深度计算技术,经过深度计算提炼,让审计数据总量下降了30%,而数据有效性则大大提升。
IDC Manager:为实现同步的高效管理,在同步过程中使用了黑/白名单技术、基于关键字的缓存技术,大大降低了同步过程的时间,提升了同步效率。
步骤如下:
1)登录管理平台,配置数据同步关系策略,生成策略标识和策略内容。
2)策略检查关系是否形成通路,使用策略标识而不用查询策略内容,在测试时,使用快速返回方式,通过限定时间内是否返回确认通路健康状况。
3)Connector在系统内有制定的标识,此标识能详细的描述Connector状态、模式等基本信息,而逐级递进的方式让Connector能最快返回所需要的信息。
4)Connector调用IDC的API,系统内部对线程池的处理是自主研发的线程池处理技术,专门用做数据同步。该线程池的划分从数据量、管道数量等方面进行构建,配置方式根据数量级形成了最优的标准。
5)IDC内部对消息的处理进行了分级,一级数据为行为数据直接入库,二级数据为状态数据直接入库,三级数据为被操作的数据,在同步的情况下调用深度计算方法进行计算,审计入库的数据量远远小于实际数据量,但不会造成数据缺失。策略流图如下:主机
1)启动IDM,登录Web工作台 实验结果与分析:
综上集成结果:admin库pei666同步到xddb库00000,xddb中00000变成了pei666
到这里DB&DB就算配置成功了,数据集成完成!
CSV&DB实验步骤
1)先配置CSV,添加一个连接器并填写CSV连接器信息:
2)配置成功之后可以查看样本数据,可以直接点击页面右上方的详细信息来查看,也可以通过插件发送rest请求来查看数据
3)准备用于测试的DB数据,创建一个DB连接器,将其与CSV创建一个映射关系,然后配置属性映射,修改处理方式,就可以查看到同步结果:
4)再来将同步前和同步后的数据库进行对比,同步前:
同步后:
结果分析:
可以看到同步后的数据库里,原本没有值的字段同步后也有了相应的字段,且字段值正确,说明CSV&DB配置成功,数据集成完成,数据一致性准确。
6 总结
基于多适配器的数据同步集成(IDC)与市面上其他数据同步集成方式相比,最主要的是提出了多种数据同步方式标准,实现了最大程度的无修改集成方式和多种同步方式之间的自由切换,进行同步过程和同步数据的全生命周期管理,进而解决在实施过程中各种数据迁移和多数据源等集成场景问题。
7 参考文献
[1] http://blog.csdn.net/xuemoyao/article/details/14002209
[2] http://articles.e-works.net.cn/it_overview/article78854.htm
[3] 何栋松耦合应用集成模式及其数据交换的研究湖北.:华中科技大学出版社,2002
|