Разработка приложений в рамках COM . Реферат. Информатика, ВТ, телекоммуникации.

Разработка приложений в рамках COM . Реферат. Информатика, ВТ, телекоммуникации.




💣 👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻



























































Вы можете узнать стоимость помощи в написании студенческой работы.


Помощь в написании работы, которую точно примут!

Похожие работы на - Разработка приложений в рамках COM

Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе

Нужна качественная работа без плагиата?

Не нашел материал для своей работы?


Поможем написать качественную работу Без плагиата!

1. Введение.................................................................................................................................................................................. 3


2. Обзор COM-технологии............................................................................................................................................... 3


2.1. Состав COM-объекта................................................................................................................................................... 4


2.2. Интерфейсы....................................................................................................................................................................... 4


2.3. Свойства COM-объектов........................................................................................................................................... 6


2.4. COM-серверы...................................................................................................................................................................... 7


2.5. Механизм маршаллинга...................................................................................................................................... 7


2.6. Фабрики классов.......................................................................................................................................................... 8


2.7. Библиотеки типов........................................................................................................................................................ 9


2.8. Диспетчерский интерфейс.................................................................................................................................... 10


2.9. Привязка идентификаторов............................................................................................................................... 11


2.10. Пользовательские интерфейсы.......................................................................................................................... 11


2.11. Двойные интерфейсы................................................................................................................................................. 12


3. Расширения COM............................................................................................................................................................ 12


3.1. OLE/Active document................................................................................................................................................ 13


3.2. Automation.................................................................................................................................................................... 13


3.3. ActiveX control........................................................................................................................................................... 14


3.4. Межпроцессные визуальные объекты........................................................................................................ 14


3.5. OPC......................................................................................................................................................................................... 14


4. Средства разработки COM-приложений...................................................................................................... 15


В данной работе кратко рассмотрена технология COM,
которая в настоящее время широко применяется при разработке программного обеспечения,
интеграции программных продуктов в единые информационные системы. Целью
разработки COM-технологии являлось стремление к интеграции программного
обеспечения через стандартизацию механизмов взаимодействия программных модулей
между собой. На основе данной технологии, которая является масштабируемой,
разработано огромное число технологий, которые стали стандартами в
разнообразных сферах применения информационных технологий – от управления
технологическими процессами в промышленности до домашних персональных
компьютеров. Массовое применение COM отчасти связано с мощью ее разработчика,
фирмы Microsoft. С этим приходится считаться, и каждый программный продукт,
выпущенный под платформу Windows, для достижения коммерческого успеха обязан
соответствовать инновациям Microsoft.






Технология COM (Component Object Technology) –
объектно-ориентированная программная спецификация, предложенная Microsoft. COM
предназначена для повышения надежности взаимодействия программных продуктов
между собой. Данная технология не определяет структуру программного продукта,
язык программирования и прочие детали реализации. COM является стандартом,
который регламентирует модель программного объекта, соответствующий требованиям
COM-технологии. Программный объект, созданный согласно спецификации COM
называется COM-объектом. Данная технология определяет механизм
взаимодействия COM-объектов между собой. COM относится к так называемым
двоичным стандартам, т.к. прилагается к оттранслированному в двоичный код
программному объекту. Взаимодействие COM-объектов обеспечивается набором
предопределенных подпрограмм, называемыми интерфейсами, доступ к которым
обеспечивается через уникальные идентификаторы интерфейсов GUID (Global
Unique Interface Identifyer), уникальность которых гарантирует операционная
система. Такой механизм схож с использованием указателей при доступе к объектам
в объектно-ориентированных языках программирования, что дает возможность
прозрачного управления объектами, т.к. доступ к ним обеспечивается через
указатели. COM-технология расширяет этот механизм, перенося применение
указателей (в виде GUID) для доступа к объектам на уровень операционной
системы. Таким образом, COM-объекты могут быть прозрачно друг для друга
модифицироваться, т.к. доступ к объектам обеспечивается через GUID. COM
технология включает в себя также библиотеку, в которой содержится набор
стандартных интерфейсов, которые определяют ядро функциональности COM и
небольшой набор API функций, разработанных для создания COM-объектов и управления
ими.


