中间件复习题
1. 你认为什么是中间件?中间件的主要作用是什么?
● 定义:中间件是介于应用系统和系统软件之间的一类软件,是位于操作系统和应用软件之间的一个软件层,向各种应用软件提供服务,使不同的应用进程能在屏蔽掉平台差异的情况下,通过网络互通信息。
● 作用:使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。
2. 比较B/S结构与C/S结构的优缺点。
● B/S结构的优点:
1.具有分布性特点,可以随时随地进行查询、浏览等业务处理。
2.业务扩展简单方便,通过增加页面即可增加服务器功能。
3.维护简单方便,只需要改变网面,即可实现所有用户的同步更新。
4.共享性强
● B/S 结构的缺点:
1.响应速度不及C/S,随着AJAX技术的发展,相比传统B/S结构软件提升一倍速度。
2.用户体验效果不是很理想,B/S需要单独界面设计,厂商之间的界面也是千差万别,由于浏览器刷新机制,使用时有刷屏现象,好在AJAX技术解决这一难题
● C/S 结构的优点:
1.由于客户端实现与服务器的直接相连,没有中间环节,因此响应速度较快。
2.C/S结构的管理信息系统具有较强的事务处理能力。
● C/S 结构的缺点:
1.只适用于局域网(现在很多CRM软件也可适用于外网)。而随着互联网的飞速发展,移动办公和分布式办公越来越普及,这需要我们的系统具有扩展性。这种方式远程访问需要专门的技术,同时要对系统进行专门的设计来处理分布式的数据。
2.客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。特别是有很多分部或专卖店的情况,不是工作量的问题,而是路程的问题。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。
3.对客户端的操作系统一般也会有限制。不适用于微软新的操作系统等等,Linux、Unix等。
3. ORB、对象适配器的作用分别是什么?
● ORB:是OMA参考模型的核心,是基于分布式对象构建应用程序的基础设施,保证了在异构平台上对象的互操作性与可移植性。
作用:把客户发出的请求传递给目标对象,并把目标对象的执行结果返回给发出请求的客户。由ORB提供的通信机制负责完成查请求的对象实现,让对象实现准备好接收请求,传递构成请求的数据。
● 对象适配器:对象适配器是联系对象实现与ORB本身的纽带。它的引入还大大减轻了ORB的任务,从而简化了ORB的设计。
作用:
管理服务器端伺服对象,对象标识,CORBA对象以及它们之间关联。决定在收到一个客户请求时应调用哪一个伺服对象,然后调用该伺服对象上的合适操作。对象适配器主要完成以下工作:对象登记、对象引用(OR, Object Reference)的产生、服务器进程的激活、对象的激活、对象的撤消、对象向上调用。
4. 描述典型CORBA程序的开发实现过程(静态工作模式)。
5. 什么是POA策略?列举几种标准的POA策略并简要解释。
● POA策略:POA策略是一个对象,负责控制相关POA的行为及这些POA所管理的对象,使用POA前应仔细考虑应用程序所需的策略集。
● 标准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策略。对持久对象的请求可能导致隐式地激活一个进程、一个jsp可以用什么软件写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. 消息发送的模式有哪些?
● 同步方式:消息的发送方发A送一条消息到接收端B,B收到消息之后需要对消息进行处理,然后发送ACK确认消息回A,A收到B的ACK之后就可以认为这条消息发送成功,并且保证B顺利收到并处理,在A收到ACK之前A将一直处于阻塞等待状态。
● 异步方式:可细分成发送线程和接受线程异步,发送端进程和接收端进程异步;发送线程和接收线程的异步指消息发送线程A发消息到B,A和B都有消息的接收和发送缓存,A将消息送入发缓存之后立即返回接着发下一条消息,缓存中的消息将被逐条写入TCP,B端从TCP拿到消息先入收缓存,B从收缓存中逐条取出处理,这里的收发两个线程处于不同的进程中,且同一时间可能同时处理不同的消息。
7. 简述基于POA实现的客户请求传递过程。
客户请求的传递过程:
● 客户程序发出的请求中包含:创建对象引用的POA名字、对象标识及目标机器与端口等信息
● 如果目标POA不存在,ORB还允许调用适配器激活器创建所需的POA
● 一旦请求被ORB传送到正确的机器与端口,监听该端口的POA管理器负责检查对象关键码(object key),对象关键码中含有POA名字与对象标识
● POA管理器利用对象关键码将请求传送给正确的POA
● POA利用对象关键码确定对象标识
● 根据POA的策略集直接或间接地利用对象标识将请求传送到正确的伺服对象。
8. 什么是消息中间件? 和PRC的比较,并描述一种消息中间件的应用场景。
● 消息中间件:应用间通过传递消息来进行协作,是一种异步通信模式。主要功能是在不同的网络协议、不同的操作系统和不同的应用程序之间提供可靠的和可恢复的(若发生意外)消息传送。
● RPC调用的缺点:
(1)客户端与服务器端需要同时在线;
(2)客户端需要知道服务器端的调用接口,若调用接口发生改变,客户端需要做相应变化,如通过ODBC连接访问数据库,客户端需要知道远程数据库的类型,若类型发生改变,还需要重新装载相应的驱动程序。
(3)操作过程中需要一直保持与服务器端的连接,直到操作结束。因而,
(a)一旦连接中断,就意味着操作失败或数据丢失;
(b)通常判断连接中断的时间较长,若信道的可靠性较差, 容易造成连接中断,那么应用效率将严重低下;
(c)服务器端在执行操作的过程中,并不涉及网上数据传输,但连接的保持占用信道,容易造成网络堵塞。
● 这个问题可用消息中间件来解决,工作原理:
-应用之间以一系列消息的方式进行通信。
-在消息传递过程中,为了避免消息被丢失,消息被保存在消息队列中。
-应用把消息发送到与接收者有关的队列中。消息传递机制保证将消息传送到目的地且只传送一次。
-在消息传递过程中,应用之间不必建立联系,发送者仅需将消息放入到与接收者有关的队列中,而不必关心接收者是否在线。
-接收者仅需从自己的队列中提取消息即可。
● IBM的MQSeries、Microsoft的MSMQ、东方通的TongLink/Q、BEA的MessageQ
9. EJB组件有哪几种?其特点分别是什么?
● EJB组件:
会话bean(维护会话):表示客户同应用之间进行的会话,是一种商业处理过程对象。
实体bean(处理事务):代表商业过程中处理的永久性的数据。
消息驱动Beans(Message-driven Beans):结合了会话bean 和 JMS的消息的特性, 可异步接收JMS 消息。
● 特点:
会话bean(维护会话):
-运行在服务器端,其数据需要自己管理
-客户通过session bean上的方法来同应用的业务逻辑层上的组件进行交互
-Session bean是短暂的,且只有在与之关联的会话存在时才存在
-会话Bean代表的是调用它的客户程序所完成的工作,是商务过程对象。
-他们执行商务逻辑、商务规则、算法和工作流程,他们是包含商务逻辑过程的可重用组件。
实体bean:
-表示存储在永久性数据存储位置的业务数据,是持久的对象。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论