中间件实验报告.doc

上传人:大张伟 文档编号:5710756 上传时间:2020-07-24 格式:DOC 页数:11 大小:188.50KB
返回 下载 相关 举报
中间件实验报告.doc_第1页
第1页 / 共11页
中间件实验报告.doc_第2页
第2页 / 共11页
中间件实验报告.doc_第3页
第3页 / 共11页
中间件实验报告.doc_第4页
第4页 / 共11页
中间件实验报告.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《中间件实验报告.doc》由会员分享,可在线阅读,更多相关《中间件实验报告.doc(11页珍藏版)》请在三一文库上搜索。

1、学生学号 0121410870704实验课成绩学 生 实 验 报 告 书实验课程名称软件构件与中间件技术开 课 学 院计算机科学与技术学院指导教师姓名石兵学 生 姓 名廖锡峰学生专业班级软件14022016-2017学年第二学期实验课程名称: 软件构件与中间件技术 实验项目名称基于 JAVA CORBA 的四则运算分布式系统开发实验成绩实验者廖锡峰专业班级软件1402组别同组者实验日期2017年5月 15日第一部分:实验分析与设计(可加页)实验步骤:1、 安装 JDK1.6 并配置系统参数 PATH 和 CLASSPATH,打开一个 DOS 窗口键入命令 java version验证是否已经正

2、确地安装了JDK。2、 打开一个文本编辑器,编写以下 IDL 接口定义文件,并命名为 BA.idl,保存到一个文件 夹下,这里是 D:shiyan。3、 编译 IDL 文件。4、 实现远程对象。打开记事本,复制以下代码。文件名:BAImpl.java。保存到文件夹5、 编写服务器。注意要把 IP 地址换成当前这台物理机器的 IP 地址。打开记事本,复制以 下代码。文件名:Server.java。保存到文件夹 D:shiyanBAPkg 之下。六、编写客户端。注意要把 IP 地址换成当前这台物理机器的 IP 地址。打开记事本,复制以 下代码。文件名:Client.java。保存到文件夹 D:sh

3、iyanBAPkg 之下。七、编译 JAVA 源代码。八、系统布置。刚才是在机器 A 上开发的,机器 A 是服务器,IP 地址是机器 A 的 IP 地址。 现在,在另一台机器,机器 B 上安装 JDK1.6 并配置 PATH 和 CLASSPATH 系统参数,并把代码 及字节码打包复制到机器 B 上,它是一个客户端。九、运行系统。在机器 A 上打开一个 DOS 窗口,运行 JAVA CORBA 命名目录服务器.第二部分:实验调试与结果分析(可加页)一、 实验小结、建议及体会 通过本次实验,了解了基于 JAVA CORBA 的四则运算分布式系统开发,对中间件有了更深的理解。2、 思考题(1) 假

4、定使用 JDK1.6,编译 idl 文件的命令是什么? idlj fall BA.idl (2) 编译后,产生了哪几个文件?简要说明生成的各个 Java 类的作用。尤其是,客户端的码根和服务器端的框架是哪个类。对于BAInterface 接口,编译后共产生以下六个 JAVA 类或接口:BAInterface.java, BAInterfaceOperations.java, BAInterfaceHelper.java, BAInterfaceHolder.java, BAInterfacePOA.java, _BAInterfaceStub.java。前两个文件是对应 IDL 接口的 JAV

5、A 接口, HELPER 类提供 CORBA 类型转换等辅助功能,HOLDER 类提供 ORB 中间件网络输入、输 出流等方法,而 POA 和 STUB 类分别是服务器端框架和客户端的码根,主要负责远程方法 调用参数的打包和解包。(三) Idl 文件中的 BAPkg 模块映射成了什么? 在 IDL 文件中的 BAPkg 模块被编译成对应的 JAVA 包。(4) 实现远程对象要注意什么问题?所实现的远程对象必须是对应 POA 类的一个子类,换句话说,远程对象类必须 继承对应的 POA 类。(5) 实现服务器端的步骤是什么? 1、设置服务器参数,主要是 命名目录服务器的 IP 地址和端口号;2、根

6、据系统参数作为实参,创建一个 ORB 对象。再 根据 ORB 对象以及 RootPOA 名称解析出 POA 对象参照,根据 POAHelper 类的静态细化方 法把 POA 对象参照转换成 POA 对象。根据 POA 对象创建 POA 管理器类对象,并激活之。 3、创建远程伺服对象,并把它登记到 POA 对象,返回伺服对象的一个 CORBA 对象参照, 根据其 Helper 类的细化方法,将对象参照转换成真正意义上的远程对象。我们这里有三个 概念:伺服对象、伺服对象参照和对应的远程对象。4、根据 ORB 对象和 NameService 名称 解析出命名目录服务器中 JNDI 节点对象 CORB