Архитектура COM является расширяемой, и на ней базируются
другие технологии Microsoft, такие как OLE и ActiveX . Эти
технологии в настоящее время являются расширениями операционной системы, и
определяют свои собственные правила работы и предлагают свои библиотеки для
создания объектов и для управления объектами на основе данных технологий.
Используя COM как основу, разработчики программного обеспечения получают
возможность создавать свои собственные расширения таким образом, что
программные объекты созданные, по правилам COM-технологии могут работать с
другими COM-объектами через унифицированный механизм взаимодействия, который
предлагает COM.


COM использует такое понятие как «класс», которое по
смыслу означает то же самое, что и в объектно-ориентированных средствах
разработки. COM-объект является объектом COM-класса (COM class).
COM-классы, для различия с классами в объектно-ориентированных языках, с
помощью которых может создаваться приложение, обычно называются соклассами
(CoClass). Далее в тексте будет использоваться терминология, исходящая из
объектно-ориентированного программирования.






В COM-технологии различаются следующие строительные
блоки, используемые для создания объектов:


· 
Interface
(COM-интерфейс) - множество прототипов функций (методов), чисто определенных.
Термин «чисто определенный метод» или «абстрактный метод» исходит
теории объектно-ориентированного анализа, и означает, что в определении класса
отсутствует реализация метода, а присутствует только его определение. От такого
класса нельзя создавать объекты. Его предназначение – описать фундаментальные
общности для всех производных классов;


· 
COM object (COM-объект)
– объект класса CoClass, который содержит реализацию COM интерфейса;


· 
COM/ActiveX server (COM
сервер или ActiveX сервер)– модуль, такой как EXE, DLL или OCX, который
содержит машинный код COM или ActiveX объектов;


· 
Class factory (фабрика
классов)– объект, который может создавать COM-объекты из CoClass;


· 
Type library
(библиотека типов) – файл, содержащий информацию о типах данных, которые
использует COM/ActiveX сервер.


Интерфейсы являются основными
строительными единицами COM. Они объединяются на семантически связанные группы
подпрограмм, через которые COM-объекты осуществляют взаимодействие:




COM определяет следующие ключевые
аспекты, связанные с COM-интерфейсами:




· 
Методы интерфейса абстрактны (чисто определены). Интерфейс представляет собой набор прототипов методов, чье назначение
состоит только в определении интерфейса. Определения прототипов методов
включает в себя определения числа и типов передаваемых значений, возвращаемого
значения, а также ожидаемого поведения объекта. Как методы реализованы, в
определение интерфейса не включается. Таким образом, реализуется полиморфизм
интерфейса, т.к. каждый потомок, наследующий интерфейс, может включать
собственную реализацию метода;


· 
Интерфейс подчиняется двоичному стандарту. Так как все методы интерфейса абстрактны, интерфейс представлен как
указатель на vtable (virtual table) . Каждая запись в vtable представляет
собой ссылку на соответствующий метод класса, который содержит реализацию
интерфейса. Определение интерфейса как указателя устанавливает протокол для
доступа к COM-объекту, который является двоичным. Таким образом, получение
доступа к реализации метода интерфейса объекта представляет собой через
последовательную процедуру получения указателей:


С GUID система связывает указатель на интерфейс.
Указатель на интерфейс, в свою очередь является указателем на vtable, через
которую обеспечивается указатель на таблицу указателей на код с реализациями
методов. Множество объектов одного класса в системе используют одну общую
vtable, и для каждого такого объекта создается структура с частными данными,
необходимыми для корректного вызова функций.


· 
Интерфейс включает в себя определенную
функциональность. Методы интерфейса семантически
связаны по функциональности и назначению. Согласно этому, методы интерфейса
обычно именуется согласно своему назначению, и имя предваряется заглавной I.
Для примера, метод IMalloc предназначен для размещения и освобождения памяти;



