首页> 中国专利> 一种Web应用程序会话管理方法与装置

一种Web应用程序会话管理方法与装置

摘要

本发明提供一种Web应用程序会话管理方法,获取用户端发送给Web应用程序的请求,判断请求中的实时刷新请求、用户主动发出的访问请求,在下次用户主动访问请求之时或者本次用户主动访问请求之后任意时间,计算出前一次用户主动访问请求的时间与后一次用户主动访问请求的时间之间的间隔,或者计算出用户主动访问请求的时间与与当前时间之间的间隔,判断计算出的时间间隔是否超过预先设定的超时时间间隔,如果超过,即判断该会话超时,结束会话,清除会话信息。本发明还提供一种Web应用程序会话管理装置。本发明针对用户提出的请求进行会话管理,可用性、可靠性及可维护性较高。

著录项

  • 公开/公告号CN1949774A

    专利类型发明专利

  • 公开/公告日2007-04-18

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN200610063503.9

  • 发明设计人 刘焱;

    申请日2006-11-02

  • 分类号H04L29/06(20060101);

  • 代理机构

  • 代理人

  • 地址 518129 广东省深圳市龙岗区坂田华为总部办公楼

  • 入库时间 2023-12-17 18:29:26

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-03-11

    专利权的转移 IPC(主分类):H04L29/06 专利号:ZL2006100635039 登记生效日:20220301 变更事项:专利权人 变更前权利人:华为技术有限公司 变更后权利人:华为云计算技术有限公司 变更事项:地址 变更前权利人:518129 广东省深圳市龙岗区坂田华为总部办公楼 变更后权利人:550025 贵州省贵阳市贵安新区黔中大道交兴功路华为云数据中心

    专利申请权、专利权的转移

  • 2010-04-07

    授权

    授权

  • 2007-06-13

    实质审查的生效

    实质审查的生效

  • 2007-04-18

    公开

    公开

说明书

技术领域

本发明涉及网络传输技术领域,具体指一种Web应用程序的会话管理方法与装置。

背景技术

Web应用程序是目前主流的网络应用程序类型,其部署在Web应用服务器中,控制用户浏览器对网络的访问。用户浏览器向Web应用服务器发出的一系列请求称为会话,一个会话是指用户登录到Web应用程序一直到退出Web应用程序整个期间的所有请求。

由于浏览器与Web应用服务器之间是基于无连接的HTTP协议来通讯,因此Web应用服务器无法把用户上次请求的信息保存到用户的下一次请求时使用,而会话则提供了保存用户信息的功能,当用户每次请求开始一个会话时,会话即开始保存用户请求的信息,并且该保存在会话中的信息,对于此次会话中的后续所有请求都是可见的。

会话在结束时,必须被及时清除,由于会话有保存用户此次会话的大量信息的功能,当会话结束而不被及时清除时,Web应用服务器会因为保存有大量未及时清除的会话而降低性能,影响其支持的并发访问的用户数量;另外,如果会话不能够被及时清除,则在此种情况下不需要用户登录即可对Web应用程序进行操作,这样存在安全隐患。会话管理即负责实现对会话的清除。在本专利中,所称会话管理主要是指对会话清除操作,而会话的的创建与保存等操作仍然由Web应用服务器完成,不属于本专利所称的会话管理范畴。

会话的清除在会话结束时启动,会话的结束可能是用户主动退出Web应用程序,也可能是Web应用服务器判断出会话已经失效而结束此次会话,对于非用户主动退出而结束的会话,由于存在Web应用程序实时刷新功能,如何有效判断会话是否失效存在问题。

实时刷新是指客户端不停的轮询Web应用程序的过程。由于浏览器与Web应用服务器之间是一种单向通信,只能由浏览器主动发出请求来获取Web应用程序的信息,服务器端的任何变化都无法主动通知客户端,实时刷新则可以获取服务器端最新状态信息,解决上述问题。然而,实时刷新对如何正确地判断会话是否有效,如何及时启动会话管理,清除失效会话造成很大的困难,由于浏览器不停的向Web应用程序发出实时刷新请求,如果用户不主动退出Web应用程序,则两次请求之间的时间间隔永远不会超出Web应用服务器上的会话超时时间设置,用户会话永远也不会结束。因此,在实际工作中,对于带有实时刷新功能的Web应用程序,如何有效的判断会话的有效性,及时清除会话,进行有效的会话管理是个问题。

