一中间件的定义顾名思义中间件是处于应用软件和系统.ppt

上传人:本田雅阁 文档编号:3241320 上传时间:2019-08-05 格式:PPT 页数:68 大小:582.54KB
返回 下载 相关 举报
一中间件的定义顾名思义中间件是处于应用软件和系统.ppt_第1页
第1页 / 共68页
一中间件的定义顾名思义中间件是处于应用软件和系统.ppt_第2页
第2页 / 共68页
一中间件的定义顾名思义中间件是处于应用软件和系统.ppt_第3页
第3页 / 共68页
一中间件的定义顾名思义中间件是处于应用软件和系统.ppt_第4页
第4页 / 共68页
一中间件的定义顾名思义中间件是处于应用软件和系统.ppt_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《一中间件的定义顾名思义中间件是处于应用软件和系统.ppt》由会员分享,可在线阅读,更多相关《一中间件的定义顾名思义中间件是处于应用软件和系统.ppt(68页珍藏版)》请在三一文库上搜索。

1、 一、中间件的定义 顾名思义,中间件是处于应用软件和系统软件之间的一类软件,是独立于 硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件,是客户方 与服务方之间的连接件,是需要进行二次开发的中间产品。 应该说,中间件技术是伴随网络而发展起来的一种面向对象的技术。以前 的计算机系统多是单机系统,多个用户是通过联机终端来访问的,没有网络的 概念。网络出现后,产生了Client/Server的计算服务模式,多个客户端可以共 享数据库服务器和打印服务器等等。随着网络的更进一步发展,许多软件需要 在不同厂家的网络产品、硬件平台、网络协议异构环境下运行,应用的规模也 从局域网发展到广域网。在这种情

2、况下,Client/Server模式的局限性也就暴露 出来了,于是中间件应运而生。中间件是位于操作系统和应用软件之间的通用 服务,它的主要作用是用来屏蔽网络硬件平台的差异性和操作系统与网络协议 的异构性,使应用软件能够比较平滑地运行于不同平台上。同时中间件在负载 平衡、连接管理和调度方面起了很大的作用,使企业级应用的性能得到大幅提 升,满足了关键业务的需求。 一、中间件的定义 如今,市场上又推出了很多新的概念,例如三层结构、构件、Web服务,其 中风头最劲的当属SOA(面向服务的架构)。实际上,他们都不是一个产品,而是 一种技术的实现方法,是开发一个软件的一种方法论。我们知道,最早软件开发 方

3、法就是编程、写代码的,其缺点在于无法复用,为此提出了构件化的软件开发 方法,通过把编程中一些常用功能进行封装,并规范统一接口,供其它程序调用 ,例如我们开发一个新软件,可能要用到构件1、构件2、构件3,那么,我们只 要对其进行本地组装,就可以得到我们想要的应用软件。在互联网得到普及重视 之后,软件开发方法在构件化基础上又有新发展,核心思想是软件并不需要囊括 构件,所需要的仅仅是构件的运行结果,例如编写一个通信传输软件,就可以到 网上寻找构件,并提出服务请求,得到结果后返回,而不需要下载构件并打包, 这就是现在所说的SOA。想要现实SOA,就要规范构件接口,同时还要规范构件所 提交的服务结果,而

4、实现这种方法的基础,如今看来只有中间件。 一、中间件的定义 那么,到底什么才是中间件,什么不是中间件? 中间件应该具备两个关键特征:首先要为上层的应用层服务,这是一个基本 条件;此外,又必须连接到操作系统的层面,并却保持运行工作状态,具备了这 样两个特征才能称为中间件。现在很多人把开发工具也称为中间件是不合适的, 因为开发工具开发出来的软件,并不依赖开发工具与底层操作系统连接。 一、中间件的定义 中间件是一种独立的软件系统或服务程序,分布式应用软件借助其在不同的 技术之间共享资源。中间件就是位于操作系统和应用软件之间的一个软件层,它 向各种应用软件提供服务,使不同的应用进程能在屏蔽掉平台差异的

