企业服务总线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是传统中间件技术与XML、Web服务等技术相互结合的产物
计算机技术和软件技术应用于企业已经有30年的历史了,这也是软件技术发展的主要动力,目前它已经进入到一个新的发展阶段。由于各个企业持续的对内外部的整个价值链的业务操作进行流程化和智能化的改进,业务整合有了非常重要的成长。无处不在的IT技术将以前只能想象的事情变成了现实,它可以帮助实现从后台到前台,到合作伙伴,及到客户的业务市场的扩展,这种IT应用整合需求趋势为ESB平台的兴起着重要的铺垫作用。
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提供了一种开放的、基于标准的消息机制,通过简单的标准适配器和接口,来完成粗粒度应用(服务)和其他组件之间的互操作,能够满足大型异构企业环境的集成需求。它可以在不改变现有基础结构的情况下让几代技术实现互操作。InterESB专门用于异构环境,既可以帮助企业迁移到SOA,又能够让企业继续利用现有的已部署的软件投资。
通过使用ESB,可以在几乎不更改代码的情况下,以一种无缝的非侵入方式使企业已有的系统具有全新的服务接口,并能够在部署环境中支持任何标准。更重要的是,充当“缓冲器”的ESB(负责在诸多服务之间转换业务逻辑和数据格式)与服务逻辑相分离,从而使得不同的应用程序可以同时使用同一服务,用不着在应用程序或者数据发生变化时,改动服务代码。
四、InterESB的功能特点
多种通信技术的综合应用
InterESB利用了多种公认、成熟和可靠的通信技术,来支撑上层数据传输的多种模式。在CORBA以及JMS技术的基础上,InterESB能够同时支持同步通信、异步通信模式。
在异步模式中,InterESB创新地将多种通信模式融为一体,其中包括目标通信模式(Message Channel)、点对点通信模式(Point-to-Point)、发布/订阅通信模式(Publish-Subscribe)、扩展的发布/订阅集群模式(P/S Cluster),并支持通信过程中的加密、压缩、断点续传等重要保障功能。
InterESB将上述多种通信方式有机封装成一个整体,并通过CORBA IDL、SOAP、JMS等标准接口方式对外进行发布,从而使得基于InterESB构建的企业应用能够以透明、一致、高效的方式应用不同的底层通信机制。
高度灵活、可分布部署的信息总线
在InterESB内部,由部署在不同节点和计算域下的多种消息通信服务实现灵活的企业应用通信功能。同时,InterESB支持对这些通信服务的面向问题领域可不断优化的分布式部署功能,包括有以下三种模式:
全连接的总线模式,在InterESB内部部署全连接方式的消息服务器;
集中可拔插方式的总线模式,在InterESB内部部署一台超级转发服务器;
“雪花状结构”的分布级联方式,在InterESB内部分区域部署多个超级转发服务器。这种模式在大型SOA系统中部署具有很强的动态增长性、可管理性、可维护性和极高的效率。
便捷、标准的企业应用集成模式
InterESB提供了简单、快速、基于标准的多点集成功能。InterESB为企业应用开发和集成提供了一套完善的开发模式来帮助客户端应用连接到服务上。这些模式定制了系列机制用于描述服务、通知及发现服务、与服务进行通信。在InterESB中,基于标准的服务成了应用间的集成点。也即围绕服务的所有模式都是以基于标准的技术实现的。这使得InterESB可适应于任何现有系统,并使得系统在集成时不必刻意遵循任何特殊定制。
InterESB在面向企业应用集成需求时,可以表述为数据传输和应用集成两部分的内容。其中,数据传输涵盖了用户应用系统中的文件、数据库、消息、事件、指令等全方位的数据传输内容;应用集成涵盖了数据集成、应用集成、设备集成、协议系统封装等多方面的应用集成内容。
灵活的适配器技术
一个设计良好的适配器的作用好比是一个设计良好的SOA服务,它提供了一个抽象层,把应用基础设施的其余部分与各种棘手问题隔离开来。
通用适配器是InterESB为解决系统之间的连接而开发的可重用的、统一的接口,通过该接口每一个应用系统仅需要与业务整合平台相连,而不需要与每个与之交互的应用系统相连。InterESB适配器一般包括遗留系统适配器、技术标准类适配器和适配器开发工具。
与CORBA、J2EE技术的结合
InterESB底层基于CORBA分布计算中间件InterBus以及遵照JMS规范的InterMQ消息通信中间件,因此,可以说InterESB与CORBA、J2EE具有天然的结合优势。
但InterESB并不等同于CORBA。与CORBA技术相比,InterESB继承了CORBA技术的开放标准、分布式架构、组件技术以及高性能,适合于复杂的应用集成等优点;同时,InterESB还提供了CORBA技术所不具备的SOA功能,即:
InterESB支持更多种技术标准;
InterESB支持更广泛的互操作性;
InterESB具有更好的可扩展性;
InterESB对专有系统的支持;
InterESB对未来标准的支持。
通过J2EE支持的MDB/JDO,InterESB也能够很容易的和J2EE应用系统相连接,形成有效的功能集成。
广泛的平台支持
InterESB插件式体系结构在每个层次上都是开放式的,这样就可以与现有的基础组件实现透明的互操作,让用户能够对速度、成本和使用技巧方面的因素加以权衡。InterESB能够在忽略传输系统的情况下,使用包括XML和二进制在内的任何格式发送数据,并能够在任何开发平台(C++和Java)上实现,而不是强制所有应用程序都使用相同的开发语言。
InterESB包括全连接的总线模式、集中可拔插方式的总线模式和“雪花状结构”的分布级联方式。
五、企业服务总线(ESB)距离实际的企业应用还有哪些不足?
ESB目前有很多商业方案,也有很多开源产品,例如ObjectWeb,CodeHaus,Sourceforge都有这样的开源项目.距离真正成熟还有一段距离,另外各家厂商都各自为阵,目前JCP还没有这项技术的草案,标准的指定也还有很长的距离.当然,目前的状态和SOA一样.相信等SOA真正普及的时候,ESB会更加的成熟.
六、企业服务总线(ESB)技术与革新
由于更大任务所带来的要求,消息传递技术现在正处于发展之中。为了给当今的实时企业提供其所需的灵活性,就需要一种混合的消息传递模型将 Web 服务的优点与传统的异步消息传送结合在一起。
传统消息排队中间件将很快被企业服务总线(ESB)技术所取代,从而将消息传递带到新的高度。新的ESB骨干(催生了下一代集成和应用平台产品)将显著改善多数企业的软件基础架构。行业正转向消息传递和ESB,并以此作为核心应用平台基础架构模型,这将标志着一个转折点:围绕企业对其信息资源的使用而触发了新的一轮巨大的革新浪潮;企业都正在利用事件架构。这都将消除最近人们对 IT 在战略性业务区分中可扮演关键角色的所有疑虑。
简介
在过去的10年中,竞争压力和日新月异的技术根本地改变了企业的运行节奏。在过去,企业可以根据月底的成批报告来进行决策。现在,实时流程意味着如果原材料在早上出现问题,或者有停电事故发生,那么就会造成下午无法交付和托运成品。于是,企业不得不以越来越快的速度应对突发事件――否则,它就要靠边站了。“零时延企业(zero latency enterprise)”的时代已经来临。
当今的企业环境正在一点一点的发展以应对这个挑战。异构存储、网络和硬件支持着“孤岛计算”(应用程序与数据相互孤立或者条块分割),这导致环境的利用和管理都过度复杂,并使之变为资源密集型。对于企业所必须面对的大多数关键挑战而言,这种复杂性无疑是一种障碍,这些挑战包括:
满足对利用多渠道传递大量信息服务的不断增长的需求。
实时管理基础架构以满足不断变化的业务需求。
使业务多样化以促进业务灵活地增长,并降低与固定产品线相关的经济风险。
确保对客户、合作伙伴和雇员的信息服务请求做出快速且高质量的响应。
在过去几年中,EAI、B2B和应用开发等方面的迅速发展推动了几种关键技术和标准的发展,这些技术和标准又推动了基础架构领域的显著进步:
XML 作为通用的、自解释的数据交换格式,已经为大多数应用程序所采用。面向 Web 的信息交换以及其后的基础架构,与 XML 一起使 Web 服务的使用成为不可避免的事情。
Java 已经作为用于服务器端的一个主要技术而被接受,并且J2EE 已经作为应用服务器的标准而被接受。
企业服务总线在事务性消息交换和实时事件通知领域的使用已经围绕 Java 消息服务(JMS)而被标准化了。
通过 Java 管理扩展(JMX)标准已经实现了服务器端组件的公共管理框架。
基础架构必须像业务一样运转
瞬息万变的市场需要通过多渠道传递大量的信息服务。下一代的企业要求松散耦合的资源能够共享跨越多领域的公共通信和管理基础架构。企业基础架构不得不像有形的业务那样运转,允许对资源进行动态管理以应对客户和合作伙伴的需求波动,同时处理系统资源的供应和可用性变化。企业应用程序也需要一个基于标准的协作模型以最大程度地利用该基础架构。为此,实时企业使用了来自实时基础架构的最好做法和服务器端的网格技术(gridtEChnology)。
实时企业的组件
形成实时企业的一些概念与用于定义服务器端网格环境的概念相同,用来描述其核心组件(见表1)的结构类似于GArtner的 5 层网格技术模型。
一个建立在现有的而且是被广泛采用的技术和开放标准之上的ESB可为服务协作、管理和控制提供一个可适应的分布式架构。ESB支持在企业内部的任何地方进行业务服务的运行时部署,并提供协作和通知服务作为其核心基础架构的一部分。让我们看一下 ESB 技术是如何映射到 Gartner 的 5 层模型的。
基础架构资源和虚拟操作系统
第0层由基础架构资源组成,包括网络、服务器、存储和每台服务器的操作系统环境。第1 层位于基础设施层之上,并建立了一个多资源的分布式操作系统,它支持的功能如进行工作计划、将资源名集成到总体结构中以及确保不同系统间的一致认证。
尽管Gartner将J2EE 作为一个第 2 层的技术,我们相信分布式 JMX 和一台基于 J2EE 的应用服务器的结合会具有虚拟操作系统的特点。使用对所有组件和服务提供部署和完全 JMX 管理的容器或者微内核,从而允许对服务进行远程激活和管理。
JMX作为一种技术最初设计用于管理单个代理,如一台应用服务器。JMX通过与JMS 的结合,其范围就可以扩展到管理单个代理、群集或松藕合的联合体(如果您喜欢,亦可称之为超级群集),允许对联合的 ESB 基础架构进行全生命周期和部署管理。由于 JMX 同时也集成了许多传统的管理协议,如 SNMP,因此ESB 基础架构可以为 Java、Web 服务和传统平台提供随需应变的(on-DEMand)的热部署和自我修复(self-annealing)式的基础架构。
分布式编程模型
分布式编程模型构成了实时企业的第1层:可在应用程序和服务(无论是内部还是外部)之间进行协作和通知的核心基础架构。ESB提供事件通知、动态路由选择和事务性确保传递;并且使用一个定义明确的过程语言以使应用程序通过一个公共 API 进行活动协调。
实时企业要求在恰当的时间将正确的数据传递到正确的位置;JMS(Java消息服务)提供事件分布和事务性确保传递的方法。同时也需要智能数据结构(datafabric),它可以在需要的时候在网络范围内进行信息分发,目的是提高吞吐量和降低宝贵的后台系统的负载。该结构的骨干是通过JCache (Java 通用缓冲框架)所形成的。
一个类似于Linda的元组空间(tuplespace)将消息队列的“一个且只有一个”传递语义与发布/订阅的广播功能和对等系统的松藕合结合到一起。元组空间就如同由无限数目的进程所共享的相连内存。进程可以向该空间中添加元组(本质上就是数据对象),或者从中取出元组来以独占的方式工作――如果需要的话,可以一直处于等待状态,直到匹配对象的出现。进程也可以读取元组而不需要将其从空间中删除。该范例(将消息队列的“一个且只有一个”传递语义与发布/订阅的广播功能和对等系统的松藕合结合到一起)被映射到 Jcache 的顶部,它提供一个该概念的高性能分布式实现。
这也可以和一个业务流程模型引擎(例如,jBpm:www.jbpm.org)结合起来以提供一套丰富的分布式编程域。进程之间独立工作——从元组空间那里获得适当的输入,并将输出放回元组空间以便进行后续任务。进程在元组上的执行顺序比在传统工作流系统上的执行顺序所受到的约束要少。该模型提供分布式共享内存、通用的群集、并行计算以及分布式工作流和BPM 的基础。
应用程序
构成实时企业第3层的应用程序依赖于企业基础架构的资源,以及使用协作编程模型进行相互通信。架构师们已经意识到更松散藕合的和多层组件模型的优越性,而不是开发独立的或简单的两层客户/服务器(C/S)应用程序。为定义、发现和实际执行该模型(例如WSDL、UDDI 以及用于 Web 服务的 SOAP)而采用的标准有助于面向服务架构的实现。
作为虚拟操作系统基础的J2EE应用服务器为基础架构提供了一个基于事务性的安全服务的集成点。由于分布式ESB 是一个像网格一样的使能技术,所以基于 OGSI 源代码组织定义的 Web 服务接口是一个很自然的选择。OGSI 当前是外化网格技术的事实标准,它允许在一个环境下所书写的网格服务可以很容易地部署在其他环境中。
此外,ESB可以提供一个基于优化Tete算法的可扩展规则引擎。外化业务规则使得在较低层对迅速变化的业务流程、决策机制进行管理以及使消息过滤和路由选择变得可能,而不需要对基础应用程序进行代码级的改变。它将业务从对缓慢的代码开发周期的依赖中解放出来,允许精通业务的分析师进行必要的变化以支持新产品或法规需求的引进,而无需中断系统的运行。
“在过去的10年中,竞争压力和日新月异的技术根本性地改变了企业运营节奏”
管理支持
实时企业要求服务在宏观和微观两个层面上管理和协调应用程序及其服务。第4层提供了实现安全策略、定义资源使用指南和集成操作流程所需的管理支持。基本功能包括:
监视:整理事件和统计数据以了解应用程序的性能、资源使用情况和操作行为。它允许对整个基础架构进行模拟、错误判定以及对资源利用进行手动和自动平衡。
反应协调:需要通过启发分析、动态规则和灵活的工作流对应用程序进行智能管理、控制、自我修复以及微调。通过使用有效的动态拓扑布局(在正确的位置运行正确数量的应用程序)、实时企业管理利用负载,并选择正确的硬件和位置来运行应用程序。
ESB管理结构将分布式JMX与统计事件收集和对比与用在应用级的基于相同标准的 Java 规范框架进行了结合。这为资源使用、性能监视和警告通知提供了位置透明性、发现、远程控制和统计数据的整理。这些技术允许对在整个实时企业中的智能性资源可视化、协同合作和供应环境进行预言性的决策,从而为 IT 经理和业务经理赋予了洞察力。
结束语
使用一个分布式企业服务总线,企业可以通过利用标准以提供灵活实时的“按需服务”基础架构来最大化利用其在硬件和软件的现有投资。该灵活的基础架构包括:
提供可主动调整 IT 资源的技术,使业务领导可以转变核心信息服务以满足不断变化的市场
创建一个基于开放标准的统一 IT 基础,它可灵活变化以满足未来的需求。
降低 IT 基础架构的成本,同时保持高水平的性能。
这些目标是通过企业消息传递、实时缓冲以及分布式主动管理技术的大量结合而实现的。结果就是一个具有更低总体成本和具有更高应对业务变化能力的IT基础。通过依赖于标准,实时基础架构将不同的技术结合到一个连续的结构中,这个结构提供了快速调整软件和硬件基础架构以满足企业实时业务需求的方法。
七、ESB的几种模式
John Reynolds 提出了ESB的几种模式,在选择ESB进行企业应用开发的时候,先要确定自己的业务模型适合于哪一种ESB模式,详见:
http://weblogs.java.net/blog/johnreynolds/archive/2006/01/soapesb_level_s_1.html
对于Web Service,只有理解了异步服务调用才能真正理解WS的好处。异步调用就是用户发出一次请求,然后过一会回头检查这个请求是否返回了。使用异步调用,用户不需要发出请求后立即等待请求返回,这样就增强了用户体验性。其实现在很多服务,例如邮件服务,消息服务,在线支付都是异步调用的服务。
八、企业服务总线(ESB)的应用前景
企业级应用系统一直是中国软件产业发展的主要方向之一,占有至关重要的地位。同时,它也受到整个世界IT发展潮流的影响,当前IT软件领域的主要技术趋势是SOA和ESB,原因是信息技术的不断发展和成熟使各个企业有机会在更大的范围内整合自己的资源,提高经营运行效率。
二十一世纪信息共享与整合对企业的变革发展日趋重要,而企业对网络环境的依赖及应用创新的追求,将是我们面临的主要挑战。