CORBA实例详解 CORBA(Common Object Request Broker Architecture)是一种分布式对象计算架构,允许开发者创建分布式对象系统。下面是CORBA实例的详细解释。 环境配置 在Windows 2000操作系统下,使用J2SE SDK 1.4.X版本,需要设置以下环境变量: * classpath = “.;c:\j2sdk1.4.2_06\lib\tools.jar;c:\j2sdk1.4.2_06\lib\dt.jar;c:\j2sdk1.4.2_06\jre\lib;…” * java_home="c:\j2sdk1.4.2_06" * path="c:\j2sdk1.4.2_06\bin;…" 定义IDL接口 使用IDL(Interface Definition Language)来定义接口,例如: ``` module HelloApp{ interface Hello { string sayHello(); oneway void shutdown(); }; }; ``` Java语言映射 使用idlj工具将IDL接口编译成Java语言,生成以下文件: * HelloPOA.java:服务器的skeleton类,extends org.omg.PortableServer.Servant implements HelloApp.HelloOperations, org.omg.CORBA.portable.InvokeHandler * _HelloStub.java:客户端的stub类,extends org.omg.CORBA.portable.ObjectImpl implements HelloApp.Hello * Hello.java:Java语言的接口,extends HelloOperations, org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity * HelloOperations.java:不继承任何接口的Java语言的接口 * HelloHelper.java:Helper类 * HelloHolder.java:Holder类 服务器端的Java语言程序 服务器端的Java语言程序使用HelloImpl类实现Hello接口,提供sayHello()和shutdown()方法。 ``` import HelloApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import org.omg.PortableServer.*; import org.omg.PortableServer.POA; import java.util.Properties; class HelloImpl extends HelloPOA { private ORB orb; public void setORB(ORB orb_val) { orb = orb_val; } public String sayHello() { return "Hello World"; } public void shutdown() { orb.shutdown(false); } } ``` 服务器启动程序 服务器启动程序使用HelloWorldCorbaServer类,负责初始化ORB、获取RootPOA的引用、激活POAManager、生成Servant对象、将ORB对象登录其中。 ``` public class HelloWorldCorbaServer { public static void main(String args[]) { try { // ORB 的初始化 ORB orb = ORB.init(args, null); // 获取 RootPOA 的引用,使 POAManager 变为活动状态 POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA")); rootpoa.the_POAManager().activate(); // 生成 Servant, 并将 ORB 对象登录其中 HelloImpl helloImpl = new HelloImpl(); helloImpl.setORB(orb); // 由 Servant 来获取 Hello 对象的引用 ... } catch (Exception e) { ... } } } ``` 这个CORBA实例演示了如何使用IDL定义接口、生成Java语言映射、实现服务器端的Java语言程序和服务器启动程序。
- 粉丝: 1
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助