欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

详解 Corba开发之Java实现Service与Client

程序员文章站 2024-04-03 17:56:04
详解 corba开发之java实现service与client 1      概述 corba(common...
详解 corba开发之java实现service与client
1      概述

corba(common object request broker architecture,公共对象请求代理体系结构)是由omg组织制订的一种标准的面向对象应用程 序体系规范。或者说 corba体系结构是omg为解决分布式处理环境(dce)中,硬件和软件系统的互连而提出的一种解决方案。

omg:object management group,对象管理组织。是一个国际化的、开放成员的、非盈利性的计算机行业标准协会,该协会成立于1989年,其职责是为应用开发提供一个公共框架,制订工业指南和对象管理规范,加快对象技术的发展。。任何组织都可以加入omg并且参与标准制定过程。omg制定了统一建模语言unifiedmodeling language?(uml?),模型驱动架构modeldriven architecture? (mda?)等建模标准。使强大的视觉设计,执行和维护软件等工序成为可能。并且,omg还制定了广为人知的中间件标准commonobject request broker architecture (corba?)。

通用对象代理体系结构corba(common object request brokerarchitecture)是omg所定义的用来实现现今大量硬件、软件之间互操作的解决方案,corba也是迈向面向对象标准化和互操作的重要一步。

简单地说,corba允许应用之间相互通信,而不管它们存在于哪里以及是谁设计的,即跨平台、跨语言。corba1.1于1991年由omg发布,其中定义了接口定义语言(idl)以及在对象请求代理(orb)中实现客户对象与服务器对象之间交互的应用编程接口(api)。corba2.0于1994年发布,规定了各个供应商之间的orb的通信规则。

corba标准主要分为三个部分:接口定义语言(idl)、对象请求代理(orb)以及orb之间的互操作协议iiop。

idl是corba定义的语言,corba还定义了idl到各种语言的映射,标准映射的有ada、c、c++、smalltalk、java、以及python。有了这些映射,就可以将idl翻译成各种语言,从而实现了跨语言。idl语言是一种接口定义语言。idl语言不同于所有已有的程序设计语言,它是一种描述性语言,也就是说,用它描述得到的接口是不能直接被编译执行。omg idl语言采用isolatin-1(8859.1)字符集。该字符集可以分为字母、数字、图形符号、空格符、和格式符号。其中字母包括英文26个字母的大小写,数字包括10个阿拉伯数字0到9。

orb是corba的核心,是对象之间建立client/server关系的中间件。使用orb,客户可以透明地调用一个服务对象上的方法,这个服务对象可以在本地,也可以在通过网络连接的其他机器上。orb截获这一调用同时负责查找实现服务的对象并向其传递参数、调用方法返回最终结果。客户并不知道服务对象位于什么地方,它的编程语言和操作系统是什么,也不知道不属于对象接口的其他系统部分。这样,orb在异构分布环境下为不同机器上的应用提供了互操作性,并无缝地集成了多种对象系统。

在client端去调用server端的代码时,orb对于client端是不可见的,client感觉好像调用了自己对象的方法一样,但是网络传输的过程都被封装在了orb中。

 2      idl文件创建

在开发之前需要按照上一章中配置好eclipse插件开发环境,

1、  客户端开发idl文件,idl文件由服务端接口提供,或者自定义创建,如下图:

详解 Corba开发之Java实现Service与Client

详解 Corba开发之Java实现Service与Client

modulehelloapp {
  interfacehello {
    string sayhello();
    oneway void shutdown();
  };
};

2. 选择idl文件,右键orbmenu--->compile,就自动生成相应的操作文件

 详解 Corba开发之Java实现Service与Client

自动生成需要的操作文件一共7个;

 详解 Corba开发之Java实现Service与Client

 3       服务端开发

1.      src上右键new--->other--->corbawizard--->server--->active object map--->next如下图:

 详解 Corba开发之Java实现Service与Client

 2.      在弹出的对话框里idl filename栏选择/{projectname}/src/{idlname}.idl

   interface栏选择idl文件里定义的接口名

   package栏里填写包名

   server classname栏里填写服务端类名

--->next 在弹出的对话框,选中createserver class:项

详解 Corba开发之Java实现Service与Client

详解 Corba开发之Java实现Service与Client

3. 为生成的服务端类添加未实现的方法,并填写方法体

 详解 Corba开发之Java实现Service与Client

详解 Corba开发之Java实现Service与Client

至此服务端配置完成,server_aom class为服务端启动入口。

 4       客户端开发

1、新建java project;

2. src上右键new--->other--->corba wizard--->idl files--->simple idl,如下图:

 详解 Corba开发之Java实现Service与Client

3.选择之前的idl文件,

详解 Corba开发之Java实现Service与Client

完成后自动生成客户端文件操作,如下图:

 详解 Corba开发之Java实现Service与Client

4. 在客户端类的main方法里,取消注释test.getorbinterface().operation1("amessage in the bottle..."); 并调用之前自定义的方法,修改传递的string内容。即可完成客户端调用。

 备注: 运行服务端程序server_aom.java,然后运行客户端程序myserviceclientimpl.java

至此简单的service and client开发完成!

 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!