中间件及其应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中间件及其应用
泰州电信分公司通建部陈晴摘要:随着计算机应用范围的不断扩大,中间件技术已成为计算机应用的一个热点话题。本文细述了中间件的概念以及各种类型中间件的技术特性,并对中间件在客户/服务结构的应用进行了讨论,最后介绍了一个中间件应用的一个实例。
关键词:中间件应用
1.中间件的概念
计算机硬件、软件技术的迅速发展,使计算机应用不断渗透到各个领域,特别是随着LAN技术的发展应用、Inrenet的普及、计算机应用范围的不断扩大、以及企业的跨区域运营,急切需要建立由若干个子系统组成集成计算机信息系统,以期待完成更复杂、更高级的功能。但是,已有的计算机信息系统是异构的,普遍存在着严重的"信息孤岛"问题,即每个子系统之间是独立的、不能有效地进行信息交换和共享。于是,现代企业管理向人们提出了建立一个基于不同数据库、不同主机平台、不同应用范围、不同人机界面、不同网路类型的综合应用系统的需求,如何把这些不同类型的设备、数据库、软件和网络集成起来开发出新的应用,是我们目前亟待解决的难题。一个较好的解决方法便是采用中间件技术。
中间件的概念是随着多层应用模式和分布式计算技术的发展逐渐形成的,主要为解决异构问题。对于中间件目前还没有统一的定义,总的来说,中间件是一种软件总线,不同的主机平台、数据库和应用被按照规范制作成插件安装在总线上,实现异构系统的信息共享,又被描述为软件“粘合剂”,将不能交互的应用系统间粘在一起。它是一软件集合,提供了独立系统间通信的函数和对异构系统进行应用集成的工具,并具有如下的一些特点:
满足综合应用的需要
运行于多种主机和OS平台
支持分布计算,提供跨网络、硬件和OS的透明性的应用或服务的交互
支持标准的协议和接口
图1示意了中间件在系统中所处层次,从体系结构上看,中间件是位于操作系统和应用软件之间的通用服务,它的主要作用是用来屏蔽网络硬件平台的差异性和操作系统、数据库以及网络协议的异构性,使应用软件能够比较平滑地运行于不同平台上。同时中间件在负载平衡、连接管理和调度方面起了很大的作用,
使企业级应用的性能得到大幅提升,满足了关键业务的需求。
、
2.中间件的分类
从概念上讲,中间件的雏形早在70年代就出现了,消息通信和事务管理是其最初具有的功能。到了90年代,随着互联网的普及和企业管理的需要,对于中间件的需求也逐渐多样化,从而促使中间件技术进一步细分,产生了不同类别的中间件产品。根据应用编程接口功能和应用的不同,传统上将中间件分为5大类,分别是数据库中间件(Database Middleware)、基于远程过程调用中间件(RPC-based Middelware)、面向消息中间件(Message-oriented Middleware)、分布事务处理中间件(Distributed transaction processing monitor Middleware)和对象请求代理中间件(Object request broker Middelware)。
2.1.数据库中间件
数据库中间件是所有中间件中最普遍、最成熟的一种。它提供了一系列应用程序接口API,通过中间层而不考虑操作系统及网络来访问本地或异地的数据库,提供了良好的数据库独立性。
ODBC就是一种基于数据库的中间件,它提供了一组对数据库访问的标准API,通过SQL来完成其大部分任务。一个完整的ODBC由下列几个部件组成:应用程序(Application)、ODBC管理器(Administrator)、驱动程序管理器
(Driver Manager)、ODBC 驱动程序和数据源。各部件之间的关系如图2图所示:
应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC 就能建立起与相应数据库的连接。在ODBC中,ODBC API不直接访问数据库,必须通过驱动程序管理器与数据库交换信息,驱动程序管理器负责将应用程序对ODBC API的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。
基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作均由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
但是,在基于数据库的中间件模型中,数据库作为信息的中心存储单元,中间件负责数据间的同步及点到点通信,系统的灵活性提高是以处理性能的降低为代价的。这种方式不适合于高性能应用处理,因为它需要大量的数据通信,同时,当网络发生故障时,系统将不能正常工作。
2.2.基于RPC中间件
'
远程过程调用是一种广泛使用的分布式应用程序处理方法,是面向过程和函数的中间件,提供的是基于过程的服务访问。它沿用了大多数程序员都非常熟悉的编程模式,程序员就像调用本地过程一样在程序中调用远程过程,启动远程过程的运行,然后将运行结果返回给本地程序。不但如此,远过程调用还可以将程序的控制传递到远端的服务器当中去。
在RPC模型中,client和server只要具备了相应的RPC接口,并且具有RPC 运行支持,就可以完成相应的互操作,而不必限制于特定的server。因此,RPC 为client/server分布式计算提供了有力的支持。同时RPC也有一些缺点,主要是因为RPC一般用于应用程序之间的通信,而且采用的是同步通信方式,因此对于比较小型的简单应用还是比较适合的。但是对于一些大型的应用,这种方式就不是很适合了,因为此时程序员需要考虑网络或者系统故障,处理并发操作、缓冲、流量控制以及进程同步等一系列复杂问题。
2.3.面向消息中间件
面向消息的中间件为SERVER、CLIENT间提供了异步的可靠的数据传输方式,使得数据可间断地来往传递,就如同我们通过e-mail传递消息,它支持多种通讯协议、编程语言、应用程序、硬件和软件平台。目前流行的MOM中间件产品有IBM的MQSeries、BEA的MessageQ等。
消息中间件提供的服务主要有以下几类。
1) 存储转发服务:消息的发起者使用该服务识别接收地点,如果接收者不
可达,消息便被储存在队列或存储器中,消息的传递可以堆积并延迟到某一事件的触发(如:接收者可达)。EMAIL应用便是一种消息的存储转发模式。
2) 广播/订购中间件服务:消息产生者通过广播/订购中间件服务将消息公
布到消息中心(代理),消息中心根据所有订购该消息的程序清单分发消息。
3)事件登记服务:对任何消息系统,在消息的异步传送和同步传送过程中
有许多不同的事件发生,消息系统必须对这些事件进行识别管理来控制消息的传送。
4) 智能路由服务:智能路由中间件服务确保消息以正确的序列传递到目的
地。
消息中间件有以下三个主要特点:
A.通讯程序可在不同的时间运行。