企业中间件调查

本文是我在2012年2月份调查中间的一篇成果。


1.   前言

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境。


图 1中间件作用图

 

2.   中间件定义

中间件是一类连接软件组件和应用的计算机软件,它包括一组服务,以便于运行在一台或多台机器上的多个软件通过网络进行交互。该技术所提供的互操作性,推动了一致分布式体系架构的演进。该架构通常用于支持分布式应用程序并简化其复杂度,它包括web服务器、事务监控器消息队列软件。

2.1.  特点

运行于多种硬件和OS平台;

  支持分布式计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互功能;

  支持标准的协议;

  支持标准的接口;

  中间件可以应用于以下情形,如连接公司 LAN和早期系统、交换两个邮件系统间的信息、支持 web 客户机与数据库服务器交换信息等。

由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。

 

3.   中间件分类

3.1.  主要中间件应用场景分类

l  企业服务总线(ESB : EnterpriseService Bus):ESB 是一种开放的、基于标准的分布式同步或异步信息传递中间件。通过 XML、Web Service接口以及标准化基于规则的路由选择文档等支持,ESB 为企业应用程序提供安全互用性。

l  事务处理(TP:TransactionProcessing)监控器:为发生在对象间的事务处理提供监控功能,以确保操作成功实现。

l  分布式计算环境(DCE:DistributedComputing Environment):指创建运行在不同平台上的分布式应用程序所需的一组技术服务。

l  远程过程调用(RPC:RemoteProcedure Call):指客户机向服务器发送关于运行某程序的请求时所需的标准。

l  对象请求代理(ORB:Object RequestBroker):为用户提供与其他分布式网络环境中对象通信的接口。

数据库访问中间件(DatabaseAccess Middleware):支持用户访问各种操作系统或应用程序中的数据库。SQL 是该类中间件的其中一种。

l  信息传递(MessagePassing):电子邮件系统是该类中间件的其中一种。

l  基于 XML 的中间件(XML-BasedMiddleware):XML 允许开发人员为实现在 Internet 中交换结构化信息而创建文档。

3.2.  主要中间件平台分类

中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。但至今中间件还没有一个比较精确的定义,因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这种通讯服务称之为平台。基于目的和实现机制的不同,我们将平台分为以下主要几类:

l  远程过程调用(RemoteProcedure Call);

l  面向消息的中间件(Message-OrientedMiddleware);

l  对象请求代理(ObjectRequest Brokers);

l  事务处理监控(TransactionProcessing Monitors);

它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等等,在这些基本的通讯平台之上,可构筑各种框架,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问、对象事务管理器OTM 等。平台为上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内的应用的系统结构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提供处理这些事件的代码。当事件发生时,框架则会调用用户的代码。用户代码不用调用框架,用户程序也不必关心框架结构、执行流程、对系统级API的调用等,所有这些由框架负责完成。因此,基于中间件开发的应用具有良好的可扩充性、易管理性、高可用性和可移植性。

 

3.3.  主要中间件分类简介

下面,针对几类主要的中间件分别加以简要的介绍。

3.3.1.   远程过程调用

远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。事实上,一个RPC应用分为两个部分:Server和Client。Server提供一个或多个远程过程;Client向Server发出远程调用。server和client可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上。它们通过网络进行通讯。相应的stub和运行支持提供数据转换和通讯服务,从而屏蔽不同的操作系统和网络协议。在这里RPC通讯是同步的。采用线程可以进行异步调用。

在RPC模型中,client和server只要具备了相应的RPC接口,并且具有RPC运行支持,就可以完成相应的互操作,而不必限制于特定的server。因此,RPC为client/server分布式计算提供了有力的支持。同时,远程过程调用RPC所提供的是基于过程的服务访问,client与server进行直接连接,没有中间机构来处理请求,因此也具有一定的局限性。比如,RPC通常需要一些网络细节以定位server;在client发出请求的同时,要求server必须是活动的等等。

3.3.2.   面向消息的中间件

MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。目前流行的MOM中间件产品有IBM的MQSeries、BEA的MessageQ等。消息传递和排队技术有以下三个

主要特点:

通讯程序可在不同的时间运行程序不在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。

应用程序的结构没有约束在复杂的应用场合中,通讯程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。

程序与网络复杂性相隔离

程序将消息放入消息队列或从消息队列中取出消息来进行通讯,与此关联的全部活动,比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是MOM的任务,程序不直接与其它程序通话,并且它们不涉及网络通讯的复杂性。

3.3.3.   对象请求代理

随着对象技术与分布式计算技术的发展,两者相互结合形成了分布对象计算,并发展为当今软件技术的主流方向。1990年底,对象管理集团OMG首次推出对象管理结构OMA(ObjectManagement Architecture),对象请求代理(Object Request Broker)是这个模型的核心组件。它的作用在于提供一个通信框架,透明地在异构的分布计算环境中传递对象请求。CORBA规范包括了ORB的所有标准接口。1991年推出的CORBA 1.1 定义了接口描述语言OMG IDL和支持Client/Server对象在具体的ORB上进行互操作的API。CORBA 2.0 规范描述的是不同厂商提供的ORB之间的互操作。

对象请求代理(ORB)是对象总线,它在CORBA规范中处于核心地位,定义异构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间client/server关系的中间件。ORB使得对象可以透明地向其他对象发出请求或接受其他对象的响应,这些对象可以位于本地也可以位于远程机器。ORB拦截请求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结果等。client对象并不知道同server对象通讯、激活或存储server对象的机制,也不必知道server对象位于何处、它是用何种语言实现的、使用什么操作系统或其他不属于对象接口的系统成分。

值得指出的是client和server角色只是用来协调对象之间的相互作用,根据相应的场合,ORB上的对象可以是client,也可以是server,甚至兼有两者。当对象发出一个请求时,它是处于client角色;当它在接收请求时,它就处于server角色。大部分的对象都是既扮演client角色又扮演server角色。另外由于ORB负责对象请求的传送和server的管理,client和server之间并不直接连接,因此,与RPC所支持的单纯的Client/Server结构相比,ORB可以支持更加复杂的结构。

3.3.4.   事务处理监控

事务处理监控(Transaction processing monitors)最早出现在大型机上,为其提供支持大规模事务处理的可靠运行环境。随着分布计算技术的发展,分布应用系统对大规模的事务处理提出了需求,比如商业活动中大量的关键事务处理。事务处理监控界于client和server之间,进行事务管理与协调、负载平衡、失败恢复等,以提高系统的整体性能。它可以被看作是事务处理应用程序的“操作系统”。总体上来说,事务处理监控有以下功能:

进程管理,包括启动server进程、为其分配任务、监控其执行并对负载进行平衡。

事务管理,即保证在其监控下的事务处理的原子性、一致性、独立性和持久性。

通讯管理,为client和server之间提供了多种通讯机制,包括请求响应、会话、排队、订阅发布和广播等。

事务处理监控能够为大量的client提供服务,比如飞机定票系统。如果server为每一个client都分配其所需要的资源的话,那server将不堪重负。但实际上,在同一时刻并不是所有的client都需要请求服务,而一旦某个client请求了服务,它希望得到快速的响应。事务处理监控在操作系统之上提供一组服务,对client请求进行管理并为其分配相应的服务进程,使server在有限的系统资源下能够高效地为大规模的客户提供服务。

 

4.   中间件的作用

中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。

中间件的核心作用是通过管理计算资源和网络通信,为各类分布式应用软件共享资源提供支撑。广义地看,中间件的总体作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。

 

5.   中间件的主要厂商

中间件技术已经不局限于应用服务器、数据库服务器。围绕中间件,Apache组织、IBM、Oracle(BEA)、微软各自发展出了较为完整的软件产品体系

中间件技术建立在对应用软件部分常用功能的抽象上,将常用且重要的过程调用、分布式组件、消息队列、事务、安全、连结器、商业流程、网络并发、HTTP服务器、Web Service等功能集于一身或者分别在不同品牌的不同产品中分别完成。

一般认为在商业中间件及信息化市场主要存在微软阵营、Java阵营、开源阵营。阵营的区分主要体现在对下层操作系统的选择以及对上层组件标准的制订。

目前主流商业操作系统主要来自Unix苹果公司Linux的系统以及微软视窗系列。微软阵营的主要技术提供商来自微软及其商业伙伴,Java阵营则来自IBMOracleSunBEA(已被Oracle收购)、金蝶(Kingdee Apusic)及其合作伙伴,开源阵营则主要来自诸如Apache,SourceForge等组织的共享代码。

 

5.1.  Oracle中间件

·         商务智能

·         业务流程管理

·         云应用程序基础

·         协作

·         数据集成

·         开发工具

·         企业数据质量

·         事件驱动的架构

·         Exalogic

·         身份管理

·         内存数据网格

·         主数据管理

·         Oracle面向管理软件的融合中间件

·         Oracle用户生产力套件

·         面向服务的架构

·         SOA治理

·         事务处理

·         WebCenter

·         WebLogic服务器

 

5.2.  IBM中间件

WebSphere MQ:提供消息支持

    WebSphereMQ(用户常常简称为“MQ”)能以一致的、可靠的和易于管理的方式来连接应用程序,并为跨部门、企业范围的集成提供了可靠的基础。

WebSphere:电子商务的助跑者

WebSphereIBM推出的软件平台,它包含了编写、运行和监视全天候Web应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施。WebSphere提供了可靠、灵活和健壮的软件。

Tivoli:让基础设施管理变得更智能

Tivoli能提供包括服务管理、存储管理、资产管理、安全管理、业务应用管理、云计算、虚拟化管理和能效管理等,它采用了开放系统和自动化技术,利用优质、可伸缩和可靠的系统管理解决方案来支持随需应变的计算环境。

Rational:跨平台的自动化和易用性

       利用  Rational软件开发平台,各组织机构可以获得更快的反应能力和更强的适应性,并可以集中精力关注核心任务,帮助企业更好的发展。

       Lotus:协作领域的王者

未来的桌面系统,Lotus NotesLotus Domino 8,它秉承了IBM支持开源的理念,建立在Eclipse开放标准平台之上,应用Web2.0等新兴技术,作为SOA的前端,完全支持SOA架构。

IBM DB2:推动信息化进程

IBMInfo Management(信息管理中间件系列软件)包含数据库管理系统、企业内容管理、Cognos商业智能和绩效管理、信息整合、数据仓库、数据挖掘等,它能将用户的所有关键数据无缝整合在一起,确保在正确的时间让正确人得到正确的信息(及时、安全、准确地提供信息)。更重要的是,用户能从信息中获得真正的商业价值,推动企业不断发展。

 

5.3.  金蝶中间件

应用服务器(Apusic Application Server)

消息中间件(Apusic Message Queue)

企业服务总线(Apusic Enterprise Service Bus)

门户平台(Apusic Portal Server)

业务流程管理(Apusic BPM)

内容同IBM。

         金蝶是国内首屈一指J2EE中间件厂商。

        

5.4.  东方通中间件

消息中间件TongLINK/Q

交易中间件TongEASY

应用服务器TongWeb

安全中间件TongSEC

通用文件传输平台TongGTP

东方通云平台TongAppLaud

内容同IBM

东方通是国内用户量最大一家J2EE中间件厂商。

 

 

6.  工业软件中的中间件

6.1.  OpenPDM

6.2.  I/Gear CONNECTING TECHNOLOGIES

I/Gear DTU:工业生产软件中的中间件

连接各种数据源

 

7.   参考资料

中间件定义信息:

http://baike.baidu.com/view/23710.htm

http://blog.csdn.net/metababy/article/details/4018363

http://somesogood.blogspot.com/2009/03/blog-post_23.html

 

Oracle中间件信息:

http://www.oracle.com/cn/products/middleware/index.html

 

IBM中间件信息:

http://www.chinavalue.net/Story/172467.aspx

 


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值