内容发布更新时间 : 2024/12/28 13:20:53星期一 下面是文章的全部内容请认真阅读。
龙源期刊网 http://www.qikan.com.cn
浅析中间件技术的研究现状
作者:奚丽倩 袁国良
来源:《电脑知识与技术》2009年第04期
摘要:中间件是为解决分布式环境中的异构问题而提出的,它是当前软件技术发展的一个潮流,是发展最快的软件品种之一。该文阐述了中间件技术的概念、分类、优势以及作用,同时提出了目前中间件的发展趋势。 关键词:中间件;IDC;分布式环境
中图分类号:TP31文献标识码:A文章编号:1009-3044(2009)04-0978-02 Analysis of Research on Middleware Technology XI Li-qian,YUAN Guo-liang
(College of Information Engineering,Shanghai Maritime University,Shanghai 200135,China) Abstract: The middleware was presented to solve the integration problem of distributed
heterogeneous computer and network environment,it is a trend in software technology development and it is one of the fastest evolving soft wares.This paper discusses about the
concept,classification,advantage and function.Also the developing prospect of the middleware has provided in this paper.
Key words: middleware; IDC; distributed environment
随着信息技术的迅猛发展,各企业IT部门面临的问题也越来越多。诸如:不同硬件平台、不同网络环境、不同数据库之间的互操作,多种应用模式并存,系统效率过低,传输不可靠,数据加密、软件开发周期过长等等。想要解决这些问题,如果单纯依靠传统的系统软件或工具软件已经不能满足要求。因此人们开始关注中间件(middleware),并且伴随着分布式应用的迅猛发展,中间件这一新兴的软件领域已悄然崛起。
众所周知,从19世纪开始的工业革命发展至今,关键的一步就是标准零部件的出现,这使得生产走向了规模化和分工协作的道路。而软件生产构件化技术的发展就是受到了大工业生产分工协作方式的启发,这也是软件技术跨世纪的一个发展趋势,其意义在于改变软件的生产方式从个别生产发展到标准化分工协作,从而在根本上提高了软件生产的效率和质量,提高开发大型软件系统尤其是商用系统的成功率。
中间件是构件化软件的一种表现形式。中间件抽象了典型的应用模式,应用软件开发人员可以基于标准的中间件进行二次开发,开发方式其实质就是软件构件化的具体实现。
龙源期刊网 http://www.qikan.com.cn
1 中间件的概念[2]
在众多关于中间件的定义中,比较普遍接受的是IDC(国际数据集团)的表述:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这类软件在不同的技术之间共享资源;中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通信。IDC对中间件的定义表明,中间件是一类软件,而非一种软件;中间件是介于操作系统(包括底层通信协议)和各种分布式应用程序之间的一个软件层。总的作用是建立分布式软件模块之间互操作的机制,屏蔽底层分布式环境的复杂性和异构性,为处于自己上层的应用软件提供运行与开发环境,帮助用户灵活、高效地开发和集成复杂的应用软件。在具体实现上,中间件是一个用应用程序接口定义的分布式软件管理框架,具有强大的通信能力和良好的可扩展性。 2 中间件的分类[3]
随着计算机软件技术的发展,中间件技术已日渐成熟,并且出现了不同层次,不同类型的中间件产品。中间件的产品种类很多,分类的方式有很多种,据国际数据组织(IDC)的分类标准,中间件可分为6类:
1) 终端仿真与屏幕转换中间件(TSCTM)
这类中间件用以实现客户极端的图形用户接口和现有服务器端字符捷克方式的应用程序间的互操作。
2) 数据库中间件(DM)
这类中间件适用于应用程序与数据源之间的互操作模型,客户端使用面向数据库的API,以提请直接访问和更新基于服务器的数据源,数据源可以是关系型、非关系型和对象型,是所有中间件应用中最广泛、技术最成熟的一种。这类中间件大都基于SQL语句,采用同步通讯方式。此类中间件使应用开发简单化,但如果透过广域网使用,则会带来严重的效率问题,因为在低速网上来回交互SQL语句会使通讯流量过大,同时对数据压缩、加密带来不便。 3) 远程过程调用中间件(RPC)
RPC机制是早期开发分布式应用时经常采用的一种同步式的请求应答协议。通过这种协议,程序员编写客户方的应用,需要时可以调用位于远端服务器上的过程。RPC扩展了过程语言中的“功能调用/结果返回”的机制,使得它可以适用于一个远程环境。由于RPC机制是同步方式,因而在工作的时候,要求客户方和服务方均能正确工作才能很好地运行,有一方不能工作将导致RPC失败。在网络故障、机器故障存在的情况下,这一要求是很难保证的。另外,由于大多数RPC机制很难建立点到点的关系,因而也很难用在面向对象的编程当中。 4) 消息中间件(MOM)
龙源期刊网 http://www.qikan.com.cn
越来越多的分布式应用采用消息中间件来构建,通过消息中间件把应用扩展到不同的操作系统和不同的网络环境。基于消息的机制更多地适用于事件驱动的应用,当一个事件发生时,消息中间件通知服务方应该进行何种操作。其核心安装在需要进行消息传递的系统上,在它们之间建立逻辑通道,由消息中间件实现消息发送。消息中间件可以支持同步方式和异步方式,实际上是一种点到点的机制,因而可以很好的适用于面向对象的编程方式。 5) 对象中间件(OM)
传统的对象技术通过封装、继承及多态性,提供了良好的代码重用功能。但这些对象只存在于一个程序中,外界并不知道它们的存在,也无法访问它们。对象中间件提供了一个标准的构件框架,使不同厂家的软件通过不同的地址空间、网络和操作系统互相交互访问。而该构件的具体实现、位置及所依附的操作系统对客户来说都是透明的。对象中间件技术的目标是为软件用户及开发者提供一种应用级的即插即用的互操作性软件。 6) 基于对象请求代理的中间件(ORBM)
对象请求代理是近年来才发展起来的一项新技术,它可被看作和编程语言无关的面向对象的RPC应用,被视为从面向对象过渡到分布式计算的强大推动力量。从管理和封装的模式上看,对象请求代理和远过程调用有些类似,不过对象请求代理可以包含比远过程调用和消息中间件更复杂的信息,并且可以适用于非常结构化的或者非常关系型的数据。 3 中间件的优势
中间件是一种位于具体应用和底层系统(包括操作系统、网络协议栈、硬件等)之间的软件。中间件在这个软件体系中所扮演的角色是:连接应用程序和底层软硬件基础设施,协调应用各部分的连接和互操作;使系统开发者能够实现并简化基于各种不同技术的服务组件之间的集成。在应用系统开发中采用中间件技术有以下优点:
1) 能对软件开发者屏蔽底层的、复杂繁琐的、易出错的平台细节,减少应用开发的复杂性。
2) 能提供大批可复用的、构件化的服务,从而加快应用开发周期,降低开发成本。 3) 能为应用提供一个面向网络的高层抽象的集合,这种一致的高层抽象能简化分布式系统的开发。
4) 协调应用系统各部分之间的互联、互操作,使得从小到组件模块,大到企业应用实体所提供的服务都能够相互集成,并使这种集成得到简化。