Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
Antonio Musto
PVMITF: Una Interfaccia PVM verso un
Middleware Proprietario ADA
Sommario
Correlatore Aziendale :
Ing. Guido Pennella
Introduzione
responsabile Ricerca Applicata & Tecnologie del
reparto progettazione Software – MBDA Italia spa
Porting PVM
Azienda: MBDA Italia s.p.a.
Porting CPPVM
Durata Stage: 4 mesi
Prova finale di Laurea di:
Antonio Musto
Reimplementazione Legacy MW
Conclusioni e Sviluppi Futuri
Anno Accademico: 2002 - 2003
Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
L’azienda MBDA
SEZIONE I
Introduzione
SEZIONE II:
Porting PVM
Antonio Musto
La MBDA è un’azienda di
sistemi elettronici industriali
SEZIONE III:
Porting
CPPVM
SEZIONE IV:
Reimplementaz
ione Legacy
MW
SEZIONE V
Conclusioni
ad alta tecnologia:
 Leader nel settore
 Multinazionale, sostenuta da
3 gruppi: BAE SYSTEM,
EADS e Finmeccanica
Struttura societaria
 Il reparto Progettazione e
Tecnologie SW è stimato al
livello 2 del CMM
Processo di formazione
Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
Scopo della Tesi
SEZIONE I
Introduzione

SEZIONE II:
Porting PVM
SEZIONE III:
Porting
CPPVM
Antonio Musto
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.
Pre-Condizioni necessarie
SEZIONE IV:
Reimplementaz
ione Legacy
MW
 Effettuare il porting di PVM 3.4.4 su una Single Board
SEZIONE V
Conclusioni
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.
Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
SEZIONE I
Introduzione
Single Board Computers
BUS VME-64
SEZIONE II:
Porting PVM
Antonio Musto
• 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
SEZIONE III:
Porting
CPPVM
SEZIONE IV:
Reimplementaz
ione Legacy
MW
Attacco SCSI
SEZIONE V
Conclusioni
Porte Seriali RS232
Attacco USB
Sistema Target
Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
Applicazione ADA
SEZIONE II:
Porting PVM
Libreria
SEZIONE III:
Porting
CPPVM
SEZIONE IV:
Reimplementaz
ione Legacy
MW
SEZIONE V
Conclusioni
Legacy MW
SEZIONE I
Introduzione
Antonio Musto
Legacy Middleware

Il Legacy Middleware è stato
sviluppato in MBDA (a quel
tempo SELENIA) in ADA/C
nei primi anni 80.
Libreria
Middleware
Libreria
LynxOS 3.0.1
HARDWARE
 Questo Middleware ha un
meccanismo di
comunicazione basato sul
paradigma a passaggio
messaggi (Message Passing)
analogo a PVM
Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
SEZIONE I
Introduzione
Antonio Musto
• Origini:
Il sistema PVM è la colonna portante di un progetto di ricerca su Reti di
SEZIONE II: Computazione Eterogenee nato dalla collaborazione tra Oak Ridge National
Porting PVM Laboratory, University of Tennessee, Emory University e Carnegie Mellon
University .
SEZIONE III:
Porting
CPPVM
• Cos’è PVM ?
PVM è stato progettato per collegare risorse di computazione eterogenee. In
SEZIONE IV: particolare, PVM permette di definisce una Macchina Virtuale Parallela (da cui
Reil nome) tramite una rete di calcolatori elettronici, tra loro collegati in TCP/IP
implementaz
ione Legacy over ETHERNET.
MW
SEZIONE V
Conclusioni
• 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
Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
SEZIONE I
Introduzione
SEZIONE II:
Porting PVM
SEZIONE III:
Porting
CPPVM
SEZIONE IV:
Reimplementaz
ione Legacy
MW
CPPVM
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
SEZIONE V
Conclusioni
Antonio Musto
 Usare standard template library (STL) classes
 Usare semafori distribuiti
Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
SEZIONE I
Introduzione
SEZIONE II:
Porting PVM
SEZIONE III:
Porting
CPPVM
SEZIONE IV:
Reimplementaz
ione Legacy
MW
SEZIONE V
Conclusioni
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
Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
Antonio Musto
Dettaglio Passi Eseguiti
SEZIONE I
Introduzione
1.
SEZIONE II:
Porting PVM
Sono state settare alcune variabili d’ambiente ed editati dei file di
configurazione UNIX.
PVM_ROOT=/usr/local/pvmitf/pvm3
PVM_ARCH=POWERLXOS
SEZIONE III:
Porting
CPPVM
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
= t
AR
= ar
PVM_ARCH = POWERLXOS
MAKE = make
SEZIONE IV:
Reimplementaz
ione Legacy
MW
SEZIONE V
Conclusioni
3.
E’ stato necessario agire sui file sorgenti di PVM per effettuare delle
4.
Infine è stato validato il porting utilizzando gli esempi forniti da PVM.
modifiche al codice per adattarlo al compilatore GCC del ‘ 98
Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
SEZIONE I
Introduzione
SEZIONE II:
Porting PVM
SEZIONE III:
Porting
CPPVM
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.
SEZIONE IV:
Reimplementaz
ione Legacy
MW
SEZIONE V
Conclusioni
 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.
Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
SEZIONE I
Introduzione
SEZIONE II:
Porting PVM
SEZIONE III:
Porting
CPPVM
SEZIONE IV:
Reimplementaz
ione Legacy
MW
SEZIONE V
Conclusioni
Antonio Musto
3a Fase : Re-Implementazione funzionalità Legacy Middleware
per la parte di comunicazione.
Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
Antonio Musto
In particolare la nuova Libreria PVMITF deve :
 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.
Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
SEZIONE I
Introduzione
Antonio Musto
Metodologia usata : Iterativo Incrementale
SEZIONE II:
Porting PVM
SEZIONE III:
Porting
CPPVM
SEZIONE IV:
Reimplementaz
ione Legacy
MW
SEZIONE V
Conclusioni
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.
Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
SEZIONE I
Introduzione
SEZIONE II:
Porting PVM
SEZIONE III:
Porting
CPPVM
SEZIONE IV:
Reimplementaz
ione Legacy
MW
SEZIONE V
Conclusioni
Analisi
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:
 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
Antonio Musto
Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
SEZIONE I
Introduzione
Antonio Musto
Versioni
Versione
REQ.
REQ. Retro – REQ. Tempi
Funzionalità Compatibilità di risposta
1a Versione (C++)
OK
OK
OK
OK
Multithread
SEZIONE II:
Porting PVM
SEZIONE III:
Porting
CPPVM
SEZIONE IV:
Reimplementaz
ione Legacy
MW
SEZIONE V
Conclusioni
2a Versione ( C )
3a Versione ( C )
4a Versione ( C )
1.
2.
3.
NO
OK
OK
OK
N.A.
NO
OK
OK
N.A.
N.A.
NO
OK
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à
Il sistema impiegava ad inviare un messaggio e ricevere tale messaggio in circa
60 millisecondi , un tempo inaccettabile.
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.
Università degli studi di Roma “La Sapienza”
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Informatica
SEZIONE I
Introduzione
SEZIONE II:
Porting PVM
SEZIONE III:
Porting
CPPVM
SEZIONE IV:
Reimplementaz
ione Legacy
MW
SEZIONE V
Conclusioni
Antonio Musto
Conclusioni
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.
Scarica

Antonio Musto