1. 首页
  2. 文档大全

中间件基本概念

上传者:5*** 2022-05-25 12:59:15上传 PPT文件 647KB
中间件基本概念_第1页 中间件基本概念_第2页 中间件基本概念_第3页

《中间件基本概念》由会员分享,可在线阅读,更多相关《中间件基本概念(74页珍藏版)》请在文档大全上搜索。

1、1 中 间 件 技 术 2 教材与参考书目 教材: 中间件技术原理与应用中间件技术原理与应用 张云勇 清华大学出版社 参考书: COMCOM原理与应用原理与应用 潘爱民 清华大学出版社 CORBACORBA原理及应用原理及应用 朱其亮 北京邮电大学出版社 精通精通EJBEJB 美Ed Roman 电子工业出版社 3 第1章 中间件产生背景及分布式计算环境 主要内容 开放系统开放系统 互操作性互操作性 中间件中间件 4 1.1开放系统与互操作性概述 计算模式的发展过程计算模式的发展过程 基于主机的系统(分时共享、资源共享)基于主机的系统(分时共享、资源共享) 两层两层Client/Server系

2、统系统 三层(三层(n层)体系架构层)体系架构 p表示层表示层 用户层用户层 p业务逻辑层业务逻辑层应用层应用层 p数据层数据层数据库服务器数据库服务器 基于基于Web的三层(的三层(N层)体系结构层)体系结构 5 1.1续 开放系统基本组成开放系统基本组成 硬件硬件 包括包括PC,工作站,大中型机,各式各样的,工作站,大中型机,各式各样的 嵌入式设备,移动设备;嵌入式设备,移动设备; 软件软件 各类操作系统、应用软件;各类操作系统、应用软件; 网络网络 各类网络结构、网络协议。各类网络结构、网络协议。 开放系统面临的问题开放系统面临的问题 远程性远程性 并发行并发行 无全局状态无全局状态 部

3、分失败部分失败 异步性异步性 异质性异质性 自主性自主性 联合型联合型 伸缩性伸缩性 发展性发展性 移动性移动性 6 1.1续 开放系统特点开放系统特点 开放的:提供开放的:提供可移植性可移植性和和协同协同工作;工作; 集成的:有助于对付集成的:有助于对付异质性异质性; 灵活的:有助于对付灵活的:有助于对付移动性移动性; 模块化的:模块化的:灵活性灵活性的基础;的基础; 可联合的可联合的 可管理的可管理的 安全的安全的 透明的:支撑软件和硬件的透明的:支撑软件和硬件的异质性异质性; 满足服务满足服务质量需求质量需求 7 1.1续 开放系统必具特性开放系统必具特性 可移植性可移植性(Portab

4、ility) 可互操作性可互操作性(Interoperability) 可伸缩性可伸缩性(Scalability) 易获得性易获得性(Availability) 开放系统构造开放系统构造 用轮廓勾划;用轮廓勾划; 轮廓由轮廓由七个成分组成;七个成分组成; 对轮廓的各成分标准化,即成开放系统。对轮廓的各成分标准化,即成开放系统。 8 1.1续 开放系统开放程度表 9 1.1续 互操作性互操作性 本质:本质: 从异质环境(异种从异质环境(异种体系结构体系结构、异种、异种操作系统操作系统、异、异 种种网络网络等)中获得资源的等)中获得资源的透明动用透明动用能力。能力。 面向面向计算资源计算资源的互操

5、作性的互操作性 面向面向信息资源信息资源的互操作性(如数据库)的互操作性(如数据库) 定义定义: 在一个由在一个由异质实体异质实体构成的网络环境中,当应用在构成的网络环境中,当应用在 网络的结点上运行时,它可以网络的结点上运行时,它可以透明地透明地动用网中其动用网中其 他结点上的他结点上的资源资源,并借助这些资源与本结点上的,并借助这些资源与本结点上的 资源共同来完成某个或某组任务。资源共同来完成某个或某组任务。 10 1.1续 互操作性互操作性 定义定义: 在一个由在一个由异质实体异质实体构成的网络环境中,当应用在构成的网络环境中,当应用在 网络的结点上运行时,它可以网络的结点上运行时,它可

6、以透明地透明地动用网中其动用网中其 他结点上的他结点上的资源资源,并借助这些资源与本结点上的,并借助这些资源与本结点上的 资源共同来完成某个或某组任务。资源共同来完成某个或某组任务。 本质:本质: 从异质环境(异种从异质环境(异种体系结构体系结构、异种、异种操作系统操作系统、异、异 种种网络网络等)中获得资源的等)中获得资源的透明动用透明动用能力。能力。 面向面向计算资源计算资源的互操作性的互操作性 面向面向信息资源信息资源的互操作性(如数据库)的互操作性(如数据库) 11 1.2中间件概述 现代应用系统的基本特征现代应用系统的基本特征 分布分布 任务已不只是在单机上运行,而是由任务已不只是在

7、单机上运行,而是由网络中网络中多台计算机上多台计算机上 的相关应用的相关应用共同协作共同协作完成,需考虑完成,需考虑网络传输网络传输、数据安全数据安全、 数据一致性数据一致性、同步同步等诸多问题;等诸多问题; 异构异构 计算机硬件、操作系统、网络协议、数据库系统以及开发计算机硬件、操作系统、网络协议、数据库系统以及开发 工具种类繁多,需考虑工具种类繁多,需考虑数据表示数据表示、调用接口调用接口、处理方式处理方式等等 诸多问题;诸多问题; 动态协作动态协作 参与协作的应用允许参与协作的应用允许位置透明性位置透明性、迁移透明性迁移透明性、负载平衡负载平衡 性性等需求。等需求。 12 1.2续 应用

