山东大学中间件复习题及答案.doc_第1页
山东大学中间件复习题及答案.doc_第2页
山东大学中间件复习题及答案.doc_第3页
山东大学中间件复习题及答案.doc_第4页
山东大学中间件复习题及答案.doc_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中间件复习题中间件复习题1. 你认为什么是中间件?中间件的主要作用是什么?l 定义:中间件是介于应用系统和系统软件之间的一类软件,是位于操作系统和应用软件之间的一个软件层,向各种应用软件提供服务,使不同的应用进程能在屏蔽掉平台差异的情况下,通过网络互通信息。l 作用:使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。2. 比较B/S结构与C/S结构的优缺点。l B/S结构的优点: 1.具有分布性特点,可以随时随地进行查询、浏览等业务处理。 2.业务扩展简单方便,通过增加页面即可增加服务器功能。 3.维护简单方便,只需要改变网面,即可实现所有用户的同步更新。 4.共享性强 l B/S 结构的缺点: 1.响应速度不及C/S,随着AJAX技术的发展,相比传统B/S结构软件提升一倍速度。 2.用户体验效果不是很理想,B/S需要单独界面设计,厂商之间的界面也是千差万别,由于浏览器刷新机制,使用时有刷屏现象,好在AJAX技术解决这一难题l C/S 结构的优点: 1.由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度较快。 2.C/S结构的管理信息系统具有较强的事务处理能力。 l C/S 结构的缺点: 1.只适用于局域网(现在很多CRM软件也可适用于外网)。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。 2.客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。 3.对客户端的操作系统一般也会有限制。不适用于微软新的操作系统等等,Linux、Unix等。3. ORB、对象适配器的作用分别是什么?l ORB:是OMA参考模型的核心,提供了最基本的通信枢纽设施(分布式对象之间透明的地发送请求或接收响应的基本机制),独立于实现对象的特定平台与技术,是基于分布式对象构建应用程序的基础设施,保证了在异构平台上对象的互操作性与可移植性。作用:解释客户端的调用并且负责找到一个实现该请求的对象,把请求参数传递给该对象,调用它的方法最好返回结果。对象适配器:对象适配器是联系对象实现与ORB本身的纽带。它的引入还大大减轻了ORB的任务,从而简化了ORB的设计。作用:管理服务器端伺服对象,对象标识,CORBA对象以及它们之间关联。决定在收到一个客户请求时应调用哪一个伺服对象,然后调用该伺服对象上的合适操作。对象适配器主要完成以下工作:对象登记、对象引用(OR, Object Reference)的产生、服务器进程的激活、对象的激活、对象的撤消、对象向上调用。4. 描述典型CORBA程序的开发实现过程(静态工作模式)。静态工作方式:一个典型CORBA应用的实现过程:5. 什么是POA策略?列举几种标准的POA策略并简要解释。l POA策略:POA策略是一个对象,负责控制相关POA的行为及这些POA所管理的对象,使用POA前应仔细考虑应用程序所需的策略集。l 标准POA策略:(选两种即可)线程策略:该策略指定POA使用的线程模型,它有两种取值:ORB_CTRL_MODEL(缺省值):表示由ORB负责将对POA的请求指派到线程。在多线程环境中,并发请求可以用多线程传送。SINGLE_THREAD_MODEL:这时只有一个线程,POA顺序地处理请求。对象标识指派策略:该策略指定对象标识是由程序员编写的服务程序生成还是由POA自动生成,它可取以下值:USER_ID:由应用程序为POA的对象引用指定对象标识。SYSTEM_ID(缺省值):由POA为它的对象引用分配对象标识。如果同时还采用了PERSISTENT策略,则在同一POA的所有实例中对象标识必须是唯一的。 对象标识唯一性策略:该策略允许多个抽象对象共享一个伺服对象,它可取下列值:UNIQUE_ID(缺省值):被激活的伺服对象仅支持一个对象标识,POA不允许一个伺服对象与多个CORBA对象相关联。MULTIPLE_ID:被激活的伺服对象可以有一个或多个对象标识,在运行时刻调用伺服对象的操作时必须由操作内部决定对象标识。生命期策略:该策略指定POA中对象实现的使用期限,它可有以下值:TRANSIENT(缺省值):由POA创建的对象引用是瞬时的,这些对象在创建它的POA之外不可存在。一旦POA被冻结为非活动状态,调用该POA创建的任何对象引用将引发OBJECT_NOT_EXIST异常。对话型对象通常设计为瞬时对象。PERSISTENT:由POA创建的持久对象可在创建它的POA之外存在,因而使用这一策略通常还会同时采用USER_ID策略。对持久对象的请求可能导致隐式地激活一个进程、一个POA以及实现该对象的伺服对象,这意味着POA应注册伺服对象定位器或激活器。实体型对象通常设计为持久对象。隐式激活策略:该策略指定POA是否支持伺服对象的隐式激活,它可取以下值:IMPLICIT_ACTIVATION:POA支持隐式激活,服务程序可调用servant_to_reference操作或servant_to_id操作将伺服对象添加到活动对象映射表并转换为对象引用,也可调用伺服对象的_this方法激活伺服对象。该值要求同时使用SYSTEM_ID和RETAIN策略。NO_IMPLICIT_ACTIVATION(缺省值):POA不支持伺服对象的隐式激活,只有通过显式的调用才可将伺服对象与一个对象标识相关联。伺服对象保持策略:该策略指定POA是否将活动伺服对象保存在活动对象映射表中,它有两种取值:RETAIN(缺省值):POA利用活动对象映射表跟踪对象的激活情况,通常与伺服对象激活器或POA显式激活方式结合使用。NON_RETAIN:POA不在活动对象映射表中保存活动的伺服对象,通常结合伺服对象定位器一起使用。6. 消息发送的模式有哪些?l 同步方式:客户端以同步通信方式发出一个请求后将控制权交给ORB,然后在请求完成(既可能成功并返回结果也可能失败并引发异常)之前一直等待。l 延迟同步通信:客户端发出一个延迟同步方式的请求之后,将继续执行任务而不是等待请求处理结束,然后以空闲的时间以非阻塞的轮询方式检查请求是否处理完毕。l 单向通行:客户端发出请求后继续工作而不会检查请求是否处理完毕l SII支持同步和单向,DII支持所有7. 简述基于POA实现的客户请求传递过程。客户请求的传递过程:l 客户程序发出的请求中包含:创建对象引用的POA名字、对象标识及目标机器与端口等信息 l 如果目标POA不存在,ORB还允许调用适配器激活器创建所需的POAl 一旦请求被ORB传送到正确的机器与端口,监听该端口的POA管理器负责检查对象关键码(object key),对象关键码中含有POA名字与对象标识 l POA管理器利用对象关键码将请求传送给正确的POA l POA利用对象关键码确定对象标识l 根据POA的策略集直接或间接地利用对象标识将请求传送到正确的伺服对象。8. 什么是消息中间件? 和PRC的比较,并描述一种消息中间件的应用场景。l 消息中间件:应用间通过传递消息来进行协作,是一种异步通信模式。主要功能是在不同的网络协议、不同的操作系统和不同的应用程序之间提供可靠的和可恢复的(若发生意外)消息传送。l RPC调用的缺点:(1)客户端与服务器端需要同时在线; (2)客户端需要知道服务器端的调用接口,若调用接口发生改变,客户端需要做相应变化,如通过ODBC连接访问数据库,客户端需要知道远程数据库的类型,若类型发生改变,还需要重新装载相应的驱动程序。 (3)操作过程中需要一直保持与服务器端的连接,直到操作结束。因而, (a)一旦连接中断,就意味着操作失败或数据丢失; (b)通常判断连接中断的时间较长,若信道的可靠性较差, 容易造成连接中断,那么应用效率将严重低下; (c)服务器端在执行操作的过程中,并不涉及网上数据传输,但连接的保持占用信道,容易造成网络堵塞。l 这个问题可用消息中间件来解决,工作原理:-应用之间以一系列消息的方式进行通信。 -在消息传递过程中,为了避免消息被丢失,消息被保存在消息队列中。 -应用把消息发送到与接收者有关的队列中。消息传递机制保证将消息传送到目的地且只传送一次。 -在消息传递过程中,应用之间不必建立联系,发送者仅需将消息放入到与接收者有关的队列中,而不必关心接收者是否在线。 -接收者仅需从自己的队列中提取消息即可。l IBM的MQSeries、Microsoft的MSMQ、东方通的TongLink/Q、BEA的MessageQ9. EJB组件有哪几种?其特点分别是什么?l EJB组件:会话bean(维护会话):表示客户同应用之间进行的会话,是一种商业处理过程对象。 实体bean(处理事务):代表商业过程中处理的永久性的数据。 消息驱动Beans(Message-driven Beans):结合了会话bean 和 JMS的消息监听器的特性, 可异步接收JMS 消息。l 特点:会话bean(维护会话):-运行在服务器端,其数据需要自己管理-客户通过session bean上的方法来同应用的业务逻辑层上的组件进行交互 -Session bean是短暂的,且只有在与之关联的会话存在时才存在-会话Bean代表的是调用它的客户程序所完成的工作,是商务过程对象。 -他们执行商务逻辑、商务规则、算法和工作流程,他们是包含商务逻辑过程的可重用组件。 实体bean:-表示存储在永久性数据存储位置的业务数据,是持久的对象。 -与会话bean不同,实体bean不维护客户端状态 -实体bean实例映射到存储在关系数据库表中的一行数据 -实体bean每一个实例都具有唯一的标识(主键) -更复杂的entity bean可以代表数据库表间关联视图。 -实体bean对象的存活时间与它们相关联的数据实体一样长,持续到它们表示的实体实际从永久性存储器中删除时对象 -与会话bean不同,实体可由多个客户共享 消息bean:与其他BEAN区别 -不能由客户直接调用,由容器异步调用 -没有远程或本地接口 -类似于无状态的会话BEAN10. RMI存根和框架的作用?RMI存根和框架的作用:l Stub:存在于客户端是远程对象的本地映象,在调用远程对象时,实际调用的是存根对象上的方法其负责:初始化并与远程对象所在的远程VM连接然后将参数打包,传递到远程VM等待方法调用的结果解包返回值和异常将值返回给调用者l Skeleton:存在于服务器接收客户存根的请求和真正的远程对象进行交互用于传送服务器响应到客户负责:解包客户端输入的远程方法的参数调用实际的远程对象的方法将结果打包返回给调用者传至远程引用层11.比较JSP与Servlet。1. 两者都是基于Java的技术,所以都继承了Java的所有特性(跨平台、多线程、OO ),都可以使用Java强大的API。 2. 两者工作方式相似:JSP代码先被JSP容器转换为Servlet代码再编译为类。 3. 两者在J2EE体系结构中的工作层次相同,都负责与客户端的连接。4. 都是Web服务器的功能扩展,Servlet创建动态页面;JSP可动态,静态创建页面 5. Servlets是一些运行于Web服务器端的Java小程序;而JSP是脚本,编写起来更简单容易。12.简述什么是POA?简述创建并激活POA的过程?l POA:POA是对象实现与ORB其他组件之间的中介,它将客户请求传送到伺服对象,按需创建子POA,提供管理伺服对象的策略。l 创建:利用create_POA()方法可以创建一个新的POA作为该POA的子POA, 可以根据实际需要以这种方式创建多个子POA,从而形成一个POA层次(服务程序创建子POA只需提供子POA的名字,客户程序必须使用完整的POA名字指定一个子POA)l 激活:对象引用通过对象标识与伺服对象建立关联。如果POA采用RETAIN策略,可有三种激活方式:显示激活,隐式激活,按需激活;若采用NON_RETAIN策略,对象只能按需激活。13.简述什么是值类型?值类型的作用和典型用法是什么?l 值类型:一种由类型的实际值表示的数据类型。l 实质:一个对象的目的是为了封装数据,或一个APP需要显式地对某一对象进行复制,该对象应使用IDL值类型而不是接口类型,此时的对象实例称为“值”。l 作用:在网络中传递对象状态信息,即为了实现按值传递对象。l 典型用法:1.按值调用传递参数时创建实参的副本 2.远程操作返回一个对象时创建返回结果的副本14.现代应用系统的主要特征是什么?l 分布:任务已不只是在单机上运行,而是由网络中多台计算机上的相关应用共同协作完成,需考虑网络传输、数据安全、数据一致性、同步等诸多问题; l 异构:计算机硬件、操作系统、网络协议、数据库系统以及开发工具种类繁多,需考虑数据表示、调用接口、处理方式等诸多问题; l 动态协作:参与协作的应用允许位置透明性、迁移透明性、负载平衡性等需求。15.2层和3层系统的特点是什么?l 2层结构存在很多缺陷:1.客户端的负担仍比较重:仍然需要客户端进行较复杂的数据处理2.客户端的可移植性不好:处理复杂必然牵涉更多的移植性问题;每个客户端上都要安装数据库驱动程序3.系统的可维护性不好:客户端包含过多的商业逻辑;商业逻辑与人机交互界面交织在一起4.数据的安全性l 3层结构的优点:除了更合理的分配任务外,3层结构还具有如下优点:1.将业务逻辑放置在中间层可以提高系统的性能,使中间层的业务逻辑处理与数据层的业务数据紧密结合在一起,而无需考虑客户的具体位置。2.添加新的中间层服务器能够满足新增客户机的需求,可以大大提高3层系统的可伸缩性。3.将业务逻辑从客户端移到中间层,在客户层的应用程序与数据层的数据库之间增加了一层,这样客户端的应用程序可以独立于数据层的数据库。4.将业务逻辑致于中间层,从而使业务逻辑集中到一处。而在2层方式下,业务逻辑被分散到所有的客户机上(除非使用存储过程)。这样做是不可取的,因为业务规则是动态变化的,而对于这些业务而言,规范又是强制性的,所以,将业务逻辑分散到整个客户层的客户机上会使实施过程变得非常困难。5.大量的中间层中间件平台提供丰富的系统级服务,使得开发人员可以以更少的工作量开发出更复杂、可靠、高效的软件系统。16.什么是SOAP? 有什么特点?可采用的底层传输协议有哪些?l SOAP:SOAP是在松散的、分布的环境中使用XML交换结构化的和类型化的信息的一种简单协议。l 特点:SOAP本身并不定义任何应用语义,如编程模型或特定语义实现,它只定义了一种简单的以模块化的方式包装数据的机制。l 可采用的底层传输协议:SOAP没有定义任何底层的传输协议。可以使用HTTP、FTP、SMTP或者JMS,甚至是自定义协议来传输SOAP报文。一般使用HTTP协议。l 从某种意义上讲,SOAP可以简单理解为:HTTP+XML+RPC HTTP作为底层通信协议 RPC作为一致性的调用途径 XML作为数据传输的格式17.EJB组件各接口的含义和作用。l 会话和实体bean提供接口,消息bean不提供 l Home接口:Home接口定义一组方法来创建新的EJB对象,查找、定位和清除已有的EJB对象。 l Remote接口:EJB对象的Remote接口定义EJB构件中提供的可供用户调用的方法,也就是通常所说的实现商业逻辑的函数或过程(如计算商品价格的函数),以供远程客户端调用。18.Servelet的执行过程?最常使用的接口有什么?l Servelet的执行过程:1.加载,实例化和初始化servlet:容器首先判断servlet的实例是否存在,若不存在,则容器加载该servlet,并从该servlet类创建实例接着,容器调用init方法对该servlet实例进行初始化2.调用该servlet的service方法:假定该servlet实例存在,且已进行了初始化则容器调用service方法,用其将一个请求对象和一个响应对象传给该servlet3.清除servlet的响应,将控制权返回给web服务器:Servlet处理了请求后,响应被交给容器。在容器将控制权返回给web服务器前,会将响应清除,然后由web服务器将该响应传送给客户 l 接口:Servlet对应的服务方法,有doGet, doPost等19.EJB组件的调用过程。20Corba服务器端程序的解释,每一行程序的作用21.J2EE中容器的作用l J2EE服务器:是J2EE产品的运行部分。一个J2EE服务器提供EJB容器和Web容器。l Enterprise JavaBeans(EJB)容器:管理J2EE应用程序的enterprise bean的执行。Enterprise bean和它的容器运行在J2EE服务器中。l Web容器:管理J2EE应用程序的JSP和Servlet组件的执行。Web组件和它的容器也运行在J2EE服务器中。l 客户端应用程序容器:管理应用程序客户端组件的运行。l Applet容器:管理applet的执行。由运行在客户端的一个Web浏览器和Java插件一同组成。 22.实体bean与会话bean差别?23.什么是UDDI、WSDL?l UDDI(Universal Description, Discovery and Integration):是一套基于Web的Web Service注册中心的实现标准规范。(注册中心维护了一个Web Service的全球目录,其中的信息描述格式是基于通用的XML格式的。) 包含注册Web Service和发现Web Service的访问协议的实现标准。l WSDL(Web Service Description Language):是采用XML语言来描述Web Service的属性的语言,WSDL文档可以包含以下内容: What:Web Service做什么,Where:Web Service位于哪里,How:怎样调用。如果将Web Service作为一个分布式对象来看,WSDL就是Web Service的接口描述语言(IDL)。WSDL定义了一套基于XML的语法,将Web Service描述为能够进行消息交换的服务访问点的集合。24.CORBA对象和伺服对象的关系。l CORBA对象与具体的伺服对象是两个不同抽象层次的概念:它们之间的彻底分离使得CORBA独立于任何特定程序设计语言,并为服务端程序的可移植性打下基础。对象适配器是一个重要的ORB组件,它负责将抽象的CORBA对象映射到具体的伺服对象。l CORBA对象可看作是一个具有对象标识、对象接口及对象实现的抽象实体。之所以称为抽象的,是因为并没有硬性规定CORBA对象的实现机制。由于独立于程序设计语言和特定ORB产品,一个CORBA对象的引用又称可互操作的对象引用(Interoperable Object Reference)。从客户程序的角度看,IOR中包含了对象的标识、接口类型及其他信息以查找对象实现。l 伺服对象(servant)是指具体程序设计语言的对象或实体,通常存在于一个服

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论