武汉理工中间件复习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件11 级中间件复习题参考答案
二、问答题
a) 什么是RMI ?与RMI/IIOP 的差别是什么?
RMI, Remote Method Invocztion, 即远程方法调用。和RMI/IIOP 相同的地方是两种方法都使用 JAVA创建远程对象的接口,而两者使用的网络协议有所不同。后者使用 CORBA 规范的通用协议IIOP,所以可以和CORBA 应用通讯。换句话说,一个CORBA 客户端可以访问一个RMI/IIOP 服务器。
b) 什么是CORBA?与RMI/IIOP 的差别是什么?
CORBA, Common Object Request Brocker Achitecture 。即通用对象请求代理体系框架,是一种分布式中间件规范。和RMI/IIOP 不同的地方,前者使用IDL 通用接口定义语言定义远程对象的接口,而后者是纯粹的JAVA 分布式体系,使用JAVA 定义远程接口。
c) CORBA 体系结构的中间件是什么?
CORBA 体系结构的中间件是ORB,即对象请求代理
d) 客户端的码根和服务器端的框架作用是什么?
客户端的码根和服务器端的框架作用是什么?客户端的码根是远程对象的本地镜像,也就是远程对象的本地代理,主要负责远程方法参数打包和远程方法调用返回结果的解包。服务器端的框架是服务器的码根。
e) 试列举常用的中间件类型。
1、远程过程调用中间件,即RPC 。
2 、面向对象中间件,例如:RMI. RMI/IIOP, CORBA, EJB, DCOM 等。
3、面向消息中间件,例如:Java Message Service, IBM MQSeries, Web Services 等。4 、基于事件中间件。
f) 基于RMI/IIOP 的分布式应用开发步骤及请注意事项是什么?
1、用JAVA 定义远程接口。注意,远程接口要继承java.rmi.Remote,远程方法要抛出java.rmi.RemoteException 。
2 、实现远程接口。注意,实现远程接口的类必须继承可移植远程对象,即javax.rmi.PortableRemoteObject 。
3、开发服务器程序。
4、开发客户端程序。
5、编译所有JAVA源代码。
6、使用rmic 编译远程对象实现的字节码文件,产生客户端的码根和服务器端的框架。例如:rmic –iiop RMIIIOPApp.RemoteObjectImpl 。注意,rmic 要使用–iiop 选项。
g) 基于Java CORBA 的分布式应用开发步骤及请注意事项是什么?
1、使用IDL接口定义语言定义远程接口。
2、使用jdk1.6 的idlj 编译接口定义文件。注意:idlj 的选项是-fall 。
3、实现远程接口。注意:实现远程接口的类必须继承服务器端的POA 对象。
4 、实现服务器程序。
5、实现客户端程序。
h) 什么是POA ?它的作用是什么?
POA, Portable Object Adapter 。即可移植对象适配器对象。主要的作用有,管理远程对象,远程方法参数的打包和解包。
i) 试画出基于JDBC-ODBC 桥的数据库应用各模块之间关系示意图。
j ) 什么是J2EE 容器?与EJB 容器的关系是什么?试列举至少二种J2EE 容器。
所谓J2EE 容器,是一种提供象通讯、安全、对象生命周期、数据瞬时的一致性、软件构件的布署等服务的支撑软件,包括WEB 容器和EJB 容器。J2EE 容器又叫J2EE 应用服务器,例如JBOSS,GlassFish 等都可用作J2EE 容器
k) 什么是无状态会话Bean ?什么是有状态会话Bean?什么是实体Bean ?它们的区别是什么?
一个用户连接到服务器,从连接起到断开止,称为一个会话,英语术语session。有状态会话组件,记录会话期间,一个客户和服务器端数据交流的痕迹。当一个客户申请一个有状态会话组件时,组件服务器就为这个用户创建一个唯一的有状态会话组件对象,其生命周期即为会话时间。而无状态会话组件,不保存客户会话的痕迹,所以一个驻存在内存中的无状态会话组件对象可以服务多个客户。当一个客户请求一个无状态会话组件对象时,如果在组件容器连接池中存在,那么就分配给该用户,否则,就创建一个新的对象。实体组件严格地对应后台数据库中的一个表单。你可以把它视为一个内存数据库表单。一个存活实体组件对象与对应数据库表单数据的一致性,由组件容器维护。
l) 什么是EJB 的注入机制?
EJB3.0 采用JAVA 标注实体组件对象注入机制,大大地简化了基于J2EE 数据库存编程。所谓注入机制,即当容器在一个会话组件对象内遇到导入一个实体对象的标注时,即时创建该实体组件的一个对象。旧版本的J2EE,程序员必须显式地创建一个实体组件对象。
m) 什么是SSSB 的管理池?(pooling Sateless Session Beans)
见k>
n) 什么是EJB 的Java Persistence 技术?
见k>
o) 试说明以下EJB Java 标注的意义:@Remote, @Stateless, @Stateful, @Entity, @EJB,@Id, @Column, @PersistenceContext, @Table, @NamedQuery 。
1) @Remote 标注远程
2) @Stateless 标注无状态会话组件
3) @Stateful 标注有状态会话组件
4)@Entity 标注实体组件
5)@EJB 实体组件注入机制标注
6) @PersitenceContext 利用JAVAPersistence 机制导入实体组件标注
7) @Id 标注实体组件所对应的数据库表单的主键
8) @Column 标注实体组件某成员变量为对应表单的字段
9) @Table 标注实体组件对应的表单
10) @NamedQuerry 标注命名SQL 查询语句