首页> 中国专利> 支持事务式中间件机器环境中的复杂消息标头的系统和方法

支持事务式中间件机器环境中的复杂消息标头的系统和方法

摘要

一种灵活的事务数据结构可以用于存储事务式中间件机器环境下的复杂消息标头。所述灵活的事务数据结构可以具有动态数量的字段,并且可经由指定的ID访问。所述消息标头可以包括第一数据结构和第二数据结构,第一数据结构分别存储用于使用第一和第二消息队列访问客户端的地址信息。第一类型的事务式服务器操作为仅使用第一数据结构来获得用于使用第一消息队列访问客户端的地址信息。第二类型的事务式服务器操作为从第一数据结构获得密钥,然后使用密钥来从第二数据结构获得用于使用第二消息队列访问客户端的地址信息。

著录项

  • 公开/公告号CN103827849A

    专利类型发明专利

  • 公开/公告日2014-05-28

    原文格式PDF

  • 申请/专利权人 甲骨文国际公司;

    申请/专利号CN201280047480.6

  • 发明设计人 时培植;金永顺;

    申请日2012-09-25

  • 分类号G06F15/173;

  • 代理机构中国国际贸易促进委员会专利商标事务所;

  • 代理人冯玉清

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-17 00:06:05

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-06-09

    授权

    授权

  • 2014-06-25

    实质审查的生效 IPC(主分类):G06F15/173 申请日:20120925

    实质审查的生效

  • 2014-05-28

    公开

    公开

说明书

版权声明

本专利文档的公开内容的一部分包含受版权保护的内容。版权所 有人不反对任何人如该专利文档或专利公开内容在专利商标局专利文 件或记录中所登载的那样对它进行复制再现,但是保留所有其他版权 权利。

技术领域

本发明总体上涉及计算机系统和软件,诸如中间件,更特别地, 涉及支持事务式中间件机器环境。

背景技术

事务式中间件系统或面向事务的中间件包括可以处理组织内的各 种事务的企业应用服务器。随着诸如高性能网络和多处理器计算机之 类的新技术的发展,需要进一步改进事务式中间件的性能。这些大致 是本发明的实施例意图解决的领域。

发明内容

本文描述一种用于支持事务式中间件机器环境下的复杂消息标头 的系统和方法。所述复杂消息标头包括第一数据结构和第二数据结构, 第一数据结构存储用于使用第一消息队列访问事务式客户端的地址信 息,第二数据结构存储用于使用第二消息队列访问事务式客户端的地 址信息。第一类型的事务式服务器操作来检查复杂消息标头中的第一 数据结构以获得用于使用第一消息队列与事务式客户端进行通信的地 址信息。第二类型的事务式服务器操作来从复杂消息标头中的第一数 据结构获得密钥,并且使用该密钥来从复杂消息标头中的第二数据结 构获得用于使用第二消息队列与事务式客户端进行通信的地址信息。

附图说明

图1示出根据本发明的实施例的支持复杂消息标头的事务式中间 件机器环境的例示。

图2例示根据本发明的实施例的用于支持事务式中间件机器环境 下的复杂消息标头的示例性流程图。

图3示出根据本发明的实施例的事务式中间件机器环境下的复杂 消息标头的例示。

具体实施方式

本文描述一种用于支持事务式中间件系统(诸如Tuxedo)的系统 和方法,该系统和方法可以利用具有多个处理器的快速机器和高性能 网络连接。灵活的事务数据结构可以用于将消息标头存储在事务式中 间件机器环境下。灵活的事务数据结构可以具有动态数量的字段,并 且可经由指定ID来访问。消息标头可以包括第一数据结构和第二数 据结构,第一数据结构存储用于使用第一消息队列访问客户端的地址 信息,第二数据结构存储用于使用第二消息队列访问客户端的地址信 息。第一类型的服务器操作为仅使用第一数据结构来获得用于使用第 一消息队列访问客户端的地址信息。第二类型的服务器操作为从第一 数据结构获得密钥,然后使用该密钥来从第二数据结构获得用于使用 第二消息队列访问客户端的地址信息。