7、A 参照,再根据其 Helper 类的静态细化方法 把节点对象参照转换成真正的节点对象。指定一个将绑定远程对象的字符名称,利用节点对 象将该名称转换成连在该节点上的路径对象,最后再把在第三步中创建的远程对象绑定到该 路径上。5、启动 ORB 对象。(6) 实现客户端的步骤是什么?1、设置服务器参数,主 要是命名目录服务器的 IP 地址和端口号;2、根据系统参数作为实参,创建一个 ORB 对象。 、根据 ORB 对象和 NameService 名称解析出命名目录服务器中 JNDI 节点对象 CORBA 3 参照,再根据其 Helper 类的静态细化方法把节点对象参照转换成真正的节点对象。、根 据

8、远程对象字符名称从节点对象中解析出远程对象的参照,再根据其 类的静态细化方法把对象参照转换成远程对象本身。5、调用远程对象的远程方 法。 (7) 运行服务器和客户程序的命令是什么? 首先运行命名目录服务器 : orbd ORBInitialPort 1050, 再运行服务器 : java BAPkg.Server, 最后运行客户端: java BAPkg.Client(八) 谈一谈你对 Java CORBA 的认识。 Java CORBA 是一个完全面向对象的分布式应用开发中间件及规范。它使用 ORB 即对象请求代理作为中间件模块,IIOP 作为服务器端和客户端 ORB 的通讯协议,以及使用

9、IDL 作为接口定义语言。ORB 中间件跨平台、跨语言,充分屏蔽了分布式网络的异构性。 Java CORBA 使用 Java 编程语言,和 C+相比,更简洁、一致、明快,大大减少了服务端和 客户端派生的代码,且派生的代码容易理解,便于使用。在某种意义上,JavaCORBA 已经完全取代了 C+ CORBA。实验课程名称: 软件构件与中间件技术 实验项目名称基于 RMI/IIOP 的分布式一元二次方程求解系统实验成绩实验者廖锡峰专业班级软件1402组别同组者实验日期2017年5月 15日第一部分:实验分析与设计(可加页)实验步骤:一、安装 jdk1.6,并配置系统参数 Path 和 Classp

10、ath。二、创建以下目录结构 D:Exp02rmiiiop_equation。把后面所有 Java 源代码文件都复制到该文件夹下。三、打开记事本,编写封闭两个根的 Java Bean四、编写远程接口五、实现远程接口六、开发服务器程序七、开发客户端程序八、在两台机器 A 和 B 上创建相同的文件夹:D:Exp02rmiiiop_equation,把上面所有的源 代码文件复制到两台机器的对应的文件夹下,分别编译。假定机器 B 是服务器。九、编译方法十、运行系统第二部分:实验调试与结果分析(可加页)一、实验结果二、实验小结、建议及体会通过本次试验,了解了基于 RMI/IIOP 的分布式一元二次方程求

11、解系统,体会到了与CORBA的不同。3、 思考题(1) RMI/IIOP 和传统的RMI 有什么差别?RMI, Remote Method Invocztion, 即远程方法调用。和 RMI/IIOP 相同的地方是两 种方法都使用 JAVA 创建远程对象的接口,而两者使用的网络协议有所不同。后者使用 CORBA 规范的通用协议 IIOP,所以可以和 CORBA 应用通讯。换句话说,一个 CORBA 客 户端可以访问一个 RMI/IIOP 服务器。(2) RMI/IIOP 的开发步骤。1、用 JAVA 定义远 程接口。注意,远程接口要继承 java.rmi.Remote, 远程方法要抛出 jav

12、a.rmi.RemoteException。 2 、实现远程接口。注意,实现远程接口的类必须继承可移植远程对象,即 javax.rmi.PortableRemoteObject。3、开发服务器程序。4、开发客户端程序。5、编译所有 JAVA 源代码。6、使用 rmic 编译远程对象实现的字节码文件,产生客户端的码根和服务器端的框 架。例如:rmic iiop RMIIIOPApp.RemoteObjectImpl。注意,rmic 要使用 iiop 选项。(三) 实现远程接口应注意什么?实现远程接口的类必须继承可移植远程对象,即 javax.rmi.PortableRemoteObject。(4

13、) 定义远程接口应注意什么?远程接口要继承 java.rmi.Remote, 远程方法要抛出 java.rmi.RemoteException。(5) 客户端和服务器的系统参数的含意是什么?IP地址和端口号。(6) 如何产生客户端和服务器端的镜像代码?客户端的码根是远程对象的本地镜 像,也就是远程对象的本地代理,主要负责远程方法参数打包和远程方法调用返回结果的解 包。服务器端的框架是服务器的码根。(7) 修改客户端程序,使用输入流,使得用户能够输入任意三个系数。Scanner input = new Scanner(System.in);double a,b,c;System.out.println(please input a value:);a = input.nextDouble();System.out.println(please input b value:);b = input.nextDouble();System.out.println(please input c value:);c = input.nextDouble();RootJB roots= ro.calRoots(a,b,c);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1