università degli studi di roma “la sapienza” facoltà di ingegneria corso di laurea in...

16
Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing. Guido Pennella responsabile Ricerca Applicata & Tecnologie del reparto progettazione Software – MBDA Italia spa Azienda: MBDA Italia s.p.a. Durata Stage: 4 mesi Prova finale di Laurea di: Antonio Musto Anno Accademico: 2002 - 2003 Sommario Sommario Introduzione Introduzione Porting PVM Porting PVM Porting CPPVM Porting CPPVM Reimplementazione Legacy MW Reimplementazione Legacy MW Conclusioni e Sviluppi Conclusioni e Sviluppi Futuri Futuri PVMITF: Una Interfaccia PVM verso un Middleware Proprietario ADA

Upload: celestina-carbone

Post on 03-May-2015

217 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

Correlatore Aziendale :

Ing. Guido Pennellaresponsabile Ricerca Applicata & Tecnologie del reparto progettazione Software – MBDA Italia spa

Azienda: MBDA Italia s.p.a.

Durata Stage: 4 mesi

Prova finale di Laurea di:

Antonio Musto

Anno Accademico: 2002 - 2003

SommarioSommario

IntroduzioneIntroduzione

Porting PVMPorting PVM

Porting CPPVMPorting CPPVM

Reimplementazione Legacy MWReimplementazione Legacy MW

Conclusioni e Sviluppi FuturiConclusioni e Sviluppi Futuri

PVMITF: Una Interfaccia PVM verso un Middleware Proprietario ADA

Page 2: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

L’azienda MBDAL’azienda MBDA

La MBDA è un’azienda di

sistemi elettronici industriali

ad alta tecnologia:

Leader nel settore

Multinazionale, sostenuta da 3 gruppi: BAE SYSTEM, EADS e Finmeccanica

Il reparto Progettazione e Tecnologie SW è stimato al livello 2 del CMM

Struttura societaria

Processo di formazione

SEZIONE II: SEZIONE II: Porting PVMPorting PVM

SEZIONE ISEZIONE IIntroduzioneIntroduzione

SEZIONESEZIONE VVConclusioniConclusioni

SEZIONE III: SEZIONE III: Porting Porting CPPVMCPPVM

SEZIONE IV:SEZIONE IV:Re-Re-implementazimplementazione Legacy ione Legacy MWMW

Page 3: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

Scopo della TesiScopo della Tesi

Effettuare il porting di PVM 3.4.4 su una Single Board Computer industriale basata su PPC, con sistema operativo Real Time (LynxOs 3.0.1).

Effettuare il porting di CPPVM (estensione di PVM in linguaggio C++) sempre su tale architettura.

   Validare la possibilità di sostituire una parte di un Middleware Proprietario dell’azienda relativamente alla sezione di comunicazione, con PVM, e re-implementare le funzionalità da esso fornite tramite delle librerie.

SEZIONE ISEZIONE IIntroduzioneIntroduzione

SEZIONESEZIONE VVConclusioniConclusioni

Pre-Condizioni necessarie

SEZIONE II: SEZIONE II: Porting PVMPorting PVM

SEZIONE III: SEZIONE III: Porting Porting CPPVMCPPVM

SEZIONE IV:SEZIONE IV:Re-Re-implementazimplementazione Legacy ione Legacy MWMW

Page 4: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

Single Board Computers

• Una Single Board Computer è un nodo di calcolo completo di CPU, memoria e periferiche (SCSI, USB, Seriali)

• Le SBC su cui sono effettuati gli sviluppi ed i test sono della THALES COMPUTERS e montano una CPU PowerPc G3 a 450Mhz, con 256 Mb di Memoria e Sistema Operativo Real Time LynxOs 3.0.1

BUS VME-64

Attacco SCSI

Porte Seriali RS232

Attacco USB

Sistema Target

SEZIONE ISEZIONE IIntroduzioneIntroduzione

SEZIONESEZIONE VVConclusioniConclusioni

SEZIONE II: SEZIONE II: Porting PVMPorting PVM

SEZIONE III: SEZIONE III: Porting Porting CPPVMCPPVM

SEZIONE IV:SEZIONE IV:Re-Re-implementazimplementazione Legacy ione Legacy MWMW

Page 5: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

Legacy Middleware

Middleware

Libreria

Leg

acy

MW

