中间件技术概述

中间件技术概述

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

关键词:中间件;应用程序;分布式体系;架构

目录

1. 引言............................................................................................... 2

2. 中间件分类 ................................................................................... 3

3. 研究现状 ....................................................................................... 5

3.1. 技术现状............................................................................... 6

3.2. 产品与市场现状 ................................................................. 10

3.3. 现状分析............................................................................. 11

4. 发展趋势 ..................................................................................... 12

5. 思考与探讨 ................................................................................. 13

5.1. 关于中间件发展驱动力的思考 ........................................... 13

5.2. 关于中间件未来趋势的探讨 . .............................................. 16

6. 总结............................................................................................. 17

1. 引言

一般说来,中间件有两层含义。从狭义的角度,中间件意指Middleware ,它是表示网络环境下处于操作系统等系统软件和应用软件之间的一种起连接作用的分布式软件,通过API 的形式提供一组软件服务,可使得网络环境下的若干进程、程序或应用可以方便的交流信息和有效的进行交互与协同。简言之,中间件主要解决异构网络环境下分布式应用软件的通信、互操作和协同问题,它可屏蔽并发控制、事务管理和网络通信等各种实现细节,提高应用系统的易移植性、适应性和可靠性。从广义的角度,中间件在某种意义上可以理解为中间层软件,通常是指处于系统软件和应用软件之间的中间层次的软件,其主要目的是对应用软件的开发提供更为直接和有效的支撑。

中间件(Middleware )是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台) ,但在这组中间件中必需要有一个通信中间件,即中间件=平台+通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来,如图1所示。中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境。

本文余下部分组织为:第2章介绍了中间件的分类;第3章介绍中间件研究现状,包括中间件封装的分布应用开发共性问题、主要的中间件技术与产品、现有中间件实现关键技术以及中间件国内外市场;第4章通过中间件研究热点阐述其发展趋势;第5章考察中间件发展驱动力并据此预测中间件的未来趋势;第6

章总结全文

2. 中间件分类

中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。但至今中间件还没有一个比较精确的定义,因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。中间件大致可以分为六类。

1) 终端仿真/屏幕转换:用以实现客户机图形用户接口与已有的字符接口方式

的服务器应用程序之间的互操作。

图1. 中间件位置

2) 数据访问中间件:是为了建立数据应用资源互操作的模式,对异构环境下的

数据库实现联接或文件系统实现联接的中间件;在分布式系统中,重要的数据都集中存放在数据服务器中,它们可以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或压缩存放的,这类中间件将为在网络上虚拟缓冲存取、格式转换、解压等带来方便。

3) 远程过程调用中间件:通过这种远程过程调用机制,程序员编写客户方的应

用,需要时可以调用位于远端服务器上的过程。

4) 消息中间件:用来屏蔽掉各种平台及协议之间的特性,实现在不同平台之间

通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输,实现应用程序之间的协同。

5) 交易中间件:是在分布、异构环境下提供保证交易完整性和数据完整性的一

种环境平台。在分布式事务处理系统中要处理大量事务,常常在系统中要同时做上万笔事务。在联机事务处理系统 (OLTP) 中,每笔事务常常要多台服务器上的程序顺序地协调完成,一旦中间发生某种故障时,不但要完成恢复工作,而且要自动切换系统,达到系统永不停机,实现高可靠性运行;同时要使大量事务在多台应用服务器能实时并发运行,并进行负载平衡地调度,实现昂贵的可靠性机和大型计算机系统同等的功能,为了实现这个目标,要求系统具有监视和调度整个系统的功能。

6) 对象中间件:在分布、异构的网络计算环境中,可以将各种分布对象有机地

结合在一起,完成系统的快速集成,实现对象重用,在这个方面遵循的标准是 CORBA 。对象中间件将是未来的主流, 目前产品如东方通的TONG BROKER ,INPRICE 公司的Borland Application Server。

在客户/服务器模式向多层结构迁移的过程中,中间件技术得到了迅速发展和广泛的应用。传统中间件通常提供通信和事务处理功能,包括数据访问中间件、远程过程调用、面向对象、组件的中间件,基于消息的中间件等多种类型,相关技术规范也日趋成熟。而目前,随着电子商务的兴起和企业信息化建设的深入,中间件已不再仅仅实现客户机服务器的互连,还实现应用之间的互操作,也就是数据和应用的集成。

从系统层次的角度,可以把当前的中间件软件归纳为四类,从下至上依次为传统通信中间件、应用服务器、企业应用集成中间件和业务过程管理工具。其中前两种又合称为基础中间件,因为它们通常支撑单个应用系统或解决单一类问题,与平台软件,如操作系统、数据库管理系统等,结合紧密;后两种属于应用中间件的范畴,更多用于系统整合,与行业应用系统联系紧密。应用中间件通常会与多个应用系统打交道,位于系统中较高的层次,并大多基于底层中间件运行。

传统中间件发展时间较长,作为基础平台软件,具有一定的通用性,实现技

术也较为复杂。该类别中囊括了多种实现机制,相关标准也比较完备。由于是高层中间件运行的基础,因而仍然占据主体地位。应用服务器在企业信息化建设中得到了广泛应用,是设计、开发、部署、运行和管理Internet 电子商务的平台。企业应用集成中间件帮助企业集成各种新老应用程序,使它们能够跨平台互通,在企业资源规划中扮演着重要角色。正是应用服务器和企业应用集成中间件的出现改变了中间件的作用,使其从一个联结分布式应用各组成部分的通信工具,变成了一个集成工具,从而也提升了中间件的地位和重要性。据预测,未来几年增长率最高的中间件将集中在应用服务器和应用集成中间件上。业务过程管理工具帮助企业管理业务活动,为过程的产出增值,这一类工具中最突出的是工作流管理中间件。

3. 研究现状

中间件的主旨是简化分布系统的构造,其基本思想是:抽取分布系统构造中的共性问题,封装这些共性问题的解决机制,对外提供简单统一的接口,从而减少开发人员在解决这些共性问题时的难度和工作量。在构造分布系统的过程中,开发人员经常会遇到网络通信、同步、激活/去活、并发、可靠性、事务性、容错性、安全性、伸缩性、异构性等问题。中间件正是辅助应用开发者解决这些问题的软件系统,一般提供如下功能:

1) 通信支持

大多数基于中间件的系统包含有分布式操作,也就是说,系统需要于其它分布式服务或系统进行交互。现代操作系统一般提供一组网络操作的编程接口(如套接字),中间件则提供通信支持以屏蔽这组底层、复杂的接口。基于中间件的应用分布式交互主要包括远程过程调用(Remote Procedure Call ,RPC )和消息两种方式。

2) 并发支持

分布式应用系统一般需要具有较强的处理能力,也就是说,系统可以处理很多的客户请求。为尽量利用硬件的计算能力,一般系统实现时采用并发技术

(如多进程或多线程),对多个客户请求同时进行处理。但并发技术的使用是一个复杂而且容易出错的过程:并发执行的程序单元之间可能会互相影响、竞争资源,也可能会产生系统内部状态的不一致。因此,应用程序使用并发技术后,其自身复杂度会有很大提高。

中间件为应用系统提供并发支持,是指提供一种“单线程”或“单进程”的编程模型,开发者在开发系统时,无需考虑并发对程序的影响,可以假设程序是串行执行的,从而极大的简化了程序开发和维护的复杂度,也减少了程序出错的可能性。

3) 公共服务

公共服务是对应用中共性功能或约束的抽取。中间件提供一个或一组公共服务,供系统使用,这组公共服务不特定于某一种或某一类系统;应用系统在实现和运行时直接使用这些公共服务。公共服务的好处在于一方面将应用中的共性抽取出来由中间件实现,减少了系统开发的工作量;另一方面使得应用开发者更能关注业务功能的需求、设计和实现,有助于提高软件质量。

