中间件实验报告.doc
《中间件实验报告.doc》由会员分享,可在线阅读,更多相关《中间件实验报告.doc(47页珍藏版)》请在沃文网上搜索。
1、学生学号0120910680223实验课成绩武汉理工大学学 生 实 验 报 告 书实验课程名称 软件构件与中间件技术 开 课 学 院 计算机科学与技术学院 指导老师姓名 祁明龙 学 生 姓 名 彭新辉 学生专业班级 软件0902 2011 2012学年 第二学期实验课程名称: 软件构件与中间件技术 实验项目名称基于RMI/IIOP创建一个查询Excel电子表格的分布式计算实验成绩实验者彭新辉专业班级软件0902组别同组者实验日期第一部分:实验分析与设计(可加页)一、 实验内容描述(问题域描述)基于RMI/IIOP创建一个查询Excel电子表格的分布式计算电子表格(名为book1.xls)见附录
2、一二、 实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)A实验原理:(1)RMI-IIOP的工作机制(2)RMI/IIOP和RMI不同的地方是,前者使用IIOP“标准”CORBA的网络协议,因此可以和其它CORBA应用进行互操作,而相同的地方是,RMI和RMI/IIOP都使用Java 定义远程对象所“暴露”的接口。这就是In the framework of pure Java,“纯Java爷们”框架类内的分布式应用。RMI/IIOP和“标准”CORBA不同的地方是,后者必须用IDL定义远程对象所“暴露”的接口。 (2)“内存数据库表单”即一个java
3、.sql.ResultSet 对象是不能被“序列化”的,即不能把这样一个对象的状态写到一个网络Socket文件里的,所以,必须把“内存数据库表单”里的每一条记录封装到一个实现java.io.Serializable,根据数据库表单“量身定做”的Java Bean一个对象里,再把该对象“丢到”一个java.util.ArrayList 数组列表对象里。Java数据结构标包中的任一类的对象都能被“序列化”,可以从一个网络的一个节点传到另一点。 B实验步骤:1)定义远程接口:(文件名:ROInter.java所在包:mia.ham.football)2)定义Java Bean:(文件名: STUDE
4、NT.java 所在包:mia.ham.football)3)实现远程接口:(文件名: ROImpl.java 所在包:mia.ham.football)4)编写服务器端程序:(文件名: Server.java 所在包:mia.ham.football)5)编写客户端程序:(文件名: Client.java 所在包:mia.ham.football)6)配置book1.xls电子表格的ODBC数据源,命名为rmiiiop_ds。 7) 打开一个DOS命令行窗口,cd 到你的工作目录%WORKING_DIRECTORY%miahamfootbal,把以上Java源码文件复制到%WORKING_D
5、IRECTORY%miahamfootbal之下,按以下命令编译解释: 编译:javac .miahamfootbal*.java, 回车。 8) 使用rmic编译远程对象类字节码,从而产生客户端和服务器端代理,即所谓的客户端码根和服务器端框架,其命令是: rmic iiop mia.ham.footbal.ROImpl, 回车。 9)启动RMI/IIOP JNDI命名目录服务器,输入:orbd -ORBInitialPort 1050,如果端口1050被占用,可以改用其他端口号。10)启动RMI/IIOP的服务器应用:打开一个DOS命令行窗口,切入到工作目录之下,这是因为RMI/IIOP J
6、NDI 命名目录服务器占用了刚才那个DOS命令行窗口。输入命令:myjava mia.ham.footba.Server,回车,从而启动了RMI/IIOP的服务器应用。 11) 启动RMI/IIOP的客户端:在客户端所在物理主机上,安装 jdk1.6,配置Path和Classpath两个系统参数,创建相同的目录结构,复制所有的文件。当然,如果你把应用打包到了一个jar文件,只需使用jar命令解包,自动生成类包的目录结构,而不需要手工创建相同的目录结构。输入命令:javaorb mia.ham.footba.Client,回车,从而启动了RMI/IIOP的客户端应用。 (myjava 为你定义的
7、批处理文件,其内容为:java-Djava.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory -Djava.naming.provider.url=iiop:/localhost:1050 %1)实验代码见附录二三、主要仪器设备及耗材电脑,Dos,NetBeans IDE 6.5 JDK 1.6等第二部分:实验调试与结果分析(可加页)一、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现问题等) 若在程序运行过程中发现接口1050被其他程序占用,可以尝试其他接口在运行程序。二、 实验结果及分析(包括结果描述
8、、实验现象分析、影响因素讨论、综合分析和结论等)实验结果截图服务器端:客户端:三、 实验小结、建议及体会通过本次试验明白并掌握了RMI-IIOP的中间件技术工作机制,实现了一个基于RMI/IIOP查询Excel电子表格的分布式计算。在实验过程中,掌握了很多技能,如配置数据源,定义远程接口等。在服务器端通过函数naming.rebind(Students, remoteObject)将指定的名称重新绑定到一个新的远程对象。在客户端通过函数Object objRef = ct.lookup(Students);在注册表中找到远程对象。实验课程名称: 软件构件与中间件技术 实验项目名称基于标准COR
9、BA创建一个查询以上Exel电子表格的分布式计算实验成绩实验者彭新辉专业班级软件0902组别同组者实验日期第一部分:实验分析与设计(可加页)三、 实验内容描述(问题域描述)基于标准CORBA创建一个查询以上Exel电子表格的分布式计算电子表格(名为book1.xls)见附录一四、 实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)实验步骤:1)安装jdk1.6,配置系统参数Path, Classpath和JAVA_HOME。2)配置book1.xls电子表格的ODBC数据源,命名为rmiiiop_ds。3)定义一个IDL 接口文件:(文件名:dbapp.
10、idl 所在目录:C:rmiiiopsrc) module IDLDBApp typedef struct _STUDENT string id; string name; string major; string calss; STUDENT; typedef sequence AllStudents; interface DisplayDBTable void getStudents(out AllStudents students); ; ; 注意:为了表达对应数据库表单的一行记录,如果使用的开发方法是RMI或RMI over IIOP,那么定义一个Java Bean就可以了,而在IDL
11、 CORBA中,需定义一个结构体来表达数据库表单的一行记录,该结构体的一个序列(Sequence)存放整个表单的数据。在使用jdk1.6的idlj,把这个IDL文件映射成Java目标代码时,该结构体被映射成 _STUDENT.java,一个CORBA的Java Bean。定义一个名为DisplayDBTable的接口,其中有一个名为AllStudents getStudents();远程方法。换言之,在客户端调用该远程方法,就可获取处于服务器端的Exel文档中,区域逻辑名为student的电子表格。 4)编译idl 文件命令为:idlj fall dbapp.idl.产生许多辅助类: 5)实现
12、远程对象:(文件名:ROImpl.java 所在包:IDLDBApp)ROImpl是DisplayDBTablePOA的一个子类。利用JDBC-ODBC数据源连接到Exel文档,提取student电子表格,保存到一个java.sql.ResultSet对象里。JDBC数据集对象是一个Hashtable,一个哈希表,有可以移动的游标。把游标移到最后一行,就可返回整个表单的记录数,但是这样做会带来意想不到的bug,所以还是把数据集中所有数据复制到一个数组列表中,再做后续处理。数据集对象和后台的数据库做in time 连接,直接对它进行数据处理开销大,安全性差,受后台数据库载荷情况的影响,把数据集中
13、所有数据复制到一个数组列表中,是一个分布式应用不成文的规定。 6)开发服务器端:(文件名:Server.java 所在包:IDLDBApp) 7)开发客户端:(文件名:Client.java 所在包:IDLDBApp )8) 编译和测试程序:同实验一实验代码见附录二三、主要仪器设备及耗材电脑,Dos,NetBeans IDE 6.5 JDK 1.6等第二部分:实验调试与结果分析(可加页)四、 调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现问题等)1)在编译 *.java文件时,出现以下情况,不影响实验结果,可忽略不不计。2)在运行客户端程序时出现一定要再程序名前加上包名:
14、五、 实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)实验结果:服务器端:客户端:六、 实验小结、建议及体会通过本次试验明白并掌握了CORBA中间件技术的工作机制。也初步了解了idl(接口定义语言)。通过编写接口定义语言,然后通过idlj fall file.idl 编译,生成的诸多辅助类,为CORBA技术的实现节省了很多工作。通过自己的亲身实践,实现了一个基于标准CORBA查询Exel电子表格的分布式计算。同时也扩充了自己的代码量。实验课程名称: 软件构件与中间件技术 实验项目名称利用J2EE EJB3.0无状态会话Bean(Stateless Session B
15、ean)和实体Bean (Entity Ben)开发一个数据库应用实验成绩实验者专业班级软件0902组别同组者实验日期第一部分:实验分析与设计(可加页)五、 实验内容描述(问题域描述)利用J2EE EJB3.0的无状态会话Bean(Stateless Session Bean)和实体Bean (Entity Ben)开发一个数据库应用限制:数据库表单book1.xls,共有学号,姓名,专业以及专业班级五个字段(Columns or Fields of a dabase table)。不使用 JDBC-ODBC 桥直接连接到Exel电子表格文档,而是编写一个Java Application把电子
16、表格转换成MySql RDBMS的一个数据库表单。设置MySql以及创建数据库表单时的字符集为 UTF-8,或GBK,以确保当显示中文时不乱码。 电子表格(名为book1.xls)见附录一六、 实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)预备知识: Java 数据结构标包:java.util.ArrayList, List, Java JDBC标包: java.sql.* Java JNDI标包:javax.naming.*; Java 标注(Java annotation). 原理: 实体Bean所表达的是所谓的数据层,名字已经使我们联想到数据库
17、设计方法之ER(Entity Relationship)。事实上,实体类(以后我们不区分实体bean,EB,Entity Bean和实体类)它的每一个成员变量都和一个已经存在或将要创建的数据库表单的字段一一对应。J2EE 容器借助于JPA(Java Persistence API),不但保持EB和对应数据库表单的逻辑映射关系,而且提供EB和此表单的数据交流,即所谓的持久化(Persistence),还有诸如EJB生命周期(Life Cycle)和安全等等服务,把程序员从重复繁琐的数据库编程中解放出来。 一个Java Bean即所谓的一个POJO,通过J2EE EJB3.0的Java 标注变成E
18、JB,J2EE容器把这些Java标注转换成Java代码。这个POJO必须实现java.io.Serializable,这样它就可以被“序列化”,即它的一个实例及其状态就可以在一个网络文件即一个socket读写了。一个没有实现“序列化”接口的POJO是不能在RMI,CORBA中作为一个远程方法RM(Remote method)的参数或返回类型的。一个“内存数据库表单”,即JDBC 的数据集对象java.sql.ResultSet,是不能作为一个远程方法RM(Remote method)的参数或返回类型的,因为它没有实现“序列化”接口。所以当涉及到使用非EJB方法开发数据库分布式应用时,我们不得不
19、编写一个实现“序列化”接口,成员变量与有关数据库表单字段严格对应的POJO,借助于循环迭代对象,把JDBC的数据集,即“内存数据库表单”的每一行记录取出来,包装在一个像这样定制的POJO对象里,然后加进一个象java.util.ArrayList 数据结构对象里。而众所周知,一个ArrayList对象是可以网络“序列化”。 SLSB,即Stateless Session Bean,亦即无状态会话 Bean,表达的是业务逻辑层(Business Logic Layer),同样借助于EJB的Java标注所引入的所谓注入机制(Injection Mechanism),访问一个EB从而达到读写一个数据
20、库表单的作用,而对于该数据库表单的操作预先在一个远程Java接口中定义(带有Remote标注),类似RMI中的远程对象方法,CORBA中的侍服对象方法(a servants methods)。 下 面 的 示 意 图 粗 线 条 的 给 出 若 干 核 心 概 念 解 释 。 J2EE容器的选择在EJB开发中很重要。一般的原则是:一用正版的软件,象IBM的WebSpere, BEA的WebLogic,以及Borland的Jbuilder 等;二是选择稳定的高版本的软件;最后选择大家都在使用的开源软件,例如数据库选MySql Server。使用低版本的某个J2EE容器,首先要手工配置很多xml
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
10 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中间件 实验 报告
