`

SOAP应用模式: 中间介

    博客分类:
  • SOA
阅读更多

2002 年 9 月 01 日

SOAP应用模式是一个由四篇文章组成的系列,主要讨论的是如何将SOAP应用到各种各样的应用环境中去。本文是系列的第二篇,主要讨论在有传输交换中间介的情况下,如何应用SOAP完成应用承诺。为了描述具备中间介的应用模式,我们在一开始先描述其中会引用到的 fire-and-forget 模式。
<!--START RESERVED FOR FUTURE USE INCLUDE FILES--><!-- include java script once we verify teams wants to use this and it will work on dbcs and cyrillic characters --><!--END RESERVED FOR FUTURE USE INCLUDE FILES-->

面向单个接收者的"Fire-and-forget"模式

"Fire-and-forget"来源于军事术语,其含义是指某些武器(比如一些导弹)当被发射出去之后就能够自行攻击目标,发射者无需再提供控制。而在SOAP消息的应用模式中,"Fire-and-forget"是指发出SOAP消息,然后不再去处理与该消息相关的操作。

而所谓面向单个接收者的"Fire-and-forget"模式是指:发送者期望向单个接受者发送不被答复的消息(例如,每隔15分钟发送一次股票价格更新消息)。


Figure 1.牋 面向单个接收者的"Fire-and-forget"模式图示

在本节定义的"fire-and-forget"特性需要由图1所描述的这样一个机制来将一个SOAP消息发送给单个SOAP接收者。 SOAP发送者并不需要了解任何的消息状态信息,包括消息是否已经被发送,或是消息是否已经被接收者接收到等。底层传输协议也许实现了一个响应机制,然而描述消息是否被成功发送的状态信息将不会被返回给发送SOAP消息的SOAP处理器。

下面的代码是该模式下的一个SOAP消息示例:

<env:Envelope xmlns:env="http://www.w3.org/2001/12/soap-envelope">
   <env:Body>        
       <r:StockPriceUpdate xmlns:r="http://example.org/2001/06/quotes">
           <r:Symbol>BigCo</r:Symbol>
           <r:Price>34.5</r:Price>
       </r:StockPriceUpdate>
   </env:Body>
</env:Envelope>





回页首


面向多个接收者的"Fire-and-forget"模式

而所谓面向多个接收者的"Fire-and-forget"模式是指:发送者期望向一组接受者发送不被答复的消息(例如,每隔15分钟发送一次股票价格更新消息)。

面向多个接收者的"Fire-and-forget"模式是面向单个接收者的"Fire-and-forget"模式的一个扩展。在这个模式下,需要支持将同一个SOAP消息发送个多个SOAP接收者。具体消息的传输可以使用广播分发技术来实现,当然前提是底层传输协议层支持这一技术。而另一个可替换的实现方式则是重复地执行在面向单个接收者的"Fire-and-forget"模式中所描述的机制,而每次使用一个位于期望的分发接收者列表中的一个接收者。

 




回页首


第三方中间介

所谓第三方中间介模式是来源于这样一种应用:我们知道在Internet电子商务的发展历程中,出现过这样一种服务,自主竞排交易市场 (Marketplace)。这是一个在买家和供应商之间的代理桥梁。买家将他们的需求提交给这个交易中心,交易中心会将这些需求信息广播给多个供应商。供应商收到求购信息之后,将向买家发出求购响应,求购响应是通过交易中心被传输给最终买家的,同时在交易中心将记录下这些响应。


Figure 2.牋 交易市场中间介

图 2展示了一个基于SOAP的消息基础架构,该基础架构用于支持作为买家和卖家之间的中间介的第三方交易市场的实现。对于交易市场这样的商业模式而言,首先它会尽力召集多个商业和服务的供应商,然后买家连入交易市场,同时使用交易市场提供的服务。交易市场是作为在买家和其所挑选的卖家之间完成商业事务所需要的第三方通道而工作的,交易市场即能为B2B事务提供服务,也能为B2C事务提供服务。

在本模式下,交易市场是作为自助式中间介的形式出现的。买家连入交易市场后,针对他所需要的产品或服务张贴订单。此时,买家可能使用非常简单的客户应用,比如浏览器,也可能使用复杂的应用,比如采购系统。当交易市场接收到买家的订单之后,它会联系一组合适的卖家,这些卖家将针对这个定单进行反向竞标。交易市场将从中挑选出最有竞争力的标,然后将其作为竞标的赢家交互给买家。然后,一个采购流程将被初始化,而交易市场则作为这个事务的中间介进行工作。

从SOAP消息传输的角度来看,图 2所展示的模式中,对于买家登录订单的过程,是在买家和交易市场间发生了一组请求/相应消息的交换。当交易市场接收到订单之后,交易市场同样通过一组请求 /响应消息与一组挑选出的卖家进行交互。对于交易市场应用而言,在具体实现上,它可以选择以下面两种模式进行SOAP消息实施。第一种方案是由一个 SOAP发送者到多个SOAP接受者的一对多的消息传输交换,每个SOAP接收者位于一个卖家站点。而第二种方案则是实施多次一个SOAP发送者到一个 SOAP接受者的一对一的SOAP消息传输交换。这一情况与我们在"面向多个接收者的"Fire-and-forget"模式"中遇到的情况是类似的。在交易市场与卖家之间,将会就消息交换的特性有一些先决的协约,比如可靠性、安全性以及消息结构等等。这些特性将定义在交易市场和卖家之间需要哪些额外的 SOAP处理模块来支持这一消息交换模式。

 




回页首


经由多个中间介的通讯

在经由多个中间介的通讯模式中,中间介将代理初始发送者的消息交换,将来自初始发送者的消息转发给最终的接收者。初始发送者希望能够加强消息路由的不可抵赖性。在对消息提供路由服务的过程中,所有的中间介消息服务处理器必须将路由消息头信息记录到日志中。当消息即将被转发给最终消息接收者时,此时承担转发任务的消息处理器必须将被签名的路由消息头以及消息的接收者写入日志,以保证消息接收的不可抵赖性。

在本节描述的SOAP应用模式下,需要在初始生成消息的SOAP发送者与最终SOAP接收者之间可创建一个审计链,其中消息要送达最终 SOAP接收者,要经过一些SOAP中间介,审计链要包含所有出现的SOAP中间介。在消息路径中的每一个SOAP结点都维护了一个持久化信息库(典型的是数据库),这个数据库被用于存储对于每条消息的审计记录。而这每个SOAP结点中的路由日志处理器都有责任将每条消息的日志记录在持久化信息库中。而对于这些路由日志处理器而言,它在将消息转发给消息路径的下一个结点之前,需要对路由信息消息头实施签名。而对于消息签名而言是必须得一些机制包括对数字证书的支持,以及一些相关的配套机制等。


参考资料

原文:http://www.ibm.com/developerworks/cn/xml/x-soapapp/part2/

分享到:
评论

相关推荐

    soap协议[收集].pdf

    SOAP消息通常是单向传输,但在实际应用中,常常通过组合多个消息实现类似请求/响应的模式。每条SOAP消息是一个XML文档,包含一个必需的SOAP封装(Envelope)、一个可选的SOAP标头(Header)和一个必需的SOAP主体...

    SOAP和Web_Service的概念

    在典型的Remoting应用场景中,应用服务器充当了一个中间层,负责接收来自前端客户端的请求,并将这些请求转发给后端的服务组件进行处理。 - **优点**:降低了客户端的复杂度,使得应用程序的维护更加容易;提高了...

    bgi-soap2:BGI 开发的 SOAP2 对齐工具的源代码和二进制文件

    2. **多种比对模式**:SOAP2支持全局比对和局部比对,以及无重叠和有重叠的比对方式,可以根据不同的研究需求选择合适的比对策略。 3. **错误纠正**:在比对过程中,SOAP2能够识别并纠正一定的错误,如单碱基替换、...

    将基于SOAP的WCF服务转成RESTful设计

    在WCF中,开发者可以创建SOAP服务,通过定义服务契约和服务行为来指定服务接口和服务行为模式。 3. REST(Representational State Transfer):REST是一种软件架构风格,主要用于分布式超媒体信息系统。RESTful服务...

    Web+Services:技术、架构和应用

    Web服务是一种基于互联网的软件应用程序接口(API)的交互方式,允许不同的系统通过标准化协议进行通信,例如XML(可扩展标记语言)、SOAP(简单对象访问协议)和WSDL(Web服务描述语言)。这一领域的深入理解涵盖了...

    第16讲-SOAP与CXF开发WebService.pptx

    5. **SOAP消息交换模式** SOAP消息通常是单向传输的,可以从发送节点经过多个中间节点到达接收节点。Header block的`role`、`relay`和`mustUnderstand`属性控制了节点如何处理Header。 6. **SOAP处理模型** 在...

    23种JAVA设计模式和15种J2EE设计模式

    这里提到的"23种JAVA设计模式"涵盖了GOF(GoF,Gang of Four)提出的23种经典设计模式,而"15种J2EE设计模式"则是针对企业级Java应用的特定模式。 1. **工厂模式**:这是最简单的创建型模式,提供了一种创建对象的...

    WEB服务技术的企业应用集成模型设计[定义].pdf

    Web服务是一种基于开放标准的分布式计算模式,能够跨越不同平台和系统,实现应用程序间的交互和数据共享。 【Web服务技术】 1. **XML**:可扩展标记语言(XML)是Web服务的基础,用于数据和消息的标准化表示。XML...

    Web Services 架構與設計模式

    6. **中介者模式**: 在此模式中,一个中间代理接收所有请求,然后转发到适当的后台服务。这有助于负载均衡、缓存和安全性控制。 7. **模板模式**: 通过创建一个可复用的结构,使得不同的Web服务可以通过共享通用...

    Service Design Patterns

    在探讨服务设计模式时,我们需要关注的是如何有效地构建、管理和交互 Web 服务,特别是那些基于 SOAP/WSDL 和 RESTful 架构的服务。下面将详细介绍各种关键的设计模式,并解释它们在实际开发中的应用。 ### Web ...

    21天精通J2EE模式结构

    业务逻辑处理属于中间层;而数据库访问则位于数据访问层。 ##### J2EE平台角色与组件 - **容器(Container)**:负责管理应用程序的运行时环境。在J2EE中,主要有三种类型的容器:Web容器、EJB容器和Applet容器。 - *...

    REST结构全面解析手册

    SOA(Service-Oriented Architecture,面向服务的架构)是一种架构模式,旨在通过标准化的服务接口来实现组件之间的解耦合。REST作为一种架构风格,可以在SOA的大框架下实现服务间的通信。实际上,RESTful服务常常被...

    Web应用服务器研究综述∗.pdf

    Web应用服务器提供了对Web服务的支持,包括SOAP协议的处理、WS-*标准的遵循等,使得跨系统的交互变得更加简单和高效。 #### 评测基准与比较研究 为了评估不同Web应用服务器的性能和功能,业界制定了多种评测基准,...

    FLEX 下的MVP应用 以及 ColdFusion 的远程服务调用

    本文将深入探讨在FLEX环境中实现Model-View-Presenter(MVP)模式的应用,以及如何通过ColdFusion进行远程服务调用。MVP模式是一种设计模式,常用于用户界面的架构,旨在分离业务逻辑、用户界面和数据呈现,提高代码...

    Java常见面试题集

    1. **MVC模式**:Model-View-Controller(模型-视图-控制器)是一种软件设计模式,用于分离应用程序的数据逻辑、用户界面和控制逻辑。Model代表业务逻辑,通常由JavaBean或EJB实现;View负责展示数据,常由JSP页面...

    onvif的discovery消息格式详解

    这种模式引入了一个中间组件——Discovery Proxy (DP) 或发现代理。DP负责监听多播的探测和解析请求,并在接收到这些请求后,代替目标服务向客户端发送公告(Announcement)消息。客户端监听到DP的消息后,会自动...

    Oracle Application Server (Oracle应用服务器)及其在我公司中的应用.pdf

    OAS旨在提供一个三层架构的解决方案,以改善传统的客户端/服务器(c/s)模式的局限性,特别是针对那些需要跨多种平台、易于维护和扩展的企业应用。 在三层架构中,OAS充当了中间的“应用服务器”层,它位于瘦客户端...

    net学习笔记及其他代码应用

    (中间语言,源数据,资源,装配清单) 22.常用的调用WebService的方法有哪些? 答:1.使用WSDL.exe命令行工具。 2.使用VS.NET中的Add Web Reference菜单选项 23..net Remoting 的工作原理是什么? 答:服务器...

Global site tag (gtag.js) - Google Analytics