DCOM | это... Что такое DCOM? (original) (raw)

DCOM (англ. Distributed COM) — расширение Component Object Model для поддержки связи между объектами на различных компьютерах по сети.

Принцип работы

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

Для вызова удалённого объекта параметры должны быть извлечены из стека (или из регистров процессора), помещены в буфер и переданы через сеть. Процесс извлечения параметров и помещения их в буфер называется маршалинг. Этот процесс нетривиален, так как параметры могут содержать указатели на массивы и структуры, которые, в свою очередь, могут содержать указатели на другие структуры. На сервере производится обратный процесс воссоздания стека, называемый демаршалинг, после чего вызывается требуемый объект. После завершения вызова производится маршалинг возвращаемого значения и выходных параметров и отправка их клиенту.

Для выполнения маршалинга и демаршалинга необходимо иметь точное описание метода, включая все типы данных и размеры массивов. Для описания используется язык описания интерфейсов (IDL), входящий в стандарт DCE RPC. Полученные файлы описания компилируются специальным компилятором IDL в исходный код на языке Си, производящий маршалинг и демаршалинг для указанных интерфейсов. Код, запускаемый на стороне клиента, называется «прокси», на стороне объекта – «заглушка» и загружается библиотекой COM по необходимости.

Объектный RPC

Протокол DCOM, известный как объектный RPC (ORPC) является расширением протокола DCE RPC. ORPC использует стандартные пакеты RPC с дополнительной, необходимой для DCOM информацией. Заголовок вызова содержит идентификатор указателя интерфейса (IPID), который используется для идентификации необходимого интерфейса необходимого объекта на сервере, а параметры начинаются с дополнительного неявного аргумента.

Данные в пакете ORPC передаются в стандартном формате NDR с дополнительным типом данных, представляющем собой идентификатор объекта.

Клиент должен периодически подтверждать свою активность путём «пингования» сервера. Если период пингования истёк без получения «пинга», считается, что клиент завершил работу аварийно и все его ссылки на интерфейсы объекта уничтожаются.

