ongweb及中间件技术培训.ppt_第1页
ongweb及中间件技术培训.ppt_第2页
ongweb及中间件技术培训.ppt_第3页
ongweb及中间件技术培训.ppt_第4页
ongweb及中间件技术培训.ppt_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,Tongweb及中间件技术培训,Tongweb及中间件技术培训,一、中间件的定义 顾名思义,中间件是处于应用软件和系统软件之间的一类软件,是独立于硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件,是客户方与服务方之间的连接件,是需要进行二次开发的中间产品。 应该说,中间件技术是伴随网络而发展起来的一种面向对象的技术。以前的计算机系统多是单机系统,多个用户是通过联机终端来访问的,没有网络的概念。网络出现后,产生了Client/Server的计算服务模式,多个客户端可以共享数据库服务器和打印服务器等等。随着网络的更进一步发展,许多软件需要在不同厂家的网络产品、硬件平台、网络协议异构环境下运行,应用的规模也从局域网发展到广域网。在这种情况下,Client/Server模式的局限性也就暴露出来了,于是中间件应运而生。中间件是位于操作系统和应用软件之间的通用服务,它的主要作用是用来屏蔽网络硬件平台的差异性和操作系统与网络协议的异构性,使应用软件能够比较平滑地运行于不同平台上。同时中间件在负载平衡、连接管理和调度方面起了很大的作用,使企业级应用的性能得到大幅提升,满足了关键业务的需求。,Tongweb及中间件技术培训,一、中间件的定义 如今,市场上又推出了很多新的概念,例如三层结构、构件、Web服务,其中风头最劲的当属SOA(面向服务的架构)。实际上,他们都不是一个产品,而是一种技术的实现方法,是开发一个软件的一种方法论。我们知道,最早软件开发方法就是编程、写代码的,其缺点在于无法复用,为此提出了构件化的软件开发方法,通过把编程中一些常用功能进行封装,并规范统一接口,供其它程序调用,例如我们开发一个新软件,可能要用到构件1、构件2、构件3,那么,我们只要对其进行本地组装,就可以得到我们想要的应用软件。在互联网得到普及重视之后,软件开发方法在构件化基础上又有新发展,核心思想是软件并不需要囊括构件,所需要的仅仅是构件的运行结果,例如编写一个通信传输软件,就可以到网上寻找构件,并提出服务请求,得到结果后返回,而不需要下载构件并打包,这就是现在所说的SOA。想要现实SOA,就要规范构件接口,同时还要规范构件所提交的服务结果,而实现这种方法的基础,如今看来只有中间件。,Tongweb及中间件技术培训,一、中间件的定义 那么,到底什么才是中间件,什么不是中间件? 中间件应该具备两个关键特征:首先要为上层的应用层服务,这是一个基本条件;此外,又必须连接到操作系统的层面,并却保持运行工作状态,具备了这样两个特征才能称为中间件。现在很多人把开发工具也称为中间件是不合适的,因为开发工具开发出来的软件,并不依赖开发工具与底层操作系统连接。,Tongweb及中间件技术培训,一、中间件的定义 中间件是一种独立的软件系统或服务程序,分布式应用软件借助其在不同的技术之间共享资源。中间件就是位于操作系统和应用软件之间的一个软件层,它向各种应用软件提供服务,使不同的应用进程能在屏蔽掉平台差异的情况下,通过网络互相通信。,Tongweb及中间件技术培训,一、中间件的定义,应 用,应 用,应用编程接口(API),中间件,平台接口,平台接口,操作系统,硬件平台,操作系统,硬件平台,Tongweb及中间件技术培训,二、中间件的分类 中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。但至今中间件还没有一个比较精确的定义,因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这种通讯服务称之为平台。基于目的和实现机制的不同,我们将平台分为以下主要几类: 远程过程调用中间件、数据库中间件、 消息中间件、基于对象请求代理的中间件、 事务处理中间件,Tongweb及中间件技术培训,二、中间件的分类 它们可向上提供不同形式的通讯服务,包括同步、排队、订阅发布、广播等等,在这些基本的通讯平台之上,可构筑各种框架,为应用程序提供不同领域内的服务,如事务处理监控器、分布数据访问、对象事务管理器OTM等。平台为上层应用屏蔽了异构平台的差异,而其上的框架又定义了相应领域内的应用的系统结构、标准的服务组件等,用户只需告诉框架所关心的事件,然后提供处理这些事件的代码。当事件发生时,框架则会调用用户的代码。用户代码不用调用框架,用户程序也不必关心框架结构、执行流程、对系统级API的调用等,所有这些由框架负责完成。因此,基于中间件开发的应用具有良好的可扩充性、易管理性、高可用性和可移植性。 下面,针对几类主要的中间件分别加以简要的介绍。,Tongweb及中间件技术培训,二、中间件的分类 1)远程过程调用中间件 远程过程调用是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间里的过程,并且从效果上看和执行本地调用相同。事实上,一个RPC应用分为两个部分:server和client。server提供一个或多个远程过程;client向server发出远程调用。server和client可以位于同一台计算机,也可以位于不同的计算机,甚至运行在不同的操作系统之上。它们通过网络进行通讯。相应的stub和运行支持提供数据转换和通讯服务,从而屏蔽不同的操作系统和网络协议。在这里RPC通讯是同步的。采用线程可以进行异步调用。,Tongweb及中间件技术培训,二、中间件的分类 1)远程过程调用中间件 在RPC模型中,client和server只要具备了相应的RPC接口,并且具有RPC运行支持,就可以完成相应的互操作,而不必限制于特定的server。因此,RPC为client/server分布式计算提供了有力的支持。同时,远程过程调用RPC所提供的是基于过程的服务访问,client与server进行直接连接,没有中间机构来处理请求,因此也具有一定的局限性。比如,RPC通常需要一些网络细节以定位server;在client发出请求的同时,要求server必须是活动的等等。,Tongweb及中间件技术培训,二、中间件的分类 2)数据库中间件 数据库中间件:支持对数据库存取的编程,可以使用存储过程。如:ODBC,JDBC。,Tongweb及中间件技术培训,二、中间件的分类 3)面向消息的中间件 MOM指的是利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可在分布环境下扩展进程间的通信,并支持多通讯协议、语言、应用程序、硬件和软件平台。目前流行的MOM中间件产品有IBM的MQSeries、BEA的MessageQ等。消息传递和排队技术有以下三个主要特点: 通讯程序可在不同的时间运行:程序不在网络上直接相互通话,而是间接地将消息放入消息队列,因为程序间没有直接的联系。所以它们不必同时运行。消息放入适当的队列时,目标程序甚至根本不需要正在运行;即使目标程序在运行,也不意味着要立即处理该消息。,Tongweb及中间件技术培训,二、中间件的分类 3)面向消息的中间件 对应用程序的结构没有约束:在复杂的应用场合中,通讯程序之间不仅可以是一对一的关系,还可以进行一对多和多对一方式,甚至是上述多种方式的组合。多种通讯方式的构造并没有增加应用程序的复杂性。 程序与网络复杂性相隔离: 程序将消息放入消息队列或从消息队列中取出消息来进行通讯,与此关联的全部活动,比如维护消息队列、维护程序和队列之间的关系、处理网络的重新启动和在网络中移动消息等是MOM的任务,程序不直接与其它程序通话,并且它们不涉及网络通讯的复杂性。,Tongweb及中间件技术培训,二、中间件的分类 4)基于对象请求代理的中间件 随着对象技术与分布式计算技术的发展,两者相互结合形成了分布对象计算,并发展为当今软件技术的主流方向。1990年底,对象管理集团OMG首次推出对象管理结构OMA(Object Management Architecture),对象请求代理(Object Request Broker)是这个模型的核心组件。它的作用在于提供一个通信框架,透明地在异构的分布计算环境中传递对象请求。CORBA规范包括了ORB的所有标准接口。1991年推出的CORBA 1.1 定义了接口描述语言OMG IDL和支持Client/Server对象在具体的ORB上进行互操作的API。CORBA 2.0 规范描述的是不同厂商提供的ORB之间的互操作。 对象请求代理(ORB)是对象总线,它在CORBA规范中处于核心地位,定义异构环境下对象透明地发送请求和接收响应的基本机制,是建立对象之间,Tongweb及中间件技术培训,二、中间件的分类 4)基于对象请求代理的中间件 client/server关系的中间件。ORB使得对象可以透明地向其他对象发出请求或接受其他对象的响应,这些对象可以位于本地也可以位于远程机器。ORB拦截请求调用,并负责找到可以实现请求的对象、传送参数、调用相应的方法、返回结果等。client对象并不知道同server对象通讯、激活或存储server对象的机制,也不必知道server对象位于何处、它是用何种语言实现的、使用什么操作系统或其他不属于对象接口的系统成分。 值得指出的是client和server角色只是用来协调对象之间的相互作用,根据相应的场合,ORB上的对象可以是client,也可以是server,甚至兼有两者。当对象发出一个请求时,它是处于client角色;当它在接收请求时,它就处于server角色。大部分的对象都是既扮演client角色又扮演server角色。另外由于ORB负责对象请求的传送和server的管理,client和server之间并不直接连接,因此,与RPC所支持的单纯的Client/Server结构相比,ORB可以支持更加复杂的结构。,Tongweb及中间件技术培训,二、中间件的分类 5)事务处理监控中间件 事务处理监控(Transaction processing monitors)最早出现在大型机上,为其提供支持大规模事务处理的可靠运行环境。随着分布计算技术的发展,分布应用系统对大规模的事务处理提出了需求,比如商业活动中大量的关键事务处理。事务处理监控界于client和server之间,进行事务管理与协调、负载平衡、失败恢复等,以提高系统的整体性能。它可以被看作是事务处理应用程序的“操作系统”。总体上来说,事务处理监控有以下功能: 进程管理,包括启动server进程、为其分配任务、监控其执行并对负载进行平衡。 事务管理,即保证在其监控下的事务处理的原子性、一致性、独立性和持久性。,Tongweb及中间件技术培训,二、中间件的分类 5)事务处理监控中间件 通讯管理,为client和server之间提供了多种通讯机制,包括请求响应、会话、排队、订阅发布和广播等。 事务处理监控能够为大量的client提供服务,比如飞机定票系统。如果server为每一个client都分配其所需要的资源的话,那server将不堪重负(如图2所示)。但实际上,在同一时刻并不是所有的client都需要请求服务,而一旦某个client请求了服务,它希望得到快速的响应。事务处理监控在操作系统之上提供一组服务,对client请求进行管理并为其分配相应的服务进程,使server在有限的系统资源下能够高效地为大规模的客户提供服务。,Tongweb及中间件技术培训,二、中间件的分类 5)事务处理监控中间件,Tongweb及中间件技术培训,三、当前主要的中间件技术支持平台 软件系统的复杂性不断增长、软件人员的频繁流动和软件行业的激烈竞争迫使软件企业提高软件质量、积累和固化知识财富,并尽可能地缩短软件产品的开发周期。于是集软件复用、分布式对象计算、企业级应用开发等技术为一体的“基于中间件的软件开发”(CBSD,Component Based Sortware Development)应运而生,这种技术以软件架构为组装蓝图,以可复用软件构件为组装模块,支持组装式软件的复用,大大提高了软件生产效率和软件质量。为此国风外对于这一技术的研究正在不断深入,同时大型的软件公司(例如sun,microsoft)及软件组织机构(OMG)都推出了支持中间件技术的软件平台。 当前支持服务器端中间件技术的平台 考察当前主流的分布计算技术平台,主要有OMG的CORBA、Sun的J2EE和Microsoft DNA 2000。它们都是支持服务器端中间件技术开发的平台,但都有其各自的特点,将分别阐述如下:,Tongweb及中间件技术培训,三、当前主要的中间件技术支持平台 1) OMG的CORBA CORBA分布计算技术是OMG组织基于众多开放系统平台厂商提交的分布对象互操作内容的基础上制定的公共对象请求代理体系规范。 CORBA分布计算技术,是由绝大多数分布计算平台厂商所支持和遵循的系统规范技术,具有模型完整、先进,独立于系统平台和开发语言,被支持程度广泛的特点,已逐渐成为分布计算技术的标准。COBRA标准主要分为3个层次:对象请求代理、公共对象服务和公共设施。最底层是对象请求代理ORB,规定了分布对象的定义(接口)和语言映射,实现对象间的通讯和互操作,是分布对象系统中的“软总线“;在ORB之上定义了很多公共服务,可以提供诸如并发服务、名字服务、事务(交易)服务、安全服务等各种各样的服务;最上层的公共设施则定义了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则。目前,CORBA兼容的分布计算产品层出不穷,其中有中间件厂商的ORB产品,如BEAM3,IBM Component Broker,有分布对象厂商推出的产品,如IONAObix和OOCObacus等.,Tongweb及中间件技术培训,三、当前主要的中间件技术支持平台 CORBA规范的近期发展,增加了面向Internet的特性,服务质量控制和CORBA构件模型(CORBA Component Model)。 Internet集成特性包括了针对IIOP传输的防火墙(Firewall)和可内部操作的定义了URL命名格式的命名服务(Naming Service)。 服务质量控制包括能够具有质量控制的异步消息服务,一组针对嵌入系统的CORBA定义,一组关于实时CORBA与容错CORBA的请求方案。 CORBA CCM(CORBA Component Model)技术,是在支持POA的CORBA规范(版本2.3以后)基础上,结合EJB当前规范的基础上发展起来的。CORBA构件模型,是OMG组织制定的一个用于开发和配置分布式应用的服务器端中间件模型规范,它主要包括如下三项内容:,Tongweb及中间件技术培训,三、当前主要的中间件技术支持平台 a.抽象构件模型,用以描述服务器端构件结构及构件间互操作的结构; b.构件容器结构,用以提供通用的构件运行和管理环境,并支持对安全、事务、持久状态等系统服务的集成; c.构件的配置和打包规范,CCM使用打包技术来管理构件的二进制、多语言版本的可执行代码和配置信息,并制定了构件包的具体内容和基于XML的文档内容标准。 总之,CORBA的特点是大而全,互操作性和开放性非常好。CORBA的缺点是庞大而复杂,并且技术和标准的更新相对较慢,COBRA规范从1.0升级到2.0所花的时间非常短,而再往上的版本的发布就相对十分缓慢了。在具体的应用中使用不是很多。,Tongweb及中间件技术培训,三、当前主要的中间件技术支持平台 2)Sun的J2EE 为了推动基于Java的服务器端应用开发,Sun于是在1999年底推出了Java2技术及相关的J2EE规范,J2EE的目标是:提供平台无关的、可移植的、支持并发访问和安全的,完全基于Java的开发服务器端中间件的标准。 在J2EE中,Sun给出了完整的基于Java语言开发面向企业分布应用规范,其中,在分布式互操作协议上,J2EE同时支持RMI和IIOP,而在服务器端分布式应用的构造形式,则包括了Java Servlet、JSP(Java Server Page)、EJB等多种形式,以支持不同的业务需求,而且Java应用程序具有“Write once,run anywhere”的特性,使得J2EE技术在发布计算领域得到了快速发展。 J2EE简化了构件可伸缩的、其于构件服务器端应用的复杂度,虽然DNA 2000也一样,但最大的区别是DNA 2000是一个产品,J2EE是一个规范,不同的厂家可以实现自己的符合J2EE规范的产品,J2EE规范,是众多厂家参与制定的,它不为Sun所独有,而且其支持跨平台的开发,目前许多大的分布计算平台厂商都公开支持与J2EE兼容技术。,Tongweb及中间件技术培训,三、当前主要的中间件技术支持平台 EJB是Sun推出的基于Java的服务器端构件规范J2EE的一部分,自从J2EE推出之后,得到了广泛的发展,已经成为应用服务器端的标准技术。SunEJB技术是在Java Bean本地构件基础上,发展的面向服务器端分布应用构件技术。它基于Java语言,提供了基于Java二进制字节代码的重用方式。EJB给出了系统的服务器端分布构件规范,这包括了构件、构件容器的接口规范以及构件打包、构件配置等的标准规范内容。EJB技术的推出,使得用Java基于构件方法开发服务器端分布式应用成为可能。从企业应用多层结构的角度,EJB是业务逻辑层的中间件技术,与JavaBeans不同,它提供了事务处理的能力,自从三层结构提出以后,中间层,也就是业务逻辑层,是处理事务的核心,从数据存储层分离,取代了存储层的大部分地位。从分布式计算的角度,EJB像CORBA一样,提供了分布式技术的基础。提供了对象之间的通讯手段。,Tongweb及中间件技术培训,三、当前主要的中间件技术支持平台 从Internet技术应用的角度,EJB和Servlet,JSP一起成为新一代应用服务器的技术标准,EJB中的Bean可以分为会话Bean和实体Bean,前者维护会话,后者处理事务,现在Servlet负责与客户端通信,访问EJB,并把结果通过JSP产生页面传回客户端。 J2EE的优点是,服务器市场的主流还是大型机和UNIX平台,这意味着以Java开发构件,能够做到“Write once,run anywhere“,开发的应用可以配置到包括Windows平台在内的任何服务器端环境中去。,Tongweb及中间件技术培训,三、当前主要的中间件技术支持平台 3) Microsoft DNA 2000 Microsoft DNA 2000(Distributed interNet Applications)是Microsoft在推出Windows2000系列操作系统平台基础上,在扩展了分布计算模型,以及改造Back Office系列服务器端分布计算产品后发布的新的分布计算体系结构和规范。 在服务器端,DNA 2000提供了ASP、COM、Cluster等的应用支持。目前,DNA2000在技术结构上有着巨大的优越性。一方面,由于Microsoft是操作系统平台厂商,因此DNA 2000技术得到了底层操作系统平台的强大支持;另一方面,由于Microsoft的操作系统平台应用广泛,支持该系统平台的应用开发厂商数目众多,因此在实际应用中,DNA 2000得到了众多应用开发商的采用和支持。 DNA 2000融合了当今最先进的分布计算理论和思想,如事务处理、可伸缩性、异步消息队列、集群等内容。DNA使得开发可以基于Microsoft平台的服务器构件应用,其中,如数据库事务服务、异步通讯服务和安全服务等,都由底层的分布对象系统提供。,Tongweb及中间件技术培训,三、当前主要的中间件技术支持平台 以Microsoft为首的DCOM/COM/COM+阵营,从DDE,OLE到ActiveX等,提供了中间件开发的基础,如VC,VB,Delphi等都支持DCOM,包括OLE DB在内新的数据库存取技术,随着Windows2000的发布,Microsoft的DCOM/COM/COM+技术,在DNA2000分布计算结构基础上,展现了一个全新的分布构件应用模型。首先,DCOM/COM/COM+的构件仍然采用普通的COM(Component Object Model)模型。COM最初作为Microsoft桌面系统的构件技术,主要为本地的OLE应用服务,但是随着Microsoft服务器操作系统NT和DCOM的发布,COM通过底层的远程支持使得构件技术延伸到了分布应用领域。DCOM/COM/COM+更将其扩充为面向服务器端分布应用的业务逻辑中间件。通过COM+的相关服务设施,如负载均衡、内存数据库、对象池、构件管理与配置等等,DCOM/COM/COM+将COM、DCOM、MTS的功能有机地统一在一起,形成了一个概念、功能强的构件应用体系结构。而且,DNA2000是单一厂家提供的分布对象构件模型,开发者使用的是同一厂家提供的系列开发工具,这比组合多家开发工具更有吸引力。 但是它的不足是依赖于Microsoft的操作系统平台,因而在其它开发系统平台(如Unix、Linux)上不能发挥作用。,Tongweb及中间件技术培训,四、当前主流的中间件技术的对比分析 目前,针对上述的各种分布计算平台技术,都出现了相似且具有可比性的分布式构件,即CORBA CCM(CORBA Component Model)技术、SUN的EJB(Enterprise JavaBean)技术和DNA 2000中的COM/DCOM/COM+技术。 对于以上三个分布计算平台,本文采用业界常用的做法从以下三个方面进行分析: 集成性:集成性主要反映在基础平台对应用程序互操作能力的支持上。它要求分布在不同机器平台和操作系统上、采用不同的语言或者开发工具生成的各类商业应用必须能集成在一起,构成一个统一的企业计算框架。这一集成框架必须建立在网络的基础之上,并且具备对于遗留应用的集成能力; 可用性:要求所采用的软件构件技术必须是成熟的技术,相应的产品也必须是成熟的产品,在至关重要的企业应用中能够稳定、安全、可靠地运行。另外,由于数据库在企业计算中扮演着重要角色,软件构件技术应能与数据库技术紧密集成;,Tongweb及中间件技术培训,四、当前主流的中间件技术的对比分析 可扩展性:集成框架必须是可扩展的,能够协调不同的设计模式和实现策略,可以根据企业计算的需求进行裁剪,并能迅速反应市场的变化和技术的发展趋势。通过保证当前应用的可重用性,最大程度地保护企业的投资。,中间件技术 对象请求代理(ORB)详细说明,对象请求代理(ORB)详细说明,一、ORB结构 ORB是一个中间件(middleware),它可以建立对象之间的client/server关系。通过ORB,一个client可以透明的引用同一台机器上或网络上的一个server对象的方法。ORB解释该调用并负责查找一个实现该请求的对象,找到后,把参数传给该对象,调用它的方法,最后返回结果。client并不清楚该对象的位置,它的编程语言,它的操作系统以及其它不是对象接口的系统信息。 ORB能实现分布环境中位于不同机器上的应用之间的互操作以及多对象系统之间的无缝连接。 在传统的client/server)应用中,开发者使用自己设计的标准或通用标准来定义设备之间的协议。协议定义与实现的语言、网络传输及其它因素有关。ORB简化了这一过程,它使用IDL来定义应用接口之间的协议。ORB允许程序员选择通用操作系统,运行环境和编程语言。更重要的是,它能集成现存元素。,对象请求代理(ORB)详细说明,一、ORB结构,图 1 通过ORB传递请求通过ORB传递请求,对象请求代理(ORB)详细说明,一、ORB结构 图1显示了一个client向对象实现发送一个请求。Client是一个想对对象进行操作的一个实体,对象实体是实现对象的代码和数据。ORB负责根据一个请求来定位一个对象,安排对象实现准备接受请求,与请求的数据通讯。Client的接口与对象的位置完全,实现对象的语言及其它不在对象接口反映出来的方面等无关。 图2显示了单个ORB的结构。用斜条文的矩形框表示ORB的接口, 箭头表示调用ORB或ORB使用接口把信息向上传递。,对象请求代理(ORB)详细说明,一、ORB结构,图2 ORB接口结构,对象请求代理(ORB)详细说明,一、ORB结构 Clinet使用Dynamic Invocation interface (与目标对象的接口无关)或OMG IDL stub (与目标对象接口有关的stub)来发出请求。由于某种原因,Client也可以直接与ORB联系。对象实现使用OMG IDL生成的skeleton或动态 skeleton以向上传送(up-call)的方式接受请求。对象实现也可以调用Object Adapter和ORB。可以用两种方式来定义对象接口:一是用OMG Interface Definition Language (OMG IDL)来定义接口。该语言根据可能对对象进行的操作和这些操作使用的参数来定义对象类型。第二种方法是,把接口(interface)放入Interface Repository service中; 该服务把接口中的元素描述成一个对象。任何能实现ORB的软件中,Interface Definition Language (可能根据文档的内容而改变)和Interface Repository具有相同的作用。一个client要使用Object Reference完成请求,它必须知道对象的类型的及具体的操作。Client初始化请求有两种方法,一是通过调用目标对象的stub routines,二是动态的创造请求(如图3所示)。,对象请求代理(ORB)详细说明,一、ORB结构,图 3 Client使用Stub 或Dynamic Invocation Interface,对象请求代理(ORB)详细说明,一、ORB结构 不论使用Stub还是Dynamic Invocation Interface来发出请求具有相同的语义,信息的接收者不能分辨出该请求是使用哪种方法来传递的。ORB确定适当的实现代码,传递参数,通过IDL skeleton或dynamic skeleton (如图Figure 4 所示)把控制传给Object Implementation。每一个接口和object adapter 使用不同的Skeletons。为了完成请求,object implementation 可能通过Object Adapter 使用来自ORB的服务。当完成请求后,控制和输出结果返回给client。,图4 Object Implementation 接受请求,对象请求代理(ORB)详细说明,一、ORB结构 Object Implementation选择使用何种Object Adapter。它是根据Object Implementation 需要服务的种类来确定的。图5 显示了clients和object implementations如何使用接口和实现信息。用OMG IDL或Interface Repository来定义接口;该定义用于产生client Stubs和object implementation Skeletons。,图 5 Interface 和 Implementation Repositories,对象请求代理(ORB)详细说明,一、ORB结构 在安装时把object implementation 信息放入Implementation Repository中,以备请求使用。,对象请求代理(ORB)详细说明,二、 ORB结构中的主要构件,CORBA ORB结构,对象请求代理(ORB)详细说明,二、 ORB结构中的主要构件 1) Object Implementation(对象实现): 它定义了实现一个CORBA IDL接口的操作。它可以用各种语言来写,如C, C+, Java, Smalltalk和Ada。,典型的Object Implementation 结构,对象请求代理(ORB)详细说明,二、 ORB结构中的主要构件 2) Client(客户): 这是一个程序实体,它调用了某一个对象实现中操作。对调用这来讲,访问远程对象server应该是透明的。它应该和调用对象中的方法一样简单,如,obj-op(args)。 Client只能根据对象的接口了解对象的逻辑结构,虽然,我们一般都把client看作是一个程序或一个进程,但是,知道一个client都是某一个对象有关的。例如,一个对象的实现可能是其他对象的client。,对象请求代理(ORB)详细说明,二、 ORB结构中的主要构件,典型的Client结构,对象请求代理(ORB)详细说明,二、 ORB结构中的主要构件 Client通过语言映射(language mapping)来使用对象和ORB 接口。当这种映射关系改变时,不需要改变Client。Client不需要了解对象的实现方式,对象适配器及ORB。 3) Object Request Broker(ORB): ORB提供了一种机制,能实现client请求与目标对象实现之间的透明通信。它使得client请求就象一个本地过程调用一样。当一个client引用一个操作,ORB负责找到对象实现,如果需要则透明的激活它,然后把该请求递交给该对象,最后返回应答给调用者。实现时,可以把ORB不作为单个成分,但它只能由它的接口来定义。任何ORB实现方式提供的接口都是可以接受的。可以把接口中的操作分为三类: 1. 对于所有的ORB实现都一样的操作 2. 特定类型对象的操作 3. 与对象实现种特定类别有关的操作,对象请求代理(ORB)详细说明,二、 ORB结构中的主要构件 不同的ORB有不同的实现方式,但都包括有:IDL 编译器, 仓库(repositories),各种Object Adapters,给client提供各种服务集,具有不同属性的对象实现等。 现在有各种不同的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结构中的主要构件 ORB Interface: 一个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): 该接口允许client直接调用ORB所提供得最底层的请求机制。应用程序使用DII动态地把请求传给对象而不需要IDL接口(包括特定stub)。与IDL stub(它只允许RPC模式的请求)不同,DII也允许clients使用无块的延迟同步调用(non-blocking deferred synchronous)(发送操作是独立的)和单向调用(send-only)。,对象请求代理(ORB)详细说明,二、 ORB结构中的主要构件 Dynamic Skeleton Interface(DSI): 与client端的DII类似的,位于server端的接口。DSI允许ORB把请求发送给对象实现,该对象实现不包含编译时所需要的类型。发出请求的client不知道该实现是使用指定类型的IDL skeletons 还是使用动态的skeletons。 Object Adapter: 它帮助ORB把请求传给对象并激活该对象。更重要的是一个object adapter总是与一个对象实现(object implementations)联系的。Object adapter可以被定义来支持特定的对象实现类型(如OODB object adapters用于持续对象(persistence)而library object adapters 用于非远程对象)。,对象请求代理(ORB)详细说明,二、 ORB结构中的主要构件 典型的Object Adapter结构,对象请求代理(ORB)详细说明,三、 ORB的系统集成,不同对象系统集成的方法,对象请求代理(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) 而且,该结构还支持environment-specific inter-ORB protocols (ESIOP),它能优化特定领域如DCE),对象请求代理(ORB)详细说明,二、 ORB结构中的主要构件 2) ORB 互操作结构 该结构引入了ORB域中immediate and mediated bridging(直接桥接和间接桥接)这两个概念。IIOP是广域网桥接的基础。而inter-ORB 桥接既能用于直接桥接,也能用于“半桥接”,使用半桥接能搭建用于间接桥接。使用这些桥接技术,ORB能互操作,而不需要知道彼此的实现细节,如,使用何种特殊的IPC或协议(如ESIOP)来实现CORBA规范。 使用能用IIOP通讯的“半桥接”, 两个或多个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结构中的主要构件 当两个ORB位于同一个域中,它们能直接通讯,多数情况下,这是一个很好的方法。但由于各个机构需要建造各自控制域,因此,这种方法不常使用。当需要的信息离开它的域时,就必须使用桥接来传递信息。桥接的作用是确保信息能完整的从一个ORB映射到另一个ORB。inter-ORB 桥接支持也能提供与非CORBA系统(如Microsofts Component Object Model (COM)之间的互操作。 4) General Inter-ORB Protocol (GIOP) General Inter-ORB Protocol (GIOP) 元件提供了一个标准传输语法(低层数据表示方法)和ORB之间通信的信息格式集。GIOP只能用在ORB与ORB之间,而且,只能在符合理想条件的面向连接传输协议中使用。它不需要使用更高一层的RPC机制。这个协议是简单的(尽可能简单,但不是简单化),可升级的,使用方便。它被设计为可移动的、高效能的表现、较少依靠其它的低层传输协议。当然,由于不同传输使用不同版本的GIOP,它们可能不能直接协作工作,但它能很容易的连接网络域。,对象请求代理(ORB)详细说明,二、 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和不同传输层上的其它相似映射,实现抽象的GIOP定义,如图所示。,对象请求代理(ORB)详细说明,三、 ORB的系统集成,Inter-ORB Protocol 关系,对象请求代理(ORB)详细说明,二、 ORB结构中的主要构件 6) Environment-Specific Inter-ORB Protocols (ESIOPs) 它为使用Environment-Specific Inter-ORB Protocols (ESIOPs)的条件提出了解决方案。Such protocols would be used for “out of the box” interoperation at user sites where a particular networking or distributing computing infrastructure is already in general use. Because of the opportunity to leverage and build on facilities provided by the specific environment, ESIOPs might support specialized capabilities such as those relating to security and administration. While ESIOPs may be optimized for particular environments, all ESIOP specifications will be expected to conform to the general ORB interoperability architecture conventions to enable easy bridging. The inter-ORB bridge support enables bridges to be built between ORB domains that use the IIOP and ORB domains that use a particular ESIOP.,对象请求代理(ORB)详细说明,三、 ORB的系统集成 7) Domain(域) 域把一个系统中的元素按照某种特征分成几个部分。在本结构中,域是一个范围,一个对象的集合,对象是域的成员,这些成员有共同的特征。可以把域看作是一个对象,它本生也可能是其它域的一个成员。,各种类型的域,对象请求代理(ORB)详细说明,二、 ORB结构中的主要构件 CORBA中的域分为以下几个部分: Referencing domain 对象引用范围 Representation domain 信息传输语法和协议范围 Network addressing domain 网络地址范围 Network connectivity domain 可能的网络信息范围 Security domain 特殊安全策略 Type domain 特殊标识符范围 Transaction domain 特定事物服务范围 有两种方式使用域:一是嵌入,一个域包括在另一个域中;二是联合,两个域联合起来使用。当两个域的边界上发生交互作用时,就需要使用一种映射机制(如桥接)在边界处传递相关元素。这里有两种方法,一是间接桥接(mediated bridging),一是直接桥接(immediate bridging)。,对象请求代理(ORB)详细说明,三、 ORB的系统集成,两种桥接技术, 都用于两个域之间,对象请求代理(ORB)详细说明,二、 ORB结构中的主要构件 7.1 Mediated Bridging 使用间接桥接时,在每一个域的边界上,以一种协商的、通用的格式来传递与域有关的元素。可以从以下几个方面来观察间接桥接: (1)公共格式的应用范围可能与两个ORB/域的私下约定不同。 (2)可能有多个公共格式,每一种格式对应一个应用目的。 (3)如果有多个可供选择的公共格式,选择方式可以分为两种,一是静态选择(两个ORB开发商之间),二是动态选择(每一个对象各自选择)。 (4)这种方法随着嵌入式编译(与stub相比)或普通的库代码(如加密例程)的不同,它的格式不同 7.2 Immediate Bridging 使用直接桥接时,在每一个域的边界上,相关的元素直接从一个域的内部格式转到另一个域的内部格式。 可以从以下几个方面来观察间接桥接:,对象请求代理(ORB)详细说明,二、 ORB结构中的主要构件 1)这种方法有被优化的可能性(这时交互不通过第三方)但它是以牺牲灵活性和通用性来取得的。 2)一般只当需要在与边界传

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论