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

下载本文档

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

文档简介

Tongweb及中间件技术培训

Tongweb及中间件技术培训一、中间件的定义顾名思义,中间件是处于应用软件和系统软件之间的一类软件,是独立于硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件,是客户方与服务方之间的连接件,是需要进行二次开发的中间产品。应该说,中间件技术是伴随网络而发展起来的一种面向对象的技术。以前的计算机系统多是单机系统,多个用户是通过联机终端来访问的,没有网络的概念。网络出现后,产生了Client/Server的计算服务模式,多个客户端可以共享数据库服务器和打印服务器等等。随着网络的更进一步发展,许多软件需要在不同厂家的网络产品、硬件平台、网络协议异构环境下运行,应用的规模也从局域网发展到广域网。在这种情况下,Client/Server模式的局限性也就暴露出来了,于是中间件应运而生。中间件是位于操作系统和应用软件之间的通用服务,它的主要作用是用来屏蔽网络硬件平台的差异性和操作系统与网络协议的异构性,使应用软件能够比较平滑地运行于不同平台上。同时中间件在负载平衡、连接管理和调度方面起了很大的作用,使企业级应用的性能得到大幅提升,满足了关键业务的需求。

Tongweb及中间件技术培训一、中间件的定义

如今,市场上又推出了很多新的概念,例如三层结构、构件、Web服务,其中风头最劲的当属SOA(面向服务的架构)。实际上,他们都不是一个产品,而是一种技术的实现方法,是开发一个软件的一种方法论。我们知道,最早软件开发方法就是编程、写代码的,其缺点在于无法复用,为此提出了构件化的软件开发方法,通过把编程中一些常用功能进行封装,并规范统一接口,供其它程序调用,例如我们开发一个新软件,可能要用到构件1、构件2、构件3,那么,我们只要对其进行本地组装,就可以得到我们想要的应用软件。在互联网得到普及重视之后,软件开发方法在构件化基础上又有新发展,核心思想是软件并不需要囊括构件,所需要的仅仅是构件的运行结果,例如编写一个通信传输软件,就可以到网上寻找构件,并提出服务请求,得到结果后返回,而不需要下载构件并打包,这就是现在所说的SOA。想要现实SOA,就要规范构件接口,同时还要规范构件所提交的服务结果,而实现这种方法的基础,如今看来只有中间件。

Tongweb及中间件技术培训一、中间件的定义

中间件是一种独立的软件系统或服务程序,分布式应用软件借助其在不同的技术之间共享资源。中间件就是位于操作系统和应用软件之间的一个软件层,它向各种应用软件提供服务,使不同的应用进程能在屏蔽掉平台差异的情况下,通过网络互相通信。

Tongweb及中间件技术培训一、中间件的定义

应用应用应用编程接口(API)中间件平台接口平台接口操作系统硬件平台操作系统硬件平台

Tongweb及中间件技术培训二、中间件的分类

中间件所包括的范围十分广泛,针对不同的应用需求涌现出多种各具特色的中间件产品。但至今中间件还没有一个比较精确的定义,因此,在不同的角度或不同的层次上,对中间件的分类也会有所不同。由于中间件需要屏蔽分布环境中异构的操作系统和网络协议,它必须能够提供分布环境下的通讯服务,我们将这种通讯服务称之为平台。基于目的和实现机制的不同,我们将平台分为以下主要几类:

远程过程调用中间件、数据库中间件、消息中间件、基于对象请求代理的中间件、事务处理中间件

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的任务,程序不直接与其它程序通话,并且它们不涉及网络通讯的复杂性。

Tongweb及中间件技术培训二、中间件的分类

4)基于对象请求代理的中间件

随着对象技术与分布式计算技术的发展,两者相互结合形成了分布对象计算,并发展为当今软件技术的主流方向。1990年底,对象管理集团OMG首次推出对象管理结构OMA(ObjectManagementArchitecture),对象请求代理(ObjectRequestBroker)是这个模型的核心组件。它的作用在于提供一个通信框架,透明地在异构的分布计算环境中传递对象请求。CORBA规范包括了ORB的所有标准接口。1991年推出的CORBA1.1定义了接口描述语言OMGIDL和支持Client/Server对象在具体的ORB上进行互操作的API。CORBA2.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)事务处理监控中间件