根据本发明的实施例,所述系统包括高性能硬件(例如,64位处 理器技术)、高性能大型存储器和冗余Infiniband和以太网联网、以 及应用服务器或中间件环境(诸如WebLogic套件),以提供完整的 Java EE应用服务器综合体,该Java EE应用服务器综合体包括可以 被快速配置并且可以按需伸缩的大规模并行内存网格。根据实施例, 所述系统可以被部署为提供应用服务器网格、存储区域网络和 Infiniband(IB)网络的全机架、半机架或四分之一机架或其他构造。 中间件机器软件可以提供应用服务器、中间件和其他功能(诸如,例 如WebLogic服务器、JRockit或Hotspot JVM、Oracle Linux或 Solaris、以及Oracle VM)。根据实施例,所述系统可以包括彼此经 由IB网络进行通信的多个计算节点、IB交换机网关以及存储节点或 单元。当被实现为机架构造时,可以将机架的未使用部分置空或用填 充物占据。

根据本发明的在本文中被称为“Sun Oracle Exalogic”或 “Exalogic”的实施例,所述系统是用于托管中间件或应用服务器软 件(诸如Oracle Middleware SW套件或Weblogic)的易部署解决方 案。如本文中所描述的,根据实施例,所述系统是包括一个或多个服 务器、存储单元、用于存储联网的IB交织、以及托管中间件应用所需 的所有其他组件的“盒中网格”。通过使用例如实时应用集群(Real  Application Clusters)和Exalogic Open储存器来利用大规模并行网 格架构,可以赋予所有类型的中间件应用重要性能。所述系统提供带 有I/O线性伸缩性的性能改善,易于使用和管理,并且提供任务关键 的可用性和可靠性。

根据本发明的实施例,Tuxedo是实现高性能分布式企业应用的构 造、执行和管控的一组软件模块,并且已经被若干多层次应用部署工 具用作事务式中间件。另外,事务式中间件系统(诸如Tuxedo系统) 可以利用具有多个处理器的快速机器(诸如Exalogic中间件机器)和 高性能网络连接(诸如Infiniband(IB)网络)。

根据本发明的实施例,事务式中间件系统可以使用远程直接存储 器存取(RDMA)协议在本地机器与远程机器之间交换消息,从而以 类似于本地消息传送(例如,绕过桥处理并且防止单点瓶颈)的方式 来实现短延迟。在2012年3月8日提交的题为“SYSTEM AND  METHOD FOR PREVENTING SINGLE-POINT BOTTLENECK IN  A TRANSACTIONAL MIDDLEWARE MACHINE  ENVIRONMENT”的美国申请中公开了使用RDMA协议在本地机器 与远程机器之间交换消息,该申请的全部内容通过引用合并于此。

支持复杂消息标头

根据本发明的实施例,事务式中间件机器环境可以使用复杂消息 标头以支持在机器之间传送消息时绕过桥处理并且防止单点瓶颈。复 杂消息标头可以使用灵活的数据结构以用于支持事务式中间件机器环 境中的不同消息队列,诸如RDMA消息队列和系统V处理间通信 (IPC)消息队列。

图1示出根据本发明的实施例的支持复杂消息标头的事务式中间 件机器环境的例示。如图1所示,事务式客户端101可以将不同的服 务请求消息(消息A104和消息B105)发送到不同类型的事务式服 务器(服务器A102和服务器B103)。服务器A可以是使用IPC队 列的第一类型的服务器,服务器B可以是使用RDMA队列的第二类 型的服务器。另外,服务器可以同时监听IPC队列和RDMA队列两 者。服务器A102和服务器B103可以是硬件计算节点。服务器A102 和服务器B103可以设置在中间件机器的机架中。

