您好,欢迎访问三七文档
1中间件技术2教材与参考书目•教材:《中间件技术原理与应用》张云勇清华大学出版社•参考书:《COM原理与应用》潘爱民清华大学出版社《CORBA原理及应用》朱其亮北京邮电大学出版社《精通EJB》[美]EdRoman电子工业出版社3第1章中间件产生背景及分布式计算环境主要内容•开放系统•互操作性•中间件41.1开放系统与互操作性概述计算模式的发展过程•基于主机的系统(分时共享、资源共享)•两层Client/Server系统•三层(n层)体系架构表示层——用户层业务逻辑层——应用层数据层——数据库服务器•基于Web的三层(N层)体系结构51.1续开放系统基本组成•硬件包括PC,工作站,大中型机,各式各样的•嵌入式设备,移动设备;•软件各类操作系统、应用软件;•网络各类网络结构、网络协议。开放系统面临的问题⑴远程性⑵并发行⑶无全局状态⑷部分失败⑸异步性⑹异质性⑺自主性⑻联合型⑼伸缩性⑽发展性⑾移动性61.1续开放系统特点•⑴开放的:提供可移植性和协同工作;•⑵集成的:有助于对付异质性;•⑶灵活的:有助于对付移动性;•⑷模块化的:灵活性的基础;•⑸可联合的•⑹可管理的•⑺安全的•⑻透明的:支撑软件和硬件的异质性;•⑼满足服务质量需求71.1续开放系统必具特性•可移植性(Portability)•可互操作性(Interoperability)•可伸缩性(Scalability)•易获得性(Availability)开放系统构造•用轮廓勾划;•轮廓由AUSPICE七个成分组成;•对轮廓的各成分标准化,即成开放系统。81.1续开放系统开放程度表91.1续互操作性•本质:•从异质环境(异种体系结构、异种操作系统、异种网络等)中获得资源的透明动用能力。•⑴面向计算资源的互操作性•⑵面向信息资源的互操作性(如数据库)•定义:•在一个由异质实体构成的网络环境中,当应用在网络的结点上运行时,它可以透明地动用网中其他结点上的资源,并借助这些资源与本结点上的资源共同来完成某个或某组任务。101.1续互操作性•定义:•在一个由异质实体构成的网络环境中,当应用在网络的结点上运行时,它可以透明地动用网中其他结点上的资源,并借助这些资源与本结点上的资源共同来完成某个或某组任务。•本质:•从异质环境(异种体系结构、异种操作系统、异种网络等)中获得资源的透明动用能力。•⑴面向计算资源的互操作性•⑵面向信息资源的互操作性(如数据库)111.2中间件概述现代应用系统的基本特征•分布•任务已不只是在单机上运行,而是由网络中多台计算机上的相关应用共同协作完成,需考虑网络传输、数据安全、数据一致性、同步等诸多问题;•异构•计算机硬件、操作系统、网络协议、数据库系统以及开发工具种类繁多,需考虑数据表示、调用接口、处理方式等诸多问题;•动态协作•参与协作的应用允许位置透明性、迁移透明性、负载平衡性等需求。121.2续应用1应用2应用3服务器1服务器2服务器3131.2续应用1应用2应用3服务器1服务器2服务器3中间件141.2续应用软件中间件网络软件操作系统应用软件中间件网络软件操作系统可协同工作利用中间件进行协同工作的系统151.2续*中间件定义•中间件(Middleware)是一种软件,处于系统软件(操作系统和网络软件)与应用软件之间,它能使处于应用层中的各应用成分之间实现跨网络的协同工作(也就是互操作),这时允许各应用软件之下所涉及的“系统结构、操作系统、通信协议、数据库和其它应用服务”各不相同。16应用软件中间件网络协议操作系统硬件平台应用软件中间件网络协议操作系统硬件平台DBMS两者内含有进行协同工作的应用成分中间件定义1.2续171.2续*中间件组成1.执行环境(ExecutionEnvironment)软件•如果一个网络的各个节点上安装了EE软件,各节点上的应用软件之间就可以实现相互合作。EE软件使各节点的下层设备对应用软件透明化了,EE软件是中间件中的主体部分。2.应用开发(ApplicationDevelopment)工具•AD工具用来帮助开发内含“透明动用对方”成分的应用软件,或改造原有的无透明动用能力的应用软件。AD工具是中间件中的必备部分。18合作方B下层设备透明设施T2平台网络网络平台平台合作方C合作方A合作对象透明设施T11.2续中间件的层次结构191.2续中间件基本框架第四层应用接口(API)层中间件服务层(通信,控制,计算,管理,输出,信息等)应用平台层(Unix、NetWare、NT、VAX、OPENVMS等)传输协议层(TCP/IP、IPX/SPX、NetBIOS、OSI等)第三层第二层第一层中间件的基本功能框架结构201.2续基于中间件的软件系统基本模型211.2续中间件工作原理中间件服务器1服务器2服务器n客户机1客户机2客户机n…………服务器端客户端同/异构环境221.2续*中间件的基本分类•⑴数据访问中间件(DAM)•⑵远程过程调用中间件(RPC)•⑶消息中间件(MOM)•⑷对象请求代理中间件(ORB)•⑸事务处理中间件(交易中间件,TPM)23中间件的发展情况1.2续24中间件的主要厂商第一梯队Oracle(BEA)、IBM、东方通科技,占70%以上份额;第二梯队Sun、中软、中创、微软等;第三梯队国内若干中小软件企业和系统集成企业。1.2续251.2续*中间件的作用•⑴它提供了通道的功能,可保证应用系统数据的可靠传输;•⑵它起着桥梁的作用,达成异构应用资源之间的互联互通;•⑶它是分布式应用的集成开发框架,促成企业分布式应用的有机集成;•⑷作为平台,它可有效实现分布应用的分阶段顺利部署;•⑸它起着过滤网的作用,可有力保护关键信息的安全。26*中间件的优越性:1.企业应用方面•缩短应用开发周期•减少项目开发风险•应用程序质量可维护性•增加产品吸引力2.应用程序方面•透明地同其他应用程序交互•与运行平台提供的网络通信服务无关•具有良好的可靠性和可用性•具有良好的可扩展性1.2续27中间件发展面临的问题•⑴不同厂商的实现很难互操作•⑵只提供了一部分平台的实现•⑶应用开发者要面临设计选择•①过分追求中间件功能的全面性•②过分强调选择国外产品•③不能准确认识中间件的作用1.2续28*中间件技术发展趋势•⑴中间件的发展需要规范化•⑵应用需求导致技术格局多样化•⑶构件化和松散耦合•⑷底层的中间件持续走稳•⑸高层的中间件成为市场新宠•⑹新技术与产品的推出速度放缓•⑺实用化是重要的发展趋势1.2续29第2章五大类中间件的工作机理主要内容•2.1远程过程调用中间件(RPCM)•2.2面向对象中间件(OOM)•2.3消息中间件(MOM)•2.4数据库访问中间件(DAM)•2.5交易中间件(DTPM)302.1远程过程调用中间件RPC背景•在传统的编程概念中,过程是只能局限在本地运行的一段代码,主程序和过程之间的运行关系是本地调用关系——本地过程调用LPC。•LPC模式无法充分利用网络上其他主机的资源,也无法提高代码在实体间的共享程度,使得主机资源大量浪费。•RPC是对LPC的扩展。通过这种调用机制,程序员编写客户方应用时,可根据需要透明地调用位于远端服务器上的过程。31main(…)...调用A...退出A(…)...调用B...退出B(…).......退出主程序过程A代码过程B代码机器1机器2机器3RPC调用模型2.1续主程序子程序子程序32远程过程调用RPC概念•RPC是从一台机器或一个进程调用另一台机器或另一个进程的服务或方法。•远程过程调用是创建分布式应用的一种方法,来源于Unix操作系统的处理思想,被普遍认为是创建分布式应用的有效方法。•从程序员的角度,RPC采用常规的编程模式:程序代码调用远端过程并将结果返回。当使用RPC时,只需编写很少的网络程序代码,绝大部分代码由IDL(InterfaceDefineLanguage)生成。2.1续33IDL编译器结构2.1续IDL规范IDL编译器头文件客户存根头文件对象实现框架图2-4IDL编译器结构34远程过程调用中间件工作机理•①用中间件中的IDL对调用顺序加以描述;•②利用IDL编译器对这种定义和描述进行编译,从而生成支持客户机和服务器进行通信的管道;•③在服务器端,被调用的远端过程需单独编写,并被置入服务器端框架,同时要在远程过程调用中间件中进行注册,以备调用。•④启动本地客户端存根——〉存根捆绑远端过程名和参数——〉利用网络传输到服务器端框架,从而实现数据格式的转换和参数的传递•⑤采用调用/返回模式具体地完成远端过程调用。2.1续35RPC工作流程2.1续客户运行客户继续执行服务调用过程调用服务过程执行过程返回请求返回RPC调用RPC返回Network图2-5RPC工作流程RPC一般采用调用/返回模式,多用于应用程序之间的通信,采用同步方式。RPC程序之间的同步通信一般采用Request-Wait-Reply方式,因此RPC更适应小型简单而不需要采用异步通信方式的应用。36ClientSend(remotecallpi(…))(发送“请求服务”信息)Receive(ans)接收回复信息server接收调用信息;抽取参数并分析;调用所指的过程;执行远程过程返回执行结果Send(ans)发送回复信息等待回复请求服务等待调用继续返回调用结果RPC的通信模型2.1续373callworkreturnServerProcessOP2Server-stubOP3RPCRoutinereceivetransmit45678LocalreturnLocalcallClientProcessOP4Client-stubOP1waitRPCRoutinereceivetransmit12910RPC执行过程2.1续38通信协议支持两种传输协议:TCP、UDP•TCP:连接、可靠、低效。保证要么把调用传递到远程过程且接受应答,要么报告通信无法进行。•UDP:无连接、不可靠、高效。使用UDP的远程过程调用也许会丢失或重复。2.1续39RPC的语义•Last-of-many:被调用的过程可能执行若干次,但规定其最后一次执行的结果作为返回结果。•At-most-once:若调用者收到了回复消息,则称被调用的过程正确地完成了它的一次(仅仅一次)执行。•At-least-once:远程调用过程至少执行一次,回复消息可能返回一次或多次。•Exactly-once:若服务器正常,则远程过程恰好执行一次,并返回一个调用结果。2.1续40远程过程调用的特点•①客户/服务器模式•客户端的应用调用一个位于远端服务器平台的进程或服务,RPC实际上是通过C/S方式实现的。•②数据封装性•远端过程调用负责捆绑参数,实现不同平台之间参数的传递,发送参数到远端过程。•③同步性•当客户机发出请求时,服务器进程处于运行状态。•④复杂性•远程调用的实现环境可能要用系统级的任务来创建,但一旦完成,对程序员就是透明的了。2.1续41远程过程调用的特点•缺点:⑴需要进行系统级的配置;•⑵RPC并不支持对象。CORBA的IIOPMTS的DCOMJava的sockets——应用级协议的编码交换EJB?—〉RMI(JavaRemoteMethodProtocol)•优点:方便地实现不同平台之间的数据转换。•XDR(eXternalDataRepresentation)2.1续42RMI环境•RMI(远程方法激活):在分布式程序中,其远程对象的方法能够被运行在不同主机上的其他Java虚拟机的方法调用。•相对于过程调用级的RPC,RMI可以实现编程级对象之间的方法调用。本地与远程方法调用对象应用程序本地调用机器A对象对象对象机器B网络远程调用2.1续43RMI体系结构远程引用层传输层JavaVirtualMachineClientStub远程引用层传输层JavaVirtualMachineRemoteObjectSkeletonTCP2.1续44RMI系统的目标•⑴支持对存在于不同Java虚拟机上对象的无缝的远程调用。•⑵支持服务器对
本文标题:中间件基本概念
链接地址:https://www.777doc.com/doc-1741015 .html