您的位置:首页 > 理论基础 > 计算机网络

什么是中间件

2010-08-24 12:03 330 查看

什么才是中间件?

从Tuxedo、应用服务器,到EAI、构件、SOA,究竟什么才是中间件? 通过看一些对中间件概念的解释,大致总结了一下:
1. 定义
IDC表述的:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
IDC对中间件的定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。
我国学术界一般认可的定义是“中间件是指网络环境下处于操作系统、数据库等系统软件和应用软件之间的一种起连接作用的分布式软件,主要解决异构网络环境下分布式应用软件的互连与互操作问题,提供标准接口、协议,屏蔽实现细节,提高应用系统易移植性”(北京大学梅宏)。
“中间”的含义包含两个:1)承上启下,在物理层次上是介于中间的2)起着中介的作用,互联、互操作、屏蔽异构、容许应用件互操作、避免重复开发
比喻:其实就像代理一样,把我们自己的东西给中间件,别人就可以通过中间件看你自己的东西。
像Tomcat等服务器,公司都喜欢叫中间件。像房产中介,买房子的,只需把自己的户型、大致能接受的价格、大致的小区的物理范围一说,卖房子的只需告诉中介自己的房子多大,物理位置、想要卖多少钱,
而中间的沟通是由中介来做的,而且过户的繁复手续也由中介来处理,买房子的不会管太多,而且卖房子的什么人都有,怎么卖法,什么样的人都有,那是中介的事情。
 
2. 中间件的产生的动力
中间件出现的驱动力主要来自软件研发过程碰到的种种问题。从软件出现最早是用于科学计算,然后是计算机辅助设计、辅助制造等等工业应用。在企业管理领域大规模应用后,业务需求不断的变化、系统不断增加、流程更复杂、系统越来越不堪重负。
1)屏蔽异构型
因为市场的竞争、技术的升级以及保护投资等,造成异构性。
异构性表现在以下几个方面
1.       硬件(CPU和指令集、硬件结构、驱动程序等)
2.       操作系统(不同操作系统的API和开发环境)
3.       数据库(不同的存储和访问格式)
4.       网络的异构(网络协议不同,网络的容量不同)等等
长期以来,高级语言依赖于特定的编译器和操作系统API来编程,而他们是不兼容的,因此软件必须依赖于开发和运行的环境。
2)需要实现互操作性
正是因为异构性,使得不同软件在不同的平台之间无法移植或者移植困难,甚至还因为网络协议和通信机制的不同,这些系统之间不能有效的互相集成
3)共性凝练和复用
   软件应用领域越来越多,相同领域的应用系统之间许多基础功能和结构是有相似性的,每次开发系统都从零开始绝对不是一种好的方法,也是对质量和效率的很大的伤害,现在高速的发展节奏,也不能容许投入重复开发劳动了。
计算机的很多发展都来源于“应用”的需求,比如我们需要存储信息,就出现了磁盘管理系统,需要显示,就出现了显示驱动程序,需要远程交流,就出现了网络及其协议,还有很多共性的东西被归为了操作系统或者称为一些独立的“平台系统”如数据库。但是我们从业务领域中抽取出来的广泛应用的共性功能,毕竟还限于一类业务,不具有  被抽取出来的功能模块毕竟还局限于一类业务,不具有“操作系统”和“平台系统”那样的普遍应用能力。而且介于业务应用系统和底层平台系统之间的软件实现,起着承上启下的作用于是“中间件”这个名词出现了。它可以避免重复开发投入,并可以使这些功能模块更专业、更稳定、更高效可靠。
     另一方面,通过中间件通过提供简单、一致、集成的开发和运行环境,简化分布式系统的设计、编程和管理,这也是中间件发展的重要驱动力
参考文献
奉继承博士:浅析深究什么是中间件,http://www.enet.com.cn/article/2009/1029/A20091029563730_2.shtml
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息