· 
Интерфейс имеет уникальный идентификатор. Интерфейсы различаются посредством использования глобальных
идентификаторов GUID, которые используются для ссылки на идентификаторы
конкретных интерфейсов IID (Interface Identifier). Каждый
интерфейс имеет свой IID, и при регистрации в системе получает связанный с ним
GUID. Использование GUID более совершенно, чем использование символьных имен,
т.к. гарантирует отсутствие конфликтов имен при обновлении программных
продуктов (выхода новых версий) и при использовании программного обеспечения от
различных производителей;


· 
Интерфейс не может измениться после регистрации
в системе. Каждый интерфейс предназначен для
выполнения определенной задачи, и определяет, какие данные поступают на
обработку и какие данные выводятся. Таким образом, после того, как интерфейс
опубликован в системе, и стал доступен для использования, он не должен
меняться. Любое изменение в семантике интерфейса ведет к необходимости оявления
нового интерфейса. Однако существует возможность безопасной реализации
многоинтерфейсных объектов посредством использования для доступа к разным
версиям интерфейса разные IID.


· 
Интерфейсы наследуют функциональность от одного
базового предка. Все интерфейсы прямо или косвенно
являются потомками интерфейса IUnknown. Этот интерфейс обеспечивает
базовую функциональность интерфейса, которая включает в себя динамический опрос
объекта (dynamic quering) и управление жизненным циклом объекта (lifetime
managment) . Эта функциональность обеспечивается тремя методами интерфейса
IUnknown: QueryInterface , AddRef и Release . Каждый класс,
который реализует интерфейс, должен реализовать эти три метода, наряду с
методами, унаследованные от другого интерфейса, и своими собственными методами.
Ниже представлено краткое описание функционального назначения упомянутых
методов:


-
QueryInetrface
обеспечивает опрос объекта и доступ к указателю на интерфейс. QueryInerface
является первой записью в vtable, и предлагает эффективный путь для определения
возможностей объекта, в простейшем случае через этот метод при установлении
связи обеспечивается передача указателя на интерфейс IUnknown тому объекту,
который пытается получить доступ к данному объекту. Данный метод также делает
возможным обновление COM объекта без потерь на обновление остальных зависимых
объектов, т.к. объект может быть динамически опрошен клиентами через указатель
на IUnknown. Это функция носит название dynamic quering;


-
AddRef и Release
находятся на втором и третьем местах в vtable. Это простые счетные функции,
которые предоставляются для управления временем жизни объекта. Пока внутренний
счетчик объекта, отражающий количества раз вызова AddRef и Release больше нуля
(вызов AddRef может увеличивать его значение), объект остается в памяти. Как
только значение счетчика достигает нуля (вызов Release может уменьшать его
значение), реализация интерфейса может безопасно удалить все зависимые
нижележащие объекты. Это функция носит название lifetime managment;




COM-объект – это объект CoClass, который является
классом, реализующим один или более интерфейсов. COM-объект предоставляет
функции, которые доступны через указатель на один из его интерфейсов. Всвязи с
этим, COM-объект обладает следующими особенностями:


· 
COM-объект защищен от прямого изменения внешними
программами в своих данных, т.к. доступ к COM-объекту возможен только через
указатель на интерфейс;


· 
COM-объект может быть использован приложениями,
реализованными практически на любых современных средствах разработки приложений
(алгоритмических языках), с любой внутренней организацией приложения, главное,
чтобы средство разработки позволяло работать с указателями на структуры, на
массивы и на функции.








Объект
COM-класса должен иметь в своем составе фабрику классов, и идентификатор класса
CLSID (Class Identifier), так чтобы COM-объект мог быть создан на основе
существующего модуля.




COM-сервер
– это приложение, или библиотека, предоставляющее определенный набор сервисных
функций для клиентских приложений или библиотек.


