欢迎来到天天文库
浏览记录
ID:37902249
大小:236.00 KB
页数:12页
时间:2019-06-02
《RMI与CORBA在Java中的应用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、RMI与CORBA在Java中的应用来源:开放系统世界2002-10-211:47:00 本篇用实例来说明采用Java进行RMI远程方法调用及CORBA服务调用的实现方法,并分析它们的异同,从而为分布应用软件的开发者提供参考和帮助。 Internet/Intranet的飞速发展使得Web应用日益广泛而复杂,Web早已不仅仅是超媒体信息的浏览工具,它正逐步发展成为分布异构环境中企业应用的通用前端和事务处理的展现窗口。在分布式环境异构中,各种机器所采用的操作系统、网络通信协议和应用软件千差万别,要实现信息共享和软件资源的整合十分困
2、难,然而一个健壮的分布式计算框架能为可移植的分布式应用软件开发带来巨大的便利和好处。 分布式对象技术主要是在分布式异构环境下建立应用系统框架和对象构件。在应用系统框架的支撑下,开发者可以将软件功能封装为更易管理和使用的对象,这些对象可以跨越不同的软、硬件平台进行互操作。目前,分布式互操作标准主要有Microsoft的COM/DCOM标准、Sun公司的JavaRMI标准和OMG组织的CORBA标准。 JavaRMI调用实例 JavaRMI简介 远程方法调用(RMI,RemoteMethodInvocation)是jdk1.1中
3、引入的分布式对象软件包,它的出现大大简化了分布异构环境中Java应用之间的通信。 要使用RMI,必须构建四个主要的类:远程对象的本地接口、远程对象实现、RMI客户机和RMI服务器。RMI服务器生成远程对象实现的一个实例,并用一个专有的URL注册。RMI客户机在远程RMI服务器上查找服务对象,并将它转换成本地接口类型,然后像对待一个本地对象一样使用它。 下面是一个简单的RMI实例,RMI客户机通过RMI服务器提供的方法实现对两个双精度浮点数的加减运算。例子虽然很简单,但掌握了JavaRMI调用的基本原理和方法,在实现复杂应
4、用时,我们需要做的也只是完善远程对象的实现类而已。 RMI实例分析 1.远程对象的本地接口声明(RMIOperate.java) 该类仅仅是一个接口声明,RMI客户机可以直接使用它,RMI服务器必须通过一个远程对象来实现它,并用某个专有的URL注册它的一个实例。 具体代码如下: packagewf.rmi; //包名 importjava.rmi.*;//导入类包 /*RMI本地接口必须从Remote接口派生*/ publicinterfaceRMIOperateextendsRemote { /
5、*接口中的具体方法声明,注意必须声明抛出RemoteException*/ publicdoubleadd(doublex,doubley)throwsRemoteException; //输入两个浮点数,返回其和 publicdoubleminus(doublex,doubley)throwsRemoteException; //输入两个浮点数,返回其差 } 2.远程对象实现类(OperateImpl.java) 这个类应实现RMI客户机调用的远程服务对象的本地接口,它必须从UnicastRemoteObjec
6、t继承,构造函数应抛出RemoteException异常。 具体代码如下: packagewf.rmi;//包名 //导入需要的类包 importjava.rmi.*; importwf.rmi.RMIOperate; importjava.rmi.server.UnicastRemoteObject; publicclassOperateImplextendsUnicastRemoteObjectimplementsRMIOperate { /*构造函数*/ publicOperateImpl()throw
7、sRemoteException { } /*实现本地接口中声明的add方法*/ publicdoubleadd(doublex,doubley)throwsRemoteException { doublez=x+y; returnz; } /*实现本地接口中声明的minus方法*/ publicdoubleminus(doublex,doubley)throwsRemoteException { doublez=x-y; returnz; } } 3.RMI服务器类(RMIServer.j
8、ava) 该类创建远程对象实现类OperateImpl的一个实例,然后通过一个专有的URL来注册它。所谓注册就是通过Java.rmi.Naming.bind()方法或Java.rmi.Naming.rebind()方法,将Opera
此文档下载收益归作者所有