中间件技术与应用试卷
- 格式:doc
- 大小:111.00 KB
- 文档页数:6
中间件技术原理与应用课后习题参照答案S1.中间件产生背景及扩散式计算环境1.比较开放系统与扩散式系统的异同。
扩散式系统具备以部下性:远程性、并发性、异步性、异质性、自主性、结合性、伸缩性、发展性、挪动性。
开放系统具备以部下性:开放的、集成的、机灵的、模块化的、可结合的、可管理的、知足服务质量需要、安全的、供给透明性。
2.简述开放系统的特征:开放系统拥有可移植性、可互操作性、可伸缩性、易获取性。
3.什么是互操作性,有哪几种层次的互操作性?在一个由异质实体构成的网络环境中,当应用在网络的结点上运转时,它能够透明地动用网中其余结点上的资源,并借助这些资源与本结点上的资源共同来达成某个或者某组人物,这种能力被称为互操作性。
有以基层次:Application-Collaboration-ApplicationTransparency-Inter-operability- TransparencyRPC-Inter-communication- RPCComms-Inter-Connection- Comms4.简述中间件产生的背景、看法、构成结构及核心技术。
定义:中间件是介于应用系统和系统软件之间的一类软件,它能使处于应用层中的各应用成份之间实现跨网络的共同工作。
构成结构:(1)履行环境软件(2应)用开辟工具核心技术:通讯、资源管理、互操作性5 .简述DCE 的构成结构及其弊端。
DCE 由扩散式文件服务、安全服务、目录服务、时间服务、RPC 、线程构成。
DEC 的弊端:RPC 设计不周,开辟工具单薄;性能差、合用系统少、合用艰难;没有采用面向对象技术。
S2.面向对象中间件ODP6.论述面向对象的定义及其与面向过程的调用的差别。
面向对象的方法以一种更加直观的方法剖析和结构系统,它将整个系统抽象并模型化,让人们能够更好地认识整个系统,使得在设计时就能发现此中可能存在的问题。
二者最大的差别是,在结构化的开辟方法中,数据与功能室分别的,而在面向对象的开辟方法中,数据与有关的功能是捆绑在一同的,更好地表示了系统中相对独立的对象。
中间件总复习题第一章中间件产生的背景1、C/S结构与B/S结构各有何特点?⑴系统的性能在系统的性能方面,B/S占有优势的是其灵活性。
任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端。
近年来,智能手机、智能家电、PDA等传统电脑之外的上网方式发展迅速,这在一定程度上为B/S结构增加了砝码。
不过,采用B/S结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担,这使得服务器的负担很重。
采用C/S结构时,客户端和服务器端都能够处理任务,这虽然对客户机的要求较高,但因此可以减轻服务器的压力。
而且,由于客户端使用浏览器,使得网上发布的信息必须是以HTML格式为主,其他格式文件多半是以附件的形式存放。
而HTML格式文件(也就是Web页面)不便于编辑修改,给文件管理带来了许多不便。
⑵系统的开发最新的C/S结构和B/S结构都是建立在现在被称为中间件的产品基础之上,也就是建立在应用服务器(Web服务器)中间件、消息中间件和交易中间件等基础之上。
采用C/S结构时,客户端和服务器端都要处理任务,客户端也需要编程,这对应用开发者提出了较高的要求,这使得应用程序的维护、移植和互操作变得复杂,成了C/S的一大缺陷。
如果客户端是在不同的操作系统上(比如Windows 2000/2003 Server以及不同版本的Linux),C/S结构的软件需要开发不同版本的客户端软件。
如果产品经常需要更新换代,那么升级系统时候需要付出的高代价以及工作的低效率会在一定程度上制约企业的应用。
但是,与B/S结构相比,C/S技术发展历史更为“悠久”。
从技术成熟度及软件设计、开发人员的掌握水平来看,C/S技术应是更成熟、更可靠的。
而对于非常复杂的应用,B/S方式目前尚没有合适方式进行开发。
⑶系统的升级维护C/S系统的各部分模块中有一部分改变,就要关联到其他模块的变动,使系统升级成本比较大。
B/S与C/S处理模式相比,则大大简化了客户端,只要客户端机器能上网就可以。
跟我学中间件相关技术及应用——《中间件的管理和维护》相关的客观测试题及解答1.1.1《中间件的管理和维护》相关的客观测试题及解答1、单一选择题(1)J2EE是( C )A :平台B:协议C:规范D:语言(2)下面的哪个项目是J2EE平台下的应用服务器( A )A:BEA WebLogic ServerB:Window 2003操作系统C:SQL Server2005D:IE 浏览器(3)下面对“中间件”的定义,那种定义是最准确的( B )A:中间件是一种与操作系统紧密相关的某种应用软件B:中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通讯。
C:Windows2000操作系统也就是我们所说的中间件D:中间件是一种位于操作系统之上但在用户的应用系统之下的某种软件。
(4)下面对中间件能够解决我们系统中的什么问题的描述是比较正确的( D ) A:中间件能够解决我们系统中的数据传送问题B:中间件能够解决我们系统中的数据库访问C:中间件能够解决我们系统中的对象缓存问题D:中间件能够解决我们系统中的互连和互操作问题,同时也解决名字服务、安全控制、并发控制、可靠性保证、效率保证等方面的问题。
(5)BEA Weblogic服务器采用下面的那种协议进行工作( C )A:HTTPB:FTPC:T3D:SMTP(6)下面的那种URL地址能够启动BEA WeLogic服务器的管理控制台( A ) A:http://hostname:port/consoleB:http://hostname:8080/C:T3://hostname:port/consoleD:ftp://hostname:port/console(7)下面哪一种不是J2EE标准中所规定的基于Web客户端的验证方式( D ) A:HTTP基本验证B:基于表单的验证C:基于客户端证书的验证D:基于客户端登录的验证(8)下面哪一种不是应用集群服务的目的( B )A:应用集群服务能够实现负载均衡B:应用集群服务能够达到更好地访问数据库系统C:应用集群服务能够实现灾难恢复的能力D:应用集群服务能够获得高可用性(9)下面对WebLogic服务器的哪一个描述是错误的( C )A:WebLogic服务器提供了数据库连接池的支持B:WebLogic服务器没有提供对微软系统的支持C:WebLogic服务器没有提供对集群服务的支持D:WebLogic服务器提供了对消息服务的支持(10)下面哪种是不满足集群应用的条件( D )A:集群中的所有服务器必须位于同一网段B:集群中的所有服务器必须使用相同的版本C:集群中的服务器必须使用永久的静态IP地址D:集群中的某个成员服务器也可以是Tomcat服务器(11)下列那个文件是Struts2框架本身的系统配置文件(C)(A)web.xml(B)struts-config.xml(C)struts.xml(D)struts.tld(12)一个客户有多个订单,一个订单只属于一个客户。
中间件期末考试题一.选择1.开放系统互操作面临的异构型不包括:(D)A.不同的数据库系统B.不同的开发工具C.不同的操作系统D.不同的软件开发企业2.以下哪个模块不属于X OPen DTP模型的基本组成部分(C)A.应用程序(AP)B.资源管理器(RM)C.命名服务器(NS)D.事务管理器(TM)3.下列属于消息访问中间件的是(C)A.SOAP(Web Service 中使用的通信服务协议)B.ORB(对象中间件)C.JMS(Java消息服务)D.ODBC(数据库访问中间件)4.Web Service 中使用的通信服务协议是(B)A.GIOP(通用ORB互通协议)B.SOAPC.WSDL(服务说明语言)D.IIOP(互联网ORB互通协议)5.在window平台中,COM进程内组建的文件格式一般是(D)B.exe(外) D.dll(内)6.ORB通过使用(B )在网络环境中找到分布式对象A.IP地址B.IORC.对象名称D.GUID7.windows平台下,COM组件发布时一般把组建相关信息写到(B)A.环境变量B.注册表C.同一个文件夹的配置文件D.命名服务器8.分布式事务的特征不包括(C)A.隔离性B.原子性C.传递性D.持久性9.CORBA平台一般使用(D)描述分布式对象的对外服务接口A.WSDLB.HTMLC.IORD.IDL10.在分布式对象访问的桩/框架结构中,负责替分布式对象完成底层通信相关工作的是(D)A.客户端桩B.构建的接口C.分布式对象自身D.服务器端框架(Skeleton)11.下列那种对象不支持分布式对象的实现(C)A.EJBB.CORBAC.JDBCD.DCOM12.所有COM组件必须要实现的接口是(A)A.IUnknownB.IDispatchC.ClassFactory/doc/bb2883730.html,omCoClass13.J2EE中,(D)接口用于网络中定位组件和其他资源A.JMSB.JDBCC.JTAD.JNDI14.OMA组织定义ORB之间的互通协议为(A )A.GIOP/IIOPB.HTTPC.TCPD.IP15.下列属于数据库访问中间件的是(C)A.ORBB.DCOMC.ODBCD.RPC16.在进行RMI编程时,供客户端调用的业务方法必须抛出(A )异常A.RemoteExceptionB.IOExceptionC.SQLExceptionD.ClassCastException2.名词解释1.接口定义语言IDL界面描述语言,IDL是一种描述性语言,属于远程过程调用RPC 技术方面,IDL对接口和组件进行描述,指定接口或组件的属性信息用来生成所需要的代理/存根代码、调度代码或者类型库。
中间件复习题一、判断题1.close()函数用于关闭套接字描述符,这个函数的调用会引发TCP的中止连接操作。
(0)2.在TCP的客户端程序中,如果connect()函数调用失败,则套接字符不能再使用,必须关闭。
(1)3.shutdown(int sockfd, int howto)函数,可以根据参数howto关闭指定方向的数据传输。
(1)4.getsockname()函数返回套接字对应的远程地址。
(0)5.inet_addr()函数既可用于IPV4也可用于IPV6的地址转换。
(0)6.Linux支持多种套接字类型,其中SOCKET_STREAM类型对应的是UDP协议。
(0)7.绑定地址时,可以指定地址为通配地址:INADDR_ANY,其值一般为0,它通知内核选择IP地址。
(1)8.函数bind返回的一个常见错误是:所绑定的地址已被其他进程使用,我们可以通过设置套接字选项SO_REUSEADDR来避免产生这个错误。
(1)9.在UDP套接字程序中,客户端与服务器通信时,必须使用sendto()和recvfrom()函数。
(0)10.TCP的服务器端绑定地址时,可以同时指定绑定的地址和端口号,也可以指定其中之一,甚至一个也不指定。
(1)11.在TCP套接字程序中,当read()函数收到FIN数据时,其返回-1。
(0)12.在TCP套接字程序中,客户端程序要生成二个套接字描述符。
(0)13.在多线程并发服务器中,为了防止父子线程对描述符的操作造成混乱,在主线程创建子线程后,应在父线程中关闭不用的已连接描述符。
(0)14.在线程专用数据中,如果一个进程中有n个线程,就有n个关键字key。
(0)15.在多进程执行程序中,父进程不能先于子进程退出。
(0)16.pthread_key_delete(pthread_key_t key)函数删除进程内的TSD表示的关键字,该函数执行时要先检查TSD是否有绑定值。
(0)17.tpthread_join()可以等待可分离线程的结束。
江西财经大学09-10第二学期期末考试试卷试卷代码:18022C 授课课时:48 考试用时:110分钟课程名称:中间件技术(软件.实践) 适用对象:07级本科试卷命题人张志兵试卷审核人万本庭单项选择题(从下列各题四个备选答案中选出一个正确答案,并将其代号写在答题纸相应位置处。
答案错选或未选者,该题不得分。
每小题2分,共20分。
)1、在三层结构的分布式系统中,包含了系统的核心业务逻辑的是( B )。
A、客户层B、中间层C、数据层D、表示层2、CORBA IDL 文件的不应该出现内容是:( A )。
A、算法实现B、常量C、接口D、异常说明3、不属于事务处理中间件的是( D )。
A、TuxedoB、JTSC、MTSD、JMS4、CORBA对象的接口是用( C )定义的。
A、WSDLB、自然语言C、OMG IDLD、Java Interface5、在支持分布式对象访问的桩/框架(Stub/Skeleton)结构中,桩/框架主要是依据(B )生成的。
A、客户端代码B、构件的接口C、服务端代码D、分布式对象自身6、OMA参考模型中,哪些涵盖了开发一个基于CORBA的应用时可以直接使用、不需自己实现的功能( B )。
A、对象服务领域接口应用程序接口B、对象服务领域接口公共设施C、对象服务公共设施应用程序接口D、领域接口公共设施应用程序接口7、关于微软的组件对象模型COM的类工厂下列说法正确的是( C )。
A、类工厂需要在系统注册表中进行注册B、类工厂在实现时没有为它分配一个唯一标识符CLSIDC、类工厂不继承自IUnknown接口D、以上说法都不对8、关于微软的组件对象模型COM下列说法不正确的是(A )。
A、接口指针不是自动化兼容的数据类型B、Microsoft PowerPoint是一个支持IDispatch接口的COM组件C、系统的COM库通过进程内COM组件的一个固定输出函数来创建COM对象D、结构化存储继承自IUnknown接口9、假定一个分布式对象中间件的接口支持下列函数,可以用幂等修饰的函数是(C )。
北京工业大学2016 ——2017学年第1学期《Web中间件技术》考试模拟试卷考试说明:承诺:本人已学习了《北京工业大学考场规则》和《北京工业大学学生违纪处分条例》,承诺在考试过程中自觉遵守有关规定,服从监考教师管理,诚信考试,做到不违纪、不作弊、不替考。
若有违反,愿接受相应的处分。
承诺人:学号:班号:。
注:本试卷共 5 大题,共 19 页,满分100分,考试时必须使用卷后附加的统一答题纸和草稿纸。
一、填空题(Fill in the Blank)(30分,每空 1分)1.在 J2EE 的应用开发中,假设应用支持包含HTTP 协议的多客户,业务逻辑层通过EJB 组件实现,那么能维护客户端状态的 EJB 应选择 ______________ EJB。
2.J2EE 是开发和运行一个大型、多层次、分布式的企业 Web 应用的规范和标准,它提供一种多层次的分布式应用模型和一系列的开发技术规范。
这些技术规范包括__________、_____________、__________________、__________________、JNDI、JDBC、JMS等。
3.在 Web 应用中,页面间对象传递的方法有_______________、_______________、____________________、__________________。
4.在 Tomcat Web 服务器中,一个 servlet 程序类的实例化在 ______________ 过程中创建的。
5.servlet 可以通过HttpServletRequest ____________________ 方法来获取客户端的请求数据。
6.HttpServletResponse 提供了_______方法用于向客户发送 cookie。
7.JSP 中定义变量与方法的标签是 ___________________ 用于编译时要插入文件的命令是 ________________。
2016年度中间件技术与应用试卷
姓名:学号:
一、简答题:
1.现代应用系统的基本特征?(6分)
2.按照IDC的分类方法,中间件分为哪几类?(5分)
3.事务处理中间件模型包括3个组成部分,分别是什么?并说明各部分的作用。
(6分)
4.消息中间件的工作原理是什么?(5分)
5.面向对象的设计模式按作用可分为哪三类?(6分)
6.可复用的面向对象设计的几个原则是什么?(4分)
7.三层Web应用程序模型组成?说明各层的作用。
(6分)
8.请说出框架和模式的区别?(4分)
9.设计一个RMI中间件,由哪几部分组成,说明各部分实现的功能。
可举例说明。
(8
分)
10.请说出下面这张UML图中各类的关系:(5分)
11.根据以下类图,请说出是哪种设计模式,并说明模式组成的角色?(每题5分,共15
分)
图11题-1
图11题-2
图11题-3
二、程序分析题
1. 请说明下列代码实现所用的是什么模式?(3分),画出类图(5分),并写出输出结果。
(2分)
public abstract class Bird{
public abstract int fly();
}
public abstract class Debird extends Bird{
protected Bird bird;
public Debird (){
}
public Debird (Bird bird){
this.bird=bird;
}
}
public class Sparrow extends Bird{
public final int DISTANCE=100;
public int fly(){
return DISTANCE;
}
}
public class SparrowDebird extends Debird{
public final int DISTANCE=50;
SparrowDecorator(Bird bird){
super(bird);
}
public int fly(){
int distance=0;
distance=bird.fly()+eleFly();
return distance;
}
private int eleFly(){
return DISTANCE;
}
}
public class Application{
public void needBird(Bird bird){
int flyDistance=bird.fly();
System.out.println("这只鸟能飞行"+flyDistance+"米");
}
public static void main(String args[]){
Application client=new Application();
Sparrow sparrow=new Sparrow();
SparrowDebird sparrowDe1=new SparrowDebird(sparrow);
SparrowDebird sparrowDe2=new SparrowDebird (sparrowDe1);
client.needBird(sparrowDe1);
client.needBird(sparrowDe2);
}
}
2.请说明下列代码实现所用的是什么模式?(3分),画出类图(5分),并写出输出结果。
(2分)
public abstract class Drug{
String constitute;
String name;
public String getName(){
return name;
}
public String getConstitute(){
return constitute;
}
}
public interface DrugCreator{
public abstract Drug getDrug();
}
public class AmorDrugCreator implements DrugCreator{
public Drug getDrug(){
int [] a={200,5};
Drug drug=new Amorolfine("甲硝唑胶囊",a);
return drug;
}
}
import java.util.*;
public class Application{
public static void main(String args[]){
DrugCreator creator=new AmorDrugCreator();
drug=creator.getDrug();
System.out.println(drug.getName()+"的成份:");
System.out.println(drug.getConstitute());
}
}
3. 请说明下列代码实现所用的是什么模式?(3分),画出类图(5分),并写出输出结果。
(2分)
public abstract class Employer {
private String name;
public void setName(String name) {
= name;}
public String getName() {
return ;
}
public abstract void add(Employer employer);
public abstract void delete(Employer employer);
public List employers;
public void printInfo() {
System.out.println(name);
}
public List getEmployers() {
return this.employers;
}
}
public class Programmer extends Employer {
public Programmer(String name) {
setName(name);
employers = null;//表示没有下属
}
public void add(Employer employer) {
}
public void delete(Employer employer) {
}
}
public class ProjectAssistant extends Employer {
public ProjectAssistant(String name) {
setName(name);
employers = null;//表示没有下属
}
public void add(Employer employer) {
}
public void delete(Employer employer) {
}
}
public class ProjectManager extends Employer {
public ProjectManager(String name) {
setName(name);
employers = new ArrayList();
}
public void add(Employer employer) {
employers.add(employer);
}
public void delete(Employer employer) {
employers.remove(employer);
}
}
public class Test {
public static void main(String[] args) {
Employer pm = new ProjectManager("项目经理");
Employer pa = new ProjectAssistant("项目助理");
Employer programmer1 = new Programmer("程序员一");
Employer programmer2 = new Programmer("程序员二");
pm.add(pa);
pm.add(programmer1);
pm.add(programmer2);
List ems = pm.getEmployers();
for (Employer em : ems) {
System.out.println(em.getName());
}
}
}。