在系统间保持会话同步的方法和装置、计算机可读存储介质与流程

文档序号:16402534发布日期:2018-12-25 20:12阅读:169来源:国知局
在系统间保持会话同步的方法和装置、计算机可读存储介质与流程

本发明涉及通信技术领域,尤其涉及一种在系统间保持会话同步的方法和装置、一种计算机可读存储介质。

背景技术

目前,用户通常会使用多套由不同公司开发的系统来完成一个业务。由于各套系统是由不同公司开发的,各套系统的会话(session)结构不一致,导致各系统间的会话无法保持同步。

具体地,会话结构包括两种情况:第一种情况为各系统为用户创建的会话的关键属性不一致,例如,a系统以用户的登录名作为会话的关键属性来区别用户,b系统以用户的手机号作为会话的关键属性来区别用户;第二种情况为管理会话的中间件不同,例如,a系统使用的中间件为tomcat,b系统使用的中间件为jboss。

为解决上述会话无法保持同步的问题,现有技术中的方法是将各系统的不同的会话结构改造为同构的会话结构。具体地,针对上述会话结构的两种情况,该方法分别对各系统的基础结构进行相应地改造。

针对会话结构的第一种情况,该方法是将会话的关键属性统一,如统一会话的关键属性为用户的登录名。

针对会话结构的第二种情况,该方法是将中间件统一,如采用中间件迁移的方式将所有的系统迁移至tomcat,然后采用(tomcat+redis)的方式实现会话的同步。

然而,现有技术中的方法均需要对各系统的基础结构进行改造,而基础结构的改造的工作量较大。



技术实现要素:

本发明实施例提供了一种在系统间保持会话同步的方法和装置、一种计算机可读存储介质,不需要对各系统的基础结构进行改造,就能够在系统间保持会话同步。

第一方面,本发明实施例提供了一种在系统间保持会话同步的方法,包括:

拦截原系统抛出的用户会话请求;

从所述用户会话请求中获取会话的sessionid;

按照所述会话的sessionid,得到所述原系统的会话的状态信息;

根据所述原系统与待同步系统之间的转换关系,对所述原系统的会话的状态信息进行转换,得到所述待同步系统能够识别的会话的状态信息;

将所述待同步系统能够识别的会话的状态信息同步至所述待同步系统。

在第一方面的一些实施例中,所述转换关系为所述原系统的会话关键属性与所述待同步系统的会话关键属性之间的对应关系。

在第一方面的一些实施例中,所述按照所述会话的sessionid得到所述原系统的会话的状态信息,包括:

如果所述会话的sessionid存在于所述原系统中,则得到所述原系统的会话的状态信息为会话有效;如果所述会话的sessionid不存在于所述原系统中,则得到所述原系统的会话的状态信息为会话失效。

在第一方面的一些实施例中,所述根据所述会话的sessionid得到所述原系统的会话的状态信息,包括:

根据所述会话的sessionid,得到所述原系统的会话的初始状态信息;对所述原系统的会话的初始状态信息鉴权成功,得到所述原系统的会话的状态信息。

在第一方面的一些实施例中,所述将所述待同步系统能够识别的会话的状态信息同步至所述待同步系统,包括:

对所述待同步系统能够识别的会话的状态信息进行鉴权,得到鉴权成功后的会话的状态信息;将所述鉴权成功后的会话的状态信息同步至所述待同步系统。

第二方面,本发明实施例提供了一种在系统间保持会话同步的装置,包括:

拦截模块,用于拦截原系统抛出的用户会话请求;

第一获取模块,用于从所述用户会话请求中获取会话的sessionid;

第二获取模块,用于按照所述会话的sessionid,得到所述原系统的会话的状态信息;

转换模块,用于根据所述原系统与待同步系统之间的转换关系,对所述原系统的会话的状态信息进行转换,得到所述待同步系统能够识别的会话的状态信息;

