中间件基本概念课件_第1页
中间件基本概念课件_第2页
中间件基本概念课件_第3页
中间件基本概念课件_第4页
中间件基本概念课件_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中 间 件 技 术1第1页,共74页。教材与参考书目教材: 中间件技术原理与应用 张云勇 清华大学出版社参考书: COM原理与应用 潘爱民 清华大学出版社 CORBA原理及应用 朱其亮 北京邮电大学出版社 精通EJB 美Ed Roman 电子工业出版社2第2页,共74页。第1章 中间件产生背景及分布式计算环境主要内容开放系统互操作性中间件3第3页,共74页。1.1开放系统与互操作性概述计算模式的发展过程基于主机的系统(分时共享、资源共享)两层Client/Server系统三层(n层)体系架构表示层 用户层业务逻辑层应用层数据层数据库服务器 基于Web的三层(N层)体系结构4第4页,共74页。1

2、.1续开放系统基本组成硬件 包括PC,工作站,大中型机,各式各样的 嵌入式设备,移动设备;软件 各类操作系统、应用软件;网络 各类网络结构、网络协议。开放系统面临的问题 远程性 并发行 无全局状态 部分失败 异步性 异质性 自主性 联合型 伸缩性 发展性 移动性5第5页,共74页。1.1续开放系统特点开放的:提供可移植性和协同工作;集成的:有助于对付异质性;灵活的:有助于对付移动性;模块化的:灵活性的基础;可联合的可管理的安全的透明的:支撑软件和硬件的异质性;满足服务质量需求6第6页,共74页。1.1续开放系统必具特性可移植性(Portability)可互操作性(Interoperabilit

3、y)可伸缩性(Scalability)易获得性(Availability)开放系统构造用轮廓勾划;轮廓由七个成分组成;对轮廓的各成分标准化,即成开放系统。7第7页,共74页。1.1续开放系统开放程度表 8第8页,共74页。1.1续互操作性本质:从异质环境(异种体系结构、异种操作系统、异种网络等)中获得资源的透明动用能力。 面向计算资源的互操作性 面向信息资源的互操作性(如数据库)定义:在一个由异质实体构成的网络环境中,当应用在网络的结点上运行时,它可以透明地动用网中其他结点上的资源,并借助这些资源与本结点上的资源共同来完成某个或某组任务。9第9页,共74页。1.1续互操作性定义:在一个由异质实

4、体构成的网络环境中,当应用在网络的结点上运行时,它可以透明地动用网中其他结点上的资源,并借助这些资源与本结点上的资源共同来完成某个或某组任务。本质:从异质环境(异种体系结构、异种操作系统、异种网络等)中获得资源的透明动用能力。 面向计算资源的互操作性 面向信息资源的互操作性(如数据库)10第10页,共74页。1.2中间件概述现代应用系统的基本特征分布 任务已不只是在单机上运行,而是由网络中多台计算机上的相关应用共同协作完成,需考虑网络传输、数据安全、数据一致性、同步等诸多问题;异构 计算机硬件、操作系统、网络协议、数据库系统以及开发工具种类繁多,需考虑数据表示、调用接口、处理方式等诸多问题;动

5、态协作 参与协作的应用允许位置透明性、迁移透明性、负载平衡性等需求。11第11页,共74页。1.2续应用1应用2应用3服务器1服务器2服务器312第12页,共74页。1.2续应用1应用2应用3服务器1服务器2服务器3中间件13第13页,共74页。1.2续应用软件中间件网络软件操作系统应用软件中间件网络软件操作系统可协同工作利用中间件进行协同工作的系统14第14页,共74页。1.2续*中间件定义中间件(Middleware)是一种软件,处于系统软件(操作系统和网络软件)与应用软件之间,它能使处于应用层中的各应用成分之间实现跨网络的协同工作(也就是互操作),这时允许各应用软件之下所涉及的“系统结构

6、、操作系统、通信协议、数据库和其它应用服务”各不相同。15第15页,共74页。应用软件中间件网络协议操作系统硬件平台应用软件中间件网络协议操作系统硬件平台DBMS两者内含有进行协同工作的应用成分中间件定义1.2续16第16页,共74页。1.2续*中间件组成1执行环境(Execution Environment)软件 如果一个网络的各个节点上安装了EE软件,各节点上的应用软件之间就可以实现相互合作。EE软件使各节点的下层设备对应用软件透明化了,EE软件是中间件中的主体部分。2应用开发(Application Development)工具AD工具用来帮助开发内含“透明动用对方”成分的应用软件,或改

