- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
CORBA简介
公共对象请求代理体系结构,通用对象请求代理体系结构, 是由OMG组织制订的一种标准的面向对象应用程 序体系规范。
?? ??CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构,通用对象请求代理体系结构)是由OMG组织制订的一种标准的面向对象应用程 序体系规范。或者说 CORBA体系结构是对象管理组织(OMG)为解决分布式处理环境(DCE)中,硬件和软件系统的互连而提出的一种解决方案;OMG组织是一个国际性的非盈利组织,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。程序提供的一组共享服务接口;域接口是为应用领域服务而提供的接口;应用接口是由开发商提供的产品,用于它们的接口,不属于OMG标准的内容。ORB提供了一种机制,通过这种机制,对象可以透明的发出请求和接收响应。分布的、可以互操作的对象可以利用ORB构造可以互操作的应用。
????? CORBA标准由物件管理组织(OMG)设立并进行控制,CORBA定议了一系列API,通信协议,和物件/服务信息模型用于使得异质应用程序能够互相操作,这些应用程序用不同的程序语言编写,运行在不同的平台上。CORBA因此为定义明确的物件提供了平台和位置的透明性,这些物件是分布式计算平台的基础。
????? 通常来说,CORBA把用其他语言开发的程序码和关于该程序码能力和如何调用该程序码的资讯包到一个套装(package)中,包成套装的物件则可以在网络上被其他程序(或CORBA物件)调用。 在这个意义上来讲,CORBA可以被看作是一个机器可读的文件档格式,类似于标头档(header),但是具有相当多的资讯。
????? CORBA使用一种接口定义语言用于刻画物件将呈现出来的接口。CORBA又规定了从IDL到特定程序语言,如C++或Java,实现的映射。这个映射精确的描述了CORBA资料类型是如何被用户端和服务器端实现的。标准映射的有Ada、C、C++、Smalltalk、Java、以及Python。 还有一些非标准的映射,为Perl和Tcl的映射由这些语言写的ORB实现。
????? CORBA的IDL只是IDL的一个例子。
????? 在提供用户语言和平台中性的远端程序呼叫规范的同时,CORBA也定义了通常需要的服务,例如事务和安全。
????? CORBA(通用对象请求代理体系结构)是在当今快速发展的软件与硬件资源的情况下发展出的一种新技术。它可以让分布的应用程序完成通信,无论这种应用程序是什么厂商生产的,只要符合CORBA标准就可以相互通信。CORBA 1.1于1991年由OMG提出,同时还提出了接口定义语言Interface Definition Language,IDL)以及能够让客户/服务器对象在特定的ORB(对象请求代理)实现中进行通信。而1994年提出并被采纳的CORBA 2.0标准才真正实现了不同生产厂商间的互操作性。
????? ORB是一个在对象间建立客户/服务器联系的中件。使用ORB,客户可以调用服务器的对象或对象中的应用,被调用的对象不要求在同一台机器上。由ORB负责进行通信,同时ORB也??象完成后返回结果。客户对象完全可以不关心服务器对象的位置,实现它所采用的具体技术和工作的硬件平台,甚至不必关心服务器对象的与服务无关的接口信息,这就大大简化了客户程序的工作。既然能够这么方便,那ORB就需要提供在不同机器间应用程序间的通信,数据转换,并提供多对象系统的无缝连接。
????? 我们通常编制客户/服务器程序时,常常需要自己定义通信协议,而协议的制定往往与硬件和实现的方法有关,而ORB能够简化这一过程。在ORB下,协议通过IDL语言进行定义,保证了一致性,为了照顾到灵活性,ORB允许程序员选择相应的操作系统,执行环境和编程语言。更重要的是它可以使原来的代码通过一定的方式重用。CORBA是面向对象标准的第一步,有了这个标准,软件的实现与工作环境对用户和开发者不再重要,可以把精力更多地放在本地系统的实现与优化上。
????? 下面我们来看看CORBA的一些具体情况。CORBA被设计用来对不同对象系统进行集成,提供灵活的的对象调用与功能实现。下图是客户对象通过ORB调用服务器对象。
????? 对象请求代理结构的大体工作过程就象上面的工作过程一样。客户将需要完成的工作交给ORB,由ORB决定由哪一个对象实例完成这个请求,然后激活这个对象,将完成请求所需要的参数传送给这个激活的对象。除了客户传送参数的接口外,客户不需要了解其它任何信息,这就大大节省了用户的开发精力。而下图着重说明ORB的接口结构。
????? 这个图中的一些信息希望大家能够注意一下,在编程的时候不一定能够全部用上
文档评论(0)