当前位置:文档之家› 基于分布式应用的中间件

基于分布式应用的中间件

基于分布式应用的中间件:作用与分类[日期:2006-05-31] 来源:作者:[字体:大中小]陈国良摘要中间件是分布式应用中最为关键的部分,通过对分布式应用的开发者隐藏底层信息,屏蔽网络和分布式应用的复杂性,并为网络和分布式应用提供相应的服务,使得开发者可以集中致力于应用逻辑。

本文在综合定义的基础上,基于中间件所提供的服务综述了中间件的基本作用以及基本分类,并结合当前研究对中间件的发展趋势进行了展望。

关键词中间件,分布式计算一、引言网络和硬件技术的飞速发展,极大地提高了计算机系统的通讯能力。

但是,由于分布式应用程序绝大多数都是在网络环境的异构平台上运行,使得网络和分布式应用的开发、测试和移植中所投入的代价非常高。

在未使用中间件而使用操作系统、网络和数据库直接开发分布式应用程序时,开发者必须面对很多实际困难,包括:(1)复杂性:由于直接面对底层复杂系统,需要处理繁琐的底层信息;(2)异构性:由于操作系统、硬件平台、网络结构和数据库系统的复杂多样性,为适应不同的应用平台,同一软件需要进行大量的兼容性开发,加大了软件开发工作量和复杂程度;(3)数据分布:分布式系统中的数据分布导致如数据的安全性、一致性、效率、性能等问题;(4)重复性:应用之间存在部分相似性,为此需要耗费大量的时间和精力来重复同样的工作。

针对上述困难和问题,可行的解决方法是将软件开发中的共同模式进行抽象和提炼,形成可复用的构件,以利于应用软件的重用,由此产生了中间件[1]。

使用具有高度灵活性、有效性、可靠性和安全性的中间件可以大大减轻开发分布式应用的复杂性和代价。

二、中间件的基本定义由于划分的标准不同,目前对于什么是中间件并没有准确而统一的定义。

在综合现有研究成果的基础上[2][3],我们可以给出如下的关于中间件的完整性定义,即:中间件是位于应用软件与系统基础软件之间的独立的具有相应层次的系统软件或通用服务,通过提取可重用的应用模式以及对标识、认证、授权、目录、安全性等服务的标准化和互操作,为应用提供统一的标准化程序接口和协议,隐藏底层硬件、操作系统和网络的异构性,统一管理网络资源的网络通信,灵活高效地开发分布式应用。

由此定义不难看出,中间件具有如下基本特征:(1)独立性:独立于应用程序和系统软件,保证应用程序接口的稳定性;(2)标准化:支持标准的协议和接口,用来实现互连和应用之间的互操作;(3)层次化:本身具有的一定的层次,构成中间件的层次开发结构;(4)透明性:支持分布计算,提供跨网络、硬件和操作系统的透明性;(5)领域相关性:针对不同的应用领域,需要与应用领域相适应的中间件。

三、中间件的基本作用对于应用软件开发,中间件远比操作系统和网络服务更为重要。

中间件的作用是为处于自己上层的应用软件提供运行与开发的环境,帮助用户灵活、高效地开发和集成复杂的应用软件,通常用于系统内部数据库与应用之间的消息传递处理和格式转换,在一些情况下,也可以用于解决两个系统之间的消息传递处理、格式转换等问题[4]。

中间件带给应用系统的,不只是开发的简便、开发周期的缩短,也减少了系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。

其次,中间件作为新层次的基础软件,其重要作用是将不同时期、不同操作系统上开发应用软件集成起来像一个天衣无缝的整体协调工作。

这是操作系统、数据库管理系统本身做不了的,从而节约了大量的人力,财力投入。

另外,在越来越热的电子商务领域,中间件依然大有作为。

中间件可以用来广泛地集成电子商务中的各种应用,支持大量Internet客户的并发访问,使应用开发商快速开发出灵活多变的电子商务应用,并尽快把信息系统和商务活动放到Internet中。

中间件的作用具体体现在它所提供的服务上,主要包括:1. 通讯服务目前的操作系统都支持网络编程接口,但是这些接口通常都是底层的并且非常复杂而不利于使用。

中间件则对分布式应用的开发者屏蔽了复杂的底层网络编程细节。

由于中间件需要屏蔽分布环境中操作系统和网络协议的异构性,因此它必须能够提供分布环境下的通讯服务。

基于目的和实现机制的不同,应用间的分布式通讯包括以下三类:远程过程调用RPC、消息和对象请求代理ORB。

在这些基本的通讯平台之上,可以构筑各种框架,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问、对象事务管理器O TM等。

2. 并发性服务基于中间件的应用必须具有高度可扩展性,通常以每秒所处理的请求或消息的数量来衡量。

这种要求在系统中保证最大化的并发性,这样就可以同时执行尽可能多的任务。

中间件系统使用很多技术和模式来增强并发性,例如在服务器进程中采用多线程技术,多线程技术允许中间件子系统最大化网络连接的处理以及达到这些连接的请求和消息的处理等。

3. 通用中间件支持除了提高通信和并发服务支持外,分布式应用中使用中间件服务来解决那些独立于任何特定应用领域的问题,下面是一些最常用的中间件服务。

l 目录服务目录服务允许应用查看或发现分布的资源,例如命名服务允许应用通过名字发现资源而交易服务则通过资源的属性来发现资源。

目录服务避免了将网络地址的改变或其它细节硬编码到应用中的需要,由于硬编码,当主机地址改变或者应用被移到一个新的主机时将会导致一个非常脆弱和难以维持的系统。

目录服务是自治的,服务不是集中式而是应用于一系列主机上并通过链接形成一个一致的分布式服务。

