用于在对等通信网络中管理消息队列的系统和方法

文档序号:7812060阅读:208来源:国知局
用于在对等通信网络中管理消息队列的系统和方法
【专利摘要】本发明涉及用于在对等通信网络中管理消息队列的系统和方法。公开了一种方法和系统,用于在对等通信网络中管理一个或多个消息队列。该系统包括初始化模块、队列管理器、负载平衡模块、队列监控器以及故障检测和处理模块。初始化模块通过消息队列初始化一个或多个对等端之间的通信信道。队列管理器被配置为通过统一通信系统管理对等端之间的通信。负载平衡模块在用于事务的消息队列之间均匀地分配负载。队列监控器被配置为监控与服务和与服务相关的转码相对应的消息队列。故障检测和处理模块被配置为在统一通信系统中检测服务器的状态并且将在消息队列中的消息动态地路由至下一个可用服务器。
【专利说明】用于在对等通信网络中管理消息队列的系统和方法

【技术领域】
[0001] 在本文中描述的主题总体上涉及通过统一通信系统(unifiedcommunication system)的对等通信(peer-to-peercommunication),更具体而言,用于在对等通信网络中 管理消息队列。

【背景技术】
[0002] 在启用网络的通信系统的时期,统一通信系统在企业级应用(enterprise application)之间提供完整和灵活的通信模式。统一通信系统与队列消息一起是一种在企 业级应用之间的有效且可靠的通信方式。队列管理器方便进行队列的管理,以便在对等通 信网络中传输和接收消息。为了执行可靠的通信,需要监控消息队列以检测通信网络中的 误差或故障。
[0003] 存在用于管理和监控消息队列以及用于检测其中的故障和误差的各种方法。然 而,现有方法仅仅用于检测消息队列的传输状态,从而不能整体上监控消息队列。
[0004] 此外,现有方法并非轻量型的,并且在超负载的情况下不能有效地提供队列的负 载管理。而且,现有方法不能动态地监控用于在对等通信网络中进行通信的资源的性能。


【发明内容】

[0005] 提供该
【发明内容】
,以介绍与用于在对等通信网络中管理一个或多个消息队列的系 统和方法相关的方面,并且下面在详细描述中,进一步描述这些方面。该
【发明内容】
并非旨在 识别所要求的主题的基本特征,也并非旨在用于确定或限制所要求的主题的范围。
[0006] 在一个实施中,公开了一种用于在对等通信网络的统一通信系统中管理一个或多 个消息队列的系统。该系统包括处理器;以及存储器,耦接至处理器,其中,处理器能够执行 存储在存储器中的多个模块,并且其中,多个模块包括:初始化(initialization)模块,被 配置为通过消息队列初始化(initiate,启动)一个或多个对等端(peer)之间的通信信道; 队列管理器,被配置为通过统一通信系统管理对等端之间的通信,其中,队列管理器使对等 端能够识别消息队列以发送和接收消息,队列管理器进一步包括:负载平衡模块,被配置为 基于预定义条件,在统一通信系统中的用于事务(transaction)的消息队列之间均匀地分 配负载;队列监控器,被配置为监控与服务和与服务相关的转码(transcode)相对应的消 息队列,队列监控器进一步包括:故障检测和处理模块,被配置为在统一通信系统中检测服 务器的状态,其中,故障检测和处理模块将消息队列中的消息动态地路由至下一个可用服 务器。
[0007] 在一个实施中,公开了一种用于在对等通信网络中管理一个或多个消息队列的方 法。方法包括:通过消息队列初始化一个或多个对等端之间的通信信道;通过统一通信系 统管理对等端之间的通信,并且使对等端能够识别消息队列以发送和接收消息,管理进一 步包括:基于预定义条件,在统一通信系统中的用于事务的消息队列之间均匀地分配负载; 监控与服务和与服务相关的转码相对应的消息队列,监控进一步包括:在统一通信系统中 检测服务器的状态,其中,将在消息队列中的消息动态地路由至下一个可用服务器,其中, 利用存储在存储器中的程序指令通过处理器来执行管理、分配、监控以及检测。
[0008] 在一个实施中,公开一种计算机程序产品,具有在其上包含的用于在对等通信网 络中管理一个或多个消息队列的计算机程序,计算机程序产品包括:用于通过消息队列初 始在一个或多个对等端之间的通信信道的程序代码;用于通过统一通信系统管理对等端 之间的通信并且使对等端能够识别消息队列以发送和接收消息的程序代码,管理进一步包 括:用于基于预定义条件在统一通信系统中的用于事务的消息队列之间均匀地分配负载的 程序代码;用于监控与服务和与服务相关的转码相对应的消息队列的程序代码,监控进一 步包括:用于在统一通信系统中检测服务器的状态的程序代码,其中,将在消息队列中的消 息动态地路由给下一个可用服务器。

【专利附图】

【附图说明】
[0009] 参照附图详细地描述该说明。在附图中,参考标号最左边的数字表示参考数字首 先出现的示图。在整个示图中,相同的标号用于指代相似的特征和元件。
[0010] 图1示出了根据本主题的实施方式的用于在对等通信网络中管理一个或多个消 息队列的系统的网络实施。
[0011] 图2示出了根据本主题的实施方式的用于在对等通信网络中管理一个或多个消 息队列的系统。
[0012] 图3示出了根据本主题的实施方式的负载平衡模块的工作。
[0013] 图4示出了根据本主题的实施方式的故障检测和处理模块的工作。
[0014] 图5示出了根据本主题的实施方式执行listener_callback函数的方法。
[0015] 图6示出了根据本主题的实施方式执行app_con_callback函数的方法。
[0016]图7示出了根据本主题的实施方式的用于执行主线程的方法。
[0017]图8示出了根据本主题的实施方式的用于执行转码线程的方法。
[0018] 图9示出了根据本主题的实施方式的用于执行监视器线程(watcherthread)的 方法。
[0019] 图10示出了根据本主题的实施方式执行watcher_callback函数的方法。
[0020] 图11示出了根据本主题的实施方式执行load_balance_queue函数的方法。
[0021] 图12示出了根据本主题的实施方式的一种执行manage_queue函数的方法。
[0022] 图13示出了根据本主题的实施方式执行reset_queue_parameter函数的方法。
[0023] 图14示出了根据本主题的实施方式的用于在对等通信网络中管理一个或多个消 息队列的方法。
[0024] 图15示出了根据本主题的实施方式的主线程、转码线程以及监视器线程的整合 的表示。
[0025] 图16示出了根据本主题的实施方式的通过队列管理器的在多个实体之间的数据 和消息流动。

