中间件的总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_39699765/article/details/90117012

基本是一定会考的内容

一、选择题

1.面向对象中间件3个核心问题:封装、继承、多态

继承(Inheritance)是基于原有对象创建新对象的代码重用机制,它定义了一个类共享一个或多个其它类的结构和行为的关系。

封装(Encapsulation)就是隐藏对象的具体实现细节,只能通过所定义的界面来访问和操作对象的数据。

多态(Polymorphism)是指对同一界面或行为可以有多种不同的实现的能力。使用单一的消息可以调用不同的行为。

抽象(Abstract)是指从一组不同的实体中提取出公共特性(抽象类)的过程。

2.消息中间件的应用场景
参考文章:http://www.cnblogs.com/itfly8/p/5155983.html
异步处理、应用解耦、流量削锋、日志处理、消息通讯。

3.Com写到注册表中,exe(外) dll(内)
接口 IID 全局唯一标识符(GUID)对象 (CLSID)
所有的COM接口都从IUnknown派生
在这里插入图片描述
4.GIOP——通用ORB互通协议

IIOP(互联网ORB互通协议)是GIOP的一种映射,它定义了用于Internet之上的一种标准互操作协议,它利用的运输层协议就是Internet所采用的TCP/IP协议;

客户和服务器通过ORB交互

5.CORBA核心服务:3+5
⑴对象定位
⑵消息传输
⑶安全服务

⒈名字服务
⒉交易器服务
⒊事件服务
⒋负载均衡
⒌容错服务

6.在这里插入图片描述
在这里插入图片描述
7.事务的ACID特性

  1. 原子性(Atomicity)——指事务中的所有操作是一个不可分割的整体,正如人们以前认为原子是不可分割的一样。
  2. 一致性(Consistency)——保持在事务前后,事务所涉及的资源的数据一致性。
  3. 孤立性(Isolation)——一个事务只有在结束后才对其他事务产生影响,其中间结果对其他事务是不可见的。
  4. 持久性(Durability)——事务一旦成功完成,其影响是持久的,即使系统瘫痪,也应该能恢复到事务最近完成的状态。

分布式事务处理的关键是必须有一种方法可以知道事务在任何地方所做的所有动作,提交或回滚事务的决定必须产生统一的结果(全部提交或全部回滚)

二、名词解释

1.RPC:远程过程调用是从一台机器或一个进程调用另一台机器或另一个进程的服务或方法。
2.RMI:远程方法激活,使软件开发人员能够开发这样的分布式程序:在这个分布式程序中,其远程对象的方法能够被运行在不同主机上的其他Java虚拟机(JVM)的方法所调用。
3.存根(桩)(Stub):桩是客户内部完成打包数据和管理网络连接工作的本地对象,在客户调用远程对象上作为方法时,它实际调用的本地存根对象上的方法。
4.框架(Skeleton):框架负责接收并解包远程方法调用为本地方法调用。
5.DCE:分布计算环境(DCE:Distributed Computing Environment)是开放软件基金会(OSF:Open Software Foundation)制定的以远程过程调用(RPC)为核心的一系列规范;提供线程服务、RPC服务、目录服务、安全服务、分布式文件服务以及时间服务。
6.ORB:对象请求代理ORB(Object Request Broker)是对象总线,它能使对象透明的向其他本地或远程对象发出请求或获得应答。
7.数据访问中间件:(DAM)在分布式系统中,通过提供一系列的编程接口,屏蔽不同网络协议,操作系统和数据库管理系统平台DBMS的差异,允许应用程序一致地访问数据源的一种中间件技术。
8.消息中间件:(MOM)依据消息传送或消息队列的原理来工作,提供可靠的、跨平台的同步或异步通信。
.9.COM:COM(Component Object Model,即组件对象模型)是一种以组件为发布单元的对象模型,这种模型使各软件组件可以用一种统一的方式进行交互。
COM既提供了组件之间交互的规范(组件模型),也提供了实现交互的环境(COM库)。
10.组件:具有一定逻辑功能的可执行代码,是组成应用程序的构件。
11.COM组件:具有一定逻辑功能,可独立发布的二进制文件,是组成应用程序的部件,在Windows平台上发布为DLL或者EXE。
12.COM接口:客户与对象之间的协议,客户使用COM接口调用COM对象的服务。
13.COM对象:实现COM接口,通过COM接口提供服务,支持一个或多个接口。

