一種識別碼的生成方法和裝置以及識別碼應用方法
2023-05-08 04:10:26
專利名稱:一種識別碼的生成方法和裝置以及識別碼應用方法
技術領域:
本發明涉及信息技術領域,特別是涉及識別碼的生成方法和裝置以及識別碼應用方法。
背景技術:
通用唯一識別碼(UniversallyUnique Identifier, UUID)是一個軟體建構的標準,亦為自由軟體基金會(Open Software Foundation, 0SF)的組織在分布式計算環境 (Distributed Computing Environment, DCE)領域的一部份。UUID 的目的,是讓分布式系統中的所有元素,都能有唯一的辨識信息,而不需要通過中央控制端來做辨識信息的指定。 如此一來,每個人都可以創建不與其它人衝突的UUID。在這樣的情況下,就不需考慮資料庫創建時的名稱重複問題。目前最廣泛應用的⑶ID,即是微軟的Microsoft' sGlobally Unique Identifier s (⑶IDs),而其他重要的應用,則有Linux ext2/ext3文件系統、LUKS 加密分區區、GN0ME、KDE、Mac OS X等等。另外,也可以在e2fsprogs包中的UUID庫找到實現。一組UUID,系由一串16位組(亦稱16位元組,或1 位)的16進位數字所構成,是故UUID理論上的總數為216x8 = 2128,約等於3. 4x1038o也就是說若每奈秒產生1兆個UUID, 要花100億年才會將所有UUID用完。UUID的標準型式包含32個16進位數字,以連字號分為五段,形式為8-4_4-4_12 的 32 個字符。示例;550e8400-d9b-41d4-a716-44665M40000。使用UUID的好處在分布式的軟體系統中(比如DCE/RPC,COM+, C0RBA)就能體現出來,它能保證每個節點所生成的標識都不會重複,並且隨著WEB服務等整合技術的發展, UUID的優勢將更加明顯。通用唯一標識符還可以用來指向大多數的可能的物體。微軟和其他一些軟體公司都傾向使用全球唯一標識符(⑶ID),這也是通用唯一標識符的一種類型, 可用來指向組建對象模塊對象和其他的軟體組件。有的情況下,一個物體具有一種特殊的「型別」標識,比如針對地理數據中的要素、 要素類、要素屬性,天然的在這種物體上隱含有這些特殊的型別;再者在分布式的系統中或者具有數據中心級別的數據操作中,具有同類UUID的物體,需要快速的知道該物體的型別,而不是通過額外的手段去從其它地方獲取它的型別, 一是並不知道型別記錄在什麼地方,二是這種信息的獲取也是耗時的,需要從另外的複雜的數據中心做檢索。針對上述情況,基於UUID,在其中記錄了型別(這種型別是有限的,通常是在一個可以列舉的範圍內,不能是無限的,否則就破壞了 UUID的發生原則)。使用識別碼,通常是在分布式軟體系統,或者在異種網絡環境唯一標識一種物體的最有效的方法。其次,一種物體一但確定,一般都具有了自生的類型信息。顯而易見的,為了解決上述問題,通常的做法是使用UUID作為物體的唯一標識符,同時使用一個相關的附加屬性欄位來描述該物體的類型。基於此,一個物體需要使用兩個部分才能唯一確定一個物體和物體的類型。隨之帶來的問題是,增加了描述一個物體的複雜度,並在應用場合不得不使用兩個數據的配合,同時也增加了在網絡環境中傳輸的數據量。用UUID來唯一標識一個要素類、要素或者要素上的一個屬性方面,是已知的公認的做法。就是把每一個實體序列化時都用一個UUID來標識,同時用一個約定的方式規定為具體的類型(上述所說的要素類、要素、要素屬性等),然後再根據不同的類型類型指定需要序列化的數據。但是現有的UUID在使用的過程中也有一些不足,一是比較佔存儲空間,簡單的和一個整型相比存儲一個UUID要花費更多的空間,二是在網絡資源有限的情況下額外的增加了傳輸的負擔。
發明內容
有鑑於此,本發明提供一種識別碼的生成方法和裝置以及該識別碼的應用方法, 使用該識別碼就能快速識別出該識別碼所代表的物體類型,並加快了信息檢索的速度。本發明提供的一種識別碼的生成方法,包括產生一個通用唯一識別碼UUID,該UUID為16位元組(1 位)的二進位數;利用預定的型別標識碼對所產生的UUID進行數據重構,得到新的UUID,該新的 UUID攜帶有所述型別標識。更適宜地,利用預定的型別標識碼對所產生的UUID進行數據重構,具體包括按照預定的算法將所述型別標識碼分別與所述UUID上的變體位和/或版本位進行運算得到新的變體和/或版本;將所述新的版本和變體寫入所產生的UUID對應的位置。本發明提供的一種識別碼生成裝置,包括UUID生成單元,用於產生一個通用唯一識別碼UUID,該UUID為16位元組(1 位) 的二進位數;重構單元,利用預定的型別標識碼對所產生的UUID進行數據重構,得到新的 UUID,該新的UUID攜帶有所述型別標識。更適宜地,重構單元具體包括運算模塊,按照預定的算法將所述型別標識碼分別與所述UUID上的變體位和/或版本位進行運算得到新的變體和/或版本;將所述新的變體和版本寫入所述UUID對應的位置。本發明還提供一種利用識別碼確定對象類別的方法,採用前述方法產生的通用唯一識別碼UUID標示對象,該方法包括獲取所述UUID,並從中提取對UUID進行數據重構所涉及的欄位;通過所述預定算法的逆運算得到型別標識碼;根據所得到型別標識碼確定所述對象的類別。綜上所述,本發明提供的技術方案,利用類別標示信息對現有的UUID進行數據重構,使得重構後的UUID攜帶所述類別標示信息,從而實現對象或物體類別的識別。本發明能夠充分利用UUID作為唯一識別碼的特性,同時在不破環UUID的特性基礎上注入了新的數據變量。提出了一種新的數據識別模式和應用方法。在同樣的數據中增加了新的信息,減少對物體的描述數據資源量和網絡傳輸量,有力地支撐了在地理環境中海量數據的標識、 存儲、傳輸的一些問題。使用該識別碼就能快速識別出該識別碼所代表的物體類型。並加快了信息檢索的速度。
圖1為本發明提供的識別碼生成方法流程圖;圖2為本發明實施例中提供的識別碼生成方法流程圖;圖3為本發明實施例中提供的基於變體和版本位進行UUID重構方法流程圖;圖4為本發明實施例中提供的識別碼生成裝置架構示意圖;圖5為本發明提供的一種利用識別碼確定對象類別的方法流程圖;圖6為本發明實施例中提供的利用識別碼確定對象類別的方法流程圖。
具體實施例方式為了在保證物體的唯一性必要條件下,儘可能多的保持物體原有的特徵以及物體的類型信息,並能夠更有效的減少數據的存儲和傳輸,提出一種新的識別碼,從識別碼的生成到應用能夠解決一些現有的不足。鑑於現有技術中存在的問題,本發明提出一種可用於辨別對象或物體類別的識別碼的產生方法及裝置,以及這種識別的應用方法,利用類別標示信息對現有的UUID進行數據重構,使得重構後的UUID攜帶所述類別標示信息,從而實現對象或物體類別的識別。而且不佔更多的存儲空間,不增加額外的傳輸負荷。參照圖1,本發明提供的一種識別碼的生成方法,包括如下步驟S01,產生一個通用唯一識別碼UUID,該UUID為16位元組(1 位)的二進位數;S02,利用預定的型別標識碼對所產生的UUID進行數據重構,得到新的UUID,該新的UUID攜帶有所述型別標識碼。步驟S02中,利用預定的型別標識碼對所產生的UUID進行數據重構,具體包括(a)按照預定的算法將所述型別標識碼分別與所述UUID上的變體位和/或版本位進行運算得到新的變體和/或版本;(b)將所述新的版本和變體寫入所產生的UUID對應的位置。具體實施方案中,型別標識碼採用8位二進位數,將該型別標識碼拆分為高4位和低4位;分別與所述UUID上的變體和版本位進行運算得到新的變體和版本位。採用的運算方法,如,將8位的版本和型別標識碼的高4位進行「按位與」或「按位或」的位運算,得到一個新的8位的版本,同理也可對變體做類似的處理。所述的UUID生成方法,進一步包括S03,將所述新的UUID作為要素物體的唯一標識,序列化到存儲介質中,資料庫, 數據文件。為了能夠更清楚地理解本發明的上述目的、特徵和優點,下面結合附圖和具體實施方式
對本發明進行進一步的詳細描述。
在下面的描述中闡述了很多具體細節以便於充分理解本發明,但是,本發明還可以採用其他不同於在此描述的其他方式來實施,因此,本發明並不限於下面公開的具體實施例的限制。實施例一本實例以地理信息世界中所要表達的物體出發,詳細闡述本發明的技術方案。通常在面向地理信息領域時,每一種物體都是一個實體,也就是地球上的一種真實現象,它不能再細分為同一種類型的現象。通常需要對每個實體進行唯一標識的代碼,它便於按實體進行存貯或對實體進行逐個查詢和檢索,以利於在海量的地理環境中的區分不同的物體。除此之外,每個實體還擁有一定的位置、形狀、大小、數量或質量諸方面的特徵, 以描述所有的呈二維、三維和多維分布的關於區域的現象,這些抽象的來說是用一系列的屬性來描述。因此,一個實體,為了儘可能的描述為真實的地理特徵,唯一標識碼和相關的屬性特徵是必不可少的。這就引發了一個問題,一個是如何保證這個海量實體數據的唯一性,一是如何快速的了解這些數據的類別,即如何表明這個數據代表的是一個要素類、要素還是
要素屬性。通常在UUID中有些位置記錄了變體(Variants)和版本(Version),為了達到上述目的,本發明的一個實現方案中,在這兩個關鍵位置做了數據重構,即增加了物體型別信息。具體的步驟如下S-a,使用通常的UUID發生器產生一個UUID ;S-b,規定物體的型別表(如要素1 ;要素類2,要素屬性3),即用一個無符號整型數據標識型別,該數據的範圍為0 255,共計256個,可用一 8位二進位數表示;S-c,在所產生的UUID上,在變體和版本位上設置型別信息;S-d,將該UUID作為物體的一個唯一標識符,序列化到存儲介質中(資料庫,數據文件等);在具體應用場合,接收到了該物體的UUID碼,通過UUID分析並提取出該物體的型別,在型別表中比照,從而獲取了該物體的真實類別,如獲取的型別碼值為1,則表示是一個要素,可以針對要素作進一步的分析和應用。參照圖2,本實施例提供的一種識別碼的生成方法,具體的步驟如下SlOl,使用通常的UUID發生器產生一個通用唯一識別碼UUID,本質上是一個16位元組(1 位)的二進位數,為了便於分析,結構如下表1所示表 權利要求
1.一種識別碼的生成方法,其特徵在於,包括產生一個通用唯一識別碼UUID,該UUID為16位元組(1 位)的二進位數; 利用預定的型別標識碼對所產生的UUID進行數據重構,得到新的UUID,該新的UUID攜帶有所述型別標識。
2.如權利要求1所述的UUID生成方法,其特徵在於,所述利用預定的型別標識碼對所產生的UUID進行數據重構,具體包括按照預定的算法將所述型別標識碼分別與所述UUID上的變體位和/或版本位進行運算得到新的變體和/或版本;將所述新的版本和變體寫入所產生的UUID對應的位置。
3.如權利要求2所述的UUID生成方法,其特徵在於,所述型別標識碼為8位二進位數,將所述型別標識碼拆分高4位和低4位, 分別與所述UUID上的變體和版本位進行運算得到新的變體和版本位。
4.如權利要求1所述的UUID生成方法,其特徵在於,進一步包括將所述新的UUID作為要素物體的唯一標識,序列化到存儲介質中,資料庫,數據文件。
5.一種識別碼生成裝置,其特徵在於,包括UUID生成單元,用於產生一個通用唯一識別碼UUID,該UUID為16位元組(1 位)的二進位數;重構單元,利用預定的型別標識碼對所產生的UUID進行數據重構,得到新的UUID,該新的UUID攜帶有所述型別標識。
6.如權利要求5所述的識別碼生成裝置,其特徵在於,所述重構單元,具體包括 運算模塊,按照預定的算法將所述型別標識碼分別與所述UUID上的變體位和/或版本位進行運算得到新的變體和/或版本;將所述新的變體和版本寫入所述UUID對應的位置。
7.如權利要求6所述的識別碼生成裝置,其特徵在於,所述型別標識碼為8位二進位數,所述重構單元還包括拆分模塊,用於將所述型別標識碼拆分高4位和低4位;所述運算模塊將所述型別標識碼拆分高4位和低4位分別與所述UUID上的變體和版本位進行運算得到新的變體和版本位。
8.如權利要求5所述的識別碼生成裝置,其特徵在於,進一步包括將所述新的UUID作為要素物體的唯一標識,序列化到存儲介質中,資料庫,數據文件。
9.一種利用識別碼確定對象類別的方法,其特徵在於,採用如權利要求1至4中任一項所述方法產生的通用唯一識別碼UUID標示對象,該方法包括獲取所述UUID,並從中提取對UUID進行數據重構所涉及的欄位; 通過所述預定算法的逆運算得到型別標識碼; 根據所得到型別標識碼確定所述對象的類別。
10.如權利要求9所述的方法,其特徵在於,所涉及的欄位為變體位和/或版本。
全文摘要
本發明提供了一種識別碼的生成方法,包括產生一個通用唯一識別碼UUID;利用預定的型別標識碼對該UUID進行數據重構,得到新的UUID,該新的UUID攜帶有型別標識。本發明提供的一種識別碼生成裝置,包括UUID生成單元,用於產生一個UUID;重構單元,利用預定的型別標識碼對UUID進行數據重構,得到包含型別標識的新UUID。還提供一種利用識別碼確定對象類別的方法,採用本發明提供的UUID標示對象。本發明在同樣的數據中增加了新的信息,減少對物體的描述數據資源量和網絡傳輸量,有力地支撐了海量數據的標識、存儲、傳輸的一些問題。使用該識別碼就能快速識別出該識別碼所代表的物體類型,並加快了信息檢索的速度。
文檔編號G06K19/06GK102298716SQ20111025914
公開日2011年12月28日 申請日期2011年9月2日 優先權日2011年9月2日
發明者史明昌, 孫成寶, 曹剛, 李團宏, 李嵩, 黃兆偉 申請人:北京地拓科技發展有限公司