不同中间件中提供的公共服务有可能存在差别,其中主要的公共服务包括:名字和目录服务,提供动态的查找功能,应用系统可以在运行时刻按照名字或目录查找需要使用或进行交互的其它系统或系统组成部分。事务服务,提供对应用操作事务性的保证,包括声明型的自动完成事务的启动、提交或回滚,和编程型的事务接口由应用程序控制事务流程。另外,很多中间件还提供分布式的事务支持。安全服务,从通信、访问控制等多个层次上保证应用系统的安全特性。持久化服务,提供一种管理机制,应用系统可以管理其持久化的数据。例如,在基于面向对象方法设计和实现的系统中完成对象——关系映射,将对象存储到关系型数据库中。

3.1. 技术现状

中间件技术是在克服复杂网络应用的共性问题中不断发展和壮大起来的,这些问题可以归纳为四个方面:

a) 从计算环境来看:中间件面对的是一个复杂、不断变化的计算环境,要求中

间件技术具有足够的灵活性和可成长性;

b) 从资源管理的角度来看:操作系统和数据库管理系统管理的是有限资源,资

源种类有限,资源量也有限,而中间件需要管理的资源类型(数据、服务、应用)更丰富,且资源扩展的边界是发散的;

c) 从应用支撑角度来看:中间件需要提供分布应用开发、集成、部署和运行管

理的整个生命周期的总体运行模型;

d) 从应用的角度来看:利用中间件完成的往往是复杂、大范围的企业级应用,

其关系错综复杂,流程交织。例如客户关系管理系统需要集成多个企业内部应用,而供应链管理则涉及企业之间的应用集成。

因此,由于网络应用的复杂性,特别是分布、异构和自治等特点,决定了中间件技术和产品的形态多样性。目前的中间件技术已经形成一个丰富的谱系(图

1),并正在向上(应用框架和普适服务)和向下(融合操作系统、数据库管理系统的功能)两个方向不断延伸,并在向更宽广的应用领域拓展。

随着分布式应用的快速发展,各种中间件技术和产品不断涌现。由于中间件技术和产品正在快速的发展,要精确的给出其完整的分类目前尚有一定的困难。因此下文主要对一些典型的中间件技术和产品加以介绍。

1. 事务式中间件(Transactional Middleware)

事务式中间件又称事务处理管理程序(Transaction Processing Monitor)。其主要功能是提供联机事务处理所需要的通信、并发访问控制、事务控制、资源管理、安全管理和其他必要的服务。

事务式中间件由于其可靠性高、性能优越等特点而得到了广泛的应用,是一类比较成熟的中间件,其主要产品包括IBM 的CICS ,BEA 的Tuxedo ,和Transarc 的Encina 等。

2. 过程式中间件(Procedural Middleware)

过程式中间件又称远程过程调用(Remote Procedure Calls, RPCs )中间件。

远程过程调用模型是经典的过程调用思想在网络环境下自然拓广。过程式中间件使得一个主机上的应用可以在网络环境下用过程调用的方式来调用部署在另一个主机上的应用中的过程。新近发展起来的一项技术是XML RPC,它使得在Internet 异构环境下应用能够使用RPC 。

一般说来,过程式中间件有较好的异构支持能力,简单易用,但在易剪裁性和容错方面有一定的局限性。过程式中间件是一项比较经典的技术,其主要产品有Open Software Foundation 的DCE ,Microsoft 的RPC Facility等。

3. 面向消息的中间件(Message-Oriented Middleware)

面向消息的中间件,简称为消息中间件,是一类以消息为载体进行通信的中间件。按其通信模型的不同,消息中间件的通信模型有两类:消息队列和消息传递。消息队列是一种间接通信模型,其通信基于队列来完成。而消息传递是一种直接通信模型,其消息被直接发给感兴趣的实体。近年来,对消息中间件技术有较大影响的是J2EE 规范中的JMS 。

消息中间件在支持多通信规程,可靠性、易用性和容错能力等方面有其特点,比较易于使用。面向消息中间件是一类常用的中间件,其主要产品有IBM 的MQSeries ,Microsoft 的Messaging Queuing,以及Sun 的Java Message Queue 等。

4. 面向对象中间件(Object Oriented Middleware)

面向对象中间件又称分布对象中间件(Distributed Object Middleware),简称对象中间件。分布对象模型是面向对象模型在分布异构环境下的自然拓广。分布对象中间件支持分布对象模型,使得软件开发者可在分布异构环境下面向对象方法和技术来开发应用。OMG 组织是分布对象技术标准化方面的国际组织,它制定出了CORBA 标准等,DCOM 是微软推出的分布对象技术。COM +和.NET 是其进一步的发展与深化。

总的说来,对象中间件是一种标准化较好、功能较强的中间件;它全面支持面向对象模型,具有良好的异构支持能力,可适用于广泛的一类应用。分布对象中间件是一类常用的中间件,其主要产品有,OMG 的CORBA 产品

系列,Microsoft 的COM 系列,Java RMI 等。

5. Web 应用服务器(Web Application Server)

概念上,Web 应用服务器是Web 服务器和应用服务器相结合的产物,它是处于目前主流的三层或多层应用结构的中间的核心层次,直接与应用逻辑关联,对分布应用系统的建造具有举足轻重的影响。应用服务器中间件技术为支持应用服务器的开发而发展起来的软件基础设施,它不仅支持前端客户与后端数据和应用资源的通信与连接,而且还采用面向对象、构件化等先进技术等提供了事务处理、可靠性和易剪裁性等多方面的支持,大大简化网络应用系统的部署与开发。EJB 和J2EE 是目前应用服务器方面的主流标准。

应用服务器由于直接支持三层或多层应用系统的开发而受到广大用户的欢迎,它是目前中间件市场上竞争的热点,其主要产品有,BEA 的Web Logic(遵循J2EE 规范), IBM 的WebSphere 等。

6. Web Services中间件(Web Services Middleware)

为了支持跨边界的企业应用系统的集成,出现了Web Services及其相关的标准。一般说来,Web Services 中间件是指支持UDDI (Universal Description, Discovery, and Integration ),XML (eXtensible Makeup Language), SOAP(Simple Object Access Protocol), WSDL(Web Services Description Language),WSFL(Web Services Flow Language)等各种相关标准的中间件。此类中间件可支持在各种不同类型中间件环境中开发的应用系统在统一的模式下进行灵活的应用集成和互操作。

Web Services 近年来发展起来的新兴技术,有较好的市场发展前景。与之相关的主要工作有:Microsoft 的.NET, Sun 的SunOne ,Oracle 的Oracle9i,Oracle9i, 以及BEA ,HP ,Borland 等对Web Services的支持。

7. 其它

新的应用需求、新的技术创新、新的应用领域促成了新的中间件产品的出现。例如,商务流程自动化的需求推动了工作流中间件的兴起;企业应用集成的需求引发了企业应用集成服务器(EAI 服务器)的出现;动态B2B 集成的需

要又推动了Web 服务技术和产品的快速发展,Web 服务技术的发展又必将推动现有中间件技术的变化和新中间件种类的出现;中间件应用到通信环境,服务于移动电子商务,就出现了移动中间件;而对中间件在开放环境下的灵活性和自适应能力的需求导致了所谓自适应中间件、反射式中间件和基于Agent 的中间件等新型中间件的研究。

3.2. 产品与市场现状

中间件作为基础软件的重要组成,已与操作系统、数据库齐头并进,在世界范围内呈现出迅猛发展的势头,已经形成一个巨大的产业。目前,中间件在国内整个软件行业中应该是发展速度最快的市场之一。中国软件产业经过20年的发展,很多部门的信息化建设都走过了关键业务应用和部门级应用的阶段,现在开始向企业级应用转变。所谓企业级应用,最为人们所重视的就是各类信息资源之间如何关联、整合、协同、互动和按需服务,这些都是中间件能够发挥巨大作用的空间所在。当然,中国软件产业整体上还比较弱,整个社会信息化的程度无论在广度、深度方面都还不够,这些自然也限制了国内软件产业及中间件的市场规模。随着国家信息化建设的不断深入,社会对应用软件,特别是对网络应用起支撑作用的中间件产品的巨大需求是不争的事实,国内中间件的市场才刚刚开始启动,存在巨大的发展机会和空间。

