一种实现会话共享的方法和系统的制作方法

文档序号:7777800阅读:160来源:国知局
一种实现会话共享的方法和系统的制作方法
【专利摘要】本申请公开了一种实现会话共享的方法,集成在web站点的内部插件或组件根据所在Web站点的调用,生成唯一的会话键值,并将会话键值、需要写入的会话数据以及超时时间,传递给会话服务模块;会话服务模块通过统一的编码协议对接收的会话键值、需要写入的会话数据以及超时参数进行解码,保存会话键值及其相应的会话数据,并设置相应的超时时间。所述Web站点的数目大于1,并且其中至少有两个Web站点基于不同编程语言或不同平台。本申请还公开了一种实现会话共享的系统。本申请技术方案可以实现不同语言所开发的网站运行在不同的平台上可以共享会话数据信息。
【专利说明】一种实现会话共享的方法和系统
【技术领域】
[0001]本申请涉及互联网【技术领域】,尤其涉及一种实现会话共享的方法和系统。
【背景技术】
[0002]Web应用中的会话(session)是指用户浏览网页后到用户关闭浏览器所经过的时间或一定时间范围内没有浏览该网站的时间,也就是用户浏览这个网站所花费的时间或者浏览网站后超过一定范围的时间。从上述含义中,可以看出会话实际上可以理解为一个特定的时间概念。就功能而言,会话也可以是指web应用中被网站保存的特定信息,例如用户登录的信息(比如登录状态)、需要被多个网页反复调用的信息(比如权限信息)。
[0003]目前保留这些特定信息的方法有两种,一种是保存在服务端,称为会话;另一种是保存在客户端,称为cookie。而cookie中保存一个特定的标识符,通过这个标识符,可以在服务端的会话中检索到这些特定信息。根据浏览器的不同,cookie的保存大小是也不同的,由于各个浏览器软件的处理cookie的方式不同,在客户端执行javascript脚本处理cookie的大小是有限制的,比如火狐浏览器(Firefox)中,javascript脚本只能处理4KB以下的cookie。因此不能在cookie存储大量信息。用户通过浏览器每次请求网站,都会把cookie传到服务器端,这样增加了服务器带宽的消耗,同时这些cookie信息并不一定是服务端必需的数据。cookie中不能保存敏感信息,因为cookie中保存的数据是明文的,可以被黑客破解,敏感信息必须加密保存,但会话是保存在服务端,因此可以保存用户密码等信肩、O
[0004]对于大型网站,异构架构已经比较普遍,例如网站的某些模块式.NET开发的,另外一些模块式其它语言开发的,比如Java、Php、Python等,而且这些语言开发的网站部署在不同的平台中,比如.NET部署在Windows中,其它语言开发的网站部署在Linux中,而这些开发语言所使用的会话是各开发语言独有的方案实现的,这样会话就无法共用,这就造成了内存资源的浪费,同时也无法共享公共的信息。

【发明内容】

