背景技术
基于对会话连接可靠性的考虑,现有技术(例如TMF(电信管理论坛)814)中规定运营支撑系统(Operation Support System,简称“OSS”)和网元管理系统(Element Management System,简称“EMS”)/网络级管理系统(Network Management System,“NMS”)两端都必须定期对当前会话(Session)的有效性进行检测。一般地,检测基于以下方式进行:
对于OSS端的检测而言,OSS周期性地向当前会话连接的对端EMS/NMS发送一个握手请求,EMS/NMS收到请求后返回一个握手响应。如果由于网络异常、EMS/NMS故障等原因导致OSS收不到握手响应,则OSS检测EMS/NMS端的会话连接失败。当OSS连续的检测失败的次数超过预设的阈值(例如3次)时,则OSS系统可认为当前会话连接不再有效,于是OSS放弃当前会话连接并尝试重新登录以获取新的会话连接,如图1所示。
类似地,如图2所示,对于EMS/NMS端的检测而言,EMS/NMS周期性地向与当前会话连接的对端OSS发出握手请求,OSS收到请求后返回一个握手响应。如果由于网络异常、OSS故障等原因导致EMS/NMS收不到握手响应,则EMS/NMS检测OSS端的会话连接失败。当EMS/NMS连续的检测失败的次数超过预设的阈值(例如3次)时,则EMS/NMS可认为当前会话连接不再有效,于是使当前登录的用户设备退出登录,并回收分配给该用户设备的会话连接资源。
TMF814定义的公共对象请求代理结构(Common Object Request BrokerArchitecture,简称“CORBA”)会话资源的异常释放条件仅有EMS反向检测失败,所以EMS反向检测OSS是必要的部署条件,无法去掉,否则会话资源在真正出现连接异常的情况下会出现无法释放的现象。现网各厂商提供的CORBA接口均遵从此约束。
但是,对于实际的现网运行环境而言,基于安全性考虑绝大部分现网都部署了防火墙或者其它防护设施,使得会话检测只能从OSS向EMS/NMS或者从EMS/NMS向OSS单向进行,或者两个方向均不可检测。
具体地,当仅能实现OSS到EMS/NMS的单向会话连接检测时,EMS/NMS会定期主动踢出(Kick out)当前已登录用户设备的登录,并回收会话资源,因此,OSS必须重新登录才可以继续调用端口。
当仅能实现EMS/NMS到OSS的单向会话连接检测时,OSS要么忽略会话连接检测失败,要么放弃当前会话连接并重新登录;对于EMS/NMS而言,如果OSS直接放弃当前会话连接而没有采取正常的退出登录操作(也就是不通知EMS/NMS用户设备已经退出),由于EMS/NMS可以检测到OSS(不是当前登录的用户设备)依然活动,因此会一直维持会话资源不释放,造成会话资源泄漏。极端情况下会导致会话资源逐渐耗尽,并最终导致新的用户设备无法登录而必须重启EMS/NMS,这类故障往往被视为重大的网络事故。
当两个方向的会话连接都不可检测时,OSS要么忽略会话连接检测失败,要么放弃当前会话连接并重新登录;而EMS/NMS会定期主动踢出当前已登录用户设备的登录并回收会话资源。
因此,现有技术存在必须满足会话连接双向检测条件的缺陷,而如果要满足会话连接双向检测的要求,则需要向运营商专门申请打开特定的网络端口,由于网络部署有严格约束并且部署过程复杂,因而给网络部署造成极大的不便,还容易引发频繁的集成问题。
发明内容
为此,本发明要解决的技术问题是提供会话管理的方法和设备,以消除现有技术中会话连接必须满足双向检测条件的限制,从而使得网络部署更加灵活、简便,并降低网络部署难度和运行维护成本。
为了解决上述技术问题,本发明实施例提供了一种会话管理的方法,该方法包括:
向当前会话连接的服务器发送握手请求,以检测所述服务器的会话连接情况;
记录连续的检测失败的次数,其中,所述检测失败指没有接收到所述服务器对所述握手请求的响应;
确定是否能够继续调用所述服务器的接口;以及
在确定所述连续的检测失败的次数已经达到或超过预设上限值,并且确定能够继续调用所述服务器的接口时,仍保持当前会话连接。
本发明实施例还提供了一种会话管理的方法,该方法包括:
向当前会话连接的用户设备发送握手请求,以检测所述用户设备的会话连接情况;
记录连续的检测失败的次数,其中,所述检测失败指没有接收到所述用户设备对所述握手请求的响应;
确定是否接收到来自所述用户设备的接口调用请求;以及
在确定所述连续的检测失败的次数已经达到或超过预设上限值,并且确定接收到来自所述用户设备的接口调用请求时,仍保持当前会话连接。
本发明实施例还提供了一种用户设备,该用户设备包括:
第一检测模块,用于向当前会话连接的服务器发送握手请求,以检测所述服务器的会话连接情况;
第一记录模块,用于记录连续的检测失败的次数,其中,所述检测失败指没有接收到所述服务器对所述握手请求的响应;
第一确定模块,用于确定是否能够继续调用所述服务器的接口;以及
第一优化模块,用于在确定所述连续的检测失败的次数已经达到或超过预设上限值,并且确定能够继续调用所述服务器的接口时,仍保持当前会话连接。
本发明实施例还提供了一种服务器,该服务器包括:
第二检测模块,用于向当前会话连接的用户设备发送握手请求,以检测所述用户设备的会话连接情况;
第二记录模块,用于记录连续的检测失败的次数,其中,所述检测失败指没有接收到所述用户设备对所述握手请求的响应;
第二确定模块,用于确定是否接收到来自所述用户设备的接口调用请求;以及
第二优化模块,用于在确定所述连续的检测失败的次数已经达到或超过预设上限值,并且确定接收到来自所述用户设备的接口调用请求时,仍保持当前会话连接。
本发明实施例的方法和设备通过将会话连接的检测由必要条件降级为非必要条件,能够消除现有技术的会话管理中必须满足会话连接双向检测的限制,从而使得网络部署更加灵活、简便,由此能够降低网络部署难度和运行维护成本。
具体实施方式
为了便于本领域普通技术人员理解和实现本发明,现结合附图和具体实施例来阐述本发明。
本发明实施例提供了一种会话管理的方法,如图3所示,该方法包括:
S110,向当前会话连接的服务器发送握手请求,以检测该服务器的会话连接情况;
S120,记录连续的检测失败的次数,其中,检测失败指没有接收到服务器对该握手请求的响应;
S130,确定是否能够继续调用所述服务器的接口;以及
S140,在确定该连续的检测失败的次数已经达到或超过预设上限值,并且确定能够继续调用所述服务器的接口时,仍保持当前会话连接。
在用户设备与服务器建立会话连接的情况下,其中用户设备包括但不限于OSS,服务器包括但不限于EMS/NMS,并且在下面的描述中以OSS与EMS/NMS建立会话连接为例进行说明,OSS向EMS/NMS发送握手请求,以检测该EMS/NMS端的会话连接是否正常,当OSS没有接收到EMS/NMS对握手请求的响应时,则认为该检测失败,OSS还可以确定是否能够继续调用EMS/NMS的新的接口,当OSS连续的检测失败的次数已经达到或超过预设上限值,并且确定能够继续调用EMS/NMS的新的接口时,OSS仍保持当前会话连接。
本发明实施例通过将会话连接的检测由必要条件降级为非必要条件,使得用户设备在确定能够继续调用服务器的新的接口的情况下,不因为会话连接检测失败而中断当前会话连接,由此能够解决仅能实现用户设备到服务器单向会话连接检测情况下或者无法进行会话连接检测的情况下,用户设备需要反复登录的问题,从而消除现有技术的会话管理中必须满足会话连接双向检测的限制,使得网络部署能够更加灵活、简便,并能够降低网络部署难度和运行维护成本。
在本发明实施例中,所述记录连续的检测失败的次数还可以包括:在确定能够继续调用服务器的新的接口时,将连续的检测失败的次数重置为零;以及重新记录连续的检测失败的次数。
在本发明实施例中,根据本发明实施例的会话管理的方法还可以包括:在确定连续的检测失败的次数已经达到或超过预设上限值且确定不能够继续调用服务器的新的接口时,中断当前会话连接。
由此,如图4所示,OSS依然周期性地检测EMS/NMS端的会话连接情况,当连续的检测失败的次数达到或者超过预设上限值(在该实施例中为3次)时,如果OSS确定能够继续调用EMS/NMS的新的接口,则OSS依然保持当前会话连接,不退出登录。在OSS记录连续的检测失败的次数的过程中,当OSS确定能够继续调用EMS/NMS的接口时,OSS将所记录的连续的检测失败的次数重置为零,并重新记录连续的检测失败的次数。当OSS确定连续的检测失败的次数达到或者超过预设上限值,并且OSS确定不能继续调用服务器的接口时,OSS才中断当前会话连接,并可以尝试重新登录。或者,仅在OSS连续的检测失败的次数达到或者超过预设上限值时,OSS才确定是否能够继续调用EMS/NMS的接口,当确定能够继续调用EMS/NMS的接口时,将所记录的连续的检测失败的次数重置为零,并重新记录连续的检测失败的次数;当确定不能继续调用EMS/NMS的接口时,OSS中断当前会话连接,并可以尝试重新登录,建立新的会话连接。
由此能够解决仅能实现OSS到EMS/NMS单向会话连接检测情况下或者无法进行会话连接检测的情况下,由于EMS/NMS检测会话连接总是失败而定期主动使当前OSS退出登录,使得OSS需要反复登录的问题,从而使得EMS/NMS端甚至不需要实现会话连接检测应答,而依然可以保证OSS正常调用EMS/NMS的接口。
本发明实施例还提供了一种会话管理的方法,如图5所示,该方法包括:
S210,向当前会话连接的用户设备发送握手请求,以检测用户设备的会话连接情况;
S220,记录连续的检测失败的次数,其中,检测失败指没有接收到用户设备对握手请求的响应;
S230,确定是否接收到来自所述用户设备的接口调用请求;以及
S240,在确定连续的检测失败的次数已经达到或超过预设上限值,并且确定接收到来自所述用户设备的接口调用请求时,仍保持当前会话连接。
仍以OSS与EMS/NMS建立会话连接为例进行说明,EMS/NMS周期性地向OSS发送握手请求,以检测该OSS端的会话连接是否正常,当EMS/NMS没有接收到OSS对握手请求的响应时,则认为该检测失败,EMS/NMS还可以确定是否接收到来自OSS的新的接口调用请求,当EMS/NMS连续的检测失败的次数已经达到或超过预设上限值时,如果EMS/NMS确定接收到来自OSS的新的接口调用请求,则表明OSS与EMS/NMS的当前会话连接依然有效,由此EMS/NMS仍保持当前会话连接,由此可以保证EMS/NMS不因会话连接检测失败而使OSS退出登录,从而消除现有技术的会话管理中必须满足会话连接双向检测的限制,使得网络部署能够更加灵活、简便,并能够降低网络部署难度和运行维护成本。
在本发明实施例中,所述记录连续的检测失败的次数还可以包括:在确定接收到新的接口调用请求时,将连续的检测失败的次数重置为零;以及重新记录连续的检测失败的次数。如图6所示,在EMS/NMS记录连续的检测失败的次数的过程中,EMS/NMS还可以确定是否接收来自OSS的新的接口调用请求。或者仅当EMS/NMS记录连续的检测失败的次数达到或超过预设上限值时,EMS/NMS才确定是否接收来自OSS的新的接口调用请求。当EMS/NMS接收到来自OSS的新的接口调用请求时,说明当前会话连接仍然有效,因此可以将连续的检测失败的次数重置为零,并重新记录连续的检测失败的次数。
在本发明实施例中,在所述仍保持当前会话连接之后,根据本发明实施例的会话管理的方法还可以包括:确定已经达到最大在线会话的用户设备数;确定已经登录的用户设备中的特定用户设备;以及在接收到新的用户设备的登录请求时,使特定用户设备退出登录,由此可以释放会话资源,保证整个系统的可用性和稳定性。该方案也可称为先入先出策略。
例如,当EMS/NMS记录连续的检测失败的次数达到或超过预设上限值时,如果确定EMS/NMS接收到来自OSS的新的接口调用请求,则EMS/NMS保持当前会话连接。此时,为了使得EMS/NMS释放会话资源,EMS/NMS可以设定EMS/NMS能够容纳的最大在线会话的用户设备数。当EMS/NMS已经达到最大在线会话的用户设备数的情况下,如果有新的用户设备登录,则EMS/NMS使已经登录的用户设备中的特定用户设备退出登录,并回收该特定用户设备的资源,为新用户设备分配新的会话资源,从而保证新的用户设备能够登录。
其中,可以根据下列因素中的任何一种因素或综合下列因素中的几种因素或全部因素确定已经登录的用户设备中的特定用户设备:登录时间、无接口调用的时间间隔、握手失败次数等。例如,可以确定登录时间超过预定时间间隔的用户设备为特定用户设备,或确定无接口调用的时间间隔超过最大静默时间间隔的用户设备为特定用户设备,或确定连续的检测失败的次数已经达到预设上限值的用户设备为特定用户设备,或可以综合考虑上述几个因素或所有因素来确定特定用户设备。通过该方案以及配合将会话连接的检测由必要条件降级为非必要条件,可以解决OSS端单方异常退出或者登录的用户设备过多造成的会话资源泄露或会话资源耗尽以致不能提供服务的问题。
在本发明实施例中,在所述仍保持当前会话连接之后,根据本发明实施例的会话管理的方法还可以包括:记录所有已经登录的用户设备的无接口调用的时间间隔;确定所有已经登录的用户设备中无接口调用的时间间隔达到或超过预设的最大静默时间间隔的特定用户设备;以及使该特定用户设备退出登录。该方案也可以解决OSS端单方异常退出或者登录的用户设备过多造成的会话资源泄露或会话资源耗尽以致不能提供服务的问题,从而保证整个系统的可用性和稳定性。该方案也可称为静默时间策略。
如图7所示,当EMS/NMS连续的检测失败的次数已经达到或超过预设上限值时,如果确定EMS/NMS接收到来自OSS的新的接口调用请求,则EMS/NMS可以仍保持当前会话连接,此时,为了进一步优化会话管理,可以记录所有已经登录的用户设备的无接口调用的时间间隔,并使这些用户设备中无接口调用的时间间隔达到或超过预设的最大静默时间间隔的特定用户设备退出登录。图7中,OSS的第(N-1)次接口调用的无操作时间间隔T达到或超过最大静默时间间隔,由此EMS/NMS单方地使OSS退出登录,相应地OSS的第N次接口调用将失败,其中N为大于2的自然数。从而EMS/NMS可以回收会话资源,避免会话资源泄露或会话资源耗尽的问题。
在本发明的实施例中,先入先出策略和静默时间策略既可以各自单独运用也可以同时运用,这种组合可以看作是先入先出策略配合特定用户设备基准的一种特例(其中,静默时间视为考虑特定用户设备的其中一个因素)。
下面将描述根据本发明实施例的用户设备和服务器的实施例,类似地,本发明实施例的用户设备和服务器可以采用上述各实施例中的方法,通过将会话连接的检测由必要条件降级为非必要条件,消除现有技术的会话管理中必须满足会话连接双向检测的限制,从而使得网络部署更加灵活、简便,并且可以结合先入先出策略和/或静默时间策略,单方地使用户设备退出登录,使得服务器能够回收会话资源,避免会话资源泄露或会话资源耗尽的问题。
如图8所示,根据本发明实施例的用户设备100包括:第一检测模块110、第一记录模块120、第一确定模块130和第一优化模块140,其中,第一检测模块110用于向当前会话连接的服务器发送握手请求,以检测服务器的会话连接情况;第一记录模块120用于记录连续的检测失败的次数,其中,检测失败指没有接收到服务器对握手请求的响应;第一确定模块130用于确定是否能够继续调用所述服务器的接口;以及第一优化模块140用于在确定连续的检测失败的次数已经达到或超过预设上限值,并且确定能够继续调用所述服务器的接口时,仍保持当前会话连接。
由此,用户设备不因为会话连接检测失败而中断当前会话连接,从而能够解决仅能实现用户设备到服务器单向会话连接检测情况下或者无法进行会话连接检测的情况下,用户设备需要反复登录的问题,消除现有技术的会话管理中必须满足会话连接双向检测的限制,使得网络部署能够更加灵活、简便,并能够降低网络部署难度和运行维护成本。
在本发明实施例中,如图9所示,第一记录模块120还可以包括第一重置单元121和第一记录单元122,其中,第一重置单元121用于在第一确定模块130确定能够继续调用所述服务器的接口后,将连续的检测失败的次数重置为零;第一记录单元122用于重新记录连续的检测失败的次数。在本发明实施例中,用户设备100还可以包括中断模块150,该中断模块150用于在确定连续的检测失败的次数已经达到或超过预设上限值且确定不能继续调用服务器的接口时,中断当前会话连接。
此外,为了增强用户设备的灵活性,在具体实现的时候,用户设备可以设置一个控制开关,控制会话连接检测是作为必要条件还是非必要条件。如果开关配置为必要条件,则用户设备的行为和常规的检测行为一致。如果开关配置为非必要条件,用户设备的一种可能的实现方式是完全不检测会话连接,由于这种方式不利于问题记录,因而不推荐该实现方式。
如图10所示,根据本发明实施例的服务器200包括:第二检测模块210、第二记录模块220、第二确定模块230和第二优化模块240。其中,第二检测模块210用于向当前会话连接的用户设备发送握手请求,以检测用户设备的会话连接情况;第二记录模块220用于记录连续的检测失败的次数,其中,检测失败指没有接收到用户设备对握手请求的响应;第二确定模块230用于确定是否接收到来自所述用户设备的接口调用请求;第二优化模块240用于在确定连续的检测失败的次数已经达到或超过预设上限值,并且确定接收到来自所述用户设备的接口调用请求时,仍保持当前会话连接。
当EMS/NMS连续的检测失败的次数已经达到或超过预设上限值时,如果确定EMS/NMS接收到来自OSS的新的接口调用请求,则EMS/NMS仍保持当前会话连接,由此可以解决OSS端单方异常退出无法调用EMS/NMS的接口的问题,从而消除现有技术的会话管理中必须满足会话连接双向检测的限制,使得网络部署能够更加灵活、简便。
在本发明实施例中,如图11所示,第二记录模块220还可以包括:第二重置单元221和第二记录单元222。其中,第二重置单元221用于在接收到接口调用请求后,将连续的检测失败的次数重置为零;第二记录单元222用于重新记录连续的检测失败的次数。
在本发明实施例中,服务器200还可以包括:第三确定模块250、第四确定模块260和第一退出模块270,其中,第三确定模块250用于确定已经达到最大在线会话的用户设备数;第四确定模块260用于确定已经登录的用户设备中的特定用户设备;第一退出模块270用于在接收到用户设备的登录请求时,使特定用户设备退出登录。由此可以回收会话资源,避免由于用户设备端单方异常退出或者登录的用户设备过多造成的会话资源泄露或会话资源耗尽等问题。
在本发明实施例中,服务器200还可以包括:第三记录模块280、第五确定模块290和第二退出模块300,其中,第三记录模块280用于记录所有已经登录的用户设备的无接口调用的时间间隔;第五确定模块290用于确定所有已经登录的用户设备中无接口调用的时间间隔达到或超过预设的最大静默时间间隔的特定用户设备;第二退出模块300用于使特定用户设备退出登录。由此也可以回收会话资源,避免由于用户设备端单方异常退出或者登录的用户设备过多造成的会话资源泄露或会话资源耗尽等问题。
此外,为了增强服务器的灵活性,在具体实现的时候,服务器可以设置一个控制开关,控制会话连接检测是作为必要条件还是非必要条件。如果开关配置为必要条件,则服务器的行为和常规的检测行为一致。如果开关配置为非必要条件,服务器的一种可能的实现方式是完全不检测会话连接,由于这种方式不利于问题记录,因而不推荐该实现方式。
本领域普通技术人员可以理解的是,本发明实施例描述的技术思路不局限于OSS与EMS/NMS之间的CORBA会话管理,也不局限于CORBA接口。一切基于会话并有握手机制的系统、进程、线程、纤程或具有相似性质的实体间通信均可适用本发明,并可按照本发明实施例的思路实现高灵活性、高容错性的会话资源管理,因而都应包括在本发明保护的范围内。
为了更好地检测OSS/EMS/NMS是否适用本发明,现在给出一般的技术检测方法:
(1)如何确定OSS采用了单向连通检测技术
方法一、可以使OSS登录一个没有会话连接检测响应机制的模拟的EMS/NMS,如果OSS每隔一段相对固定/稳定的时间间隔后没有重新试图从同一主机再登录,或者没有退出后再登录,则OSS使用了单向连通检测技术;
方法二、如果OSS与EMS/NMS之间设置了防火墙,并且防火墙不对OSS所在主机开放EMS/NMS应答会话连接检测请求的网络端口,那么OSS登录EMS/NMS成功后,如果OSS每隔一段相对固定/稳定的时间间隔后没有重新试图从同一主机再登录,或者没有退出后再登录,则OSS使用了单向连通检测技术。
(2)如何检测EMS/NMS采用了单向连通检测技术
对于OSS与EMS/NMS之间设置防火墙,并且防火墙不对EMS/NMS所在主机开放任何端口的情况,OSS登录EMS/NMS成功后,如果OSS每隔一段相对固定/稳定的时间间隔后调用总是失败,然后重新登录后接口又可正常使用,则EMS/NMS未使用单向连通检测技术;反之,EMS/NMS使用了单向连通检测技术。
(3)如何检测EMS/NMS采用了先入先出策略
EMS/NMS具有最大用户登录数量限制,当EMS/NMS登录数量达到限制后,新的用户登录依然能够接入,但是原已登录的某一用户被退出登录,其对应的OSS不再能够调用接口。
(4)如何检测EMS/NMS采用了静默时间策略
OSS与EMS/NMS之间的连接无任何限制,从OSS登录EMS/NMS,并且可正常调用EMS/NMS的接口。OSS未进行任何调用接口的操作一定时间后,试图再调用接口但失败,必须重新登录方可再次调用接口,或如果在一定时间间隔内OSS总有接口调用操作,并总是能够调用成功,这表明EMS/NMS采用了静默时间策略。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
尽管本发明通过参考附图并结合优选实施例的方式进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域的普通技术人员可以对本发明的实施例进行各种等效的变形和改动,而这些变形与改动都在本发明的涵盖范围内。