COM (англ. Component Object Model - бүрдүүлбэр объектын загвар; [ком] гэж дуудна) гэдэг бол бүрдүүлбэрт суурилсан програм хангамж бүтээхэд зориулж Microsoft компаниас 1993 онд танилцуулсан хоёртын тоон интерфейсийн стандарт юм. Үүнийг процесс хоорондын харилцаа холбоотой объектыг олон төрлийн програмчлалын хэл дээр бүтээхэд ашигладаг. COM нь OLE, OLE Automation, Browser Helper Object, ActiveX, COM+, DCOM, Windows shell, DirectX, UMDF, Windows Runtime гэх мэт Microsoft-ын бусад олон технологи, фреймворкын суурь болсон байдаг. Хоорондоо ялгаатай, олон өөр төхөөрөмжийн орчинд бүтээх объектуудыг програмчлалын хэлнүүдээс хамааралгүйгээр хэрэгжүүлэх явдал бол COM-ын гол мөн чанар юм. COM нь бүрдүүлбэрийн хэрэгжүүлэлтийг сайн тодорхойлсон, хэрэгжүүлэлтээсээ тусгаарлагдсан интерфейсээр хангахад анхаардаг учир сайн бичигдсэн бүрдүүлбэр объектуудыг COM-ын тусламжтайгаар дотоод хэрэгжүүлэлтийг нь мэдэх шаардлагагүйгээр дахин ашиглах боломжтой байдаг.

COM бол зөвхөн Microsoft Windows, Apple-ийн Core Foundation 1.3, болон сүүлд plug-in буюу залгаас API (application programming interface буюу хэрэглүүр програмчлах харилцвар)-д зориулан стандарт болгож тодорхойлон хэрэгжүүлсэн интерфейсийн технологи юм. Гэхдээ залгаас API-д зориулсан хэрэгжүүлэлт нь зөвхөн COM интерфейсийн зарим дэд хэсгийг хамардаг байна. Зарим хэрэглээнд COM-ыг Microsoft .NET фреймворкоор орлуулах, Windows Communication Foundation (WCF)-аар дамжуулан Web Services-ийг дэмжихэд ашиглах болжээ. Тэгэхдээ COM объектыг .NET төрлийн бүх хэлэнд .NET COM Interop-оор дамжуулан ашиглах боломжтой байдаг. 

Түүх засварлах

Анх 1987 онд танилцуулсан Dynamic Data Exchange (DDE) бол Windows доторх процесс хоорондын харилцаа холбооны анхны аргуудын нэг байв. Энэ арга нь хэрэглээний програм хангамжуудын хооронд мессеж илгээх болон хүлээн авах боломжоор хангасан. СОМ-ын архитектурыг бүтээх ажилд Antony Williams оролцсон байдаг бөгөөд Microsoft дотор 1988 онд Object Architecture: Dealing With the Unknown – or – Type Safety, 1990 онд Dynamically Extensible Class Library in and On Inheritance: What It Means and How To Use It гэдэг хоёр өгүүлэл гаргасан нь програм хангамжийн бүрдүүлбэрийн концептыг өөртөө агуулж байжээ. Эдгээр өгүүлэл нь COM-ын ард буй олон санааны суурь болсон юм. Microsoft-ын анхны объект суурьтай фреймворк болох Object Linking and Embedding (OLE) нь DDE дээр үндэслэгдсэн бөгөөд энэхүү технологийг compound document (бүрдмэл баримт бичиг)-д тусгайлан зориулсан байна. Үүнийг 1991 онд Windows Word болон Excel-д анх танилцуулсан ба 1992 онд гаргасан 3.1-р хувилбараас эхлэн Windows-ийн нэг хэсэг болгожээ. Compound document-ийн нэг жишээ бол Word төрлийн баримт бичиг дотор шигтгэсэн spreadsheet юм. Энэ төрлийн spreadsheet-ийг Excel ашиглан засаж өөрчилдөг бөгөөд автоматаар Word баримт бичиг дотор гарч ирдэг.

Microsoft 1991 онд Visual Basic Extensions (VBX)-ийг Visual Basic 1.0 хувилбар дээр танилцуулжээ. VBX гэдэг нь объектуудыг маягт дээр график байдлаар байрлуулах, проперти болон методуудыг ашиглан чадварлаг удирдах боломж олгодог, dynamic-link library (DLL) хэлбэртэй багцласан өргөтгөл юм.

Хамааралтай технологиуд засварлах

COM нь Windows-ийн хувьд програм хангамж хөгжүүлэх үндсэн платформ байв. Тийм болохоор олон тооны дэмжигч технологийг хөгжүүлэхэд нөлөөлсөн байдаг.

COM+, DCOM засварлах

Microsoft-ын хувьд хөгжүүлэгч нарыг тархмал гүйлгээ, нөөц нэгтгэл, хоорондоо холбогдоогүй хэрэглүүрүүд, эвентийн сонордуулга ба захиалга, санах ой болон процессор (тред)-ын илүү сайн менежментээр хангахаас гадна Windows-ийг бусад энтерпрайс түвшний үйлдлийн системүүдийн алтернатив сонголт байлгах зорилгоор Windows NT 4. дээр Microsoft Transaction Server (MTS) гэдэг технологийг танилцуулжээ.

.NET засварлах

Windows Runtime засварлах

Аюулгүй байдал засварлах

Техникийн нарийн ширийн засварлах

Интерфейс засварлах

Бүх COM бүрдүүлбэр лавлуур (reference) тоолох, төрөл хөрвүүлэх (кастлах) методуудыг нэвтрүүлдэг IUnknown гэдэг интерфейсийг хэрэгжүүлдэг. IUnknown интерфейс нь виртуал методын хүснэгт рүү заах заагуур (pointer)-аас бүрдэнэ.

Класс засварлах

Интерфейс тодорхойлох хэл ба төрлийн сан засварлах

COM-ыг объектын фреймворк байдлаар ашиглах засварлах

Reference тоолох  засварлах

Програмчлах засварлах

Registry-ийн хэрэглээ засварлах

Бүртгэлгүй COM засварлах

Гар аргаар тохируулсан COM объект засварлах

Процесс, сүлжээний ил тод байдал засварлах

Урсгал засварлах

Шүүмжлэл засварлах

Reference тоолох  засварлах

Notes засварлах