- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
CORBA程序设计指南.ppt
CORBA程序设计指南 软件工程(服务外包)1班 奚忆楠 目录 1、CORBA简介 2、CORBA体系结构 3、概念 CORBA简介 CORBA(Common Object Request Broker Architecture)是为了实现分布式计算而引入的。 与过去的面向过程的RPC不同,CORBA是基于面向对象技术的,它能解决远程对象之间的互操作问题。MicroSoft 的DCOM 也是解决这一问题的, 但它基于Windows操作系统。只有CORBA是真正跨平台的,平台独立性正是CORBA的初衷之一。另一种做到平台无关性的技术是Java RMI,但它只能用JAVA实现。CORBA与此不同,它通过一种叫ID的接口定义语言,能做到语言无关,也就是说,任何语言都能制作CORBA组件,而CORBA组件能在任何语言下使用。 因此,可以这样理解CORBA:CORBA一种异构平台下的语言无关的对象互操作模型。 CORBA体系结构—调用模型 CORBA体系结构—工作原理 CORBA体系结构—ORB体系结构 概念--ORB 当客户程序要调用远程对象上的方法时,首先要得到这个远程对象的引用,之后就可以像调用本地方法一样调用远程对象的方法。当发出一个调用时,实际上ORB会截取这个调用(通过客户Stub完成,“提高”篇中会详细解释),因为客户和服务器可能在不同的网络、不同的操作系统上甚至用不同的语言实现,ORB还要负责将调用的名字、参数等编码成标准的方式(称Marshaling)通过网络传输到服务器方(实际上在同一台机器上也如此),并通过将参数Unmarshaling的过程,传到正确的对象上,服务器对象完成处理后,ORB通过同样的Marshaling/Unmarshaling方式将结果返回给客户。 因此,ORB是一种功能,它具备以下能力: 1.对象定位(根据对象引用定位对象的实现 2.对象定位后,确信Server能接受请求 3.将客户方请求通过Marshaling/Unmarshing方式重定向到服务器对象上 4.如果需要,将结果以同样的方式返回。 概念--IDL IDL,接口定义语言,是CORBA体系中的另一个重要概念。如果说ORB使CORBA做到平台无关,那么IDL, 则使CORBA做到语言无关。正像其名字中显示的那样,IDL仅仅定义接口,而不定义实现,类似于C中的头文件。实际上它不是真正的编程语言。要用它编写应用,需要将它映射它相应的程序设计语言上去,如映射到C++或JAVA上去。映射后的代码叫Client Stub Code和Server Skeleton Code。IDL的好处是使高层设计人员不必考虑实现细节而只需关心功能描述。IDL可以说是描述性语言。设计IDL的过程也是设计对象模型的过程。它是编写CORBA应用的第一步,在整个软件设计过程中至关重要。 下面是一个IDL定义的简单例子: // grid.idl // IDL definition of a 2-D grid: module simpleDemo{ interface grid { readonly attribute short height; // height of the grid readonly attribute short width; // width of the grid // IDL operations // set the element [row,col] of the grid, to value: void set(in short row, in short col, in long value); // return element [row,col] of the grid: long get(in short row, in short col); }; }; 概念—Stub和Skeleton Stub(客户桩或存根):位于客户端,由IDL编译器编译IDL文件生成,其功能类似一个客户代理,提供了为客户有效创建对象并发送请求的机制。 Skeleton(服务框架):位于服务器端,由IDL编译器编译IDL文件生成。提供了将请求发送给服务器对象的机制,以及对象寻址的部分功能。
文档评论(0)