конструкції цієї мови. Подібна стандартизація у разі бінарних інтерфейсів не потрібна. Різницю між цими двома підходами ілюструє рис. 6. br/>В
Рис. 6 - Різниця між інтерфейсами
Кожен інтерфейс в DCOM має унікальний 128-бітний ідентифікатор, який називається ідентифікатором інтерфейсу (Interface Identifier, IID), Кожен IID абсолютно унікальний, не існує двох інтерфейсів з однаковим ідентифікатором IID. Цей ідентифікатор створюється шляхом комбінування великого випадкового числа, локального часу та адреси мережевого інтерфейсу поточного хоста. Ймовірність того, що два згенерованих індикатора співпадуть, практично дорівнює нулю. p align="justify"> Об'єкт DCOM створюється як екземпляр класу. Щоб створити такий об'єкт, необхідно мати доступ до відповідного класу. Для цієї мети DCOM містить об'єкти класу (class objects). Формально таким об'єктом може бути все, що підтримує інтерфейс IClassFactory. Цей інтерфейс містить метод Createlnstance, який схожий на оператор new в мовах C + + і Java. Виклик методу Createlnstance для об'єкта класу призводить до створення об'єкта DCOM, що містить реалізацію інтерфейсів об'єкта класу. p align="justify"> Таким чином, об'єкт класу представляє собою колекцію об'єктів одного типу, тобто реалізують один і той же набір інтерфейсів. Об'єкти, що належать до одного класу, зазвичай розрізняються тільки в частині поточного стану. Шляхом створення екземплярів об'єкта класу стає можливим звернення до методів цих інтерфейсів. У DCOM на будь-який об'єкт класу можна послатися на його глобальному унікальним ідентифікатором класу (Class Identifier, CLSID). p align="justify"> Всі об'єкти реалізують стандартний об'єктний інтерфейс lUnknown. Коли шляхом виклику Createlnstance створюється новий об'єкт, об'єкт класу повертає покажчик на цей інтерфейс. Найважливіший метод, що міститься в lUnknown, - метод Querylnterface, який на підставі IID повертає покажчик на інший інтерфейс, реалізований в об'єкті. p align="justify"> Важлива відмінність від об'єктної моделі CORBA полягає в тому, що всі об'єкти в DCOM нерезидентні. Іншими словами, як тільки у об'єкта не залишається посилаються на нього клієнтів, цей об'єкт віддаляється. Підрахунок посилань проводиться шляхом виклику методів AddRef і Release, що входять в інтерфейс lUnknown. Наявність виключно нерезидентних об'єктів унеможливлює зберігання кожним з об'єктів свого глобально унікального ідентифікатора. З цієї причини житло в DCOM можуть викликатися тільки за вказівниками на інтерфейси. Відповідно, як ми побачимо пізніше, для передачі посилання на об'єкт іншому процесу необхідно вжити спеціальні заходи. також вимагає динамічного звернення до об'єктів. Об'єкти, запити до яких можуть створюватися динамічно, під час виконання, повинні мати реалізацію інтерфейсу IDispatch. Цей інтерфейс подібний до інтерфейсу динамічно...