Распределенная компонентная объектная модель - Distributed Component Object Model
Эта статья поднимает множество проблем. Пожалуйста помоги Улучши это или обсудите эти вопросы на страница обсуждения. (Узнайте, как и когда удалить эти сообщения-шаблоны) (Узнайте, как и когда удалить этот шаблон сообщения)
|
Распределенная компонентная объектная модель (DCOM) это проприетарный Microsoft технология для связи между программные компоненты в сети компьютеры. DCOM, который изначально назывался "Сеть OLE ", расширяется Microsoft с COM, и обеспечивает коммуникационную основу под Microsoft с COM + инфраструктура сервера приложений.
Добавление буквы "D" к COM было связано с широким использованием DCE / RPC (Распределенная вычислительная среда / удаленные вызовы процедур) - в частности, расширенная версия Microsoft, известная как MSRPC.
Что касается расширений, добавленных к COM, DCOM должен был решить проблемы
- Маршаллинг - сериализация и десериализация аргументов и возвращаемых значений вызовов методов "по сети".
- Распространено вывоз мусора - обеспечение того, чтобы ссылки, удерживаемые клиентами интерфейсов, были освобождены, когда, например, произошел сбой клиентского процесса или было потеряно сетевое соединение.
- Он должен был объединить сотни / десятки тысяч объектов, хранящихся в клиентском браузере, с одной передачей, чтобы минимизировать использование полосы пропускания.
Одним из ключевых факторов в решении этих проблем является использование DCE / RPC в качестве основного механизма RPC, лежащего в основе DCOM. В DCE / RPC есть строго определенные правила в отношении маршалинга и того, кто отвечает за освобождение памяти.
DCOM был основным конкурентом CORBA. Сторонники обеих этих технологий видели, что в один прекрасный день они станут образцом для повторного использования кода и сервисов. Интернет. Однако трудности, связанные с тем, чтобы заставить любую из этих технологий работать через Интернет брандмауэры, а на неизвестных и незащищенных машинах означало, что нормальный HTTP запросы в сочетании с веб-браузеры победил их обоих. В какой-то момент Microsoft попыталась, но не смогла предотвратить это, добавив в DCE / RPC дополнительный транспорт HTTP под названием ncacn_http (Протокол, ориентированный на соединение с архитектурой сетевых вычислений). Позже его воскресили, чтобы поддержать Microsoft Exchange 2003 соединение по HTTP.
DCOM был публично запущен как бета-версия для Windows 95 18 сентября 1996 года.[1]
DCOM изначально поддерживается в Windows NT 4.0, Windows 2000, Windows XP и Windows Server 2003, а также в Windows 7, Windows 8, Windows 10, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 и Windows Server 2016.
Закалка
В рамках инициативы, которая началась в Microsoft в рамках цикла Secure Development Lifecycle по реорганизации небезопасного кода, DCOM претерпела некоторые существенные изменения, связанные с безопасностью, в Windows XP Service Pack 2.[2]
Альтернативные версии и реализации
COMsource: Его исходный код доступен вместе с полной документацией, достаточной для использования, а также реализации совместимой версии DCOM. Согласно этой документации, COMsource поступает непосредственно из Windows NT 4.0 и даже включает исходный код для Служба реестра Windows NT.
В Вино Команда также внедряет DCOM для обеспечения бинарной совместимости; в настоящее время они не заинтересованы в сетевой стороне DCOM, которая предоставляется MSRPC. Они ограничены реализацией Отчет о недоставке (Представление сетевых данных) через API Microsoft[нужна цитата ], но стремятся сделать его максимально совместимым с MSRPC.
TangramCOM это отдельный проект от Вино с упором на внедрение DCOM на смартфоны на базе Linux.
В Самба Команда также внедряет DCOM для обеспечения взаимодействия по сети: в отличие от Wine Team, они в настоящее время не заинтересованы в двоичной совместимости, поскольку реализация Samba MSRPC далека от двоичной совместимости с Microsoft MSRPC.
Смотрите также
- ActiveX
- Компонентная объектная модель
- Динамический обмен данными (DDE)
- .NET Remoting
- OLE для управления процессами