目前,网络应用中间件逐渐在基础中间件、应用中间件、应用框架等三个层面形成激烈的产品竞争和市场竞争格局。从三个方面的产品来分析,国外厂商仍然占主导地位,主流厂商包括IBM ,BEA ,ORACLE ,HP ,Iona 等,而一些新型的中间件公司,如Tibco ,webMethod ,Vitria 也开始携其应用集成中间件或业务流程管理中间件进入中国市场。而国内一些规模较大的软件公司也开始进入此领域,形成了包括中创软件商用中间件、金蝶Apusic 、东方通科技、中关村科技、中和威等在内的一批中间件专业厂商,东软、用友、信雅达等应用集成商也大量投入中间件产品的研发,国产中间件已经形成了比较完整产品体系,例如,中创软件、中和威推出了基于CORBA 标准的通信中间件产品;中创软件、金蝶软件、东方通技等公司分别推出了遵循J2EE 规范的应用服务器产品;中创软件、中科院软件所、东方通科技推出了消息中间件产品;中创软件推出了符合OMG 标准

的企业应用集成套件InforEAI ;此外,还有大量的公司投入到中间件开发平台和构件库的建设中。国产中间件已经广泛成功应用于我国政府、交通、金融、证券、保险、税务、电信、移动、教育、军事等行业或领域的信息化建设,并成为大型应用系统建设不可缺少的一环。

同国外厂商比较,国内中间件厂商的整体实力还存在很大的差距。如果仅仅从产品的功能上看,我们似乎并不比别人缺什么,但围绕中间件产品从研发到成功应用的全周期来看,我们还缺很多东西,暂时也很难对国外产品形成真正的竞争威胁。应该说国内中间件产品的成熟度应该是没有问题的,但要市场普遍接受国产中间件产品,却还有一个相当长的过程。以中创软件Infor 系列中间件为例,我们提供的产品可在各类主流操作系统平台和主流数据库上稳定可靠地运行,并可与通行的各种开发工具紧密融合,产品都具备丰富的系统管理功能,并已经在大量行业中获得了成功应用经验,即使如此,要真正形成具有号召力的中间件品牌,还有艰巨的路需要一步步去走。同国外优秀中间件产品相比,我们还有大量需要借鉴和学习的地方,例如在产品的发展方向把握、持续开发能力、产品化工作、市场运作等方面,我们都还要继续加强,不断完善。当然,国内中间件厂商及其产品也具有非常明显的优势,我们贴近国家信息化的现实需求,已经积累了丰富的领域问题和中间件应用经验,我们的中间件产品可以在实用性和易用性方面更加贴近本地化市场需求,在技术支持和服务方面也具有相当的优势。

3.3. 现状分析

综合产业界的发展情况,我国中间件产业呈现出如下发展特点:

技术多样化:中间件已经成为网络应用系统开发、集成、部署、运行和管理必不可少的工具。由于中间件技术涉及网络应用的各个层面,涵盖从基础通讯、数据访问、业务流程集成到应用展现等众多的环节,因此,中间件技术呈现出多样化的发展特点。

产品平台化:由于传统的中间件技术门槛较高,学习周期较长,已经不能适应信息化建设对中间件的广泛应用需求。为此,中间件产品从解决网络计算中的关键问题开始向一体化平台方向发展,以提高中间件产品的使用便利性,更全面

地满足各种网络应用软件所要求的可靠性、可伸缩性和安全性的需要。

应用普及化:中间件技术已经是成熟的技术。我国大型信息化建设项目采纳中间件已经成为一种自然、例行的举措。中间件的广泛使用,也进一步促进了应用框架技术的丰富和发展,并为建立企业信息化业务基础架构奠定了基础。

4. 发展趋势

中间件技术近年取得了很大的成功,不仅成为产业界开发分布系统的首选,也吸引了学术界的众多研究。随着应用的普及和研究的深入,以及Internet 的发展,如图2所示,目前的中间件技术主要呈现出三方面的趋势:

图2. 中间件发展趋势示意图

首先,中间件越来越多地向传统运行层(操作系统)渗透,提供更强的运行支撑,特别地,分布式操作系统的诸多功能逐步融入中间件,如,在CORBA 和RMI 中,中间件往往以类库的形式被上层应用主动地载入应用运行空间,与之相反,在CCM 和EJB 中,中间件是独立的运行程序,负责装载上层应用并为之提供运行空间。此外,基于服务质量的资源管理机制以及灵活的配置与重配置能力也是目前的中间件研究热点。

其次,应用软件需要的支持机制越来越多地由中间件提供,中间件不再局限于提供适用于大多数应用的支持机制,那些适用于某个领域内大部分应用的支持机制(这些机制往往无法在其它领域使用)也开始得到重视。如,在最新的CORBA

规范中,增加了对实时应用和嵌入式应用的支持,而特定于无线应用的移动中间件、支持网格计算的中间件也是目前的研究热点。

其三,中间件也开始考虑对高层设计和应用部署等开发工作的支持,如,CORBA 和RMI 提供了支持基于构件的软件开发的CCM 和EJB 构件模型,J2EE 提出了包括构件开发、构件组装、应用部署等在内的基于构件的软件开发过程模型,OMG 提出的模型驱动体系(Model-Driven Architecture)则考虑如何利用UML 更有效地开发基于中间件的应用系统。对于目前的AOP (Aspect Oriented Programming ),中间件由于其封装的共性特征及其动态配置能力,成为支持侧面动态编织的主流支撑平台。

5. 思考与探讨

5.1. 关于中间件发展驱动力的思考

1) 从软件形态看中间件的发展

软件是客观世界中问题空间与解空间的具体描述,其基本模型为实体元素以及这些元素之间的连接和交互。考察软件基本模型的发展,汇编语言(机器语言)的基本单元是指令,指令的序列构成程序,其控制机制主要是顺序和转移;高级语言则通过顺序、循环和条件等三种基本控制结构来控制高级语句,而函数(过程)等程序元素增大了实体元素的粒度;近20年来,面向对象程序设计语言的诞生并逐步流行,为人们提供了一种以对象为基本计算单元,以消息传递为基本交互手段的软件模型,该模型以拟人化的观点来看待客观世界(客观世界由一系列对象构成,这些对象间的交互就形成了客观世界的活动),符合人们的思维模式和现实世界的结构;对软件复用的关注,又使得人们试图寻找比对象粒度更大、更易于复用的基本单元,因而面向构件的计算模型被视为新一代的软件模型。

网络的出现与普及,使得编程语言提供的基本通信机制无法支持软件模块之间的远程交互,由此导致了中间件的产生。此外,软件自身的日益复杂导致软件模块之间的交互也变得复杂,为此,中间件不得不提供越来越多的

功能以屏蔽交互的复杂度,如,异步通信、组通信、并发、安全、事务等复杂功能成为中间件必备的高级特征,而Web Services更是考虑到了交互之间的时序约束以及多个模块交互之间的全局约束。因此,从软件形态的角度看,中间件主要解决软件模块之间的交互问题。

2) 从软件本质看中间件的发展

在整个信息技术体系中,微电子是基础,计算机和通信设施是载体,软件则是核心。如何更高效地发挥硬件资源所提供的计算能力,是软件技术发展的主要驱动因素之一。以操作系统为例,随着计算机硬件的发展,单机操作系统从最初的引导程序,发展到管理诸多硬件资源的管理程序,进而产生发挥CPU 与外设作用的多道程序,直至今日追求软硬件高效利用的资源管理系统。

随着通信设施的发展,如何高效、经济地发挥通过网络互联、种类繁杂、数量众多的硬件资源的计算能力,导致了中间件的产生。除了经典的远程通信问题,越来越多的与硬件相关的问题及其解决方案也开始在中间件中得以体现,如,实时中间件(realtime middleware )重点考虑现实世界严格的时间约束问题,嵌入式中间件(embedded middleware )着重解决嵌入式设备计算能力较弱、存储空间较小、网络带宽有限、电源供应不足等问题,而移动计算中间件(mobile middleware)则提供位置敏感、断连操作等支持。因此,从软件本质的角度看,中间件也可视为“网络操作系统”。