7、造原有的无透明动用能力的应用软件。AD工具是中间件中的必备部分。17第17页,共74页。1.2续中间件的层次结构18第18页,共74页。1.2续中间件基本框架第四层应用接口(API)层中间件服务层(通信,控制,计算,管理,输出,信息等)应用平台层(Unix、NetWare、NT、VAX、OPENVMS等)传输协议层(TCP/IP、IPX/SPX、NetBIOS、OSI等)第三层第二层第一层中间件的基本功能框架结构19第19页,共74页。1.2续基于中间件的软件系统基本模型20第20页,共74页。1.2续中间件工作原理中间件服务器1服务器2服务器n客户机1客户机2客户机n服务器端客户端同/异构环

8、境21第21页,共74页。1.2续*中间件的基本分类数据访问中间件(DAM) 远程过程调用中间件(RPC)消息中间件(MOM)对象请求代理中间件(ORB)事务处理中间件(交易中间件,TPM)22第22页,共74页。中间件的发展情况1.2续23第23页,共74页。中间件的主要厂商第一梯队Oracle(BEA)、IBM、东方通科技,占70%以上份额;第二梯队Sun、中软、中创、微软等;第三梯队国内若干中小软件企业和系统集成企业。1.2续24第24页,共74页。1.2续*中间件的作用它提供了通道的功能,可保证应用系统数据的可靠传输;它起着桥梁的作用,达成异构应用资源之间的互联互通;它是分布式应用的集

9、成开发框架,促成企业分布式应用的有机集成;作为平台,它可有效实现分布应用的分阶段顺利部署;它起着过滤网的作用,可有力保护关键信息的安全。25第25页,共74页。*中间件的优越性:1.企业应用方面缩短应用开发周期减少项目开发风险应用程序质量可维护性增加产品吸引力2.应用程序方面透明地同其他应用程序交互与运行平台提供的网络通信服务无关具有良好的可靠性和可用性具有良好的可扩展性1.2续26第26页,共74页。中间件发展面临的问题不同厂商的实现很难互操作只提供了一部分平台的实现应用开发者要面临设计选择过分追求中间件功能的全面性过分强调选择国外产品不能准确认识中间件的作用1.2续27第27页,共74页。

10、*中间件技术发展趋势中间件的发展需要规范化应用需求导致技术格局多样化构件化和松散耦合底层的中间件持续走稳高层的中间件成为市场新宠新技术与产品的推出速度放缓实用化是重要的发展趋势1.2续28第28页,共74页。第2章 五大类中间件的工作机理主要内容2.1 远程过程调用中间件(RPCM)2.2 面向对象中间件(OOM)2.3 消息中间件(MOM)2.4 数据库访问中间件(DAM)2.5 交易中间件 (DTPM)29第29页,共74页。2.1远程过程调用中间件RPC背景在传统的编程概念中,过程是只能局限在本地运行的一段代码,主程序和过程之间的运行关系是本地调用关系本地过程调用LPC。LPC模式无法充

11、分利用网络上其他主机的资源,也无法提高代码在实体间的共享程度,使得主机资源大量浪费。RPC是对LPC的扩展。通过这种调用机制,程序员编写客户方应用时,可根据需要透明地调用位于远端服务器上的过程。30第30页,共74页。main().调用A.退出A().调用B.退出B().退出主程序过程A代码过程B代码机器1机器2机器3RPC调用模型2.1 续主程序子程序子程序31第31页,共74页。远程过程调用RPC概念RPC是从一台机器或一个进程调用另一台机器或另一个进程的服务或方法。远程过程调用是创建分布式应用的一种方法,来源于Unix操作系统的处理思想,被普遍认为是创建分布式应用的有效方法。从程序员的角