8、应用1 应用应用2 应用应用3 服务器服务器1 服务器服务器2 服务器服务器3 13 1.2续 应用应用1 应用应用2 应用应用3 服务器服务器1 服务器服务器2 服务器服务器3 中间件中间件 14 1.2续 应用软件 中间件 网络软件 操作系统 应用软件 中间件 网络软件 操作系统 可协同工作 利用中间件进行协同工作的系统 15 1.2续 * *中间件定义中间件定义 中间件中间件(Middleware)(Middleware)是一种是一种软件软件,处于,处于系统系统 软件软件(操作系统和网络软件)与(操作系统和网络软件)与应用软件应用软件之之 间,它能使处于应用层中的各应用成分之间间,它能使

9、处于应用层中的各应用成分之间 实现跨网络的协同工作(也就是实现跨网络的协同工作(也就是互操作互操作),), 这时允许各应用软件之下所涉及的这时允许各应用软件之下所涉及的“系统结系统结 构、操作系统、通信协议、数据库和其它应构、操作系统、通信协议、数据库和其它应 用服务用服务”各不相同。各不相同。 16 应用软件 中间件 网络协议 操作系统 硬件平台 应用软件 中间件 网络协议 操作系统 硬件平台 DBMS 两者内含有进两者内含有进 行协同工作的行协同工作的 应用成分应用成分 中间件定义 1.2续 17 1.2续 * *中间件组成中间件组成 1 1执行环境(执行环境(Execution Envi

10、ronmentExecution Environment)软件)软件 如果一个网络的各个节点上安装了如果一个网络的各个节点上安装了EEEE软件软件,各节点,各节点 上的应用软件之间就可以实现上的应用软件之间就可以实现相互合作相互合作。EEEE软件使软件使 各节点的各节点的下层设备下层设备对应用软件对应用软件透明化透明化了,了,EEEE软件是软件是 中间件中的中间件中的主体部分主体部分。 2 2应用开发应用开发(Application Development)(Application Development)工具工具 ADAD工具用来帮助工具用来帮助开发内含开发内含“透明动用对方透明动用对方”成

11、分的成分的 应用软件应用软件,或,或改造原有的无透明动用能力的应用软改造原有的无透明动用能力的应用软 件件。ADAD工具是中间件中的工具是中间件中的必备部分必备部分。 18 合作方合作方 B 下层设备透明设施下层设备透明设施 T2 平台平台 网络网络 网络网络 平台平台 平台平台 合作方合作方 C 合作方合作方 A 合作对象透明设施合作对象透明设施 T1 1.2续 中间件的层次结构 19 1.2续 中间件基本框架中间件基本框架 第四层第四层 应用接口(应用接口(API)层)层 中间件服务层中间件服务层 (通信,控制,计算,管理,输出,信息等) 应用平台层应用平台层 (Unix、NetWare、

12、NT、VAX、OPENVMS等) 传输协议层传输协议层 (TCP/IP、IPX/SPX、NetBIOS、OSI等) 第三层第三层 第二层第二层 第一层第一层 中间件的基本功能框架结构 20 1.2续 基于中间件的软件系统基本模型基于中间件的软件系统基本模型 21 1.2续 中间件工作原理中间件工作原理 中间件 服务器1服务器2服务器n 客户机1客户机2客户机n 服务器端 客户端 同/异构环境 22 1.2续 * *中间件的基本分类中间件的基本分类 数据访问中间件数据访问中间件(DAMDAM) 远程过程调用中间件远程过程调用中间件(RPCRPC) 消息中间件消息中间件(MOMMOM) 对象请求代

13、理中间件对象请求代理中间件(ORBORB) 事务处理中间件事务处理中间件(交易中间件,(交易中间件,TPMTPM) 23 中间件的发展情况中间件的发展情况 1.2续 24 中间件的主要厂商中间件的主要厂商 l第一梯队第一梯队 pOracleOracle(BEABEA)、)、IBMIBM、东方通科技,占、东方通科技,占70%70%以上份以上份 额;额; l第二梯队第二梯队 pSunSun、中软、中创、微软等;、中软、中创、微软等; l第三梯队第三梯队 p国内若干中小软件企业和系统集成企业。国内若干中小软件企业和系统集成企业。 1.2续 25 1.2续 * *中间件的作用中间件的作用 它提供了它提

14、供了通道通道的功能,可保证应用的功能,可保证应用系统数据系统数据的可的可 靠传输;靠传输; 它起着它起着桥梁桥梁的作用,达成的作用,达成异构应用资源异构应用资源之间的互之间的互 联互通;联互通; 它是分布式应用的集成它是分布式应用的集成开发框架开发框架,促成企业分布,促成企业分布 式应用的式应用的有机集成有机集成; 作为作为平台平台,它可有效实现分布应用的,它可有效实现分布应用的分阶段分阶段顺利顺利 部署;部署; 它起着它起着过滤网过滤网的作用,可有力保护的作用,可有力保护关键信息关键信息的安的安 全。全。 26 * *中间件的优越性:中间件的优越性: 1.1.企业应用方面企业应用方面 缩短应