[0005]本申请提供了一种实现会话共享的方法和系统,可以实现不同语言所开发的网站运行在不同的平台上可以共享会话数据信息。
[0006]本申请实施例提供的一种实现会话共享的系统,包括集成在Web站点的内部插件或组件,和会话服务模块;所述Web站点的数目大于1,并且其中至少有两个Web站点基于不同编程语言或不同平台;
[0007]所述集成在web站点的内部插件或组件用于提供被其所在Web站点所调用的功能,根据所在Web站点的调用,生成唯一的会话键值,并将会话键值、需要写入的会话数据以及超时时间,传递给会话服务模块;以及将来自用户浏览器的会话键值传递给会话服务模块;还用于接收来自会话服务模块的检索结果;
[0008]所述会话服务模块用于通过统一的编码协议对接收的会话键值、需要写入的会话数据以及超时参数进行解码,保存会话键值及其相应的会话数据,并设置相应的超时时间;以及通过统一的编码协议对接收的会话键值进行解码,根据会话键值在已保存的会话数据中进行检索,将检索结果通过统一编码协议传递给所述集成在web站点的内部插件或组件。
[0009]较佳地,所述会话服务模块包括:数据编码协议转化单元、存储调度模块和内存数据库;
[0010]所述数据编码协议转化单元用于以统一的编码协议与集成在Web站点的内部插件或组件进行信息交互;对接收的会话键值、需要写入的会话数据以及超时参数进行解码后发送至存储调度模块;以及将来自存储调度模块的会话数据检索结果通过统一编码协议传递给所述集成在Web站点的内部插件或组件;
[0011]所述存储调度模块用于将来自数据编码协议转化单元的键值及其对应的数据保存到内存数据库中,并在内存数据库中设置超时时间;以及用于根据将来自数据编码协议转化单元的键值在内存数据库中存储的会话数据进行检索,将会话数据检索结果发送至数据编码协议转化单元;
[0012]所述内存数据库用于存储键值及其对应的会话数据。
[0013]较佳地,所述集成在Web站点的内部插件或组件与其所在的Web站点采用相同的编程语言开发。
[0014]较佳地,所述编程语言包括.NET、Java、php或python。
[0015]本申请实施例还提供了一种实现会话共享的方法,该方法基于前述系统实现,包括:
[0016]集成在web站点的内部插件或组件根据所在Web站点的调用,生成唯一的会话键值,并将会话键值、需要写入的会话数据以及超时时间,传递给会话服务模块;
[0017]会话服务模块通过统一的编码协议对接收的会话键值、需要写入的会话数据以及超时参数进行解码,保存会话键值及其相应的会话数据,并设置相应的超时时间。
[0018]较佳地,该方法进一步包括:
[0019]集成在web站点的内部插件或组件将来自用户浏览器的会话键值传递给会话服务丰吴块;
[0020]会话服务模块通过统一的编码协议对接收的会话键值进行解码,根据会话键值在已保存的会话数据中进行检索,将检索结果通过统一编码协议传递给所述集成在web站点的内部插件或组件。
[0021]较佳地,所述根据会话键值在已保存的会话数据中进行检索包括:
[0022]判断该会话键值对应的会话是否已过期,若是,根据会话键值在已保存的会话数据中进行检索得到检索结果,否则返回内容为空的检索结果。
[0023]从以上技术方案可以看出,该实现会话共享的系统中,会话统一存储在内存数据库中,集成在Web站点的内部插件或组件传递会话键值,通过统一的编码协议与这些集成在Web站点的内部插件或组件进行信息交互,根据键值数据对内存数据库中的会话数据进行检索或写入,从而使在不同平台不同语言开发的Web站点可以共享同一会话数据,从而实现会话数据的共享。【专利附图】