同步模块,用于将所述待同步系统能够识别的会话的状态信息同步至所述待同步系统。

在第二方面的一些实施例中,所述转换关系为所述原系统的会话关键属性与所述待同步系统的会话关键属性之间的对应关系。

在第二方面的一些实施例中,所述拦截模块、所述第一获取模块和所述第二获取模块均设置于所述原系统的中间件中。

在第二方面的一些实施例中,所述转换模块独立设置于所述原系统和所述待同步系统外。

在第二方面的一些实施例中,所述第二获取模块还用于,

如果所述会话的sessionid存在于所述原系统中,则得到所述原系统的会话的状态信息为会话有效;如果所述会话的sessionid不存在于所述原系统中,则得到所述原系统的会话的状态信息为会话失效。

在第二方面的一些实施例中,所述第二获取模块包括:

分析单元,用于根据所述会话的sessionid,得到所述原系统的会话的初始状态信息;第一鉴权单元,用于对所述原系统的会话的初始状态信息鉴权成功,得到所述原系统的会话的状态信息。

在第二方面的一些实施例中,所述同步模块包括:

第二鉴权单元,用于对所述待同步系统能够识别的会话的状态信息进行鉴权,得到鉴权成功后的会话的状态信息;同步单元,用于将所述鉴权成功后的会话的状态信息同步至所述待同步系统。

第三方面,本发明实施例提供了一种在系统间保持会话同步的装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,其特征在于,所述处理器执行所述程序时实现上述实施例所述的方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有程序,其特征在于,所述程序被处理器执行时实现上述实施例所述的方法。

在本发明实施例中,当原系统同抛出会话请求后,拦截原系统抛出的用户会话请求,从用户会话请求中获取会话的sessionid,按照所述会话的sessionid,得到所述原系统的会话的状态信息,根据所述原系统与待同步系统之间的转换关系,对所述原系统的会话的状态信息进行转换,得到所述待同步系统能够识别的会话的状态信息,然后将所述待同步系统能够识别的会话的状态信息同步至所述待同步系统。通过将原系统的会话状态信息转化为待同步系统能够识别的会话的状态信息,可以不需要对原系统和待同步系统的基础结构进行改造,就能够使得待同步系统根据原系统的会话状态对其自身的会话进行相应处理,进而保持与原系统的会话同步。

附图说明

从下面结合附图对本发明实施例的具体实施方式的描述中可以更好地理解本发明实施例其中,相同或相似的附图标记表示相同或相似的特征。

图1为本发明一个实施例提供的在系统间保持会话同步的方法的流程示意图;

图2为本发明另一实施例提供的在系统间保持会话同步的方法的流程示意图;

图3为本发明一个实施例提供的在系统间保持会话同步的装置的结构示意图;

图4为本发明另一实施例提供的在系统间保持会话同步的装置的结构示意图。

图5为本发明一个实施例提供的在系统间保持会话同步的装置的交互流程示意图。

具体实施方式

下面将详细描述本发明实施例的各个方面的特征和示例性实施例。在下面的详细描述中,提出了许多具体细节,以便提供对本发明实施例的全面理解。但是,对于本领域技术人员来说很明显的是,本发明实施例可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明实施例的示例来提供对本发明实施例的更好的理解。本发明实施例决不限于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了元素、部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技术,以便避免对本发明实施例造成不必要的模糊。

本发明实施例中的在系统间保持会话同步的方法与装置,应用于信息门户或相关联的系统间,能够做到一个系统会话更新,所有相关联的系统会话更新,一个系统会话失败,所有相关联的系统会话均失效。

会话是指保存于服务端中,用于记录用户访问过程的信息,比如创建的用户链接,或者用户会话的状态信息。会话的状态信息包括会话有效和会话失效。对应地,对会话的处理包括对会话进行会话更新或者会话失效。

图1为本发明一个实施例提供的在系统间保持会话同步的方法的流程示意图。如图1所示,在系统间保持会话同步的方法包括步骤101-步骤105。

