版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
复习提纲考试题型:一、填空题(本大题共小题,共30空,每空1分,总计30分)二、问答题(本大题共4小题,每小题5分,总计20分)三、编程题(本大题共1小题,每小题50分,总计50分)1、开放系统公认的“必具特征”可移植性,可互操作性,可伸缩性,易获得性2、 开放系统技术在信息技术领域已经得到了广泛应用,一个开放系统可以用其“轮廓(Profile)”来勾划,轮廓由七个成分所组成。系统管理,用户界面、安全性、编程服务、互操作服务、通信服务、信息实体3、 CORBAORB的优点:静态和动态方法调用、高级语言绑定、位置透明、内置安全和事务处理、与遗留系统共存4、国外学术界明确地给出了中间件的定义,并画出中间件的定义图。中间件是一种软件,它能使处于应用层中的各应用程序之间实现跨网络协议的协同工作(也就是互操作),这时允许各应用层成分所涉及的“系统结构、操作协议、通信协议、数据库和其他应用服务”应用软件两者内含有.进行协同匸A作的应用成应用软件DBMS|中间件中间件网络协议网络协议操作系统操作系统硬件平台硬件平台—各不相同。5、作为一个中间件,它应该具有两个部分。执行环境(ExecutionEnvironment)软件(简称EE软件)、应用开发(ApplicationDevelopment)工具(简称AD工具)6、中间件对于应用之间的协同工作的真正贡献,并画出中间件的层次结构图。卜民设齐透明设施作方合作对象透明设施卜民设齐透明设施作方合作对象透明设施TI7、传统上认为中间件可以分为三类。事务处理中间件,消息中间件,分布式中间件8、从应用程序来说,利用中间件可以获得的优点。透明的地同其他应用程序进行交互、与平台提供的网络通信服务无关,具有良好的可靠性和可用性具有良好的可扩展性9、 RMI体系结构由三层组成。桩(也称为存根)/框架层(stub/skeleton)、远程应用层(RemoteReferenee)、传输层(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系统的说明细化为五个观点。企业观点:关注系统的目标、范围和策略信息观点:关注信息和所执行的信息处理的语义计算观点:将系统功能分解为在界面处相互作用的对象,来达到分布的目的工程观点:关注支持系统中对象间分布式相互作用所需要的机制和功能技术观点:关注改系统所用技术的选择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可进一步分为两种。无状态(不维护客户端状态)、有状态(维护客户端状态)第3页共2页26、为了开发一个由两个可执行部分(一个是客户机,另一个是服务)所组成的C++CORBA应用程序。通常需要执行以下几个步骤:(1)确定府用程序的对象,定义它们在IDL中的接口。⑵将IDL定义编译成C++的存根和框架。声明和实现能具体化CORBA对象的C++伺服类。编写一个服务器main程序。将所创建的在服务器上可以执行的存根和框架,编译和连接成服务器实现文件与生成的存根一起编写、编译和连接客户机程序代码。27、通过C++编写一段CORBA小程序(教材第五章的例子)1.编写IDL接口定义文件IDL代码如下://IDLinterfaceHellovoidsay_hello(); //函数名2.编译IDL文件3.客户的实现#inclu(5e#inclu(5e#include<cofba,b><Hello.h>//Client*cpp〃包含头文件#inclucie<fat-.ream+#inclucie<fat-.ream+h>intmain(intargc,char*argv[]fchar*[])try{CORBA::ORB_varorb=CORBA::ORB_init(argcfargv);constchar*refFile=1<Helio,ref";ifstreamin(refFile);chars[1024];in»s;CORBA:;Object_varobj=orb->string_to_object(s);He11o_varhello-Hello::_narrow(obj};hello->say_hello{); 〃调用函数return0;}catch(constCORBA:;Exception&ex}{*.,}}if(ICORBA::is_nil{0rb)){try{orb->destroy();} 〃销毁ORBcatch(constCORBA::Exceptionsex){..,}returnm匸atus;4.服务的实现public:4.服务的实现public:virtualvoidsay_hello() //函•数throw(CORBA::SystemException);};//Hello_impl.cpptinclude<iostream.h>//包含头文件//包含头文件#include<Hello_impl.h> //包含头文彳牛voidHello„impl::s^y_hello()throw(CORBA::SystemException)"函数实现co\it.<<11Hel1oWorld1r<<endl;"函数实现服务器主程序intmain(intargc,char*argv[]) { //Server.cpptry{CORBA::ORB_varorb=CORBA::QRB_init(argcrargv}; //■初始化ORECORBA::Object_varpoaObj= //获取RootPOA的对象引用orb->resolve_initial_references(HRootPOAM);Portableserver::POA_varrootPoa=PortableServer::POA::_narrow(poaObj};PortableServer::POAManager_varmanager= //获取POA的管理器rootPoa->the_POAManager(};Hello_impl*hellolmpl=newHello_impl(); //■仓U建月楼务对象PortableServer::ServantBaee_varservant=hellolmpl;Hello_varhello=he1loImp1->_this(J;"将对条引用传行化「输出到文件中 ~CORBA::String_vars=orb->object_to_string(helloj;constchar*refFile="Hello.ref";ofstreamout(refFile);out<<s«endl;out.close();编译及连接编译服务器代码、客户代码、IDL编译器生成的客户方码桩和服务方码架,并将以上代码与CORBA库以及其他需要的库(如网络套接字库等)连接形成可执行的客户程序和服务器程序」clientexe:hello,objclient.objservenexe:hello.objhello_skel.objheilo_impl.objserver.obj7.应用的运行最后,"HelloWorld?M应用包括两个可执行程序,即客尸程序client和服务器程序server.首先启动服务器程序运行,该程序产生Hello.ref串化对象引用文件,客户程序为实现与服务器的连接需要使用此文件。服务器程序启动运行后再运行客户程序。可以在屏幕上见到服务器显示的“HelloWork!!”消息。28、通过java编写一个CORBA小例子。首先要熟悉idlj语言,这个是专门进行接口设计的语言,它与java没关系,有自己的语法,具体的规则需要大家自己再网上研究,这里不多说了moduleHelloApp{interfaceHello{stringsayHello();onewayvoidshutdown();};};这里定义了一个简单的interface,将其保存为hello.idl,然后再dos命令框里面输入idlj.exe-fallhello.idl编译。之后会出现一个叫做HelloApp的目录,corba就是通过这个目录里面的类来进行c-s之间的数据沟通。下一步,就是我们的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第7页共2页org.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(){return"\nHelloworld!!\n";}//implementshutdown()methodpublicvoidshutdown(){orb.shutdown(false);}}//endclass同样放在server所在目录中。4)接下来是客户端(HelloClient.java)://AsampleJavaIDLobjectclientapplication.importHelloApp.*;importorg.omg.CosNaming.*;importorg.omg.CosNaming.NamingContextPackage.*;importorg.omg.CORBA.*;publicclassHelloClient{staticHellohelloImpl;String[]x=newString[6];publicstaticvoidmain(Stringargs[]){try{//createandinitializetheORBORBorb=ORB.init(args,null);System.out.println("ORBinitialised\n");//gettherootnamingcontextorg.omg.CORBA.ObjectobjRef=orb.resolve_initial_references("NameService");//UseNamingCon
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 网络安全使用承诺书(4篇)
- 网络推广成果承诺书(8篇)
- 财务预算编制与管理模板成本控制与资金规划版
- 项目进度质量管控承诺书3篇
- 产品设计多维度评审模板
- 铁路道渣行业深度研究报告
- 中国金属清洗抛光用品项目投资可行性研究报告
- 快乐课间记事周的校园生活描绘作文11篇范文
- 中国脚踏黄油加注器项目投资可行性研究报告
- 条形散流器行业深度研究报告
- 贵州金融控股集团有限责任公司招聘笔试题库及答案2025
- GB/T 1040.1-2025塑料拉伸性能的测定第1部分:总则
- 胸腔穿刺术课件
- 115个低风险组病种目录
- GB∕T 709-2019 热轧钢板和钢带的尺寸、外形、重量及允许偏差
- aq 1043 矿用产品安全标志标识
- 钢结构房屋防冷(热)桥问题解决方案
- 处理冒顶安全技术措施
- 磷石膏资源综合利用项目商业计划书范文参考
- 车架总成(半承载)设计规范
- 2022备考--析因纳律--质子守恒
评论
0/150
提交评论