Кіріспе
Бағдарламалық компоненттер арасындағы байланыс үшін бағдарламалық жасақтама. Таратылған компоненттік объектінің моделі (DCOM) – желілік компьютерлерде бағдарламалық компоненттер арасындағы байланыс үшін Microsoft-тың эксклюзивті технологиясы. DCOM, бастапқыда «Network OLE» деп аталған, Microsoft COM-ның кеңейтілген түрі болып табылады және Microsoft COM+ қолданба серверінің инфрақұрылымы үшін байланыс негізін қамтамасыз етеді. COM-ның таратылған DCOM-ға айналуы DCE/RPC (Distributed Computing Environment/Remote Procedure Calls) – атап айтқанда, Microsoft-тың MSRPC деп белгіленген жетілдірілген нұсқасын кеңінен пайдаланумен байланысты. DCOM, COM-ға енгізген кеңейтулер тұрғысынан, келесі мәселелерді шешуге тиіс болды:
Маршалдау – әдіс шақыруларының аргументтері мен қайтарылатын мәндерін желі арқылы жіберу үшін сериялау және десериализациялау. Таратылған қоқыс жинау – интерфейстердің клиенттері ұстап тұрған сілтемелер, мысалы, клиенттік процесс құлағанда немесе желілік байланыс үзілгенде босатылатынын қамтамасыз ету. Жолақты пайдалануды азайту мақсатында клиенттің браузеріндегі көптеген объектілерді бір трансмиссияға біріктіру. Бұл мәселелерді шешудегі маңызды факторлардың бірі – DCE/RPC-ні DCOM-ның негізгі RPC механизмі ретінде пайдалану болды. DCE/RPC маршалдауға қатысты қатаң ережелерді және жадты босатуға кім жауапты екенін анықтайды. DCOM, CORBA-ның басты бәсекелесі болды. Екі технологияның жақтастары оларды бір күні Интернет арқылы кодты және қызметтерді қайта пайдаланудың стандартты моделіне айналады деп есептеді. Алайда, осы технологияларды Интернет-файрволдар арқылы және белгісіз және қауіпсіз машиналарда жұмыс істеуге байланысты қиындықтар, веб-браузерлермен үйлесімдегі қарапайым HTTP сұраныстарының олардан басым түсуіне әкелді. Бір кезде Microsoft бұл кемшіліктерді жоюға тырысып, DCE/RPC-ге ncacn http (Network Computing Architecture connection oriented protocol) деп аталатын қосымша http тасымалын қосты. DCOM Windows 95 үшін бета-нұсқа ретінде 1996 жылдың 18 қыркүйегінде жарияланды. DCOM Windows 95-тен бастап Windows-тың барлық нұсқаларында және Windows NT 4.0-тен бастап Windows Server-дің барлық нұсқаларында қолдау көрсетіледі.
Distributed Component Object Model (DCOM) is a proprietary Microsoft technology for communication between software components on networked computers. DCOM, which originally was called "Network OLE", extends Microsoft's COM, and provides the communication substrate under Microsoft's COM+ application server infrastructure. The extension COM into Distributed COM was due to extensive use of DCE/RPC (Distributed Computing Environment/Remote Procedure Calls) – more specifically Microsoft's enhanced version, known as MSRPC. In terms of the extensions it added to COM, DCOM had to solve the problems of:
Marshalling – serializing and deserializing the arguments and return values of method calls "over the wire". Distributed garbage collection – ensuring that references held by clients of interfaces are released when, for example, the client process crashed, or the network connection was lost. Combining significant numbers of objects in the client's browser into a single transmission in order to minimize bandwidth utilization. One of the key factors in solving these problems is the use of DCE/RPC as the underlying RPC mechanism behind DCOM. DCE/RPC has strictly defined rules regarding marshalling and who is responsible for freeing memory. DCOM was a major competitor to CORBA. Proponents of both of these technologies saw them as one day becoming the model for code and service reuse over the Internet. However, the difficulties involved in getting either of these technologies to work over Internet firewalls, and on unknown and insecure machines, meant that normal HTTP requests in combination with web browsers won out over both of them. Microsoft, at one point, attempted to remediate these shortcomings by adding an extra http transport to DCE/RPC called ncacn http (Network Computing Architecture connection oriented protocol). DCOM was publicly launched as a beta for Windows 95 September 18, 1996. DCOM is supported natively in all versions of Windows starting from Windows 95, and all versions of Windows Server since Windows NT 4.0
Қауіпсіздікті жақсарту
Microsoft компаниясының Secure Development Lifecycle аясындағы қауіпсіз емес кодты қайта құру бастамасының бөлігі ретінде, DCOM Windows XP Service Pack 2-де маңызды қауіпсіздікке бағытталған өзгерістерге ұшырады. 2021 жылдың маусым айында Tencent Security Xuanwu Lab хабарлаған қауіпсіздік осалдығына жауап ретінде Microsoft Windows және Windows Server-дің бірнеше нұсқалары үшін қауіпсіздік жаңартуларын шығарды, осы арқылы DCOM-ға қол жеткізуді күшейтті.
Балама нұсқалары мен іске асырулары
COMsource – DCOM-ның Unix-ке негізделген нұсқасы, түрлі платформалар арасында өзара әрекеттесуге мүмкіндік береді. DCOM-ның өзара әрекеттесе алатын нұсқасын пайдалануға және құруға жеткілікті толыққанды және егжей-тегжейлі құжаттамасымен бірге оның бастапқы коды қолжетімді. COMsource тікелей Windows NT 4.0 бастапқы кодынан алынған және Windows NT тіркелгі қызметінің бастапқы кодын қамтиды. 1995 жылы Digital және Microsoft OpenVMS үшін Affinity (сондай-ақ NT Affinity деп те аталады) жариялады, ол OpenVMS-ті Windows NT клиент-серверлік қолданбалары үшін сақтау қабаты ретінде жұмыс істеуге бағытталған. Бұл жобаның бір бөлігі ретінде Distributed Component Object Model (DCOM) OpenVMS Alpha-ға енгізілді. DCOM-ды қолдау үшін VMS-ке Windows тіркелгісі, NTLM аутентификациясы және COM-ды қолдауға қажетті Win32 API-лерінің бір бөлігі берілді. DCOM алғаш рет OpenVMS V7.2 1 нұсқасына Alpha үшін қосылды. DCOM-ның ұқсас нұсқасы Digital Unix-ке AllConnect бағдарламасы аясында енгізілді.