3) 从软件开发看中间件的发展

软件开发是典型的知识密集型活动,复杂度高、开发周期长、可靠性难以保证。尽可能多地凝练共性并复用,是提高软件开发效率和质量的主要途径。从共性凝练的角度看,操作系统将管理硬件资源、控制程序运行等直接作用于裸机的共性问题提取出来,简化应用对计算机的管理和使用;而中间件则将网络环境下应用开发经常遇见的共性问题,如通信、安全、事务等,以及特定于某些领域的问题,如电信中的事件过滤与通告、音视频传输、运输领域的空中交通管制、制造领域的计算机辅助设计、生命科学领域的基因表达等抽取出来,大大简化了网络应用的开发和维护。

随着可复用共性的增多,软件开发也逐步从手工作坊式向软件工业化生产演变。典型的工业化软件生产技术包括终端用户编程、模型驱动开发和随需即取等。终端用户编程允许用户在无需掌握复杂的编程语言和过多的技术细节的条件下,可以快速开发出满足需求的软件。在模型驱动开发中,用户只需关注高层建模,复用包含复杂技术细节的低层模型,即可自动生成代码。随需即取则根据用户需求,由服务提供商快速正确地构造出相应服务。在这些工业化软件生产技术中,中间件都扮演了极为重要的“基础设施”的角色。因此,从软件开发的角度看,中间件是一种高效实用的共性凝练与复用手段。

4) 从软件市场看中间件的发展

市场竞争、技术升级以及保护投资等因素往往导致软硬件的异构,而市场合作以及系统升级又要求解决异构问题。回顾软件技术的发展,操作系统从某种程度而言,屏蔽了计算机硬件的异构性;为了屏蔽操作系统和编程语言的异构性,产生了支撑软件和中间件。中间件的发展和多样化导致了中间件的异构性,由此产生了Web Services 。另一方面,从产品为中心转向服务为中心的“软件即服务”以及“业务按需即取”等新型市场模式,均依赖于中间件技术的支撑。

从软件产业的角度,采用中间件技术和产品可有效缩短应用解决方案进入市场的时间,提高解决方案的竞争力,其大量的开发与使用可有效提高软件企业的产品质量和生产效率。从技术的角度而言,中间件技术和产品包含了对Internet 平台的抽象、开放应用模式和结构的理解、基础的程序设计模型、新型软件方法学等多项软件核心技术,是Internet 环境下众多软件新方法和新技术的综合载体。从产品角度而言,中间件是处在经典系统软件和应用系统之间的一组软件,它们不仅可在多种主流平台上运行,对现行的主流软件技术和产品具有良好的兼容性,还能够适应Internet 多样性特征、开放性应用的多样性特征和多种用户的个性化需求。因此,从软件市场的角度看,中间件使得各种软硬件技术与产品能够适应各种市场模式或策略。

5.2. 关于中间件未来趋势的探讨

从前面对中间件研究现状与发展趋势的介绍以及驱动力的探讨可见,Internet 平台和环境的出现及其发展,对中间件近十多年的研究与实践起到了决定性的影响。无疑,Internet 在未来5-15年内将得到进一步的普及和发展,因此,本文将以Internet 为背景探讨中间件的未来趋势。

Internet 作为不同于传统计算机的硬件平台,具有如下基本特征:无统一控制的“真”分布性;节点的高度自治性;节点链接的开放性和动态性;人、设备和软件的多重异构性;实体行为的不可预测性;运行环境的潜在不安全性;使用方式的个性化和灵活性;网络连接环境的多样性。由于软件系统所基于的计算机硬件平台正经历从集中封闭的计算平台向开放的Internet 平台的转变,软件系统作为计算机系统的灵魂,随着其运行环境的演变也经历了一系列的变革。目前,面向网络的计算环境正由Client/Server发展为Client/Cluster,并正朝着Client/Network和Client/Virtual Environment 的方向发展。那么,未来的基于Internet 平台的软件系统又将会呈现出一个什么形态呢?

从技术的角度看,以软件构件等技术支持的软件实体将以开放、自主的方式存在于Internet 的各个节点之上,任何一个软件实体可在开放的环境下通过某种方式加以发布,并以各种协同方式与其它软件实体进行跨网络的互连、互通、协作和联盟,从而形成一种与当前的信息Web 类似的Software Web。Software Web不再仅仅是信息的提供者,而是各种服务(功能)的提供者。由于网络环境的开放与动态性,以及用户使用方式的个性化要求,从而决定了这样一种Software Web 并不能够像传统软件那样一蹴而就,它应能感知外部网络环境的动态变化,并随着这种变化按照功能指标、性能指标和可信性指标等进行静态的调整和动态的演化,以使系统具有尽可能高的用户满意度。本文将这样一种新的软件形态称为网构软件(Internetware )。

网构软件是在Internet 开放、动态和多变环境下软件系统基本形态的一种抽象,它既是传统软件结构的自然延伸,又具有区别于在集中封闭环境下发展起来的传统软件形态的独有的基本特征:自主性、协同性、反应性、演化性、多态性。

综上所述,Internet 及其上应用的快速发展与普及,使计算机软件所面临的环境开始从静态封闭逐步走向开放、动态和多变。软件系统为了适应这样一种发展趋势,将会逐步呈现出柔性、多目标、连续反应式的网构软件系统的形态。这种新型的软件形态将使系统软件和支撑平台的研究重点开始从操作系统等转向新型中间件平台,而网构软件的理论、方法和技术的突破必将导致在建立新型中间件平台创新技术方面的突破。

6. 总结

中间件技术是构造分布式应用和系统集成的关键,本文讨论了中间件技术的国内外研究现状、关键技术及发展趋势。同时,作为该系列报告中一篇关于软件中间件的文章,本文还介绍了中间件的基本概念、主要特征、历史回顾等基础知识。最后,本文从软件形态、软件本质、软件开发、软件市场等四个角度考察了中间件技术发展的驱动力,并以Internet 为背景,探讨了未来5-15年中间件的发展趋势。

中间件技术概述

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

关键词:中间件;应用程序;分布式体系;架构

目录

1. 引言............................................................................................... 2

2. 中间件分类 ................................................................................... 3

3. 研究现状 ....................................................................................... 5

3.1. 技术现状............................................................................... 6

3.2. 产品与市场现状 ................................................................. 10

3.3. 现状分析............................................................................. 11

4. 发展趋势 ..................................................................................... 12

5. 思考与探讨 ................................................................................. 13

5.1. 关于中间件发展驱动力的思考 ........................................... 13

5.2. 关于中间件未来趋势的探讨 . .............................................. 16

6. 总结............................................................................................. 17

1. 引言

一般说来,中间件有两层含义。从狭义的角度,中间件意指Middleware ,它是表示网络环境下处于操作系统等系统软件和应用软件之间的一种起连接作用的分布式软件,通过API 的形式提供一组软件服务,可使得网络环境下的若干进程、程序或应用可以方便的交流信息和有效的进行交互与协同。简言之,中间件主要解决异构网络环境下分布式应用软件的通信、互操作和协同问题,它可屏蔽并发控制、事务管理和网络通信等各种实现细节,提高应用系统的易移植性、适应性和可靠性。从广义的角度,中间件在某种意义上可以理解为中间层软件,通常是指处于系统软件和应用软件之间的中间层次的软件,其主要目的是对应用软件的开发提供更为直接和有效的支撑。

中间件(Middleware )是处于操作系统和应用程序之间的软件,也有人认为它应该属于操作系统中的一部分。人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台) ,但在这组中间件中必需要有一个通信中间件,即中间件=平台+通信,这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来,如图1所示。中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境。

