会话信息管理方法、装置、设备和计算机存储介质与流程

文档序号:15850151发布日期:2018-11-07 09:43阅读:150来源:国知局
会话信息管理方法、装置、设备和计算机存储介质与流程

本发明实施例涉及计算机技术,尤其涉及一种会话信息管理方法、装置、设备和计算机存储介质。

背景技术

在网络企业初创时期,许多企业的网站服务多采用超文本预处理器(hypertextpreprocessor,php)技术搭建,用户的会话信息采用php内置的函数进行编码存储。但是随着企业业务规模的爆发性增长,基于php技术搭建的网站已无法满足需求,需要将网站服务逐步迁移到性能更高的java平台。

但是,在各业务方将接口从php向java迁移时,如果需要读写会话信息,就需要各业务方对会话信息进行解码和编码。会话信息是用户登录态最重要的信息,其数据完整性至关重要,但由各业务方自己对会话信息进行编解码,需要各业务方独立开发相关接口,开发成本高、效率低。另外,会话信息在并发读取或修改时,还可能出现被覆盖的情况,可能导致会话信息丢失。



技术实现要素:

本发明提供一种会话信息管理方法、装置、设备和计算机存储介质,用于在从php向java迁移的服务中应用,降低开发成本,提高开发效率。

第一方面,本发明实施例提供一种会话信息管理方法,包括:

接收会话信息调用指令,会话信息调用指令为支持javascript对象标记解析的第一调用方发送的;

将存储的php编码格式的会话信息转换为javascript对象标记编码格式的会话信息,并为会话信息分配第一版本号;

向第一调用方发送javascript对象标记编码格式的会话信息与第一版本号;

接收支持javascript对象标记解析的第二调用方发送的会话信息更新指令,会话信息更新指令中包括第二版本号;

检查第二版本号与第一版本号是否一致;

若第二版本号与第一版本号一致,则将第二调用方发送的javascript对象标记编码格式的数据转换为php编码格式的会话信息;

使用转换的php编码格式的会话信息更新存储的php编码格式的会话信息,并更新第一版本号为第三版本号。

在第一方面一种可能的实现方式中,检查第二版本号和第一版本号是否一致之后,方法还包括:

若第二版本号与第一版本号不一致,则将存储的php编码格式的会话信息转换为javascript对象标记编码格式的会话信息,并为会话信息分配第一版本号;

向第二调用方发送javascript对象标记编码格式的会话信息与第一版本号。

在第一方面一种可能的实现方式中,使用转换的php编码格式的会话信息更新存储的php编码格式的会话信息,并更新第一版本号为第三版本号之后,方法还包括:

存储php编码格式的会话信息的更新记录。

在第一方面一种可能的实现方式中,更新第一版本号为第三版本号,包括:

将第一版本号加1,得到第三版本号。

第二方面,本发明实施例提供一种会话信息管理装置,包括:

指令接收模块,用于接收会话信息调用指令,会话信息调用指令为支持javascript对象标记解析的第一调用方发送的;

编解码模块,用于将存储的php编码格式的会话信息转换为javascript对象标记编码格式的会话信息,并为会话信息分配第一版本号;

信息发送模块,用于向第一调用方发送javascript对象标记编码格式的会话信息与第一版本号;

指令接收模块,还用于接收支持javascript对象标记解析的第二调用方发送的会话信息更新指令,会话信息更新指令中包括第二版本号;

版本检查模块,用于检查第二版本号与第一版本号是否一致;

编解码模块,还用于若第二版本号与第一版本号一致,则将第二调用方发送的javascript对象标记编码格式的数据转换为php编码格式的会话信息;

信息更新模块,用于使用转换的php编码格式的会话信息更新存储的php编码格式的会话信息,并更新第一版本号为第三版本号。

在第二方面一种可能的实现方式中,编解码模块,还用于若第二版本号与第一版本号不一致,则将存储的php编码格式的会话信息转换为javascript对象标记编码格式的会话信息,并为会话信息分配第一版本号;

信息发送模块,还用于向第二调用方发送javascript对象标记编码格式的会话信息与第一版本号。

在第二方面一种可能的实现方式中,会话信息管理装置还包括:

记录模块,用于存储php编码格式的会话信息的更新记录。

在第二方面一种可能的实现方式中,信息更新模块,具体用于将第一版本号加1,得到第三版本号。

第三方面,本发明实施例提供一种会话信息管理设备,包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序,

