版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件体系结构
---Web服务体系结构12/12/20221软件体系结构
---Web服务体系结构12/11/202课程内容
软件体系结构概论
软件体系结构建模
软件体系结构风格
软件体系结构描述
动态软件体系结构
Web服务体系结构
基于体系结构的软件开发
软件体系结构的分析与测试
软件体系结构评估
软件产品线体系结构12/12/20222课
软件体系结构概论12/11/20222第6章Web服务体系结构6.1Web服务概述Web服务(Webservice)作为一种新兴的Web应用模式,是一种崭新的分布式计算模型,是Web上数据和信息集成的有效机制。“一切都是服务”--美国Microsoft(微软)公司目的:成群的个人电脑、服务器、智能设备都可以基于因特网服务无缝协同作业。12/12/20223第6章Web服务体系结构6.1Web服务概述第6章Web服务体系结构--Web服务概述6.1.1什么是Web服务数据12/12/20224第6章Web服务体系结构--Web服务概述6.1.1第6章Web服务体系结构--Web服务概述6.1.1什么是Web服务Web服务就像Web上的构件编程,开发人员通过调用Web应用编程接口,将Web服务集成进他们的应用程序,就像调用本地服务一样。Web服务技术核心:XML可扩展标记语言
SOAP简单对象访问协议
WSDLWeb服务描述语言
UDDI统一描述、发现和集成协议Web服务的关键:Web服务体系结构12/12/20225第6章Web服务体系结构--Web服务概述Web服务概述--什么是Web服务Web服务集成的四项基本原则因特网连接服务发现公共数据表示公共通信协议需要一种在因特网上查找企业用来作业的服务的简单方法。UDDI和WSDL履行此功能。需要一种公共语言来确保可以与其他用户共享信息。XML是使这种共享成为可能的因素;必须有一种用来实际执行业务的公共协议。SOAP就是这种协议,它使得系统可以相互通话并提出请求。各系统通过因特网连接。12/12/202266.1Web服务概述--什么是Web服务Web服务集6.1Web服务概述--什么是Web服务Web服务的逻辑层数据层数据访问层业务逻辑业务面监听者离客户端最近离客户端最远保存物理数据为业务层提供数据接收并解析带有请求服务的消息发送给业务面相应的方法提供业务面使用的服务到底层业务对象的接口业务层12/12/202276.1Web服务概述--什么是Web服务Web服务的第6章Web服务体系结构--Web服务概述6.1.2Web服务的不同描述从功能角度:Web服务基于TCP/IP、HTTP、XML等规范而定义的,具有如下功能:Web上链接文档的浏览、事务的自动调用、服务的动态发现和发布。从网格计算角度:Web服务能用于Web上的资源发现,数据管理及网格计算平台上异构系统的系统设计,从而突出网格服务的新概念。从信息检索角度:Web服务是包含了分布策略和路由信息的电子文档之上进行分布式文档检索的服务。12/12/20228第6章Web服务体系结构--Web服务概述Web服务概述--Web服务的不同描述Web服务的分类针对不同的应用背景,Web的应用对象也不同,目前广泛应用的Web服务可分为如下四类:面向企业应用的服务面向消费者应用的服务面向设备的服务面向系统的服务12/12/202296.1Web服务概述--Web服务的不同描述Web服6.1Web服务概述--Web服务的不同描述Web服务描述小结在本书中,我们认为Web服务是一个可以用URI来标志的软件系统,它采用XML格式的信息来定义和描述对外的公共接口和绑定。Web服务可被其他软件系统发现,并通过使用基于XML信息,借助Internet协议,依照Web服务中定义的描述方式实现交互。URI:universalresourceidentifier,统一资源定位符12/12/2022106.1Web服务概述--Web服务的不同描述Web服第6章Web服务体系结构--Web服务概述6.1.3Web服务的特点使用标准协议规范使用协约的规范性高度集成能力完好的封装性松散耦合就外部使用者的角度而言,Web服务是一种部署在Web上的对象/构件,它具备以下特点:12/12/202211第6章Web服务体系结构--Web服务概述6.1.3第6章Web服务体系结构6.2Web服务体系结构模型1.Web服务模型一个完整的Web服务包括三种逻辑构件:服务代理:起中介作用,使服务的注册构件服务请求者:可在应用程序中通过服务代理请求服务,调用所需服务服务提供者:提供服务,并进行注册以使服务可用12/12/202212第6章Web服务体系结构6.2Web服务体系结构模型服务请求者向服务代理发出服务查询请求服务提供者向服务代理发布所提供的服务服务的具体实现12/12/202213服务请求者向服务代理发出服务查询请求服务提供者向服务代理发布与Web相关的操作发布–服务提供者向服务代理发布所提供的服务。–发布操作对服务进行一定的描述并发布到代理服务器上,进行注册。–在发布操作中,服务提供者可以决定发布或者不发布服务。12/12/202214与Web相关的操作发布12/11/202214与Web相关的操作发现–服务请求者向服务代理发布服务查询请求。–服务代理提供规范的接口来接受服务请求者的查询–服务请求者根据通用的行业分类标准浏览分类或者通过关键字搜索,并逐步缩小查找范围,直到找到满足条件的服务为止。12/12/202215与Web相关的操作发现12/11/202215与Web相关的操作绑定–服务的具体实现。–分析从注册服务器中得到的调用该服务所需的详细绑定信息,根据这些信息,服务请求者可以编程实现对服务的远程调用–详细信息包括服务的访问路径、调用参数、返回结果、传输协议、安全要求等12/12/202216与Web相关的操作绑定12/11/202216与Web相关的操作Web服务是由一个服务描述来描述的接口,服务描述是实现该服务本身。•服务是一个软件模块,部署在由服务提供者提供的可以通过网络访问的平台。•服务存在就是要被服务请求者调用或者服务请求者交互。•当服务的实现中需要用到其他Web服务时,也可以作为一个服务的请求者。•服务描述包括服务的接口和实现细节,其中包括服务的数据类型、操作、绑定信息、网络位置以及其他元数据12/12/202217与Web相关的操作Web服务是由一个服务描述来描述的接口,服第6章Web服务体系结构--Web服务体系结构模型2.Web服务开发生命周期构建部署运行管理包括开发和测试Web服务的实现定义服务接口描述和定义实现描述向服务请求者或服务注册中心发布服务接口和服务实现的定义把Web服务的可执行文件部署到执行环境中可以调用Web服务持续的管理和经营Web服务应用程序12/12/202218第6章Web服务体系结构--Web服务体系结构模型2.第6章Web服务体系结构--Web服务体系结构模型3.Web服务栈发现服务UDDI、DISCO描述服务WSDL、XMLSchema消息格式层SOAP编码格式层XML传输协议层HTTP、TCP/IP、SMTP等帮助客户端应用程序解析远程服务的位置为客户端应用程序提供正确地与远程服务交互的描述信息保证客户端与服务器在格式设置上的一致性为客户端和服务器之间提供一个标准的、独立于平台的数据交换编码格式为客户端和服务器之间提供交互的网络通信协议12/12/202219第6章Web服务体系结构--Web服务体系结构模型3.发现服务层UniversalDescriptionDiscoveryandIntegration即统一描述、发现和集成协议。•UDDI是Web服务集成的一个体系框架。用来说明一个Web服务的一些信息类型,以便帮助服务的请求者确定:WHO,WHAT,WHERE,HOW.•UDDI定义如何查找Web服务(及其WSDL文件)12/12/202220发现服务层UniversalDescriptionDis发现服务层主要用来帮助客户端应用程序解析远程服务的位置。•通过UDDI实现UDDI规范描述了Web服务的概念,定义了一种编程接口•通过UDDI,企业可以发布自己的Web服务供其他企业查询和调用,也可以查询特定服务的描述信息,动态绑定到该服务上。12/12/202221发现服务层主要用来帮助客户端应用程序解析远程服务的位置。12描述层为客户端应用程序提供与远程服务交互的描述信息•通过WSDL实现•WSDL为服务提供者提供以XML格式描述Web服务请求的标准格式,将网络服务描述为能将进行消息交互的通信端点集合,以表达一个Web服务的功能、位置和调用方法12/12/202222描述层为客户端应用程序提供与远程服务交互的描述信息12/11消息格式层保证客户端应用程序和服务器端在格式设置上保持一致•通过SOAP协议实现•SOAP定义了服务请求者和服务提供者之间的消息传递规范。•SOAP用XML来格式化信息,用HTTP承载消息。12/12/202223消息格式层保证客户端应用程序和服务器端在格式设置上保持一致1消息格式层SOAP包括了3部分–SOAP封装:定义了描述消息和如何处理消息的框架的封装–SOAP编码规范:表达应用程序定义的数据类型实例的编码规则–SOAPRPC表示:描述远程过程调用和应答的协议12/12/202224消息格式层SOAP包括了3部分–SOAP封装:定义了描述消息编码格式层为客户端和服务器之间提供一个标准的、独立于平台的数据交换编码格式•一般通过XML实现12/12/202225编码格式层为客户端和服务器之间提供一个标准的、独立于平台的数传输协议层为客户端和服务器提供交互的网络通信协议•一般通过HTTP和SMTP实现•HTTP是广泛使用的协议,为Web服务部件通过Internet交互奠定了协议基础,并具有良好的穿透防火墙的功能•SMTP适用于异步通信,在服务中断时,SMTP可以自动进行重试12/12/202226传输协议层为客户端和服务器提供交互的网络通信协议12/11/第6章Web服务体系结构--Web服务体系结构模型4.Web服务体系结构的优势高度的通用性和易用性完全的平台、语言独立性高度的集成性容易部署和发布12/12/202227第6章Web服务体系结构--Web服务体系结构模型4.第6章Web服务体系结构6.3Web服务的核心技术XML可扩展标记语言SOAP简单对象访问协议WSDLWeb服务描述语言UDDI统一描述、发现和集成协议12/12/202228第6章Web服务体系结构6.3Web服务的核心技术第6章Web服务体系结构--Web服务的核心技术6.3.1作为Web服务基础的XMLXML是W3C制定的作为Internet上数据交换和表示的标准语言。Web服务所提供的接口、对Web服务的请求、Web服务的应答数据都是通过XML描述的。Web服务的所有协议都建立在XML基础之上,XML可称为Web服务的基石。
12/12/202229第6章Web服务体系结构--Web服务的核心技术6.3第6章Web服务体系结构--Web服务的核心技术6.3.1作为Web服务基础的XML客户端和服务器能即时处理多种形式的信息,当客户端向服务器发出不同的请求是,服务器只需将数据封装进XML文件中,由用户根据自己的需求,选择和制作不同的应用程序来处理数据。这不仅减轻了Web服务器的许多负担,也大大减少了网络流量。同时,XML可以简化数据交换,支持智能代码和智能搜索,软件开发人员可以使用XML创建具有自我描述性的数据文档。
12/12/202230第6章Web服务体系结构--Web服务的核心技术6.3作为Web服务基础的XML
XML使用了XMLSchema作为建模语言。•XMLSchema是W3C推荐的标准,提供了文档类型定义(DTD)的方法,使开发人员能更精确的结构化XML数据•XMLSchema已成为Web服务中协议制定的标准语言。12/12/202231作为Web服务基础的XML
XML使用了XMLSchema第6章Web服务体系结构--Web服务的核心技术6.3.2简单对象访问协议SOAP,SimpleObjectAccessProtocol
SOAP本身不定义任何应用语言,只定义简单的机制,通过提供一个有标准构件的包模型和通过在模块中对数据编码的机制,来定义一个简单的表示应用语义的机制。•SOAP能够应用于从消息传递到远程过程调用的各种系统中。12/12/202232第6章Web服务体系结构--Web服务的核心技术6.3是一个基于XML的,在松散分布式环境中交换结构化信息的轻量级协议,它为在一个松散的、分布式环境中使用XML对等地交换结构化的和类型化的信息提供了一种简单的机制。应用:从消息传递到远程过程调用(RPC)的各种系统中。SOAP规范包括:SOAP信封SOAP编码规则SOAPRPC表示SOAP绑定12/12/202233是一个基于XML的,在松散分布式环境中交换结构化信息的轻量级6.3Web服务的核心技术–简单对象访问协议1.SOAP信封<SOAP-ENV:Envelopexmlns:SOAP-ENV=“http://{soaporg}/envelope”
SOAP-ENV:encodingStyle=“http://{soaporg}/encoding”><SOAP-ENV:Body><m:QuoteStockPricexmlns:m=“some-URI”><Symbol>IBM</Symbol></m:QuoteStockPrice
></SOAP-ENV:Body></SOAP-ENV:Envelope>信封的名空间信封(envelope)消息(message)消息的名空间12/12/2022346.3Web服务的核心技术–简单对象访问协议1.SOASOAP通信体系结构典型SOAP通信体系结构中的一些组件:–SOAP客户机–SOAP服务器–实际服务12/12/202235SOAP通信体系结构典型SOAP通信体系结构中的一些组件12/12/20223612/11/202236SOAP客户机SOAP客户机是一台有SOAP机制的机器,它可以产生SOAP请求并通过HTTP发送到服务器。12/12/202237SOAP客户机SOAP客户机是一台有SOAP机制的机器SOAP服务器SOAP服务器也是一台有SOAP机制的机器,能够接收来自SOAP客户机的请求,并对之作出适当的响应。•这些编过码的响应会返回发出请求的SOAP客户机。•在SOAP服务器内部有三个实体:–服务管理器–被部署服务的列表–XML转换程序12/12/202238SOAP服务器SOAP服务器也是一台有SOAP机制的机SOAP消息通常只有两种类型的SOAP消息:–SOAP请求就是一台SOAP客户机发送给SOAP服务器的内容,–SOAP响应就是SOAP服务器对SOAP客户机响应的内容。12/12/202239SOAP消息通常只有两种类型的SOAP消息:12/11/Soap请求,响应见教材服务管理器负责根据请求管理服务,元素<m:getListOfModelsxmlns:m=“urn:MobilePhoneservice”>包含了服务的名称。•服务管理器读取SOAP客户机想调用的SOAP服务的名称并检查所需的服务实际上是否驻留于这台SOAP服务器上。12/12/202240Soap请求,响应见教材12/11/202240Soap请求,响应此后,服务管理器查询被部署服务的列表。若存在,服务管理器将把SOAP请求传送给XML转换程序。•XML转换程序就负责将SOAP请求的XML结构转换成程序员用来实现实际服务的编程语言(如Java)的结构。还要负责将来自实际服务的响应转换回SOAP响应的XML结构。12/12/202241Soap请求,响应此后,服务管理器查询被部署服务的列表。若存实际服务图中标有actualservice的框就是实际服务驻留的位置。–服务实现可以是:例如,COM组件或JavaBeans组件的形式。•XML转换程序负责将XML结构转换成合适的方法调用。–当XML转换程序调用了实际服务实现的某个方法时,这个方法就会完成它的工作并且将结果信息返回XML转换程序12/12/202242实际服务图中标有actualservice的框就是实际服务实际服务图中连接XMLtranslator和actualservice的箭头的两端同在一个企业内,这意味着同一个组织控制着通信两端的接口。•与穿过企业边界的在SOAP客户机和SOAP服务器之间的箭头相比,这正是SOAP的目的所在。12/12/202243实际服务图中连接XMLtranslator和actualSOAP消息一条SOAP消息只是一个XML文档,由一个强制性的SOAPEnvelope组成•SOAPEnvelope有一个可选的SOAPHeader和一个必须有的SOAPBody。12/12/202244SOAP消息一条SOAP消息只是一个XML文档,由一个SOAP信封SOAP信封是SOAP消息在句法上的最外层,它构造了一个整体的框架•SOAP信封可以用来表示消息中包含什么内容,谁应当处理这些内容,谁应当处理这些内容,是可选的还是强制的12/12/202245SOAP信封SOAP信封是SOAP消息在句法上的最外层,它构SOAP的EnvelopeEnvelope是表示一条消息的顶层元素。为了发送一条SOAP消息,必须包括此元素。•Envelope使用必要的SOAP名称空间标识符/soap/envelope/。•若Envelope包含了错误的名称空间,会产生一个关于Envelope名称空间版本的错误。12/12/202246SOAP的EnvelopeEnvelope是表示一条消息的一个空的SOAPEnvelope<SOAP-ENV:Envelopexmlns:SOAP-ENV=“/soap/envelope/”></SOAP-ENV:Envelope>•称其为“空Envelope”是为了强调在通过“投递”发出它之前,它最终应该包含一封“信”(也许是商业信)。•SOAP模式中的“信”就是指“SOAPBody12/12/202247一个空的SOAPEnvelope<SOAP-ENV:EnveSOAPHeaderSOAPHeader是可选的。•Header在松散环境下且通信方之间尚未达成一致的情况下,Header提供了一个扩展SOAP消息功能的机制。•例如,认证就是由SOAPHeader条目所提供的一种典型扩展。在此情况下,将有一个认证框架,它会使用SOAP作为更低级别的传输。12/12/202248SOAPHeaderSOAPHeader是可选的。12SOAPBodyBody元素包含实际要发送的消息。•Body是一个强制性的元素且其子元素通常属于一个用户定义的名称空间。Body元素是必要信息的容器。这个元素必须在SOAP消息中出现并且必须是SOAPEnvelope元素的一个直接子元素。•Body必须直接跟在SOAPHeader元素的后面。若没有Header元素,那么它应直接跟在Envelope元素的后面。12/12/202249SOAPBodyBody元素包含实际要发送的消息。12/6.3Web服务的核心技术–简单对象访问协议2.SOAP编码规则是一个定义传输数据类型的通用数据类型系统,这个简单类型系统包括:程序语言、数据库和半结构数据中不同类型系统的公共特性。通用数据类型:简单类型复合类型12/12/2022506.3Web服务的核心技术–简单对象访问协议2.SOA6.3Web服务的核心技术–简单对象访问协议3.SOAPRPC表示定义了远程过程调用和应答的协议。RPC的调用和响应都在SOAPBody元素中传送。在RPC中使用SOAP时,需要绑定一种协议,可以使用各种网络协议,如HTTP、SMTP和FTP等来实现基于SOAP的RPC,一般使用HTTP作为SOAP的协议绑定。SOAP通过协议绑定来传送目标对象的URI,在HTTP中的请求URI就是需要调用的目标SOAP节点的URI。12/12/2022516.3Web服务的核心技术–简单对象访问协议3.SOA6.3Web服务的核心技术–简单对象访问协议4.SOAP绑定定义了一个使用底层传输协议来完成在节点间交换SOAP信封的约定。SOAP协议中定义了与HTTP的绑定:利用HTTP来传送SOAP消息,主要是利用HTTP的请求/响应消息模型,将SOAP请求的参数放在HTTP请求里,将SOAP响应的参数放在HTTP响应里。12/12/2022526.3Web服务的核心技术–简单对象访问协议4.SOA第6章Web服务体系结构--Web服务的核心技术6.3.3Web服务描述语言WSDL,WebServicesdescriptionlanguage是一个基于XML的用于描述Web服务以及如何访问Web服务的语言。WSDL为使用者提供了一种了解调用规则以便进行调用的方法。12/12/202253第6章Web服务体系结构--Web服务的核心技术6.36.3Web服务的核心技术--Web服务描述语言基于WSDL的基本服务描述12/12/2022546.3Web服务的核心技术--Web服务描述语言基于W6.3Web服务的核心技术--Web服务描述语言WSDL模型12/12/2022556.3Web服务的核心技术--Web服务描述语言WSD第6章Web服务体系结构--Web服务的核心技术6.3.4统一描述、发现和集成协议UDDI,UniversalDescription,DiscoveryandIntegration是一套基于Web的,分布式的、为Web服务提供的信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web服务注册,以使得别的企业能够发现服务的访问协议的实现标准。UDDI商业注册:使用一个XML文档来描述企业及其提供的Web服务。是一种目录服务,企业可以使用它对Web服务进行注册和搜索。12/12/202256第6章Web服务体系结构--Web服务的核心技术6.36.3Web服务的核心技术--UDDIUDDI注册原理12/12/2022576.3Web服务的核心技术--UDDIUDDI注册原理6.3Web服务的核心技术--UDDIUDDI工作原理12/12/2022586.3Web服务的核心技术--UDDIUDDI工作原理6.3Web服务的核心技术--UDDIUDDI注册中心提供的信息(1)白页包括地址、联系方式和已知的企业标识;(2)黄页包括基于标准分类法的行业类别;(3)绿页包括关于商业实体所提供的服务技术信息,以及Web服务规范的引用,也支持指向基于发现机制的不同文件的URL指针。12/12/2022596.3Web服务的核心技术--UDDIUDDI注册中心6.3Web服务的核心技术--UDDIUDDI信息结构绑定包含了到tModel的引用这些引用宣布了服务的接口规范12/12/2022606.3Web服务的核心技术--UDDIUDDI信息结构6.3Web服务的核心技术--UDDI从UDDI到WSDL的映射12/12/2022616.3Web服务的核心技术--UDDI从UDDI到WS第6章Web服务体系结构--Web服务的核心技术小结Web服务可以归结为以下几点:第一,数据怎么表示?第二,数据怎么传输?第三,Web服务怎么描述?第四,在哪里,怎样获取需要的信息?12/12/202262第6章Web服务体系结构--Web服务的核心技术小结第6章Web服务体系结构--Web服务的核心技术小结在Web服务中:XML是数据的格式SOAP是调用Web服务的协议WSDL是调用Web服务的格式UDDI是Web服务登记、查找和利用的组合四个方面组成了整个Web服务的架构。12/12/202263第6章Web服务体系结构--Web服务的核心技术小结第6章Web服务体系结构--Web服务的核心技术Webservices工作流程WebService客户端查找服务链接到DISCO或WSDL文档你都有什么服务啊?(WSDL)/?WSDLXMLwithservice描述那给我用用吧(SOAP)//svc1XML/SOAPBodyUDDIWebService12/12/202264第6章Web服务体系结构--Web服务的核心技术We第6章Web服务体系结构6.4面向服务的软件体系结构6.4.1面向服务的体系结构概念SOA,service-orientedarchitectureSOA为一种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,可以以定义好的顺序调用这些服务来形成业务流程。W3C定义服务是提供者完成一组工作,为服务使用者交付所需的最终结果12/12/202265第6章Web服务体系结构6.4面向服务的软件体系结构6.4面向服务的软件体系结构--SOA概念S定义SOA为客户端/服务器的软件设计方法,一项应用由软件服务和软件服务使用者组成,SOA与大多数通用的客户端/服务器模型不同之处,在于它着重强调软件构件的松散耦合,并使用独立的标准接口。Gartner定义SOA本质上是服务的集合,服务间彼此通信,这种通信可能是简单的数据传送,也可能是两个或更多的服务协调进行某些活动。服务间需要某些方法进行连接。12/12/2022666.4面向服务的软件体系结构--SOA概念Servic6.4面向服务的软件体系结构--SOA概念面向服务的体系结构模型功能12/12/2022676.4面向服务的软件体系结构--SOA概念面向服务的体6.4面向服务的软件体系结构--SOA概念单个服务的内部结构接口层通过服务接口的标准化描述,从而使得该服务可以提供给任何异构平台和任何用户接口使用。这允许并支持基于Web服务的应用程序成为松耦合、面向构件和跨技术实现。12/12/2022686.4面向服务的软件体系结构--SOA概念单个服务的内6.4面向服务的软件体系结构--SOA概念SOA模型的特征SOA是一种粗粒度、松耦合的服务体系结构,其服务之间通过简单、精确定义接口进行通信,不涉及底层编程接口和通信模型。具有以下特征:松散耦合粗粒度服务标准化接口12/12/2022696.4面向服务的软件体系结构--SOA概念SOA模型的第6章Web服务体系结构--SOA6.4.2面向服务体系结构的设计原则1.面向服务的分析与设计原理SOA主要抽象级别:操作、服务和业务流程。12/12/202270第6章Web服务体系结构--SOA6.4.2面向服务6.4面向服务的软件体系结构--SOA的设计原则2.面向服务体系结构的实践原则业务驱动服务,服务驱动技术业务敏捷是基本的业务需求12/12/2022716.4面向服务的软件体系结构--SOA的设计原则2.面第6章Web服务体系结构本章作业与思考题1、什么是Web服务体系结构?与传统的结构相比,使用Web服务有哪些好处?2、在Web服务中,如何实现其松散耦合的特点?3、试分析服务提供者、服务请求者和服务代理三者的作用,以及它们之间的工作流程。4、试解释Web服务栈的层次结构。5、Web服务有哪些核心技术,这些技术是如何在Web服务中发挥作用的。6、从管理的角度看,SOA有什么优点?12/12/202272第6章Web服务体系结构本章作业与思考题1、什么是Web服END12/12/202273END12/11/202273软件体系结构
---Web服务体系结构12/12/202274软件体系结构
---Web服务体系结构12/11/202课程内容
软件体系结构概论
软件体系结构建模
软件体系结构风格
软件体系结构描述
动态软件体系结构
Web服务体系结构
基于体系结构的软件开发
软件体系结构的分析与测试
软件体系结构评估
软件产品线体系结构12/12/202275课
软件体系结构概论12/11/20222第6章Web服务体系结构6.1Web服务概述Web服务(Webservice)作为一种新兴的Web应用模式,是一种崭新的分布式计算模型,是Web上数据和信息集成的有效机制。“一切都是服务”--美国Microsoft(微软)公司目的:成群的个人电脑、服务器、智能设备都可以基于因特网服务无缝协同作业。12/12/202276第6章Web服务体系结构6.1Web服务概述第6章Web服务体系结构--Web服务概述6.1.1什么是Web服务数据12/12/202277第6章Web服务体系结构--Web服务概述6.1.1第6章Web服务体系结构--Web服务概述6.1.1什么是Web服务Web服务就像Web上的构件编程,开发人员通过调用Web应用编程接口,将Web服务集成进他们的应用程序,就像调用本地服务一样。Web服务技术核心:XML可扩展标记语言
SOAP简单对象访问协议
WSDLWeb服务描述语言
UDDI统一描述、发现和集成协议Web服务的关键:Web服务体系结构12/12/202278第6章Web服务体系结构--Web服务概述Web服务概述--什么是Web服务Web服务集成的四项基本原则因特网连接服务发现公共数据表示公共通信协议需要一种在因特网上查找企业用来作业的服务的简单方法。UDDI和WSDL履行此功能。需要一种公共语言来确保可以与其他用户共享信息。XML是使这种共享成为可能的因素;必须有一种用来实际执行业务的公共协议。SOAP就是这种协议,它使得系统可以相互通话并提出请求。各系统通过因特网连接。12/12/2022796.1Web服务概述--什么是Web服务Web服务集6.1Web服务概述--什么是Web服务Web服务的逻辑层数据层数据访问层业务逻辑业务面监听者离客户端最近离客户端最远保存物理数据为业务层提供数据接收并解析带有请求服务的消息发送给业务面相应的方法提供业务面使用的服务到底层业务对象的接口业务层12/12/2022806.1Web服务概述--什么是Web服务Web服务的第6章Web服务体系结构--Web服务概述6.1.2Web服务的不同描述从功能角度:Web服务基于TCP/IP、HTTP、XML等规范而定义的,具有如下功能:Web上链接文档的浏览、事务的自动调用、服务的动态发现和发布。从网格计算角度:Web服务能用于Web上的资源发现,数据管理及网格计算平台上异构系统的系统设计,从而突出网格服务的新概念。从信息检索角度:Web服务是包含了分布策略和路由信息的电子文档之上进行分布式文档检索的服务。12/12/202281第6章Web服务体系结构--Web服务概述Web服务概述--Web服务的不同描述Web服务的分类针对不同的应用背景,Web的应用对象也不同,目前广泛应用的Web服务可分为如下四类:面向企业应用的服务面向消费者应用的服务面向设备的服务面向系统的服务12/12/2022826.1Web服务概述--Web服务的不同描述Web服6.1Web服务概述--Web服务的不同描述Web服务描述小结在本书中,我们认为Web服务是一个可以用URI来标志的软件系统,它采用XML格式的信息来定义和描述对外的公共接口和绑定。Web服务可被其他软件系统发现,并通过使用基于XML信息,借助Internet协议,依照Web服务中定义的描述方式实现交互。URI:universalresourceidentifier,统一资源定位符12/12/2022836.1Web服务概述--Web服务的不同描述Web服第6章Web服务体系结构--Web服务概述6.1.3Web服务的特点使用标准协议规范使用协约的规范性高度集成能力完好的封装性松散耦合就外部使用者的角度而言,Web服务是一种部署在Web上的对象/构件,它具备以下特点:12/12/202284第6章Web服务体系结构--Web服务概述6.1.3第6章Web服务体系结构6.2Web服务体系结构模型1.Web服务模型一个完整的Web服务包括三种逻辑构件:服务代理:起中介作用,使服务的注册构件服务请求者:可在应用程序中通过服务代理请求服务,调用所需服务服务提供者:提供服务,并进行注册以使服务可用12/12/202285第6章Web服务体系结构6.2Web服务体系结构模型服务请求者向服务代理发出服务查询请求服务提供者向服务代理发布所提供的服务服务的具体实现12/12/202286服务请求者向服务代理发出服务查询请求服务提供者向服务代理发布与Web相关的操作发布–服务提供者向服务代理发布所提供的服务。–发布操作对服务进行一定的描述并发布到代理服务器上,进行注册。–在发布操作中,服务提供者可以决定发布或者不发布服务。12/12/202287与Web相关的操作发布12/11/202214与Web相关的操作发现–服务请求者向服务代理发布服务查询请求。–服务代理提供规范的接口来接受服务请求者的查询–服务请求者根据通用的行业分类标准浏览分类或者通过关键字搜索,并逐步缩小查找范围,直到找到满足条件的服务为止。12/12/202288与Web相关的操作发现12/11/202215与Web相关的操作绑定–服务的具体实现。–分析从注册服务器中得到的调用该服务所需的详细绑定信息,根据这些信息,服务请求者可以编程实现对服务的远程调用–详细信息包括服务的访问路径、调用参数、返回结果、传输协议、安全要求等12/12/202289与Web相关的操作绑定12/11/202216与Web相关的操作Web服务是由一个服务描述来描述的接口,服务描述是实现该服务本身。•服务是一个软件模块,部署在由服务提供者提供的可以通过网络访问的平台。•服务存在就是要被服务请求者调用或者服务请求者交互。•当服务的实现中需要用到其他Web服务时,也可以作为一个服务的请求者。•服务描述包括服务的接口和实现细节,其中包括服务的数据类型、操作、绑定信息、网络位置以及其他元数据12/12/202290与Web相关的操作Web服务是由一个服务描述来描述的接口,服第6章Web服务体系结构--Web服务体系结构模型2.Web服务开发生命周期构建部署运行管理包括开发和测试Web服务的实现定义服务接口描述和定义实现描述向服务请求者或服务注册中心发布服务接口和服务实现的定义把Web服务的可执行文件部署到执行环境中可以调用Web服务持续的管理和经营Web服务应用程序12/12/202291第6章Web服务体系结构--Web服务体系结构模型2.第6章Web服务体系结构--Web服务体系结构模型3.Web服务栈发现服务UDDI、DISCO描述服务WSDL、XMLSchema消息格式层SOAP编码格式层XML传输协议层HTTP、TCP/IP、SMTP等帮助客户端应用程序解析远程服务的位置为客户端应用程序提供正确地与远程服务交互的描述信息保证客户端与服务器在格式设置上的一致性为客户端和服务器之间提供一个标准的、独立于平台的数据交换编码格式为客户端和服务器之间提供交互的网络通信协议12/12/202292第6章Web服务体系结构--Web服务体系结构模型3.发现服务层UniversalDescriptionDiscoveryandIntegration即统一描述、发现和集成协议。•UDDI是Web服务集成的一个体系框架。用来说明一个Web服务的一些信息类型,以便帮助服务的请求者确定:WHO,WHAT,WHERE,HOW.•UDDI定义如何查找Web服务(及其WSDL文件)12/12/202293发现服务层UniversalDescriptionDis发现服务层主要用来帮助客户端应用程序解析远程服务的位置。•通过UDDI实现UDDI规范描述了Web服务的概念,定义了一种编程接口•通过UDDI,企业可以发布自己的Web服务供其他企业查询和调用,也可以查询特定服务的描述信息,动态绑定到该服务上。12/12/202294发现服务层主要用来帮助客户端应用程序解析远程服务的位置。12描述层为客户端应用程序提供与远程服务交互的描述信息•通过WSDL实现•WSDL为服务提供者提供以XML格式描述Web服务请求的标准格式,将网络服务描述为能将进行消息交互的通信端点集合,以表达一个Web服务的功能、位置和调用方法12/12/202295描述层为客户端应用程序提供与远程服务交互的描述信息12/11消息格式层保证客户端应用程序和服务器端在格式设置上保持一致•通过SOAP协议实现•SOAP定义了服务请求者和服务提供者之间的消息传递规范。•SOAP用XML来格式化信息,用HTTP承载消息。12/12/202296消息格式层保证客户端应用程序和服务器端在格式设置上保持一致1消息格式层SOAP包括了3部分–SOAP封装:定义了描述消息和如何处理消息的框架的封装–SOAP编码规范:表达应用程序定义的数据类型实例的编码规则–SOAPRPC表示:描述远程过程调用和应答的协议12/12/202297消息格式层SOAP包括了3部分–SOAP封装:定义了描述消息编码格式层为客户端和服务器之间提供一个标准的、独立于平台的数据交换编码格式•一般通过XML实现12/12/202298编码格式层为客户端和服务器之间提供一个标准的、独立于平台的数传输协议层为客户端和服务器提供交互的网络通信协议•一般通过HTTP和SMTP实现•HTTP是广泛使用的协议,为Web服务部件通过Internet交互奠定了协议基础,并具有良好的穿透防火墙的功能•SMTP适用于异步通信,在服务中断时,SMTP可以自动进行重试12/12/202299传输协议层为客户端和服务器提供交互的网络通信协议12/11/第6章Web服务体系结构--Web服务体系结构模型4.Web服务体系结构的优势高度的通用性和易用性完全的平台、语言独立性高度的集成性容易部署和发布12/12/2022100第6章Web服务体系结构--Web服务体系结构模型4.第6章Web服务体系结构6.3Web服务的核心技术XML可扩展标记语言SOAP简单对象访问协议WSDLWeb服务描述语言UDDI统一描述、发现和集成协议12/12/2022101第6章Web服务体系结构6.3Web服务的核心技术第6章Web服务体系结构--Web服务的核心技术6.3.1作为Web服务基础的XMLXML是W3C制定的作为Internet上数据交换和表示的标准语言。Web服务所提供的接口、对Web服务的请求、Web服务的应答数据都是通过XML描述的。Web服务的所有协议都建立在XML基础之上,XML可称为Web服务的基石。
12/12/2022102第6章Web服务体系结构--Web服务的核心技术6.3第6章Web服务体系结构--Web服务的核心技术6.3.1作为Web服务基础的XML客户端和服务器能即时处理多种形式的信息,当客户端向服务器发出不同的请求是,服务器只需将数据封装进XML文件中,由用户根据自己的需求,选择和制作不同的应用程序来处理数据。这不仅减轻了Web服务器的许多负担,也大大减少了网络流量。同时,XML可以简化数据交换,支持智能代码和智能搜索,软件开发人员可以使用XML创建具有自我描述性的数据文档。
12/12/2022103第6章Web服务体系结构--Web服务的核心技术6.3作为Web服务基础的XML
XML使用了XMLSchema作为建模语言。•XMLSchema是W3C推荐的标准,提供了文档类型定义(DTD)的方法,使开发人员能更精确的结构化XML数据•XMLSchema已成为Web服务中协议制定的标准语言。12/12/2022104作为Web服务基础的XML
XML使用了XMLSchema第6章Web服务体系结构--Web服务的核心技术6.3.2简单对象访问协议SOAP,SimpleObjectAccessProtocol
SOAP本身不定义任何应用语言,只定义简单的机制,通过提供一个有标准构件的包模型和通过在模块中对数据编码的机制,来定义一个简单的表示应用语义的机制。•SOAP能够应用于从消息传递到远程过程调用的各种系统中。12/12/2022105第6章Web服务体系结构--Web服务的核心技术6.3是一个基于XML的,在松散分布式环境中交换结构化信息的轻量级协议,它为在一个松散的、分布式环境中使用XML对等地交换结构化的和类型化的信息提供了一种简单的机制。应用:从消息传递到远程过程调用(RPC)的各种系统中。SOAP规范包括:SOAP信封SOAP编码规则SOAPRPC表示SOAP绑定12/12/2022106是一个基于XML的,在松散分布式环境中交换结构化信息的轻量级6.3Web服务的核心技术–简单对象访问协议1.SOAP信封<SOAP-ENV:Envelopexmlns:SOAP-ENV=“http://{soaporg}/envelope”
SOAP-ENV:encodingStyle=“http://{soaporg}/encoding”><SOAP-ENV:Body><m:QuoteStockPricexmlns:m=“some-URI”><Symbol>IBM</Symbol></m:QuoteStockPrice
></SOAP-ENV:Body></SOAP-ENV:Envelope>信封的名空间信封(envelope)消息(message)消息的名空间12/12/20221076.3Web服务的核心技术–简单对象访问协议1.SOASOAP通信体系结构典型SOAP通信体系结构中的一些组件:–SOAP客户机–SOAP服务器–实际服务12/12/2022108SOAP通信体系结构典型SOAP通信体系结构中的一些组件12/12/202210912/11/202236SOAP客户机SOAP客户机是一台有SOAP机制的机器,它可以产生SOAP请求并通过HTTP发送到服务器。12/12/2022110SOAP客户机SOAP客户机是一台有SOAP机制的机器SOAP服务器SOAP服务器也是一台有SOAP机制的机器,能够接收来自SOAP客户机的请求,并对之作出适当的响应。•这些编过码的响应会返回发出请求的SOAP客户机。•在SOAP服务器内部有三个实体:–服务管理器–被部署服务的列表–XML转换程序12/12/2022111SOAP服务器SOAP服务器也是一台有SOAP机制的机SOAP消息通常只有两种类型的SOAP消息:–SOAP请求就是一台SOAP客户机发送给SOAP服务器的内容,–SOAP响应就是SOAP服务器对SOAP客户机响应的内容。12/12/2022112SOAP消息通常只有两种类型的SOAP消息:12/11/Soap请求,响应见教材服务管理器负责根据请求管理服务,元素<m:getListOfModelsxmlns:m=“urn:MobilePhoneservice”>包含了服务的名称。•服务管理器读取SOAP客户机想调用的SOAP服务的名称并检查所需的服务实际上是否驻留于这台SOAP服务器上。12/12/2022113Soap请求,响应见教材12/11/202240Soap请求,响应此后,服务管理器查询被部署服务的列表。若存在,服务管理器将把SOAP请求传送给XML转换程序。•XML转换程序就负责将SOAP请求的XML结构转换成程序员用来实现实际服务的编程语言(如Java)的结构。还要负责将来自实际服务的响应转换回SOAP响应的XML结构。12/12/2022114Soap请求,响应此后,服务管理器查询被部署服务的列表。若存实际服务图中标有actualservice的框就是实际服务驻留的位置。–服务实现可以是:例如,COM组件或JavaBeans组件的形式。•XML转换程序负责将XML结构转换成合适的方法调用。–当XML转换程序调用了实际服务实现的某个方法时,这个方法就会完成它的工作并且将结果信息返回XML转换程序12/12/2022115实际服务图中标有actualservice的框就是实际服务实际服务图中连接XMLtranslator和actualservice的箭头的两端同在一个企业内,这意味着同一个组织控制着通信两端的接口。•与穿过企业边界的在SOAP客户机和SOAP服务器之间的箭头相比,这正是SOAP的目的所在。12/12/2022116实际服务图中连接XMLtranslator和actualSOAP消息一条SOAP消息只是一个XML文档,由一个强制性的SOAPEnvelope组成•SOAPEnvelope有一个可选的SOAPHeader和一个必须有的SOAPBody。12/12/2022117SOAP消息一条SOAP消息只是一个XML文档,由一个SOAP信封SOAP信封是SOAP消息在句法上的最外层,它构造了一个整体的框架•SOAP信封可以用来表示消息中包含什么内容,谁应当处理这些内容,谁应当处理这些内容,是可选的还是强制的12/12/2022118SOAP信封SOAP信封是SOAP消息在句法上的最外层,它构SOAP的EnvelopeEnvelope是表示一条消息的顶层元素。为了发送一条SOAP消息,必须包括此元素。•Envelope使用必要的SOAP名称空间标识符/soap/envelope/。•若Envelope包含了错误的名称空间,会产生一个关于Envelope名称空间版本的错误。12/12/2022119SOAP的EnvelopeEnvelope是表示一条消息的一个空的SOAPEnvelope<SOAP-ENV:Envelopexmlns:SOAP-ENV=“/soap/envelope/”></SOAP-ENV:Envelope>•称其为“空Envelope”是为了强调在通过“投递”发出它之前,它最终应该包含一封“信”(也许是商业信)。•SOAP模式中的“信”就是指“SOAPBody12/12/2022120一个空的SOAPEnvelope<SOAP-ENV:EnveSOAPHeaderSOAPHeader是可选的。•Header在松散环境下且通信方之间尚未达成一致的情况下,Header提供了一个扩展SOAP消息功能的机制。•例如,认证就是由SOAPHeader条目所提供的一种典型扩展。在此情况下,将有一个认证框架,它会使用SOAP作为更低级别的传输。12/12/2022121SOAPHeaderSOAPHeader是可选的。12SOAPBodyBody元素包含实际要发送的消息。•Body是一个强制性的元素且其子元素通常属于一个用户定义的名称空间。Body元素是必要信息的容器。这个元素必须在SOAP消息中出现并且必须是SOAPEnvelope元素的一个直接子元素。•Body必须直接跟在SOAPHeader元素的后面。若没有Header元素,那么它应直接跟在Envelope元素的后面。12/12/2022122SOAPBodyBody元素包含实际要发送的消息。12/6.3Web服务的核心技术–简单对象访问协议2.SOAP编码规则是一个定义传输数据类型的通用数据类型系统,这个简单类型系统包括:程序语言、数据库和半结构数据中不同类型系统的公共特性。通用数据类型:简单类型复合类型12/12/20221236.3Web服务的核心技术–简单对象访问协议2.SOA6.3Web服务的核心技术–简单对象访问协议3.SOAPRPC表示定义了远程过程调用和应答的协议。RPC的调用和响应都在SOAPBody元素中传送。在RPC中使用SOAP时,需要绑定一种协议,可以使用各种网络协议,如HTTP、SMTP和FTP等来实现基于SOAP的RPC,一般使用HTTP作为SOAP的协议绑定。SOAP通过协议绑定来传送目标对象的URI,在HTTP中的请求URI就是需要调用的目标SOAP节点的URI。12/12/20221246.3Web服务的核心技术–简单对象访问协议3.SOA6.3Web服务的核心技术–简单对象访问协议4.SOAP绑定定义了一个使用底层传输协议来完成在节点间交换SOAP信封的约定。SOAP协议中定义了与HTTP的绑定:利用HTTP来传送SOAP消息,主要是利用HTTP的请求/响应消息模型,将SOAP请求的参数放在HTTP请求里,将SOAP响应的参数放在HTTP响应里。12/12/20221256.3Web服务的核心技术–简单对象访问协议4.SOA第6章Web服务体系结构--Web服务的核心技术6.3.3Web服务描述语言WSDL,WebServicesdescriptionlanguage是一个基于XML的用于描述Web服务以及如何访问Web服务的语言。WSDL为使用者提供了一种了解调用规则以便进行调用的方法。12/12/2022126第6章Web服务体系结构--Web服务的核心技术6.36.3Web服务的核心技术--Web服务描述语言基于WSDL的基本服务描述12/12/20221276.3Web服务的核心技术--Web服务描述语言基于W6.3Web服务的核心技术--Web服务描述语言WSDL模型12/12/20221286.3Web服务的核心技术--Web服务描述语言WSD第6章Web服务体系结构--Web服务的核心技术6.3.4统一描述、发现和集成协议UDDI,UniversalDescription,DiscoveryandIntegration是一套基于Web的,分布式的、为Web服务提供的信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web服务注册,以使得别的企业能够发现服务的访问协议的实现标准。UDDI商业注册:使用一个XML文档来描述企业及其提供的Web服务。是一种目录服务,企业可以使用它对Web服务进行注册和搜索。12/12/2022129第6章Web服务体系结构-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 4706.124-2024家用和类似用途电器的安全第124部分:商用真空包装器具的特殊要求
- GB/T 44783-2024大口径空间天文望远镜光学成像质量地面评价方法
- 图案形态课件教学课件
- 第二章 相互作用-力的合成与分解 2025年高考物理基础专项复习
- 5.2 课时2 共价键 分子间作用力 课件 高一上学期化学苏教版(2019)必修第一册
- 3.3盐类的水解 第一课时 课件高二上学期化学人教版(2019)选择性必修1
- 糖尿病与感染综合管理
- 糖尿病足换药技术
- 医药总监年度规划
- 白血病病人的护理讲课
- 高大模板安全专项施工方案(专家论证)
- 个人晋升述职报告PPT课件(带内容)
- 教学法研究报告:《任务驱动法》探索与实践
- 产品造型设计基础--形态构成要素、形体的构成ppt课件
- 商业发票模板(INVOICE)
- 医院绩效考核分配方案及实施细则
- 水工环地质调查技术标准手册
- 血液科常用化疗方案(1)
- 7上unit2reading
- 王维的生平经历
- 次氯酸钠溶液 MSDS
评论
0/150
提交评论