UUIDとは?
UUIDとは、全世界で2つ以上のアイテムが同じ値を持つことがない一意な識別子のことを意味している。何らかの組織やシステムなどが管理・割り当てを行うわけではなく、誰でもいつでも自由に生成することができる。しかし、他のUUIDと重複することは起きないようになっている。
UUIDのあれこれ!
UUIDは128ビット(16バイト)の値で、バージョン番号などに6ビットを使うため、固有の識別情報は122ビットとなる。文字表記する際は先頭から4ビットごとに16進数の値(0~F)に変換し、「XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX」のように8桁-4桁-4桁-12桁に区切ってハイフンを挟んで記載される。Windowsレジストリなどではさらにこれを波括弧({})で括られる。
バージョン1から5までの5種類の生成方法が定義されており、それぞれ元にするデータや算出手順などが違ってくる。バージョン1はそのコンピュータの識別子(一般的にはネットワークインターフェースのMACアドレスが使われる)や生成日時・時刻の情報を連結して生成される。バージョン3と5は利用者が元になるデータを任意に指定し、そのハッシュ値を用いる。元になるデータが同じなら同じUUIDが得られる点が他のバージョンと違う。バージョン4は単純に122ビットの乱数を生成してこれを識別子とする方法である。
UUIDの仕様はもともとUNIX系OSの標準仕様などを検討するOpen Software Foundation(OSF)が策定したが、その後、国際標準化機構(ISO)がISO/IEC 11578の一部として、IETFがRFC 4122としてそれぞれ標準化している。
○バリアント型
バリアント型とは、Visual Basicなどで使われる変数などのデータ型の一つである。どのような型のデータでも格納できる特殊な型である。代入時に処理系が値の型を調べ、適合するデータ型が自動的に選択される。“variant”は「異なる」「多様な」などの意味を持つ英単語である。
○バリアント
UUIDは歴史的経緯から互換性のない複数の異なる仕様に分かれており、これを「バリアント」(variant)という。64ビット目から始まる1~3ビットがバリアントの種類を表している。