15、用开发周期缩短应用开发周期 减少项目开发风险减少项目开发风险 应用程序质量可维应用程序质量可维 护性护性 增加产品吸引力增加产品吸引力 2.2.应用程序方面应用程序方面 透明地同其他应用程透明地同其他应用程 序交互序交互 与运行平台提供的网与运行平台提供的网 络通信服务无关络通信服务无关 具有良好的可靠性和具有良好的可靠性和 可用性可用性 具有良好的可扩展性具有良好的可扩展性 1.2续 27 中间件发展面临的问题中间件发展面临的问题 不同厂商的实现很难不同厂商的实现很难互操作互操作 只提供了一部分只提供了一部分平台的实现平台的实现 应用开发者要面临设计应用开发者要面临设计选择选择 过分追求中间

16、件功能的全面性过分追求中间件功能的全面性 过分强调选择国外产品过分强调选择国外产品 不能准确认识中间件的作用不能准确认识中间件的作用 1.2续 28 * *中间件技术发展趋势中间件技术发展趋势 中间件的发展需要中间件的发展需要规范化规范化 应用需求导致技术应用需求导致技术格局多样化格局多样化 构件化和松散耦合构件化和松散耦合 底层底层的中间件持续走稳的中间件持续走稳 高层高层的中间件成为市场新宠的中间件成为市场新宠 新技术与产品的推出速度放缓新技术与产品的推出速度放缓 实用化实用化是重要的发展趋势是重要的发展趋势 1.2续 29 第2章 五大类中间件的工作机理 主要内容 2.1 远程过程调用中

