3.5.5软件中间件
1.中间件简述
随着计算机软硬技术的迅速发展,越来越多的应用程序需要运行在网络环境的异构
早台上。在分布的异构环境中,通常存在多种硬件系统平台(如PC、工作站、小型机等),
而这些硬件平台上又存在各种软件(如不同的操作系统、数据库、用户界面等)。为了解
决分布系统的异构问题,人们提出了中间件(Middleware)概念。
中间件是位于硬件、操作系统等平台和应用之间的通用服务,如图3-10所示,这些
服务具有标准的程序接口和协议。不同的硬件及操作系统平台,可以有符合接口和协议
规范的多种实现。
中间件是一种独立的系统软件或服务程序,可以帮助分布式应用软件在不同的技术
之间共享资源,它位于客户胡/服务器的操作系统之上,管理计算机资源和网络通信。其
主要目的是实现应用与平台的无关性。满足大量应用的需要、运行于多种硬件和操作系
统平台、支持分布计算、提供跨网络/硬件,操作系统平台的应用或服务的透明交互、支
持标准的协议、支持标准的接口,这些都是任何一类中间件所具备的特点。
中间件能够屏蔽操作系统和网络协议的差异,为应用程序提供多种通讯机制满足不
同领域的应用需要。因此,中间件为应用程序提供了一个相对稳定的高层应用环境。但
是,中间件服务所应遵循的原则离实际还有很大距离。多数流行的中闸件使用专有的API
相专有的协议,使应用只能构建在单一厂家的产品之上,来自不同厂家的实现很难互操
作。有些中间件只提供某些平台的实现,限制了应用在异构系统之问的移植。开发人员
在这些中间件之上建立自己的应用还要承担相当大的风险,往往要面临许多设计选择,
同时随着技术的发展还可能需要重写系统;
中间件包括的范围十分广泛,针对不同的应用需求有各种不同的中闸件产品。从不
同的角度对中间件的分类也会有所不同。通常将中问件分为数据库访问中间件、远程过
程调用中间件、面向消息中间件、事务中间件、分布式对象中间件等几类。
2.几种主要的中间件
1)数据库访问中间件
数据库访问中间件通过一个抽象层访问数据库,从而允许使用相同或相似的代码访
问不同的数据库资源。典型的技术如Windows平台的ODBC和Java平台的JDBC等。
2)远程过程调用
远程过程调用(Remote Procedure Call,RPC)是一种广泛使用的分布式应用程序处
理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间内的过程,从效
果上看和执行本地调用相同。事实上,一个RPC应用分为两个部分:服务器和客户机。
服务器提供一个或多个远程过程;客户机向服务器发出远程调用。服务器和客户机可以
位于同一台计算机,也可以位于不同的计算机,甚至可以运行在不同的操作系统之上。
客户机和服务器之间的网络通讯和数据转换通过代理程序(stub与skeleton)完成,从而
屏蔽了不同的操作系统和网络协议。RPC为客户机/服务器的分布计算提供了有力的支
持。但是,RPC所提供的是基于过程的服务访问,客户机与服务器进行直接连接,没有
中间机构来处理请求,因此也具有一定的局限性。
3)面向消息中间件
面向消息中间件( Message-Oriented Middleware,MOM)利用高效可靠的消息传递
机制进行平台无关的数据交流,并可基于数据通信进行分布系统的集成。通过提供消息
传递和消息排队模型,可在分布环境下扩展进程间的通信,并支持多种通讽协议、语言、
应用程序、硬件和软件平台。典型的产品如IBM的MQSeries。
通过使用MOM,通信双方的程序(称其为消息客户程序)可以在不同的时间运行,
程序不在网络上直接通话,而是间接地将消息放入MOM服务器的消息机制中。因为程
序间没有直接的联系,所以它们不必同时运行:消息放入适当的队列时,目标程序不需
要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。
消息客户程序之间通过将消息放入消息队列或从消息队列中取出消息来进行通讯。
客户程序不直接与其他程序通信,避免了网络通讯的复杂性。消息队列和网络通信的维
护工作由MOM完成。
4)分布式对象中间件
随着对象技术与分布式计算技术的发展,两者相互结合形成了分布式对象技术,并
发展成为当今软件技术的主流方向。典型的产品如OMG的CORBA、Sun的RIVU/EJB、
Microsoft的DCOM等。
OMG提出的对象请求代理(Object Request Broker,ORB)模型提供了一个通信框
架,可以在异构分布计算环境中透明地传递对象请求。ORB是一种对象总线,定义了异
构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间客户机/服务器关
系的申间件。ORB使得对象可以透明地向其他对象发出请求或接受其他对象的响应,这
些对象可以位于本地机器也可以位于远程机器。ORB拦截请求调用,并负责找到可以实
现请求的对象、传送参数、调用相应的方法、返回结果等。客户对象并不知道同服务器
对象通讯、激活或存储服务器对象的机制,也不必知道服务器对象位于何处、使用何种
语言实现的、使用什么操作系统或其他不属于对象接口的系统组成部分。
5)事务中间件
事务中间件,也称事务处理监控器(Transaction Processing Monitor,TPM)塌早出
现在大型机上,为其提供支持大规模事务处理的可靠运行环境。随着分布计算技术的发
展,分布应用系统对大规模的事务处理也提出了需求。事务处理监控程序位于客户和服
务器之问,完成事务管理与协调、负载平衡、失效恢复等任务,咀提高系统的整体性能。
典型产品如BEA的Tuxedo。随着对象技术与事务技术的结合,近年还出现了一类新产
品,即对象事务监控器( Object Transaction Monitor,OTM),可以保证分布式对象的事
务完整性,支持EJB的J2EE应用服务器就属于该类产品。
事务处理监控器在操作系统之上提供了一组服务,可以对客户请求进行管理并为其
分配相应的服务进程,使服务器在有限的系统资源下能够高效地为大量客户提供服务。
各省软考办 | ||||||||||