中间件——《中间件技术原理及应用》考试复习重点

中间件 专栏收录该内容
6 篇文章 0 订阅

第一章 中间件产生背景与分布式环境

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

2.中间件分类:

    终端仿真/屏幕转换中间件

    数据库访问中间件

    远程过程调用中间件

    面向消息中间件

    事务(交易)中间件

    分布式对象中间件

3.远程过程调用中间件:

1). RPC:(远程过程调用中间件)

定义:本地过程调用的扩展,通过这种调用机制,程序员编写客户方应用时,可根据需要透明地调用位于远端服务器上的过程。

功能:它以“过程”为基本单位调用,采用C/S模型进行远程通讯,提供了数据表示、可靠传输、服务定位功能,实现了七层协议中会话层的功能,为实现分布式计算提供简单实现途径。是DCE,DCOM,CORBA的通信基础。

     工作原理:

①用中间件中的IDL对调用顺序加以描述;

②利用IDL编译器对这种定义和描述进行编译,从而生成支持客户机和服务器进行通信的管道;

③在服务器端,被调用的远端过程需单独编写,并被置入服务器端框架,同时要在远程过程调用中间件中进行注册,以备调用。

④启动本地客户端存根——〉存根捆绑远端过程名和参数——〉利用网络传输到服务器端框架,从而实现数据格式的转换和参数的传递

⑤采用调用/返回模式具体地完成远端过程调用

     RPC的语义:

  • Last-of-many:被调用的过程可能执行若干次,但规定其最后一次执行的结果作为返回结果。
  • At-most-once:若调用者收到了回复消息,则称被调用的过程正确地完成了它的一次(仅仅一次)执行。
  • At-least-once:远程调用过程至少执行一次,回复消息可能返回一次或多次。
  • Exactly-once:若服务器正常,则远程过程恰好执行一次,并返回一个调用结果。    

   桩的作用:1.初始化并与远程对象所在的虚拟机连接;2.将参数打包,传递到远程虚拟机;3.等待结果;4.解包返回值和异常;5.将返回值返回给调用者。

  框架的作用:1.解包客户端输入的远程方法参数;2.调用实际的远程对象方法;3.将结果打包返回给调用者。

    用C实现RPC过程:1.用IDL定义远程服务接口;2.用MIDL编译接口并产生 .h , _s.c , _c.c 为后缀三个文件;3.服务端发服务(server.c , .h , _s.c);4.客户端调用服务(client.c, .h , _c.c)。

2). RMI(远程方法调用):在分布式程序中,其远程对象的方法能够被运行在不同主机上的其他Java虚拟机的方法调用

特点:可以实现“对象”为基本单位调用,实现远程对象之间的无缝调用,为Java分布式计算提供简单而直接的途径,是EJB的通讯基础。

    桩的作用:与RPC中桩的作用一样。

    框架的作用: 与RPC中的作用一样。

    具体实现过程:1.定义远程服务接口;2.实现远程服务接口;3.用rmic编译产生桩/框架;4.服务端发布服务;5.客户端调用服务。

第三章 COM相关技术

COM:组件对象模型,是软件对象组件互相通信的一种方式,它是一种二进制和网络标准,允许任意两个组件相互通信,而不管它们是在什么计算机上。 

它既提供了组件之间的交互规范(组件模型),也提供了实现交互的环境(COM库)。

组件:具有一定逻辑功能的可执行代码,是组成应用程序的构件。

接口:对其他软件和组件能使用的公用功能的定义,是组件与外界的交互通道。

COM库的实现在os层,其中的函数名通常以Co开头。

IUnknown接口:所有的的COM组件都必须实现IUnknown接口

IDispatch接口:从IUnknown接口派生,有了这个接口,COM可以通过一个标准的接口来提供它所支持的服务,而无需提供多个特定与服务的接口。

COM接口:由128位全局唯一标识符(GUID)标识,称为IID。客户通过GUID获得接口指针,通过此指针,调用接口成员函数,实现服务功能,GUID标识组件时为CLSID。

接口的特点:二进制特性、接口不变性、继承性、多态性

使用Microsoft的IDL来定义接口