现有技术中的一种解决方案,主要是由在客户端添加的会话管理模块来实现会话的及时清除。如图1所示,为该Web应用系统结构图,会话管理模块由会话判断逻辑和会话配置信息组成,会话判断逻辑由JavaScript脚本实现,负责监听用户操作,判断用户两次操作的时间间隔,清除会话功能。会话配置信息包含超时时间间隔、会话超时跳转页面等配置信息。每个页面中都包含由JavaScript脚本编写的会话判断逻辑及从Web应用程序传递过来的会话配置信息。页面正常显示之后,JavaScript脚本初始化一个计数变量,每秒递增1,当监听到用户任何的键盘或鼠标事件时,把计数变量复位至零,重新开始计数。如果计数变量到达用户设置的会话超时时间间隔,则对会话超时跳转页面发出请求,结束此次用户

然而,上述技术方案存在一些缺点:可靠性差,会话管理逻辑是在浏览器中以脚本的方式执行,如果用户设置浏览器不执行任何脚本代码,将导致会话管理逻辑不可用而使得系统不可靠;可用性差,该解决方案在每一个页面中包含相同的会话管理逻辑,随着页面层次结构的复杂,这种技术非常难以使用;可维护性差,会话管理逻辑与页面代码耦合,难以维护。

发明内容

本发明的目的在于解决现有技术在用户端实现,用户禁用就不能保证会话及时清除的缺点,提供一种有效的会话管理装置和方法。

为了实现上述目的,本发明的实施例提供如下的技术方案:

根据本发明的一方面,一种Web应用程序会话管理方法,包括:

A、获取用户端向Web应用程序发送的访问请求;

B、当所述访问请求为用户非初始主动访问请求时,判断所述主动访问请求的时间与前一次用户主动访问请求时间之间的间隔是否超过超时时间间隔,如果超过,进入步骤C,如果不超过,进入步骤D;

C、确定当前主动访问请求超时,结束当前主动访问请求对应的会话,清除所述会话的信息;

D、更新所述前一次用户主动访问请求时间,用当前主动访问请求的时间更新前一次用户主动访问请求时间。

根据本发明的又一方面,一种Web应用程序会话管理方法,包括:

a、获取保存的会话的用户主动访问请求时间;

b、计算所述用户主动访问请求时间与当前时间的时间间隔,判断所述时间间隔是否超过超时时间间隔,如果是,则结束所述会话,清除所述会话的信息。

根据本发明的又一方面,一种Web应用程序会话管理方法,包括:

Aa、接收用户端向Web应用程序发送的主动访问请求,开始计时;

Bb、判断所述计时时长是否超过超时时长,如果是,则结束所述会话,清除所述会话的信息。

根据本发明的另一方面,一种Web应用程序会话管理装置,包括:

会话控制模块,用以接收用户端向Web应用程序发送的访问请求,判断前后两次用户主动访问请求时间间隔,或者用户主动访问请求时间与当前时间的时间间隔是否超过超时时间间隔,对于超时会话,结束所述超时会话,清除所述超时会话信息;

会话配置模块,用以存储会话配置信息,所述会话配置信息至少包括超时时间间隔。

由于采用了上述方案,本发明的实施例能够解决带实时刷新Web应用程序的会话管理问题,并提供了一种通用的会话管理技术方案,适用于各种Web服务器,会话管理模块作为一个独立的组件,并不绑定于用户端或者特定的服务器,可与任何Web应用程序无缝集成,具有很高的可用性;其次,本发明提供的会话管理功能脱离用户端实现,相对于在客户端实现的会话管理功能来说更可靠;再次,会话管理模块是一个独立的组件,会话管理模块与业务模块无耦合,对会话管理模块的修改不会影响到其它的业务模块,对业务模块的修改,也不会影响到会话管理模块,有利于后续的维护;最后,由于会话管理模块的组件化特性,具有较好的可扩展性。

附图说明

图1是现有技术方案的系统结构图;

图2是本发明提供的会话管理方法实施例一的工作流程图;

图3是本发明提供的会话管理方法实施例二的工作流程图;

图4是本发明提供的会话管理方法实施例三的工作流程图;

图5是本发明的实施例提供的会话管理装置的结构图;

图6是本发明的实施例提供的会话管理装置中会话控制模块实施例一的结构图;

图7是本发明的实施例提供的会话管理装置中会话控制模块实施例二的结构图;

图8是本发明的实施例提供的会话管理装置中会话控制模块实施例三的结构图;

图9是本发明的实施例提供的Web服务器的结构图;

图10是本发明的实施例提供的Web应用系统实施例一的结构图;

图11是本发明的实施例提供的Web应用系统实施例二的结构图。