本文余下部分组织为:第2章介绍了中间件的分类;第3章介绍中间件研究现状,包括中间件封装的分布应用开发共性问题、主要的中间件技术与产品、现有中间件实现关键技术以及中间件国内外市场;第4章通过中间件研究热点阐述其发展趋势;第5章考察中间件发展驱动力并据此预测中间件的未来趋势;第6

章总结全文

2. 中间件分类

中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。但至今中间件还没有一个比较精确的定义,因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。中间件大致可以分为六类。

1) 终端仿真/屏幕转换:用以实现客户机图形用户接口与已有的字符接口方式

的服务器应用程序之间的互操作。

图1. 中间件位置

2) 数据访问中间件:是为了建立数据应用资源互操作的模式,对异构环境下的

数据库实现联接或文件系统实现联接的中间件;在分布式系统中,重要的数据都集中存放在数据服务器中,它们可以是关系型的、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或压缩存放的,这类中间件将为在网络上虚拟缓冲存取、格式转换、解压等带来方便。

3) 远程过程调用中间件:通过这种远程过程调用机制,程序员编写客户方的应

用,需要时可以调用位于远端服务器上的过程。

4) 消息中间件:用来屏蔽掉各种平台及协议之间的特性,实现在不同平台之间

通信,实现分布式系统中可靠的、高效的、实时的跨平台数据传输,实现应用程序之间的协同。

5) 交易中间件:是在分布、异构环境下提供保证交易完整性和数据完整性的一

种环境平台。在分布式事务处理系统中要处理大量事务,常常在系统中要同时做上万笔事务。在联机事务处理系统 (OLTP) 中,每笔事务常常要多台服务器上的程序顺序地协调完成,一旦中间发生某种故障时,不但要完成恢复工作,而且要自动切换系统,达到系统永不停机,实现高可靠性运行;同时要使大量事务在多台应用服务器能实时并发运行,并进行负载平衡地调度,实现昂贵的可靠性机和大型计算机系统同等的功能,为了实现这个目标,要求系统具有监视和调度整个系统的功能。

6) 对象中间件:在分布、异构的网络计算环境中,可以将各种分布对象有机地

结合在一起,完成系统的快速集成,实现对象重用,在这个方面遵循的标准是 CORBA 。对象中间件将是未来的主流, 目前产品如东方通的TONG BROKER ,INPRICE 公司的Borland Application Server。

在客户/服务器模式向多层结构迁移的过程中,中间件技术得到了迅速发展和广泛的应用。传统中间件通常提供通信和事务处理功能,包括数据访问中间件、远程过程调用、面向对象、组件的中间件,基于消息的中间件等多种类型,相关技术规范也日趋成熟。而目前,随着电子商务的兴起和企业信息化建设的深入,中间件已不再仅仅实现客户机服务器的互连,还实现应用之间的互操作,也就是数据和应用的集成。

从系统层次的角度,可以把当前的中间件软件归纳为四类,从下至上依次为传统通信中间件、应用服务器、企业应用集成中间件和业务过程管理工具。其中前两种又合称为基础中间件,因为它们通常支撑单个应用系统或解决单一类问题,与平台软件,如操作系统、数据库管理系统等,结合紧密;后两种属于应用中间件的范畴,更多用于系统整合,与行业应用系统联系紧密。应用中间件通常会与多个应用系统打交道,位于系统中较高的层次,并大多基于底层中间件运行。

传统中间件发展时间较长,作为基础平台软件,具有一定的通用性,实现技

术也较为复杂。该类别中囊括了多种实现机制,相关标准也比较完备。由于是高层中间件运行的基础,因而仍然占据主体地位。应用服务器在企业信息化建设中得到了广泛应用,是设计、开发、部署、运行和管理Internet 电子商务的平台。企业应用集成中间件帮助企业集成各种新老应用程序,使它们能够跨平台互通,在企业资源规划中扮演着重要角色。正是应用服务器和企业应用集成中间件的出现改变了中间件的作用,使其从一个联结分布式应用各组成部分的通信工具,变成了一个集成工具,从而也提升了中间件的地位和重要性。据预测,未来几年增长率最高的中间件将集中在应用服务器和应用集成中间件上。业务过程管理工具帮助企业管理业务活动,为过程的产出增值,这一类工具中最突出的是工作流管理中间件。

3. 研究现状

中间件的主旨是简化分布系统的构造,其基本思想是:抽取分布系统构造中的共性问题,封装这些共性问题的解决机制,对外提供简单统一的接口,从而减少开发人员在解决这些共性问题时的难度和工作量。在构造分布系统的过程中,开发人员经常会遇到网络通信、同步、激活/去活、并发、可靠性、事务性、容错性、安全性、伸缩性、异构性等问题。中间件正是辅助应用开发者解决这些问题的软件系统,一般提供如下功能:

1) 通信支持

大多数基于中间件的系统包含有分布式操作,也就是说,系统需要于其它分布式服务或系统进行交互。现代操作系统一般提供一组网络操作的编程接口(如套接字),中间件则提供通信支持以屏蔽这组底层、复杂的接口。基于中间件的应用分布式交互主要包括远程过程调用(Remote Procedure Call ,RPC )和消息两种方式。

2) 并发支持

分布式应用系统一般需要具有较强的处理能力,也就是说,系统可以处理很多的客户请求。为尽量利用硬件的计算能力,一般系统实现时采用并发技术

(如多进程或多线程),对多个客户请求同时进行处理。但并发技术的使用是一个复杂而且容易出错的过程:并发执行的程序单元之间可能会互相影响、竞争资源,也可能会产生系统内部状态的不一致。因此,应用程序使用并发技术后,其自身复杂度会有很大提高。

中间件为应用系统提供并发支持,是指提供一种“单线程”或“单进程”的编程模型,开发者在开发系统时,无需考虑并发对程序的影响,可以假设程序是串行执行的,从而极大的简化了程序开发和维护的复杂度,也减少了程序出错的可能性。

3) 公共服务

公共服务是对应用中共性功能或约束的抽取。中间件提供一个或一组公共服务,供系统使用,这组公共服务不特定于某一种或某一类系统;应用系统在实现和运行时直接使用这些公共服务。公共服务的好处在于一方面将应用中的共性抽取出来由中间件实现,减少了系统开发的工作量;另一方面使得应用开发者更能关注业务功能的需求、设计和实现,有助于提高软件质量。

不同中间件中提供的公共服务有可能存在差别,其中主要的公共服务包括:名字和目录服务,提供动态的查找功能,应用系统可以在运行时刻按照名字或目录查找需要使用或进行交互的其它系统或系统组成部分。事务服务,提供对应用操作事务性的保证,包括声明型的自动完成事务的启动、提交或回滚,和编程型的事务接口由应用程序控制事务流程。另外,很多中间件还提供分布式的事务支持。安全服务,从通信、访问控制等多个层次上保证应用系统的安全特性。持久化服务,提供一种管理机制,应用系统可以管理其持久化的数据。例如,在基于面向对象方法设计和实现的系统中完成对象——关系映射,将对象存储到关系型数据库中。

3.1. 技术现状

中间件技术是在克服复杂网络应用的共性问题中不断发展和壮大起来的,这些问题可以归纳为四个方面:

a) 从计算环境来看:中间件面对的是一个复杂、不断变化的计算环境,要求中

间件技术具有足够的灵活性和可成长性;

b) 从资源管理的角度来看:操作系统和数据库管理系统管理的是有限资源,资

源种类有限,资源量也有限,而中间件需要管理的资源类型(数据、服务、应用)更丰富,且资源扩展的边界是发散的;

c) 从应用支撑角度来看:中间件需要提供分布应用开发、集成、部署和运行管

理的整个生命周期的总体运行模型;

d) 从应用的角度来看:利用中间件完成的往往是复杂、大范围的企业级应用,

其关系错综复杂,流程交织。例如客户关系管理系统需要集成多个企业内部应用,而供应链管理则涉及企业之间的应用集成。