Libreria

Applicazione ADA

LynxOS 3.0.1

HARDWARE

Il Legacy Middleware è stato sviluppato in MBDA (a quel tempo SELENIA) in ADA/C nei primi anni 80.

Questo Middleware ha un meccanismo di comunicazione basato sul paradigma a passaggio messaggi (Message Passing) analogo a PVM

SEZIONE ISEZIONE IIntroduzioneIntroduzione

SEZIONESEZIONE VVConclusioniConclusioni

Libreria

SEZIONE II: SEZIONE II: Porting PVMPorting PVM

SEZIONE III: SEZIONE III: Porting Porting CPPVMCPPVM

SEZIONE IV:SEZIONE IV:Re-Re-implementazimplementazione Legacy ione Legacy MWMW

Page 6: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

• Origini:Il sistema PVM è la colonna portante di un progetto di ricerca su Reti di Computazione Eterogenee nato dalla collaborazione tra Oak Ridge National Laboratory, University of Tennessee, Emory University e Carnegie Mellon University .

• Cos’è PVM ?PVM è stato progettato per collegare risorse di computazione eterogenee. In particolare, PVM permette di definisce una Macchina Virtuale Parallela (da cui il nome) tramite una rete di calcolatori elettronici, tra loro collegati in TCP/IP over ETHERNET.

• Struttura:Il sistema PVM prevede l’utilizzo di un demone (PVMD) che sovraintende alla gestione del nodo ed una libreria (LIBPVM) con la quale si possono utilizzare le funzionalità del sistema (gestione nodi, gestione processi, comunicazione tra task) da C e FORTRAN

SEZIONE ISEZIONE IIntroduzioneIntroduzione

SEZIONESEZIONE VVConclusioniConclusioni

SEZIONE II: SEZIONE II: Porting PVMPorting PVM

SEZIONE III: SEZIONE III: Porting Porting CPPVMCPPVM

SEZIONE IV:SEZIONE IV:Re-Re-implementazimplementazione Legacy ione Legacy MWMW

Page 7: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

CPPvm estende PVM con la potenzialità del C++ come: classi , overload di funzioni, generazione di eccezioni , ed inoltre fornisce una facile interfaccia C++ a PVM. CPPVM può funzionare su molte architetture come PVM e permette le seguenti funzionalità:

Inviare e Ricevere oggetti C++

Gestire gli errori (try/catch)

Usare oggetti C++ distribuiti

Usare oggetti C++ insieme a messaggi mailbox

Usare C++ templetes

Usare standard template library (STL) classes

Usare semafori distribuiti

SEZIONE ISEZIONE IIntroduzioneIntroduzione

SEZIONESEZIONE VVConclusioniConclusioni

CPPVM

SEZIONE II: SEZIONE II: Porting PVMPorting PVM

SEZIONE III: SEZIONE III: Porting Porting CPPVMCPPVM

SEZIONE IV:SEZIONE IV:Re-Re-implementazimplementazione Legacy ione Legacy MWMW

Page 8: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

1a Fase : Porting di PVM 3.4.4

PVM funziona su molti tipi di diverse architetture, ma non era supportato dalla nostra architettura Target, quindi è stato necessario :

 Compilare il demone PVMD sul sistema target LynxOs 3.0.1.

 Compilare le librerie di PVM in modo che altre applicazioni possano utilizzare i servizi che mette a disposizione PVM.

Testare che l’applicazione PVM funzioni in modo corretto

SEZIONE II: SEZIONE II: Porting PVMPorting PVM

SEZIONE ISEZIONE IIntroduzioneIntroduzione

SEZIONESEZIONE VVConclusioniConclusioni

SEZIONE III: SEZIONE III: Porting Porting CPPVMCPPVM

SEZIONE IV:SEZIONE IV:Re-Re-implementazimplementazione Legacy ione Legacy MWMW

Page 9: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

Dettaglio Passi Eseguiti1. Sono state settare alcune variabili d’ambiente ed

editati dei file di configurazione UNIX.

PVM_ROOT=/usr/local/pvmitf/pvm3

PVM_ARCH=POWERLXOS

2. E’ stata definita una nuova architettura e sono stati creati dei file. In questi due file (POWERLXOS.def e POWERLXOS.m4 ) sono definite:

direttive di Pre-Compilazione elenco delle librerie da linkare

