首页> 中国专利> 使用服务器之间的直接通信监视节点配置中的服务器事件的方法和系统

使用服务器之间的直接通信监视节点配置中的服务器事件的方法和系统

摘要

公开了使用服务器之间的直接通信监视节点配置中服务器事件的方法和系统。在用于监视节点配置中的相应服务器上发生的事件的方法和系统中,位于第一节点中的第一服务器从消息收发系统接收有关位于其他节点的服务器的事件的信息。消息收发系统包括高度可用的(HA)公告牌等等。当第一服务器接收有关位于第二节点的第二服务器的启动事件通知时,在第一和第二服务器之间建立直接通信路径。第一服务器标识第二服务器中的影响或对第一服务器的服务有意义的事件。然后,当发生相应的标识的事件时,第一服务器向第二服务器注册,以通过直接通信接收通知。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-10-18

    未缴年费专利权终止 IPC(主分类):H04L12/26 授权公告日:20090722 终止日期:20181026 申请日:20051026

    专利权的终止

  • 2009-07-22

    授权

    授权

  • 2007-10-10

    实质审查的生效

    实质审查的生效

  • 2007-08-15

    公开

    公开

说明书

相关申请

本申请涉及共同转让和共同待审批的标题为“Method,Systemand Program Product for Decentralized Monitoring of Server StatesWithin a Cell of Nodes”序列号为10/953,324(代理机构卷号为No.RSW920040153US1)的美国专利申请,这里引用了该申请作为参考。

技术领域

这里所公开并要求保护的本发明一般涉及用于给节点单元或节点配置中的每一个节点提供有关其他节点中的服务器的服务器状态信息的方法和系统。具体来说,本发明涉及上述类型的方法,其中,通过在两个服务器之间建立直接通信路径,在不同节点的服务器之间直接交换服务器事件信息。更具体来说,本发明涉及上述类型的方法,其中,第一服务器中的服务能够指定第二服务器中的特定事件,其中,每当第二服务器中发生指定的事件时,将通知第一服务器。

背景技术

在越来越常见的包括节点单元的布局中或节点配置中,每一个节点都包括节点代理和一个或多个应用程序服务器。在这种布局方案中,一般需要给相应的节点通知其他节点的服务器状态。相关的应用程序服务器状态分别可以包括服务器是否(1)正在启动,(2)已经启动,(3)正在停止或(4)已经停止的指示。如果不给节点提供其他节点的这种最新的服务器状态信息,则相应的节点将不能够彼此同步。相应地,通常给当前节点配置提供中央节点管理器,单个节点向该管理器报告它们自己的服务器状态信息。然后,如果特定节点需要有关另一个节点的状态信息,则该特定节点将直接从节点管理器直接获取这样的信息。此外,还需要当在另一个节点的服务器上发生诸如JavaTM管理扩展(JMX)事件之类的某些状态事件时,将这些事件通知给定节点。(Java以及所有基于Java的商标和徽标是Sun Microsystems,Inc.在美国,其他国家或两者的商标。)

图1显示了当前节点单元或节点配置的例图。如图所示,图1显示了具有节点102 A-C和节点管理器104的节点配置100。节点管理器104包括监督和管理节点配置100的部署管理器110。每一个节点102 A-C都分别包括节点代理106 A-C和应用程序服务器108 A-C。节点代理106 A-C一般分别充当应用程序服务器108 A-C和部署管理器110之间的中介。此外,在节点代理106 A-C中运行的管理逻辑分别保存了与节点配置100中的其他节点102 A-C的配置数据同步的节点102 A-C的配置数据。一般而言,节点代理106A-C直接向部署管理器110报告它们分别控制的应用程序服务器108 A-C的状态信息。例如,当节点102 A-C上的应用程序服务器108 A-C改变状态时,将由节点代理106 A-C向部署管理器100传递指出改变的信息。此后,如果节点代理106 A-C分别需要获取此状态信息,则它们将通过直接与部署管理器100/节点管理器104进行通信来达到这一目的。

尽管有其优点,图1所示的节点配置类型具有单一故障点。具体来说,如果节点管理器104或部署管理器110中的任何一个发生故障,则节点102 A-C就没有办法获得所需要的服务器状态信息。如上所述,如果节点102 A-C不能得到服务器状态信息,则它们将不能够彼此同步。当前,为克服此问题进行了一些努力:将两个不同节点的节点代理链接在一起。然而,利用此解决方案,每一个节点的节点代理仍将是潜在的单故障点。

发明内容