当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如第一方面任一种实现方式的会话信息管理方法。

第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面任一种实现方式的会话信息管理方法。

本发明实施例提供的会话信息管理方法、装置、设备和计算机存储介质,通过接收支持json解析的第一调用方发送的会话信息调用指令,将存储的php编码格式的会话信息转换为json编码格式的会话信息,并为会话信息分配第一版本号,向第一调用方发送json编码格式的会话信息与第一版本号,实现了支持json解析但不支持php编码解析的调用方对php编码的会话信息调用;另外,接收支持json解析的第二调用方发送的包括第二版本号的会话信息更新指令,若第二版本号与第一版本号一致,则将第二调用方发送的json编码格式的数据转换为php编码格式的会话信息;使用转换的php编码格式的会话信息更新存储的php编码格式的会话信息,并更新第一版本号为第三版本号,实现了支持json解析但不支持php编码解析的调用方对php编码的会话信息修改,因此,本发明实施例提供的会话信息修改方法,在从php向java迁移的服务中应用,无需再进行相关接口的独立开发,降低了开发成本,提高了开发效率,另外,由于为会话信息增加了的版本号,在会话信息进行并发读取或修改时,避免了会话信息被覆盖而导致的会话信息丢失。

附图说明

图1为本发明实施例提供的会话信息管理方法实施例一的流程图;

图2为本发明实施例提供的会话信息管理方法实施例二的流程图;

图3为本发明实施例提供的会话信息管理装置实施例一的结构示意图;

图4为本发明实施例提供的一种会话信息管理设备的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

企业在为用户提供网络服务时,每个用户登录并成功建立会话后,都需要保存与该用户对应的会话信息,以便根据用户的对话信息为用户提供不同的服务。但由于企业的规模都是从小到大逐渐发展,特别是初创型的企业,在开始阶段人力、财力都较为有限,因此,初创企业大都采用php技术搭建网络服务。基于php技术搭建的网络服务技术难度较低,开发时间较短,能够满足初创型企业的开发需求。

但随着企业规模的扩大,业务的规模也将出现爆发性的增长,基于php技术搭建的网络服务已经无法满足需求。因此,就需要将原有的基于php技术的网络服务迁移到性能更高的java平台,但是各业务方在将接口从php迁移到java时,不可避免的需要读取基于php编码的会话信息。由于java中没有内置的函数能够解析php编码,就需要各业务方自己编写用于在php编码和java编码之间进行编解码的接口程序,这样增加了各业务方的开发工作量和难度。更重要的是,目前的大规模业务需要支持并发访问,会话信息在并发读取或修改时,还可能出现被覆盖的情况,可能导致会话信息丢失。会话信息的丢失将会导致无法为用户提供正确的服务,严重影响用户体验。

本发明实施例提供一种会话信息管理方法、装置、设备和计算机存储介质,用于解决上述问题。

图1为本发明实施例提供的会话信息管理方法实施例一的流程图,如图1所示,本实施例提供的方法包括:

步骤s101,接收会话信息调用指令,会话信息调用指令为支持javascript对象标记解析的第一调用方发送的。

本发明实施例提供的会话信息管理方法用于为基于php编码格式的网络服务和基于javascript对象标记(javascriptobjectnotation,json)编码格式的网络服务之间提供编码转换,使得基于php编码的会话信息能够被基于json的网络服务正确访问和修改,另外,通过为会话信息增加版本号,保证会话信息的完整性。

本发明实施例提供的会话信息管理方法应用于基于php技术开发的网络服务中。首先,在接收到第一调用方发送的会话信息调用指令后,判断第一调用方是否为支持json解析的调用方。由于本申请所应用的网络服务是基于php技术开发的,因此保存的会话信息也是基于php编码的,若第一调用方是支持json解析但不支持php编码解析的调用方,则第一调用方无法直接解析基于php编码的会话信息,也就无法直接调用所需的会话信息。

步骤s102,将存储的php编码格式的会话信息转换为javascript对象标记编码格式的会话信息,并为会话信息分配第一版本号。

由于在步骤s101中,判断第一调用方无法直接调用所需会话信息,因此,在本步骤中,需要先在存储的会话信息中查询到第一调用方需要调用的会话信息,当然查询到的会话信息是php编码格式的会话信息。然后将存储的php编码格式的会话信息转换为json编码格式的会话信息。转换后的json编码格式的会话信息将可以被第一调用方直接调用。另外,由于目前的会话信息都是仅根据用户信息对应存储,在存在多个调用方同时调用一个会话信息时,即并发调用的情况时,若一个调用方对会话信息进行了修改,而其他调用方仍使用调用修改前的会话信息,那么将可能出现修改的会话信息被覆盖的情况,影响会话信息的准确性。

