利用中间件技术进行数据集成
 

2009-06-29 作者:陈兵 来源:陈兵的blog

 

1. 数据集成的需求

继系统集成、应用集成、业务集成之后,最头痛的数据集成(Data Integration 简称DI)已渐被各大企业(政府机关)纷纷触及。业务增长迫使企业必须提高其自身的 IT 能力,以满足变化的业务需求。引入一些新的应用程序以支持这种新型的需求。以新的方式对现有的信息进行处理和分析,以便更好地把握关键性的业务挑战。有些企业并购了其他的企业,进一步地加速了它们在新的领域中的增长。遗憾的是,信息/数据方面却不能始终以一种受到严格控制和有组织的方式发展,以支持这种增长。因此出现了冗余和不一致的信息孤岛。

为了能够在特定的领域中实现最高的效率,对于相同的数据,不同的应用程序以不同的方式进行表示。例如,大多数企业不会只将客户信息存储在某一个地方。如果不清楚应该从何处获取相应的信息,以及哪个系统中保存着最新的并且最精确的信息,那么这就会成为一个很大的问题。如果不清楚这些问题的答案,就不可能实现返回一致的用户相关信息的服务。我们从客户关系系统中取得的联系电话与销售系统中的不一致,而实际上呼叫中心存放的才是最新的、正确的联系电话,这是许多企业经常遇到的问题。

不同行业企业的业务需求会表现出来具有很大的差异,但是潜在的信息需求却是基本相同的—-都需要集成的、最近的、详细的数据以及进行即时的存取操作。我们企业信息化过程中,常常面临着下面的情景:

我们所在的企业并购了其它企业,那么就会产生数据合并的问题,如两个企业的HR系统的合并、财务系统的合并、其它业务系统的合并,当系统需要合并必然产生数据的合并,因此对企业数据进行统一标准化、规范化、数据的补缺、数据的一致性都将导致数据合并。这就是数据合并应用问题,需要利用数据集成技术去解决。

当企业一个系统的业务活动会影响其它多个系统的进程时,数据的实时性、准确性就尤显重要。如航空公司与航空机场之间的数据同步、证券交易所与证券公司之间的股票信息同步、金融业的汇率信息同步等等。影响数据同步的实时性与可靠性的因素会有网络的连通性、传输效率、数据接口、数据格式等,这些诸多因素都属于数据集成中的数据同步要解决的问题。这是数据同步应用问题,也需要利用数据集成技术去解决。

一般来讲,构成企业主要的基础数据分别是客户数据、产品数据、员工信息数据、供应商数据等等,要从企业多个系统中快速、可靠地建立唯一、完整的企业主数据视图。要实现企业主数据管理应用的数据集成平台,必须具备有良好的数据连通性、良好的数据质量探查与分析、良好的数据转换能力等。利用数据集成技术同样可以解决这里所讲的数据交换应用问题。

那么采取怎样的技术框架和产品去解决我们上述问题呢?这正是我们下面要重点讨论的问题。

2. 数据集成技术分类

数据集成是把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享。在企业数据集成领域,已经有了很多成熟的框架可以利用。目前通常采用联邦式、数据仓库和基于中间件模型等方法来构造数据集成的系统,这些技术在不同的着重点和应用上解决数据共享问题。

联邦数据库系统(FDBS)由半自治数据库系统构成,相互之间分享数据,联盟各数据源之间相互提供访问接口,同时联盟数据库系统可以是集中数据库系统或分布式数据库系统及其他联邦式系统。在这种模式下又分为紧耦合和松耦合两种情况,紧耦合提供统一的访问模式,一般是静态的,在增加数据源上比较困难;而松耦合则不提供统一的接口,但可以通过统一的语言访问数据源,其中核心的是必须解决所有数据源语义上的问题。

数据仓库是在企业管理和决策中面向主题的、集成的、与时间相关的和不可修改的数据集合。其中,数据被归类为广义的、功能上独立的、没有重叠的主题。这几种方法在一定程度上解决了应用之间的数据共享和互通的问题,但也存在以下的异同:联邦数据库系统主要面向多个数据库系统的集成,其中数据源有可能要映射到每一个数据模式,当集成的系统很大时,对实际开发将带来巨大的困难。

