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)

Appunto di giov8
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