COM-сервер
состоит из COM-объектов. Например, COM-сервер, который включает в себя код
элементов управления ActiveX (ActiveX control)– является ActiveX-сервером. Для
разработчика имеется большое число библиотек, которые можно использовать для
создания COM-объектов. В качестве примера можно привести библиотеку Microsoft
Active Template Library, предоставляющую набор шаблонов, на основе которых
можно создавать свои собственные программные продукты, построенные по
COM-технологии. Например, шаблон для COM-сервера включает в себя код для
основных функций, которые должен обеспечивать COM-сервер: регистрация сервера в
системе, загрузка/выгрузка сервера, создание объектов, управления фабриками
классов, обеспечение выдачи информации о сервере, включая: тип сервера,
help-файл, имя сервера, библиотека типов и т.д.




Клиенты
не должны знать, каким образом сервер выполняет свои функции, и клиенты не
должны знать, где сервер находится – все взаимодействие
осуществляется через указатели на интерфейс сервера. COM-сервер может быть
следующих типов:




· 
In-process server
(внутренний сервер) – программный DLL модуль, работающий в рабочем пространстве
памяти клиентского приложения:


· 
Local server (локальный
сервер) – программный EXE модуль, работающий в отдельном адресном пространстве;




· 
Remote server (удаленный
сервер) – программный EXE модуль, работающий на удаленной машине:


Разница
между внутренним и удаленным серверами в том, какой тип межпроцессной связи
используется. В данном случае существует необходимость использования
посредников, которые обеспечивают передачу параметров и вызов функций. Такой
механизм называется маршаллингом (marshalling). Т.к. в случае, когда
клиент и сервер находятся в разных адресных пространствах, доступ к ресурсам не
может быть осуществлен непосредственно через указатели. Поэтому посредники со
стороны клиента (proxy) осуществляют упаковку аргументов в пакеты маршаллинга
(marshalling packets), и обеспечивают удаленный вызов процедур (Remote Procedure
Call). Посредник со стороны сервера (stub) реализуют распаковку параметров, и
помещение их в стек. Далее осуществляется вызов непосредственно реализации
метода. По сути, сервер создает клиентский вызов процедуры в своем собственном
адресном пространстве.


Посредники
используют COM-средства, для осуществления взаимодействия в разных процессах.
Для взаимодействия объектов, находящихся на разных машинах, используются
средства расширения COM – распределенная COM (Distributed COM или DCOM). COM
предлагает стандартный механизм маршаллинга – интерфейс диспетчеризации
(Dispatch Interface).




Фабрики
или производители классов (class factories) - специальный тип COM-объектов,
используемый для создания и регистрации COM-объектов. Производители классов
реализуют стандартный механизм создания объектов COM-классов. Классы без
идентификаторов класса (CLSID) и фабрики классов могут быть созданы посредством
вызова конструктора. Использование фабрики классов для создания объектов означает,
что для клиентского приложения, которому необходимо создать объект класса, не
нужно знать об этом классе ничего, кроме его идентификатора CLSID. Фабрика
классов возьмет вызов конструктора на себя, включая передачу аргументов в
конструктор и остальные специфичные действия. Класс фабрики классов может быть
объединен со многими COM-классами, для каждого из которых могут создаваться
объекты. При создании же объекта фабрики классов, в конструктор передается
идентификатор CLSID класса, для создания объектов которого предназначается
фабрика. Этот идентификатор определяет, объекты какого класса могут быть
созданы с помощью данной фабрики классов. Таким образом, каждый экземпляр
фабрики классов в системе может быть использован для создания объектов только
одного определенного класса.




Создание
объекта класса производится посредством следующих действий:


· 
вызова глобальной API-функции CoGetClass, которая
ищет в системном реестре зарегистрированный класс с данным CLSID, определяет
путь к серверу, загружает сервер и выдает указатель на интерфейс производителя
классов (обычно IClassFactory);