17、间件(远程过程调用中间件(RPCM) 2.2 面向对象中间件(面向对象中间件(OOM) 2.3 消息中间件(MOM) 2.4 数据库访问中间件(DAM) 2.5 交易中间件 (DTPM) 30 2.1远程过程调用中间件 RPCRPC背景背景 在传统的编程概念中,在传统的编程概念中,过程过程是只能局限在是只能局限在本地运行本地运行 的一段代码,的一段代码,主程序和过程之间主程序和过程之间的运行关系是的运行关系是本地本地 调用调用关系关系本地过程调用本地过程调用LPCLPC。 LPCLPC模式无法充分利用网络上其他主机的资源,也无模式无法充分利用网络上其他主机的资源,也无 法提高代码在实体间的法提

18、高代码在实体间的共享共享程度,使得主机资源大程度,使得主机资源大 量浪费。量浪费。 RPCRPC是对是对LPCLPC的扩展。通过这种调用机制,程序员编的扩展。通过这种调用机制,程序员编 写客户方应用时,可根据需要写客户方应用时,可根据需要透明地调用透明地调用位于远端位于远端 服务器上的过程。服务器上的过程。 31 main()main() . . . . . . 调用调用A A . . . . . . 退出退出 A()A() . . . . . . 调用调用B B . . . . . . 退出退出 B()B() . . . . . . . . . . . . . . 退出退出 主程序主程序过程

19、过程A代码代码 过程过程B代码代码 机器机器1机器机器2机器机器3 RPCRPC调用模型调用模型 2.1 续 主程序主程序 子程序子程序 子程序子程序 32 远程过程调用远程过程调用RPC概念概念 RPC是从一台是从一台机器机器或一个或一个进程进程调用另一台机器或另调用另一台机器或另 一个进程的一个进程的服务或方法。服务或方法。 远程过程调用是创建远程过程调用是创建分布式应用分布式应用的一种方法,来源的一种方法,来源 于于Unix操作系统操作系统的处理思想,被普遍认为是创建的处理思想,被普遍认为是创建 分布式应用的有效方法。分布式应用的有效方法。 从从程序员的角度程序员的角度,RPC采用常规的

20、编程模式:采用常规的编程模式:程序程序 代码调用远端过程并将结果返回。代码调用远端过程并将结果返回。当使用当使用RPC时,时, 只需编写很少的网络程序代码,绝大部分代码由只需编写很少的网络程序代码,绝大部分代码由 IDL(Interface Define Language)生成。生成。 2.1 续 33 IDL编译器结构编译器结构 2.1 续 IDL规范规范 IDL编译器编译器 头头文件文件 客户客户 存根存根 头头文件文件 对象对象 实现实现 框架框架 图2-4 IDL编译器结构 34 远程过程调用远程过程调用中间件工作机理中间件工作机理 用中间件中的用中间件中的IDL对对调用顺序调用顺序加

21、以加以描述描述; 利用利用IDL编译器编译器对这种定义和描述进行编译,从对这种定义和描述进行编译,从 而生成支持客户机和服务器进行而生成支持客户机和服务器进行通信的管道通信的管道; 在在服务器端服务器端,被调用的远端过程需,被调用的远端过程需单独编写单独编写,并,并 被置入被置入服务器端框架服务器端框架,同时要在远程过程调用中间,同时要在远程过程调用中间 件中进行件中进行注册,注册,以备调用。以备调用。 启动本地启动本地客户端存根客户端存根存根存根捆绑捆绑远端过程名远端过程名 和参数和参数利用利用网络传输网络传输到服务器端框架,从而到服务器端框架,从而 实现实现数据格式的转换数据格式的转换和和

22、参数的传递参数的传递 采用采用调用调用/返回返回模式具体地完成远端过程调用。模式具体地完成远端过程调用。 2.1 续 35 RPC工作流程工作流程 2.1 续 客户运行 客户继续执行 服务调用 过程调用 服务过 程执行 过程返回 请求返回 RPC调用 RPC返回 Network 图2-5 RPC工作流程 RPCRPC一般采用一般采用调用调用/ /返回返回模式,多用于应用程序之间的通信,采用模式,多用于应用程序之间的通信,采用同步方式同步方式。 RPCRPC程序之间的同步通信一般采用程序之间的同步通信一般采用Request-Wait-ReplyRequest-Wait-Reply方式,因此方式,

23、因此RPCRPC更适应更适应小小 型简单型简单而不需要采用异步通信方式的应用。而不需要采用异步通信方式的应用。 36 Client Send(remote call pi() (发送发送“请求服务请求服务”信息)信息) Receive(ans) 接收回复信息接收回复信息 server 接收调用信息;接收调用信息; 抽取参数并分析;抽取参数并分析; 调用所指的过程调用所指的过程; 执行远程过程执行远程过程 返回执行结果返回执行结果 Send(ans) 发送回复信息发送回复信息 等等 待待 回回 复复 请求服务请求服务 等待等待 调调 用用 继续继续 返回调用结果返回调用结果 RPCRPC的通信模

24、型的通信模型 2.1 续 37 3 call work return Server Process OP2 Server-stub OP3 RPC Routine receive transmit 4 56 7 8 Local return Local call Client Process OP4 Client-stub OP1 wait RPC Routine receive transmit 1 2 9 10 RPCRPC执行过程执行过程 2.1 续 38 通信协议通信协议 支持两种传输协议:支持两种传输协议:TCPTCP、UDPUDP TCPTCP:连接、可靠、连接、可靠、低效低效。保

25、证要么把调用传递到。保证要么把调用传递到 远程过程且远程过程且接受应答接受应答,要么报告通信,要么报告通信无法进行无法进行。 UDPUDP:无连接、无连接、不可靠不可靠、高效。使用、高效。使用UDPUDP的远程过的远程过 程调用也许会程调用也许会丢失或重复丢失或重复。 2.1 续 39 RPCRPC的语义的语义 LastLast-of-many:-of-many:被调用的过程被调用的过程可能执行若干次可能执行若干次,但,但 规定其规定其最后一次最后一次执行的结果作为执行的结果作为返回结果返回结果。 At-mostAt-most-once:-once:若调用者收到了回复消息,则称被若调用者收到了

26、回复消息,则称被 调用的过程正确地完成了它的一次(调用的过程正确地完成了它的一次(仅仅一次仅仅一次) 执行。执行。 At-leastAt-least-once:-once:远程调用过程至少执行一次,回远程调用过程至少执行一次,回 复消息可能复消息可能返回一次或多次返回一次或多次。 ExactlyExactly-once:-once:若服务器正常,则远程过程恰好执若服务器正常,则远程过程恰好执 行一次,并返回一个调用结果。行一次,并返回一个调用结果。 2.1 续 40 远程过程调用远程过程调用的特点的特点 客户客户/服务器模式服务器模式 客户端的应用调用一个位于远端服务器平台的进程或服客户端的应

27、用调用一个位于远端服务器平台的进程或服 务,务,RPC实际上是通过实际上是通过C/S方式方式实现的。实现的。 数据封装性数据封装性 远端过程调用负责远端过程调用负责捆绑参数捆绑参数,实现不同平台之间参数的,实现不同平台之间参数的 传递,发送参数到远端过程。传递,发送参数到远端过程。 同步性同步性 当客户机发出请求时,服务器进程处于当客户机发出请求时,服务器进程处于运行状态运行状态。 复杂性复杂性 远程调用的实现环境可能要用远程调用的实现环境可能要用系统级的任务系统级的任务来创建,但来创建,但 一旦完成,对程序员就是透明的了。一旦完成,对程序员就是透明的了。 2.1 续 41 远程过程调用远程过

28、程调用的特点的特点 缺点:需要进行缺点:需要进行系统级的配置系统级的配置; RPC 并并不支持对象不支持对象。 CORBA的IIOP MTS的DCOM Java的 sockets应用级协议的编码交换 EJB?RMI (Java Remote Method Protocol) 优点:方便地实现优点:方便地实现不同平台不同平台之间的之间的数据转换数据转换。 XDR(eXternal Data Representation) 2.1 续 42 RMIRMI环境环境 RMIRMI(远程(远程方法方法激活):在分布式程序中,其远程激活):在分布式程序中,其远程 对象的方法对象的方法能够被运行在不同主机上

29、的其他能够被运行在不同主机上的其他JavaJava虚虚 拟机的方法拟机的方法调用。调用。 相对于相对于过程调用级过程调用级的的RPCRPC,RMIRMI可以实现可以实现编程级对象编程级对象 之间的方法调用。之间的方法调用。 本地与远程方法调用本地与远程方法调用 对象 应用程序 本地调用 机器A 对象 对象 对象 机器B 网络 远程调用 2.1 续 43 RMIRMI体系结构体系结构 远程引用层远程引用层 传输层传输层 Java Virtual Machine Client Stub 远程引用层远程引用层 传输层传输层 Java Virtual Machine Remote Object Ske

30、leton TCP 2.1 续 44 RMIRMI系统的目标系统的目标 支持对存在于支持对存在于不同不同JavaJava虚拟机虚拟机上对象的无缝的远上对象的无缝的远 程调用。程调用。 支持服务器对客户的支持服务器对客户的回调。回调。 把把分布式对象模型分布式对象模型自然地集成到自然地集成到JavaJava语言里。语言里。 把分布式对象模型和本地把分布式对象模型和本地JavaJava对象模型间的对象模型间的不同不同 表面化。表面化。 使编写可靠的分布式应用程序使编写可靠的分布式应用程序简单化简单化。 保留保留JavaJava运行时环境提供的运行时环境提供的安全性安全性。 2.1 续 45 软件开

31、发面临的问题软件开发面临的问题: : 软件的软件的开发、修改和维护变得开发、修改和维护变得更加困难。更加困难。 软件开发常常软件开发常常超期和超出预算超期和超出预算。 由于由于没有代码重用没有代码重用,新软件的开发都是从零开始。,新软件的开发都是从零开始。 结构化的软件开发方式结构化的软件开发方式 一种一种自顶向下的开发方法自顶向下的开发方法,将整个系统分解成独立,将整个系统分解成独立 的模块,然后逐一实现这些模块的功能。的模块,然后逐一实现这些模块的功能。 缺点:完整的系统只能在缺点:完整的系统只能在开发完成后开发完成后才能呈现全貌。才能呈现全貌。 如果在开始编程时发现如果在开始编程时发现设

32、计中存在缺陷设计中存在缺陷,那么整个,那么整个 设计将被设计将被重新构造重新构造。 2.2 面向对象中间件 46 2.2 续 面向对象的软件开发方式面向对象的软件开发方式 以一种以一种直观的直观的方法分析和构造系统;方法分析和构造系统; 将将整个系统整个系统抽象并抽象并模型化模型化 两种开发方法的区别两种开发方法的区别 结构化的方法:数据与功能是结构化的方法:数据与功能是分离的分离的; 面向对象方法:数据和相关的功能面向对象方法:数据和相关的功能捆绑捆绑在一起。在一起。 47 2.2 续续 开放式分布处理参考模型(开放式分布处理参考模型(ODPODP)起源)起源 ISOISO为了解决为了解决异

33、种系统异种系统之间的互联和互通,提出了之间的互联和互通,提出了 OSI-RMOSI-RM。 为使分布式系统能处理应用的分布,实现应用之间为使分布式系统能处理应用的分布,实现应用之间 的的互通和互操作互通和互操作而开发的各种标准,如而开发的各种标准,如OSFOSF的的DCEDCE、 OMGOMG的的CORBACORBA、UIUI的的ALTASALTAS和和DECDEC的的NASNAS。 从从19871987年起,在年起,在ISO/IECISO/IEC和和ITUITU的共同努力下,于的共同努力下,于 19951995年发布了开放式年发布了开放式分布处理参考模型分布处理参考模型RM-ODPRM-OD

34、P。 RM-ODPRM-ODP不仅是一个一般标准,还是一个不仅是一个一般标准,还是一个标准的标标准的标 准准。 48 对象中间件(对象请求代理对象中间件(对象请求代理ORBORB) ORBORB提供一种通信机制透明地在异构的通信环境中提供一种通信机制透明地在异构的通信环境中 传递传递对象请求对象请求,各对象可以位于本地或远程机器,各对象可以位于本地或远程机器, 且对象之间的且对象之间的客户机客户机/ /服务器服务器的角色是可以互换的。的角色是可以互换的。 ORBORB可以看作和可以看作和编程语言无关编程语言无关的面向对象的的面向对象的RPCRPC应应 用,被视为从用,被视为从面向对象面向对象过

35、渡到过渡到分布式计算分布式计算的强大的强大 推动力量。推动力量。 两大标准两大标准:OMGOMG的的CORBACORBA;MicrosoftMicrosoft的的COM/DCOMCOM/DCOM。 产品:产品:BorlandBorland公司的公司的VisibrokerVisibroker、IBMIBM公司的公司的 C o m p o n e n t B r o k e rC o m p o n e n t B r o k e r 和 东 方 通 科 技 公 司 的和 东 方 通 科 技 公 司 的 TongBrokerdengTongBrokerdeng。 2.2 续续 49 2.2续续 O

36、DPODP通信模型相关概念通信模型相关概念 通道通道(Channel):用于支持分布对象之间的:用于支持分布对象之间的透明交透明交 互互。 通道包括三部分:存根、绑定器和协议对象。通道包括三部分:存根、绑定器和协议对象。 存根存根(Stub):解决交互过程中的信息的:解决交互过程中的信息的封装和封装和 解封装解封装问题;问题; 绑定器绑定器(Binder):维护计算对象之间的:维护计算对象之间的联系联系; 协议对象协议对象(Protocol Object):处理实际的:处理实际的通信通信。 50 2.2续续 端系统资源相关概念端系统资源相关概念 结点结点(Node):在管理上独立的在管理上独立

37、的物理机器物理机器; 核核(Nucleus):用来用来管理管理结点的结点的机制机制; 对象包对象包(Capsule):对象的对象的执行环境执行环境; 对象串对象串(Cluster):受共管和被共操作的受共管和被共操作的对象集合对象集合。 51 客户基本客户基本 工程对象工程对象 客客 户户 存存 根根 客客 户户 绑定器绑定器 客户协客户协 议对象议对象 客户方客户方 服务器基本服务器基本 工程对象工程对象 服务器服务器 绑定器绑定器 服务器服务器 存存 根根 服务器协服务器协 议对象议对象 服务器方服务器方 截截- -转器转器 客户客户- -服务器交互服务器交互 2.2续续 52 消息中间件

38、产生消息中间件产生 u传统通信必备条件传统通信必备条件 发送和接收应用程序发送和接收应用程序同时在线同时在线; 通过网络能通过网络能同时通信同时通信,发送者和接受者需知道,发送者和接受者需知道 相互间程序的相互间程序的调用接口调用接口。 u实际情况:实际情况: 应用程序并应用程序并不总是不总是同时运行;同时运行; 网络网络并不总是可用的和可靠的;并不总是可用的和可靠的; 在所有者域对应用程序的在所有者域对应用程序的改变改变,要求在其他域,要求在其他域 也作相应改变,不切实际。也作相应改变,不切实际。 2.3消息中间件(MOM) 53 消息中间件定义消息中间件定义 MOM (消息队列中间件消息队

39、列中间件/通信中间件通信中间件)依据消息传)依据消息传 送或消息队列的原理来工作。送或消息队列的原理来工作。 MOM能够简化应用之间数据的传输,提供能够简化应用之间数据的传输,提供可靠的、可靠的、 跨平台跨平台的消息传输手段。的消息传输手段。 MOM支持支持同步和异步同步和异步两种通信模式,其中两种通信模式,其中异步异步通信通信 模式是基于模式是基于消息队列消息队列转发机制的。转发机制的。 一般来说,一般来说,消息队列消息队列广泛采用广泛采用对等对等的分布式计算模的分布式计算模 型来实现分布式计算中的型来实现分布式计算中的同步和异步同步和异步交互。交互。 消息队列一般提供多协议支持、消息队列一

40、般提供多协议支持、高端服务高端服务和其他系和其他系 统管理服务,完成统管理服务,完成可靠的、可扩展可靠的、可扩展的异构环境中的的异构环境中的 通信。通信。 2.3续 54 消息消息 消息实质上是一个由用户定义的消息实质上是一个由用户定义的数据结构数据结构,由,由头信头信 息息和和体信息体信息组成。组成。 头消息头消息是对消息结构的描述,对整条消息起是对消息结构的描述,对整条消息起控制作控制作 用用,含消息的,含消息的属性属性及相关的系统信息,如及相关的系统信息,如消息标识消息标识、 消息类型消息类型、目的队列名目的队列名、日期时间日期时间等;其中目的队等;其中目的队 列名可表示成列名可表示成“

41、队列名队列名队列管理器名队列管理器名”的形式的形式 体信息体信息主要是消息的主要是消息的应用数据应用数据,是应用程序通信的,是应用程序通信的 数据,其具体语义要由通信双方事先约定,对中间数据,其具体语义要由通信双方事先约定,对中间 件来说是一串毫无意义的件来说是一串毫无意义的二进制字节串二进制字节串。 种类:种类:请求消息请求消息 应答消息应答消息 通知消息通知消息 2.3续 55 消息中间件工作机理消息中间件工作机理 应用之间以一系列消息的方式进行通信。在发送者和应用之间以一系列消息的方式进行通信。在发送者和 接受者的传送过程中,为了避免在传递过程中消息被接受者的传送过程中,为了避免在传递过

42、程中消息被 丢失,丢失,消息保存在队列消息保存在队列中。中。 MOM为消息接收者查看消息提供了一个为消息接收者查看消息提供了一个缓冲区域缓冲区域, 应用把消息发送到与应用把消息发送到与接收者相关的队列接收者相关的队列中,如果发送中,如果发送 者想及时得到者想及时得到反馈反馈,它们就把接收返回消息的,它们就把接收返回消息的队列名队列名 包含在包含在所有所有它们发送的消息中。它们发送的消息中。 消息传递机制要消息传递机制要保证保证将发送者的消息传送到目的地。将发送者的消息传送到目的地。 在消息传递中,应用程序之间不必须建立在消息传递中,应用程序之间不必须建立直接的联系直接的联系, 从而实现消息传送

43、的从而实现消息传送的异步性异步性。 2.3续 56 消息中间件消息中间件 消息中间件能够消息中间件能够简化简化应用之间数据的传输,提供应用之间数据的传输,提供 可靠的可靠的、跨平台跨平台的消息传输手段,实现应用程序的消息传输手段,实现应用程序 之间的之间的协同协同。 有两种基本的有两种基本的工作模型工作模型: 消息队列消息队列 消息传递消息传递(发布(发布- -订阅)订阅) 缺点:不支持程序控制的传递。缺点:不支持程序控制的传递。 产品:东方通科技的产品:东方通科技的TongLINK/QTongLINK/Q、BEABEA的的elinkelink、 DECDEC的的MessageQMessage

44、Q、IBMIBM的的MQSeriesMQSeries、Microsoft Microsoft MSMQMSMQ等。等。 2.3续 57 消息中间件产生消息中间件产生 消息中间件一般把工业标准消息中间件一般把工业标准TCP/IP协议作为基础。协议作为基础。 消息中间件还遵循消息中间件还遵循X/Open的分布式事务处理模型,的分布式事务处理模型, 适应于适应于分布式分布式计算环境多样化、用户数目规模化、业务逻辑计算环境多样化、用户数目规模化、业务逻辑 复杂化的发展要求,实现消息复杂化的发展要求,实现消息位置无关性位置无关性、用户透明性用户透明性。 2.3续 NAP TCP IP X.25 SLIP

45、 PPP 应用层应用层 传输层传输层 网络层网络层 网络接口层网络接口层 58 本地应用程序本地应用程序 中中 间间 件件 本地系统本地系统 系系 统统 管管 理理 队队 列列 管管 理理 器器 消息队列接口消息队列接口 消息路由和排队消息路由和排队 消息通道代理消息通道代理 网络网络 消息中间件体系结构消息中间件体系结构 2.3续 59 消息中间件的功能消息中间件的功能 无连接无连接消息传递消息传递 消息消息优先化优先化 有保障有保障的消息传递的消息传递 事务事务处理消息处理消息 动态动态队列创建队列创建 消息消息路由路由 不同硬件系统的不同硬件系统的集成集成 跨软件跨软件平台平台的支持的支

46、持 2.3续 60 Internet上实现数据库访问的方式上实现数据库访问的方式 公共网关接口公共网关接口CGI 专用专用API JDBC与与ODBC 数据库引擎数据库引擎 2.4 数据库访问中间件 61 数据库访问中间件数据库访问中间件 在分布式系统中,支持应用程序和在分布式系统中,支持应用程序和本地或异地本地或异地的的同构同构 或异构或异构数据源进行通信。数据源进行通信。 通过提供一系列的通过提供一系列的编程接口编程接口,屏蔽不同网络协议,操,屏蔽不同网络协议,操 作系统和数据库管理系统平台作系统和数据库管理系统平台DBMS的差异,允许应的差异,允许应 用程序用程序一致地一致地访问数据源。

47、访问数据源。 技术最成熟技术最成熟,应用,应用最广泛最广泛的一种中间件技术。的一种中间件技术。 典型例子典型例子ODBCODBC。 缺点:需要大量的数据通信。缺点:需要大量的数据通信。 产品:产品:OracleOracle公司的公司的SQL ConnectSQL Connect、SybaseSybase公司的公司的 Open ServerOpen Server、BEABEA公司的公司的WeblogicWeblogic和中科院软件所的和中科院软件所的 DataAccessDataAccess等。等。 2.4 续 62 三层结构的缺陷三层结构的缺陷 对对连接连接没有充分利用没有充分利用 对对重复重

48、复的数据库操作没有优化的数据库操作没有优化 远程访问远程访问不可靠不可靠 2.4 续 WWW Server 数据存取中间件数据存取中间件 业务规则业务规则 本地复制本地复制 Remote DBMS Server DBMS JDBC Client Client Applet SQL 63 数据库访问中间件主要功能数据库访问中间件主要功能 同时管理同时管理多个客户机多个客户机连接的多线程连接的多线程 可以接收不同的可以接收不同的厂家中立协议厂家中立协议 可以用一组管理数据操作的可以用一组管理数据操作的业务规则业务规则进行编程进行编程 集中处理集中处理密集任务密集任务和将和将数据表达数据表达抽象到最

49、高层抽象到最高层 分开分开客户机应用程序客户机应用程序与与数据库管理系统数据库管理系统 可以可以异步异步提供当前数据表或行的状态给客户机提供当前数据表或行的状态给客户机 2.4 续 64 数据库访问中间件数据库访问中间件 数据库访问中间件专门负责和完成对数据库数据库访问中间件专门负责和完成对数据库访问操作访问操作 的优化的优化、用户、用户连接数的管理连接数的管理、保证访问的、保证访问的安全性和可安全性和可 靠性靠性,以及实现应用对来自,以及实现应用对来自不同厂商不同厂商的数据库的访问的数据库的访问 等,进而提高对数据库访问的等,进而提高对数据库访问的效率效率。 简而言之,数据库访问中间件指一切

50、简而言之,数据库访问中间件指一切连接连接应用程序应用程序和和 数据库数据库的软件。的软件。 与一般的中间件一样,面向数据库的中间件允许开发与一般的中间件一样,面向数据库的中间件允许开发 人员通过人员通过单一的单一的、定义良好的定义良好的API访问另一台计算机访问另一台计算机 上的数据库资源。上的数据库资源。 2.4 续 65 数据库中间件访问方式数据库中间件访问方式 直接访问直接访问 应用程序像访问本地数据库一样可以直接访问和更应用程序像访问本地数据库一样可以直接访问和更 新位于远端的数据库。新位于远端的数据库。 数据库复制数据库复制 客户端缓存客户端缓存 服务器端缓存服务器端缓存 2.4 续

51、 66 数据库访问中间件类型数据库访问中间件类型 本地中间件本地中间件 本地中间件是为本地中间件是为特定的数据库特定的数据库设计的设计的 提供提供最佳的最佳的访问性能。访问性能。 当要改变数据库时,需要对应用程序进行当要改变数据库时,需要对应用程序进行很大的修改很大的修改。 呼叫层接口呼叫层接口 呼叫层接口为多个数据库提供了呼叫层接口为多个数据库提供了统一的界面统一的界面。 把一般通用的接口呼叫转换成把一般通用的接口呼叫转换成任意的数据库本地语言任意的数据库本地语言,以,以 便使对数据库发出请求的应用程序理解。便使对数据库发出请求的应用程序理解。 数据库网关数据库网关 完成不同数据库模型的完成

52、不同数据库模型的转换转换,能提供对大型系统内部数据,能提供对大型系统内部数据 的访问。的访问。 2.4 续 67 几种常见数据库访问中间件几种常见数据库访问中间件 ODBC OLE DB JDBC 数据库引擎数据库引擎 数据库网关数据库网关 2.4 续 应用程序应用程序1应用程序应用程序2应用程序应用程序n ODBC驱动程序管理器驱动程序管理器 可装载的可装载的驱动程序驱动程序 OracleSQL ServerParadox其他其他 68 数据库访问中间件优点数据库访问中间件优点 移植性好移植性好 中间件中间件封装封装了各种与平台有关的细节,使更换操作系统和通了各种与平台有关的细节,使更换操作

53、系统和通 信协议等底层的配置信协议等底层的配置无需改变应用程序代码无需改变应用程序代码。 集成方便集成方便 能非常容易地集成到应用开发环境中,能非常容易地集成到应用开发环境中,无需大的代码改动无需大的代码改动。 易于扩充易于扩充 局部改进和整体升级只要保持局部改进和整体升级只要保持对外接口不变对外接口不变就不会影响到系就不会影响到系 统的其他部分,在功能上对应用程序实现了统的其他部分,在功能上对应用程序实现了透明性透明性。 使用简单使用简单 对各种数据源使用对各种数据源使用统一的访问方式统一的访问方式,降低了用户参与程度。,降低了用户参与程度。 2.4 续 69 一种数据库访问中间件原型的构造

54、方法一种数据库访问中间件原型的构造方法 2.4 续 DB DB DB DB 客户客户客户客户 远远 程程 访访 问问 模模 块块 安安 全全 控控 制制 模模 块块 连接管理模块连接管理模块 操作评价模块操作评价模块 客户交互模块客户交互模块 缓冲区缓冲区 中间件中间件 70 事务事务 一个完整的事务是指一个一个完整的事务是指一个程序或程序段程序或程序段,在一个或多,在一个或多 个资源上为完成某些功能的执行过程。个资源上为完成某些功能的执行过程。 事务处理事务处理涉及操作系统、文件系统、编译语言、数据涉及操作系统、文件系统、编译语言、数据 通信、数据库管理系统、应用软件等,是一个相当艰通信、数

55、据库管理系统、应用软件等,是一个相当艰 巨的任务,但是工作的任务可以通过巨的任务,但是工作的任务可以通过事务管理系统事务管理系统来来 简化,可大大减少事务管理系统应用所需的编程量。简化,可大大减少事务管理系统应用所需的编程量。 系统中的所有事务由一个系统中的所有事务由一个事务管理系统事务管理系统所管理,事务所管理,事务 开始操作时被赋予一个唯一的开始操作时被赋予一个唯一的标识符标识符TID,在一个事,在一个事 务的生命周期内此标识由事务管理系统唯一标识一个务的生命周期内此标识由事务管理系统唯一标识一个 事务。事务。 2.5 交易中间件 71 交易中间件交易中间件TPM 在开放系统环境下提供保证

56、交易在开放系统环境下提供保证交易完整性完整性和数据和数据一致一致 性性的一种环境平台。的一种环境平台。 针对复杂环境下分布式应用的针对复杂环境下分布式应用的速度速度和和可靠性可靠性要求而要求而 实现的。实现的。 事务是对事务是对共享的系统资源共享的系统资源所完成的一件工作,它通所完成的一件工作,它通 常是由一系列操作所组成。事务必须具有常是由一系列操作所组成。事务必须具有ACIDACID(原(原 子性、一致性、隔离性、耐久性)属性。子性、一致性、隔离性、耐久性)属性。 TPMTPM通过通过APIAPI向用户提供了一系列的服务,可简化应向用户提供了一系列的服务,可简化应 用开发。用开发。 产品:

57、产品:BEABEA公司的公司的TuxeboTuxebo、IBMIBM公司的公司的CICSCICS和东方通和东方通 科技公司的科技公司的TongEASYTongEASY等。等。 2.5续 72 事务管理系统事务管理系统 2.5 续 应用程序(应用程序(AP) 资源管理器资源管理器 (RM) 通信资源通信资源 管理器管理器 (CRM) 事务管理器事务管理器 (TM) TM API XA + XA RM APICRM API TCP/IP 73 交易中间件作用交易中间件作用 提供提供高效高效的处理能力的处理能力 简化简化应用系统开发应用系统开发 可以有效完成可以有效完成多服务进程多服务进程和和负载均衡负载均衡 能保证分布式交易的能保证分布式交易的完整性完整性 提高系统的提高系统的容错容错能力能力 减少系统的运行、维护减少系统的运行、维护工作量工作量 2.5 续 74 交易中间件功能交易中间件功能 进程进程管理管理 交易交易优先级优先级管理管理 数据数据传输传输 均衡均衡负载负载 权限权限控制、安全管理控制、安全管理 2.5 续


文档来源:https://www.renrendoc.com/paper/151443021.html

文档标签:

下载地址