CN105208058B - 基于web会话共享的信息交互系统 - Google Patents
基于web会话共享的信息交互系统 Download PDFInfo
- Publication number
- CN105208058B CN105208058B CN201410274850.0A CN201410274850A CN105208058B CN 105208058 B CN105208058 B CN 105208058B CN 201410274850 A CN201410274850 A CN 201410274850A CN 105208058 B CN105208058 B CN 105208058B
- Authority
- CN
- China
- Prior art keywords
- session
- value
- information
- shared
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明提出了基于web会话共享的信息交互系统,所述系统包括至少一个客户端、负载均衡装置、至少两个web服务器和分布式缓存子系统,其中,所述至少两个web服务器中的每个处理接收到的服务请求并创建和维护与所接收到的服务请求相关联的会话,以及将服务响应传送回相应的客户端,其中,所述至少两个web服务器借助于分布式缓存子系统实现所述至少两个web服务器之间的会话信息共享。本发明所公开的基于web会话共享的信息交互系统能够在不影响服务器的性能的情况下实现会话信息共享。
Description
技术领域
本发明涉及信息交互系统,更具体地,涉及基于web会话共享的信息交互系统。
背景技术
目前,随着计算机和网络应用的日益广泛以及不同领域的业务种类的日益丰富,基于web的信息交互过程变得越来越重要。
基于web的信息交互过程通常是建立在HTTP协议之上的Web应用,而HTTP协议属于无状态协议,即每一个HTTP请求都是独立的个体,其无法记忆前面的HTTP请求的相关信息。然而,随着业务需求的日益丰富,常常要求将许多独立的HTTP请求作为一个独立的事务来完成,这要求在一个事务下的一系列HTTP请求相互之间具有记忆功能,由此产生了基于会话(其指用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间中的信息交互过程)技术的网络信息交互过程。然而,在Web服务器采取集群的部署方式时,Web应用会部署到两台或两台以上的服务器上,由此,在用户通过客户端发起服务请求时,该服务请求会首先传送到负载均衡装置中,该负载均衡装置按照预定的规则将服务请求分发到负载较低的服务器上,但是,该方法会产生如下问题:在一个会话期间,用户顺序发送的多个服务请求中的一些可能会被A服务器接收,另一些可能会被B服务器所接收,即A服务器记录的状态B服务器可能并不知道,并由此导致相关的服务不可用。
现有的解决上述问题的方案的基本工作原理如下:在一个服务器中的Web容器里的会话信息发生变化时,通过信息广播的方式向集群中的其他服务器中的web容器进行通知和同步,以便实现会话信息的共享。
然而,上述现有的技术方案存在如下问题:频繁地进行会话信息广播会占用大量服务器的内存和CPU的计算资源,换句话说,进行会话信息同步的服务器越多,则服务器性能损失会越严重,即服务器的性能会受到显著的影响。
因此,存在如下需求:提供能够在不影响服务器的性能的情况下实现会话信息共享的基于web的信息交互系统。
发明内容
为了解决上述现有技术方案所存在的问题,本发明提出了能够在不影响服务器的性能的情况下实现会话信息共享的基于web的信息交互系统。
本发明的目的是通过以下技术方案实现的:
一种基于web会话共享的信息交互系统,所述系统包括:
至少一个客户端,所述至少一个客户端中的每个基于用户指令并经由负载均衡装置向所述至少两个web服务器中的一个发送服务请求,并且接收来自相应的web服务器的服务响应以完成特定的信息交互过程;
负载均衡装置,所述负载均衡装置基于预定的负载均衡算法从所述至少两个web服务器中选择当前负载较低的web服务器并将所述服务请求传送到所选择的web服务器;
至少两个web服务器,所述至少两个web服务器中的每个处理接收到的服务请求并创建和维护与所接收到的服务请求相关联的会话,以及将服务响应传送回相应的客户端,其中,所述至少两个web服务器借助于分布式缓存子系统实现所述至少两个web服务器之间的会话信息共享;
分布式缓存子系统,所述分布式缓存子系统存储共享会话接口模型,所述共享会话接口模型包含需要在所述至少两个web服务器3之间共享的会话信息。
在上面所公开的方案中,优选地,所述web服务器进一步包括:
服务请求处理单元,所述服务请求处理单元根据配置信息并且借助于所述共享会话接口模型处理接收到的服务请求并随之将服务响应传送回相应的客户端;
缓存-web容器接口单元,所述缓存-web容器接口单元维护所述共享会话接口模型,以便基于所述共享会话接口模型实现会话信息的共享和更新;
配置信息存储单元,所述配置信息存储单元存储所述配置信息。
在上面所公开的方案中,优选地,所述共享会话接口模型是由多个键-值对构成的记录链表,其中,每个键-值对包含键域和值域。
在上面所公开的方案中,优选地,所述共享会话接口模型的记录链表中的每个键-值对的键域的值是同步会话标识符,而每个键-值对的值域的值是由下列键-值对组成的键-值对列表:同步标记键-值对、过期时间键-值对、会话信息键-值对、以及共享会话键-值对,其中,所述会话信息键-值对的值域的值是所述同步会话标识符所指示的会话的信息。
在上面所公开的方案中,优选地,所述服务请求处理单元在接收到来自客户端的初始服务请求后以常规的方式创建与其相关联的会话以及生成与该会话相关联的会话标识符,并且随之按照预定规则生成与该会话相关联的同步会话标识符,所述同步会话标识符在整个系统中是唯一的,以及随后将初始会话信息分别存储到本地会话记录以及所述共享会话接口模型中,其中,所述共享会话接口模型中的对应的记录的键-值对的键域的值是与所创建的会话相关联的所述同步会话标识符。
在上面所公开的方案中,优选地,当web服务器向与已创建的会话相关联的本地会话记录中添加信息时,该web服务器中的缓存-web容器接口单元同时将所述共享会话接口模型中的对应的记录的键-值对的值域中的同步标记键-值对的值域的值清除并且重新设置为该web服务器的标识号,并且将该记录的键-值对的值域中的会话信息键-值对的值域的值更新。
在上面所公开的方案中,优选地,当web服务器要从本地会话记录中获取与已创建的会话相关联的会话信息时,该web服务器中的缓存-web容器接口单元首先根据与已创建的会话相关联的同步会话标识符获取所述共享会话接口模型中的对应记录的键-值对的值域中的同步标记键-值对的值域的值,并且判断该值中是否包含当前web服务器的标识号,如果该值中包含当前web服务器的标识号,则随之直接从本地会话记录中获取所述与已创建的会话相关联的会话信息,如果该值中不包含当前web服务器的标识号,则该web服务器中的缓存-web容器接口单元从所述共享会话接口模型中的对应记录的键-值对的值域中的会话信息键-值对中将最新的会话信息同步到本地会话记录中,并且将当前web服务器的标识号添加到所述共享会话接口模型中的对应记录的键-值对的值域中的同步标记键-值对的值域的值中,随之该web服务器在前述同步过程完成后从本地会话记录中获取与已创建的会话相关联的会话信息。
在上面所公开的方案中,优选地,所述过期时间键-值对的值域的值是会话过期时间,并且在任何web服务器中的缓存-web容器接口单元向所述共享会话接口模型中的记录插入数据或删除数据时、或者在执行会话信息同步操作时,所述过期时间键-值对的值域的值被刷新。
在上面所公开的方案中,优选地,所述共享会话键-值对的值域由键-值对序列组成,所述键-值对序列中的每个键-值对的键域的值是需要进行跨应用会话信息共享的应用的标识符,所述键-值对序列中的每个键-值对的值域的值是需要共享会话信息的会话的同步会话标识符。
在上面所公开的方案中,优选地,所述配置信息至少包括:共享功能开关标志、应用标识号、服务器标识号、跨应用会话信息共享数据、会话信息共享自动降级标志以及会话超时时间。
在上面所公开的方案中,优选地,所述web服务器以如下方式添加会话信息:(1)将待添加的信息存储在本地会话记录中;(2)判断共享功能开关标志的值,如果共享功能开关标志的值指示会话信息共享功能关闭,则添加过程结束,如果共享功能开关标志的值指示会话信息共享功能开启,则进入步骤(3);(3)判断会话信息共享自动降级标志的值,如果会话信息共享自动降级标志的值指示自动降级关闭,则添加过程结束,如果会话信息共享自动降级标志的值指示自动降级开启,则检测分布式缓存子系统是否可用并进入步骤(4);(4)如果分布式缓存子系统不可用,则添加过程结束并且将共享功能开关标志的值设置为指示会话信息共享功能关闭,如果分布式缓存子系统可用,则将所述待添加的信息存储到所述共享会话接口模型中的对应的记录中并且将当前web服务器的标识号添加到所述共享会话接口模型中的对应记录的键-值对的值域中的同步标记键-值对的值域的值中。
在上面所公开的方案中,优选地,所述web服务器以如下方式删除会话信息:(1)判断共享功能开关标志的值,如果共享功能开关标志的值指示会话信息共享功能关闭,则将待删除信息直接从本地会话记录中删除并且删除过程结束,如果共享功能开关标志的值指示会话信息共享功能开启,则进入步骤(2);(2)判断会话信息共享自动降级标志的值,如果会话信息共享自动降级标志的值指示自动降级关闭,则将待删除信息从本地会话记录中删除并且删除过程结束,如果会话信息共享自动降级标志的值指示自动降级开启,则检测分布式缓存子系统是否可用并进入步骤(3);(3)如果分布式缓存子系统不可用,则将待删除信息从本地会话记录中删除并且删除过程结束以及将共享功能开关标志的值设置为指示会话信息共享功能关闭,如果分布式缓存子系统可用,则判断所述共享会话接口模型中的对应的记录是否需要同步,如果所述共享会话接口模型中的对应的记录不需要同步,则将待删除信息从本地会话记录中删除并且删除过程结束,如果所述共享会话接口模型中的对应的记录需要同步,则实施同步操作并且随后将待删除信息从本地会话记录中删除,随之删除过程结束。
在上面所公开的方案中,优选地,所述web服务器以如下方式获取会话信息:(1)判断共享功能开关标志的值,如果共享功能开关标志的值指示会话信息共享功能关闭,则直接从本地会话记录中获取会话信息并且获取过程结束,如果共享功能开关标志的值指示会话信息共享功能开启,则进入步骤(2);(2)判断会话信息共享自动降级标志的值,如果会话信息共享自动降级标志的值指示自动降级关闭,则直接从本地会话记录中获取会话信息并且获取过程结束,如果会话信息共享自动降级标志的值指示自动降级开启,则检测分布式缓存子系统是否可用并进入步骤(3);(3)如果分布式缓存子系统不可用,则直接从本地会话记录中获取会话信息并且获取过程结束以及将共享功能开关标志的值设置为指示会话信息共享功能关闭,如果分布式缓存子系统可用,则根据与该会话相关联的同步会话标识符获取所述共享会话接口模型中的对应记录的键-值对的值域中的同步标记键-值对的值域的值,并且判断该值中是否包含当前web服务器的标识号,如果该值中包含当前web服务器的标识号,则随之直接从本地会话记录中获取会话信息,如果该值中不包含当前web服务器的标识号,则该web服务器中的缓存-web容器接口单元6从所述共享会话接口模型中的对应记录的键-值对的值域中的会话信息键-值对中将最新的会话信息同步到本地会话记录中,并且将当前web服务器的标识号添加到所述共享会话接口模型中的对应记录的键-值对的值域中的同步标记键-值对的值域的值中,随之在前述同步过程完成后从本地会话记录中获取会话信息。
在上面所公开的方案中,优选地,所述系统进一步包括拦截器,所述拦截器能够拦截传送到所述web服务器的每个服务请求,并且在每次拦截到传送到所述web服务器的服务请求后刷新对应的过期时间键-值对的值域的值。
在上面所公开的方案中,优选地,所述拦截器能够拦截所述web服务器发送到所述客户端的每个服务响应,并且将与其相关联的会话标识符和/或同步会话标识符嵌入该服务响应中。
在上面所公开的方案中,优选地,在客户端向web服务器发送服务请求时,如果该服务请求不是初始服务请求,则该客户端构造所述服务请求使得其包含会话标识符和同步会话标识符两者,其中,如果该客户端的cookie未被禁用,则该客户端从cookie中获取所述会话标识符和同步会话标识符,如果该客户端的cookie被禁用,则该客户端依据预定规则将所述会话标识符和同步会话标识符嵌入该服务请求中。
在上面所公开的方案中,优选地,在接收到服务请求后,所述web服务器从该服务请求中提取与其相关联的会话标识符和同步会话标识符,并且如果会话标识符和同步会话标识符两者均不能被获取到,则确定此服务请求是初始服务请求并随之为其生成与其相关联的会话标识符和同步会话标识符,如果会话标识符和同步会话标识符两者均能够被获取到并且本地会话记录中不存在对应的记录,则根据所述同步会话标识符从所述共享会话接口模型中查找对应的记录,并将查找出的记录同步到本地会话记录中。
本发明所公开的基于web会话共享的信息交互系统至少具有下列优点:(1)由于采用了存储于分布式缓存子系统中的共享会话接口模型,故能够实现基于负载均衡或服务器故障导致的web服务器之间的平滑切换,并且同时不会增加归因于同步操作的网络流量负担,从而确保了web服务器的性能;(2)由于采用了共享自动降级功能,故能够确保在分布式缓存子系统故障时整个系统的可用性以及配置灵活性;(3)由于在客户端1的cookie被禁用的情况下能够依据预定的规则将会话标识符和同步会话标识符嵌入到服务请求中,故提高了系统的健壮性和适用性。
附图说明
结合附图,本发明的技术特征以及优点将会被本领域技术人员更好地理解,其中:
图1是根据本发明的实施例的基于web会话共享的信息交互系统的示意性结构图。
具体实施方式
图1是根据本发明的实施例的基于web会话共享的信息交互系统的示意性结构图。如图1所示,本发明所公开的基于web会话共享的信息交互系统包括至少一个客户端1、负载均衡装置8、至少两个web服务器3和分布式缓存子系统4。所述至少一个客户端1中的每个基于用户指令并经由负载均衡装置8向所述至少两个web服务器3中的一个发送服务请求,并且接收来自相应的web服务器3的服务响应以完成特定的信息交互过程。所述负载均衡装置8基于预定的负载均衡算法从所述至少两个web服务器3中选择当前负载较低的web服务器3并将所述服务请求传送到所选择的web服务器3。所述至少两个web服务器3中的每个处理接收到的服务请求并创建和维护与所接收到的服务请求相关联的会话,以及将服务响应传送回相应的客户端1,其中,所述至少两个web服务器3借助于分布式缓存子系统4实现所述至少两个web服务器3之间的会话信息共享。所述分布式缓存子系统4存储共享会话接口模型,所述共享会话接口模型包含需要在所述至少两个web服务器3之间共享的会话信息。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,所述web服务器3进一步包括服务请求处理单元5、缓存-web容器接口单元6和配置信息存储单元7。所述服务请求处理单元5根据配置信息并且借助于所述共享会话接口模型处理接收到的服务请求并随之将服务响应传送回相应的客户端1。所述缓存-web容器接口单元6维护所述共享会话接口模型,以便基于所述共享会话接口模型实现会话信息的共享和更新。所述配置信息存储单元7存储所述配置信息。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,所述共享会话接口模型是由多个键-值对构成的记录链表,其中,每个键-值对包含键域和值域。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,所述共享会话接口模型的记录链表中的每个键-值对的键域的值是同步会话标识符(session ID),而每个键-值对的值域的值是由下列键-值对组成的键-值对列表:同步标记键-值对、过期时间键-值对、会话信息键-值对、以及共享会话键-值对,其中,所述会话信息键-值对的值域的值是所述同步会话标识符所指示的会话的信息(例如会话的属性信息和历史状态信息等等)。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,所述服务请求处理单元5在接收到来自客户端的初始服务请求(即能够发起一个会话过程的最初始的服务请求)后以常规的方式创建与其相关联的会话以及生成与该会话相关联的会话标识符(session ID),并且随之按照预定规则生成与该会话相关联的同步会话标识符,所述同步会话标识符在整个系统中是唯一的(示例性地,所述同步会话标识符根据如下规则生成:应用标识号+服务器标识号+会话标识符+系统纳秒值),以及随后将初始会话信息分别存储到本地会话记录以及所述共享会话接口模型中,其中,所述共享会话接口模型中的对应的记录的键-值对的键域的值是与所创建的会话相关联的所述同步会话标识符。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,当web服务器3向与已创建的会话相关联的本地会话记录中添加信息时,该web服务器3中的缓存-web容器接口单元6同时将所述共享会话接口模型中的对应的记录的键-值对的值域中的同步标记键-值对的值域的值清除并且重新设置为该web服务器3的标识号,并且将该记录的键-值对的值域中的会话信息键-值对的值域的值更新(即使得该值域中的信息与本地会话记录中的信息同步)。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,当web服务器3要从本地会话记录中获取与已创建的会话相关联的会话信息时,该web服务器3中的缓存-web容器接口单元6首先根据与已创建的会话相关联的同步会话标识符获取所述共享会话接口模型中的对应记录的键-值对的值域中的同步标记键-值对的值域的值,并且判断该值中是否包含当前web服务器3的标识号,如果该值中包含当前web服务器3的标识号,则随之直接从本地会话记录中获取所述与已创建的会话相关联的会话信息(即不需要从所述共享会话接口模型同步本地会话记录),如果该值中不包含当前web服务器3的标识号,则该web服务器3中的缓存-web容器接口单元6从所述共享会话接口模型中的对应记录的键-值对的值域中的会话信息键-值对中将最新的会话信息同步到本地会话记录中,并且将当前web服务器3的标识号添加到所述共享会话接口模型中的对应记录的键-值对的值域中的同步标记键-值对的值域的值中(例如,不同的web服务器3的标识号之间用逗号分隔),随之该web服务器3在前述同步过程完成后从本地会话记录中获取与已创建的会话相关联的会话信息。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,所述过期时间键-值对的值域的值是会话过期时间,并且在任何web服务器3中的缓存-web容器接口单元6向所述共享会话接口模型中的记录插入数据或删除数据时、或者在执行会话信息同步操作时,所述过期时间键-值对的值域的值被刷新(即会话过期时间被刷新)。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,所述共享会话键-值对的值域由键-值对序列组成,所述键-值对序列中的每个键-值对的键域的值是需要进行跨应用会话信息共享的应用的标识符(例如用户标识符userID),所述键-值对序列中的每个键-值对的值域的值是需要共享会话信息的会话的同步会话标识符。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,所述配置信息至少包括:共享功能开关标志(其值为0或1,其值为0指示会话信息共享功能关闭,其值为1指示会话信息共享功能开启)、应用标识号、服务器标识号、跨应用会话信息共享数据(例如需要进行跨应用会话信息共享的应用的标识符)、会话信息共享自动降级标志(自动降级的含义是:如果web服务器启动了会话信息共享功能,并且当web服务器检测到分布式缓存子系统无法使用时,会自动关闭会话信息共享功能,其值为0指示关闭自动降级,其值为1指示启动自动降级)以及会话超时时间。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,当所述web服务器3启动时会自动地加载所述配置信息。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,所述web服务器3以如下方式添加会话信息:(1)将待添加的信息存储在本地会话记录中;(2)判断共享功能开关标志的值,如果共享功能开关标志的值指示会话信息共享功能关闭,则添加过程结束,如果共享功能开关标志的值指示会话信息共享功能开启,则进入步骤(3);(3)判断会话信息共享自动降级标志的值,如果会话信息共享自动降级标志的值指示自动降级关闭,则添加过程结束,如果会话信息共享自动降级标志的值指示自动降级开启,则检测分布式缓存子系统是否可用并进入步骤(4);(4)如果分布式缓存子系统不可用,则添加过程结束并且将共享功能开关标志的值设置为指示会话信息共享功能关闭,如果分布式缓存子系统可用,则将所述待添加的信息存储到所述共享会话接口模型中的对应的记录中并且将当前web服务器3的标识号添加到所述共享会话接口模型中的对应记录的键-值对的值域中的同步标记键-值对的值域的值中。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,所述web服务器3以如下方式删除会话信息:(1)判断共享功能开关标志的值,如果共享功能开关标志的值指示会话信息共享功能关闭,则将待删除信息直接从本地会话记录中删除并且删除过程结束,如果共享功能开关标志的值指示会话信息共享功能开启,则进入步骤(2);(2)判断会话信息共享自动降级标志的值,如果会话信息共享自动降级标志的值指示自动降级关闭,则将待删除信息从本地会话记录中删除并且删除过程结束,如果会话信息共享自动降级标志的值指示自动降级开启,则检测分布式缓存子系统是否可用并进入步骤(3);(3)如果分布式缓存子系统不可用,则将待删除信息从本地会话记录中删除并且删除过程结束以及将共享功能开关标志的值设置为指示会话信息共享功能关闭,如果分布式缓存子系统可用,则判断所述共享会话接口模型中的对应的记录是否需要同步,如果所述共享会话接口模型中的对应的记录不需要同步,则将待删除信息从本地会话记录中删除并且删除过程结束,如果所述共享会话接口模型中的对应的记录需要同步,则实施同步操作并且随后将待删除信息从本地会话记录中删除,随之删除过程结束。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,所述web服务器3以如下方式获取会话信息:(1)判断共享功能开关标志的值,如果共享功能开关标志的值指示会话信息共享功能关闭,则直接从本地会话记录中获取会话信息并且获取过程结束,如果共享功能开关标志的值指示会话信息共享功能开启,则进入步骤(2);(2)判断会话信息共享自动降级标志的值,如果会话信息共享自动降级标志的值指示自动降级关闭,则直接从本地会话记录中获取会话信息并且获取过程结束,如果会话信息共享自动降级标志的值指示自动降级开启,则检测分布式缓存子系统是否可用并进入步骤(3);(3)如果分布式缓存子系统不可用,则直接从本地会话记录中获取会话信息并且获取过程结束以及将共享功能开关标志的值设置为指示会话信息共享功能关闭,如果分布式缓存子系统可用,则根据与该会话相关联的同步会话标识符获取所述共享会话接口模型中的对应记录的键-值对的值域中的同步标记键-值对的值域的值,并且判断该值中是否包含当前web服务器3的标识号,如果该值中包含当前web服务器3的标识号,则随之直接从本地会话记录中获取会话信息,如果该值中不包含当前web服务器3的标识号,则该web服务器3中的缓存-web容器接口单元6从所述共享会话接口模型中的对应记录的键-值对的值域中的会话信息键-值对中将最新的会话信息同步到本地会话记录中,并且将当前web服务器3的标识号添加到所述共享会话接口模型中的对应记录的键-值对的值域中的同步标记键-值对的值域的值中,随之在前述同步过程完成后从本地会话记录中获取会话信息。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,所述共享会话接口模型被缓存在所述分布式缓存子系统的内存中。
优选地,本发明所公开的基于web会话共享的信息交互系统进一步包括拦截器2,所述拦截器2能够拦截传送到所述web服务器3的每个服务请求,并且在每次拦截到传送到所述web服务器3的服务请求后刷新对应的过期时间键-值对的值域的值。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,所述拦截器2能够拦截所述web服务器3发送到所述客户端1的每个服务响应,并且将与其相关联的会话标识符和/或同步会话标识符嵌入该服务响应中。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,在客户端1向web服务器3发送服务请求时,如果该服务请求不是初始服务请求,则该客户端1构造所述服务请求使得其包含会话标识符和同步会话标识符两者,其中,如果该客户端1的cookie未被禁用,则该客户端1从cookie中获取所述会话标识符和同步会话标识符,如果该客户端1的cookie被禁用,则该客户端1依据预定规则将所述会话标识符和同步会话标识符嵌入该服务请求中。
优选地,在本发明所公开的基于web会话共享的信息交互系统中,在接收到服务请求后,所述web服务器3从该服务请求中提取与其相关联的会话标识符和同步会话标识符,并且如果会话标识符和同步会话标识符两者均不能被获取到,则确定此服务请求是初始服务请求并随之为其生成与其相关联的会话标识符和同步会话标识符,如果会话标识符和同步会话标识符两者均能够被获取到并且本地会话记录中不存在对应的记录,则根据所述同步会话标识符从所述共享会话接口模型中查找对应的记录,并将查找出的记录同步到本地会话记录中。
示例性地,在本发明所公开的基于web会话共享的信息交互系统中,所述客户端1是基于HTTP协议的web浏览器。
由上可见,本发明所公开的基于web会话共享的信息交互系统至少具有下列优点:(1)由于采用了存储于分布式缓存子系统中的共享会话接口模型,故能够实现基于负载均衡或服务器故障导致的web服务器之间的平滑切换,并且同时不会增加归因于同步操作的网络流量负担,从而确保了web服务器的性能;(2)由于采用了共享自动降级功能,故能够确保在分布式缓存子系统故障时整个系统的可用性以及配置灵活性;(3)由于在客户端1的cookie被禁用的情况下能够依据预定的规则将会话标识符和同步会话标识符嵌入到服务请求中,故提高了系统的健壮性和适用性。
尽管本发明是通过上述的优选实施方式进行描述的,但是其实现形式并不局限于上述的实施方式。应该认识到:在不脱离本发明主旨和范围的情况下,本领域技术人员可以对本发明做出不同的变化和修改。
Claims (17)
1.一种基于web会话共享的信息交互系统,所述系统包括:
至少一个客户端,所述至少一个客户端中的每个基于用户指令并经由负载均衡装置向至少两个web服务器中的一个发送服务请求,并且接收来自相应的web服务器的服务响应以完成特定的信息交互过程;
负载均衡装置,所述负载均衡装置基于预定的负载均衡算法从所述至少两个web服务器中选择当前负载较低的web服务器并将所述服务请求传送到所选择的web服务器;
至少两个web服务器,所述至少两个web服务器中的每个处理接收到的服务请求并创建和维护与所接收到的服务请求相关联的会话,以及将服务响应传送回相应的客户端,其中,所述至少两个web服务器借助于分布式缓存子系统实现所述至少两个web服务器之间的会话信息共享;
分布式缓存子系统,所述分布式缓存子系统存储共享会话接口模型,所述共享会话接口模型包含需要在所述至少两个web服务器之间共享的会话信息。
2.根据权利要求1所述的基于web会话共享的信息交互系统,其特征在于,所述web服务器进一步包括:
服务请求处理单元,所述服务请求处理单元根据配置信息并且借助于所述共享会话接口模型处理接收到的服务请求并随之将服务响应传送回相应的客户端;
缓存-web容器接口单元,所述缓存-web容器接口单元维护所述共享会话接口模型,以便基于所述共享会话接口模型实现会话信息的共享和更新;
配置信息存储单元,所述配置信息存储单元存储所述配置信息。
3.根据权利要求2所述的基于web会话共享的信息交互系统,其特征在于,所述共享会话接口模型是由多个键-值对构成的记录链表,其中,每个键-值对包含键域和值域。
4.根据权利要求3所述的基于web会话共享的信息交互系统,其特征在于,所述共享会话接口模型的记录链表中的每个键-值对的键域的值是同步会话标识符,而每个键-值对的值域的值是由下列键-值对组成的键-值对列表:同步标记键-值对、过期时间键-值对、会话信息键-值对、以及共享会话键-值对,其中,所述会话信息键-值对的值域的值是所述同步会话标识符所指示的会话的信息。
5.根据权利要求4所述的基于web会话共享的信息交互系统,其特征在于,所述服务请求处理单元在接收到来自客户端的初始服务请求后以常规的方式创建与其相关联的会话以及生成与该会话相关联的会话标识符,并且随之按照预定规则生成与该会话相关联的同步会话标识符,所述同步会话标识符在整个系统中是唯一的,以及随后将初始会话信息分别存储到本地会话记录以及所述共享会话接口模型中,其中,所述共享会话接口模型中的对应的记录的键-值对的键域的值是与所创建的会话相关联的所述同步会话标识符。
6.根据权利要求5所述的基于web会话共享的信息交互系统,其特征在于,当web服务器向与已创建的会话相关联的本地会话记录中添加信息时,该web服务器中的缓存-web容器接口单元同时将所述共享会话接口模型中的对应的记录的键-值对的值域中的同步标记键-值对的值域的值清除并且重新设置为该web服务器的标识号,并且将该记录的键-值对的值域中的会话信息键-值对的值域的值更新。
7.根据权利要求6所述的基于web会话共享的信息交互系统,其特征在于,当web服务器要从本地会话记录中获取与已创建的会话相关联的会话信息时,该web服务器中的缓存-web容器接口单元首先根据与已创建的会话相关联的同步会话标识符获取所述共享会话接口模型中的对应记录的键-值对的值域中的同步标记键-值对的值域的值,并且判断该值中是否包含当前web服务器的标识号,如果该值中包含当前web服务器的标识号,则随之直接从本地会话记录中获取所述与已创建的会话相关联的会话信息,如果该值中不包含当前web服务器的标识号,则该web服务器中的缓存-web容器接口单元从所述共享会话接口模型中的对应记录的键-值对的值域中的会话信息键-值对中将最新的会话信息同步到本地会话记录中,并且将当前web服务器的标识号添加到所述共享会话接口模型中的对应记录的键-值对的值域中的同步标记键-值对的值域的值中,随之该web服务器在前述同步过程完成后从本地会话记录中获取与已创建的会话相关联的会话信息。
8.根据权利要求7所述的基于web会话共享的信息交互系统,其特征在于,所述过期时间键-值对的值域的值是会话过期时间,并且在任何web服务器中的缓存-web容器接口单元向所述共享会话接口模型中的记录插入数据或删除数据时、或者在执行会话信息同步操作时,所述过期时间键-值对的值域的值被刷新。
9.根据权利要求8所述的基于web会话共享的信息交互系统,其特征在于,所述共享会话键-值对的值域由键-值对序列组成,所述键-值对序列中的每个键-值对的键域的值是需要进行跨应用会话信息共享的应用的标识符,所述键-值对序列中的每个键-值对的值域的值是需要共享会话信息的会话的同步会话标识符。
10.根据权利要求9所述的基于web会话共享的信息交互系统,其特征在于,所述配置信息至少包括:共享功能开关标志、应用标识号、服务器标识号、跨应用会话信息共享数据、会话信息共享自动降级标志以及会话超时时间。
11.根据权利要求10所述的基于web会话共享的信息交互系统,其特征在于,所述web服务器以如下方式添加会话信息:(1)将待添加的信息存储在本地会话记录中;(2)判断共享功能开关标志的值,如果共享功能开关标志的值指示会话信息共享功能关闭,则添加过程结束,如果共享功能开关标志的值指示会话信息共享功能开启,则进入步骤(3);(3)判断会话信息共享自动降级标志的值,如果会话信息共享自动降级标志的值指示自动降级关闭,则添加过程结束,如果会话信息共享自动降级标志的值指示自动降级开启,则检测分布式缓存子系统是否可用并进入步骤(4);(4)如果分布式缓存子系统不可用,则添加过程结束并且将共享功能开关标志的值设置为指示会话信息共享功能关闭,如果分布式缓存子系统可用,则将所述待添加的信息存储到所述共享会话接口模型中的对应的记录中并且将当前web服务器的标识号添加到所述共享会话接口模型中的对应记录的键-值对的值域中的同步标记键-值对的值域的值中。
12.根据权利要求11所述的基于web会话共享的信息交互系统,其特征在于,所述web服务器以如下方式删除会话信息:(1)判断共享功能开关标志的值,如果共享功能开关标志的值指示会话信息共享功能关闭,则将待删除信息直接从本地会话记录中删除并且删除过程结束,如果共享功能开关标志的值指示会话信息共享功能开启,则进入步骤(2);(2)判断会话信息共享自动降级标志的值,如果会话信息共享自动降级标志的值指示自动降级关闭,则将待删除信息从本地会话记录中删除并且删除过程结束,如果会话信息共享自动降级标志的值指示自动降级开启,则检测分布式缓存子系统是否可用并进入步骤(3);(3)如果分布式缓存子系统不可用,则将待删除信息从本地会话记录中删除并且删除过程结束以及将共享功能开关标志的值设置为指示会话信息共享功能关闭,如果分布式缓存子系统可用,则判断所述共享会话接口模型中的对应的记录是否需要同步,如果所述共享会话接口模型中的对应的记录不需要同步,则将待删除信息从本地会话记录中删除并且删除过程结束,如果所述共享会话接口模型中的对应的记录需要同步,则实施同步操作并且随后将待删除信息从本地会话记录中删除,随之删除过程结束。
13.根据权利要求12所述的基于web会话共享的信息交互系统,其特征在于,所述web服务器以如下方式获取会话信息:(1)判断共享功能开关标志的值,如果共享功能开关标志的值指示会话信息共享功能关闭,则直接从本地会话记录中获取会话信息并且获取过程结束,如果共享功能开关标志的值指示会话信息共享功能开启,则进入步骤(2);(2)判断会话信息共享自动降级标志的值,如果会话信息共享自动降级标志的值指示自动降级关闭,则直接从本地会话记录中获取会话信息并且获取过程结束,如果会话信息共享自动降级标志的值指示自动降级开启,则检测分布式缓存子系统是否可用并进入步骤(3);(3)如果分布式缓存子系统不可用,则直接从本地会话记录中获取会话信息并且获取过程结束以及将共享功能开关标志的值设置为指示会话信息共享功能关闭,如果分布式缓存子系统可用,则根据与该会话相关联的同步会话标识符获取所述共享会话接口模型中的对应记录的键-值对的值域中的同步标记键-值对的值域的值,并且判断该值中是否包含当前web服务器的标识号,如果该值中包含当前web服务器的标识号,则随之直接从本地会话记录中获取会话信息,如果该值中不包含当前web服务器的标识号,则该web服务器中的缓存-web容器接口单元从所述共享会话接口模型中的对应记录的键-值对的值域中的会话信息键-值对中将最新的会话信息同步到本地会话记录中,并且将当前web服务器的标识号添加到所述共享会话接口模型中的对应记录的键-值对的值域中的同步标记键-值对的值域的值中,随之在前述同步过程完成后从本地会话记录中获取会话信息。
14.根据权利要求13所述的基于web会话共享的信息交互系统,其特征在于,所述系统进一步包括拦截器,所述拦截器能够拦截传送到所述web服务器的每个服务请求,并且在每次拦截到传送到所述web服务器的服务请求后刷新对应的过期时间键-值对的值域的值。
15.根据权利要求14所述的基于web会话共享的信息交互系统,其特征在于,所述拦截器能够拦截所述web服务器发送到所述客户端的每个服务响应,并且将与其相关联的会话标识符和/或同步会话标识符嵌入该服务响应中。
16.根据权利要求15所述的基于web会话共享的信息交互系统,其特征在于,在客户端向web服务器发送服务请求时,如果该服务请求不是初始服务请求,则该客户端构造所述服务请求使得其包含会话标识符和同步会话标识符两者,其中,如果该客户端的cookie未被禁用,则该客户端从cookie中获取所述会话标识符和同步会话标识符,如果该客户端的cookie被禁用,则该客户端依据预定规则将所述会话标识符和同步会话标识符嵌入该服务请求中。
17.根据权利要求16所述的基于web会话共享的信息交互系统,其特征在于,在接收到服务请求后,所述web服务器从该服务请求中提取与其相关联的会话标识符和同步会话标识符,并且如果会话标识符和同步会话标识符两者均不能被获取到,则确定此服务请求是初始服务请求并随之为其生成与其相关联的会话标识符和同步会话标识符,如果会话标识符和同步会话标识符两者均能够被获取到并且本地会话记录中不存在对应的记录,则根据所述同步会话标识符从所述共享会话接口模型中查找对应的记录,并将查找出的记录同步到本地会话记录中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410274850.0A CN105208058B (zh) | 2014-06-19 | 2014-06-19 | 基于web会话共享的信息交互系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410274850.0A CN105208058B (zh) | 2014-06-19 | 2014-06-19 | 基于web会话共享的信息交互系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105208058A CN105208058A (zh) | 2015-12-30 |
CN105208058B true CN105208058B (zh) | 2018-10-23 |
Family
ID=54955487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410274850.0A Active CN105208058B (zh) | 2014-06-19 | 2014-06-19 | 基于web会话共享的信息交互系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105208058B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107317831A (zh) * | 2016-04-27 | 2017-11-03 | 上海炬宏信息技术有限公司 | 基于内存数据库的网站访问方法 |
CN108243170A (zh) * | 2016-12-27 | 2018-07-03 | 青岛融贯汇众软件有限公司 | 基于socket框架的数据访问系统及方法 |
CN106657132A (zh) * | 2017-01-09 | 2017-05-10 | 北京小米移动软件有限公司 | 访问网站的方法和装置 |
CN106973106B (zh) * | 2017-03-29 | 2020-06-02 | 中国农业银行股份有限公司 | 一种获取会话信息的方法、装置及系统 |
CN107295075B (zh) * | 2017-06-14 | 2020-08-11 | 天津大学 | 一种基于会话保持的跨终端应用状态迁移方法 |
CN107395711A (zh) * | 2017-07-17 | 2017-11-24 | 中国农业银行股份有限公司 | 异构系统会话存取方法及相关装置 |
CN109617955A (zh) * | 2018-12-04 | 2019-04-12 | 山东浪潮通软信息科技有限公司 | 一种基于分布式缓存的无状态会话分层管理实现方法 |
CN109831536B (zh) * | 2019-03-22 | 2021-05-18 | 成都律图科技有限公司 | 一种前端负载均衡服务降级系统及方法 |
CN110493340B (zh) * | 2019-08-21 | 2023-08-04 | 北京小米移动软件有限公司 | 分布式系统中的会话方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103200212A (zh) * | 2012-01-04 | 2013-07-10 | 中国移动通信集团公司 | 一种在云计算环境下实现分布式会话的方法和系统 |
CN103209223A (zh) * | 2013-04-27 | 2013-07-17 | 中国农业银行股份有限公司 | 分布式应用会话信息共享方法、系统和应用服务器 |
CN103685304A (zh) * | 2013-12-25 | 2014-03-26 | Tcl集团股份有限公司 | 一种共享session信息的方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130290424A1 (en) * | 2012-04-25 | 2013-10-31 | Electronics And Telecommunications Research Institute | Method and system of providing optimal service using personal information of user |
-
2014
- 2014-06-19 CN CN201410274850.0A patent/CN105208058B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103200212A (zh) * | 2012-01-04 | 2013-07-10 | 中国移动通信集团公司 | 一种在云计算环境下实现分布式会话的方法和系统 |
CN103209223A (zh) * | 2013-04-27 | 2013-07-17 | 中国农业银行股份有限公司 | 分布式应用会话信息共享方法、系统和应用服务器 |
CN103685304A (zh) * | 2013-12-25 | 2014-03-26 | Tcl集团股份有限公司 | 一种共享session信息的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN105208058A (zh) | 2015-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105208058B (zh) | 基于web会话共享的信息交互系统 | |
CN106250270B (zh) | 一种云计算平台下的数据备份方法 | |
US20190334881A1 (en) | Advanced security protocol for broadcasting and synchronizing shared folders over local area network | |
CN103812849B (zh) | 一种本地缓存更新方法、系统、客户端及服务器 | |
US20150215400A1 (en) | File Upload Method And System | |
CN103338243B (zh) | Web节点的缓存数据更新方法和系统 | |
CN107197036A (zh) | 一种基于区块链的信息一致处理方法及终端 | |
CN105868231A (zh) | 缓存数据的更新方法及装置 | |
CN101771723A (zh) | 数据同步方法 | |
CN106648903A (zh) | 调用分布式文件系统的方法和装置 | |
CN106357539B (zh) | 一种数据获取方法和设备 | |
CN106331147B (zh) | 一种redis分布式调用方法 | |
CN106713391A (zh) | 一种session信息的共享方法和共享系统 | |
CN103384211B (zh) | 一种具有容错性的数据操作方法及分布式的数据存储系统 | |
CN105009520B (zh) | 用于在通信网络中传送内容的方法及其装置 | |
CN104301990B (zh) | 一种数据同步的方法及装置 | |
CN102404387A (zh) | 一种用于与其他节点进行信息同步的方法、装置和设备 | |
CN107436817B (zh) | 一种以同步方式进行远程过程调用的方法及装置 | |
CN111131843A (zh) | 一种网络直播系统和方法 | |
CN108650168B (zh) | 多人会话的成员数据获取方法和装置、存储介质、处理器 | |
CN109951567A (zh) | 一种双数据中心应用部署方法 | |
CN104778214B (zh) | 基于资源定位器跳转的分布式文件系统及其数据同步方法 | |
CN112543150B (zh) | 基于服务端控制的动态负载均衡方法 | |
Urdaneta et al. | A decentralized wiki engine for collaborative wikipedia hosting | |
CN105681266B (zh) | 一种多媒体电话MMTel的通讯集群方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |