1、Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5DISTRIBUTED SYSTEMSPrinciples and ParadigmsChapter 12DistributedWeb-Based SystemsTanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007
2、 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Traditional Web-Based SystemsThe overall organization of a traditional Web site.(URL定位、HTML描述、HTTP传送)Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Web Doc
3、umentsWeb文档, 也称为网页文档,它可直接被各类浏览器访问浏览Six top-level MIME types and some common subtypes.( MIMEMultipurpose Internet Mail Exchange)Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Multitiered ArchitecturesThe princip
4、le of using server-side CGI programs.CGICommon Gateway InterfaceTanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Processes Clients (1)The logical components of a Web browser.Render engine目前有10多种:IE使用的Trident,Nets
5、cape采用的 Gecko等。 激活超链查看文档内容选择取网页内容整理讯息输出显示Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Processes Clients (2)Using a Web proxy when the browser does not speak FTP.(现在的大多数browser 都支持FTP)Tanenbaum & Van Steen, Di
6、stributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5The Apache Web ServerApache “a patchy server”的读音,意思是充满补丁的服务器,是目前使用最广的一个Web server(开源),其次是 IIS、Nginx和Google的。95年由 Illinois 大学 Urbana-Champaign 国家高级计算程序中心开发的一个基于进程的SERVER,2.0以后改为预生成进程+线程方式的。
7、 Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5The Apache Web Server Apache对HTTP的请求分为连接、处理和断开连接三个阶段。每个阶段又可分为多个子阶段,比如分为客户身份验证、权限认证、请求校验、URL重定向等。每个阶段调用相应的函数进行处理,子阶段由“挂钩(HOOK)”来描述,他和一组挂钩函数联系。对请求的处理过程就是依次调用一系列挂钩的过
8、程。请求类型的不同,对应的挂钩数和类型就不同。典型的HTTP请求,有一个默认的挂钩调用顺序,可以按默认的顺序,也可以不遵守这个顺序,或根据情况调整调用顺序Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5The Apache Web Server挂钩函数调用有两种:一是将挂钩函组中的每个函数都调用一次(挂钩4);二是从前往后调用,找到合适的就停止(图中1、2、3)。通过挂钩
9、机制,你可以自行修改服务器的行为:修改挂钩函数或者增加挂钩函数,甚至增加挂钩。 Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5The Apache Web ServerThe general organization of the Apache Web server.Tanenbaum & Van Steen, Distributed Systems: Principl
10、es and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Web Server Clusters (1)The principle of using a server cluster in combination with a front end to implement a Web service.Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-H
11、all, Inc. All rights reserved. 0-13-239227-5Web Server Clusters (2) A scalable content-aware cluster of Web servers.交换机把TCP连接消息转发给分发器,分发器与调度器联系,确定将其交给哪一个服务器,交换机会将后续的TCP消息发给所选的服务器。调度器将同一个文档的请求转发给同一个服务器,这样可以通过CACHE提高效率。Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007
12、Prentice-Hall, Inc. All rights reserved. 0-13-239227-5HTTP ConnectionsuHTTPHTTP协议(协议(Hypertext Transfer ProtocolHypertext Transfer Protocol)是用于从)是用于从WWWWWW服务器传服务器传输超文本到本地浏览器的传送协议。例如:输超文本到本地浏览器的传送协议。例如:http:/ uHTTPHTTP协议不仅保证计算机正确快速地传输超文本文档,还确定传输协议不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示文档中的哪一部分,
13、以及哪部分内容首先显示( (如文本先于图形如文本先于图形) )等。等。Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5HTTP ConnectionsuHTTPHTTP支持支持2 2种连接方式:种连接方式: 1. 1.非持久连接:每次服务器发出一个对象后,相应的非持久连接:每次服务器发出一个对象后,相应的TCPTCP连连接就被关闭,每个接就被关闭,每个TCPTCP连接只用
14、于传输一个请求消息和一个连接只用于传输一个请求消息和一个响应消息。响应消息。 2. 2.持久连接持久连接(HTTP1.1(HTTP1.1默认为持久连接默认为持久连接) ):在持久连接情况下,:在持久连接情况下,服务器在发出响应后让服务器在发出响应后让TCPTCP连接继续打开着。同一对客户连接继续打开着。同一对客户/ /服务器之间的后续请求和响应可以通过这个连接发送。服务器之间的后续请求和响应可以通过这个连接发送。Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-
15、Hall, Inc. All rights reserved. 0-13-239227-5HTTP Connectionsu持久连接分为不带流水线持久连接分为不带流水线(without pipelining)(without pipelining)和带流水和带流水线线(with pipelining)(with pipelining)两个版本。两个版本。 1. 1.不带流水线:客户只在收到前一个请求的响应后才发出新不带流水线:客户只在收到前一个请求的响应后才发出新的请求。缺点的请求。缺点: :服务器送出一个对象后开始等待下一个请求,服务器送出一个对象后开始等待下一个请求,如果新请求不能到达如果
16、新请求不能到达, ,则服务器资源便闲置了。则服务器资源便闲置了。 2. 2.带流水线:带流水线:HTTPHTTP客户对每一个引用都发出一个请求,服务客户对每一个引用都发出一个请求,服务器收到请求后,也是连续的发出各个对象。双方都不必等器收到请求后,也是连续的发出各个对象。双方都不必等待下一个的响应待下一个的响应/ /请求。请求。Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227
17、-5HTTP Connections (1)(a)Using nonpersistent connections. HTTP1.0 每个请求建立一个单独的连接,连接开销大Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5HTTP Connections (2)(b) Using persistent connections.HTTP1.1一个连接中可以发出多个请求。Tane
18、nbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5HTTP MethodsOperations supported by HTTP.Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-
19、13-239227-5HTTP Messages (1)HTTP request message. 请求服务器的操作Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5HTTP Messages (2)(b) HTTP response message.例如Statue code: 400错误请求,404未找到等服务器响应的状态码Tanenbaum & Van Steen,
20、Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5HTTP Messages (3)Some HTTP message headers.例如:Accept-Encodeing: gzip. 表示客户可以接受的压缩编码Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc.
21、All rights reserved. 0-13-239227-5HTTP Messages (4)Some HTTP message headers.例如:if-Modified-Since. 服务器文档仅当在指定时间之后被修改时才返回该文档Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Naming (1)Often-used structures for URLs
22、. (a) Using only a DNS name. (b) Combining a DNS name with a port number. (c) Combining an IP address with a port number.通过URI(Uniform Resource Identifiers)命名,包括URL和URN,右图是URL的3种形式.Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reser
23、ved. 0-13-239227-5Naming (2)Examples of URIs.Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Synchronization1. Web采用Client-Server结构, Client与Server不交换信息,没有同步问题;另外,大部分是读操作,更新在服务器方,很少有写-写冲突问题。2. 针对Web文档的协同创作需求, 可以通
24、过WebDAV( Web distributed authoring and versioning)协议(一种锁机制)来解决。锁有2种类型:u 独占式写入锁:排他方式对Web文档修改。u 共享式写入锁:在不同粒度上加锁,可以使多个客户同时修改Web文档的不同部分。Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Consistency and Replication 通过副
25、本技术提高分布式系统的性能和可用性(第7章),基于Web的分布式系统也一样,常用的有如下几种方式:1. Web浏览器的缓存(每个都有一个缓存);2. Web Proxy Caching;3. Replication for Web Hosting Systems;4. Replication of Web ApplicationsTanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-23922
26、7-5Web Proxy Caching The principle of cooperative caching.例如Web代理可以向Server发一个附带if-Modified-Since的HTTP get,最新的文档才传送.Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Replication for Web Hosting SystemsuCDN(Content
27、Delivery Network)-内容分发网络:通过在Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,解决网络拥塞状况,提高用户访问网站的响应速度。 uCDN是一个经过策略性部署的整体系统,包括分布式存储、分布式存储、负载均衡、网络请求的重定向负载均衡、网络请求的重定向和和内容管理内容管理个部件,内容管理和全局的网络流量管理是CDN的核心。Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rig
28、hts reserved. 0-13-239227-5Replication for Web Hosting Systemsu内容服务基于缓存服务器,也称作代理缓存(Surrogate),位于网络边缘,距用户仅有“一跳”(Single Hop)。他是内容提供商源服务器(通常位于CDN服务提供商的数据中心)的一个镜像。 uCDN强调了网络在内容发布中的重要性。通过引入主动的内容管理层的和全局负载均衡,而区别于传统的内容发布模式(ICP)。Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 20
29、07 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Replication for Web Hosting SystemsThe general organization of a CDN as a feedback-control system (adapted from Sivasubramanian et al., 2004).延迟指标延迟指标网络使用指标网络使用指标一致性指标一致性指标空间指标空间指标财务指标财务指标Tanenbaum & Van Steen, Distributed Systems: Principles
30、and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Adaptation TriggeringOne normal and three different access patterns reflecting flash crowd behavior (adapted from Baryshnikov et al., 2005).Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c)
31、2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Adjustment Measures调整措施 The principal working of the Akamai CDN.措施包括:副本的部署、一致性执行策略和请求路由等,下图是一个具体CDN系统的例子。嵌入了多个其它的文档Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-
32、13-239227-5Replication of Web ApplicationsAlternatives for caching and replication with Web applications.数据库完全复制部分复制:维护一个根据查询的结构组织的数据库部分复制:根据计算的散列值查缓冲,没有时才转发给源服务器,并缓存。Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-2392
33、27-5Security (1)The position of TLS(Transport Layer Security)in the Internet protocol stack.通过TLS建立安全信道。Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Security (2)TLS with mutual authentication.Tanenbaum & Van
34、Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5u一种基于XML的分布式计算技术、一种中间件技术;一种松散耦合的、面向服务的架构:接口定义:接口定义作为服务所提供的内容和客户端所期望的结果之间的合约;通信格式和协议:常见的组合是通过 HTTP(协议)的 SOAP(格式)。u一个Web服务就是一个应用程序,它可以通过轻量级的、与厂商无关的通信协议从其他的系统跨网络(Internet 或者 Intranet
35、)接受XML格式的请求;Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Web Services FundamentalsThe principle of a Web service.Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hal
36、l, Inc. All rights reserved. 0-13-239227-5Web Services Fundamentals三个基本角色:服务提供者、服务注册中心、服务请求者。三个基本角色:服务提供者、服务注册中心、服务请求者。三个基本操作:公布、查找、绑定。三个基本操作:公布、查找、绑定。Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Web服务的操作u发布撤
37、除发布(发布撤除发布(Publish)发布和撤除发布是指将服务发布至代理处(发布)或除去它们的一些项(撤除发布)。服务提供者通过代理来发布或不发布某个服务。u查找查找 (Find)查找操作由服务请求者和服务代理共同完成。服务请求者描述他们正在寻找的服务类型,而服务代理发布与请求最匹配的结果。u绑定绑定 (Bind)绑定操作发生在服务请求者和服务提供者之间。双方经过适当的商讨之后,请求者就可以访问和调用提供者所提供的服务。Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prent
38、ice-Hall, Inc. All rights reserved. 0-13-239227-5Web服务实现过程Web Services ArchitectureW3C Working Group Note 11 February 2004 Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Web Services Architecture的思考uAgentReques
39、ter Agent and Provider Agent;传统的注册中心被代理替代;u发现服务(Discovery Service)执行一个发现的过程。获取WSD和FD、请求者实体提出发现标准、返回WSD可以人工发现也可以自动发现(Agent);u发现的途径注册中心;索引;P2P发现;Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5WebWeb服务主要技术及标准服务主要技
40、术及标准Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5SOAP概述u简单对象访问协议其中“O”对象的含义逐步淡化,重心从对象转移到通用的 XML 消息处理框架上;uSOAP是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。它利用XML定义一种可扩展的消息处理框架,提供了一种可通过多种底层协议进行交换的消息结构,设计思想是要独立于任何一种特定的编程模型和其他特定
41、实现的语义;u在协议栈中,SOAP XML位于用来发送消息的传输协议之上,而位于特定领域的XML文档之下;Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5SOAP消息SOAP 元素是元素是 SOAP 消息的根元素,包含一个可选的消息的根元素,包含一个可选的 SOAP Header 和一个必需的和一个必需的 SOAP Body 元素;元素; 描述元数据,比如安描述元数据,比
42、如安全性、事务处理和会话状态信息;全性、事务处理和会话状态信息; 包含发送者的包含发送者的 XML 文文档;档;W3C Note 指定了一种在指定了一种在 SOAP 消息中嵌入和描述消息中嵌入和描述 附件附件(attachment,格式不限),格式不限) 的方的方式式Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Simple Object Access Protocol
43、An example of an XML-based SOAP message.Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5SOAP、UDDI与WSDLuWSDL, Web Services Description Language描述Web服务的XML语言,提供了一种向其它程序描述Web服务的统一方法;uUDDI, Universal Description,Dis
44、covery and Integration创建可搜索的Web服务注册中心;uSOAP, Simple Object Access Protocol提供了一种在Web服务与其它应用程序之间进行通信的机制。Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5WSDLuWSDL-Web Services Description Language提供了一种语法,将服务描述为交换消息
45、的端点集;用一种与平台无关的语言(XML)来描述一个或多个服务。它描述了服务、访问服务的方式以及需要返回的响应的类型;可以私下交换 WSDL 文档,也可以将其发送到 UDDI 注册中心(公共的或者私有的),以允许更广泛的访问;基于 XML 的文件格式,用来描述类型(Type)、消息(Message)、操作(Operation)和接口(称为 端口类型(PortTypes)、定位和协议绑定;可以用 WSDL 来把 Web 服务描述成一组运行在消息上的端点;Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e
46、, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5UDDIu一个提供注册和定位Web服务(商业)的开放框架,既是一个规范,又是若干企业间的伙伴关系。u支持创建、说明、发现和调用 Web 服务。 Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5UDDI工作原理UDDI 注册中心包含了通过程序手段
47、可以访问到的Web服务;通过HTTP从客户机的SOAP请求传到注册中心节点,然后再反向传输;Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5Web服务安全u 安全套接字层(SSL)和实际的传输层安全性(TLS)一起被用于为Web服务应用程序提供传输级别的安全性;u IPSec是另一个用于传输安全性的网络层标准;u传输层之外的中介体接收并转发数据时,数据的完整性和任何随数据
48、流动的安全性信息都可能会丢失; Web服务应用程序将许多动态的系统组织在一起; 消息传递依赖中介,传输层安全措施不能保证其安全性;Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved. 0-13-239227-5与分布对象技术结合可使系统的适应性更好与分布对象技术结合可使系统的适应性更好CORBARMIDCOMCORBARMIDCOM内聚化应用内聚化应用SOAPintranet内聚化应用内聚化应用intranet内聚化应用内聚化应用CORBARMIDCOMintranetSOAPSOAPInternet数据岛数据岛