· 
Указатель на IСlassFactory может быть использован
для вызова методов производителя классов, например: CoCreateInstance (создание
объекта);




Альтернативой рассмотренному методу может служить вызов
глобальной API-функции CoCreateInstance, которая выполняет перечисленный выше
действия и создает объект класса с идентификатором CLSID, но таким образом
можно создать только один объект данного класса, т.к. функция не возвращает
указатель на интерфейс производителя классов.




Библиотека типов (type library) предоставляет информацию об
используемых типах объектов и интерфейсах, которые предоставляются
ActiveX-серевером. Библиотека типов по смыслу аналогична, например, заголовочному
файлу (header) для разработок на языке C и любому другому модулю, содержащему
информацию об используемых типах данных и объектах. Большинство информации
подобного рода может быть записано в библиотеку типов. Получить информацию из
библиотеки типов можно путем опроса запущенного объекта или же посредством
загрузки непосредственно библиотеки типов. После создания библиотеки типов, к
ней обеспечивается доступ через специальный тип интерфейсов: ITypeLib,
ITypeInfo и ITypeComp. Интерфейс ITypeLib обеспечивает доступ к информации о
типах в библиотеке типов, а также к описаниям конкретных объектов, которые, в
свою очередь, могут быть получены через интерфейс ITypeInfo.


Библиотека типов содержит информацию о том, какой
интерфейс, в каком COM-объекте содержится, количество и тип методов интерфейсов
и их параметров. Эти описания включают в себя уникальные идентификаторы классов
(CLSID) и их интерфейсов (IID), через которые осуществляется корректный доступ
к объектам. В библиотеке типов также может содержаться следующая информация:


· 
Описания пользовательских типов данных, связанных с
пользовательскими интерфейсами;


· 
Функции, которые экспортируются ActiveX-сервером,
но которые не являются интерфейсными методами;


· 
Информация об энумерованных типах данных (символьных
константах);


· 
Ссылки на описания типов в других библиотеках
типов.




Использование библиотеки типов очень важно для объектов,
которые предназначены для распространения и последующего использования многими
пользователями. Также существует еще ряд причин использования библиотек типов:


·
Объекты, которые используют непосредственную
привязку к vtable, должны быть описаны в библиотеке типов, т.к. ссылки в vtable
формируются во время компиляции;


·
Объекты, созданные из классов, которые поддерживают
интерфейс IProvideClassInfo, должны иметь библиотеку типов. Объекты, имеющие в
своем составе данные интерфейс, являются типизированными COM-объектами, т.к.
предоставляют информацию об используемых типах (из библиотеки типов);


·
Элементы управления ActiveX должны иметь библиотеку
типов, которая содержится непосредственно в DLL или OCX файле, содержащем код
ActiveX-сервера;


·
Приложения, которые являются Automation-серверами,
должны иметь библиотеку типов, для более удобно связывания с клиентами;


·
Использование библиотеки типов в любом случае
облегчает работу с внешними приложениями, которые могут узнать об используемых
типах данных, и т.о. исключается использование более громоздкого метода
передачи параметров в системе через универсальный механизм;




