INTRODUZIONE AD OMNET++

Slides:



Advertisements
Presentazioni simili
Survey su ADL XML-Based
Advertisements

© 2007 SEI-Società Editrice Internazionale, Apogeo Unità B1 Introduzione alle basi di dati.
Recupero debito quarto anno Primo incontro
Unità D2 Archivi e file.
I linguaggi di programmazione
Linguaggi di programmazione
Metodologie di Programmazione = decomposizione basata su astrazioni
UNIVERSITA DEGLI STUDI DI MODENA E REGGIO EMILIA Facoltà di Ingegneria – Sede di Modena Corso di Laurea in Ingegneria Informatica Progetto e sviluppo di.
I modelli di riferimento OSI e TCP/IP
1 9: Progettazione Architetturale Obiettivo: stabilire la struttura globale di un sistema software Descriveremo diversi tipi di modello di architettura,
Il Software: Obiettivi Programmare direttamente la macchina hardware è molto difficile: lutente dovrebbe conoscere lorganizzazione fisica del computer.
JavaScript Laboratorio di Applicazioni Informatiche II mod. A.
Gestione dei dati e della conoscenza (agenti intelligenti) M.T. PAZIENZA a.a
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Prototipo di uno strumento per la produzione di siti Web adattativi in grado di gestire varie coordinate di adattamento Riccardo Torlone Milano, novembre.
Tipo Documento: unità didattica 1 Modulo 14 Compilatore: Antonella Bolzoni Supervisore: Data emissione: Release: Indice: A.Scheda informativa B.Introduzione.
Architetture scalabili e flessibili a basso consumo Mariagiovanna Sami Polimi Lecce – 5 luglio 04.
1 Programmazione ad oggetti in Java E.Mumolo, DEEI
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Architetture e protocolli CCITTComunicazione: trasferimento di informazioni secondo convenzioni prestabilite La comunicazione richiede cooperazione.
Perché.Net e non più COM/DCOM ? Superamento dei problemi di COM: Richiede una infrastruttura "non semplice" da ogni applicazione (ad esempio Class Factory.
Struttura dei sistemi operativi (panoramica)
Oggetti e dati primitivi Programmazione Corso di laurea in Informatica.
Unità Didattica 2 I Linguaggi di Programmazione
Le classi Definizione di classe Attributi e metodi di una classe Costruttori e distruttori Private e public Funzioni friend Il puntatore this.
Modello Relazionale Definisce tipi attraverso il costruttore relazione, che organizza i dati secondo record a struttura fissa, rappresentabili attraverso.
1 Linux day /11/2003 ADA. Dai requisiti al progetto Come nasce il progetto di una piattaforma e-learning Open Source.
Cos’è un CMS? Content Management System
Per costruire unapplicazione occorre compilare il file (o i file se più duno) che contengono il testo del programma (file sorgente) Il risultato sono uno.
Distributed File System Service Dario Agostinone.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
L’ingegneria del software
Gruppo 11: Ausili Andrea Giovanni Belellixxxxxxxx Polenta Marcoxxxxxxxx Giuseppe Prencipexxxxxxxx Marco Trinastichxxxxxxxx Università Politecnica.
U N INFRASTRUTTURA DI SUPPORTO PER SERVIZI DI FILE HOSTING Matteo Corvaro Matricola Corso di Reti di Calcolatori LS – Prof. A. Corradi A.A.
Introduzione alla programmazione Object Oriented
Tesi di laurea Progettazione ed implementazione di un sistema di supporto al ramp management basato su architettura multiagente Anno Accademico 2008/2009.
VIRTUALIZZAZIONE Docente: Marco Sechi Modulo 1.
Il modello di riferimento OSI
AICA Corso IT Administrator: modulo 4 AICA © EUCIP IT Administrator Modulo 4 - Uso Esperto della Rete Risoluzione dei Problemi e Analisi del Traffico.
Creare pagine web Xhtlm. Struttura di una pagina.
Reti di calcolatori 14 novembre 2003 INFORMATICA GENERALE Scienze per Operatori dei Servizi Giuridici Anno Accademico
Dati e DBMS DBMS relazionali SQL Progettazione di una base di dati Programma del Corso.
L’architettura a strati
Sistemi basati su conoscenza Gestione della conoscenza Prof. M.T. PAZIENZA a.a
LABVIEW Sommario Che cosa è uno strumento virtuale (VI) creato con LABVIEW Parti di un VI: pannello frontale diagramma a blocchi Confronto tra il principio.
Programmazione ad oggetti
1 PRIMA SCIENZA PONTEDERA 4 DICEMBRE 2014 PROGETTAZIONE E DOCUMENTAZIONE DEL PERCORSO Cristina Duranti.
1 Esercitazione Sistemi distribuiti: sistemi che risisedono su più calcolatori interconnessi da una rete di comunicazione Algoritmi distribuiti: programmi.
Diagramma delle Classi
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
Dati e DBMS DBMS relazionali SQL Progettazione di un DBMS Normalizzazione Programma del Corso di Basi di Dati.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
TW Asp - Active Server Pages Nicola Gessa. TW Nicola Gessa Introduzione n Con l’acronimo ASP (Active Server Pages) si identifica NON un linguaggio di.
Progetto di Ingegneria del Web Anno Accademico 2007/2008 Stefano Pigiani Bruno Ricci Marco Ruzzon.
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Sistemi di elaborazione dell’informazione Modulo 4 -Tecniche di programmazione distribuita Unità didattica 1 -Socket library Ernesto Damiani Lezione 1.
Servizi Internet Claudia Raibulet
Progetto e Realizzazione di un servizio di Chat Progetto di: Nicoli Leonardo Corso di: Reti di Calcolatori L-S.
Progettazione di basi di dati: metodologie e modelli
1 Ethereal. 2 I protocolli di rete Per meglio comprendere i protocolli di rete, è molto utile vederli “in azione”, osservando la sequenza dei messaggi.
Università degli Studi di Firenze Facoltà di Ingegneria Dipartimento di Sistemi e Informatica Corso di Laurea in Ingegneria Informatica Modelli e strumenti.
Problemi, algoritmi e programmazione
Eprogram SIA V anno.
Protocolli di rete. Sommario  Introduzione ai protocolli di rete  Il protocollo NetBEUI  Il protocollo AppleTalk  Il protocollo DLC  Il protocollo.
Sistemi distribuiti Sistema distribuito indica una tipologia di sistema informatico costituito da un insieme di processi interconnessi tra loro in cui.
PPT- Postecert PEC – 05/2009 Postecert Posta Elettronica Certificata.
Programmazione orientata agli Oggetti Introduzione a Java.
1 Il livello transport. Concetti fondamentali - Canale logico e canale fisico 2 Quando un segnale deve essere trasmesso, viene inviato su un Canale, cioè.
Open City Platform è un progetto finanziato da Application Store Tutorial 30/09/2015.
Transcript della presentazione:

INTRODUZIONE AD OMNET++ Fabrizio Ronci Roma, 8 gennaio 2010

GENERALITÀ OMNET++ è un ambiente di simulazione di reti: Modulare Ad eventi Orientato agli Oggetti (in C++) Open Source È utile se: si vogliono modellare reti di comunicazione fisse e wireless si vogliono modellare protocolli di comunicazione si vogliono modellare reti di code si vogliono in generale modellare sistemi per i quali è applicabile una simulazione ad eventi discreti, ovvero in cui il sistema e le sue parti possono essere fatte corrispondere ad entità che fra loro comunicano scambiandosi messaggi

PARTICOLARITÀ OMNET++ NON è un simulatore MA è un'infrastruttura di simulazione, composta da: Un motore ad eventi discreti (kernel), normalmente non modificato dallo sviluppatore Una libreria di classi C++, da cui normalmente lo sviluppatore estende le proprie Lo sviluppatore deve: sia descrivere il modello della simulazione sia descrivere una o più simulazioni parametrizzate

MODELLI E SIMULAZIONI Un modello viene descritto per mezzo di file .ned (NEtwork Description Language) in termini di: moduli (modules) accessi (gates) connessioni (connections) messaggi (messages) Le simulazioni vengono descritte per mezzo di file .ini nelle quali vengono specificati i parametri di moduli e connessioni e le caratteristiche della simulazione (durata della simulazione, …) SVANTAGGIO: questo meccanismo è rigido e spesso è necessario adottare metodi al di fuori di OMNET++ per ottenere quello che si vuole

MODULI I moduli (i rettangoli) possono essere semplici o composti; La rete viene considerata un modulo composto. Le connessioni (le frecce) consentono lo scambio dei messaggi tra i moduli (possono essere anche monodirezionali) Gli accessi (i quadratini) sono i punti di ancoraggio delle connessioni e possono essere in, out o inout VANTAGGIO: l’annidamento (nesting) dei moduli è senza limiti (la gerarchia delle connessioni è ad un solo livello) SVANTAGGIO: avere tanti nodi formati da moduli composti fortemente annidati impedisce di portare a termine la simulazione

MESSAGGI I messaggi sono composti da attributi e da una qualunque struttura di dati realizzabile in C++. I messaggi sono fondamentali in OMNET++ perché realizzano gli eventi. I messaggi possono essere inviati dai moduli, o attraverso accessi e connessioni, oppure anche direttamente, passando per il kernel. Con i messaggi possono essere modellati sia elementi concreti nelle comunicazioni (trame, pacchetti, bit), sia elementi logici (ad esempio la fine dell’attività di un modulo).

DOCUMENTAZIONE OMNET++ è relativamente giovane e ci sono delle ambiguità di denominazione: il prototipo di modulo viene chamato – ma non sempre – tipo di modulo (module type) l’istanza di un tipo di modulo viene chiamata modulo (module) il prototipo di connessione viene chiamato – quasi sempre – connessione (connection) o collegamento (link) l’istanza di una connessione viene chiamata – quasi sempre – canale (channel) certe volte gli accessi (gates) vengono chiamati porte (ports), raramente interfacce (interfaces) la libreria di classi (class library), in determinati contesti, viene chiamata libreria di componenti (component library) ed in tal caso spesso i moduli, cioè i tipi di modulo, vengono chiamati componenti (components)

INFRASTRUTTURA Tralasciando il kernel, l’infrastruttura di simulazione è costruita intorno alla libreria di classi: moduli, accessi, connessioni parametri messaggi classi contenitore (code, vettori, …) classi di raccolta di dati classi di stima delle distribuzioni e per la statistica classi per la rivelazione dei transitori e per la rivelazione dell’accuratezza dei risultati Fa parte dell’infrastruttura anche il programma opp_msgc che permette di tradurre il formato dei messaggi in linguaggio C++

IMPLEMENTAZIONE La base dello sviluppo è la scrittura del comportamento (behaviour) dei moduli semplici Sono possibili due tipi di comportamento: event – driven process – style Normalmente lo sviluppatore realizza: il primo tipo di comportamento scrivendo la funzione handleMessage() nel (tipo di) modulo (OPNET, ma…) il secondo tipo di comportamento scrivendo la funzione activity() nel (tipo di) modulo (SIMULA, PARSEC, JAVA Sims) È possibile, ma difficile, realizzare i due comportamenti invertendo la tipologia di funzioni. Sarebbe bizzarro realizzare moduli con entrambe le funzioni; la scelta viene comunicata al kernel. I creatori di OMNET++ consigliano il più possibile il primo approccio

REALIZZAZIONE Per realizzare una simulazione lo sviluppatore deve aver scritto: i file .ned di descrizione del modello i file .msg di descrizione dei messaggi i file .h e .cc di implementazione dei moduli semplici i file .ini di descrizione della simulazione

STRUMENTI I principali strumenti a disposizione dello sviluppatore sono: l’Ambiente di Sviluppo Integrato (IDE) basato su Eclipse gli Ambienti di Interfaccia Utente uno a riga di comando, l’altro grafico i FrameWork librerie di componenti realizzate dalla comunità OMNET++ (il più usato è INET)

CRITICITÀ L’IDE è fornito dalla versione 4.0 e funziona bene (solo) sotto Linux. L’accesso ai parametri interni ai moduli a run-time è complesso. L’affidabilità dei framework non è totale. Solo il framework INET è ben documentato. La costruzione dei file .ned e .ini può richiedere l’uso di linguaggi di script (python); si deve imparare il linguaggio NED. Le prestazioni del sistema in funzione della scalabilità sembrano degradare più velocemente di quanto dichiarato. Il sistema è open-source e relativamente giovane. Alcune delle funzionalità avanzate (simulazioni parallele, uso dei generatori di numeri casuali, uso delle proprietà, …) sono mal documentate e quindi difficilmente accessibili in fase di primo approccio.

POSITIVITÀ L’IDE si basa su un ambiente, Eclipse, noto ed intuitivo. Il framework INET, relativamente alle reti fisse, appare affidabile. Dosando l’utilizzo di framework e di parti sviluppate in proprio si può modulare il livello di dettaglio relativamente agli aspetti che interessano di più. La simulazione può avvenire a livello di bit (anzi, questo è il default). L’interfaccia di utente grafica è molto funzionale e comunque lo sviluppatore ha la possibilità di arricchirla. Esiste una comunità di sviluppatori con mailing-list e forum; di solito i power users di questa comunità sono i possessori/manutentori dei framework. Il sistema è open-source e quindi gratuito. Rispetto ad OPNET il ruolo delle FSMs, che comunque sono possibili mediante classi apposite della libreria, è svolto dall’IDE.

PRINCIPALI FRAMEWORK

Utilizzo dell’editor NED in ambiente IDE SCREENSHOTS (1/3) Utilizzo dell’editor NED in ambiente IDE

SCREENSHOTS (2/3) Diagramma di Sequenza

Ambiente di Interfaccia Grafica di Utente SCREENSHOTS (3/3) Ambiente di Interfaccia Grafica di Utente

INTRODUZIONE AD OMNET++ OSSERVAZIONI & DOMANDE