- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
04-Web服务实用技术(WSDL)
Web服务实用技术 主讲:李伟刚 liweigang@ 西北工业大学软件与微电子学院 第四章 WSDL 主要内容 WSDL概述 WSDL文档结构 消息交换方式 消息传递模式 第一节 WSDL概述 WSDL描述web服务的三个基本属性: 服务做些什么? 服务所提供的操作(方法); 如何访问服务? 数据格式以及访问服务操作的必要协议; 服务位于何处? 由特定协议决定的网络地址,如URL。 告诉服务的使用者如何将请求消息格式化,通过何种通信协议在何处访问web service。 面向服务视图 规范描述资源与协议变换 实现自动服务部署和调用 实现 Web 服务体系结构的松散耦合; 无论是请求者还是提供者可以各自独立地使用平台、编程语言或分布式对象模型。 与IDL的不同: 在描述web service接口的同时,还要定义访问web service的机制; 需要定义web service的有效访问位置,因为在开放的计算环境下,没有一个公共模块提供服务的访问地址。 第二节 WSDL文档结构 WSDL是XML描述的网络服务,基于消息机制、包含面向文本或面向过程信息的操作集合 操作及消息的抽象定义与它们具体的网络实现和数据格式绑定是分离的,这样就可以重用这些抽象定义 方法名 输入 参数1 参数2 参数x 输出 类型 服务接口组成了服务描述中的可重用部分,包括type元素、message和portType。 types元素中描述消息中复杂数据类型的使用。 message元素指定XML 数据类型组成消息的各个部分。操作的输入或输出(参数)被定义为message 元素。 Operation元素定义了输入和输出数据流中可以出现的XML消息,作为Web服务交互基本传输单元。 portType元素中定义了Web服务的操作,与传统中间件IDL的接口相似。 服务实现定义是一个描述给定服务提供者如何实现特定服务接口的WSDL文档。有binding和services。 binding 元素描述特定服务接口在作为负载传输时的消息传输协议(如SOAP)、网络传输协议(如Http)、消息风格(如SOAP/RPC or SOAP/Document)和消息的编码规则(如SOAP或literal) Port与binding一一对应,以URI的形式描述了绑定对应的端口类型的Internet访问地址。 service元素。服务元素包含一组port元素,将port逻辑分组,如同一访问地址的port可以归为一组,或一个端口类型对应的多个绑定归为一组。 wsdl /wsdl/ soap /wsdl/soap/ http /wsdl/http/ mime /wsdl/mime/ soapenc /soap/encoding/ soapenv /soap/envelope/ xsi /2000/10/XMLSchema-instance xsd /2000/10/XMLSchema types元素包含了交换消息的数据类型定义。为了实现最大的互操作性(interoperability)和平台中立性(neutrality),WSDL选用XML Schema DataTypes,简称XSD作为标准类型系统,并将它作为固有类型系统。 definitions .... types xsd:schema .... /* /types /definitions 使用元素(element)形式,而不使用属性(attribute)形式; 不包括仅在特殊的协议和数据格式中使用的元素或者属性; 数组类型使用Soap:Array 类型,并使用ArrayOfXXX作为数组类型的名; 使用XSD编码表示xsd:anyType。 消息由若干个逻辑部件(part)构成。每个部件使用一个消息类型属性与某个类型系统的类型相关联。 消息定义语法如下: definitions .... message name=nmtoken * part name=nmtoken element=qname? type=qname?/ * /message /definitions message name=PO part name=po element=tns:PO/ part name=customer element=tns:Customer/ /message message name=P1 part name=“address type=“XSD:string/ /message message name=P2 part name=composite type=tns:Composite/ /messa
文档评论(0)