dcom
Distributed Component Object Model (skrót DCOM) – rozszerzenie Component Object Model (COM) opracowane przez Microsoft w latach 90. XX wieku. DCM umożliwia tworzenie i uruchamianie komponentów programistycznych rozproszonych w sieci, zapewniając ich wzajemną współpracę niezależnie od fizycznego położenia oraz języka, w którym zostały napisane.
Historia
Wraz z rosnącą popularnością aplikacji klient‑serwer oraz potrzebą integracji rozwiązań opartych na COM, firma Microsoft w 1996 roku wprowadziła DCM jako część platformy Windows 95 i później Windows NT. Pierwsze wersje DCM wykorzystywały protokół RPC (Remote Procedure Call) i były zamieszczone w systemach Windows 98, Windows 2000 oraz Windows XP. Do lat 2000‑2005 DCM był podstawą wielu aplikacji internetowych i korporacyjnych, a także technik ActiveX oraz Internet Explorer.
Architektura
DCOM opiera się na kilku kluczowych elementach:
- Klient – proces wywołujący metody komponentu zdalnego.
- Serwer – proces udostępniający interfejsy COM i obsługujący wywołania klienta.
- Warstwa transportowa – najczęściej protokół TCP lub HTTP (w późniejszych wersjach).
- Model bezpieczeństwa – mechanizmy uwierzytelniania (Kerberos, NTLM) i autoryzacji, które decydują o dostępie do komponentów.
Główne cechy
- Transparentność – programista może wywoływać metody komponentu tak, jakby znajdował się w tym samym procesie.
- Obsługa wielu języków – DCM współpracuje z C++, C#, VB.NET i innymi.
- Skalowalność – komponenty mogą być rozmieszczone w różnych sieciach, w tym w środowiskach VLAN czy przez Internet.
- Integracja z systemem uprawnień Windows – możliwość wykorzystania grup użytkowników, polityk zabezpieczeń i certyfikatów.
Bezpieczeństwo
Chociaż DCM zapewnia rozbudowane mechanizmy uwierzytelniania, w praktyce technologia ta była narażona na ataki typu man‑in‑the‑middle oraz wykorzystanie luk w komponentach ActiveX. Dlatego od 2005 roku Microsoft zaleca stosowanie nowszych rozwiązań, takich jak Windows Communication Foundation (WCF) czy protokoły SOAP i REST.
Zastosowania
W praktyce DCM znalazł zastosowanie w:
- Systemach zarządzania bazami danych (SQL Server).
- Aplikacjach korporacyjnych typu ERP i CRM.
- Rozwiązaniach RPC w środowiskach przemysłowych.
- Wtyczkach Internet Explorer i aplikacjach ActiveX.
Alternatywy i następcy
W miarę rozwoju technologii webowych i usług sieciowych, DCM został częściowo wyparty przez:
- Windows Communication Foundation (WCF) – platforma usługowa oparta na SOAP i REST.
- Web Services – standardy otwarte, niezależne od systemu operacyjnego.
- gRPC – nowoczesny protokół RPC oparty na HTTP/2.
Współczesny status
Chociaż DCM nie jest już preferowaną technologią przy projektowaniu nowych systemów, wciąż jest utrzymywana w starszych aplikacjach działających na platformach Windows Server. Wsparcie techniczne obejmuje jedynie poprawki bezpieczeństwa i kompatybilności z nowszymi wersjami systemu operacyjnego.