在步骤101中,拦截原系统抛出的用户会话请求。

可以理解的,原系统中自带有请求拦截器,根据实际应用场景,用户会话请求首先被原系统自带的请求拦截器拦截,按照原系统对用户会话请求处理逻辑,原系统对会话进行更新。本发明实施例不需要对自带的请求拦截器拦截的处理逻辑进行改变。考虑到存在不确定的干扰因素,原系统对会话进行更新的结果可能有两种,一种是原系统对会话更新成功,另一种是原系统对会话更新失败。

需要说明的是,原系统是在会话处理完成后,将原系统自带的请求拦截器拦截到的用户会话请求抛出,而不是抛出处理后的用户会话请求。当然,原系统可以预先对用户会话请求进行备份,在会话处理完成后,将备份的会话请求抛出,也可以直接对用户会话请求进行暂时存储,在会话处理完成后,取出用户会话请求并抛出,此处不进行限制。

在步骤102中,从用户会话请求中获取会话的sessionid。

其中,会话的sessionid是指会话的标识信息,sessionid具有唯一性,可以用作对用户会话请求中信息的索引。

在步骤103中,按照会话的sessionid,得到原系统的会话的状态信息。

其中,原系统的会话的状态信息包括会话有效和会话失效。会话有效是指原系统对会话更新成功,会话失效是指原系统对会话更新失败。

在步骤104中,根据原系统与待同步系统之间的转换关系,对原系统的会话的状态信息进行转换,得到待同步系统能够识别的会话的状态信息。

其中,转换关系可以为原系统的会话关键属性与待同步系统的会话关键属性之间的对应关系。比如,原系统的会话关键属性为登录名,待同步系统的会话关键属性为用户编号,转换关系可以为登录名与用户编号的对应关系。如果待同步系统的会话关键属性更改为手机号,则转换关系相应变更为登录名和手机号的对应关系。

在步骤105中,将待同步系统能够识别的会话的状态信息同步至待同步系统。

当原系统同抛出会话请求后,拦截原系统抛出的用户会话请求,从用户会话请求中获取会话的sessionid,按照所述会话的sessionid,得到所述原系统的会话的状态信息,根据所述原系统与待同步系统之间的转换关系,对所述原系统的会话的状态信息进行转换,得到所述待同步系统能够识别的会话的状态信息,然后将所述待同步系统能够识别的会话的状态信息同步至所述待同步系统。

如上所述,通过将原系统的会话状态信息转化为待同步系统能够识别的会话的状态信息,可以不需要对原系统和待同步系统的基础结构进行改造,就能够使得待同步系统根据原系统的会话状态对其自身的会话进行相应处理,进而保持与原系统的会话同步。

图2为本发明另一实施例提供的在系统间保持会话同步的方法的流程示意图。图2与图1的不同之处在于,图1中的步骤103可细化为图2中的步骤1031-步骤1034;图1中的步骤105可细化为图2中的步骤1051-102。

在步骤1031中,判断会话的sessionid是否存在于原系统中。

在步骤1032中,如果会话的sessionid存在于原系统中,则得到原系统的会话的初始状态信息为会话有效。

在步骤1033中,如果会话的sessionid不存在于原系统中,则得到原系统的会话的初始状态信息为会话失效。

在步骤1034中,对步骤1032和步骤1033中得到的原系统的会话的初始状态信息鉴权成功,得到原系统的会话的状态信息。

其中,鉴权是指验证用户是否拥有访问系统的权利。可以利用加密方式对原系统的会话的初始状态信息进行鉴权,也可以通过利用认证授权来验证数字签名是否正确的方式对原系统的会话的初始状态信息进行鉴权,此处不进行限制。

需要说明的是,只有鉴权成功后得到的原系统的会话的状态信息,才能够在原系统与被同步系统间安全发送。

在步骤1051中,对待同步系统能够识别的会话的状态信息进行鉴权,得到鉴权成功后的会话的状态信息。

需要说明的是,只有鉴权成功后得到的会话的状态信息,才能够在原系统与被同步系统间安全同步。

在步骤1051中,将鉴权成功后的会话的状态信息同步至待同步系统。

图3为本发明一个实施例提供的在系统间保持会话同步的装置的结构示意图。如图3所示,在系统间保持会话同步的装置包括:拦截模块301、第一获取模块302、第二获取模块303、转换模块304和同步模块305。

其中,拦截模块301,用于拦截原系统抛出的用户会话请求。

第一获取模块302,用于从用户会话请求中获取会话的sessionid。

第二获取模块303,用于按照会话的sessionid,得到原系统的会话的状态信息。

转换模块304,用于根据原系统与待同步系统之间的转换关系,对原系统的会话的状态信息进行转换,得到待同步系统能够识别的会话的状态信息。

同步模块305,用于将待同步系统能够识别的会话的状态信息同步至待同步系统。

当原系统同抛出会话请求后,拦截模块301拦截原系统抛出的用户会话请求,第一获取模块302从用户会话请求中获取会话的sessionid,第二获取模块303按照会话的sessionid,得到原系统的会话的状态信息。转换模块304根据原系统与待同步系统之间的转换关系,对原系统的会话的状态信息进行转换,得到待同步系统能够识别的会话的状态信息,然后同步模块305将待同步系统能够识别的会话的状态信息同步至待同步系统。

如上所述,通过将原系统的会话状态信息转化为待同步系统能够识别的会话的状态信息,可以不需要对原系统和待同步系统的基础结构进行改造,就能够使得待同步系统根据原系统的会话状态对其自身的会话进行相应处理,进而保持与原系统的会话同步。

需要说明的是,上述拦截模块301、第一获取模块302和第二获取模块303均可以设置于原系统的中间件中。在一个示例中,可以将上述拦截模块301、第一获取模块302和第二获取模块303以插件形式放置于原系统的中间件中,支持各类常用系统中间件如tomcat、weblogic、jboss或websphere等。本发明实施例采用了在原系统的中间件中加载插件的方式来获取原系统的会话的状信息,从而可以避免对原系统的基础结构进行改造。

当然,上述拦截模块301、第一获取模块302和第二获取模块303也可以设置在待同步系统的中间件中。这需要根据各系统所处的位置决定。比如,如果待同步系统是作为会话的状态信息的发送方,则上述拦截模块301、第一获取模块302和第二获取模块303对应地设置在待同步系统的中间件中。

另外,转换模块304可以独立设置于原系统和待同步系统外。通过将转换模块304作为独立一个独立组件,从而使得原系统和待同步系统可以通过转换模块304进行沟通,实现会话同步,避免了对原系统和待同步系统的基础结构进行改造。

可以理解的是,独立模块是指独立于原系统和待同步系统外的硬件组件,该硬件组件可以通过对应的接口协议分别与原系统和待同步系统进行通信。具体的,在实现形式上,该硬件组件可以采用集成的方式,也可以采用外部接口的方式,此处不进行限制。

图4为本发明另一实施例提供的在系统间保持会话同步的装置的结构示意图。图4与图3的不同之处在于,图3中的第二获取模块303可包括图4中的分析单元3031和第一鉴权单元3032;图3中的同步模块305可以包括图4中的第一鉴权单元3051和同步单元3052。

其中,分析单元3031,用于根据会话的sessionid,得到原系统的会话的初始状态信息;

第一鉴权单元3032,用于对原系统的会话的初始状态信息鉴权成功,得到原系统的会话的状态信息。

第二鉴权单元3051,用于对待同步系统能够识别的会话的状态信息进行鉴权,得到鉴权成功后的会话的状态信息;

同步单元3052,用于将鉴权成功后的会话的状态信息同步至待同步系统。

需要说明的是,本发明实施例提供的在系统间保持会话同步的装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的程序,处理器用于在执行程序时实现上文所述的方法。