因此,在本实施例中,在将储的php编码格式的会话信息转换为json编码格式的会话信息后,还为该会话信息分配第一版本号,第一版本号用于为本次调用的会话信息进行版本标识。第一版本号的格式在本实施例中不进行限制,可以采用任一种编码或序列实现。

步骤s103,向第一调用方发送javascript对象标记编码格式的会话信息与第一版本号。

在完成了会话信息的编码转换和版本号添加后,即可向第一调用方发送json编码格式的会话信息和第一版本号。第一调用方即可根据调用的json编码格式的会话信息进行相应处理。

步骤s104,接收支持javascript对象标记解析的第二调用方发送的会话信息更新指令,会话信息更新指令中包括第二版本号。

在网络服务中,会话信息除了被调用,还可以被修改,在接收到第二调用方发送的会话信息更新指令后,确定需要对相应会话信息进行修改。其中,第二调用方同样为支持json解析但不支持php编码解析的调用方,那么第二调用方也无法对php编码格式的会话信息进行直接修改。第二调用方发送的会话信息更新指令中包括第二版本号,用于表示需要修改的会话信息的版本信息。第二调用方可以与第一调用方为同一调用方,当然,在网络服务大规模并发的应用场景中,第二调用方也可以与第一调用方不同。

步骤s105,检查第二版本号与第一版本号是否一致。

在接收到会话信息更新指令后,需要先检查第二版本号与存储的php编码格式的会话信息的第一版本号是否一致。由于会话信息可能被并发调用和修改,若第一调用方调用会话信息后,需要修改该会话信息,但首先被第二调用方对该会话信息进行了修改,那么第一调用方再次修改该会话信息后,第二调用方对会话信息的修改将丢失。另外,会话信息的读取操作会异步回写当前读取的会话信息,在并发读取会话信息的情况下,同样会出现会话信息被覆盖的情况,可能造成会话信息的丢失。

因此,在本实施例中,当第二调用方需要修改会话信息时,需要检查第二调用方发送的会话更新指令中的第二版本号与存储的php编码格式的会话信息的第一版本号是否一致。若一致,则说明第二调用方所要修改的会话信息并未被其他调用方修改,第二调用方可以直接对其进行修改。若不一致,则说明第二调用方所要修改的会话信息已经被其他调用方修改,第二调用方不能直接对其进行修改。

步骤s106,若第二版本号与第一版本号一致,则将第二调用方发送的javascript对象标记编码格式的数据转换为php编码格式的会话信息。

若会话更新指令中的第二版本号与存储的php编码格式的会话信息的第一版本号一致,那么可以直接将第二调用方发送的json编码格式的数据转换为php编码格式的会话信息。

步骤s107,使用转换的php编码格式的会话信息更新存储的php编码格式的会话信息,并更新第一版本号为第三版本号。

此时可以使用转换的php编码格式的会话信息更新存储的php编码格式的会话信息,完成对会话信息的更新。对会话信息的具体更新方法与现有的更新方法相同,此处不再赘述。在完成了会话信息的更新后,还需要将更新后的会话信息的版本号进行更新,将第一版本号更新为第三版本号。更新版本号的目的是为了使其他需要对该会话信息进行更新的调用方根据该版本号判断是否可以对会话信息进行直接更新。例如在将第一版本号更新为第三版本号后,若再有调用方发送包含第二版本号的会话更新指令,那么由于第二版本号与第三版本号不同,就不能对该会话信息进行直接更新。

将第一版本号更新为第三版本号的具体方法例如可以是将第一版本号加1,得到第三版本号。也即,会话信息的版本号为一个依次增加的数字序列,每次更新都将其版本号加1。

需要说明的是,在本实施例中,支持json解析但不支持php编码解析的调用方可以采用任一种语言开发,只要其支持json解析语言,例如java调用方、c++调用方、python调用方以及其他支持通用json解析的调用方。采用本实施例提供的会话信息更新方法,任何支持json解析语言的调用方可以直接读写php编码格式的会话信息,可以有效地降低开发成本,提高开发效率。

