软件构件与中间件基础学习笔记
一、什么是软件构件?
软件构件是面向请求的,关注业务逻辑,对分布式应用的通信、互操作、可靠性、兼容性、完整性无感的。中间件技术解决的就是软件构件问题。
二、什么是远程对象(Remote Object)?什么是远程对象调用(Remote Method Invocation)?
远程主机,或者非本进程的对象。与这些对象通信或者请求其执行方法。
三、什么是中间件的通讯透明性(Communication Transparency)?
指借助中间件技术,应用程序不关注也无法得知网络通信的具体方法、协议等细节,只关注与应用相关的信息。
四、什么是中间件的定位透明性(Location Transparency)?
应用程序不关注也无法得知真正提供服务的服务器端程序的位置。如果在用户访问时服务的位置发生改变,不影响用户访问并且用户无法察觉服务的位置发生了改变。
五、中间件中的对象引用(Object Reference)与Java中的对象引用有什么不同?
中间件中的对象引用一般使用一个字符串,例如UUID,来查找一个对象,这个字符串要在整个分布式应用中唯一。一般的java引用则是在一个jvm进程中的,定位对象所使用的内存地址的一个32位或者64位指针。
六、什么是代理对象(Proxy Object)?与远程对象的差别是什么?
代理对象自身并不实现所需要的业务逻辑,而是将请求转发给另一个对象,由该对象处理,并把处理结果返回给请求方。代理对象充当中间人的角色。代理对象可以在本地进程中。
七、什么是打包(Marshalling)?什么是解包(Unmarshalling)?
打包是指将发出请求所需要的信息按照一定的格式方法整合在一起,以便于发出。解包是指将收到的响应信息分解成易于使用的数据。
八、什么是面向对象中间件?什么是面向消息中间件?举例说明。
面向对象中间件使用方法调用、对象调用的形式发起请求,响应也是以对象的形式返回,例如代理对象。面向消息的中间件使用特定的信息格式传递信息,比如字符或者二进制的形式,而不是直接使用对象传递数据。
九、试描述远程过程调用(Remote Procedure Call)的工作机制。
客户端应用程序将调用的信息,包括对象的引用、参数等通过调用服务的的方法交给服务,服务将信息打包以消息的方式传送给远程服务,远程服务将消息解包,使用解包后的消息调用相应的方法,并把返回的结果打包发送返回,本地服务将收到的消息解包返回给应用程序。
十、试说明面向对象中间件的优缺点。
优点包括:面向对象的良好支持,同步操作,定位透明。缺点包括:同步操作、紧耦合、分布式垃圾回收困难、体量大。
什么是中间件?
操作系统和分布式应用程序之间的层,用于隐藏分布式应用的复杂性和异构。
常见的中间件体系结构有哪几种?
面向对象的中间件、面向消息的中间件、远程方法调用、基于事件的中间件等。
基于消息的中间件与其它类型的中间件体系结构的差别?
面向消息的中间件使用特定格式的消息封装数据,便于在网络上通信,易于跨语言通信。
XML技术在面向消息的中间件体系结构中的作用是什么?
作为一种消息格式,为通信提供了可靠基础,