您好,欢迎访问三七文档
第页共2页1复习提纲考试题型:一、填空题(本大题共小题,共30空,每空1分,总计30分)二、问答题(本大题共4小题,每小题5分,总计20分)三、编程题(本大题共1小题,每小题50分,总计50分)1、开放系统公认的“必具特征”可移植性,可互操作性,可伸缩性,易获得性2、开放系统技术在信息技术领域已经得到了广泛应用,一个开放系统可以用其“轮廓(ProfiIe)”来勾划,轮廓由七个成分所组成。系统管理,用户界面、安全性、编程服务、互操作服务、通信服务、信息实体3、CORBAORB的优点:静态和动态方法调用、高级语言绑定、位置透明、内置安全和事务处理、与遗留系统共存4、国外学术界明确地给出了中间件的定义,并画出中间件的定义图。中间件是一种软件,它能使处于应用层中的各应用程序之间实现跨网络协议的协同工作(也就是互操作),这时允许各应用层成分所涉及的“系统结构、操作协议、通信协议、数据库和其他应用服务”各不相同。5、作为一个中间件,它应该具有两个部分。执行环境(ExecutionEnvironment)软件(简称EE软件)、应用开发(ApplicationDevelopment)工具(简称AD工具)6、中间件对于应用之间的协同工作的真正贡献,并画出中间件的层次结构图。提供了合作对象透明设施和下层设备透明设施第页共2页27、传统上认为中间件可以分为三类。事务处理中间件,消息中间件,分布式中间件8、从应用程序来说,利用中间件可以获得的优点。透明的地同其他应用程序进行交互、与平台提供的网络通信服务无关,具有良好的可靠性和可用性,具有良好的可扩展性9、RMI体系结构由三层组成。桩(也称为存根)/框架层(stub/skeleton)、远程应用层(RemoteReference)、传输层(Transport)10、在RMI体系中,一个远程对象客户端的桩要负责处理多项任务:初始化并与远程对象所在的远程虚拟机连接;将参数打包,然后传递到远程虚拟机;等待方法调用的结果;解包返回值和异常;将值返回给调用者。11、ORB的最重要的特征是,提供了客户与目标对象之间的交互透明性。具体地说,它主要屏蔽了哪些内容?对象位置,对象的执行状态,对象通信机制,数据表示。12、编写一个基本的DCE应用,应用开发者应当提供三个文件:(界面定义文件)、(客户程序)、(服务器程序)界面定义文件:它定义了服务器所提供的远程过程调用的界面(数据结构、过程名、参数)。客户程序:它定义了用户界面,对远程过程的调用及客户方的处理功能。服务器程序:它提供远程过程调用的实现。13、作为一个中间件DCE提供着两类服务:基本服务和扩充性服务。基本服务包括哪些?扩充性服务包括哪些?基本服务:线程服务、RPC服务、目录服务、和安全服务扩充性服务:分布式文件服务、时间服务。14、DCE对于安全涉及4个方面。认证、安全通信、授权、审计15、在国际标准化组织ISO/IEC和ITU的共同努力下,于1995年发布出了开放式分布处理参考模型RM-ODP,ODP的功能有哪些?管理功能、协作功能、复制功能、仓库功能、安全功能、抵赖功能16、RM-ODP标准把对ODP系统的说明细化为五个观点。企业观点:关注系统的目标、范围和策略信息观点:关注信息和所执行的信息处理的语义计算观点:将系统功能分解为在界面处相互作用的对象,来达到分布的目的第页共2页3工程观点:关注支持系统中对象间分布式相互作用所需要的机制和功能技术观点:关注改系统所用技术的选择17、作为交互的前提,计算界面之间的绑定是至关重要的,计算语言定义了三种绑定方式。操作绑定(支持操作的调用)、流绑定(支持连续媒体)和信号绑定(支持实时事件)18、COM技术经历了哪5个阶段的演变,每个阶段都代表了COM的一个应用层次和应用领域。DLL、OLE、COM、DCOM、COM+19、在COM技术中,核心概念是哪两个。组件:具有一定逻辑功能的可执行代码。是组成应用程序的构件。借口:对其他软件和组件能使用的公共功能的定义,是组建与外界的交互通道20、为了保证多个开发商之间的基于CORBA的EJB产品之间的互操作性,规范定义了EJB到CORBA的映射,分为四个部分。分布映射、命名映射、事物映射、安全性映射21、DCOM是分布式应用环境中的COM技术,DCOM的整体结构图。22、COM+技术是WindowsDNA框架中的中间层技术,它扩展并增加了哪些企业应用功能?事务服务(使COM对象可以创建、使用和提交事物)、安全服务(提供基于角色的安全检查)、同步服务(对多线程并发访问的协调机制)、消息队列组件(组件的异步通信机制)、事件服务(用于“发行—订阅”调用关系的一种通信方式)和集成的管理工具(组件服务浏览器可以完成对COM+对象的管理,完成组建的发型、管理和监测等任务—)等。23、EJB的主要组成部分。EJB组件、容器、服务器、EJB对象(object)和EJBHome24、EJB中的bean可以分为几种?会话bean(维护会话)、实体bean(处理事务)、消息bean(提供异步消息机制)25、会话bean可进一步分为两种。无状态(不维护客户端状态)、有状态(维护客户端状态)第页共2页426、为了开发一个由两个可执行部分(一个是客户机,另一个是服务)所组成的C++CORBA应用程序。通常需要执行以下几个步骤:(1)确定府用程序的对象,定义它们在IDL中的接口。(2)将IDL定义编译成c++的存根和框架。(3)声明和实现能具体化CORBA对象的c++伺服类。(4)编写一个服务器main程序。(5)将所创建的在服务器上可以执行的存根和框架,编译和连接成服务器实现文件。(6)与生成的存根一起编写、编译和连接客户机程序代码。27、通过C++编写一段CORBA小程序(教材第五章的例子)第页共2页5第页共2页6第页共2页728、通过java编写一个CORBA小例子。1)首先要熟悉idlj语言,这个是专门进行接口设计的语言,它与java没关系,有自己的语法,具体的规则需要大家自己再网上研究,这里不多说了moduleHelloApp{interfaceHello{stringsayHello();onewayvoidshutdown();};};这里定义了一个简单的interface,将其保存为hello.idl,然后再dos命令框里面输入idlj.exe-fallhello.idl编译。之后会出现一个叫做HelloApp的目录,corba就是通过这个目录里面的类来进行c-s之间的数据沟通。2)下一步,就是我们的server端://AserverfortheHelloobjectimportHelloApp.*;importorg.omg.CosNaming.*;importorg.omg.CosNaming.NamingContextPackage.*;importorg.omg.CORBA.*;importorg.omg.PortableServer.*;importorg.omg.PortableServer.POA;importjava.util.Properties;publicclassHelloServer{publicstaticvoidmain(Stringargs[]){try{//createandinitializetheORBORBorb=ORB.init(args,null);//getreferencetorootpoa&activatethePOAManagerPOArootpoa=(POA)orb.resolve_initial_references(RootPOA);rootpoa.the_POAManager().activate();//createservantandregisteritwiththeORBHelloImplhelloImpl=newHelloImpl();helloImpl.setORB(orb);//getobjectreferencefromtheservantorg.omg.CORBA.Objectref=rootpoa.servant_to_reference(helloImpl);//andcastthereferencetoaCORBAreferenceHellohref=HelloHelper.narrow(ref);//gettherootnamingcontext//NameServiceinvokesthetransientnameservice第页共2页8org.omg.CORBA.ObjectobjRef=orb.resolve_initial_references(NameService);//UseNamingContextExt,whichispartofthe//InteroperableNamingService(INS)specification.NamingContextExtncRef=NamingContextExtHelper.narrow(objRef);//bindtheObjectReferenceinNamingStringname=Hello1;NameComponentpath[]=ncRef.to_name(name);ncRef.rebind(path,href);System.out.println(HelloServerreadyandwaiting...);//waitforinvocationsfromclientsorb.run();}catch(Exceptione){System.err.println(ERROR:+e);e.printStackTrace(System.out);}System.out.println(HelloServerExiting...);}//endmain}//endclass将其保存为HelloServer.java.放在刚才的hello.idl的目录。编译这个文件就不多说了。3)还记得在hello中定义的interface吗?我们需要对自己定义的接口中的方法进行实现,因此HelloImp.java//Theservant--objectimplementation--fortheHello//example.NotethatthisisasubclassofHelloPOA,whose//sourcefileisgeneratedfromthecompilationof//Hello.idlusingj2idl.importHelloApp.*;importorg.omg.CosNaming.*;importorg.omg.CosNaming.NamingContextPackage.*;importorg.omg.CORBA.*;importorg.omg.PortableServer.*;importorg.omg.PortableServer.POA;importjava.util.Properties;classHelloImplextendsHelloPOA//必须继承这个类,在helloApp目录中已自动生成{privateORBorb;publicvoidsetORB(ORBorb_val){orb=orb_val;}//implementsayHello()methodpublicStringsayHello()第页共2页9{return\nHelloworld!!\n;}//implementshutdown()methodpublicvoidshutdown(){orb.shutdown(false);}}//endclass同样放在server所在目录中。4)接下来是客户端(HelloClient.java)://AsampleJavaIDLobjectclientapplication.importHelloApp.*;importorg.omg.CosNaming.*;importorg.o
本文标题:中间件技术复习提纲
链接地址:https://www.777doc.com/doc-2725921 .html