XML Web 服务是提供特定功能元素(如应用程序逻辑)的可编程实体.
可以使用复合方式使用XML Web 服务来集成一组似乎完全不同的现有应用程序.
使用XML Web 服务,可以讲每个现有应用程序的功能和数据以XML Web 服务形式公开.
一、XML Web 服务方案
XML Web 服务实现一种强大的机制,通过该机制可以创建构成端到端工作流解决方案的应用程序.
BizTalk Framewor提供了一个附加协议层,该协议层定义了若干机制,用于对消息进行标识和寻址、定义小心的生存期、将消息与附件打包、将消息可靠地传递到目标以及确保消息内容的身份验证、完整性和保密性。
二、XML Web 服务基础结构
1)服务目录:
提供一个中心位置以提供程序可在其中发布与可用的XML Web服务有关的消息。
服务目录可以是XML Web服务本身,通过编程方式访问,并在响应来自潜在的XML Web服务客户端的查询时提供搜索结果。
服务目录定位提供XML Web服务的组织,或确定某个特定组织提供何种XML Web服务。
DDI(通用说明、发现和集成)规范定义一个发布和发现有关XML Web服务的信息的标准方式。
UDDI关联的XML架构定义了四种XML Web服务信息:业务信息、服务信息、绑定信息、有关服务规范的信息
2)服务发现
服务发现是定位(或发现)使用Web服务描述语言(WSDL)描述特定XML Web服务的一个或多个相关文档的过程。
XML Web服务客户端通过发现过程了解Web服务是否存在以及该XML Web服务的描述文档所在的位置。
已发布的.disco文件(包含指向描述该XML Web服务的其他资源的连接的XML文档)使以编程方式发现XML Web服务成可能。
<?xml version="1.0" encoding="utf-9" ?> <discovery xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLScheme-instance" xmlns="http://schemas.xmlsoap.org/disco/"> <contractRef ref="http://www.contoso.con/Counter.asmx?wsdl" docRef="http://www.contoso.com/Counter.asmx"\ xmlns="http://schemas.xmlsoap.org/disco/scl/" /> <soap address="http://www.contoso.com/Counter.asmx" xmlns:ql="http://tempuri,org/" binding="ql:CounterSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" /> </discovery>
实现XML Web服务的网站不需要支持发现。另一个站点可能负责描述,如XML Web服务目录。
3)服务描述
服务基础结构式建立在通过基于XML的消息进行通信的基础上,这些消息规范符合已发布的服务描述。
服务描述是使用称为WSDL(web服务描述语言)的XML语法编写的XML文档,定义XML Web服务可以理解的消息格式。
服务描述起协议的作用,定义XML Web服务的行为并指示潜在客户端如何与该服务进行交互。
服务的行为由该服务定义并支持的消息处理模式确定。这些模式在概念上指定在讲格式正确的消息提交给XML Web服务时,该服务的使用者所能期望发生的操作。
4)服务联网形式
(1)HTTP-GET 和 HTTP-POST
HTTP-GET 和 HTTP-POST 是使用 HTTP(超文本传输协议)谓词以及与之关联的请求语义将参数作为名称/值对编码和传递的标准协议。每个协议都由一系列 HTTP 请求头组成,这些头与一些其他信息一起定义客户端向服务器请求的内容,而在成功时,服务器将用一系列 HTTP 响应头和所请求的数据响应。
HTTP-GET 使用 application/x-www-form-urlencoded MIME 类型以 URL 编码文本格式传递其参数,该 MIME 类型追加到处理该请求的服务器的 URL 后。URL 编码是一种字符编码格式,它确保传递的参数由一致的文本组成(如将空格编码为 %20)。追加的参数也称为查询字符串。
与 HTTP-GET 类似,HTTP-POST 参数也是 URL 编码的。但是,名称/值对不是作为 URL 的一部分传递,而是在实际的 HTTP 请求消息中传递。
(2)SOAP
SOAP 是一种基于 XML 的、用于在 Web 上交换结构化和类型信息的简单的轻型协议。SOAP 的总体设计目标是使其尽可能地简单,并提供最少的功能。该协议定义一个不包含任何应用程序或传输语义的消息处理框架。因此,该协议是模块化的,并具有很强的扩展性。
通 过在标准传输协议上传输,SOAP 能够利用现有的 Internet 的开放式结构并可轻松地为能够支持最基本的 Internet 标准的任意系统所接受。可以认为支持符合 SOAP 的 XML Web 服务所需的基础结构极其简单但却功能强大,原因是它向现有的 Internet 基础结构添加的内容相对较少,但仍能支持用 SOAP 生成的服务的通用访问。
SOAP 协议规范包含四个主要组成部分:定义用于封装数据的必需的可扩展信封;定义用来表示应用程序定义的数据类型和有向图形的可选数据编码规则,以及一个用于序列化非句法数据模型的统一模型;RPC 样式(请求/响应)的消息交换模式(可选);定义 SOAP 和 HTTP 之间的绑定(可选的)。
三、XML Web服务生存期剖析
1)生成XML Web服务
创建XML Web服务类似于创建任何提供对其应用程序逻辑的编程访问的组件
您需要一些功能来构成这一要公开的功能,需要一个服务描述来定义如何使用该服务,并需要一个基础结构来支持请求的接收和处理以及相应的发送
2)生成XML Web服务客户端
XML Web服务可以使用URL、HTTP和XML进行访问,这意味着任何平台上的任何语言运行的程序都可以访问XML Web服务。
XML Web服务的分散性质是客户端和XML Web服务能够作为自治单元运行,所以使用XML Web服务的方法数不胜数。
四)使用ASP.NET创建XML Web服务的优势 使用 ASP.NET,可以生成在实现时使用行业范围标准的 Web 服务
ASP.NET 允许您使用熟悉的编程结构(例如方法、基元类型和用户定义的复杂类型)生成并发布 Web 服务。
来源地址:http://msdn.microsoft.com/zh-cn/library/w9fdtx28%28v=vs.80%29.aspx