中间件分类
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中间件分类
源自文库
数据库访问中间件
2
典型应用
集成多个异构数据库,如:
–电子政务平台(拆迁涉及:土地局、公安局
、财政局等部门) –学生资料管理(学生资料涉及:教务处、后 勤处、献财务处、户籍科、医院等)
3
4
5
l连接应用程序和数据库的软件,允许通过单一的
、定义良好的接口访问网络中来自不同厂商的数 据库产品 l(1)通用网关接口CGI(驻留在WebServer上) l(2)专用API:DLL形式 l NSAPI(Netscape) l ISAPI(Microsoft) l(3)通用数据库接口 l JDBC(SUN) l ODBC(Microsoft)
13
技术标准
– SUN RPC, introduced with the network file system (SUN NFS), – DCE RPC, served as technical foundation of Microsoft’s COM.
14
分布式对象中间件
15
计算 机A
队 列
缓存消息并负责消息的传递,允许程序无需建
立连接即可发送和接受消息。
队列具有名字。队列名@队列管理器名
队列具有属性。属性包含消息的发送次序(先
进先出或带优先级的先进先出)、消息访问方式 (共享或独占)、队列的长度和队列触发机制等。
队列的属性由队列管理器进行管理
40
队列独立于程序;因此,在同样的队列中可以 有许多查询执行放入操作,许多程序执行取出 操作;一个程序可以访问多个队列 若网络出现故障,消息可以在队列中等待,直 到网络恢复 队列可以存放到磁盘上:系统破坏,队列不会 丢失 队列可以是一个资源程序与一个事务管理程序 的合作:事务期间,消息放在队列中,事务中 断,数据库回滚,消息取出不发送 有些消息可跨越不同类型的网络
撤消
写end transaction 到日志
ACK
31
常见的TPM产品有 BEA的Tuxedo Microsoft的MTS SUN的JTS
OMG的OTS
东方通的TongLINK/TongEasy
32
消息中间件 (Message-Oriented Middleware,MOM)
33
动机:RPC调用的缺点
7
远程过程调用中间件
8
典型应用
分布式计算环境中,计算机A调用计 算机B程序(过程),共享计算资源 把一个完整的应用分布(分隔)到多 台计算机,每台计算机执行一部分功能 (函数),计算机间的进程用RPC互相调 用,形成一个整体。 比socket通信编程更简单
9
10
11
实际过程:
RPC是如何工作的? 服务器端程序 客户端程序
方一定要应答。 应答消息(Reply):用于请求消息的回应。 通知消息(Report):单向而不需要应答的消息。
43
本地应用程序
消息队列接口 系 统 管 理 消息路由和排队 消息通道代理 中 间 件
队 列 管 理 器
网络
消息中间件的结构
44
队列管理器
负责创建和删除队列并控制队列的属性。 由消息路由和排队模块、消息通道代理模块和系统管
30
协调 者
参与 者
写begin commit 到日志
处理本地事务
准备提交? 等待参与者 返回意见
写abort到日志 建议撤消
写ready到日志 同意提交 全局提交 等待提交
有要求撤消?
写commit到日 志 提交
写abort到日志
全局撤消
全局撤消? 写abort到本地 日志 写commit到日 志,并提交 本地撤消 本地提交
19
典型应用
银行转帐,在线支付,
20
又称分布式事务处理中间件。专门针对联机交
易处理系统而设计。 事务是对共享的系统资源所完成的一件工作, 它通常是由一些列操作所组成。事务必须具有 ACID(Atomicity,Consistency,Isolation 和 Durability)属性。
21
使分布式处理可以在脱机、事件驱
动等的方式下运行,适合与电子商 务、移动用户、工作流或其它的环 境中。
不适合实时的处理。
37
工作原理:
应用之间以一系列消息的方式进行通信。 在消息传递过程中,为了避免消息被丢失,消息被保
存在消息队列中。
应用把消息发送到与接收者有关的队列中。消息传递
机制保证将消息传送到目的地且只传送一次。
理模块组成
45
消息路由和排队模块 负责消息传递的方向,算法如下 (1)通过消息队列接口接受消息; (2)检查消息目的队列名中的队列管理器名是否是本
41
消息
由消息头和消息体组成。
消息头是对消息结构的描述,对整条消息起控制
作用,含有消息的属性及与消息相关的系统信息, 如消息标志、消息类型、目的队列名、日期时间等 。 消息体对应消息的应用数据,具体语义由通信双 方事先约定。
42
消息类型分为3种:
请求消息(Request):除了发送数据,该消息要求对
6
(4)数据库引擎
Borland公司开发,类似于ODBC,支持与数 据库的直接连接,效率较ODBC高 (5)数据库网关 用于分布式应用环境,无需在客户机进行各 种配置,如安装各种ODBC驱动、设置ODBC 数据 源等,使用网关来统一管理不同数据库的访问 相关产品:EDA/SQL、RDA、DRDA
(1)客户端与服务器端需要同时在线;
(2)客户端需要知道服务器端的调用接口,若调用接
口发生改变,客户端需要做相应变化,如通过ODBC连接 访问数据库,客户端需要知道远程数据库的类型,若类 型发生改变,还需要重新装载相应的驱动程序。
34
(3)操作过程中需要一直保持与服务器端的连接,直
到操作结束。因而, (a)一旦连接中断,就意味着操作失败或数据丢 失; (b)通常判断连接中断的时间较长,若信道的可 靠性较差,容易造成连接中断,那么应用效率将严重低 下; (c)服务器端在执行操作的过程中,并不涉及网 上数据传输,但连接的保持占用信道,容易造成网络堵 塞。
23
技术标准
2、 DTP模型 DTP模型是X/OPEN组织(Open Group)提出的一 种软件结构,这种结构允许多个应用程序去共享多个 资源管理器提供的资源,并且具有协调全局事物的能 力。 X/OPEN是一个独立的、具有全球影响力的开放系 统组织,它得到了世界大多数的最大的信息系统供应 商的支持,其根本任务是通过规范开放系统的具体实 现,从计算的观点考虑如何让用户获得更大的利益。 数据库与中间件之间的标准协议称为XA协议,所有数据 库都是遵循XA协议
35
这个问题可用消息中间件来解决,应用间通
过传递消息来进行协作,是一种异步通信模 式
主要功能是在不同的网络协议、不同的操作
系统和不同的应用程序之间提供可靠的和可 恢复的(若发生意外)消息传送。这时应用 并不需要消息即时即刻传递到达对方。
36
客户端将消息放入队列,服务器端在方 便的时候取出处理,如果需要,将结果 放到传送给客户端的队列。
28
阶段1(准备阶段)
TM询问所有的RM是否已准备提交。 阶段2(提交阶段) TM检查所有RM的回答,只要有一个RM给出 否定的回答,TM指示所有的RM进行回滚。否则, TM指示所有的RM进行提交。
29
在两阶段提交中,一个主节点被指派为事务协
调者(Coordiantor),其他节点称为事务参与 者(Participants)。协调者掌握提交或撤消事 务的决定权,而其它参与者则各自负责本地数据 的更新,并向协调者提出撤消或提交子事务的意 向。一般一个结点对应一个子事务。
25
应用 应用
cRM 资源 管理器 RM
事务 管理器 TM 通信资源 管理器 cRM TM RM
应用
cRM
TM
RM
26
Client 开始事务
Server A
更新A上的DB
Server B 更新B上的DB
提交
27
分布式事务涉及到多个结点的数据的更新,任
何一个结点或结点间通信的失效都可能导致分布 式事务的失败。因此,为了保证事务的完整性, 分布式事务通常采用两阶段提交协议(Two Phase Commitment Protocol,简称2PC)来提交。 两阶段提交协议的思路是TM向所有RM发出正式 提交请求之前,先询问所有RM是否已准备好提交 ,仅当所有的RM都给出肯定的回答时,TM才发出 提交的请求;如果其中有一个RM给出否定地回答 ,TM就指示所有的RM进行回卷。
在消息传递过程中,应用之间不必建立联系,发送者
仅需将消息放入到与接收者有关的队列中,而不必关心 接收者是否在线。
接收者仅需从自己的队列中提取消息即可。
38
Message Brokers(conversion)
2-30
The general organization of a message broker in a message-queuing system.(An important application area of message-queuing system is integrating existing and new application into a single, coherent 39 distributed information system)
原子性(Atomicity)指的是:事务要么完整地执行(
即做完上述系列操作中的每一个),要么根本不执行, 而绝不会出现只执行一部分操作的情况。 一致性(Consistency)指的是:一个事务执行完成, 必定进入某个稳定状态;若进入的是另一个不一致的状 态,则这一事务将被丢弃而不予执行。 (隔离(Isolation)指的是:一个事务与其它事务并 行作用于一共享资源上时,前者的进行是与后者之间完 全隔离开的。 持久性(Durability)指的是:当一个事务完成时, 即使系统或者共享资源发生故障,该事务的执行结果也 不会因此而丢失。
典型应用
计算 机B
16
面向对象的中间件技术基本思想是提供一种
统一的接口.使对象之间的调用和数据共享不 再关心对象的位置、实现语言及所驻留的软硬 件系统。 技术标准: OMG组织的CORBA、Microsoft的COM/DCOM 、SUN的J2EE(RMI)等
17
典型应用
18
事务处理中间件 (Transaction Processing Middleware,TPM)
24
X/Open DTP模型包括4个组成部分: 应用程序(Application Program,简称AP)是事务的
使用者,它是开始(Begin)、提交(Commit)和回滚 (Rollback)事务的发出者。它规定一个事务的界限, 并给出事务所包含的操作。 资源管理器(Resource Manager,简称RM):提供对 共享资源的访问,数据库管理系统(DBMS)或文件访问 系统都可以成为RM。 事务管理器(Transaction Manager,简称TM):是AP 与RM之间的协调员,它给每个事务分配标示符,监视其 进展,保证事务处理的顺利进行,并负责事务在失败情 况下的恢复。 通信资源管理器(CRM):在一个事物管理器内或两 个事物管理器之间对通信进行控制
Local Call Remote Procedure Server Stub RPC Interface send receive
Client Stub RPC Interface send receive
Network 12
本地过程调用的扩展,可透明地调用
远程提供的服务,也就是说调用远程 服务过程就和调用本地AIP一样 提供的服务: 数据表示、可靠传递、服务定位等
22
本地事务的管理由数据库系统来完成。 联机交易处理系统需要处理大量的分布式事务。 分布式事务涉及到多个数据库,且允许这些数据库异构
,如在不同的银行间进行资金转账。 分布式事务需要处理大量并发进程,涉及到操作系统、 文件系统、编程语言、数据通讯、数据库系统、系统管理 及应用软件,是一个相当艰巨的任务. 通过事务处理中间件简化应用开发。由它来负责处理联 机交易过程中分布式交易的完整性、并发控制、负载均衡 以及出错恢复等。 可把自己的事务管理功能和数据库已有的事务管理能力 有机结合在一起,实现对分布式事务处理的全局管理
源自文库
数据库访问中间件
2
典型应用
集成多个异构数据库,如:
–电子政务平台(拆迁涉及:土地局、公安局
、财政局等部门) –学生资料管理(学生资料涉及:教务处、后 勤处、献财务处、户籍科、医院等)
3
4
5
l连接应用程序和数据库的软件,允许通过单一的
、定义良好的接口访问网络中来自不同厂商的数 据库产品 l(1)通用网关接口CGI(驻留在WebServer上) l(2)专用API:DLL形式 l NSAPI(Netscape) l ISAPI(Microsoft) l(3)通用数据库接口 l JDBC(SUN) l ODBC(Microsoft)
13
技术标准
– SUN RPC, introduced with the network file system (SUN NFS), – DCE RPC, served as technical foundation of Microsoft’s COM.
14
分布式对象中间件
15
计算 机A
队 列
缓存消息并负责消息的传递,允许程序无需建
立连接即可发送和接受消息。
队列具有名字。队列名@队列管理器名
队列具有属性。属性包含消息的发送次序(先
进先出或带优先级的先进先出)、消息访问方式 (共享或独占)、队列的长度和队列触发机制等。
队列的属性由队列管理器进行管理
40
队列独立于程序;因此,在同样的队列中可以 有许多查询执行放入操作,许多程序执行取出 操作;一个程序可以访问多个队列 若网络出现故障,消息可以在队列中等待,直 到网络恢复 队列可以存放到磁盘上:系统破坏,队列不会 丢失 队列可以是一个资源程序与一个事务管理程序 的合作:事务期间,消息放在队列中,事务中 断,数据库回滚,消息取出不发送 有些消息可跨越不同类型的网络
撤消
写end transaction 到日志
ACK
31
常见的TPM产品有 BEA的Tuxedo Microsoft的MTS SUN的JTS
OMG的OTS
东方通的TongLINK/TongEasy
32
消息中间件 (Message-Oriented Middleware,MOM)
33
动机:RPC调用的缺点
7
远程过程调用中间件
8
典型应用
分布式计算环境中,计算机A调用计 算机B程序(过程),共享计算资源 把一个完整的应用分布(分隔)到多 台计算机,每台计算机执行一部分功能 (函数),计算机间的进程用RPC互相调 用,形成一个整体。 比socket通信编程更简单
9
10
11
实际过程:
RPC是如何工作的? 服务器端程序 客户端程序
方一定要应答。 应答消息(Reply):用于请求消息的回应。 通知消息(Report):单向而不需要应答的消息。
43
本地应用程序
消息队列接口 系 统 管 理 消息路由和排队 消息通道代理 中 间 件
队 列 管 理 器
网络
消息中间件的结构
44
队列管理器
负责创建和删除队列并控制队列的属性。 由消息路由和排队模块、消息通道代理模块和系统管
30
协调 者
参与 者
写begin commit 到日志
处理本地事务
准备提交? 等待参与者 返回意见
写abort到日志 建议撤消
写ready到日志 同意提交 全局提交 等待提交
有要求撤消?
写commit到日 志 提交
写abort到日志
全局撤消
全局撤消? 写abort到本地 日志 写commit到日 志,并提交 本地撤消 本地提交
19
典型应用
银行转帐,在线支付,
20
又称分布式事务处理中间件。专门针对联机交
易处理系统而设计。 事务是对共享的系统资源所完成的一件工作, 它通常是由一些列操作所组成。事务必须具有 ACID(Atomicity,Consistency,Isolation 和 Durability)属性。
21
使分布式处理可以在脱机、事件驱
动等的方式下运行,适合与电子商 务、移动用户、工作流或其它的环 境中。
不适合实时的处理。
37
工作原理:
应用之间以一系列消息的方式进行通信。 在消息传递过程中,为了避免消息被丢失,消息被保
存在消息队列中。
应用把消息发送到与接收者有关的队列中。消息传递
机制保证将消息传送到目的地且只传送一次。
理模块组成
45
消息路由和排队模块 负责消息传递的方向,算法如下 (1)通过消息队列接口接受消息; (2)检查消息目的队列名中的队列管理器名是否是本
41
消息
由消息头和消息体组成。
消息头是对消息结构的描述,对整条消息起控制
作用,含有消息的属性及与消息相关的系统信息, 如消息标志、消息类型、目的队列名、日期时间等 。 消息体对应消息的应用数据,具体语义由通信双 方事先约定。
42
消息类型分为3种:
请求消息(Request):除了发送数据,该消息要求对
6
(4)数据库引擎
Borland公司开发,类似于ODBC,支持与数 据库的直接连接,效率较ODBC高 (5)数据库网关 用于分布式应用环境,无需在客户机进行各 种配置,如安装各种ODBC驱动、设置ODBC 数据 源等,使用网关来统一管理不同数据库的访问 相关产品:EDA/SQL、RDA、DRDA
(1)客户端与服务器端需要同时在线;
(2)客户端需要知道服务器端的调用接口,若调用接
口发生改变,客户端需要做相应变化,如通过ODBC连接 访问数据库,客户端需要知道远程数据库的类型,若类 型发生改变,还需要重新装载相应的驱动程序。
34
(3)操作过程中需要一直保持与服务器端的连接,直
到操作结束。因而, (a)一旦连接中断,就意味着操作失败或数据丢 失; (b)通常判断连接中断的时间较长,若信道的可 靠性较差,容易造成连接中断,那么应用效率将严重低 下; (c)服务器端在执行操作的过程中,并不涉及网 上数据传输,但连接的保持占用信道,容易造成网络堵 塞。
23
技术标准
2、 DTP模型 DTP模型是X/OPEN组织(Open Group)提出的一 种软件结构,这种结构允许多个应用程序去共享多个 资源管理器提供的资源,并且具有协调全局事物的能 力。 X/OPEN是一个独立的、具有全球影响力的开放系 统组织,它得到了世界大多数的最大的信息系统供应 商的支持,其根本任务是通过规范开放系统的具体实 现,从计算的观点考虑如何让用户获得更大的利益。 数据库与中间件之间的标准协议称为XA协议,所有数据 库都是遵循XA协议
35
这个问题可用消息中间件来解决,应用间通
过传递消息来进行协作,是一种异步通信模 式
主要功能是在不同的网络协议、不同的操作
系统和不同的应用程序之间提供可靠的和可 恢复的(若发生意外)消息传送。这时应用 并不需要消息即时即刻传递到达对方。
36
客户端将消息放入队列,服务器端在方 便的时候取出处理,如果需要,将结果 放到传送给客户端的队列。
28
阶段1(准备阶段)
TM询问所有的RM是否已准备提交。 阶段2(提交阶段) TM检查所有RM的回答,只要有一个RM给出 否定的回答,TM指示所有的RM进行回滚。否则, TM指示所有的RM进行提交。
29
在两阶段提交中,一个主节点被指派为事务协
调者(Coordiantor),其他节点称为事务参与 者(Participants)。协调者掌握提交或撤消事 务的决定权,而其它参与者则各自负责本地数据 的更新,并向协调者提出撤消或提交子事务的意 向。一般一个结点对应一个子事务。
25
应用 应用
cRM 资源 管理器 RM
事务 管理器 TM 通信资源 管理器 cRM TM RM
应用
cRM
TM
RM
26
Client 开始事务
Server A
更新A上的DB
Server B 更新B上的DB
提交
27
分布式事务涉及到多个结点的数据的更新,任
何一个结点或结点间通信的失效都可能导致分布 式事务的失败。因此,为了保证事务的完整性, 分布式事务通常采用两阶段提交协议(Two Phase Commitment Protocol,简称2PC)来提交。 两阶段提交协议的思路是TM向所有RM发出正式 提交请求之前,先询问所有RM是否已准备好提交 ,仅当所有的RM都给出肯定的回答时,TM才发出 提交的请求;如果其中有一个RM给出否定地回答 ,TM就指示所有的RM进行回卷。
在消息传递过程中,应用之间不必建立联系,发送者
仅需将消息放入到与接收者有关的队列中,而不必关心 接收者是否在线。
接收者仅需从自己的队列中提取消息即可。
38
Message Brokers(conversion)
2-30
The general organization of a message broker in a message-queuing system.(An important application area of message-queuing system is integrating existing and new application into a single, coherent 39 distributed information system)
原子性(Atomicity)指的是:事务要么完整地执行(
即做完上述系列操作中的每一个),要么根本不执行, 而绝不会出现只执行一部分操作的情况。 一致性(Consistency)指的是:一个事务执行完成, 必定进入某个稳定状态;若进入的是另一个不一致的状 态,则这一事务将被丢弃而不予执行。 (隔离(Isolation)指的是:一个事务与其它事务并 行作用于一共享资源上时,前者的进行是与后者之间完 全隔离开的。 持久性(Durability)指的是:当一个事务完成时, 即使系统或者共享资源发生故障,该事务的执行结果也 不会因此而丢失。
典型应用
计算 机B
16
面向对象的中间件技术基本思想是提供一种
统一的接口.使对象之间的调用和数据共享不 再关心对象的位置、实现语言及所驻留的软硬 件系统。 技术标准: OMG组织的CORBA、Microsoft的COM/DCOM 、SUN的J2EE(RMI)等
17
典型应用
18
事务处理中间件 (Transaction Processing Middleware,TPM)
24
X/Open DTP模型包括4个组成部分: 应用程序(Application Program,简称AP)是事务的
使用者,它是开始(Begin)、提交(Commit)和回滚 (Rollback)事务的发出者。它规定一个事务的界限, 并给出事务所包含的操作。 资源管理器(Resource Manager,简称RM):提供对 共享资源的访问,数据库管理系统(DBMS)或文件访问 系统都可以成为RM。 事务管理器(Transaction Manager,简称TM):是AP 与RM之间的协调员,它给每个事务分配标示符,监视其 进展,保证事务处理的顺利进行,并负责事务在失败情 况下的恢复。 通信资源管理器(CRM):在一个事物管理器内或两 个事物管理器之间对通信进行控制
Local Call Remote Procedure Server Stub RPC Interface send receive
Client Stub RPC Interface send receive
Network 12
本地过程调用的扩展,可透明地调用
远程提供的服务,也就是说调用远程 服务过程就和调用本地AIP一样 提供的服务: 数据表示、可靠传递、服务定位等
22
本地事务的管理由数据库系统来完成。 联机交易处理系统需要处理大量的分布式事务。 分布式事务涉及到多个数据库,且允许这些数据库异构
,如在不同的银行间进行资金转账。 分布式事务需要处理大量并发进程,涉及到操作系统、 文件系统、编程语言、数据通讯、数据库系统、系统管理 及应用软件,是一个相当艰巨的任务. 通过事务处理中间件简化应用开发。由它来负责处理联 机交易过程中分布式交易的完整性、并发控制、负载均衡 以及出错恢复等。 可把自己的事务管理功能和数据库已有的事务管理能力 有机结合在一起,实现对分布式事务处理的全局管理