用于动态客户端/服务器网络管理的方法以及系统的制作方法

文档序号:6469770阅读:93来源:国知局
专利名称:用于动态客户端/服务器网络管理的方法以及系统的制作方法
技术领域
本发明涉及使用代理服务器进行客户端/服务器网络管理的计算 机编程。
背景技术
分布式计算的客户端/服务器模型操作以通过将由各种计算机硬 件和软件资源执行的"客户端"任务和"服务器"任务之间的功能 进行拆分(split)来满足用户的需要,该各种计算机硬件和软件资源 组织成为用于彼此通信的"网络",诸如局域网("LAN")或广 域网("WAN")或互联网。使用这种模型,"客户端,,程序向"服 务器"程序发送消息请求以便根据某些通信"协议"(即,确定如 何经过网络传输信息的一组标准规则)获得数据和/或处理动作,并 且服务器通过执行请求或通过将其延迟至另一时间、或者通过指示 其无法履行来完成处理事务。这种模型允许客户端和服务器在计算 机网络中彼此独立地定位(并操作),其中该客户端和服务器通常 使用适合于各自功能的不同硬件和操作系统。
"代理服务器(或网关)"通常用于解决客户端请求,该请求 针对将由其他网络"应用服务器"完成的事务,该"应用服务器" 能够执行事务所要求的数据处理动作,但不能直接由客户端访问。 在消息的初始传输时如果没有成功完成处理事务,则客户端可以使 用代理服务器的"阵列化集群"(或组)向应用服务器发送消息的 重传。在该情况下,使用RFC 3261标准,代理服务器集群必须将(多 个)重传路由至与原始传输相同的应用服务器,使得重传与原始传 输相一致。目前的代理服务器技术(诸如,与IBM WebSphere —并 使用)提供了通过将消息寻址(即"哈希变换(hash)")至应用服务器阵列来部分解决此问题。这种解决方案将一直工作直到每个集
群化的应用服务器的数量(以及相关处理负载或"负重(weight)") 不再变化。然而,如果服务器开始(或停止)消息重传之间的功能 (或者其中一个服务器的"负重"发生变化),则已重传的代理消 息可能被路由至不同于原始期望的应用服务器。