根据第一方面,提供了一种用于监视在节点配置中的相应服务器上发生的事件,其中,每一个节点上至少有一个服务器,所述方法包括下列步骤:安排位于第一节点的第一服务器从消息收发系统接收关于位于其他节点的服务器的事件的信息;当所述第一服务器从所述消息收发系统接收到有关所述第二服务器的启动事件通知时,在所述第一服务器和位于第二节点的第二服务器之间建立直接通信路径;以及通过所述直接通信路径在所述第一服务器从所述第二服务器直接接收消息,以便当在所述第二服务器上发生了指定的事件时通知所述第一服务器。

在一个实施例中,给消息收发系统提供第一服务器的当前状态。优选情况下,注册第一服务器以从所述消息收发系统接收有关选择的其他服务器的启动事件通知。

优选情况下,每一个服务器都包含消息收发系统接口组件,用于向所述消息收发系统注册和连续地更新其服务器的状态,并用于向所述消息收发系统预订以接收有关其他所述服务器的启动事件通知。

优选情况下,第一服务器具有一个或多个关联的服务。在接收到有关所述第二服务器的所述启动事件通知时,优选情况下,第一服务器查询其每一个服务,如果有的话,标识所述第二服务器的哪些事件影响所述第一服务器的所述服务中的一个或多个服务。优选情况下,第一服务器注册以便当发生所述标识的事件中的任何事件时,通过所述直接通信路径从第二服务器接收通知。

优选情况下,通过所述直接通信路径在所述第一服务器从所述第二服务器接收对象,所述对象供所述第一服务器在进行注册以从所述第二服务器接收所述标识的事件的通知时使用。

在一个实施例中,所述第二服务器的标识的事件是从包括服务器状态的组中选出来的,其中所述服务器状态是所述第二服务器正在启动、已经启动、正在停止和已经停止。

在一个实施例中,所述第二服务器的标识的事件包括JMX事件。

在一个实施例中,消息收发系统包括高度可用的公告牌。

根据另一个方面,在计算机可读介质提供了一种计算机程序产品,用于监视节点配置中相应服务器上发生的事件,其中,每一个节点上至少有一个服务器,所述计算机程序产品包括:第一指令,安排位于第一节点的第一服务器从消息收发系统接收关于位于其他节点的服务器的事件的信息;第二指令,用于在所述第一服务器从所述消息收发系统接收到有关所述第二服务器的启动事件通知时,在所述第一服务器和位于第二节点的第二服务器之间建立直接通信路径;第三指令,用于通过所述直接通信路径在所述第一服务器从所述第二服务器直接接收消息,以便当在所述第二服务器上发生了指定的事件时通知所述第一服务器。

根据另一个方面,提供了一种计算机系统,用于监视节点配置中相应服务器上发生的事件,其中,每一个节点上至少有一个服务器中,系统包括:处理器;以及,连接到所述处理器的计算机可读介质,所述介质被配置为由所述处理器读取,从而使所述处理器:安排位于第一节点的第一服务器从消息收发系统接收关于位于其他节点的服务器的事件的信息;当所述第一服务器从所述消息收发系统接收到有关所述第二服务器的启动事件通知时,在所述第一服务器和位于第二节点的第二服务器之间建立直接通信路径;以及,通过所述直接通信路径在所述第一服务器从所述第二服务器直接接收消息,从而当在所述第二服务器上发生了指定的事件时通知所述第一服务器。

这里所说明的发明一般提供了实施例,其中,位于节点配置中的不同的节点中的两个服务器,可以通过在两个服务器之间直接建立通信路径来连接在一起。已建立的路径故意排除诸如节点管理器104、部署管理器110,以及节点代理106 A-C,如图1所示。如此,这样的组件中没有一个可以充当阻止从一个服务器到另一个服务器传输状态信息的单一故障点。本发明的实施例使用诸如高度可用的(HA)公告牌等等之类的消息收发系统,用于从节点配置的每一个服务器接收状态信息。在一个有用的实施例中,提供了一种用于监视节点配置的相应服务器上发生的事件,位于第一节点中的第一服务器从消息收发系统接收有关位于其他节点的服务器的事件的信息。该方法进一步包括,当第一服务器从消息收发系统接收到有关第二服务器的启动事件通知时,在第一服务器和位于第二节点的第二服务器之间建立直接通信路径。然后,当在第二服务器上发生对第一服务器有意义的指定事件时,可以通过通信路径从第二服务器向第一服务器直接发送消息,以通知第一服务器。

附图说明

现在将参考下面的附图,只作为示例,对本发明的优选实施例进行描述:

图1是显示了根据相关技术的对节点配置中服务器状态进行集中监视的系统。

图2是显示了具有根据本发明的实施例进行操作的组件的节点配置的方框图。

图3和4是分别显示了图2的节点配置的选定组件,以显示根据本发明的实施例的两个服务器之间的直接通信。

图5是进一步显示了图3-4的实施例的流程图。

图6是显示了用于实现图3-4的实施例的计算机配置的简化方框图。

具体实施方式

请参看图2,显示了包括节点204和206的由节点202构成的布局方案。应该理解,尽管显示的节点配置202具有两个节点,但是,这只用于说明,以简化说明。事实上,节点配置202可以包括不同数量的节点,取决于其用途和应用场合。此外,还应该理解,节点204和206用于代表能够实现本发明的原理的任何种类的计算机化设备。例如,节点204和206可以是台式计算机、膝上型计算机、手提设备、客户端、服务器等等。此外,节点204和206可以有选择地通过诸如因特网、局域网(LAN)、广域网(WAN)或虚拟专用网络(VPN)之类的网络连接在一起。此外,可以通过直接硬连线连接、或利用有线和/或无线方法的任何组合的可寻址的连接,进行节点配置202中的通信。可以使用诸如令牌环网、以太网或其他常规通信标准之类的常规网络连接。也可以通过常规的基于IP的协议来提供连接,其中,使用因特网服务提供商来建立连接。

请进一步参看图2,显示了配备有应用程序服务器208的节点204,进一步称为服务器A,以及配备有应用程序服务器210的节点206,进一步称为服务器N。事实上,节点204和206可以各自包括比服务器A和N更多的服务器。然而,这里没有显示这样的额外的服务器,以便简化说明和插图。也没有显示用于其相应服务器的操作的节点204和206的节点代理。

图2进一步显示了消息收发系统212,包括具有公告牌214的HA消息收发系统。公告牌214包括IBM公司的产品(业界已知的WebSphere),但是,公告牌214不仅限于此。(WebSphere是IBM公司在美国及其他国家的商标。)消息收发系统212用于直接与节点204的服务器208交换信息,还与节点206的服务器210交换信息。具体来说,给服务器208提供消息收发系统接口服务216,或类似的组件,用于将服务器208的状态张贴到公告牌214中。接口服务216还被配置为在消息收发系统212中注册服务器208,以便接收节点配置202的指定的其他服务器(包括节点206的服务器210)的启动事件通知。一般而言,接口216注册以接收其他服务器的张贴到消息收发系统212的启动事件,其中,服务器涉及服务器208的服务的消息主题。

同样地,给服务器210提供了消息收发系统接口218,用于将服务器210的状态张贴到公告牌214中。接口218还用于注册服务器210以接收节点配置202的其他节点的服务器(如服务器208)的启动事件通知。

在本发明的一些有用的实施例中,每当服务器开始时,通过其接口服务,将服务器的状态张贴到公告牌214。张贴到公告牌214的其他信息可以涉及诸如208和210之类的应用程序服务器的JMX状态事件。这样的状态事件包括,正在启动的服务器、已经启动的服务器、正在停止的服务器和已经停止的服务器。应该理解,仅为了说明,所描述的公告牌214在消息服务212内。应该理解,其他布局对于本领域技术人员来说也是显而易见的。

当消息收发系统接口组件216或218最初注册以接收其他指定的服务器的启动事件时,它检索当时正在运行的所有这样的服务器的标识。此后,每当启动一个指定的服务器时,消息收发系统212和公告牌214将这样的事件通知给消息收发系统接口组件216或218。

请参看图3,显示了服务器208(下面称为服务器A),接收服务器210(以下简称为服务器N)已经启动的通知。在接收到此通知时,服务器A查询或检查其每一个服务,以判断它们中的任何一个是否对跟踪新启动的服务器N中的任何事件。此过程可以由服务器A的服务或组件(如图2所示,如Query Server A服务组件220)来执行。如果服务器A的一个或多个服务对这样的查询作出肯定的响应,并标识服务器A应该监视或跟踪的服务器N的一个或多个事件,服务器A与新启动的服务器N创建直接连接。具体来说,服务器A用于与服务器N建立直接通信路径或链接302,如图3所示。有用地,由服务器A的服务(如,如图2所示的服务器链接组件222)。

