《WCF技术内幕》翻译15:第1部分_第3章_消息交换模式、拓扑与编排:消息拓扑

《WCF技术内幕》翻译15:第1部分_第3章_消息交换模式、拓扑与编排:消息拓扑、消息编排和本章小结

消息拓扑

消息拓扑描述的是在一个或多个发送者和接受者之间消息如何发送的。消息拓扑可以描述简单的应用-应用的连接关系,但是它同样可以描述复杂的应用-企业的连接。在后续文章里,面向服务的应用的作用会显现出来。概括地说,这些可能存在的拓扑结构比面向组件的应用系统能够涉及到的情况会更加多、更加复杂。

某种层次上,一个消息拓扑是一个或者多个消息交换模式(MEP)的组合。实际上可能存在有无数种拓扑结构,但是通常接受的分类有4个:点对点、数据报点对点、中转和对等网络(P2P)。重要的是要注意,与MEP不同,这些不同的消息拓扑名称还没有被广泛接受,所以我这里有点冒昧。同样,我们也可以增加或者减少消息拓扑的数量,但是这4个已经足够我们本次讨论的了。

点对点

最简单和被广泛使用的消息拓扑,点对点方式是消息拓扑的一个基本组成部分。简单来说,点对点拓扑指的是一个发送者和一个接受者交换消息。如你在前面文章里看到的一样,这个消息交换可以使用数据报、请求/应答或者双工MEP实现。

只进点对点

我个人认为,数据报点对点是最有趣的拓扑,但是它也是最难实现的。本质上,只进点对点拓扑是一个发送给不同参与者的数据报链。重要的是要指导这个拓扑有且仅有数据报MEP组成。有可能消息要返回给参与者,但是在消息里明确标记返回地址比含蓄描述更好,就想请求/应答方式一样。通常,这个拓扑要依赖<From>、<ReplyTo>、 <FaultTo>、<RelatesTo>、 <MessageID>和<To> WS-Addressing消息头块来实现。

图3-4:只进点对点消息拓扑

消息转发

随着开发社区对消息应用系统的接受,在这些消息应用系统之间转发消息也会变的越来越重要。一个相似的需求在Internet和电子商务逐渐流行的时候出现了。这个时期典型的例子是服务集群里的负载均衡器。除了别的以外,负载均衡器转发请求道可用的资源上。随着时代进步,负载均衡器变的也更加智能,这个趋势没有任何减缓的迹象。我希望在面向服务的应用系统领域有同样的变化。

通常来说,一个消息转发代理(broker,经纪人,这里译为代理)是一个转发消息到其它终结点的消息参与者。消息转发代理能够根据处理规则决定消息何时、何地并且如何发送给其它消息参与者。一个消息转发代理拓扑可以细分为分布式消息转发代理、集中式消息转发代理和混合消息转发代理。这个消息转发代理拓扑很像现在使用的不同邮件服务拓扑。

此外,著名的发布-订阅拓扑符合消息转发拓扑的定义。在发布-订阅架构中,参与者通过注册自己的感兴趣的发布者订阅特定的消息。当一个订阅者感兴趣的消息发送给发布者,发布者就会转发消息给所有的订阅者。换句话说,发布者是消息中转代理。在SOAP里,消息中转代理是一个中介者,但它可以直接标记地址。图3-5说明了一个基本的消息转发拓扑。

图3-5:消息转发拓扑

时间: 2024-09-20 22:48:31

《WCF技术内幕》翻译15:第1部分_第3章_消息交换模式、拓扑与编排:消息拓扑的相关文章

《WCF技术内幕》翻译14:第1部分_第3章_消息交换模式、拓扑与编排…

