参考:1. Java corba 实例。Java中如何使用Corba进行服务端和客户端之间的分布式通信。了解IDL语法在Corba中的使用

     2. corbaloc:iiop:localhost:2809使用的由来。原理讲的很到位,可以参考!

     3. 浅析“远程对象调用”。图文并茂,讲的很专业。

  

一、学习JAVA与CORBA

■CORBA技术简介

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

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

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

  在开发传统的Client/Server应用时,开发者使用他们自己设计的或一个公认的标准来定义用于设备之间通信的协议。协议的定义依赖于实现语言、网络传输和许多其他因素,而ORB的出现简化了这一过程。使用ORB时,协议是使用接口定义语言(IDL)定义的,而IDL是独立于语言的。并且ORB提供很强的灵活性,它使程序员选择最适合的操作系统、执行环境,甚至系统各个组件也可以采用不同的编程语言实现。更重要的是,它允许现有组件的集成。在一个基于ORB的解决方案中,开发者可以使用与创建新对象一样的IDL对遗留系统进行建模,他们创建“包装”代码以在标准化的软件总线与遗留系统接口之间传递信息。

  使用CORBA,用户可以透明地访问信息,并不需要知道信息存在于什么软件中、使用什么硬件平台,以及位于企业网络的什么地方。作为面向对象系统的通信核心,CORBA为今天的计算环境带来了真正的互操作性。

■CORBA与JAVA的相互关系

CORBA不只意味着对象请求代理(ORB),它还是非常全面的分布式对象平台。CORBA使JAVA应用可以跨越网络、语言以及操作系统,并为JAVA提供了一组分布服务,如分布式自我观察、动态发现、事务、关系、安全和命名等。

JAVA不仅是一种语言,它还是一个动态代码系统,它对运行对象来说是一个可移植的虚拟机(JVM)。JAVA为开发、管理、发布Client/Server应用提供了更简单的方式。人们可以通过将应用放在一个Web服务器上将这一应用发布给成千上万个用户,而不必关心它的安装和升级。JAVA还非常适合服务器的开发,它可以动态地将服务代码移向最需要它们的地方。

JAVA将会使CORBA对象能够运行在从主机、网络计算机到蜂窝电话等可编程的各种机器上,并简化了大型CORBA系统的代码发布。对客户和服务对象来说JAVA是很理想的编程语言,JAVA内置的多线程、垃圾收集和错误处理使编写健壮的网络对象变得很容易。

这两种对象模型可以很好地相互补充,CORBA处理网络的透明性,JAVA处理实现的透明性,CORBA为JAVA可移植应用环境提供了一个分布式的结构。

二、按照网上教程配置CORBA环境

三、构建程序代码

1.使用IDL语言为远程对象定义接口,根据题目要求,需要两个接口,一个实现用户的注册和登录,一个实现用户对list的增删改查

creator.idl:

2. 编译接口并生成CORBA支持文件

对CreatorModule目录下的六个文件说明如下:

(1) Creator.java:此接口包含IDL接口的Java版本。它继承自org.omg.CORBA.Object,提供标准的CORBA对象功能。

(2)CreatorHelper.java : 此类提供辅助功能,Helper类负责读写数据类型到CORBA流,以及插入和提取数据类型。

(3)CreatorHolder.java : 此类是一个终态类,其中含有Creator类型的公有数据成员。

(4)CreatorOperations.java : 这是一个接口类,其中含有在creator.idl文件中编写的接口方法。

(5)CreatorPOA.java : 此抽象类是基于流的服务器Skeleton,为服务器提供基本的CORBA功能。它继承org.omg.PortableServer.Servant, 实现了InvokeHandler接口和CreatorOperations接口。以后编写的服务器类要继承CreatorPOA。

(6)_CreatorStub.java : 此类是客户端stub,为客户端提供CORBA功能。它继承org.omg.CORBA.Object,提供标准CORBA对象功能。还扩展了     CreatorOperations接口和org.omg.CORBA.portable.IDLEntity接口。

  UserModule目录下的文件意义和上面类似。 

3. 编写User类和Item类来分别存储用户以及list内的Item

  

使用例程可参考以下:

1. 使用Java/CORBA实现分布应用编程

2. Java的Corba客户端程序开发

3. Java corba 实例

没有坚守就没有事业,没有执着就没有未来!