一种基于实时会话状态管理的方法、装置及系统的制作方法

文档序号:7710139阅读:129来源:国知局

专利名称::一种基于实时会话状态管理的方法、装置及系统的制作方法
技术领域
:本发明涉及通信
技术领域
,尤其涉及一种基于实时会话状态管理的方法、装置及系统。
背景技术
:当前的网络管理软件,大多以Web应用程序出现。Web应用程序又称为B/S(Browser/Server,浏览器/服务器)架构的应用程序,如图1所示,客户端使用浏览器(如IE、Firefox等)与Web服务器进行通信,并向用户展示业务数据;Web服务器在收到客户端的请求后,通过服务器业务处理程序执行业务处理,并将处理结果以HTML(HypertextMarkupLanguage,超文本标识语言)的形式反馈给客户端浏览器。Web应用程序构建于HTTP(HypertextTransferProtocol,超文本传输协议)基础之上,客户端与服务器之间的所有通信和数据交互均使用HTTP。HTTP虽然是基于TCP(TransmissionControlProtocol,传输控制协议)实现的,但HTTP本身为无连接协议,即客户端浏览器与服务器之间不会一直保持网络连接,仅当客户端需要从服务器获取数据或向服务器提交请求时,才会与服务器建立TCP连接(例如^i舌连接);而当数据交互完成以后,TCP连接会被断开,直到下一次数据交互时才重新建立TCP连接。但是,作为网络管理软件的Web应用程序,需要让客户端与服务器之间保持一种会话关系,并维护该会话状态。这样,服务器就能够准确的判断出发送某次特定HTTP请求的客户端,是否曾经发送过其他请求,并能够建立多次请求之间的关系,进而能够依据会话信息,实现对用户的识别、管理和状态维护等操作。客户端与服务器之间的会话状态有两种,分别是离线和在线(即无效或有效)。这两种状态均由服务器进行维护,相互转换关系如图2所示当用户4通过客户端浏览器访问服务器的Web应用时,由服务器自动生成会话并进行维护,此时用户为"在线"状态。有两种方式可以将"在线"状态转换为"离线"状态一种是服务器注销会话,通常由客户端向服务器发出注销请求,服务器收到注销请求后通过注销对应的会话,实现用户注销功能;另一种是在特定的超时闲置时长间隔内,服务器未收到该会话对应客户端的任何请求,服务器将此会话自动注销,这种情况通常发生在用户未执行手工注销操作(向服务器发送注销请求),而直接关闭浏览器,此时会话的失效只能等待服务器超时。现有技术中由服务器会话控制器对会话状态进行维护管理,但该方案存在以下缺点客户端需要访问服务器来判断会话状态是否有效,如果客户端浏览器一直停留在特定页面,而不执行访问服务器的操作,此时无法判断会话状态是否失效;只有当客户端向服务器发送访问请求后,才能从服务器的回应中获知该会话状态是否仍然有效,因此会话状态更新的实时性差。另外,在会话已经失效时,客户端停留在特定页面,如果用户没有对客户端浏览器进行屏蔽操作,则客户端页面显式的内容不会隐藏,给内容的安全性带来隐患。还有,当用户通#户端在Web界面上输入数据时,在输入过程中,由于服务器超时导致会话失效,但用户并不知道,仍然继续界面输入;输入完成后,当用户执行数据提交操作时,服务器发现该客户端对应的会话已经超时,直接将用户导航到重新登录的页面,用户输入的数据将全部丢失。
发明内容本发明提供了一种基于实时会话状态管理的方法、装置及系统,为用户提供一种客户端控制会话状态的机制,以提升Web应用程序的可用性。本发明提供了一种基于实时会话状态管理的方法,应用于包括客户端和服务器的系统中,所述客户端和服务器分别包括会话控制器,所述方法包括以下步骤所述客户端会话控制器设置操作事件与会话状态更新的对应关系;所述客户端会话控制器检测操作事件;所述客户端会话控制器根据所述操作事件及所述对应关系更新会话状态,所述更新会话状态包括将会话状态由在线转换为离线,或维持在线状态。其中,如果会话状态由在线转换为离线,所述客户端会话控制器屏蔽显示的页面内容,并提示用户进行重新登录。其中,所ii^户端会话控制器检测到用户重新登录成功后,恢复所述页面内容。其中,所述客户端会话控制器检测操作事件,具体包括所M户端会话控制器检测到会话状态变化的触发信息;或所述客户端会话控制器接收到服务器发送的同步信息,所述同步信息中携带会话状态更新指示。其中,所述客户端会话控制器根据所述操作事件及所述对应关系更新会话状态,之后还包括所述客户端会话控制器与所述服务器会话控制器同步所述会话状态。其中,如果会话状态为维持在线状态,在客户端本地设置定时器,当获知会话需要维持在线状态时,重新启动该定时器,并与所述服务器会话控制器同步会话状态,使所述服务器会话控制器初始化该会话对应的定时器;当该定时器超时时,将该会话转为离线。本发明提供了一种基于实时会话状态管理的系统,包括客户端和服务器,所述客户端和服务器分别包括会话控制器;所述客户端会话控制器,用于设置操作事件与会活状态更新的对应关系,并检测操作事件;根据所述操作事件及所述对应关系更新会话状态,所述更新会话状态包括将会话状态由在线转换为离线,或维持会话在线;所述服务器会话控制器,用于与所述客户端会话控制器同步所述会话状态。本发明提供了一种客户端设备,应用于包括客户端和服务器的系统中,所述客户端包括会话控制器,所述客户端会话控制器包括设置模块,用于设置操作事件与会话状态更新的对应关系;检测模块,用于检测操作事件;会话状态维护模块,分别与所述设置模块和检测模块连接,用于根据所述操作事件及所述对应关系更新会话状态,所述更新会话状态包括将会话状态由在线转换为离线,或维持在线状态。其中,还包括安全模块,与所述会话状态维护模块连接,用于会话状态由在线转换为离线时,屏蔽显示的页面内容,并提示用户进行重新登录,检测到用户重新登录成功后,恢复所述页面内容。其中,所述检测模块,具体用于检测到会话状态变化的触发信息;或接收到服务器发送的同步信息,所述同步信息中携带会话状态更新指示。其中,还包括会话状态同步模块,与所述会话状态维护模块连接,用于与所述服务器会话控制器同步所述会话状态。其中,所述会话状态维护模块,具体用于如果会话状态为维持在线状态,在客户端本地设置定时器,当获知会话需要维持在线状态时,重新启动该定时器,并通过所述会话状态同步模块与所述服务器会话控制器同步会话状态,使所述服务器会话控制器初始化该会话对应的定时器;当该定时器超时时,将该会话转为离线。与现有技术相比,本发明具有以下优点本发明中,由于通过客户端会话控制器检测影响会话状态的操作事件,并根据预先配置的操作事件与会话状态的对应关系,更新会话状态;使得客户端不需要访问服务器就可以判断会话状态是否有效,并对会话状态进行维护管理,增强了会活状态更新的实时性。另外,在会话已经失效时,客户端会话控制器可以对客户端浏览器进行屏蔽操作,将客户端页面显式的内容隐藏,保证了页面内容的安全性。图1是现有技术中Web应用程序的基本流程图2是现有技术中两种M状态及其转换关系示意图3是本发明中一种基于实时会话状态管理的系统结构图4是本发明中一种客户端设备结构图5是本发明中一种基于实时会话状态管理的方法流程图6是本发明中客户端会话控制器将会话状态由在线转为离线流程图7是本发明中隐藏客户端页面内容流程图8是本发明中客户端会话控制器通过初始化定时器维持会话在线状态流程图。具体实施例方式本发明的核心思路是在原有的由服务器单独实现的会话控制方案的基础上进行改进,由服务器和客户端共同实现会话信息的控制和管理。本发明中,由于通过客户端会话控制器检测影响会话状态的操作事件,并根据预先配置的操作事件与会话状态的对应关系,更新会话状态;4吏得客户端不需要访问服务器就可以判断会话状态是否有效,并对会话状态进行维护管理。本发明提供了一种基于实时会话状态管理的系统,包括客户端和服务器,所述客户端和服务器分别包括会话控制器;如图3所示所述客户端会话控制器,用于设置操作事件与会话状态更新的对应关系,并检测操作事件;根据所述操作事件及所述对应关系更新会话状态,所述更新会话状态包括将会话状态由在线转换为离线,或维持会话在线;所述服务器会话控制器,用于与所述客户端会话控制器同步所述会话状态。其中,上述系统中的客户端会话控制器具体结构如图4所示,包括设置模块410,用于设置操作事件与会话状态更新的对应关系。检测模块420,用于检测操作事件,具体用于检测到会话状态变化的触发信息;或接收到服务器发送的同步信息,所述同步信息中携带会话状态更新指示。会话状态维护模块430,分别与设置模块410和检测模块420连接,用于根据所述操作事件及所述对应关系更新会话状态,所述更新会话状态包括将会话状态由在线转换为离线,或维持在线状态。会话状态维护模块430,具体用于如果会话状态为维持在线状态,在客户端本地设置定时器,当获知会话需要维持在线状态时,重新启动该定时器,并通过会话状态同步;f莫块450与所述服务器会话控制器同步会话状态,使所述服务器会话控制器初始化该会话对应的定时器;当该定时器超时时,将该会话转为离线。安全模块440,与会话状态维护模块430连接,用于会活状态由在线转换为离线时,屏蔽显示的页面、内容,并提示用户进行重新登录,检测到用户重新登录成功后,恢复所述页面内容。会话状态同步模块450,与会话状态维护模块430连接,用于与所述服务器会话控制器同步所述会话状态。本发明提供了一种基于实时会话状态管理的方法,应用于包括客户端和服务器的系统中,所述客户端和服务器分别包括会话控制器,该方法如图5所示,包括以下步骤步骤501,所ii^户端会话控制器设置操作事件与会话状态更新的对应关系;步骤502,所述客户端会话控制器检测操作事件;具体包括所述客户端会话控制器检测到会话状态变化的触发信息;或所述客户端会话控制器接收到服务器发送的同步信息,所述同步信息中携带会话状态更新指示。步骤503,所ii^户端会话控制器根据所述操作事件及所述对应关系更新9会话状态,所述更新会话状态包括将会话状态由在线转换为离线,或维持在线状态。如果会话状态由在线转换为离线,所述客户端会话控制器屏蔽显示的页面内容,并提示用户进行重新登录;所述客户端会话控制器检测到用户重新登录成功后,恢复所述页面内容。根据上述原理,结合具体应用场景对本发明进行详细说明。当客户端访问服务器时,由服务器自动生成会话并进行维护管理,服务器与客户端之间的会话关系是通过建立一个会话ID并对其进行维护而实现的。客户端在第一次访问服务器时,服务器会生成一个全局唯一的ID(字符串形式),在服务器对其进行状态维护的同时,将此ID以隐含参数的方式返回给客户端;客户端在发送下一个请求时,自动将此ID通过Cookie(小型文字档案)或URL(UniformResourceLocator,统一资源定位符)参数的方式传给服务器,于是服务器能够将两次请求关联到一个会话中,实现对该会话状态的维护。服务器对所有会话信息,维护有一个超时闲置时长的属性。当某会话在此时长范围内,没有收到任何客户端发来的请求,则服务器认为此会话已经中断,将此会话信息删除(不再维护此M信息)。此后如果使用该会话的客户端再次发起请求,则服务器会建立一个新的会话,并将新会话ID重新下发给客户端。本发明中,在会话生成后由客户端和服务器共同进行维护管理,即当会话建立后,客户端会话控制器中维护此会话状态为在线,当客户端会话控制器检测到使会话状态更新的事件后,更新会话状态,并将更新后的会话状态同步给服务器会话控制器。其中,会话状态更新包括两种情况,一种是会话由在线变为离线,一种是通过初始化定时器维持会话在线状态。本发明中,客户端会话控制器将会话状态由在线转为离线,具体过程如图6所示,包括以下步骤步骤601,在客户端会话控制器中预先配置了操作事件(例如键盘事件、鼠标事件等)与会话状态更变的对应关系,如表1所示。需要说明的是,表l中只列出了一些简单示例,实际应用中会存在多种其他情况,在此不再赘述。表l:<table>tableseeoriginaldocumentpage11</column></row><table>步骤602,客户端会话控制器检测到发生操作事件,根据操作事件与表l中的对应关系确定会话状态。例如,检测到用户通过键盘输入的字符串quit,通过查找表1中的对应关系,获知需要将该会话由在线转为离线;检测到用户通过鼠标在页面中某个区域连续点击两下以上,通过查找表1中的对应关系,获知需要将该会话由在线转为离线;某页面超过预设时间没有接收用户的操作命令,对应为会话状态由在线转为离线;通过设置页面操作超时定时器,当用户对某个页面进行一次操作后,该定时器都会启动,如果下一次操作在该定时器到时前到达,则该定时器重新定时,如果该定时器到时后仍然没有接收用户的操作命令(客户端浏览器一直停留在特定页面,而不执行访问服务器的操作),则该定时器超时,根据表l的对应关系,获知会话状态由在线转为离线。步骤603,客户端会话控制器向到服务器会话控制器发送同步信息,将该会话的最新状态通知服务器会话控制器,使服务器会话控制器删除该会话信台客户端会话控制器保持与服务器会话控制器的定时心跳,即定期(如每隔一分钟)与服务器通信一次,对客户端和服务器双方保存的会话状态信息进行定时同步。客户端与服务器的定时心跳消息,可以通过客户端启动一个定时器(Timer),并4吏用AJAX(AsynchronousJavaScriptandXML,异步JavaScript及XML)才支术实现。其中,AJAX用于创建Web应用程序,在传统的JavaScript编程中,如果需要从服务器上的文件或数据库中得到任何信息,或者向服务器发送信息,必须利用一个HTML表单向服务器GET或POST数据。而用户则需要单击"提交"按钮来发送/获取信息,等待服务器的响应,然后一张新的页面会加载结果。由于每当用户提交输入后服务器都会返回一张新的页面,传统的Web应用程序变得运行緩慢,且越来越不友好。通过利用AJAX中,JavaScript的XMLHttpRequest对象,直接与服务器来通信,通过使用HTTP请求,Web页可向服务器进行请求,并得到来自服务器的响应,而不加载页面。用户可以停留在同一个页面,不会注意到脚本在后台请求过页面,或向服务器发送过数据。该实施例中,由于通过客户端会话控制器检测影响会话状态的操作事件,并根据预先配置的操作事件与会话状态的对应关系,更新会话状态;使得客户端不需要访问服务器就可以判断会话状态是否有效,并对会话状态进行维护管理,增强了会活状态更新的实时性。本发明中,当客户端会话控制器检测到触发会话状态由在线转为离线的操作事件,将会话状态修改为离线时,为了保证客户端显示的页面内容的安全性,需要对客户端浏览器进行屏蔽,以隐藏客户端页面内容。具体过程如图7所示,包括以下步骤步骤701,客户端会话控制器检测到触发会话状态由在线转为离线的操作事件,对客户端浏览器进行屏蔽。具体地,离线包括暂时离线和永久离线两种,暂时离线是由一些暂时因素造成,例如,由于用户离开,长时间没有对客户端浏览器的页面进行操作,而实际上并不希望退出该会话;用户的永久离线是用户主动要求退出该会话而直接输入离线请求,而短时间内不会在建立该会话。因此,为了减少客户端会话服务器重新建立会话的过程,对于这种暂时离线可以在确定该会话转换为离线后,屏蔽该会话对应的界面内容。当然,对于这种暂时离线也可以直接将会话信息删除。这种屏蔽可以体现为客户端的输入禁止/启用特性,例如,可以通过HTML(HypertextMarkupLanguage,超文件标识语言)/CSS(CascadingStyleSheets,层叠样式表)的层(Layer)技术,在原有Web界面之上,增加一个蒙层,屏蔽界面内容并给用户提示信息。例如,当会话超时后,自动显示一个"模态"对话框,让用户重新输入登录密码;同时以不透明的蒙层将页面内容遮住,确保界面的安全性。步骤702,客户端会话控制器向客户端浏览器发送提示信息,提示用户重新登录,建立该会话连接。步骤703,判断用户是否通过输入用户名和密码等信息重新登录成功,如果是,则转步骤704;如果不成功,包括两种情况一种是用户没有重新登录,另一种是用户重新登录了但用户名或密码输入不正确,说明用户可能不会使用该会话或没有权限继续使用该会话,转步骤705。步骤704,客户端会话控制器将该会话转为在线,通过将蒙层去除来恢复页面内容,保持原来的页面信息,让用户继续完成界面才喿作。步骤705,将该会话信息删除。为了防止用户误操作致使用户名和/或密码不正确的情况,可以再次给出提示信息,让用户重新登录。本实施例中,在会话已经失效时,客户端会话控制器可以对客户端浏览器进行屏蔽操作,将客户端页面显式的内容隐藏,保证了页面内容的安全性。本发明中,客户端会话控制器通过初始化定时器维持会话在线状态的应用场景中,具体过程如图8所示,包括以下步骤步骤801,客户端会话控制器检测到发生操作事件,根据操作事件与表l中的对应关系确定会话状态为维持在线。例如,^r测到用户在页面上输入任意连续两个以上字符串。实际上输入一个字母或数字也可以,但是有可能用户误操作可能输入某个字母或数字或键盘上某个按键,为了减少这种误操作13导致会话在线维持,特定义输入两个或两个以上字符才会引起维持会话的操作。或,检测到用户通过鼠标连续点击页面上某个区域两次以上,通过查找表1的对应关系,获知会话需要维持在线状态。步骤802,在客户端本地设置定时器,当获知会话需要维持在线状态时,重新启动该定时器,只有当该定时器超时时,将该^^舌转为离线。步骤803,当获知会话需要维持在线状态时,向服务器发送同步信息,使服务器初始化该会话对应的定时器,保证在该定时器的时长内该会话在线。本实施例中,客户端的操作时间可以影响会话状态,例如在Web界面上输入数据时,可以影响会话状态。例如,在输入过程中,由于服务器超时导致会话失效,但用户并不知道,仍然继续界面输入,而此时输入信息可以维持会话有效状态,并同步给服务器会话控制器;保证数据输入过程直到输入完成,在客户端会话控制器和服务器会话控制器中该会话都是有效的,避免出现当用户执行数据提交操作时,服务器发现该客户端对应的^i舌已经超时,直接将用户导航到重新登录的页面,用户输入的数据将全部丢失。本发明中,由于服务器会话控制器中会维护多个客户端会话信息,服务器对所有会话信息,维护有一个超时闲置时长的属性。当某会话在此时长范围内,没有收到任何客户端请求,则服务器认为该会话已经中断,会将该会话信息删除,不再维护此会话信息。当服务器会话控制器接收到来自客户端会话控制器的同步信息后,与本地会话状态进行比较,如果客户端会话控制器记录该会话有效,而本地对应的会话信息已经失效,则在同步消息的回应消息中反4贵给客户端,以通知客户端处理会话失效事件,使客户端会话服务器将该会话更新为失效状态。如果客户端会话控制器记录该会话失效,而本地对应的会话信息为有效,则更新服务器会话控制器的会话为失效,并删除对应的会话信息。如果客户端会话控制器和服务器会话控制器对该会话信息都为有效,则有效,都为无效,则无岁丈。当然,如果服务器会话控制器检测到某会话失效,也可以不等客户端会话服务器的同步信息,而直接向该客户端会话控制器发送同步信息,以通知其该会话已失效。其中,客户端与服务器之间的通信可使用AJAX(AsynchronousJavaScriptandXML,异步JavaScript和XML)实现,可避免由于页面刷新,导致界面信息丢失的问题。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明序号仅^l为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。权利要求1、一种基于实时会话状态管理的方法,应用于包括客户端和服务器的系统中,所述客户端和服务器分别包括会话控制器,其特征在于,所述方法包括以下步骤所述客户端会话控制器设置操作事件与会话状态更新的对应关系;所述客户端会话控制器检测操作事件;所述客户端会话控制器根据所述操作事件及所述对应关系更新会话状态,所述更新会话状态包括将会话状态由在线转换为离线,或维持在线状态。2、如权利要求l所述的方法,其特征在于,如果会话状态由在线转换为离线,所述客户端会话控制器屏蔽显示的页面内容,并提示用户进行重新登录,并在所述客户端会话控制器检测到用户重新登录成功后,恢复所述页面内容。3、如权利要求l所述的方法,其特征在于,所述客户端会话控制器检测操作事件,具体包括所述客户端会话控制器检测到会话状态变化的触发信息;或所述客户端会话控制器接收到服务器发送的同步信息,所述同步信息中携带会话状态更新指示。4、如权利要求l所述的方法,其特征在于,所ii^户端会话控制器根据所述操作事件及所述对应关系更新会话状态,之后还包括所述客户端会话控制器与所述服务器会话控制器同步所述会话状态。5、如权利要求l所述的方法,其特征在于,如果会话状态为维持在线状态,在客户端本地设置定时器,当获知会话需要维持在线状态时,重新启动该定时器,并与所述服务器会话控制器同步会话状态,使所述服务器会话控制器初始化该会话对应的定时器;当该定时器超时时,将该会话转为离线。6、一种基于实时会话状态管理的系统,包括客户端和服务器,其特征在于,所a户端和服务器分别包括会话控制器;所it^户端会话控制器,用于设置操作事件与会话状态更新的对应关系,并检测操作事件;根据所述操作事件及所述对应关系更新会话状态,所述更新会话状态包括将会话状态由在线转换为离线,或维持会话在线;所述服务器会话控制器,用于与所述客户端会话控制器同步所述会话状态。7、一种客户端设备,应用于包括客户端和服务器的系统中,所述客户端包括会话控制器,其特征在于,所M户端会话控制器包括设置模块,用于设置操作事件与会话状态更新的对应关系;检测模块,用于检测操作事件;会话状态维护模块,分别与所述设置模块和检测模块连接,用于根据所述操作事件及所述对应关系更新会话状态,所述更新会话状态包括将会话状态由在线转换为离线,或维持在线状态。8、如权利要求7所述的客户端设备,其特征在于,还包括安全模块,与所述会话状态维护模块连接,用于会话状态由在线转换为离线时,屏蔽显示的页面内容,并提示用户进4亍重新登录,检测到用户重新登录成功后,恢复所述页面内容。9、如权利要求7所述的客户端设备,其特征在于,所述检测模块,具体用于检测到会话状态变化的触发信息;或接收到服务器发送的同步信息,所述同步信息中携带会话状态更新指示。10、如权利要求7所述的客户端设备,其特征在于,还包括会话状态同步模块,与所述会话状态维护模块连接,用于与所述服务器会话控制器同步所述会话状态。11、如权利要求7所述的客户端设备,其特征在于,所述会话状态维护模块,具体用于如果会话状态为维持在线状态,在客户端本地设置定时器,当获知会话需要维持在线状态时,重新启动该定时器,并通过所述会话状态同步模块与所述服务器会话控制器同步会话状态,使所述服务器会话控制器初始化该会话对应的定时器;当该定时器超时时,将该会话转为离线。全文摘要本发明公开了一种基于实时会话状态管理的方法,应用于包括客户端和服务器的系统中,所述客户端和服务器分别包括会话控制器,所述方法包括以下步骤所述客户端会话控制器设置操作事件与会话状态更新的对应关系;所述客户端会话控制器检测操作事件;所述客户端会话控制器根据所述操作事件及所述对应关系更新会话状态,所述更新会话状态包括将会话状态由在线转换为离线,或维持在线状态。本发明为用户提供一种客户端控制会话状态的机制,以提升Web应用程序的可用性。文档编号H04L29/08GK101588393SQ200910157219公开日2009年11月25日申请日期2009年7月2日优先权日2009年7月2日发明者李方宁申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1