您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 工学 > 复旦大学高级web技术课件2web服务与云计算
deeperAdvancedwebtechnologyWeb高级开发与应用技术服务web与云计算概述WebTechnologyFudancourse,byDaikaiyu服务概念的提出SaaSWebTechnologyFudancourse,byDaikaiyu将软件与服务分离WebTechnologyFudancourse,byDaikaiyuSOA是什么?W3C:Asetofcomponentswhichcanbeinvoked,andwhoseinterfacedescriptionscanbepublishedanddiscovered.WebTechnologyFudancourse,byDaikaiyu5一个组件模型将应用程序的不同功能单元(服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。什么是面向服务的体系架构?WebTechnologyFudancourse,byDaikaiyu面向服务的集成示例传统3层架构WebTechnologyFudancourse,byDaikaiyuWebServices的产生1999年,HP(惠普)公司成为了第一个引入Web服务概念的软件供应商。2000年6月Microsoft提出了“Web服务”这个术语,并把Web服务作为了它的.NET计划的一个重要组件WebTechnologyFudancourse,byDaikaiyuWebServicesWebServices的发展原动力-电子商务和企业应用集成的发展,日趋基于Web应用:从局部化发展到全球化从B2C(Bussiness-to-Costumer)发展到B2B(Bussiness-to-Bussiness)从集中式发展到分布式-需要解决语言差异、平台差异、协议差异、数据差异所带来的高代价的系统集成WebTechnologyFudancourse,byDaikaiyuWebServicesWebService概述-WebServices是一个崭新的分布式计算模型-WebServices是一系列标准的集合SOAPWSDLUDDIWSFL…-WebServices架构提供一个松散耦合的分布式计算环境WebTechnologyFudancourse,byDaikaiyuwebservicesWebServicesDefinitionbyW3C●AWebserviceisasoftwareapplication●identifiedbyaURI,●whoseinterfacesandbindingarecapableofbeingdefined,describedanddiscoveredbyXMLartifactsand●supportsdirectinteractionswithothersoftwareapplications●usingXMLbasedmessages●viainternet-basedprotocolsWebTechnologyFudancourse,byDaikaiyuwebservicesW3C2004年2月发布的面向服务架构规范中定义单个的Web服务,就是一个支持机器之间通过网络进行交互的软件系统。Web服务使用机器可以处理的格式(特别是WSDL)来描述自己的接口。其他系统则依据该接口描述,使用SOAP报文格式与Web服务通信。典型的SOAP报文是一个利用HTTP传输的XML序列,在传输中通常与其他Web相关的标准结合WebTechnologyFudancourse,byDaikaiyuServiceWebWebservices架构WebTechnologyFudancourse,byDaikaiyuWebService架构WebTechnologyFudancourse,byDaikaiyuWebService架构Web服务协议栈nowBEPLWebTechnologyFudancourse,byDaikaiyuWebService架构可互操作的基础协议栈-简单的协议栈将包括网络层的HTTP、XML消息传递层的SOAP协议以及服务描述层的WSDL。-所有企业间或公用Web服务都应该支持这种可互操作的基础协议栈WebTechnologyFudancourse,byDaikaiyuREST化的WebREST是什么-RepresentationalStateTransfer(“表述性状态转移”)-RoyFielding博士论文《ArchitecturalStylesandtheDesignofNetwork-basedSoftwareArchitectures》提出的一种web架构WebTechnologyFudancourse,byDaikaiyuREST化的Web早期的Web架构,是通过客户-缓存-无状态-服务器的约束集合来定义的。WebTechnologyFudancourse,byDaikaiyuREST化的Web表述性状态转移(REST)风格是对分布式超媒体系统中的架构元素的一种抽象。这个名称“表述性状态转移”是有意唤起人们对于一个良好设计的Web应用如何运转的印象:一个由网页组成的网络(一个虚拟状态机),用户通过选择链接(状态转移)在应用中前进,导致下一个页面(代表应用的下一个状态)被转移给用户,并且呈现给他们,以便他们来使用。humanweb和programmableweb(基于Http和XML)没有本质区别万维网是一个简单而灵活的分布式编程环境WebTechnologyFudancourse,byDaikaiyuREST化的WebREST是什么-分布式超媒体系统设计的一种架构风格网络上的所有事物都被抽象为资源(resource);每个资源对应一个唯一的资源标识符(resourceidentifier);通过通用的连接器接口(genericconnectorinterface)对资源进行操作;对资源的各种操作不会改变资源标识符;所有的操作都是无状态的(stateless)。基于Http协议的,任何对资源的操作行为都是通过Http协议来实现WebTechnologyFudancourse,byDaikaiyuREST化的Web数据对象操作HTTP方法对应关系说明CREATEPOST资源的创建RETRIEVE(SELECT)HEAD、GET资源的查询、读取UPDATEPUT资源的更新DELETEDELETE资源的删除数据对象和HTTP方法的对应关系WebTechnologyFudancourse,byDaikaiyuRESTfulWebServicesREST关键原则-为所有“事物”定义ID使用URI(依靠某个已被定义,在全球范围中几乎完美运行,并且能被绝大多数人所理解的规则)标识所有值得标识的事物,特别是应用中提供的所有“高级”资源,无论这些资源代表单一数据项、数据项集合、虚拟亦或实际的对象还是计算结果等。使用唯一、全局统一的命名规则的好处,既适用于浏览器中的Web应用,也适用于机对机(machine-to-machine,m2m)通信。REST定义了应该如何正确地使用(这和大多数人的实际使用方式有很大不同)Web标准,例如HTTP和URI。如果你在设计应用程序时能坚持REST原则,那就预示着你将会得到一个使用了优质Web架构(这将让你受益)的系统。《深入浅出REST》byStefanTilkovWebTechnologyFudancourse,byDaikaiyuRESTfulWebServicesREST关键原则-将所有事物链接在一起超媒体被当作应用状态引擎实际上服务器端为客户端(服务消费者)提供一组链接,使客户端能通过链接将应用从一个状态改变为另一个状态。-使用标准方法使用Http操作GET方法具有幂等性[指多个相同请求返回相同的结果]所有理解HTTP应用协议的组件能与你的应用交互《深入浅出REST》byStefanTilkovWebTechnologyFudancourse,byDaikaiyuRESTfulWebServices•REST关键原则-资源多重表述如果客户程序知道如何处理一种特定的数据格式,那就可以与所有提供这种表述格式的资源交互同一个资源的不同表述,可以有利于不同的客户端。资源不仅可以被你的应用所用,还可以被任意标准Web浏览器所用GET/customers/1234HTTP/1.1Host:example.comAccept:application/vnd.mycompany.customer+xmlGET/customers/1234HTTP/1.1Host:example.comAccept:text/x-vcardWebTechnologyFudancourse,byDaikaiyuRESTfulWebServices•REST关键原则-资源多重表述XmlJsonXhtmlRSS/AtomOtherMediatypesWebTechnologyFudancourse,byDaikaiyuRESTfulWebServices•REST关键原则-无状态通信REST要求状态要么被放入资源状态中,要么保存在客户端上换句话说,服务器端不能保持除了单次请求之外的,任何与其通信的客户端的通信状态。这样做的最直接的理由就是可伸缩性无状态约束使服务器的变化对客户端是不可见的,因为在两次连续的请求中,客户端并不依赖于同一台服务器。整体上来说Web、HTTP和URI仅仅是REST风格的一个主要实现。WebTechnologyFudancourse,byDaikaiyuRESTFulWebServices的成功应用-客户端-Ruby面向对象的脚本语言概念上类似smalltalk语言编程风格类似perl-RubyOnRails-Restlet(用于Java)-Django(用于python)-服务器端-目前主流的web服务,如AmazonS3等WebTechnologyFudancourse,byDaikaiyu云计算云计算是一种商业计算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。WebTechnologyFudancourse,byDaikaiyu云计算指IT基础设施的交付和使用模式,指通过网络以按需、易扩展的方式获得所需的资源(硬件、平台、软件),提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费WebTechnologyFudancourse,byDaikaiyu云计算“云计算”(CloudComputing)是分布式处理(DistributedComputing)、并行处理(ParallelComputing)和网格计算(GridComputing)的发展,或者说是这些计算机科学概念的商业实现。云计算相关演示云计算将IT相关的能力以服务的方式提供给用户,允许用户在不了解提供服务的技术、没有相关知识以及设备操作能力的情况下,通过Internet获取需要的服务WebTechnologyFudancourse,byDaikaiyu古老的预言重新接近正确?ThomasWatson“我认为全球大概只需要五台计算机就够了”BillGates“640KB内存应该对任何人都够用了。”?WebTechnologyFudancourse,byDaikaiyu云计算发展历史1983年,SunMicrosystems提出“TheNetworkisthecomputer”。20世纪90年代初,IanFoster和CarlKesselman提出了“网格”的概念。2006年3月,亚马逊(Amazon)推出
本文标题:复旦大学高级web技术课件2web服务与云计算
链接地址:https://www.777doc.com/doc-10674040 .html