Le modèle DCOM ( Distributed Component Object Model ) est une technologie propriétaire de Microsoft permettant la communication entre les composants logiciels sur des ordinateurs en réseau . Initialement appelé « Network OLE », DCOM étend le protocole COM de Microsoft et fournit l'infrastructure de communication sous-jacente au serveur d'applications COM+ de Microsoft .
L'extension de COM en COM distribué était due à l'utilisation intensive de DCE/RPC (environnement de calcul distribué/appels de procédure à distance) – plus précisément la version améliorée de Microsoft, connue sous le nom de MSRPC .
En ce qui concerne les extensions qu'il a apportées à COM, DCOM a dû résoudre les problèmes suivants :
- Marshalling – sérialisation et désérialisation des arguments et des valeurs de retour des appels de méthode « sur le réseau ».
- Collecte des déchets distribuée – garantissant que les références détenues par les clients des interfaces sont libérées lorsque, par exemple, le processus client a planté ou que la connexion réseau a été perdue.
- Regrouper un grand nombre d'objets du navigateur du client en une seule transmission afin de minimiser l'utilisation de la bande passante.
L'un des facteurs clés pour résoudre ces problèmes est l'utilisation de DCE/RPC comme mécanisme RPC sous-jacent à DCOM. DCE/RPC a des règles strictement définies concernant le marshalling et la responsabilité de la libération de la mémoire.
DCOM était un concurrent majeur de CORBA . Les partisans de ces deux technologies les voyaient comme le modèle de réutilisation du code et des services sur Internet . Cependant, les difficultés rencontrées pour faire fonctionner ces technologies à travers les pare-feu Internet et sur des machines inconnues et non sécurisées ont fait que les requêtes HTTP classiques , associées aux navigateurs web, se sont imposées. Microsoft a même tenté de remédier à ces lacunes en ajoutant un transport HTTP supplémentaire à DCE/RPC, appelé ncacn_http (Network Computing Architecture connection-oriented protocol).
DCOM a été lancé publiquement en tant que version bêta pour Windows 95 le 18 septembre 1996.
DCOM est pris en charge nativement dans toutes les versions de Windows à partir de Windows 95, et dans toutes les versions de Windows Server depuis Windows NT 4.0
de Windows NT 4.0 et inclut le code source d'un service de registre Windows NT .En 1995, Digital et Microsoft annoncèrent Affinity for OpenVMS (également connu sous le nom de NT Affinity), un système conçu pour permettre à OpenVMS de servir de couche de persistance pour les applications client-serveur Windows NT . Dans le cadre de cette initiative, une implémentation du modèle DCOM (Distributed Component Object Model) fut ajoutée à OpenVMS Alpha. Afin de prendre en charge DCOM, VMS fut doté d'implémentations du Registre Windows, de l'authentification NTLM et d'un sous-ensemble des API Win32 nécessaires à la prise en charge de COM. DCOM fut initialement ajouté à OpenVMS V7.2-1 pour la version Alpha. Une implémentation similaire de DCOM fut ajoutée à Digital Unix dans le cadre du programme AllConnect.
TangramCOM était un projet distinct de Wine, axé sur la mise en œuvre de DCOM sur les smartphones sous Linux.