Internet, Security & Information Technologies

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Internet, Security & Information Technologies"

Transcript

1 Internet, Security & Information Technologies I sistemi distribuiti: lo standard CORBA Sommario Il Middleware Introduzione ai sistemi distribuiti e al concetto di middleware CORBA: concetti generali Introduzione a CORBA e modalità di interazione per applicazioni distribuite basate su CORBA Interface Definition Language Specifica dei servizi tramite interfacce Object Management Architecture Descrizione dell architettura di riferimento definita dall OMG Struttura dell ORB Parti costitutive fondamentali dell ORB e loro funzionalità I servizi CORBA Il concetto di servizio in CORBA e il Naming Service I sistemi distribuiti: lo standard CORBA - 2 -

2 Sistemi Distribuiti Definizione di sistema distribuito: insieme di computer autonomi, collegati da una rete, forniti di software progettato per applicazioni che coinvolgono diverse entità Workstations Personal computers Local Area Network WAN Network gateway File server Login, print e altri servizi I sistemi distribuiti: lo standard CORBA Sistemi Distribuiti Esempi e applicazioni In passato: sistemi multi-utente centralizzati Dal 70 in poi: evoluzione reti locali aumento della potenza delle singole stazioni UNIX con supporto alla comunicazione tra processi (4BSD) architetture client-server Network File System - RPC e NIS Applicazioni commerciali con accesso a database Wide area network application Accesso ad informazioni multimediali e applicazioni di conferenza I sistemi distribuiti: lo standard CORBA - 4 -

3 Sistemi distribuiti Caratteristiche Condivisione di risorse Sistemi aperti Concorrenza Scalabilità Fault tolerance Trasparenza Affidabilità Sicurezza I sistemi distribuiti: lo standard CORBA Middleware Supporto ai sistemi distribuiti Per la realizzazione di sistemi distribuiti e client/server si fa sempre più uso di piattaforme standard, il collante o la / di client/server, ciò che consente a parti diversi dell'applicazione di interagire: le piattaforme middleware Sono state specificate (ad esempio CORBA) per soddisfare molti dei requisiti individuati dall'intergalactic Bus Favoriscono l'evoluzione delle applicazioni distribuite I sistemi distribuiti: lo standard CORBA - 6 -

4 Middleware Definizione: software distribuito necessario per supportare l'interazione tra client e server Comprende: le API utilizzate dal client per invocare un servizio la trasmissione di informazioni sulla rete la ricezione dei risultati Sono escluse: il software che fornisce il servizio richiesto [sul server] l'interfaccia utente e la logica dell'applicazione [sul client] I sistemi distribuiti: lo standard CORBA Che cos'è il middleware? software che consente ai componenti di un sistema distribuito di interagire Applicazione 1 Applicazione 2 Applicazione 3 Applicazione N Middleware Macchina A Macchina B Network Macchina Z Macchina C I sistemi distribuiti: lo standard CORBA - 8 -

5 Middleware Caratteristiche Il suo compito principale è di creare un ambiente omogeneo, nascondendo alle applicazioni sovrastanti l'eterogeneità delle componenti di comunicazione sottostanti Si rende visibile alle parti del sistema come un insieme di servizi offerti localmente, che mascherano la trasmissione e distribuzione delle richieste sulla rete registrare l'oggetto nel sistema distribuito contattare altri oggetti inviare un messaggio I sistemi distribuiti: lo standard CORBA Middleware Posizionamento nel sistema SW Non fa parte dell'applicazione, Non incapsula alcun tipo di conoscenza relativa né alla logica dell'applicazione, né al dominio applicativo Esistono però middleware specializzati per domini particolari Non fa nemmeno parte del sistema operativo Nel senso tradizionale del temine Può essere nativamente integrato nel S.O. (e venduto con esso) o relativamente indipendente da esso I sistemi distribuiti: lo standard CORBA

6 Middleware Classi di Middleware Middleware generico Estensioni dei S.O. (o veri e propri S.O. distribuiti) stack di comunicazione, directory distribuite, autenticazione, RPC... consentono comunicazioni remote mediante chiamate di procedure (DCE, ONC+), invio di messaggi, pipe (Network OS) Middleware specifico Per database distribuiti (ODBC, sistemi proprietari) Per transazioni - OLTP (Tuxedo ATMI) Per la realizzazione di applicazioni di groupware (Lotus Notes) Per sistemi object-oriented (CORBA, DCOM, RMI) Per applicazioni Internet (HTTP, SSL) Per system management (SMTP) I sistemi distribuiti: lo standard CORBA Classi di Middleware Remote Procedure Call (RPC) È uno dei primi standard (OSF DCE, Sun ONC,...) Un client locale chiama una procedura eseguita sul server remoto come se fosse locale Molto semplice e povero Caratteristiche: Comunicazione sincrona, request/reply Linguaggi procedurali, nessuna metodologia OO Client, server e stub compilati con lo stesso linguaggio Interfacce con modifiche poco frequenti -> ricompilazione RPC TP Monitor MSG: queue pub/sub ORB: CORBA RMI DCOM I sistemi distribuiti: lo standard CORBA

7 RPC Distributed Computing Model Client Client Client Client Server Server Server Client I client richiedono l'esecuzione di funzioni sul server I sistemi distribuiti: lo standard CORBA Classi di Middleware Transaction Processing Monitor Middleware per applicazioni su larga scala, con transazioni che devono essere coordinate fra più DB, in scenari real-time, con poca coordinazione fra i client Ogni interazione fra client e server è una transazione: begintransaction - operazioni - committransaction proprietà ACID (Atomicità, Concorrenza, Indipendenza, Durabilità) transazioni annidate e generalmente brevi Utili ma non sono un'infrastruttura di comunicazione general purpose RPC TP Monitor MSG: queue pub/sub ORB: CORBA RMI DCOM I sistemi distribuiti: lo standard CORBA

8 TP Monitor Distributed Computing Model Client Client Client Client Client TP Monitor Server Server Server I client accedono alle risorse dei server tramite l intermediazione del monitor I sistemi distribuiti: lo standard CORBA Classi di Middleware Messaging Middleware Diversi approcci: peer-to-peer message queuing publish-subscribe (message bus) L'informazione è trasferita attraverso messaggi: contengono destinatario e dati RPC TP Monitor MSG: queue pub/sub ORB: CORBA RMI DCOM I sistemi distribuiti: lo standard CORBA

9 Classi di Middleware Message Queuing Paradigma Store&Forward Non richiede una connessione diretta fra programmi i riceventi non devono esser necessariamente attivi quando viene loro spedito un messaggio Le code possono svolgere funzionalità di bridge fra protocolli I processi più lenti non vincolano le prestazioni complessive del sistema Adatto per: messaggi che devono essere assolutamente consegnati non real time nessuna coordinazione fra sender e receiver I sistemi distribuiti: lo standard CORBA Message Queue Communications Model program program program Coda di messaggi program Più programmi possono accedere alla stessa coda La coda di messaggi può risiedere su disco o in memoria I sistemi distribuiti: lo standard CORBA

