中间件
(Middleware)
定义:
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或 OS 环境。
中间件特点:
满足大量应用的需要 ;
运行于多种硬件和OS平台 ;
支持分布式计算,提供跨网络、硬件和OS平台的透明性的应用或服务的交互功能 ;
支持标准的协议 ;
支持标准的接口。
中间件可以应用于以下情形,如连接公司 LAN和早期系统、交换两个邮件系统间的信息、支持 web 客户机与数据库服务器交换信息等。通用中间件类型包括:
·企业服务总线(ESB : Enterprise Service Bus):ESB 是一种开放的、基于标准的分布式同步或异步信息传递中间件。通过 XML、Web 服务接口以及标准化基于规则的路由选择文档等支持,ESB 为企业应用程序提供安全互用性。
·事务处理(TP:Transaction Processing)监控器:为发生在对象间的事务处理提供监控功能,以确保操作成功实现。
·分布式计算环境(DCE:Distributed Computing Environment):指创建运行在不同平台上的分布式应用程序所需的一组技术服务。
·远程过程调用(RPC:Remote Procedure Call):指客户机向服务器发送关于运行某程序的请求时所需的标准。
·对象请求代理(ORB:Object Request Broker):为用户提供与其他分布式网络环境中对象通信的接口。
·数据库访问中间件(Database Access Middleware):支持用户访问各种操作系统或应用程序中的数据库。SQL 是该类中间件的其中一种。
·信息传递(Message Passing):电子邮件系统是该类中间件的其中一种。
·基于 XML 的中间件(XML-Based Middleware):XML 允许开发人员为实现在 Internet 中交换结构化信息而创建文档。
中间件发展到目前的应用服务器是一种基于Internet的发展需求。我们可以将应用服务器简单理解为对已有中间件技术的更高层次的封装。但这二者到底孰先孰后,孰优孰劣,之间的关系到底如何?
中间件的重要性
在软件开发的过程中,人们越来越意识到软件重用的重要性。异构的系统、不同的实现方案使软件的重用变得复杂。在中间件产生以前,应用软件不得不直接面对非常底层的东西。不同的硬件体系、不同的操作系统、不同的网络协议实现和不同的数据库等等,这些使得应用程序复杂多变。面对易变的东西,软件设计师们已经习惯于通过添加中间层的方式来隔离变化。把应用软件所要面临的共性问题进行提炼、抽象,在操作系统之上添加一个可复用的部分,供成千上万的应用软件重复使用。这一技术思想最终构成了中间件。一方面中间件要应对底层不同的环境,针对不同的环境进行不同的调用;另一方面,中间件要对上层提供统一的接口,保证在不同的环境中为上层提供相同行为的服务。具体地说,中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,大大减少了技术上的负担。
中间件带给应用系统的不只是开发的简便、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。Standish的调查报告显示,由于采用了中间件技术,应用系统的总建设费用可以减少50%左右。在网络经济、电子商务大发展的今天,从中间件获得利益的不只是IT厂商,IT用户同样是赢家。其次,中间件作为新层次的基础软件,其重要作用是将不同时期、在不同操作系统上开发应用软件集成起来,彼此像一个天衣无缝的整体协调工作,这是操作系统、数据库管理系统本身做不了的。中间件的这一作用,使得在技术不断发展之后,我们以往在应用软件上的劳动成果仍然物有所用,节约了大量的人力、财力投入。