还需要说明的是,本发明实施例还提供一种计算机可读存储介质,其上存储有程序,程序被处理器执行时用于实现上文所述的方法。

为便于本领域技术人员理解,下面对本发明实施例的在系统间保持会话同步的装置与各系统间的交互流程进行详细说明。图5为本发明一个实施例提供的在系统间保持会话同步的装置的交互流程示意图。在图5中,a系统为原系统,b系统为待同步系统,保持会话同步的装置中的拦截模块301、第一获取模块302和第二获取模块303的实现形式为a系统的中间件的插件,转换模块304和同步模块305的实现形式为独立组件。

其中,各系统及组件之间的交互流程包括以下步骤:

(1)用户向a系统发出用户会话请求;

(2)a系统自身的拦截器对用户会话请求进行一次拦截;

(3)a系统在其会话处理完成后抛出用户会话请求;

(4)拦截模块301对用户会话请求进行二次拦截;

(5)第一获取模块302从用户会话请求中获取会话的sessionid;

(6)第二获取模块303根据会话的sessionid,获取a系统的会话的状态信息;

(7)第二获取模块303对a系统的会话的状态信息进行一次鉴权;

(8)第二获取模块303发送鉴权成功后的a系统的会话的状态信息至转换模块304;

(9)转换模块304对一次鉴权成功后的a系统的会话的状态信息进行转换,得到b系统能够识别的a系统的会话状态信息,并将转换后的a系统的会话状态信息发送至同步模块305;

(10)同步模块305对转换后的a系统的会话状态信息进行二次鉴权;

(11)同步模块305将二次鉴权成功后的a系统的会话状态信息同步至b系统;

(12)b系统根据a系统的会话状态信息对其会话进行相应处理。比如,如果a系统的会话状态信息为会话有效,则b系统将对其会话进行更新;如果a系统的会话状态信息为会话失效,则b系统将对其会话进行失效。

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式;相反,提供这些实施方式使得本发明实施例更全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中,为了清晰,可能夸大了区域和层的厚度。在图中相同的附图标记表示相同或类似的结构,因而将省略它们的详细描述。。

需要明确的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。对于装置实施例而言,相关之处可以参见方法实施例的说明部分。本发明实施例并不局限于上文所描述并在图中示出的特定步骤和结构。本领域的技术人员可以在领会本发明实施例的精神之后,作出各种改变、修改和添加,或者改变步骤之间的顺序。并且,为了简明起见,这里省略对已知方法技术的详细描述。

但是,需要明确,本发明实施例并不局限于上文所描述并在图中示出的特定配置和处理。并且,为了简明起见,这里省略对已知方法技术的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明实施例的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明实施例的精神之后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明实施例的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

本发明实施例可以以其他的具体形式实现,而不脱离其精神和本质特征。例如,特定实施例中所描述的算法可以被修改,而系统体系结构并不脱离本发明实施例的基本精神。因此,当前的实施例在所有方面都被看作是示例性的而非限定性的,本发明实施例的范围由所附权利要求而非上述描述定义,并且,落入权利要求的含义和等同物的范围内的全部改变从而都被包括在本发明实施例的范围之中。

本领域技术人员应能理解,上述实施例均是示例性而非限制性的。在不同实施例中出现的不同技术特征可以进行组合,以取得有益效果。本领域技术人员在研究附图、说明书及权利要求书的基础上,应能理解并实现所揭示的实施例的其他变化的实施例。在权利要求书中,术语“包括”并不排除其他装置或步骤;不定冠词“一个”不排除多个;术语“第一”、“第二”用于标示名称而非用于表示任何特定的顺序。权利要求中的任何附图标记均不应被理解为对保护范围的限制。权利要求中出现的多个部分的功能可以由一个单独的硬件或软件模块来实现。某些技术特征出现在不同的从属权利要求中并不意味着不能将这些技术特征进行组合以取得有益效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1