您的位置:知识库 »

WCF专题系列(1):深入WCF寻址Part 1—Web服务寻址规范

作者: TerryLee  来源: 博客园  发布时间: 2008-10-25 01:07  阅读: 2612 次  推荐: 0   原文链接   [收藏]  
摘要:了解Web服务寻址规范的不错的文章。
[1] WCF专题系列(1):深入WCF寻址Part 1—Web服务寻址规范
[2] WCF专题系列(1):深入WCF寻址Part 1—Web服务寻址规范

概述

众所周知,WCF服务的所有通信都是通过服务的终结点发生的,每个 服务终结点都包含一个地址Address、一个绑定Binding 和一个契约Contract。契约指定可用的操作,绑定指定如何与服务进行通信,而地址指定查找服务的位置,即非常经典的“ABC”。WCF用多种不同的通信协议为公开服务终结点和与其通信提供了灵活的模式,在WCF专题系列的第一部分,我将围绕终结点的寻址细节展开讨论,再此之前,我们先看一下WCF的编程模型,如图1所示:

TerryLee_WCF_01

图1

Web服务寻址规范

在 WCF 中,终结点地址是按照Web服务寻址 WS-Addressing 规范中的定义建立终结点引用(Endpoint Reference,EPR)的模型,我们有必要对Web服务寻址规范来做一个认识,这里先提出一个问题,为什么需要Web服务寻址?一方面SOAP如果要做到真正的与传输协议无关,就要以一种与传输协议无关的方式来定义消息的接收者与消息返回的地址;另一方面,定义寻址信息有助于在发生网络错误或丢失响应的情况下将消息返回给请求者;最后一套完善的寻址机制使的复杂的交互模式成为可能,如图2所示:

TerryLee_WCF_04

图2

在WS-Addressing中,其实就两个概念:终结点引用(Endpoint Reference)和SOAP结构的消息信息报头(Message Information Headers)。如下面的示例表示将一条SOAP 1.2的消息发送到http://fabrikam123.com/Purchasing。:

<
S:Envelope xmlns:S="http://www.w3.org/2002/12/soap-envelope"
   xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing">
  <S:Header>
    <wsa:ReplyTo>
      <wsa:Address>http://business456.com/client1</wsa:Address>
    </wsa:ReplyTo>
    <wsa:To>http://fabrikam123.com/Purchasing</wsa:To>
    <wsa:Action>http://fabrikam123.com/SubmitPO</wsa:Action>
  </S:Header>
  <S:Body>
    ......
  </S:Body>
</S:Envelope>

终结点引用

Web 服务终结点是一个可以引用的实体、处理器或可以作为 Web 服务消息目标的资源,而终结点引用传达了标识或者引用一个 Web 服务终结点所需的信息,它的使用方式可以有多种:终结点引用适用于传达访问 Web 服务终结点所需的信息,也可以在 Web 服务间往返的各条消息提供地址。如下面的代码表示了终结点引用的信息集:

<wsa:EndpointReference>
  <wsa:Address>xs:anyURI</wsa:Address>
  <wsa:ReferenceProperties>... </wsa:ReferenceProperties> ?
  <wsa:ReferenceParameters>... </wsa:ReferenceParameters> ?
  <wsa:PortType>xs:QName</wsa:PortType> ?
  <wsa:ServiceName PortName="xs:NCName"?>xs:QName</wsa:ServiceName> ?
  <wsa:Policies> ... </wsa:Policies>?
  <xs:any/>*
</wsa:EndpointReference>

从最简单的意义上来说,终结点引用就是一些使用XML元素来包装的URL,如下面的代码:

<wsa:myLocation>
  <wsa:Address>http://localhost:8887/CalculatorService</wsa:Address>
</wsa:myLocation>

这里wsa:myLocation就是终结点引用,在它的内部是一个Web服务寻址规范定义的元素,用它来指定当访问CalculatorService服务时所用的地址。作为终结点引用模型的一部分,每个终结点引用都可以包含一些添加额外标识信息的引用参数。

[第1页][第2页]
0
0
标签:WCF 寻址

热门文章

    最新文章

      最新新闻

        热门新闻