中间件基本概念专题培训ppt课件

上传人:文**** 文档编号:241662014 上传时间:2024-07-14 格式:PPT 页数:74 大小:638.10KB
返回 下载 相关 举报
中间件基本概念专题培训ppt课件_第1页
第1页 / 共74页
中间件基本概念专题培训ppt课件_第2页
第2页 / 共74页
中间件基本概念专题培训ppt课件_第3页
第3页 / 共74页
点击查看更多>>
资源描述
中间件基本概念中间件基本概念中间件基本概念12教材与参考书目教材:中间件技术原理与应用中间件技术原理与应用 张云勇 清华大学出版社参考书:COMCOM原理与应用原理与应用 潘爱民 清华大学出版社 CORBACORBA原理及应用原理及应用 朱其亮 北京邮电大学出版社 精通精通EJBEJB 美Ed Roman 电子工业出版社2教材与参考书目教材:23第1章 中间件产生背景及分布式计算环境主要内容开放系统开放系统互操作性互操作性中间件中间件3第1章 中间件产生背景及分布式计算环境主要内容341.1开放系统与互操作性概述计算模式的发展过程计算模式的发展过程基于主机的系统(分时共享、资源共享)基于主机的系统(分时共享、资源共享)两层两层Client/Server系统系统三层(三层(n层)体系架构层)体系架构p表示层表示层用户层用户层p业务逻辑层业务逻辑层应用层应用层p数据层数据层数据库服务器数据库服务器基于基于Web的三层(的三层(N层)体系结构层)体系结构41.1开放系统与互操作性概述计算模式的发展过程451.1续开放系统基本组成开放系统基本组成n硬件硬件包括包括PC,工作站,大中型机,各式各样,工作站,大中型机,各式各样的的 n 嵌入式设备,移动设备;嵌入式设备,移动设备;n软件软件 各类操作系统、应用软件;各类操作系统、应用软件;n网络网络 各类网络结构、网络协议。各类网络结构、网络协议。开放系统面临的问题开放系统面临的问题远程性远程性并发行并发行无全局状态无全局状态部部分失败分失败异步性异步性异质性异质性自主性自主性联合型联合型伸缩性伸缩性发展性发展性移动性移动性51.1续开放系统基本组成561.1续开放系统特点开放系统特点n开放的:提供开放的:提供可移植性可移植性和和协同协同工作;工作;n集成的:有助于对付集成的:有助于对付异质性异质性;n灵活的:有助于对付灵活的:有助于对付移动性移动性;n模块化的:模块化的:灵活性灵活性的基础;的基础;n可联合的可联合的n可管理的可管理的n安全的安全的n透明的:支撑软件和硬件的透明的:支撑软件和硬件的异质性异质性;n满足服务满足服务质量需求质量需求61.1续开放系统特点671.1续开放系统必具特性开放系统必具特性n可移植性可移植性(Portability)n可互操作性可互操作性(Interoperability)n可伸缩性可伸缩性(Scalability)n易获得性易获得性(Availability)开放系统构造开放系统构造n用轮廓勾划;用轮廓勾划;n轮廓由轮廓由七个成分组成;七个成分组成;n对轮廓的各成分标准化,即成开放系统。对轮廓的各成分标准化,即成开放系统。71.1续开放系统必具特性781.1续开放系统开放程度表 81.1续开放系统开放程度表 891.1续互操作性互操作性本质:本质:从异质环境(异种从异质环境(异种体系结构体系结构、异种、异种操作系统操作系统、异、异种种网络网络等)中获得资源的等)中获得资源的透明动用透明动用能力。能力。面向面向计算资源计算资源的互操作性的互操作性面向面向信息资源信息资源的互操作性(如数据库)的互操作性(如数据库)定义定义:在一个由在一个由异质实体异质实体构成的网络环境中,当应用在构成的网络环境中,当应用在网络的结点上运行时,它可以网络的结点上运行时,它可以透明地透明地动用网中其动用网中其他结点上的他结点上的资源资源,并借助这些资源与本结点上的,并借助这些资源与本结点上的资源共同来完成某个或某组任务。资源共同来完成某个或某组任务。91.1续互操作性9101.1续互操作性互操作性定义定义:在一个由在一个由异质实体异质实体构成的网络环境中,当应用在构成的网络环境中,当应用在网络的结点上运行时,它可以网络的结点上运行时,它可以透明地透明地动用网中其动用网中其他结点上的他结点上的资源资源,并借助这些资源与本结点上的,并借助这些资源与本结点上的资源共同来完成某个或某组任务。资源共同来完成某个或某组任务。本质:本质:从异质环境(异种从异质环境(异种体系结构体系结构、异种、异种操作系统操作系统、异、异种种网络网络等)中获得资源的等)中获得资源的透明动用透明动用能力。能力。面向面向计算资源计算资源的互操作性的互操作性面向面向信息资源信息资源的互操作性(如数据库)的互操作性(如数据库)101.1续互操作性10111.2中间件概述现代应用系统的基本特征现代应用系统的基本特征n分布分布n任务已不只是在单机上运行,而是由任务已不只是在单机上运行,而是由网络中网络中多台计算机上多台计算机上的相关应用的相关应用共同协作共同协作完成,需考虑完成,需考虑网络传输网络传输、数据安全数据安全、数据一致性数据一致性、同步同步等诸多问题;等诸多问题;n异构异构 n计算机硬件、操作系统、网络协议、数据库系统以及开发计算机硬件、操作系统、网络协议、数据库系统以及开发工具种类繁多,需考虑工具种类繁多,需考虑数据表示数据表示、调用接口调用接口、处理方式处理方式等等诸多问题;诸多问题;n动态协作动态协作 n参与协作的应用允许参与协作的应用允许位置透明性位置透明性、迁移透明性迁移透明性、负载平衡负载平衡性性等需求。等需求。111.2中间件概述现代应用系统的基本特征11121.2续应用应用1应用应用2应用应用3服务器服务器1服务器服务器2服务器服务器3121.2续应用1应用2应用3服务器1服务器2服务器312131.2续应用应用1应用应用2应用应用3服务器服务器1服务器服务器2服务器服务器3中间件中间件131.2续应用1应用2应用3服务器1服务器2服务器3中间件13141.2续应用软件中间件网络软件操作系统应用软件中间件网络软件操作系统可协同工作利用中间件进行协同工作的系统141.2续应用软件中间件网络软件操作系统应用软件中间件网络14151.2续*中间件定义中间件定义中间件中间件(Middleware)(Middleware)是一种是一种软件软件,处于,处于系统系统软件软件(操作系统和网络软件)与(操作系统和网络软件)与应用软件应用软件之之间,它能使处于应用层中的各应用成分之间间,它能使处于应用层中的各应用成分之间实现跨网络的协同工作(也就是实现跨网络的协同工作(也就是互操作互操作),),这时允许各应用软件之下所涉及的这时允许各应用软件之下所涉及的“系统结系统结构、操作系统、通信协议、数据库和其它应构、操作系统、通信协议、数据库和其它应用服务用服务”各不相同。各不相同。151.2续*中间件定义1516应用软件中间件网络协议操作系统硬件平台应用软件中间件网络协议操作系统硬件平台DBMS两者内含有进两者内含有进行协同工作的行协同工作的应用成分应用成分中间件定义1.2续16应用软件中间件网络协议操作系统硬件平台应用软件中间件网络16171.2续*中间件组成中间件组成1 1执行环境(执行环境(Execution EnvironmentExecution Environment)软件)软件 如果一个网络的各个节点上安装了如果一个网络的各个节点上安装了EEEE软件软件,各节点,各节点上的应用软件之间就可以实现上的应用软件之间就可以实现相互合作相互合作。EEEE软件使软件使各节点的各节点的下层设备下层设备对应用软件对应用软件透明化透明化了,了,EEEE软件是软件是中间件中的中间件中的主体部分主体部分。2 2应用开发应用开发(Application Development)(Application Development)工具工具ADAD工具用来帮助工具用来帮助开发内含开发内含“透明动用对方透明动用对方”成分的成分的应用软件应用软件,或,或改造原有的无透明动用能力的应用软改造原有的无透明动用能力的应用软件件。ADAD工具是中间件中的工具是中间件中的必备部分必备部分。171.2续*中间件组成17181.2续中间件的层次结构181.2续中间件的层次结构18191.2续中间件基本框架中间件基本框架第四层第四层应用接口(应用接口(API)层)层中间件服务层中间件服务层(通信,控制,计算,管理,输出,信息等)应用平台层应用平台层(Unix、NetWare、NT、VAX、OPENVMS等)传输协议层传输协议层(TCP/IP、IPX/SPX、NetBIOS、OSI等)第三层第三层第二层第二层第一层第一层中间件的基本功能框架结构191.2续中间件基本框架第四层应用接口(API)层中间件服19201.2续基于中间件的软件系统基本模型基于中间件的软件系统基本模型201.2续基于中间件的软件系统基本模型20211.2续中间件工作原理中间件工作原理中间件服务器1服务器2服务器n客户机1客户机2客户机n服务器端客户端同/异构环境211.2续中间件工作原理中间件服务器1服务器2服务器n客户21221.2续*中间件的基本分类中间件的基本分类数据访问中间件数据访问中间件(DAMDAM)远程过程调用中间件远程过程调用中间件(RPCRPC)消息中间件消息中间件(MOMMOM)对象请求代理中间件对象请求代理中间件(ORBORB)事务处理中间件事务处理中间件(交易中间件,(交易中间件,TPMTPM)221.2续*中间件的基本分类2223中间件的发展情况中间件的发展情况1.2续23中间件的发展情况1.2续2324中间件的主要厂商中间件的主要厂商l第一梯队第一梯队pOracleOracle(BEABEA)、)、IBMIBM、东方通科技,占、东方通科技,占70%70%以上份以上份额;额;l第二梯队第二梯队pSunSun、中软、中创、微软等;、中软、中创、微软等;l第三梯队第三梯队p国内若干中小软件企业和系统集成企业。国内若干中小软件企业和系统集成企业。1.2续24中间件的主要厂商1.2续24251.2续*中间件的作用中间件的作用n它它提提供供了了通通道道的的功功能能,可可保保证证应应用用系系统统数数据据的的可可靠传输;靠传输;n它它起起着着桥桥梁梁的的作作用用,达达成成异异构构应应用用资资源源之之间间的的互互联互通;联互通;n它它是是分分布布式式应应用用的的集集成成开开发发框框架架,促促成成企企业业分分布布式应用的式应用的有机集成有机集成;n作作为为平平台台,它它可可有有效效实实现现分分布布应应用用的的分分阶阶段段顺顺利利部署;部署;n它它起起着着过过滤滤网网的的作作用用,可可有有力力保保护护关关键键信信息息的的安安全。全。251.2续*中间件的作用2526*中间件的优越性:中间件的优越性:1.1.企业应用方面企业应用方面缩短应用开发周期缩短应用开发周期减少项目开发风险减少项目开发风险应应用用程程序序质质量量可可维维护性护性增加产品吸引力增加产品吸引力2.2.应用程序方面应用程序方面透透明明地地同同其其他他应应用用程程序交互序交互与与运运行行平平台台提提供供的的网网络通信服务无关络通信服务无关具具有有良良好好的的可可靠靠性性和和可用性可用性具有良好的可扩展性具有良好的可扩展性1.2续26*中间件的优越性:1.2续2627中间件发展面临的问题中间件发展面临的问题不同厂商的实现很难不同厂商的实现很难互操作互操作只提供了一部分只提供了一部分平台的实现平台的实现应用开发者要面临设计应用开发者要面临设计选择选择过分追求中间件功能的全面性过分追求中间件功能的全面性过分强调选择国外产品过分强调选择国外产品不能准确认识中间件的作用不能准确认识中间件的作用1.2续27中间件发展面临的问题1.2续2728*中间件技术发展趋势中间件技术发展趋势n中间件的发展需要中间件的发展需要规范化规范化n应用需求导致技术应用需求导致技术格局多样化格局多样化n构件化和松散耦合构件化和松散耦合n底层底层的中间件持续走稳的中间件持续走稳n高层高层的中间件成为市场新宠的中间件成为市场新宠n新技术与产品的推出速度放缓新技术与产品的推出速度放缓n实用化实用化是重要的发展趋势是重要的发展趋势1.2续28*中间件技术发展趋势1.2续2829第2章 五大类中间件的工作机理主要内容2.1 远程过程调用中间件(远程过程调用中间件(RPCM)2.2 面向对象中间件(面向对象中间件(OOM)2.3 消息中间件(MOM)2.4 数据库访问中间件(DAM)2.5 交易中间件(DTPM)29第2章 五大类中间件的工作机理主要内容29302.1远程过程调用中间件RPCRPC背景背景n在传统的编程概念中,在传统的编程概念中,过程过程是只能局限在是只能局限在本地运行本地运行的一段代码,的一段代码,主程序和过程之间主程序和过程之间的运行关系是的运行关系是本地本地调用调用关系关系本地过程调用本地过程调用LPCLPC。nLPCLPC模式无法充分利用网络上其他主机的资源,也无模式无法充分利用网络上其他主机的资源,也无法提高代码在实体间的法提高代码在实体间的共享共享程度,使得主机资源大程度,使得主机资源大量浪费。量浪费。nRPCRPC是对是对LPCLPC的扩展。通过这种调用机制,程序员编的扩展。通过这种调用机制,程序员编写客户方应用时,可根据需要写客户方应用时,可根据需要透明地调用透明地调用位于远端位于远端服务器上的过程。服务器上的过程。302.1远程过程调用中间件RPC背景3031main()main().调用调用A A.退出退出A()A().调用调用B B.退出退出B()B().退出退出主程序主程序过程过程A代码代码过程过程B代码代码机器机器1机器机器2机器机器3RPCRPC调用模型调用模型2.1 续主程序主程序子程序子程序子程序子程序31main()A()B()主程序过程A代码过程B代码3132远程过程调用远程过程调用RPC概念概念nRPC是从一台是从一台机器机器或一个或一个进程进程调用另一台机器或另调用另一台机器或另一个进程的一个进程的服务或方法。服务或方法。n远程过程调用是创建远程过程调用是创建分布式应用分布式应用的一种方法,来源的一种方法,来源于于Unix操作系统操作系统的处理思想,被普遍认为是创建分的处理思想,被普遍认为是创建分布式应用的有效方法。布式应用的有效方法。n从从程序员的角度程序员的角度,RPC采用常规的编程模式:采用常规的编程模式:程序程序代码调用远端过程并将结果返回。代码调用远端过程并将结果返回。当使用当使用RPC时,时,只需编写很少的网络程序代码,绝大部分代码由只需编写很少的网络程序代码,绝大部分代码由IDL(InterfaceDefineLanguage)生成。生成。2.1 续32远程过程调用RPC概念2.1 续3233IDL编译器结构编译器结构2.1 续IDL规范规范IDL编译器编译器头头文件文件客户客户存根存根头头文件文件对象对象实现实现框架框架图2-4 IDL编译器结构33IDL编译器结构2.1 续IDL规范IDL编译器头文件客3334远程过程调用远程过程调用中间件工作机理中间件工作机理n用中间件中的用中间件中的IDL对对调用顺序调用顺序加以加以描述描述;n利用利用IDL编译器编译器对这种定义和描述进行编译,从对这种定义和描述进行编译,从而生成支持客户机和服务器进行而生成支持客户机和服务器进行通信的管道通信的管道;n在在服务器端服务器端,被调用的远端过程需,被调用的远端过程需单独编写单独编写,并,并被置入被置入服务器端框架服务器端框架,同时要在远程过程调用中间,同时要在远程过程调用中间件中进行件中进行注册,注册,以备调用。以备调用。n启动本地启动本地客户端存根客户端存根存根存根捆绑捆绑远端过程名远端过程名和参数和参数利用利用网络传输网络传输到服务器端框架,从而到服务器端框架,从而实现实现数据格式的转换数据格式的转换和和参数的传递参数的传递n采用采用调用调用/返回返回模式具体地完成远端过程调用。模式具体地完成远端过程调用。2.1 续34远程过程调用中间件工作机理2.1 续3435RPC工作流程工作流程2.1 续客户运行客户继续执行服务调用过程调用服务过程执行过程返回请求返回RPC调用RPC返回Network图2-5 RPC工作流程RPCRPC一般采用一般采用调用调用/返回返回模式,多用于应用程序之间的通信,采用模式,多用于应用程序之间的通信,采用同步方式同步方式。RPCRPC程序之间的同步通信一般采用程序之间的同步通信一般采用Request-Wait-ReplyRequest-Wait-Reply方式,因此方式,因此RPCRPC更适应更适应小型小型简单简单而不需要采用异步通信方式的应用。而不需要采用异步通信方式的应用。35RPC工作流程2.1 续客户运行客户继续执行服务调用过程3536ClientSend(remote call pi()(发送发送“请求服务请求服务”信息)信息)Receive(ans)接收回复信息接收回复信息server接收调用信息;接收调用信息;抽取参数并分析;抽取参数并分析;调用所指的过程调用所指的过程;执行远程过程执行远程过程返回执行结果返回执行结果Send(ans)发送回复信息发送回复信息等等待待回回复复请求服务请求服务等待等待调用调用继续继续返回调用结果返回调用结果RPCRPC的通信模型的通信模型2.1 续36ClientSend(remote call pi()36373 call work returnServer ProcessOP2 Server-stub OP3RPC Routinereceive transmit45678Local return Local callClient ProcessOP4 Client-stub OP1waitRPC Routinereceive transmit12910RPCRPC执行过程执行过程2.1 续373 call work re3738通信协议通信协议支持两种传输协议:支持两种传输协议:TCPTCP、UDPUDPnTCPTCP:连接、可靠、连接、可靠、低效低效。保证要么把调用传递到。保证要么把调用传递到远程过程且远程过程且接受应答接受应答,要么报告通信,要么报告通信无法进行无法进行。nUDPUDP:无连接、无连接、不可靠不可靠、高效。使用、高效。使用UDPUDP的远程过的远程过程调用也许会程调用也许会丢失或重复丢失或重复。2.1 续38通信协议2.1 续3839RPCRPC的语义的语义nLastLast-of-many:-of-many:被调用的过程被调用的过程可能执行若干次可能执行若干次,但,但规定其规定其最后一次最后一次执行的结果作为执行的结果作为返回结果返回结果。nAt-mostAt-most-once:-once:若调用者收到了回复消息,则称被若调用者收到了回复消息,则称被调用的过程正确地完成了它的一次(调用的过程正确地完成了它的一次(仅仅一次仅仅一次)执行。执行。nAt-leastAt-least-once:-once:远程调用过程至少执行一次,回远程调用过程至少执行一次,回复消息可能复消息可能返回一次或多次返回一次或多次。nExactlyExactly-once:-once:若服务器正常,则远程过程恰好执若服务器正常,则远程过程恰好执行一次,并返回一个调用结果。行一次,并返回一个调用结果。2.1 续39RPC的语义2.1 续3940远程过程调用远程过程调用的特点的特点客户客户/服务器模式服务器模式客户端的应用调用一个位于远端服务器平台的进程或服客户端的应用调用一个位于远端服务器平台的进程或服务,务,RPC实际上是通过实际上是通过C/S方式方式实现的。实现的。数据封装性数据封装性远端过程调用负责远端过程调用负责捆绑参数捆绑参数,实现不同平台之间参数的,实现不同平台之间参数的传递,发送参数到远端过程。传递,发送参数到远端过程。同步性同步性当客户机发出请求时,服务器进程处于当客户机发出请求时,服务器进程处于运行状态运行状态。复杂性复杂性远程调用的实现环境可能要用远程调用的实现环境可能要用系统级的任务系统级的任务来创建,但来创建,但一旦完成,对程序员就是透明的了。一旦完成,对程序员就是透明的了。2.1 续40远程过程调用的特点2.1 续4041远程过程调用远程过程调用的特点的特点n缺点:缺点:需要进行需要进行系统级的配置系统级的配置;RPC 并并不支持对象不支持对象。CORBA的IIOP MTS的DCOM Java的 sockets应用级协议的编码交换 EJB?RMI(Java Remote Method Protocol)优点:方便地实现优点:方便地实现不同平台不同平台之间的之间的数据转换数据转换。XDR(eXternal Data Representation)2.1 续41远程过程调用的特点2.1 续4142RMIRMI环境环境nRMIRMI(远程(远程方法方法激活):在分布式程序中,其远程激活):在分布式程序中,其远程对象的方法对象的方法能够被运行在不同主机上的其他能够被运行在不同主机上的其他JavaJava虚虚拟机的方法拟机的方法调用。调用。n相对于相对于过程调用级过程调用级的的RPCRPC,RMIRMI可以实现可以实现编程级对象编程级对象之间的方法调用。之间的方法调用。本地与远程方法调用本地与远程方法调用对象应用程序本地调用机器A对象对象对象机器B网络远程调用2.1 续42RMI环境本地与远程方法调用对象应用程序本地调用机器A对4243RMIRMI体系结构体系结构远程引用层远程引用层传输层传输层Java Virtual MachineClientStub远程引用层远程引用层传输层传输层Java Virtual MachineRemote ObjectSkeletonTCP2.1 续43RMI体系结构远程引用层传输层Java Virtual 4344RMIRMI系统的目标系统的目标n支持对存在于支持对存在于不同不同JavaJava虚拟机虚拟机上对象的无缝的远上对象的无缝的远程调用。程调用。n支持服务器对客户的支持服务器对客户的回调。回调。n把把分布式对象模型分布式对象模型自然地集成到自然地集成到JavaJava语言里。语言里。n把分布式对象模型和本地把分布式对象模型和本地JavaJava对象模型间的对象模型间的不同不同表面化。表面化。n使编写可靠的分布式应用程序使编写可靠的分布式应用程序简单化简单化。n保留保留JavaJava运行时环境提供的运行时环境提供的安全性安全性。2.1 续44RMI系统的目标2.1 续4445软件开发面临的问题软件开发面临的问题:n软件的软件的开发、修改和维护变得开发、修改和维护变得更加困难。更加困难。n软件开发常常软件开发常常超期和超出预算超期和超出预算。n由于由于没有代码重用没有代码重用,新软件的开发都是从零开始。,新软件的开发都是从零开始。结构化的软件开发方式结构化的软件开发方式n一种一种自顶向下的开发方法自顶向下的开发方法,将整个系统分解成独立,将整个系统分解成独立的模块,然后逐一实现这些模块的功能。的模块,然后逐一实现这些模块的功能。n缺点:完整的系统只能在缺点:完整的系统只能在开发完成后开发完成后才能呈现全貌。才能呈现全貌。如果在开始编程时发现如果在开始编程时发现设计中存在缺陷设计中存在缺陷,那么整个,那么整个设计将被设计将被重新构造重新构造。2.2 面向对象中间件45软件开发面临的问题:2.2 面向对象中间件45462.2 续面向对象的软件开发方式面向对象的软件开发方式n以一种以一种直观的直观的方法分析和构造系统;方法分析和构造系统;n将将整个系统整个系统抽象并抽象并模型化模型化两种开发方法的区别两种开发方法的区别n结构化的方法:数据与功能是结构化的方法:数据与功能是分离的分离的;n面向对象方法:数据和相关的功能面向对象方法:数据和相关的功能捆绑捆绑在一起。在一起。462.2 续面向对象的软件开发方式46472.2 续续开放式分布处理参考模型(开放式分布处理参考模型(ODPODP)起源)起源nISOISO为了解决为了解决异种系统异种系统之间的互联和互通,提出了之间的互联和互通,提出了OSI-RMOSI-RM。n为使分布式系统能处理应用的分布,实现应用之间为使分布式系统能处理应用的分布,实现应用之间的的互通和互操作互通和互操作而开发的各种标准,如而开发的各种标准,如OSFOSF的的DCEDCE、OMGOMG的的CORBACORBA、UIUI的的ALTASALTAS和和DECDEC的的NASNAS。n从从19871987年起,在年起,在ISO/IECISO/IEC和和ITUITU的共同努力下,于的共同努力下,于19951995年发布了开放式年发布了开放式分布处理参考模型分布处理参考模型RM-ODPRM-ODP。nRM-ODPRM-ODP不仅是一个一般标准,还是一个不仅是一个一般标准,还是一个标准的标准标准的标准。472.2 续开放式分布处理参考模型(ODP)起源4748对象中间件(对象请求代理对象中间件(对象请求代理ORBORB)nORBORB提提供供一一种种通通信信机机制制透透明明地地在在异异构构的的通通信信环环境境中中传传递递对对象象请请求求,各各对对象象可可以以位位于于本本地地或或远远程程机机器器,且对象之间的且对象之间的客户机客户机/服务器服务器的角色是可以互换的。的角色是可以互换的。nORBORB可可以以看看作作和和编编程程语语言言无无关关的的面面向向对对象象的的RPCRPC应应用用,被被视视为为从从面面向向对对象象过过渡渡到到分分布布式式计计算算的的强强大大推动力量。推动力量。n两大标准两大标准:OMGOMG的的CORBACORBA;MicrosoftMicrosoft的的COM/DCOMCOM/DCOM。n产产品品:BorlandBorland公公司司的的VisibrokerVisibroker、IBMIBM公公司司的的ComponentBrokerComponentBroker和和 东东 方方 通通 科科 技技 公公 司司 的的TongBrokerdengTongBrokerdeng。2.2 续续48对象中间件(对象请求代理ORB)2.2 续48492.2续续ODPODP通信模型相关概念通信模型相关概念n通道通道(Channel):用于支持分布对象之间的:用于支持分布对象之间的透明透明交互交互。n通道包括三部分:存根、绑定器和协议对象。通道包括三部分:存根、绑定器和协议对象。n存根存根(Stub):解决交互过程中的信息的:解决交互过程中的信息的封装和封装和解封装解封装问题;问题;n绑定器绑定器(Binder):维护计算对象之间的:维护计算对象之间的联系联系;n协议对象协议对象(Protocol Object):处理实际的:处理实际的通信通信。492.2续ODP通信模型相关概念49502.2续续端系统资源相关概念端系统资源相关概念结点结点(Node):在管理上独立的在管理上独立的物理机器物理机器;核核(Nucleus):用来用来管理管理结点的结点的机制机制;对象包对象包(Capsule):对象的对象的执行环境执行环境;对象串对象串(Cluster):受共管和被共操作的受共管和被共操作的对象集合对象集合。502.2续端系统资源相关概念5051客户基本客户基本工程对象工程对象客客 户户存存 根根客客 户户绑定器绑定器客户协客户协议对象议对象客户方客户方服务器基本服务器基本工程对象工程对象服务器服务器绑定器绑定器服务器服务器存存 根根服务器协服务器协议对象议对象服务器方服务器方截截-转器转器客户客户-服务器交互服务器交互2.2续续51客户基本客 户客 户客户协客户方服务器基本服务器服务器服5152消息中间件产生消息中间件产生u传统通信必备条件传统通信必备条件发送和接收应用程序发送和接收应用程序同时在线同时在线;通过网络能通过网络能同时通信同时通信,发送者和接受者需知道,发送者和接受者需知道相互间程序的相互间程序的调用接口调用接口。u实际情况:实际情况:应用程序并应用程序并不总是不总是同时运行;同时运行;网络网络并不总是可用的和可靠的;并不总是可用的和可靠的;在所有者域对应用程序的在所有者域对应用程序的改变改变,要求在其他域,要求在其他域也作相应改变,不切实际。也作相应改变,不切实际。2.3消息中间件(MOM)52消息中间件产生2.3消息中间件(MOM)5253消息中间件定义消息中间件定义nMOM(消息队列中间件消息队列中间件/通信中间件通信中间件)依据消息传)依据消息传送或消息队列的原理来工作。送或消息队列的原理来工作。nMOM能够简化应用之间数据的传输,提供能够简化应用之间数据的传输,提供可靠的、可靠的、跨平台跨平台的消息传输手段。的消息传输手段。nMOM支持支持同步和异步同步和异步两种通信模式,其中两种通信模式,其中异步异步通信通信模式是基于模式是基于消息队列消息队列转发机制的。转发机制的。n一般来说,一般来说,消息队列消息队列广泛采用广泛采用对等对等的分布式计算模的分布式计算模型来实现分布式计算中的型来实现分布式计算中的同步和异步同步和异步交互。交互。n消息队列一般提供多协议支持、消息队列一般提供多协议支持、高端服务高端服务和其他系和其他系统管理服务,完成统管理服务,完成可靠的、可扩展可靠的、可扩展的异构环境中的的异构环境中的通信。通信。2.3续53消息中间件定义2.3续5354消息消息n消息实质上是一个由用户定义的消息实质上是一个由用户定义的数据结构数据结构,由,由头信头信息息和和体信息体信息组成。组成。n头消息头消息是对消息结构的描述,对整条消息起是对消息结构的描述,对整条消息起控制作控制作用用,含消息的,含消息的属性属性及相关的系统信息,如及相关的系统信息,如消息标识消息标识、消息类型消息类型、目的队列名目的队列名、日期时间日期时间等;其中目的队等;其中目的队列名可表示成列名可表示成“队列名队列名队列管理器名队列管理器名”的形式的形式n体信息体信息主要是消息的主要是消息的应用数据应用数据,是应用程序通信的,是应用程序通信的数据,其具体语义要由通信双方事先约定,对中间数据,其具体语义要由通信双方事先约定,对中间件来说是一串毫无意义的件来说是一串毫无意义的二进制字节串二进制字节串。n种类:种类:请求消息请求消息应答消息应答消息通知消息通知消息2.3续54消息2.3续5455消息中间件工作机理消息中间件工作机理n应用之间以一系列消息的方式进行通信。在发送者和应用之间以一系列消息的方式进行通信。在发送者和接受者的传送过程中,为了避免在传递过程中消息被接受者的传送过程中,为了避免在传递过程中消息被丢失,丢失,消息保存在队列消息保存在队列中。中。nMOM为消息接收者查看消息提供了一个为消息接收者查看消息提供了一个缓冲区域缓冲区域,应用把消息发送到与应用把消息发送到与接收者相关的队列接收者相关的队列中,如果发送中,如果发送者想及时得到者想及时得到反馈反馈,它们就把接收返回消息的,它们就把接收返回消息的队列名队列名包含在包含在所有所有它们发送的消息中。它们发送的消息中。n消息传递机制要消息传递机制要保证保证将发送者的消息传送到目的地。将发送者的消息传送到目的地。n在消息传递中,应用程序之间不必须建立在消息传递中,应用程序之间不必须建立直接的联系直接的联系,从而实现消息传送的从而实现消息传送的异步性异步性。2.3续55消息中间件工作机理2.3续5556消息中间件消息中间件消消息息中中间间件件能能够够简简化化应应用用之之间间数数据据的的传传输输,提提供供可可靠靠的的、跨跨平平台台的的消消息息传传输输手手段段,实实现现应应用用程程序序之间的之间的协同协同。有两种基本的有两种基本的工作模型工作模型:消息队列消息队列消息传递消息传递(发布(发布-订阅)订阅)缺点:不支持程序控制的传递。缺点:不支持程序控制的传递。产产品品:东东方方通通科科技技的的TongLINK/QTongLINK/Q、BEABEA的的elinkelink、DECDEC的的 MessageQMessageQ、IBMIBM的的 MQSeriesMQSeries、Microsoft Microsoft MSMQMSMQ等。等。2.3续56消息中间件2.3续5657消息中间件产生消息中间件产生n消息中间件一般把工业标准消息中间件一般把工业标准TCP/IP协议作为基础。协议作为基础。n消息中间件还遵循消息中间件还遵循X/Open的分布式事务处理模型,的分布式事务处理模型,适应于适应于分布式分布式计算环境多样化、用户数目规模化、业务逻辑计算环境多样化、用户数目规模化、业务逻辑复杂化的发展要求,实现消息复杂化的发展要求,实现消息位置无关性位置无关性、用户透明性用户透明性。2.3续NAPTCPIPX.25 SLIP PPP应用层应用层传输层传输层网络层网络层网络接口层网络接口层57消息中间件产生2.3续NAPTCPIPX.25SLIPP5758本地应用程序本地应用程序中中间间件件本地系统本地系统系系统统管管理理队队列列管管理理器器消息队列接口消息队列接口消息路由和排队消息路由和排队消息通道代理消息通道代理网络网络消息中间件体系结构消息中间件体系结构2.3续58本地应用程序中间件本地系统系队列管理器消息队列接口消息路5859消息中间件的功能消息中间件的功能无连接无连接消息传递消息传递消息消息优先化优先化有保障有保障的消息传递的消息传递事务事务处理消息处理消息动态动态队列创建队列创建消息消息路由路由不同硬件系统的不同硬件系统的集成集成跨软件跨软件平台平台的支持的支持2.3续59消息中间件的功能2.3续5960Internet上实现数据库访问的方式上实现数据库访问的方式n公共网关接口公共网关接口CGIn专用专用APInJDBC与与ODBCn数据库引擎数据库引擎2.4 数据库访问中间件60Internet上实现数据库访问的方式2.4 数据库访问6061数据库访问中间件数据库访问中间件在分布式系统中,支持应用程序和在分布式系统中,支持应用程序和本地或异地本地或异地的的同构同构或异构或异构数据源进行通信。数据源进行通信。通过提供一系列的通过提供一系列的编程接口编程接口,屏蔽不同网络协议,操,屏蔽不同网络协议,操作系统和数据库管理系统平台作系统和数据库管理系统平台DBMS的差异,允许应的差异,允许应用程序用程序一致地一致地访问数据源。访问数据源。技术最成熟技术最成熟,应用,应用最广泛最广泛的一种中间件技术。的一种中间件技术。典型例子典型例子ODBCODBC。缺点:需要大量的数据通信。缺点:需要大量的数据通信。产产品品:OracleOracle公公司司的的SQL SQL ConnectConnect、SybaseSybase公公司司的的Open Open ServerServer、BEABEA公公司司的的WeblogicWeblogic和和中中科科院院软软件件所所的的DataAccessDataAccess等。等。2.4 续61数据库访问中间件2.4 续6162三层结构的缺陷三层结构的缺陷对对连接连接没有充分利用没有充分利用对对重复重复的数据库操作没有优化的数据库操作没有优化远程访问远程访问不可靠不可靠 2.4 续WWW Server数据存取中间件数据存取中间件业务规则业务规则本地复制本地复制RemoteDBMSServerDBMSJDBCClientClientAppletSQL62三层结构的缺陷2.4 续WWW Server数据存取中间6263数据库访问中间件主要功能数据库访问中间件主要功能n同时管理同时管理多个客户机多个客户机连接的多线程连接的多线程n可以接收不同的可以接收不同的厂家中立协议厂家中立协议n可以用一组管理数据操作的可以用一组管理数据操作的业务规则业务规则进行编程进行编程n集中处理集中处理密集任务密集任务和将和将数据表达数据表达抽象到最高层抽象到最高层n分开分开客户机应用程序客户机应用程序与与数据库管理系统数据库管理系统n可以可以异步异步提供当前数据表或行的状态给客户机提供当前数据表或行的状态给客户机2.4 续63数据库访问中间件主要功能2.4 续6364数据库访问中间件数据库访问中间件n数据库访问中间件专门负责和完成对数据库数据库访问中间件专门负责和完成对数据库访问操作访问操作的优化的优化、用户、用户连接数的管理连接数的管理、保证访问的、保证访问的安全性和可安全性和可靠性靠性,以及实现应用对来自,以及实现应用对来自不同厂商不同厂商的数据库的访问的数据库的访问等,进而提高对数据库访问的等,进而提高对数据库访问的效率效率。n简而言之,数据库访问中间件指一切简而言之,数据库访问中间件指一切连接连接应用程序应用程序和和数据库数据库的软件。的软件。n与一般的中间件一样,面向数据库的中间件允许开发与一般的中间件一样,面向数据库的中间件允许开发人员通过人员通过单一的单一的、定义良好的定义良好的API访问另一台计算机访问另一台计算机上的数据库资源。上的数据库资源。2.4 续64数据库访问中间件2.4 续6465数据库中间件访问方式数据库中间件访问方式直接访问直接访问应用程序像访问本地数据库一样可以直接访问和更应用程序像访问本地数据库一样可以直接访问和更新位于远端的数据库。新位于远端的数据库。数据库复制数据库复制客户端缓存客户端缓存服务器端缓存服务器端缓存2.4 续65数据库中间件访问方式2.4 续6566数据库访问中间件类型数据库访问中间件类型本地中间件本地中间件本地中间件是为本地中间件是为特定的数据库特定的数据库设计的设计的提供提供最佳的最佳的访问性能。访问性能。当要改变数据库时,需要对应用程序进行当要改变数据库时,需要对应用程序进行很大的修改很大的修改。呼叫层接口呼叫层接口呼叫层接口为多个数据库提供了呼叫层接口为多个数据库提供了统一的界面统一的界面。把一般通用的接口呼叫转换成把一般通用的接口呼叫转换成任意的数据库本地语言任意的数据库本地语言,以,以便使对数据库发出请求的应用程序理解。便使对数据库发出请求的应用程序理解。数据库网关数据库网关完成不同数据库模型的完成不同数据库模型的转换转换,能提供对大型系统内部数据,能提供对大型系统内部数据的访问。的访问。2.4 续66数据库访问中间件类型2.4 续6667几种常见数据库访问中间件几种常见数据库访问中间件ODBCOLE DBJDBC数据库引擎数据库引擎数据库网关数据库网关2.4 续应用程序应用程序1应用程序应用程序2应用程序应用程序nODBC驱动程序管理器驱动程序管理器可装载的可装载的驱动程序驱动程序OracleSQL ServerParadox其他其他67几种常见数据库访问中间件2.4 续应用程序1应用程序2应6768数据库访问中间件优点数据库访问中间件优点移植性好移植性好中间件中间件封装封装了各种与平台有关的细节,使更换操作系统和通了各种与平台有关的细节,使更换操作系统和通信协议等底层的配置信协议等底层的配置无需改变应用程序代码无需改变应用程序代码。集成方便集成方便能非常容易地集成到应用开发环境中,能非常容易地集成到应用开发环境中,无需大的代码改动无需大的代码改动。易于扩充易于扩充局部改进和整体升级只要保持局部改进和整体升级只要保持对外接口不变对外接口不变就不会影响到系就不会影响到系统的其他部分,在功能上对应用程序实现了统的其他部分,在功能上对应用程序实现了透明性透明性。使用简单使用简单对各种数据源使用对各种数据源使用统一的访问方式统一的访问方式,降低了用户参与程度。,降低了用户参与程度。2.4 续68数据库访问中间件优点2.4 续6869一种数据库访问中间件原型的构造方法一种数据库访问中间件原型的构造方法2.4 续DB DB DB DB 客户客户客户客户远远程程访访问问模模块块安安全全控控制制模模块块连接管理模块连接管理模块操作评价模块操作评价模块客户交互模块客户交互模块缓冲区缓冲区中间件中间件69一种数据库访问中间件原型的构造方法2.4 续DB DB 6970事务事务一个完整的事务是指一个一个完整的事务是指一个程序或程序段程序或程序段,在一个或多,在一个或多个资源上为完成某些功能的执行过程。个资源上为完成某些功能的执行过程。事务处理事务处理涉及操作系统、文件系统、编译语言、数据涉及操作系统、文件系统、编译语言、数据通信、数据库管理系统、应用软件等,是一个相当艰通信、数据库管理系统、应用软件等,是一个相当艰巨的任务,但是工作的任务可以通过巨的任务,但是工作的任务可以通过事务管理系统事务管理系统来来简化,可大大减少事务管理系统应用所需的编程量。简化,可大大减少事务管理系统应用所需的编程量。系统中的所有事务由一个系统中的所有事务由一个事务管理系统事务管理系统所管理,事务所管理,事务开始操作时被赋予一个唯一的开始操作时被赋予一个唯一的标识符标识符TID,在一个事,在一个事务的生命周期内此标识由事务管理系统唯一标识一个务的生命周期内此标识由事务管理系统唯一标识一个事务。事务。2.5 交易中间件70事务2.5 交易中间件7071交易中间件交易中间件TPM在开放系统环境下提供保证交易在开放系统环境下提供保证交易完整性完整性和数据和数据一致一致性性的一种环境平台。的一种环境平台。针对复杂环境下分布式应用的针对复杂环境下分布式应用的速度速度和和可靠性可靠性要求而要求而实现的。实现的。事务是对事务是对共享的系统资源共享的系统资源所完成的一件工作,它通所完成的一件工作,它通常是由一系列操作所组成。事务必须具有常是由一系列操作所组成。事务必须具有ACIDACID(原(原子性、一致性、隔离性、耐久性)属性。子性、一致性、隔离性、耐久性)属性。TPMTPM通过通过APIAPI向用户提供了一系列的服务,可简化应向用户提供了一系列的服务,可简化应用开发。用开发。产品:产品:BEABEA公司的公司的TuxeboTuxebo、IBMIBM公司的公司的CICSCICS和东方通和东方通科技公司的科技公司的TongEASYTongEASY等。等。2.5续71交易中间件TPM2.5续7172事务管理系统事务管理系统2.5 续应用程序(应用程序(AP)资源管理器资源管理器(RM)通信资源通信资源管理器管理器(CRM)事务管理器事务管理器(TM)TM APIXA+XARM APICRM APITCP/IP72事务管理系统2.5 续应用程序(AP)资源管理器通信资源7273交易中间件作用交易中间件作用n提供提供高效高效的处理能力的处理能力n简化简化应用系统开发应用系统开发n可以有效完成可以有效完成多服务进程多服务进程和和负载均衡负载均衡n能保证分布式交易的能保证分布式交易的完整性完整性n提高系统的提高系统的容错容错能力能力n减少系统的运行、维护减少系统的运行、维护工作量工作量2.5 续73交易中间件作用2.5 续7374交易中间件功能交易中间件功能n进程进程管理管理n交易交易优先级优先级管理管理n数据数据传输传输n均衡均衡负载负载n权限权限控制、安全管理控制、安全管理2.5 续74交易中间件功能2.5 续74
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!