根据本发明的实施例,复杂消息标头可以使用灵活的数据结构, 以便支持绕过桥处理并且防止单点瓶颈。如图1所示,消息标头A106 包括第一数据结构A108和第二数据结构A110,消息标头107包括 第一数据结构B109和第二数据结构B111。第一数据结构A108和第 一数据结构B109均可以是存储用于使用IPC队列访问客户端的地址 信息的简单数据结构。另外,消息标头B107中的第二数据结构B111 可以是存储用于使用第二消息队列访问客户端的地址信息的数据缓冲 区,消息标头A106中的第二数据结构A110可以被置空、不存在、 或者一开始就没有被创建。

在图1所示的例子中,服务器A102(优选使用系统V IPC队列 A122的服务器)可以仅使用简单数据结构108来经由桥处理A120 和桥处理C118获得用于使用IPC消息队列C116访问客户端的地址 信息。另一方面,服务器B103(优选使用RDMA队列的服务器)可 以使用简单数据结构109来获得密钥113(例如,具有负的长整型值 (long value)的伪IPC队列地址)。此外,服务器B103可以使用密 钥113或指定字段名来查找数据缓冲区以获得关于用于使用第二消息 队列访问客户端的地址B114的信息。

根据本发明的实施例,客户端可以同时维护IPC队列和RDMA 队列。在客户端将服务器请求消息送出到目标服务器之前,客户端可 以首先基于客户端之前接收的信息来确定目标服务器的类型。如果目 标服务器被确定为优选使用IPC队列,则客户端可以发送具有格式与 图1所示的消息标头A106类似的消息标头的服务请求消息。否则, 如果目标服务器被确定为优选使用RDMA队列,则客户端可以发送 具有格式与图1所示的消息标头B107类似的消息标头的服务请求消 息。

图2例示根据本发明的实施例的用于支持事务式中间件机器环境 下的复杂消息标头的示例性流程图。如图2所示,在步骤201,提供 第一数据结构,第一数据结构存储用于使用第一消息队列访问事务式 客户端的地址信息。此外,在步骤202,提供第二数据结构,第二数 据结构存储用于使用第二消息队列访问事务式客户端的地址信息。然 后,在步骤203,第一类型的事务式服务器可以仅检查复杂消息标头 中的第一数据结构以获得用于使用第一消息队列与事务式客户端进行 通信的地址信息。此外,在步骤204,第二类型的事务式服务器可以 从复杂消息标头中的第一数据结构获得密钥,并且使用该密钥来从复 杂消息标头中的第二数据结构获得用于使用第二消息队列与事务式客 户端进行通信的地址信息。

在Tuxedo中传载消息队列信息

根据本发明的实施例,Tuxedo应用可以利用RDMA协议和使用 RDMA队列,以便绕过与系统V IPC队列相关联的桥处理。与系统 V IPC队列相关联的桥处理可以是Tuxedo环境下的单点瓶颈。通过 使用RDMA队列,不同Tuxedo机器之间的远程消息传送可以按类似 于本地消息传送的方式实现较短延迟。

Tuxedo客户端和服务器可以按不同版本编译,并且可以部署在 不同机器中。有可能并非每个机器都支持旁路桥处理特征。所述系统 可以在它们之间保持消息兼容性。例如,一版本的Tuxedo服务器可 以访问Tuxedo消息标头中的所有字段的正确偏移,尽管该Tuxedo 服务器不支持旁路桥特征。因此,在不同版本的Tuxedo上运行的应 用可以识别彼此发送的消息。

图3示出根据本发明的实施例的事务式中间件机器环境下的复杂 消息标头的例示。如图3中所示,复杂消息标头包含在C结构中的几 个Tuxedo消息标头301和302、以及在FML32类型化缓冲区中的 Tuxedo消息标头303。