ARCHCFLAGS = -DRSHCOMMAND=\"/bin/rsh\" \-DFDSETNOTSTRUCT -DHASERRORVARS\

-DCTIMEISTIMET -DSYSERRISCONST \-DNOREXEC

ARCHDLIB = -lnetinet -lbsd -lrpc ARCHDOBJ =ARCHLIB = -lrpc HASRANLIB = tAR = arPVM_ARCH = POWERLXOSMAKE = make

3. E’ stato necessario agire sui file sorgenti di PVM per effettuare delle modifiche al codice per adattarlo al compilatore GCC del ‘ 98

4. Infine è stato validato il porting utilizzando gli esempi forniti da PVM.

SEZIONE ISEZIONE IIntroduzioneIntroduzione

SEZIONESEZIONE VVConclusioniConclusioni

SEZIONE II: SEZIONE II: Porting PVMPorting PVM

SEZIONE III: SEZIONE III: Porting Porting CPPVMCPPVM

SEZIONE IV:SEZIONE IV:Re-Re-implementazimplementazione Legacy ione Legacy MWMW

Page 10: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

2a Fase : Porting CPPVM

Avendo supposto di utilizzare CPPVM per la terza fase del progetto, sono stati necessari i seguenti passi:

Verificare che PVM sia istallato correttamente visto che CPPVM

utilizza le funzionalità di esso. Compilare l’eseguibile cppvms che coopera con il demone PVMD. Compilare la libreria libcppvm.a che permette di utilizzare l’estensione in C++. Modificare i file sorgenti per compilare correttamente la libreria. Validare il porting utilizzando gli esempi forniti con i sorgenti di CPPVM.

SEZIONE ISEZIONE IIntroduzioneIntroduzione

SEZIONESEZIONE VVConclusioniConclusioni

SEZIONE II: SEZIONE II: Porting PVMPorting PVM

SEZIONE III: SEZIONE III: Porting Porting CPPVMCPPVM

SEZIONE IV:SEZIONE IV:Re-Re-implementazimplementazione Legacy ione Legacy MWMW

Page 11: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

3a Fase : Re-Implementazione funzionalità Legacy Middleware per la parte di

comunicazione.SEZIONE ISEZIONE IIntroduzioneIntroduzione

SEZIONESEZIONE VVConclusioniConclusioni

SEZIONE II: SEZIONE II: Porting PVMPorting PVM

SEZIONE III: SEZIONE III: Porting Porting CPPVMCPPVM

SEZIONE IV:SEZIONE IV:Re-Re-implementazimplementazione Legacy ione Legacy MWMW

Page 12: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

Supportare la comunicazione tra task dello stesso nodo utilizzando le stesse primitive e strutture della vecchia libreria, tra cui la MAILBOX .

Essere retrocompatibili ; le applicazioni che utilizzavano le librerie ADA del vecchio middleware non devono essere modificate Inoltre dai requisiti del Legacy

Middleware si ha:

Il singolo invio di un messaggio e la singola ricezione di un messaggio deve essere inferiore hai 5050 s (microsecondi).

L’informazione scambiata tra due Task deve assumere una struttura standard (definita nell’SRS di ITF/BS) formata da un campo HEADER e un campo DATA.

In particolare la nuova Libreria PVMITF deve :

Page 13: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

Metodologia usata : Iterativo Incrementale

Il modello di processo che abbiamo scelto per questa fase è quello Iterativo Incrementale per i seguenti motivi:

Sviluppo del progetto a piccoli passi, aggiungendo man mano funzionalità.

Rapidi cicli di feedback .

Produrre versioni o prototipi funzionanti e di qualità, perché in caso contrario si avrebbero dei riscontri nei test non corretti.

Tempo a disposizione e Team di sviluppo limitato ( uno stagista).

Il ciclo di vita è inoltre conforme allo standard militare MIL-STD-2167A (Defence System Software Development); sono stati redatti i documenti SRS (Software Requirements Specification) e SDD (Software Design Document), ampliati con diagrammi UML.

SEZIONE ISEZIONE IIntroduzioneIntroduzione

SEZIONESEZIONE VVConclusioniConclusioni

SEZIONE II: SEZIONE II: Porting PVMPorting PVM

SEZIONE III: SEZIONE III: Porting Porting CPPVMCPPVM

