Vai al contenuto

GUID

Da Wikipedia, l'enciclopedia libera.
Versione del 15 mag 2006 alle 19:30 di Sassospicco (discussione | contributi)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Il GUID (Globally Unique Identifier) è un numero pseudo-casuale usato nella programmazione software. Si tratta dell'implementazione di Microsoft dell'UUID, ideato dalla Open Software Foundation.

Il GUID viene utilizzato per identificare in maniera univoca un determinato programma; in questo modo due versioni (potenzialmente incompatibili) di uno stesso software, anche con lo stesso nome, possono essere distinte tramite i loro codici GUID. Sebbene il GUID non garantisca un'effettiva unicità, il numero possibile di combinazioni (2128) è talmente elevato da scongiurare una coincidenza tra due codici.

I GUID vengono utilizzati soprattutto nell'ambito dei Component Object Model Microsoft, tuttavia sono diffusi anche in altri sistemi software, quali Oracle e Novell. Oltre ai programmi, sono marcati tramite GUID anche i documenti Office e i file di formato Advanced Streaming Format

Struttura

Nella pratica un GUID è un numero di 128 bit (16 byte) in formato esadecimale quale può essere:

3F 25 04 E0 4F 89 11 D3 9A 0C 03 05 E8 2C 33 01

I GUID vengono scritti tra parentesi graffe e divisi in tre blocchi di 4, 3 e 6 byte. Nell'esempio precedente si avrebbe:

{3F2504E0-4F89-11D3-9A0C-0305E82C3301}

Algoritmo

L'algoritmo specificato dalla OSF e utilizzato da Microsoft per la generazione dei GUID è stato oggetto di critica. Infatti tale algoritmo utilizzava come punto di partenza gli indirizzi MAC delle schede di rete degli utenti che lo generavano. In questo modo, però, era possibile risalire da un file al computer che l'aveva generato, con gravi consguenze sulla privacy

Dopo che venne alla luce questo problema, Microsoft modificò l'algoritmo in modo che non dipendesse più dagli indirizzi MAC.

Per sapere se un GUID è stato generato con la prima o con la seconda versione dell'algoritmo, bisgona fare riferimento alla prima cifra del terzo blocco. Quindi, nell'esempio precedente

{3F2504E0-4F89-11D3-9A0C-0305E82C3301}

Se questa cifra è un 1, come in questo caso, il codice è generato dalla prima versione; viceversa, se la cifra è un 4, è generato dalla seconda.

Sottotipi

I GUID utilizzati nei COM possono essere di diverso tipo, a seconda della loro funzione:

  • IID - identificatori di interfaccia
  • ClsID - identificatori di classe
  • LibID - identificatori di libreria
  • CatID - identificatori di categoria (la presenza di un CATID in una classe identifica tale classe come appartenente ad una certa categoria)

Le DCOM hanno introddotto altri sottotipi

  • AppID - identificatori di applicazione
  • MID - identificatori di macchina
  • IpID - identificatori di puntatore di interfaccia
  • CID - identificatori casuale riferito ad una sessione RPC
  • OID - identificatori di oggetto
  • OxID - identificatori di esportatore di oggetto
  • SetID - identificatori di un gruppo di oggetti

Due uguali GUID di diverso sottotipo possono coesistere senza problemi nello stesso sistema, ma non è ammessa l'esistenza di due uguali GUID dello stesso sottotipo.

GUID in XML

Esistono anche dei GUID all'interno di alcune versioni di RSS, marcati appunto dal tag guid, tuttavia non hanno niente a che fare con i GUID dei COM Microsoft. All'interno di RSS, infatti, i GUID possono essere un qualsiasi numero, una qualsiasi stringa o un URL, valida o meno. Tipicamente si usa utilizzare come GUID l'URL univoco del post.