什么是中间件
(仲季 2001年07月20日 14:36)
中间件(middleware)是基础软件的一大类,属于可复用软件的范畴。顾名思义,中间件处
于操作系统软件与用户的应用软件的中间。中间件在操作系统、网络和数据库之上,应用软
件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、
高效地开发和集成复杂的应用软件。 在众多关于中间件的定义中,比较普遍被接受的是IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。 IDC对中间件的定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还
要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功
能。 最早具有中间件技术思想及功能的软件是IBM的CICS,但由于CICS不是分布式环境的产物,
因此人们一般把Tuxedo作为第一个严格意义上的中间件产品。Tuxedo是1984年在当时属于
AT&&T的贝尔实验室开发完成的,但由于分布式处理当时并没有在商业应用上获得像今天
一样的成功,Tuxedo在很长一段时期里只是实验室产品,后来被Novell收购,在经过
Novell并不成功的商业推广之后,1995年被现在的BEA公司收购。尽管中间件的概念很早
就已经产生,但中间件技术的广泛运用却是在最近10年之中。BEA公司1995年成立后收购
Tuxedo才成为一个真正的中间件厂商,IBM的中间件MQSeries也是90年代的产品,其它许
多中间件产品也都是最近几年才成熟起来。国内在中间件领域的起步阶段正是整个世界范
围内中间件的初创时期。东方通科技早在1992年就开始中间件的研究与开发,1993年推出
第一个产品TongLINK/Q。可以说,在中间件领域国内的起步时间并不比国外晚多少。 2.中间件的演变过程
(仲季 2001年07月20日 15:48)
随着计算机技术的发展,IT厂商出于商业和技术利益的考虑,各自产品之间形成了差异,技
术在不断进步,但差异却并没有因此减少。计算机用户出于历史原因和降低风险的考虑,必
然也无法避免多厂商产品并存的局面。 于是,如何屏蔽不同厂商产品之间的差异,如何减少应用软件开发与工作的复杂性,就成为
技术不断进步之后,人们不能不面对的现实问题。 显然,由一个厂商去统一众多产品之间的差异是不可能的,而单独由计算机用户在自己的应
用软件中去弥补其中的大片空档,由于技术深度和技术广度的要求,必然也是勉为其难。于
是,中间件应运而生。中间件试图通过屏蔽各种复杂的技术细节使技术问题简单化。 在中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,这些都是计算
机最底层的东西,越底层越复杂,开发者不得不面临许多很棘手的问题,如操作系统的多样
性,繁杂的网络程序设计、管理,复杂多变的网络环境,数据分散处理带来的不一致性问题
、性能和效率、安全,等等。这些与用户的业务没有直接关系,但又必须解决,耗费了大量
有限的时间和精力。于是,有人提出能不能将应用软件所要面临的共性问题进行提炼、抽象
,在操作系统之上再形成一个可复用的部分,供成千上万的应用软件重复使用。这一技术思
想最终构成了中间件这类的软件。 3.中间件解决什么问题
世界著名的咨询机构Standish Group在一份研究报告中归纳了中间件的十大优越性: 
• 缩短应用的开发周期 
• 节约应用的开发成本 
• 减少系统初期的建设成本 
• 降低应用开发的失败率 
• 保护已有的投资 
• 简化应用集成 
• 减少维护费用 
• 提高应用的开发质量 
• 保证技术进步的连续性 
• 增强应用的生命力 
具体地说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开
发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统
软件上的移植而重复工作,从而大大减少了技术上的负担。 中间件带给应用系统的,不只是开发的简便、开发周期的缩短,也减少了系统的维护、运行
和管理的工作量,还减少了计算机总体费用的投入。Standish的调查报告显示,由于采用了
中间件技术,应用系统的总建设费用可以减少50%左右。在网络经济大发展、电子商务大发
展的今天,从中间件获得利益的不只是IT厂商,IT用户同样是赢家,并且是更有把握的赢家
。 其次,中间件作为新层次的基础软件,其重要作用是将不同时期、在不同操作系统上开发应
用软件集成起来,彼此像一个天衣无缝的整体协调工作,这是操作系统、数据库管理系统本
身做不了的。中间件的这一作用,使得在技术不断发展之后,我们以往在应用软件上的劳动
成果仍然物有所用,节约了大量的人力、财力投入。