Просмотр этого шаблона Программные интерфейсы и фреймворки Microsoft Windows
Графика Проводник WindowsDirectXDirect3DGDIWindows Presentation Foundation • Windows Color System • Windows Image Acquisition • Windows Imaging Component
Звук DirectSound • DirectMusic • XACT • Speech APIMME
Мультимедиа DirectShowWindows MediaMedia Foundation
Веб MSHTMLMSXML • Платформа RSS для Windows • JScriptActiveXXMLHttpRequest • Гаджеты
Доступ к данным Компоненты Microsoft Data Access • Extensible Storage Engine • ADO.NET • Sync Framework • Jet-механизм
Сети Winsock (LSP) • Filtering Platform • NDIS • Windows Rally • Сервис фоновой интеллектуальой передачи данных • P2P API
Коммуникации TAPI
Администрирование Консоль Win32 • Windows Script Host • Инструментарий управления Windows • PowerShell • Планировщик задач • Offline Files • Теневое копирование • Windows Installer • Диспетчер ошибок Windows • Журнал событий Windows
Модель компонентов COMCOM+DCOM.NET Framework
Библиотеки Microsoft Foundation Classes (MFC) • Active Template Library (ATL) • Windows Template Library (WTL) • Base Class Library (BCL)
Разработка драйверов Windows Driver ModelWindows Driver Foundation (KMDF • UMDF)
Безопасность CryptoAPI (CAPICOM) • Windows CardSpace • Data protection API • Security Support Provider Interface
.NET .NET FrameworkASP.NETADO.NET.NET RemotingWindows Presentation FoundationWindows Workflow FoundationWindows Communication FoundationWindows CardSpaceXNA FrameworkSilverlight • Библиотека параллельного программирования
Межпроцессноевзаимодействие Dynamic Data Exchange (DDE) • MSRPC • Именованные каналы
Текст иподдержка языков Framework Текстовых сервисов • Объектная модель текстов • Редактор метода ввода • Языковые пакеты • Многоязычный интерфейс
Игры XNA FrameworkDirectX
Просмотр этого шаблона Компоненты Microsoft Windows
Основные AeroClearTypeДиспетчер рабочего столаDirectXПанель задач (ПускОбласть уведомлений) • Проводник (Пространство имён • Специальные папки • Ассоциации файлов) • Windows Search (Smart folders • iFilters) • GDIWIMSMB.NET FrameworkXPS • Active Scripting (WSHVBScriptJScript) • COM (OLEDCOMActiveX • Структурированное хранилище • Сервер транзакций) • Теневая копияWDDM • UAA • Консоль Win32
Службыуправления Архивация и восстановление • COMMAND.COMcmd.exeСредство переноса данных • Просмотр событий • Установщикnetsh.exePowerShell • Отчёты о проблемах • rundll32.exe • Программа подготовки системы (Sysprep) • Настройка системы (MSConfig) • Проверка системных файлов • Индекс производительности • Центр обновленияВосстановление системыДефрагментация дискаДиспетчер задачДиспетчер устройствКонсоль управленияОчистка дискаПанель управления (элементы)
Приложения Контакты • DVD Maker • Факсы и сканирование • Internet Explorer • Журнал • Экранная лупаMedia CenterПроигрыватель Windows Media • Программа совместной работы • Центр устройств Windows Mobile • Центр мобильности • Экранный диктор • Paint • Редактор личных символов • Удалённый помощник • Распознавание речи • WordPadБлокнотБоковая панельЗвукозапись • Календарь • КалькуляторНожницыПочта • Таблица символов • Исторические: Movie MakerNetMeetingOutlook ExpressДиспетчер программДиспетчер файловФотоальбом
Игры Chess Titans • Mahjong Titans • Purble Place • Пасьянсы (КосынкаПаукСолитер) • СапёрПинбол • Червы
Ядро ОС Ntoskrnl.exeСлой аппаратных абстракций (hal.dll) • Бездействие системыsvchost.exeРеестрСлужбыДиспетчер управления сервисамиDLL (формат модулей) • PENTLDR • Диспетчер загрузки • Программа входа в систему (winlogon.exe) • Консоль восстановления • Windows RE • Windows PE • Защита ядра от изменений
Службы Autorun.inf • Фоновая интеллектуальная служба передачи • Файловая система стандартного журналирования • Отчёты об ошибках • Планировщик классов мультимедиа • Теневая копияПланировщик задач • Беспроводная настройка
Файловые системы ProtogonNTFS (Жёсткая ссылкаТочка соединенияТочка монтирования • Точка повторной обработки • Символьная ссылкаTxFEFS) • WinFSFATexFATCDFS • UDF • DFS • IFS
Сервер Active Directory • Службы развёртывания • Служба репликации файлов • DNS • Домены • Перенаправление папок • Hyper-VIIS • Media Services • MSMQ • Защита доступа к сети (NAP) • Службы печати для UNIX • Удалённое разностное сжатие • Службы удаленной установки • Служба управления правами • Перемещаемые профили пользователейSharePoint • Диспетчер системных ресурсов • Удаленный рабочий стол • WSUSГрупповая политикаКоординатор распределённых транзакций
Архитектура NT • Диспетчер объектов • Пакеты запроса ввода/вывода • Диспетчер транзакций ядра • Диспетчер логических дисков • Диспетчер учетных записей безопасности • Защита ресурсовlsass.execsrss.exesmss.exe • spoolsv.exe • Запуск
Безопасность BitLockerЗащитникПредотвращение выполнения данных • Обязательный контроль целостности • Защищенный канал данных • UAC • UIPI • БрандмауэрЦентр обеспечения безопасностиЗащита файлов
Совместимость Подсистема UNIX (Interix) • Виртуальная машина DOS • Windows on WindowsWOW64