具体实施方式

为了解决带有实时刷新功能的Web应用程序的会话管理问题,提供一种通用的会话管理方法,本发明的关键在于:构造一个会话管理模块,该会话管理模块既不与用户端绑定,也不依赖于特定的服务器实现,而是作为一个独立的组件存在,会话管理模块能够拦截用户端发送给Web应用程序的请求,将请求中的实时刷新请求、用户主动发出的访问请求进行分流,并确定每一个会话的用户主动访问请求的访问时间,在下次用户主动访问请求之时或者本次用户主动访问请求之后任意时间,会话管理模块判断前一次用户主动访问请求的时间与后一次用户主动访问请求的时间之间的间隔,或者用户主动访问请求的时间与与当前时间之间间隔是否超过预先设定的超时时间间隔,如果超过,会话管理模块即判断出该会话超时,随即结束会话,清除会话信息,达到对会话的有效管理。

下面参照附图对本发明的实施例进行详细说明。

请参见图2所示本发明会话管理方法实施例一,其具体实施包括如下步骤:

步骤201:获取用户端向Web应用程序发送的请求;

步骤202:判断所述请求是否为实时刷新请求,如果是实时刷新请求,则跳转到步骤211,如果否,则判定该请求是用户主动访问请求,进入步骤203;

步骤203:根据是否保存该会话信息判断该用户主动访问请求是否为一个会话的初始请求,是则进入步骤204,否则进入步骤205;

步骤204:保存该会话信息,跳转到步骤210;

步骤205:获取该会话中前一次用户主动访问请求的时间,用当前访问时间减去上次访问时间获得两次请求的时间间隔之差;

步骤206:判断用户两次请求时间间隔是否超过预先设定的超时时间间隔,是则进入步骤207,否则,跳转到步骤210;

步骤207:结束此次会话,清除该会话的信息,并读取超时跳转页面,发送超时跳转页面的请求给Web应用程序;

步骤208:接收Web应用程序生成的显示超时跳转页面的响应信息,将响应信息转发给用户浏览器,显示会话超时页面;

步骤209:更新前一次用户主动访问请求时间,将本次用户主动访问请求的时间存储为前一次用户主动访问请求时间;

步骤210:将用户请求转发给Web应用程序;

步骤211:接收并转发Web应用程序生成的用户请求的页面响应信息,用户端显示用户请求的页面。

上述步骤中,步骤202中判断请求是否实时刷新请求与步骤203判断请求是否为一个会话的初始请求的执行步骤可以互换,也可先执行判断是否会话的初始请求,再执行是否实时刷新请求的判断,同样可实现发明目的。

另外,上述会话管理方法还可执行对用户访问次数、时间的统计,其工作步骤具体实施方式一请参见图2所示,用户访问次数计数过程为:当步骤202会话控制模块判断用户端请求是否为实时刷新请求后,对于非实时刷新请求,用户访问次数计数器增加一个特定值,当步骤207结束失效会话时,用户访问次数清零;用户访问时间计时过程为:步骤206会话控制模块判断用户请求是否超时后,对于不超时的请求,会话控制模块将步骤205中计算得到的两次访问时间差与上一轮两次访问的时间差累加,并存储,当步骤207结束失效会话时,用户访问时间清零。

实施上述方法,会话管理装置即可实现对用户端发送的会话请求进行有效的管理,及时清除已失效会话,上述方法清除会话是根据前一次用户主动发送请求时间与后一次用户主动发送请求时间之间的间隔是否超时作为会话清除的触发条件,实际上,为及时清除失效会话,本发明会话管理方法还可根据当前时间与用户主动访问请求时间的时间间隔来判断会话是否需要清除,该方法在超时同时即可结束会话,实现发明目的。

参见图3,为本发明会话管理方法实施例二的工作流程图,本实施例的方法是在会话管理模块中增加一个会话定时器,该定时器在用户设定的定时检查时间间隔达到时,发出启动检查当前时间与用户主动访问时间之间时间间隔是否超时的指令,其具体实施步骤如下:

步骤301:当会话缓存中保存有会话信息时,在用户设定的定时检查时间间隔达到时,则会话定时器发出会话定时检查启动指令;

步骤302:获取一个会话用户主动访问请求的时间;

步骤303:计算当前时间与用户主动访问请求的时间之间的间隔,判断该间隔是否超过超时时间隔,是则进入下一步,否则跳转到步骤305;

步骤304:清除该会话,向用户浏览器转发用户超时页面;

步骤305:判断是否还有会话未被检查,是则返回步骤302,获取另一个会话,否则进入步骤306;