10 Classi di Middleware Publish-Subscribe (Message Bus) i programmi sottoscrivono argomenti di interesse i messaggi sono relativi agli argomenti trasparenza alla localizzazione: i publisher non necessitano di sapere quali subscriber riceveranno i loro messaggi, ne dove sono localizzati i subscriber non necessitano di sapere quale publisher ha generato i dati Adatto per applicazioni in ambienti con caratteristiche: real time, event driven, one-to-many la scalabilita e l affidabilità del sistema sono importanti ridotto nnumero di canali di comunicazione un solo processo (la coda) deve essere sempre attivo I sistemi distribuiti: lo standard CORBA Publish-Subscribe Communication Model Publisher Publisher Publisher Logical Message Bus Subscriber Subscriber Subscriber I messaggi sono inviati dai publisher che li generano i subscriber ricevono i messaggi per cui si sono sottoscritti I sistemi distribuiti: lo standard CORBA

11 Classi di Middleware Object Request Broker (ORB) Simile ad un RPC Object Oriented classi, attributi e metodi, ereditarietà e polimorfismo Indipendenza dal linguaggio con cui sono scritte le applicazioni e dall'ambiente Standard in competizione: CORBA, Object Management Group DCOM, Microsoft RMI, Sun (javasoft) RPC TP Monitor MSG: queue pub/sub ORB: CORBA RMI DCOM I sistemi distribuiti: lo standard CORBA ORB Distributed Computing Model Client Server Server Server/Client Server Client Server/Client Server/Client Client Un programma può essere sia client che server I sistemi distribuiti: lo standard CORBA

12 ORB Common ORB Arichitecture È uno dei primi esempi di middleware ad oggetti Permette di invocare metodi appartenenti ad oggetti remoti, in modo statico o dinamico CORBA 2.0 (1994), architettura inter-orb basata su TCP/IP Sono stati specificati servizi aggiuntivi (naming, event, traader, Security, Transaction, Persistency, Messaging ecc.) Ampia accettazione dello standard: contatti con altre organizzazioni di standardizzazione e produttori di software Attualmente notevole evoluzione dei prodotti commerciali (VisiBroker 4.0): scalabilità e robustezza Implementazione commerciale di vari servizi CORBA RPC TP Monitor MSG: queue pub/sub ORB: CORBA RMI DCOM I sistemi distribuiti: lo standard CORBA ORB Java RMI Per comunicazioni esclusivamente Java-to-Java Simile a CORBA ma più semplice Non usa IIOP perchè interoperabilità già garantita Vantaggi su CORBA: garbage collection automatica per gli oggetti nessuna necessità di IDL: interfaccia specificata in Java può trasferire per valore oggetti Java (serializzazione) RPC TP Monitor MSG: queue pub/sub ORB: CORBA RMI DCOM I sistemi distribuiti: lo standard CORBA

13 ORB DCOM Soluzione Microsoft basata su tecnologia COM/OLE Oggetti ActiveX manipolabili da remoto usando DCOM mercato diffuso per componenti ActiveX Per soluzioni Windows only può essere vantaggioso: DCOM è parte del sistema operativo DCOM è ben supportato con vari tool DCOM fornisce generalmente prestazioni migliori di CORBA MIDL: Microsoft IDL molto diverso da CORBA IDL versione estesa di DCE IDL RPC TP Monitor MSG: queue pub/sub ORB: CORBA RMI DCOM I sistemi distribuiti: lo standard CORBA Sommario Il Middleware Introduzione ai sistemi distribuiti e al concetto di middleware CORBA: concetti generali Introduzione a CORBA e modalità di interazione per applicazioni distribuite basate su CORBA Interface Definition Language Specifica dei servizi tramite interfacce Object Management Architecture Descrizione dell architettura di riferimento definita dall OMG Struttura dell ORB Parti costitutive fondamentali dell ORB e loro funzionalità I servizi CORBA Il concetto di servizio in CORBA e il Naming Service I sistemi distribuiti: lo standard CORBA

14 Il problema e la proposta OMG Ci si trova a dover realizzare: Sistemi distribuiti su vasta scala Sistemi eterogenei, costituiti da piattaforme hardware e software estremamente diverse È necessario che i componenti del sistema distribuito possano interoperare L'approccio OMG: Definire un'architettura di riferimento object oriented, basata sul concetto di interfaccia di un componente La conformità con l'architettura di riferimento dovrebbe garantire l'interoperabilità I sistemi distribuiti: lo standard CORBA Perché Object Oriented Dal punto di vista dell'utente: Facilità d'uso delle interfacce utenti object-oriented Integrabilità di componenti sviluppati indipendentemente Condivisione di oggetti che svolgono funzioni comuni Wrapping di applicazioni legacy (anche non object oriented) Dal punto di vista dello sviluppatore: Modularizzazione delle applicazioni Costruzione incrementale del sistema Riuso dei componenti I sistemi distribuiti: lo standard CORBA

15 OMG: organismo di standardizzazione OMG (Object Management Group), attivo dal 1989 nella definizione del bus software uno dei primi esempi di middleware ad oggetti ORB (Object Request Broker), permette di invocare metodi appartenenti ad oggetti remoti, in modo statico o dinamico CORBA 2.0 (1994), architettura inter-orb basata su TCP/IP (e opzionalmente su DCE) il bus (ORB) è estensibile con servizi modulari (es. comunicazione ad eventi, transazioni, licenze, ecc.) Application Objects Common Facilities Object Request Broker (ORB) CORBAservices I sistemi distribuiti: lo standard CORBA CORBA Common: Standard proposto dall'omg Architecture: Sistema completo di riferimento Object: Modellazione della realtà ad oggetti Broker: Infrastruttura Request: di mediazione e Comunicazione supporto alla basata sul comunicazione paradigma richiesta/risposta I sistemi distribuiti: lo standard CORBA

16 Il modello ad oggetti L Object Management Architecture (OMA) definisce un modello parziale della computazione che include le caratteristiche principali della tecnologia ad oggetti Un sistema ad oggetti è visto come un insieme di oggetti in cui i client possono richiedere un servizio agli oggetti server senza sapere in che modo il server realizza il servizio qual è il codice da eseguire, qual è il formato dei dati Un client è schermato da un'interfaccia rispetto al modo in cui un server è realizzato I sistemi distribuiti: lo standard CORBA Il concetto di oggetto in CORBA Un oggetto in CORBA è una entità che: incapsula dati e operazioni ha un'interfaccia ben definita è univocamente identificabile è in grado di eseguire i servizi richiesti da un client può rappresentare un oggetto del mondo reale Nota: nella visione CORBA, i client non devono necessariamente essere oggetti, anche se nelle situazioni più comuni un'entità si può comportare sia da client che da server I sistemi distribuiti: lo standard CORBA

17 Il paradigma richesta-risposta risposta La comunicazione fra oggetti in un sistema ad oggetti avviene (logicamente) mediante scambio di messaggi una richiesta viene inviata da un client ad un oggetto per richiedere un servizio Una richiesta è costituita dal nome di una operazione, dall'identificativo dell'oggetto server, dai parametri dell'operazione, se necessari, e dal contesto in cui svolgere l'operazione, se necessario Ricevuta una richiesta, in base a questa l'oggetto server sceglie di eseguire un particolare metodo (cioè codice) e restituisce i risultati prodotti o segnala che si è verificata una condizione anomala tramite la restituzione di un'eccezione I sistemi distribuiti: lo standard CORBA Applicazioni ad oggetti Ogni oggetto è preposto a svolgere determinate funzionalità Interscambio di messaggi Su un unica macchina Applicazione sviluppata ad oggetti obj Elaborazione dati Interfaccia grafica Gestione profilo utente Accesso al DB obj Codice chiuso : stesso linguaggio, stesso SO, unica macchina DataBase I sistemi distribuiti: lo standard CORBA

