网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > Java精品代码 > 正文

使用非JAVA代码

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
。Java和OMG对象模型存在着很好的对应关系;例如,无论Java还是CORBA都实现了“接口”的概念,并且都拥有一个引用(参考)对象模型。

  A.6.1 CORBA基础

  由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厂商(开发商)提供的。由于厂商不同,我们访问命名服务的方式也可能有所区别。

  A.6.2 一个例子

  这儿显示的代码可能并不详尽,因为不同的ORB有不同的方法来访问CORBA服务,所以无论什么例子都要取决于具体的厂商(下例使用了JavaIDL,这是Sun公司的一个免费产品。它配套提供了一个简化版本的ORB、一个命名服务以及一个“IDL→Java”编译器)。除此之外,由于Java仍处在发展初期,所以在不同的Java/CORBA产品里并不是包含了所有CORBA特性。

  我们希望实现一个服务器,令其在一些机器上运行,其他机器能向它查询正确的时间。我们也希望实现一个客户,令其请求正确的时间。在这种情况下,我们让两个程序都用Java实现。但在实际应用中,往往分别采用不同的语言

  • 下一篇资讯: java小游戏源代码
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师