步骤306:一次定时检查完毕,定时器倒计时,等待下一次检查。

需要说明的是,为了能够达到及时清除会话的目的,上述方法中定时检查的时间间隔一般并不长,对会话的轮循检查能够保证当会话超时的同时即被清除,使得用户端及时得到超时通知而不再作出超时请求。

其中,上述方法步骤302中获取一个会话的用户主动访问请求的时间是通过以下步骤实现:

获取用户端向Web应用程序发送的请求;判断请求是否为实时刷新请求,如果不是实时刷新请求,则判定该请求是用户主动访问请求,记录该次用户主动访问请求的时间;转发该用户主动访问请求的时间给定时检查单元存储。

参见图4,本发明会话管理方法实施例三的工作流程图,本实施例三通过在会话管理模块中增加计时单元,由计时单元从用户主动访问请求时刻起开始计时,计时时间即表示用户主动访问请求时间与当前时间的时间间隔,若计时时间超过预先设定的超时时间间隔,即结束会话,清除会话信息,其具体实施步骤如下:

步骤401:当接收到用户端向Web应用程序发送的主动访问请求时,从初始状态开始计时,每次递增1个时间单位;

步骤402:判断所述计时时长是否达到超时时长,如果是,进入步骤403,如果否,进入步骤404;

步骤403:结束所述会话,清除所述会话的信息,并读取超时跳转页面,发送超时跳转页面的请求给Web应用程序,用户浏览器显示会话超时页面;

步骤404:继续计时,计时时长随时间增加。

实现上述步骤的同时,还需要保证在每一个会话的第一个请求时即开始计时,当用户每提出一次主动访问请求时,计时单元及时得到更新,因此,还需执行下述步骤:

获取用户端向Web应用程序发送的请求;判断请求是否为实时刷新请求,如果不是实时刷新请求,则判定该请求是用户主动访问请求,启动计时单元或者更新计时单元,从初始状态开始计时。上述初始状态可以设置为零或者其它任意值,从该初始状态正数计时或者倒数计时的计时时长与超时时长可以进行性比较即可。

利用上述实施例即可实现在非用户端对会话的管理,及时清除超时会话,并且上述方法均具有高可用性、高可靠性及高可维护性。

下面对本发明的实施例提供的会话管理装置进行说明。

参见图5,为本发明的实施例所提供的会话管理装置的组成示意图,会话管理装置包括:会话代理模块、会话控制模块、会话缓存池与会话配置模块;

会话代理模块用以拦截用户浏览器端向Web服务器发送的任何会话请求,并将请求转发给会话控制模块进行处理,会话代理模块可以使用过滤器实现,也可由AOP(Aspect Oriented Programming,面向方面编程)技术实现。

会话控制模块为会话管理装置的核心部分,该模块用以接收会话代理模块转发的请求,判断请求是否为实时刷新请求,请求是否为一个会话的初始请求,根据该会话前一次用户主动访问请求的时间与用户后一次主动访问请求时间的间隔,或者用户主动访问请求的时间与当前时间的时间间隔是否超过预先设定的时间间隔来判断请求是否超时,结束已经超时的会话。

会话缓存池用以缓存系统中所有的会话信息,供会话控制模块使用。需要指出的是,本实施例中所提供的会话管理装置包含会话缓存池,在其它的实施例中,会话管理装置也可不设置该模块,而由与会话管理装置连接的其它设备,例如Web服务器的缓存模块来提供对会话信息的缓存功能,会话控制模块通过与设备的连接关系获取相应的会话信息,实施该方案同样能够实现本发明的目的。

会话配置模块用以向会话控制模块提供其在分析判断中需要使用的一些可变会话配置信息,所述会话配置模块上设置有会话配置接口,所述会话配置模块通过所述会话配置接口对所述会话配置信息进行配置,所述会话配置信息包括超时时间间隔、实时刷新请求的路径、超时跳转页面与会话定时清理时间等。会话配置信息模块将会话管理模块中可能会变化的信息提取出来,做成独立的模块,提供对配置文件的支持,让用户可以在配置文件中对各参数进行预先设定。

参见图6,为会话控制模块与方法实施例一对应的具体组成的实施例一的示意图,本实施例中会话控制模块包括判断单元61、访问时间存储单元62、访问信息统计单元63。

