




已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
3 CORBA概述公共对象请求代理体系结构 CORBA 的设计目的是集成大量不同的对象系统 内容 1 对象请求代理结构概念 2 ORB实现的方式 3 客户的结构 4 对象实现的结构 5 对象适配器的结构 6 一个请求的完整过程例子 CORBA概述 结构 高级软件工程 CORBA概述 例子 GridObject Gridobject server 1 2 3 5 8 13 21 34 55 89 144 233 widthheightget row col set row col value client 高级软件工程 CORBA概述 客户是希望在对象上执行操作的实体对象实现是实现对象的代码和数据ORB负责组成请求的数据的通讯查找请求所需对象实现的机制准备接收请求的对象实现 1 对象请求代理的结构 客户如何通过ORB向对象实现发出请求 高级软件工程 CORBA概述 对象请求代理的结构 高级软件工程 CORBA概述 客户利用存根或者DII发出请求 CORBA概述 对象实现通过Skeleton或者DSI接收请求 高级软件工程 CORBA概述 接口池与实现池 高级软件工程 对CORBA结构中元素的解释ORB及接口客户对象实现对象引用IDL及向编程语言的映射客户存根与DII实现骨架与DSI对象适配器接口池实现池 CORBA概述 CORBA概述 对象请求代理 ORB 不要求将ORB实现为单独的构件而仅定义其接口任何提供正确接口的ORB实现都是可以接受的ORB的具体实现包括 ORBCore IDL编译器 IR ObjectAdapterORB可以有多种实现它们对对象引用有不同的表示方法并且有不同的调用执行方法ORBCore提供对象的基本表示 以及请求的通讯特别地 编排 反编排 Marshal Unmarshal 将高层语言的参数等表示转换为便于底层网络传输的形式 高级软件工程 ORB接口ORB接口是客户与对象实现可以直接访问到的ORB功能接口其它多数功能提供给对象适配器stubskeleton动态调用ORB接口对所有ORB都是一样的不依赖于任何对象的接口或对象适配器 CORBA概述 高级软件工程 CORBA概述 客户 Client 对象的 客户访问对象的对象引用并且调用对象上的操作客户只知道对象的逻辑结构根据它的接口 并通过调用感受对象的行为尽管一般认为客户是向对象发出请求的程序或进程但是客户只是相对于特定对象而言的 是一个相对概念一个对象的实现可以是其它对象的客户 客户 客户 服务器 服务器 CORBA概述 对象实现通过为对象实例定义数据和为对象方法定义代码提供对象的语义对象可以具有不同的实现方式 包括 单独的服务器库每个方法的程序封装应用程序面向对象的数据库等等对象实现不依赖于ORB或者客户调用对象的方式对象实现可以通过选择ObjectAdapter达到选择与ORB相关服务的接口的目的 对象实现 ObjectImplementation 高级软件工程 对象引用提供在ORB内指定对象时所需要的信息对象引用对于客户和对象实现都是一个位流 opaque 的概念因此客户与对象实现可以与引用的实际表示分离 在选择对象引用表示上 不同的ORB可以有所差别传递给客户的对象引用表示仅在客户的生命期内有效对于一个特定的编程语言 所有的ORB都必须提供对象引用 通常称为对象 的相同语言映射 这就允许用特定语言编写的程序可以在独立于特定ORB的情况下访问对象引用 语言映射也可以提供其它访问对象引用的方式 CORBA概述 对象引用 ObjectReference 高级软件工程 OMG接口定义语言 OMGIDL 通过指定对象接口定义对象类型接口包括一组已命名的操作和这些操作的参数 IDL是一个分析设计结果描述ORB操纵的对象其源代码的存在对ORB正常工作不是必须的在运行时刻 以stub程序或者运行时接口repository的形式提供等价的信息 通过IDL 特定对象实现告诉它潜在的客户 什么是有效的操作以及如何调用这些操作从IDL定义可以将CORBA对象向特定编程语言或者对象系统映射 CORBA概述 OMG接口定义语言 高级软件工程 interfaceGrid readonlyattributeshortheight readonlyattributeshortwidth voidset inshortrow inshortcol inlongvalue longget inshortrow inshortcol 例子 grid idl CORBA概述 CORBA中主要构件的接口全部由IDL进行定义例如 ORB接口 Stub Skeleton 对象适配器更主要的用途是定义应用对象 高级软件工程 语言映射包括定义特定于语言的数据类型和通过ORB访问对象的过程接口 它包括 客户stub接口的结构 面向对象的语言不需要 动态调用接口实现骨架对象适配器和直接ORB接口语言映射也包括对象调用之间以及客户或实现中控制线程之间的交互 最常见的映射提供同步调用 当对象操作完成时子程序返回编译开关 选项 控制映射具体策略 CORBA概述 IDL向具体语言的映射 高级软件工程 CORBA概述 ORBclientlibrary ORBserverlibrary 编译IDL gridS cppserverskeleton gridC cppclientstubs Client Server grid hcommondeclarations grid idl 所产生的C 头文件 Orbix classGrid publicvirtualCORBA Object public staticGrid ptr bind virtualCORBA Shortheight CORBA Environment CORBA概述 高级软件工程 客户存根 Clientstub 由IDL编译器根据IDL文件生成客户访问对象的操作主要方式实现对象位置透明性向非面向对象语言映射时将为每个接口类型产生一个stub编程接口面向对象的编程语言不需要stub接口它通过伪对象的方式提供访问对象的操作 CORBA概述 高级软件工程 DII 动态调用接口 客户指定要调用的对象 要执行的操作和调用或调用序列中操作的参数集 而不是调用特定于特殊对象上特殊操作的stub子程序 客户代码必须提供要执行操作的信息和传送参数的类型动态调用接口的特性可能因编程语言映射的不同而不同客户通过静态还是动态接口发出请求对于对象实现是透明的 CORBA概述 CORBA Create request CORBA Request add arg CORBA Request add arg CORBA Request invoke CORBA Request delete 实现骨架 ImplementationSkeleton 由IDL编译器根据IDL文件生成对象适配器访问对象实现中方法的主要形式对于一种特定映射语言 以及可能的特定对象适配器Skeleton与stub不是必然对应的客户也可以通过动态调用接口发出请求但也可以编写不使用skeleton调用实现方法的对象适配器 CORBA概述 高级软件工程 动态骨架接口 DSI 通过一个 提供访问操作名与参数的接口 获得一个对象的实现实现代码必须向ORB提供所有操作参数的描述ORB提供任何输入参数的值 以便在执行操作时使用在执行操作后 实现代码向ORB提供任何输出参数的值或者例外处理适配器通过静态还是动态骨架接口访问对象实现对于客户是透明的 CORBA概述 动态骨架与动态调用可以被一起用于创建网关 Gateway 这些网关包括 不同ORB环境之间的网关不同防火墙软件之间的网关安全网关 高级软件工程 对象适配器 ObjectAdaptor 对象适配器是对象实现访问ORB所提供服务的主要方式ORB通过对象适配器提供的服务通常包括 生成和解释对象引用方法调用交互的安全性对象和实现激活及取消激活将对象引用映射到实现注册实现对象粒度 寿命 策略 实现风格等的明显区别使得ORB核心很难为所有对象提供方便和有效的单一接口通过对象适配器ORB可以将一组特定的对象实现作为目标 CORBA概述 高级软件工程 接口池 InterfaceRepository 接口池提供持久对象的服务这些对象在运行时以可用的形式表示IDL信息ORB可以使用接口池信息执行请求 例如 如果程序在编译时遇到接口未知的对象 那么使用接口池中的信息可以 确定对象的有效操作对它发出调用除了在ORB运行时提供职能外 接口池也是存储与ORB对象接口相关的其它信息的公共地点例如 调试信息stub或skeleton库形式化或浏览特定对象等等 CORBA概述 实现池 ImplementationRepository 实现池包含的信息允许ORB定位和激活对象实现尽管实现池中的大多数信息特定于ORB或者操作系统 但是实现池是习惯上记录这些信息的地点 安装实现和与激活及执行对象实现的策略控制是通过实现池上的操作完成的除了提供ORB运行时的职能外 实现池也是存储与ORB对象实现相关的其它信息的公共地点例如 调试信息管理控制资源分配安全性等等 CORBA概述 高级软件工程 2 ORB实现方式 位于客户和对象实现内部的ORB如果有合适的通讯机制 那么ORB可以在客户和对象实现的程序中实现客户中的stub使用位置透明的IPC机制或者直接访问地点服务建立与实现的通讯与实现关联的代码负责为客户设置合适的数据库 操作定位 CORBA概述 基于服务器的ORB所有客户和实现可以与一个或多个服务器通讯服务器的任务是将请求从客户发送到对象实现就底层操作系统而言 ORB可以是普通的程序并且可以使用普通的IPC与ORB通讯这是主要的ORB实现方式 优点 客户与服务器目标码大小适度便于配置 CORBA概述 基于系统的ORB为增强安全性 健壮性和性能可以将ORB作为底层操作系统的基本服务对象引用可以永远不变 从而减少了每次请求时验证的开销由于操作系统可以知道客户和实现的地点及接口因此可以实现许多不同的优化例如当客户与实现在同一台机器上时 可以省缺编排活动基于库的ORB对于小型 并且其实现可以共享的对象 实现可以在库中 CORBA概述 客户在它们的程序中以库子程序的方式访问特定对象类型的stub客户程序在它的编程语言中以用普通方式调用该子程序客户将对象引用传送给stub子程序以初始化调用Stub能够访问对象引用表示 并与ORB交互 以执行调用 3 客户的结构 CORBA概述 在最常见的情况下 客户通过调用拥有引用的其它对象并作为输出参数来获取对象引用也可以采用从字符串转换的方法 服务器方将对象引用转换为字符串然后将字符串存储在文件中则客户方可以将它转换回对象引用客户程序的具体表现形式与ORB的实现方式有关不论哪种形式 客户程序由两部分组成 1 程序员编写的代码 2 IDL编译器生成的代码它们与ORB提供的功能一起 构成了抽象意义的CORBA客户方 CORBA概述 CORBA概述 include grid hh includemain Grid varp LikeaC pointer ConnecttoaremoteGridobjectp string to object grid ref p Grid bind myGrid GridSrv GridHost NowuseitlikearegularC objectcoutheight width set 2 4 123 aremotecallcoutget 2 4 endl CORBA概述 客户程序 GridC cpp 4 对象实现的结构 CORBA概述 对象实现以不同的方式与ORB交互来建立它的表示创建新对象获取与ORB相关的服务等它主要是通过对象适配器完成这些工作由于对象实现与ORB实现方式对象适配器实现途径密切相关因此 对象实现的具体结构不易描述 在发生调用时ORB核心对象适配器skeleton共同协商 确定调用针对的实现方法方法的参数之一指定要调用的对象 以便定位对象其它参数则根据skeleton定义被提供方法完成后返回 并导致输出参数或将例外结果传输回客户当创建新对象时 通常需要通知ORB以便ORB知道如何找到该对象的实现 CORBA概述 CORBA概述 virtualCORBA ShortGrid i width CORBA Environment CORBA概述 对象实现的核心代码 GridS cpp 对象适配器负责下列功能 生成和解释对象引用方法调用交互的安全性对象和实现的激活及取消激活将对象引用映射到相应的对象实现注册对象实现这些功能由ORB核心与其它所需的附加构件实现对象适配器将保持自己的状态来完成它的任务特定的对象适配器可以代理核心的一个或多个职能以定义大多数对象实现所依靠的来自ORB的服务 5 对象适配器的结构 CORBA概述 由于某些对象实现有特殊要求 所以不同对象适配器可以提供不同的接口或功能例如 面向对象的数据库系统可能希望隐式注册它的几万个对象而不是对对象适配器做单独调用此时 对象适配器维护每个对象的状态是不
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租赁奥特曼服装合同范本
- 专利赔偿的合同范本
- 项目资产抵押合同范本
- 设备年度维修合同范本
- 金融行业兼职合同范本
- 晋江教师编制合同范本
- 外汇担保借款标准合同书3篇
- 陪老人看病合同范本
- 江苏餐饮投资合同范本
- 运输合同之客运路线经营权使用合同4篇
- 衡水志臻小升初数学真题试卷
- 2025小红书情绪营销白皮书
- 2025新村级后备干部考试题库(附含答案)
- 小微企业供应商管理制度
- 水利水电工程教学课件
- 公共关系学教程 课件全套 胡百精 第1-16讲 现代公共关系的诞生与职业化- 公关伦理与企业社会责任
- GB/T 14451-2025操纵用钢丝绳
- 技工培训机构管理办法
- 氨站培训课件
- 2025年专业技术人员继续教育公需科目考试题及答案
- 加油站全员安全生产责任制制度
评论
0/150
提交评论