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

下载本文档

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

文档简介

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

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

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

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

5、移透明性、负载平衡性等需求,12,1.2续,13,1.2续,14,1.2续,利用中间件进行协同工作的系统,15,1.2续,中间件定义 中间件(middleware)是一种软件,处于系统软件(操作系统和网络软件)与应用软件之间,它能使处于应用层中的各应用成分之间实现跨网络的协同工作(也就是互操作),这时允许各应用软件之下所涉及的“系统结构、操作系统、通信协议、数据库和其它应用服务”各不相同,16,应用软件,中间件,网络协议,操作系统,硬件平台,应用软件,中间件,网络协议,操作系统,硬件平台,dbms,两者内含有进行协同工作的应用成分,中间件定义,1.2续,17,1.2续,中间件组成 1执行环境(

6、execution environment)软件 如果一个网络的各个节点上安装了ee软件,各节点上的应用软件之间就可以实现相互合作。ee软件使各节点的下层设备对应用软件透明化了,ee软件是中间件中的主体部分。 2应用开发(application development)工具 ad工具用来帮助开发内含“透明动用对方”成分的应用软件,或改造原有的无透明动用能力的应用软件。ad工具是中间件中的必备部分,18,1.2续,中间件的层次结构,19,1.2续,中间件基本框架,20,1.2续,基于中间件的软件系统基本模型,21,1.2续,中间件工作原理,22,1.2续,中间件的基本分类 数据访问中间件(dam

7、) 远程过程调用中间件(rpc) 消息中间件(mom) 对象请求代理中间件(orb) 事务处理中间件(交易中间件,tpm,23,中间件的发展情况,1.2续,24,中间件的主要厂商 第一梯队 oracle(bea)、ibm、东方通科技,占70%以上份额; 第二梯队 sun、中软、中创、微软等; 第三梯队 国内若干中小软件企业和系统集成企业,1.2续,25,1.2续,中间件的作用 它提供了通道的功能,可保证应用系统数据的可靠传输; 它起着桥梁的作用,达成异构应用资源之间的互联互通; 它是分布式应用的集成开发框架,促成企业分布式应用的有机集成; 作为平台,它可有效实现分布应用的分阶段顺利部署; 它起

8、着过滤网的作用,可有力保护关键信息的安全,26,中间件的优越性: 1.企业应用方面 缩短应用开发周期 减少项目开发风险 应用程序质量可维护性 增加产品吸引力,2.应用程序方面 透明地同其他应用程序交互 与运行平台提供的网络通信服务无关 具有良好的可靠性和可用性 具有良好的可扩展性,1.2续,27,中间件发展面临的问题 不同厂商的实现很难互操作 只提供了一部分平台的实现 应用开发者要面临设计选择 过分追求中间件功能的全面性 过分强调选择国外产品 不能准确认识中间件的作用,1.2续,28,中间件技术发展趋势 中间件的发展需要规范化 应用需求导致技术格局多样化 构件化和松散耦合 底层的中间件持续走稳

9、 高层的中间件成为市场新宠 新技术与产品的推出速度放缓 实用化是重要的发展趋势,1.2续,29,第2章 五大类中间件的工作机理,主要内容 2.1 远程过程调用中间件(rpcm) 2.2 面向对象中间件(oom) 2.3 消息中间件(mom) 2.4 数据库访问中间件(dam) 2.5 交易中间件 (dtpm,30,2.1远程过程调用中间件,rpc背景 在传统的编程概念中,过程是只能局限在本地运行的一段代码,主程序和过程之间的运行关系是本地调用关系本地过程调用lpc。 lpc模式无法充分利用网络上其他主机的资源,也无法提高代码在实体间的共享程度,使得主机资源大量浪费。 rpc是对lpc的扩展。通

10、过这种调用机制,程序员编写客户方应用时,可根据需要透明地调用位于远端服务器上的过程,31,main() . . . 调用a . . . 退出,a() . . . 调用b . . . 退出,b() . . . . . . . 退出,rpc调用模型,2.1 续,32,远程过程调用rpc概念 rpc是从一台机器或一个进程调用另一台机器或另一个进程的服务或方法。 远程过程调用是创建分布式应用的一种方法,来源于unix操作系统的处理思想,被普遍认为是创建分布式应用的有效方法。 从程序员的角度,rpc采用常规的编程模式:程序代码调用远端过程并将结果返回。当使用rpc时,只需编写很少的网络程序代码,绝大部分

11、代码由idl(interface define language)生成,2.1 续,33,idl编译器结构,2.1 续,34,远程过程调用中间件工作机理 用中间件中的idl对调用顺序加以描述; 利用idl编译器对这种定义和描述进行编译,从而生成支持客户机和服务器进行通信的管道; 在服务器端,被调用的远端过程需单独编写,并被置入服务器端框架,同时要在远程过程调用中间件中进行注册,以备调用。 启动本地客户端存根存根捆绑远端过程名和参数利用网络传输到服务器端框架,从而实现数据格式的转换和参数的传递 采用调用/返回模式具体地完成远端过程调用,2.1 续,35,rpc工作流程,2.1 续,rpc一般采用

12、调用/返回模式,多用于应用程序之间的通信,采用同步方式。 rpc程序之间的同步通信一般采用request-wait-reply方式,因此rpc更适应小型简单而不需要采用异步通信方式的应用,36,rpc的通信模型,2.1 续,37,rpc执行过程,2.1 续,38,通信协议 支持两种传输协议:tcp、udp tcp:连接、可靠、低效。保证要么把调用传递到远程过程且接受应答,要么报告通信无法进行。 udp:无连接、不可靠、高效。使用udp的远程过程调用也许会丢失或重复,2.1 续,39,rpc的语义 last-of-many:被调用的过程可能执行若干次,但规定其最后一次执行的结果作为返回结果。 a

13、t-most-once:若调用者收到了回复消息,则称被调用的过程正确地完成了它的一次(仅仅一次)执行。 at-least-once:远程调用过程至少执行一次,回复消息可能返回一次或多次。 exactly-once:若服务器正常,则远程过程恰好执行一次,并返回一个调用结果,2.1 续,40,远程过程调用的特点 客户/服务器模式 客户端的应用调用一个位于远端服务器平台的进程或服务,rpc实际上是通过c/s方式实现的。 数据封装性 远端过程调用负责捆绑参数,实现不同平台之间参数的传递,发送参数到远端过程。 同步性 当客户机发出请求时,服务器进程处于运行状态。 复杂性 远程调用的实现环境可能要用系统级

14、的任务来创建,但一旦完成,对程序员就是透明的了,2.1 续,41,远程过程调用的特点 缺点:需要进行系统级的配置; rpc 并不支持对象。 corba的iiop mts的dcom java的 sockets应用级协议的编码交换 ejb?rmi (java remote method protocol) 优点:方便地实现不同平台之间的数据转换。 xdr(external data representation,2.1 续,42,rmi环境 rmi(远程方法激活):在分布式程序中,其远程对象的方法能够被运行在不同主机上的其他java虚拟机的方法调用。 相对于过程调用级的rpc,rmi可以实现编程级

15、对象之间的方法调用,本地与远程方法调用,2.1 续,43,rmi体系结构,2.1 续,44,rmi系统的目标 支持对存在于不同java虚拟机上对象的无缝的远程调用。 支持服务器对客户的回调。 把分布式对象模型自然地集成到java语言里。 把分布式对象模型和本地java对象模型间的不同表面化。 使编写可靠的分布式应用程序简单化。 保留java运行时环境提供的安全性,2.1 续,45,软件开发面临的问题: 软件的开发、修改和维护变得更加困难。 软件开发常常超期和超出预算。 由于没有代码重用,新软件的开发都是从零开始。 结构化的软件开发方式 一种自顶向下的开发方法,将整个系统分解成独立的模块,然后逐

16、一实现这些模块的功能。 缺点:完整的系统只能在开发完成后才能呈现全貌。如果在开始编程时发现设计中存在缺陷,那么整个设计将被重新构造,2.2 面向对象中间件,46,2.2 续,面向对象的软件开发方式 以一种直观的方法分析和构造系统; 将整个系统抽象并模型化 两种开发方法的区别 结构化的方法:数据与功能是分离的; 面向对象方法:数据和相关的功能捆绑在一起,47,2.2 续,开放式分布处理参考模型(odp)起源 iso为了解决异种系统之间的互联和互通,提出了osi-rm。 为使分布式系统能处理应用的分布,实现应用之间的互通和互操作而开发的各种标准,如osf的dce、omg的corba、ui的alta

17、s和dec的nas。 从1987年起,在iso/iec和itu的共同努力下,于1995年发布了开放式分布处理参考模型rm-odp。 rm-odp不仅是一个一般标准,还是一个标准的标准,48,对象中间件(对象请求代理orb) orb提供一种通信机制透明地在异构的通信环境中传递对象请求,各对象可以位于本地或远程机器,且对象之间的客户机/服务器的角色是可以互换的。 orb可以看作和编程语言无关的面向对象的rpc应用,被视为从面向对象过渡到分布式计算的强大推动力量。 两大标准:omg的corba;microsoft的com/dcom。 产品:borland公司的visibroker、ibm公司的com

18、ponentbroker和东方通科技公司的tongbrokerdeng,2.2 续,49,2.2续,odp通信模型相关概念 通道(channel):用于支持分布对象之间的透明交互。 通道包括三部分:存根、绑定器和协议对象。 存根(stub):解决交互过程中的信息的封装和解封装问题; 绑定器(binder):维护计算对象之间的联系; 协议对象(protocol object):处理实际的通信,50,2.2续,端系统资源相关概念 结点(node):在管理上独立的物理机器; 核(nucleus):用来管理结点的机制; 对象包(capsule):对象的执行环境; 对象串(cluster):受共管和被共

19、操作的对象集合,51,2.2续,52,消息中间件产生 传统通信必备条件 发送和接收应用程序同时在线; 通过网络能同时通信,发送者和接受者需知道相互间程序的调用接口。 实际情况: 应用程序并不总是同时运行; 网络并不总是可用的和可靠的; 在所有者域对应用程序的改变,要求在其他域也作相应改变,不切实际,2.3消息中间件(mom,53,消息中间件定义 mom (消息队列中间件/通信中间件)依据消息传送或消息队列的原理来工作。 mom能够简化应用之间数据的传输,提供可靠的、跨平台的消息传输手段。 mom支持同步和异步两种通信模式,其中异步通信模式是基于消息队列转发机制的。 一般来说,消息队列广泛采用对

20、等的分布式计算模型来实现分布式计算中的同步和异步交互。 消息队列一般提供多协议支持、高端服务和其他系统管理服务,完成可靠的、可扩展的异构环境中的通信,2.3续,54,消息 消息实质上是一个由用户定义的数据结构,由头信息和体信息组成。 头消息是对消息结构的描述,对整条消息起控制作用,含消息的属性及相关的系统信息,如消息标识、消息类型、目的队列名、日期时间等;其中目的队列名可表示成“队列名队列管理器名”的形式 体信息主要是消息的应用数据,是应用程序通信的数据,其具体语义要由通信双方事先约定,对中间件来说是一串毫无意义的二进制字节串。 种类:请求消息 应答消息 通知消息,2.3续,55,消息中间件工

21、作机理 应用之间以一系列消息的方式进行通信。在发送者和接受者的传送过程中,为了避免在传递过程中消息被丢失,消息保存在队列中。 mom为消息接收者查看消息提供了一个缓冲区域,应用把消息发送到与接收者相关的队列中,如果发送者想及时得到反馈,它们就把接收返回消息的队列名包含在所有它们发送的消息中。 消息传递机制要保证将发送者的消息传送到目的地。 在消息传递中,应用程序之间不必须建立直接的联系,从而实现消息传送的异步性,2.3续,56,消息中间件 消息中间件能够简化应用之间数据的传输,提供可靠的、跨平台的消息传输手段,实现应用程序之间的协同。 有两种基本的工作模型: 消息队列 消息传递(发布-订阅)

22、缺点:不支持程序控制的传递。 产品:东方通科技的tonglink/q、bea的elink、dec的messageq、ibm的mqseries、microsoft msmq等,2.3续,57,消息中间件产生 消息中间件一般把工业标准tcp/ip协议作为基础。 消息中间件还遵循x/open的分布式事务处理模型,适应于分布式计算环境多样化、用户数目规模化、业务逻辑复杂化的发展要求,实现消息位置无关性、用户透明性,2.3续,58,消息中间件体系结构,2.3续,59,消息中间件的功能 无连接消息传递 消息优先化 有保障的消息传递 事务处理消息 动态队列创建 消息路由 不同硬件系统的集成 跨软件平台的支持

23、,2.3续,60,internet上实现数据库访问的方式 公共网关接口cgi 专用api jdbc与odbc 数据库引擎,2.4 数据库访问中间件,61,数据库访问中间件 在分布式系统中,支持应用程序和本地或异地的同构或异构数据源进行通信。 通过提供一系列的编程接口,屏蔽不同网络协议,操作系统和数据库管理系统平台dbms的差异,允许应用程序一致地访问数据源。 技术最成熟,应用最广泛的一种中间件技术。 典型例子odbc。 缺点:需要大量的数据通信。 产品:oracle公司的sql connect、sybase公司的open server、bea公司的weblogic和中科院软件所的dataacc

24、ess等,2.4 续,62,三层结构的缺陷 对连接没有充分利用 对重复的数据库操作没有优化 远程访问不可靠,2.4 续,63,数据库访问中间件主要功能 同时管理多个客户机连接的多线程 可以接收不同的厂家中立协议 可以用一组管理数据操作的业务规则进行编程 集中处理密集任务和将数据表达抽象到最高层 分开客户机应用程序与数据库管理系统 可以异步提供当前数据表或行的状态给客户机,2.4 续,64,数据库访问中间件 数据库访问中间件专门负责和完成对数据库访问操作的优化、用户连接数的管理、保证访问的安全性和可靠性,以及实现应用对来自不同厂商的数据库的访问等,进而提高对数据库访问的效率。 简而言之,数据库访

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

温馨提示

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

评论

0/150

提交评论