其中,判断单元61为会话控制模块的核心,负责接收会话代理模块传送的用户请求,判断用户请求是否实时刷新请求,是否一个会话的初始请求,从访问时间存储单元62中获取前一次用户主动访问请求时间,并计算该时间与后一次用户主动访问请求之间的时间间隔,判断计算出的时间间隔是否超过超时时间间隔,结束超时会话,或者对未超时会话,将访问时间存储单元62中保存的时间更新为当前用户主动访问的时间;

访问时间存储单元62用以当所述判断单元61判断出所述访问请求为用户主动访问请求时,存储所述用户主动访问请求时间为前一次用户主动访问请求时间;

访问信息统计单元63负责对用户访问的次数、时间进行统计与保存。

参见图7,为会话控制模块与方法实施例二对应的具体组成实施例二的示意图,本实施例中会话控制模块包括判断单元71、访问时间存储单元72、访问信息统计单元73与定时器74;

其中,判断单元71负责接收会话代理模块传送的用户请求,判断用户请求是否实时刷新请求,将用户主动访问请求时间存储在访问时间存储单元中,当判断保存有会话信息时,启动对会话的定时检查,将定时检查时间设定在定时器74中,计算用户主动访问请求时间与当前时间之间的时间间隔,判断是否超时,结束超时会话;

访问时间存储单元72用以当所述判断单元71判断出所述访问请求为用户主动访问请求时,存储所述用户主动访问请求时间;

访问信息统计单元73负责对用户访问的次数、时间进行统计与保存;

定时器74,用以在用户设定的定时检查时间间隔达到时,通知所述判断单元71启动检查当前时间与用户主动访问时间之间时间间隔是否超时。

参见图8,为会话控制模块与方法实施例三对应的具体组成实施例二的示意图,本实施例中会话控制模块包括判断单元81、计时单元82、访问信息统计单元83;

其中,判断单元81负责接收会话代理模块传送的用户请求,判断用户请求是否实时刷新请求,当判断出请求为用户主动访问请求时,通知计时单元82开始计时,根据计时时长是否达到超时时间间隔判断出会话是否超时,结束会话,或者对未超时会话,计时单元82继续计时;

计时单元82负责接收所述判断单元81发送的计时通知,从初始状态开始计时;

访问信息统计单元83负责对用户访问的次数、时间进行统计与保存。

利用上述会话管理方法和装置,本发明还提供一种具有会话管理功能的Web应用服务器的实施例,参见图9,为本发明提供的Web应用服务器实施例一的组成示意图,本实施例中,Web应用服务器包括Web应用程序模块与图6所述的会话管理装置,会话管理装置内置于Web应用服务器内,成为Web应用服务器内部的一个功能模块,由于内置了会话管理的功能模块,Web应用服务器即可利用上述会话管理方法实现对会话的及时、有效的清除,较之于现有的Web应用服务器功能更加强大,同时,会话管理装置作为一个独立的功能模块,与Web应用服务器中其它业务代码无耦合,会话管理装置与Web应用程序模块两者之间的修改、维护不会互相影响,因此本发明中的Web应用服务器的可维护性也比较强。

利用上述会话管理方法、装置和具有会话管理功能的Web应用服务器,本发明同时还提供一种Web应用系统的实施例,该系统不仅可实现用户端请求的会话,还可实现对会话的有效、及时的管理。参见图10,为本发明提供的具有会话管理功能的Web应用系统的实施例一的组成示意图,该实施例中Web应用系统包括用户浏览器端、图5所示会话管理装置与Web应用服务器,用户浏览器端包含有Web应用程序界面,Web应用服务器包含有Web应用程序模块,会话管理装置包括会话代理模块、会话控制模块、会话缓存池与会话配置模块,会话管理装置位于用户端浏览器的Web应用程序界面与Web应用服务器的Web应用程序之间,会话代理模块作为会话管理装置对外的接口,一端与用户端浏览器的Web应用程序界面通过HTTP协议连接,一端连接于Web应用服务器的Web应用程序模块,用户浏览器通过HTTP协议向外发送用户的会话请求,会话管理装置中的会话代理模块负责拦截该请求,实施上述会话管理方法,及时清除失效会话,对未失效会话进行有效的管理,转发处理后的会话请求给Web应用程序,通知其进行相应的响应,并将Web应用程序的响应返回用户浏览器使其进行相应的显示。

参见图11,为本发明提供的具有会话管理功能的Web应用系统的实施例二的组成示意图,该实施例中Web应用系统与实施例一不同之处在于,仅包括用户浏览器端与图9所示的Web应用服务器,所述Web应用服务器包括了会话管理装置和Web应用程序模块,会话管理装置内置于Web应用服务器中,该实施例同样能够实现对会话的及时有效的管理。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号