中间件技术综述

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中间件技术综述

摘要:介绍了中间件的产生与发展,详细阐述了中间件的定义、分类以及功能与作用。指出了中间件的优缺点,并分析了中间件技术的现状,最后介绍了中间件的应用前景和发展趋势。

关键词:统一软件开发平台、中间件技术

1 引言

随着Internet网络应用技术的发展,基于客户机/服务器(Client/Server)模式的系统设计方法己被广泛地应用于各种类型软件系统的设计与开发中。其编程方式改变了传统的应用程序设计和系统实现方式。为此人们提出了一种介于客户端和服务器端的软件--中间件(Middleware)。中间件是处于应用软件和系统软件之间的一类软件,是独立于硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件,是客户方与服务方之间的连接件,是需要进行二次开发的中间产品。

于是集软件复用、分布式对象计算、企业级应用开发等技术为一体的“基于中间件的软件开发”伴随产生,这种技术以软件架构为组装蓝图,以可复用软件构件为组装模块,支持组装式软件的复用,大大提高了软件生产效率和软件质量。

2 中间件技术

2.1 中间件的分类

由于中间件所包括的范围十分广泛,而目前对中间件还没有一个比较精确的定义。因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。基于不同中间件的目的和实现机制的不同,一般将中间件主要分为以下几类:远程过程调用中间件(remote procedure call middle-ware);

面向消息的中间件(message oriented middleware);

对象请求代理(object request broker);

事务处理监控(transaction processing monitor);

数据库中间件(database middleware);

专用中间件(proprietary middleware)。

其中,前3类中间件称为管道,它们可向上提供不同形式的通讯服务,包括

同步、排队、订阅发布、广播等,在这些基本的通讯服务之上,可构筑各种平台,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问等。

2.2 中间件的技术发展现状分析

应该说,中间件技术是伴随网络而发展起来的一种面向对象的技术。以前的计算机系统大多是单机系统,多个用户是通过联机终端来访问的,没有网络的概念。网络出现后,产生了c/s的计算服务模式,多个客户端可以共享数据库服务和打印服务器等。随着网络的进一步发展,许多软件需要在不同厂家的网络产品、硬件平台、网络协议异构环境下运行,应用的规模也从局域网发展到广域网。在这种情况下,中间件作为前端客户机和后端服务器之间的一个中间层,为应用程序处理提供了强大的功能,它一般包含应用逻辑,负责接收客户端的应用请求,对请求做出响应处理后将请求交给后端服务器,并负责将服务器的处理结果返回给客户端,从而使客户端变得精干。

中间件的主要作用是用来屏蔽网络硬件平台的差异性和操作系统与网络协议的异构性,使应用软件能够比较平滑地运行于不同平台上。中间件还可以放在客户机和服务器之间的多层应用服务中。具体地说,中间件消除了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。中间件已经成为了联结分布式计算环境中各个相对独立系统的胶合剂。

中间件一般遵守公开的接口标准,所以它们可以被重用,并能被多个应用程序所共享。外界所能知道的就是它们的接口,可以通过中间件的接口获得系统服务。根据性能和维护的需求、工作量、网络带宽以及其它因素,可以在网络上灵活地部署这些中间件。

与此同时,中间件在配置管理、性能管理、负载平衡、连接管理和调度方面起了很大的作用,使企业级应用的性能得到大幅提升,满足了关键业务的需求。

2.3 中间件的优缺点

可以将中间件的优点概括为以下几个方面。

1)可重用性。许多应用程序可共享和重用封装在构件中的功能,简化应用集成,可以缩短应用程序的开发周期,提高应用程序的开发质量,保证技术进步的连续性。

2)灵活性。从桌面计算环境到功能更强的网络服务器,随处都可分配工作,有利于协调系统性能和网络带宽。

3)可管理性。将大型复杂的工程细分为简单、安全的构件工程,增强应用程序的生命力。

4)易维护性。中间件作为新层次的基础软件,其重要作用是将不同时期、在不同操作系统上开发的应用软件集成起来,使得彼此成为一个无缝的整体协调工作,这是操作系统、数据库管理系统本身做不了的。将业务逻辑部署在中央服务器上,而不是分散在用户桌面上,有助于处理各种变化,并缩短解决方案的时间开销,减少维护费用。

5)经济性。节约应用程序的开发成本,降低开发的失败率,减少系统初期的建设成本。

6)标准性。由于标准接口对于可移植性和标准协议对于互操作性的双重作用,中间件已成为许多标准化工作的主要部分。对于应用软件开发,中间件远比操作系统和网络服务更为重要,中间件提供的程序接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改。但是,因为分布式应用程序的异构结构以及复杂的通信机制,开发和配置仍是一个主要问题。

使用中间件环境的目的是隐藏分布式系统的异构性,并提供一个在分布式组件间通信的平台。然而,大多数中间件往往忽视了系统管理功能,不能对分布式应用进行有效的配置管理、性能管理、账户管理、失效管理和安全管理。然而,一个应用系统质量的好坏,不仅在于系统的开发,更重要的是开发后对系统的管理和维护。据统计,软件用户80 ~90 的开销与软件的管理和维护有关。

因此,加强中间件的管理功能已成为分布式应用的关键。虽然分布式系统技术进步很快,体系结构也相对比较独立,但是相对于单机系统的软件开发来说,分布式系统的软件开发还是很复杂的。一方面,这种复杂性来自于构建分布式系统的组件的多样化,另一方面,来自于组件之间关系的复杂性。比如可用资源的管理,分布组件的通信以及失效设施的处理。所以,需要寻找一个建立分布式应用的有效机制。

环顾目前支持分布式应用程序开发和配置的在线工具,可以发现一些明显的缺点。工具软件大多数基于某个中间件平台,并且只是工作在同一个运行环境中。而且,大多数应用实现只是集中于分布式程序的某些方面,缺少建立不同工具的系统化观念。同时,工具的扩展性和与其它工具的交互性都存在着难于将具体细节标准化、接口不完全开放等问题。

中间件所应遵循的一些原则离实际还有很大距离。多数流行的中间件服务使用专有的API和专有的协议,使得应用建立于单一厂家的产品,不同厂家之间很难实现互操作。有些中间件服务只提供某些平台的实现,从而限制了应用在异构

相关文档
最新文档