使用 WebSphere DataPower Low Latency Appliance XM70 降低低延迟消息传送的成本和复杂性

Comments

简介

IBM® WebSphere® DataPower® Low Latency Appliance XM70(以下简称 DataPower XM70)允许您在产生极少延迟的情况下在现有网络上路由大量的消息。DataPower XM70 “Fast Path” 潜在的吞吐量达到了每秒数百万条消息,但只产生微秒级的延迟。在 XM70 中,这个 Fast Path 功能与 DataPower Full Hardware ESB(此前只能在 WebSphere DataPower Integration Appliance XI50 中可用)相结合,所有上述功能都被绑定到一个高度可配置的、快速部署的 1U(1.75’’ 厚)的网络设备中。

使用 WebSphere MQ LLM 技术,DataPower XM70 能够极大地降低应用程序的复杂性,并为已经使用了 WebSphere MQ LLM 的企业降低成本,还为那些想要进入到这个领域的公司降低了门槛。和其他 DataPower 设备一样,DataPower XM70 是为了帮助企业服务器和应用程序解决特定的问题和挑战而特别构建的。具体来说,DataPower XM70 解决了根据消息内容以微秒级速度作出智能路由决策的问题。

在 DataPower XM70 发布之前,公司在面对这个问题时没有多少选择,他们的解决方法通常既昂贵又复杂。编写单独的应用程序来解决路由问题并不经济有效。尽管编写一个应用程序来专门处理一个网路中的所有 WebSphere MQ LLM 路由规则是可能的,但这样的应用程序将会很复杂,而且很难修改、部署和维护。

DataPower XM70 每秒能够智能路由、过滤和修改数十万条消息,从而能够解决 LLM 路由问题。DataPower XM70 允许您快速部署 LLM 路由规则,这些路由规则可以通过一个直观的界面进行配置,无需进行编程,这将极大降低成本和复杂性。数月的编程时间可以减少为几天的配置时间。另外,伸缩性和维护性不再是问题,因为您可以随时修改配置,以满足添加到企业软件库中的新的应用程序的需求。本文的剩余部分将介绍 DataPower XM70 的特性,这些特性允许您的应用程序聚焦于两个简单任务:处理应用程序收到的数据并通过 DataPower XM70 传输数据。

DataPower XM70 特性

Fast Path

DataPower XM70 允许您的网络提供可信赖的和可伸缩的多播(发布/订阅)和单播(序列)消息路由,无需自行开发应用程序。DataPower XM70 安装到您的网络上之后,您可以使用以下支持的 LLM 协议之一轻松配置 DataPower XM70 Fast Path:

  • Reliable Multicast Messaging (RMM)
  • Reliable User Datagram Protocol (RUDP)
  • Reliable Unicast Messaging (RUM)

Reliable Multicast Message (RMM)

RMM 是默认的 LLM 协议。顾名思义,这个协议是在 IP 多播之上构建的;在 IP 多播中,一个发送器可以发送一条消息并使多个接收器接收到该消息。这种 “一对多” 的关系在企业消息传送中通常称为 “发布/订阅(pub/sub)”。从原始流量和延迟来看,RMM 是性能最好的 LLM 协议。这个协议对于 “发散(fan-out)” 用例最理想,在这种用例中,一个接收器能够接收发来的消息并将这些消息通过网络上的大量发送器广播出去:

图 1. 消息 “发散”
消息 “发散”
消息 “发散”

Reliable User Datagram Protocol (RUDP)

像 RMM 一样,RUDP 也构建在 User Datagram Protocol (UDP) 之上。与 RMM 不同的是,RUDP 是一个 “点对点” 协议:消息被发送到一个特定目标。这种行为类似于许多基于队列的消息协议。与常规 UDP(它通常不稳定)不同的是,RUDP 生来就具有稳定性。由于 RUDP 不是基于多播的,在完全不同的网络之间路由消息与转发常规 UDP 流量没有什么不同。

Reliable Unicast Messaging (RUM)

RUM 可以被视为 RUDP 的 Transmission Control Protocol (TCP) 变体。RUM 构建在已经很可靠的 TCP 之上,它更加适于 Wide Area Network (WAN) 部署。

这三个协议 —— RMM、RUDP 和 RUM —— 可以同时使用。要在一个路由器被配置为抑制多播流量的网络中利用 RMM 的性能优势,RUM 或 RUDP 应该用于桥接不同的子网。图 2 中的 DataPower XM70s 根据一个 “点对点” 协议互相传输。一条消息被接收后,该消息根据 RMM 在内部 LAN 上路由。

图 2. RUM/RUDP 网络桥接
RUM/RUDP 网络桥接
RUM/RUDP 网络桥接

Reliable Local Messaging (RLM)

DataPower XM70 支持 LLM 协议和其他受支持协议(如 WebSphere MQ、TIBCO Enterprise Message Service 和 WebSphere Java Message Service)之间的协议桥接。RLM 是将设备的 ESB 功能与 DataPower XM70 Fast Path 连接起来的桥梁。如果低延迟消息需要弃用 Fast Path 并采用任何其他可桥接的协议,那么 RLM 就是您需要的协议。

主题选择

DataPower XM70 对 Fast Path 使用接收器和发送器对象的概念。接收器称为策略,发送器称为路由。这些对象类型之间的关系是 “一对多”,即每个策略可以拥有一个或多个路由对象。一个策略上接收到的消息根据相关路由对象的配置被转发到多个目标。策略对象使用一个要监听的主题配置,所有匹配该主题的消息将被处理。类似地,与一个策略关联的路由定义一个主题,将在这个主题之上传输消息。