5、情况下,通 过网络互相通信。 一、中间件的定义 应 用应 用 应用编程接口(API) 中间件 平台接口平台接口 操作系统 硬件平台 操作系统 硬件平台 二、中间件的分类 中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的 中间件产品。但至今中间件还没有一个比较精确的定义,因此,在不同的角度或 不同的层次上,对中间件的分类也会有所不同。由于中间件需要屏蔽分布环境中 异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这 种通讯服务称之为平台。基于目的和实现机制的不同,我们将平台分为以下主要 几类: 远程过程调用中间件、数据库中间件、 消息中间件、基于对象请求代理的

6、中 间件、 事务处理中间件 二、中间件的分类 它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等 等,在这些基本的通讯平台之上,可构筑各种框架,为应用程序提供不同领域内 的服务,如事务处理监控器、分布数据访问、对象事务管理器OTM等。平台为 上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内的应用的系 统结构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提供处理这 些事件的代码。当事件发生时,框架则会调用用户的代码。用户代码不用调用框 架,用户程序也不必关心框架结构、执行流程、对系统级API的调用等,所有这 些由框架负责完成。因此,基于中间件开发的应用具有良好

7、的可扩充性、易管理 性、高可用性和可移植性。 下面,针对几类主要的中间件分别加以简要的介绍。 二、中间件的分类 1)远程过程调用中间件 远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使用 RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行本地 调用相同。事实上,一个RPC应用分为两个部分:server和client。server提供一 个或多个远程过程;client向server发出远程调用。server和client可以位于同一台 计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上。它们通过 网络进行通讯。相应的stub和运行支持提供数据转换和

8、通讯服务,从而屏蔽不同 的操作系统和网络协议。在这里RPC通讯是同步的。采用线程可以进行异步调用 。 二、中间件的分类 1)远程过程调用中间件 在RPC模型中,client和server只要具备了相应的RPC接口,并且具有RPC运行 支持,就可以完成相应的互操作,而不必限制于特定的server。因此,RPC为 client/server分布式计算提供了有力的支持。同时,远程过程调用RPC所提供的 是基于过程的服务访问,client与server进行直接连接,没有中间机构来处理请求 ,因此也具有一定的局限性。比如,RPC通常需要一些网络细节以定位server; 在client发出请求的同时,要求

9、server必须是活动的等等。 二、中间件的分类 2)数据库中间件 数据库中间件:支持对数据库存取的编程,可以使用存储过程。如:ODBC, JDBC。 二、中间件的分类 3)面向消息的中间件 MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基 于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可 在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和 软件平台。目前流行的MOM中间件产品有IBM的MQSeries、BEA的MessageQ 等。消息传递和排队技术有以下三个主要特点: 通讯程序可在不同的时间运行:程序不在网络上直接相互通话,而是间

10、接地将 消息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息 放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行, 也不意味着要立即处理该消息。 二、中间件的分类 3)面向消息的中间件 对应用程序的结构没有约束:在复杂的应用场合中,通讯程序之间不仅可以是 一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。 多种通讯方式的构造并没有增加应用程序的复杂性。 程序与网络复杂性相隔离: 程序将消息放入消息队列或从消息队列中取出消息来进行通讯,与此关联的全 部活动,比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动 和在网络中移动消息等

11、是MOM的任务,程序不直接与其它程序通话,并且它们 不涉及网络通讯的复杂性。 二、中间件的分类 4)基于对象请求代理的中间件 随着对象技术与分布式计算技术的发展,两者相互结合形成了分布对象计算, 并发展为当今软件技术的主流方向。1990年底,对象管理集团OMG首次推出对 象管理结构OMA(Object Management Architecture),对象请求代理(Object Request Broker)是这个模型的核心组件。它的作用在于提供一个通信框架,透 明地在异构的分布计算环境中传递对象请求。CORBA规范包括了ORB的所有标 准接口。1991年推出的CORBA 1.1 定义了接口描

