高级软件工程02(CORBA概述).ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《高级软件工程02(CORBA概述).ppt》由用户(罗嗣辉)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高级 软件工程 02 CORBA 概述
- 资源描述:
-
1、 公共对象请求代理体系结构(公共对象请求代理体系结构(CORBA)的设计目的是)的设计目的是 集成大量不同的对象系统。集成大量不同的对象系统。内容:内容: CORBA 概述概述CORBA 概述概述例子例子 : Grid ObjectGrid objectserver123581321345589144233widthheightget(row,col)set(row,col,value)clientCORBA 概述概述客户客户 是是 希望在对象上执行操作的实体希望在对象上执行操作的实体对象实现对象实现 是是 实现对象的代码和数据实现对象的代码和数据ORB 负责负责 组成请求的数据的通讯组成请求
2、的数据的通讯 查找请求所需对象实现的机制查找请求所需对象实现的机制 准备接收请求的对象实现准备接收请求的对象实现客户如何通过客户如何通过ORB向对象实现发出请求向对象实现发出请求CORBA 概述概述对象请求代理的结构对象请求代理的结构CORBA 概述概述客户利用存根或者客户利用存根或者DII发出请求发出请求CORBA 概述概述对象实现通过对象实现通过Skeleton或者或者DSI接收请求接收请求CORBA 概述概述接口池与实现池接口池与实现池对对CORBA结构中元素的解释结构中元素的解释ORB及接口及接口客户客户对象实现对象实现 对象引用对象引用IDL及向编程语言的映射及向编程语言的映射客户存
3、根与客户存根与DII实现骨架与实现骨架与DSI对象适配器对象适配器接口池接口池实现池实现池CORBA 概述概述CORBA 概述概述对象请求代理(对象请求代理(ORB) 不要求将不要求将ORB实现为单独的构件实现为单独的构件而仅定义其接口而仅定义其接口 任何提供正确接口的任何提供正确接口的ORB实现都是可以接受的实现都是可以接受的 ORB的具体实现包括:的具体实现包括: ORB Core、IDL编译器、编译器、IR、Object Adapter ORB可以有多种实现可以有多种实现 它们对对象引用有不同的表示方法它们对对象引用有不同的表示方法 并且有不同的调用执行方法并且有不同的调用执行方法 OR
4、B Core 提供对象的基本表示,以及请求的通讯提供对象的基本表示,以及请求的通讯 特别地:编排特别地:编排/反编排(反编排(Marshal/Unmarshal) 将高层语言的参数等表示转换为将高层语言的参数等表示转换为便于底层网络传输的形式便于底层网络传输的形式ORB接口接口 ORB接口是客户与对象实现可以直接访问到的接口是客户与对象实现可以直接访问到的ORB功能接口功能接口 其它多数功能提供给其它多数功能提供给对象适配器对象适配器stubskeleton动态调用动态调用 ORB接口接口 对所有对所有ORB都是一样的都是一样的 不依赖于任何对象的接口或对象适配器不依赖于任何对象的接口或对象适
5、配器CORBA 概述概述CORBA 概述概述客户(客户(Client) (对象的)客户访问对象的对象引用(对象的)客户访问对象的对象引用并且调用对象上的操作并且调用对象上的操作 客户只知道对象的逻辑结构客户只知道对象的逻辑结构根据它的接口,并通过调用感受对象的行为根据它的接口,并通过调用感受对象的行为 尽管一般认为客户是向对象发出请求的程序或进程尽管一般认为客户是向对象发出请求的程序或进程 但是客户只是相对于特定对象而言的,是一个相对概念但是客户只是相对于特定对象而言的,是一个相对概念 一个对象的实现可以是其它对象的客户一个对象的实现可以是其它对象的客户客户客户客户客户服务器服务器服务器服务器
6、CORBA 概述概述对象实现对象实现 通过通过 为为 对象实例对象实例 定义定义 数据数据 和和 为为 对象方法对象方法 定义定义 代码代码 提供提供 对象的语义对象的语义对象可以具有不同的实现方式,包括:对象可以具有不同的实现方式,包括:单独的服务器单独的服务器库库每个方法的程序每个方法的程序封装应用程序封装应用程序面向对象的数据库面向对象的数据库 等等等等对象实现不依赖于对象实现不依赖于ORB或者客户调用对象的方式或者客户调用对象的方式对象实现可以对象实现可以 通过通过 选择选择Object Adapter 达到达到 选择与选择与ORB相关服务的接口相关服务的接口 的的 目的目的对象实现(
7、对象实现(Object Implementation) 对象引用提供在对象引用提供在ORB内指定对象时所需要的信息内指定对象时所需要的信息 对象引用对于客户和对象实现都是一个位流对象引用对于客户和对象实现都是一个位流(opaque)的概念的概念 因此客户与对象实现可以与引用的实际表示分离。因此客户与对象实现可以与引用的实际表示分离。 在选择对象引用表示上,不同的在选择对象引用表示上,不同的ORB可以有所差别可以有所差别 传递给客户的对象引用表示仅在客户的生命期内有效传递给客户的对象引用表示仅在客户的生命期内有效 对于一个特定的编程语言,所有的对于一个特定的编程语言,所有的ORB都必须提供对象引
8、用都必须提供对象引用 (通常称为对象)的相同语言映射。(通常称为对象)的相同语言映射。 这就允许用特定语言编写的程序可以在独立于特定这就允许用特定语言编写的程序可以在独立于特定ORB的情的情 况下访问对象引用。况下访问对象引用。 语言映射也可以提供其它访问对象引用的方式语言映射也可以提供其它访问对象引用的方式CORBA 概述概述对象引用(对象引用(Object Reference) OMG接口定义语言(接口定义语言(OMG IDL)通过)通过 指定指定 对象接口对象接口 定义定义 对象类型对象类型 接口包括一组已命名的操作和这些操作的参数。接口包括一组已命名的操作和这些操作的参数。 IDL 是
9、一个分析设计结果是一个分析设计结果 描述描述ORB操纵的对象操纵的对象其源代码的存在对其源代码的存在对ORB正常工作不是必须的正常工作不是必须的 在运行时刻,以在运行时刻,以stub程序或者运行时接口程序或者运行时接口repository的形式的形式提供等价的信息。提供等价的信息。 通过通过IDL,特定对象实现告诉它潜在的客户:,特定对象实现告诉它潜在的客户:什么是有效的操作什么是有效的操作 以及以及 如何调用这些操作如何调用这些操作 从从IDL定义可以将定义可以将CORBA对象向对象向特定编程语言特定编程语言 或者或者 对象系统对象系统 映射映射CORBA 概述概述OMG接口定义语言接口定义
10、语言interface Grid readonly attribute short height; readonly attribute short width; void set(in short row, in short col, in long value); long get(in short row, in short col);例子:例子:grid.idlCORBA 概述概述CORBA中主要构件的接口全部由中主要构件的接口全部由IDL进行定义进行定义例如:例如:ORB接口、接口、Stub、Skeleton、对象适配器、对象适配器更主要的用途是定义应用对象!更主要的用途是定义应用对
11、象! 语言映射包括定义特定于语言的数据类型和通过语言映射包括定义特定于语言的数据类型和通过ORB访问对象的过程接口。访问对象的过程接口。 它包括它包括:客户客户stub接口的结构(面向对象的语言不需要)接口的结构(面向对象的语言不需要)动态调用接口动态调用接口实现骨架实现骨架对象适配器和直接对象适配器和直接ORB接口接口 语言映射也包括对象调用之间以及客户或实现中控制线程语言映射也包括对象调用之间以及客户或实现中控制线程之间的交互。之间的交互。 最常见的映射提供同步调用:当对象操作完成时子程序返回最常见的映射提供同步调用:当对象操作完成时子程序返回 编译开关(选项)控制映射具体策略。编译开关(
12、选项)控制映射具体策略。CORBA 概述概述IDL向具体语言的映射向具体语言的映射CORBA 概述概述ORB client libraryORB server library编译编译 IDL:gridS.cppserver skeletongridC.cppclient stubsClientServergrid.hcommon declarationsgrid.idl所产生的所产生的 C+ 头文件头文件(Orbix):class Grid : public virtual CORBA:Object public: static Grid_ptr _bind(.); virtual CORBA
13、:Short height(CORBA:Environment&); virtual CORBA:Short width(CORBA:Environment&); virtual void set(CORBA:Short row, CORBA:Short col, CORBA:Long value, CORBA:Environment &); virtual CORBA:Long get(CORBA:Short row, CORBA:Short col, CORBA:Environment &);CORBA 概述概述客户存根(客户存根(Client stub) 由由IDL编译器根据编译器根据I
14、DL文件生成文件生成 客户访问对象的操作主要方式客户访问对象的操作主要方式 实现对象位置透明性实现对象位置透明性 向非面向对象语言映射时向非面向对象语言映射时 将为每个接口类型产生一个将为每个接口类型产生一个stub编程接口编程接口 面向对象的编程语言不需要面向对象的编程语言不需要stub接口接口 它通过伪对象的方式提供访问对象的操作。它通过伪对象的方式提供访问对象的操作。CORBA 概述概述DII(动态调用接口动态调用接口) 客户指定要调用的对象、要执行的操作和调用或调用序列客户指定要调用的对象、要执行的操作和调用或调用序列中操作的参数集,而不是调用特定于特殊对象上特殊操作的中操作的参数集,
15、而不是调用特定于特殊对象上特殊操作的stub 子程序。子程序。 客户代码必须提供要执行操作的信息和传送参数的类型客户代码必须提供要执行操作的信息和传送参数的类型 动态调用接口的特性可能因编程语言映射的不同而不同动态调用接口的特性可能因编程语言映射的不同而不同 客户通过静态还是动态接口发出请求客户通过静态还是动态接口发出请求对于对象实现是透明的对于对象实现是透明的CORBA 概述概述CORBA_Create_request(.)CORBA_Request_add_arg(.)CORBA_Request_add_arg(.)CORBA_Request_invoke(.)CORBA_Request_
16、delete(.)实现骨架实现骨架(Implementation Skeleton) 由由IDL编译器根据编译器根据IDL文件生成文件生成 对象适配器访问对象实现中方法的主要形式对象适配器访问对象实现中方法的主要形式 对于一种特定映射语言,以及可能的特定对象适配器对于一种特定映射语言,以及可能的特定对象适配器 Skeleton 与与 stub 不是必然对应的不是必然对应的客户也可以通过动态调用接口发出请求客户也可以通过动态调用接口发出请求 但也可以编写不使用但也可以编写不使用skeleton调用实现方法的对象适配器调用实现方法的对象适配器CORBA 概述概述动态骨架接口动态骨架接口(DSI)
展开阅读全文