解决方案 »

  1.   

    中间件"作为无限   (一)  在这个充满变化的知识经济时代,每天接触新名词已经成为一件常事,往往在我们还没有完全明白一个词的意义之前,它就已经变得陈旧了。"中间件"早已不是一个新词,但却比新词更吸引人们的注意力,在很多词语按秒计算着从人们的眼前飘过的时候,"中间件"却固执地留在了人们的脑海里,并成为一项事业,让无数人为之追求。  在不断发展的网络环境中,无论是硬件平台还是软件平台,都不可能统一。大型应用软件通常要求在软硬件各不相同的分布式网络上运行。为了更好地开发和应用能够在异构平台上运行的应用软件,迫切需要一种基于标准的、独立于计算机硬件以及操作系统的开发和运行环境,中间件技术就应运而生了。  中国科学院软件研究所研究员仲萃豪认为,中间件是处于操作系统和应用程序之间的软件(也有人认为它应该属于操作系统中的一部分)。人们在使用中间件时,往往是把一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必须要有一个通信中间件,因此可以比较形象地把中间件可以定义为:平台+通信。这个定义也限定了只有用于分布式系统中,才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来。  据有关专家介绍,中间件现已与操作系统和数据库并驾齐驱,成为基础软件领域的三驾马车。  随着Internet的迅速发展,网络异构问题(不同硬件平台、不同的操作系统、不同数据库系统)日益突出。为了解决这一问题,中间件产品的需求越来越多。据IDG预计,2002年,全球中间件市场容量将超过70亿美元,中国市场也将达到9亿美元。随着计算机网络发展的一日千里,中间件技术的发展,将有机地结合操作系统、系统集成以及网络技术的发展,成为推动软件技术革命的中坚力量。  目前,发达国家凭借"高端软件、高端价格"的策略,垄断了国际基础软件市场。在操作系统、数据库方面,我国无法与之抗衡。而近年来发展起来的中间件市场却还是没有寡头群雄并起的局面,中国与发达国家基本上处于同一条起跑线上,这是我国切入基础软件领域的一个契机,也是最有可能实现突破的软件市场。目前,以中创软件为"龙头",包括中软、东方通、创智、托普等一批具有实力的中间件软件企业正迅速崛起,使我国中间件软件产业开始迈入规模化发展阶段。  (二)  随着市场竞争的加剧,以及电子商务发展的需要,企业经常要进行业务流程的调整,越来越多的企业开始关注系统的伸缩性和可扩展性。而中间件可以支持跨平台操作,为不同操作系统上的应用软件集成提供方便,从而满足企业内部对系统伸缩性和可扩展性的要求。由于以上因素的作用,中间件已经成为企业应用的"新宠",在银行、电信、金融等大规模关键事务领域中的整合各种异构平台、保证交易完整性等方面,表现出了超强的能力。金融行业是最早采用中间件产品的领域,中间件在开发和优化银行的柜面系统中发挥着巨大的作用。例如,作为我国最早全国电子信息百强企业的中创软件,准确把握金融业发展趋势,融合多年来在金融业的行业经验与中间件技术,针对银行中间业务的多样性和不确定性,为中间业务定制了一套可扩展的开发运行平台--中创软件金融中间业务平台IBEX。该平台既考虑了中间业务的共性,又兼顾了其特性,从而成为银行业发展中间业务的强力支撑。  同样,无论是ERP系统中模块之间的互通、互操作,还是应用构件的搭建与跨环境的部署和管理,都需要中间件的支撑。从技术上看,中间件更有效的保证ERP系统的可靠性、可扩展性、可管理性、数据一致性和应用安全性等。在电子商务交换平台和电子商务基础平台中,也不能没有中间件的存在。可以说,没有中间件就不能支撑今天的网络应用。  在中间件诞生之前,企业多采用传统客户机/服务器的"胖客户机"式二层数据处理结构,两层结构虽然给人们带来了相当的灵活性,但也逐渐暴露出其客户端和服务器端负担过重的现象,并且其系统拓展性也较差。于是,三层结构应运而生了。所谓三层结构,就是在原有的两层结构(客户端和服务器端)之间,增加了一组服务,这组服务(应用服务器)包括事务处理逻辑应用服务和数据库查询代理等。随着这组服务的增加,两层结构向三层结构转变后,客户端和服务器端的负载就相应减轻了,跨平台、传输不可靠等问题也得到了解决。增加的这组服务,就是中间件。中间件在三层结构中主要充当中间层,完成数据安全、完整地传输,通过负载均衡来调节系统的工作效率,从而弥补两层结构的不足。