您好,欢迎访问三七文档
一、题目类型:1、单选10*22、填空15*23、名词解释3*4(术语编写的掌握,给出缩写写出英文全称和中文)4、简答题3*65、综合题20对技术分析①文字展开②编程二、填空:1.事务处理中间件具有的4个特性:原子性,一致性,隔离性,耐久性。2.EJB模型中两个实体bean持久性模型:自管理的持久性,容器管理的持久性。3.EJB必须实现的两个接口:Home接口和远端调用接口(remoteinterface)。4.CORBA中支持服务方的动态对象调用接口:动态框架接口(DSI)。5.微软中COM组件模型中根据IDispatch接口定义的函数是:Invoke函数。6.CORBA事件服务定义了三个角色:提供者,消费者和事件通道。两种数据传递模型:push,pull三、名词解释:术语缩写(全称+中文名+功能)①ORB:ObjectRequestBroker对象请求代理:它能使对象透明地向其他本地或者远程对象发出请求或获得响应。②MOM:Message-OrientedMiddleware消息中间件:根据要交换的消息在应用之间建立连接,既允许各应用运行在不同的结点机上,又允许不必标准化的消息格式。③RPC:RemoteProcedureCall,远程过程调用中间件:实现网络七层协议中会话层的功能。④WSDL:WebServiceDescriptionLanguage,Web服务说明语言:基于XML的组件描述,用来描述服务。⑤SOAP:SimpleObjectAccessProtocol简单对象访问协议:是Web服务的通信协议,用来定义消息的XML格式。⑥UDDI:UniversalDescription,DiscoveryandIntegration通用发现、说明和集成:Web服务已经过注册,以便潜在用户能够轻易的找到这些服务。⑦DCOM:DistributedComponentObjectModel分布式组件对象模型:DCOM将COM技术扩展到分布式计算领域,通过DCOM配置程序,使得COM组件不需修改就可以在网络环境中运行。⑧CORBA:CommonObjectRequestBrokerArchitecture公共对象请求代理体系结构:CORBA是OMG制定的首批重要规范之一,它详细说明了OMA中ORB组件的特性和界面。四、简答题1、简述远程过程调用的开发步骤和过程答:(1)构建解决问题的常规应用程序;(2)选择一组过程形成远程程序,以便将远程程序转移到远程机器中,通过这种方法将程序分解;(3)为远程程序编写RPC界面(xxx.idl),包括远程的名字及其编号,还有对其参数的申明。选择远程程序号和版本号;(4)运行rpcgen检查该界面,如果合法,便生成四个源代码文件:xxx.h(类型说明文件)、xxx_XDR.c(XDR转换例程)、xxx_clnt.c(客户端的stub过程)以及xxx_svr.c(服务守护过程,服务端的stub过程),这些文件将在客户和服务器程序中使用;(5)为客户端和服务器端编写stub接口例程;(6)编译并链接客户程序。它由四个主要文件组成:去掉了远程过程的程序、客户端的stub(rpc生成)、客户端的接口stub以及XDR过程(rpc生成)。(7)编译并链接服务器程序。它由四个主要文件组成:远程过程组成的程序、服务器的stub(rpc生成)、服务器端的接口stub以及XDR过程(rpc生成)。(8)在远程机器上启动服务器,接着在本机上启动客户,测试验证结果。2、ORB对象服务提供哪些基本服务,分别是哪些(描述)(1)生命周期服务:定义了在对象总线上创建、复制、移动和删除对象的操作。(2)持久性服务:提供在各种存储服务器(包括对象数据库、关系数据库和简单文件)上永久性存储对象的同一界面。(3)命名服务:允许对象总线上的对象通过名字找到与其相对应的对象。(4)事件服务:允许对象动态注册或撤销指定的事件。(5)并发控制服务:提供事务处理和线程所需的锁管理。(6)事务处理服务:提供两阶段提交协议,用于确保ORB上的一些分布式对象协同地完成事务处理。(7)关系服务:提供在互不相识的对象间动态创建关系的方法,并能不断地跟踪这种关系。(8)外部化服务:提供一个类似流的形式的输入/输出界面。(9)查询服务:提供对象的查询操作。(10)许可证服务:提供用于保证合法使用对象的方法。它支持对象生命周期中任何时刻的各种控制模式。(11)属性服务:提供属性与对象相关联的方法。它允许在运行过程那个动态的定义对象的属性。(12)时间服务:提供的界面使分布式对象环境中分布着的时间得到同步,还提供用于定义和管理时间触发事件的操作。(13)安全服务:提供一个分布式对象安全的完整框架。(14)交易器服务:提供对象的“黄页”服务,允许服务对象对外公布它所能提供的服务,并让客户能够动态的查找到它。(15)群体服务:提供用于创建和处理最常见的群体的一致性方法。3、RMI的存根和框架的作用是什么?答:RMI(远程方法调用)就是对一个远程对象的远程接口中的方法进行调用.存根的作用:①初始化并与远程对象所在的虚拟机连接。②将参数打包,然后传递到远程虚拟机。③等待方法调用的结果。④解包返回值和异常。⑤将值返回给调用者。框架的作用:①解包客户端输入的远程方法的参数。②调用实际的远程对象的方法。③将结果打包返回给调用者。④远程引用层。4、简述中间件的特性(5点ppt)答:①易用性②位置的透明性:应用不必知道对方网络和应用的地址;不经重新编译,就可把一个应用从一台机器上转移到另一台机器③消息传输完整性:消息不应丢失或重复④消息格式完整性:消息格式不应被破坏⑤语言的透明性:使用中间件的程序应能与另一个用不同语言编写的程序通信;如果用不同语言重写一个程序,其他程序应不受影响。5、简述两阶段提交协议的原理(分布式处理涉及到的提交问题、2pc、准备阶段、提交阶段)答:分布式事务涉及到多个结点的数据的更新,任何一个结点或结点间通信的失效都可能导致分布式事务的失败。因此,为了保证事务的完整性,分布式事务通常采用两阶段提交协议(TwoPhaseCommitmentProtocol,简称2PC)来提交。两阶段提交协议的思路是事务管理器向所有资源管理器发出正式提交请求之前,先询问所有资源管理器是否已准备好提交,仅当所有的资源管理器都给出肯定的回答时,事务管理器才发出提交的请求;如果其中有一个资源管理器给出否定地回答,事务管理器就指示所有的资源管理器进行回滚。阶段1(准备阶段)事务管理器询问所有的资源管理器是否已准备提交。阶段2(提交阶段)事务管理器检查所有资源管理器的回答,只要有一个资源管理器给出否定的回答,事务管理器指示所有的资源管理器进行回滚。否则,事务管理器指示所有的资源管理器进行提交。在两阶段提交中,一个主节点被指派为事务协调者(Coordiantor),其他节点称为事务参与者(Participants)。协调者掌握提交或撤消事务的决定权,而其它参与者则各自负责本地数据的更新,并向协调者提出撤消或提交子事务的意向。一般一个结点对应一个子事务。6、微软COM中的代码重用技术?(两种方式:1、包容代码重用技术:是外部包容内部的接口。2、聚合代码重用技术:内部直接...)答:在COM组件对象模型中,有两种代码重用技术:包容代码重用技术和聚合代码重用技术。包容代码重用技术实现特点:(1)外部对象包容内部对象的接口(2)外部对象的接口与内部对象的接口可以不同(3)包容模型的实质是客户-组件关系,在包容代码的前后可以插入其他的代码,甚至可以有条件地重用。聚合代码重用技术实现特点:内部对象接口直接展现在外部对象上,内部对象实现两个IUnknown接口(1)非委托IUnknown接口用于正常处理引用计数和接口查询;(2)委托IUnknown接口按情况处理:(a)当对象被聚合时,调用外部对象的IUnknown接口;(b)当对象未被聚合时,调用非委托IUnknown接口五、综合应用1、分析CORBA构建模型规范包含的内容①分布式计算技术和面向对象融合。②代理服务(ORB总线)。③客户端和服务器完全分离。④软件总线功能。⑤设计原则和设计方法层次化。2、中间件技术是在解决哪几方面复杂分布式应用共性问题中发展起来?①计算环境变化:中间件面对的是一个复杂、不断变化的计算环境,要求中间件技术具有足够的灵活性和可成长性。②中间件面对的是一个复杂、不断变化的计算环境,要求中间件技术具有足够的灵活性和可成长性。③从应用支撑角度来看:中间件需要提供分布式应用开发、集成、部署和运行管理的整个生命周期的总体运行模型。④从应用的角度来看:利用中间件完成的往往是复杂、大范围的企业级应用,其关系错综复杂,流程交织。3、编程:功能编代码填空idl服务器类实现最大公约数、最小公倍数(提供了算法)转义成源码,对象适配器调用语句、客户端8.12服务器返回结果。利用CORBA实现求两个正整数的最小公倍数,求最小公倍数的函数在服务器端实现,其原型为longLeastCommonMultiple(longm,longn)。1、写出其IDL文件Lcm.idl(4分)//Lcm.idl#ifndef__LCM_IDL__#define__LCM_IDL__interfaceLcm{longLeastCommonMultiple(inlongm,inlongn)};#endif////__LCM_IDL_2、假定用omniORB的idl到C++的转换工将其转换到C++的类名为POA_Lcm,写出服务器类MyLcm的实现(4分)//MyLcm.cpp#includeLcm.hclassMyLcm:POA_Lcm{virtualCORBA::LongLeastCommonMultiple(CORBA::Longm,CORBA::Longn);}CORBA::LongMyLcm::LeastCommonMultiple(CORBA::Longm,CORBA::Longn){CORBA::Longc=m*n,temp;if(mn){temp=n;n=m;m=temp;}while(m%n){temp=m%n;m=n;n=temp;}returnc/n}3、在下划线的空白处补全服务器程序代码(每空2分,共8分)(1)MyLcm(2)pLcm(3)activate(4)run#includeiostreamusingnamespacestd;#includeLcm.hintmain(intargc,char*argv[]){constchar*options[][2]={{endPoint,giop:tcp::3456},{InitRef,NameService=corbaname::localhost},{0,0}};CORBA::ORB_varorb=CORBA::ORB_init(argc,argv,omniORB4,options);if(CORBA::is_nil(orb)){cerrORBiniterror!.endl;return1;}CORBA::Object_varobj=orb-resolve_initial_references(omniINSPOA);PortableServer::POA_varins_poa=PortableServer::POA::_narrow(obj);MyLcm*pLcm=newMyLcm();PortableServer::ObjectId_varoid=PortableServer::string_to_ObjectId(MyLcm);ins_poa-activate_object_with_id(oid,pLcm);PortableServer::POAManager_varpman=ins_poa-the_POAManager();CORBA::String_varsior(orb-object_to_string(pLcm-_this()));cou
本文标题:中间件葵花宝典
链接地址:https://www.777doc.com/doc-2725926 .html