Pembuatan dan Pengoptimalan GUID

Karena CLSID, seperti pengidentifikasi antarmuka (IID), adalah GUID, tidak ada kelas lain, tidak peduli siapa yang menulisnya, memiliki CLSID duplikat. Pelaksana server umumnya mendapatkan CLSID melalui fungsi CoCreateGuid. Fungsi ini dijamin menghasilkan CLSID unik, sehingga pelaksana server di seluruh dunia dapat mengembangkan dan menyebarkan perangkat lunak mereka secara independen tanpa takut tabrakan yang tidak disengaja dengan perangkat lunak yang ditulis oleh orang lain.

Menggunakan CLSID unik menghindari kemungkinan tabrakan nama di antara kelas karena CLSID sama sekali tidak terhubung ke nama yang digunakan dalam implementasi yang mendasarinya. Misalnya, dua vendor yang berbeda dapat menulis kelas yang disebut "StackClass," tetapi masing-masing akan memiliki CLSID yang unik dan karenanya tidak dapat dikacaukan.

COM sering harus memetakan GUID (IID dan CLSID) ke beberapa set nilai lain yang sangat besar. Sebagai pengembang aplikasi, Anda dapat membantu mempercepat pencarian tersebut, dan dengan demikian meningkatkan performa sistem, dengan menghasilkan GUID untuk aplikasi Anda sebagai blok nilai berturut-turut.

Cara paling efisien untuk menghasilkan blok GUID berturut-turut adalah dengan menjalankan utilitas uuidgen menggunakan sakelar -n dan -x, yang menghasilkan blok UUID, masing-masing nilai DWORD pertamanya bertambah satu.

Misalnya, jika Anda mengetik

uuidgen -n5 -x

utilitas uuidgen akan menghasilkan blok UUID yang mirip dengan yang berikut:

12340001-4980-1920-6788-123456789012
12340002-4980-1920-6788-123456789012
12340003-4980-1920-6788-123456789012
12340004-4980-1920-6788-123456789012
12340005-4980-1920-6788-123456789012
 

Salah satu metode untuk menghasilkan dan melacak GUID untuk seluruh proyek dimulai dengan menghasilkan blok dari beberapa UUID dalam jumlah besar, misalnya 500. Misalnya, jika Anda mengetik

uuidgen -n500 -x > guids.txt

utilitas akan menghasilkan 500 UUID berturut-turut dan menulisnya ke file teks yang ditentukan. Anda kemudian dapat memeriksa file ini ke pohon sumber Anda, menyediakan satu repositori untuk semua GUID yang akan digunakan dalam proyek. Karena orang-orang memerlukan GUID untuk bagian proyek mereka, mereka dapat memeriksa file, mengambil namun banyak GUID yang mereka butuhkan, menandainya sebagai diambil dan meninggalkan catatan tentang di mana dalam kode atau "spesifikasi" mereka menggunakannya.

Selain meningkatkan performa sistem, menghasilkan blok GUID berturut-turut dengan cara ini memiliki manfaat berikut:

  • File pusat yang berisi semua GUID untuk aplikasi memudahkan untuk melacak GUID mana untuk apa dan orang mana yang menggunakannya.
  • Blok GUID berturut-turut yang terkait dengan aplikasi tertentu membantu pengembang dan penguji mengenali GUID internal selama penelusuran kesalahan dan membuatnya lebih mudah untuk menemukannya di registri sistem karena disimpan secara berurutan.

Tanggung Jawab Server COM