可移植对象适配器.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
可移植对象适配器 11.2 简介 POA技术提供地最基本地服务是:对象创建、伺服程序注册以及请求地调调度。POA提供了一整套特性和服务,可以利用它来编写可扩缩的、高性能的服务器应用程序,它在合理控制资源请求方面起着重要的作用。 11.3 POA基本原理 在一个服务器应用程序中,POA负责创建对象、激活对象以及将对各个对象的请求调度到它们各自的伺服程序上,通过POA,CORBA对象完成了编程语言所提供的伺服程序的相互对应关系。 当一个对象处于激活状态时,该对象就可以接收并执行请求。当对象得到一个请求后,该对象必须由伺服程序进行具体化,或给它以具体形式。一个给定对象仅由一个单个的伺服程序在给定点及时进行具体化,但超时以后,可以创建许多伺服程序实例来具体化一个CORBA对象。最后每一个伺服程序释放后就结束了它与相对应的CORBA对象之间的连接。 具体化和释放是应用于伺服程序的,创建和撤消是应用于CORBA对象的。 11.3.1 基本的请求调度 基本调度如下: (1) 首先,服务器应用程序以某种方式为CORBA对象到处一个对象引用。客户机可能通过命名服务或者交易服务或者从另一个请求接收它来获得到处对象引用。对象引用从逻辑上“指向”目标CORBA对象,像C++指针指向它底层的C++对象一样。 (2) 其次,在应用程序的控制下,客户程序ORB使用对象引用来决定对象驻留在何处和如何访问它,然后它向服务器ORB发送请求。 (3) 再次,服务器ORB接收请求并将其调度给拥有该目标对象的POA。 (4) 最后,POA通过调用具体化该目标对象的伺服程序来继续执行该调度。 11.3.2 关键的POA实体 有三种关键实体涉及到POA 对象引用 POA负责创建对象引用。 对象标识符 在POA主机的作用域内,每一个对象通过调用一个octet序列的对象标识符进行识别。当POA创建一个新的CORBA对象时,典型情况是,它就将对象标识符嵌入在对象引用的对象密钥部分。 伺服程序 引用程序直接通过POA可以创建并注册伺服程序来具体化对象。同样,应用程序可以向POA提供伺服程序管理器对象,当需要执行一个请求时,POA就能创建伺服程序。应用程序甚至可以提供一个默认的伺服程序。与POA策略有关,在任何给定的时间,单个的伺服程序可以用POA注册来具体化一个和多个的CORBA对象。 POA通过目标对象的对象标识符与合适的伺服程序之间的映射来调度请求。一个伺服程序也可以通过对一个伺服程序的_this调用隐式创建一个新的CORBA对象,并为其注册一个伺服程序。 11.4 POA策略 POA规范的关键特性就是一个应用程序可以包含多个POA实例。每一个POA实例代表具有相似性能的一组对象。这些性能通过POA创建时所指定的POA策略来控制。所有应用程序至少有一个POA,也就是Root POA,它具有标准的策略集。 策略是用来定义POA性能的对象,该对象在策略内部创建。向POA和POAManager接口一样,CORBA规范指出,在标准的PortableServer模块中定义POA策略接口。 像所有的策略接口一样,POA策略类从CORBA::Policy接口派生出来。 Policy接口及相关的类型提供的管理操作 (1) 通过基本的Policy接口,利用policy_type只读属性可以确定策略的实际派生类型。 PolicyType是由OMG控制的一个标志值,这样可以确保所有的标准接口都有一个唯一的标志 (2) copy操作可以克隆(clone) 一个Policy对象。返回的引用指向目标Policy对象的一个全新的拷贝。 POA策略 (3) destory操作用来撤消目标Policy对象。 (4) PoicyList用来将指向各种派生Policy对象的引用分组来形成策略集。POA创建操作接收一个PolicyList类型的参数,这个参数可以将策略设置成新的POA。 策略对象是局部约束对象。也就是任何试图将它们的引用作为参数传递给标准的CORBA操作或通过ORB::object_to_string将它们转换成字符串的操作都将产生CORBA::MARCHAL异常。 11.4.1 CORBA对象生存期范围 假如一个客户程序向一个当前没有运行或没有激活的目标对象发出一个请求,如果必要的话,ORB工具就会为该对象激活一个服务器进程,然后激活对象本身。服务器进程和目标对象的任何激活对发出请求的客户来说都是透明的。 持久对象:生存期超过创建或激活它们的某一特定进程的CORBA对象。 除了持久对象外,其它的对象的生命周期由进程的生命周期甚至于创建它们的对象适配器来决定。 11.4.2 对象标识符 POA通过它的对象标识符识别每一个对象。

文档评论(0)

181****7523 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档