- UUID
-
Ein Universally Unique Identifier (UUID) ist ein Standard für Identifikatoren, der in der Softwareentwicklung verwendet wird. Er ist von der Open Software Foundation (OSF) als Teil des Distributed Computing Environment (DCE) standardisiert. Die Absicht hinter UUIDs ist, Informationen in verteilten Systemen ohne großartige zentrale Koordination eindeutig kennzeichnen zu können.
Ein UUID besteht aus einer 16-Byte-Zahl, die in fünf Gruppen unterteilt wird. In ihrer Normalform sieht eine UUID beispielsweise so aus:
- 550e8400-e29b-11d4-a716-446655440000
Obwohl die Eindeutigkeit für generierte UUID nicht garantiert ist, ist die Gesamtzahl der eindeutigen Schlüssel mit 2128 oder 3,4028 · 1038 so groß, dass die Wahrscheinlichkeit der Erzeugung zwei gleicher UUIDs gegen null geht. Daher können UUIDs beliebig ohne zentrales Kontrollorgan erzeugt und zur Kennzeichnung eingesetzt werden, ohne Gefahr zu laufen, dass eine gleiche UUID für etwas anderes verwendet wird. Mit UUID markierte Informationen können somit später in einer einzigen Datenbank zusammengeführt werden, ohne Bezeichnerkonflikte auflösen zu müssen.
Beispiele für Implementierung des UUID-Standards sind Microsofts Globally Unique Identifier (GUID) und die Klasse java.util.UUID in der Java API.
Geschichte und Standardisierung
UUID sind als Teil des Standards ISO/IEC 11578:1996 “Information technology – Open Systems Interconnection – Remote Procedure Call (RPC)” und als separater Standard ISO/IEC 9834-8:2005 dokumentiert. Die IETF hat das auf UUID basierende RFC 4122 veröffentlicht.
Das originale (Version 1) Generierungsschema für UUID war, die UUID-Version mit der MAC-Adresse des Computers, der die UUID generiert, und der Anzahl der 100-Nanosekunden-Intervalle seit Beginn des Gregorianischen Kalenders aneinander zu hängen. In der Praxis ist der eigentliche Algorithmus komplizierter. Dieses Schema wurde kritisiert, weil es nicht ausreichend „dicht“ sei; es gibt sowohl die Identität des generierenden Computers als auch den Zeitpunkt der Generierung preis.
Mehrere andere Algorithmen zur Generierung wurden entwickelt und flossen in den Standard ein, so ein Schema, welches nur auf Zufallszahlen basiert (Version 4 UUID), und Schemata, in denen die UUID aus einer URL über MD5- (Version 3 UUID) oder SHA-1- (Version 5 UUID) Hashes hergeleitet wird.
Die Release 5.0 von Java stellt eine Klasse zur Verfügung, die 128-bittige UUID generiert. Die API-Dokumentation für die Klasse java.util.UUID[1] verweist auf ISO/IEC 11578:1996. Auch viele andere Sprachen stellen fertige Routinen zur Generierung von UUID bereit.
Quellen
Weblinks
- RFC 4122 A Universally Unique IDentifier (UUID) URN Namespace (englisch)
Wikimedia Foundation.