WS-Addressing

来源:互联网 发布:淘宝神器软件 编辑:程序博客网 时间:2024/05/02 00:20

WS-Addressing

http://www.w3.org/Submission/ws-addressing

1. 介绍

Web服务寻址(ws - Addressing)定义了两个可互操作的结构来传递信息提供给传输协议和消息传递系统。这些结构规范化这个潜在的信息到一个统一的格式,可以独立处理运输或应用程序。这两个构造端点引用和消息信息头。

一个Web服务端点是一个(可引用)的实体、处理器或资源在这Web服务消息可以有针对性,端点引用传递所需的信息来识别/引用一个Web服务端点,并可能被用在几个不同的方式:端点引用都适合输送所需的信息来访问一个Web服务端点,但也用于提供地址发送的消息和从单个Web服务,为了对付这种情况最后使用该规范定义了一个家族的消息信息头,允许统一处理消息的独立的底层传输,这些消息信息头端到端消息传达特点包括寻址为源和目标端点以及消息的身份。

   这两种结构被设计成可扩展的和可重复使用的,这样其他规格可以构建和利用端点引用和消息信息头。

   下面的示例说明了如何使用这些机制在SOAP 1.2http://business456.example/client1http://fabrikam123.example/Purchasing

(001) <S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"      
                xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing">
(002)   <S:Header>
(003)    <wsa:MessageID>
(004)      uuid:6B29FC40-CA47-1067-B31D-00DD010662DA
(005)    </wsa:MessageID>
(006)    <wsa:ReplyTo>
(007)      <wsa:Address>http://business456.example/client1</wsa:Address>
(008)    </wsa:ReplyTo>
(009)    <wsa:To>http://fabrikam123.example/Purchasing</wsa:To>
(010)    <wsa:Action>http://fabrikam123.example/SubmitPO</wsa:Action>
(011)   </S:Header>
(012)   <S:Body>
(013)     ...
(014)   </S:Body>
(015) </S:Envelope>

 

(002)(011)代表了SOAP消息头的地方规范中定义的机制使用。身体是 (012)(014)

(003)(010)包含消息信息头块,特别是,(003)(005)指定为这个消息的标识符,(006)(008)指定的端点回复此消息应该被作为一个端点引用,(009)指定地址URI的最终接收此消息,(010)指定一个行动URI识别预期的语义。

1.1标记规定

关键字"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", "OPTIONAL"在这个文档描述在RFC 2119

当描述抽象数据模型,该规范使用符号约定使用的XML Infoset(XML Infoset]。具体来说,抽象属性的名字总是出现在方括号( [some property]).

在描述具体的XML模式(XML Schema1部分、第2部分),该规范使用符号约定的ws - security。特别地,每一个成员的一个元素的[孩子][属性]属性是描述使用类似xpath的符号(如。,/ x:MyHeader / x:SomeProperty / @value1)。使用{任何}表明存在一个元素通配符(< xs:anyattribute/ >)

1.2命名空间

该规范使用许多名称空间前缀贯穿,它们列在表1请注意,任何名称空间前缀的选择是任意的和不重要的语义

前缀和名称空间使用说明

 

前缀

命名空间

S

http://www.w3.org/2003/05/soap-envelope

S11

http://schemas.xmlsoap.org/soap/envelope

wsa

http://schemas.xmlsoap.org/ws/2004/08/addressing

wsp

http://schemas.xmlsoap.org/ws/2002/12/policy

xs

http://www.w3.org/2001/XMLSchema

ws - addressing定义在条款的XML信息集(XML Infoset]ws - addressing是符合SOAP 1.2[SOAP 1.2)处理模型;SOAP 1.2不是一个要求使用本规范中定义的结构。ws - addressing也设计为可以使用WSDL 1.1[WSDL 1.1]描述服务。本规范中的示例使用一个XML 1.0[XML 1.0]表示,但这不是一个要求。

所有信息项定义为ws - addressing确定XML名称空间URI(XMLNamespaces]“http://schemas.xmlsoap.org/ws/2004/08/addressing”。一个规范的XML模式(XML Schema1部分、第2部分)文档可以通过XML名称空间URI关联。

2. 端点说明

本节定义了端点引用的模型和语法。

这个规范引入了一种新的描述元素类型、端点引用,为了支持一组动态使用模式目前未适当覆盖WSDL1.1

特别是,本规范打算促进以下使用场景:

 

1.动态生成和定制的服务端点描述。

2.识别和描述特定的服务实例的创建有状态交互作用的结果。

3.灵活动态交换端点信息在紧密耦合环境中通信双方共享一组常见的假设特定的政策或协议期间使用交互。

为了支持这些场景,我们定义了一个轻量级的、可扩展的机制来动态地确定和描述服务端点和实例。由于当前限制的WSDL 1.1扩展模型,WSDL 1.1服务和端口元素不能被用来盖上面列出的用例,端点引用逻辑扩展WSDL描述模型(例如portTypes, bindings等等)但不要更换它。端点引用将被用来代替WSDL .

<service/ >元素有以下情况下:

1.具体实例的一个有状态的服务需要被识别或其特定配置细节需要传播

    2.一个轻量级的、独立的描述服务端点需要传达,特别是,这可能是必要的细节时端点配置已经由通信双方共享,但具体政策信息需要添加或更新的,通常是由于一个动态配置过程。

   端点引用补充和不取代WSDL / 1.1<wsdl:service>元素,我们希望的解决方案建立在WSDL / 1.1继续使用服务元素。前进我们预料端点引用和WSDL将进化条理清楚地,端点引用可能链接到服务元素在WSDL / 1.1,和支持额外的场景中,WSDL信息是不知道当事人处理消息,这些场景可能包括动态消息或消息处理器能力有限

2.1端点信息模型

 

一个端点引用包含以下抽象属性:

1.     [地址]:URI(强制性)

一个地址URI标识的端点。这可能是一个网络地址或一个逻辑地址。

2.      [引用属性]:xs:any(0 . .无界)

一个参考可能包含大量的个人所需属性来识别实体或资源被传达。参考识别属性元素信息项,来命名的QName和需要适当消息发送到端点的端点一边的交互。引用属性提供的发行人端点引用,否则认为是不透明的消费应用程序,这些属性的解释(如使用端点引用一般来说)是依赖于协议绑定和数据编码用于与端点,2.3节定义了默认的绑定以下为SOAP协议。消费应用程序应该假设端点所代表的不同端点引用(引用属性]可以接受不同的信息或遵循一组不同的政策.和因此可能有不同的相关联的元数据(XML模式和WSDL,ws - policy的政策)。引用属性之间的关系和端点政策进一步解释了在2.4节。

3.     [引用参数):xs:any(0 . .无界)

一个参考可能包含大量的个人参数相关联的端点来促进特定的交互,参考参数元素信息项,来命名的QName和必须妥善与端点。引用参数也提供的发行人的端点引用,否则认为是不透明的消费应用程序。使用引用参数依赖于协议绑定和数据编码用于与端点。2.3节描述了SOAP协议的默认绑定与[引用属性],[引用参数)的两个端点引用可能不同,而一个暗示,不同的XML模式,WSDL或策略应用到端点。

4.     (选定的端口类型):QName(0 . . 1)

QName表达,初级的portType端点。

5.      服务端口):(QName,NCName(0 . . 1))(0 . . 1)

这是QName识别元素,该元素包含WSDL服务定义的端点的表达。服务名称提供了一个链接到一个完整的描述的服务端点。一个可选的确立特定端口名称标识服务相对应的端点

6.     [政策]:wsp:政策(0 . .无界)

一个可变数目的XML策略元素中描述ws - policy(ws - policy)描述行为,要求和功能的端点。政策可能包括在一个端点来促进消费应用程序的简化处理,或因为政策是动态生成的。但是,嵌入的政策并不权威,可能是过期或不符合相关政策与端点时发生的交互。

2.2  端点引用XML Infoset表示

本节定义了一个XML infoset的基础表示为一个端点引用作为一个XML类型(wsa:EndpointReferenceType)和一个XML元素(< wsa:EndpointReference >)

wsa:EndpointReferenceType类型是使用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> ?
    <wsp:Policy> ... </wsp:Policy>*
</wsa:EndpointReference>

 

以下描述了属性和元素上面列出的模式概述:

/wsa:EndpointReference这代表了一些类型的元素wsa:EndpointReferenceType。这个示例使用预定义的< wsa:EndpointReference >元素,但任何类型的元素可以使用wsa: EndpointReferenceType

 

/wsa:EndpointReference/wsa:Address这需要元素(类型xs:anyURI)指定[地址]属性的端点引用。这个地址可能是一个逻辑地址或标识服务端点

 

/wsa:EndpointReference/wsa:ReferenceProperties/这个可选的元素包含的元素表达[引用属性)的参考。

 

/wsa:EndpointReference/wsa:ReferenceProperties/{any}每个子元素代表一个单独的ReferenceProperties[引用属性)

 

/wsa:EndpointReference/wsa:ReferenceParameters/这个可选的元素包含的元素表达[引用参数)的参考。

 

/wsa:EndpointReference/wsa:ReferenceParameters/{any}每个子元素代表一个单独的ReferenceParameters[参考参数)

 

/wsa:EndpointReference/wsa:PortType :这个可选的元素(类型xs:Qname)指定值(选定的端口类型]属性的端点引用。

 

/wsa:EndpointReference/wsa:ServiceName:这个可选的元素(类型xs:QName)指定了< wsdl:service >定义包含一个wsdl描述的端点引用。

 

/wsa:EndpointReference/wsa:ServiceName/@PortName :这个可选属性(类型xs:NCName)指定名称的< wsdl:port >定义相对应的端点引用

 

/wsa:EndpointReference/wsp:Policy :这个可选元素指定一个政策是贴近交互端点。

 

/wsa:EndpointReference/{any}这是一个可扩展性机制,允许额外的元素中指定。

 

/wsa:EndpointReference/@{any}这是一个可扩展性机制,允许指定的附加属性。

 

下面的代码展示了一个端点引用,这个元素引用类型的端口"fabrikam:InventoryPortType"url"http://www.fabrikam123.example/acct".

<wsa:EndpointReference xmlns:wsa="..." xmlns:fabrikam="...">

   <wsa:Address>http://www.fabrikam123.example/acct</wsa:Address>

   <wsa:PortType>fabrikam:InventoryPortType</wsa:PortType>

</wsa:EndpointReference>

 

原创粉丝点击