14.DCOM:DCOM(Distributed Component Object Model)是分布式应用环境中的COM技术。
支持不同计算机上组件对象与客户程序之间或者组件对象之间的相互通信。
15.COM+:MTS,COM,DCOM融合。
16.EJB:定义服务端组件的编写规则、组件之间的交互规则和应用服务器对组件的管理规则。
17.JNDI:Java名称和目录接口,用于网络中定位组件和其他资源。
18.JMS:JMS(java 消息服务)用于分布式对象的异步通信,Java消息服务是一个与具体平台无关的API。
19.JTA和JTS:使组件支持事务处理的的规范。
20.IDL:IDL是一种描述性语言,属于远程过程调用RPC技术方面,IDL对接口和组件进行描述,指定接口或组件的属性信息用来生成所需要的代理/存根代码、调度代码或者类型库。IDL描述的接口和组件等数据类型是各种流行语言都能识别和支持的。
21.对象适配器:对象适配器是联系对象实现与ORB本身的纽带。
OA提供了服务器端对象实现与ORB核心之间的适配层,为对象实现提供了大部分所需的ORB功能。
22.IOR:IOR (Interoperable Object Reference)可操作对象引用:
包括所有客户与服务器联系所需的各种信息(如,CORBA服务器对象进程的IP地址和TCP端口等)。
ORB将通过IOR在网络上唯一标识被分布的对象的消息。
23.事务:事务是指一个程序或程序段,在一个或多个资源上为完成某些功能的执行过程。
24.分布式事务处理:在分布的、异构的环境中,数据是分布的,一个事务的执行涉及对分布在多个不同结点的数据的更改。
25.分布事务处理模型X/Open DTP:X/Open DTP是一个用于规范在分布、异构的环境下应用程序与不同资源之间相互协调进行事务处理的标准。
26.Web Service:Web service是一个通过URL识别的软件应用程序,其界面及绑定能用XML文档来定义、描述和发现,并且基于Internet协议上的消息传递,使用XML支持和其它软件应用程序的直接交互。
27.SOAP:简单对象访问协议(Simple Object Access Protocal)是基于 XML 的简易协议,可使应用程序在 HTTP 之上进行信息交换。
或者更简单地说:SOAP 是Web服务的通信协议。
28.WSDL:WSDL(网络服务描述语言,Web Services Description Language)是一门基于 XML 的语言,用于描述 Web Services 以及如何对它们进行访问。
29.UDDI:UDDI(通用发现、说明和集成,Universal Description Discover and Integration)是一种用于描述、发现、集成Web Service的技术,它是Web Service协议栈的一个重要部分。
30.反射中间件:一个程序可以访问、推理和改变其自身的解释。
31.P2P:P2P(peer-to-peer、伙伴对伙伴、对等联网):让人们通过互联网直接交互.
32.即插即用:简称“PnP”,在计算机上加上一个新的外部设备时,能自动侦测与配置系统的资源,而不需要重新配置或手动安装驱动程序。现代的“即插即用”一词又加上了热插拔的意义,它是一个类似的功能,允许用户在电源打开的状态下,直接新增或移除硬件设备,例如USB或IEEE 1394。

三、简答题

1.中间件的背景、定义、类型
在这里插入图片描述
定义:
中间件(Middleware)是一种软件,处于系统软件(操作系统和网络软件)与应用软件之间,它能使应用软件之间进行跨网络的协同工作(也就是互操作),这时允许各应用软件之下所涉及的“系统结构、操作系统、通信协议、数据库和其它应用服务”各不相同。

类型:
远程过程调用中间件(RPCM),面向对象中间件(OOM),消息中间件(MOM),数据库访问中间件(DAM),交易(事务处理)中间件(DTPM)
(终端仿真/屏幕转换中间件)

2.RPC的工作过程
在这里插入图片描述
3.RMI的工作过程
在这里插入图片描述
4.RPC与RMI的联系与区别
1)两者底层协议都是TCP/UDP。
2)RPC不支持对象,属于过程调用级;RMI以对象为基本单位调用,可以实现编程级对象之间的方法调用。
3)两者都为实现分布式计算提供简单实现途径。
4)RPC是DCE,DCOM,CORBA的通信基础,RMI是EJB的通讯基础。
5)RMI可以看做java版本的RPC。
6)RPC服务端与客户端都使用桩,而RMI服务端采用框架,客户端采用桩。
5.消息中间件的两种消息模型
在JMS标准中,有两种消息模型P2P(Point to Point),Publish/Subscribe(Pub/Sub)。

(1)P2P模式

P2P模式包含三个角色:消息队列(Queue),发送者(Sender),接收者(Receiver)。每个消息都被发送到一个特定的队列,接收者从队列中获取消息。队列保留着消息,直到他们被消费或超时。

P2P的特点

每个消息只有一个消费者(Consumer)(即一旦被消费,消息就不再在消息队列中)
发送者和接收者之间在时间上没有依赖性,也就是说当发送者发送了消息之后,不管接收者有没有正在运行,它不会影响到消息被发送到队列
接收者在成功接收消息之后需向队列应答成功

