版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件11级中间件复习题参考答案二、问答题a)什么是RMI?与RMI/IIOP的差异是什么?
RMI,RemoteMethodInvocztion,即远程方法调用。和RMI/IIOP相同的地方是两种方法都使用JAVA创立远程对象的接口,而两者使用的网络协议有所不同。后者使用CORBA标准的通用协议IIOP,所以可以和CORBA应用通讯。换句话说,一个CORBA客户端可以访问一个RMI/IIOP效劳器。b)什么是CORBA?与RMI/IIOP的差异是什么?
CORBA,CommonObjectRequestBrockerAchitecture。即通用对象请求代理体系框架,是一种分布式中间件标准。和RMI/IIOP不同的地方,前者使用IDL通用接口定义语言定义远程对象的接口,而后者是纯粹的JAVA分布式体系,使用JAVA定义远程接口。c)CORBA体系结构的中间件是什么?
CORBA体系结构的中间件是ORB,即对象请求代理d)客户端的码根和效劳器端的框架作用是什么?
客户端的码根和效劳器端的框架作用是什么?客户端的码根是远程对象的本地镜像,也就是远程对象的本地代理,主要负责远程方法参数打包和远程方法调用返回结果的解包。效劳器端的框架是效劳器的码根。e)试列举常用的中间件类型。
1、远程过程调用中间件,即RPC。2、面向对象中间件,例如:RMI.RMI/IIOP,CORBA,EJB,DCOM等。3、面向消息中间件,例如:JavaMessageService,IBMMQSeries,WebServices等。4、基于事件中间件。f)基于RMI/IIOP的分布式应用开发步骤及请考前须知是什么?
1、用JAVA定义远程接口。注意,远程接口要继承,远程方法要抛出。2、实现远程接口。注意,实现远程接口的类必须继承可移植远程对象,即。3、开发效劳器程序。4、开发客户端程序。5、编译所有JAVA源代码。6、使用rmic编译远程对象实现的字节码文件,产生客户端的码根和效劳器端的框架。例如:rmic–iiopRMIIIOPApp.RemoteObjectImpl。注意,rmic要使用–iiop选项。g)基于JavaCORBA的分布式应用开发步骤及请考前须知是什么?
1、使用IDL接口定义语言定义远程接口。2、使用jdk1.6的idlj编译接口定义文件。注意:idlj的选项是-fall。3、实现远程接口。注意:实现远程接口的类必须继承效劳器端的POA对象。4、实现效劳器程序。5、实现客户端程序。h)什么是POA?它的作用是什么?
POA,PortableObjectAdapter。即可移植对象适配器对象。主要的作用有,管理远程对象,远程方法参数的打包和解包。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的管理池?(poolingSatelessSessionBeans)见k>n)什么是EJB的JavaPersistence技术?见k>o)试说明以下EJBJava标注的意义:@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查询语句综合题三、基于J2EE的B/S分布式代数方程求解系统〔既考试综合题〕问题:〔一〕、简述基于J2EE的B/S分布式代数方程求解系统的开发原理利用无状态会话组件表示代数方程求解的业务逻辑。编写二个效劳器端小程序S1和S2。ServletS1用于显示输入代数方程三个系数的HTML表单〔Form〕,表单的Method属性设置为Post,而其Action指向ServletS2。效劳器端小程序S2,利用J2EE的注入机制,跨容器地创立无状态会话组件的一个实例作为其成员,从而调用其远程接口所呈现的求解代数方程的远程方法。支持J2EE的应用效劳器GlashFish包括EJB容器和WEB容器,后者为支持Servlet和JSP的WEB效劳器,例如ApacheTomecat。跨容器数据交流由应用效劳器支撑。这个应用程序的客户端,正如其名子所示,是浏览器。效劳器端小程序S2承当三个主要任务:一是提取S1所提交的三个系数,由其Request对象完成,二是利用J2EE注入机制创立无状态会话组件的一个实例并调用其远程方法,三是利用Response对角获取一个输出流对象,把代数方程求解的结果以HTML格式显示给客户端。WEB效劳器当首次收到一个请求Servlet时,如果该效劳器小程序已经被编译就创立一个实例,执行之,并把计算的结果以标准的HTML协议能接受的格式组织数据并返回给客户端,否那么要编译对应的Servlet。WEB容器,正如其它容器一样,利用Pool管理驻存在内存中的Servlet实例,以便提高系统运行的效率。〔二〕、画出该系统的原理图〔三〕、效劳器小程序S1是如何导向S2的?效劳器小程序S1打印一个标准的HTML的FORM,通过FORM的Action属性指向效劳器小程序S2。〔四〕、在S2中是如何跨容器导入无状态会话类的实例的?S2所要导入的是一个表示求解一元二次方程业务逻辑的无状态会话组件,所以可以利用J2EE的注入机制导入该组件的一个实例作为其成员变量,从而调用其远程方法。〔五〕、无状态会话类和有状态会话类之间有着什么样的差异?有状态会话类的一个实例可作为一个客户和效劳器会话期间数据交流的平台,保存该客户会话期间的痕迹,典型的例子是在线图书订购系统的“购物车”。客户断开连接,与之对应的有状态会话类的实例也从内存中被释放掉。而无状态会话类不用于记录客户与会话期间的痕迹,用内存池即POOL管理。当客户请求一个无状态会话类的一个实例,如果池中有这样一个实例,便取出响应该客户的请求,否那么应用效劳器那么创立一个新的实例〔六〕、什么是注入机制?适用于有状态会话类的引用吗?所谓注入机制是J2EEEJB3.0引用无状态会话类的一种方法,通过@EJB标注,客户端导入无状态会话类的一个实例作为其成员变量。注入机制只适用于无状态会话类,不适用有状态会话类。〔七〕、如果使用C/S模型,还能在客户端使用注入机制吗?如果使用Client/Server模型,一般情况下即使是请求某个无状态会话类的一个远程对象,也不使用注入机制,而是使用命名目录效劳,通过JNDI检索到该远程对象〔八〕、如果不使用注入机制,那么使用什么方法在客户端导入会话类的实例?如果不使用注入机制,必须使用命名目录效劳,通过JNDI检索到该远程对象。〔九〕、什么是WEB容器?试举一、二个支持JSP和Servlet的WEB容器。所谓WEB容器,就是一种对网页、脚本、和其它代码提供支撑的软件,例如J2EEWEB容器提供对JSP网页、JSP脚本、JSPTag、效劳器小程序Servlet等的支撑。“支撑”的含意很广,从数据的交流、系统的平安到对象的生命周期,都属于WEB管理的范围。支持JSP和Servlet的WEB容器,典型的例子是ApacheTomcat。〔十〕、什么是EJB容器?它与应用效劳器的关系是什么?试举一、二个常见的应用效劳器。所谓EJB容器是一种企业级Java组件的支撑软件,从EJB的实例创立、系统的平安到对象的生命周期等,都属于EJB容器支撑的范围。一个应用效劳器一般包括WEB容器、EJB容器和JNDI命名目录效劳器。典型的J2EE效劳器有ORACLE的GlassFish和Hibenaute的JBOSS。〔十一〕、试说明基于J2EE的B/S分布式代数方程求解系统的开发步骤。〔十二〕、试手工写出该系统的远程接口及会话类的Java源代码。两个Servlet源代码。1、封装方程根信息的JavaBeanpackageorg.software_sy1001.middleware.j2ee.exp31;import;publicclassRootResultimplementsSerializable{privatefloatX1;/*第一个根*/privatefloatX2;/*第二个根*/privatebooleanpossedingRealRoots;/*表示有无实根的玻尔变量*/publicfloatgetX1(){returnX1;}publicvoidsetX1(floatX1){this.X1=X1;}publicfloatgetX2(){returnX2;}publicvoidsetX2(floatX2){this.X2=X2;}publicbooleanisPossedingRealRoots(){returnpossedingRealRoots;}publicvoidsetPossedingRealRoots(booleanpossedingRealRoots){this.possedingRealRoots=possedingRealRoots;}}2、远程接口:packageorg.software_sy1001.middleware.j2ee.exp31;import;@RemotepublicinterfaceMyRootSloverRemote{publicRootResultcomputeRoots(floata,floatb,floatc);//求解方程的远程方法publicStringcocoWantToSaySomethin(Stringwords);//永恒的HelloWorld}3、无状态会话组件packageorg.software_sy1001.middleware.j2ee.exp31;import;@StatelesspublicclassMyRootSloverBeanimplementsMyRootSloverRemote{publicStringcocoWantToSaySomethin(Stringwords){returnnewString("Dearcocosaystoyoulongtimenoseeyouand"+words);//thrownewUnsupportedOperationException("Notsupportedyet.");}publicRootResultcomputeRoots(floata,floatb,floatc){RootResultres=newRootResult();floatdelta,x1,x2;delta=b*b-4*a*c;if(delta<0)res.setPossedingRealRoots(false);else{x1=(-b+(float)Math.sqrt(delta))/(2*a);x2=(-b-(float)Math.sqrt(delta))/(2*a);res.setX1(x1);res.setX2(x2);res.setPossedingRealRoots(true);}returnres;//thrownewUnsupportedOperationException("Notsupportedyet.");}}4、效劳器S1packagecom.software_sy1001.middleware.j2ee.exp31.webcontainer;import;import;import;import;import;import;//twoclassesorinterfacesarenotneedeyetbutthoughincludingthemimportorg.software_sy1001.middleware.j2ee.exp31.MyRootSloverRemote;importorg.software_sy1001.middleware.j2ee.exp31.RootResult;publicclassS1extendsServlet{protectedvoidprocessRequest(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=UTF-8");PrintWriterout=response.getWriter();try{//TODOoutputyourpagehereout.println("<html>");out.println("<head>");out.println("<title>ServletS1</title>");out.println("</head>");out.println("<body>");out.println("<center>");out.println("<h3>Second-DegreeAlgebraicEquationSolving</h3>");out.println("<Formmethod=\"post\"action=\"S2\">");out.println("a:<inputtype=\"text\"name=\"a\"size=\"25\"><br>");out.println("b:<inputtype=\"text\"name=\"b\"size=\"25\"><br>");out.println("c:<inputtype=\"text\"name=\"c\"size=\"25\"><br>");out.println("<inputtype=\"submit\">");out.println("<inputtype=\"reset\"><br>");out.println("</Form>");out.println("</center>");out.println("</body>");out.println("</html>");}finally{out.close();}}@OverrideprotectedvoiddoGet(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException{processRequest(request,response);}@OverrideprotectedvoiddoPost(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException{processRequest(request,response);}@OverridepublicStringgetServletInfo(){return"Shortdescription";}//</editor-fold>}5、效劳器S2packagecom.software_sy1001.middleware.j2ee.exp31.webcontainer;import;import;import;import;import;importjavax.se;//OurEJBcomponentJarimportorg.software_sy1001.middleware.j2ee.exp31.MyRootSloverRemote;importddleware.j2ee.exp31.RootResult;//StandardJ2EEJarimport;publicclassS2extendsServlet{//So-calledthetheinjectingmechanismtointroduceaSLSBasamemberfield@EJBMyRootSloverRemotesolver=null;protectedvoidprocessRequest(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException{response.setContentType("text/html;charset=UTF-8");PrintWriterout=response.getWriter();try{//TODOoutputyourpagehere//Extractingthreecoefficientsoftheequationbyusingrequestargumentfloata,b,c;Stringcocos_words="Mychildren,Iloveyouverymuch!";Stringcocos_entire_phase=null;RootResultroots=null;a=Float.parseFloat(request.getParameter("a"));b=Float.parseFloat(request.getParameter("b"));c=Float.parseFloat(request.getParameter("c"));roots=solverputeRoots(a,b,c);cocos_entire_phase=solver.cocoWantToSaySomethin(cocos_words);out.println("<html>");out.println("<head>");out.println("<title>ServletS2</title>");out.println("</head>");out.println("<body>");StringBufferequation=newStringBuffer();equation.append(request.getParameter("a")+"X^2+");equation.append(request.getParameter("b")+"X+");equation.append(request.getParameter("c")+"=0");out.println("<marquee>"+cocos_entire_phase+"</marquee>");out.println("<h2>Fortheequation"+equation.toString()+":</h2><br>");out.println("<h2>");if(roots.isPossedingRealRoots()){out.println("X1="+Float.toString(roots.getX1())+"<br>");out.println("X2="+Float.toString(roots.getX2())+"<br>");}else{out.println("Therearenorealrootsatallhaha<br>");}out.println("</h2");out.println("</body>");out.println("</html>");}finally{out.close();}}@OverrideprotectedvoiddoGet(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException{processRequest(request,response);}10@OverrideprotectedvoiddoPost(ServletRequestrequest,ServletResponseresponse)throwsServletException,IOException{processRequest(request,response);}@OverridepublicStringgetServletInfo(){return"Shortdescription";}//</editor-fold>}〔十三〕、在开发S1和S2时,应该导入什么包?在开发效劳器小程序时应该导入标准的J2EE包javaee.jar和效劳器EJB模块的jar包。〔十四〕、如何在单机和局域网上测试该系统?在本机上翻开浏览器,输入效劳器小程序S1的://localhost:8080/RootSolverWeb/S1在学院局域网上运行系统时,必须把localhost换成应用效劳器的IP地址。〔十五〕、什么是描述布署符?作用是什么?所谓布署描述符,DeploymentDescriptor,是一个WEB应用或效劳中描述效劳器小程序等的一个XML文档,一般由WEB容器生成和维护。所有的体系结构,无一例外,都使用XML文档来描述结构和数据。从DotNetFramwork到J2EE,除了使用XML进行标准,还使用XML作为轻量级信息的载体和协议。〔十六〕、当用浏览器翻开一个Servlet时,WEB容器是怎么操作的?WEB效劳器当首次收到一个请求Servlet时,如果该效劳器小程序已经被编译就创立一个实例,执行之,并把计算的结果以标准的HTML协议能接受的格式组织
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 领导配合方案
- 河南省信阳市2024-2025学年七年级上学期期中地理试卷
- 空调漏水治理方案
- 煤棚环保改造方案
- 2024-2025学年山东省德州市齐河县安头中学八年级(上)第一次月考物理试卷(含答案)
- 2023-2024学年山东省东营市河口区九年级上学期期末物理试卷(含答案)
- 2019年7月20日下午云南省公务员无领导小组讨论面试真题真题
- 湖北公务员面试模拟28
- 浙江公共基础知识模拟30
- 河北省公务员面试模拟151
- 安徽省亳州市黉学英才中学2024-2025学年七年级上学期期中生物学试题(含答案)
- 期中综合检测(1-4单元)(试题)- 2024-2025学年二年级上册数学人教版
- 2024年消防宣传月知识竞赛考试题库500题(含答案)
- 国开2024年秋《机电控制工程基础》形考任务1答案
- 食品安全工作操作流程(5篇)
- 《中华民族大团结》(初中)-第10课-伟大梦想-共同追求-教案
- 《非计划性拔管》课件
- 送货单电子模板
- (完整版)定向钻(拉管)施工方案
- (最新整理)终身教育(理论基础)
- 圆内极点与极线性质简证
评论
0/150
提交评论