【附图说明】
[0024]图1为本申请实施例提供的跨平台跨编程语言的共享会话服务系统的结构框图;
[0025]图2为本申请实施例提供的基于Java开发的网站写入会话的处理流程示意图;
[0026]图3为本申请实施例提供的基于Python开发的网站读取会话的处理流程示意图。
【具体实施方式】
[0027]本申请的实施例旨在提供一种可以在不同平台不同语言开发的Web站点可以共享同一会话数据的方法,以解决现有技术中会话服务方案存在的上述问题。
[0028]为使本申请技术方案的技术原理、特点以及技术效果更加清楚,以下结合具体实施例对本申请技术方案进行详细阐述。
[0029]图1为本申请实施例提供的跨平台跨编程语言的共享会话服务系统的结构框图。如图1所示,本实施例的跨平台跨编程语言的共享会话服务系统包括用于web站点的内部插件或组件111、112、113、114和会话服务模块12。且内部插件或组件分别集成在web站点101、102、103和104。在本申请实施例中,101是基于.NET开发的网站,则111是基于.NET开发的内部组件,被101所引用;102是Java开发的网站,则112是基于Java的内部组件,被102所引用;103是Php开发的网站,则113是基于php开发的插件,被103所包含;104是基于Python开发的网站,则114是基于的Python开发的组件,被104所包含。
[0030]集成在web站点的内部插件或组件111、112、113、114用于提供被其所在Web站点所调用的功能,根据所在Web站点的调用,生成唯一的会话键值,并将会话键值、需要写入的会话数据以及超时时间,传递给会话服务模块12 ;以及将来自用户浏览器的会话键值传递给会话服务模块12 ;还用于接收来自会话服务模块12的会话数据检索结果。
[0031]会话服务模块12用于通过统一的编码协议对接收的会话键值、需要写入的会话数据以及超时参数进行解码,保存会话键值及其相应的会话数据,并设置相应的超时时间;以及通过统一的编码协议对接收的会话键值进行解码,根据会话键值在已保存的会话数据中进行检索,将会话数据检索结果通过统一编码协议传递给所述集成在web站点的内部插件或组件 111、112、113、114。
[0032]如图1所示,会话服务模块12可以是基于任意语言开发(如.NET、Java、php或python),会话服务模块12包括数据编码协议转化单元121,数据编码协议转化单元121与111、112、113、114以统一编码协议进行通讯,保证数据能够有效的传递到会话服务模块
12。会话服务模块12在经过数据编码协议转化单元121数据解码后,然后通过存储调度模块122将数据保存到内存数据库123中。内存数据库123可采用主从热备的模式,以提高会话服务的高可用性。内存数据库123本身具有计时器的功能,可以在会话过期后删除会话并释放内存。
[0033]该会话服务系统可以实现会话共享,即不同的web站点共享同一的会话。
[0034]如图2所示为本申请实施例提供的基于Java开发的网站写入会话的处理流程,包括:
[0035]步骤S201:当用户浏览器访问Java开发的网站的某个功能,该功能需要写入一个会话的数据,Java开发的web站点调用内部组件或插件。
[0036]步骤S202:内部组件或插件生成唯一的会话键值(Key),将会话的Key、会话需要写入的数据以及超时参数,传递给会话服务模块12。
[0037]步骤S203:会话服务模块12的数据编码协议转化单元121通过统一的编码协议进行解码得到数据,通过存储调度模块122将键值及其对应的数据保存到内存数据库123中,并在内存数据库123中设置超时时间。
[0038]如图3所示,本申请实施例提供的基于Python开发的网站读取会话的处理流程,包括如下步骤:
[0039]步骤S301:当用户浏览器访问基于python开发Web站点的某个功能时,该功能需要读取会话,浏览器将会话的Key传递给该Web站点。
[0040]步骤S302:所述Web站点的内部组件根据浏览器请求会话的Key,以统一的编码协议将会话的Key发送给会话服务模块12。
[0041]步骤S303:会话服务模块S12的数据编码协议转化单元121以统一的编码协议进行解码得到会话的Key,并通过存储调度单元122从内存数据库123中读取数据。
[0042]步骤S304:根据内存数据库123中设置的超时时间判断该会话是否已经过期,若是,执行步骤S307,否则执行步骤S305。
[0043]步骤S305:会话服务模块12通过存储调度单元122从内存数据库123中得到会话的数据,并以统一编码协议传递给基于Python开发的web站点的内部组件。
[0044]步骤S306:基于Python开发的web站点从内部组件中获得到会话的数据并处理,然后结束本流程。
[0045]步骤S307:会话服务模块12从存储调度单元122得到的是空数据,以统一编码协议将数据传递给基于Python开发的web站点的内部组件。
[0046]步骤S308:基于Python开发的web站点从内部组件获得的是空值,则继续处理其它逻辑。
[0047]基于图2和图3所示的流程给出的启示,本领域技术人员可以很容易得出基于其他语言开发的网站进行写入会话或读取会话的处理流程,故不再赘述。
[0048]对于大型互联网网站,采用不同的开发技术,使用面向服务的体系结构(S0A,service-oriented architecture)已经成为趋势,因此本方法有效的解决了异构方案共享session的问题,并可进行横向扩展,提升网站访问的性能。
[0049]以上所述仅为本申请的较佳实施例而已,并不用以限制本申请的保护范围,凡在本申请技术方案的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
【权利要求】
1.一种实现会话共享的系统,其特征在于,包括集成在Web站点的内部插件或组件,和会话服务模块;所述Web站点的数目大于1,并且其中至少有两个Web站点基于不同编程语言或不同平台; 所述集成在web站点的内部插件或组件用于提供被其所在Web站点所调用的功能,根据所在Web站点的调用,生成唯一的会话键值,并将会话键值、需要写入的会话数据以及超时时间,传递给会话服务模块;以及将来自用户浏览器的会话键值传递给会话服务模块;还用于接收来自会话服务模块的检索结果; 所述会话服务模块用于通过统一的编码协议对接收的会话键值、需要写入的会话数据以及超时参数进行解码,保存会话键值及其相应的会话数据,并设置相应的超时时间;以及通过统一的编码协议对接收的会话键值进行解码,根据会话键值在已保存的会话数据中进行检索,将检索结果通过统一编码协议传递给所述集成在web站点的内部插件或组件。
2.根据权利要求1所述的系统,其特征在于,所述会话服务模块包括:数据编码协议转化单元、存储调度模块和内存数据库; 所述数据编码协议转化单元用于以统一的编码协议与集成在Web站点的内部插件或组件进行信息交互;对接收的会话键值、需要写入的会话数据以及超时参数进行解码后发送至存储调度模块;以及将来自存储调度模块的会话数据检索结果通过统一编码协议传递给所述集成在Web站点的内部插件或组件; 所述存储调度模块用于将来自数据编码协议转化单元的键值及其对应的数据保存到内存数据库中,并在内存数据库中设置超时时间;以及用于根据将来自数据编码协议转化单元的键值在内存数据库中存储的会话数据进行检索,将会话数据检索结果发送至数据编码协议转化单元; 所述内存数据库用于存储键值及其对应的会话数据。`
3.根据权利要求1所述的系统,其特征在于,所述集成在Web站点的内部插件或组件与其所在的Web站点采用相同的编程语言开发。
4.根据权利要求3所述的系统,其特征在于,所述编程语言包括.NET、Java、php或Python0
5.一种实现会话共享的方法,其特征在于,该方法基于如权利要求1所述的系统实现,包括: 集成在web站点的内部插件或组件根据所在Web站点的调用,生成唯一的会话键值,并将会话键值、需要写入的会话数据以及超时时间,传递给会话服务模块; 会话服务模块通过统一的编码协议对接收的会话键值、需要写入的会话数据以及超时参数进行解码,保存会话键值及其相应的会话数据,并设置相应的超时时间。
6.根据权利要求5所述的方法,其特征在于,该方法进一步包括: 集成在web站点的内部插件或组件将来自用户浏览器的会话键值传递给会话服务模块; 会话服务模块通过统一的编码协议对接收的会话键值进行解码,根据会话键值在已保存的会话数据中进行检索,将检索结果通过统一编码协议传递给所述集成在web站点的内部插件或组件。
7.根据权利要求6所述的方法,其特征在于,所述根据会话键值在已保存的会话数据中进行检索包括: 判断该会话键值对应的会话是否已过期,若是,根据会话键值在已保存的会话数据中进行检索得到检索结果,否则返回内容为空的检索结果。
【文档编号】H04L29/08GK103634391SQ201310610886
【公开日】2014年3月12日 申请日期:2013年11月26日 优先权日:2013年11月26日
【发明者】袁嘉林 申请人:上海合鸿信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1