18 Esigenze attuali: Intranet (e Internet) Singole entità delocalizzate e cooperanti in rete Vendite A R&S Amministrazione Produzione Vendite B Intranet Ufficio Mobile Sistema informativo aziendale di rete che utilizza, per interconnettere le proprie componenti interne, una infrastruttura di telecomunicazione privata basata sui protocolli di Internet I sistemi distribuiti: lo standard CORBA CORBA e oggetti distribuiti CORBA definisce un architettura aperta in cui possono interoperare oggetti con caratteristiche diverse Ciascun oggetto può essere in esecuzione su un sistema operativo diverso ed essere implementato in un linguaggio diverso Ciascun oggetto contiene una parte dell'intelligenza complessiva del sistema distribuito Grande flessibilità: è possibile distribuire gli oggetti sulla rete a seconda delle esigenze Windows OS Mac OS Obj4-C Rete di comunicazione (Internet) Windows OS Obj5-Java Obj1-C++ Obj2-Java Solaris OS Obj3-Cobol I sistemi distribuiti: lo standard CORBA

19 CORBA e funzionalità client-server Oggetto server: Offre un servizio agli altri oggetti Può utilizzare i servizi di altri oggetti per offrire un servizio più elaborato Oggetto client: Accede ai servizi messi a disposizione dagli oggetti server Mac OS Obj4-C Rete di comunicazione (Internet) Windows OS Obj5-Java 1-Service request Windows OS 5-Service response Obj1- C++ Obj2-Java Obj3-Cobol Solaris OS Internal objects 2-internal operations 3-service request 4-service response I sistemi distribuiti: lo standard CORBA CORBA Object Request Broker: Caratteristiche Client Server CORBA API CORBA Object Adapter Object Request Broker Network Object Request Broker Consente di costruire i singoli oggetti senza preoccuparsi della distribuzione Gestisce la comunicazione fra oggetti distribuiti su di una rete Rende la comunicazione fra oggetti distribuiti analoga a quella fra oggetti locali I sistemi distribuiti: lo standard CORBA

20 CORBA Funzionalità dell'orb Intercetta le chiamate di metodi Si occupa di trovare l'oggetto destinatario dell'invocazione Trasferisce i parametri all'oggetto chiamato Invoca il metodo Restituisce il valori di ritorno al chiamante Il client vede solamente una interfaccia dal lato server Non si deve preoccupare della localizzazione del server Non deve sapere il tipo di linguaggio utilizzato dal server Deve disinteressarsi del sistema operativo utilizzato dal server Obj client Client domain Obj server ORB I sistemi distribuiti: lo standard CORBA Obj server CORBA Come descrivere i servizi offerti? Ogni oggetto server descrive le funzionalità che mette a disposizione tramite un'interfaccia Un'interfaccia contiene solamente la signature dei metodi (funzioni o operazioni) che descrivono la sintassi del servizio La semantica è definita dall'oggetto server che esegue determinate operazioni a seguito di una richiesta del servizio Per rendere la descrizione del servizio indipendente dal linguaggio utilizzato dagli oggetti CORBA definisce un linguaggio apposito (IDL) per descrivere le interfacce Interface Definition Language I sistemi distribuiti: lo standard CORBA

21 Sommario Il Middleware Introduzione ai sistemi distribuiti e al concetto di middleware CORBA: concetti generali Introduzione a CORBA e modalità di interazione per applicazioni distribuite basate su CORBA Interface Definition Language Specifica dei servizi tramite interfacce Object Management Architecture Descrizione dell architettura di riferimento definita dall OMG Struttura dell ORB Parti costitutive fondamentali dell ORB e loro funzionalità I servizi CORBA Il concetto di servizio in CORBA e il Naming Service I sistemi distribuiti: lo standard CORBA Oggetti CORBA ed interfacce IDL Definendo un unico linguaggio, tutti gli oggetti parlano la stessa lingua nella comunicazione inter-oggetto Ciascun oggetto convertirà poi la specifica IDL nelle operazioni corrispondenti al linguaggio utilizzato (C, C++, Java, Cobol, ) Mac OS Obj4-C IDL Rete di comunicazione (Internet) Windows OS IDLObj1-C++ Obj5-Java IDL IDLObj3-Cobol Windows OS Solaris OS I sistemi distribuiti: lo standard CORBA

22 Interface Definition Language Interoperabilità (1) Attualmente esistono correlazioni (binding) fra IDL e C, C++, Ada, Smalltalk, Java (COBOL, ObjectiveC) La traduzione da IDL verso un linguaggio specifico permette agli sviluppatori degli oggetti di lavorare con il linguaggio nativo da loro prescelto C C++ Smalltalk Ada COBOL Java IDL IDL IDL IDL IDL IDL Object Request Broker (ORB) I sistemi distribuiti: lo standard CORBA Interface Definition Language Interoperabilità (2) CORBA si preoccupa poi di effettuare le dovute conversioni della sintassi e del formalismo dei dati tipici di ogni linguaggio in dei formati standard C C++SmalltalkAda COBOL Java C C++SmalltalkAda COBOL Java IDL IDL IDL IDL IDL IDL IDL IDL IDL IDL IDL IDL Client Server Object Request Broker (ORB) I sistemi distribuiti: lo standard CORBA

23 Interface Definition Language ORB e CORBA CORBA è l'architettura di riferimento per la costruzione di ORB (software bus) Gli oggetti che si affacciano sul bus descrivono i servizi che mettono a disposizione definendone le interfacce mediante un Interface Definition Language (IDL) Le interfacce descritte con IDL costituiscono delle specifiche; le implementazioni possono essere realizzate con un linguaggio qualsiasi (per cui esista un mapping IDL) Oggetti con implementazioni scritte in linguaggi diversi possono interoperare (richiamare reciprocamente i metodi) Oggetti collegati ad ORB diversi (anche di venditori diversi) possono interoperare (CORBA 2.0) I sistemi distribuiti: lo standard CORBA Interface Definition Language Consente di separare le interfacce dalle implementazioni degli oggetti: supporta l'ereditarietà multipla ed il controllo statico dei tipi è indipendente dal linguaggio di programmazione utilizzato per implementare gli oggetti (mapping per linguaggi diversi: C, C++, SmallTalk, Java,...) non è un linguaggio di programmazione, ma un linguaggio per la specifica di interfacce È definito in modo da consentire un utilizzo sia statico che dinamico L'IDL ha una sintassi simile a quella del C++/Java Il compilatore IDL supporta il pre-processing in stile C++ (#include) I sistemi distribuiti: lo standard CORBA

24 Interface Definition Language Caratteristiche generali Un'interfaccia IDL definisce l'insieme di tipi, costanti, eccezioni, attributi ed operazioni messi a disposizione da un oggetto server Ogni interfaccia ha un nome e può essere definita a partire da una o più interfacce esistenti (ereditarietà multipla) l'interfaccia derivata può aggiungere nuovi elementi non è possibile ereditare da interfacce diverse che definiscono lo stesso attributo o la stessa operazione le ambiguità si risolvono qualificando l'elemento con il nome dell'interfaccia (::) I sistemi distribuiti: lo standard CORBA Interface Definition Language Interfaccia IDL degli oggetti Un server fornisce un insieme di servizi specificati dall'interfaccia saldo() Client utente bancomat Invocazione metodi remoti operazioni di consultazione e prelievo saldo(), prelievo() e estrattoconto(): unici metodi che possono esser invocati sull'oggetto remoto estrattoconto() Server oggetto conto corrente prelievo() I sistemi distribuiti: lo standard CORBA

