Middleware【中间件】
什么是中间件?一句话:中间件是一种计算机软件连接了软件部件或者应用程序。 这种软件有一组服务构成,这些服务包括允许多进程运行在一个或者多个机器上以达到在网络中互相交互的目的。
基本信息
定义 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境。
通用中间件类型
*企业服务总线(ESB : Enterprise Service Bus):ESB 是一种开放的、基于标准的分布式同步或异步信息传递中间件。通过 XML、Web 服务接口以及标准化基于规则的路由选择文档等支持,ESB 为企业应用程序提供安全互用性。
*事务处理(TP:Transaction Processing)监控器:为发生在对象间的事务处理提供监控功能,以确保操作成功实现。
*分布式计算环境(DCE:Distributed Computing Environment):指创建运行在不同平台上的分布式应用程序所需的一组技术服务。
*远程过程调用(RPC:Remote Procedure Call):指客户机向服务器发送关于运行某程序的请求时所需的标准。
*对象请求代理(ORB:Object Request Broker):为用户提供与其他分布式网络环境中对象通信的接口。
*数据库访问中间件(Database Access Middleware):支持用户访问各种操作系统或应用程序中的数据库。SQL 是该类中间件的其中一种。
*信息传递(Message Passing):电子邮件系统是该类中间件的其中一种。
*基于 XML 的中间件(XML-Based Middleware):XML 允许开发人员为实现在 Internet 中交换结构化信息而创建文档。
最早具有中间件技术思想及功能的软件是 IBM 的 CICS,但由于 CICS 不是分布式环境的产物,因此人们一般把 Tuxedo 作为第一个严格意义上的中间件产品。Tuxedo 是 1984 年在当时属于 AT&&T 的贝尔实验室开发完成的,但由于分布式处理当时并没有在商业应用上获得像今天一样的成功,Tuxedo 在很长一段时期里只是实验室产品,后来被 Novell 收购,在经过 Novell 并不成功的商业推广之后,1995 年被现在的 BEA 公司收购。尽管中间件的概念很早就已经产生,但中间件技术的广泛运用却是在最近 10 年之中。BEA 公司 1995 年成立后收购 Tuxedo 才成为一个真正的中间件厂商,IBM 的中间件 MQSeries 也是 90 年代的产品,其它许多中间件产品也都是最近几年才成熟起来。国内在中间件领域的起步阶段正是整个世界范围内中间件的初创时期。东方通科技早在 1992 年就开始中间件的研究与开发, 1993 年推出第一个产品 TongLINK/Q。而中科院软件所、国防科技大学等研究机构也对中间件技术进行了同步研究。可以说,在中间件领域,国内的起步时间并不比国外晚多少。
中间件的一些特点
满足大量应用的需要 ;
运行于多种硬件和 OS 平台 ;
支持分布式计算,提供跨网络、硬件和 OS 平台的透明性的应用或服务的交互功能 ;
支持标准的协议 ;
支持标准的接口。
中间件可以应用于以下情形,如连接公司 LAN 和早期系统、交换两个邮件系统间的信息、支持 web 客户机与数据库服务器交换信息等。
由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的重大投资。
主要中间件的分类
中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。但至今中间件还没有一个比较精确的定义,因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这种通讯服务称之为平台。基于目的和实现机制的不同,我们将平台分为以下主要几类:
远程过程调用(Remote Procedure Call)面向消息的中间件(Message-Oriented Middleware)对象请求代理(Object Request Brokers)
它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等等,在这些基本的通讯平台之上,可构筑各种框架,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问、对象事务管理器 OTM 等。平台为上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内的应用的系统结构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提供处理这些事件的代码。当事件发生时,框架则会调用用户的代码。用户代码不用调用框架,用户程序也不必关心框架结构、执行流程、对系统级 API 的调用等,所有这些由框架负责完成。因此,基于中间件开发的应用具有良好的可扩充性、易管理性、高可用性和可移植性。
中间件简单解释
(附件 对“中间件”简单解释:为了解决应用程序对网络过分依赖的问题采取了一种有效的方法,在客户机和服务器之间加一层软件。)
中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处于操作系统软件与用户的应用软件的中间。
中间件在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在众多关于中间件的定义中,比较普遍被接受的是 IDC 表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
IDC 对中间件的定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。
CICS
最早具有中间件技术思想及功能的软件是 IBM 的 CICS,但由于 CICS 不是分布式环境的产物,因此人们一般把 Tuxedo 作为第一个严格意义上的中间件产品。Tuxedo 是 1984 年在当时属于 AT&&T 的贝尔实验室开发完成的,但由于分布式处理当时并没有在商业应用上获得像今天一样的成功,Tuxedo 在很长一段时期里只是实验室产品,后来被 Novell 收购,在经过 Novell 并不成功的商业推广之后,1995 年被现在的 BEA 公司收购。尽管中间件的概念很早就已经产生,但中间件技术的广泛运用却是在最近 10 年之中。BEA 公司 1995 年成立后收购 Tuxedo 才成为一个真正的中间件厂商,IBM 的中间件 MQSeries 也是 90 年代的产品,其它许多中间件产品也都是最近几年才成熟起来。
1998 年 IDC 公司对于中间件有一个定义,并根据用途将其划分为 6 个类别。如今所保留下来的只有消息中间件和交易中间件,其他的已经被逐步融合到其他产品中了,被包裹进去了,在市场上已经没有单独的产品形态出现了。例如,当时有一个叫屏幕数据转换的中间件,其主要是针对 IBM 大机终端而设计产品,用于将 IBM 大机终端的字符界面转化为用户所喜欢的图形界面,类似的东西当时都称为中间件。但随着 IBM 大机环境越来越少,但是盛行一时的此类中间件如今已经很少再被单独提及。
应用服务器
2000 年前后,互联网盛行起来,随之产生了一个新的东西,就是应用服务器。实际上,交易中间件也属于是应用服务器,为了区分,人们传统的交易中间件称为分布交易中间件,因它主要应用在分布式环境下,而将新的应用服务器,称为 J2EE 中间件,到目前为止,这都是市场上非常热门的产品。
EAI 概念出来之后,市场上又推出了一些新的软件产品,,例如工作流、Portal 等,但从分类上不知道怎么归类,向上不能够划归应用,往下又不能归入操作系统,于是就把它归入了中间件,如此中间件的概念更加扩大了。目前,市场上对于中间件,各家的说法不一,客观上也导致了理解上的复杂性。
技术实现方法
如今,市场上又推出了很多新的概念,例如三层结构、构件、Web 服务,其中风头最劲的当属 SOA(面向服务的架构)。实际上,他们都不是一个产品,而是一种技术的实现方法,是开发一个软件的一种方法论。我们知道,最早软件开发方法就是编程、写代码的,其缺点在于无法复用,为此提出了构件化的软件开发方法,通过把编程中一些常用功能进行封装,并规范统一接口,供其它程序调用,例如我们开发一个新软件,可能要用到构件 1、构件 2、构件 3,那么,我们只要对其进行本地组装,就可以得到我们想要的应用软件。在互联网得到普及重视之后,软件开发方法在构件化基础上又有新发展,核心思想是软件并不需要囊括构件,所需要的仅仅是构件的运行结果,例如编写一个通信传输软件,就可以到网上寻找构件,并提出服务请求,得到结果后返回,而不需要下载构件并打包,这就是现在所说的 SOA。想要现实 SOA,就要规范构件接口,同时还要规范构件所提交的服务结果,如此,新的软件开发的思想才能够行的通。但 SOA 并不是一个产品,而是一种思想方法,而实现这种方法的基础,如今看来只有中间件。
国内在中间件领域的起步阶段正是整个世界范围内中间件的初创时期。东方通科技早在 1992 年就开始中间件的研究与开发,1993 年推出第一个产品 TongLINK/Q。而中科院软件所、国防科技大学等研究机构也对中间件技术进行了同步研究。可以说,在中间件领域,国内的起步时间并不比国外晚多少。
主要中间件的分类
中间件分类(IDC 的分类):大致可分为六类:终端仿真/屏幕转换中间件、数据访问中间件、远程过程调用中间件、消息中间件、交易中间件、对象中间件。
中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。但至今中间件还没有一个比较精确的定义,因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这种通讯服务称之为平台。基于目的和实现机制的不同,我们将平台分为以下主要几类:
远程过程调用中间件(Remote Procedure Call)
面向消息的中间件(MesSAge-Oriented Middleware)
对象请求代理中间件(object RequeST Brokers)
它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等等,在这些基本的通讯平台之上,可构筑各种框架,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问、对象事务管理器 OTM 等。平台为上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内的应用的系统结构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提供处理这些事件的代码。当事件发生时,框架则会调用用户的代码。用户代码不用调用框架,用户程序也不必关心框架结构、执行流程、对系统级 API 的调用等,所有这些由框架负责完成。因此,基于中间件开发的应用具有良好的可扩充性、易管理性、高可用性和可移植性。
主要中间件简介
下面,针对几类主要的中间件分别加以简要的介绍。
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 必须是活动的等等。
2、面向消息的中间件
MOM 指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。目前流行的 MOM 中间件产品有 IBM 的 MQSeries、BEA 的 MessageQ 等。消息传递和排队技术有以下三个主要特点:
通讯程序可在不同的时间运行:程序不在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。
对应用程序的结构没有约束:在复杂的应用场合中,通讯程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。
程序与网络复杂性相隔离:程序将消息放入消息队列或从消息队列中取出消息来进行通讯,与此关联的全部活动,比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是 MOM 的任务,程序不直接与其它程序通话,并且它们不涉及网络通讯的复杂性。
3、对象请求代理 随着对象技术与分布式计算技术的发展,两者相互结合形成了分布对象计算,并发展为当今软件技术的主流方向。1990 年底,对象管理集团 OMG 首次推出对象管理结构 OMA(ObjECt Management 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 可以支持更加复杂的结构。
4、事务处理监控
事务处理监控(Transaction processing monitors)最早出现在大型机上,为其提供支持大规模事务处理的可靠运行环境。随着分布计算技术的发展,分布应用系统对大规模的事务处理提出了需求,比如商业活动中大量的关键事务处理。事务处理监控界于 client 和 server 之间,进行事务管理与协调、负载平衡、失败恢复等,以提高系统的整体性能。它可以被看作是事务处理应用程序的“操作系统”。总体上来说,事务处理监控有以下功能:
进程管理,包括启动 server 进程、为其分配任务、监控其执行并对负载进行平衡。
事务管理,即保证在其监控下的事务处理的原子性、一致性、独立性和持久性。
通讯管理,为 client 和 server 之间提供了多种通讯机制,包括请求响应、会话、排队、订阅发布和广播等。
事务处理监控能够为大量的 client 提供服务,比如飞机定票系统。如果 server 为每一个 client 都分配其所需要的资源的话,那 server 将不堪重负。但实际上,在同一时刻并不是所有的 client 都需要请求服务,而一旦某个 client 请求了服务,它希望得到快速的响应。事务处理监控在操作系统之上提供一组服务,对 client 请求进行管理并为其分配相应的服务进程,使 server 在有限的系统资源下能够高效地为大规模的客户提供服务。
面临的一些问题
中间件能够屏蔽操作系统和网络协议的差异,为应用程序提供多种通讯机制;并提供相应的平台以满足不同领域的需要。因此,中间件为应用程序了一个相对稳定的高层应用环境。然而,中间件服务也并非“万能药”。中间件所应遵循的一些原则离实际还有很大距离。多数流行的中间件服务使用专有的 API 和专有的协议,使得应用建立于单一厂家的产品,来自不同厂家的实现很难互操作。有些中间件服务只提供一些平台的实现,从而限制了应用在异构系统之间的移植。应用开发者在这些中间件服务之上建立自己的应用还要承担相当大的风险,随着技术的发展他们往往还需重写他们的系统。尽管中间件服务提高了分布计算的抽象化程度,但应用开发者还需面临许多艰难的设计选择,例如,开发者还需决定分布应用在 client 方和 server 方的功能分配。通常将表示服务放在 client 以方便使用显示设备,将数据服务放在 server 以靠近数据库,但也并非总是如此,何况其它应用功能如何分配也是不容易确定的。
现状与发展趋概述
伴随着互联网技术的发展和全球经济一体化时代的来临,企业应用开始从局部自治的单业务种类、部门级应用向企业级应用转变,并促进了企业应用集成、企业间动态电子商务等网络信息系统技术的发展。网络信息系统的目标就是把分布在各处的多个局部自治的异构信息系统通过网络集成在一起,以实现信息资源的广泛共享、集约化管理和协调工作,其中需要解决的一个关键问题就是如何将各局部自治的系统联合成为能够发挥综合效能并能够不断成长的大系统,为此,出现了对构建网络信息系统基础支撑平台的强烈需求。中间件的概念在这样的背景下形成和发展。
为了直观地把握中间件(middleware)的基本概念,可以将网络和系统软件之上、应用系统之下的广袤疆域都视做中间件的领地,中间件被概括地理解为起承上启下作用的应用支撑平台。应用的“多态性”、系统软件的复杂性,都需要依赖各种类型的中间件在其中运筹、调和。中间件的核心作用是通过管理计算资源和网络通信,为各类分布式应用软件共享资源提供支撑。广义地看,中间件的总体作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
本文从技术、产品和市场等角度对 2004 年我国中间件发展现状进行了回顾和分析,通过总结目前网络应用中出现的一些新趋势,提出了中间件技术下一步发展的一些挑战性问题,并总结了中间件产品和市场的一些新特点。
1. 发展现状
1.1. 技术现状
中间件技术是在克服复杂网络应用的共性问题中不断发展和壮大起来的,这些问题可以归纳为四个方面:
1、从计算环境来看:中间件面对的是一个复杂、不断变化的计算环境,要求中间件技术具有足够的灵活性和可成长性;
2、从资源管理的角度来看:操作系统和数据库管理系统管理的是有限资源,资源种类有限,资源量也有限,而中间件需要管理的资源类型(数据、服务、应用)更丰富,且资源扩展的边界是发散的;
3、从应用支撑角度来看:中间件需要提供分布应用开发、集成、部署和运行管理的整个生命周期的总体运行模型;
4、从应用的角度来看:利用中间件完成的往往是复杂、大范围的企业级应用,其关系错综复杂,流程交织。例如客户关系管理系统需要集成多个企业内部应用,而供应链管理则涉及企业之间的应用集成。
因此,由于网络应用的复杂性,特别是分布、异构和自治等特点,决定了中间件技术和产品的形态多样性。目前的中间件技术已经形成一个丰富的谱系,并正在向上(应用框架和普适服务)和向下(融合操作系统、数据库管理系统的功能)两个方向不断延伸,并在向更宽广的应用领域拓展。
在国内,国防科技大学、北京大学、北航、中科院软件所、东南大学等大学和院所很早就投入到中间件技术的研究中,并形成了一系列的成果。在国家发改委、信息产业部电子发展基金和国家科技部 863 计划和政府其他基金资助下,通过各项目研究单位和国内骨干软件企业多年的不懈努力,国内在基础中间件国防科技大学领域已经形成丰富的技术积累,并在 CORBA 技术(国防科技大学与中创软件)、消息中间件技术(中科院软件所)、J2EE 应用服务器(北京大学)、Web Service(北航)等方面在技术上基本与国外保持同步发展的水平。
以 CORBA 技术为例,国防科技大学与中创软件以对象管理组织发布的 CORBA 及 MDA 标准体系为依据,并结合 J2EE、XML、Web Service 等标准,对 ORB、CORBA 构件模型及其运行支撑技术、企业协同框架(CCA)、EAI Profile 等进行了深入的研究,近 3 年在国内一级刊物和国际会议上发表 50 多篇文章,向对象管理组织(OMG)提交 9 项标准提案,已经从标准跟从阶段进入参与阶段,研究论文和成果在国际上得到广泛引用,国防科技大学 CORBA 研究成果 StarBus 并获得国家科技进步二等奖。
1.2. 产品与市场现状
中间件作为基础软件的重要组成,业已与操作系统、数据库齐头并进,在世界范围内呈现出迅猛发展的势头,已经形成一个巨大的产业。目前,中间件在国内整个软件行业中应该是发展速度最快的市场之一。中国软件产业经过 20 年的发展,很多部门的信息化建设都走过了关键业务应用和部门级应用的阶段,现在开始向企业级应用转变。所谓企业级应用,最为人们所重视的就是各类信息资源之间如何关联、整合、协同、互动和按需服务,这些都是中间件能够发挥巨大作用的空间所在。当然,中国软件产业整体上还比较弱,整个社会信息化的程度无论在广度、深度方面都还不够,这些自然也限制了国内软件产业及中间件的市场规模。随着国家信息化建设的不断深入,社会对应用软件,特别是对网络应用起支撑作用的中间件产品的巨大需求是不争的事实,国内中间件的市场才刚刚开始启动,存在巨大的发展机会和空间。
目前,网络应用中间件逐渐在基础中间件、应用中间件、应用框架等三个层面形成激烈的产品竞争和市场竞争格局。从三个方面的产品来分析,国外厂商仍然占主导地位,主流厂商包括 IBM,BEA,ORACLE,HP,Iona 等,而一些新型的中间件公司,如 Tibco,webMethod,Vitria 也开始携其应用集成中间件或业务流程管理中间件进入中国市场。而国内一些规模较大的软件公司也开始进入此领域,形成了包括中创软件商用中间件、金蝶 Apusic、东方通科技、中关村科技、中和威等在内的一批中间件专业厂商,东软、用友、信雅达等应用集成商也大量投入中间件产品的研发,国产中间件已经形成了比较完整产品体系,例如,中创软件、中和威推出了基于 CORBA 标准的通信中间件产品;中创软件、金蝶软件、东方通科金蝶软件技等公司分别推出了遵循 J2EE 规范的应用服务器产品;中创软件、中科院软件所、东方通科技推出了消息中间件产品;中创软件推出了符合 OMG 标准的企业应用集成套件 InforEAI;此外,还有大量的公司投入到中间件开发平台和构件库的建设中。国产中间件已经广泛成功应用于我国政府、交通、金融、证券、保险、税务、电信、移动、教育、军事等行业或领域的信息化建设,并成为大型应用系统建设不可缺少的一环。
同国外厂商比较,国内中间件厂商的整体实力还存在很大的差距。如果仅仅从产品的功能上看,我们似乎并不比别人缺什么,但围绕中间件产品从研发到成功应用的全周期来看,我们还缺很多东西,暂时也很难对国外产品形成真正的竞争威胁。应该说国内中间件产品的成熟度应该是没有问题的,但要市场普遍接受国产中间件产品,却还有一个相当长的过程。以中创软件 Infor 系列中间件为例,我们提供的产品可在各类主流操作系统平台和主流数据库上稳定可靠地运行,并可与通行的各种开发工具紧密融合,产品都具备丰富的系统管理功能,并已经在大量行业中获得了成功应用经验,即使如此,要真正形成具有号召力的中间件品牌,还有艰巨的路需要一步步去走。同国外优秀中间件产品相比,我们还有大量需要借鉴和学习的地方,例如在产品的发展方向把握、持续开发能力、产品化工作、市场运作等方面,我们都还要继续加强,不断完善。当然,国内中间件厂商及其产品也具有非常明显的优势,我们贴近国家信息化的现实需求,已经积累了丰富的领域问题和中间件应用经验,我们的中间件产品可以在实用性和易用性方面更加贴近本地化市场需求,在技术支持和服务方面也具有相当的优势。
1.3. 现状分析 综合产业界的发展情况,我国中间件产业在 2004 年呈现出如下发展特点:
技术多样化:中间件已经成为网络应用系统开发、集成、部署、运行和管理必不可少的工具。由于中间件技术涉及网络应用的各个层面,涵盖从基础通讯、数据访问、业务流程集成到应用展现等众多的环节,因此,中间件技术呈现出多样化的发展特点。
产品平台化:由于传统的中间件技术门槛较高,学习周期较长,已经不能适应信息化建设对中间件的广泛应用需求。为此,中间件产品从解决网络计算中的关键问题开始向一体化平台方向发展,以提高中间件产品的使用便利性,更全面地满足各种网络应用软件所要求的可靠性、可伸缩性和安全性的需要。
应用普及化:中间件技术已经是成熟的技术。我国大型信息化建设项目采纳中间件已经成为一种自然、例行的举措。中间件的广泛使用,也进一步促进了应用框架技术的丰富和发展,并为建立企业信息化业务基础架构奠定了基础。
应用需求的新特点与中间件技术走向
需求 由于网络世界是开放的、可成长的和多变的,分布性、自治性、异构性已经成为信息系统的固有特征。实现信息系统的综合集成,已经成为国家信息化建设的普遍需求,并直接反映了整个国家信息化建设的水平,中间件通过网络互连、数据集成、应用整合、流程衔接、用户互动等形式,已经成为大型网络应用系统开发、集成、部署、运行与管理的关键支撑软件。
随着中间件在我国信息化建设中的广泛应用,中间件应用需求也表现出一些新的特点:
可成长性 Internet 是无边界的,中间件必须支持建立在 Internet 之上的网络应用系统的生长与代谢,维护相对稳定的应用视图
适应性
环境和应用需求不断变化,应用系统需要不断演进,作为企业计算的基础设施,中间件需要感知、适应变化,提供对下列环境的支持:
■ 支持移动、无线环境下的分布应用,适应多样性的设备特性以及不断变化的网络环境
■ 支持流媒体应用,适应不断变化的访问流量和带宽约束
■ 在DRE(DIstributed Real-time Enbeded)环境下,适应强 QoS 的分布应用的软硬件约束
■ 能适应未来还未确定的应用要求
可管理性 领域问题越来越复杂、IT 应用系统越来越庞大,其自身管理维护则变得越来越复杂,中间件必须具有自主管理能力,简化系统管理成本。
■ 面对新的应用目标和变化的环境,支持复杂应用系统的自主再配置
■ 支持复杂应用系统的自我诊断和恢复
■ 支持复杂应用系统的自主优化
■ 支持复杂应用系统的自主防护
高可信性
提供安全、可信任的信息服务
■ 支持大规模的并发客户访问
■ 提供 99.99% 以上的系统可用性
■ 提供安全、可信任的信息服务
国内主要中间件生产厂商
锐易特软件有限公司
深圳市金蝶中间件有限公司
IBM(中国)有限责任公司
BEA
富士通中间件
东方通科技
中创软件商用中间件有限公司
中关村科技软件有限公司
上海普元信息技术有限责任公司
北京中和威软件有限公司
麟远创软件(中国)有限公司
杭州信雅达系统工程股份有限公司
北京美景同创国际软件有限公司
博易智软(北京)技术有限公司
清华同方应用信息系统本部
北京炎黄盈动科技发展有限公司
北京慧点科技发展有限公司
东软集团有限公司中间件技术分公司
北京用友华表软件技术有限公司
大用软件有限责任公司
北京超图地理信息系统有限责任公司
北京讯鸟软件有限责任公司
福州华呼信息技术有限公司
清华紫光股份有限公司
北京佳讯飞鸿公司
恩益禧-中科院软件研究所有限公司
Fiorano
IONA 科技公司
深圳金瀚海科技有限公司
中间件技术的发展趋势分析
中间件是伴随着网络应用的发展而逐渐成长起来的技术体系。最初的中间件发展驱动力是需要有一个公共的标准的应用开发平台来屏蔽不同操作系统之间的环境和 API 差异,也就是所谓操作系统与应用程序之间“中间”的这一层叫中间件。但随着网络应用的需求,解决不同系统之间的网络通信、安全、事务的性能、传输的可靠性、语义的解析、数据和应用的整合这些问题,变成中间件的更重要的驱动因素。因此,相继出现了解决网络应用的交易中间件、消息中间件、集成中间件等各种功能性的中间件技术和产品。 现在,中间件已经成为网络应用系统开发、集成、部署、运行和管理必不可少的工具。由于中间件技术涉及网络应用的各个层面,涵盖从基础通讯、数据访问到应用集成等众多的环节,因此,中间件技术呈现出多样化的发展特点。
传统中间件在支持相对封闭、静态、稳定、易控的企业网络环境中的企业计算和信息资源共享方面取得了巨大成功,但在新时期以开放、动态、多变的互联网(Internet)为代表的网络技术冲击下,还是显露出了它的固有局限性,如功能较为专一化,产品和技术之间存在着较大的异构性,跨互联网的集成和协同工作能力不足,僵化的基础设施缺乏随需应变能力等等,在互联网计算带来的巨大挑战面前显得力不从心,时代要求新的技术变革。
中间件技术的发展方向,将聚焦于消除信息孤岛,推动无边界信息流,支撑开放、动态、多变的互联网环境中的复杂应用系统,实现对分布于互联网之上的各种自治信息资源(计算资源、数据资源、服务资源、软件资源)的简单、标准、快速、灵活、可信、高效能及低成本的集成、协同和综合利用,提高组织的 IT 基础设施的业务敏捷性,降低总体运维成本,促进 IT 与业务之间的匹配。中间件技术正在呈现出业务化、服务化、一体化、虚拟化等诸多新的重要发展趋势。