一种会话的管理方法及系统的制作方法

文档序号:7986843阅读:216来源:国知局
一种会话的管理方法及系统的制作方法
【专利摘要】本发明公开了一种会话的管理方法及系统,该方法包括:预先分别使用红黑树和哈希表组织多个会话,其中,红黑树的每个节点包括关键字及节点值,关键字为超时时间,节点值为该超时时间所对应的所有会话名称的集合;哈希表的每一项包括键对象和值对象,且键对象为会话名称,值对象包括超时时间和会话信息;在红黑树中以超时时间为关键字查找相应的会话名称,且在哈希表中以会话名称为键对象查找相应的超时时间和会话信息。实施本发明的技术方案可通过会话名称或超时时间中的任一者查找相应的会话,从而提高了会话检测的效率。
【专利说明】一种会话的管理方法及系统
【技术领域】
[0001]本发明涉及网络【技术领域】,尤其涉及一种会话的管理方法及系统。
【背景技术】
[0002]在通信网络中,会话指网络服务器与客户端之间的连接及相关状态,网络服务器与客户端的会话如果在一定的时间间隔内没有请求则认为会话超时,而后服务器会回收相关资源,以提高利用率。一个会话通常包括会话名称、超时时间和会话信息,其中,会话名称用来唯一标识一次会话,一般以用户ID或者用户名作为会话名称;超时时间一般使用unix时间戳,unix时间戳是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒起至现在的总秒数;会话信息是保存与会话、与用户相关的信息的数据结构,可以是用户登录时间,最后活动时间,业务数据等。
[0003]目前,通常通过遍历链表中的所有会话来进行检测会话,但是,这种遍历的检测方式存在弊端,如果会话数量庞大,检测效率会比较低下,随着管理的会话的数量增大,这种检测方式的效率会越来越差;而且,这种检测方法无法根据会话名称来检测所对应的超时时间。

【发明内容】

[0004]本发明要解决的技术问题在于,针对现有技术的上述效率低且无法根据会话名称来检测所对应的超时时间的缺陷,提供一种会话的管理方法及系统,效率高且可根据会话名称来检测所对应的超时时间。
[0005]本发明解决其技术问题所采用的技术方案是:构造一种会话的管理方法,包括:
[0006]预先分别使用红黑树和哈希表组织多个会话,其中,红黑树的每个节点包括关键字及节点值,所述关键字为超时时间,所述节点值为该超时时间所对应的所有会话名称的集合;哈希表的每一项包括键对象和值对象,且所述键对象为会话名称,所述值对象包括超时时间和会话信息;
[0007]在所述红黑树中以超时时间为关键字查找相应的会话名称,且在所述哈希表中以会话名称为键对象查找相应的超时时间和会话信息。
[0008]在本发明所述的会话的管理方法中,在插入会话时,进行以下步骤:
[0009]在所述哈希表中:
[0010]根据待插入的会话名称计算相应的哈希值,并根据所计算的哈希值计算在所述哈希表中的相应位置;
[0011]在所述相应位置插入会话名称与超时时间、会话信息的映射;
[0012]在所述红黑树中:
[0013]根据待插入的超时时间查找所述超时时间相应的节点;
[0014]若查找到相应的节点,则将所述哈希表中与所述超时时间对应的会话名称添加到所述相应节点的节点值中;[0015]若查找不到相应的节点,则以所述超时时间为关键字创建节点,并将所述哈希表中与所述超时时间对应的会话名称添加到所创建节点的节点值中。
[0016]在本发明所述的会话的管理方法中,在修改特定会话名称的超时时间时,进行以下步骤:
[0017]根据所述特定会话名称,在所述哈希表中查找相应的超时时间和会话信息,并修改哈希表中所述特定会话名称所对应的超时时间;
[0018]在所述红黑树中以所查找到的超时时间为关键字查找相应的节点,并在所查找到的节点的节点值中删除所述特定会话名称;
[0019]在所述红黑树中以新的超时时间为关键字查找相应的节点,且在查找到相应的节点时,将所述特定会话名称添加到该节点的节点值中;在查找不到相应的节点时,以所述新的超时时间为关键字创建节点,并将所述特定会话名称添加到所创建节点的节点值中。
[0020]在本发明所述的会话的管理方法中,在超时检测时,进行以下步骤:
[0021]在所述红黑树中依次从各个节点中找到超时时间小于当前时间的节点,并返回所查找到的相应节点所对应的会话名称。
[0022]本发明还构造一种会话的管理系统,包括:
[0023]存储模块,用于预先分别使用红黑树和哈希表组织多个会话,其中,红黑树的每个节点包括关键字及节点值,所述关键字为超时时间,所述节点值为该超时时间所对应的所有会话名称的集合;哈希表的每一项包括键对象和值对象,且所述键对象为会话名称,所述值对象包括超时时间和会话信息;
[0024]查找模块,用于在所述红黑树中以超时时间为关键字查找相应的会话名称,且在所述哈希表中以会话名称为键对象查找相应的超时时间和会话信息。
[0025]在本发明所述的会话的管理系统中,还包括:用于插入会话的插入模块,且所述插入模块包括:
[0026]第一插入单元,用于在所述哈希表中,根据待插入的会话名称计算相应的哈希值,并根据所计算的哈希值计算在所述哈希表中的相应位置;而且,在所述相应位置插入会话名称与超时时间、会话信息的映射;
[0027]第二插入单元,用于在所述红黑树中,根据待插入的超时时间查找相应的节点;若查找到相应的节点,则将所述哈希表中与所述超时时间对应的会话名称添加到所述相应节点的节点值中;若查找不到相应的节点,则以所述超时时间为关键字创建节点,并将所述哈希表中与所述超时时间对应的会话名称添加到所创建节点的节点值中。
[0028]在本发明所述的会话的管理系统中,还包括用于修改特定会话名称的超时时间的修改模块,且所述修改模块包括:
[0029]第一修改单元,用于根据所述特定会话名称,在所述哈希表中查找相应的超时时间和会话信息,并将所述哈希表中所述特定会话名称所对应的超时时间修改为新的超时时间;
[0030]第二修改单元,用于在所述红黑树中以所查找到的超时时间为关键字查找相应的节点,并在所查找到的节点的节点值中删除所述特定会话名称;然后,在所述红黑树中以新的超时时间为关键字查找相应的节点,若查找到相应的节点,则将所述特定会话名称添加到该节点的节点值中;若查找不到相应的节点,则以所述新的超时时间为关键字创建节点,并将所述特定会话名称添加到所创建节点的节点值中。
[0031]在本发明所述的会话的管理系统中,还包括:
[0032]超时检测模块,用于在所述红黑树中依次从各个节点中找到超时时间小于当前时间的节点,并返回所查找到的相应节点所对应的会话名称。
[0033]实施本发明的技术方案,在进行会话检测时,可在红黑树中以超时时间为关键字查找相应的会话名称,而且,还可在哈希表中以会话名称为键对象查找相应的超时时间和会话信息,亦即可通过会话名称或超时时间中的任一者查找相应的会话,从而提高了会话检测的效率。
【专利附图】