<WCF技术内幕>翻译14:第1部分_第3章_消息交换模式.拓扑与编排:消息交换模式(MEP) 第3章:消息交换模式.拓扑和编排 当设计消息应用系统的时候,有必要考虑一下消息是怎样在发送者.中介者 和接受者(前面章节介绍了这些消息参与者)流转的.系统中消息交换可能性的 波动的值可以被不同程度地详细描述.这些不同级别的细节就是总所周知的消息 交换模式(MEPS).消息拓扑和消息编排[老徐备注1].当从总体来看时,这 三个级别的细节让我们抽象地描述任何消息场景.本章会详细剖析消息交换模式 (MEP

《WCF技术内幕》翻译10:第1部分_第2章_面向服务:填写消息地址

填写消息地址 现在我们已经看过了与消息交互的实体,详细剖析了消息结构,然后看了一 下WCF 提供了几个消息编码器,现在我们来看一下如何在详细发送的时候表示我 们要发送的目的地.毕竟,除非能发送给接受者,否则消息等于是毫无用处.和 邮政服务需要一个良好格式的地址结构一样,面向服务的消息同样也需要一个定 义良好的地址结构.这节里,我们将会建立自己的地址结构(Scheme),看它可 以不可以广泛适用于所有的消息应用系统,然后把它关联到那个和WCF消息一起 使用的地址结构上. 在传输里标记地址VS在消息

《WCF技术内幕》翻译6:第1部分_第2章_面向服务:概述、快速定义…

<WCF技术内幕>翻译6:第1部分_第2章_面向服务:概述.快速定义面向服务.理解消息 概述 互联网上充斥着面向服务(SO)的对话,大部分会话都是抽象地描述为面向 服务.这一章我们会一些不同的方法.下面一些章页,我们会站在需求的角度看 一下面向服务.更具体地说,我们将看一下一般的消息应用和需要什么才能使他 们运转.通过这个过程,我们将发掘几个理解面向服务必需的几个概念.本章的 最后几段会给出面向服务的比较正式的定义,并且会讨论一下为什么当今世界里 面向服务对于分布式计算意义重大. 如果你问10

《WCF技术内幕》翻译1:《WCF技术内幕》目录和作者简介

翻译序言: 我现在推荐一本很好的WCF学习书籍:<Inside Microsoft Windows Communication Foundation>.Justin Smith先生所著.2007年出版至今,在亚 马逊网站上评价也比较高.综合评价4星半.是一本不错的深入学习WCF的书籍. 我在搜索了很久以后,发现这本书目前还没有中文译本.随计划翻译.分享给国 内的WCF技术爱好者.翻译工作对我个人也是一次新的尝试,希望这本书的翻译 能给大家的学习带来帮助.另外如有技术问题或翻译不当,都可以留言交

《WCF技术内幕》翻译2:《WCF技术内幕》绪论

总述 服务是现代软件架构的一个主要部分,WCF是构建基于Microsoft Windows系 统的服务程序平台.WCF编写的服务可以与其它供应商的服务交互(例如, IBM, BEA, and Novell),WCF为行业标准的演化提供了足够的空间.对于传输,WCF 支持TCP/IP.HTTP. Microsoft消息队列 (MSMQ).命名管道.WCF同样支持一系 列WS-*规范(读作WS-星)协议,比如WS-Addressing, WS-ReliableMessaging (WS-RM), W

《WCF技术内幕》翻译19:第1部分_第4章_WCF101:从内部剖析WCF和本章小结

从内部剖析WCF 当检查WCF程序(地址.绑定和契约)外部的时候,很自然的就会想知道WCF 如何使用地址.绑定和契约来发送和接收消息.从目前为止我们看到的代码,很 少有代码与发送和接收消息有直接关系.事实上,地址.绑定和契约本身不会做 太多的实际工作.当我们仔细研究WCF程序的时候,我们看到另外一个使用地址 .绑定和契约发送和接收消息的基础结构.从大的层次考虑,本书的剩余部分会 专注于解释这个底层基础结构,所以我们将会在本章里介绍这个底层基础结构的 主要部分. 当我们看完整个地址.绑定和契约的内

《WCF技术内幕》翻译17:第1部分_第4章_WCF101:WCF快速入门

WCF快速入门 在本节,我要建立一个HelloWCF应用程序以向计算机科学之神表示我们的敬意.在建立这个应用后,我们分成不同的部分细看.为例子尽量简单明了,我们会把发送者和接受放在一个控制台应用里.让我们现在就开始在控制台应用里构建需要的基础架构. // File: HelloWCFApp.cs using System; sealed class HelloWCF { static void Main(){ } } 定义服务契约 构建HelloWCF应用的第一步是创建服务契约.第9章里会详细介

WCF技术内幕

<WCF技术内幕>39:第2部分_第7章_通道管理器:通道工厂和本章 <WCF技术内幕>38:第2部分_第7章_通道管理器:通道侦听器 <WCF技术内幕>37:第2部分_第7章_通道管理器:概述和通道管理 <WCF技术内幕>36:第2部分_第6章_通道:创建自定义通道和本章 <WCF技术内幕>35:第2部分_第6章_通道:通道功能 <WCF技术内幕>34:第2部分_第6章_通道:通道接口和基本类型 <WCF技术内幕>33:

《WCF技术内幕》26

<WCF技术内幕>26:第2部分_第5章_消息:Buffered vs Streamed.序列化和反序列化消息 Buffered vs. Streamed消息 当我们在终结点之间流动的消息时,我们会本能地想到缓存.换个方式来说 ,我们假设程序接收到一个Message时,它已经知道整个Message.这种方式称作 缓存模式(buffering).与之相对的就是流处理模式(streaming),并且有2种 流处理模式(streaming).第一种是推模型(push model),发送者按照自己 的