Диспетчерский интерфейс (dispatch interface) –
стандартная специальная реализация интерфейса IDispatch, которую предлагает
COM. Данная реализация обеспечивает выполнение процедур позднего связывания
(late binding) и маршаллинга. Диспетчерский интерфейс хранит внутри себя
таблицу диспетчерских идентификаторов (dispID), каждый из которых является
уникальным идентификатором члена интерфейса, и таблица, по сути, реализует
отображение соответствующего dispID на имя каждого члена интерфейса. Клиент,
желающий получить доступ к ресурсу сервера (к методу или к свойству), должен
знать dispID для соответствующего ресурса. Такую информацию можно получить
через вызов метода интерфейса IDispatch, который называется GetIDsOfNames, и
который является первой записью в vtable для интерфейса IDispatch. Таким
образом, клиент получает информацию типах данных, используемых сервером, и
получает таблицу диспетчерских идентификаторов, с отображением имени каждого
ресурса сервера на соответствующий dispID. Данная операция и со стороны
клиента, и со стороны сервера, при использовании стандартной реализации
интерфейса IDispatch реализуется автоматически. Эта процедура называется поздним
связыванием , т.к. осуществляется на этапе выполнения программы, а не на
этапе компиляции. Имея для каждого имени ресурса сервера соответствующий
dispID, клиент может осуществить обращение к нему, используя метод интерфейса
dispID, который именуется Invoke. Метод Invoke имеет сигнатуру, допускающую
вызов с любым количеством параметров, чем обеспечивается его универсальность.
Реализация Invoke распаковывает параметры и осуществляет вызов соответствующего
метода или свойства и осуществляет контроль над выдачей исключений при
выполнении метода или свойства. Когда выполнение метода или обработка свойства заканчивается,
возвращаемые значения метода или свойства отправляются обратно клиенту. Если
обращение клиента к серверу переходит через границы процесса или машины, то
автоматически реализуются все действия по организации маршаллинга. Такая
прозрачность является основным достоинством использования интерфейса
диспетчеризации.


Основным недостатком диспетчерского интерфейса является
ограничение на типы данных, которые можно использовать при передаче параметров.
Это следует из необходимости упаковки и распаковки параметров при осуществлении
маршаллинга. Допускается использовать 13 стандартных типов данных. На
пользовательские типы данных устанавливаются достаточно строгие ограничения.
Если требования задачи не укладываются в эти ограничения, разработчик имеет возможность
реализовать маршаллиг, путем написания своего proxy/stub кода. Еще одним
недостаток проявляется в том, что при компиляции программы не выполняется
проверка соответствия типов вызываемых функций, т.к. связывание диспетчерских
интерфейсов осуществляется на этапе выполнения программы, и таким образом, не
контролируется вызов Invoke с неверным набором аргументов, что вызывает ошибку
выполнения.




COM предлагает возможность привязки диспетчерских
интерфейсов на этапе компиляции. Если объект описан в библиотеке типов, то
dispID может быть прочитан для каждого ресурса объекта, т.к. dispID является
для каждого метода или свойства фиксирован, и является частью описания
используемых типов данных объекта. Такая процедура называется привязкой
идентификаторов (ID bindig). Метод GetIDsOfNames вызывается компилятором во
время трансляции программы, таким образом, привязка идентификаторов является
формой раннего связывания (early binding). В результате, на этапе
выполнения, при первом вызове сервера клиентом, не требуется вызов процедуры
привязки интерфейсов, что ускоряет работу. Еще одним достоинством данного
подхода является проверка соответствия типов в обращениях к ресурсам сервера.


Основным недостатком является отсутствие возможности проверки
имени ресурса, если он вдруг изменился. В клиентском объекте все вызовы будут
осуществляться через однажды связанные на этапе компиляции интерфейсные
идентификаторы.




Vtable-интерфейсы (vtable
interfaces) или пользовательские интерфейсы - определяются
пользователем, и допускают вызывать методы интерфейса, пользуясь ссылками из
vtable, при условии, если известен порядок записи ссылок на методы, число и тип
передаваемых аргументов. Первые три записи в vtable соответствуют трем методам
интерфейса IUnkown, за которыми следуют ссылки на остальные поддерживаемые
интерфейсы. Если объект не реализует диспетчерский интерфейс, то следом за
IUnkown непосредственно следуют ссылки на методы пользовательских интерфейсов,
то есть, становится возможно обращение к методам и свойствам объектов
непосредственно через ссылки из vtable.


