CORBA整理笔记_第1页
CORBA整理笔记_第2页
CORBA整理笔记_第3页
CORBA整理笔记_第4页
CORBA整理笔记_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、1、CORBA的用途:Internet是计算机联接起来,CORBA则使应用软件联接起来。2、CORBA采用的技术:(1)面向对象技术(2)分布式计算机模型(3)多层体系结构:客户层、中间层(CORBA)、资源层(4)接口技术3、CORBA概述:(CORBA的最终目的就是分布式软件集成)由以下形成的:(1)对象请求代理(ORB) (2)CORBA服务:对象生存期服务对象关系服务对象命名服务屏幕剪辑的捕获时间: 2012-04-26 17:21屏幕剪辑的捕获时间: 2012-04-28 8:45持续对象服务对象外化服务事件服务对象查询服务对象属性服务并行服务许可服务对象洽谈服务对象安全服务对象时间

2、服务对象包容服务对象启动服务 (3)CORBA工具集横向工具集:用户界面、信息管理、系统管理、任务管理纵向工具集:医疗保健、金融服务、电讯、电子商务、制造任何功能强大、运行便利的CORBA对象都可以成为CORBA工具集中的候选对象,甚至是CORBA工具集中的名牌对象。 (4)符合CORBA标准的各种应用程序、对象(客户和对象实现)CORBA接口及接口定义IDL1、CORBA是一种以ORB为中间件的伪客户/服务器方式,CORBA灵活的伪客户/服务器方式归功于IDL2、CORBA中的接口:CORBA中至少应该存在三组对象:CORBA客户对象、ORB对象(接口存根IDL Stub,接口框架 IDL

3、Skeleton),CORBA对象实现(1)CORBA接口框架IDL Skeleton:把CORBA对象实现和ORB连接起来,主要包括一些函数的调用代码。(2)CORBA接口存根IDL Skeleton:用来连接CORBA对象和ORB,主要包括一些函数的声明。3、OMG IDL扼要(1)IDL编写CORBA接口的一些基本原则: 注释方式与C+、Java完全相同 可以把相关的一组对象定义在同一个模块中module 模块名模块内容。 必须为每一个参数指明类型 基本类型:long,short,unsigned long,unsigned short,float,double,char,boolean

4、,octet,any 构造数据类型:struct,union,enum,sequence,string 任何声明都有一定的作用域 关键字interface用来定义一个具体对象及其接口 操作的声明类似C+,包括返回类型、函数名称、参数列表三个部分 必须为操作中的每一个参数指明方向属性 类型声明符号typedef的用法和C+中完全一样 每条语句后面都有分号(2)用IDL定义属性及只读属性 属性用attribute定义 只读属性用readonly attribute定义(3)用IDL 定于构造数据类型 枚举类型:enum DAYMON,TUE,WED,THUFRI,SAT,SUN; 结构体:stru

5、ct ATMLocation string city; string blocks; unsigned short number;; 一维序列:typedef sequence arr; 联合体:union (4)用IDL定义继承、多重继承及跨模块继承 单继承 多重继承 跨模块继承(5)用IDL定义异常:exception,raises(6)用IDL定义上下文对象:context 如果此方法既有context定义又有定义异常raises,则raises应放在context之前。 (7)用IDL定义单向请求:oneway 是异步请求的一种需要看的两个重大问题:动态激发方式和orb之间的通信方式四

6、、通过ORB动态激发方式:(一)orb客户端透视: 接口存根IDL Stub,用于静态激发请求 动态激发接口DII,用于动态激发请求 orb接口,用于调用CORBA伪对象有关的操作 接口仓库IR,从中可以获得IDL接口的详细信息(二)corba的动态激发 动态激发是通过动态激发接口DII实现的。 SII和DII的区别: SII在编译时进行对象类型匹配和操作选择,DII则对象类型匹配和操作选择推迟到了执行的时刻。所以,使用DII方式是,应该格外注意异常处理。 采用SII请求服务时,除非函数被声明为oneway,一般情况下采取同步通信方式,而采用DII请求服务时,DII提供了同步和异步通信的两种方