12、述语言OMG IDL和支持 Client/Server对象在具体的ORB上进行互操作的API。CORBA 2.0 规范描述的是 不同厂商提供的ORB之间的互操作。 对象请求代理(ORB)是对象总线,它在CORBA规范中处于核心地位,定义异 构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间 二、中间件的分类 4)基于对象请求代理的中间件 client/server关系的中间件。ORB使得对象可以透明地向其他对象发出请求或接 受其他对象的响应,这些对象可以位于本地也可以位于远程机器。ORB拦截请 求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结 果等。clien

13、t对象并不知道同server对象通讯、激活或存储server对象的机制,也 不必知道server对象位于何处、它是用何种语言实现的、使用什么操作系统或其 他不属于对象接口的系统成分。 值得指出的是client和server角色只是用来协调对象之间的相互作用,根据相 应的场合,ORB上的对象可以是client,也可以是server,甚至兼有两者。当对象 发出一个请求时,它是处于client角色;当它在接收请求时,它就处于server角色 。大部分的对象都是既扮演client角色又扮演server角色。另外由于ORB负责对象 请求的传送和server的管理,client和server之间并不直接连

14、接,因此,与RPC所 支持的单纯的Client/Server结构相比,ORB可以支持更加复杂的结构。 二、中间件的分类 5)事务处理监控中间件 事务处理监控(Transaction processing monitors)最早出现在大型机上,为 其提供支持大规模事务处理的可靠运行环境。随着分布计算技术的发展,分布应 用系统对大规模的事务处理提出了需求,比如商业活动中大量的关键事务处理。 事务处理监控界于client和server之间,进行事务管理与协调、负载平衡、失败恢 复等,以提高系统的整体性能。它可以被看作是事务处理应用程序的“操作系统” 。总体上来说,事务处理监控有以下功能: 进程管理,

15、包括启动server进程、为其分配任务、监控其执行并对负载进行 平衡。 事务管理,即保证在其监控下的事务处理的原子性、一致性、独立性和持久 性。 二、中间件的分类 5)事务处理监控中间件 通讯管理,为client和server之间提供了多种通讯机制,包括请求响应、会话 、排队、订阅发布和广播等。 事务处理监控能够为大量的client提供服务,比如飞机定票系统。如果server 为每一个client都分配其所需要的资源的话,那server将不堪重负(如图2所示) 。但实际上,在同一时刻并不是所有的client都需要请求服务,而一旦某个client 请求了服务,它希望得到快速的响应。事务处理监控在

16、操作系统之上提供一组服 务,对client请求进行管理并为其分配相应的服务进程,使server在有限的系统资 源下能够高效地为大规模的客户提供服务。 二、中间件的分类 5)事务处理监控中间件 三、当前主要的中间件技术支持平台 软件系统的复杂性不断增长、软件人员的频繁流动和软件行业的激烈竞争迫 使软件企业提高软件质量、积累和固化知识财富,并尽可能地缩短软件产品的开 发周期。于是集软件复用、分布式对象计算、企业级应用开发等技术为一体的“ 基于中间件的软件开发”(CBSD,Component Based Sortware Development)应运而 生,这种技术以软件架构为组装蓝图,以可复用软件

17、构件为组装模块,支持组装式 软件的复用,大大提高了软件生产效率和软件质量。为此国风外对于这一技术的 研究正在不断深入,同时大型的软件公司(例如sun,microsoft)及软件组织机构( OMG)都推出了支持中间件技术的软件平台。 当前支持服务器端中间件技术的平台 考察当前主流的分布计算技术平台,主要有OMG的CORBA、Sun的J2EE和 Microsoft DNA 2000。它们都是支持服务器端中间件技术开发的平台,但都有其各 自的特点,将分别阐述如下: 三、当前主要的中间件技术支持平台 1) OMG的CORBA CORBA分布计算技术是OMG组织基于众多开放系统平台厂商提交的分布对 象互

18、操作内容的基础上制定的公共对象请求代理体系规范。 CORBA分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统 规范技术,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的特 点,已逐渐成为分布计算技术的标准。COBRA标准主要分为3个层次:对象请求 代理、公共对象服务和公共设施。最底层是对象请求代理ORB,规定了分布对 象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中 的“软总线“;在ORB之上定义了很多公共服务,可以提供诸如并发服务、名字 服务、事务(交易)服务、安全服务等各种各样的服务;最上层的公共设施则定义 了组件框架,提供可直接为业务对象使

