曾几何时,中间件成为人们关注的焦点。去年,中间件市场更是火爆异常。有人把中间件、操作系统、数据库比作软件市场的“三剑客”。更有人认为中间件是国内软件企业反击“外族”统治的救命稻草。那么,中间件究竟能在国内市场掀起什么样的风浪呢?在本期和下一期的《方案应用》栏目,我们将为大家介绍有关中间件方面的知识,同时将为大家展示国内外厂商的应用案例。
李京,中国科学院软件研究所研究员,博士生导师,中国科技大学计算机系博士生导师。1993年于中国科技大学获计算机软件博士学位。1998年入选中国科学院“百人计划”。李京曾获包括中科院科技进步一等奖在内的各种奖励,共在国内外高水平的学术刊物和会议上发表论文60余篇。目前李京承担了两项有关中间件和电子商务支撑平台的国家十五863的重点项目。
一、缘何受宠
有关调查表明,到2002年,全球中间件市场将超过70亿美元。据赛迪顾问发布的《2000-2001年中国软件市场研究年度总报告》称,到2003年,国内中间件软件的销售总额将达27亿元人民币,年均增长率高达43.2%。而业内人士认为,未来基于Internet的电子商务业务将有79%建筑在中间件的基础之上。中间件为什么有如此巨大的魔力?让我们走近中间件,一睹它的风采。
在中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发。这些都是计算机最底层的东西,底层越复杂,开发者不得不面临许多很棘手的问题,如操作系统的多样性,繁杂的网络程序设计、管理,复杂多变的网络环境,数据分散处理带来的不一致性问题,性能、效率、安全等等。这些与用户的业务没有直接关系,但又必须解决,耗费了大量的时间和精力。于是,有人提出能不能将应用软件所要面临的共性问题进行提炼、抽象,在操作系统之上再形成一个可复用的部分,供成千上万的应用软件重复使用。这一技术思想最终构成了中间件这类的软件。
二、如何认识
从计算机软件系统的结构层次来讲,中间件是位于平台(硬件和操作系统)和应用之间的一组通用服务。作为应用支撑软件,中间件为分布应用以及应用软件开发提供了跨网络、跨平台(硬件和操作系统)的透明性和互操作,构成应用的基础结构,从而可以集成、连接异构的应用和系统,共享重要的应用服务和资源,实现应用的快速开发和部署。
但什么是中间件?到目前为止还没有一个权威的定义。总的来说,中间件是将应用的业务逻辑和应用的基础结构分离,使得应用的开发者可以仅关注应用的业务任务,而不必关注应用的基础结构。一般说来,中间件都具有以下的基本特征:
透明性:中间件使我们可以透明地进行应用的开发、迁移、部署等工作。
高可用性:中间件具有极强的故障处理和恢复能力。
高性能和伸缩性:中间件能支持不同规模的应用,保证构筑在其上的应用在任何情况下均具有良好的性能。
互操作性:很多中间件建立在标准的协议、数据格式和接口规范之上,具有很好的互操作性,方便以后应用扩展和升级。
可移植性:中间件提供了标准的编程接口,屏蔽了网络和平台的差异性,极易从一个平台移植到另一个平台上,保护了企业在应用软件开发和维护中的重大投资。
三、怎样分类
为适应不同层次的需求,我们需要有不同类型的中间件。由于中间件所包括的范围十分广泛,在不同的角度或不同的层次上,对中间件的分类也会有所不同。基于各种中间件的实现目的和机制的不同,我们将中间件主要分为以下几类:
远程过程调用:通过远程过程调用,一个应用程序可以象调用本地程序一样调用位于远端另一台计算机上的程序,并且从效果上看,和执行本地调用相同,这大大简化了两层客户/服务器软件的开发。
面向消息的中间件:面向消息的中间件(MOM)屏蔽掉各种平台及网络协议之间的差异,利用高效可靠的消息传递机制进行数据通信,并基于数据通信来进行分布式系统的集成。此种系统往往耦合度低,集成和部署非常灵活。目前市场上有许多流行的MOM中间件产品,如IBM的MQSeries。
对象请求代理:对象请求代理解决分布式环境中的各标准构件之间透明的互相调用。目前,两个最主要的组件标准是OMG的Corba和Microsoft的COM/DCOM。组件标准使应用开发向组合软件的方向发展。
事务处理监控器:事务处理监控器提供在分布、异构环境下大规模事务处理的可靠运行平台,保证事务完整性和数据完整性。它可以被看作是事务处理应用程序的“操作系统”。典型的事务处理中间件是BEA公司的Tuxedo。
数据访问中间件:数据访问中间件负责连接异构的物理数据源(数据库、文件系统等)、服务请求以及模式转换等,为各种物理数据源提供相应的驱动器,从而对异构信息源的进行高效、一致和全局访问。典型的数据访问中间件有Intersolv公司SequeLink和中科院软件所的DataAccess。
工作流中间件:工作流服务中间件旨在实现企业工作流的自动化,特别是业务处理中各项活动的合作、控制和通讯的自动化。
应用服务器:应用服务器为建立分布式的可伸缩的Internet/Intranet 应用程序提供了一个基于组件的理想的应用程序框架,它将各种基本的中间件(如Web服务、事务服务、消息服务等)集成为一个统一的平台。典型的应用服务器中间件有IBM的WebSphere和BEA的WebLogic。
Web服务: Web服务建立在基于XML的SOAP /UDDI/WSDL等协议之上,通过对应用程序的模块化、自适应的描述,并通过Web发布,其它应用程序可以通过 Web 对其进行定位、调用,从而动态进行应用的组合,可以动态构成极其复杂和灵活的应用系统。Web服务为真正跨平台的应用间的互操作提供基础。目前微软和IBM公司均在大力推动有关Web服务的研究和成熟,它是目前中间件研究和开发的热点。
|