版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、是是ORB的构件的构件 提供一致的接口定义存储机制提供一致的接口定义存储机制管理和提供对管理和提供对OMG IDL所指定对象定义集合的访问所指定对象定义集合的访问1概述概述ORB提供对对象集合的分布式访问提供对对象集合的分布式访问方法是运用方法是运用OMG IDL中指定的对象公共定义接口中指定的对象公共定义接口接口池为相关对象的接口定义集合接口池为相关对象的接口定义集合提供存储、分布和管理提供存储、分布和管理ORB可以运用两种方式的对象定义:可以运用两种方式的对象定义:经过将信息从过程上合并到经过将信息从过程上合并到stub程序中程序中 例如,作为将例如,作为将C言语子程序映射到通讯协议中的代
2、码言语子程序映射到通讯协议中的代码经过动态可访问的接口池访问到经过动态可访问的接口池访问到 例如,作为经过特定于例如,作为经过特定于OMG IDL接口访问的接口访问的“接口对象接口对象ORB可以运用在接口池中维护的对象定义可以运用在接口池中维护的对象定义解释和处置恳求中提供的值:解释和处置恳求中提供的值: 提供恳求签名的类型检查恳求能否经过提供恳求签名的类型检查恳求能否经过DII或或stub发出的发出的 协助检查接口承继关系的正确性协助检查接口承继关系的正确性 协助提供不同协助提供不同ORB实现之间的互操作性实现之间的互操作性由于接口池中所维护对象定义的接口是公共的由于接口池中所维护对象定义的
3、接口是公共的因此客户和效力也可以运用因此客户和效力也可以运用Repository中维护的信息中维护的信息例如,例如,Repository可用于:可用于: 管理接口定义的安装和分布管理接口定义的安装和分布 提供提供CASE环境的构件例如,接口阅读器环境的构件例如,接口阅读器 提供言语绑定的接口信息例如编译器提供言语绑定的接口信息例如编译器 提供最终用户环境的构件例如,菜单栏构造器提供最终用户环境的构件例如,菜单栏构造器2IR的范围的范围 接口对象作为一组对象在接口池中维护接口对象作为一组对象在接口池中维护可以经过一组特定于可以经过一组特定于OMG IDL接口定义访问它们接口定义访问它们接口定义包
4、含它支持的操作描画,接口定义包含它支持的操作描画, 包括参数类型、例外和它可以运用的环境信息包括参数类型、例外和它可以运用的环境信息此外,接口池还存储常量值此外,接口池还存储常量值 它可以用在其它接口定义中或者仅仅为方便程序员而定义它可以用在其它接口定义中或者仅仅为方便程序员而定义接口池还存储接口池还存储 typecode,这是以构造化术语描画类型的值,这是以构造化术语描画类型的值 接口池运用模块作为组织接口的方式接口池运用模块作为组织接口的方式并且根据称号查找这些组织并且根据称号查找这些组织模块可以包含常量、类型定义、例外情况、接口定义和其它模块模块可以包含常量、类型定义、例外情况、接口定义
5、和其它模块例如,模块可以对应于例如,模块可以对应于OMG IDL定义的组织定义的组织它们也可以用于代表为管理和其它用途定义的组织它们也可以用于代表为管理和其它用途定义的组织接口池是代表其中信息的一组对象接口池是代表其中信息的一组对象它们是在该透明对象构造上运作的操作它们是在该透明对象构造上运作的操作详细实现可以选择这些对象详细实现可以选择这些对象 能否永久存在能否永久存在 或者在或者在repository上的操作援用时创建上的操作援用时创建也可以有有效提取信息的操作也可以有有效提取信息的操作获得描画整个接口或整个操作的信息块获得描画整个接口或整个操作的信息块ORB可以访问多个接口池可以访问多个
6、接口池缘由缘由:两个两个ORB对接口池的实现有不同的要求对接口池的实现有不同的要求对象实现例如对象实现例如OODB希望提供它本人的类型信息希望提供它本人的类型信息 或者它希望将不同的附加信息或者它希望将不同的附加信息存储在不同的存储在不同的repository中中运用运用typecode和和repository标识符的目的是标识符的目的是允许不同的允许不同的repository坚持它们本人的信息一致坚持它们本人的信息一致接口池信息的一个关键用途是接口池信息的一个关键用途是将将ORB衔接在一同衔接在一同当对象在恳求中从一个当对象在恳求中从一个ORB传到另一个传到另一个ORB时时能够有必要创建新对
7、象代表接纳能够有必要创建新对象代表接纳ORB中的传送对象中的传送对象这能够需求在接纳这能够需求在接纳ORB的接口池中找到接口信息的接口池中找到接口信息 经过从发送经过从发送ORB的的repository中获取中获取repository标识符标识符可以在接纳可以在接纳ORB的的repository中查找接口中查找接口为胜利操作,为胜利操作, 该对象的接口必需该对象的接口必需 同时安装在两个同时安装在两个repository中并且有一样的中并且有一样的repository标识符标识符3实现相关性实现相关性 接口池中的实现需求某些方式的永久对象存储接口池中的实现需求某些方式的永久对象存储通常永久对象
8、存储类型用于通常永久对象存储类型用于决议接口定义如何分布和决议接口定义如何分布和/或在网络域中复制或在网络域中复制假设运用文件系统提供对象存储假设运用文件系统提供对象存储那么在单个机器上能够只需一组接口的独一副本那么在单个机器上能够只需一组接口的独一副本假设运用假设运用OODB提供对象存储提供对象存储那么可以维护接口定义的多个副本那么可以维护接口定义的多个副本每个副本都分布在几台机器上每个副本都分布在几台机器上以提供高可用性和负载平衡以提供高可用性和负载平衡接口池包含接口池包含允许程序在运转时确定和处置类型信息的信息允许程序在运转时确定和处置类型信息的信息程序可以尝试在任何时候经过对象援用上的
9、程序可以尝试在任何时候经过对象援用上的get_interface访问接口池访问接口池一旦信息曾经安装在一旦信息曾经安装在repository中中那么程序、那么程序、stub和对象可以运用它和对象可以运用它对象对象repository的更新必需小心的更新必需小心以防止破坏环境以防止破坏环境在更新接口池时在更新接口池时某些接口池能够运用某些接口池能够运用Object Services定义的事务和并发控制定义的事务和并发控制例如,支持例如,支持Transaction Service的的repository将承继将承继Repository接口接口它包括更新操作它包括更新操作 Transaction接口
10、接口它包含事务管理操作它包含事务管理操作(4)接口池接口元素接口池接口元素 称号和标识称号和标识 类型和类型码类型和类型码 接口对象接口对象 IR的构造与导航的构造与导航称号和标识称号和标识 简单称号在接口池中没有必要是独一的简单称号在接口池中没有必要是独一的它们通常与显式或隐式的模块有关它们通常与显式或隐式的模块有关在该环境中,接口定义通常被以为是显式模块在该环境中,接口定义通常被以为是显式模块限定范围的称号独一地标识接口池中的限定范围的称号独一地标识接口池中的 模块、接口、常量、类型定义、例外情况、属性和操作模块、接口、常量、类型定义、例外情况、属性和操作repository标识符全局地表
11、示标识符全局地表示模块、接口、常量、类型定义、例外情况、属性和操作模块、接口、常量、类型定义、例外情况、属性和操作它们可以用于同步多个它们可以用于同步多个ORB和和Repository上的定义上的定义 类型和类型码类型和类型码TypeCode 类型码类型码 是标识调用参数类型与属性类型的值是标识调用参数类型与属性类型的值 可以确定类型的完好构造可以确定类型的完好构造 可以从可以从IR或或IDL编译器中获得编译器中获得 类型码具有多种用途:类型码具有多种用途:在在DII中,被用于指示实践参数的类型中,被用于指示实践参数的类型由由IR运用,表示作为许多运用,表示作为许多 OMG IDL 声明中一部
12、分的类型规约声明中一部分的类型规约它们对于它们对于any 类型的语义极为关键类型的语义极为关键 笼统地讲,类型码笼统地讲,类型码 包含包含 一个一个 “kind域域 以及以及 适于该适于该 Kind 的参数集合的参数集合 例如,描画例如,描画 long 的的 类型码具有类型码具有kind tk_long ,无参数,无参数 描画描画 sequence 的类型码具有的类型码具有 kind tk_sequence包含两个参数:包含两个参数: 10 and boolean接口对象接口对象接口池管理的关于每个接口的信息接口池管理的关于每个接口的信息都以下面类型的接口池对象集合的方式维护都以下面类型的接口
13、池对象集合的方式维护Repository: 接口池名空间中最顶层的模块;接口池名空间中最顶层的模块;它包括常量、类型定义、例外、接口,它包括常量、类型定义、例外、接口,或者值类型定义以及模块或者值类型定义以及模块ModuleDef: 接口与值类型的的逻辑组;接口与值类型的的逻辑组;它包括常量、类型定义、例外、接口,它包括常量、类型定义、例外、接口,或者值类型定义以及其它模块或者值类型定义以及其它模块InterfaceDef: 接口定义;接口定义;它包括常量、类型、例外、操作以及属性。它包括常量、类型、例外、操作以及属性。ValueDef: 值类型定义,值类型定义,它包含常量表、类型表、例外表、
14、操作表、属性表及成员它包含常量表、类型表、例外表、操作表、属性表及成员ValueBoxDef: boxed值类型定义值类型定义ValueMemberDef:值类型成员定义值类型成员定义AttributeDef: 接口或值类型属性的定义接口或值类型属性的定义OperationDef: 接口或值类型操作的定义接口或值类型操作的定义;包含参数列表与例外包含参数列表与例外TypedefDef: 根本接口,非接口或值类型的根本接口,非接口或值类型的named type定义定义ConstantDef:常量定义常量定义ExceptionDef: 操作所引发例外的定义操作所引发例外的定义每个接口池对象的接口规
15、范列出了由该对象维持的属性每个接口池对象的接口规范列出了由该对象维持的属性 这些属性多数与这些属性多数与OMG IDL语句直接对应语句直接对应一个实现可以一个实现可以 选择维持附加的属性以便于管理池选择维持附加的属性以便于管理池或者记录关于接口的附加信息或者记录关于接口的附加信息扩展扩展IR接口的实现该当采用接口的实现该当采用 导出新接口导出新接口 而不是修正规范接口而不是修正规范接口 实现实现CORBA规范为接口池对象定义了操作的一个最小集规范为接口池对象定义了操作的一个最小集IR的一个实现能够提供的附加操作的一个实现能够提供的附加操作 可以包含提供实体版本化的操作可以包含提供实体版本化的操
16、作 以及规范的反编译以及规范的反编译 IR的构造与导航的构造与导航 接口池中的定义是按照接口池对象集合的方式进展组织的接口池中的定义是按照接口池对象集合的方式进展组织的这些对象的组织方式与定义的组织方式一样:这些对象的组织方式与定义的组织方式一样:一些对象定义包含其它对象一些对象定义包含其它对象在接口池中定位一个接口的方式有三种:在接口池中定位一个接口的方式有三种:1.从从ORB直接获取一个直接获取一个 InterfaceDef 对象对象2.利用一个名序列在模块空间中航行利用一个名序列在模块空间中航行3.定位与一个特定池表示对应的定位与一个特定池表示对应的InterfaceDef 对象对象假设
17、一个对象的类型在编译时辰尚未确定假设一个对象的类型在编译时辰尚未确定那么适于直接获取一个那么适于直接获取一个InterfaceDef 对象对象经过利用对象的援用调用经过利用对象的援用调用get_interface 操作操作可以在接口池中获得关于该对象的信息可以在接口池中获得关于该对象的信息该信息可以被用于在该对象上执行操作该信息可以被用于在该对象上执行操作当需求一个特定命名的接口时当需求一个特定命名的接口时那么适于在模块名空间中航行那么适于在模块名空间中航行从接口池的根模块开场从接口池的根模块开场可以根据名字获得入口可以根据名字获得入口 当在一个接口池中查找一个对应的入口时当在一个接口池中查找
18、一个对应的入口时那么适于经过那么适于经过ID定位定位InterfaceDef 对象对象经过在两个池中运用一样的标识经过在两个池中运用一样的标识可以在一个池中获得一个接口的接口标识可以在一个池中获得一个接口的接口标识 然后从另一个池获得那个接口的信息然后从另一个池获得那个接口的信息那个池能够近一些那个池能够近一些或者包含关于接口的附加信息或者包含关于接口的附加信息5IR接口接口一组公共的操作被用于在一组公共的操作被用于在IR中定位对象中定位对象这些操作在接口这些操作在接口IRObject, Container, and Contained等中被定义等中被定义一切的一切的IR对象承继对象承继IRO
19、bject接口接口它提供了一个区别对象详细类型的操作它提供了一个区别对象详细类型的操作属于容器的对象从属于容器的对象从Container接口中承继接口中承继navigation操作操作被其它对象包容的对象从被其它对象包容的对象从Contained接口中承继接口中承继navigation操作操作IDLType 接口被一切标识接口被一切标识IDL类型的类型的IR对象所承继对象所承继包括包括interfaces, typedefs, 及及 anonymous typesTypedefDef 接口被一切接口被一切named non-interface types对象多承继对象多承继根本接口根本接口 I
20、RObjectContainedContainer IDLType及及 TypedefDef不是暂时性的不是暂时性的IR中的一切字符串数据被按照中的一切字符串数据被按照ISO 8859-1 coded character set中的定义编码中的定义编码7、POA设计目的设计目的模型元素模型元素模型体系构造模型体系构造POA创建创建援用创建援用创建对象活动形状对象活动形状恳求处置恳求处置隐式激活隐式激活多线程多线程DSI位置透明性位置透明性POA接口接口 1POA的设计目的的设计目的允许编程人员构造允许编程人员构造 可以在不同可以在不同ORB产品上移植的对象实现产品上移植的对象实现提供对永久对象
21、的支持提供对永久对象的支持允许编程人员构造的对象实现允许编程人员构造的对象实现存活时间从持有对象援用的客户角度存活时间从持有对象援用的客户角度跨越多个效力器存活时间跨越多个效力器存活时间提供对透明对象激活的支持提供对透明对象激活的支持允许单个的效力同时支持多个对象标识允许单个的效力同时支持多个对象标识允许多个不同的允许多个不同的POA实例存在于一个效力器中实例存在于一个效力器中提供对提供对transient对象的支持,破费最小的编程代价与负载对象的支持,破费最小的编程代价与负载l提供对隐式效力激活的支持,对象标识由提供对隐式效力激活的支持,对象标识由POA分配分配l允许对象实现最大能够地为对象
22、行为担任允许对象实现最大能够地为对象行为担任l 特别地,一个实现可以控制对象的行为特别地,一个实现可以控制对象的行为l经过经过 建立定义对象标识的数据建立定义对象标识的数据l决议对象标识与对象形状之间的关系决议对象标识与对象形状之间的关系l 管理对象形状的存储与检索管理对象形状的存储与检索l提供呼应恳求时将被执行的代码提供呼应恳求时将被执行的代码l以及在恣意时辰决议对象能否存在以及在恣意时辰决议对象能否存在l防止恳求防止恳求ORB维护描画独立对象的永久形状维护描画独立对象的永久形状l它们的它们的 标识,它们的形状存在何处标识,它们的形状存在何处l某些标识值能否以前曾经被运用过某些标识值能否以前
23、曾经被运用过l一个对象能否曾经被彻底删除一个对象能否曾经被彻底删除 等等等等l提供一个扩展机制提供一个扩展机制l用于将战略信息与用于将战略信息与POA中实现的对象进展关联中实现的对象进展关联(2)POA的模型元素的模型元素客户客户 是一个计算语境是一个计算语境它经过对一个对象的援用向其提出恳求它经过对一个对象的援用向其提出恳求效力器效力器 是一个计算语境是一个计算语境对象的实现体存在于其中对象的实现体存在于其中普通情况下,一个效力器对应于一个进程普通情况下,一个效力器对应于一个进程对象对象 是一个具有标识、接口、及实现的程序体是一个具有标识、接口、及实现的程序体 从一个客户的视角,对象的标识封
24、装在对象的援用中从一个客户的视角,对象的标识封装在对象的援用中 POA模型定义了从效力器视角看对象的标识模型定义了从效力器视角看对象的标识它由对象实现经过它由对象实现经过POA接口显式管理接口显式管理Servant效力体是实现一个或多个对象恳求的编程言语对象或实体效力体是实现一个或多个对象恳求的编程言语对象或实体效力体普通存在于一个效力器进程语境中效力体普通存在于一个效力器进程语境中向一个对象运用提出的恳求由向一个对象运用提出的恳求由ORB中转中转并转变为向一个特定效力体的调用并转变为向一个特定效力体的调用在一个对象生命时间内,它能够与多个效力体相关在一个对象生命时间内,它能够与多个效力体相关
25、所谓相关是指向它的恳求将以效力体为目的所谓相关是指向它的恳求将以效力体为目的Object Id一个对象标识是一个值,由一个对象标识是一个值,由POA及用户提供的实现运用及用户提供的实现运用以标识一个特定的笼统以标识一个特定的笼统CORBA对象对象对象标识值对于客户是隐藏的,由援用封装对象标识值对于客户是隐藏的,由援用封装对象标识没有规范的方式对象标识没有规范的方式它们由它们由POA作为未解释的作为未解释的8进制位序列管理进制位序列管理Object Reference一个对象援用封装了一个对象标识及一个一个对象援用封装了一个对象标识及一个POA标识标识在一个特定在一个特定ORB实现中的一个详细援
26、用包含更多的信息实现中的一个详细援用包含更多的信息例如例如 效力器位置效力器位置被思索的被思索的POA等等(它能够包含它能够包含POA的全名的全名 及从根部到特定及从根部到特定POA的一切的一切POA的名字的名字)援用也能够不包含对象标识援用也能够不包含对象标识 但却包含由但却包含由ORB管理的紧缩过的值管理的紧缩过的值它们可以被影射为对象标识它们可以被影射为对象标识POA 可移植对象适配器是在效力器语境中的一个可标识实体可移植对象适配器是在效力器语境中的一个可标识实体 每个每个POA为对象标识提供了一个名空间为对象标识提供了一个名空间并为其它并为其它POAnested or child提供一
27、个名空间提供一个名空间与与POA相关的战略描画了在那个相关的战略描画了在那个POA中对象实现的特征中对象实现的特征Nested POAs为一个效力器中的对象构成了一个层次式的名空间为一个效力器中的对象构成了一个层次式的名空间Policy战略是一个运用程序的与战略是一个运用程序的与POA相关的对象相关的对象以指定在那个以指定在那个POA中实现的对象共享的特征中实现的对象共享的特征本规范定义一些战略,以控制本规范定义一些战略,以控制POA的线程模型的线程模型 以及一些其它与对象管理相关的选项以及一些其它与对象管理相关的选项POA ManagerPOA管理器是一个封装一个或多个管理器是一个封装一个或
28、多个POA处置形状的对象处置形状的对象利用利用POA管理器上的操作管理器上的操作开发者可以使向相关开发者可以使向相关POA发出的恳求被排队或丢弃发出的恳求被排队或丢弃开发者也可以利用开发者也可以利用POA管理器去活管理器去活POAServent Manager效力体管理器是一个可以与效力体管理器是一个可以与POA关联的对象关联的对象效力体管理器效力体管理器 担任管理一个对象与特定效力体的关联担任管理一个对象与特定效力体的关联并担任决议一个对象能否存在并担任决议一个对象能否存在ORB可以调用效力体管理器上的操作,以激活或去活效力体可以调用效力体管理器上的操作,以激活或去活效力体Adaptor A
29、ctivator一个适配器激活器是可以与一个适配器激活器是可以与POA关联的对象关联的对象当一个恳求被从目前不存在的子当一个恳求被从目前不存在的子POA收到时收到时ORB将激活适配器激活器上的一个操作将激活适配器激活器上的一个操作适配器激活器可以根据命令创建所需的适配器激活器可以根据命令创建所需的POAORB是对客户与效力器皆可见的一个笼统是对客户与效力器皆可见的一个笼统POA是对效力器可见的对象是对效力器可见的对象用户提供的实现被注册在用户提供的实现被注册在POA中中 客户客户拥有援用拥有援用 并向它发出恳求并向它发出恳求ORB POA 与与 实现实现共同决议共同决议操作需求调用哪个效力体操
30、作需求调用哪个效力体并执行调用并执行调用(3)模型体系构造模型体系构造 假设假设 POA 支持支持 RETAIN 战略战略那么它维护一张表那么它维护一张表map:活动对象表活动对象表Active Object MapAOP将对象标识与活动效力体关联起来将对象标识与活动效力体关联起来每个关联组成了一个活动对象每个关联组成了一个活动对象假设假设POA包含包含USE_DEFAULT_SERVANT 战略战略那么一个缺省的效力体被注册到那么一个缺省的效力体被注册到POA中中相反,假设相反,假设POA 包含包含USE_SERVANT_MANAGER 战略战略那么一个用户编写的效力体管理器被注册到那么一个
31、用户编写的效力体管理器被注册到POA中中假设活动对象表未被运用假设活动对象表未被运用或者一个恳求对应的对象未出如今活动对象表中或者一个恳求对应的对象未出如今活动对象表中POA或者运用缺省的效力器执行恳求或者运用缺省的效力器执行恳求 或者它调用效力体管理器获取一个效力体来执行恳求或者它调用效力体管理器获取一个效力体来执行恳求假设假设 RETAIN 战略被运用战略被运用那么由效力体管理器前往的效力体由活动对象表坚持那么由效力体管理器前往的效力体由活动对象表坚持否那么,效力体仅被用于处置一个恳求否那么,效力体仅被用于处置一个恳求4创建创建POA 为实现一个需求为实现一个需求POA的对象的对象需求效力
32、器运用程序获取一个需求效力器运用程序获取一个POA对象对象一个特殊的一个特殊的POA对象,根对象,根rootPOA,由,由ORB 进展管理进展管理并在初始对象名并在初始对象名“RootPOA下下利用利用ORB初始化接口向运用程序提供初始化接口向运用程序提供运用程序开发者可以利用根运用程序开发者可以利用根POA创建对象创建对象开发者可以创建新开发者可以创建新POA:以允许开发者为新以允许开发者为新POA声明特定的战略声明特定的战略并提供一个不同的适配器激活器即效力体管理器并提供一个不同的适配器激活器即效力体管理器 也允许开发者划分对象的名空间也允许开发者划分对象的名空间由于对象标识的解释与由于对
33、象标识的解释与POA相关相关开发者可以独立地为多个对象集合控制恳求处置开发者可以独立地为多个对象集合控制恳求处置一个一个 POA 是是 利用父利用父POA上的上的create_POA 操作操作作为一个曾经存在作为一个曾经存在POA的子的子POA创建的创建的POA对象不是永久性的对象不是永久性的ORB不保管不保管POA的任何形状的任何形状效力器程序担任创建并初始化适宜的效力器程序担任创建并初始化适宜的POA对象对象创建适宜的创建适宜的POA对象对象对于跨越多个效力器生命时间的永久对象特别重要对于跨越多个效力器生命时间的永久对象特别重要为支持在以前的效力器进程中创建的一个对象援用为支持在以前的效力
34、器进程中创建的一个对象援用运用程序必需重新创建出运用程序必需重新创建出创建对象援用的那个创建对象援用的那个POA,以及祖先,以及祖先POA每个被重新创建的每个被重新创建的POA必需与以前必需与以前POA的名字、战略一样的名字、战略一样5援用创建援用创建对象援用封装了对象援用封装了对象标识信息对象标识信息以及以及ORB需求的信息需求的信息用以标识并定位与对象关联的效力器以及用以标识并定位与对象关联的效力器以及POA援用按照以下方式被创建:援用按照以下方式被创建:效力器运用程序创建援用效力器运用程序创建援用调用调用POA的的create_reference 与与 create_reference_
35、with_id 操作操作从与从与POA相关的信息中,或者从传给操作的参数中相关的信息中,或者从传给操作的参数中在创建对象援用的过程中,它们将笼统的对象活化,在创建对象援用的过程中,它们将笼统的对象活化,但它不将其与一个活动的效力体关联但它不将其与一个活动的效力体关联l效力器运用程序显式地激活一个效力体效力器运用程序显式地激活一个效力体l利用利用activate_object l 或或 activate_object_with_id 操作操作l将其与一个对象标识关联将其与一个对象标识关联l一旦一个效力体被激活一旦一个效力体被激活l效力器运用程序可以效力器运用程序可以l 利用利用servant_t
36、o_reference l 或或 id_to_reference 操作操作l将效力体影射为对应的援用将效力体影射为对应的援用l效力器运用程序可以使一个效力体隐式地激活本身效力器运用程序可以使一个效力体隐式地激活本身l 这种情况只需在这种情况只需在POA利用利用lIMPLICIT_ACTIVATION战略被创建的前提下才会发生战略被创建的前提下才会发生l假设尝试获取一个与非激活效力体对应的对象援用假设尝试获取一个与非激活效力体对应的对象援用lPOA能够自动分配一个产生的独一的能够自动分配一个产生的独一的Object Idl 给效力体并激活结果对象给效力体并激活结果对象l非激活效力体的援用可以非激
37、活效力体的援用可以l经过调用经过调用POA:servant_to_reference而被获得而被获得l或者或者经过在允许这种转换的编程言语中经过在允许这种转换的编程言语中l 执行从效力体到一个援用类型的隐式或显式转换执行从效力体到一个援用类型的隐式或显式转换6对象活动形状对象活动形状 CORBA对象可以与一个活动效力体关联对象可以与一个活动效力体关联假设假设 POA 具有具有RETAIN 战略战略那么效力体与它关联的对象标识被参与那么效力体与它关联的对象标识被参与POA的活动对象表的活动对象表效力器运用程序本身显式激活单独的对象效力器运用程序本身显式激活单独的对象 (经过经过activate_
38、object 或者或者 activate_object_with_id 操作操作)效力器运用程序指点效力器运用程序指点POA根据命令激活对象根据命令激活对象 (经过使经过使POA激活一个用户提供的效力体管理者激活一个用户提供的效力体管理者)在某些环境下在某些环境下POA 可以隐式地激活一个对象可以隐式地激活一个对象当效力器运用程序试图为一个尚未激活的效力体当效力器运用程序试图为一个尚未激活的效力体(即,未与一个对象标识关联即,未与一个对象标识关联)获取一个援用获取一个援用假设假设USE_DEFAULT_SERVANT战略也起作用战略也起作用效力器运用程序指点效力器运用程序指点POA经过调用一个
39、单个的效力体来激活未知的对象经过调用一个单个的效力体来激活未知的对象假设假设 POA 拥有拥有 NON_RETAIN 战略战略对于每个恳求对于每个恳求POA 可以运用可以运用 一个缺省效力体一个缺省效力体 或者或者 一个效力体管理者一个效力体管理者定位一个活动效力体定位一个活动效力体从从POA的角度看效力体仅在一个恳求过程中是活动的的角度看效力体仅在一个恳求过程中是活动的POA不将不将servant-object 关联参与活动对象表关联参与活动对象表一个恳求必需可以承载一个恳求必需可以承载(conveying)目的对象的对象标识目的对象的对象标识以及以及 创建目的对象援用的创建目的对象援用的P
40、OA标识标识当一个客户发出一个恳求时当一个客户发出一个恳求时ORB 首先定位正确的效力器首先定位正确的效力器 (也许在需求时启动它也许在需求时启动它)然后在那个效力器中定位正确的然后在那个效力器中定位正确的POA假设假设 POA 不存在于效力器进程中不存在于效力器进程中运用程序有时机经过运用适配器激活器重新创建所需的运用程序有时机经过运用适配器激活器重新创建所需的POA一旦一旦 ORB 曾经定位了曾经定位了POA它将恳求传送给那个它将恳求传送给那个POA对那个恳求的进一步处置取决于对那个恳求的进一步处置取决于 与那个与那个POA关联的战略关联的战略 以及对象的目前活动形状以及对象的目前活动形状
41、7恳求处置恳求处置假设假设 POA 有有RETAIN 战略战略POA 将在活动对象表中查找将在活动对象表中查找能否有与来自恳求的对象标识值关联的效力体能否有与来自恳求的对象标识值关联的效力体假设这样的一个效力体存在假设这样的一个效力体存在那么那么 POA 调用效力体上的相应方法调用效力体上的相应方法假设假设 POA 有有NON_RETAIN 战略战略或者有或者有RETAIN 战略但未在活动对象表中发现效力体战略但未在活动对象表中发现效力体 POA 进展下面的动作:进展下面的动作:假设假设 POA 有有USE_DEFAULT_SERVANT 战略战略一个缺省的效力器曾经与该一个缺省的效力器曾经与
42、该POA关联关联那么那么POA 将调用该效力体上的相应方法将调用该效力体上的相应方法假设没有效力体与假设没有效力体与POA关联关联POA引发引发OBJ_ADAPTER 系统例外系统例外l假设假设 POA 有有USE_SERVANT_MANAGER 战略战略l且一个效力器管理者曾经与该且一个效力器管理者曾经与该POA关联关联l那么那么POA将调用它的将调用它的incarnate 或或 preinvoke l以发现能够处置恳求的一个效力体以发现能够处置恳求的一个效力体l假设没有与假设没有与POA关联的效力体管理器关联的效力体管理器lPOA引发引发OBJ_ADAPTER 系统例外系统例外l假设假设U
43、SE_OBJECT_MAP_ONLY 战略起作用战略起作用lPOA 引发引发 OBJECT_NOT_EXIST 系统例外系统例外 一个一个 POA 在创建时可以附带的一个战略在创建时可以附带的一个战略指示它的对象可以被隐式地激活指示它的对象可以被隐式地激活一个非活动的效力体能够经过某个操作被隐式地激活一个非活动的效力体能够经过某个操作被隐式地激活该操作逻辑上需求一个被分配给那个效力体的对象标识该操作逻辑上需求一个被分配给那个效力体的对象标识一个对象的隐式激活涉及分配一个系统产生的对象标识一个对象的隐式激活涉及分配一个系统产生的对象标识以及在活动对象表中注册效力体与对象标识以及在活动对象表中注册
44、效力体与对象标识与隐式激活的对象关联的接口由效力体决议与隐式激活的对象关联的接口由效力体决议 8隐式激活隐式激活 支持隐式激活的操作包括:支持隐式激活的操作包括:POA:servant_to_reference 操作操作带有效力体参数,并前往一个援用带有效力体参数,并前往一个援用POA:servant_to_id 操作操作带有效力体参数,并前往一个对象标识带有效力体参数,并前往一个对象标识由影射言语支持的操作由影射言语支持的操作用来为一个效力体获取一个对象援用或者对象标识用来为一个效力体获取一个对象援用或者对象标识 例如,例如, C+中的中的_this() 效力体成员函数效力体成员函数 为效力
45、体前往一个对象援用为效力体前往一个对象援用由影射言语支持的隐式转换由影射言语支持的隐式转换将效力体转换为一个对象援用或者一个对象标识将效力体转换为一个对象援用或者一个对象标识后两类操作依赖于影射言语后两类操作依赖于影射言语9多线程多线程 为了允许开发出运用线程的效力器为了允许开发出运用线程的效力器当在一个多线程环境中运用时当在一个多线程环境中运用时必需指定必需指定POA 的行为以及相关的接口的行为以及相关的接口指定这种行为,指定这种行为, 既不需求既不需求ORB 必需在一个线程环境中被支持必需在一个线程环境中被支持也不需求也不需求 ORB 在处置恳求时必需运用线程在处置恳求时必需运用线程仅需求
46、仅需求: 假设一个假设一个 ORB确实提供对多线程的支持确实提供对多线程的支持那么这些行为将被那么这些行为将被ORB支持支持这允许一个编程人员以在多个这允许一个编程人员以在多个ORB间可移植的方式间可移植的方式充分利用支持线程的多个充分利用支持线程的多个ORBsPOA的处置受的处置受ORB中可用的与线程有关的调用的影响:中可用的与线程有关的调用的影响:work_pending, perform_work,run, 及及 shutdown POA 线程模型线程模型 当与多线程当与多线程ORB实现一同被运用时实现一同被运用时POA 支持两种线程模型:支持两种线程模型:ORB controlled 与与single thread behavior
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云存储安全事件应急响应-洞察分析
- 有机肥替代化肥研究-第2篇-洞察分析
- 维修物联网-洞察分析
- 关于志愿者的倡议书范文800字(8篇)
- 《导论与基本原则》课件
- AI技术在医疗领域的未来展望与挑战
- 从宝洁的成功看企业战略管理的重要性
- 农产品跨境电商营销策略
- 以乐启智家庭中的音乐启蒙实践与反思
- 从教育角度看小学生阅读习惯的培养
- 投资控股合同
- 2025版国家开放大学专本科《计算机应用基础》一平台在线形考任务 (形考作业一至三)试题及答案
- 古代汉语专题-003-国开机考复习资料
- 【MOOC】信号与系统-西北工业大学 中国大学慕课MOOC答案
- 《半导体的基本知识》教学设计
- 科研团队协作管理制度
- 拓展训练融入初中体育教学的创新策略与实施路径
- 学校中层干部管理提升培训
- 服装设计基础学习通超星期末考试答案章节答案2024年
- 黑龙江省哈尔滨市第九中学校2024-2025学年高三上学期9月考试历史学科试卷
- 2024全国高中数学联赛山东赛区预赛试卷(含解析)
评论
0/150
提交评论