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
Графіка Провідник Windows DirectX Direct3D GDI Windows Presentation Foundation Windows Color System Windows Image Acquisition Windows Imaging Component
Звук DirectSound DirectMusic XACT Speech API MME
Мультимедіа DirectShow Windows Media Media Foundation
Веб MSHTML MSXML Платформа RSS для Windows JScript ActiveX XMLHttpRequest Гаджети
Доступ до даних Компоненти 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
Модель компонентів COM COM + DCOM . NET Framework
Бібліотеки Microsoft Foundation Classes (MFC) Active Template Library (ATL) Windows Template Library (WTL) Base Class Library (BCL)
Розробка драйверів Windows Driver Model Windows Driver Foundation (KMDF UMDF)
Безпека CryptoAPI ( CAPICOM) Windows CardSpace Data Protection API Security Support Provider Interface
. NET . NET Framework ASP.NET ADO.NET . NET Remoting Windows Presentation Foundation Windows Workflow Foundation Windows Communication Foundation Windows CardSpace XNA Framework Silverlight Бібліотека паралельного програмування
Межпроцессное
взаємодія
Dynamic Data Exchange (DDE) MSRPC Іменовані канали
Текст і
підтримка мов
Framework Текстових сервісів Об'єктна модель текстів Редактор методу введення Мовні пакети Багатомовний інтерфейс
Ігри XNA Framework DirectX
Перегляд цього шаблону Компоненти Microsoft Windows
Основні

Aero ClearType Диспетчер робочого столу DirectX Панель завдань ( Пуск Область сповіщень) Провідник ( Простір імен Спеціальні папки Асоціації файлів) Windows Search ( Smart Folders iFilters) GDI WIM SMB . NET Framework XPS Active Scripting ( WSH VBScript JScript) COM ( OLE DCOM ActiveX Структуроване сховище Сервер транзакцій) Тіньова копія WDDM UAA Консоль Win32

Служби
управління

Архівація та відновлення COMMAND.COM cmd.exe Засіб перенесення даних Перегляд подій Установник netsh.exe PowerShell Звіти про проблеми rundll32.exe Програма підготовки системи ( Sysprep) Налаштування системи ( MSConfig) Перевірка системних файлів Індекс продуктивності Центр поновлення Відновлення системи Дефрагментація диска Диспетчер завдань Диспетчер пристроїв Консоль управління Очищення диска Панель управління (елементи)

Додатки

Контакти DVD Maker Факсів і сканування Internet Explorer Журнал Екранна лупа Media Center Програвач Windows Media Програма спільної роботи Центр пристроїв Windows Mobile Центр мобільності Екранний диктор Paint Редактор особистих символів Віддалений помічник Розпізнавання мови WordPad Блокнот Бічна панель Звукозапис Календар Калькулятор Ножиці Пошта Таблиця символів Історичні: Movie Maker NetMeeting Outlook Express Диспетчер програм Диспетчер файлів Фотоальбом

Ігри

Chess Titans Mahjong Titans Purble Place Пасьянси ( Косинка Павук Солітер) Сапер Пінбол Чирви

Ядро ОС
Служби

Autorun.inf Фонова інтелектуальна служба передачі Файлова система стандартного журналирования Звіти про помилки Планувальник класів мультимедіа Тіньова копія Планувальник завдань Бездротова настройка

Файлові
системи
Сервер

Active Directory Служби розгортання Служба реплікації файлів Над DNS Домени Перенаправлення папок Hyper-V IIS Media Services MSMQ Захист доступу до мережі (NAP) Служби друку для UNIX Віддалене різницеве ​​стиск Служби віддаленої установки Служба управління правами Переміщувані профілі користувачів SharePoint Диспетчер системних ресурсів Віддалений робочий стіл WSUS Групова політика Координатор розподілених транзакцій

Архітектура

NT Диспетчер об'єктів Пакети запиту вводу / виводу Диспетчер транзакцій ядра Диспетчер логічних дисків Диспетчер облікових записів безпеки Захист ресурсів lsass.exe csrss.exe smss.exe spoolsv.exe Запуск

Безпека
Сумісність

Підсистема UNIX (Interix) Віртуальна машина DOS Windows On Windows WOW64