因此,由于网络应用的复杂性,特别是分布、异构和自治等特点,决定了中间件技术和产品的形态多样性。目前的中间件技术已经形成一个丰富的谱系(图

1),并正在向上(应用框架和普适服务)和向下(融合操作系统、数据库管理系统的功能)两个方向不断延伸,并在向更宽广的应用领域拓展。

随着分布式应用的快速发展,各种中间件技术和产品不断涌现。由于中间件技术和产品正在快速的发展,要精确的给出其完整的分类目前尚有一定的困难。因此下文主要对一些典型的中间件技术和产品加以介绍。

1. 事务式中间件(Transactional Middleware)

事务式中间件又称事务处理管理程序(Transaction Processing Monitor)。其主要功能是提供联机事务处理所需要的通信、并发访问控制、事务控制、资源管理、安全管理和其他必要的服务。

事务式中间件由于其可靠性高、性能优越等特点而得到了广泛的应用,是一类比较成熟的中间件,其主要产品包括IBM 的CICS ,BEA 的Tuxedo ,和Transarc 的Encina 等。

2. 过程式中间件(Procedural Middleware)

过程式中间件又称远程过程调用(Remote Procedure Calls, RPCs )中间件。

远程过程调用模型是经典的过程调用思想在网络环境下自然拓广。过程式中间件使得一个主机上的应用可以在网络环境下用过程调用的方式来调用部署在另一个主机上的应用中的过程。新近发展起来的一项技术是XML RPC,它使得在Internet 异构环境下应用能够使用RPC 。

一般说来,过程式中间件有较好的异构支持能力,简单易用,但在易剪裁性和容错方面有一定的局限性。过程式中间件是一项比较经典的技术,其主要产品有Open Software Foundation 的DCE ,Microsoft 的RPC Facility等。

3. 面向消息的中间件(Message-Oriented Middleware)

面向消息的中间件,简称为消息中间件,是一类以消息为载体进行通信的中间件。按其通信模型的不同,消息中间件的通信模型有两类:消息队列和消息传递。消息队列是一种间接通信模型,其通信基于队列来完成。而消息传递是一种直接通信模型,其消息被直接发给感兴趣的实体。近年来,对消息中间件技术有较大影响的是J2EE 规范中的JMS 。

消息中间件在支持多通信规程,可靠性、易用性和容错能力等方面有其特点,比较易于使用。面向消息中间件是一类常用的中间件,其主要产品有IBM 的MQSeries ,Microsoft 的Messaging Queuing,以及Sun 的Java Message Queue 等。

4. 面向对象中间件(Object Oriented Middleware)

面向对象中间件又称分布对象中间件(Distributed Object Middleware),简称对象中间件。分布对象模型是面向对象模型在分布异构环境下的自然拓广。分布对象中间件支持分布对象模型,使得软件开发者可在分布异构环境下面向对象方法和技术来开发应用。OMG 组织是分布对象技术标准化方面的国际组织,它制定出了CORBA 标准等,DCOM 是微软推出的分布对象技术。COM +和.NET 是其进一步的发展与深化。

总的说来,对象中间件是一种标准化较好、功能较强的中间件;它全面支持面向对象模型,具有良好的异构支持能力,可适用于广泛的一类应用。分布对象中间件是一类常用的中间件,其主要产品有,OMG 的CORBA 产品

系列,Microsoft 的COM 系列,Java RMI 等。

5. Web 应用服务器(Web Application Server)

概念上,Web 应用服务器是Web 服务器和应用服务器相结合的产物,它是处于目前主流的三层或多层应用结构的中间的核心层次,直接与应用逻辑关联,对分布应用系统的建造具有举足轻重的影响。应用服务器中间件技术为支持应用服务器的开发而发展起来的软件基础设施,它不仅支持前端客户与后端数据和应用资源的通信与连接,而且还采用面向对象、构件化等先进技术等提供了事务处理、可靠性和易剪裁性等多方面的支持,大大简化网络应用系统的部署与开发。EJB 和J2EE 是目前应用服务器方面的主流标准。

应用服务器由于直接支持三层或多层应用系统的开发而受到广大用户的欢迎,它是目前中间件市场上竞争的热点,其主要产品有,BEA 的Web Logic(遵循J2EE 规范), IBM 的WebSphere 等。

6. Web Services中间件(Web Services Middleware)

为了支持跨边界的企业应用系统的集成,出现了Web Services及其相关的标准。一般说来,Web Services 中间件是指支持UDDI (Universal Description, Discovery, and Integration ),XML (eXtensible Makeup Language), SOAP(Simple Object Access Protocol), WSDL(Web Services Description Language),WSFL(Web Services Flow Language)等各种相关标准的中间件。此类中间件可支持在各种不同类型中间件环境中开发的应用系统在统一的模式下进行灵活的应用集成和互操作。

Web Services 近年来发展起来的新兴技术,有较好的市场发展前景。与之相关的主要工作有:Microsoft 的.NET, Sun 的SunOne ,Oracle 的Oracle9i,Oracle9i, 以及BEA ,HP ,Borland 等对Web Services的支持。

7. 其它

新的应用需求、新的技术创新、新的应用领域促成了新的中间件产品的出现。例如,商务流程自动化的需求推动了工作流中间件的兴起;企业应用集成的需求引发了企业应用集成服务器(EAI 服务器)的出现;动态B2B 集成的需

要又推动了Web 服务技术和产品的快速发展,Web 服务技术的发展又必将推动现有中间件技术的变化和新中间件种类的出现;中间件应用到通信环境,服务于移动电子商务,就出现了移动中间件;而对中间件在开放环境下的灵活性和自适应能力的需求导致了所谓自适应中间件、反射式中间件和基于Agent 的中间件等新型中间件的研究。

3.2. 产品与市场现状

中间件作为基础软件的重要组成,已与操作系统、数据库齐头并进,在世界范围内呈现出迅猛发展的势头,已经形成一个巨大的产业。目前,中间件在国内整个软件行业中应该是发展速度最快的市场之一。中国软件产业经过20年的发展,很多部门的信息化建设都走过了关键业务应用和部门级应用的阶段,现在开始向企业级应用转变。所谓企业级应用,最为人们所重视的就是各类信息资源之间如何关联、整合、协同、互动和按需服务,这些都是中间件能够发挥巨大作用的空间所在。当然,中国软件产业整体上还比较弱,整个社会信息化的程度无论在广度、深度方面都还不够,这些自然也限制了国内软件产业及中间件的市场规模。随着国家信息化建设的不断深入,社会对应用软件,特别是对网络应用起支撑作用的中间件产品的巨大需求是不争的事实,国内中间件的市场才刚刚开始启动,存在巨大的发展机会和空间。

目前,网络应用中间件逐渐在基础中间件、应用中间件、应用框架等三个层面形成激烈的产品竞争和市场竞争格局。从三个方面的产品来分析,国外厂商仍然占主导地位,主流厂商包括IBM ,BEA ,ORACLE ,HP ,Iona 等,而一些新型的中间件公司,如Tibco ,webMethod ,Vitria 也开始携其应用集成中间件或业务流程管理中间件进入中国市场。而国内一些规模较大的软件公司也开始进入此领域,形成了包括中创软件商用中间件、金蝶Apusic 、东方通科技、中关村科技、中和威等在内的一批中间件专业厂商,东软、用友、信雅达等应用集成商也大量投入中间件产品的研发,国产中间件已经形成了比较完整产品体系,例如,中创软件、中和威推出了基于CORBA 标准的通信中间件产品;中创软件、金蝶软件、东方通技等公司分别推出了遵循J2EE 规范的应用服务器产品;中创软件、中科院软件所、东方通科技推出了消息中间件产品;中创软件推出了符合OMG 标准

的企业应用集成套件InforEAI ;此外,还有大量的公司投入到中间件开发平台和构件库的建设中。国产中间件已经广泛成功应用于我国政府、交通、金融、证券、保险、税务、电信、移动、教育、军事等行业或领域的信息化建设,并成为大型应用系统建设不可缺少的一环。

