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