25 Interface Definition Language Struttura di una interfaccia #include MyInterface.idl" module <identifier> { <type declarations>; <constant declarations>; <exception declarations>; interface <identifier> [:<inheritance>] { <type declarations>; <constant declarations>; <attribute declarations>; <exception declarations>; [<op_type>] <method_identifier> (<parameters>) [raises exception] [context]; }; }; interface <identifier> [:<inheritance>] { }; Include le strutture dati definite in un'altra interfaccia IDL Definisce un Name Space Definisce una interfaccia Definisce un metodo Definisce una interfaccia I sistemi distribuiti: lo standard CORBA Interface Definition Language Moduli Il modulo IDL coincide con il costrutto di modularizzazione tipico dei linguaggi di programmazione (scope di nomi) Può racchiudere più interfacce È analogo ai package di Java, che possono includere più di una classe module Global { typedef... interface B... }; Serve per introdurre dei livelli di gerarchia nello spazio delle interfacce IDL I sistemi distribuiti: lo standard CORBA

26 Interface Definition Language Costanti e tipi di dati All'interno di un interfaccia o modulo è possibile dichiarare entità con valori costanti (espressioni costanti) const int MAX = MIN + LEN Tipi di dati: Sono utilizzati per descrivere i valori accettati in CORBA per i parametri, le eccezioni ed i valori di ritorno Due categorie: di base (basic) e complessi (constructed) short, long, unsigned long, unsigned short, float, double, char, boolean, octet enum, string, struct, array, union, sequence, any I sistemi distribuiti: lo standard CORBA Interface Definition Language Tipi di dati complessi È possibile associare un nome alla definizione di un nuovo tipo (typedef) Matrice di long Esempio di tipi complessi: (long[][]) Sequence typedef sequence < sequence<long> > DblSeq Strutture struct Service { string serviceid; string servicename; }; Enumeration enum SessionState { Active, Suspended, Terminated }; IDL2Java => Classe Java (Service) con due stringhe come attributi (serviceid, servicename) IDL2Java => Classe Java (SessionState) con tre interi (0-Active, 1-Suspended, 2-Terminated) I sistemi distribuiti: lo standard CORBA

27 Interface Definition Language Attributi All'interno di una interfaccia è possibile dichiarare attributi, che corrispondono logicamente ad una coppia di operazioni che servono per impostare/modificare ed una per leggere il valore dell'attributo L'implementazione fornisce automaticamente i metodi get e set per prelevare e modificare il valore dell'attributo Nel caso readonly vi è il solo metodo get attribute float radius; readonly attribute position_t position; Tipo dell'attributo Nome dell'attributo I sistemi distribuiti: lo standard CORBA Interface Definition Language Operazioni Le operazioni vengono dichiarate in un formato simile alle funzioni C, specificando i parametri, i valori di ritorno e l'elenco delle eccezioni che possono sollevare I parametri IDL, diversamente ad es. dalle interfacce RMI, possono essere: Parametri di input - passati dal client al server (in) Parametri di output - dal server al client (out) Parametri di input-output - entrambe le direzioni (inout) void search(in Code what, out Item el, inout string param) raises (NotFound) I sistemi distribuiti: lo standard CORBA

28 Interface Definition Language Eccezioni Le eccezioni possono essere dichiarate come strutture exception NotFound {string <N> what} Ad esempio, il mapping idl2java converte l'eccezione in una classe che può essere istanziata e restituita come risultato di una invocazione final public class NotFound extends org.omg.corba.userexception {//costruttori, variabili} Possono essere sollevate da operazioni chiamate e gestite dal chiamante Il risultato di una invocazione può essere una eccezione Il client deve catturare le eccezioni e gestirle con una propria semantica CORBA definisce un insieme di eccezioni standard I sistemi distribuiti: lo standard CORBA Interface Definition Language Interfacce ed ereditarietà interface Base { const int N } Base Metodi interfaccia Base // interfaccia che eredita da Base interface Derived : Base { const int M typedef } Derived Metodi interfaccia Derived Metodi ereditati dall'interfaccia Base I sistemi distribuiti: lo standard CORBA

29 Interface Definition Language Mapping verso più linguaggi I tipi definiti in IDL devono avere dei corrispondenti negli specifici linguaggi Esempio: IDL string idl2java Idl2cpp char * Java.lang.String I sistemi distribuiti: lo standard CORBA Interface Definition Language Esempio di interfaccia IDL module GestioneConto { struct movimento { string data; float importo_movimento; }; typedef sequence <movimento> lista_operaz; interface Conto { attribute string name; float saldo(in string codice_conto); lista_operaz estrattoconto(in string codice_conto); void prelievo(in string codice_conto, in float quota); }; }; Client Server I sistemi distribuiti: lo standard CORBA

30 Interface Definition Language Mapping IDL to Java Supponendo di voler scrivere un oggetto in Java, è necessario convertire l'interfaccia IDL in un oggetto Java Dominio IDL GestioneConto.idl idl2java compiler Dominio Java Insieme di classi Java module GestioneConto struct movimento interface Conto package GestioneConto final class movimento public interface Conto extends org.omg.corba.object Il compilatore genera anche altre classi utili al server ed al client I sistemi distribuiti: lo standard CORBA Mapping di una struct IDL-Java La struct movimento viene mappata in una classe Java final che contiene i dati della struct come attributi della classe Dominio IDL struct movimento { string data; float importo_movimento; }; Dominio Java package GestioneConto; final public class movimento { public java.lang.string data; public float importo_movimento; public movimento() {} public movimento( java.lang.string data, float importo_movimento) { this.data = data; this.importo_movimento = importo_movimento; } } I sistemi distribuiti: lo standard CORBA

31 Mapping di un attributo IDL-Java L attributo name viene reso accessibile tramite i due metodi di get e di set Dominio IDL attribute string name; Dominio Java package GestioneConto; public interface Conto extends GestioneConto.ContoOperations package GestioneConto; public interface ContoOperations { public java.lang.string name(); public void name (java.lang.string name); } I sistemi distribuiti: lo standard CORBA Mapping di un interfaccia IDL-Java L'interfaccia IDL viene convertita in un'interfaccia Java che possiede gli stessi metodi Dominio IDL interface Conto { float saldo(in string codice_conto); lista_operaz estrattoconto(in string codice_conto); void prelievo(in string codice_conto, in float quota); }; Dominio Java package GestioneConto; public interface Conto extends GestioneConto.ContoOperations package GestioneConto; public interface ContoOperations { public float saldo (java.lang.string codice_conto);public GestioneConto.movimento[] estrattoconto (java.lang.string codice_conto); public void prelievo (java.lang.string codice_conto, float quota); } I sistemi distribuiti: lo standard CORBA

32 Considerazioni sul mapping Il risultato della compilazione produce un insieme di oggetti con cui il programmatore è familiare Questa conversione nasconde l'eterogeneità dei linguaggi con cui sono implementati gli oggetti presenti nel sistema distribuito In generale è molto utile conoscere la sintassi dell'idl L'OMG ha definito il mapping per tutti i linguaggi precedentemente visti È abbastanza superfluo sapere la sintassi del mapping con il linguaggio di interesse Può essere vista di volta in volta sulla base del risultato generato dal compilatore IDL I sistemi distribuiti: lo standard CORBA Conclusioni IDL Client e server scritti in diversi linguaggi che hanno un mapping con l IDL Mondo Java Oggetto client invocazione Comunicazioni IDL Invocazione metodo interfaccia IDL Restituzione valori output Mondo C++ Interfaccia IDL Oggetto Server Codice metodo1 Es: Java su Windows NT/9x Es: C++ su Solaris I sistemi distribuiti: lo standard CORBA

