1.3 分布式系统的趋势
分布式系统正在经历巨大的变化,这可追溯到一系列有影响力的趋势:
- 出现了泛在联网技术;
- 出现了无处不在计算,它伴随着分布式系统中支持用户移动性的意愿;
- 对多媒体设备的需求增加;
- 把分布式系统作为一个设施。
1.3.1 泛在联网和现代互联网
现代互联网是一个巨大的由多种类型计算机网络互连的集合,网络的类型一直在增加,现在包括多种多样的无线通信技术,如WiFi、WiMAX、蓝牙(参见第3章)和第三代移动电话网络。最终结果是联网已成为一个泛在的资源,设备可以在任何时间、任何地方被连接(如果愿意)。
图1-3举例说明了互联网的部分典型组成。互联网上的计算机程序通过传递消息进行交互,采用了一种公共的通信手段。互联网通信机制(互联网协议)的设计和构造是一项重大的技术成果,它使得一个在某处运行的程序能给另一个地方的程序发送消息。
互联网也是一个超大的分布式系统。它使得世界各地的用户都能利用诸如万维网、电子邮件和文件传送等服务。(有时,Web被不正确地等同于互联网。)服务集是开放的,它能够通过服务器计算机和新的服务的增加而被扩展。图1-3还展示了许多企业内部网——由公司和其他组织操作的子网,通常受防火墙的保护。防火墙的作用是保护企业内部网,防止未授权的消息进出网络。8防火墙是通过过滤到达消息和外发消息来实现的。可以在源或目的地进行过滤,或者防火墙可以仅允许与电子邮件和Web访问相关的消息进出它保护的企业内部网。互联网服务提供商(Internet Service Provider,ISP)是给个体用户和小型组织提供宽带链接和其他类型连接的公司,使他们能获得互联网上任何地方的服务;同时提供诸如电子邮件和Web托管等本地服务。企业内部网通过主干网实现互相链接。主干网是具有高传送能力的网络链接,通常采用卫星连接、光缆和其他高带宽线路。
一些组织并不希望将他们的内部网络连接到互联网。例如,警察局与其他安全和法律执行机构可能至少有一些内部网与外部世界隔离(没有与互联网的任何物理连接——可能是最有效的防火墙)。当内部用户和外部用户之间需要资源共享时,对服务的合法访问受到防火墙的阻碍,也会在分布式系统中出现问题。因此,必须经常用更细粒度的机制和策略(见第11章的讨论)作为防火墙的补充。
互联网和其支持的服务的实现,使得必须开发实用解决方案来解决分布式系统中的许多问题(包括在1.5节中定义的大多数问题)。本书将着重阐述这些解决方案,并在适当的时候说明它们的适用范围和局限性。9
1.3.2 移动和无处不在计算
设备小型化和无线网络方面的技术进步已经逐步使得小型和便携式计算设备集成到分布式系统中。这些设备包括:
- 笔记本电脑。
- 手持设备,包括移动电话、智能电话、GPS设备、传呼机、个人数字助理(PDA)、摄像机和数码相机。
- 可穿戴设备,如具有类似PDA功能的智能手表。
- 嵌入在家电(如洗衣机、高保真音响系统、汽车和冰箱)中的设备。
这些设备大多数具有可携带性,再加上它们可以在不同地方方便地连接到网络的能力,使得移动计算成为可能。移动计算是指用户在移动或访问某个非常规环境时执行计算任务的性能。在移动计算中,远离其本地的企业内部网(指工作环境或其住处的企业内部网)的用户也能通过他们携带的设备访问资源。他们能继续访问互联网,继续访问在他们本地内部企业网上的资源。为用户在其移动时提供资源(如打印机)或方便地利用附近的销售点的情形也在不断增加。后者也称为位置感知或上下文感知的计算。移动性为分布式系统引入了一系列的挑战,包括需要处理变化的连接甚至断连、需要在设备移动时维持操作(见1.5.7节关于移动透明性的讨论)。
无处不在计算是指对在用户的物理环境(包括家庭、办公室和其他自然环境)中存在的多个小型、便宜的计算设备的利用。术语“无处不在”意指小型计算设备最终将在不会引人注意的日常物品中普及。也就是说,它们的计算行为将透明地紧密捆绑到这些日常物品的物理功能上。
各处的计算机只有在它们能相互通信时才变得有用。例如,如果用户能通过电话或一个“通用远程控制”设备控制家里的洗衣机和娱乐系统,那么用户会觉得很方便。而洗衣机在完成洗衣后能通过一个智能徽章或电话通知用户,也会让人觉得很方便。
无处不在计算和移动计算有交叉的地方,因为从原理上说,移动用户能受益于遍布各处的计算机。但一般而言,它们是不同的。无处不在计算能让待在家里或医院这样单一的环境中的用户受益。类似地,即使移动计算只涉及常见的、分立的计算机和设备(如笔记本电脑和打印机),它还是有优势的。
图1-4显示了一个正在访问一个组织的用户。该图显示出用户本地的内部网和用户正在访问的内部网。两个企业内部网都连接到互联网。
用户可以使用三种无线连接。笔记本电脑可以连接到被访问组织的无线LAN。无线LAN覆盖方圆几百米的范围(即建筑物的一层)。10它通过网关或访问点连接到被访问组织的企业内部网。用户还有一部连到互联网的移动电话,电话可以访问Web和其他互联网服务,只是所显示的内容受限于小的显示屏幕,电话也可以通过内置的GPS功能提供位置信息。最后,用户携带一台数码相机,它能通过一个个域无线网络(其覆盖范围大约为10m)与打印机这样的设备通信。
利用适当的系统基础设施,用户能在其访问地用他们携带的设备完成一些简单的任务。当用户到达其访问的地方时,他能通过移动电话从Web服务器上取得最新的股票价格,也能使用内置的GPS和路由寻找软件来获得到达目标位置的方向。在与访问单位开会时,通过把数码相机的照片直接发送到会议室的一台可用的(本地)打印机或投影机上,用户就能展示最近的照片。这仅仅要求相机和打印机或投影机之间具有无线连接。原则上,用户可以利用无线LAN或有线的以太网链接从笔记本电脑上把文件发送到同一台打印机。
这个场景说明了支持自发互操作的需求,依靠自发互操作,设备之间的关联被例行地创建和拆除,定位和使用所访问地的设备(如打印机)是一个这方面的例子。这种情况下的最大挑战是让互操作快速和方便(即自发),即使用户可能在一个他们以前从来没有访问过的环境。这意味着,要让访问者的设备在访问地的网络上通信,并将设备与合适的本地设备相关联——这个过程称为服务发现。
移动和无处不在计算是一个热门的研究领域,上面提到的多个方面将在第19章深入讨论。11
1.3.3 分布式多媒体系统
另一个重要的趋势是在分布式系统中支持多媒体服务的需求。多媒体支持可以定义为以集成的方式支持多种媒体类型的能力。人们可以期望分布式多媒体系统支持离散类型媒体(如图片或正文消息)的存储、传输和展示。分布式多媒体系统应该能对连续类型媒体(如音频和视频)完成相同的功能,即它应该能存储和定位音频或视频文件,并通过网络传输它们(可能需要以实时的方式,因为流来自摄像机),从而能向用户展示多种媒体类型,以及在一组用户中共享多种类型的媒体。
连续媒体的重要特点是它们包括一个时间维度,确实,媒体类型的完整性从根本上依赖于在媒体类型的元素之间保持实时关系。例如,在视频展示中,保持给定的吞吐量是必要的,它以帧/秒计,而对实时流来说,是给定帧传递的最大延迟。(这是服务质量的一个例子,详细讨论见1.5.8节。)
分布式多媒体计算的好处是相当大的,因为能在桌面环境提供大量的新(多媒体)服务和应用,包括访问实况或预先录下的电视广播、访问提供视频点播服务的电影资料库、访问音乐资料库、提供音频和视频会议设施、提供集成的电话功能(包括IP电话或相关的技术,例如IP电话的一个对等方案Skype,对Skype底层的分布式系统基础设施的讨论见4.5.2节)。注意,该项技术对于制造商重新思考消费类设备方面是革命性的。例如,什么是将来核心的家庭娱乐设备——计算机、电视或游戏控制台?
网络播放(webcasting)是分布式多媒体技术的应用。网络播放是在互联网上广播连续媒体(典型的是音频或视频)的能力,现在常见以这种方式广播主要的体育或音乐事件,它经常吸引大量的观看者(例如,2005年的Live8音乐会在其高峰同时吸引了大约170000名用户)。
分布式多媒体应用(例如网络播放)对底层的分布式基础设施提出了大量的要求,包括:
- 提供对一系列(可扩展的)编码和加密格式的支持,例如MPEG系列标准(包括如流行的MP3标准,也称MPEG-1音频第三层)和HDTV;
- 提供一系列机制来保障所需的服务质量能得到满足;
- 提供相关的资源管理策略,包括合适的调度策略,来支持所需的服务质量;
- 提供适配策略来处理在开放系统中不可避免的场景,即服务质量不能得到满足或维持。
这些机制的进一步讨论可以在第20章找到。12
1.3.4 把分布式计算作为一个公共设施
随着分布式系统基础设施的不断成熟,不少公司在推广这样的观点:把分布式资源看成一个商品或公共设施,把分布式资源和其他公用设施(例如水或电)进行类比。采用这个模型,资源通过合适的服务提供者提供,能被最终用户有效地租赁而不是拥有。这种模型可以应用到物理资源和更多的逻辑服务上。
- 联网的计算机可用诸如存储和处理这样的物理资源,从而无须自己拥有这样的资源。从一个维度看,用户可以为其文件存储(例如,照片、音乐或视频等多媒体数据的存储)需求和/或文件备份需求选择一个远程存储设施。类似地,利用这个方法,用户能租用一个或多个计算结点,从而满足他们的基本计算需求或者完成分布式计算。从另一个维度看,用户现在能用像Amazon和Google之类的公司提供的服务访问复杂的数据中心(网络化的设施,为用户或机构提供对拥有大量数据的数据仓库的访问)或计算基础设施。操作系统虚拟化是该方法关键的使能技术,它意味着实际上可以通过一个虚拟的而不是物理的结点为用户提供服务。这从资源管理角度给服务提供者提供了更大的灵活性(关于操作系统虚拟化的详细讨论见第7章)。
- 用这种方法,软件服务(其定义见1.4节)也能跨全球互联网使用。确实,许多公司现在提供一整套服务用于租赁,包括诸如电子邮件和分布式日历之类的服务。例如,Google将其旗下的一系列业务服务捆绑成Google Apps[www.google.com I]。软件服务所遵循的标准,例如Web服务(见第9章)提供的标准,使得这类开发成为可能。
关于计算作为公共设施,术语云计算(cloud computing)被用来刻画其前景。云被定义成一组基于互联网的应用,并且足以满足大多数用户需求的存储和计算服务的集合,这使得用户能大部分或全部免除本地数据存储和应用软件的使用(见图1-5)。
图1-5 云计算该术语也推广“把每个事物看成一个服务”的观点,从物理或虚拟基础设施到软件,这样,服务经常根据使用而非购买来支付费用。注意,云计算减少了对用户设备的需求,允许非常简单的桌面或便携式设备来访问可能很广范围内的资源和服务。
通常,云实现在集群计算机上,从而提供每个服务所要求的必要的伸缩性和性能。集群计算机(cluster computer)是互连的计算机集合,它们紧密协作提供单一的、集成的高性能计算能力。在诸如Berkeley的NOW(Network of Workstations)项目[Anderson et al.1995,now.cs.berkeley.edu]和NASA的Beowulf项目[www.beowulf.org]的基础上,现在的趋势是计算机和互连网络都朝着利用商用硬件的方向发展。13大多数集群由商用PC组成,这些PC运行操作系统(如Linux)的标准版本(有时是缩减版),并通过局域网互联。诸如HP、Sun和IBM等公司提供了刀片解决方案。刀片服务器(blade server)是最小的包含处理和(主存)存储能力的计算元素。刀片系统由包含在一个刀片机架中的大量刀片服务器组成。其他元素例如电源、冷却、持久存储(磁盘)、联网和显示,或是由机架提供或是通过虚拟化解决方案提供(相关讨论见第7章)。通过这个解决方案,单个刀片服务器比商用PC更小,也更便宜。
集群服务器的总目的是提供一系列的云服务,包括高性能计算能力、大容量存储(例如通过数据中心)、丰富的应用服务(如Web搜索——Google依赖大容量集群计算机体系结构来实现其搜索引擎和其他服务,相关讨论见第21章)。
网格计算(相关讨论见第9章9.7.2节)也能被看成是一种云计算。大量的术语是同义的,偶尔定义得不清楚,但网格计算通常被看成是云计算这种更通用模式的先驱,它只是偏重于支持科学计算。