通讯管理,为client和server之间提供了多种通讯机制,包括请求响应、会话、排队、订阅发布和广播等。

事务处理监控能够为大量的client提供服务,比如飞机定票系统。如果server为每一个client都分配其所需要的资源的话,那server将不堪重负(如图2所示)。但实际上,在同一时刻并不是所有的client都需要请求服务,而一旦某个client请求了服务,它希望得到快速的响应。事务处理监控在操作系统之上提供一组服务,对client请求进行管理并为其分配相应的服务进程,使server在有限的系统资源下能够高效地为大规模的客户提供服务。

Tongweb及中间件技术培训二、中间件的分类

5)事务处理监控中间件

Tongweb及中间件技术培训三、当前主要的中间件技术支持平台

软件系统的复杂性不断增长、软件人员的频繁流动和软件行业的激烈竞争迫使软件企业提高软件质量、积累和固化知识财富,并尽可能地缩短软件产品的开发周期。于是集软件复用、分布式对象计算、企业级应用开发等技术为一体的“基于中间件的软件开发”(CBSD,ComponentBasedSortwareDevelopment)应运而生,这种技术以软件架构为组装蓝图,以可复用软件构件为组装模块,支持组装式软件的复用,大大提高了软件生产效率和软件质量。为此国风外对于这一技术的研究正在不断深入,同时大型的软件公司(例如sun,microsoft)及软件组织机构(OMG)都推出了支持中间件技术的软件平台。当前支持服务器端中间件技术的平台

考察当前主流的分布计算技术平台,主要有OMG的CORBA、Sun的J2EE和MicrosoftDNA2000。它们都是支持服务器端中间件技术开发的平台,但都有其各自的特点,将分别阐述如下:

Tongweb及中间件技术培训三、当前主要的中间件技术支持平台

CORBA规范的近期发展,增加了面向Internet的特性,服务质量控制和CORBA构件模型(CORBAComponentModel)。

Internet集成特性包括了针对IIOP传输的防火墙(Firewall)和可内部操作的定义了URL命名格式的命名服务(NamingService)。

服务质量控制包括能够具有质量控制的异步消息服务,一组针对嵌入系统的CORBA定义,一组关于实时CORBA与容错CORBA的请求方案。

CORBACCM(CORBAComponentModel)技术,是在支持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,而在服务器端分布式应用的构造形式,则包括了JavaServlet、JSP(JavaServerPage)、EJB等多种形式,以支持不同的业务需求,而且Java应用程序具有“Writeonce,runanywhere”的特性,使得J2EE技术在发布计算领域得到了快速发展。

J2EE简化了构件可伸缩的、其于构件服务器端应用的复杂度,虽然DNA2000也一样,但最大的区别是DNA2000是一个产品,J2EE是一个规范,不同的厂家可以实现自己的符合J2EE规范的产品,J2EE规范,是众多厂家参与制定的,它不为Sun所独有,而且其支持跨平台的开发,目前许多大的分布计算平台厂商都公开支持与J2EE兼容技术。

Tongweb及中间件技术培训三、当前主要的中间件技术支持平台

从Internet技术应用的角度,EJB和Servlet,JSP一起成为新一代应用服务器的技术标准,EJB中的Bean可以分为会话Bean和实体Bean,前者维护会话,后者处理事务,现在Servlet负责与客户端通信,访问EJB,并把结果通过JSP产生页面传回客户端。

J2EE的优点是,服务器市场的主流还是大型机和UNIX平台,这意味着以Java开发构件,能够做到"Writeonce,runanywhere",开发的应用可以配置到包括Windows平台在内的任何服务器端环境中去。

Tongweb及中间件技术培训三、当前主要的中间件技术支持平台

3)MicrosoftDNA2000

MicrosoftDNA2000(DistributedinterNetApplications)是Microsoft在推出Windows2000系列操作系统平台基础上,在扩展了分布计算模型,以及改造BackOffice系列服务器端分布计算产品后发布的新的分布计算体系结构和规范。