19、用的服务,规定业务对象有效协作所需的 协定规则。目前,CORBA兼容的分布计算产品层出不穷,其中有中间件厂商的 ORB产品,如BEAM3,IBM Component Broker,有分布对象厂商推出的产品,如 IONAObix和OOCObacus等. 三、当前主要的中间件技术支持平台 CORBA规范的近期发展,增加了面向Internet的特性,服务质量控制和CORBA 构件模型(CORBA Component Model)。 Internet集成特性包括了针对IIOP传输的防火墙(Firewall)和可内部操作的定 义了URL命名格式的命名服务(Naming Service)。 服务质量控制包

20、括能够具有质量控制的异步消息服务,一组针对嵌入系统的 CORBA定义,一组关于实时CORBA与容错CORBA的请求方案。 CORBA CCM(CORBA Component Model)技术,是在支持POA的CORBA规 范(版本2.3以后)基础上,结合EJB当前规范的基础上发展起来的。CORBA构件模 型,是OMG组织制定的一个用于开发和配置分布式应用的服务器端中间件模型规 范,它主要包括如下三项内容: 三、当前主要的中间件技术支持平台 a.抽象构件模型,用以描述服务器端构件结构及构件间互操作的结构; b.构件容器结构,用以提供通用的构件运行和管理环境,并支持对安全、事务 、持久状态等系统服

21、务的集成; c.构件的配置和打包规范,CCM使用打包技术来管理构件的二进制、多语言 版本的可执行代码和配置信息,并制定了构件包的具体内容和基于XML的文档内 容标准。 总之,CORBA的特点是大而全,互操作性和开放性非常好。CORBA的缺点 是庞大而复杂,并且技术和标准的更新相对较慢,COBRA规范从1.0升级到2.0所 花的时间非常短,而再往上的版本的发布就相对十分缓慢了。在具体的应用中使 用不是很多。 三、当前主要的中间件技术支持平台 2)Sun的J2EE 为了推动基于Java的服务器端应用开发,Sun于是在1999年底推出了Java2技术 及相关的J2EE规范,J2EE的目标是:提供平台

22、无关的、可移植的、支持并发访问和 安全的,完全基于Java的开发服务器端中间件的标准。 在J2EE中,Sun给出了完整的基于Java语言开发面向企业分布应用规范,其中, 在分布式互操作协议上,J2EE同时支持RMI和IIOP,而在服务器端分布式应用的构 造形式,则包括了Java Servlet、JSP(Java Server Page)、EJB等多种形式,以支持不 同的业务需求,而且Java应用程序具有“Write once,run anywhere”的特性,使得J2EE 技术在发布计算领域得到了快速发展。 J2EE简化了构件可伸缩的、其于构件服务器端应用的复杂度,虽然DNA 2000 也一样

23、,但最大的区别是DNA 2000是一个产品,J2EE是一个规范,不同的厂家可以 实现自己的符合J2EE规范的产品,J2EE规范,是众多厂家参与制定的,它不为Sun所 独有,而且其支持跨平台的开发,目前许多大的分布计算平台厂商都公开支持与 J2EE兼容技术。 三、当前主要的中间件技术支持平台 EJB是Sun推出的基于Java的服务器端构件规范J2EE的一部分,自从J2EE推出 之后,得到了广泛的发展,已经成为应用服务器端的标准技术。SunEJB技术是在 Java Bean本地构件基础上,发展的面向服务器端分布应用构件技术。它基于Java 语言,提供了基于Java二进制字节代码的重用方式。EJB给

24、出了系统的服务器端分 布构件规范,这包括了构件、构件容器的接口规范以及构件打包、构件配置等的 标准规范内容。EJB技术的推出,使得用Java基于构件方法开发服务器端分布式应 用成为可能。从企业应用多层结构的角度,EJB是业务逻辑层的中间件技术,与 JavaBeans不同,它提供了事务处理的能力,自从三层结构提出以后,中间层,也就是 业务逻辑层,是处理事务的核心,从数据存储层分离,取代了存储层的大部分地位。 从分布式计算的角度,EJB像CORBA一样,提供了分布式技术的基础。提供了对象 之间的通讯手段。 三、当前主要的中间件技术支持平台 从Internet技术应用的角度,EJB和Servlet,