本发明实施例提供的会话信息更新方法,通过接收支持json解析的第一调用方发送的会话信息调用指令,将存储的php编码格式的会话信息转换为json编码格式的会话信息,并为会话信息分配第一版本号,向第一调用方发送json编码格式的会话信息与第一版本号,实现了支持json解析但不支持php编码解析的调用方对php编码的会话信息调用;另外,接收支持json解析的第二调用方发送的包括第二版本号的会话信息更新指令,若第二版本号与第一版本号一致,则将第二调用方发送的json编码格式的数据转换为php编码格式的会话信息;使用转换的php编码格式的会话信息更新存储的php编码格式的会话信息,并更新第一版本号为第三版本号,实现了支持json解析但不支持php编码解析的调用方对php编码的会话信息修改,因此,本发明实施例提供的会话信息修改方法,在从php向java迁移的服务中应用,无需再进行相关接口的独立开发,降低了开发成本,提高了开发效率,另外,由于为会话信息增加了的版本号,在会话信息进行并发读取或修改时,避免了会话信息被覆盖而导致的会话信息丢失。

图2为本发明实施例提供的会话信息管理方法实施例二的流程图,如图2所示,本实施例提供的方法包括:

步骤s201,接收会话信息调用指令,会话信息调用指令为支持javascript对象标记解析的第一调用方发送的。

步骤s202,将存储的php编码格式的会话信息转换为javascript对象标记编码格式的会话信息,并为会话信息分配第一版本号。

步骤s203,向第一调用方发送javascript对象标记编码格式的会话信息与第一版本号。

步骤s204,接收支持javascript对象标记解析的第二调用方发送的会话信息更新指令,会话信息更新指令中包括第二版本号。

步骤s205,检查第二版本号与第一版本号是否一致。

步骤s206,若第二版本号与第一版本号一致,则将第二调用方发送的javascript对象标记编码格式的数据转换为php编码格式的会话信息。

步骤s207,使用转换的php编码格式的会话信息更新存储的php编码格式的会话信息,并更新第一版本号为第三版本号。

步骤s201-步骤s207余步骤s101-步骤s107相同,此处不再赘述。

步骤s208,若第二版本号与第一版本号不一致,则将存储的php编码格式的会话信息转换为javascript对象标记编码格式的会话信息,并为会话信息分配第一版本号。

若在步骤s205中,通过检查发现第二版本号与第一版本号不一致,那么意味着第二调用方需要更新的会话信息已经发生了变化,将不能直接使用第二调用方发送的json编码格式的数据更新存储的php编码格式的会话信息。若更新,则可能导致存储的会话信息被覆盖,相关信息丢失。那么此时,需要将存储的php编码格式的会话信息转换为json编码格式的会话信息,并为该会话信息分配第一版本号。

步骤s209,向第二调用方发送javascript对象标记编码格式的会话信息与第一版本号。

在完成了会话信息的编码转换和版本号添加后,即可向第二调用方发送json编码格式的会话信息和第一版本号。第二调用方在接收了该json编码格式的会话信息和第一版本号后,即可在该会话信息的基础上进行所需修改。修改完成后,第二调用方再次发送会话信息更新指令,此时由于会话信息更新指令中包括第一版本号。由于此时会话信息更新指令中的版本号与存储的php编码格式的会话信息的版本号一致,那么就可以将第二调用方发送的json编码格式的数据转换为php编码格式的会话信息,完成对会话信息的更新。当然此时完成对会话信息的更新后,还需要再次更新会话信息的版本号。

本发明实施例提供的会话信息更新方法,通过接收支持json解析的第一调用方发送的会话信息调用指令,将存储的php编码格式的会话信息转换为json编码格式的会话信息,并为会话信息分配第一版本号,向第一调用方发送json编码格式的会话信息与第一版本号,实现了支持json解析但不支持php编码解析的调用方对php编码的会话信息调用;另外,接收支持json解析的第二调用方发送的包括第二版本号的会话信息更新指令,若第二版本号与第一版本号一致,则将第二调用方发送的json编码格式的数据转换为php编码格式的会话信息;使用转换的php编码格式的会话信息更新存储的php编码格式的会话信息,并更新第一版本号为第三版本号;若第二版本号与第一版本号不一致,则将存储的php编码格式的会话信息转换为json编码格式的会话信息,并为会话信息分配第一版本号,向第二调用方发送json编码格式的会话信息与第一版本号,实现了支持json解析但不支持php编码解析的调用方对php编码的会话信息修改,因此,本发明实施例提供的会话信息修改方法,在从php向java迁移的服务中应用,无需再进行相关接口的独立开发,降低了开发成本,提高了开发效率,另外,由于为会话信息增加了的版本号,在会话信息进行并发读取或修改时,避免了会话信息被覆盖而导致的会话信息丢失。