在服务器端,DNA2000提供了ASP、COM、Cluster等的应用支持。目前,DNA2000在技术结构上有着巨大的优越性。一方面,由于Microsoft是操作系统平台厂商,因此DNA2000技术得到了底层操作系统平台的强大支持;另一方面,由于Microsoft的操作系统平台应用广泛,支持该系统平台的应用开发厂商数目众多,因此在实际应用中,DNA2000得到了众多应用开发商的采用和支持。

DNA2000融合了当今最先进的分布计算理论和思想,如事务处理、可伸缩性、异步消息队列、集群等内容。DNA使得开发可以基于Microsoft平台的服务器构件应用,其中,如数据库事务服务、异步通讯服务和安全服务等,都由底层的分布对象系统提供。

Tongweb及中间件技术培训四、当前主流的中间件技术的对比分析

可扩展性:集成框架必须是可扩展的,能够协调不同的设计模式和实现策略,可以根据企业计算的需求进行裁剪,并能迅速反应市场的变化和技术的发展趋势。通过保证当前应用的可重用性,最大程度地保护企业的投资。

中间件技术——

对象请求代理(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结构

图2ORB接口结构

对象请求代理(ORB)详细说明一、ORB结构Clinet使用DynamicInvocationinterface(与目标对象的接口无关)或OMGIDLstub(与目标对象接口有关的stub)来发出请求。由于某种原因,Client也可以直接与ORB联系。对象实现使用OMGIDL生成的skeleton或动态skeleton以向上传送(up-call)的方式接受请求。对象实现也可以调用ObjectAdapter和ORB。可以用两种方式来定义对象接口:一是用OMGInterfaceDefinitionLanguage(OMGIDL)来定义接口。该语言根据可能对对象进行的操作和这些操作使用的参数来定义对象类型。第二种方法是,把接口(interface)放入InterfaceRepositoryservice中;该服务把接口中的元素描述成一个对象。任何能实现ORB的软件中,InterfaceDefinitionLanguage(可能根据文档的内容而改变)和InterfaceRepository具有相同的作用。一个client要使用ObjectReference完成请求,它必须知道对象的类型的及具体的操作。Client初始化请求有两种方法,一是通过调用目标对象的stubroutines,二是动态的创造请求(如图3所示)。

对象请求代理(ORB)详细说明一、ORB结构

图3Client使用Stub或DynamicInvocationInterface

对象请求代理(ORB)详细说明一、ORB结构

不论使用Stub还是DynamicInvocationInterface来发出请求具有相同的语义,信息的接收者不能分辨出该请求是使用哪种方法来传递的。ORB确定适当的实现代码,传递参数,通过IDLskeleton或dynamicskeleton(如图Figure4所示)把控制传给ObjectImplementation。每一个接口和objectadapter使用不同的Skeletons。为了完成请求,objectimplementation可能通过ObjectAdapter使用来自ORB的服务。当完成请求后,控制和输出结果返回给client。

图4ObjectImplementation接受请求

对象请求代理(ORB)详细说明一、ORB结构

ObjectImplementation选择使用何种ObjectAdapter。它是根据ObjectImplementation需要服务的种类来确定的。图5显示了clients和objectimplementations如何使用接口和实现信息。用OMGIDL或InterfaceRepository来定义接口;该定义用于产生clientStubs和objectimplementationSkeletons。

图5Interface和ImplementationRepositories

对象请求代理(ORB)详细说明一、ORB结构

在安装时把objectimplementation信息放入ImplementationRepository中,以备请求使用。

对象请求代理(ORB)详细说明二、ORB结构中的主要构件

CORBAORB结构

对象请求代理(ORB)详细说明二、ORB结构中的主要构件

1)ObjectImplementation(对象实现):它定义了实现一个CORBAIDL接口的操作。它可以用各种语言来写,如C,C++,Java,Smalltalk和Ada。

典型的ObjectImplementation结构

对象请求代理(ORB)详细说明二、ORB结构中的主要构件

2)Client(客户):这是一个程序实体,它调用了某一个对象实现中操作。对调用这来讲,访问远程对象server应该是透明的。它应该和调用对象中的方法一样简单,如,obj->op(args)。

