为了实现主数据管理系统,首先我们应该各个分散的业务系统连接起来,实现各个业务系统与主数据存储的互联互通,目前的主数据管理解决方案主要采用两种方式来实现:基于ETL工具的方式和基于SOA体系架构的方式。
1. 基于ETL工具的主数据应用互联
如上图所示,一般的ETL工具本身就具有连接各种异构数据源和变化捕捉的能力,采用它来实现MDM中异构系统的数据触发、整合和发布应该是顺理成章的事情,当前Oracle,IBM,Informatica等许多具有自己ETL工具的厂商都推出了基于ETL工具的主数据管理解决方案,当某个主数据的源发生变化时,ETL的CDC(变化数据捕捉)功能就会捕获到变化,进而将变化的数据传输到主数据管理系统的临时存储区,然后ETL工具根据定义的数据转化规则对数据进行清洗转化,形成主数据,进而ETL调用审批监管流程,一旦获得审批,ETL即可将主数据同步到主数据存储系统,同时分发给各个订阅该主数据的业务系统。这里要注意的是主数据的审批监管流程,如果ETL本身自带流程引擎最好,可以支撑流程的设计、运行、监控,否则ETL工具必须可以调用其它的工作流引擎,当前主流的ETL工具一般都可以实现与SOA的无缝集成,既可以将数据或者转化封装为web服务,也可以调用外部的web服务。
基于ETL工具设计的架构好处是效率高,毕竟ETL是以处理数据见长,缺点是该架构最好不要跨越广域网,因为一般来讲,ETL工具都是在局域网内使用,如果网络不稳定,有可能造成数据的不一致。
2. 基于当前流行的SOA架构搭建主数据管理系统,如下图:
在该方案中,采用ESB(企业服务总线)技术构建应用集成平台,采用web service方式实现在多个系统间应用集成和互联互通。应用集成平台是数据采集、数据交换及服务提供能力的直接承载。数据的收集和分发采用各种应用和适配器实现,各种应用适配器一般提供变化数据的的轮询或者推送功能。监控管理可以采用SOA中的工作流引擎来实现,同时SOA中的流程监控系统可以对整个主数据的收集、转化、审批分发提供端到端的监控。
采用SOA技术设计的主数据管理架构基于J2EE的开放架构,会非常灵活,同时便于和其它系统集成,系统的扩展性比较好,其问题在于如果主数据同步的量非常大,效率会有一定问题。