发明内容
本发明提供了使用代理服务器的动态客户端/服务器网络管理。 尤其是,使用了一种编程方法以及系统以允许阵列化集群中的每个 有效代理服务器维护该集群(称为"代理集群阵列,,)中所有其他 操作中的代理服务器的更新列表。当由集群的代理服务器接收到客 户端消息(对网络化应用服务器的访问请求)时,可以将该消息转 发至(集群内的)另一代理服务器,使得消息(重)传输可以通过 与原始消息相同的代理服务器,以允许代理服务器做出关于该消息 的一致的路由(以及其他)决策。
当代理服务器从用户客户端接收到请求访问应用服务器以便实 施处理事务的消息时,代理服务器将该消息"哈希变换"(通过对 其寻址)至"目的地,,代理服务器。如果该目的地代理服务器并不 是初始接收到消息的那个代理服务器,则将该消息转发至原始(目 的地)代理服务器,其在足够长的时间段内,(在本地)维护处理
"状态"信息,以确定该消息是否为重传(并且如果该消息是重传, 则该目的地代理服务器可以作出与针对原始消息所作出的相同的处 理决策)。例如,目的地代理服务器可以标识(或"记住,,)原始 消息所寻址(或"路由,,)的应用服务器,以便将(多个)重传消 息路由至相同的应用服务器。每个代理服务器在消息重传之间的指 定(即最大可能)时间间隔期间(称为"MAX—STATE (最大状态)") 维护这种状态信息,该状态信息用于指示针对该代理服务器已处理
(包括消息已被路由所至的应用服务器的标识)的所有消息做出的 处理决策,其中为了潜在网络传输延迟的考虑而调整该时间间隔。
这种方法允许代理服务器在动态变化的客户端/服务器网络处理环境 中针对消息(重)传输做出一致的决策。
本发明提供使用代理服务器的动态客户端/服务器网络管理,其 通过允许阵列化集群中的每个有效代理服务器维护该集群中所有其 他操作中的代理服务器的更新列表来实现。
本发明提供 一 种方法和系统,其允许用户客户端发送请求经由 集群代理服务器访问应用服务器的消息,这通过使用代理服务器以 提供消息的哈希变换,所述消息的哈希标识维护该消息的状态信息 的代理服务器。
在说明书的结论部分中特别指出并且清楚要求了作为本发明的 主题。然而,通过参考以下内容并结合附图可以更好地理解本发明 及其进一步的目的和有益效果。


图1示出了根据本发明的客户端/服务器网络操作的示意图; 图2示出了根据本发明的客户端/服务器网络操作的示意流程图。
具体实施例方式
图l示出了客户端/服务器计算机网络的优选操作的示意图,该
计算机网络利用SIP/UDP (用户数据报协议上的会话发起协议)作 为传输协议,使得所示出的连接拓朴可以用于在位于网络上的应用 服务器和客户端之间传输经代理的消息(包含用于待处理事务的指 令和/或数据);即用户客户端1/2/3向代理服务器集群11/22/33中 的一个发送消息,代理服务器集群11/22/33将该消息路由至应用服 务器集群111/222/333中的一个。在图l所示的示例中,(a)代理 服务器22从客户端1直接接收消息Ml;以及(b)代理服务器11 接收消息RMl (Ml的重传)并将其转发至代理服务器22,继而(无 论上述哪种情况下)将消息路由(即,负载均衡)至应用服务器111。
如图2所示出的流程图,在步骤(i)中,当(对话-发起)客户端 消息M1/RM1使用SIP/UDP (或类似的)传输协议到达代理服务器 11时,优选地针对每个有效代理集群阵列实例来将<消息呼叫ID> 进行"哈希变换"以及"取模,,(即,使用由选择的阵列长度除以 哈希值的余数)以确定代理服务器22和/或33的潜在列表(每个都 称为"潜在代理"),该潜在列表可能具有涉及拥有所述呼叫ID的 消息的处理状态信息,如在图2的步骤(ii)中示出。如果当前有效代 理服务器11处于潜在代理的列表中,则针对涉及消息的处理状态信 息检查其本地存储器高速緩存,以便确定该消息是否正被重传,以 及(如果找到)通过直接将消息转发至原始消息路由所至的应用服 务器111来本地处理该消息。否则,将重传的消息RM1转发至尚未 被查询的(如从在私有消息报头中保持的"已访问"潜在代理列表 来确定)潜在代理服务器,直到定位负责原始处理(并因此维持) 该消息的状态信息的代理服务器22并将其用于将该消息(重)路由 至原始消息Ml路由所至的应用服务器111 (由此去除私有报头), 如在图2的步骤(iii)中示出。如果潜在代理列表中的任何代理服务器 均未拥有该消息的状态信息,则由最新代理集群阵列所确定的当前 代理服务器11来创建状态信息并直接处理使用该呼叫ID的消息(如 上文所述,并如在图2的步骤(iv)中示出)。这创造了不太可能的情 况,即消息可能两次通过同一代理服务器。
无论何时新的代理服务器33被激活(或去激活),均激活新的 代理集群阵列(并且代理集群阵列变为"最新"),并且(先前最 新)阵列随即被视为"过期"(在下一 MAX—STATE间隔之后)。 因此可以将消息在代理服务器之间转发多次用于检查以确定消息是 否正在重传。然而,在一般情况下,仅考虑在代理集群阵列中列出 的单一服务器,并且客户端消息中的(N-l ) /N (其中N是代理服务 器的数量)将被一次转发至另一代理服务器。在结合WebSphere使 用本发明的优选示例中,使用了 一种"HAGroup"(高可用性组) 的处理机制(基于"虚拟同步,,技术)用于追踪有效的以及过期的
代理集群阵列的列表。当被激活时,每个代理服务器加入对应于其
作为其中成员的集群的HAGroup,使得虚拟同步可以确保向每个有 效代理服务器提供有代理集群阵列的相同更新列表。如果代理服务 器有意停止其处理活动,则该代理服务器向(当前有效)代理集群 阵列中列出的其他代理服务器广播其状态信息;然而,如果代理服 务器异常终止操作,则其处理的状态信息丢失。(有可能通过复制 该状态信息来解决这种情况,尽管这需要处理性能的开销。)
真实精神,将按照法律的规定尽可能宽泛地进行解释从而覆盖本发 明的完整范围,包括所有与其等同的方案。
权利要求
1.一种计算机系统,其包括至少以下组件(a). 配置在阵列化集群中的两个或多个代理服务器,用于通过网络将传输的消息从客户端路由到由所述代理服务器集群选择的应用服务器;其中每个有效代理服务器维护代理集群阵列中所有其他有效代理服务器的更新列表,用以允许将消息重传/传输经过所述代理集群阵列,以便递送到正确的所述应用服务器。
2. 根据权利要求1所述的计算机系统,其中进行路由的代理服 务器临时存储涉及所路由消息的处理状态信息。
3. 根据权利要求2所述的计算机系统,其中将所述消息进行哈 希变换以确定存储所述消息的临时状态信息的所述代理服务器。
4. 根据权利要求2所述的计算机系统,其中将重传/传输的消息 转发至所述集群中的 一 个或多个代理服务器,以标识拥有所述消息 的状态信息的代理服务器。
5. 根据权利要求4所述的计算机系统,其中将重传/传输的消息 路由至拥有所述消,包、的状态信息的代理服务器。
6. 根据权利要求2所述的计算机系统,其中在消息重传之间的 指定时间间隔内维护消息状态信息。
7. 根据权利要求6所述的计算机系统,其中当新的代理服务器 被激活或去激活时,更新代理集群阵列列表,并且在下一指定间隔 期间所述先前阵列列表过期。
8. 根据权利要求2所述的计算机系统,其中去激活的代理服务器向所述代理集群阵列中的所述其他有效代理服务器广播状态信 自、
9. 根据权利要求1所述的计算机系统,其中所述网络使用在用 户数据报协议上的会话发起协议(SIP/UDP)用于传输消息。
10. —种使用计算机系统的方法,包括由下列组件实现的至少以 下步骤(a).配置在阵列化集群中的两个或多个代理服务器,用于通过网络将传输的消息从客户端路由到由所述代理服务器集群选择的应用服务器;其中每个有效代理服务器维护代理集群阵列中所有其他有效代 理服务器的更新列表,用以允许将消息重传/传输经过所述代理集群 阵列,以便递送到正确的所述应用服务器。
11. 根据权利要求10所述的方法,其中进行路由的代理服务器临时存储涉及所路由消息的处理状态信息。
12. 根据权利要求11所述的方法,其中将所述消息进行哈希变 换以用于确定存储所述消息的临时状态信息的所述代理服务器。
13. 根据权利要求11所述的方法,其中将重传/传输的消息转发 至所述集群中的 一个或多个代理服务器,以标识拥有所述消息的状 态信息的代理服务器。
14. 根据权利要求13所述的方法,其中将重传/传输的消息路由 至拥有所述消息的状态信息的代理服务器。
15. 根据权利要求11所述的方法,其中在消息重传之间的指定 时间间隔内维护消息的状态信息。
16. 根据权利要求15所述的方法,其中当新的代理服务器被激 活或去激活时,更新代理集群阵列列表,并且在下一指定间隔期间 所述先前阵列列表过期。
17. 根据权利要求11所述的方法,其中去激活的代理服务器向 所述代理集群阵列中的所述其他有效代理服务器广播状态信息。
18. 根据权利要求IO所述的方法,其中所述网络使用在用户数 据报协议上的会话发起协议(SIP/UDP)用于传输消息。
全文摘要
本发明公开了一种使用代理服务器的动态客户端/服务器网络管理的编程方法以及系统,其通过允许在阵列化集群中的每个有效代理服务器来维护该集群中所有其他操作中的代理服务器的更新列表来实现。当集群的代理服务器接收到客户端消息请求访问应用服务器时,可以将该消息转发到(集群内的)的另一代理服务器,使得消息(重)传输可以通过与原始消息相同的代理服务器,这允许代理服务器作出关于该消息的一致的路由决策(以及其他决策)。
文档编号G06F15/16GK101370035SQ200810210420
公开日2009年2月18日 申请日期2008年8月15日 优先权日2007年8月16日
发明者B·K·史密斯, B·普利托, M·J·施普赖泽尔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1