《分布式系统:概念与设计》一2.3.3 相关的中间件解决方案

2.3.3 相关的中间件解决方案

第1章引入了中间件,在2.3.2节讨论分层体系结构时又重温了中间件。中间件的任务是为分布式系统的开发提供一个高层的编程抽象,并且通过分层,对底层基础设施中的异构性提供抽象,从而提升互操作性和可移植性。中间件解决方案是基于2.3.1节引入的体系结构模型,也支持更复杂的体系结构模式。58本节我们简要回顾一下现在存在的中间件类别,为在本书的其他部分进一步研究这些解决方案做好准备。
中间件的类别 远程过程调用包,(如Sun RPC,第5章)和组通信(如ISIS,第6章和第18章)属于最早的中间件实例。从那以后,出现了大量不同风格的中间件,大部分都基于上面介绍的体系结构模型。我们在图2-12中给出了中间件平台的分类,其中交叉引用了其他章,那些章更详细地讨论了不同种类的中间件。需要强调的是分类并不精确,现代中间件平台试图提供混合的解决方案。例如,许多分布式对象平台提供分布式事件服务,来补充传统的对远程方法调用的支持。类似地,出于互操作性的原因,许多基于组件的平台(和平台的其他分类)也支持Web服务和标准。从中间件标准和今天可用的技术的角度来看,还应该强调这个分类并不完整,其目的在于给出中间件的主要类别。其他(未给出的)解决方案是比较特定的,例如,特定于提供某一通信范型,如消息传递、远程过程调用、分布式共享内存、元组空间或组通信。
图2-12中的中间件的顶层分类是根据通信实体和相关通信范型而确定的,遵循五个主要的体系结构模型:分布式对象、分布式组件、发布-订阅系统、消息队列和Web服务。对等系统是这些类别的补充,基于2.3.1节讨论的协作方法,对等系统是中间件一个相当独立的分支。应用服务器,显示为分布式组件的子类,也提供对三层体系结构的直接支持。特别地,应用服务器提供了结构以支持应用逻辑和数据存储的分离,以及对其他特性(如安全性和可靠性)的支持。详细细节将延后到第8章讨论。
除了编程抽象之外,中间件也能提供分布式系统的基础设施服务,供应用程序或其他服务使用。这些基础设施服务与中间件提供的分布式编程模式是紧密绑定的。例如,CORBA(第8章)提供给应用一系列的CORBA服务,包括对程序安全和可靠的支持。如上所述和在第8章中的进一步讨论,应用服务器也提供对这些服务的内在支持。

中间件的限制 许多分布式应用完全依赖中间件提供的服务来支持应用的通信和数据共享需求。例如,一个适合客户-服务器模型的应用,如一个名字和地址的数据库,可以依赖只提供远程方法调用的中间件。
通过依靠中间件支持的开发,能大大简化分布式系统的编程,但系统可依赖性的一些方面要求应用层面的支持。
考虑从发送者的邮件主机传递大量的电子邮件消息到接收者的邮件主机。乍一看,这是一个TCP数据传输协议的简单应用(见第3章的相关讨论)。但考虑这样的问题:用户试图在一个可能不可靠的网络上传递非常大的文件。TCP提供一些错误检测和更正,但它不能从严重的网络中断中恢复。因此,邮件传递服务增加了另一层次的容错,维护一个进展记录,如果原来的TCP连接断开了,用一个新的TCP连接继续传递。
Saltzer、Reed和Clarke的一篇经典论文[Saltzer et al.1984]对分布式系统的设计给出了类似的、有价值的观点,他们称之为“端到端争论”。可将他们的陈述表述为:
一些与通信相关的功能,可以只依靠通信系59
 ~
60统终点(end point)的应用的知识和帮助,即可完整、可靠地实现。因此,将这些功能作为通信系统的特征不总是明智的(虽然由通信系统提供一个不完全版本的功能有时对性能提高是有用的)。
可以看出他们的论点与通过引入适当的中间件层将所有通信活动从应用编程中抽象出来的观点是相反的。
争论的关键是分布式程序正确的行为在很多层面上依赖检查、错误校正机制和安全手段,其中有些要求访问应用的地址空间的数据。任何企图在通信系统中单独完成的检查将只能保证部分正确性。因此,可能在应用程序中重复同样的任务,降低了编程效率,更重要的是增加了不必要的复杂性并要执行冗余的计算。
这里不进一步介绍他们的争论细节,强烈推荐读者阅读前面提到的那篇论文——那里有许多说明的实例。原文作者之一最近指出:争论给互联网设计带来的实质性好处最近面临着为满足当前应用需求而转向网络服务专门化的危险[www.reed.com]。
这个争论给中间件设计者带来一个实际的两难困境,而且给定当代分布式系统中种类繁多的应用(和相关的环境条件)(见第1章),这些困难与日俱增。本质上,底层中间件行为与一个给定应用或应用集的需求和相关环境上下文(如底层网络的状态和风格)有关。这个看法推动了对上下文感知和中间件自适应解决方案的兴趣,见Kon等人的讨论[2002]。

时间: 2024-10-23 22:11:09

《分布式系统:概念与设计》一2.3.3 相关的中间件解决方案的相关文章

《分布式系统:概念与设计》一第3节 练习

前 言 在互联网和Web持续发展并且对我们社会的每个方面都产生影响的时候,这本教材的第5版问世了.本书的介绍性章节提到互联网和Web对诸多(如金融.商业.艺术.娱乐等)应用领域的影响以及对信息社会的普遍影响.它还强调了诸如Web搜索和多人在线游戏等应用领域中的需求.从分布式系统的角度出发,这些开发在应用的范围.多个现代系统所支持的工作负载和系统大小等方面正在对底层系统架构提出实质性的新需求.重要的趋势包括网络技术上不断增加的多样性和普遍性(包括不断增加的无线网络的重要性).移动和无处不在计算元素

