资源预览内容
第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
第9页 / 共11页
第10页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
中间件及其应用泰州电信分公司通建部 陈晴 2003.3.31摘要:随着计算机应用范围的不断扩大,中间件技术已成为计算机应用的一个热 点话题。本文细述了中间件的概念以及各种类型中间件的技术特性,并对中间件 在客户/服务结构的应用进行了讨论,最后介绍了一个中间件应用的一个实例。关键词:中间件 应用1. 中间件的概念计算机硬件、软件技术的迅速发展,使计算机应用不断渗透到各个领域,特 别是随着LAN技术的发展应用、Inrenet的普及、计算机应用范围的不断扩大、 以及企业的跨区域运营,急切需要建立由若干个子系统组成集成计算机信息系统, 以期待完成更复杂、更高级的功能。但是,已有的计算机信息系统是异构的,普 遍存在着严重的信息孤岛问题,即每个子系统之间是独立的、不能有效地进行 信息交换和共享。于是,现代企业管理向人们提出了建立一个基于不同数据库、 不同主机平台、不同应用范围、不同人机界面、不同网路类型的综合应用系统的 需求,如何把这些不同类型的设备、数据库、软件和网络集成起来开发出新的应 用,是我们目前亟待解决的难题。一个较好的解决方法便是采用中间件技术。中间件的概念是随着多层应用模式和分布式计算技术的发展逐渐形成的,主 要为解决异构问题。对于中间件目前还没有统一的定义,总的来说,中间件是一 种软件总线,不同的主机平台、数据库和应用被按照规范制作成插件安装在总线 上,实现异构系统的信息共享,又被描述为软件“粘合剂”,将不能交互的应用 系统间粘在一起。它是一软件集合,提供了独立系统间通信的函数和对异构系统 进行应用集成的工具,并具有如下的一些特点:满足综合应用的需要运行于多种主机和OS平台 支持分布计算,提供跨网络、硬件和 OS 的透明性的应用或服务的交互 支持标准的协议和接口图 1 示意了中间件在系统中所处层次,从体系结构上看,中间件是位于操作 系统和应用软件之间的通用服务,它的主要作用是用来屏蔽网络硬件平台的差异 性和操作系统、数据库以及网络协议的异构性,使应用软件能够比较平滑地运行 于不同平台上。同时中间件在负载平衡、连接管理和调度方面起了很大的作用, 使企业级应用的性能得到大幅提升,满足了关键业务的需求。通惜存储主机戌主机日拶作系统氏PI操作丢统国1:中间件浙处的层啟中间件操作丢统中间件出pi中间件中间件出pi中间件分席式应用分席式应用通存储捞作系统氏pi2. 中间件的分类从概念上讲,中间件的雏形早在 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由下列几个部件组成:应 用程序(Applica tion)、ODBC管理器(Adminis tra tor)、驱动程序管理器 (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. 通讯程序可在不同的时间运行。B. 对应用程序的结构没有约束。在复杂的应用场合中,通讯程序之间不仅 可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多 种方式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。C. 程序与网络复杂性相隔离。2.4. 分布式事务处理(DTP)中间件事务处理监控(Transaction processing monitors)最早出现在大型机上,为其 提供支持大规模事务处理的可靠运行环境。随着分布计算技术的发展,分布应用 系统对大规模的事务处理提出了需求,比如商业活动中大量的关键事务处理。它 确保事务处理的完整性,提高系统的处理能力,可以被看作是分布式事务处理应 用程序的“操作系统”。总体上来说,事务处理监控提供以下功能:两阶段提交:其含义是对一个涉及多张表(table )或多个系统的事务提交进行监控管理,确保所有数据的一致性和完整性。 失败恢复:事务监视器为所有事务记录日志,日志中记录事务的每个步骤,利用日志,可对失败的事务进行回滚或重新计算。 系统同步: TPM 使用事务日志使不同的系统保持同步。 事务调度:对事务的执行进行调度,将低效率或实时性低的事务安排在空 闲时段执行,以提高系统的运行效率。 消息队列管理:保证应用系统提交的请求和数据可在网络故障或目的服务器瘫痪等情况下也能递交到目的服务器。 全局事务工作流管理 负载均衡:保证大量事务在众多不同系统中快速准确执行。2.5. 对象请求代理(ORB)中间件随着对象技术与分布式计算技术的发展,两者相互结合形成了分布对象计 算,并发展为当今软件技术的主流方向对象请求代理中间件。ORB中间件采 用面向对象的技术,将分布计算同面向对象的概念相互结合,可以看作是与编程 语言无关的面向对象的RPC应用。目前,ORB主要存在两个标准:CORBA和DCOM, 且两种标准存在了较大差异。CORBA (Common Object Request Broker Architecture)是由 OMG 组织制订 的一种标准的面向对象应用程序体系规范,ORB是CORBA平台的核心。图3所示 是基于ORB的结构,箭头方向表示了 ORB的调用关系。ClientObject ImplementationDynamicInvocationIDL StubsORBInterfaceStatic IDLSkeletonDynamic SkeletonObjectAdapterORB Core图 3:ORB 结构示意图DCOM (Distributed component object model)是微软提出的分布式对象技 术,从 OLE (Objec t li nking and embedding) 和 COM (Componen to bjec t model) 演变而来,DCOM采用ORPC (Object Remote Procedure Call)作为它的基本协 议,并通过SCM (Service Control Mananger)实现对象实体的操作。图4所示 是 DCOM 的结构。图 4:DCOM 体系结构3. 中间件在客户/服务结构中的应用客户/服务的概念最早在 80年代提出,并在80年代后期开始被广泛采用。 在这之前,基于网络的计算机应用系统主要文件共享模式为主流,随着计算机应 用范围的扩大,文件共享的局限性也暴露出来,为了解决这些局限性,产生了客 户/服务体系结构,并且由于这种结构的诸多优点,使分层模式得到了广泛应用, 从而推动了中间件技术的发展。传统的客户/服务器模式是一种双层的结构,通常是一台个人计算机做客户 机使用(运行客户端程序),另外一台服务器用于存放后台的数据库系统,应用 程序与客户端直接相连,中间没有其他的层次。这种方式的数据库应用系统其优 势在于,开发周期较短,能够适应大部分中小型数据库应用系统的要求(当客户 端数量少于 50 时)。但随着数据库应用的日渐发展,这种结构的应用系
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号