中间件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中间件
【定义】中间件(Midware)或中间件平台 (Platform)是一个软件层,它为分布式 系统构件提供统一的环境。 如下图所示,中间件隐藏或抽象了所有操 作系统和通信服务中的异构因素。
中间件
从计算机软件系统的结构层次来看,中
间件是位于低层计算机硬件、操作系统 和高层应用之间的通用服务。高层应用 通过这些系统服务,实现对低层异构系 统资源的透明一致的访问。
中间件
中间件所提供的最基本的系统服务包括: ⑴通信服务:用于屏蔽低层网络通信接口,为高 层应用提供可靠的消息通信和远程访问。 ⑵名字服务:提供全局的名字服务空间,屏蔽低 层实体分布的具体物理位置。 ⑶存储服务:提供全局的一致数据访问,集成低 层分布的局部文件系统和数据库。 ⑷分布事务服务:提供分布事务处理,包括事务 管理和调度、负载平衡和失败恢复等。 ⑸安全服务:提供存取访问控制,在中间件层次 保证分布式系统的安全性。
远程过程调用 远程过程的调用者发出远程过程调用后被阻塞等待返回值,而 不象阻塞的报文传递那样等待的仅仅是一个应答。设计和实现 远程过程调用主要考虑的问题包括以下方面: 1) 参数类型。RPC中有三中参数传递类型:第一种是输入参 数,这种参数只用于顾客向服务员传递信息;第二种是输 出参数,这种参数只用于服务员向顾客传递信息,顾客不 能使用它向服务员发送信息;第三种既作输入又作输出的 参数,顾客能用这种类型的参数向服务员传递信息,服务 员同样能用这个参数向顾客传递信息。
⑷分布锁(Locking)协议,用于控制进程对系统资源的并发访问,
防止分布在多个机器上的多个进程同时访问同一个资源。
⑸中间件通信(Communication)协议,支持高层通信服务,例如,
中间件协议可以支持一个进程以透明的方式调用另一个机器 上的一个过程,或者支持一进程以透明的方式访问远程机器 上的一个对象。
物理层
ISO OSI/RM数据传输方式
¢ Í ø Ì ²Ë ½ ³ ¦ à ã Ó Ó ² í ¾ ã ±Ê ² Ô °ã ¶ » ² « ä ã ´ Ê ² ø ç ã Í Â ² ý Ý ´ ²ã Ê ¾ Á  ² ï í ã Î À ²
DH NH TH TH SH PH AH AH
Data
ISO OSI/RM
⑴物理层。它规定在一个节点内如何把计算机连接到 通信介质上,规定了机械的、电气的功能。该层负 责建立、保持和拆除物理链路,规定如何在此链路 上传送原始比特流,比特如何编码,使用的电平、 极性、连接插头插座的插脚如何分配等。物理层数 据的传送单位是比特(Bit)。
ISO OSI/RM
TCP/IP的分层与协议
TCP/IP的分层与协议
应用层 应用层 表示层
对话层 传输层 传输层 网络层 网络层 链路层 数据链路层
物理层 T C P /IP 模 型
物理层 IS O O S I/R M
操作系统在分层中的位臵
操作系统在分层中的位臵
三种分布式系统的比较
类别 分布式操作系统 网络操作系统 局部OS同构 是 否 通信方式 消息 文件 资源管理 全局,分布 结点 透明性 高 低 分布性 低 高 开放性 低 高 特性
中间件
中间件包括
⒈面向对象中间件(object-oriented midware): ⒉面向消息中间件(message-oriented midware简记为MOM):
面向消息中间件(MOM)
MOM是一种面向分布式应用的中间件,它通 过消息队列(Message Queue,简记为MQ) 为分布应用提供一种可靠的消息通信机制,特 别适合于松散耦合应用集成。 MOM基本结构如下图所示。所有队列包括持 久(persistence)队列和内存队列都是由队列 管理器(Queue Manager ,简记为QM)管理 。队列管理器负责从发送方接收消息,转发给 另一个队列管理器。另一个队列管理器则负责 接收到来的消息,并放入接收方用户的队列。
⑵数据链路层。它把相邻两个节点间不可靠的物理链 路变成可靠的无差错的逻辑链路,包括把原始比特 流分帧、排序、设臵检错、确认、重发、流量控制 等功能。数据链路层传送信息的单位是帧 (Frame),每帧包括一定数量的数据和一些必要 的控制信息,如同步信息、地址信息、差错控制信 息和流量控制信息等。该层负责建立、维护和释放 数据链路。
第二章 进程通信
2.2 不同节点上的进程间通信
RPC建立通信的过程 :
3.申请句柄 4.返回句柄 2.分配端口
端口服务员
1.申请端口
顾客
5.使用句柄通信
端口
服务员
第二章 进程通信
2.2 不同节点上的进程间通信
设计和实现远程过程调用主要考虑的问题包括以下方面: 5) RPC认证。在一个分布计算系统中,顾客可能需要对服务员 的身份进行认证,或者服务员希望对顾客的身份进行认证。 6) RPC调用语义。调用语义确定了同一个调用的多次重复请求 所造成的后果。 第一种是恰好一次语义(Exactly-Once)。 第二种是最多一次语义(At-Most-Once)。 第三种是至少一次语义(At-Least-Once)。 第四种是多次中最后一次语义(Last-of-Many-Call)。 第五种是幂等语义(Idempotent)。
分布计算系统的层次模型
中间件在逻辑上位于应用层。为了
支持中间件服务,有许多不依赖于 特别应用的一般目的的协议,这些 中间件层次的协议的实现基于传输 层协议,并以一致的接口对各种不 同的高层应用提供支持。在网络体 系结构中加入中间件层次,可得到 如下图所示的五层结构。
具有中间件层次的ISO层次模型
第二章 进程通信
2.2 不同节点上的进程间通信
报文传递实例1:socket进程通信
socket地址
struct in_addr{ u_long s_addr; /* 32_bit netid/hosted */ /* network byte ordered */ }; struct sockaddr_in{ short sin_family; /*AF_INET*/ u_short sin_port; /*16_bit port number*/ /*network byte ordered*/ struct in_addr sin_addr; /*32_bit netid/hostid*/ /*network byte ordered*/ char sin_zero[8]; /*unused*/ };
È Ì Ð Á ±Ø ò Ð
¢ Í ÷ú ²Ë Ö »
Ó Õ ÷ú ½ Ê Ö »
TCP/IP的分层与协议
TCP/IP的分层与协议
层 ( O SI ) 名 TE L NE T FTP S M TP DNS 应用
协议
TCP
UDP
传输
IP
网络
物理网络
x .2 5
卫星网
分组无线网
LAN
物理+ 数据链路
ISO OSI/RM
终端系 统机器 应用层 A
表示层 对话层 传输层 应用层协议 表示层协议 对话层协议 传输层协议 网络层协议 网络层 网络层 数据链路层协议 数据链路层 数据链路层
机器B
应用层 表示层 对话层 传输层
网络层
数据链路层
网络层
数据链路层
物理层
物理层
物理层协议 通信子网 中间节点
物理层
分布计算系统的中间件协议
⑴认证(Authentication)协议,有各种方法建立认证机制来确认身份。 ⑵授权(Authorization)协议,能保证经过认证的用户和进程仅能
访问那些它有访问权限的资源。 ⑶分布式提交(Commit)协议,用于保证分布事务的完整性。当一 组合作的进程执行一个特定操作时,达成要么所有进程都完 成了该操作,要么该操作根本没执行的效果。
Ó Õ ø Ì ½ Ê ½ ³ ¦ à ã Ó Ó ² í ¾ ã ±Ê ² Ô °ã ¶ » ² « ä ã ´ Ê ² ø ç ã Í Â ²
DT
Data
Data
PH
AH
Data
SH SH
PH PH
AH AH
Data
Data
NH
TH
SH
PH
AH
Data
ý Ý ´ ²ã Ê ¾ Á  ² ï í ã Î À ²
第二章 进程通信
2.2 不同节点上的进程间通信
a) 无缓冲的阻塞原语。 进程A …… Send(B,msg)(阻塞) 进程B …… …… …… Send(B,msg)(阻塞,超时重发) …… …… Send(B,msg)(阻塞,超时重发) …… 接收通知,B阻塞 Receive(A,msg) 接收通知
分布计算系统的通信模型:
应用层 中间件层 传输层 网络层 链路层 物理层 应用层协议 应用层 中间件层 传输层 网络层 链路层 物理层
中间件层协议
传输层协议
网络层协议
链路层协议
物理层协议
具有中间件层次的TCP/IP体系结构
分布计算系统的层次模型
五层网络体系结构与TCP/IP模型比较,
在应用层分离出应用的公共服务,形成 中间件层;与OSI模型比较,会话层和表 示层都已包含在中间件层之中,而中间 件层提供的高级通信服务较之传输层的 消息传输,对用户具有更好的位臵透明 性。
第二章 进程通信
2.2 不同节点上的进程间通信
设计和实现远程过程调用主要考虑的问题包括以下方面: 2) 数据类型的支持。数据类型的支持指的是在远程过程调用 中哪些数据类型可以作为参数使用。同各种程序设计语言 一样,RPC也有可能限制参数的复杂程度。一般的RPC对 参数的个数进行了限制而允许较复杂的数据类型。例如只 使用一个参数,但是参数可以是一个复杂的结构,这样以 来,程序设计者可以通过比较方便的办法绕过这种限制。 3) 参数打包(Parameter Marshalling)。为了进行有效的通信, 参数和较大的数据结构需要进行打包,接收方能够正确地进 行拆一个远程过程调用的执行过程如下:
第二章 进程通信
2.2 不同节点上的进程间通信
顾客 远程调用 f(a,b,c) 服务员 本地调用 f(a,b,c)
服务及参数 1
8 (顾客解除阻塞) 拆包
4
5 返回值
顾客stub 打包
拆包 服务员stub 打包
2 发送
7 接收
3 接收
6
第二章 进程通信
2.2 不同节点上的进程间通信
设计和实现远程过程调用主要考虑的问题包括以下方面: 4) RPC顾客和服务员的结合(Binding)。一个顾客向一个服务员 发送一个远程过程调用前,服务员必须是存在的,并进行了 注册,注册时向系统内核的端口管理员(port mapper)申请一 个通信端口。服务员将监听这个端口和顾客进行通信。顾客 通过访问端口管理员而得到用于访问这个服务员的“句柄” (handle),这个句柄用于指引和低层的socket结合。这整个过 程对程序员来说是透明的。
Send(B,msg)
……
A的内核
……
Biblioteka Baidu
第二章 进程通信
2.2 不同节点上的进程间通信
b) 有缓冲的阻塞原语。 进程A …… 进程B …… 缓冲区 A阻塞 应答 解除阻塞 B阻塞 解除阻塞
…… ……
Send(B,msg)
…… ……
……
Receive(A,msg)
……
……
第二章 进程通信
2.2 不同节点上的进程间通信
基于中间件 否 消息 结点 高 高 高
第二章 进程通信
2.2 不同节点上的进程间通信
进程通信原语
两种基本的实现进程通信的方法是:报文传递和远程过程调用 RPC。 报文传递原语:send(b,msg)和receive(a,msg); 1) 阻塞原语。阻塞性报文通信原语也称为同步(Synchronous) 原语。阻塞原语不立即将控制权返回给调用该原语的进程, 也就是说send一直被阻塞直到发送的信息被接收方收到并 得到接收方的应答。同样地,receive一直被阻塞,直到要 接受的信息到达并被接收。

MOM 基本结构
面向消息中间件(MOM)
面向消息中间件(MOM)
网络通信分层结构模型
网络通信分层结构模型
国际标准组织ISO的开放系统互连OSI/参考模型RM的分 层与协议
ISO OSI/RM由七层组成,如下图所示。 协议(protocol)是通信双方在通信过程中的约定,规定有 关部件在通信过程中的操作,保证其能正确且自动地进 行通信。协议存在于不同节点的对等层之间,接口 (Interface)存在于同一节点的各层之间。 协议由三部分组成: 语法部分,即命令格式及其响应形式(信息格式); 语义部分,即需要发出的请求及其执行的功能以及回送的应 答信息(信息内容); 时序部分,即事件发生的次序的说明(信息传送次序)。
ISO OSI/RM
⑶网络层。它连接网络中任何两个计算机节点,从一 个节点接受数据,正确地传送到另一个节点。网络 层传送信息的单位是分组或包(Packet)。其主要 任务是选择合适的路由和交换节点,透明地向目的 节点交付发送节点所发的分组或包。透明表示收发 两端好象是直接连通的。另外它还要解决网络互连、 拥挤控制和记账等问题。
相关文档
最新文档