Title: Correlatore Aziendale :
1 PVMITF Una Interfaccia PVM verso un
Middleware Proprietario ADA
- 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
Introduzione Porting PVM Porting
CPPVM Reimplementazione Legacy MW Conclusioni e
Sviluppi Futuri
2Lazienda MBDA
SEZIONE I Introduzione
- La MBDA è unazienda 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
SEZIONE II Porting PVM
SEZIONE III Porting CPPVM
SEZIONE IV Re-implementazione Legacy MW
Struttura societaria
SEZIONE V Conclusioni
Processo di formazione
3Scopo della Tesi
SEZIONE I Introduzione
- Validare la possibilità di sostituire una
parte di un Middleware Proprietario
dellazienda relativamente alla sezione
di comunicazione, con PVM, e re-implementare le
funzionalità da esso fornite tramite delle
librerie.
SEZIONE II Porting PVM
SEZIONE III Porting CPPVM
Pre-Condizioni necessarie
SEZIONE IV Re-implementazione Legacy MW
- 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).
SEZIONE V Conclusioni
- Effettuare il porting di CPPVM (estensione di
PVM in linguaggio C) sempre su tale
architettura.
4Single 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
SEZIONE I Introduzione
BUS VME-64
SEZIONE II Porting PVM
SEZIONE III Porting CPPVM
SEZIONE IV Re-implementazione Legacy MW
SEZIONE V Conclusioni
Sistema Target
5Legacy Middleware
SEZIONE I Introduzione
Applicazione ADA
SEZIONE II Porting PVM
Libreria
- 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 III Porting CPPVM
Libreria
Middleware
Legacy MW
SEZIONE IV Re-implementazione Legacy MW
Libreria
SEZIONE V Conclusioni
LynxOS 3.0.1
HARDWARE
6- 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 lutilizzo 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 I Introduzione
SEZIONE II Porting PVM
SEZIONE III Porting CPPVM
SEZIONE IV Re-implementazione Legacy MW
SEZIONE V Conclusioni
7CPPvm 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à
CPPVM
SEZIONE I Introduzione
SEZIONE II Porting PVM
- 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 III Porting CPPVM
SEZIONE IV Re-implementazione Legacy MW
SEZIONE V Conclusioni
81a Fase Porting di PVM 3.4.4
SEZIONE I Introduzione
PVM funziona su molti tipi di diverse
architetture, ma non era supportato dalla nostra
architettura Target, quindi è stato necessario
SEZIONE II Porting PVM
- 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 lapplicazione PVM funzioni in modo
corretto
SEZIONE III Porting CPPVM
SEZIONE IV Re-implementazione Legacy MW
SEZIONE V Conclusioni
9- Dettaglio Passi Eseguiti
- Sono state settare alcune variabili dambiente ed
editati dei file di configurazione UNIX. - PVM_ROOT/usr/local/pvmitf/pvm3
- PVM_ARCHPOWERLXOS
- 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
- E stato necessario agire sui file sorgenti di
PVM per effettuare delle modifiche al codice per
adattarlo al compilatore GCC del 98
SEZIONE I Introduzione
SEZIONE II Porting PVM
SEZIONE III Porting CPPVM
SEZIONE IV Re-implementazione Legacy MW
SEZIONE V Conclusioni
102a Fase Porting CPPVM
SEZIONE I Introduzione
Avendo supposto di utilizzare CPPVM per la terza
fase del progetto, sono stati necessari i
seguenti passi
SEZIONE II Porting PVM
- Verificare che PVM sia istallato correttamente
visto che CPPVM - utilizza le funzionalità di esso.
- Compilare leseguibile cppvms che coopera con il
demone PVMD. - Compilare la libreria libcppvm.a che permette di
utilizzare - lestensione in C.
- Modificare i file sorgenti per compilare
correttamente - la libreria.
- Validare il porting utilizzando gli esempi
forniti con - i sorgenti di CPPVM.
SEZIONE III Porting CPPVM
SEZIONE IV Re-implementazione Legacy MW
SEZIONE V Conclusioni
113a Fase Re-Implementazione funzionalità Legacy
Middleware per la parte di comunicazione.
SEZIONE I Introduzione
SEZIONE II Porting PVM
SEZIONE III Porting CPPVM
SEZIONE IV Re-implementazione Legacy MW
SEZIONE V Conclusioni
12In 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).
- Linformazione scambiata tra due Task deve
assumere una struttura standard (definita
nellSRS di ITF/BS) formata da un campo HEADER e
un campo DATA.
13Metodologia usata Iterativo Incrementale
SEZIONE I Introduzione
SEZIONE II Porting PVM
SEZIONE III Porting CPPVM
SEZIONE IV Re-implementazione Legacy MW
- 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 V Conclusioni
14Analisi
SEZIONE I Introduzione
In fase di analisi dellinterfaccia PVMITF si
sono prodotti i seguenti diagrammi UML (con
laiuto del tool Rational Rose 2002 v.02
Enterprise Edition) disponibile in azienda
SEZIONE II Porting PVM
- Diagrammi dei Casi duso relativi alla
comunicazione - Diagrammi dei Casi duso 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
SEZIONE III Porting CPPVM
SEZIONE IV Re-implementazione Legacy MW
SEZIONE V Conclusioni
15Versioni
SEZIONE I Introduzione
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 NO
4a Versione ( C ) OK OK OK OK
SEZIONE II Porting PVM
SEZIONE III Porting CPPVM
SEZIONE IV Re-implementazione Legacy MW
- 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.
SEZIONE V Conclusioni
Alle fine della realizzazione della libreria
PVMITF si è proceduto alla stesura di alcuni
documenti, tra cui lSDD_PVMITF e la
documentazione del codice sorgente che si è
ottenuta con laiuto del tool Doxygen adatto a
questo scopo.
16Conclusioni
SEZIONE I Introduzione
- 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 lestensione 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 lefficienza di PVM nellambito
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.
SEZIONE II Porting PVM
SEZIONE III Porting CPPVM
SEZIONE IV Re-implementazione Legacy MW
SEZIONE V Conclusioni