【附图说明】
[0034]下面将结合附图及实施例对本发明作进一步说明,附图中:
[0035]图1是本发明使用红黑树组织多个会话实施例一的示意图;
[0036]图2是本发明使用哈希表组织多个会话实施例一的示意图;
[0037]图3是本发明会话的管理方法实施例一的流程图;
[0038]图4是本发明会话的管理系统实施例一的逻辑图;
[0039]图5是本发明会话的管理系统实施例二的逻辑图。
【具体实施方式】
[0040]图1是本发明使用红黑树组织多个会话实施例一的示意图,红黑树上包括多个节点,每个节点包括关键字和节点值,其中,关键字是超时时间,节点值为该超时时间所对应的所有会话名称的集合,例如,超时时间为I的节点的节点值(会话名称)为selO,超时时间为2的节点的节点值为se20、se21,超时时间为3的节点的节点值为se30、se31,超时时间为4的节点的节点值为se40、se41,超时时间为5的节点的节点值为se50、se51,超时时间为6的节点的节点值为se60、se61、se62,超时时间为7的节点的节点值为se70、se71,依此类推。
[0041]图2是本发明使用哈希(hash)表组织多个会话实施例一的示意图,哈希表包括多个项,每一项包括键对象和值对象,且所述键对象为会话名称,所述值对象包括超时时间和会话信息。例如,会话名称为selO的值对象为I (超时时间)和datalO (会话信息),会话名称为se20的值对象为2和data20,会话名称为se21的值对象为2和data21,会话名称为se40的值对象为4和data40,会话名称为se41的值对象为4和data41,会话名称为se60的值对象为6和data60,依此类推。
[0042]图3是本发明会话的管理方法实施例一的流程图,该会话的管理方法包括:
[0043]S10.预先分别使用红黑树和哈希表组织多个会话,具体参照图1和图2,其中,红黑树的每个节点包括关键字及节点值,关键字为超时时间,节点值为该超时时间所对应的所有会话名称的集合;哈希表的每一项包括键对象和值对象,且键对象为会话名称,值对象包括超时时间和会话信息;
[0044]S20.在红黑树中以超时时间为关键字查找相应的会话名称,且在哈希表中以会话名称为键对象查找相应的超时时间和会话信息。
[0045]实施该实施例的技术方案,在进行会话检测时,可在红黑树中以超时时间为关键字查找相应的会话名称,而且,还可在哈希表中以会话名称为键对象查找相应的超时时间和会话信息,亦即可通过会话名称或超时时间中的任一者查找相应的会话,从而提高了会话检测的效率。
[0046]在本发明会话的管理方法的另一个实施例中,在步骤SlO之后,若要插入会话,包括会话名称、超时时间及会话信息,则进行以下步骤:
[0047]在哈希表中:根据待插入的会话名称计算相应的哈希值,并根据所计算的哈希值计算在哈希表中的相应位置;然后,在相应位置插入会话名称与超时时间、会话信息的映射;
[0048]其次,在红黑树中:根据待插入的超时时间查找超时时间相应的节点;若查找到相应的节点,则将哈希表中与超时时间对应的会话名称添加到相应节点的节点值中;若查找不到相应的节点,则以超时时间为关键字创建节点,并将哈希表中与超时时间对应的会话名称添加到所创建节点的节点值中。
[0049]在本发明会话的管理方法的再一个实施例中,在步骤SlO之后,若要修改特定会话名称的超时时间,则进行以下步骤:
[0050]根据特定会话名称,在哈希表中查找相应的超时时间和会话信息,并修改哈希表中特定会话名称所对应的超时时间;
[0051]在红黑树中以所查找到的超时时间为关键字查找相应的节点,并在所查找到的节点的节点值(会话名称集合)中删除特定会话名称;
[0052]在红黑树中以新的超时时间为关键字查找相应的节点,且在查找到相应的节点时,将特定会话名称添加到该节点的节点值中;在查找不到相应的节点时,以新的超时时间为关键字创建节点,并将特定会话名称添加到所创建节点的节点值中。
[0053]在本发明会话的管理方法的又一个实施例中,进行超时检测时,在红黑树中依次从各个节点中找到超时时间小于当前时间的节点,并返回所查找到的相应节点所对应的会话名称。
[0054]图4是本发明会话的管理系统实施例一的逻辑图,包括存储模块10和查找模块20,其中,存储模块10用于预先分别使用红黑树和哈希表组织多个会话,其中,红黑树的每个节点包括关键字及节点值,关键字为超时时间,节点值为该超时时间所对应的所有会话名称的集合;哈希表的每一项包括键对象和值对象,且键对象为会话名称,值对象包括超时时间和会话信息。查找模块20用于在红黑树中以超时时间为关键字查找相应的会话名称,且在哈希表中以会话名称为键对象查找相应的超时时间和会话信息。
[0055]图5是本发明会话的管理系统实施例二的逻辑图,包括存储模块10、查找模块20、插入模块30、修改模块40和超时检测模块50,其中,该实施例的存储模块10、查找模块20与图4所示的实施例中的存储模块10、查找模块20的逻辑结构相同,在此不做赘述,以下仅说明插入模块30、修改模块40和超时检测模块50。
[0056]插入模块30用于插入会话,包括会话名称、超时时间和会话信息,而且,插入模块30包括第一插入单元和第二插入单元,其中,第一插入单元用于在哈希表中,根据待插入的会话名称计算相应的哈希值,并根据所计算的哈希值计算在哈希表中的相应位置;而且,在相应位置插入会话名称与超时时间、会话信息的映射;第二插入单元用于在红黑树中,根据待插入的超时时间查找相应的节点;若查找到相应的节点,则将哈希表中与超时时间对应的会话名称添加到相应节点的节点值中;若查找不到相应的节点,则以超时时间为关键字创建节点,并将哈希表中与超时时间对应的会话名称添加到所创建节点的节点值中。
[0057]修改模块40用于修改特定会话名称的超时时间,而且修改模块包括第一修改单元和第二修改单元,其中,第一修改单元用于根据特定会话名称,在哈希表中查找相应的超时时间和会话信息,并将哈希表中特定会话名称所对应的超时时间修改为新的超时时间;第二修改单元用于在红黑树中以所查找到的超时时间为关键字查找相应的节点,并在所查找到的节点的节点值中删除特定会话名称;然后,在红黑树中以新的超时时间为关键字查找相应的节点,若查找到相应的节点,则将特定会话名称添加到该节点的节点值中;若查找不到相应的节点,则以新的超时时间为关键字创建节点,并将特定会话名称添加到所创建节点的节点值中。
[0058]超时检测模块50用于在红黑树中依次从各个节点中找到超时时间小于当前时间的节点,并返回所查找到的相应节点所对应的会话名称。
[0059]本发明的会话管理方法及其系统,通过采用红黑树与哈希表结合的方式,提高了会话检测的效率,使得检测时间不受会话数量增加的影响。举例来说,假设超时时间为一小时,且每一分钟检测一次超时,则本发明检测超时使用的时间为遍历方法检测时间的1/60(即超时检测周期/超时时间,时间节省的程度与检测周期相关),大大提高了超时检测的速度和效率。本发明的会话管理方法和系统同时实现了对超时时间的修改,满足了应用层的具体需求。
[0060]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
【权利要求】
1.一种会话的管理方法,其特征在于,包括: 预先分别使用红黑树和哈希表组织多个会话,其中,红黑树的每个节点包括关键字及节点值,所述关键字为超时时间,所述节点值为该超时时间所对应的所有会话名称的集合;哈希表的每一项包括键对象和值对象,且所述键对象为会话名称,所述值对象包括超时时间和会话信息; 在所述红黑树中以超时时间为关键字查找相应的会话名称,且在所述哈希表中以会话名称为键对象查找相应的超时时间和会话信息。
2.根据权利要求1所述的会话的管理方法,其特征在于,在插入会话时,进行以下步骤: 在所述哈希表中: 根据待插入的会话名称计算相应的哈希值,并根据所计算的哈希值计算在所述哈希表中的相应位置; 在所述相应位置插入会话名称与超时时间、会话信息的映射; 在所述红黑树中: 根据待插入的超时时间查找所述超时时间相应的节点; 若查找到相应的节点,则将所述哈希表中与所述超时时间对应的会话名称添加到所述相应节点的节点值中; 若查找不到相应的节点,则以所述超时时间为关键字创建节点,并将所述哈希表中与所述超时时间对应的会话名称添加到所创建节点的节点值中。
3.根据权利要求1所述的会话的管理方法,其特征在于,在修改特定会话名称的超时时间时,进行以下步骤: 根据所述特定会话名称,在所述哈希表中查找相应的超时时间和会话信息,并修改哈希表中所述特定会话名称所对应的超时时间; 在所述红黑树中以所查找到的超时时间为关键字查找相应的节点,并在所查找到的节点的节点值中删除所述特定会话名称; 在所述红黑树中以新的超时时间为关键字查找相应的节点,且在查找到相应的节点时,将所述特定会话名称添加到该节点的节点值中;在查找不到相应的节点时,以所述新的超时时间为关键字创建节点,并将所述特定会话名称添加到所创建节点的节点值中。
4.根据权利要求1所述的会话的管理方法,其特征在于,在超时检测时,进行以下步骤: 在所述红黑树中依次从各个节点中找到超时时间小于当前时间的节点,并返回所查找到的相应节点所对应的会话名称。
5.一种会话的管理系统,其特征在于,包括: 存储模块,用于预先分别使用红黑树和哈希表组织多个会话,其中,红黑树的每个节点包括关键字及节点值,所述关键字为超时时间,所述节点值为该超时时间所对应的所有会话名称的集合;哈希表的每一项包括键对象和值对象,且所述键对象为会话名称,所述值对象包括超时时间和会话信息; 查找模块,用于在所述 红黑树中以超时时间为关键字查找相应的会话名称,且在所述哈希表中以会话名称为键对象查找相应的超时时间和会话信息。
6.根据权利要求5所述的会话的管理系统,其特征在于,还包括:用于插入会话的插入模块,且所述插入模块包括: 第一插入单元,用于在所述哈希表中,根据待插入的会话名称计算相应的哈希值,并根据所计算的哈希值计算在所述哈希表中的相应位置;而且,在所述相应位置插入会话名称与超时时间、会话信息的映射; 第二插入单元,用于在所述红黑树中,根据待插入的超时时间查找相应的节点;若查找到相应的节点,则将所述哈希表中与所述超时时间对应的会话名称添加到所述相应节点的节点值中;若查找不到相应的节点,则以所述超时时间为关键字创建节点,并将所述哈希表中与所述超时时间对应的会话名称添加到所创建节点的节点值中。
7.根据权利要求5所述的会话的管理系统,其特征在于,还包括用于修改特定会话名称的超时时间的修改模块,且所述修改模块包括: 第一修改单元,用于根据所述特定会话名称,在所述哈希表中查找相应的超时时间和会话信息,并将所述哈希表中所述特定会话名称所对应的超时时间修改为新的超时时间; 第二修改单元,用于在所述红黑树中以所查找到的超时时间为关键字查找相应的节点,并在所查找到的节点的节点值中删除所述特定会话名称;然后,在所述红黑树中以新的超时时间为关键字查找相应的节点,若查找到相应的节点,则将所述特定会话名称添加到该节点的节点值中;若查找不到相应的节点,则以所述新的超时时间为关键字创建节点,并将所述特定会话名称添加到所创建节点的节点值中。
8.根据权利要求5所述的会话的管理系统,其特征在于,还包括: 超时检测模块,用于在所述红黑树中依次从各个节点中找到超时时间小于当前时间的节点,并返回所查找到的相应节点所对应 的会话名称。
【文档编号】H04L29/06GK103856462SQ201210514591
【公开日】2014年6月11日 申请日期:2012年12月5日 优先权日:2012年12月5日
【发明者】刘小杰 申请人:深圳市快播科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1