25、JSP一起成为新一代应用服务器的技 术标准,EJB中的Bean可以分为会话Bean和实体Bean,前者维护会话,后者处理事务 ,现在Servlet负责与客户端通信,访问EJB,并把结果通过JSP产生页面传回客户端。 J2EE的优点是,服务器市场的主流还是大型机和UNIX平台,这意味着以Java 开发构件,能够做到“Write once,run anywhere“,开发的应用可以配置到包括 Windows平台在内的任何服务器端环境中去。 三、当前主要的中间件技术支持平台 3) Microsoft DNA 2000 Microsoft DNA 2000(Distributed interNet A

26、pplications)是Microsoft在推出 Windows2000系列操作系统平台基础上,在扩展了分布计算模型,以及改造Back Office系列服务器端分布计算产品后发布的新的分布计算体系结构和规范。 在服务器端,DNA 2000提供了ASP、COM、Cluster等的应用支持。目前 ,DNA2000在技术结构上有着巨大的优越性。一方面,由于Microsoft是操作系统平 台厂商,因此DNA 2000技术得到了底层操作系统平台的强大支持;另一方面,由于 Microsoft的操作系统平台应用广泛,支持该系统平台的应用开发厂商数目众多,因 此在实际应用中,DNA 2000得到了众多应用开

27、发商的采用和支持。 DNA 2000融合了当今最先进的分布计算理论和思想,如事务处理、可伸缩性 、异步消息队列、集群等内容。DNA使得开发可以基于Microsoft平台的服务器 构件应用,其中,如数据库事务服务、异步通讯服务和安全服务等,都由底层的分布 对象系统提供。 三、当前主要的中间件技术支持平台 以Microsoft为首的DCOM/COM/COM+阵营,从DDE,OLE到ActiveX等,提 供了中间件开发的基础,如VC,VB,Delphi等都支持DCOM,包括OLE DB在内新的 数据库存取技术,随着Windows2000的发布,Microsoft的DCOM/COM/COM+技术 ,在

28、DNA2000分布计算结构基础上,展现了一个全新的分布构件应用模型。首先 ,DCOM/COM/COM+的构件仍然采用普通的COM(Component Object Model) 模型。COM最初作为Microsoft桌面系统的构件技术,主要为本地的OLE应用服务 ,但是随着Microsoft服务器操作系统NT和DCOM的发布,COM通过底层的远程支 持使得构件技术延伸到了分布应用领域。DCOM/COM/COM+更将其扩充为面 向服务器端分布应用的业务逻辑中间件。通过COM+的相关服务设施,如负载均 衡、内存数据库、对象池、构件管理与配置等等,DCOM/COM/COM+将COM 、DCOM、MT

29、S的功能有机地统一在一起,形成了一个概念、功能强的构件应用 体系结构。而且,DNA2000是单一厂家提供的分布对象构件模型,开发者使用的是 同一厂家提供的系列开发工具,这比组合多家开发工具更有吸引力。 但是它的不足是依赖于Microsoft的操作系统平台,因而在其它开发系统平台( 如Unix、Linux)上不能发挥作用。 四、当前主流的中间件技术的对比分析 目前,针对上述的各种分布计算平台技术,都出现了相似且具有可比性的分布 式构件,即CORBA CCM(CORBA Component Model)技术、SUN的 EJB(Enterprise JavaBean)技术和DNA 2000中的COM

30、/DCOM/COM+技术。 对于以上三个分布计算平台,本文采用业界常用的做法从以下三个方面进行 分析: 集成性:集成性主要反映在基础平台对应用程序互操作能力的支持上。它要 求分布在不同机器平台和操作系统上、采用不同的语言或者开发工具生成的各类 商业应用必须能集成在一起,构成一个统一的企业计算框架。这一集成框架必须 建立在网络的基础之上,并且具备对于遗留应用的集成能力; 可用性:要求所采用的软件构件技术必须是成熟的技术,相应的产品也必须 是成熟的产品,在至关重要的企业应用中能够稳定、安全、可靠地运行。另外, 由于数据库在企业计算中扮演着重要角色,软件构件技术应能与数据库技术紧密 集成; 四、当前

31、主流的中间件技术的对比分析 可扩展性:集成框架必须是可扩展的,能够协调不同的设计模式和实现策略 ,可以根据企业计算的需求进行裁剪,并能迅速反应市场的变化和技术的发展趋 势。通过保证当前应用的可重用性,最大程度地保护企业的投资。 一、ORB结构 ORB是一个中间件(middleware),它可以建立对象之间的client/server关系 。通过ORB,一个client可以透明的引用同一台机器上或网络上的一个server对 象的方法。ORB解释该调用并负责查找一个实现该请求的对象,找到后,把参 数传给该对象,调用它的方法,最后返回结果。client并不清楚该对象的位置, 它的编程语言,它的操作系

32、统以及其它不是对象接口的系统信息。 ORB能实现 分布环境中位于不同机器上的应用之间的互操作以及多对象系统之间的无缝连 接。 在传统的client/server)应用中,开发者使用自己设计的标准或通用标准来 定义设备之间的协议。协议定义与实现的语言、网络传输及其它因素有关。 ORB简化了这一过程,它使用IDL来定义应用接口之间的协议。ORB允许程序 员选择通用操作系统,运行环境和编程语言。更重要的是,它能集成现存元素。 一、ORB结构 图 1 通过ORB传递请求通过ORB传递请求 一、ORB结构 图1显示了一个client向对象实现发送一个请求。Client是一个想对对象进行 操作的一个实体,

33、对象实体是实现对象的代码和数据。ORB负责根据一个请求 来定位一个对象,安排对象实现准备接受请求,与请求的数据通讯。Client的接 口与对象的位置完全,实现对象的语言及其它不在对象接口反映出来的方面等 无关。 图2显示了单个ORB的结构。用斜条文的矩形框表示ORB的接口, 箭头表示 调用ORB或ORB使用接口把信息向上传递。 一、ORB结构 图2 ORB接口结构 一、ORB结构 Clinet使用Dynamic Invocation interface (与目标对象的接口无关)或OMG IDL stub (与目标对象接口有关的stub)来发出请求。由于某种原因,Client也可以直 接与ORB

34、联系。对象实现使用OMG IDL生成的skeleton或动态 skeleton以向上 传送(up-call)的方式接受请求。对象实现也可以调用Object Adapter和ORB。 可以用两种方式来定义对象接口:一是用OMG Interface Definition Language (OMG IDL)来定义接口。该语言根据可能对对象进行的操作和这些操作使用的 参数来定义对象类型。第二种方法是,把接口(interface)放入Interface Repository service中; 该服务把接口中的元素描述成一个对象。任何能实现ORB 的软件中,Interface Definition L

35、anguage (可能根据文档的内容而改变)和 Interface Repository具有相同的作用。一个client要使用Object Reference完成请 求,它必须知道对象的类型的及具体的操作。Client初始化请求有两种方法,一 是通过调用目标对象的stub routines,二是动态的创造请求(如图3所示)。 一、ORB结构 图 3 Client使用Stub 或Dynamic Invocation Interface 一、ORB结构 不论使用Stub还是Dynamic Invocation Interface来发出请求具有相同的语义 ,信息的接收者不能分辨出该请求是使用哪种方法

36、来传递的。ORB确定适当的 实现代码,传递参数,通过IDL skeleton或dynamic skeleton (如图Figure 4 所示 )把控制传给Object Implementation。每一个接口和object adapter 使用不同的 Skeletons。为了完成请求,object implementation 可能通过Object Adapter 使用 来自ORB的服务。当完成请求后,控制和输出结果返回给client。 图4 Object Implementation 接受请求 一、ORB结构 Object Implementation选择使用何种Object Adapter