Client只能根据对象的接口了解对象的逻辑结构,虽然,我们一般都把client看作是一个程序或一个进程,但是,知道一个client都是某一个对象有关的。例如,一个对象的实现可能是其他对象的client。

对象请求代理(ORB)详细说明二、ORB结构中的主要构件

典型的Client结构

对象请求代理(ORB)详细说明二、ORB结构中的主要构件

Client通过语言映射(languagemapping)来使用对象和ORB接口。当这种映射关系改变时,不需要改变Client。Client不需要了解对象的实现方式,对象适配器及ORB。

3)ObjectRequestBroker(ORB):

ORB提供了一种机制,能实现client请求与目标对象实现之间的透明通信。它使得client请求就象一个本地过程调用一样。当一个client引用一个操作,ORB负责找到对象实现,如果需要则透明的激活它,然后把该请求递交给该对象,最后返回应答给调用者。实现时,可以把ORB不作为单个成分,但它只能由它的接口来定义。任何ORB实现方式提供的接口都是可以接受的。可以把接口中的操作分为三类:

1.对于所有的ORB实现都一样的操作

2.特定类型对象的操作

3.与对象实现种特定类别有关的操作

对象请求代理(ORB)详细说明二、ORB结构中的主要构件

不同的ORB有不同的实现方式,但都包括有:IDL编译器,仓库(repositories),各种ObjectAdapters,给client提供各种服务集,具有不同属性的对象实现等。

现在有各种不同的ORB实现。一个client可以同时访问两个由不同ORB实现管理的对象引用(objectreferences)当这两个ORB需要一起工作时,它们能区分出各自的对象引用。Client不需要对此负责。ORBCore是ORB的一个组成部分,它提供对象的基本表示和与请求的通信。

有四种不同类型的ORB:

1.Client-andImplementation-residentORB

2.Server-basedORB

3.System-basedORB

4.Library-basedORB

对象请求代理(ORB)详细说明二、ORB结构中的主要构件

ORBInterface:

一个ORB是一个逻辑实体(logicalentity),它可以用各种方法实现(如一个或多个过程,或一个libraries集合)。为了减轻编写程序的困难,CORBA规范定义了一个抽象的接口。该接口提供各种帮助函数。

CORBAIDLstubsandskeletons:

它相当于client、server应用程序和ORB之间的“胶水”。由CORBAIDL编译器自动实现CORBAIDL定义与目标编程语言之间的转换。

使用编译器可以减少clientstub和serverskeletons之间的潜在矛盾。

DynamicInvocationInterface(DII):

该接口允许client直接调用ORB所提供得最底层的请求机制。应用程序使用DII动态地把请求传给对象而不需要IDL接口(包括特定stub)。与IDLstub(它只允许RPC模式的请求)不同,DII也允许clients使用无块的延迟同步调用(non-blockingdeferredsynchronous)(发送操作是独立的)和单向调用(send-only)。

对象请求代理(ORB)详细说明二、ORB结构中的主要构件

DynamicSkeletonInterface(DSI):

与client端的DII类似的,位于server端的接口。DSI允许ORB把请求发送给对象实现,该对象实现不包含编译时所需要的类型。发出请求的client不知道该实现是使用指定类型的IDLskeletons还是使用动态的skeletons。

ObjectAdapter:

它帮助ORB把请求传给对象并激活该对象。更重要的是一个objectadapter总是与一个对象实现(objectimplementations)联系的。Objectadapter可以被定义来支持特定的对象实现类型(如OODBobjectadapters用于持续对象(persistence)而libraryobjectadapters用于非远程对象)。

对象请求代理(ORB)详细说明二、ORB结构中的主要构件

典型的ObjectAdapter结构

对象请求代理(ORB)详细说明三、ORB的系统集成

不同对象系统集成的方法

对象请求代理(ORB)详细说明四、ORB的互操作性

ORB的互操作性提供了种易于理解的、方便的途径来支持网络中的对象,这些对象由多样的,不同种类的(与CORBA兼容的)ORB管理。由于CORBA中的元素能以很多方式结合在一起以满足各种不同的需要,因此取得“interORBability”的方法很方便。

1)支持互操作的元素

能支持互操作的元素有::

1.ORB互操作结构

2.Inter-ORB桥支持(bridgesupport)

