基于ESB的企业应用集成
 

2009-07-09 来源:IT168.com

 

1、引言

信息化的发展在给企业带来难得机遇的同时,也给企业带来了新的挑战。巨大的投资为企业建立了众多的信息系统,以帮助企业进行内外部业务的处理和管理工作。但是这些信息系统可能由不同的品牌导入实施,只关注于各自领域内的数据与业务处理,由于缺少相应的接口标准和规范,它们各自为政,相互之间无法进行信息共享与业务集成,从而形成“信息孤岛”。

随着企业规模的不断扩大,应用系统不断增加, 对信息共享、系统互操作性和软件重用方面的要求越来越高,这些相对独立、标准各异的“烟囱”式系统已经不能满足业务的需要,暴露出的弊端越来越多,对企业提出了诸多的挑战。

由于缺少统筹规划,企业内部遗留的IT基础架构庞大且管理起来极其复杂,这些基础架构具有严格的操作要求,分阶段改造非常困难,这样必然会影响企业对客户需求的响应能力以及新增加和改进后的服务的部署。

一个个的“信息孤岛”常常分属于不同的管理职能部门。由于这些系统没有进行互联,导致难于信息共享,即不同软件提供商的应用程序之间无法互操作。

在多个系统共存的情况下,同一个客户的信息或者企业的信息,通常在多个系统中同时存在,但是各个系统统计出的数据常常不一致,为企业领导层进行正确决策增加了难度。

面对这样的挑战,系统整合成为企业迫在眉睫的问题。企业迫切需要一种集成方法,将各种旧的应用系统和新的应用系统集成起来,这使得企业应用集成(Enterprise Application Integration,EAI)技术产生与发展起来。传统的EAI往往使用如CORBA和COM等组件化技术进行分布式、跨平台的程序交互,系统整体的拓扑结构较复杂,组件的连接协议是私有的、非标准的。其存在着诸如系统灵活性差、投入成本巨大、新系统无法快速部署等问题,不能很好的满足企业集成的需求。

在这种背景下,业内近年来提出了SOA(面向服务的架构)模型,将应用系统抽象成一个个粗粒度的服务,标准化服务接口,松耦合服务架构。使用面向服务的ESB平台集成遗留IT系统,将系统服务化,通过服务组合的方式复用企业IT资产,对于新开发的信息系统,采用插接方式进行快速部署,缩短了投资回报周期,提高了系统的适应性、灵活性和扩展性。采用这种面向服务的ESB平台进行系统整合,成为当前企业解决“信息孤岛”的最佳方案。

2、SOA和ESB

2.1 面向服务架构SOA

面向服务架构(Service Oriented Architecture,SOA)是一种新型的软件体系架构模式,它是在计算环境下设计、开发、应用、管理分散服务单元的一种规范,它将应用程序的不同功能单元(称为服务)通过服务间定义良好的接口和契约联系起来。可以根据需求通过网络对松散耦合的粗粒度服务进行分布式部署、组合和使用。SOA的目标在于让IT系统变得更有弹性,以便更灵活、更快地响应不断改变的企业业务需求。

目前并没有一个统一、标准的SOA的定义,下面是几种对于SOA的描述:

“SOA本质上是服务的集合。服务间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务间需要某些方法进行连接。所谓服务就是精确定义、封装完善、独立于其他服务所处环境和状态的函数。”

“按需连接资源的系统。在SOA中,资源被作为可通过标准方式访问的独立服务,提供给网络中的其他成员。与传统的系统结构相比,SOA规定了资源间更为灵活的松散耦合的关系。”

“SOA是一种用于创建企业IT系统体系结构的体系结构样式,利用了面向服务的原则来实现业务和支持业务的信息系统之间更为紧密的关系。”

从上述的定义中可以看出的几个关键特性:一种粗粒度、松散耦合服务架构,服务之间通过简单、精确定义的接口进行通讯,不涉及底层编程接口和通讯模型。

粗粒度性:粗粒度服务提供一项特定的业务功能,采用粗粒度服务接口的优点在于使用者和服务层之间不必再进行多次的往复,一次往复就足够了。

松耦合性:松耦合性要求 SOA 架构中的不同服务之间应该保持一种松耦合的关系,也就是应该保持一种相对独立无依赖的关系。

位置透明性,位置透明性要求 SOA系统中的所有服务对于他们的调用者来说都是位置透明的,也就是说每个服务的调用者只需要知道他们调用的是哪一个服务,但并不需要知道所调用服务的物理位置在哪里。

