Component Object Model (COM)

Microsoft Component Object Model (COM) è un sistema indipendente dalla piattaforma, distribuito e orientato agli oggetti per la creazione di componenti software binari che possono interagire. COM è la tecnologia di base per microsoft OLE (documenti composti), ActiveX (componenti abilitati per Internet) e altri.

Per comprendere COM (e quindi tutte le tecnologie basate su COM), è fondamentale comprendere che non è un linguaggio orientato agli oggetti, ma uno standard. Né COM specifica come deve essere strutturata un'applicazione; i dettagli di linguaggio, struttura e implementazione vengono lasciati allo sviluppatore dell'applicazione. COM specifica invece un modello a oggetti e i requisiti di programmazione che consentono agli oggetti COM (detti anche componenti COM o a volte semplicemente oggetti) di interagire con altri oggetti. Questi oggetti possono trovarsi all'interno di un singolo processo, in altri processi e possono anche trovarsi in computer remoti. Possono essere scritti in linguaggi diversi e possono essere strutturalmente piuttosto dissimili, ed è per questo che COM viene definito standard binario; uno standard che si applica dopo che un programma è stato tradotto in codice binario.

L'unico requisito linguistico per COM è che il codice viene generato in un linguaggio che può creare strutture di puntatori e, in modo esplicito o implicito, chiamare funzioni tramite puntatori. I linguaggi orientati agli oggetti, ad esempio C++ e Smalltalk, forniscono meccanismi di programmazione che semplificano l'implementazione di oggetti COM, ma è possibile usare linguaggi come C, Java e VBScript per creare e usare oggetti COM.

COM definisce la natura essenziale di un oggetto COM. In generale, un oggetto software è costituito da un set di dati e dalle funzioni che modificano i dati. Un oggetto COM è uno in cui l'accesso ai dati di un oggetto viene ottenuto esclusivamente tramite uno o più set di funzioni correlate. Questi set di funzioni sono denominati interfacce e le funzioni di un'interfaccia sono denominate metodi. Inoltre, COM richiede che l'unico modo per ottenere l'accesso ai metodi di un'interfaccia sia tramite un puntatore all'interfaccia.

Oltre a specificare lo standard di oggetti binari di base, COM definisce alcune interfacce di base che forniscono funzioni comuni a tutte le tecnologie basate su COM e fornisce un numero ridotto di funzioni richieste da tutti i componenti. COM definisce anche il modo in cui gli oggetti interagiscono in un ambiente distribuito e hanno aggiunto funzionalità di sicurezza per garantire l'integrità del sistema e dei componenti.

Gli argomenti seguenti in questa sezione descrivono i problemi COM di base relativi alla progettazione di oggetti COM: