中间件技术介绍中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。
顾名思义,中间件处于操作系统软件与用户的应用软件的中间。
中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
在众多关于中间件的定义中,比较普遍被接受的是IDC 表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
IDC对中间件的定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。
中科院软件所研究员仲萃豪形象地把中间件定义为:平台+通信。
这个定义限定了只有用于分布式系统中的此类软件才能被称为中间件,同时此定义还可以把中间件与支撑软件和实用软件区分开来。
目前,中间件发展很快,已经与操作系统、数据库并列为三大基础软件。
中间件主要分为以下几类:1.通信处理(消息)中间件此类中间件能在不同平台之间通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输(如Tong LINK、BEAe Link、IBM的MQ Series等)。
这是中间件中唯一不可缺少的,是销售额最大的中间件产品。
2.交易中间件在分布式事务处理系统中要处理大量事务,常常在系统中要同时做上万笔事务。
例如在北京市就要设置各种运载汽车,完成日常的运载,同时要随时监视汽车运行,出现故障时,要有排除措施,发生堵塞时要进行调度。
在联机事务处理系统(OLTP)中,每笔事务常常要多台服务器上的程序顺序地协调完成,一旦中间发生某种故障时,不但要完成恢复工作,而且要自动切换系统,达到系统永不停机,实现高可靠性运行;同时要使大量事务在多台应用服务器能实时并发运行,并进行负载平衡地调度,实现昂贵的可靠性机和大型计算机系统同等的功能,为了实现这个目标,要求系统具有监视和调度整个系统的功能。
BEA的Tuxedo由此而著名,它成为增长率最高的厂商。
一个事务处理平台,根据X/OPEN的参数模型规定,应由事务处理中间件、通信处理中间件以及数据存取管理中间件三部分组成。
东方通科技公司的Tong LINK和TongEASY实现了这个参考模型规定。
3.数据存取管理中间件在分布式系统中,重要的数据都集中存放在数据服务器中,它们可以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或压缩存放的,该中间件将为在网络上虚拟缓冲存取、格式转换、解压等带来方便。
4.ESB(企业服务总线)ESB(企业服务总线)为分散服务提供了交互、组合和治理的基础架构。
在电信领域:ESB能够在全方位支持电信行业OSS(运营支撑系统)的应用整合概念,是理想的电信级应用软件承载平台。
ESB(企业服务总线)为分散服务提供了交互、组合和治理的基础架构。
有了它,才能释放SOA的最大价值。
因此,ESB成为厂商在SOA(面向服务的架构)竞争中的焦点。
作为近两年软件领域最热门的词汇之一,SOA(Service Oriented Architecture,面向服务的架构)的概念以及SOA带来的好处,正在被用户逐步接受。
Gartner的数据表明,到2007年,全球将有70%以上的大企业会将他们的应用转到SOA。
但是目前CIO们最关心的是,如何才能真正实现基于SOA的应用?在近一段时期,多家软件厂商如IBM、Sun、BEA、Oracle 等都加大了对ESB(Enterprise Service Bus,企业服务总线)产品的投入力度,并声称自己的SOA解决方案因此而更加完善,ESB成为厂商在SOA竞争中的焦点。
ESB成为一种新的诱惑ESB是传统中间件技术与XML、Web服务等技术结合的产物。
ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。
业内对ESB的定义是:它是由中间件技术实现并支持SOA的一组基础架构,支持异构环境中的服务、消息以及基于事件的交互,并且具有适当的服务级别和可管理性。
这样的定义稍显抽象,简单地说,ESB就是试图将应用服务器上的多种逻辑层面迁移到总线以及连接点上,从而降低企业内部信息共享的成本。
IBM WebSphere软件全球副总裁Sandy Carter女士介绍说,“企业服务总线是SOA中的消息框架—即消息相互交换和通信的方式,是业界标准与客户消息框架的整合。
”ESB产品的共有特性包括:连接异构的MOM(Microsoft Operations Manager)、利用Web服务描述语言接口封装MOM协议,以及在MOM传输层上传送简单对象应用协议(SOAP)传输流的能力。
大多数ESB产品支持在分布式应用之间通过中间层如集成代理实现直接对等沟通。
ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。
从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。
在电信领域:ESB能够在全方位支持电信行业OSS(运营支撑系统)的应用整合概念,是理想的电信级应用软件承载平台。
在电力领域:ESB能够全方位支持电力行业EMS 的数据整合概念,是理想的系统数据交换平台。
在金融领域:ESB能够在全方位支持银企间业务处理平台的流程整合概念,是理想的B2B交易支撑平台。
为SOA挑起大旗对于SOA的概念,不同的软件提供商有不同的定义方式。
很多用户也都是从不同的视角来理解SOA,从程序员的角度,SOA是一种全新的开发技术,新的组件模型,比如说Web Service;从架构设计师的角度,SOA就是一种新的设计模式,方法学;从业务分析人员的角度,SOA就是基于标准的业务应用服务。
SOA不仅是Web服务,如何让业务服务最大限度地复用才是SOA的核心价值。
ESB为分散服务提供了交互、组合和治理的基础架构。
有了它,才能释放SOA的最大价值。
我们可以这样来理解,ESB就是在SOA架构中实现服务间智能化集成与管理的中介。
而它与SOA的关系是:ESB是逻辑上与SOA所遵循的基本原则保持一致的服务集成基础架构,它提供了服务管理的方法和在分布式异构环境中进行服务交互的功能。
可以这样说,ESB是特定环境下(SOA架构中)实施EAI(enterprise application integration,企业应用集成)的方式。
IONA公司大中国区总裁薛志勇表示,采用IONA 公司的ESB产品Artix作为SOA的切入点,将可以使企业以最小的投入将已有系统纳入SOA架构。
薛志勇称,目前ESB是SOA集成中最普遍采用的方法,传统的EAI和平台厂商是以“服务器”为中心、以“Hub”为形式的解决方案,这种方法虽然解决了信息孤岛问题,但投资大,见效慢,而且也不灵活。
因为ESB是传统中间件技术与XML、Web服务等技术结合的产物,对企业而言,采用ESB中间件系统作为企业级信息系统整合方案中的中枢技术,可以无须添加任何软硬件设备,就可把过去、现有和未来的IT系统整合在企业级的信息应用框架下,并且能为企业提供实时、大容量的信息通信和实时控制、管理和分配消息传递的能力。
目前,除了IONA、Tibco等专业的ESB公司外,SOA的两大领导厂商IBM和BEA也加入了ESB的阵营。
Forrester公司分析师Mike Gilpin说:“尽管人们还不十分确定如何构建出一个完整的SOA,但他们已经知道要解决集成问题,而ESB正好能帮助他们解决该问题。
”国内CIO对SOA早已听了很多。
SOA的理念和他们所面临诸多挑战,SOA 的开放性和灵活性,给了CIO一个选择它的理由。
然而,不菲的平台迁移成本以及缺少成功案例的佐证,都让CIO难下决心。
CIO不但要考虑必须对现有产品进行集成以支持SOA的使用场景。
还必须考虑如何构建面向未来的SOA应用。
ESB的出现和应用恰好为这个难题提供了一个解决之道。
甲骨文公司在去年将ESB产品内嵌在其业务流程管理产品中,今年就推出了独立的ESB产品。
BEA推出了AquaLogic Service Bus等来加强ESB的产品线。
IBM在原有WBI Message Broker、WAS 6 SIBus这些集成产品之外,又推出了独立的WebSphere ESB产品。
而传统的EAI厂商Tibco和WebMethods也宣布了各自的ESB产品。
BEA公司中国区技术经理刘汩春认为:“SOA的‘服务’必须是可组装编排、可快速注册发布、质量可监控、生命周期可管理的。
这样SOA才能在整个IT范围内实现服务治理和优化,从而直接推动业务的优化。
而从简单的服务重用框架到SOA演进的过程中,ESB就是其中最重要的催化剂之一。
”ESB的兴起让SOA的渐进之路可以走得更开放和平稳,而ESB也代表了中间件产品本身的进化方向,从应用领域而言,由于ESB是基于开放的Web服务而来,在SOA的发展过程中,ESB已经当仁不让地挑起大旗。
ESB开源之路开源软件市场这几年的发展也早就显示出极其旺盛的生命力。
Linux服务器、开源数据库、开源应用软件等产品的市场份额都已有了很大提高。
开源软件已成为政府机构和企业用户节约成本的一种有效手段。
随着Java应用服务器迅速成为一种大众化商品,企业中间件也朝着开源的方向跟进。
近两年,已出现了许多极其成熟的企业服务总线实施项目。
Sun在JavaOne大会上发布了自己的免费ESB。
这个名为Java开放式企业服务总线的项目将放在 上进行,第一个版本有望在今年夏末交付。
Sun还计划把来自这个社区项目的代码包装成商用产品。
Sun的应用程序以及开发者平台的市场副总经理Joe Keller说,Open ESB将会基于Java商业集成1.0规范。
还提供了使用开源代码的Java系统应用程序服务器。
“这将是一个推动整个世界商业的应用程序服务器,”Keller说。
而在Sun对ESB开源前,Iona科技公司就公开了Celtix的源代码,这是采用GNU LGPL许可证的Java ESB,从而启动了ObjectWeb社区在ESB方面的工作。
Iona方面声称,Celtix将支持Java商业智能(JBI)规范,该规范为跨应用集成明确规定了标准化的对象容器。
目前市场上已经有大量BEA、IBM以及Sun Microsystems等大制造商生产的ESB产品。
而ObjectWeb 在上星期也接收到了法国IT服务公司BULL的源代码捐赠来加速它ESB产品发展。