# Object Linking and Embedding

In informatica, Object Linking and Embedding (in italiano collegamento e incorporazione di oggetti), generalmente abbreviato OLE, è una tecnologia di transclusione per la creazione di documenti composti (compound document) sviluppata da Microsoft.

## OLE 1

La prima versione di OLE, pubblicata nel 1991, permetteva di integrare un documento creato con un'applicazione (detta server OLE) all'interno di un'altra applicazione (detta client OLE) — un'applicazione può implementare sia la parte server che la parte client.
L'integrazione può essere di due tipi:
* collegamento, nella quale il documento inserito risiede fisicamente in un file differente
* incorporazione, nella quale il documento inserito risiede nello stesso file del documento che lo contiene
L'applicazione ospite non aveva la necessità di conoscere il formato interno dell'oggetto inserito, perciò era possibile integrare un documento generato da una qualsiasi applicazione in un'altra, a patto che entrambe supportassero OLE. Era ad esempio possibile integrare un foglio di calcolo all'interno di un documento di testo, o viceversa, generando in questo modo un "documento composto".
Il limite principale di OLE 1 era che per modificare l'oggetto inserito veniva aperta l'applicazione corrispondente in una finestra separata, perdendo così la percezione del contesto in cui l'oggetto si trovava.
La versione 1.0 utilizzava come infrastruttura il protocollo DDE, ed era stata implementata per i sistemi operativi Windows a 16 bit e per Macintosh.

## OLE 2

Per superare i limiti della prima versione, nel 1993 fu pubblicato OLE 2, la cui caratteristica più appariscente è la possibilità di modificare i documenti incorporati direttamente nell'applicazione ospite (inplace editing), che acquisisce l'interfaccia utente (menu, barre degli strumenti ecc.) dell'applicazione incorporata. Un'altra caratteristica è la possibilità di spostare oggetti tra applicazioni diverse con il drag and drop.
OLE 2, che di fatto è presente invariato nelle versioni odierne di Windows, è implementato con il protocollo COM (più precisamente, COM è stato sviluppato appositamente per OLE 2). COM è una tecnologia che permette di creare componenti software riutilizzabili, in un certo senso permette di fare a livello di programmazione ciò che OLE permette di fare a livello di documento. A livello software il confine tra OLE e COM è molto sfumato, e infatti il nome OLE è stato usato spesso per identificare tecnologie basate su COM che con lo scopo di OLE (i documenti composti) non hanno nulla a che fare.
COM è una tecnologia complessa e, per i computer del 1993, era decisamente pesante. Per questo i primi software che utilizzavano OLE 2 (Word 6 e Excel 5) avevano delle prestazioni non proprio eclatanti. Con l'aumento della potenza di calcolo COM e OLE sono diventate tecnologie molto diffuse nei sistemi Windows a 32 bit (ad esempio, Internet Explorer è un oggetto COM, ed è grazie ad OLE che nella finestra del browser è possibile visualizzare e modificare un documento di Word).

## Il futuro

Sebbene COM abbia subito nel tempo una notevole evoluzione, OLE 2 è rimasto fondamentalmente invariato, anche perché svolge al meglio il compito di creare documenti composti. Il futuro di queste tecnologie è incerto, perché con l'introduzione della piattaforma .NET Microsoft ha relegato COM ad un ruolo di secondo piano.