当前位置:文档之家› ESB企业服务总线解决方案剖析

ESB企业服务总线解决方案剖析

ESB企业服务总线解决方案剖析
ESB企业服务总线解决方案剖析

关于SOA

关于SOA的概念,你可以找到很多的文章从不同的角度来描述它,不同的软件提供商也有不同的定义方式。BEA有流体计算,微软有Indigo和SOA-building,SAP有ESA。每个人都可以从不同的视角来理解SOA,从程序员的角度,SOA是一种全新的开发技术,新的组件模型,比如说Web Service;从架构设计师的角度,SOA就是一种新的设计模式,方法学;从业务分析人员的角度,SOA就是基于标准的业务应用服务。从概念的角度,IBM 对SOA的定义是最为全面的,既SOA是一种构造分布式系统的方法,它将业务应用功能以服务的形式提供给最终用户应用或其他服务。SOA包括如下要素:

一个体系架构,用开放的标准将软件资产(Asset)化为服务

提供标准的方法来表示软件资产及其交互

单独的软件资产作为构造单元,被重复使用来开发其他应用

将关注点从细节实现转移到应用(application)组装

整合企业外部的应用(B2B)的方式

开发(现在)和整合(未来)的统一

本文针对的读者是软件开发人员,站在开发人员的角度,往往希望软件开发能够满足对于开发效率、可靠性、易维护性、易管理等多方面的更高要求。让我们通过回顾软件开发的演化过程来看一看SOA出现的必然性:

面向机器语言(Monolithic)的开发模式:需要根据不同平台的机器语言来开发代码。

面向过程(Procedure)的开发模式:独立于机器的程序语言(C,Pascal等)使开发过程变得简单了,用过程来代表一个抽象的代码集合,包装重用现成的代码。

面向对象(Object)的开发模式:用更接近现实的对象来表述一个相对完整的事物。面向对象的语言(Smalltalk,Java等),提供了更抽象的封装和重用模式。面向对象的开发强调从现实世界问题域到软件程序的直接映射,更接近人类的自然思维方式。

面向组件(Component)的模式:随着软件开发规模的扩大,在涉及分布式、异构等复杂特征的环境中,代码级别的重用性差,可维护性差,效率低的弱点是不可逾越的,因此人们以架构运行环境(如.Net,J2ee等)来提供完善的支撑平台,从而把开发者解放出来,更专注于业务核心的开发。而这些业务功能(Business Function)以组件的形式(DCOM,EJB等)发布运行在架构运行环境中。软件开发的重用模式也上升到业务组件的级别。

面向服务(SOA)的模式:当软件的使用范围扩展到更广阔的范围,往往会面对更加复杂的IT环境和更加灵活多变的需求。服务(Service)的概念出现了,人们将应用(Application)以业务服务(Business Service)的形式公布出来供别人使用,而完全不需要去考虑这些业务服务运行在哪一个架构体系上,因为所有的服务都讲着同样的语言。SOA考虑了业务发展的长期性,体现了"变化就是永恒"的思想。SOA的核心体现在企业应用或者业务功能上的"重用"和"互操作",而不再把IT与业务对立起来,这可以被视为在IT驱动业务的方向上迈出的重要一步。

我们注意到,SOA同样也强调重用(Reuse),但是相对于传统的代码重用,对象重用,和部件重用,SOA的重用粒度更粗。SOA的重用在于业务级的应用,即服务的重用,这与软件的发展规律是相一致的。在软件发展的过程中,软件重用的对象越来越接近我们的现实生活。通过部件的重用,软件的开发更具效率,并且开始试图用组件表达业务模式。但是,IT人员仍很难对业务人员解释清楚IT结构怎样映射到业务模型上。然而,IT架构与业务模型的弥合是不可避免的方向。现代企业的业务环境所面临的最大挑战就是变化,规则在变,需求在变,而对变化做出最快的反应,尽快地适应变化,成为企业占得先机,成功运作的关键。很多企业的业务环境依赖于他们的IT架构,因此,IT部门往往直接承载了业务变化带来的压力。每一个具体的业务变化,都直接反应到对现有的IT平台的要求:要么企业IT架构本身对变化自适应,要么IT架构能够在短时间内根据新的业务规则做出调整。这就是SOA 架构提出的根本原因,我们需要一种更加贴近业务的IT架构,能够直接描绘业务,对那些不懂IT技术的业务领域专家来说,业务服务却是他们最熟悉的,也就是说是SOA把软件重用的对象从IT人员上升到了业务人员。因此,我们可以说SOA与其它的模式相比,最大的进步在于它与业务的关联性,"服务"对应到实际业务。IT通过"服务"与业务发生了密切的关系,业务人员和IT人员都可以专注于业务逻辑的实现,而共同的语言就是"服务"。

但不是什么场合都适用SOA。通常来讲,SOA适用于较为复杂的IT架构,经常需要与外部复杂的IT环境交互,并且需要快速地应对频繁发生的业务变化。就像你不可能在控制洗衣机的芯片上使用EJB开发一样,如果你的IT环境规模很小,足以灵活地应对变化,不需要与其他的异构IT环境频繁交互,那么SOA带来的好处就不足以抵消它给你带来的系统复杂性。但是,即令如此,你也并没有被完全排除在SOA的大趋势之外。SOA是如此地倍受瞩目,我们可以预见到它的迅猛发展,因此即使你的内部IT架构本身并不是基于SOA 的,你也还有机会参与到未来的SOA架构中去。例如,将你的某个业务以服务的形式发布到某个外部SOA平台上供别人使用,作为第三方SOA平台的一个服务提供者(Service Provider)存在。

在选择SOA的实施方案时,要记住,软件的具体实现技术诸如Web服务与SOA是两回事,SOA是一个概念,方法学,或者用一个更时髦的词:一种模型。而Web服务呢?它是一种具体的实现技术,就像EJB一样。SOA≠Web服务。不过公平地讲,Web服务

倒确实是目前最适合实现SOA的技术之一,用Web服务来封装业务服务是个不错的选择。因为Web服务是标准的,WS-I协议保证了来自不同厂商的Web服务即使运行在不同的平台上,底层的实现机理不同也可以顺利交互,这是以前的任何一种技术如CORBA,EJB,或DCOM都不能做到的。而且,Web服务的定义与实现是分开描述的,即松散耦合,因此,可以很方便地替换服务的内在实现而不会对现有的系统造成任何冲击,这也极大地促进了IT 架构的灵活性。

对于SOA更进一步的了解,可以参考IBM developerWorks上其他SOA相关的文章(请参见参考资料),我们的系列文章将主要讨论ESB,因此不再此过多地论述SOA了。为了

使我们下面的论述更顺畅,请先牢记典型的SOA架构有哪些基本的要求:

SOA在相对较粗的粒度上对应用服务或业务模块进行封装与重用;

服务间保持松散耦合,基于开放的标准,服务的接口描述与具体实现无关;

灵活的架构-服务的实现细节,服务的位置乃至服务请求的底层协议都应该透明;

ESB

让我们暂时回到网络技术不普及的时代,你怎样在两台机器之间传递文件?我还记得为了给实验室的每台机器安装Borland C++的环境,猜猜我动用了什么:一根"串口线"。不过,我仍然觉得庆幸,好在每台机器都运行同样的操作系统-DOS(很少有人还记得DOS中有Interlnk这样一个命令吧),用来通过串口线在两台机器间传递流文件。否则我将不得不用软盘来拷贝所有的安装文件。我那个时候的梦想就是,哪一天有这么一个叫做"网络"的东西能够把实验室里面所有机器都连接起来,而不用我在各机器之间跑来跑去。

让我们回归主题,你现在已经基本明白了什么是SOA。假定你已经按照SOA的思想提炼出了各种业务服务,公布出来,同样,你发现其他很多人也做了同样的事情。大家都很振奋,开始踊跃的尝试,我调用你的一个服务,你调我的一个服务。啊哈!大家都SOA了。且慢,那么这个SOA给你们带来了什么好处呢?Ok,现在我可以在J2EE环境里调用.Net 的组件了,但是原来没有SOA的时候也可以做到的呀。只要两个节点之间互相认可对方的方式,即使不存在公开/统一的服务界面也可以实现点到点的互联。因此我们不得不承认,

如果我们只有服务,而服务的请求者和服务的提供者之间仍然需要这种显式的点到点的调用,那么这就不是一个典型的SOA架构。请看图二,服务的参与双方都必须建立1对1的联系。这样一个结构与我十几年前的那种互联的方式何其相似!但是,还记得我们上面提到的SOA 三个基本要素吗?显然第三点没有做到。

因此,在SOA中,我们还需要这样一个中间层,能够帮助实现在SOA架构中不同服务之间的智能化管理。最容易想到的是这样一个HUB-Spoke结构,在SOA架构中的各服务之间设置一个类似于Hub的中间件,由它充当整个SOA架构的中央管理器的作用。请看图三,现在服务的请求者和提供者之间有了一个智能的中转站,服务的请求者不再需要了解服务提供者的细节。不错!看上去是一个好的SOA结构。事实上,传统的EAI就是通过这样一种方式来试图解决企业内部的应用整合问题。

EAI的目标是支持对现有IT系统的重新利用,通过EAI技术能够将不同的软件和系统串联起来,延长这些应用系统的生命周期。传统的EAI,往往使用如CORBA和COM等的消息中间件进行分布式,跨平台的程序交互,修改企业资源规划以达到新的目标,使用中间件、XML等方法来进行数据分配。因此,实际上传统的EAI是部件级的重用。很不幸的是,基于部件的架构没有统一的标准,因此,各个厂商都有各自不同的EAI解决方案,你会看到各种各样的中间件平台。如果EAI碰到了异构的IT环境,就必须分别考虑怎样在各个不同的中间件之间周旋,来实现合理的互联方式,你不得不考虑各种复杂的可能性。因此,你所见过的大多数传统EAI解决方案都比较笨重。

再回顾一下我们上面介绍过的SOA的应用场景:复杂的企业级架构。如果我们选择Hub的模式来构建SOA基础架构,从纯粹逻辑的角度,可能会出现哪些问题呢?首先,整个SOA架构的性能,如果每个服务的请求都经过中央Hub的中转,那么Hub的负担会很重,速度会随着参与者的增多而愈来愈慢;其次,这样的系统会很脆弱,一旦Hub出错,整个SOA架构都会瘫痪;最后,这样的架构会破坏SOA的开放性原则,参与者运行在一个相对封闭的环境中,扩展起来十分麻烦。因此,这也不是理想的SOA架构。

好了,现在该ESB登场了,请看我们的正解:

它与前面的Hub结构有什么不同呢?首先,它比单一Hub的形式更开放,总线结构有无限扩展的可能;其次,真正体现了SOA的理念,一切皆为服务,服务在总线(BUS)中处于平等的地位。即使我们需要一些Hub,那么它们也是以某种服务的形式部署在总线上,相比上面的结构要灵活的多。这就是ESB,我们需要给它一个明确的定义:ESB是一种在松散耦合的服务和应用之间标准的集成方式。它可以作用于:

面向服务的架构-分布式的应用由可重用的服务组成

面向消息的架构-应用之间通过ESB发送和接受消息

事件驱动的架构-应用之间异步地产生和接收消息

很不幸,上面的定义看上去很拗口,我们暂且用一句较通俗的话来描述它:ESB就是在SOA架构中实现服务间智能化集成与管理的中介。而它与SOA的关系要相对好理解一些:ESB是逻辑上与SOA所遵循的基本原则保持一致的服务集成基础架构,它提供了服务管理的方法和在分布式异构环境中进行服务交互的功能。可以这样说,ESB是特定环境下(SOA架构中)实施EAI的方式:首先,在ESB系统中,被集成的对象被明确定义为服务,而不是传统EAI中各种各样的中间件平台,这样就极大简化了在集成异构性上的考虑,因为不管有怎样的应用底层实现,只要是SOA架构中的服务,它就一定是基于标准的。

其次,ESB明确强调消息(Message)处理在集成过程中的作用,这里的消息指的是应用环境中被集成对象之间的沟通。以往传统的EAI实施中碰到的最大的问题就是被集成者都有自己的方言,即各自的消息格式。作为基础架构的EAI系统,必须能够对系统范畴内的任何一种消息进行解析。传统的EAI系统中的消息处理大多是被动的,消息的处理需要各自中间件的私有方式支持,例如API的方式。因此尽管消息处理本身很重要,但消息的直接处理不会是传统EAI系统的核心。ESB系统由于集成对象统一到服务,消息在应用服务之间传递时格式是标准的,直接面向消息的处理方式成为可能。如果ESB能够在底层支持现有的各种通讯协议,那么对消息的处理就完全不考虑底层的传输细节,而直接通过消息的标准格式定义来进行。这样,在ESB中,对消息的处理就会成为ESB的核心,因为通过消

息处理来集成服务是最简单可行的方式。这也是ESB中总线(Bus)功能的体现。其实,总线的概念并不新鲜,传统的EAI系统中,也曾经提出过信息总线的概念,通过某种中间件平台,如CORBA来连接企业信息孤岛,但是,ESB的概念不仅仅是提供消息交互的通道,更重要的是提供服务的智能化集成基础架构。

最后,事件驱动成为ESB的重要特征。通常服务之间传递的消息有两种形式,一种是调用(Call),即请求/回应方式,这是常见的同步模式。还有一种我们称之为单路消息(One-way),它的目的往往是触发异步的事件,发送者不需要马上得到回复。考虑到有些应用服务是长时间运行的,因此,这种异步服务之间的消息交互也是ESB必须支持的。除此之外,ESB的很多功能都可以利用这种机制来实现,例如,SOA中服务的性能监控等基础架构功能,需要通过ESB来提供数据,当服务的请求通过ESB中转的时候,ESB很容易通过事件驱动机制向SOA的基础架构服务传递信息。

ESB的适用场景及要素

首先,我们来看一看ESB有哪些基本的功能。既然ESB会以中介的身份出现,它就必须有两方面的考虑,首先它必须了解被它中介的两个端点:1)服务的请求者以及请求者对服务的要求,2)服务的提供者和它所提供服务的描述;其次,它必须具有某种机制能够完成中介的任务。我们把这两类考虑归纳为ESB的两个基本功能:面向服务的原数据(MetaData)管理功能和中介(Mediation)功能。作为SOA的重要构成部分,ESB承担的重任还包括怎样将企业架构中已存在的业务服务连接到总线上来,我们称之为适配器(Adapter)功能。尽管服务本身已经用公开的接口来描述,但具体的实现还是运行在不同的环境中,因此,ESB 还应该提供对服务底层协议的支持,譬如应用协议J2ee,.Net,通讯协议如Http,JMS 等等。除此之外,还需要对具体应用中涉及到的服务加以管理,如性能,可靠性,安全性等等。

ESB提供了最基本的功能来保障SOA系统的运行,这些功能应该包含下列内容:在总线范畴内对服务的注册命名及寻址管理功能-服务的Meta-data管理

面向服务的中介功能

提供位置透明性的服务路由和定位服务

多种消息传递型式(请求/响应,单路请求,发布/订阅等等)

支持广泛使用的传输协议(Http,JMS,MQ等等)

支持多种服务集成方式,比如JCA、Web服务、Messaging、Adaptor

对服务管理的支持,如服务调用的记录、测量和监控数据的提供

很多时候,很难界定哪些功能是应该由SOA的基础架构(infrastructure)提供的,而哪些应该放在ESB的范畴内来解决。笔者认为,放大或突出ESB在SOA架构中的地位并不很恰当。比较合理的解释是:ESB应该构筑在完善的SOA架构上,做它应该做的事-服务

集成。至于怎样集成,应该根据你的上下文环境,考虑有哪些SOA的基础设施可供你使用,然后再基于SOA的基础架构来实现你的ESB设计。

在更高的层次,ESB还提供诸如服务代理,协议转换等等功能,我们称之为ESB的应用模式(ESB usage pattern)。作为SOA架构的服务集成功能提供者,我们可以总结出的一些比较常用的应用模式,例如:

1)协议转换模型,用于当服务的请求者与服务提供者基于不同协议时的消息转换情形

2)消息广播模式,用于事件驱动多个动作或者消息广播的情形

3)服务匹配模式,用于需要动态选择服务提供者的情形,例如可以根据消息的内容,或负载情况,或服务级别约定(SLA),来为服务请求者选择合适的服务。

这里我们只列举了3个典型的模式,而这样的例子实在太多了,发挥你的创造性,你还会想出来更多的,这也是ESB的魅力所在。但是,在ESB的设计上,注意不能喧宾夺主,ESB的功能在于帮助服务的集成,而不是参与业务逻辑。业务逻辑应该封装在业务服务中,或通过业务编排服务(Process Service)来组织。

实战

关于ESB,目前还没有被一致接受的标准。我们可以通过选择成熟的EAI中间件来实现服务的集成与互操作性。这样做的好处是你的开发过程会很顺畅,因为它已经足够稳定且有丰富的工具支持。通常这样的EAI产品在目前阶段都还不是基于开放的标准,例如IBM 的WebSphere MQ5.3,作为IBM EAI实现ESB的消息平台,就不是开放的标准。如果一定要选择开放标准的ESB实现方式,Web服务加上WS-*协议几乎是我们唯一的选择,但毕竟SOA、ESB仍处于起步的阶段,一方面我们还没有很成熟的产品支持所有的WS-*协议,另一方面这些WS-*协议本身还处在频繁变化的阶段。因此当你选择ESB实施方案的时候,最好考虑平衡ESB实施、开发的工作量。

这里你可能会有疑问,既然SOA架构追求开放性,为什么我们要容忍用私有的ESB

产品如IBM WBI/MQ来构建SOA架构的集成环境?这是一个好问题。SOA始终是我们追求的大目标,开放是必然的趋势,这是毋庸置疑的。但是,请注意ESB的定义,至少到目前为止,还没有明确的要求它的实现一定是开放的,每一个软件供应商对它都可能有不同的理解和实现的策略。我们不用怀疑ESB将来的开放之路,但至少在目前阶段,我们不能坐下来等待它的到来。其实,ESB充当的是SOA中的中介角色,因此,即使将来ESB变化了,对服务的请求者和服务的提供者都不会造成很大的冲击,因为它本来就是对用户透明的。

举个例子,J2EE,它的标准一直在变化中,但是大家通常都能接受它的变化,社会总是要进步的,IT也一样。你不可能因为J2EE两年以后要出1.6就不再使用现在的1.4了。

IBM目前可以用于ESB实施的产品也可以分为两大阵营:

以目前稳定的产品如WS MQ,WBI Message Broker,Tivoli等为代表的EAI解决方案。

以WAS6SIBUS为代表的专用ESB平台。

现有的EAI解决方案,可能涉及如下的IBM软件产品:

WebSphere BI Message Broker用于提供ESB的message中介功能(Mediation)

WebSphere MQ/JMS用于消息传输服务

WebSphere Process Choreographer用于实现服务流程

WebSphere Adaptor用于连接遗留系统

Web Service Gateway用于实现Web服务Proxy,屏蔽企业内部/外部Web服务的实现细节

WAS6中提供了崭新的消息服务平台WPM(WebSphere platform messaging),并基于这一平台提供了ESB的一个具体实现-SIBus(Service Integration Bus)它可以支持同步和异步的消息通信。总线(Bus)通过互联的消息引擎管理消息源。同时支持基于Web服务和JMS,MQ格式的消息交互。你可以从WAS6身上看到IBM战略的变化,SIBus只是IBM 加大对于SOA支持的一步,你还会很快看到更多的变化,例如独立的ESB产品,ESB的开发工具等等。但是,你完全不必担心,这些变化都会保持兼容性,现在SOA的投入,无论是以哪一种方式,都会在IBM的SOA整体考虑之中。

上述的两种方案并不是对立的,你可以选择基于成熟产品实现ESB,也可以尝试一下IBM的最新技术。这两种方案甚至可以互联,见图八。我们将在系列的第四部分讲解这一较为复杂的场景。

关于作者:李珉,高级软件工程师,技术经理,IBM中国软件开发实验室SOA设计中心

第4部分ESB在医疗行业中的应用健康服务总线

区域医疗 SOA 解决方案 第 4 部分: ESB 在医疗行业中的应用 - 健康服务总线 健康服务总线是企业服务总线在医疗行业的实现,它使用 SOA 架构和医疗行业标准为基础,将医疗卫生机构的业务流程、应用系统和相关数据整合起来,提供统一的访问总线。本文给出了 IBM WebSphere Message Broker 为实现平台的参考架构,并详细介绍了与 IBM 其他产品进行集成以提供健康服务总线的相关功能。 背景介绍 区域医疗信息网络内多系统的整合 在区域医疗卫生信息网络(Regional Healthcare Information Network,RHIN)内医疗卫生机构之间共享临床与医疗健康信息的能力是当今医疗行业内面临的主要挑战之一,现有的医疗机构应用系统由于采用了不同标准、数据模型或者实现平台,在需要数据共享时候,常常根据某些特定需求实现了特定方式的连接,由于系统的异构性以及集成需求的变化和增加,这种点对点的信息交换模式越来越复杂而且难以维护,逐渐不能满足日益复杂的数据共享和交换要求,现有的系统整合和集成需要一种统一的应用架构来解决上述挑战,从而形成一个互联互通的医疗卫生业务协作网络,实现市民在各医疗机构间(例如医院与医院之间,医院与社区中心之间,社区中心与社区中心之间)的诊疗资料的共享和交换。 健康服务总线概念 在面向服务的体系架构(SOA)中,企业服务总线(Enterprise Service Bus, ESB)是一个实现系统间集成和互联互通的重要技术架构,它提供一个基于企业总线的先进应用整合理念,最大限度地减少应用系统互联所面临的复杂性,降低集成和维护成本。在区域医疗卫生信息整合环境下,构建统一的企业服务总线是实现区域医疗信息网络内多系统整合的重要实现手段,在这里,我们把企业服务总线在医疗卫生行业内特定的实现称之为健康服务总线(Health Service Bus,HSB)。健康服务总线在实现企业服务总线基本特点的同时,例如消息转换、路由、协议接入等,还需要满足医疗卫生行业内的特定需求,例如病人隐私保护、医疗卫生行业标准支持等。

ESB企业服务总线解决方案剖析

关于SOA 关于SOA的概念,你可以找到很多的文章从不同的角度来描述它,不同的软件提供商也有不同的定义方式。BEA有流体计算,微软有Indigo和SOA-building,SAP有ESA。每个人都可以从不同的视角来理解SOA,从程序员的角度,SOA是一种全新的开发技术,新的组件模型,比如说Web Service;从架构设计师的角度,SOA就是一种新的设计模式,方法学;从业务分析人员的角度,SOA就是基于标准的业务应用服务。从概念的角度,IBM 对SOA的定义是最为全面的,既SOA是一种构造分布式系统的方法,它将业务应用功能以服务的形式提供给最终用户应用或其他服务。SOA包括如下要素: 一个体系架构,用开放的标准将软件资产(Asset)化为服务 提供标准的方法来表示软件资产及其交互 单独的软件资产作为构造单元,被重复使用来开发其他应用 将关注点从细节实现转移到应用(application)组装 整合企业外部的应用(B2B)的方式 开发(现在)和整合(未来)的统一 本文针对的读者是软件开发人员,站在开发人员的角度,往往希望软件开发能够满足对于开发效率、可靠性、易维护性、易管理等多方面的更高要求。让我们通过回顾软件开发的演化过程来看一看SOA出现的必然性: 面向机器语言(Monolithic)的开发模式:需要根据不同平台的机器语言来开发代码。 面向过程(Procedure)的开发模式:独立于机器的程序语言(C,Pascal等)使开发过程变得简单了,用过程来代表一个抽象的代码集合,包装重用现成的代码。 面向对象(Object)的开发模式:用更接近现实的对象来表述一个相对完整的事物。面向对象的语言(Smalltalk,Java等),提供了更抽象的封装和重用模式。面向对象的开发强调从现实世界问题域到软件程序的直接映射,更接近人类的自然思维方式。

XXXXXX股份有限公司_ESB企业服务总线系统厂商价格调查版

XXXXXX股份有限公司 ESB企业服务总线建设项目 厂商价格调查版 第二部分项目基本需求 一、公司介绍 二、信息系统概述 略

三、项目总体目标和项目实施范围 项目总体目标: 通过构建ESB企业服务总线来统一各个信息系统的服务接口协议,对全司内所有服务接口统一标准、统一管理,并且进行全局监控,从而打造信息系统之间信息交互的高速公路,以此来支持XXXX的信息化建设。 项目实施范围: 根据XXXX业务发展情况和信息系统建设情况,结合目前已知的需求范围,ESB企业服务总线将进行分阶段实施: 1、项目一期建设内容 首先按照项目总体目标构建功能齐全的ESB企业服务总线,在此基础上制定信息技术部ESB管理规范和ESB技术标准。 根据信息技术部计划,将下列软件系统的服务接口迁移到ESB企业服务总线:

项目一期建设周期,需求分析、设计开发、系统集成及联合调试的整体周期为5个月。 四、ESB企业服务总线技术需求描述 1.技术体系及基础架构 1)描述系统的体系架构,说明系统的层次结构(包括物理和逻辑)。 2)描述系统的硬件、系统软件、网络需求的估算和选型建议。 系统应使用当前主流的开源Mule ESB产品和ActiveMQ产品,系统应 具有多机集群功能,并容易实现未来扩展。系统使用的硬件应为当前主 流的硬件产品,该机型应具备升级扩充能力,以满足用户未来一定范围 内的需求变化。 3)描述系统的开发方式、开发技术、开发环境等; 4)描述系统的备份和恢复方案。 2.系统性能要求 部署在物理环境(CPU:1Core 2.2GHZ;RAM:4GB)上的ESB企业服务总线单个实例,需要满足如下性能要求: 1)并发用户数为100,PayLoad<10KB的条件下,透传业务在ESB中的平均处 理时间需要在100ms以下,CPU、RAM等系统资源使用率低于70%。 2)并发用户数为100,PayLoad<10KB的条件下,对于需要进行协议数据转换 业务在ESB中的平均处理时间需要在1s以下,CPU、RAM等系统资源使用 率需要低于70%。

ESB企业服务总线接口规范

企业服务总线系统(ESB) 技术白皮书 [V1.0.1115] 厦门博立特有限公司 版权所有 保留所有权利 目录 1.前言 4 2 .ESB简介 4 3. ESB主要功能和特点 6 3.1.ESB主要功能: 6 3.1.ESB主要特点: 7 4.ESB接口设计 8 4.1 总体设计框图 8 4.2 技术规范 8 4.3 消息传输流程 8 4.4 文件传输流程 8

4.5 MsgService接口说明 8 4.5.1 登陆到ESB(Login) 8 4.5.1.1 服务.NET原型 8 4.5.1.2 传入参数 9 4.5.1.3 返回参数 9 4.5.1.4 服务说明 9 4.5.2 发送消息到ESB(SendMessage) 9 4.5.2.1 服务.NET原型 9 4.5.2.2 传入参数 10 4.5.2.3 返回参数 10 4.5.2.4 服务说明 10 4.5.3 从ESB接收消息(ReceiveMessage) 10 4.5.3.1 服务.NET原型 10 4.5.3.2 传入参数 11 4.5.3.3 返回参数 11 4.5.3.4 服务说明 11 4.5.4 发送确认消息到ESB(AcknowledgeMessage) 11

4.5.4.1 服务.NET原型 11 4.5.4.2 传入参数 11 4.5.4.3 返回参数 12 4.5.4.4 服务说明 12 5.附录A 返回代码对照表 12 1.前言 随着信息技术的不断发展,企业、政府部门等在信息化建设上投入了大量的资金、人力,逐步形成了适合自身某些部门或某些业务需要的管理信息系统,如办公自动化、客户关系管理CRM、企业资源计划ERP、生产制造系统等,这些管理信息系统,在企业和政府某些部门或业务的管理上,发挥了信息电子化、流程自动化、管理科学化的重要作用。 但是,企业和政府现有的管理信息系统,由于投入的时间、使用的部门、生产的厂家及实现技术等各不相同,造成企业和政府现有的应用信息系统各自独立运行,数据不能共享,各自业务流程不能自动衔接,造成企业和政府内部许多自成体系的信息化孤岛,各个应用系统不能相互协作,形成统一高效的有机整体。 企业应用集成,英文名称为Enterprise Application Integration,简称EAI,是为了解决企业和政府现有多种应用系统不能互连互通、数据共享、业务流程协调统一的问题,将异构的两个或更多的硬件、平台及应用系统进行无缝集成,使它们形成一个统一的整体。

企业服务总线ESB项目供应商征集要求

企业服务总线ESB项目供应商征集要求 一、项目名称 企业服务总线ESB项目 二、项目背景 随着我行经营战略的实施,经营管理改革不断深化,业务规模不断壮大,产品种类不断增多,对应的支撑信息系统也在不断增加,目前已达到了一百多个,且系统与系统之间的交互也越来越多,如何高效的实现这一百多个系统之间的互联互通互用,从而形成一个有机的整体,就成了我行当前面临的一个新问题,这个问题需要在科技层面引入一种先进的架构来解决。 面向服务的SOA架构思想是当前IT架构发展的主流,SOA 是一种面向服务的分布式应用体系架构,它将各应用程序的业务功能定义为服务,并按松耦合方式组合服务形成业务功能或业务流程。通过SOA架构建设,可极大的提升整体系统对业务发展变化响应的敏捷性和灵活性。企业服务总线(简称ESB:Enterprise Service Bus)是企业SOA架构落地的最佳实践,是实施SOA的切入点。通过ESB项目建设,可建立起多层次、条线化、松耦合的IT应用架构,简化了接口和交易环节,架构更加清晰,从而能更有效支撑我行未来的业务发展战略。

三、项目要求 本系统的建设目标为建立起一个灵活的、高效的、稳定的全行总线系统,实现我行异构系统的互联互通互用,实现我行统一服务视图和统一服务监控。建设该系统,具体需达到以下要求: 1.建立起松耦合的、灵活、稳定的面向服务的SOA 系统架构,高效解决我 行异构系统间互联互通互用问题。 2.制定起我行统一的银行服务规范和技术规范,搭建一套服务治理平台, 梳理我行服务,实现服务全生命周期管理,形成我行的统一服务视图,以支持快速地构建新业务和新产品。 3.提升我行系统整体效率,通过引入流量控制和故障隔离机制,增强系统 整体健壮性。 4.通过对各系统的服务运行情况监测及分析,实现对全行系统的有效监控。

企业服务总线ESB方案书

企业服务总线ESB方案书

1需求综述 (4) 1.1主数据平台接口 (4) 1.2业务数据接口 (4) 1.3OA系统接口: (5) 1.4国家法定信息发布媒体: (5) 2系统解决方案 (5) 2.1系统技术架构 (5) 2.1.1运行平台 (6) 2.1.2开发平台 (6) 2.1.3监控平台 (7) 2.1.4公共服务 (7) 2.1.5适配器 (7) 2.2部署方案 (9) 2.2.1管理监控部分部署方案 (9) 2.2.2硬件选型建议 (10) 2.2.3逻辑分区部署方案 (11) 2.2.4硬件配置建议 (11) 2.2.5服务接口规范 (12) 2.2.6高性能、高可用性及扩展能力设计 (12) 2.2.7完善的安全机制 (13) 2.3整体解决方案 (15) 2.3.1接入控制 (16) 2.3.2通信接入模块 (17) 2.3.3请求系统适配 (18) 2.4集成服务功能 (19) 2.4.1服务治理 (19) 2.4.2提供对出错服务的及时检测和隔离功能 (20) 2.4.3协议转换 (20) 2.4.4消息格式转换 (21) 2.4.5服务路由 (22) 2.4.6监控和运维 (22) 2.4.7服务等级 (23) 2.5系统非功能需求 (24) 2.5.1可用性 (24) 2.5.2可扩展性 (24) 2.5.3可维护性 (25)

2.5.4安全性 (25) 2.5.5性能需求 (25) 2.6公用服务 (26) 2.6.1流量控制 (26) 2.6.2故障隔离 (26) 2.6.3统一流水号 (27) 2.6.4日志记录 (27) 2.7管理监控 (27) 2.7.1系统平台级监控 (27) 2.7.2应用级监控 (27) 2.7.3统计分析 (27) 2.7.4异常报警 (28) 2.7.5统一的运维管理 (28) 3技术支持与服务方案 (28) 3.1技术支持与售后服务体系 (29) 3.2服务管理模式 (29) 3.3服务响应 (30) 3.3.1问题优先级(或问题严重程度)级定义 (30) 3.3.2服务响应时间 (31) 3.3.3问题解决时间 (33) 3.3.4服务文档 (34) 3.4维护支持服务流程 (35) 3.4.1服务消息创建流程 (35) 3.4.2问题处理流程 (35) 3.4.3服务确认流程 (36) 3.4.4投诉及问题升级流程 (37)

ESB企业服务总线接口规范

企业服务总线系统(ESB) 技术白皮书 [V1.0.1115] 厦门博立特有限公司 版权所有 保留所有权利

目录 1.前言 (4) 2 .ESB简介 (4) 3. ESB主要功能和特点 (6) 3.1.ESB主要功能: (6) 3.1.ESB主要特点: (7) 4.ESB接口设计 (8) 4.1 总体设计框图 (8) 4.2 技术规范 (8) 4.3 消息传输流程 (8) 4.4 文件传输流程 (8) 4.5 MsgService接口说明 (8) 4.5.1 登陆到ESB(Login) (8) 4.5.1.1 服务.NET原型 (8) 4.5.1.2 传入参数 (9) 4.5.1.3 返回参数 (9) 4.5.1.4 服务说明 (9) 4.5.2 发送消息到ESB(SendMessage) (10) 4.5.2.1 服务.NET原型 (10) 4.5.2.2 传入参数 (10) 4.5.2.3 返回参数 (10) 4.5.2.4 服务说明 (10) 4.5.3 从ESB接收消息(ReceiveMessage) (11) 4.5.3.1 服务.NET原型 (11) 4.5.3.2 传入参数 (11) 4.5.3.3 返回参数 (11) 4.5.3.4 服务说明 (11) 4.5.4 发送确认消息到ESB(AcknowledgeMessage) (12) 4.5.4.1 服务.NET原型 (12)

4.5.4.2 传入参数 (12) 4.5.4.3 返回参数 (12) 4.5.4.4 服务说明 (12) 5.附录A 返回代码对照表 (13)

1.前言 随着信息技术的不断发展,企业、政府部门等在信息化建设上投入了大量的资金、人力,逐步形成了适合自身某些部门或某些业务需要的管理信息系统,如办公自动化、客户关系管理CRM、企业资源计划ERP、生产制造系统等,这些管理信息系统,在企业和政府某些部门或业务的管理上,发挥了信息电子化、流程自动化、管理科学化的重要作用。 但是,企业和政府现有的管理信息系统,由于投入的时间、使用的部门、生产的厂家及实现技术等各不相同,造成企业和政府现有的应用信息系统各自独立运行,数据不能共享,各自业务流程不能自动衔接,造成企业和政府内部许多自成体系的信息化孤岛,各个应用系统不能相互协作,形成统一高效的有机整体。 企业应用集成,英文名称为Enterprise Application Integration,简称EAI,是为了解决企业和政府现有多种应用系统不能互连互通、数据共享、业务流程协调统一的问题,将异构的两个或更多的硬件、平台及应用系统进行无缝集成,使它们形成一个统一的整体。 企业服务总线(Enterprise Service Bus,缩写ESB),是面向服务架构的骨干,在完成服务的接入,服务间的通信和交互基础上,还提供安全性、可靠性、高性能的服务能力保障。采用SOA架构,基于ESB总线进行企业应用集成,应用系统之间的交互通过总线进行,这样可以降低应用系统、各个组件及相关技术的耦合度,消除应用系统点对点集成瓶颈,降低集成开发难度,提高复用,增进系统开发和运行效率,便于业务系统灵活重构,快速适应业务及流程变化需要。 2 .ESB简介 ESB作为博立特科技公司的企业应用集成产品,主要功能是在两个或更多的异构系统(如不同的数据库、消息中间件、ERP或CRM等)之间进行资源整合,实现互连互通、数据共享、业务流程协调统一等功能,构建灵活可扩展的分布式企业应用。

集团公司服务总线ESB方案计划书

企业服务总线ESB方案书 1需求综述 (3) 1.1主数据平台接口 (3) 1.2业务数据接口 (3) 1.3OA系统接口: (4) 1.4国家法定信息发布媒体: (4) 2系统解决方案 (5) 2.1系统技术架构 (5) 2.1.1运行平台 (5) 2.1.2开发平台 (6) 2.1.3监控平台 (6)

2.1.5适配器 (6) 2.2部署方案 (7) 2.2.1管理监控部分部署方案 (7) 2.2.2硬件选型建议 (8) 2.2.3逻辑分区部署方案 (9) 2.2.4硬件配置建议 (9) 2.2.5服务接口规范 (10) 2.2.6高性能、高可用性及扩展能力设计 (10) 2.2.7完善的安全机制 (11) 2.3整体解决方案 (12) 2.3.1接入控制 (12) 2.3.2通信接入模块 (13) 2.3.3请求系统适配 (14) 2.4集成服务功能 (15) 2.4.1服务治理 (15) 2.4.2提供对出错服务的及时检测和隔离功能 (15) 2.4.3协议转换 (15) 2.4.4消息格式转换 (16) 2.4.5服务路由 (16) 2.4.6监控和运维 (16) 2.4.7服务等级 (17) 2.5系统非功能需求 (17) 2.5.1可用性 (17) 2.5.2可扩展性 (17) 2.5.3可维护性 (18) 2.5.4安全性 (18) 2.5.5性能需求 (18) 2.6公用服务 (18) 2.6.1流量控制 (18) 2.6.2故障隔离 (19) 2.6.3统一流水号 (19) 2.6.4日志记录 (19) 2.7管理监控 (19) 2.7.1系统平台级监控 (19) 2.7.2应用级监控 (19) 2.7.3统计分析 (19) 2.7.4异常报警 (20)

谈及企业服务总线

谈及企业服务总线(ESB),在有面向服务的架构(SOA)实施经验的开发者眼中一定不会陌生。这些年,人们一直在谈论它,以至有些人认为“实施SOA一定需要ESB”,或“只要将ESB架起来了,我们就SOA了”。这些说法有可取之处,也存在片面之嫌,由于业界对于ESB没有统一、标准的定义,所以一千个人眼中有一千个“ESB”也就成了情理中的事情了。然而,怎么才能将ESB 用好?我们需要清楚地认识ESB在SOA中所扮演的角色,理解哪些工作是ESB的职责之内,哪些却不是。只有正确地认识了ESB的职能,并委以恰当的任务,才能将它用在刀刃上、发挥其巨大的能量。 事实上,ESB在SOA中扮演着重要的角色,在技术层解决了SOA的整合问题,耦合了应用与应用之间的集成逻辑,使得SOA更灵活,更易于扩展,更敏捷。有了ESB,新建的服务消费者应用程序不需要关心服务的提供者在哪里,使用何种通讯协议,与其交互的数据是怎样的……,它只需向ESB发出请求,使用开放的、标准的通讯协议。相反,若某个可重用的价值较大的服务位于某一个遗留系统中,而由于种种原因,该遗留系统不能在短期内重写,此时ESB可以架起该服务与其使用者之间沟通的桥梁。当然,ESB的作用远不止这些,业内也有很多讨论,本文不再赘述。读者可在Google上搜索ESB Patterns获得相关资料。 然而,ESB并非“救世主”,它注定也不可能解决应用系统整合中出现的所有问题。道理很简单,计算机发展历史长从没有出现过一个产品/工具可以满足所有的应用需求,技术发展得很快,需求发展更快,所以技术永远跟不上需求。此外,ESB或ESB产品有其特定的适用范围,它是基础设施层的概念/产品,解决的是整合中的常见问题,比如服务连通、路由、消息丰富、服务的注册/查找/发布等服务的管理、服务监控和质量保证等。ESB不能解决的问题比其能解决的问题多很多。比如,让它去做人工流程的编排是不合适的,让它提供门户类产品那样的用户交互也是极其困难的……。 笔者支持过许多客户项目。在这些项目中,有的客户将ESB用的好,有的则勉强用上,用的功能很简单,有的则用ESB做一些原本不属于它该做的工作。在这里,笔者仅从个人的立场,分享自己这些年来积累的ESB实施经验。下面列出笔者常看到但不推荐的实施和笔者在实施ESB 的过程中积累的一些较好的实践方式,供读者参考。同时欢迎批评指正。 不推荐实施 挟ESB以令外围应用 ?现象: ESB的架构师在ESB上设计一套标准的数据接口(通用的XML格式),规定使用统一 的协议(如Web Service/HTTP)。所有的ESB服务消费者和接入ESB的服务必须符合该标准。其目的是为了简化ESB上的开发工作。这就是一种“挟天子以令诸侯”的做法,因为在实际情况中,可能领导规定了“所有的服务必须要经过ESB,即便是透传”。 ?分析: 国内的ESB实施者大多数是一些SI/ISV,出于成本/人力或其他个方面的原因,总会有 一些架构师希望达成这样一个目标:我能否设计/实现一个一劳永逸的ESB中间平台, 将来不论哪种服务都可以方便地接入到ESB上?

几种ESB(企业服务总线)架构介绍

ESB(Enterprise Service Bus,即企业服务总线)是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。 企业服务总线ESB就是一种可以提供可靠的、有保证的消息技术的最新方法。ESB中间件产品利用的是Web服务标准和与公认的可靠消息MOM协议接口(例如IBM的WebSphere MQ、Tibco的Rendezvous 和Sonic Software的SoniCMQ)。ESB产品的共有特性包括:连接异构的MOM、利用Web服务描述语言接口封装MOM协议,以及在MOM传输层上传送简单对象应用协议(SOAP)传输流的能力。大多数ESB产品支持在分布式应用之间通过中间层如集成代理实现直接对等沟通。 企业服务总线(Enterprise Service Bus,ESB)的概念是从面向服务体系架构(Service -Oriented Architecture,SOA)发展而来的。SOA描述了一种IT基础设施的应用集成模型,其中的软构件集是以一种定义清晰的层次化结构相互耦合,其中,一个ESB是一个预先组装的SOA实现,它包含了实现SOA分层目标所必需的基础功能部件。 一、ESB的出现改变了传统的软件架构 ESB 是传统中间件技术与XML、Web服务等技术相互结合的产物,ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。 二、企业服务总线(ESB)的用处 ESB 不是万能的,他不是一个应用程序框架,也不是一个企业应用的解决方案.它只是一个基于消息的调用企业服务的通信模块!你可以把它嵌入到你的应用程序框架中,例如嵌入到spring容器里面,或者嵌入到工作流系统中.它的作用是对企业里面的SOA服务的调用提供一个框架和简便的方法. 三、企业服务总线(ESB)的应用特征 大规模分布式的企业应用需要相对简单而实用的中间件技术来简化和统一越来越复杂、繁琐的企业级信息系统平台。面向服务体系架构(SOA)是能够将应用程序的不同功能单元通过服务之间定义良好的接口和契约联系起来。SOA使用户可以不受限制地重复使用软件、把各种资源互连起来,只要IT人员选用标准接口包装旧的应用程序、把新的应用程序构建成服务,那么其他应用系统就可以很方便的使用这些功能服务。 支撑SOA的关键是其消息传递架构-企业服务总线(ESB)。ESB是传统中间件技术与XML、Web服务等技术相互结合的产物,用于实现企业应用不同消息和信息的准确、高效和安全传递。ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务协调运作,实现不同服务之间的通信与整合。ESB在不同领域具有非常广泛的用途: 电信领域:ESB能够在全方位支持电信行业OSS的应用整合概念。是理想的电信级应用软件承载平台。电力领域:ESB能够在全方位支持电力行业EMS的数据整合概念,是理想的SCADA系统数据交换平台。金融领域:ESB能够在全方位支持银企间业务处理平台的流程整合概念,是理想的B2B交易支撑平台。电子政务:ESB能够在全方位支持电子政务应用软件业务基础平台、信息共享交换平台、决策分析支撑平台和政务门户的平台化实现。 四、几种ESB的结构和功能 ESB提供了一种开放的、基于标准的消息机制,通过简单的标准适配器和接口,来完成粗粒度应用(服务)和其他组件之间的互操作,能够满足大型异构企业环境的集成需求。它可以在不改变现有基础结构的情况下让几代技术实现互操作。 通过使用ESB,可以在几乎不更改代码的情况下,以一种无缝的非侵入方式使企业已有的系统具有全新的服务接口,并能够在部署环境中支持任何标准。更重要的是,充当“缓冲器”的ESB(负责在诸多服务之间转换业务逻辑和数据格式)与服务逻辑相分离,从而使得不同的应用程序可以同时使用同一服务,用不着在应用程序或者数据发生变化时,改动服务代码。 1. IBM WebSphere ESB IBM 提供了三种ESB 产品:IBM WebSphere ESB、IBM WebSphere Message Broker、IBM WebSphere DataPower Integration Appliance XI50。根据您的需求选择ESB 来增强您的SOA。WebSphere ESB 是一种基于平台的ESB,作为集成的SOA 平台,针对WebSphere 应用服务器进行了优化。WebSphere Message Broker 是跨平台的ESB,是为异构IT 环境中的统一连接和转换而构建的。WebSphere DataPower

企业服务总线消息框架Mule简介

企业服务总线消息框架. Mule 1Mule简介 Mule是一个轻量级的基于Java的ESB消息框架,它允许用户快捷地连接多个应用并且在这些应用之间交换数据。Mule使用了SOA的体系结构思想,可以方便的集成已有的应用。它是可升级的、高分布式的对象代理,可以通过异步传输消息技术来无缝的处理服务与应用之间的交互。 Mule框架提供了一个可升级的环境,可以把自己的业务组件部署在里面。Mule管理所有组件之间的交互,不管它们是在同一个虚拟机中还是在internet上,也不管底层使用的传输方式。 Mule围绕着企业服务总线(ESB)架构进行设计,保证了不同的组件或者应用可以通过公共的消息总线进行交互,公共的消息总线一般是由JMS或者其他消息服务器来实现。 在应用中会使用不同的技术,包括JMS,Web Services,JDBC,HTTP等等,Mule可以很好地处理他们之间的交互。 2Mule快速入门

2.1Mule特性 Mule是一个企业服务总线(ESB)消息框架.它的主要特性包括: 1.基于J2EE1.4的企业消息总线(ESB)和消息代理(broker). 2.可插入的连接性:比如Jms,jdbc,tcp,udp,multicast,http,servlet,smtp,pop3, file,xmpp等. 3.支持任何传输之上的异步,同步和请求响应事件处理机制. 4.支持Axis或者Glue的Web Service. 5.灵活的部署结构[Topologies]包括Client/Server, P2P, ESB 和Enterprise Service Network. 6.与Spring 框架集成:可用作ESB 容器,也可以很容易的嵌入到Spring应用中. 7.使用基于SEDA处理模型的高度可伸缩的企业服务器. 8.强大的基于EIP模式的事件路由机制等. 2.1.1产品简介 Mule ESB 是一个轻量级的基于java的企业服务总线和集成平台,使得开发人员可以快速,简单的连接多个应用,使得它们可以交换数据。 Mule ESB 容易集成现有异构系统,包括:JMS, Web Services, JDBC, HTTP, 等. ESB的关键特性是允许不同的应用通讯,其作为运输系统在企业内或Internet应用间搬运数据。 Mule ESB 包含如下强大的能力: ?服务创建和托管—暴露和托管可重用服务,使用Mule ESB作为一个轻量级服 务容器; ?服务调解— shield services from message formats and protocols, separate ; business logic from messaging, and enable location-independent service calls ; ?消息路由—路由, 过滤, 聚合, 基于内容和规则对消息re-sequence; ?数据转换—通过一些格式和传输协议交换数据。

相关主题
文本预览
相关文档 最新文档