分布对象通信模型

上传人:油条 文档编号:1230359 上传时间:2017-06-04 格式:PPT 页数:36 大小:351KB
返回 下载 相关 举报
分布对象通信模型_第1页
第1页 / 共36页
分布对象通信模型_第2页
第2页 / 共36页
分布对象通信模型_第3页
第3页 / 共36页
分布对象通信模型_第4页
第4页 / 共36页
分布对象通信模型_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《分布对象通信模型》由会员分享,可在线阅读,更多相关《分布对象通信模型(36页珍藏版)》请在金锄头文库上搜索。

1、分布对象通信模型,西北工业大学计算机学院,Why Need DO?,应用背景MP/RPC/Socket模型的局限性:透明性差;扩展困难;编程复杂;分布应用系统的异构固有特性;继承性设计需求;规模化发展趋势对象技术应用于分布计算已成为主流目前现状OMG CORBA DCE Remote ObjectMicrosoft DCOMSUN RMI,分布对象模型,DO的基本概念,对象引用接口动作异常垃圾收集,分布对象的绑定,Distr_object* obj_ref;/Declare a systemwide object referenceobj_ref = ;/ Initialize the ref

2、erence to a distributed objectobj_ref- do_something();/ Implicitly bind and invoke a method(a)Distr_object objPref;/Declare a systemwide object referenceLocal_object* obj_ptr;/Declare a pointer to local objectsobj_ref = ;/Initialize the reference to a distributed objectobj_ptr = bind(obj_ref);/Expli

3、citly bind and obtain a pointer to the local proxyobj_ptr - do_something();/Invoke a method on the local proxy(b),An example with implicit binding using only global referencesAn example with explicit binding using global and local references,RMI的参数传递,The situation when passing an object by reference

4、 or by value.,What is CORBA?,Common Object Request Broker Architecture是由OMG组织定义的分布对象计算模型,并得到了大部分IT厂商的支持。面向对象的异构分布计算平台与硬件、网络、OS和语言无关资源:www.omg.org,CORBA架构(1),CORBA的基本概念,ORB Object Request Broker作用:方便异地对象之间的通信实现:提供了一些机制,如请求和回答的打包/解包,定位远程对象,给出对象引用等。CORBA对象 用IDL语言描述其构成的对象,能够被别的程序或对象使用。反映了客户和服务之间的接口,其本质是

5、一个虚拟对象。与语言无关的。实现体 作用:具体实现了相应的CORBA对象,与具体编程语言相关的。IDL Interface Definition Language作用:定义CORBA对象的接口;是CORBA屏蔽语言异构的重要途径;不是一种实现语言;定义了CORBA对象。,CORBA公共服务,CORBA架构(2),CORBA可以看作是面向对象的分布网络编程方式CORBA Common Object Services提供了与应用领域无关的的标准化接口,它可以看作是分布环境中被开发者集中使用的一个应用。CORBA Object Services包含一组较低层次的重要基础对象组成,Common Fac

6、ilities和CORBA Object Services一样,提供为所有分布对象程序所共用的横向服务,但和Object Services不同的是主要面向终端用户。Domain Interfaces为特定的应用领域提供接口,这些统一的接口为实现各领域之间的相互访问和集成框架提供了方便。Application Interfaces是为某个特定的应用定义的接口,这些接口是由开发者根据应用的具体需要定义的。因此OMG没有也不可能为这些应用提供标准。,ORB体系结构,ORB接口和核心,ORB接口提供对客户和对象实现都有用的操作,如对象引用和字符之间的转换,为动态引用请求创建参数列表等。ORB支持静态调

7、用和动态调用;客户方在了解服务对象的时用静态调用;不知道服务对象时用动态引用。ORB提供多种通信方式:同步通信、延迟通信和单向(One-way)通信。ORB作为通信中介,屏蔽了操作系统和网络通讯细节,使接口与实现分离、服务方与被服务方分离,大大降低了开发分布应用的复杂程度。,IDL,Interface Define Language定义分布对象的接口,是一种说明语言,而非实现语言CORBA与平台无关的主要实现技术之一。其编译结果是与特定实现语言相关的实现代码 stub和skeleton。例子:interface Simplevoid Hello ( in string name);readon

