Požadavek uuid
Univerzální unikátní identifikátor
Slouží k vytvoření UUID dle RFC4122 ve verzích 0,1,3,4,5 a variantě 1. Velikost každého UUID čísla je 128 bitů (16 bajtů).
Jednotlivé atributy
Jde o uzel obsahující text TYP HODNOTY: string;
<request>
<uuid
version="0,1|3|4|5"
count="{number}"
string="{string}"
>
{string}
</uuid>
</request>
Atributy
version - Určuje požadovanou verzi UUID(typ: string) TYP HODNOTY: string; (možnosti obsahu: 0,1 | 3 | 4 | 5)
count - Určuje počet vygenerovaných UUID(typ: number) TYP HODNOTY: number;
string - Řetězec pro získání hash ve verzích 3 a 5.(typ: string) TYP HODNOTY: string;
Potomci
Požadavek uuid neobsahuje žádné další elementy. Uzel může obsahovat prostý text.
Poznámka k request
Verze UUID:
0. Je vždy vráceno nil UUID (00000000-0000-0000-0000-000000000000).
1. Je generována na základě MAC adresy počítače, který ji generuje a na základě času. Neobsahuje náhodnou složku. Vychází z předpokladu, že existuje právě jeden počítač s konkrétní MAC adresou a ten v konkrétním časovém okamžiku generuje čísla. Pokud by dvě čísla spadala do stejného okamžiku, budou obsahovat jinou inkrementovanou složku. Výsledná čísla se přirozeně řadí dle času, nikoli dle MAC. Hodnota času a MAC adresa jsou z čísla zjistitelná, což je třeba zvažovat při posuzování bezpečnosti.
2. Neimplementováno.
3. Jedná se o UUID postavené na hash řetězce dodaného v parametru string. Toto UUID v sobě neobsahuje žádný prvek náhodnosti, či změny obecně. Při zadání stejného vstupního hash je vždy vygenerováno stejné UUID. Toho se využívá například pro identifikaci uživatelů, kdy převádíme uživatele na unikátní číslo a s ním pak pracujeme. Vstupem pro vytvářený hash by mělo být spojení jména namespace a jména konkrétního objektu v rámci namespace, například jméno instance flexidea a uživatele této instance. Jako hash funkce se používá MD5.
4. Je generována čistě náhodně. Jedná se tedy o velké náhodné číslo. S pravděpodobností hraničící s jistotou nebyla na světě nikdy vygenerována dvě stejná UUID. Celkový počet čísel je 2^122 tedy 5.3×10^36. Výchozí hodnota při nezvolení verze.
5. Jedná se o UUID postavené na hash řetězce dodaného v parametru string. Toto UUID v sobě neobsahuje žádný prvek náhodnosti, či změny obecně. Při zadání stejného vstupního hash je vždy vygenerováno stejné UUID. Toho se využívá například pro identifikaci uživatelů, kdy převádíme uživatele na unikátní číslo a s ním pak pracujeme. Vstupem pro vytvářený hash by mělo být spojení jména namespace a jména konkrétního objektu v rámci namespace, například jméno instance flexidea a uživatele této instance. Jako hash funkce se používá SHA-1.
Mezi verzemi 3 a 5 je rozdíl pouze v použitém hash. Atribut count nemá u variant 3 a 5 žádný význam, jeho použití není označeno za chybu. Je-li požadavek zadán bez atributů, je vytvořeno jedno UUID verze 4.
Odpověď
Jde o uzel obsahující text TYP HODNOTY: string;
Struktura odpovědi na požadavek uuid vrácená v obálce response:
<response>
<element
type="ok|error"
>
{string}
</element>
</response>
Atributy
type - Obsahuje hodnoty ok nebo error (možnosti obsahu: ok | error)
Potomci
Odpověď element neobsahuje žádné další elementy. Uzel může obsahovat prostý text.
Výraz pro identifikaci chyb v odpovědi serveru: uuid[@type='error'] (odkaz na popis detailu: @detail).