论文部分内容阅读
中图分类号 TP316文献标识码A文章编号1673-9671-(2009)111-0024-01
计算机技术和网络技术的飞速发展,许多应用程序需在网络环境的异构平台上运行。在这种分布异构环境中,通常存在多种硬件系统平台(如PC,工作站,小型机等),在硬件平台上又存在各种各样的系统软件(如不同的操作系统、数据库、语言编译器等),以及多种风格各异的用户界面,这些硬件系统平台还可能采用不同的网络协议和网络体系结构连接。如何把这些系统集成起来并开发新的应用是一个现实而困难的问题,于是“中间件”技术就应运而生。
中间件是一种独立的系统软件或服务程序,位于应用与操作系统之间,屏蔽底层操作系统、网络以及数据库的异构性和复杂性,简化网络分布应用的开发、管理和维护,实现了应用逻辑与系统服务关注点的分离。
1 中间件的定义
为了解决分布异构问题,提出了中间件的概念。中间件是位于平台(硬件和操作系统)和应用之间的通用服务,如图中间件示意图1所示,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。
IDC(互联网数据中心)对中间件的定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。
国外学术界给中间件的定义:中间件是一种软件,它能使处于应用层中的各应用成分之间实现跨网络的协同工作(也就是互操作)这时允许各应用成分之下所涉及的“系统结构、操作系统、通信协议、数据库和其他应用服务”各不相同。这一定义可形象地表示成如图中间件示意图2
2中间件的分类
2.1 数据访问中间件
数据访问中间件是指一切连接应用程序和数据库的软件。面向数据库的中间件允许开发人员通过单一的、定义良好的API访问另一台计算机上的资源,数据访问中间件的使用是解决异质平台、异质环境、异质数据库的统一访问、统一存取的最佳方案。
在分布式系统中,重要的数据都集存放在数据服务器中,它们可以是关系型、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或者压缩存放,数据访问中间件是在这种系统中建立数据应用资源互操作的模式,实现异构环境下的数据库联接或文件系统联接的中间件,从而为在网络上虚拟缓冲存取、格式转换、解压等带来方便。
2.2 事务处理中间件
事务是对共享的系统资源所完成的一件工作,它通常由一系列的操作所组成。事务处理中间件则主要用于分布式计算环境中产生事务的监控和管理。
事务处理中间件向用户提供一系列的服务,如应用管理,管理控制以及应用程序间的消息传递等。常见的功能包括全局事务协调、事务的分布式两段提交、资源管理器支持、故障恢复、高可靠性、网络负载平衡等。
2.3 面向消息中间件
在不同的网络硬件平台、不同的操作系统乃至不同的网络协议上的应用程序之间有时需要传送消息,这时应用程序对传送的要求是所传消息内容可靠和可恢复性(当发生意外,信息无法正常接受),而并不要求消息的即时即刻传递到对方。因此,需要一种面向消息的中间件,简称消息中间件。
消息中间件连接不同应用之间的通信,将不同的通信格式转换成同一格式。从而实现不同的网络硬件平台和不同操作系统以及不同网络协议上应用程序的消息互传。它的优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,另外不会占用大量的网络带宽,可以跟踪事务,并且通过将事务存储到磁盘上实现网络故障时系统的恢复。
2.4 基于远程过程调用中间件
远程过程调用是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用。
远程过程调用是一个分布式计算的客户端-服务器的例子。远程过程调用总是由客户端对服务器发出一个执行若干过程请求,并用客户端提供的参数。执行结果将返回给客户端。由于存在各式各样的变体和细节差异,对应地衍生了各式远程过程调用协议,而且它们并不互相兼容。故基于远程过程调用的中间件就应运而生。
2.5 面向对象的中间件
当前开发大型应用软件通常采用基于组件技术,所谓组件就是一组对象的集成,其种类很多,有百万种,但这些组件面临着缺乏标准而不能相互操作。在有些分布式系统中,还需要集成各节点上的不同系统平台上的组件或新老版组件。为时,面向对象的中间件就产生了。
面向对象的中间件是对象技术和分布式计算发展的产物,它提供一种通讯机制,透明地在异构的分布计算环境中传递对象请求,而这些对象可以位于本地或者远程机器。
3中间件特点和优势
通常意义下,中间件应具有以下的一些特点:满足大量应用的需要;运行于多种硬件和操作系统平台;支持分布式计算,提供跨网络、硬件和操作系统平台的透明性的应用或服务的交互功能;支持标准的协议;支持标准的接口。由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。
世界著名的咨询机构The Standish Group在一份研究报告中归纳了中间件的十大优越性:(1) 减少应用开发费用;(2) 减少初期资金和运行费用;(3) 缩短开发周期;(4) 减少项目开发风险;(5) 合理运用资金;(6) 简化应用集成;(7) 减少系统维护费;(8) 保证质量;(9) 保持技术革新;(10) 增加产品吸引力。
具体地说,中间件屏蔽了低层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。
4现状分析和展望
由于网络世界是开放的、可成长的和多变的,分布性、自治性、异构性已经成为信息系统的固有特征。实现信息系统的综合集成,已经成为国家信息化建设的普遍需求,并直接反映了整个国家信息化建设的水平,中间件通过网络互连、数据集成、应用整合、流程衔接、用户互动等形式,已经成为大型网络应用系统开发、集成、部署、运行与管理的关键支撑软件。
随着SOA(面向服务的体系架构)和Web service的发展。Web服务技术是一系列用于实现SOA的标准(或正在形成的标准)的集合。目前,Web服务技术正迅速成为SOA架构在事实上的实现标准[4]。由于面向用户,提供更高弹性、更高效率及信息整合的IT环境而被业界不断看好。但在SOA环境中,其应用组件之间是一种松耦合的关系,要让一个应用软件的组件,很容易去跟属于不同应用的软件组件进行对话,如何确保这些迥然不同,但又相互连接的系统的效率、可靠性、可控性和安全性,就复杂得多了,是SOA还没有最终解决好的问题,而这些问题正好是未来中间件所要解决的问题,致使对中间件提出了更高的要求。总之,中间件的发展前景是良好的,但是面临的挑战也是巨大的。
参考文献
[1]范国闯,钟华,黄涛.Web应用服务器研究综述[J].软件学报,2003.
[2]张云勇,张智江,刘锦德,等.中间件技术原理与应用[M].北京:清华大学出版社,2005.
[3]周园春,李淼,张建,等.中间件技术综述[J].计算机工程与应用,2002,15.
[4]李彬玉.面向SOA的Web服务管理中间件的研究与实现[D].北方工业大学,2007.
计算机技术和网络技术的飞速发展,许多应用程序需在网络环境的异构平台上运行。在这种分布异构环境中,通常存在多种硬件系统平台(如PC,工作站,小型机等),在硬件平台上又存在各种各样的系统软件(如不同的操作系统、数据库、语言编译器等),以及多种风格各异的用户界面,这些硬件系统平台还可能采用不同的网络协议和网络体系结构连接。如何把这些系统集成起来并开发新的应用是一个现实而困难的问题,于是“中间件”技术就应运而生。
中间件是一种独立的系统软件或服务程序,位于应用与操作系统之间,屏蔽底层操作系统、网络以及数据库的异构性和复杂性,简化网络分布应用的开发、管理和维护,实现了应用逻辑与系统服务关注点的分离。
1 中间件的定义
为了解决分布异构问题,提出了中间件的概念。中间件是位于平台(硬件和操作系统)和应用之间的通用服务,如图中间件示意图1所示,这些服务具有标准的程序接口和协议。针对不同的操作系统和硬件平台,它们可以有符合接口和协议规范的多种实现。
IDC(互联网数据中心)对中间件的定义表明,中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。
国外学术界给中间件的定义:中间件是一种软件,它能使处于应用层中的各应用成分之间实现跨网络的协同工作(也就是互操作)这时允许各应用成分之下所涉及的“系统结构、操作系统、通信协议、数据库和其他应用服务”各不相同。这一定义可形象地表示成如图中间件示意图2
2中间件的分类
2.1 数据访问中间件
数据访问中间件是指一切连接应用程序和数据库的软件。面向数据库的中间件允许开发人员通过单一的、定义良好的API访问另一台计算机上的资源,数据访问中间件的使用是解决异质平台、异质环境、异质数据库的统一访问、统一存取的最佳方案。
在分布式系统中,重要的数据都集存放在数据服务器中,它们可以是关系型、复合文档型、具有各种存放格式的多媒体型,或者是经过加密或者压缩存放,数据访问中间件是在这种系统中建立数据应用资源互操作的模式,实现异构环境下的数据库联接或文件系统联接的中间件,从而为在网络上虚拟缓冲存取、格式转换、解压等带来方便。
2.2 事务处理中间件
事务是对共享的系统资源所完成的一件工作,它通常由一系列的操作所组成。事务处理中间件则主要用于分布式计算环境中产生事务的监控和管理。
事务处理中间件向用户提供一系列的服务,如应用管理,管理控制以及应用程序间的消息传递等。常见的功能包括全局事务协调、事务的分布式两段提交、资源管理器支持、故障恢复、高可靠性、网络负载平衡等。
2.3 面向消息中间件
在不同的网络硬件平台、不同的操作系统乃至不同的网络协议上的应用程序之间有时需要传送消息,这时应用程序对传送的要求是所传消息内容可靠和可恢复性(当发生意外,信息无法正常接受),而并不要求消息的即时即刻传递到对方。因此,需要一种面向消息的中间件,简称消息中间件。
消息中间件连接不同应用之间的通信,将不同的通信格式转换成同一格式。从而实现不同的网络硬件平台和不同操作系统以及不同网络协议上应用程序的消息互传。它的优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,另外不会占用大量的网络带宽,可以跟踪事务,并且通过将事务存储到磁盘上实现网络故障时系统的恢复。
2.4 基于远程过程调用中间件
远程过程调用是一个计算机通信协议。该协议允许运行于一台计算机的程序调用另一台计算机的子程序,而程序员无需额外地为这个交互作用编程。如果涉及的软件采用面向对象编程,那么远程过程调用亦可称作远程调用或远程方法调用。
远程过程调用是一个分布式计算的客户端-服务器的例子。远程过程调用总是由客户端对服务器发出一个执行若干过程请求,并用客户端提供的参数。执行结果将返回给客户端。由于存在各式各样的变体和细节差异,对应地衍生了各式远程过程调用协议,而且它们并不互相兼容。故基于远程过程调用的中间件就应运而生。
2.5 面向对象的中间件
当前开发大型应用软件通常采用基于组件技术,所谓组件就是一组对象的集成,其种类很多,有百万种,但这些组件面临着缺乏标准而不能相互操作。在有些分布式系统中,还需要集成各节点上的不同系统平台上的组件或新老版组件。为时,面向对象的中间件就产生了。
面向对象的中间件是对象技术和分布式计算发展的产物,它提供一种通讯机制,透明地在异构的分布计算环境中传递对象请求,而这些对象可以位于本地或者远程机器。
3中间件特点和优势
通常意义下,中间件应具有以下的一些特点:满足大量应用的需要;运行于多种硬件和操作系统平台;支持分布式计算,提供跨网络、硬件和操作系统平台的透明性的应用或服务的交互功能;支持标准的协议;支持标准的接口。由于标准接口对于可移植性和标准协议对于互操作性的重要性,中间件已成为许多标准化工作的主要部分。
世界著名的咨询机构The Standish Group在一份研究报告中归纳了中间件的十大优越性:(1) 减少应用开发费用;(2) 减少初期资金和运行费用;(3) 缩短开发周期;(4) 减少项目开发风险;(5) 合理运用资金;(6) 简化应用集成;(7) 减少系统维护费;(8) 保证质量;(9) 保持技术革新;(10) 增加产品吸引力。
具体地说,中间件屏蔽了低层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。
4现状分析和展望
由于网络世界是开放的、可成长的和多变的,分布性、自治性、异构性已经成为信息系统的固有特征。实现信息系统的综合集成,已经成为国家信息化建设的普遍需求,并直接反映了整个国家信息化建设的水平,中间件通过网络互连、数据集成、应用整合、流程衔接、用户互动等形式,已经成为大型网络应用系统开发、集成、部署、运行与管理的关键支撑软件。
随着SOA(面向服务的体系架构)和Web service的发展。Web服务技术是一系列用于实现SOA的标准(或正在形成的标准)的集合。目前,Web服务技术正迅速成为SOA架构在事实上的实现标准[4]。由于面向用户,提供更高弹性、更高效率及信息整合的IT环境而被业界不断看好。但在SOA环境中,其应用组件之间是一种松耦合的关系,要让一个应用软件的组件,很容易去跟属于不同应用的软件组件进行对话,如何确保这些迥然不同,但又相互连接的系统的效率、可靠性、可控性和安全性,就复杂得多了,是SOA还没有最终解决好的问题,而这些问题正好是未来中间件所要解决的问题,致使对中间件提出了更高的要求。总之,中间件的发展前景是良好的,但是面临的挑战也是巨大的。
参考文献
[1]范国闯,钟华,黄涛.Web应用服务器研究综述[J].软件学报,2003.
[2]张云勇,张智江,刘锦德,等.中间件技术原理与应用[M].北京:清华大学出版社,2005.
[3]周园春,李淼,张建,等.中间件技术综述[J].计算机工程与应用,2002,15.
[4]李彬玉.面向SOA的Web服务管理中间件的研究与实现[D].北方工业大学,2007.