请进一步参看图3,在建立了通信路径302以在服务器A和服务器N之间建立直接连接之后,服务器A从服务器N检索对象304。然后,服务器A使用该对象向服务器N注册,以接收查询过程中标识的事件的通知(如上文所述)。如此,当在服务器N中发生这样的事件时,通知对相应的标识的事件感兴趣的或受相应的标识的事件的影响的服务器A的服务。图4显示了包括JMX事件的标识的事件。注册过程由服务器A的服务来实现,如,如图2所示的服务器注册组件224。通过通信路径302,将标识的服务器N事件的通知直接从服务器N提供到服务器A。如此,如图2-4所示的本发明的实施例克服了现有技术中的节点代理充当节点中的单一故障点,阻止服务器状态信息流动的问题。

图2进一步显示了服务器A的其他服务226,笼统地代表可能试图监视服务器N的事件(或其他节点的服务器)的服务器A的相应的服务。图2还显示了配备有分别对应于服务器A的服务220-226的服务或组件228-234的服务器N。如此,当由公告牌214通知服务器N服务器A已经启动时,如图3所示,服务228-232实现服务器N的类似于上文分别针对服务220-224所描述的那些功能的功能。相应地,通过通信路径306在服务器N和服务器A之间建立直接连接。将对象308从服务器A提供到服务器N,供服务器N用来监视服务器A的对服务器N的服务有意义的标识的JMX事件。图4显示了服务器N为这些标识的事件向服务器A注册,并进一步显示了通过直接通信路径306直接从服务器A向服务器N提供相应的事件的通知。

请参看图5,如上文所描述的,显示了服务器A与公告牌214,以及与服务器N的交互。图5的功能块502显示了服务器A向公告牌214张贴其状态信息,以及向公告牌214注册以从公告牌214接收其他节点的选定服务器的启动事件通知。

图5进一步显示了判断方框504和506。这些判断方框笼统地指出了,当服务器A接收服务器N的启动事件通知时,查询服务器A的相应的服务,以判断是否对任何服务器N事件有任何兴趣。如果有,则由功能块508所指出的,在服务器A和服务器N之间建立直接连接,由功能块510所指出的,由服务器A从服务器N检索对象。如功能块512所示,使用该对象注册服务器A,每当发生相关的一个事件时,由服务器N给服务器A发出通知。

请参看图6,就节点204显示了本发明的更加具体的计算机化实施方式。应该理解,节点206及配置202的其他节点将包括类似的组件。图6显示了节点204包括处理单元602、存储器604、总线606、输入/输出(I/O)接  608、外部设备/源610和存储单元612。处理单元602可以包括单一处理单元,也可以跨一个或多个位置的一个或多个处理单元分布。存储器604可以包括任何已知类型的数据存储介质,如磁性介质、光学介质、随机存取存储器(RAM)、只读存储器(ROM)、数据缓存或数据对象。此外,存储器604可以驻留在单一物理位置,或以各种形式跨多个物理系统分布。

I/O接口608可以包括用于与外部设备或源交换信息的任何系统。外部设备/源610可以包括任何已知类型的外部设备,如扬声器、CRT、LED屏幕,掌上型设备、键盘、鼠标、语音识别系统、语音输出系统、打印机、监视器或显示器。总线606在节点204中的每一个组件之间提供通信链路,并可以包括任何已知类型的传输链路,如电的、光学的或无线链路。

存储单元612可以是能够为根据本发明的信息(例如,服务器状态信息)提供存储的任何系统(例如,数据库)。相应地,存储单元612可以包括一个或多个存储设备,如磁盘驱动器或光盘驱动器。在另一个实施例中,存储单元612可以包括跨LAN、WAN或存储区域网络SAN(未显示)分布的数据。虽然未显示,诸如高速缓冲存储器、通信系统或系统软件之类的其他组件也可以集成到节点204中。如上文所指出的,节点206将具有类似于为节点204显示的那些组件的组件。

值得注意的是,尽管是在完全运转的数据处理系统的上下文中描述本发明的,但是,本领域技术人员将认识到,本发明的进程能够以存储了指令的计算机可读的介质的形式和各种各样的形式进行分发,不管实际用于进行分发的承载信号的介质的特定类型是什么,本发明都同样适用。计算机可读的介质的示例包括可记录类型的介质,如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM、传输类型的介质,例如使用诸如射频和光波传输的传输形式的数字和模拟通信链路、有线或无线通信链路。计算机可读的介质可以采取编码格式的形式,这些编码在特定数据处理系统中实际使用时被解码。

本发明的说明书只作说明,而不是详尽的说明或限于所说明的形式。本领域技术人员将认识到,可以进行许多修改。所选择的实施例只是为了最好地说明本发明的原理,实际应用,并使本领域技术人员懂得,带有各种修改的各种实施例也是可以接受的。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号