3.GeneralandInternetinter-ORBProtocols(GIOPsandIIOPs)

而且,该结构还支持environment-specificinter-ORBprotocols(ESIOP),它能优化特定领域如DCE)

对象请求代理(ORB)详细说明二、ORB结构中的主要构件

2)ORB互操作结构

该结构引入了ORB域中immediateandmediatedbridging(直接桥接和间接桥接)这两个概念。IIOP是广域网桥接的基础。而inter-ORB桥接既能用于直接桥接,也能用于“半桥接”,使用半桥接能搭建用于间接桥接。使用这些桥接技术,ORB能互操作,而不需要知道彼此的实现细节,如,使用何种特殊的IPC或协议(如ESIOP)来实现CORBA规范。

使用能用IIOP通讯的“半桥接”,两个或多个ORB能相互桥接在一起。这种方法既能用于单机ORB,也能用于网络ORB如ESIOP。IIOP也能用于实现ORB中的内部消息机制。

3)Inter-ORBBridgeSupport

互操作结构明确指出ORB中不同域的作用,这些域包括对象引用域(objectreferencedomain),类型域(typedomain),安全域(safetydomain)(如thescopeofaPrincipalidentifier),事物域(transactiondomain)等等。

对象请求代理(ORB)详细说明二、ORB结构中的主要构件

当两个ORB位于同一个域中,它们能直接通讯,多数情况下,这是一个很好的方法。但由于各个机构需要建造各自控制域,因此,这种方法不常使用。当需要的信息离开它的域时,就必须使用桥接来传递信息。桥接的作用是确保信息能完整的从一个ORB映射到另一个ORB。inter-ORB桥接支持也能提供与非CORBA系统(如Microsoft’sComponentObjectModel(COM))之间的互操作。

4)GeneralInter-ORBProtocol(GIOP)

GeneralInter-ORBProtocol(GIOP)元件提供了一个标准传输语法(低层数据表示方法)和ORB之间通信的信息格式集。GIOP只能用在ORB与ORB之间,而且,只能在符合理想条件的面向连接传输协议中使用。它不需要使用更高一层的RPC机制。这个协议是简单的(尽可能简单,但不是简单化),可升级的,使用方便。它被设计为可移动的、高效能的表现、较少依靠其它的低层传输协议。当然,由于不同传输使用不同版本的GIOP,它们可能不能直接协作工作,但它能很容易的连接网络域。

对象请求代理(ORB)详细说明二、ORB结构中的主要构件

5)InternetInter-ORBProtocol(IIOP)

InternetInter-ORBProtocol(IIOP)元件指出如何通过TCP/IP连接交换GIOP信息。IIOP为Internet提供了一个标准的协作工作协议,它使兼容的ORB能基于现在流行的协议和产品进行“outofthebox”方式的协作工作。它也能被用于两个半桥(half-bridges)之间的协议。该协议能用于任何ORB与IP(InternetProtocol)域之间的协作工作,除非ORB选择了特殊的协议。这时,它是TCP/IP环境下基本的inter-ORB协议,最普遍的传输层。

IIOP与GIOP的关系就象特特殊语言与OMGIDL之间的关系;GIOP能被映射到不同层,它能指定协议。就象IDL不能见招完整的程序一样,GIOP本身也不能提供完整的协作工作。IIOP和不同传输层上的其它相似映射,实现抽象的GIOP定义,如图所示。

对象请求代理(ORB)详细说明三、ORB的系统集成

Inter-ORBProtocol关系

对象请求代理(ORB)详细说明二、ORB结构中的主要构件

6)Environment-SpecificInter-ORBProtocols(ESIOPs)

它为使用Environment-SpecificInter-ORBProtocols(ESIOPs)的条件提出了解决方案。Suchprotocolswouldbeusedfor“outofthebox”interoperationatusersiteswhereaparticularnetworkingordistributingcomputinginfrastructureisalreadyingeneraluse.Becauseoftheopportunitytoleverageandbuildonfacilitiesprovidedbythespecificenvironment,ESIOPsmightsupportspecializedcapabilitiessuchasthoserelatingtosecurityandadministration.WhileESIOPsmaybeoptimizedforparticularenvironments,allESIOPspecificationswillbeexpectedtoconformtothegeneralORBinteroperabilityarchitectureconventionstoenableeasybridging.Theinter-ORBbridgesupportenablesbridgestobebuiltbetweenORBdomainsthatusetheIIOPandORBdomainsthatuseaparticularESIOP.

对象请求代理(ORB)详细说明三、ORB的系统集成7)Domain(域)

域把一个系统中的元素按照某种特征分成几个部分。在本结构中,域是一个范围,一个对象的集合,对象是域的成员,这些成员有共同的特征。可以把域看作是一个对象,它本生也可能是其它域的一个成员。

各种类型的域

对象请求代理(ORB)详细说明二、ORB结构中的主要构件

CORBA中的域分为以下几个部分:

Referencingdomain–对象引用范围

Representationdomain–信息传输语法和协议范围

Networkaddressingdomain–网络地址范围

Networkconnectivitydomain–可能的网络信息范围

Securitydomain–特殊安全策略

Typedomain–特殊标识符范围

Transactiondomain–特定事物服务范围

有两种方式使用域:一是嵌入,一个域包括在另一个域中;二是联合,两个域联合起来使用。当两个域的边界上发生交互作用时,就需要使用一种映射机制(如桥接)在边界处传递相关元素。这里有两种方法,一是间接桥接(mediatedbridging),一是直接桥接(immediatebridging)。

对象请求代理(ORB)详细说明三、ORB的系统集成

两种桥接技术,都用于两个域之间

对象请求代理(ORB)详细说明二、ORB结构中的主要构件7.1MediatedBridging

使用间接桥接时,在每一个域的边界上,以一种协商的、通用的格式来传递与域有关的元素。可以从以下几个方面来观察间接桥接:

(1)公共格式的应用范围可能与两个ORB/域的私下约定不同。

(2)可能有多个公共格式,每一种格式对应一个应用目的。

(3)如果有多个可供选择的公共格式,选择方式可以分为两种,一是静态选择(两个ORB开发商之间),二是动态选择(每一个对象各自选择)。

(4)这种方法随着嵌入式编译(与stub相比)或普通的库代码(如加密例程)的不同,它的格式不同

7.2ImmediateBridging

使用直接桥接时,在每一个域的边界上,相关的元素直接从一个域的内部格式转到另一个域的内部格式。

可以从以下几个方面来观察间接桥接:

对象请求代理(ORB)详细说明二、ORB结构中的主要构件1)这种方法有被优化的可能性(这时交互不通过第三方)但它是以牺牲灵活性和通用性来取得的。

2)一般只当需要在与边界传递纯管理(不交换技术)才使用这种方法。例如,当需要在两个相似ORB的安全管理域传递消息时,就不需要使用通用的间接标准。

综上所述,当两个ORB/域使用私有机制时,就比较难于区分这两种方法。

7.3Inter-DomainFunctionality的位置

从逻辑上讲,不论是间接桥接还是直接桥接,只要是域间桥(inter-domainbridge),它在两个域中都有元素。但是,一方面,域可以跨越ORB边界,而ORB也可以跨越机器和系统边界;另一方面,一个机器或一个进程可能跨越多个ORB。

对象请求代理(ORB)详细说明二、ORB结构中的主要构件从工程学的角度来讲,这意味着一个域间桥中的元素根据ORB或系统的不同而采取分散或同处的分布方式。例如,如果一个ORB包括两个安全域,那么,域间桥就可以在ORB的内部实现。同样的,也可能在一个进程或系统中实现两个ORB或域间的桥。从工程学来讲,这种情况下,域间桥是有限的,它局限于单个系统或进程。如果所有的桥都用这种方式实现,那么系统或进程之间的协作只能在单个域或ORB中发生。7.4桥接级别(BridgingLevel)

桥接可以在ORB级或更高以及实现。它们分别叫做嵌入(in-line)级桥接和请求级(request-level)桥接。请求级桥接使用CORBAAPI,包括使用DynamicSkeletonInterface,来接受和流出(issue)请求。但是,也存在“implicitcontext”类,它与某些引用联合起来,持有如事物信息和安全信息等的ORB

温馨提示

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

评论

0/150

提交评论