协议无关性,协议无关性要求每一个服务都可以通过不同的协议来调用。

SOA 架构的出现为企业系统架构提供了更加灵活的构建方式,如果企业架构设计师基于SOA来构建系统架构,就可以从底层架构的级别来保证整个系统的松耦合性以及灵活性,这将为企业未来商业逻辑的扩展打好坚实的基础。

2.2 企业服务总线ESB

企业服务总线(Enterprise Service Bus,ESB)是基于SOA思想的企业应用集成的基础软件架构。IDC将ESB定义为:基于开放的标准消息总线,用于通过标准的适配器和接口,来提供各程序和组件之间的互操作功能。它支持相互独立的异构环境中的服务、消息及基于事件的交互,并且具有适当的服务级别和可管理性。

ESB作为SOA架构的信息传输龙骨,为SOA提供了一种连通性的基础架构,用以连接SOA中的服务。第三方的程序组件能够以标准的方式“插入”到该平台上运行,组件之间能够以标准的消息通信方式进行交互。ESB克服了传统EAI技术的缺陷,能够对各种技术和应用系统提供支持,具有很强的灵活性和可扩展性。这种模式有助于减少应用接口的数量和复杂性,从而降低IT维护和更改的成本,让企业能够以更简单、更快速、更安全的方式来使用服务。

如图1所示,ESB提供了企业内不同应用系统间服务路由的基础设施,仲裁松耦合服务或非关联服务之间的关系, 并且实现了SOA各系统服务之间的消息传递,使各系统服务成为SOA的一部分。在ESB内部,通过WSDL这种中立的接口和契约定义格式,每个系统可以将功能展示出来,供其它应用系统调用。ESB支持各种不同的技术,诸如不同的操作系统,编程语言,以及各种消息协议。通过部署ESB,不但可以很容易地把现有遗留系统封装成一个个的服务,也可以快速将新开发的系统部署到整个IT架构中,从而形成真正的随需而变、随需而建和分布式系统结构。

3、JBI规范

JBI(Java Business Integration)是SUN公司提出的ESB的规范。JBI规范基于SOA的设计思想,解耦了组件之间的联系,并基于标准的消息交互定义了组件之间的交互语义。

JBI定义的体系结构允许第三方的组件插入到标准的基础设施上,即使这些组件是由不同提供商提供的,它们也可以以一种可预见的和可靠的方式互操作。如图2所示。

图2 JBI概念层插件框架

这一结构中,组件的交互使用一种经过中介的消息交换机制,该消息交换模式基于WSDL 2.0或WSDL 1.1。如图3所示。

图3 JBI组件消息交互

JBI规范定义的ESB环境包含3方面内容:标准消息路由器(Normalized Message Router, NMR),JBI管理部分和JBI组件框架。NMR实现组件之间的消息路由,JBI组件框架为JBI组件提供一个可插拔的组件容器,JBI管理部分基于JMX实现JBI环境中系统和组件的管理,JBI环境的组成如图4所示。

图4 JBI体系结构

4、西安协同SOA服务总线SynchroESB

西安协同时光软件是国内企业集成技术的先行者,在多年企业流程整合成功实施的基础上,推出了为企业复杂、需求苛刻的异构IT系统集成提供解决方案的SOA服务总线SynchroESB。该产品是一个企业应用集成的开发、部署、运行、管理和维护的协同企业服务总线平台,遵循JCP组织发布的JBI(jsr208)规范,符合JBI、JTA、Web service、XSLT、SSL、WPDL、BEPL4WS等主流规范,利用标准JMS消息通信机制和高性能的Peer-Peer通信技术,实现了服务之间的通信、连接、组合和数据集成,为企业应用提供了便捷、一致、安全并符合标准的丰富接口,保证服务之间信息的可靠传送,实现不同厂家的数据库、中间件运行平台及其基于这些平台之上开发的应用软件的服务集成。

协同SOA服务总线平台是一组可视化工具和后台应用程序的集合,用于构建、配置、部署、监控、管理和运行ESB网络中的服务组合,由工具层、服务总线、消息总线构成。其体系架构如图5所示。

图5 SynchroESB体系结构

服务总线层包含了管理中枢UltraServer(US)、执行容器PeerServer(PS)、组件库等。

其中UltraServer是整个SOA平台的管理中枢,负责服务资源管理、安全管理以及将ESB网络中物理分散的PeerServer和系统中提供的各种服务组合成企业级应用,支持对企业总线远程统一管理监控、动态部署和发布。UltraServer具有可扩展的安全管理设计,支持用户验证和访问控制,支持安全的服务注册和部署。

PeerServer是一个完整的JBI运行环境,它是SynchroESB的执行容器,PeerServer将动态安装、运行各种适配器组件;管理endpoint端点注册库;按照一定的策略调度endpoint之间的路由;选择合适的通讯机制;通过线程池、集群、负载均衡保证SynchroESB运行时的企业级QOS。

消息总线SynchroMQ为协同SOA平台提供消息通信服务,是UltraServer与PeerServer、PeerServer与PeerServer等之间进行交互的消息通道。

工具层提供了协同SOA平台的各种图形化的设计监控工具,包括:设计工具SPO(Orchestration),用于服务组合的设计、组件服务类别管理、规则定义,以及服务组合的上传、部署、运行;服务映射和转换工具(Transformer),为用户提供了完全图形化的映射关系配置界面;管理控制台(Console),用于整个SOA平台的初始化配置和运行性能监控管理。

图6是设计工具SPO以及服务映射和转换工具Transformer的可视化图形界面。这些可视化工具极大减轻了开发人员的开发工作量并降低了学习的难度。

图6 SPO和Transformer可视化工具

协同SOA平台具有以下技术特色:

·先进的SOA体系架构

平台采用面向服务的架构(SOA)、基于标准的可重用服务组件库,以及开放式体系结构,使协同SOA平台能够最大限度地适应今后的业务发展变化需要。

·事件驱动(EDA)模型设计

事件驱动模式是将服务提供者和消费者之间交互进行解耦,使得集成环境中的各个IT系统可以异步、多对多、基于事件的进行通讯;事件驱动模式是对SOA模式的一种补充。协同SOA平台将事件驱动的方法和面向服务的方法结合使用,以简化业务系统的集成;协同SOA平台是异类系统进行通讯的中介,部署到协同SOA平台上的服务可以由服务提供者或者事件触发。协同SOA平台同时支持同步方式和异步方式,可以使服务一对一和多对多通信。

·微内核、插件式

plug-in的设计思想将组件完成的功能从协同SOA平台内核中剥离出来,组件功能和核心总线以松散耦合的方式结合,降低了内核的复杂度。而且集成项目中费用最高的部分就是对遗留系统的定制工作,协同SOA平台可以在总线上很容易开发、部署所需的插件,并对内核和其他插件的运行没有任何影响。

·多种传输方式

协同SOA平台提供多种可靠的分布式通信模式,以保证异构系统之间大数据的以及频繁数据的传输。支持同步、异步模式,支持发布/订阅、点对点模式、支持断点续传。

·灵活的部署方式

协同SOA平台既可以独立部署,也可以很容易的内嵌到各种应用系统中;与WebLogic、WebSphere、Jboss等应用服务器以及tomcat、jetty等web服务器无缝集成;支持Spirng框架,可以运行在EIS的服务端和客户端;SynchroESB可以运行在Java SE或者Java EE中。

·企业级QOS

协同SOA平台通过建立PeerServer网络群,形成全局的服务仓库,通过路由策略的定制,将并发的请求分担群集中各节点的服务上,以达到负载均衡的能力;协同SOA平台网络中各节点可以配置master/slave关系,保证高性能、容错的服务能力;协同SOA平台网络中传输的信息可以持久保存在设备上,保证了服务的可靠性。线程池的使用提高了协同SOA平台并发响应的能力。

·多路连接

协同SOA平台的组件支持web service和MOM两种调用方式。

·图形化的服务编制

协同SOA平台提供了基于Eclipse的图形化设计工具,用于服务之间的编制。友好的图形界面、丰富的组件类别、人性化的操作方式,使用户灵活方便的设计出复杂的流程。

·实时的活动监控

协同SOA平台提供了系统监控(各个PeerServer的内存、线程、队列等)、流程监控(流程运行的状态以及各个服务的运行状态)。可以实时为用户提供整个平台的运行数据。

·强大的数据集成功能

协同SOA平台的ETL(extract、transform、load)组件提供了历史数据迁移、数据同步、数据合并等功能,可以让不同数据源(file、database)的数据实时访问。

·数据的安全性

协同SOA平台提供身份认证、访问授权控制以及消息传输过程中的加密手段来保证数据的安全性。

5、应用场景实例

5.1场景1-数据整合

场景描述

陕西移动可能存在着这样的情况:同一个客户的资料信息在很多个系统中都存在,多系统间的数据不统一。例如ERP、OA、客服等系统中都有着同一个客户的资料信息, 在OA系统中新增、修改或删除了某条客户的信息, ERP和客服系统并不知道,需要手工修改才能达到数据之间的一致性,这种工作方式的缺点在于:

·重复的工作

对客户资料的一次修改要在ERP、OA、客服系统中做同样的工作。

·一致性差

在ERP系统中删除了某条客户的信息,OA和客服系统有可能还没有删除,还在处理这个客户的数据,这样在整个处理流程中就会出错,不能保证数据的一致性。

·容易混淆

同一条客户信息在不同系统中的名称可能不一致(例如在ERP中叫“张某某”,在OA中叫“张某某先生”),人工操作时会误认为是不同的客户信息。

整合方案

通过SynchroESB把OA、ERP、客服系统进行数据整合,SynchroESB为每个系统提供相应的数据库适配器(DBAdapter),使其能够和SynchroESB及其它系统无缝衔接。当OA系统中的客户信息发生改变时,SynchroESB会通过数据库适配器将这条记录转换成XML消息,自动流转到ERP和客服系统的适配器中,适配器将XML消息更新数据库中的记录,最终将客户信息更新,使多个系统中的客户信息能够最快速的完全统一,其优势体现于:

·提高工作效率

当OA系统中的客户信息发生改变时,SynchroESB会自动更新ERP和客服系统中的客户信息,无需手工修改,只要一次操作。

·提高数据实时性

当一个系统中的客户信息发生改变时,SynchroESB会最快速的自动更新其它系统中这个客户的信息,避免了整个流程的错误。

·提高扩展性

如果引进一个新系统也要记录客户信息,只需通过适配器接入SynchroESB总线上即可达到数据的一致性,并没有增加手动操作的次数。

·提高投资回报率

如果OA系统中某个功能要用到ERP和客服系统中的数据,通过SynchroESB可以很容易获得,SycnhroESB可以使系统间资源共享,提高了企业投资回报率。

5.2场景2-流程整合

场景描述

企业根据需求,在不同时期购买了不同软件公司的OA系统和ERP软件包。OA系统实现企业内最基本的办公功能,如工作流审批、日常办公管理等;ERP实现对企业整个供应链的有效管理。

在应用实践中常常发现OA系统进行工作流的审批后,产生的很多业务数据可能是ERP系统的数据源。比如,在处理一个设备采购的流程中,工作人员在OA系统中创建一个采购方案,发给内部人员进行审批,审批通过后,需要将采购方案导出成报表;工作人员再根据报表内容,把采购方案的信息导入ERP系统中,进行合同订立、订单下发、设备采购等过程。

这种业务流程处理“半自动化”的现象,逐渐暴露出如下弊端:

·系统之间相互隔离,造成流程割裂,不便于业务准确快速的处理。

·一个个的“信息孤岛”无法帮助企业整合资源,进行更高效的决策管理,比如OA系统需要实时的跟踪采购方案,了解其处理状态等。

整合方案

使用SynchroESB,采用以下方案在OA与ERP之间搭建出一条桥梁来实现双向的沟通和会话,实现了流程整合。

具体整合过程如下:

·通过专用适配器使OA系统和ERP分别和SynchroESB连接起来,可以相互通讯;

·在SynchroESB中建立一个设备采购监控转发服务组合,用于监控OA系统,实时取得OA系统中审批完成的设备采购订单数据,并且将这些数据发个ERP系统,由ERP系统处理合同订立、订单下发、设备采购等流程;

·在SynchroESB中再建立一个设备采购状态跟踪服务组合,实时跟踪ERP中设备采购的状态,并发回给OA系统,以便于公司领导随时了解设备采购进度。

通过SynchroESB这座信息桥梁将两个系统集成起来以后,整合以后的系统主要表现出以下优势:

·使企业内部的数据“畅通无阻”,不再需要手工导出/导入数据。

·减少了业务处理时间,极大提高了工作效率。

·系统之间相互弥补,在各个系统提供基本服务的基础上,可以给公司创造更多额外的、可扩展的服务,实现企业整体效益最大化。


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