图 3. LLM 策略/路由关系
LLM 策略/路由关系
LLM 策略/路由关系

如果需要监听多个主题,DataPower XM70 通过主题选择提供这种能力。主题选择表达式使用一种 SQL 样式的语法定义。这些表达式必须求解一个布尔值 —— 一个值为 TRUE 的表达式将继续被处理,值为 FALSE 的表达式则不被处理。第三个值 UNKNOWN 是一个错误表达式的结果,处理方法与 FALSE 相同。主题选择只适用于策略对象。

消息选择

主题选择只是 DataPower XM70 提供的消息过滤选项之一。如果需要更细的粒度来选择要处理的消息,您可以使用 DataPower XM70 的消息选择。消息选择用于定义基于内容的路由规则,DataPower XM70 使用这些规则针对它收到的每条消息制定决策。消息选择可用于策略对象、路由对象,或者同时用于两者。一个策略可能过滤掉它认为不必处理的消息,或者将所有消息选择委托给单独的路由对象。换句话说,对于所有接收到的消息,策略应用第一级过滤,而路由对象应用第二级过滤。第二级过滤为如何路由消息提供了低级控制。

消息选择允许 DataPower XM70 基于消息内容提供流量生成,无论消息内容是 XML 格式、Financial Information eXchange (FIX) 格式或者纯文本格式。和主题选择一样,消息选择标准表达式使用 SQL 样式的语法定义,该语法必须求解出一个布尔值。策略中值为 TRUE 的表达式被传递到该策略的路由列表以备未来处理,值为 FALSE 或 UNKNOWN 的表达式被丢弃。

表达式包含算术和逻辑运算符以及操作数。DataPower XM70 定义一组划分为逻辑名称空间的字段,这些逻辑名称空间返回的消息值被用作操作数。下图中突出显示的部分展示了一个传输对象的消息选择的示例。它将只传输长度在 2 字节到 10,000 字节之间的消息。

图 4. LLM 路由消息选择配置
LLM 路由消息选择配置
LLM 路由消息选择配置

消息属性和属性地图

WebSphere MQ LLM 消息除了拥有有效载荷之外,还可以拥有与它们相关联的属性。一个属性是一个用户定义的 “名称-值” 对,可以包含 32 位和 64 位的整数、双精度浮点值和字符串。属性之所以如此定义,是为了便于外部应用程序和其他 DataPower XM70 设备在消息选择中使用它们。

路由对象可以在传输消息属性之前对它们进行处理,这种操作通过属性映射完成。属性映射规则以 “名称/值” 对的形式指定,除了此前提到过的类型外,规则的 “值” 部分可能是一个 SQL 样式的表达式。表达式的结果被计算并指定为属性的值。

临时变量也可以使用一个映射创建。这些临时变量用作计算那些对消息接收者很重要的值的高速缓存(scratch pad)。这些变量是 DataPower XM70 内部变量,因此接收者不会看见它们。但是,变量对消息发送者很关键,因为它们支持基于消息内容的高性能计算,同时隐藏实际的计算。最终值可以分配给属性,使其成为发出的消息的一部分并可以被接收者访问。

一条消息的 XML 和 FIX 元素值也可以被访问,但是不可以修改。例如,您可能想要基于一个 XML 有效负载的根元素值或者一条 FIX 消息中的特定价格创建一个消息属性。

属性映射在消息选择已经在一个路由中发生之后才被应用。这种选择基于接收到的属性而不是已修改的属性。在下面的示例中,只有属性 final_value=68i_am_global='I AM GLOBAL' 成为出站消息的一部分。

图 5. LLM 路由属性映射
LLM 路由属性映射
LLM 路由属性映射

集成硬件 ESB

DataPower XM70 的功能不仅限于本文介绍的 LLM 功能。如果有一个流、提要或消息需要非 LLM 处理,那么使用 RLM 协议配置一个路由。一个 RLM 路由通过一个 MQ LLM 协议处理器将多条信息转发到一个多协议网关服务。其结果是创建一个处理流,该处理流可以利用 DataPower XM70 功能以及大部分传统 DataPower 功能,比如 XML 加速、消息签署和验证、有效负载转换、协议桥接、复杂的消息路由和过滤。反过来也是可能的:消息可以进入一个多协议网关并访问 Fast Path,如果该网关使用一个 dpllm backend-url 配置的话。

图 6. DataPower XM70 协议桥接
XM70 协议桥接
XM70 协议桥接

协议桥接是一种强大的网关使用方法。一个消息可以通过 RMM、RUDP 或 RUM 传入,也可以通过 WebSphere MQ、WebSphere JMS、TIBCO EMS 或 HTTP(S) 传出。类似地,非 LLM 协议可以作为 RMM、RUDP 或 RUM 进出这个网关。将受支持的协议任意组合起来都是可行的。除了桥接 LLM 和非 LLM 协议之外,您可以完全独立地使用 ESB 和 Fast Path 功能。这种灵活性使得 DataPower XM70 非常擅于满足不同的业务需求。

结束语

本文介绍了 DataPower XM70 设备为基于内容的高速路由提供的几个新特性。每个新特性都根据特定于应用程序的业务需求执行复杂任务,但是都不需要进行复杂的编程。用户友好的 DataPower XM70 Web 界面极大地简化了这些任务。DataPower XM70 让低延迟应用程序不需要再负责路由,使它们可以集中处理消息数据,而不是确定消息将发送到哪里。LLM 用户和其他寻求高速路由解决方案的用户将发现,DataPower XM70 是无与伦比的。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere
ArticleID=427634
ArticleTitle=使用 WebSphere DataPower Low Latency Appliance XM70 降低低延迟消息传送的成本和复杂性
publish-date=10162009