类工厂:就是一个能够创建其他组件的组件。

一个类工厂只能创建某个特定的CLSID相对应的组件。而类工厂实现时并没有为它分配一个唯一标识符CLSID。它也没有在系统的注册表中注册。

进程内组件——DLL,进程外组件——EXE

DCOM(分布式组件对象模型):是分布式应用环境中的COM技术,是COM的无缝扩展,处理了底层网络协议的所有细节,支持不同计算机上组件对象与客户程序之间或者组件对象之间的相互通信。

进程和组件处于不同机器时,DCOM仅仅是用网络协议代替本地进程之前的通信。

把进程的透明性转换为了位置的透明性

MTS:COM组件的一致管理系统,为COM技术的企业应用提供基本的组件管理与配置环境,一方面为组件提供新的服务,另一方面代表一种编程模型。

COM+:是一个面型应用的高级COM运行环境,他在COM这一编程模型的基础上实现了许多面向企业应用的分布式应用所需的服务,并将它们与操作系统集成在一起。

第四章 J2EE技术

EJB定义了服务端组件的编写规则、组件之间的交互规则和应用服务器对组件的管理规则。

RMI:Java远程方法调用,提供跨进程的组件通信和相关的通信服务。

RMI-IIOP:扩展了RMI,提供与CORBA的继承,用于J2EE的正式API。

JNDI:Java名称和目录接口,用于网络中定位组件和其他资源。

JDBC:提供关系数据库的连接和相应的数据库操作。

JTA和JTS:使组件支持事务处理的规范。

JMS:用于分布式对象的异步通信。

Java Servlets和JSP:适用于请求/应答模式分布式计算的网络组件。

Java IDL:用于基于Java的CORBA实现,使Java与其他编程语言集成。

Connectors:是J2EE可以运行高端事务处理的主机系统集成。

JCA/JCE/JSSE/JAAS:安全服务体系,专门处理身份验证及权限控制的标准服务。

EJB的定义:用于开发和部署多层结构的、分布式的、面向对象的Java应用系统的跨平台的构件体系结构。

显式中间件:调用服务时,需要手工编写代码开实现调用服务的中间件。

隐式中间件调用服务时,不需要手工编写一行代码就可以调用该服务的中间件。

EJB容器通过请求拦截器(EJB对象)实现隐式中间件。请求拦截器通过EJB在部署描述文件中描述的需求信息,知道怎样去使用中间件。

EJB容器的定义:是EJB组件的运行环境,是一层代替bean执行相应服务的接口。

作用:EJB容器负责将客户端程序连接到Beans,执行事务协调,提供数据存储,管理Bean的生命周期,透明地管理分布式组件体系结构的系统开销,无论是Bean还是调用Bean的客户程序都不显式地对EJB容器的API进行编码,从本质上讲,EJB容器是客户端程序和Bean之间看不见的中间人。

HOME接口:允许客户建立或者删除EJB

REMOTE接口:由Bean提供商编写的一个特殊的接口,复制对应的Bean类公开的所有商务方法。EJB容器依据这些信息自动生成对应的EJB对象

第五章 CORBA

OMA对象模型体系结构:包括对象模型和参考模型

对象模型:定义如何描述分布式异质环境中的对象;

参考模型:描述对象之间的交互

CORBA公共对象请求代理体系结构,是由OMG提出的应用软件体系结构和对象技术规范,器核心是一套标准的语言、接口和协议,以支持易购分布应该程序见的互操作性及独立于平台和编程语言的对象重用。

ORB核心(软总线,跨平台):对象请求代理,是对象总线,它能使对象透明地向其他本地或远程对象发出请求或获得应答。而客户方并不需要了解服务对象的通信、激活或存储机制

CORBA体系结构

ORB规范包含的内容:

1、ORB 核心——软总线(跨平台)

2、OMG界面定义语言——IDL(跨语言)

3、语言映射——C++ 或Java

4、界面仓库和实现仓库——动态调用

5、静态存根和框架——静态调用

6、动态存根和框架——动态调用

7、对象适配器——适配层

8、ORB之间的互操作——GIOP/IIOP

ORB运行过程:

⑴客户通过某种方式找到特定对象实现的对象引用;

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

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

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

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

OMG IDL IDL是一个纯说明性语言,非编程语言,从而将界面与对象实现分离。不能用OMG IDL语言直接实现分布式应用,所以要把IDL的特性映射为具体语言的实现,这就是语言映射的人物。

静态存根和框架(静态调用):存根代表客户创建并发出请求;框架则把请求交给CORBA对象实现。

存根负责接收客户程序的请求、对请求的参数进行封装和发送以及对返回结果的接收和解封装;框架负责将请求参数解封装,识别客户所请求的服务,调用对象实现,并把执行结果封装然后返回客户方。

动态存根和框架(动态调用)

动态调用界面(DII)——通用存根,支持客户方的动态请求调用。

动态框架界面(DSI)——通用框架,支持服务方的动态对象调用。

对象适配器OA(适配层):联系对象实现和ORB本身的纽带,提供了服务器端对象实现和ORB核心直接的适配层,为对象实现大部分所需的ORB功能。

ORB之间的互操作(GIOP/IIOP):有两种方式:直接互操作和基于桥的互操作。

GIOP:是互操作体系结构的基础,定义了用于ORB间通信的一种标准传输语法和一组消息格式;IIOP:互联网ORB互通协议,是GIOP的一种映射,说明如何在TCP/IP网络上交换GIOP消息。

IOR:可操作对象引用,对象的IOR所提供的信息可用于在多个不同的ORB间确定对象的位置。

静态调用:通过存根和框架的调用(在请求真实发生之前,存根和框架早已分别被直接连接到客户程序和对象实现中去);

动态调用:构造并发送一个请求,请求中的参数说明只有在运行时才能知道

CORBA基本服务:名字服务、事件服务、交易器服务、负载均衡、容错服务

CORBA核心服务:对象定位、消息传输、安全服务

第七章 分布式事务处理

事务:是指对特定的共享资源的一组不可分割的操作,具有ACID性 

原子性(Atomicity)事务中多有操作是一个不可分割的整体。

一致性(consistency)事务中涉及的资源从一个合法状态转变成另外一个合法状态,中间不能出现数据不一致的情况。

孤立性(Isolation):一个事务只有在结束后才对其他事务产生影响,期中间结果对其他事务是不可见的。

持久性(Durability):事务一旦完成,其影响是持久的。

分布式事务处理:在分布的、异构的环境中,数据是分布的,一个事务的执行涉及对分布在多个不同结点的数据的更改。

X/Open DTP模型是一个用于规范在分布、异构的环境下应用程序与不同资源之间相互协调进行事务处理的标准。

分布事务处理模型X/Open DTP模型的组成:

⑴应用程序(AP):事务的使用者,它发出开始、提交或回滚事务的请求。它规定了一个事务的界限,并给出事务所包含的操作

⑵资源管理器(RM):提供对共享资源的访问。