CORBA ( Common Object Request Broker Architecture ) Le specifiche più conosciute sono UML e CORBA

CORBA ( Common Object Request Broker Architecture ) Le specifiche più conosciute sono UML e CORBA CORBA ( Common Object Request Broker Architecture ) consiste in un insieme di specifiche promosse e curate da OMG (Object Management Group). L OMG è un consorzio internazionale no-profit di industrie nel

Dettagli

CORBA & DCOM. Gianpaolo Cugola cugola@elet.polimi.it http://www.elet.polimi.it/~cugola. La Object Management Architecture

CORBA & DCOM. Gianpaolo Cugola cugola@elet.polimi.it http://www.elet.polimi.it/~cugola. La Object Management Architecture CORBA & DCOM Gianpaolo Cugola cugola@elet.polimi.it http://www.elet.polimi.it/~cugola Sommario La Object Management Architecture CORBA La programmazione di applicazioni CORBA in Java CORBA vs. RMI DCOM

Dettagli

8. Sistemi Distribuiti e Middleware

8. Sistemi Distribuiti e Middleware 8. Sistemi Distribuiti e Middleware Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 8. Sistemi distribuiti e Middleware 1 / 32 Sommario 1 Sistemi distribuiti

Dettagli

CORBA. CORBA facilita lo sviluppo di sistemi distribuiti fornendo

CORBA. CORBA facilita lo sviluppo di sistemi distribuiti fornendo CORBA CORBA facilita lo sviluppo di sistemi distribuiti fornendo Una infrastruttura per far comunicare oggetti in un sistema distribuito Un set di servizi utili Un supporto che permette ad applicazioni

Dettagli

Distributed Object Computing

Distributed Object Computing Evoluzione Architetturale Distributed omputing entralizzata Monolitica anni 60-70 Reti locali di P anni 80 Reti lient Server anni 80-90 Internet The network is the computer Paolo Falcarin Sistemi Informativi

Dettagli

Seminario di Sistemi Distribuiti: RPC su SOAP

Seminario di Sistemi Distribuiti: RPC su SOAP Corso di Sistemi Distribuiti Prof. S. Balsamo Seminario di Sistemi Distribuiti: RPC su SOAP [ 777775] 1 INTRODUZIONE 3 2 RPC 3 3 SOAP (SIMPLE OBJECT ACCESS PROTOCOL) 3 4 UTILIZZO DI SOAP COME PROTOCOLLO

Dettagli

Architetture a oggetti distribuiti

Architetture a oggetti distribuiti Luca Cabibbo Architetture Software Architetture a oggetti distribuiti Dispensa ASW 420 ottobre 2014 Tutti sanno che una certa cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo

Dettagli

Programmazione di sistemi distribuiti

Programmazione di sistemi distribuiti Programmazione di sistemi distribuiti I Sistemi Distribuiti, per loro natura, prevedono che computazioni differenti possano essere eseguite su VM differenti, possibilmente su host differenti, comunicanti

Dettagli

Corso di Reti di Calcolatori LS

Corso di Reti di Calcolatori LS Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori LS CORBA - Implementazione Naming Service e Interface Repository Luca Foschini Anno accademico 2008/2009 Agenda CORBA

Dettagli

Broker. [POSA1] Pattern-Oriented Software Architecture, 1996

Broker. [POSA1] Pattern-Oriented Software Architecture, 1996 Luca Cabibbo Architetture Software Dispensa ASW 420 ottobre 2014 Tutti sanno che una certa cosa è impossibile da realizzare, finché arriva uno sprovveduto che non lo sa e la inventa. Albert Einstein 1

Dettagli

Java Remote Method Invocation