进一步地,在图1或图2所示实施例中,步骤s107或步骤s207,使用转换的php编码格式的会话信息更新存储的php编码格式的会话信息,并更新第一版本号为第三版本号之后,还包括:存储php编码格式的会话信息的更新记录。也就是说对每次对于php编码格式的会话信息的更新,都保存其更新记录,这样便于追踪对于会话信息的更新,为问题定位提供最完善的信息。

图3为本发明实施例提供的会话信息管理装置实施例一的结构示意图,如图3所示,本实施例提供的会话管理装置包括:

指令接收模块31,用于接收会话信息调用指令,会话信息调用指令为支持javascript对象标记解析的第一调用方发送的。

编解码模块32,用于将存储的php编码格式的会话信息转换为javascript对象标记编码格式的会话信息,并为会话信息分配第一版本号。

信息发送模块33,用于向第一调用方发送javascript对象标记编码格式的会话信息与第一版本号。

指令接收模块31,还用于接收支持javascript对象标记解析的第二调用方发送的会话信息更新指令,会话信息更新指令中包括第二版本号。

版本检查模块34,用于检查第二版本号与第一版本号是否一致。

编解码模块32,还用于若第二版本号与第一版本号一致,则将第二调用方发送的javascript对象标记编码格式的数据转换为php编码格式的会话信息。

信息更新模块35,用于使用转换的php编码格式的会话信息更新存储的php编码格式的会话信息,并更新第一版本号为第三版本号。

本实施例提供的会话信息管理装置用于实现图1所示的会话信息管理方法,其实现原理和技术效果类似,此处不再赘述。

进一步地,在图3所示实施例的基础上,编解码模块32,还用于若第二版本号与第一版本号不一致,则将存储的php编码格式的会话信息转换为javascript对象标记编码格式的会话信息,并为会话信息分配第一版本号;信息发送模块33,还用于向第二调用方发送javascript对象标记编码格式的会话信息与第一版本号。

进一步地,在图3所示实施例的基础上,会话信息管理装置还包括:记录模块,用于存储php编码格式的会话信息的更新记录。

进一步地,在图3所示实施例的基础上,信息更新模块35,具体用于将第一版本号加1,得到第三版本号。

图4为本发明实施例提供的一种会话信息管理设备的结构示意图,如图4所示,该会话信息管理设备包括处理器41、存储器42、接收装置43和发送装置44;会话信息管理设备中处理器41的数量可以是一个或多个,图4中以一个处理器41为例;会话信息管理设备中的处理器41、存储器42、接收装置43和发送装置44可以通过总线或其他方式连接,图4中以通过总线连接为例。

存储器42作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请图1至图2实施例中的会话信息管理方法对应的程序指令/模块(例如,会话信息管理装置中的编解码模块32、版本检查模块34、信息更新模块35)。处理器41通过运行存储在存储器42中的软件程序、指令以及模块,从而会话信息管理设备的各种功能应用以及数据处理,即实现上述的会话信息管理方法。

存储器42可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据会话信息管理设备的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。

接收装置43可以为用于接收信息的器件或模块,例如会话信息管理装置中的指令接收模块31。发送装置44可以为用于发送信息的器件或模块,例如会话信息管理装置中的信息发送模块33。

本申请实施例还提供一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行一种会话信息管理方法,该方法包括:

接收会话信息调用指令,会话信息调用指令为支持javascript对象标记解析的第一调用方发送的;

将存储的php编码格式的会话信息转换为javascript对象标记编码格式的会话信息,并为会话信息分配第一版本号;

向第一调用方发送javascript对象标记编码格式的会话信息与第一版本号;

接收支持javascript对象标记解析的第二调用方发送的会话信息更新指令,会话信息更新指令中包括第二版本号;

检查第二版本号与第一版本号是否一致;

若第二版本号与第一版本号一致,则将第二调用方发送的javascript对象标记编码格式的数据转换为php编码格式的会话信息;

使用转换的php编码格式的会话信息更新存储的php编码格式的会话信息,并更新第一版本号为第三版本号。

当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上的方法操作,还可以执行本申请任意实施例所提供的会话信息管理方法中的相关操作。

通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本申请可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

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