專利名稱:標識生成方法和裝置的制作方法
技術領域:
本發明涉及信息系統的標識生成方法,更具體地涉及,業 務可預測的唯一標識生成方法。
背景技術:
信息系統中需要用 一個標識來對數據實體進4亍區別,這種 標識稱為唯一標識。唯一標識被廣泛應用在數據庫主鍵、對象
標識、文件系統等各個領域。對唯一標識的主要要求是唯一 性、可控性、信息隱蔽性。其中唯一性要求兩個不同的標識不 能重復,可控性要求標識等長且長度不宜過分,信息隱蔽性要 求標識不能暴露數據實體的物理意義。
信息系統中常見的唯一標識生成方式,通常是一個沒有意義的隨 機ID,例如數據庫產生的流水號,或GUID等。這種隨機生成的方 式優點在于
長度固定,容易寫入到數據庫的主鍵字段中;
信息隱蔽,使用者無法通過該標識臆測其數據內容。
但這種方式的缺點也4艮明顯
業務不可預測性-相同的邏輯場景下無法生成相同的標識;
偽隨機性-不同的信息來源可能有唯 一 性沖突。
以界面控件屬性保存這一應用場景為例,如果用傳統的隨機標 識,雖然能做到標識長度固定且標識不暴露控件信息,但缺點是同樣 界面下的同樣控件先后產生的標識不一致,即業務不可預測性,而且 不同界面的不同控件產生的標識也有沖突的可能性,即偽隨機性,盡 管這種可能性較小。
4如果用控件的名稱來做標識,則能依據界面路徑的不同,通過命 名規則來解決名稱的唯一性和業務可預知性,同樣界面下同樣控件先 后產生的名稱肯定是完全一致的,而且不同界面的不同控件產生的名 稱不會沖突。這種做法雖然彌補了傳統隨機標識的缺陷,但名稱的長 度卻難以控制。
因此,需要一種技術方案來解決傳統唯一標識生成方式中的業務 不可預測性和偽隨機性的問題,同時能從業務規則上確保標識的唯一 性、長度固定、信息隱蔽等特征。
發明內容
為了解決上述技術問題,本發明提供了一種標識生成方 法,用于根據信息系統中的業務邏輯為數據實體生成唯一標
識,包括以下步驟根據信息系統的業務邏輯,i殳計用于所述 信息系統的名稱產生器;使用所述名稱產生器為數據實體產生 名稱;以及使用消息摘要算法從由所述名稱產生器產生的所述 名稱來產生消息摘要,并將所述消息摘要作為所述數據實體的 唯一標識。
優選地,名稱產生器所產生的名稱的長度不限,用于保證不同的 數據實體具有不同的名稱。
優選地,消息摘要算法所產生的消息摘要具有固定長度。 優選地,消息摘要算法是單向散列算法。 優選地,單向散列算法是MD5/SHA1等通用算法。 根據本發明的另一方面,本發明還提供了一種標識生成裝置,用 于根據信息系統中的業務邏輯為數據實體生成唯一標識,包括名稱 產生器,用于根據信息系統的業務邏輯,為數據實體產生名稱;以及 消息摘要產生器,連接到所述名稱產生器,用于使用消息摘要算法從 由所述名稱產生器產生的所述名稱來產生消息摘要,并將所述消息摘 要作為所述數據實體的唯 一 標識。
5優選地,名稱產生器所產生的所述名稱的長度不限,用于保證不 同的數據實體具有不同的名稱。
優選地,消息摘要產生器所產生的所述消息摘要具有固定長度。 優選地,消息摘要算法是單向散列算法。
優選地,單向散列算法是MD5/SHA1等通用算法。
圖l是示出了根據本發明的標識生成方法的流程圖2是示出了根據本發明的實施例的標識生成方法的示意圖3a和圖3b以頁面控件產生及控件屬性持久化為例,分別示出
了傳統標識生成方法和才艮據本發明的標識生成方法的過程;
圖4a和圖4b以查詢元素的其他屬性為例,分別示出了傳統標識
生成方法和根據本發明的標識生成方法的過程;以及 圖5是示出了根據本發明的標識生成裝置的框圖。
具體實施例方式
下面結合附圖和具體實施方式
對本發明作進 一 步詳細的說明。
圖1是示出了根據本發明的標識生成方法的流程圖。如圖1所 示,在步驟S102中,根據信息系統的業務邏輯,設計用于所述信息 系統的名稱產生器;在步驟S104中,使用所述名稱產生器為數據實 體產生名稱;以及在步驟S106中,使用消息摘要算法從由所述名稱 產生器產生的所述名稱來產生消息摘要,并將所述消息摘要作為所述 數據實體的唯一標識。
其中,名稱產生器所產生的名稱的長度不限,用于保證不同的數 據實體具有不同的名稱。消息摘要算法所產生的消息摘要具有固定長 度。消息摘要算法是單向散列算法。例如,單向散列算法可以是 MD5/SHA1等通用算法。
圖2是示出了根據本發明的實施例的標識生成方法的示意圖。如 圖2所示,首先,客戶根據自己信息系統的實際情況,給出名稱產生 器202的具體實現。在此,名稱產生器202產生的名稱只要能區分不
6同數據實體,長度不限。
然后,唯一標識生成器調用客戶實現的名稱產生器202。 接下來,唯一標識生成器調用消息摘要算法204,對名稱產生器 202產生的名稱進行消息摘要。
最后,返回消息摘要作為唯一標識。
在上述的實施例中,客戶可以根據需要,自己實現名稱產生器, 名稱的產生長度沒有限制,可以根據需要確定名稱的長度,為了盡可 能不重復,可以選擇足夠長的名稱長度。消息摘要的單向散列算法可 以保證不同的名稱生成的消息摘要不會重復,相同的名稱生成的消息 摘要相同。而且無論名稱長度有多長,消息摘要單向散列算法產生的 摘要長度是固定的。例如,本方案兼容常見的消息摘要單向散列算 法,例如MD5/SHA1等。
圖3a和圖3b以頁面控件產生及控件屬性持久化為例,分別示出 了傳統標識生成方法和根據本發明的標識生成方法的過程。如圖3a 和3b所示,在圖3a的傳統方案中,如S306a所示,在內存運算中 無法根據業務邏輯得知控件組建,必須通過一次數據庫查詢或者通過 控件名稱聯查.而根據本發明的技術方案,如圖3b中S306b所示, 可以直接得到控件標識。并且,標識的可預測是單向的,即,業務場 景通常是已知名稱的前提下需要一個唯一標識。同時,不同的名稱需 要映射不同的唯一標識,不能有重復。因此,本方案采用了單向散列 消息摘要算法,既保證了單向可預見性,也確保了唯一性,同時還不 會暴露被標識對象的細節。
圖4a和圖4b以查詢元素的其他屬性為例,分別示出了傳統標識 生成方法和根據本發明的標識生成方法的過程。如圖4a和4b所示, 在圖4a的傳統方案中,如S404a所示,以位置、類型、名稱作為條 件查找該元素,速度很慢,為了提高速度,通常會在這些字段上建立 索引。而根據本發明的技術方案,如圖4b中S404b所示,可以以位 置、類型、名稱的組合作為"名稱產生器"的具體實現,通過消息摘 要算法直接得出元素的主鍵(唯一標識),查詢以主鍵作為唯一條
7件,速度很快。
圖5是示出了根據本發明的標識生成裝置的框圖。如圖5所示, 根據本發明的標識生成裝置500包括名稱產生器202,用于根據信 息系統的業務邏輯,為數據實體產生名稱;以及消息摘要產生器 204,連接到名稱產生器202,用于使用消息摘要算法從由名稱產生 器202產生的名稱來產生消息摘要,并將消息摘要作為數據實體的唯 一標識。
在該裝置中,名稱產生器202所產生的名稱的長度可以不限,用 于保證不同的數據實體具有不同的名稱。優選地,消息摘要產生器
204所產生的消息摘要具有固定長度。
優選地,消息摘要算法是單向散列算法。單向散列算法可以是 MD5/SHA1等通用算法。
綜上,根據本發明提供的標識生成方法和裝置,可以在產生頁面 控件的同時即知道其唯一標識,查詢或存儲控件必要的屬性會減少一 次數據庫操作,或者可以避免通過名稱去索引主鍵,從而提高編碼和 運行效率。
以上所述僅為本發明的優選實施例而已,并不用于限制本發明, 對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本 發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應 包含在本發明的保護范圍之內。
8
權利要求
1.一種標識生成方法,用于根據信息系統中的業務邏輯為數據實體生成唯一標識,其特征在于,包括以下步驟根據信息系統的業務邏輯,設計用于所述信息系統的名稱產生器;使用所述名稱產生器為數據實體產生名稱;以及使用消息摘要算法從由所述名稱產生器產生的所述名稱來產生消息摘要,并將所述消息摘要作為所述數據實體的唯一標識。
2. 根據權利要求1所述的標識生成方法,其特征在于,所述名 稱產生器所產生的所述名稱的長度不限,用于保證不同的數據實體具 有不同的名稱。
3. 根據權利要求1或2所述的標識生成方法,其特征在于,所 述消息摘要算法所產生的所述消息摘要具有固定長度。
4. 根據權利要求3所述的標識生成方法,其特征在于,所述消 息摘要算法是單向散列算法。
5. 根據權利要求4所述的標識生成方法,其特征在于,所述單 向散列算法是MD5/SHA1。
6. —種標識生成裝置,用于根據信息系統中的業務邏輯為數據 實體生成唯一標識,其特征在于,包括名稱產生器,用于根據信息系統的業務邏輯,為數據實體產生名 稱;以及消息摘要產生器,連接到所述名稱產生器,用于使用消息摘要算 法從由所述名稱產生器產生的所述名稱來產生消息摘要,并將所述消 息摘要作為所述數據實體的唯一標識。
7. 根據權利要求6所述的標識生成裝置,其特征在于,所述名 稱產生器所產生的所述名稱的長度不限,用于保證不同的數據實體具 有不同的名稱。
8. 根據權利要求6或7所述的標識生成裝置,其特征在于,所述消息摘要產生器所產生的所述消息摘要具有固定長度。
9. 根據權利要求8所述的標識生成裝置,其特征在于,所述消 息摘要算法是單向散列算法。
10. 根據權利要求9所述的標識生成裝置,其特征在于,所述單 向散列算法是MD5/SHA1。
全文摘要
本發明提供了一種標識生成方法,用于根據信息系統中的業務邏輯為數據實體生成唯一標識,包括以下步驟根據信息系統的業務邏輯,設計用于所述信息系統的名稱產生器;使用所述名稱產生器為數據實體產生名稱;以及使用消息摘要算法從由所述名稱產生器產生的所述名稱來產生消息摘要,并將所述消息摘要作為所述數據實體的唯一標識。同時,本發明還提出了一種標識生成裝置。根據本發明的標識生成方法和裝置解決了傳統唯一標識生成方式中的業務不可預測性和偽隨機性的問題,同時能從業務規則上確保標識的唯一性、長度固定、信息隱蔽等特征。
文檔編號G06F17/30GK101576919SQ200910087248
公開日2009年11月11日 申請日期2009年6月19日 優先權日2009年6月19日
發明者岑 陳 申請人:用友軟件股份有限公司