- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章_编写客户端程序.ppt
第六章 编写客户端程序 第六章 编写客户端程序 基本知识 DII DSI 接口库 上下文 基本知识 请求 请求:是一个CORBA伪对象,与一个请求对象相关联的信息包括目标对象引用,操作名字,0或多个参数,可选的上下文,以及用于存放返回结果或异常信息的环境 封装一个请求有两种格式 静态:请求对象由IDL桩隐式发送 动态:显式创建一个请求对象,选择一种通信方式发送并获取响应结果,由接口Request描述 Request接口 定义了对一个CORBA对象的某一操作的一次调用请求 调用一个操作之前必须首先获取目标对象引用 见P140 调用类型 静态调用:客户程序在编译前就知道IDL接口信息 动态调用: 编写客户程序时尚未确定IDL接口类型 运行时利用接口库服务提供的信息创建一个请求对象 大部分任务是建立请求对象,而不是调用过程本身 选择调用类型 简单性 DII需由程序员手工完成IDL桩所完成的任务 灵活性 调用性能 通信方式 SII支持同步,单向 DII支持三种:同步,单向,延迟同步 小结:能用SII则用SII 编写客户程序——静态 2 动态调用机制 动态调用机制 基本接口 动态调用过程 编程 基本接口 动态调用接口 CORBA::Object:定义每个CORBA对象都必须支持的方法 CORBA:: ORB:定义客户端和服务端都能使用的操作,是内核实现的方法 CORBA:: Request:定义远程对象操作 CORBA:: List:用于构建参数列表,维护一个由构造类型NameValue组成的数据项列表 伪对象 IDL对象类由IDL语言描述并需要向BOA和ORB核心登记和管理,而且IDL对 象类都继承基类CORBAObject 伪对象类尽管也可以由IDL语言描述,但是,它不需要向 BOA和ORB核心登记,也不需要继承CORBAObject类。 伪对象类包括Environment、NameVal ue、NVList、Request、ServerRequest、Context、Princial、TypeCode、BOA和ORB。 CORBA::ORB 见P141 Create_list:生成一个空的NVlist对象 Create_operation_list:生成NVlist对象,利用客户描述的操作参数自动进行填充,并将已赋值的NVlist返回给客户 CORBA::Object(对象引用) 创建一个请求,在目标对象上执行 _request: 创建一个请求对象后,可调用该请求对象的add_in_arg(),add_name_in_arg()等方法为调用操作设置一个或多个实参 _create_request:调用前必须先创建操作的实参 CORBA::Request(操作请求) Add_arg:在请求格式中添加参数 Invoke:完成一个调用/返回操作 Send:根据请求中的信息发起操作,不需等待操作结果就将控制返回给调用者 Pull_reponse:检查请求操作是否完成 Get_reponse:回送执行请求的结果信息 NVList(参数与返回值) 用于构造参数列表的接口 Add_item:把一个新的参数加到指定的列表中 Free_memory: 动态调用过程 客户端DII编程 实现规范 客户可以使用DII对任意多个接口的对象发起调用 对一个接口的一部分对象发起调用,另一部分用静态存根调用 可对一个接口的一个对象有时使用DII,有时使用静态存根 用一组API获得和解析一个调用,实现并返回结果 编写DII 获取目标对象引用 创建请求对象 传递实际参数并指定返回类型 发送请求并等待响应 提取结果 步骤 向目标对象询问描述目标对象接口信息的对象,并将其放在接口库中 从接口库的对象中,找到所要调用的操作的描述 建立调用参数表,并逐一填入参数 创建请求。请求中包含目标对象的引用,方法名,参数表和返回值 调用请求,并作善后处理 1 获取目标对象引用 因为编译客户程序时目标对象的接口类型通常尚未确定,因而没有可用帮助类 扩展两个bind()方法 2 创建请求对象 对目标对象引用的某一操作的一次调用 发起请求时,请求对象被打包通过ORB发送到服务端 使用SII时,该过程对程序员是透明的 使用DII,必须由程序员自己显式创建并发送请求对象 必须由程序员自己显式地创建并发送请求对象,_request()/_create_request org.omg.CORBA.Request request = manager._request(“open”); 3 传递实参并指定返回类型 请求对象中操作的实际参数表被表示为一个NVlist实例,是若干NamedValue对象的列表,每个NamedValue是一三元组(名字,值,标志) 4 发送请求和提取结果 inv
您可能关注的文档
最近下载
- 七年级下学期体育与健康教案全集(54课时).doc VIP
- 2025年绿色矿山建设技术挑战与机遇报告.docx
- 住房公积金贷款全权代理委托书范本.docx VIP
- 2024-2025学年人美版(2024)美术小学一年级上册教学设计(附教材目录).docx VIP
- 【北师大版】二年级《劳动实践指导手册》第1课《清洗我的小水杯》课件.pptx VIP
- 高中通用技术作品实验报告.doc VIP
- 急性有机磷农药中毒诊治.ppt VIP
- JB_T 7334-2016 手拉葫芦.pdf VIP
- 燃气管道施工方案.doc VIP
- DB15T 3962.3-2025绿色矿山建设规范 第3部分:黄金行业.pdf VIP
文档评论(0)