快速业务通道

什么是corba - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25

什么是corba

时间:2007-05-29 yycnet.yeah.net yyc译

由OMG制订的对象相互操作规范通常称为“对象管理体系”(ObjectManagement Architecture,OMA)。OMA定义了两个组件:“核心对象模型”(Core Object Model)和“OMA参考体系”(OMA Reference Model)。OMA参考体系定义了一套基层服务结构及机制,实现了对象相互间进行操作的能力。OMA参考体系包括“对象请求代理”(Object Request Broker,ORB)、“对象服务”(Object Services,也称作CORBAservices)以及一些通用机制。ORB是对象间相互请求的一条通信总线。进行请求时,毋需关心对方的物理位置在哪里。这意味着在客户代码中看起来象一次方案调用的过程实际是非常复杂的一次操作。首先,必须存在与服务器对象的一条连接途径。而且为了创建一个连接,ORB必须知道具体实现服务器的代码存放在哪里。建好连接后,必须对方法自变量进行“汇集”。例如,将它们转换到一个二进制流里,以便通过网络传送。必须传递的其他信息包括服务器的机器名称、服务器进程以及对那个进程内的服务器对象进行标识的信息等等。最后,这些信息通过一种低级线路协议传递,信息在服务器那一端解码,最后正式执行调用。ORB将所有这些复杂的操作都从程序员眼前隐藏起来了,并使程序员的工作几乎和与调用本地对象的方法一样简单。并没有硬性规定应如何实现ORB核心,但为了在不同开发商的ORB之间实现一种基本的兼容,OMG定义了一系列服务,它们可通过标准接口访问。

1. CORBA接口定义语言(IDL)CORBA是面向语言的透明而设计的:一个客户对象可调用属于不同类的服务器对象方法,无论对方是用何种语言实现的。当然,客户对象事先必须知道由服务器对象揭示的方法名称及签名。这时便要用到IDL。CORBA IDL是一种与语言无关的设计方法,可用它指定数据类型、属性、操作、接口以及更多的东西。IDL的语法类似于C++或Java语法。下面这张表格为大家总结了三种语言一些通用概念,并展示了它们的对应关系。

CORBA IDL Java C++

模块(Module) 包(Package) 命名空间(Namespace)接口(Interface) 接口(Interface) 纯抽象类(Pure abstract class)方法(Method) 方法(Method) 成员函数(Member function)

继承概念也获得了支持——就象C++那样,同样使用冒号运算符。针对需要由服务器和客户实现和使用的属性、方法以及接口,程序员要写出一个IDL描述。随后,IDL会由一个由厂商提供的IDL/Java编译器进行编译,后者会读取IDL源码,并生成相应的Java代码。IDL编译器是一个相当有用的工具:它不仅生成与IDL等价的Java源码,也会生成用于汇集方法自变量的代码,并可发出远程调用。我们将这种代码称为“根干”(Stub and Skeleton)代码,它组织成多个Java源文件,而且通常属于同一个Java包的一部分。

2. 命名服务命名服务属于CORBA基本服务之一。CORBA对象是通过一个引用访问的。尽管引用信息用我们的眼睛来看没什么意义,但可为引用分配由程序员定义的字串名。这一操作叫作“引用的字串化”。一个叫作“命名服务”(Naming Service)的OMA组件专门用于执行“字串到对象”以及“对象到字串”转换及映射。由于命名服务扮演了服务器和客户都能查询和操作的一个电话本的角色,所以它作为一个独立的进程运行。创建“对象到字串”映射的过程叫作“绑定一个对象”;删除映射关系的过程叫作“取消绑定”;而让对象引用传递一个字串的过程叫作“解析名称”。比如在启动的时候,服务器应用可创建一个服务器对象,将对象同命名服务绑定起来,然后等候客户发出请求。客户首先获得一个服务器引用,解析出字串名,然后通过引用发出对服务器的调用。同样地,“命名服务”规范也属于CORBA的一部分,但实现它的应用程序是由ORB厂商(开发商)提供的。由于厂商不同,我们访问命名服务的方式也可能有所区别。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号