7、式(三)动态激发接口DII:由以下三部分例程构成: 请求管理例程。 各种异步通信例程。 列表管理例程。通过这些例程,可以按如下步骤建立动态请求: 确定需要采用动态请求去实现的服务和服务提供对象 动态获取对象的接口信息 构造请求伪对象 激发请求伪对象、接受响应1、定位服务及服务提供对象(对象洽谈服务)2、提取对象实现的接口信息:对于一个对象实例而言,只要客户发出的请求符合OMG IDL的接口定义,都会接受请求。 在SII中,接口定义从接口存根IDL Stub中获得 在DII中,接口定义从接口仓库IR中获得3、参数列表NVList及“值-名体”NamedValue操作参数表可以通过三种方式建立:

8、自动建立参数表,调用伪对象ORB的函数create_operation_list,自动建立一个参数列表。这个列表一次建立成功,包括参数的名称、类型及方向属性。 逐步建立参数列表,调用伪对象Request的函数add_arg,每次添加一个参数的名称、类型、方向属性及具体取值。 手动建立参数列表,直接调用伪对象ORB的列表操作函数create_list,手控生成参数列表,包括参数的名称、类型及方向属性。无论采用哪种方式,参数表都被记录在一个被定义为伪对象NVList类型的列表中,该列表中的每个元素是一个“值-名体”(NamedValue),表示与操作中某个参数相关的各种信息。4、对于建立参数表的三

9、种不同方式,用户构造请求的步骤也有所区别 如果是自动建立参数列表方式,用户还需要为每个参数赋予具体取值,然后再构造请求伪对象。 如果是逐步建立参数列表方式,用户首先应该构造好一个不含任何参数项的请求伪对象,再逐步添加参数直到符合接口规定。 如果是手动建立参数列表的方式,用户也需要为每个参数赋予具体取值,然后再构造请求伪对象。(1)自动建立参数列表构造请求: 首先,伪对象ORB调用creat_operation_list方法自动建立参数列表(oper从接口仓库里获取) 然后,通过调用上面的方法生成一个类型为NVList的new_list,里面保存NamedVaule 随后,客户程序可以为每个参数

10、赋值。 最后我们调用伪对象ORB中的请求构造函数create_request构造出可以被动态激发的请求伪对象。屏幕剪辑的捕获时间: 2012/2/13 21:29采用自动建立参数列表方式构造请求的步骤可以概括为:获得服务提供者的对象引用获得IR中“操作定义对象”的对象引用自动建立参数列表赋值构造请求(2)逐步建立参数列表构造请求的步骤:获得服务提供者的对象引用构造请求赋值逐步建立参数列表这种方式可以不依赖接口仓库IR5、伪对象TypeCode6、手动建立参数列表方式构造请求的步骤:获得服务提供者的对象引用手动建立参数列表(调用伪对象的orb的create_list方法)赋值构造请求这种方式也不

11、必依赖接口仓库IR对于请求伪对象,我们又可以采取同步通信、异步通信、单向通信三种方式激发7、同步激发动态请求:调用请求为对象Request的invoke函数8、异步激发动态请求: 调用请求对象Request的send函数 通过调用请求对象的get_response函数知道被激发的请求完成与否还是发生异常 send_multiple_requests发送多个请求,get_next_response知道被激发的这些请求完成与否还是发生异常9、单向激发动态请求 一种方式是用oneway定义 还有一种方式是设置send和send_multiple_requests函数设置invoke_flags为IN

12、V_NO_RESPONSE(四)接口仓库IR(五)对象引用初始化五:通过ORB调度对象实现:对象适配器、实现仓库、动态框架接口、接口框架(一)对象适配器(OA) 基本对象适配器(BOA) 实际上也是一个corba伪对象,定义了以下方法 create:产生一个新的对象引用 dispose:注销一个对象引用 get_id:检索在ORB范围内唯一标志一个对象引用的标识 change_implementation:切换对象引用涉及的对象实现 get_principal:返回与对象引用及客户身份鉴别有关的各种信息 impl_is_ready deactivate_impl object_is_ready deactivate_obj 四种激活对象实例的方式:(不懂不懂) 共享服务器策略 持续服务器策略 非共享服务器策略 单个方法服务器策略 库对象适配器(LOA) 面向对象数据库适配器(OODA) BOA未来的替身POA(二)实现仓库:存储供ORB定位、激活对象实现所需要的各种信息。(三)接口框架:为把对象接口中定义的操作与对象实现中的具体方法连接起来提供必要的信息。(四)动态框架接口

温馨提示

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

评论

0/150

提交评论