GUID: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m →Struttura: 4 caratteri -> 2 byte |
tolti wikilink dai titoli (collegamenti già presenti nel testo) |
||
(30 versioni intermedie di 29 utenti non mostrate) | |||
Riga 1:
Il '''GUID''' ('''G'''lobally '''U'''nique '''Id'''entifier, ''identificatore unico globale'') è un [[Numeri pseudo-casuali|numero pseudo-casuale]] usato nella programmazione [[software]], per poter distinguere vari oggetti. Il tipo più noto di GUID è l'utilizzo di [[Microsoft]] dell'UUID, ideato dalla [[Open Software Foundation]], ma vi sono anche altri usi, come quello all'interno di [[XML]].
I GUID vengono utilizzati soprattutto nell'ambito del [[Component Object Model]] (COM) di Microsoft, tuttavia sono diffusi anche in altri sistemi software, quali [[Oracle Corporation|Oracle]] e [[Novell]].
== Il GUID Microsoft ==
Il GUID viene utilizzato per identificare in maniera univoca un determinato [[componente software]] COM; in questo modo due versioni (potenzialmente incompatibili) di uno stesso componente, 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 (2<sup>128</sup>) è talmente elevato da scongiurare una coincidenza tra due codici. Per rendere l'idea, considerando che in tutto l'universo osservabile sono contenute 5×10<sup>22</sup> stelle, ad ogni singola stella potrebbero essere assegnati 6.8×10<sup>15</sup> diversi GUID.
Oltre ai componenti, sono marcati tramite GUID anche i documenti [[
La maggior parte dei GUID utilizzati da diverse applicazioni sono contenute nel [[registro di sistema]] di [[Windows]].
=== 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 di Microsoft vengono spesso scritti tra parentesi graffe e divisi in
{3f2504e0-4f89-11d3-9a0c-0305e82c3301}
▲I GUID vengono scritti tra parentesi graffe e divisi in tre blocchi di 4, 2 e 6 byte. Nell'esempio precedente si avrebbe:
La notazione è quindi una sequenza formata dai seguenti gruppi di caratteri, divisi da un trattino (-).
Riga 23 ⟶ 22:
# '''Gruppo 3''' (''4 caratteri'')
# Due elementi iniziali del '''gruppo 4''' (''4 caratteri'')
#
Nella definizione di una struttura atta a contenere un GUID, in un qualunque [[linguaggio di programmazione]], la struttura più utilizzata è la seguente.
Riga 42 ⟶ 40:
} GUID;
Nel [[framework .NET]], è presente una classe apposita per la creazione di GUID, [https://msdn.microsoft.com/it-it/library/system.guid(v=vs.110).aspx System.Guid
=== 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 [[
Dopo che venne alla luce questo problema, Microsoft modificò l'algoritmo (implementato nell'[[Application programming interface|API]] <
Per sapere se un GUID è stato generato con la prima o con la seconda versione dell'algoritmo, bisogna fare riferimento alla prima cifra del terzo blocco. Quindi, nell'esempio precedente
Riga 55 ⟶ 53:
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 (contenuti in HKEY_CLASSES_ROOT\CLSID)
* 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 [[
* AppID - identificatori di applicazione
* MID - identificatori di macchina
Riga 73 ⟶ 71:
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
Esistono anche dei GUID all'interno di alcune versioni di [[RSS]], marcati appunto dal tag <code>guid</code>, 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.
== Collegamenti esterni ==
* [http://www.itu.int/ITU-T/studygroups/com17/oid.html Standard Internazionale "Generazione registrazione di Universally Unique Identifiers (UUIDs) e il loro uso come ASN.1 Object Identifier components"] (ITU-T Rec. X.667 | ISO/IEC 9834-8, tecnicamente compatibile con IETF RFC 4122)
*
* [https://web.archive.org/web/20070510213105/http://www.firefoxextensions.com/guid-generator/ Estensione per Firefox per la generazione di GUID]
*
*
*
{{Portale|Informatica}}
Riga 88 ⟶ 86:
[[Categoria:Gestione del software]]
[[Categoria:Microsoft]]
|