同国外厂商比较,国内中间件厂商的整体实力还存在很大的差距。如果仅仅从产品的功能上看,我们似乎并不比别人缺什么,但围绕中间件产品从研发到成功应用的全周期来看,我们还缺很多东西,暂时也很难对国外产品形成真正的竞争威胁。应该说国内中间件产品的成熟度应该是没有问题的,但要市场普遍接受国产中间件产品,却还有一个相当长的过程。以中创软件Infor 系列中间件为例,我们提供的产品可在各类主流操作系统平台和主流数据库上稳定可靠地运行,并可与通行的各种开发工具紧密融合,产品都具备丰富的系统管理功能,并已经在大量行业中获得了成功应用经验,即使如此,要真正形成具有号召力的中间件品牌,还有艰巨的路需要一步步去走。同国外优秀中间件产品相比,我们还有大量需要借鉴和学习的地方,例如在产品的发展方向把握、持续开发能力、产品化工作、市场运作等方面,我们都还要继续加强,不断完善。当然,国内中间件厂商及其产品也具有非常明显的优势,我们贴近国家信息化的现实需求,已经积累了丰富的领域问题和中间件应用经验,我们的中间件产品可以在实用性和易用性方面更加贴近本地化市场需求,在技术支持和服务方面也具有相当的优势。

3.3. 现状分析

综合产业界的发展情况,我国中间件产业呈现出如下发展特点:

技术多样化:中间件已经成为网络应用系统开发、集成、部署、运行和管理必不可少的工具。由于中间件技术涉及网络应用的各个层面,涵盖从基础通讯、数据访问、业务流程集成到应用展现等众多的环节,因此,中间件技术呈现出多样化的发展特点。

产品平台化:由于传统的中间件技术门槛较高,学习周期较长,已经不能适应信息化建设对中间件的广泛应用需求。为此,中间件产品从解决网络计算中的关键问题开始向一体化平台方向发展,以提高中间件产品的使用便利性,更全面

地满足各种网络应用软件所要求的可靠性、可伸缩性和安全性的需要。

应用普及化:中间件技术已经是成熟的技术。我国大型信息化建设项目采纳中间件已经成为一种自然、例行的举措。中间件的广泛使用,也进一步促进了应用框架技术的丰富和发展,并为建立企业信息化业务基础架构奠定了基础。

4. 发展趋势

中间件技术近年取得了很大的成功,不仅成为产业界开发分布系统的首选,也吸引了学术界的众多研究。随着应用的普及和研究的深入,以及Internet 的发展,如图2所示,目前的中间件技术主要呈现出三方面的趋势:

图2. 中间件发展趋势示意图

首先,中间件越来越多地向传统运行层(操作系统)渗透,提供更强的运行支撑,特别地,分布式操作系统的诸多功能逐步融入中间件,如,在CORBA 和RMI 中,中间件往往以类库的形式被上层应用主动地载入应用运行空间,与之相反,在CCM 和EJB 中,中间件是独立的运行程序,负责装载上层应用并为之提供运行空间。此外,基于服务质量的资源管理机制以及灵活的配置与重配置能力也是目前的中间件研究热点。

其次,应用软件需要的支持机制越来越多地由中间件提供,中间件不再局限于提供适用于大多数应用的支持机制,那些适用于某个领域内大部分应用的支持机制(这些机制往往无法在其它领域使用)也开始得到重视。如,在最新的CORBA

规范中,增加了对实时应用和嵌入式应用的支持,而特定于无线应用的移动中间件、支持网格计算的中间件也是目前的研究热点。

其三,中间件也开始考虑对高层设计和应用部署等开发工作的支持,如,CORBA 和RMI 提供了支持基于构件的软件开发的CCM 和EJB 构件模型,J2EE 提出了包括构件开发、构件组装、应用部署等在内的基于构件的软件开发过程模型,OMG 提出的模型驱动体系(Model-Driven Architecture)则考虑如何利用UML 更有效地开发基于中间件的应用系统。对于目前的AOP (Aspect Oriented Programming ),中间件由于其封装的共性特征及其动态配置能力,成为支持侧面动态编织的主流支撑平台。

5. 思考与探讨

5.1. 关于中间件发展驱动力的思考

1) 从软件形态看中间件的发展

软件是客观世界中问题空间与解空间的具体描述,其基本模型为实体元素以及这些元素之间的连接和交互。考察软件基本模型的发展,汇编语言(机器语言)的基本单元是指令,指令的序列构成程序,其控制机制主要是顺序和转移;高级语言则通过顺序、循环和条件等三种基本控制结构来控制高级语句,而函数(过程)等程序元素增大了实体元素的粒度;近20年来,面向对象程序设计语言的诞生并逐步流行,为人们提供了一种以对象为基本计算单元,以消息传递为基本交互手段的软件模型,该模型以拟人化的观点来看待客观世界(客观世界由一系列对象构成,这些对象间的交互就形成了客观世界的活动),符合人们的思维模式和现实世界的结构;对软件复用的关注,又使得人们试图寻找比对象粒度更大、更易于复用的基本单元,因而面向构件的计算模型被视为新一代的软件模型。

网络的出现与普及,使得编程语言提供的基本通信机制无法支持软件模块之间的远程交互,由此导致了中间件的产生。此外,软件自身的日益复杂导致软件模块之间的交互也变得复杂,为此,中间件不得不提供越来越多的

功能以屏蔽交互的复杂度,如,异步通信、组通信、并发、安全、事务等复杂功能成为中间件必备的高级特征,而Web Services更是考虑到了交互之间的时序约束以及多个模块交互之间的全局约束。因此,从软件形态的角度看,中间件主要解决软件模块之间的交互问题。

2) 从软件本质看中间件的发展

在整个信息技术体系中,微电子是基础,计算机和通信设施是载体,软件则是核心。如何更高效地发挥硬件资源所提供的计算能力,是软件技术发展的主要驱动因素之一。以操作系统为例,随着计算机硬件的发展,单机操作系统从最初的引导程序,发展到管理诸多硬件资源的管理程序,进而产生发挥CPU 与外设作用的多道程序,直至今日追求软硬件高效利用的资源管理系统。

随着通信设施的发展,如何高效、经济地发挥通过网络互联、种类繁杂、数量众多的硬件资源的计算能力,导致了中间件的产生。除了经典的远程通信问题,越来越多的与硬件相关的问题及其解决方案也开始在中间件中得以体现,如,实时中间件(realtime middleware )重点考虑现实世界严格的时间约束问题,嵌入式中间件(embedded middleware )着重解决嵌入式设备计算能力较弱、存储空间较小、网络带宽有限、电源供应不足等问题,而移动计算中间件(mobile middleware)则提供位置敏感、断连操作等支持。因此,从软件本质的角度看,中间件也可视为“网络操作系统”。

3) 从软件开发看中间件的发展

软件开发是典型的知识密集型活动,复杂度高、开发周期长、可靠性难以保证。尽可能多地凝练共性并复用,是提高软件开发效率和质量的主要途径。从共性凝练的角度看,操作系统将管理硬件资源、控制程序运行等直接作用于裸机的共性问题提取出来,简化应用对计算机的管理和使用;而中间件则将网络环境下应用开发经常遇见的共性问题,如通信、安全、事务等,以及特定于某些领域的问题,如电信中的事件过滤与通告、音视频传输、运输领域的空中交通管制、制造领域的计算机辅助设计、生命科学领域的基因表达等抽取出来,大大简化了网络应用的开发和维护。

随着可复用共性的增多,软件开发也逐步从手工作坊式向软件工业化生产演变。典型的工业化软件生产技术包括终端用户编程、模型驱动开发和随需即取等。终端用户编程允许用户在无需掌握复杂的编程语言和过多的技术细节的条件下,可以快速开发出满足需求的软件。在模型驱动开发中,用户只需关注高层建模,复用包含复杂技术细节的低层模型,即可自动生成代码。随需即取则根据用户需求,由服务提供商快速正确地构造出相应服务。在这些工业化软件生产技术中,中间件都扮演了极为重要的“基础设施”的角色。因此,从软件开发的角度看,中间件是一种高效实用的共性凝练与复用手段。