《分布式系统:概念与设计》一2.3.2 体系结构模式

2.3.2 体系结构模式 体系结构模式构建在上述讨论过的相对原始的体系结构元素之上,提供组合的.重复出现的结构,这些结构在给定的环境中能运行良好.它们未必是完整的解决方案,但当与其他模式组合时,它们会更好地引导设计者给出一个给定问题域的解决方案. 这是一个大的主题,已经有了许多用于分布式系统的体系结构模式.本节中,我们给出分布式系统中几个关键的体系结构模型,包括分层体系结构(layering architecture).层次化体系结构(tiered architecture)和瘦客户相关的概念(

《分布式系统:概念与设计》一1.2 分布式系统的例子

1.2 分布式系统的例子 本节给出能激发读者学习积极性的当代分布式系统的例子,用于说明分布式系统所扮演的无处不在的角色和相关应用的多样性. 如1.1节所提及的那样,网络无处不在,成为我们现在认为理所当然的日常服务(互联网和相关的万维网.Web搜索.在线游戏.电子邮件.社会网络.电子商务,等等)的基础.为了进一步说明这一点,可参考图1-1,它描述了一系列所选的关键商务或社会应用部门,强调了相关的分布式系统技术已公认或新出现的应用. 正如所看到的,分布式系统包含近些年许多最重要的技术发展,因此理解底

《分布式系统:概念与设计》一2.5 小结

2.5 小结 如2.2节所展示的,从底层物理特性角度,例如,系统的规模.系统内在的异构性.从特性角度(如安全)提供端到端解决方案的实际需求等,分布式系统的复杂性正在增加.这使得从模型角度理解和探讨分布式系统显得更加重要.本章考虑了底层物理模型,并深度考察了支撑分布式系统的体系结构模型和基础模型.本章从所包含的体系结构模型角度给出了描述分布式系统的方法,明晰了这个设计空间的内涵,包括查看什么在通信以及这些实体如何通信等核心问题,以及基于给定物理基础设施,考虑每个元素可以扮演的角色与合适的放置策略,

《分布式系统:概念与设计》一2.2 物理模型

2.2 物理模型 物理模型是从计算机和所用网络技术的特定细节中抽象出来的分布式系统底层硬件元素的表示.基线物理模型:在第1章中,分布式系统被定义成其位于联网计算机上的硬件或软件组件仅通过消息传递进行通信和协调动作的系统.这引出分布式系统的最小物理模型,最小物理模型是一组可扩展的计算机结点,这些结点通过计算机网络相互连接进行所需的消息传递.在这个基线模型之上,我们能有效地识别出三代分布式系统.早期的分布式系统:这样的系统出现在20世纪70年代晚期和80年代早期,随着局域网技术如以太网(参见3.5节

《PADS 9.5电路设计与仿真从入门到精通》——第一章 绪论 1.1 PCB的基本概念及设计工具

第一章 绪论 PADS 9.5电路设计与仿真从入门到精通 本章主要介绍PADS的基本概念及特点,包括PCB设计的一般原则.基本步骤.标准规范等.着重介绍了美国Mentor Graphics公司的PCB设计软件:PADS 9.5,包括了PADS 9.5的发展过程以及它的新特点.PADS 9.5是一款非常优秀的PCB设计软件,它具有完整强大的PCB绘制工具,界面和操作十分简洁,希望用户好好学习本书,以便更加方便地使用PADS 9.5软件. 1.1 PCB的基本概念及设计工具 PADS 9.5电路设计

网页导航的设计与用户行为紧密相关

文章描述:导航的设计与用户行为紧密相关,可以在不同的情境下提供不同的导航.但也有些网站的信息量极大,分类复杂,如大型电商类网站可能会出现多重信息分类维度以及分类与标签配合使用的情景,导致了导航的信息展现形式多样,加之导航还与交互逻辑和视觉样式有很大的关系,所以 导航到底有多重要?它只是简单的指路牌吗?当然不是.导航在网站架构中占据重要的位置,它决定了网站的信息范围.分类及获取路径.好的导航设计将直接提升网站的可用性,进而提升品牌形象和网站的可信度.所以如何让进入网站的用户顺利地甚至是不知不觉地"

《分布式系统:概念与设计》一练习

练习 1.1 列出能被共享的五种类型的硬件资源和五种类型的数据或软件资源,并举出它们在实际的分布式系统中发生共享的例子. 1.2 在不参考外部时间源的情况下,通过本地网络连接的两台计算机的时钟如何同步?什么因素限制了你描述的过程的准确性?由互联网连接的大量的计算机的时钟是如何同步的?讨论该过程的准确性. 1.3 考虑1.2.2节讨论的大型多人在线游戏的实现策略.采用单一服务器方法表示多个玩家游戏状态的好处是什么?这存在什么问题以及如何解决? 1.4 一个用户随身携带可以无线连网的PDA,来到一个

《分布式系统:概念与设计》一2.3.1 体系结构元素

2.3.1 体系结构元素 为了理解一个分布式系统的基础构建块,有必要考虑下面四个关键问题: 在分布式系统中进行通信的实体是什么? 它们如何通信,特别是使用什么通信范型? 它们在整个体系结构中扮演什么(可能改变的)角色,承担什么责任? 它们怎样被映射到物理分布式基础设施上(它们被放置在哪里)? 通信实体 上述前两个问题是理解分布式系统的关键:什么是通信和这些实体如何相互通信为分布式系统开发者定义了一个丰富的设计空间.它对从面向系统和面向问题的角度解决第一个问题是有帮助的. 从系统的观点,回答通常是