DCOM ( Distributed Component Object Model ) er en proprietær Microsoft -teknologi for utvikling av programvarekomponenter som er distribuert over flere datamaskiner og som kommuniserer med hverandre.
Den utvider Microsoft Component Object Model (COM) -modellen og gir kommunikasjonssubstratet mellom Microsoft COM+-applikasjonsserverinfrastrukturen .
Det har blitt forlatt til fordel for Microsoft .NET - rammeverket . [ 1 ] [ 2 ]
Tillegget av "D" til COM skyldtes den omfattende bruken av DCE Remote Procedure Call (DCE/RPC), eller mer spesifikt Microsofts forbedrede versjon, kjent som MSRPC.
Når det gjelder utvidelsene den legger til COM, måtte DCOM løse problemene med:
En av nøkkelfaktorene for å løse disse problemene er bruken av DCE/RPC som den underliggende Remote Procedure Call - mekanismen (RPC) under DCOM. DCE/RPC definerer strenge regler for utflating og hvem som er ansvarlig for å frigjøre minnet.
DCOM var en av CORBAs største konkurrenter . Tilhengere av begge teknologiene hevdet at de en dag ville være modellen for kode og tjenester på Internett . Vanskelighetene med å få disse teknologiene til å fungere gjennom brannmurer og på usikre eller ukjente maskiner gjorde imidlertid at vanlige HTTP-forespørsler, kombinert med nettlesere , vant frem. Microsoft prøvde en gang og klarte ikke å forutse dette ved å legge til en ekstra HTTP-transport til DCE/RPC kalt "ncacn_http" ( tilkoblingsbasert, over HTTP ).
Den åpne gruppen har en DCOM-implementering kalt COMsource , hvis kildekode er tilgjengelig, samt komplett dokumentasjon, tilstrekkelig for bruken og også tilstrekkelig til å implementere en interoperabel versjon av DCOM. I følge dokumentasjonen kommer COMsource direkte fra Windows NT 4.0-kildekoden, og inkluderer til og med kildekoden for en Windows NT-registertjeneste.
Wine -teamet implementerer også DCOM . De gjør dette for binær interoperabilitet, og er ikke interessert i distribusjonsdelen av DCOM over nettverket, som leveres av MSRPC. Mens de er fokusert på å implementere nettverksdatarepresentasjon gjennom Microsoft Application Programming Interfaces , vil denne implementeringen prøve å være så kompatibel som mulig med MSRPC.