12、度,RPC采用常规的编程模式:程序代码调用远端过程并将结果返回。当使用RPC时,只需编写很少的网络程序代码,绝大部分代码由IDL(Interface Define Language)生成。2.1 续32第32页,共74页。IDL编译器结构2.1 续IDL规范IDL编译器头文件客户存根头文件对象实现框架图2-4 IDL编译器结构33第33页,共74页。远程过程调用中间件工作机理用中间件中的IDL对调用顺序加以描述;利用IDL编译器对这种定义和描述进行编译,从而生成支持客户机和服务器进行通信的管道;在服务器端,被调用的远端过程需单独编写,并被置入服务器端框架,同时要在远程过程调用中间件中进行注册,

13、以备调用。启动本地客户端存根存根捆绑远端过程名和参数利用网络传输到服务器端框架,从而实现数据格式的转换和参数的传递采用调用/返回模式具体地完成远端过程调用。2.1 续34第34页,共74页。RPC工作流程2.1 续客户运行客户继续执行服务调用过程调用服务过程执行过程返回请求返回RPC调用RPC返回Network图2-5 RPC工作流程RPC一般采用调用/返回模式,多用于应用程序之间的通信,采用同步方式。RPC程序之间的同步通信一般采用Request-Wait-Reply方式,因此RPC更适应小型简单而不需要采用异步通信方式的应用。35第35页,共74页。ClientSend(remote ca

14、ll pi()(发送“请求服务”信息)Receive(ans)接收回复信息server接收调用信息;抽取参数并分析;调用所指的过程;执行远程过程返回执行结果Send(ans)发送回复信息等待回复请求服务等待调用继续返回调用结果RPC的通信模型2.1 续36第36页,共74页。3 call work returnServer ProcessOP2 Server-stub OP3RPC Routinereceive transmit45678Local return Local callClient ProcessOP4 Client-stub OP1waitRPC Routinereceive

15、transmit12910RPC执行过程2.1 续37第37页,共74页。通信协议支持两种传输协议:TCP、UDPTCP:连接、可靠、低效。保证要么把调用传递到远程过程且接受应答,要么报告通信无法进行。UDP:无连接、不可靠、高效。使用UDP的远程过程调用也许会丢失或重复。2.1 续38第38页,共74页。RPC的语义Last-of-many:被调用的过程可能执行若干次,但规定其最后一次执行的结果作为返回结果。At-most-once:若调用者收到了回复消息,则称被调用的过程正确地完成了它的一次(仅仅一次)执行。At-least-once:远程调用过程至少执行一次,回复消息可能返回一次或多次。

16、Exactly-once:若服务器正常,则远程过程恰好执行一次,并返回一个调用结果。2.1 续39第39页,共74页。远程过程调用的特点客户/服务器模式客户端的应用调用一个位于远端服务器平台的进程或服务,RPC实际上是通过C/S方式实现的。数据封装性远端过程调用负责捆绑参数,实现不同平台之间参数的传递,发送参数到远端过程。同步性当客户机发出请求时,服务器进程处于运行状态。复杂性远程调用的实现环境可能要用系统级的任务来创建,但一旦完成,对程序员就是透明的了。2.1 续40第40页,共74页。远程过程调用的特点缺点:需要进行系统级的配置; RPC 并不支持对象。 CORBA的IIOP MTS的DC

17、OM Java的 sockets应用级协议的编码交换 EJB?RMI (Java Remote Method Protocol)优点:方便地实现不同平台之间的数据转换。 XDR(eXternal Data Representation) 2.1 续41第41页,共74页。RMI环境RMI(远程方法激活):在分布式程序中,其远程对象的方法能够被运行在不同主机上的其他Java虚拟机的方法调用。相对于过程调用级的RPC,RMI可以实现编程级对象之间的方法调用。本地与远程方法调用对象应用程序本地调用机器A对象对象对象机器B网络远程调用2.1 续42第42页,共74页。RMI体系结构远程引用层传输层Ja

18、va Virtual MachineClientStub远程引用层传输层Java Virtual MachineRemote ObjectSkeletonTCP2.1 续43第43页,共74页。RMI系统的目标支持对存在于不同Java虚拟机上对象的无缝的远程调用。支持服务器对客户的回调。把分布式对象模型自然地集成到Java语言里。把分布式对象模型和本地Java对象模型间的不同表面化。使编写可靠的分布式应用程序简单化。保留Java运行时环境提供的安全性。2.1 续44第44页,共74页。软件开发面临的问题:软件的开发、修改和维护变得更加困难。软件开发常常超期和超出预算。由于没有代码重用,新软件的

19、开发都是从零开始。结构化的软件开发方式一种自顶向下的开发方法,将整个系统分解成独立的模块,然后逐一实现这些模块的功能。缺点:完整的系统只能在开发完成后才能呈现全貌。如果在开始编程时发现设计中存在缺陷,那么整个设计将被重新构造。2.2 面向对象中间件45第45页,共74页。2.2 续面向对象的软件开发方式以一种直观的方法分析和构造系统;将整个系统抽象并模型化两种开发方法的区别结构化的方法:数据与功能是分离的;面向对象方法:数据和相关的功能捆绑在一起。46第46页,共74页。2.2 续开放式分布处理参考模型(ODP)起源ISO为了解决异种系统之间的互联和互通,提出了OSI-RM。为使分布式系统能处

20、理应用的分布,实现应用之间的互通和互操作而开发的各种标准,如OSF的DCE、OMG的CORBA、UI的ALTAS和DEC的NAS。从1987年起,在ISO/IEC和ITU的共同努力下,于1995年发布了开放式分布处理参考模型RM-ODP。RM-ODP不仅是一个一般标准,还是一个标准的标准。47第47页,共74页。对象中间件(对象请求代理ORB)ORB提供一种通信机制透明地在异构的通信环境中传递对象请求,各对象可以位于本地或远程机器,且对象之间的客户机/服务器的角色是可以互换的。ORB可以看作和编程语言无关的面向对象的RPC应用,被视为从面向对象过渡到分布式计算的强大推动力量。两大标准:OMG的

21、CORBA;Microsoft的COM/DCOM。产品:Borland公司的Visibroker、IBM公司的ComponentBroker和东方通科技公司的TongBrokerdeng。2.2 续48第48页,共74页。2.2续ODP通信模型相关概念通道(Channel):用于支持分布对象之间的透明交互。通道包括三部分:存根、绑定器和协议对象。存根(Stub):解决交互过程中的信息的封装和解封装问题;绑定器(Binder):维护计算对象之间的联系;协议对象(Protocol Object):处理实际的通信。49第49页,共74页。2.2续端系统资源相关概念结点(Node):在管理上独立的物理

22、机器;核(Nucleus):用来管理结点的机制;对象包(Capsule):对象的执行环境;对象串(Cluster):受共管和被共操作的对象集合。50第50页,共74页。客户基本工程对象客 户存 根客 户绑定器客户协议对象客户方服务器基本工程对象服务器绑定器服务器存 根服务器协议对象服务器方截-转器客户-服务器交互2.2续51第51页,共74页。消息中间件产生传统通信必备条件发送和接收应用程序同时在线;通过网络能同时通信,发送者和接受者需知道相互间程序的调用接口。实际情况:应用程序并不总是同时运行;网络并不总是可用的和可靠的;在所有者域对应用程序的改变,要求在其他域也作相应改变,不切实际。2.3

23、消息中间件(MOM)52第52页,共74页。消息中间件定义MOM (消息队列中间件/通信中间件)依据消息传送或消息队列的原理来工作。MOM能够简化应用之间数据的传输,提供可靠的、跨平台的消息传输手段。MOM支持同步和异步两种通信模式,其中异步通信模式是基于消息队列转发机制的。一般来说,消息队列广泛采用对等的分布式计算模型来实现分布式计算中的同步和异步交互。消息队列一般提供多协议支持、高端服务和其他系统管理服务,完成可靠的、可扩展的异构环境中的通信。2.3续53第53页,共74页。消息消息实质上是一个由用户定义的数据结构,由头信息和体信息组成。头消息是对消息结构的描述,对整条消息起控制作用,含消

24、息的属性及相关的系统信息,如消息标识、消息类型、目的队列名、日期时间等;其中目的队列名可表示成“队列名队列管理器名”的形式体信息主要是消息的应用数据,是应用程序通信的数据,其具体语义要由通信双方事先约定,对中间件来说是一串毫无意义的二进制字节串。种类:请求消息 应答消息 通知消息2.3续54第54页,共74页。消息中间件工作机理应用之间以一系列消息的方式进行通信。在发送者和接受者的传送过程中,为了避免在传递过程中消息被丢失,消息保存在队列中。MOM为消息接收者查看消息提供了一个缓冲区域,应用把消息发送到与接收者相关的队列中,如果发送者想及时得到反馈,它们就把接收返回消息的队列名包含在所有它们发

25、送的消息中。消息传递机制要保证将发送者的消息传送到目的地。在消息传递中,应用程序之间不必须建立直接的联系,从而实现消息传送的异步性。2.3续55第55页,共74页。消息中间件消息中间件能够简化应用之间数据的传输,提供可靠的、跨平台的消息传输手段,实现应用程序之间的协同。有两种基本的工作模型:消息队列消息传递(发布-订阅)缺点:不支持程序控制的传递。产品:东方通科技的TongLINK/Q、BEA的elink、DEC的MessageQ、IBM的MQSeries、Microsoft MSMQ等。2.3续56第56页,共74页。消息中间件产生消息中间件一般把工业标准TCP/IP协议作为基础。消息中间件

26、还遵循X/Open的分布式事务处理模型,适应于分布式计算环境多样化、用户数目规模化、业务逻辑复杂化的发展要求,实现消息位置无关性、用户透明性。2.3续NAPTCPIPX.25SLIPPPP应用层传输层网络层网络接口层57第57页,共74页。本地应用程序中间件本地系统系统管理队列管理器消息队列接口消息路由和排队消息通道代理网络消息中间件体系结构2.3续58第58页,共74页。消息中间件的功能无连接消息传递消息优先化有保障的消息传递事务处理消息动态队列创建消息路由不同硬件系统的集成跨软件平台的支持2.3续59第59页,共74页。Internet上实现数据库访问的方式公共网关接口CGI专用APIJD

27、BC与ODBC数据库引擎2.4 数据库访问中间件60第60页,共74页。数据库访问中间件在分布式系统中,支持应用程序和本地或异地的同构或异构数据源进行通信。通过提供一系列的编程接口,屏蔽不同网络协议,操作系统和数据库管理系统平台DBMS的差异,允许应用程序一致地访问数据源。技术最成熟,应用最广泛的一种中间件技术。典型例子ODBC。缺点:需要大量的数据通信。产品:Oracle公司的SQL Connect、Sybase公司的Open Server、BEA公司的Weblogic和中科院软件所的DataAccess等。2.4 续61第61页,共74页。三层结构的缺陷对连接没有充分利用对重复的数据库操作

28、没有优化远程访问不可靠 2.4 续数据存取中间件业务规则本地复制RemoteDBMSServerDBMSJDBCClientClientAppletSQL62第62页,共74页。数据库访问中间件主要功能同时管理多个客户机连接的多线程可以接收不同的厂家中立协议可以用一组管理数据操作的业务规则进行编程集中处理密集任务和将数据表达抽象到最高层分开客户机应用程序与数据库管理系统可以异步提供当前数据表或行的状态给客户机2.4 续63第63页,共74页。数据库访问中间件数据库访问中间件专门负责和完成对数据库访问操作的优化、用户连接数的管理、保证访问的安全性和可靠性,以及实现应用对来自不同厂商的数据库的访问

29、等,进而提高对数据库访问的效率。简而言之,数据库访问中间件指一切连接应用程序和数据库的软件。与一般的中间件一样,面向数据库的中间件允许开发人员通过单一的、定义良好的API访问另一台计算机上的数据库资源。2.4 续64第64页,共74页。数据库中间件访问方式直接访问应用程序像访问本地数据库一样可以直接访问和更新位于远端的数据库。数据库复制客户端缓存服务器端缓存2.4 续65第65页,共74页。数据库访问中间件类型本地中间件本地中间件是为特定的数据库设计的提供最佳的访问性能。当要改变数据库时,需要对应用程序进行很大的修改。呼叫层接口呼叫层接口为多个数据库提供了统一的界面。把一般通用的接口呼叫转换成任意的数据库本地语言,以便使对数据库发出请求的应用程序理解。数据库网关完成不同数据库模型的转换,能提供对大型系统内部数据的访问。2.4 续66第66页,共74页。几种常见数据库访问中间件ODBCOLE DBJDBC数据库引擎数据库网关2.4 续应用程序1应用程序2应用程序nODBC驱动程序管理器可装载的驱动程序Orac

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论