客户端可以将系统V IPC队列地址信息存储在C结构中。为了解 决互操作性问题,即使当旁路桥特征被激活时,C结构也可以在消息 标头中的相同位置保持不变。另外,客户端可以将其整个RDMA消 息队列信息存储到灵活事务标头中,例如,存储在具有不用于系统V IPC队列地址的ID的FML32类型化缓冲区标头303中。

FML32类型化缓冲区中的RDMA消息队列信息通常包含比C结 构中的系统V IPC队列地址信息更多的字节。例如,Tuxedo请求消 息标头中的C结构包含八(8)字节“长整型”变量,RDMA消息队 列地址是128字节的数组。

FML32类型化缓冲区是按字段索引的灵活事务数据结构。FML32 类型化缓冲区中的每个条目可以按指定字段名进行检索。如果处理得 到FML32类型化缓冲区,那么如果处理没有经由它不知道的字段名 得到值,则该处理不引起任何麻烦。此外,不太可能任何处理可以试 图经由它不知道的字段来获得值。

根据本发明的实施例,可以将动态数量的字段304和305放置到 可经由指定ID访问的同一缓冲区中。当旁路桥特征没有被激活时, 所述处理不检查FML32标头,并且因为C结构标头不变,所以处理 仅可以访问系统V IPC队列。

当旁路桥特征被激活时,客户端可以使用RDMA消息队列而不 是系统V IPC队列来将消息发送到服务器,并且可以将其回复RDMA 消息队列地址存储在请求消息中,以使得服务器可以送回响应。

如图3所示,当Tuxedo服务器处理从Tuxedo客户端接收到消 息时,Tuxedo服务器处理可以首先得到C结构(例如,Tuxedo消息 标头X302)中的IPC队列地址。如果Tuxedo服务器处理发现该条 目具有负的长整型值,则Tuxedo服务器处理可以经由指定的字段名 从在FML32类型化缓冲区中的Tuxedo消息标头Y303得到RDMA 消息队列地址。

此外,Tuxedo客户端可以在发送请求之前从服务器得到版本信 息。因此,对于没有用旁路桥特征进行编译的服务器而言,只有系统 V IPC队列地址可以被放置到请求消息标头中,FML32类型化缓冲区 不被触动。

当旁路桥特征被禁用时,在FML32缓冲区303中不存在RDMA 消息队列地址字段。消息缓冲区(C结构部分)中的队列地址可以是 指示系统V IPC队列地址的正的IPC队列地址。因此,当Tuxedo从 消息缓冲区得到该队列地址时,系统不检查FML32缓冲区。

本发明的其他实施例包括一种用于支持事务式中间件机器环境下 的复杂消息标头的系统,该系统包括:第一数据存储单元,其存储用 于使用第一消息队列访问事务式客户端的地址信息;第二数据存储单 元,其存储用于使用第二消息队列访问事务式客户端的地址信息;第 一类型的事务式服务器,其操作为仅检查复杂消息标头中的第一数据 结构以获得用于使用第一消息队列与事务式客户端进行通信的地址信 息;以及第二类型的事务式服务器,其操作为从复杂消息标头中的第 一数据结构获得密钥,并且使用该密钥来从复杂消息标头中的第二数 据结构获得用于使用第二消息队列与事务式客户端进行通信的地址信 息。

另一实施例包括一种系统,其中事务式客户端操作为使用复杂消 息标头将消息发送到事务式服务器。

另一实施例包括一种系统,其中事务式客户端操作为在发送所述 消息之前得到关于事务式服务器的信息。

另一实施例包括一种系统,其中事务式服务器操作为基于复杂消 息标头中的地址信息将响应消息发送到事务式客户端。

另一实施例包括一种系统,其中第一数据结构是C数据结构,第 二数据结构是类型化缓冲区数据结构。

另一实施例包括一种系统,其中事务式客户端操作为通过本地桥 处理与第一类型的事务式服务器进行通信。

另一实施例包括一种系统,其中事务式客户端操作为经由高性能 网络直接与第二类型的事务式服务器进行通信。

另一实施例包括一种系统,其中高性能网络是使用远程直接存储 器存取(RDMA)协议的Infiniband(IB)网络。

另一实施例包括权利要求1的系统,其中第一类型的事务式服务 器不理解复杂消息标头中的第二数据结构中的地址信息。

另一实施例包括一种系统,其中第二数据结构是具有动态数量的 字段的灵活的事务数据结构,每个字段可经由指定ID来访问。

另一实施例包括一种用于支持事务式中间件机器环境下的复杂消 息标头的设备,该设备包括:用于提供第一数据结构的装置,第一数 据结构存储用于使用第一消息队列访问事务式客户端的地址信息;用 于提供第二数据结构的装置,第二数据结构存储用于使用第二消息队 列访问事务式客户端的地址信息;用于允许第一类型的事务式服务器 仅检查复杂消息标头中的第一数据结构以获得用于使用第一消息队列 与事务式客户端进行通信的地址信息的装置;以及用于允许第二类型 的事务式服务器从复杂消息标头中的第一数据结构获得密钥并且使用 该密钥来从复杂消息标头中的第二数据结构获得用于使用第二消息队 列与事务式客户端进行通信的地址信息的装置。

另一实施例包括一种设备,其还包括用于允许事务式客户端使用 复杂消息标头将消息发送到事务式服务器的装置。

另一实施例包括一种设备,其还包括用于允许事务式客户端在发 送所述消息之前得到关于事务式服务器的信息的装置。

另一实施例包括一种设备,其还包括用于允许事务式服务器基于 复杂消息标头中的地址信息将响应消息发送到事务式客户端的装置。

另一实施例包括一种设备,其中第一数据结构是C数据结构,第 二数据结构是类型化缓冲区数据结构。

另一实施例包括一种设备,其还包括用于允许事务式客户端通过 本地桥处理与第一类型的事务式服务器进行通信的装置。

另一实施例包括一种设备,其还包括用于允许事务式客户端经由 高性能网络直接与第二类型的事务式服务器进行通信的装置。

另一实施例包括一种设备,其中高性能网络是使用远程直接存储 器存取(RDMA)协议的Infiniband(IB)网络。

另一实施例包括一种设备,其还包括用于允许第一类型的事务式 服务器不理解复杂消息标头中的第二数据结构中的地址信息的装置。

另一实施例包括一种设备,其中第二数据结构是具有动态数量的 字段的灵活的事务数据结构,其中每个字段均可经由指定的ID来访 问。

本发明可以方便地使用一个或多个常规的通用或专用数字计算 机、计算装置、机器或微处理器来实现,这些数字计算机、计算装置、 机器或微处理器包括根据本公开的教导编程的一个或多个处理器、存 储器和/或计算机可读存储介质。如软件领域中的技术人员将明白的, 熟练的程序员可以基于本公开的教导容易地准备适当的软件编码。

在一些实施例中,本发明包括计算机程序产品,该计算机程序产 品是其上/其中存储可以用于将计算机编程为执行本发明的任何一个 处理的指令的存储介质或一个(多个)计算机可读介质。存储介质可 以包括,但不限于,任何类型的盘(包括软盘、光学盘、DVD、CD-ROM、 微驱动器和磁光盘)、ROM、RAM、EPROM、EEPROM、DRAM、 VRAM、闪存装置、磁性或光学卡、纳米系统(包括分子存储器IC)、 或适用于存储指令和/或信息的任何类型的介质或装置。

已经为了例示和描述的目的提供了本发明的前面的描述。并非意 图是穷举性的或者使本发明限于所公开的精确形式。许多修改和变型 对于本领域的熟练从业者将是显而易见的。为了最佳地说明本发明的 原理及其实际应用,选择并描述了实施例,从而使得本领域的其他技 术人员能够针对各种实施例并且在适合于所设想的特定用途的各种修 改下理解本发明。意图是本发明的范围由权利要求书及其等同形式限 定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号