El Modelo de Objetos de Componentes Distribuidos ( DCOM ) es una tecnología propietaria de Microsoft para la comunicación entre componentes de software en equipos conectados en red . DCOM, que originalmente se denominaba "Network OLE ", extiende el protocolo COM de Microsoft y proporciona la base de comunicación para la infraestructura del servidor de aplicaciones COM+ de Microsoft .
La extensión de COM a Distributed COM se debió al uso extensivo de DCE/RPC (Distributed Computing Environment/Remote Procedure Calls), más específicamente la versión mejorada de Microsoft, conocida como MSRPC . [ 1 ]
En cuanto a las extensiones que añadió a COM, DCOM tuvo que resolver los siguientes problemas:
- Marshalling : serialización y deserialización de los argumentos y valores de retorno de las llamadas a métodos "a través de la red".
- Recolección de basura distribuida : garantiza que las referencias que mantienen los clientes a las interfaces se liberen cuando, por ejemplo, el proceso del cliente falla o se pierde la conexión de red.
- Combinar un número significativo de objetos en el navegador del cliente en una sola transmisión para minimizar el uso del ancho de banda.
Uno de los factores clave para resolver estos problemas es el uso de DCE/RPC como mecanismo RPC subyacente a DCOM. DCE/RPC tiene reglas estrictamente definidas con respecto a la serialización y quién es responsable de liberar la memoria. [ 2 ]
DCOM fue un importante competidor de CORBA . [ 3 ] Los defensores de ambas tecnologías las veían como el modelo para la reutilización de código y servicios en Internet . Sin embargo, las dificultades para que cualquiera de ellas funcionara a través de cortafuegos de Internet y en máquinas desconocidas e inseguras hicieron que las solicitudes HTTP normales , combinadas con navegadores web, se impusieran a ambas. [ 4 ] En un momento dado, Microsoft intentó solucionar estas deficiencias añadiendo un transporte HTTP adicional a DCE/RPC llamado ncacn_http (protocolo orientado a la conexión de la arquitectura de computación en red). [ 5 ]
DCOM se lanzó públicamente como una versión beta para Windows 95 el 18 de septiembre de 1996. [ 6 ]
DCOM es compatible de forma nativa en todas las versiones de Windows a partir de Windows 95 y en todas las versiones de Windows Server desde Windows NT 4.0 [ 7 ].
Mejoras de seguridad
Como parte de la iniciativa que comenzó en Microsoft como parte del Ciclo de vida de desarrollo seguro para rediseñar el código inseguro, DCOM experimentó algunos cambios significativos centrados en la seguridad en Windows XP Service Pack 2. [ 8 ]
En respuesta a una vulnerabilidad de seguridad reportada por Tencent Security Xuanwu Lab en junio de 2021, [ 9 ] Microsoft lanzó actualizaciones de seguridad para varias versiones de Windows y Windows Server, reforzando el acceso a DCOM. [ 10 ]
Versiones e implementaciones alternativas
COMsource es una implementación de DCOM basada en Unix que permite la interoperabilidad entre diferentes plataformas. Su código fuente está disponible, junto con documentación completa y exhaustiva, suficiente para usar e implementar una versión interoperable de DCOM. COMsource proviene directamente del código fuente de Windows NT 4.0 e incluye el código fuente de un servicio de registro de Windows NT . [ 11 ]
En 1995, Digital y Microsoft anunciaron Affinity para OpenVMS (también conocido como NT Affinity), que tenía como objetivo permitir que OpenVMS sirviera como capa de persistencia para aplicaciones cliente-servidor de Windows NT . [ 12 ] Como parte de esta iniciativa, se agregó una implementación del Modelo de Objetos de Componentes Distribuidos (DCOM) a OpenVMS Alpha. [ 13 ] Para admitir DCOM, VMS recibió implementaciones del Registro de Windows, autenticación NTLM y un subconjunto de las API de Win32 necesarias para admitir COM. [ 14 ] DCOM se agregó por primera vez a OpenVMS V7.2-1 para Alpha. [ 15 ] Una implementación similar de DCOM se agregó a Digital Unix como parte del programa AllConnect. [ 13 ]
TangramCOM fue un proyecto independiente de Wine, centrado en la implementación de DCOM en teléfonos inteligentes basados en Linux. [ 16 ]
Véase también
Referencias
- ↑ "¿Qué es el Modelo de Objetos de Componentes Distribuidos (DCOM)?" . WhatIs.com . Consultado el 3 de agosto de 2022 .
- ↑ "DCE 1.1: Llamada a procedimiento remoto - Introducción a la API RPC" . pubs.opengroup.org . Consultado el 3 de agosto de 2022 .
- ↑ Nowak, Filip; Qasim, Mohsin. "Una comparación de las tecnologías de objetos distribuidos CORBA vs DCOM" (PDF) . Archivado (PDF) del original el 29 de agosto de 2017.
- ↑ "Object Technology Jeff Sutherland: Servicios web: ¿Mejor que CORBA o DCOM?" . Consultado el 3 de agosto de 2022 .
- ↑ stevewhims (23 de agosto de 2019). "Llamadas a procedimientos remotos mediante RPC sobre HTTP - Aplicaciones Win32" . docs.microsoft.com . Consultado el 3 de agosto de 2022 .
- ↑ Comunicado de prensa que anuncia la versión beta de DCOM
- ↑ "Protocolo remoto del modelo de objetos de componentes distribuidos (DCOM)" (PDF) . Microsoft - Protocolo remoto del modelo de objetos de componentes distribuidos (DCOM) . 25 de junio de 2021. Archivado (PDF) del original el 9 de mayo de 2021. Consultado el 3 de agosto de 2022 .
- ↑ Mejoras de seguridad de DCOM
- ↑ "Guía de actualización de seguridad - Centro de respuesta de seguridad de Microsoft" . msrc.microsoft.com . Consultado el 3 de agosto de 2022 .
- ↑ "KB5004442: Administrar cambios para la omisión de la función de seguridad del servidor DCOM de Windows (CVE-2021-26414)" . support.microsoft.com . Consultado el 3 de agosto de 2022 .
- ↑ "Hoja de datos COMsource para Solaris, Tru64 UNIX y otras plataformas" . Hoja de datos COMsource para Solaris, Tru64 UNIX y otras plataformas .
- ↑ "OpenVMS a los 20 años: Nada lo detiene" (PDF) . Digital. Octubre de 1997. Archivado (PDF) del original el 19 de abril de 2021. Consultado el 12 de febrero de 2021 .
- 1 2 Gene Cronin, Terence P. Sherlock (2000). COM más allá de Microsoft: Diseño e implementación de servidores COM en plataformas Compaq . Digital Press. ISBN 1555582265.
- ↑ "Guía para desarrolladores de conectividad OpenVMS" . hpe.com . Julio de 2000. Archivado del original el 4 de diciembre de 2020. Consultado el 1 de enero de 2021 .
- ↑ "Notas de la versión OpenVMS Alpha V7.2-1" . odl.sysworks.biz . Enero de 1999. Consultado el 1 de enero de 2021 .
- ↑ "Inicio - TangramCOM" . www.andjoin.com . Consultado el 3 de agosto de 2022 .
Enlaces externos
- Protocolo de modelo de objetos de componentes distribuidos -- DCOM/1.0
- El archivo COMsource de Open Groups se archivó el 13 de enero de 2020 en Wayback Machine .
- TangramCOM
- Ingeniería de software basada en componentes
- Comunicación entre procesos
- Comunicación y servicios de Windows
- Modelos de objetos
- agente de solicitud de objetos