В случае если сервер имеет библиотеку типов и реализует
диспетчерский интерфейс, то клиент может получить информацию из библиотеки
типов, без осуществления вызова функций через привязки. Достаточно получить
идентификаторы dispID диспетчерского интерфейса, и осуществить привязку
непосредственно к vtable. Таким образом, можно осуществить более быстрый доступ
к ресурсам объекта, осуществляя прямой вызов через ссылки в vtable, не
используя диспетчерский интерфейс. Код непосредственной привязки к vtable может
быть автоматически сгенерирован на этапе компиляции. Разумеется, такой метод
вызова функций гораздо быстрее, чем методы привязки идентификаторов (т.к. вызов
осуществляется через Invoke, что вызывает процедуры упаковки/распаковки
параметров) и позднего связывания (т.к. осуществляется полный цикл работы с
диспетчерским интерфейсом).








Несмотря на то, что COM предоставляет возможность
обращения к ресурсам серверов используя vtable-интерфейсы, что повышает
скорость взаимодействия клиента и сервера, некоторые клиенты могут быть
разработаны таким образом, что обращаются к объектам только через интерфейс
диспетчеризации. Это могут быть, например, интерпретируемые макроязыки, которые
включают в себя средства для работы с COM-объектами, и в которых не реализованы
возможности для привязки к vtable. Таким образом, COM предлагает то, что
называется двойственным, или двойным интерфейсом (dual interface). Двойные
интерфейсы предлагают два пути для доступа к ресурсам сервера: через
диспетчерский интерфейс и через vtable-интерфейс. Двойной интерфейс
определяется как наследник IDispatch.


Преимущества использования двойных интерфейсов:


· 
Двойные интерфейсы предлагают возможность получения
указателей на ресурсы сервера по их именам при компиляции объекта, таким
образом, позволяя создавать клиентов, с привязкой к vtable на этапе компиляции;


· 
Двойные интерфейсы позволяют клиентам осуществить
прямой доступ к ресурсам сервера через vtable-интерфейсы, что увеличивает
скорость взаимодействия объектов;


· 
Двойные интерфейсы имею преимущества проверки
соответствия типов на этапе компиляции (преимущества раннего связывания);


· 
Клиенты, не работающие напрямую с
vtable-интерфейсами имеют возможность взаимодействовать с объектами через
диспетчерские интерфейсы;


· 
Двойные интерфейсы предоставляют возможность
маршаллинга для обоих своих частей – для диспетчерского интерфейса и
vtable-интерфейса. При обращении к серверу, находящемуся в другом адресном
пространстве осуществляется автомаршаллинг при обращении через любую часть
ин
Похожие работы на - Разработка приложений в рамках COM Реферат. Информатика, ВТ, телекоммуникации.
Управление Кредитными Рисками В Коммерческом Банке Курсовая
Контрольная работа по теме Особенности расчета статистических показателей
Реферат: Ассортимент меховых и овчинно-шубных изделий
Подобие Фигур 9 Класс Геометрия Контрольная Работа
Отчет По Учебной Практике Характеристика
Контрольная Работа По Теме Клетка Единица Живого
Контрольная работа по теме Внешняя политика России XIX века
Контрольная работа: Развитие агропромышленного комплекса страны
Отчет по практике по теме Психологическая подготовка беременных к родам
Реферат: Тема смерти-тема жизни: философия социологии. Скачать бесплатно и без регистрации
Учебное Пособие На Тему Право В Системе Социального Регулирования
Реферат: Правовой статус государственных и муниципальных унитарных предприятий
Курсовая работа: Ценообразование в маркетинге. Скачать бесплатно и без регистрации
Реферат: Автоматизированная система распределения мест и оценок качества олимпиадных заданий
Реферат: Рукописная книга европейского средневековья
Курсовая работа по теме Методические условия реализации метода проектов при обучении русскому языку в 4 классе
Реферат по теме Окислительно-восстановительное титрование
Сочинение Про Дубровского 6 Класс Литература Краткое
Сочинение По Картине Прилетели
Реферат: Порівняльна характеристика сміттєспалювальних заводів
Похожие работы на - Проектирование привода общего назначения
Реферат: Прямой цикл Карно и тепловая изоляция
Реферат: Рынок товаров для животных в Приморском крае

Report Page