專利名稱:一種數據定位方法及裝置的制作方法
技術領域:
本發明涉及數據處理技術領域,特別是涉及一種數據定位方法及裝置。
背景技術:
在一些數據處理系統中,通常需要由系統保存用戶的數據,用戶在客戶端使用自 己的賬號登錄到系統,對自己的數據進行查看、修改等操作。由于系統中的用戶可能有多 個,為了便于區分不同用戶的數據,通常可以將用戶的用戶標識(如賬號等)與該用戶的數 據建立映射關系,由于用戶的用戶標識在系統中具有唯一性,因此,利用用戶的用戶標識可 以唯一定位到用戶的數據。為了便于根據用戶的用戶標識定位到該用戶的數據,現有技術中通常采用二分法 進行查找并定位。以賬號作為用戶標識為例,首先需要將系統中所有用戶的賬號進行按大 小進行排序,其中,賬號通常為由字母、數字、特殊字符等組成的字符串,并且字符串在系統 中以AscII碼的形式存在,因此,可以通過比較各個字符串對應的AscII碼來比較各個字 符串的大小,也即得到各個賬號的大小并進行排序,例如,可以按照從小到大的順序進行排 序,得到一個賬號序列。當需要定位某賬號對應的用戶數據時,先取出該賬號,然后將該賬 號與賬號序列中處于中間位置的賬號進行比較,如果大于上述處于中間位置的賬號,則將 查找范圍縮小為序列的后半部分,并繼續取后半部分序列中處于中間位置的賬號進行比 較;反之,如果小于上述處于中間位置的賬號,則將查找范圍縮小為序列的前半部分,并繼 續取前半部分序列中處于中間位置的賬號進行比較;以此類推,直到查找到與當前賬號相 等的賬號,則定位完畢,取出該賬號對應的用戶數據即可。利用上述二分法進行數據查找及定位時,效率比較高,其算法的復雜度為log2n, 其中,n為賬號序列中賬號的總數。但是,在實際應用中,在從登錄成功到退出登錄這一過程 中,用戶可能需要發起多次操作請求,在現有技術的方法中,每次發起一個新的操作請求, 都需要攜帶用戶標識,系統都需要重新利用上述二分法查找并定位該用戶的數據,因此系 統的數據處理速度比較低。
發明內容
本發明提供一種數據定位方法及裝置,能夠提高系統的數據處理速度。本發明提供了如下方案—種數據定位方法,包括接收到用戶的登錄請求時,利用所述用戶的用戶標識查找到所述用戶的用戶數 據,并獲取所述用戶數據的位置信息;將所述用戶數據的位置信息返回給客戶端;在退出本次登錄前,每次接收到攜帶有所述用戶數據的位置信息的操作請求消息 時,利用所述用戶數據的位置信息定位到所述用戶數據,以便根據所述操作請求消息對所 述用戶數據進行處理。
優選的,所述將所述用戶數據的位置信息返回給客戶端包括生成包含有所述用戶數據的 位置信息的令牌,將所述令牌返回給客戶端;所述當接收到攜帶有所述用戶數據的位置信息的操作請求消息時,利用所述用戶 數據的位置信息定位到所述用戶數據包括當接收到攜帶有所述令牌的操作請求消息時, 解析所述令牌獲取所述用戶數據的位置信息,利用所述用戶數據的位置信息定位到所述用 戶數據。優選的,每次登錄時生成的令牌具有隨機性;所述方法還包括將所述生成的令牌作為用戶數據的一部分進行保存;定位到所述用戶數據之后,取出所述用戶數據中保存的令牌,判斷所述攜帶的令 牌與所述保存的令牌是否相同,如果相同,執行所述根據所述操作請求消息對所述用戶數 據進行處理的步驟。優選的,還包括當接收到用戶的退出登錄請求時,將所述生成的令牌清除。優選的,所述操作請求消息中還攜帶有用戶的用戶標識,所述方法還包括判斷所述攜帶的用戶標識與所述位置信息對應的用戶標識是否一致,如果一致, 執行所述定位的步驟。一種數據定位裝置,包括位置信息獲取單元,用于接收到用戶的登錄請求時,利用所述用戶的用戶標識查 找到所述用戶的用戶數據,并獲取所述用戶數據的位置信息;位置信息返回單元,用于將所述用戶數據的位置信息返回給客戶端;定位單元,用于在退出本次登錄前,每次接收到攜帶有所述用戶數據的位置信息 的操作請求消息時,利用所述用戶數據的位置信息定位到所述用戶數據,以便根據所述操 作請求消息對所述用戶數據進行處理。優選的,所述位置信息返回單元包括令牌生成子單元,用于生成包含有所述用戶數據的 位置信息的令牌;返回子單元,用于將所述令牌返回給客戶端;所述定位單元包括解析子單元,用于當接收到攜帶有所述令牌的操作請求消息 時,解析所述令牌獲取所述用戶數據的位置信息;定位子單元,用于利用所述用戶數據的位 置信息定位到所述用戶數據。優選的,每次登錄時生成的令牌具有隨機性;所述裝置還包括令牌保存單元,用于將所述登錄時生成的令牌作為用戶數據的一部分進行保存;令牌校驗單元,用于所述定位到所述用戶數據之后,取出所述用戶數據中保存的 令牌,判斷所述攜帶的令牌與所述保存的令牌是否相同,如果相同,觸發所述執行所述根據 所述操作請求消息對所述用戶數據進行處理的步驟。優選的,還包括令牌清除單元,用于當接收到用戶的退出登錄請求時,將所述生成的令牌清除。優選的,所述操作請求消息中還攜帶有用戶的用戶標識,所述裝置還包括身份校驗單元,用于判斷所述攜帶的用戶標識與所述位置信息對應的用戶標識是否一致,如果一致,觸發執行所述根據所述操作請求消息對所述用戶數據進行處理的步驟。根據本發明提供的具體實施例,本發明公開了以下技術效果本發明只在登錄時利用用戶的用戶標識查找用戶的數據,在查找到用戶數據之 后,就可以獲取該數據的位置信息,并返回給客戶端;然后在此次登錄之后直到結束此次登 錄(退出登錄)的過程中,如果用戶發起操作請求,客戶端在操作請求消息中攜帶上該用戶 數據的位置信息,這樣系統在接收到操作請求消息時,就可以同時獲取到用戶數據的位置 信息,然后直接利用該位置信息定位到用戶數據即可,而不用再重新查找用戶數據并定位。 可見,在本發明中,只需要在登錄系統時查找一次用戶數據,在后續的操作請求中,直接利 用登錄時獲取到的位置信息定位用戶數據即可,因此減少了通過查找來定位數據的次數, 縮短了定位數據所需的時間,從而有利于提高系統的數據處理速度。
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例中所 需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施 例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲 得其他的附圖。圖1是本發明實施例提供的方法的流程圖;圖2是本發明實施例提供的裝置的示意圖;圖3是本發明實施例提供的另一裝置的示意圖。
具體實施例方式下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于 本發明中的實施例,本領域普通技術人員所獲得的所有其他實施例,都屬于本發明保護的 范圍。參見圖1,本發明實施例提供的數據定位方法包括以下步驟S101 接收到用戶的登錄請求時,利用所述用戶的用戶標識查找到所述用戶的用 戶數據,并獲取所述用戶數據的位置信息;如果用戶需要查看自己的數據,則需要在系統給出的登錄界面中,輸入自己的用 戶標識(為方便起見,下面均以賬號為例進行描述)及密碼,發起登錄請求;系統在接收到 該登錄請求時,需要首先利用賬號查找該用戶的數據,然后從用戶的數據中取出用戶的密 碼,并判斷用戶當前輸入的密碼與該用戶數據中的密碼是否匹配,以此來對用戶進行身份 驗證;身份驗證通過之后,再繼續執行后續操作。其中,該步驟中進行數據查找時,采用現有 技術中的二分法或者其他任意的查找方法均可,這里不進行限定。查找到用戶數據之后,就可以獲取該數據的位置信息,其中,該位置信息是指可以 用來直接訪問或者有助于加快定位到用戶數據的信息。例如,在利用二分法進行查找時,賬 號在賬號序列中的序號就可以作為該用戶數據的位置信息,即,如果某用戶的賬號在賬號 序列的第10位,則可以將“10”作為該用戶數據的位置信息。S102 將所述用戶數據的位置信息返回給客戶端;
S103:在退出本次登錄前,每次接收到攜帶有所述用戶數據的位置信息的操作請 求消息時,利用所述用戶數據的位置信息定位到所述用戶數據,以便根據所述操作請求消 息對所述用戶數據進行處理。在此次登錄之后直到結束此次登錄(退出系統)的過程中,如果用戶發起操作請 求,客戶端在操作請求消息中攜帶上該用戶數據的位置信息,這樣系統在接收到操作請求 消息時,就可以同時獲取到用戶數據的位置信息,然后直接利用該位置信息定位到用戶數 據即可,而不用再重新查找用戶數據并定位。例如,就前述例子而言,在利用二分法進行查找時,如果某用戶的賬號在賬號序列 的第10位,將“10”作為該用戶數據的位置信息返回給客戶端;在后續發起操作請求時,客 戶端都可以在操作請求消息中攜帶該位置信息,這樣,系統在獲取到該位置信息之后,就可 以直接獲知用戶數據為序列的第10個賬號對應的數據。可見,在本發明實施例提供的方法 中,只需要在登錄系統時執行一次查找用戶數據的過程,在后續的操作請求中,直接利用登 錄時獲取到的位置信息定位用戶數據即可,因此節省了數據定位所需的時間,有利于提高 系統的數據處理速度。需要說明的是,客戶端在獲取到系統返回的數據位置信息之后,在后續發送請求 消息時直接攜帶數據的位置信息,這一過程對用戶可以是透明的,不需要用戶進行特殊的 操作,即與現有技術相比,用戶執行的操作是相同的,所不同的是用戶能夠感知的返回數據 處理結果所需的時間縮短了,也即,數據處理速度變快了。其中,在將數據的位置信息返回給客戶端時,可以采用多種實現方式,例如,可以 直接以明文的方式將位置信息發送給客戶端,客戶端也直接將位置信息以明文的方式附加 于操作請求消息中。當然,為了保證用戶數據的安全性,可以采用其他的方式,例如,其中一 種方式可以是在獲取到用戶數據的位置信息之后,生成包含有該數據的位置信息的令牌, 然后將該令牌返回給客戶端;相應的,客戶端在發送操作請求時,可以在操作請求消息中攜 帶該令牌,系統在接收到操作請求消息后,可以從中提取出令牌,解析該令牌便可以獲得用 戶數據的位置信息,然后利用該位置信息定位到用戶數據即可。需要說明的是,在現有技術中,令牌通常是用于證明用戶合法身份的一種標識,從 這個意義上講,通常的密碼也可以看作是令牌的一種;但是在本發明實施例中,令牌除了可 以用于證明用戶合法身份以外,還可以起到數據定位的作用。在本發明實施例中,令牌通常可以通過將位置信息進行加密而形成,顯然,解析令 牌的過程可以看作是對令牌進行解密的過程。即通過對位置信息進行加密形成令牌,對令 牌進行解密之后得到的原文即為數據的位置信息。可見,在實現過程中,客戶端并不需要對 令牌進行解析等操作,即對于客戶端而言,無須獲知具體的位置信息。其中,生成令牌時使 用的具體的加密方式及令牌的格式等可以根據實際需要任意選取,這里不做限定。需要說明的是,由于在發起操作請求時,直接利用請求消息中攜帶的位置信息即 可以定位到用戶數據,因此,在登錄一次之后,客戶端即可以獲得用戶數據的位置信息,然 后即使用戶已經退出此次登錄,從理論上講,仍然可以發送攜帶有位置信息的操作請求消 息,系統也可以針對該請求進行響應。也就是說,客戶端可能會直接利用上次登錄過程中獲 取到的數據位置信息來發起操作請求,從而跳過登錄過程,顯然這不利于系統的安全性。因 為需要在登錄時對用戶進行身份校驗,而跳過登錄過程,就會跳過身份校驗過程,這也就意味著任何人只要獲得了一個用戶數據的位置信息,就可以發起對該用戶數據的操作請求, 顯然這會使用戶數據的安全性受到威脅。而使用令牌的方式來傳遞位置信息時,可以很方便地解決這一問題,具體的,可以 在每次登錄時重新生成令牌,使得每次生成的令牌具有隨機性。即對于同一用戶數據而言, 雖然位置信息可能是相同的,但是每次生成的令牌是不同的,必須使用本次登錄時生成的 令牌才可以獲得相應的數據。具體實現時,在每次登錄時生成令牌之后,需要將該令牌作為 該用戶數據的一部分進行保存,在接收到用戶的操作請求消息,解析令牌獲取數據的位置 信息,并定位到用戶數據之后,還需要首先從用戶數據中取出本次登錄生成的令牌,判斷當 前的請求消息中攜帶的令牌與保存的本次登錄時生成的令牌是否相同,如果相同,再根據 用戶的操作請求對用戶數據進行相應的處理,否則,不再響應用戶的操作請求,這一過程相 當于是令牌校驗過程。當用戶退出此次登錄時,就可以將該用戶對應的令牌清除,此時用戶數據中不再 包含令牌;即如果用戶已經退出了系統,則該用戶的用戶數據中不再保存針對該用戶的數 據生成的令牌。這樣,如果用戶在下次登錄之前就發送攜帶有令牌的操作請求,則由于系統 中該用戶的令牌為空,因此,令牌校驗無法通過,從而避免跳過登錄過程而直接發起操作請 求。當然,在實際應用中,系統還可以具有一個定時清除所有用戶令牌的機制,例如,通常可 以在每天開始服務之前執行統一清除的操作。另外,如前文所述,如果一個用戶的位置信息被另一個用戶的客戶端獲得,則另一 個用戶可能會使用該用戶的位置信息來操作該用戶的數據。為了避免這種情況的發生,還 可以在每次接收到操作請求消息時,對用戶的身份進行驗證。具體的,可以在操作請求消息 中攜帶有用戶的用戶標識,這樣,在利用請求消息中的位置信息定位到用戶數據之后,還可 以首先取出用戶數據中保存的用戶標識,將該請求消息中攜帶的用戶標識與保存的用戶標 識進行比較,如果二者一致,則證明身份驗證通過,從而避免用戶用他人的數據位置信息操 作他人的數據。與本發明實施例提供的數據定位方法相對應,本發明實施例還提供了一種數據定 位裝置,參見圖2,該裝置包括位置信息獲取單元201,用于接收到用戶的登錄請求時,利用所述用戶的用戶標識 查找到所述用戶的用戶數據,并獲取所述用戶數據的位置信息;位置信息返回單元202,用于將所述用戶數據的位置信息返回給客戶端;定位單元203,用于在退出本次登錄前,每次接收到攜帶有所述用戶數據的位置信 息的操作請求消息時,利用所述用戶數據的位置信息定位到所述用戶數據,以便根據所述 操作請求消息對所述用戶數據進行處理。本發明實施例提供的裝置只在登錄時利用用戶的用戶標識查找用戶的數據,在查 找到用戶數據之后,就可以獲取該數據的位置信息,并返回給客戶端;然后在此次登錄之后 直到退出此次登錄的過程中,如果用戶發起操作請求,客戶端在操作請求消息中攜帶上該 用戶數據的位置信息,這樣系統在接收到操作請求消息時,就可以同時獲取到用戶數據的 位置信息,然后直接利用該位置信息定位到用戶數據即可,而不用再重新查找用戶數據并 定位。可見,在本發明實施例中,只需要在登錄系統時查找一次用戶數據,在后續的操作請 求中,直接利用登錄時獲取到的位置信息定位用戶數據即可,因此節省了數據定位所需的時間,有利于提高系統的數據處理速度。返回位置信息的具體實現方法可以有多種,為了保證用戶數據的安全性其中一種 實現方式時,位置信息返回單元202可以包括令牌生成子單元,用于生成包含有所述用戶數據的位置信息的令牌;返回子單元,用于將所述令牌返回給客戶端;相應的,定位單元203可以包括解析子單元,用于當接收到攜帶有所述令牌的操作請求消息時,解析所述令牌獲 取所述用戶數據的位置信息;定位子單元,用于利用所述用戶數據的位置信息定位到所述數據。為了進一步提高用戶數據的安全性,可以使得每次登錄時生成的令牌具有隨機 性;相應的,參見圖3,該裝置還可以包括令牌保存單元204,用于將所述登錄時生成的令牌作為用戶數據的一部分進行保 存;令牌校驗單元205,用于所述定位到所述用戶數據之后,取出所述用戶數據中保存 的令牌,判斷所述攜帶的令牌與所述保存的令牌是否相同,如果相同,觸發所述執行所述根 據所述操作請求消息對所述用戶數據進行處理的步驟。為了避免用戶使用以前登錄時獲取到的令牌等位置信息來發起操作請求,而跳過 登錄過程,該裝置還可以包括令牌清除單元,用于當接收到用戶的退出登錄請求時,將所述生成的令牌清除。另外,為了避免用戶用他人的令牌等位置信息來操作他人的數據,還可以在操作 請求消息中攜帶用戶的用戶標識,相應的,該裝置還可以包括身份校驗單元206,用于判斷所述攜帶的用戶標識與所述位置信息對應的用戶標 識是否一致,如果一致,觸發執行所述根據所述操作請求消息對所述用戶數據進行處理的步驟。以上對本發明所提供的一種數據定位方法及裝置,進行了詳細介紹,本文中應用 了具體個例對本發明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解 本發明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發明的思想,在具 體實施方式及應用范圍上均會有改變之處。綜上所述,本說明書內容不應理解為對本發明 的限制。
權利要求
一種數據定位方法,其特征在于,包括接收到用戶的登錄請求時,利用所述用戶的用戶標識查找到所述用戶的用戶數據,并獲取所述用戶數據的位置信息;將所述用戶數據的位置信息返回給客戶端;在退出本次登錄前,每次接收到攜帶有所述用戶數據的位置信息的操作請求消息時,利用所述用戶數據的位置信息定位到所述用戶數據,以便根據所述操作請求消息對所述用戶數據進行處理。
2.根據權利要求1所述的方法,其特征在于,所述將所述用戶數據的位置信息返回給客戶端包括生成包含有所述用戶數據的位置 信息的令牌,將所述令牌返回給客戶端;所述當接收到攜帶有所述用戶數據的位置信息的操作請求消息時,利用所述用戶數據 的位置信息定位到所述用戶數據包括當接收到攜帶有所述令牌的操作請求消息時,解析 所述令牌獲取所述用戶數據的位置信息,利用所述用戶數據的位置信息定位到所述用戶數 據。
3.根據權利要求2所述的方法,其特征在于,每次登錄時生成的令牌具有隨機性;所述 方法還包括將所述生成的令牌作為用戶數據的一部分進行保存;定位到所述用戶數據之后,取出所述用戶數據中保存的令牌,判斷所述攜帶的令牌與 所述保存的令牌是否相同,如果相同,執行所述根據所述操作請求消息對所述用戶數據進 行處理的步驟。
4.根據權利要求3所述的方法,其特征在于,還包括當接收到用戶的退出登錄請求時,將所述生成的令牌清除。
5.根據權利要求1至4任一項所述的方法,其特征在于,所述操作請求消息中還攜帶有 用戶的用戶標識,所述方法還包括判斷所述攜帶的用戶標識與所述位置信息對應的用戶標識是否一致,如果一致,執行 所述定位的步驟。
6.一種數據定位裝置,其特征在于,包括位置信息獲取單元,用于接收到用戶的登錄請求時,利用所述用戶的用戶標識查找到 所述用戶的用戶數據,并獲取所述用戶數據的位置信息;位置信息返回單元,用于將所述用戶數據的位置信息返回給客戶端;定位單元,用于在退出本次登錄前,每次接收到攜帶有所述用戶數據的位置信息的操 作請求消息時,利用所述用戶數據的位置信息定位到所述用戶數據,以便根據所述操作請 求消息對所述用戶數據進行處理。
7.根據權利要求6所述的裝置,其特征在于,所述位置信息返回單元包括令牌生成子單元,用于生成包含有所述用戶數據的位置 信息的令牌;返回子單元,用于將所述令牌返回給客戶端;所述定位單元包括解析子單元,用于當接收到攜帶有所述令牌的操作請求消息時,解 析所述令牌獲取所述用戶數據的位置信息;定位子單元,用于利用所述用戶數據的位置信 息定位到所述用戶數據。
8.根據權利要求7所述的裝置,其特征在于,每次登錄時生成的令牌具有隨機性;所述 裝置還包括令牌保存單元,用于將所述登錄時生成的令牌作為用戶數據的一部分進行保存; 令牌校驗單元,用于所述定位到所述用戶數據之后,取出所述用戶數據中保存的令牌, 判斷所述攜帶的令牌與所述保存的令牌是否相同,如果相同,觸發所述執行所述根據所述 操作請求消息對所述用戶數據進行處理的步驟。
9.根據權利要求8所述的裝置,其特征在于,還包括令牌清除單元,用于當接收到用戶的退出登錄請求時,將所述生成的令牌清除。
10.根據權利要求6至9任一項所述的裝置,其特征在于,所述操作請求消息中還攜帶 有用戶的用戶標識,所述裝置還包括身份校驗單元,用于判斷所述攜帶的用戶標識與所述位置信息對應的用戶標識是否一 致,如果一致,觸發執行所述根據所述操作請求消息對所述用戶數據進行處理的步驟。
全文摘要
本發明公開了一種數據定位方法及裝置,其中,所述方法包括接收到用戶的登錄請求時,利用所述用戶的用戶標識查找到所述用戶的用戶數據,并獲取所述用戶數據的位置信息;將所述用戶數據的位置信息返回給客戶端;在退出本次登錄前,每次接收到攜帶有所述用戶數據的位置信息的操作請求消息時,利用所述用戶數據的位置信息定位到所述用戶數據,以便根據所述操作請求消息對所述用戶數據進行處理。通過本發明,能夠減少數據定位過程中的數據查找次數,提高系統的數據處理速度。
文檔編號H04L29/06GK101800756SQ201010151179
公開日2010年8月11日 申請日期2010年4月13日 優先權日2010年4月13日
發明者何仲君 申請人:恒生電子股份有限公司