如果希望发送的每个消息都会被成功处理的话,那么需要P2P模式。(架构KKQ:466097527,欢迎加入)

(2)Pub/Sub模式

包含三个角色主题(Topic),发布者(Publisher),订阅者(Subscriber) 。多个发布者将消息发送到Topic,系统将这些消息传递给多个订阅者。

Pub/Sub的特点

每个消息可以有多个消费者
发布者和订阅者之间有时间上的依赖性。针对某个主题(Topic)的订阅者,它必须创建一个订阅者之后,才能消费发布者的消息。
为了消费消息,订阅者必须保持运行的状态。

为了缓和这样严格的时间相关性,JMS允许订阅者创建一个可持久化的订阅。这样,即使订阅者没有被激活(运行),它也能接收到发布者的消息。

如果希望发送的消息可以不被做任何处理、或者只被一个消息者处理、或者可以被多个消费者处理的话,那么可以采用Pub/Sub模型。

6.显式中间件与隐式中间件有什么区别?EJB容器如何实现隐式中间件?

显式使用中间件服务,是指手工调用中间件服务的API。隐式使用中间件服务,是指不用在代码中使用这类API。
通过请求拦截器实现隐式中间件。请求拦截器通过EJB在部署描述文件中描述的需求信息,知道怎样去使用API。

7.EJB beans分类
在这里插入图片描述
8.EJB容器的作用
1)EJB容器是EJB组件的运行环境。EJB容器装载EJB,并且使得客户端程序能进行远程调用。
2)EJB容器负责将客户端程序连接到Beans,执行事务协调,提供数据存储,管理Bean的生命周期等。
3)EJB容器透明地管理分布式组件体系结构的系统开销,无论是Bean还是调用Bean的客户程序都不显式地对EJB容器的API进行编码
4)从本质上讲,EJB容器是客户端程序和Bean之间看不见的中间人。

9.Corba8个规范
1、ORB 核心——软总线(跨平台)
2、OMG界面定义语言——IDL(跨语言)
3、语言映射——C++ 或Java
4、界面仓库和实现仓库——动态调用
5、静态存根和框架——静态调用
6、动态存根和框架——动态调用
7、对象适配器——适配层
8、ORB之间的互操作——GIOP/IIOP

10.ORB系统的基本工作流程
⑴客户通过某种方式找到特定对象实现的对象引用;

⑵如果该对象实现有相应的静态存根,则客户可以通过该静态存根向对象实现发送请求,否则,在界面仓库的协助下,客户可以使用动态调用界面DII来向对象实现发出请求;

⑶当对象调用请求通过静态存根或动态调用界面DII到达ORB核心以后,ORB核心负责请求的传送,将其送给相应的对象适配器,其具体的请求传递方式由ORB的具体实现决定

⑷对象适配器接到请求后,判断一下所请求的对象实现是否有静态框架存在,如果有,则对象适配器通过静态框架调用执行对象实现中的操作,否则,对象适配器将通过动态框架界面DSI中的动态实现例程来调用对象实现中的操作;

⑸对象实现的特定操作方法执行完成后,结果将按照对象请求传递和执行路径逆向返回给客户对象;

11.分布事务处理模型X/Open DTP——事务处理过程
在这里插入图片描述
12.两阶段提交协议2PC两个阶段
在这里插入图片描述
13.Web Service的三个模块及作用
在这里插入图片描述

有一定可能考的内容

一、选择题

二、名词解释

1.RPC:远程过程调用是从一台机器或一个进程调用另一台机器或另一个进程的服务或方法。
2.ODP
在这里插入图片描述
RMI-IIOP:扩展了RMI,提供与CORBA的集成,用于J2EE的正式API。
JDBC:提供关系数据库的连接和相应的数据库操作。
Java Servlets 和JSP:适用于请求/应答模式分布式计算的网络组件。
Connectors:使J2EE可以运行高端事务处理的主机系统集成。
JCA/JCE/JSSE/JAAS:安全服务体系,专门处理身份验证及权限管控 的标准服务。

CORBA(Common Object Request Broker Architecture )
由OMG提出的应用软件体系结构和对象技术规范,其核心是一套标准的语言、接口和协议,以支持异构分布应用程序间的互操作性及独立于平台和编程语言的对象重用。

三、简答题

1.RPC的特点
在这里插入图片描述
2.在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3.在这里插入图片描述
在这里插入图片描述
4.在这里插入图片描述
5.在这里插入图片描述
6.在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

仍有缺憾

EJB生命周期如何管理?
2个进程间异构如何进行通信?
RPC,RMI区别(个人总结)

猜你喜欢

转载自blog.csdn.net/qq_39699765/article/details/90117012