中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到
资源共享、功能共享的目的。它并没有很严格的定义,但是普遍接受
IDC的定义:中间件是一种独立的系统软件
服务程序,分布式应用软件借助这种软件在不同的技术之间
共享资源,中间件位于
客户机服务器的操作系统之上,管理
计算资源和
网络通信。从这个意义上可以用一个
等式来表示中间件:中间件=平台+通信,这也就限定了只有用于
分布式系统中才能叫中间件,同时也把它与
支撑软件和实用软件区分开来。
简介
中间件是一类连接
软件组件和应用的计算机软件,它包括一组服务。以便于运行在一台或多台机器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架构的演进,该架构通常用于支持并简化那些复杂的
分布式应用程序,它包括web服务器、事务
监控器和消息队列软件。
中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。
中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在众多关于中间件的定义中,比较普遍被接受的是
IDC表述的:中间件是一种独立的系统软件或
服务程序,分布式应用软件借助这种软件在不同的技术之间
共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和
网络通信。
近年来,人类生活中越来越多的领域已经变得离不开计算机、
网络技术以及通信技术。并且随着
计算机技术的快速发展,更多的应用软件被要求在许多不同的网络协议、不同的硬件生产厂商以及不一样的
网络平台和环境上运营。这导致了软件开发者需要面临数据离散、操作困难、系统匹配程度低,以及需要开发多种应用程序来达到运营的目的。所以,中间件技术的产生,在极大程度上减轻了开发者的负担,使得网络的运行更有效率。
基本功能
中间件是独立的系统级软件,连接操作系统层和
应用程序层,将不同操作系统提供应用的接口标准化,协议统一化,屏蔽具体操作的细节,中间件一般提供如下功能:
(1)通信支持
中间件为其所支持的应用软件提供平台化的
运行环境,该
环境屏蔽底层通信之间的接口差异,实现
互操作,所以通信支持是中间件一个最基本的功能。早期应用与分布式的中间件交互主要的
通信方式为远程调用和消息两种方式。通信模块中,远程调用通过网络进行通信,通过支持数据的转换和通信服务,从而屏蔽不同的操作系统和
网络协议。远程调用是提供给予过程的服务访问,为上层系统只提供非常简单的
编程接口或过程调用模型。消息提供异步交互的机制。
(2)应用支持
中间件的目的就是服务上层应用,提供应用层不同服务之间的互操作机制。它为上层应用开发提供统一的平台和运行环境,并封装不同操作系统提供API接口,向应用提供统一的
标准接口,使应用的开发和运行与操作系统无关,实现其独立性。中间件松耦合的结构,标准的封装服务和接口,有效的互操作机制,从而给应用结构化和开发方法提供有力的支持。
公共服务是对应用软件中共
性功能或约束的提取。将这些共性的功能或者约束分类实现,并支持复用,作为公共服务,提供给应用程序使用。通过提供标准、统一的公共服务,可减少上层应用的开发工作量,缩短应用的开发时间,并有助于提高应用软件的质量。
发展历程
(1)中间件早期发展
由于中间件需要屏蔽分布环境中异构的OS和网络协议,它必须能够提供分布式环境下的通信服务.将这种通信服务称为平台.
IBM的
CICS (Customer Information Control System) 是最早具有
中间件技术思想和功能的软件,但由于CICS不是分布式环境的产物,人们一般把1984年
AT&T贝尔实验室开发完成的Tuxedo作为第一个严格意义上的
中间件产品:在很长一段时期里Tuxedo只是
实验室产品,被NoveIl收购后开展的商业推广并不成功,直到1995年被
BEA公司收购才逐渐成熟起来,BEA公司也因此成为一个真正的中间件厂商。同一时期,IBM的中间件
MQSeries及其他许多中间件产品也逐渐发展并成熟起来。
中间件技术的发展,经历了
面向过程的分布计算技术、面向对象的分布计算技术、面向Agent的分布计算技术3个阶段二相应地,中间件产品也分为
远程过程调用中间件( Remote Procedure Call,
RPC)、面向消息的中间件(Mes-sage Oriented Middleware,
MOM)和
对象请求代理中间件3类,其中面向消息的中间件技术最为成熟。
分类
(1)事务式中间件
事务式中间件又称
事务处理管理程序,是当前用的最广泛的中间件之一,其主要功能是提供
联机事务处理所需要的通信、并发
访问控制、事务控制、
资源管理、
安全管理、
负载平衡、
故障恢复和其他必要的服务。事务式中间件支持大量
客户进程的并发访问,具有极强的扩展性。由于事务式中间件具有可靠性高、极强的扩展性等特点,主要应用于电信、金融、飞机订票系统、证券等拥有大量客户的领域。
(2)过程式中间件
过程式中间件又称远程过程调用中间件。过程中间件一般从逻辑上分为两部分:客户和服务器。客户和服务器是一个逻辑概念,既可以运行在同一计算机上,也可以运行在不同的计算机上,甚至客户和服务器底层的操作系统也可以不同。
客户机和服务器之间的通信可以使用
同步通信,也可以采用线程式
异步调用。所以过程式中间件有较好的异构支持能力,简单易用,但由于客户和服务器之间采用访问连接,所以在易剪裁性和容错方面有一定的局限性。
(3)面向消息的中间件
面向消息的中间件,简称为
消息中间件,是一类以消息为载体进行通信的中间件,利用高效可靠的
消息机制来实现不同应用间大量的
数据交换。按其通信模型的不同,消息中间件的通信模型有两类:
消息队列和
消息传递。通过这两种消息模型,不同应用之间的通信和网络的复杂性脱离,摆脱对不同
通信协议的依赖,可以在复杂的
网络环境中高可靠、高效率的实现安全的
异步通信。消息中间件的非
直接连接,支持多种通信规程,达到多个系统之间的数据的共享和同步。面向消息中间件是一类常用的中间件。
面向对象中间件又称
分布对象中间件,是
分布式计算技术和
面向对象技术发展的结合,简称对象中间件。分布
对象模型是
面向对象模型在分布异构环境下的自然拓广。面向对象中间件给应用层提供各种不同形式的通信服务,通过这些服务,上层应用对事务处理、分布式数据访问,对象管理等处理更简单易行。OMG组织是分布对象
技术标准化方面的国际组织,它制定出了
CORBA等标准。
(5)Web应用服务器
Web
应用服务器是Web服务器和应用服务器相结合的产物。应用服务器中间件可以说是软件的基础设施,利用构件化技术将应用软件整合到一个确定的
协同工作环境中,并提供多种通信机制,事务处理能力,及应用的开发
管理功能。由于直接支持三层或多层应用系统的开发,应用服务器受到了广大用户的欢迎,是中间件市场上竞争的热点,
J2EE架构是应用服务器方面的主流标准。
(6)其他
新的应用需求、新的技术创新、新的
应用领域促成了新的
中间件产品的出现。如,ASAAC在研究标准
航空电子体系结构时提出的通用
系统管理GSM,属于典型的嵌入式
航电系统的中间件,互联网
云技术的发展
云计算中间件、
物流网的中间件等随着应用市场的需求应运而生。
基本特点
优势
1、满足大量应用的需要 ;
3、支持
分布式计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互功能 ;
4、支持标准的协议 ;
5、支持标准的接口。
局限
中间件能够屏蔽操作系统和
网络协议的差异,为
应用程序提供多种通讯机制;并提供相应的平台以满足不同领域的需要。因此,中间件为应用程序提供了一个相对稳定的高层应用环境。然而,中间件服务也并非“万能药”。中间件所应遵循的一些原则离实际还有很大距离。多数流行的中间件服务使用专有的
API和专有的协议,使得应用建立于单一厂家的产品,来自不同厂家的实现很难
互操作。有些中间件服务只提供一些平台的实现,从而限制了应用在
异构系统之间的移植。应用开发者在这些中间件服务之上建立自己的应用还要承担相当大的风险,随着技术的发展他们往往还需重写他们的系统。尽管中间件服务提高了
分布计算的抽象化程度,但应用开发者还需面临许多艰难的设计选择,例如,开发者还需决定分布应用在client方和
server方的功能分配。通常将表示服务放在client以方便使用
显示设备,将
数据服务放在server以靠近数据库,但也并非总是如此,何况其它应用功能如何分配也是不容易确定的。
应用
1、中间件与电子商务的整合。
Intemet是
电子商务发展的基础,让商户可以通过它,把商业扩展到能到达的任意地点。这其中离不开大量的
信息传输,而电子商务则使用了浏览器/服务器B/S(BrowserJServer)的技术来达到大量数据处理的目的。
中间件在B/S模式下起到了功能层的作用。当用户从WEB界面向服务器提交了数据请求或者应用请求时,功能层负责将这些请求分类为数据或应用请求,再向数据库发出
数据交换申请。数据库对请求进行筛选处理之后,再将所需的数据通过功能层传递回到用户端。通过如此处理,单一用户可以进行点对面的操作,无需通过其他软件进行数据转换。
趋势展望
中间件技术的发展方向,将聚焦于消除
信息孤岛,推动无边界
信息流,支撑开放、动态、多变的互联网环境中的复杂
应用系统,实现对分布于互联网之上的各种自治信息资源(
计算资源、
数据资源、服务资源、软件资源)的简单、标准、快速、灵活、可信、高效能及低成本的集成、协同和综合利用,提高组织的IT基础设施的业务
敏捷性,降低总体运维成本,促进IT与业务之间的匹配。中间件技术正在呈现出业务化、服务化、一体化、虚拟化等诸多新的重要
发展趋势。
近年来,中间件技术取得了很大的成功,成为研究热点之一。随着应用的普及和研究的深入,以及互联网的发展,中间件技术主要呈现出三方面的趋势:首先,中间件越来越多地向传统操作系统层渗透,向平台化发展;其次,随着网络化的发展趋势,应用软件需要的支持机制越来越多,中间件会变广变厚;其三,中间件也向构件化发展,为上层应用的
结构设计和部署提供有效的支持,并为解决
软件复用问题提供支持。随着我国
信息化建设的推进,中间件市场越来越受到重视。
中间件软件市场对我们来说,既是挑战也是机遇。国内一批中间件企业迅速崛起,2004年国内13家软件企业成立中国首个中间件
产业联盟,在我国中间件技术将会长远规模化发展,为
跨平台的应用开发、
异构网络环境的应用,软件复用等提供了有效的解决之道。
相关产品举例
Apusic MQ
该产品是国产中间件厂商
金蝶的旗舰产品之一,金蝶中间件拥有 Apusic
J2EE应用服务器、 Apusic MQ消息中间件和
Apusic Studio开发平台,组成了轻量级风格的
企业基础架构软件平台金蝶 Apuisc Platform,其具备技术模型简单化、开发过程一体化、
业务组件实用化的显著特性,产品间
无缝集成。
BEA Weblogic
Weblogic系列的最大特点是平台开放。 Weblogic和其他第三方
开发工具的结合也非常好,常见的组合就是 Jbuilder+ Weblogic的
开发环境。
BEA Weblogic integration是 BEA Weblogic Enterprise Platform的一个组件,它提供了
企业应用集成所需的各种功能,可用开发新应用,将新应用与现有
系统集成,简化
业务流程以及通过门户网关扩展业务
基础结构。 BEA Weblogic Integration为快速交付业务集成、简化
生产管理提供了通用的开发环境,整合了业务集成领域各种不同的部件,其中包括
ERP、
CRM遗留应用、业务用户、供应链和业务伙伴。
Oracle Fusion
甲骨文公司的
Oracle融合中间件 Oracle Fusion Middleware是一个全面的中间件
产品系列,由甲骨文公司的
SOA和中间件产品组成,其中包括: Oracle
应用服务器10g、 Oracle应用服务器产品和
可选配件、 Oracle数据平台、 Oracle
内容服务10g、 Oracle实时协作10g和 Oracle统一传信。这一经过验证的中间件产品系列可帮助各企业提高公共运作的效率及敏捷性, Oracle Fusion Middleware还为客户的
面向服务应用提供贯穿整个
生命周期的全面支持,由于其独特的插作式架构,这个
系列产品具有与企业现有T基础设施的
互操作性。
SAP XI
SAP XI
应用集成套件作为 SAP Netweaver中间件产品的一部分,目的是为non-SAP系统提供一个其他
管理信息系统与SAP系统进行数据和流程交互的平台,因为SAP定位于
ERP系统,关注点在企业的人、财、物,但对于企业其他的专业系统,SAP的功能无法覆盖和取代,因此,必须有这样的“接口”来实现相互之间的数据和业务交换。