4) 从软件市场看中间件的发展

市场竞争、技术升级以及保护投资等因素往往导致软硬件的异构,而市场合作以及系统升级又要求解决异构问题。回顾软件技术的发展,操作系统从某种程度而言,屏蔽了计算机硬件的异构性;为了屏蔽操作系统和编程语言的异构性,产生了支撑软件和中间件。中间件的发展和多样化导致了中间件的异构性,由此产生了Web Services 。另一方面,从产品为中心转向服务为中心的“软件即服务”以及“业务按需即取”等新型市场模式,均依赖于中间件技术的支撑。

从软件产业的角度,采用中间件技术和产品可有效缩短应用解决方案进入市场的时间,提高解决方案的竞争力,其大量的开发与使用可有效提高软件企业的产品质量和生产效率。从技术的角度而言,中间件技术和产品包含了对Internet 平台的抽象、开放应用模式和结构的理解、基础的程序设计模型、新型软件方法学等多项软件核心技术,是Internet 环境下众多软件新方法和新技术的综合载体。从产品角度而言,中间件是处在经典系统软件和应用系统之间的一组软件,它们不仅可在多种主流平台上运行,对现行的主流软件技术和产品具有良好的兼容性,还能够适应Internet 多样性特征、开放性应用的多样性特征和多种用户的个性化需求。因此,从软件市场的角度看,中间件使得各种软硬件技术与产品能够适应各种市场模式或策略。

5.2. 关于中间件未来趋势的探讨

从前面对中间件研究现状与发展趋势的介绍以及驱动力的探讨可见,Internet 平台和环境的出现及其发展,对中间件近十多年的研究与实践起到了决定性的影响。无疑,Internet 在未来5-15年内将得到进一步的普及和发展,因此,本文将以Internet 为背景探讨中间件的未来趋势。

Internet 作为不同于传统计算机的硬件平台,具有如下基本特征:无统一控制的“真”分布性;节点的高度自治性;节点链接的开放性和动态性;人、设备和软件的多重异构性;实体行为的不可预测性;运行环境的潜在不安全性;使用方式的个性化和灵活性;网络连接环境的多样性。由于软件系统所基于的计算机硬件平台正经历从集中封闭的计算平台向开放的Internet 平台的转变,软件系统作为计算机系统的灵魂,随着其运行环境的演变也经历了一系列的变革。目前,面向网络的计算环境正由Client/Server发展为Client/Cluster,并正朝着Client/Network和Client/Virtual Environment 的方向发展。那么,未来的基于Internet 平台的软件系统又将会呈现出一个什么形态呢?

从技术的角度看,以软件构件等技术支持的软件实体将以开放、自主的方式存在于Internet 的各个节点之上,任何一个软件实体可在开放的环境下通过某种方式加以发布,并以各种协同方式与其它软件实体进行跨网络的互连、互通、协作和联盟,从而形成一种与当前的信息Web 类似的Software Web。Software Web不再仅仅是信息的提供者,而是各种服务(功能)的提供者。由于网络环境的开放与动态性,以及用户使用方式的个性化要求,从而决定了这样一种Software Web 并不能够像传统软件那样一蹴而就,它应能感知外部网络环境的动态变化,并随着这种变化按照功能指标、性能指标和可信性指标等进行静态的调整和动态的演化,以使系统具有尽可能高的用户满意度。本文将这样一种新的软件形态称为网构软件(Internetware )。

网构软件是在Internet 开放、动态和多变环境下软件系统基本形态的一种抽象,它既是传统软件结构的自然延伸,又具有区别于在集中封闭环境下发展起来的传统软件形态的独有的基本特征:自主性、协同性、反应性、演化性、多态性。

综上所述,Internet 及其上应用的快速发展与普及,使计算机软件所面临的环境开始从静态封闭逐步走向开放、动态和多变。软件系统为了适应这样一种发展趋势,将会逐步呈现出柔性、多目标、连续反应式的网构软件系统的形态。这种新型的软件形态将使系统软件和支撑平台的研究重点开始从操作系统等转向新型中间件平台,而网构软件的理论、方法和技术的突破必将导致在建立新型中间件平台创新技术方面的突破。

6. 总结

中间件技术是构造分布式应用和系统集成的关键,本文讨论了中间件技术的国内外研究现状、关键技术及发展趋势。同时,作为该系列报告中一篇关于软件中间件的文章,本文还介绍了中间件的基本概念、主要特征、历史回顾等基础知识。最后,本文从软件形态、软件本质、软件开发、软件市场等四个角度考察了中间件技术发展的驱动力,并以Internet 为背景,探讨了未来5-15年中间件的发展趋势。


相关文章

  • 2016年医药农药中间体行业 分析研究报告
  • 2016年医药农药中间体行业 分析研究报告 2016年10月 一.行业监管体制.主要政策及法律法规 1.监管体制 2.行业主要政策 3.行业主要法律法规 二.行业发展概况 医药行业分析报告 1.精细化工行业概述 2.中间体行业概述 3.产业 ...查看


  • 风力发电技术与风电场工程之风力发电机组整体结构概述
  • 第3章 风力发电机组整体结构 3.1概述 并网型风力发电机组的功能是将风轮获取的空气动能转换成机械能,再 将机械能转换成电能,输送到电网中.对风力发电机组的基本要求是能在风电场所处的气候和环境条件下长期安全运行,以较低的成本获取最大的年发电 ...查看


  • [物联网技术基础]教学大纲
  • 北京华嘉物联网国际学院 课 程 教 学 大 纲 课 程 名 称:适 用 专 业:课 程 类 别: 物联网技术基础 2013级物联网开发专业 专业基础课 <物联网基础技术> 课程教学大纲 一.课程性质 <物联网基础技术> ...查看


  • 全部竣工文件编制范本
  • 第一卷 综合文件 第一册 竣(交)工验收文件 第一分册 竣工验收文件 一. 封面(见附件8) 二. 卷内文件目录(见附件12) 三. 公路工程竣工验收鉴定书(见附件13) 附件:①竣工验收委员会名单(见附件14):②竣工验收代表名单(见附件 ...查看


  • 对羟基苯甲醛的合成方法概述
  • !""#年第$%卷第$期 !" !!!!!!" !" 化工生产与技术&'()*+,-./012+3*04,415(+'40-067 ・・;8 综述 !!!!!!" 对羟基苯 ...查看


  • 反应堆材料辐照损伤概述
  • 反应堆材料辐照损伤概述 [摘要]随着能源问题日益严峻,发展核电成为人类缓解能源紧缺问题的重要手段之一.当今核电站反应堆的技术已经比较成熟,但仍存在很多难以解决的技术问题.反应堆材料的辐照损伤问题直接关系到反应堆的安全性和经济性.本文对反应堆 ...查看


  • 物联网发展概述
  • 物联网发展概述 关键词: 物联网 概念 原理 智慧地球 传感网 感知中国 正文: 物联网现在已经成了时代的宠儿,这种这样物联网的字眼充斥着我们的眼球,在任意在网站输入物联网都会出现很多搜索结果,其中有各种各样的物联网网站,有各种的物联网会议 ...查看


  • 网络安全技术及应用
  • 基本资料 网络安全技术及应用 作者: 龙冬阳编著 出版社: 出版年: 2006年2月 页数: 定价: 35.5 装帧: ISAN: 内容简介 21世纪计算机科学与技术系列教材(本科):本书主要介绍网络安全技术及其应用,内容包括应用密码技术. ...查看


  • 浅析缓存平台技术在业务支撑系统的应用
  • [摘要] 本文阐述了业务发展带来的业务支撑系统的瓶颈,分析了缓存平台技术,从而提出缓存平台技术在业务支撑系统的应用. [关键词] 缓存平台 业务支撑系统 API 应用程序接口(Application Program Interface) 全 ...查看


热门内容