Tesi di laurea di Informatica
Progetto ed implementazione di una modifica al compilatore IDL di CORBA per produrre codice che consente di utilizzare oggetti CORBA come componenti COM (222 pagine formato pdf)
Nel corso degli anni sono state sviluppate diverse tecniche e metodologie per
affrontare lo spinoso problema dello sviluppo del software: programmazione
strutturata, modularizzazione, strutture dati astratte, programmazione ad oggetti.
La programmazione ad oggetti incorpora i principi di astrazione, modularizzazione,
incapsulamento ed ereditarietá.
Quest’ultima costituisce il principale meccanismo
per il riutilizzo di codice preesistente.
Il modello ad oggetti si è evoluto recentemente verso la creazione di Framework
(librerie di classi astratte) o di Software Patterns. Tuttavia le soluzioni basate su un
linguaggio di programmazione ad oggetti restano limitate perché:
• richiedono che tutto il codice sia scritto nello stesso linguaggio di
programmazione,
• richiedono compatibilitá binaria,
• non supportano applicazioni destribuite,
• non forniscono un ambiente di composizione.
Se è vero che il mercato produce ció che il mercato richiede, non c’è da stupirsi se
l’esigenza di suddividere un’applicazione in piú parti e la possibilitá di poter
riutilizzare codice giá scritto, hanno portato alla nascita dei componenti software o
Software Components.
L’obbiettivo della tesi è la progettazione e lo sviluppo di uno strumento per
integrare fra di loro i componenti software sviluppati in COM e CORBA, le
principali architetture ad oggetti presenti attualmente sul mercato.
Nel primo capitolo spieghiamo cosa sono i componenti software, quali sono i loro
principali requisiti e quali sono i loro principali vantaggi. Non manca una breve
esposizione su cosa offre oggi il mercato.
3
Il secondo capitolo spiega, entrando nei particolari, il Component Object Module
o COM di Microsoft. Partendo da zero si descrivono tutti i passi necessari per creare
un componente senza nascondere i dettagli dell’implementazione che gli ultimi tool
di sviluppo della Microsoft celano abilmente. Anche il lato client viene trattato
abbondantemente presentando degli esempi sia in C++, sia in Java e sia in Visual
Basic.
La Common Object Request Broker Architecture o CORBA è invece trattata nel
terzo capitolo. Dopo una carrellata sulla sua struttura, si pone particolare attenzione
sul confronto tra invocazioni statiche e invocazioni dinamiche. Anche qui si crea un
componente completo anche se, siccome esistono varie distribuzioni di CORBA, gli
esempi di codice non sono universali ma sono legati alla particolare
implementazione fornita da Mico.
Il quarto capitolo descrive la specifica CORBA relativa all’interazione tra COM e
CORBA. Si mettono in evidenza le caratteristiche comuni dei due sistemi e,
soprattutto, le loro differenze. Viene data inoltre una visione generale di come
potrebbe essere strutturata una possibile architettura di integrazione.
CORBA descrive i suoi componenti con l’OMG IDL (Object Menagement
Group Interface Definition Language), mentre COM usa il MIDL (Microsoft
Interface Definition Language). Il primo passo per avvicinare i du