中间件模式通过统一的全局数据模型来访问异构的数据库、遗留系统、Web 资源等。中间件位于异构数据源系统(数据层) 和应用程序(应用层) 之间,向下协调各数据源系统,向上为访问集成数据的应用提供统一数据模式和数据访问的通用接口。各数据源的应用仍然完成它们的任务,中间件系统则主要集中为异构数据源提供一个高层次检索服务。

3. 基于中间件模型进行数据集成

中间件模式是目前比较流行的数据集成方法,它通过在中间层提供一个统一的数据逻辑视图来隐藏底层的数据细节,使得用户可以把集成数据源看为一个统一的整体。这种模型下的关键问题是如何构造这个逻辑视图并使得不同数据源之间能映射到这个中间层。

面向服务的体系结构(SOA)目前应该是一个很受欢迎的名词,中间件技术人员几乎到了言必称SOA的程度,数据集成当然也不例外。许多企业正采用面向服务的体系结构 (SOA) 来处理各种各样的问题,如减少数据集成的成本、优化现有信息的重用和功能。常见的做法是,在中间件层上进行数据的加工整合,同时通过中间件层的标准接口将整合后的数据以标准接口发布,如下图所示。

在中间层上存在一个虚拟的在中间层上存在一个虚拟的数据服务层,该层通过JDBC,FILE适配器、应用适配器等与数据层的各种数据源实现连接,将数据源中的各种数据实体映射成中间件的虚拟数据层的表,虚拟数据层中的表都只有元数据,而不存储实际的生产数据。用户可以在虚拟数据层上采用可视化图形界面定义数据映射关系,进行数据加工整合,这些数据加工逻辑一般会以文件或者数据库方式存储。定义好的数据可以通过web service,JDBC,数据对象等多种方式发布出去。当用户通过中间件访问虚拟数据层的数据时,虚拟数据层会根据系统定义的逻辑首先将需要加工的细节数据从各个数据源抽取到虚拟数据层,然后中间件根据设计时的数据加工逻辑对其进行加工,最后中间件将加工好的数据以调用接口要求的格式返回。

具体来讲,在企业数据集成项目上如何利用中间件技术解决数据集成问题呢?在我经历过的项目中,我们采用Oracle的融合中间件来解决数据集成问题,效果良好。选用Oracle融合中间件而不是其它中间件的原因很多,几个主要方面是:

(1)互操作性

即是否能使客户能够利用现有应用程序或旧应用程序并使其与新应用程序交互,或将使其业务与其他企业的业务进行交互,这是我们在具体项目中首要考虑的问题。互操作性是向 SOA 方向发展的推动力。Oracle 对行业和技术标准以及规范的支持实现了 Oracle 融合中间件的“可热插拨”功能。

“可热插拨”是指如何使 Oracle 融合中间件的组件与现有基础架构实现融合。例如,可以将 Oracle BPEL 流程管理器与 BEA WebLogic 或 IBM WebSphere 一起使用。此外,它还意味着可以轻松地将开放源代码技术(如 Spring 或 Struts)与 Oracle 应用服务器集成。我们可以通过设计一个独特的类加载程序机制(使集成第三方技术变得更简单)并使所有组件基于技术标准创建“可热插拨”体系结构。只有 Oracle 提供了此组合来创建一个真正的“可热插拨”体系结构。

(2)性能和可伸缩性

我觉得Oracle和其它中间件之间最大的区别之一就是Oracle的性能特别全面。你比较一下BEA,它就没有身份管理、企业内容管理这些功能,还有就是异购支持性,Oracle也是最全面的,比如融合中间件可以支持各种各样的异购的环境。而有的中间件,你要用他们的中间件软件的话,你必须要买他所有中间件的每一个产品,然后一个一个组装起来。但是Oracle不是一样的,Oracle中间件每一个产品都是可以应用的,也可以用Oracle竞争对手的中间件。这样就可以减少运行的成本并且为数据使用者确保最高的性能和可伸缩性。

(3)可重用性

在将数据整合模式应用到特定集成场景(具体项目)后,可以将整合过程的结果作为服务提供给多个服务使用者。例如,在某个场景中可能需要集成来自多个区域的财务信息。在应用了数据整合模式之后,可以将不同的数据整合到单个位置,然后通过财务仪表板对其进行公开。然后,信息服务可以利用相同的整合数据为其他使用者提供服务,如为标准申报应用程序或面向客户的 Web 应用程序实现自动化的过程。

对于这样的应用来说,Oracle融合中间件是理想选择,它的热插拔架构和对行业标准的支持令客户可以使用现有的、不同种类的资源来创建SOA。Oracle融合中间件的SOA组件包括Oracle SOA套件、Oracle服务总线、Oracle事件驱动的构架套件、Oracle数据集成套件和Oracle业务流程管理套件;所有组件都提供了对Oracle与BEA技术的集成,展现了甲骨文在整合这两家企业领先的软件方面所获得的迅速进展。

(4)ETL

数据集成视数据抽取、转换和加载为最核心的三项技术,这三个执行步骤可根据系统环境特点调整顺序,典型的应用有ELT的顺序。如源与目标为同种数据库、或共用一个数据库时,可将数据从源直接抽取到目标然后再进行转换,效率会大有提高,专注此类特点的产品以Oracle的ODI为代表。

(5)数据连通

数据连通性是数据集成的能力体现,一般通用的关系型数据库、ODBC、XML等数据连通为常见类型,还有一些就是大中型企业常用的ERP、CRM、BPM、OA等应用软件的数据连通,如SAP、Seibel、Lotus等系统的连通,因此良好的数据集成平台需要提供来自更多企业的数据连通接口,抽取源与装载目标的范围更广阔。

Oracle融合中间件的SOA组件为Oracle电子商务套件、PeopleSoft、Siebel、J.D Edwards、Retek和iFlex等诸多产品提供了预先集成功能,有助于提高投资回报速度。

(6)数据质量

数据质量越来越被企业重视,通常实现企业数据质量管理会包括源数据的探查、数据质量的评估、数据集成、数据的完整和数据的监控这五个步骤。在这里我们可以利用Oracle数据集成套件中提供的“Oracle数据质量和剖析”功能(如数据剖析、基于规则的数据更正等)来实现。

(7)开发人员构建应用程序变得更简单的标准

这是项目保质按时完成的关键要素之一,而在这方面Oracle做了大量的工作。Oracle已经成为 JCP、OASIS、WS-I、W3C、Liberty、OMG 以及其他标准组织的领导者,并制定了 50 多个新规范。Oracle正在 Eclipse (在我们的项目中开发人员采用的开发平台)中领导开发项目,如 JavaServer Faces (JSF) Tooling、EntERPrise Java Beans (EJB) 3.0 Tooling 和 BPEL. “标准是 Oracle 针对 Oracle 融合中间件提出的构想和产品策略的核心”

是否有标准能否使开发人员构建应用程序变得更简单?以 Enterprise JavaBeans 为例。在该领域,通过 Oracle TopLink 提供了一些技术,这些技术最终可帮助定义一个标准方法以便用户持久保存 Java 对象。其真正价值体现在它使构建一个更高效的、支持数据库的 Java 应用程序变得更简单。现在Oracle已经将它作为一个专有特性,而将它放在 Oracle TopLink 中,就是为了向开发人员提供一个标准方法,以便他们可以通过使用这些服务来构建 J2EE 应用程序。

诸如以上ETL、数据连通、数据质量、SOA等技术,这些都是保证数据集成平台的可扩展性、安全性、高效性、简便性的通用技术。也是我们在具体项目中选用Oracle融合中间一些重要因素,最终使我们的项目获得圆满成功。

下面这个链接有许多关于Oracle融合中间件的资料:http://wmdata.com.cn/oracle/iwom-OFM/index.asp?frm=chenb


火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织