37、。它是根据Object Implementation 需要服务的种类来确定的。图5 显示了clients和object implementations如何使用接口和实现信息。用OMG IDL或Interface Repository 来定义接口;该定义用于产生client Stubs和object implementation Skeletons。 图 5 Interface 和 Implementation Repositories 一、ORB结构 在安装时把object implementation 信息放入Implementation Repository中, 以备请求使用。 二、 OR

38、B结构中的主要构件 CORBA ORB结构 二、 ORB结构中的主要构件 1) Object Implementation(对象实现): 它定义了实现一个CORBA IDL接口 的操作。它可以用各种语言来写,如C, C+, Java, Smalltalk和Ada。 典型的Object Implementation 结构 二、 ORB结构中的主要构件 2) Client(客户): 这是一个程序实体,它调用了某一个对象实现中操作。对 调用这来讲,访问远程对象server应该是透明的。它应该和调用对象中的方法一 样简单,如,obj-op(args)。 Client只能根据对象的接口了解对象的逻辑结构

39、,虽然,我们一般都把 client看作是一个程序或一个进程,但是,知道一个client都是某一个对象有关 的。例如,一个对象的实现可能是其他对象的client。 二、 ORB结构中的主要构件 典型的Client结构 二、 ORB结构中的主要构件 Client通过语言映射(language mapping)来使用对象和ORB 接口。当这 种映射关系改变时,不需要改变Client。Client不需要了解对象的实现方式,对 象适配器及ORB。 3) Object Request Broker(ORB): ORB提供了一种机制,能实现client请求与目标对象实现之间的透明通信。 它使得client请

40、求就象一个本地过程调用一样。当一个client引用一个操作, ORB负责找到对象实现,如果需要则透明的激活它,然后把该请求递交给该对 象,最后返回应答给调用者。实现时,可以把ORB不作为单个成分,但它只能 由它的接口来定义。任何ORB实现方式提供的接口都是可以接受的。可以把接 口中的操作分为三类: 1. 对于所有的ORB实现都一样的操作 2. 特定类型对象的操作 3. 与对象实现种特定类别有关的操作 二、 ORB结构中的主要构件 不同的ORB有不同的实现方式,但都包括有:IDL 编译器, 仓库( repositories),各种Object Adapters,给client提供各种服务集,具有

41、不同属性 的对象实现等。 现在有各种不同的ORB实现。一个client可以同时访问两个由不同ORB实 现管理的对象引用(object references)当这两个ORB需要一起工作时,它们能 区分出各自的对象引用。Client不需要对此负责。ORB Core是ORB的一个组成 部分,它提供对象的基本表示和与请求的通信。 有四种不同类型的ORB: 1Client- and Implementation-resident ORB 2Server-based ORB 3System-based ORB 4Library-based ORB 二、 ORB结构中的主要构件 ORB Interface:

42、 一个ORB是一个逻辑实体(logical entity),它可以用各种方法实现(如一 个或多个过程,或一个libraries集合)。为了减轻编写程序的困难,CORBA规 范定义了一个抽象的接口。该接口提供各种帮助函数。 CORBA IDL stubs and skeletons: 它相当于client、server应用程序和ORB之间的“胶水”。由CORBA IDL编译 器自动实现CORBA IDL定义与目标编程语言之间的转换。 使用编译器可以减少client stub和server skeletons之间的潜在矛盾。 Dynamic Invocation Interface(DII): 该

43、接口允许client直接调用ORB所提供得最底层的请求机制。应用程序使用 DII动态地把请求传给对象而不需要IDL接口(包括特定stub)。与IDL stub( 它只允许RPC模式的请求)不同,DII也允许clients使用无块的延迟同步调用( non-blocking deferred synchronous)(发送操作是独立的)和单向调用(send- only)。 二、 ORB结构中的主要构件 Dynamic Skeleton Interface(DSI): 与client端的DII类似的,位于server端的接口。DSI允许ORB把请求发送给 对象实现,该对象实现不包含编译时所需要的类型

