`

WS-Addressing 问题的引出(转)

阅读更多

SOAP 协议定义了在 Web Services 之间传递消息的规范格式,在此基础上 Services 之间的消息交换将不再受到各种不同底层 ( 传输层 ) 的传输协议的影响,但是在 SOAP 协议中并没有定义如何寻址一个 Web Services 。如果把 Web Services 的寻址功能交由特定的传输协议来实现,那么 SOAP 协议为 Web Services Loosely Coupled 所做的贡献也就大打折扣。这个现象并不奇怪,而且长期以来广泛存在。如果你曾经查看过你访问 Web Service 时的 Http 请求,你就会发现其中的 SOAP 包并没有任何的地址信息,相反在 Http 请求中倒是包含了 Web Services 的寻址信息。比如在下面这个例子中可以看出有关 Web Services 的寻址信息全部包含在 Http 请求中。

POST /TravelAgentServices/Hotel.asmx HTTP/1.1
Host: localhost
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://www.seu.edu.cn/hotel/PlaceOrder"

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
       <PlaceOrder xmlns="http://www.seu.edu.cn/hotel/">
           <RoomOrder>
               <RoomType>int</RoomType>
               <PeopleAmount>int</PeopleAmount>
               <RoomAmount>int</RoomAmount>
               <Price>decimal</Price>
           </RoomOrder>
       </PlaceOrder>
   </soap:Body>
</soap:Envelope>
 

之所以长期以来都采用以上的方案建立在一个前提之下,那就是大多数的 Web Services 都是通过 Http 协议来访问的。如同我们访问一个网页仅仅需要输入一个 URL, 在通过 Http 协议访问 Web Services 的时候底层的 Web Services 框架帮助我们在传输层自动的生成相应的 Http 请求,本没有什么不合适的地方。但是“大多数的 Web Services 都是通过 Http 协议来访问”这个前提已经不再适用于 SOA 的应用环境。我们知道 Loosely Coupled SOA 的一个显著特征,而不依赖于特定的传输协议也是 Loosely Coupled 的重要体现之一,并且在广泛的应用中你会发现实现消息的异步传输以及消息的可靠性传输时,往往不再利用 Http 协议作为 SOAP 消息的传输协议,而会采用诸如 TCP,SMTP 等协议来传输 SOAP 消息,此时 SOAP 消息如何寻址?难道都依靠特定的传输协议来实现吗?

SOA 的背景下, Web Services 寻址方式主要面临以下三个问题:

1.    访问 Web Services 将不仅仅限于某个单一的传输协议(如 Http )。 在访问 Web Service 时可能会使用 TCP, SMTP 等等不同的底层协议。甚至在 Web Services 的请求中使用一种传输协议,而在回复中使用另一种协议。

2.    Services 之间的交互已不再是简单的 synchronous request-response 方式,在实际的应用中越来越多的发现异步式的消息交换更加适合业务的需要,在这种情况下 Response 消息如何寻址,已不再那么简单。

3.    在现实业务中,广泛存在一种现象,那就是在 Web Services 的请求消息发送后,过很长一段时间才能得到回复消息 ( 如下完订单,几个小时或几天才能得到确认消息 ) 。这种情况下,如何依旧将回复消息与请求时发送的消息关联上,从而维持住 Web Services 的状态?这也是以往的寻址方式所没有考虑到的问题。

WS-Addressing 规范则为解决以上三个问题提供了方案。 通过对 SOAP 消息的扩展,为 Web Services 的寻址问题提供更强大的支持,并且该规范也是其他各种 WS-* 规范的重要基础。

分享到:
评论

相关推荐

    WS-Addressing.pdf

    WS-Addressing解决了SOA环境下Web Services寻址的关键问题,为服务间的交互提供了统一的标准。通过EPR和MAP属性,它不仅支持多传输协议,还能够适应异步消息处理的需求。WS-Addressing作为WS-*规范的基础,对于实现...

    Laravel开发-laravel-addressing

    在本文中,我们将深入探讨 Laravel 开发中的一个重要扩展——`laravel-addressing`。这个包专门设计用于在 Laravel 应用程序中提供强大的地址管理功能,它为开发者提供了一个优雅的方式来处理和存储用户的地址信息。...

    使用Ajax调用SOAP Web服务2:扩展Web服务客户机

    在本系列的第二部分中,我们将深入探讨如何扩展在第一部分中介绍的JavaScript库,以支持Web服务寻址语言(WS-Addressing)和Web服务资源框架(WS-ResourceFramework)。这两个规范对于构建复杂的分布式系统至关重要...

    Cisco IOS IP Command Reference, Volume 1 of 4 -- Addressing and Services

    Cisco IOS IP Command Reference, Volume 1 of 4 -- Addressing and Services

    apache-cxf-3.3.4

    JAX-WS API,用于Web服务开发 WSDL优先工具 Java优先支持 JAX-RS (JSR 311 1.0) API,用于RESTfulWeb服务开发 JavaScript编程模型,用于客户端和服务端开发 Maven工具 支持CORBA HTTP和JMS传输层 可嵌入的...

    WS-Attacker:WS-Attacker是用于Web服务渗透测试的模块化框架。 它是由波鸿鲁尔大学网络和数据安全主席(https:__www.bochum.org_

    WS攻击者 ... WS-Addressing欺骗:请参阅 XML签名包装:请参阅 基于XML的DoS攻击:请参阅 新的自适应和智能拒绝服务攻击(AdIDoS) XML加密攻击:有关攻击和攻击的一般概述,请参见此博客文章( )。进

    信息安全_数据安全_AppSecEU2016-Daniel-Kefer-Addressing-S.pdf

    信息安全_数据安全_AppSecEU2016-Daniel-Kefer-Addressing-S 可信编译 漏洞分析 数据分析 定向攻击 云数据库

    web service standards overview

    - **WS-Addressing – SOAP Binding**: 规定了如何将WS-Addressing信息嵌入到SOAP消息中。 #### 三、元数据规格 元数据规格定义了如何描述服务的特性及其交互方式。 - **WS-Policy**: 一种用于表达服务策略的框架...

    spring-ws-reference.pdf

    - **WS-Addressing**:支持 WS-Addressing 标准,提高消息的可靠性。 - **EndpointInterceptor**:拦截请求和响应,进行额外的处理或验证。 综上所述,Spring Web Services 是一个功能强大且灵活的框架,它简化了 ...

    spring-ws-reference-1.5.9

    Spring Web Services(简称 Spring-WS)是基于 Java 的轻量级框架,旨在简化 Web 服务的创建和使用过程。它利用了 Spring 框架的核心功能,如依赖注入和面向切面编程等特性,并且支持多种消息传输方式,如 SOAP、...

    XEP100 - EEEPROM - Addressing - CW46_continuedy91_MC9S12XEP100_源

    标题中的“XEP100 - EEEPROM - Addressing - CW46_continuedy91_MC9S12XEP100_源”暗示了我们正在讨论一个与微控制器编程相关的主题,特别是关于MC9S12XEP100型号的微控制器以及其EEPROM(电可擦可编程只读存储器)...

    axis2-addressing-1.4.jar

    官方版本,亲测可用

    axis2-addressing-1.2.jar

    官方版本,亲测可用

    laravel-addressing:提供寻址功能的 Laravel 包

    composer require galahad/laravel-addressing 基本用法 国家 $ country = Addressing :: country ( 'US' ); echo $ country -&gt; getName (); // "United States" echo $ country -&gt; getCountryCode (); // "US" ...

    An-Efficient-and-Robust-Addressing-Protocol.rar_assignment

    Autonomous addressing protocols require a distributed and self-managed mechanism to avoid address collisions in a dynamic network with fading channels, frequent partitions, and joining/leaving nodes....

    PCI-Express-5-Update-Keys-to-Addressing-an-EvolvingSpecification

    PCI Express(PCIe)5.0是下一代高速接口标准,为数据传输提供了更高的带宽和更低的延迟。本文将深入探讨PCIe 5.0的关键技术改进,包括规范状态、通道损失、参考时钟抖动测量以及通道解决方案空间。...

    TP-WHEN-SAFETY-IS-KEY-ADDRESSING-SAFETY-CORE-AVI.pdf

    随着工业与交通运输系统变得更加复杂和自动化,安全问题变得尤为关键。本报告探讨了现代工业和交通系统中安全关键性的问题,并讨论了如何有效地解决这些关键性安全挑战。 首先,报告介绍了核心工业公司(Core ...

    apache-cxf-3.3.5

    CXF helps you build and develop services using frontend programming APIs, like JAX-WS and JAX-RS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and ...

    Networkers2009:BRKNMS-1340 - Addressing the Payment Card Industry (PCI) standard version 1.2 with Cisco Solutions

    **标题**:“Networkers2009:BRKNMS-1340 - Addressing the Payment Card Industry (PCI) standard version 1.2 with Cisco Solutions” **描述**:此标题明确指出该文档是关于如何利用思科解决方案来应对支付卡...

Global site tag (gtag.js) - Google Analytics