2010-01-22 08:49:09 来源:万方数据
1 引言
随着计算机技术和互联网技术的深入发展,企业的信息系统和以往相比也己发生了很大的变化。企业级的应用已不再满足于单机系统和简单的客户明及务器系统,而是向着三层和多层体系结构的分布式环境不断发展、迈进。所谓三层结构,就是在原有的“两层结构”(客户端和服务器端)之间增加了一层组件,这层组件包括事务处理逻辑应用服务、数据库查询代理产数据库等。随着这层组件的增加,两层结构向三层结构转变后,客户端和服务器端的负载就相应减轻了,跨平台、传输不可靠等问题也得到了解决。增加的这层组件就是我们所说的“中间件”。中间件在三层结构中主要充当中间层,完成数据安全和完整传输,通过负载均衡来调节系统的工作效率,从而弥补两层结构的不足。在分布式环境中,无论硬件平台还是软件平台都不可能做到统一。大规模的应用软件通常要求在软、硬件各不相同的分布式网络上运行。为了更好地开发和应用能够运行在这种异构平台上的软件,迫切需要一种基于标准的、独立于计算机硬件及操作系统的开发和运行环境,中间件技术就应运而生了。
2 中间件技术的产生及发展
在中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,这些都是计算机最底层的东西。众所周知,越底层的东西就越复杂,开发者不得不面临许多很棘手的问题,如操作系统的多样性,繁杂的网络程序设计、管理,复杂多变的网络环境,数据分散处理带来的不一致性问题、性能和效率、安全,等等。这些与用户的业务没有直接关系,但又必须解决,因此就耗费了大量有限的时间和精力来解决这类问题。
随着计算机技术的不断发展,众多IT厂商出于商业和技术利益的考虑,各自产品之间形成了差异,由于技术在不断进步,差异却并没有因此减少。由于计算机用户又出于历史原因和降低风险的考虑,必然也无法避免众多厂商产品并存的局面。
于是 ,如何屏蔽众多不同厂商产品之间的差异,减少应用软件开发与工作的复杂性,就成为技术不断发展进步之后,人们所不能不面对的现实问题。显然,由一个厂商去统一众多产品之间的差异是不可能的,而单独由计算机用户在自己的应用软件中去弥补其中的大片空档,由于技术深度和技术广度的要求,必然也是勉为其难。于是,人们提出了能不能将应用软件所要面临的共性问题进行提炼、抽象,在操作系统之上再形成一个可复用的部分,供成千上万的应用软件重复使用,并试图通过屏蔽各种复杂的技术细节使技术问题简单化,因此,基于这一技术思想最终构成了中间件这类的软件。
3 中间件的定义
中间件(MIDDLEWARE)是基础软件的一大类、属于可复用软件的范畴,它处于操作系统软件与用户的应用软件的中间,即在操作系统、网络和数据库之上,应用软件的下层,总的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件;另外,它能够使应用软件相对独立于计算机硬件和操作系统平台,为当今的大型分布式应用搭起一个标准的平台,把大型企业分散的系统技术组合在一起,从而实现大型企业应用软件系统的集成。
从程序接口和协议方面来考虑,那么中间件又具有标准的程序接口和协议,可以实现不同硬件和操作系统平台上的数据共享和应用互操作。在具体实现上,中间件是一个用API定义的分布式软件管理框架,具有强大的通信能力和良好的可扩展性。
为了直观地把握中间件的基本概念,可以将网络和系统软件之上、应用系统之下的“广襄疆域”都视做中间件领域。中间件被概括地理解为起承上启下作用的应用支撑平台。应用的多态性、系统软件的复杂性,都需要依赖各种类型的中间件在其中运筹、调和。中间件的核心作用是通过管理计算资源和网络通信,为各类分布式应用软件共享资源提供支撑。广义地看,中间件的总体作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件。
4 中间件的功能及优越性的体现
由于中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担,并带给应用系统的,不仅仅只是开发的简便、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入等。在Standish的一份调查报告中显示,由于采用了中间件技术,应用系统的总建设费用可以减少50%左右。在网络经济大发展、电子商务大发展的今天,从中间件获得利益的不只是IT厂商,IT用户同样也是底家,并且是更有把握的赢家。
另外,中间件作为新层次的基础软件,其重要作用是将不同时期、在不同操作系统上开发应用软件集成起来,彼此像一个天衣无缝的整体协调工作,这是操作系统、数据库管理系统本身做不了的。中间件的这一作用,使得在技术不断发展之后,我们以往在应用软件上的劳动成果仍然物有所用,节约了大量的人力、财力投入。那么中间件的功能及优越性的集中体现以下几个方面:
(1)、减少系统初期的建设成本
(2)、降低应用开发的失败率
(3)、保护己有的投资
(4)、简化应用集成
(5)、减少维护费用
(6)、提高应用的开发质量
(7)、保证技术进步的连续性
(8)、增强应用的生命力
(9)、负责客户机和服务器间的联接和通信;
(10)、提供客户机与应用层的高效率通讯机制;
(11)、提供应用层不同服务之间的互操作机制;
(12)、提供应用层与数据库之间的联接和控制机制;
(13)、提供一个三层结构应用开发和运行的平台;
(14)、提供一个应用开发框架,支持模块化的应用开发,缩短应用的开发周期,节约应用的开发成本;
(15)、屏蔽硬件、操作系统、网络和数据库;
(16)、提供交易管理机制,保证交易的一致性;
(17)、提供应用的负载均衡和高可用性;
(18)、提供应用的安全机制与管理功能。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。