SEZIONE IV:SEZIONE IV:Re-Re-implementazimplementazione Legacy ione Legacy MWMW

Page 14: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

AnalisiSEZIONE ISEZIONE IIntroduzioneIntroduzione

SEZIONESEZIONE VVConclusioniConclusioni

Diagrammi dei Casi d’uso relativi alla comunicazione Diagrammi dei Casi d’uso relativi ad i messaggi Diagrammi delle Attività delle funzionalità: Create Mailbox, Send, Receive, Crea Messaggio, Cancella Messaggio, Duplica Messaggio. Diagrammi delle Sequenze delle operazioni più significative Diagramma degli Stati della Mailbox

In fase di analisi dell’interfaccia PVMITF si sono prodotti i seguenti diagrammi UML (con l’aiuto del tool Rational Rose 2002 v.02 Enterprise Edition) disponibile in azienda:

SEZIONE II: SEZIONE II: Porting PVMPorting PVM

SEZIONE III: SEZIONE III: Porting Porting CPPVMCPPVM

SEZIONE IV:SEZIONE IV:Re-Re-implementazimplementazione Legacy ione Legacy MWMW

Page 15: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

Versioni SEZIONE ISEZIONE IIntroduzioneIntroduzione

SEZIONESEZIONE VVConclusioniConclusioni

Versione REQ. Funzionalità

REQ. Retro – Compatibilità

REQ. Tempi di risposta

Multithread

1a Versione (C++)

OK NO N.A. N.A.2a Versione ( C )

OK OK NO N.A.3a Versione ( C )

OK OK OK NO4a Versione ( C )

OK OK OK OK1. Nel caso della versione C++ (1a Ver), il compilatore si attendeva un main in C++. Quindi tutte le applicazioni avrebbero dovuto avere tale main e ciò non permette retrocompatibiltà

2. Il sistema impiegava ad inviare un messaggio e ricevere tale messaggio in circa 60 millisecondi , un tempo inaccettabile.

3. ADA ha dei limiti sulla grandezza dello stack per ogni thread, quindi la successiva 4a versione gestisce dinamicamente tutte le allocazioni di memoria.

Alle fine della realizzazione della libreria PVMITF si è proceduto alla stesura di alcuni documenti, tra cui l’SDD_PVMITF e la documentazione del codice sorgente che si è ottenuta con l’aiuto del tool Doxygen adatto a questo scopo.

SEZIONE II: SEZIONE II: Porting PVMPorting PVM

SEZIONE III: SEZIONE III: Porting Porting CPPVMCPPVM

SEZIONE IV:SEZIONE IV:Re-Re-implementazimplementazione Legacy ione Legacy MWMW

Page 16: Università degli studi di Roma “La Sapienza” Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica Antonio Musto Correlatore Aziendale : Ing

Università degli studi di Roma “La Sapienza”Facoltà di IngegneriaCorso di Laurea in Ingegneria Informatica

Antonio Musto

Al termine dello stage la società MBDA ITALIA SPA e tutta la comunità del software freeware ha a sua disposizione una versione del middleware PVM 3.4.4 e l’estensione orientata agli oggetti in C++ CPPVM per il sistema Real Time LynxOs 3.0.1 su PPC, utilizzabili per la progettazione di applicazioni future.

E’ stata poi realizzata la libreria PVMITF che sostituisce la parte di comunicazione tra task del Legacy Middleware di MBDA.

Questo progetto è stato utile a testare le potenzialità e

l’efficienza di PVM nell’ambito dello sviluppo software industriale.

I test effettuati tra una macchina PPC/LynxOS 3.0.1 e una macchina Intel/Linux RedHat 9 hanno dato ottimi risultati (invio e ricezione di 40000 messaggi in 26 secondi).

In futuro MBDA ha deciso di investire in PVM per arricchirlo di funzionalità mancanti, quali un migliore algoritmo di bilanciamento carico.

ConclusioniConclusioni

SEZIONE VSEZIONE VConclusioniConclusioni

SEZIONE ISEZIONE IIntroduzioneIntroduzione

SEZIONE II: SEZIONE II: Porting PVMPorting PVM

SEZIONE III: SEZIONE III: Porting Porting CPPVMCPPVM

SEZIONE IV:SEZIONE IV:Re-Re-implementazimplementazione Legacy ione Legacy MWMW