【具体实施方式】
[0026] 印度专利申请1985/MUM/2010涉及用于在网络中的至少一个发送装置与至少一 个接收装置之间进行对等通信的统一通信方法和统一通信系统,该案的全部内容被结合于 本文中。而且,印度专利申请302/MUM/2012的全部内容被结合于本文中。
[0027] 描述了用于在对等通信网络中管理一个或多个消息队列的系统和方法。为了管理 一个或多个消息队列,首先,通过在会话上读取消息,在一个或多个对等端之间初始化通信 信道。通过能够允许对等识别消息队列以发送和接收消息,从而管理对等端之间初始化的 通信,其中,通过统一通信系统,初始化该通信。而且,管理还包括进一步基于预定义条件, 在统一通信系统中的用于事务的消息队列之间均匀地分配负载。
[0028] 而且,监控与服务和与服务相关的转码相对应的消息队列。消息队列的监控还包 括在统一通信系统中检测服务器的状态并且将在消息队列中的消息动态地路由给下一个 可用的服务器。
[0029] 虽然在任何数量的不同计算系统、环境和/或配置中,可实现用于在对等通信网 络中管理一个或多个消息队列的所描述的系统和方法的各方面,但是在以下示例性系统的 背景下描述了这些实施方式。
[0030] 现在参照图1,根据本主题的实施方式,示出了用于在对等通信网络中管理一个或 多个消息队列的系统102的网络实施100。在一个实施方式中,描述了用于在对等通信网络 中管理一个或多个消息队列的系统102。首先,通过消息队列初始化对等端之间通信信道。 由在对等端之间的客户端装置104通过统一通信系统初始化通信信道。通过使对等端能够 识别消息队列来管理该通信以便发送和接收消息。而且,该管理还包括进一步基于预定义 条件,在统一通信系统中的用于事务的消息队列之间均匀地分配负载。此外,监控与服务和 与服务相关的转码相对应的消息队列。消息队列的监控还包括检测统一通信系统中的服务 器的状态并且将在消息队列中的消息动态地路由给下一个可用服务器。
[0031] 虽然考虑通过在服务器上实施的系统102来说明本主题,但可理解的是,还可在 各种计算系统(例如,膝上型电脑、台式电脑、笔记本、工作站、主机电脑、服务器、网络服务 器等)中实施该系统102。将要理解的是,多个用户可通过在后文中的一个或多个用户装 置104-1、104-2··· 104-N(统称为用户装置104)或存在于用户装置104上的应用程序访问 系统102。用户装置104的实例可包括但不限于便携式电脑、个人数字助理、手持式装置以 及工作站。用户装置104通过网络106以通信的方式耦接至系统102。
[0032] 在一个实施中,网络106可以是无线网络、有线网络或其组合。网络106可作为诸 如内联网、局域网(LAN)、广域网(WAN)、互联网等的不同类型的网络中的一种来实施。网 络106可以是专用网络或共享网络。共享网络表示使用各种协议(例如,超文本传输协议 (HTTP)、传输控制协议/互联网协议(TCP/IP)、无线应用协议(WAP)等)来彼此进行通信的 不同类型的网络的结合。而且,网络106可包括各种网络装置,其包括路由器、桥接器、服务 器、计算装置、存储装置等。
[0033] 现在,参照图2,根据本主题的实施方式示出了系统102。在一个实施方式中,系统 102可包括至少一个处理器202、输入/输出(I/O)界面(interface,接口)204以及存储器 206。至少一个处理器202被实施为一个或多个微处理器、微计算机、微控制器、数字信号处 理器、中央处理单元、状态机、逻辑电路和/或根据操作指令操纵信号的任何装置。在其他 功能之中,至少一个处理器202被配置为提取和执行存储在存储器206内的计算机可读指 令。
[0034]I/O界面204可包括各种软件和硬件界面,例如,网页界面、图形用户界面等。I/O 界面204可允许系统102直接或通过客户端装置104与用户交互。此外,I/O界面204可 使系统102与其他计算装置(例如,网页服务器和外部数据服务器(未显示))进行通信。 I/O界面204可在各种网络和协议类型(包括有线网络(例如,LAN、电缆等)和无线网络 (例如,WLAN、蜂窝或卫星))内促进多个通信。I/O界面204可包括一个或多个端口,用于 使多个装置彼此连接或者与另一个服务器连接。
[0035] 存储器206可包括在本领域中已知的任何计算机可读介质,例如,包括易失性存 储器(例如,静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM))和/或非易失性 存储器(例如,只读存储器(ROM)、可擦可编程ROM、闪速存储器、硬盘、光盘以及磁带)。存 储器206可包括模块208和数据210。
[0036] 模块208包括例行程序、程序、目标、元件、数据结构等,其执行特定任务或实现特 定的抽象数据类型。在一个实施中,模块208可包括初始化模块212、队列管理器214、负载 平衡模块216、队列监控器218、故障检测和处理模块220以及其他模块222。其他模块222 可包括补充系统102的应用和功能的程序或编码指令。
[0037] 除了其他作用以外,数据210被用作用于存储由一个或多个模块208处理、接收以 及生成的数据的存储库。数据210还可包括系统数据库224以及其他数据226。其他数据 226可包括由于执行在其他模块222中的一个或多个模块从而生成的数据。
[0038] 在一个实施中,首先,用户可使用客户端装置104来通过I/O界面204访问系统 102。用户可使用I/O界面204来显示这些,以便使用系统102。可在图3、图4、图5、图6、 图7、图8、图9、图10、图11、图12、图13、图15以及图16中详细地说明该系统102的工作。 系统102可用于在对等通信网络中管理一个或多个消息队列。为了管理一个或多个消息队 列,首先,通过消息队列,初始化对等端之间的通信信道。具体而言,在本实施中,在对等端 之间的通信由初始化模块212通过客户端装置104初始化。通过在会话上读取消息来将通 信初始化。会话表示在两个对等端之间的通信处理。借助于一个特定实例,该会话与在传 输层中的TCP连接相似。通过会话在每个对等端之间发生通信,并且可在对等端之间建立 一个或多个会话。
[0039] 对等端可包括在客户端服务器关系的情况下的客户端、服务器,如果不存在客户 端服务器时的发送器、接收器中的至少一个或其组合。服务名称是用于识别对等端或服务 的公共名称。通过一个特定实例,"银行业务(banking)"是服务名称。转码是识别从服务 中请求的事务的类型的代码。每个服务具有与其相关的至少一个转码。例如,可将消息发 送给具有" 1〇〇"转码的"银行业务"服务,其中," 1〇〇"可用于识别在"银行业务"服务内的 "存款"事务。
[0040] 在一个实施中,通过统一消息通信库实施对等端之间的通信。即使改变环境,统一 消息通信库(UMC库)仍确保企业级应用继续传输其核心功能。UMC库阻止企业级应用改变 环境,同时适合于改变操作环境。UMC库提供用于发送和接收消息的机构。UMC库使用通过 操作系统或第三方中间件可用的一个通信机构来实现通信要求。企业级应用获得一个界面 并且UMC库保护企业级应用远离基底通信机构的复杂性。
[0041] 在UMC配置文件中指定实际使用的通信机构及其细节,并且由企业级应用管理员 进行控制。UMC配置文件可具有XML格式。通过反应UMC配置文件上的变化可实现企业级 应用的部署配置的任何变化。根据企业级应用所需要的服务质量以及通信机构的可用性, 通过设置UMC配置文件,企业级应用管理员可选择通信机构。
[0042] 在一个实施中,系统102进一步包括队列管理器214,该队列管理器214被配置为 通过统一通信系统管理在对等端之间的通信,其中,队列管理器214使对等端能够识别消 息队列以发送和接收消息。队列管理器102被配置为用于每个服务。通过一个特定实例, 通过设立队列管理器214来完成服务的配置。服务器与队列管理器214进行通信以从队列 中获得用于读取消息队列。将消息发送给服务器的客户端还与队列管理器214接触以获得 合适的队列。
[0043] 队列管理器214进一步包括负载平衡模块216,该负载平衡模块216被配置为基于 预定义条件,在统一通信系统中的用于事务的消息队列之间均匀地分配负载。预定义条件 限定用于初始化均匀地进行消息队列的负载的分配的阈值。图3示出了负载平衡模块216 的工作,其中,存在三个队列,这些队列在时间T上具有作为nl、n2以及n3的条目数。队列 管理器214以速率w旋转,即,在每个时间间隔tl*nl之后,其中,该时间间隔等于dT。在每 个时间间隔(即,dT)之后,队列管理器214使队列负载平衡。因此,在时间T+dT处,针对每 个队列的队列长度是(nl+n2+n3)/3。图3示出了了在队列之间的负载分配,其中,队列n3 比nl和n2装载得更多,将来自n3的负载分配到n2和nl中。当中间值与最大值之间的差 值大于所限定的阈值时,负载平衡模块216在队列之间平衡负载。
[0044] 系统102进一步包括队列监控器218,该队列监控器218被配置为监控与服务和与 由队列管理器214管理的服务相关的转码相对应的消息队列。队列监控器218进一步包括 故障检测和处理模块220,该故障检测和处理模块220被配置为在统一通信系统中检测服 务器的状态,其中,该故障检测和处理模块220将在消息队列中的消息动态地路由给下一 个可用服务器。队列监控器218进一步将存储器映射文件用于针对每个时间间隔确定附接 至消息队列的服务器、写入消息队列的消息以及从消息队列中读取的消息的数量,其中,月艮 务器可以是应用服务器或处理。队列监控器218还可逐个转码地确定队列、队列名称、队列 中的消息数量、从队列读取的服务器的数量、在队列上写入的客户端应用的数量以及服务 器读取队列的速率。根据该速率、服务器的数量和队列的深度可采取适当的行动,以根据相 应的应用来实现高性能。
[0045] 图4示出了故障检测和处理模块220的工作。如图4中所示,即使服务器1发生 故障,将在队列中的消息路由给其他可用服务器,即,服务器2或服务器3。如果通信或处理 陷入事务中,那么可发生故障,或者如果杀灭线程,那么线程锁死。如果用于任何线程的服 务器不起作用,那么故障检测和处理模块220可添加另一个服务器。而且,如果队列的深度 完整,则可通过故障检测和处理模块220添加服务器。
[0046]UMC配置文件可用于配置系统102的负载平衡和故障检测以及动态路由特征。在 系统102的一个示例性实施方式中,可如下配置UMC配置文件。
[0047] 配置文件:
[0048] <?xml version="1.0"?> <catalog> <service_name name="MATCHING"> <Load_balancing> <nuin_sainple_for_loadbalancing>100</num_sampl e_for_loadba!ancing> <sleep_tiine_between_samples>500000</sleep_time _betw een_sam p I es> <route_threshold>50</iOute-threshold〉 </Load_bal anc ing> <transcode trnscode="300"> <loadbalancing>Y</loadbalancing> </transcode> </service_name> 〈/catalog〉
[0049] 其中,'num_sample_for_loadbalancing'指定用于负载平衡任务的样品的数量, 'sleep_time_between_samples'指定进行取样的频率,并且'route_threshold'确定用于 初始化负载平衡的阈值。如果用于转码的在队列中的消息的数量比用于转码的在队列中的 消息的平均数大阈值,那么可引起负载平衡和动态路由。
[0050] 现在参照图15,根据本主题的实施方式示出了主线程150、转码线程152以及监视 器线程154的整合的表示。队列管理器214的处理由队列管理器214实施。在一个实施中, 队列管理器214的每个处理可由队列管理器214初始化。队列管理器214的处理包括主线 程150、一个或多个转码线程152以及与一个或多个转码线程152耦接的一个或多个监视器 线程154。在实施中,队列管理器214的处理能够在一个或多个处理器202中执行。队列管 理器214被配置为在对等通信网络中管理一个或多个消息队列。在一个实施中,基于队列 管理器214的处理的执行来管理一个或多个消息队列。
[0051] 在操作期间,队列管理器214监控或者监听从客户端和服务器中输入的请求。在 一个实施中,队列管理器214可使用UNIX域套接字监听请求。由一个或多个客户端104初 始化请求。主线程读取XML文件,以获取服务的参数,并且初始化队列管理器214的数据结 构。在得到转码的一个或多个值之后,主线程150为每个转码创建/生成转码线程152。主 线程150进一步生成监视器线程154,用于监控队列。同时,转码线程152初始化转码的监听 器,以从服务器和客户端接收请求,并且进一步创建/注册事件管理器156以处理转码的各 种事件。而且,在监听套接字上注册事件"app_C〇nn_Callback"以获得转码的请求。而且,如 果要求进行监控,则与监视器线程154进行连接,并且发送注册请求以通过调用watcher_ callback函数为来自监视器线程154的任何事件注册。监视器线程154创建事件管理器 158以处理在转码线程152与监视器线程154之间的各种事件。而且,通过执行app_c〇n_ callback函数,监视器线程154创建和注册监听器以接受转码线程152的连接。在检查转 码线程152的请求时,监视器线程154确定是否需要路由给另一个队列。监视器线程154 还检查队列的消息处理速率,以确定与队列连接的服务器是否活动。
[0052] 通过参照图5可进一步示出系统102的实施,其中,描述了用于执行listener_ callback函数的方法。listener_callback函数接受来自客户端和服务器的请求(步骤 502)。在下一个步骤504中,调度listener_callback函数以在请求的事件管理器中为请 求提供服务。图6示出了app_conn_callback函数的逐步执行。在第一步骤(步骤602) 上接收请求并且检查事务代码的有效性(步骤604)。而且,在步骤606上,基于在该请求中 的标记确定请求是来自客户端还是服务器。在下一个步骤608上,如果请求来自服务器,则 确定最多负载的服务器队列。如果请求来自客户端,则提供最少负载的服务器队列(步骤 610)。而且,在步骤612上,将请求在转码线程152中创建的套接字上发送给服务器或客户 端。
[0053] 而且,图7示出了主线程150的实施。在第一步骤712中,读取XML配置文件以得 到用于服务的参数。在下一个步骤714中,初始化用于队列管理器214的数据结构。在第 三步骤716中,初始化用于通过使用队列的服务器监控各种转码更新的队列的存储器映射 文件。在第四步骤718中,初始化用于通过服务器和队列管理器214监控需要负载平衡更 新的转码的队列的存储器映射文件。在第五步骤720中,解析输入并且接收转码的值。在 第六步骤722中,为每个转码创建转码线程152。在第七步骤724中,创建监视器线程154 以监控队列。在第八步骤726中,初始化用于输入请求的等待以启动存在于服务中的新的 转码线程152。
[0054] 而且,在图8中描述了转码线程152的实施。在第一步骤802中,初始化用于转码 的监听器以从服务器或客户端接收请求。在第二步骤804中,创建事件管理器以处理针对 转码的各种事件。在第三步骤806中,在监听套接字上注册事件app_conn_callback以得到 针对转码的请求。而且,在第四步骤808中,确定是否需要监控。而且,在步骤810上,如果 用户基于在配置文件中配置的设置而需要监控,则与监视器线程154进行连接。在步骤812 上,发送注册请求并且通过调用watcher_callback函数来执行针对来自监视器线程154的 任何事件的注册。在最后一个步骤814中,进入事件循环。
[0055] 而且,在图9中示出了监视器线程154的实施。在第一步骤902中,创建事件管理 器以处理在转码线程152与监视器线程154之间的各种事件。在下一个步骤904中,创建 和注册监听器以接受来自转码线程152的连接。在第三步骤906中,从XML配置文件接收 用于监控的参数。在第四步骤908中,基于XML配置文件中的参数收集用于每个队列和每 个转码的样品。在第五步骤910中,检查来自转码线程152的用于添加队列或更新的请求。 在第六步骤912中,基于用于转码的阈值和最大深度来确定是否需要路由给其他队列。在 第七步骤914中,监视器线程154也检查队列的消息处理速率以确定与队列连接的服务器 是否是活动的。
[0056] 而且,在图10中描述了watcher_callback函数的实施。在第一步骤1002中,从 监视器线程154接收请求。在第二步骤1004中,请求的类型被认为"注册成功"、"路由"、 "成功取消注册"、"没有服务器"或"服务器恢复"中的一个。如果请求是"路由"请求(步 骤1008),则调用l〇ad_balanCe_qUeUe函数(步骤1010)。如果请求是"没有服务器"请求 (步骤1014),则调用manage_queue函数(步骤1016)。如果请求是"服务器"恢复请求(步 骤1018),则调用reset_queue_parameter函数(步骤1020)。
[0057] 而且,在图11中描述了load_balance_queue函数的实施。在第一步骤1102中,计 算用于转码的队列的平均深度。在第二步骤1104中,在非阻塞模式中从重负载队列接收消 息。在下一个步骤1106中,确定是否达到平均深度。如果达到平均深度,则将消息发送给 最少负载的队列(步骤1108)。在步骤1110中,确定是否到达最后的队列。执行步骤1104 到步骤1108,直到到达最后的队列。
[0058] 而且,在图12的步骤中描述了manage_queue函数的实施。在第一步骤1202中, 用于队列的服务器的数量的值减小。在第二步骤1204中,将数据路由给具有活动服务器的 其他队列。在第三步骤1206中,注册队列的用于路由任何其他进入数据的error_callback 函数。
[0059] 而且,在图13的步骤中描述了reset_queue_parameter函数的实施。在第一步骤 1302中,更新存储器映射文件中的服务器的数量的值。在第二步骤1304中,从事件管理器 取消队列的注册。
[0060] 现在参照图16,根据本主题的示例性实施示出了通过队列管理器214的在多个实 体之间的数据和消息流动。队列管理器214在对等通信网络中管理一个或多个消息队列。 为了管理一个或多个消息队列,队列管理器214包括执行多个队列管理器214的处理,例 如,主线程150、转码线程152以及监视器线程154。在一个实施中,队列管理器214还可包 括队列监控器218以监控消息队列。
[0061] 在一个实施中,通过UNIX域套接字层从客户端和服务器中接受请求(步骤1601)。 转码线程150通过UNIX域套接字层接收请求并且接收用于服务的参数(步骤1602)。主线 程150初始化用于监控并且用于负载平衡的存储器映射文件(步骤1603)。而且,主线程 150为每个转码创建转码线程152(步骤1604)以及监视器线程154以监控消息队列(步骤 1605)。同时,为转码线程152初始化监听器以从客户端和服务器中接收请求(步骤1606)。 而且,如果在配置文件中配置请求并且为监视器线程154的任何事件注册请求,则转码线 程152发送队列的注册请求以增加监控(步骤1607)。监视器线程154基于转码的最大深 度和阈值确定是否需要路由给其他队列,并且基于从队列处理的消息的数量进行检查以确 定与队列连接的服务器是否是活动的(步骤1608)。如果需要路由,则将在消息队列中的消 息动态地路由给下一个可用服务器(步骤1609)。
[0062] 现在参照图14,根据本主题的实施方式示出了用于在对等通信网络中管理一个或 多个消息队列的方法1400。可在计算机可执行指令的通用背景下描述方法1400。通常,计 算机可执行指令可包括例行程序、程序、目标、元件、数据结构、过程、模块、功能等,其执行 特定功能或实现特定的抽象数据类型。还可在由通过通信网络链接的远程处理装置执行功 能的分配式计算环境中实践该方法1400。在分配式计算环境中,计算机可执行指令可位于 本地和远程计算机存储介质中,包括存储器存储装置。
[0063] 描述方法1400的顺序并非旨在被理解为限制性的,并且可以任意顺序组合任何 数量的所描述的方法的方框以任意实现方法1400或替换的方法。此外,在不背离在本文中 描述的主题的精神和范围的情况下,可从方法1400中删除单独的方框。而且,可通过任何 合适的硬件、软件、固件或其组合,来实现该方法。然而,为了便于解释,在下面描述的实施 方式中,方法1400可被视为实施在上述系统102中。
[0064] 在方框1402上,通过消息队列在一个或多个对等端之间初始化通信信道,可通过 初始化模块212初始化通信。
[0065] 在方框1404上,通过统一通信系统管理对等端之间的通信。在一个实施中,通信 可由队列管理器214管理。
[0066] 在方框1406上,能够允许对等端识别消息队列以便发送和接收消息。在一个实施 中,队列管理器214使对等端能够识别消息队列。
[0067] 在方框1408上,在用于事务的消息队列之间均匀地分配负载。在一个实施中,负 载平衡模块216在消息队列之间分配负载。
[0068] 在方框1410上,监控与服务和转码相对应的消息队列。在一个实施中,通过队列 监控器218执行监控。
[0069] 在方框1412上,检测在统一通信系统中的服务器的状态。在一个实施中,故障检 测和处理模块220执行检测。
[0070] 在方框1414上,将消息动态地路由给下一个可用服务器。在一个实施中,故障检 测和处理模块220执行路由。
[0071] 虽然使用结构特征和/方法专用的语言,描述了用于在对等通信网络中管理一个 或多个消息队列的方法和系统的实施,但是要理解的是,所附权利要求不必限于所描述的 特定特征或方法。确切地说,公开了特定的特征和方法,作为用于在对等通信网络中管理一 个或多个消息队列的实施的实例。
【权利要求】
1. 一种用于在对等通信网络中管理一个或多个消息队列的方法,所述方法包括: 通过所述消息队列初始化一个或多个对等端之间的通信信道; 通过统一通信系统管理所述对等端之间的通信并且使所述对等端能够识别所述消息 队列以发送和接收消息,所述管理进一步包括: 基于预定义条件,在所述统一通信系统中的用于事务的所述消息队列之间均匀地分配 负载; 监控与服务和与所述服务相关的转码相对应的所述消息队列,所述监控进一步包括: 在所述统一通信系统中检测服务器的状态,其中,将所述消息队列中的所述消息动态 地路由至下一个可用服务器, 其中,利用存储在存储器中的程序指令通过处理器来执行所述管理、所述分配、所述监 控以及所述检测。
2. 根据权利要求1所述的方法,其中,会话指代两个对等端之间的通信处理。
3. 根据权利要求1所述的方法,其中,所述对等端包括在客户端服务器关系的情况下 的客户端、服务器、如果不存在所述客户端服务器关系时的发送器或接收器中的至少一个 或其组合。
4. 根据权利要求1所述的方法,其中,所述转码是识别从所述服务请求的事务的类型 的代码。
5. 根据权利要求1所述的方法,其中,所述预定义条件限定阈值,所述阈值用于初始化 均匀地进行所述消息队列之间的负载的所述分配。
6. 根据权利要求1所述的方法,其中,所述监控进一步包括将存储器映射文件用于针 对每个时间间隔确定附接至所述消息队列的服务器、写入所述消息队列中的所述消息以及 从所述消息队列读取的所述消息的数量。
7. -种用于在用于对等通信网络的统一通信系统中管理一个或多个消息队列的系统, 所述系统包括: 处理器;以及 存储器,所述存储器耦接至所述处理器,其中,所述处理器能够执行存储在所述存储器 中的多个模块,并且其中,所述多个模块包括: 初始化模块,被配置为通过所述消息队列初始化一个或多个对等端之间的通信信道; 队列管理器,被配置为通过所述统一通信系统管理所述对等端之间的通信,其中,所述 队列管理器使所述对等端能够识别所述消息队列以发送和接收消息,所述队列管理器进一 步包括: 负载平衡模块,被配置为基于预定义条件在所述统一通信系统中的用于事务的所述消 息队列之间均匀地分配负载; 队列监控器,被配置为监控与服务和与所述服务相关的转码相对应的所述消息队列, 所述队列监控器进一步包括: 故障检测和处理模块,被配置为在所述统一通信系统中检测服务器的状态,其中,所述 故障检测和处理模块将所述消息队列中的所述消息动态地路由至下一个可用服务器。
8. 根据权利要求7所述的系统,其中,会话指代在两个对等端之间的通信处理。
9. 根据权利要求7所述的系统,其中,所述对等端包括在客户端服务器关系的情况下 的客户端、服务器、如果不存在所述客户端服务器关系时的发送器或接收器中的至少一个 或其组合。
10. 根据权利要求7所述的系统,其中,所述转码是识别从所述服务请求的事务的类型 的代码。
11. 根据权利要求7所述的系统,其中,所述预定义条件限定阈值,所述阈值用于初始 化均匀地进行所述消息队列之间的负载的所述分配。
12. 根据权利要求7所述的系统,其中,所述队列监控器进一步将存储器映射文件用于 针对每个时间间隔确定附接至所述消息队列的服务器、写入所述消息队列中的所述消息以 及从所述消息队列读取的所述消息的数量。
13. -种计算机程序产品,具有在其上包含的用于在对等通信网络中管理一个或多个 消息队列的计算机程序,所述计算机程序产品包括: 用于通过所述消息队列初始化一个或多个对等端之间的通信信道的程序代码; 用于通过统一通信系统管理所述对等端之间的通信并且使所述对等端能够识别所述 消息队列以发送和接收消息的程序代码,所述管理进一步包括: 用于基于预定义条件在统一通信系统中的用于事务的所述消息队列之间均匀地分配 负载的程序代码; 用于监控与服务和与所述服务相关的转码相对应的所述消息队列的程序代码,所述监 控进一步包括: 用于在所述统一通信系统中检测服务器的状态的程序代码,其中,将在所述消息队列 中的所述消息动态地路由至下一个可用服务器。
【文档编号】H04L12/863GK104426800SQ201410416091
【公开日】2015年3月18日 申请日期:2014年8月21日 优先权日:2013年8月22日
【发明者】尼尚特·库马尔·阿格拉沃尔, 希曼舒·库马尔, 马诺杰·卡鲁纳卡兰·南比亚尔 申请人:塔塔顾问服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1