⑶事务管理器(TM:AP与RM之间的协调员。它给每个事务分配标识符,监视它们的进展,保证事务处理的顺利进行,并负责事务在失败情况下的恢复。

X/Open DTP模型各组成部分之间的作用关系:

AP-RM之间采用RM的特有API接口,X/Open对这部分的规范较少。

AP-TM之间采用TX接口。AP利用这个接口向TM发出开始和结束一个事务的请求,进行全局事务的管理。

TM-RM之间采用XA双向接口(RM->TM为xa 反之为ax)。TM利用这个接口使各个RM合作完成一个全局事务。

分布事务处理模型X/Open DTP——事务处理过程:

①AP首先通过TX接口告诉TM要开始一个新事务

②TM分配全局事务ID,调用XA接口通知各RM新事务开始;

③AP访问RM

④操作完成后,AP要求TM提交事务

⑤TM调用XA接口协调各RM进行事务提交

事务类型:平坦事务,链式事务,嵌套事务

作用域的角度,事务划分成:全局事务和本地事务

两阶段提交协议:

思路:在TM向所有RM发出正式提交请求之前,先询问所有的RM是否已准备好提交仅当所有的RM都给出肯定的回答时,TM才发出提交的请求;如果有一个RM给出否定的回答,TM就指示所有的RM进行回滚

两阶段提交协议(2PC)的两个阶段:

阶段一:准备阶段

TM询问所有的RM是否已经准备好提交

阶段二:提交阶段

TM检查所有RM的回答,只要有一个RM给出否定的回答,TM就指示所有的RM进行回滚。否则TM将指示所有的RM提交。

第九章 无线、移动中间件

无线CORBA的核心技术:

终端域:移动终端活动的区域,处于移动网络中,一般为客户端,是整个服务的发起者。CORBA服务代理:实现命名服务绑定的自动更新和迁移;移动事件提供者:提供消息响应机制;终端桥:终端域与访问域之间的接口,主要完成终端启动自举、初始化访问、迁移和访问的恢复以及GIOP/UDP、GIOP/WAP的映射。

访问域: CORBA服务提供域,一般存在于固定网络环境中,但在特定场合下也会移动。服务:安全服务、交易服务、持久服务、通知服务等;访问桥:终端桥的对应部分,负责初始化访问、提供透明的IOR、完成连接迁移和访问的恢复以及为止相关的一下函数;GIOP隧道:实现系统的透明通信。

宿主域:位置向导,提供位置透明服务,一般存在于固定网络环境中,且不会移动,具有较强的容错能力,命名服务:提供基本的名字服务、交易器服务;宿主位置代理:在命名服务的基础上,提供位置向导代理,从而实现位置的透明性。

移动IOR:用来发送请求道宿主域。先让客户请求传送到宿主域;宿主域将服务所属的访问桥、移动终端信息等返回给客户;客户收到消息后,得知服务所在的访问桥,进而将请求转发到该服务。移动IOR是实现移动透明性的基础

移动客户调用移动服务流程:P169

第十章 反射中间件

反射:既然一个过程,借助于包含一个组成过程(解释器)来形式化地操纵外部世界的表示,从而可以推理外部世界;那么这个计算过程也可以设计为能推理期自身,同样借助于包含一个组成过程(解释器)来操纵其自身的操作和结构。

反射的实现:虚拟机的存在。虚拟机根据对该类的了解封装成一个对象,这个对象可供其他程序访问。

通过反射,一个程序可以访问、推理和改变其自身的解释。

反射中间件:通过适当的因果相联的自表示,能够检查和调整期行为的中间件系统。1.检查系统的结构、状态和行为;2.灵活性和适应性;3.关注分离。

第十一章 网络即插即用中间件

Jini系统的目标:⑴提供一个能够帮助不同网络用户在任何网络群体自然地完成发现、加入和参与的基础设施。⑵提供一种基础设施,实现零安装和零配置。“即插即用”而非“即插即请求”。⑶通过把所有的对象都处理为服务,提供一种以服务网络为中心的体系结构。⑷提供一种能处理部分失败,实现自愈合的网络体系结构。

Jini的组成:基础设施  编程模型  服务。

第十二章 其他中间件技术

Web服务:是在Internet上进行分布式计算的基本构造块。

Web Service:一个通过URL识别的软件应该程序,期界面及绑定能用XML文档来定义、面述和发现,并且基于Internet协议上的消息传递,使用XML支持和其他软件应用程序的直接交互。

Web三大模块:

传输模块(SOPA协议):在线交互的标准

描述模块(WSDL):用于描述服务个体或服务的收集

发现模块(通用发现、说明和集成UDDI):用于服务的发现

SOAP:Web服务的通信协议,SOAP用来定义消息的XML格式,包含在一对SOAP元素中的、结构正确的XML段就是SOAP消息L文件是一个XML文档,用于说明一组SOAP消息以及如何交换这些消息。

UDDI:通用发现、说明和集成,是Web服务的黄页。可以搜索提供所需服务的公司,进行阅读以便了解其所提供的服务,然后再与某人联系以获得更多信息。

消息中间件

考其基本结构、工作模式及其特点。

 

  • 6
    点赞
  • 3
    评论
  • 38
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

评论 3 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:博客之星2020 设计师:CSDN官方博客 返回首页

打赏作者

行秋

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值