Chinaunix首页 | 论坛 | 博客
  • 博客访问: 12630
  • 博文数量: 21
  • 博客积分: 466
  • 博客等级: 下士
  • 技术积分: 230
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-16 16:35
文章分类

全部博文(21)

文章存档

2011年(21)

我的朋友

分类: Java

2011-04-16 20:55:53

写一个CORBA程序的步骤:   

    1. 编写IDL接口定义文件(Hello.idl); 

2. 将接口定义文件编译为相应高级语言源代码,产生服务器框架与客户端存根; 

命令:idlj -fall Hello.idl (Hello.idl所在的目录下),生成HelloApp文件夹,里面共包含6java源文件,其中:

Hello.java本质上是一个接口,该接口含有IDL接口的Java版本,它扩展org.omg.CORBA.Object并提供标准的CORBA对象功能。

HelloPOA.java是服务器框架,为服务器提供基本的CORBA功能。

_HelloStub.java是客户机存根,为客户机提供CORBA功能,实现Hello.java接口。

HelloHelper.java是一个终态类,可以提供辅助功能,特别是提供将CORBA对象引用转换为适当类型所需的narrow()方法。

HelloHolder.java是一个终态类,其中含有Hello类型的公有实例成员。它可为“out”和“intout”变量提供操作。CORBA有这些变量,但不容易映射为Java的语义。

HelloOperations.java是一个接口类,其中含有sayHello()方法。

3.实现Hello接口。因为HelloPOA类是对Hello接口的一个抽象实现,因此Hello.java接口的实现类HelloImpl继承HeoolPOA.类。

4基于服务器框架,编写服务对象实现程序HelloServer.java,放在HelloServer包中

步骤:

① 创建一个 ORB 实例 

② 创建一个HelloImpl实例(CORBA Hello对象的实现)并通知 ORB 

③ 获取一个命名上下文的 CORBA 对象引用,在该命名上下文中注册新 CORBA 对象 

④ 在命名上下文中将新对象注册在“Hello”名下 

⑤ 等待对新对象的调用

5. 基于客户端存根,编写客户对象调用程序(HelloClient.java,放在HelloClient包中)

6. 步骤:

① 创建一个 ORB

② 获取一个指向命名上下文的引用

③ 在命名上下文中查找 "Hello" 并获得指向该 CORBA 对象的引用

④ 调用对象的 sayHello() 操作并打印结果

    6分别编译客户对象和服务对象程序(用eclipse时,类文件已自动编译,放在bin目录下; 

7运行服务对象和客户对象程序(在包所在的目录bin下,带包结构运行

分别在HelloClientHelloServer目录下建立HelloApp子目录,将..\bin\HelloApp目录中的    _HelloStub.class Hello.class  HelloHelper.class HelloHolder.classHelloOperations.class

复制到HelloClient\HelloApp目录下

..\bin\HelloApp目录中的 _HelloImplBase.class Hello.classHelloOperations.class

复制到HelloServer\HelloApp目录下

命令:

第一个控制台窗口:F:\workplace\cobra\bin\HelloServer>tnameserv -ORBInitialPort 1050

-----确保名字服务器处于运行状态。

第二个控制台窗口:F:\workplace\cobra\bin>java HelloServer.HelloServer -ORBInitialPort 1050

----- 启动 Hello 服务器。

第三个控制台窗口:F:\workplace\cobra\bin>java HelloClient.HelloClient -ORBInitialPort 1050

-----CORBA客户端调用CORBA服务。

注:(1)本地调用时,不需要用-ORBInitialHost参数来指定远程的IP地址。

Java HelloClient -ORBInitialHost IP Address -ORBInitialPort 1050 远程调用CORBA服务命令。

2)端口可根据实际情况作修改。

源码见附件:

 cobra.rar   

阅读(355) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~