Java Remote Method Invocation Java Remote Method Invocation Programmazione in Rete e Laboratorio Comunicazione distribuita Port1 Java VM1 Java VM2 Port 2 Matteo Baldoni Dipartimento di Informatica Universita` degli Studi di Torino

Dettagli

Sistemi Distribuiti. Anno Accademico 2005-06 Prof. Flavio De Paoli. Il modello ad oggetti

Sistemi Distribuiti. Anno Accademico 2005-06 Prof. Flavio De Paoli. Il modello ad oggetti Sistemi Distribuiti Anno Accademico 2005-06 Prof. Flavio De Paoli 1 Il modello ad oggetti 2 Distributed Objects 2-16 Common organization of a remote object with client-side proxy. 3 Caratteristiche Oggetti

Dettagli

Comunicazione fra oggetti distribuiti

Comunicazione fra oggetti distribuiti Comunicazione fra oggetti distribuiti RMI RPC invocazione di metodo remoto - gli oggetti remoti ricevono le RMI interfaccia remota meccanismo per la comunicazione cliente servente come primitiva di un

Dettagli

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO

ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO ALLEGATO C STANDARD TECNICI DELLA BORSA CONTINUA NAZIONALE DEL LAVORO Standard tecnici Gli standard tecnici di riferimento adottati sono conformi alle specifiche e alle raccomandazioni emanate dai principali

Dettagli

Sommario. G. Piscitelli

Sommario. G. Piscitelli Sommario Interprocess Communication Processi (e thread) cooperanti Il paradigma produttore-consumatore Shared Memory e Inter Process Communication (IPC) facility Proprietà caratteristiche della comunicazione

Dettagli

Table of Contents. Definizione di Sistema Distribuito 15/03/2013

Table of Contents. Definizione di Sistema Distribuito 15/03/2013 Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano Table of Contents Definizione di Sistema Distribuito - 4-7 - 13 Definizioni e Principali Caratteristiche

Dettagli

Sistemi Operativi (modulo di Informatica II)

Sistemi Operativi (modulo di Informatica II) Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2008-09 Sommario Processi cooperanti La comunicazione tra processi Necessità

Dettagli

Table of Contents. Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano

Table of Contents. Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano Insegnamento: Sistemi Distribuiti - 6 cfu LM Ing. Informatica Docente: Prof. Marcello Castellano Table of Contents Definizione di Sistema Distribuito - 4 Obiettivi Principali di un S.D. - 7 Tipi di Sistemi

Dettagli

Framework. Impianti Informatici. Web application - tecnologie

Framework. Impianti Informatici. Web application - tecnologie Framework Web application - tecnologie Web Application: tecnologie 2 Java-based (J2EE) Sviluppata inizialmente da Sun Cross-platform e open source Gestire direttamente le funzionalità dell applicazione

Dettagli

Progettazione: Tecnologie e ambienti di sviluppo

Progettazione: Tecnologie e ambienti di sviluppo Contratto per l acquisizione di servizi di Assistenza specialistica per la gestione e l evoluzione del patrimonio software della Regione Basilicata. Repertorio n. 11016 del 25/09/2009 Progettazione: Tecnologie

Dettagli

Architetture per le applicazioni web-based. Mario Cannataro

Architetture per le applicazioni web-based. Mario Cannataro Architetture per le applicazioni web-based Mario Cannataro 1 Sommario Internet e le applicazioni web-based Caratteristiche delle applicazioni web-based Soluzioni per l architettura three-tier Livello utente

Dettagli

Architettura SW Definizione e Notazioni

Architettura SW Definizione e Notazioni Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Stili Architetturali E. TINELLI Architettura SW Definizione e Notazioni Definizione ANSI/IEEE Std Std1471-2000

Dettagli

Analisi, progettazione e implementazione di un repository di componenti distribuite in Java basato su JNDI.

Analisi, progettazione e implementazione di un repository di componenti distribuite in Java basato su JNDI. UNIVERSITÀ DEGLI STUDI DI ROMA LA SAPIENZA TESI DI LAUREA IN SCIENZE DELL INFORMAZIONE Analisi, progettazione e implementazione di un repository di componenti distribuite in Java basato su JNDI. Relatore:

Dettagli

Concetti base. Impianti Informatici. Web application

Concetti base. Impianti Informatici. Web application Concetti base Web application La diffusione del World Wide Web 2 Supporto ai ricercatori Organizzazione documentazione Condivisione informazioni Scambio di informazioni di qualsiasi natura Chat Forum Intranet

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2008/2009 Questi lucidi sono stati prodotti sulla

Dettagli

CdL MAGISTRALE in INFORMATICA

CdL MAGISTRALE in INFORMATICA 05/11/14 CdL MAGISTRALE in INFORMATICA A.A. 2014-2015 corso di SISTEMI DISTRIBUITI 7. I processi : il naming Prof. S.Pizzutilo Il naming dei processi Nome = stringa di bit o di caratteri utilizzata per

Dettagli

Interoperabilità e cooperazione applicativa tra sistemi informativi

Interoperabilità e cooperazione applicativa tra sistemi informativi Interoperabilità e cooperazione applicativa tra sistemi informativi Michele Ruta Dipartimento di Ingegneria Elettrica e dell Informazione Politecnico di Bari 1di 29 Indice Introduzione ai Port Community

Dettagli

ARCHITETTURE DEI SISTEMI DI ELABORAZIONE

ARCHITETTURE DEI SISTEMI DI ELABORAZIONE ARCHITETTURE DEI SISTEMI DI ELABORAZIONE 1 SISTEMI ACCENTRATI CARATTERISTICHE Sistemi proprietari Monocultura Scarsa diffusione informatica Backlog 2 Soluzione centralizzata TERMINALE TERMINALE ELABORATORE

Dettagli

Web services. 25/01/10 Web services

Web services. 25/01/10 Web services Web services Tecnologia per il computing distribuito standard W3C non dissimile da RMI, CORBA, EJB... Relazione con il Web Websites for humans, Web Services for software :-) un Web service ha un indirizzo

Dettagli

Programmazione distribuita

Programmazione distribuita Programmazione distribuita 1 Architettura client-server È il modo classico di progettare applicazioni distribuite su rete Server offre un servizio "centralizzato" attende che altri (client) lo contattino

Dettagli

Messaging (stile architetturale) e integrazione di applicazioni

Messaging (stile architetturale) e integrazione di applicazioni Luca Cabibbo Architetture Software Messaging (stile architetturale) e integrazione di applicazioni Dispensa ASW 430 ottobre 2014 Una specifica d interfaccia di buona qualità deve essere semplice, non ambigua,

Dettagli

Software per la gestione di musei di arte contemporanea1

Software per la gestione di musei di arte contemporanea1 Software per la gestione di musei di arte contemporanea1 Identificativo del progetto: CA Nome documento: System Design(SD) Identificativo del documento: 6 CA_SD_E1_R1 Data del documento: 21/05/2012 Prima

Dettagli

Introduzione ai Web Services Alberto Polzonetti

Introduzione ai Web Services Alberto Polzonetti PROGRAMMAZIONE di RETE A.A. 2003-2004 Corso di laurea in INFORMATICA Introduzione ai Web Services alberto.polzonetti@unicam.it Introduzione al problema della comunicazione fra applicazioni 2 1 Il Problema

Dettagli

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni

Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni White paper Programmabilità di rete con l'infrastruttura Cisco basata sulle applicazioni Panoramica Questo documento analizza il supporto alla programmabilità nell'infrastruttura ACI (Application Centric

Dettagli

Architetture di sistema

Architetture di sistema Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B1_1 V1.6 Architetture di sistema Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio

Dettagli

Il File System. È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati

Il File System. È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati Il File System È la componente del S.O. che si occupa della gestione della memoria di massa e dell organizzazione logica dei dati Le operazioni supportate da un file system sono: eliminazione di dati modifica

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Antonella Poggi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico 2010/2011 Questi lucidi sono stati prodotti sulla

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

Dettagli

APPENDICE B Le Active Server Page

APPENDICE B Le Active Server Page APPENDICE B Le Active Server Page B.1 Introduzione ad ASP La programmazione web è nata con la Common Gateway Interface. L interfaccia CGI tuttavia presenta dei limiti: ad esempio anche per semplici elaborazioni

Dettagli

Sistemi Distribuiti Introduzione al corso

Sistemi Distribuiti Introduzione al corso Altri testi di consultazione Sistemi Distribuiti Introduzione al corso Testo di riferimento G.Coulouris, J.Dollimore and T.Kindberg Distributed Systems: Concepts and Design IV Ed., Addison-Wesley 2005

Dettagli

Architettura Tecnica i. Architettura Tecnica

Architettura Tecnica i. Architettura Tecnica i Architettura Tecnica ii Copyright 2005-2011 Link.it s.r.l. iii Indice 1 Scopo del documento 1 1.1 Abbreviazioni..................................................... 1 2 Overview 1 2.1 La PdD........................................................

Dettagli

Enterprise @pplication Integration Software S.r.l.

Enterprise @pplication Integration Software S.r.l. SAP rel.1.0 : SAP State: Final Date: 03-27-200 Enterprise @pplication Integration Software S.r.l. Sede legale: Via Cola di Rienzo 212-00192 Rome - Italy Tel. +39.06.6864226 Sede operativa: viale Regina

Dettagli

Naming nei Sistemi Distribuiti

Naming nei Sistemi Distribuiti Naming nei Sistemi Distribuiti Naming (1) La risoluzione dei nomi permette ad un processo di accedere ad una entità in un sistema distribuito. Un sistema di naming è necessario per avere un modello comune

Dettagli

Naming nei Sistemi Distribuiti

Naming nei Sistemi Distribuiti Naming nei Sistemi Distribuiti Naming (1) La risoluzione dei nomi permette ad un processo di accedere ad una entità in un sistema distribuito. Un sistema di naming è necessario per avere un modello comune

Dettagli

Capitolo 2 -- Silberschatz

Capitolo 2 -- Silberschatz Struttura dei Sistemi Operativi Capitolo 2 -- Silberschatz Struttura di un sistema operativo Servizi di un sistema operativo Interfaccia Utente Chiamate di sistema Tipi di chiamate Programma di sistema

Dettagli

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO

Componenti di Sistemi Operativi. System Call Programmi di sistema Componenti di un SO Servizi di SO Componenti di so 1 Componenti di Sistemi Operativi System Call Programmi di sistema Componenti di un SO Servizi di SO 2 System Call Le system call forniscono l'interfaccia tra running program e SO Generalmente

Dettagli

La rete ci cambia la vita. Le persone sono interconnesse. Nessun luogo è remoto. Reti di computer ed Internet

La rete ci cambia la vita. Le persone sono interconnesse. Nessun luogo è remoto. Reti di computer ed Internet La rete ci cambia la vita Lo sviluppo delle comunicazioni in rete ha prodotto profondi cambiamenti: Reti di computer ed Internet nessun luogo è remoto le persone sono interconnesse le relazioni sociali

Dettagli

Reti di computer ed Internet

Reti di computer ed Internet Reti di computer ed Internet La rete ci cambia la vita Lo sviluppo delle comunicazioni in rete ha prodotto profondi cambiamenti: nessun luogo è remoto le persone sono interconnesse le relazioni sociali

Dettagli

Supporto al Sistema Operativo

Supporto al Sistema Operativo Supporto al Sistema Operativo Middleware di supporto al sistema operativo in sistemi distribuiti Funzione del nucleo Modelli architetturali di SO Decomposizione delle funzionalità Processi, thread, processi

Dettagli

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico

Struttura di un sistema operativo. Struttura dei Sistemi Operativi. Servizi per l utente generico. Servizi per l utente generico Impossibile visualizzare l'immagine. Struttura di un sistema operativo Struttura dei Sistemi Operativi Servizi di un sistema operativo Interfaccia Utente Capitolo 2 -- Silberschatz Chiamate di sistema

Dettagli

Organizzazione del testo

Organizzazione del testo Questo testo è un introduzione allo standard CORBA (Common Object Request Broker Architecture) e all architettura di riferimento OMA (Object Management Architecture), per lo sviluppo di sistemi software

Dettagli

Sistemi Informativi e WWW

Sistemi Informativi e WWW Premesse Sistemi Informativi e WWW WWW: introduce un nuovo paradigma di diffusione (per i fornitori) e acquisizione (per gli utilizzatori) delle informazioni, con facilità d uso, flessibilità ed economicità

Dettagli

Introduzione a Java Remote Method Invocation (RMI)

Introduzione a Java Remote Method Invocation (RMI) Introduzione a Java Remote Method Invocation (RMI) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi E risuona il mio barbarico yawp sopra i tetti del mondo ( I sound my barbaric

Dettagli

Appendice D. D. Web Services

Appendice D. D. Web Services D. D.1 : cosa sono I cosiddetti sono diventati uno degli argomenti più attuali nel panorama dello sviluppo in ambiente Internet. Posti al centro delle più recenti strategie di aziende del calibro di IBM,

Dettagli

Sistemi Informativi Distribuiti

Sistemi Informativi Distribuiti Corso di Laurea Magistrale in Ingegneria Gestionale Corso di Sistemi Informativi Modulo II A. A. 2013-2014 SISTEMI INFORMATIVI MODULO II Sistemi Informativi Distribuiti 1 Sistemi informativi distribuiti

Dettagli

BANCA VIRTUALE/1 tecnologie dell informazione della comunicazione

BANCA VIRTUALE/1 tecnologie dell informazione della comunicazione BANCA VIRTUALE/1 Il termine indica un entità finanziaria che vende servizi finanziari alla clientela tramite le tecnologie dell informazione e della comunicazione, senza ricorrere al personale di filiale

Dettagli

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA

ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA ICT (Information and Communication Technology): ELEMENTI DI TECNOLOGIA Obiettivo Richiamare quello che non si può non sapere Fare alcune precisazioni terminologiche IL COMPUTER La struttura, i componenti

Dettagli

Architetture di sistema

Architetture di sistema Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi B1_1 V1.7 Architetture di sistema Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio

Dettagli

LAN MAN WAN. Una internet è l'insieme di più reti reti distinte collegate tramite gateway/router

LAN MAN WAN. Una internet è l'insieme di più reti reti distinte collegate tramite gateway/router Rete di reti (interrete, internet) 2 Prof. Roberto De Prisco TEORIA - Lezione 8 Rete di reti e Internet Università degli studi di Salerno Laurea e Diploma in Informatica Una rete di comunicazione è un

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

Laboratorio di Informatica I

Laboratorio di Informatica I Struttura della lezione Lezione 1: Le Architetture Distribuite Vittorio Scarano Algoritmi e Strutture Dati: Algoritmi Distribuiti Corso di Laurea in Informatica Università di Salerno Le architetture distribuite

Dettagli

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente:

Il.NET Framework. By Dario Maggiari. L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il.NET Framework By Dario Maggiari L architettura del.net Framework è riassunta, nel complesso, nella figura seguente: Il cuore del.net Framework è costituito dal CLR (Common Language Runtime) che, secondo

Dettagli

Reti e Domini Windows 2000. Corso di Amministrazione di Reti A.A. 2002/2003

Reti e Domini Windows 2000. Corso di Amministrazione di Reti A.A. 2002/2003 Reti e Domini Windows 2000 Corso di Amministrazione di Reti A.A. 2002/2003 Materiale preparato utilizzando dove possibile materiale AIPA http://www.aipa.it/attivita[2/formazione[6/corsi[2/materiali/reti%20di%20calcolatori/welcome.htm

Dettagli

Architetture software

Architetture software Sistemi Distribuiti Architetture software 1 Sistemi distribuiti: Architetture software Il software di gestione di un sistema distribuito ha funzionalità analoghe ad un sistema operativo Gestione delle

Dettagli

La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA

La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA IBM System i5 La Roadmap dello sviluppo per System i5: dalle Applicazioni Legacy alla SOA Massimo Marasco System i Technical Sales Support massimo_marasco@it.ibm.com Oriented Architecture (SOA) Servizio

Dettagli

Ministero del Lavoro e delle Politiche Sociali

Ministero del Lavoro e delle Politiche Sociali Ministero del Lavoro e delle Politiche Sociali Prospetto Informativo on-line Standard tecnici del sistema informativo per l invio telematico del Prospetto Informativo Documento: UNIPI.StandardTecnici Revisione

Dettagli

Object-Relational Mapping

Object-Relational Mapping Object-Relational Mapping Versione Preliminare Antonella Poggi Dipartimento di informatica e Sistemistica Sapienza Università di Roma Progetto di Applicazioni Software Anno accademico 2008-2009 Questi

Dettagli

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04

Architetture Web. parte 1. Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web parte 1 Programmazione in Ambienti Distribuiti A.A. 2003-04 Architetture Web (1) Modello a tre livelli in cui le interazioni tra livello presentazione e livello applicazione sono mediate

Dettagli

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali

Considera tutti i requisiti funzionali (use cases) NON deve necessariamente modellare i requisiti non funzionali Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Progettazione OO E. TINELLI Punto di Partenza Il modello di analisi E una rappresentazione minima del

Dettagli

Programmazione CORBA in Java

Programmazione CORBA in Java Programmazione CORBA in Java Ing. Andrea Santoro http://www.dis.uniroma1.it/~santoroa santoro@dis.uniroma1.it (codice preparato dall ing. Alessandro Termini) Overview Naming Service Motivazioni Name Service

Dettagli

Informatica Documentale

Informatica Documentale Informatica Documentale Ivan Scagnetto (scagnett@dimi.uniud.it) Stanza 3, Nodo Sud Dipartimento di Matematica e Informatica Via delle Scienze, n. 206 33100 Udine Tel. 0432 558451 Ricevimento: giovedì,

Dettagli

Sistemi Distribuiti. Informatica B. Informatica B

Sistemi Distribuiti. Informatica B. Informatica B Sistemi Distribuiti Introduzione Che cos è un sistema distribuito? Un sistema distribuito è una collezione di computer indipendenti che appare all utente come un solo sistema coerente Da notare: le macchine

Dettagli

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali

Sistemi Operativi. Funzioni e strategie di progettazione: dai kernel monolitici alle macchine virtuali Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Funzioni e strategie di progettazione: dai kernel monolitici

Dettagli

Chiamate a Procedure Remote

Chiamate a Procedure Remote FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Corso di Sistemi Distribuiti Anno Accademico 2012/2013 Relazione sullo sviluppo di Chiamate a Procedure Remote

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

Il funzionamento delle reti

Il funzionamento delle reti Il funzionamento delle reti La rete ci cambia la vita L Età dell Informazione ha prodotto profondi cambiamenti nessun luogo è remoto le persone sono interconnesse le relazioni sociali stanno mutando l

Dettagli

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET)

Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Tratte da (18. TECNICHE DI ACCESSO AI DATABASE IN AMBIENTE INTERNET) Ipotesi di partenza: concetti di base del networking Le ipotesi di partenza indispensabili per poter parlare di tecniche di accesso

Dettagli

INTRODUZIONE. Data Base Management Systems evoluzione tecniche gestione dati

INTRODUZIONE. Data Base Management Systems evoluzione tecniche gestione dati INTRODUZIONE Accesso ai dati tramite DBMS Livelli di astrazione Modello dei dati: schema / istanza / metadati Alcuni modelli dei dati Linguaggi per DBMS Architettura di base di un DBMS cesarini - BDSI

Dettagli

Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione

Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione Un ambiente di esecuzione che gestisce o naming di oggetti, sicurezza, concorrenza, transazioni, persistenza, distribuzione oggetti (location

Dettagli

Architetture Software

Architetture Software Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica Ingegneria del Software Architetture Software Giulio Destri Ing. del Sw: Architettura - 1 Scopo del modulo

Dettagli

ARCHITETTURE DEI SISTEMI DI ELABORAZIONE

ARCHITETTURE DEI SISTEMI DI ELABORAZIONE SISTEMI ACCENTRATI CARATTERISTICHE ARCHITETTURE DEI SISTEMI DI ELABORAZIONE Sistemi proprietari Monocultura Scarsa diffusione informatica Backlog 1 2 Soluzione centralizzata SISTEMI DISTRIBUITI TERMINALE

Dettagli

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) (RMI) Remote Method Invocation (RMI) in Java. Walter Cazzola Dipartimento di Informatica e Comunicazione Università à degli Studi di Milano. e-mail: cazzola@disi disi.unige.it Walter Cazzola Java: Remote

Dettagli

Santoro Umberto Roberto. Corba e Java

Santoro Umberto Roberto. Corba e Java Santoro Umberto Roberto Corba e Java Sommario Nell era di Internet e delle grandi Intranet aziendali, il modello computazionale dominante è chiaramente quello distribuito. Un tipico ambiente distribuito

Dettagli

Seminario di Sistemi Distribuiti RPC su SOAP

Seminario di Sistemi Distribuiti RPC su SOAP Seminario di Sistemi Distribuiti RPC su SOAP Massimiliano Vivian [777775] Massimiliano Vivian 1 Introduzione La comunicazione delle informazioni è l elemento fondamentale per lo sviluppo dei sistemi. SOAP

Dettagli

Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005

Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005 Sommario Web Services con Axis Delia Di Giorgio Anna Celada 1 marzo 2005 Introduzione.................................................................................. 1 SOAP........................................................................................

Dettagli

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2010-2011

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2010-2011 Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2010-2011 2011 Docente: Gigliola Vaglini Docente laboratorio: Alessandro Lori 1 Obiettivi del corso Imparare

Dettagli

Introduzione ai Sistemi Distribuiti

Introduzione ai Sistemi Distribuiti Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Introduzione ai Sistemi Distribuiti Corso di Sistemi Distribuiti Valeria Cardellini Anno accademico 2008/09 Definizioni di SD Molteplici

Dettagli

Corso di Reti di Calcolatori LS

Corso di Reti di Calcolatori LS Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori LS MIDDLEWARE VARI Antonio Corradi Anno accademico 2004/2005 Middleware 1 MIDDLEWARE Definizione di MIDDLEWARE Insieme

Dettagli

TECNICO SUPERIORE PER I SISTEMI E LE TECNOLOGIE INFORMATICHE

TECNICO SUPERIORE PER I SISTEMI E LE TECNOLOGIE INFORMATICHE ISTRUZIONE E FORMAZIONE TECNICA SUPERIORE SETTORE I.C.T. Information and Communication Technology TECNICO SUPERIORE PER I SISTEMI E LE TECNOLOGIE INFORMATICHE STANDARD MINIMI DELLE COMPETENZE TECNICO PROFESSIONALI

Dettagli

DBMS ed Applicazioni Motivazioni

DBMS ed Applicazioni Motivazioni DBMS ed Applicazioni Motivazioni Sin ora abbiamo visto SQL come linguaggio per interrogare DBMS da interfaccia interattiva Nella pratica, un efficace sfruttamento delle potenzialità dei DBMS deriva dalla

Dettagli

SWIM v2 Design Document

SWIM v2 Design Document PROGETTO DI INGEGNERIA DEL SOFTWARE 2 SWIM v2 DD Design Document Matteo Danelli Daniel Cantoni 22 Dicembre 2012 1 Indice Progettazione concettuale Modello ER Entità e relazioni nel dettaglio User Feedback

Dettagli

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita

@2011 Politecnico di Torino. Pag. 1. Architettura distribuita. Architetture Client/Server. Architettura centralizzata. Architettura distribuita Architettura client/ stazioni utente Basi di ati Architetture /Server B locali M BG Architettura centralizzata Un architettura è centralizzata quando i dati e le (programmi) risiedono in un unico Tutta

Dettagli

Architetture Software Milano

Architetture Software Milano Architetture Software Approccio tradizionale allo sviluppo I limiti del modello requisiti, progetto, implementazione Il concetto di architettura software Il concetto di stile architetturale I principali

Dettagli

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Fondamenti di Informatica Linguaggi di Programmazione Michele Tomaiuolo Linguaggi macchina I

Dettagli

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) 12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP) Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica,

Dettagli

JNDI. Massimo Merro Programmazione di Rete 214 / 229

JNDI. Massimo Merro Programmazione di Rete 214 / 229 JNDI Abbiamo già visto come i registri RMI espletino un servizio di Naming attraverso cui vengono associati nomi simbolici a referenze a server remoti. Esistono comunque altri servizi di naming: COS (Common

Dettagli

Architetture software

Architetture software Corso di Laurea Magistrale in Ingegneria Informatica Corso di Ingegneria del A. A. 2013-2014 Architettura software 1 Architetture software Sommario Definizioni 2 Architettura Definizione. L architettura

Dettagli

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi Evoluzione dei sistemi operativi (4) Sistemi multiprogrammati! più programmi sono caricati in contemporaneamente, e l elaborazione passa periodicamente dall uno all altro Evoluzione dei sistemi operativi

Dettagli

Obiettivo della lezione. Eterogeneità insita nei sistemi distribuiti. La domanda:

Obiettivo della lezione. Eterogeneità insita nei sistemi distribuiti. La domanda: Lezione 7 Eterogeneità Vittorio Scarano Corso di Sistemi Distribuiti (3-4) Laurea Specialistica in Informatica Università degli Studi di Salerno Obiettivo della lezione Eterogeneità insita nei sistemi

Dettagli