l 事务服务事务服务协助应用提交或回退事务,在分布式事务处理系统如金融系统或联机订票系统中这样的服务极其关键。

针对这些领域的中间件通常以分布式事务管理器的形式出现。

这些分布式管理器与包含在事务中节点本地的资源管理器一起产生和协调分布式事务。

l 安全服务安全服务提供了分布式系统中的认证和授权支持,这样的服务通常协调各个分布的安全系统,提供单一的签名功能可以用来透明地横跨底层系统为应用提供信任认证功能。

l 管理服务管理服务帮助监控和维护运行中的系统,主要应用于生产领域。

分布式系统中的每个应用可以由操作系统通过一个分布式记录服务错误、警告以及资料信息,并且将警告提交给监控系统来通知系统操作员出现了问题。

l 事件服务事件服务允许应用传递事件消息易变为其它应用所接收,事件服务可以构成警告管理以及任何通常的发布/定购系统的基础。

在PRC系统中,事件服务考虑应用之间的松散耦合,甚至可以提供类似于消息持久的队列功能。

l 连续性服务连续性服务通过管理其不变数据来辅助应用。

为应用提供连续服务可以有多种方法:基于关系数据库的方法、基于面向对象数据库的方法以及基于非典型的数据仓库方法。

不管采取何种方法,中间件连续性抽象层为应用屏蔽掉这些底层的储存机制。

l 负载平衡服务负载平衡服务分配到达的请求或消息到适当的服务应用映像以便及时高效地处理请求,通常情况下,负载平衡服务跟踪每个服务映像的负载并透明地将每个请求或消息转发到负载最小的映像上。

l 配置服务配置服务通过允许中间件的能力被非程序式改变或增强来为应用增加灵活性,通常是通过管理控制台。

这种服务允许应用的行为、性能和伸缩性被改变和调整而不要求应用重新编译。

例如在某些情况下,一个应用可以通过配置服务将它的安全或事务能力进行设置或禁止。

四、中间件的基本分类中间件的分类方法很多,分析众多的分类可以得出,通讯和事务处理中间件是中间件层次划分中最为基本的中间件,它们向下需要网络协议的支持,向上为最高层应用提供基础平台。

因此在上述层次划分的基础上,可以根据功能将中间件进一步细化为以下种类:通信处理中间件(包括远程过程调用中间件和消息中间件)、事务处理中间件、数据存取中间件、分布对象中间件、安全中间件、网络中间件、服务器中间件(包括Web服务器中间件和服务器构架中间件)以及专用平台中间件等。

下面分别加以论述:1. 通信处理中间件由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,因此它必须能够提供分布环境的通讯服务。

通信中间件是唯一不可或缺的中间件,实现基本的通信功能。

通信处理中间件能在不同平台之间进行通信,实现分布式应用中实时、可靠、高效的跨平台数据传输。

早期通信中间件主要是远程过程调用中间件,目前主要采用消息中间件。

l 消息中间件目前越来越多的分布式应用采用消息中间件来构建,通过消息中间件来把应用扩展到不同的操作系统和网络环境。

消息中间件非常适合时间驱动的应用,事件发生后,消息中间件通知服务方应该进行何种操作。

由于采用消息中间API进行编程,消息中间件可以非常方便地扩展到不同操作系统和硬件平台上。

消息中间件的核心安装在需要进行消息传递的系统上,建立消息传递的逻辑通道,由中间件实现消息发送。

消息中间件是一种点到点的机制,既支持同步方式也支持异步方式,因而非常适合面向对象的编程方式,如MQseries和JMS.目前中间件领域最为热门的技术是异步消息中间件。

由于较同步消息中间件具有更强的容错性,在发生系统故障的情况下可以保证消息的正常传输,因而成为增长最快的中间件领域。

异步中间件技术可以分为两类:广播方式和发布/订阅方式。

广播式将消息发给系统的多用用户,发布/订阅方式可以实现消息的分类接收,相对而言后者更加智能有效,已成为异步中间件事实上的标准。

l 消息代理中间件消息代理是一种在数据的源与目的地之间移动数据并使信息处理流畅的软件技术,数据源与目的地包括已有的应用、文件、数据库、对象、硬盘拷贝输出及Web客户端等。

消息代理技术实现之后的产品形式就是消息代理中间件。

作为面向消息的中间件的一部分,消息代理中间件在企业集成中的作用日趋明显。

消息代理中间件主要提供应用集成所必须的数据的传送、收集、翻译、过滤、映射和路由等功能,屏蔽不同的硬件平台、数据库、消息格式、通信协议之间的鸿沟与差异。

提供应用到应用之间高效、便捷的通信能力。

2. 事务处理中间件事务处理是最早应用中间件技术的领域。

事务处理中间件是专门针对联机贸易处理系统设计的,联机事务需要处理大量的并发进程,涉及到操作系统、文件系统、程序语言设计、数据通讯、数据库、系统管理、应用软件等,要确保系统可用性、可靠性、事务完整性以及事务处理之间的独立性,是一个非常复杂的任务,所有这些任务的都可以通过采用事务处理中间件进行简化。

X/OPEN定义了分布式事务处理标准,将联机事务处理系统划分为资源管理、事务管理和应用三部分,规定了应用程序、事务管理器和资源管理器的协同工作模式。

其中资源管理器是指数据库和文件系统,事务管理器是一种特殊形式的事务处理中间件。

事务处理中间件理论上相对成熟,功能和性能界定清晰。

虽然事务处理中间件也是基于消息的传输,同时支持同步和异步方式,但属于专用中间件,无法取代消息中间件,目前基本上仅适用于联机交易系统。

3. 数据存取中间件数据存取中间件适用于应用程序与数据源之间的互操作模型。

相关主题