一種會話的管理方法及系統的制作方法
【專利摘要】本發明公開了一種會話的管理方法及系統,該方法包括:預先分別使用紅黑樹和哈希表組織多個會話,其中,紅黑樹的每個節點包括關鍵字及節點值,關鍵字為超時時間,節點值為該超時時間所對應的所有會話名稱的集合;哈希表的每一項包括鍵對象和值對象,且鍵對象為會話名稱,值對象包括超時時間和會話信息;在紅黑樹中以超時時間為關鍵字查找相應的會話名稱,且在哈希表中以會話名稱為鍵對象查找相應的超時時間和會話信息。實施本發明的技術方案可通過會話名稱或超時時間中的任一者查找相應的會話,從而提高了會話檢測的效率。
【專利說明】一種會話的管理方法及系統
【技術領域】
[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日
【發明者】劉小杰 申請人:深圳市快播科技有限公司