8、ly string myself_; ,Stub和Skeleton,从RPC的客户/服务stub演变而来编译IDL接口时产生stub和skeleton Stub与客户程序一起编译连接,Skeleton与服务方程序一起编译连接stub和keleton”分别相当于客户和服务器与ORB之间的“胶水stub定义了客户程序如何调用服务方的服务,起远地对象在本地的代理作用。它包括执行参数打包的代码,屏蔽了底层传输协议及数据表示等网络细节;skeleton定义了怎样将客户请求分派给相应的服务,并将服务的结果返回给相应的客户,因此skeleton也向对象实现屏蔽了网络细节。,CORBA应用开发流程,对象适配器

9、,Object Adapter位于服务对象实现和ORB核心之间,实现CORBA对象与CORBA实现体的匹配。背景是一个服务器内有多个服务对象,一个服务对象内有多个方法。OA减轻了ORB核心的负担,使ORB核心尽量精简。OA是对象实现使用ORB功能的主要方法。对象适配器有多种类型基本适配器 Basic Object Adapter可移植适配器 Portable Object Adapter非远程对象的库适配器。,对象适配器的基本功能,对象注册:对象适配器允许编程语言实体(如WINDOWS系统中的EXE文件)注册成为CORBA对象实现。注册内容和注册步骤等细节依赖于具体编程语言。 产生对象引用:对

10、象适配器根据服务器的需要产生对象引用。 对象激活:如果某个请求调用的对象不处于活动状态,则对象适配器将其激活。 请求解复用(Request demultiplexing):对象适配器必须与ORB协同工作,确保在通过多个连接接收请求时,不会由于其中的某个连接造成阻塞。 对象上调(Object upcalls):对象适配器负责将请求正确地调度给注册对象,基本对象适配器BOA,可移植对象适配器POA,POA的优点,允许编程者构造可在不同ORB产品之间进行移植的对象实现。支持对象的透明激活,所谓的“透明”指服务器代码不用考虑对象激活的细节;允许单个Servant同时支持多个对象标识。 允许多个不同的P

11、OA实例共存于同一个服务器中。支持编程量和运行开销均较小的临时对象,即应优化对临时IOR的联编。支持隐含激活由POA管理的Servant。允许对象实现最大限度地控制对象的行为。例如,定义对象id和对象状态间的关系 ;管理对象状态的存储与检索;决定某时刻对象是否存在。避免ORB维护对象的持久信息,如单个对象的状态及标识,状态存储的场所,特定标识是否使用过等,确保ORB的精简。提供一种扩展机制,允许通过设置策略控制POA执行对象实现的行为。,CORBA对象模型,CORBA对象的定位,非分布对象的定位:C+:对象指针Java:对象引用CORBA对象的定位可交互的对象应用:分布“智能指针”,包含了定位

12、分布对象所需的必要信息。临时IOR和持久IOR : 临时IOR的生命期和相关服务进程的生存期一致;而持久IOR永久性 的标识一个分布对象,从而与服务进程的生存期无关。,IOR实例,The organization of an IOR with specific information for IIOP.,CORBA对象的直接绑定,利用IOR的信息直接和服务对象邦定使用用临时对象,CORBA远程方法调用,CORBA远程方法调用,DII 和 DSI,Dynamic Invoke InterfaceDynamic Skeleton Interface,方法调用模式,同步调用,单向调用,延迟同步调用,

13、获取对象引用,串化IORCORBA:ORB:object_to_string CORBA:ORB :string_to_object 自举 CORBA:ORB :resolve_initial_references名字服务交易服务工厂方法,CORBA扩展,CORBA评价,性能相对于自己编写分布通信代码的应用,基于CORBA的应用会产生一些性能损耗:如,对象联编带来额外的远程调用,GIOP消息打包/解析的开销,数据拷贝与内存管理,端点与请求的多路复用,上下文切换与同步的开销等等。不得不在性能与可扩展性、健壮性、可维护性等特性之间进行折衷。使用限制 没有实现了所有CORBA特性(如CORBA服务、设施与领域接口,异步消息,容错性,组件模型等)的ORB产品。,作业,从http:/www.mico.org/下载mico开发一个基于mico的简单应用如echo等。以小组为单位对Mico源码进行分析Ior解析Orb初始化远程方法调用过程分析参数打包和解包分析POA分析,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号