44、。发出请求的client不知道该 实现是使用指定类型的IDL skeletons 还是使用动态的skeletons。 Object Adapter: 它帮助ORB把请求传给对象并激活该对象。更重要的是一个object adapter 总是与一个对象实现(object implementations)联系的。Object adapter可以被 定义来支持特定的对象实现类型(如OODB object adapters用于持续对象( persistence)而library object adapters 用于非远程对象)。 二、 ORB结构中的主要构件 典型的Object Adapter结构 三、

45、 ORB的系统集成 不同对象系统集成的方法 四、 ORB的互操作性 ORB 的互操作性提供了种易于理解的、方便的途径来支持网络中的对象, 这些对象由多样的,不同种类的(与CORBA 兼容的)ORB管理。由于CORBA 中的元素能以很多方式结合在一起以满足各种不同的需要,因此取得 “interORBability”的方法很方便。 1) 支持互操作的元素 能支持互操作的元素有:: 1. ORB 互操作结构 2. Inter-ORB 桥支持(bridge support) 3. General and Internet inter-ORB Protocols (GIOPs and IIOPs) 而且

46、,该结构还支持environment-specific inter-ORB protocols (ESIOP), 它能优化特定领域如DCE) 二、 ORB结构中的主要构件 2) ORB 互操作结构 该结构引入了ORB域中immediate and mediated bridging(直接桥接和间接 桥接)这两个概念。IIOP是广域网桥接的基础。而inter-ORB 桥接既能用于直 接桥接,也能用于“半桥接”,使用半桥接能搭建用于间接桥接。使用这些桥接 技术,ORB能互操作,而不需要知道彼此的实现细节,如,使用何种特殊的 IPC或协议(如ESIOP)来实现CORBA规范。 使用能用IIOP通讯的

47、“半桥接”, 两个或多个ORB能相互桥接在一起。这种 方法既能用于单机ORB,也能用于网络ORB如ESIOP。IIOP也能用于实现 ORB中的内部消息机制。 3) Inter-ORB Bridge Support 互操作结构明确指出ORB中不同域的作用,这些域包括对象引用域(object reference domain),类型域(type domain),安全域(safety domain)(如 the scope of a Principal identifier), 事物域(transaction domain)等等。 二、 ORB结构中的主要构件 当两个ORB位于同一个域中,它们能直接

48、通讯,多数情况下,这是一个很 好的方法。但由于各个机构需要建造各自控制域,因此,这种方法不常使用。 当需要的信息离开它的域时,就必须使用桥接来传递信息。桥接的作用是确保 信息能完整的从一个ORB映射到另一个ORB。inter-ORB 桥接支持也能提供与 非CORBA系统(如Microsofts Component Object Model (COM)之间的互操作。 4) General Inter-ORB Protocol (GIOP) General Inter-ORB Protocol (GIOP) 元件提供了一个标准传输语法(低层 数据表示方法)和ORB之间通信的信息格式集。GIOP只能

49、用在ORB与ORB之 间,而且,只能在符合理想条件的面向连接传输协议中使用。它不需要使用更 高一层的RPC机制。这个协议是简单的(尽可能简单,但不是简单化),可升 级的,使用方便。它被设计为可移动的、高效能的表现、较少依靠其它的低层 传输协议。当然,由于不同传输使用不同版本的GIOP,它们可能不能直接协作 工作,但它能很容易的连接网络域。 二、 ORB结构中的主要构件 5) Internet Inter-ORB Protocol (IIOP) Internet Inter-ORB Protocol (IIOP) 元件指出如何通过TCP/IP连接交换 GIOP信息。IIOP为Internet提供了一个标准的协作工作协议,它使兼容的ORB 能基于现在流行的协议和产品进行“out of the box”方式的协作工作。它也能被 用于两个半桥(half-bridges )之间的协议。该协议能用于任何ORB与IP( Internet Protocol)域之间的协作工作,除非ORB选择了特殊的协议。这时,它 是TCP/IP环境下基本的inter-ORB 协议,最普遍的传输层。 IIOP与GIOP的关系就象特特殊语言与OMG IDL之间的关系;GIOP能被 映射到不同层,它能指定协议。就象IDL不能见招完整的程序一样,GIOP 本身 也不能提供完整的协作工作。IIOP和不同传输层

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1