Architettura a oggetti distribuiti

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Architettura a oggetti distribuiti"

Transcript

1 Luca Cabibbo Architettura dei Sistemi Software Architettura a oggetti distribuiti dispensa asw435 marzo 2018 First Law of Distributed Object Design: Don t distribute your objects! Martin Fowler 1 - Fonti [POSA4] Pattern-Oriented Software Architecture (Volume 4): A Pattern Language for Distributed Computing. Wiley, Coulouris, G, Dollimore, J., Kindberg, T., and Blair, G. Distributed Systems: Concepts and Design, fifth edition. Pearson, Chapter 5, Remote Invocation 2

2 Obiettivi - Obiettivi e argomenti presentare la tecnologia a oggetti distribuiti e il modello a oggetti distribuiti discutere l architettura a oggetti distribuiti Argomenti introduzione agli oggetti distribuiti modello a oggetti distribuiti e RMI architettura a oggetti distribuiti discussione 3 * Introduzione agli oggetti distribuiti Lo sviluppo dei sistemi distribuiti è stato sostenuto, nel corso del tempo, da diverse tecnologie, a differenti livelli di astrazione all inizio, dalle tecnologie di programmazione di rete offerte dai sistemi operativi (come i socket) il livello di astrazione è molto basso, l accoppiamento alla tecnologia è molto alto, nessun supporto per le difficoltà e le eterogeneità comunemente presenti nei sistemi distribuiti 4

3 Introduzione agli oggetti distribuiti Lo sviluppo dei sistemi distribuiti è stato sostenuto, nel corso del tempo, da diversi tipi di tecnologie, a diversi livelli di astrazione poi, dalle tecnologie di comunicazione strutturata (anni 80), come RPC l astrazione di programmazione distribuita della chiamata remota fornisce trasparenza rispetto ai meccanismi di comunicazione in rete di basso livello è anche alla base del modello client/server tuttavia, non fornisce trasparenza rispetto alla locazione dei servizi in rete che deve essere definita staticamente ed è poi difficile da cambiare, rendendo poco flessibile il rilascio dei servizi infatti, nello stile client/server, i client e i server sono organizzati secondo una struttura gerarchica rigida inoltre, non supporta l interoperabilità tra componenti realizzati con tecnologie differenti 5 Introduzione agli oggetti distribuiti Lo sviluppo dei sistemi distribuiti è stato sostenuto, nel corso del tempo, da diversi tipi di tecnologie, a diversi livelli di astrazione il passo successivo è costituito dalle tecnologie a oggetti distribuiti (fine anni 80 e primi anni 90) che nascono dalla confluenza di RPC e delle tecnologie a oggetti questa tecnologia basata su un modello di programmazione a oggetti distribuiti (descritto più avanti) ha svolto un ruolo fondamentale nello sviluppo dei sistemi distribuiti e del middleware il suo contributo principale è stato l introduzione della nozione di broker o object broker (discusso in una successiva dispensa) per fornire ulteriore trasparenza e maggiore flessibilità oggi è una tecnologia matura e con delle capacità avanzate anche se ha alcune limitazioni importanti 6

4 * Modello a oggetti distribuiti e RMI Un modello ad oggetti distribuiti è un estensione del tradizionale modello ad oggetti ( locali ) offerto dai linguaggi di programmazione ad oggetti questo modello introduce gli oggetti remoti che possono essere distribuiti in più processi e nodi l interazione tra gli oggetti remoti avviene sulla base dell invocazione di metodi remoti (RMI) un estensione a oggetti della chiamata di procedure remote (RPC) 7 Modello a oggetti non distribuiti Modello a oggetti tradizionale ciascun oggetto incapsula stato e comportamento gli oggetti risiedono solitamente in un singolo processo ciascun oggetto implementa un interfaccia (definita implicitamente o esplicitamente) l interfaccia è una specifica delle operazioni che possono essere invocate un oggetto può essere usato conoscendone il riferimento univoco univoco nel processo in cui vive l oggetto ad es., usato in un invocazione come destinatario i riferimenti agli oggetti sono di solito implementati come puntatori per questo, hanno significato solo nell ambito del processo in cui vive l oggetto referenziato 8

5 Modello a oggetti distribuiti 9 Modello a oggetti distribuiti ciascun oggetto incapsula stato e comportamento gli oggetti possono essere locali oppure remoti gli oggetti locali sono oggetti tradizionali questi oggetti sono visibili, nell ambito di un processo, solo localmente gli oggetti remoti sono invece distribuiti in più processi e sono visibili anche remotamente ciascun oggetto remoto implementa un interfaccia remota l interfaccia remota è una specifica (definita esplicitamente) delle operazioni che possono essere invocate remotamente in corrispondenza, gli oggetti remoti hanno un tipo remoto a ciascun oggetto remoto viene assegnato un riferimento remoto che è univoco in rete un oggetto remoto può essere usato conoscendone il suo riferimento remoto ad es., in un invocazione remota Oggetti (e invocazioni) remoti e locali C E F A B D G host remote object remote invocation process local object local invocation 10

6 Invocazione di metodi remoti (RMI) Nel modello a oggetti distribuiti, l interazione con gli oggetti remoti avviene mediante l invocazione di metodi remoti (RMI) l infrastruttura di RMI prevede la presenza di un object registry (o broker) è un servizio distribuito per gestire i riferimenti remoti degli oggetti remoti consente l accesso a un oggetto remoto a partire da un suo identificatore simbolico dinamica di RMI un processo (server) può creare uno o più oggetti remoti (di tipo remoto), esportarli (ovvero, assegnargli un riferimento remoto) e registrarli presso l object registry un processo (client) può consultare l object registry per ottenere un riferimento remoto ad un oggetto remoto dopo di che, il client può interagire con l oggetto remoto effettuando delle invocazioni di metodi remoti 11 Architettura di RMI object registry (broker) client object client proxy runtime support network support server object server proxy runtime support network support logical data path physical data path 12

7 - Implementazione di RMI L implementazione di RMI richiede diversi oggetti e moduli object A client proxy for B Request server skeleton & dispatcher for B s class remote object B Reply Remote Communication reference module module Communication module Remote reference module alcuni moduli sono standard altri moduli o classi sono generati automaticamente da un compilatore di interfacce oppure sono virtuali sulla base di meccanismi di riflessione 13 Implementazione di RMI Proxy (proxy lato client) rappresentante locale di un oggetto remoto tramite il proxy, l oggetto client comunica logicamente con l oggetto server implementa l interfaccia remota per adattare e inoltrare le richieste all oggetto remoto e gestire le sue risposte ha lo scopo di nascondere gli aspetti della comunicazione fisica ad es., la posizione dell oggetto server (viene visto dal client mediante il proxy), preparazione e decodifica dei messaggi di richiesta e risposta, invio e ricezione dei messaggi di richiesta e risposta in pratica, questo proxy delega gran parte del lavoro al modulo di comunicazione 14

8 Implementazione di RMI Moduli di comunicazione il protocollo richiesta-risposta viene eseguito da una coppia di moduli di comunicazione cooperanti per scambiarsi messaggi richiesta e messaggi risposta i due moduli di comunicazione hanno un ruolo fondamentale nella definizione della semantica dell invocazione remota (discussa in una precedente dispensa) questi moduli implementano di solito la semantica at most once Modulo dei riferimenti remoti responsabile delle corrispondenze tra riferimenti locali e remoti e della creazione di riferimenti remoti tavola degli oggetti remoti elenco degli oggetti remoti offerti elenco dei proxy conosciuti 15 Implementazione di RMI Dispatcher il server ha un dispatcher per ogni classe di oggetto remoto il dispatcher riceve messaggi richiesta dal modulo di comunicazione seleziona l operazione da eseguire ne delega la gestione allo skeleton Skeleton (proxy lato server) proxy del client nel lato server il server ha uno skeleton per ogni classe di oggetto remoto implementa metodi corrispondenti a quelli dell interfaccia remota ha lo scopo di decodificare il messaggio di richiesta e di invocare il metodo corrispondente nell oggetto remoto poi aspetta il risultato dell esecuzione del metodo, e quindi prepara e invia il messaggio di risposta 16

9 Implementazione di RMI Compilatore di interfacce responsabile della generazione delle classi per i proxy sia per lo stub che per dispatcher e skeleton a partire dall interfaccia del servizio Object registry (o broker) gestisce le corrispondenze tra nomi simbolici (stringhe) e riferimenti remoti consente ai client di ottenere riferimenti a oggetti remoti 17 * L architettura a oggetti distribuiti è un evoluzione dello stile clientserver è ancora basata sulle importanti nozioni di servizio e interfaccia i servizi vengono ancora consumati sulla base di un protocollo richiesta-risposta viene rimossa la distinzione rigida tra client e server ma, in ciascuna singola interazione, si continua a distinguere tra client e server (nell ambito di quella specifica interazione) viene fornita trasparenza dalla locazione dei servizi questo consente una maggiore flessibilità nel rilascio dei componenti distribuiti viene adottato come paradigma di programmazione un modello a oggetti distribuiti 18

10 L architettura a oggetti distribuiti (DOA) chiamata anche distributed object computing (DOC) o distributed object model sulla base di un modello a oggetti distribuiti, organizza un sistema software in un insieme di elementi software chiamati appunto oggetti distribuiti nell architettura a oggetti distribuiti, gli oggetti distribuiti sono elementi architetturali (a grana grossa) sono una nozione diversa da quella di oggetto remoto del modello a oggetti distribuiti gli oggetti distribuiti del sistema sono distribuiti tra più processi e nodi, in modo flessibile l interazione tra oggetti distribuiti avviene sulla base di invocazioni remote 19 A I A B C I B I C D E I D I E chiede servizi a Nota si tratta di una vista logica, funzionale ciascun rettangolo rappresenta un oggetto distribuito (a grana grossa) 20

11 Oggetti distribuiti Nell architettura a oggetti distribuiti, ciascun oggetto distribuito è un elemento software (a grana grossa) più precisamente, ogni oggetto distribuito è di solito composto internamente da un gruppo di oggetti (a grana più piccola) molti di questi oggetti sono oggetti locali tradizionali inoltre, c è anche un oggetto remoto, che è una facade che rappresenta l intero gruppo di oggetti questo consente agli altri oggetti distribuiti di poter invocare le operazioni di questo oggetto distribuito distributed object facade remote object o1 o2 o3 local objects o4 21 Comunicazione tra oggetti distribuiti Nell architettura a oggetti distribuiti, la comunicazione tra oggetti distribuiti basata su un paradigma di comunicazione di tipo RMI è supportata da un opportuna infrastruttura di comunicazione in particolare, il servizio di middleware utilizzato nell architettura a oggetti distribuiti è chiamato un object request broker (ORB) o più semplicemente broker il broker agisce essenzialmente come un bus software per consentire la comunicazione tra i diversi oggetti distribuiti 22

12 Comunicazione mediante broker A B C I A I B I C Object Request Broker D E I D I E Questa è, invece, una vista di deployment mostra l infrastruttura di comunicazione potrebbe mostrare anche i computer/nodi su cui sono rilasciati i diversi oggetti distribuiti 23 Interazione tra oggetti distribuiti Interazione tra oggetti distribuiti gli oggetti server (ovvero, gli oggetti che offrono servizi) possono registrare i servizi che forniscono presso il broker ovvero, presso il servizio di directory gestito dal broker gli oggetti client possono poi fare richieste (invocazioni remote) agli oggetti server tramite il broker usato come indirezione oppure, possono consultare il servizio di directory del broker per ottenere un riferimento remoto a un oggetto server ad es., tramite un identificatore simbolico dell oggetto server e poi interagire direttamente con l oggetto server i ruoli client e server non sono fissati in modo statico, ma si riferiscono a una singola interazione infatti i diversi oggetti possono in generale essere sia client di servizi che server di altri servizi 24

13 Conseguenze Conseguenze architettura aperta, flessibile e scalabile possibile riconfigurare il sistema dinamicamente, migrando gli oggetti tra nodi questo consente, ad es., di rimandare decisioni su dove fornire i servizi, oppure di cambiare decisioni per sostenere qualità come scalabilità e disponibilità consente l introduzione dinamica di nuove risorse, quando richieste può essere favorita la modificabilità con oggetti a grana piccola coesi e poco accoppiati l affidabilità può beneficiare del fatto che lo stato degli oggetti è incapsulato 25 Conseguenze Conseguenze le prestazioni peggiorano se sono utilizzati molti oggetti a grana piccola o con servizi/operazioni a grana piccola le prestazioni dipendono dalla topologia e dalla grana degli oggetti e della loro interfaccia in generale è opportuno avere oggetti a grana grossa, che comunicano poco la sicurezza beneficia dall incapsulamento dei dati ma la frammentazione dei dati influisce negativamente maggior complessità rispetto ai sistemi client/server 26

14 Usi del modello a oggetti distribuiti È possibile identificare due modalità principali di utilizzo del modello a oggetti distribuiti questo modello può essere usato come un modello logico per strutturare e organizzare un sistema software gli elementi dell architettura sono macro-oggetti distribuiti che offrono servizi mediante la loro interfaccia remota il modello a oggetti distribuiti viene utilizzato per effettuare la decomposizione del sistema la tecnologia a oggetti distribuiti può anche essere usata come base (flessibile) per l implementazione di sistemi client/server ovvero, il sistema software viene organizzato secondo un architettura logica di tipo client/server ma tecnologicamente client e server sono realizzati come oggetti distribuiti che interagiscono mediante un servizio di middleware a oggetti distribuiti 27 * Discussione Le tecnologie a oggetti distribuiti (fine anni 80 e primi anni 90) insieme all architettura a oggetti distribuiti hanno costituito un avanzamento significativo rispetto alle prime tecnologie di comunicazione strutturata (come RPC) maggiore trasparenza e maggiore flessibilità nella comunicazione remota in particolare, forniscono indipendenza dalla locazione dei componenti e la possibilità di ri-deployare i componenti in modo flessibile 28

15 Discussione Tuttavia, queste tecnologie presentano anche alcuni limiti tra cui mancanza di strumenti di deployment e configurazione, e per la gestione delle dipendenze il rilascio degli oggetti distribuiti richiede la scrittura e l esecuzione di script ad-hoc per creare, configurare e registrare questi oggetti gli oggetti distribuiti devono scoprire e connettersi in modo esplicito agli oggetti da cui devono fruire dei servizi mancanza di servizi standardizzati di supporto alle qualità gli oggetti distribuiti devono gestire direttamente ed esplicitamente aspetti come persistenza, notifica di eventi, transazioni, sicurezza, replicazione, bilanciamento del carico mancanza di trasparenza nella distinzione tra oggetti remoti e oggetti locali difficile cambiare i confini della distribuzione 29

Broker e architettura a oggetti distribuiti

Broker e architettura a oggetti distribuiti Luca Cabibbo Architettura dei Sistemi Software Broker e architettura a oggetti distribuiti dispensa asw435 marzo 2017 Intelligence is not the ability to store information, but to know where to find it.

Dettagli

Invocazione remota. Coulouris, G., Dollimore, J., Kindberg, T., and Blair, G. Distributed Systems: Concepts and Design, fifth edition. Pearson, 2012.

Invocazione remota. Coulouris, G., Dollimore, J., Kindberg, T., and Blair, G. Distributed Systems: Concepts and Design, fifth edition. Pearson, 2012. Luca Cabibbo Architettura dei Sistemi Software dispensa asw430 marzo 2017 Knowing a failure has occurred is more important than the actual failure. K. Kjos 1 - Fonti Coulouris, G., Dollimore, J., Kindberg,

Dettagli

Chiamata remota di metodi

Chiamata remota di metodi Chiamata remota di metodi Architettura di Java RMI Esecuzione di una Java RMI Architettura di RMI client server Stub & Skeleton Stub & Skeleton Remote Reference Remote Reference Trasporto Ciascun livello

Dettagli

Applicazioni distribuite e sistemi ad oggetti distribuiti. RPC RMI - Web Services 1

Applicazioni distribuite e sistemi ad oggetti distribuiti. RPC RMI - Web Services 1 Applicazioni distribuite e sistemi ad oggetti distribuiti RPC RMI - Web Services 1 Complessità delle applicazioni distribuite La scrittura di applicazioni distribuite basate sull utilizzo di protocolli

Dettagli

Applicazioni distribuite e sistemi ad oggetti distribuiti

Applicazioni distribuite e sistemi ad oggetti distribuiti Applicazioni distribuite e sistemi ad oggetti distribuiti Complessità delle applicazioni distribuite La scrittura di applicazioni distribuite basate sull utilizzo di protocolli di comunicazione asincroni

Dettagli

ottobre Fonti [Bakken] Middleware (da Encyclopedia of Distributed Computing) Middleware Architectures and Technologies Luca Cabibbo

ottobre Fonti [Bakken] Middleware (da Encyclopedia of Distributed Computing) Middleware Architectures and Technologies Luca Cabibbo Luca Cabibbo Architetture Software Dispensa MW 1 ottobre 2008 1 -Fonti [Bakken] Middleware (da Encyclopedia of Distributed Computing) [Gorton] Essential Software Architecture, Chapter 4, A Guide to Middleware

Dettagli

Broker. [POSA1] Pattern-Oriented Software Architecture (Volume 1): A System of Patterns. Wiley, 1996.

Broker. [POSA1] Pattern-Oriented Software Architecture (Volume 1): A System of Patterns. Wiley, 1996. Luca Cabibbo Architettura dei Sistemi Software dispensa asw440 marzo 2018 Intelligence is not the ability to store information, but to know where to find it. Albert Einstein 1 - Fonti [POSA1] Pattern-Oriented

Dettagli

Architetture dei sistemi distribuiti

Architetture dei sistemi distribuiti Luca Cabibbo Architetture Software Architetture dei sistemi distribuiti Dispensa ASW 410 ottobre 2014 Un sistema distribuito è un sistema in cui il fallimento di un computer di cui nemmeno conosci l esistenza

Dettagli

SCD. Comunicazione in distribuito. Sistemi distribuiti: comunicazione. Evoluzione di modelli. Visione a livelli 2. Visione a livelli 1

SCD. Comunicazione in distribuito. Sistemi distribuiti: comunicazione. Evoluzione di modelli. Visione a livelli 2. Visione a livelli 1 Comunicazione in distribuito Anno accademico 2017/18 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Evoluzione di modelli Remote Procedure Call (RPC) Trasparente

Dettagli

Invocazione remota. Architettura dei Sistemi Software. Luca Cabibbo. dispensa asw430 marzo Fonti

Invocazione remota. Architettura dei Sistemi Software. Luca Cabibbo. dispensa asw430 marzo Fonti Luca Cabibbo Architettura dei Sistemi Software dispensa asw430 marzo 2018 The core idea od RPC is to hide the complexity of a remote call. Many implementations of RPC, though, hide too much. Sam Newman

Dettagli

Architetture dei sistemi distribuiti. Mariagrazia Fugini Impianti Como 08-09

Architetture dei sistemi distribuiti. Mariagrazia Fugini Impianti Como 08-09 Architetture dei sistemi distribuiti Mariagrazia Fugini Impianti Como 08-09 Sommario Sistemi centralizzati e distribuiti Meccanismi per sistemi distribuiti RPC Client-server Middleware Distributed object

Dettagli

Centralizzata Monolitica anni Reti Client Server anni Internet The network is the computer

Centralizzata Monolitica anni Reti Client Server anni Internet The network is the computer Distributed Object C o m p utin g "!$#&% ')(+*,#&-).0/2143657*98:.;8

Dettagli

Oggetti Distribuiti e Java RMI

Oggetti Distribuiti e Java RMI Oggetti Distribuiti e Java RMI Oggetti Locali - Oggetti Distribuiti Oggetti Locali: sono oggetti i cui metodi possono essere invocati solo da un processo locale, cioè da un processo in esecuzione sulla

Dettagli

Architettura dei Sistemi Software: Introduzione al corso

Architettura dei Sistemi Software: Introduzione al corso Luca Cabibbo Architettura dei Sistemi Software Architettura dei Sistemi Software: Introduzione al corso dispensa asw010 marzo 2018 The beginning is the most important part of the work. Plato 1 Obiettivo

Dettagli

distribuiti ottobre Fonti [SSA] Chapter 11, Using Styles and Patterns Patterns Language for Distributed Computing

distribuiti ottobre Fonti [SSA] Chapter 11, Using Styles and Patterns Patterns Language for Distributed Computing Luca Cabibbo Architetture Software Architetture dei sistemi distribuiti Dispensa PA 2 ottobre 2008 1 -Fonti [SSA] Chapter 11, Using Styles and Patterns [POSA] Pattern-Oriented Software Architecture A System

Dettagli

Architettura esagonale

Architettura esagonale Luca Cabibbo Architettura dei Sistemi Software dispensa asw360 marzo 2019 There must be a cause why snowflakes have the shape of six-cornered starlets. It cannot be chance. Why always six?. Johannes Kepler

Dettagli

Introduzione ai sistemi distribuiti

Introduzione ai sistemi distribuiti Luca Cabibbo Architettura dei Sistemi Software Introduzione ai sistemi distribuiti dispensa asw410 marzo 2017 A distributed system is one in which the failure of a computer you didn t even know existed

Dettagli

[POSA] Pattern-Oriented Software Architecture A System of Patterns

[POSA] Pattern-Oriented Software Architecture A System of Patterns Luca Cabibbo Architetture Software Dispensa AS 11 ottobre 2008 1 -Fonti [SSA] Chapter 11, Using Styles and Patterns [GoF] Design Patterns Elementi per il riuso di software a oggetti [POSA] Pattern-Oriented

Dettagli

Basi di Dati Architetture Client/Server

Basi di Dati Architetture Client/Server Basi di Dati Architetture Client/Server Architettura centralizzata Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo Tutta l intelligenza

Dettagli

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo Basi di dati Basi di Dati Architetture Client/Server Architettura centralizzata Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo Tutta

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

SCD. Processi e concorrenza in distribuito. Sistemi distribuiti: processi e concorrenza. Cliente e servente concorrenti 1

SCD. Processi e concorrenza in distribuito. Sistemi distribuiti: processi e concorrenza. Cliente e servente concorrenti 1 Cliente e servente concorrenti 1 Processi e concorrenza in distribuito Anno accademico 2012/13 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Multi-threading di

Dettagli

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE 00-PRIME PAGINE 2-07-2003 10:04 Pagina V Indice Prefazione XI PARTE PRIMA INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE 1 Capitolo 1 Le ragioni di tanto interesse 3 1.1 Enterprise in J2EE 3 Definizione

Dettagli

Evoluzione delle Architetture Distribuite

Evoluzione delle Architetture Distribuite Evoluzione delle Architetture Distribuite 1 Evoluzione dell architettura Dall architettura centralizzata all architettura distribuita Applicazioni centralizzate Applicazioni Client/Server Applicazioni

Dettagli

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo

Architetture Client/Server. Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo Basi di Dati Architetture Client/Server D B M G Architettura centralizzata Un architettura è centralizzata quando i dati e le applicazioni (programmi) risiedono in un unico nodo elaborativo Tutta l intelligenza

Dettagli

LPR 2005/2006 Lezione 7. paradigma di interazione domanda/risposta remote procedure call RMI (Remote Method Invocation): API JAVA esercizio

LPR 2005/2006 Lezione 7. paradigma di interazione domanda/risposta remote procedure call RMI (Remote Method Invocation): API JAVA esercizio LPR 2005/2006 Lezione 7 paradigma di interazione domanda/risposta remote procedure call RMI (Remote Method Invocation): API JAVA esercizio PARADIGMA DI INTERAZIONE A DOMANDA/RISPOSTA Paradigma di interazione

Dettagli

Comunicazione asincrona

Comunicazione asincrona Luca Cabibbo Architettura dei Sistemi Software dispensa asw440 marzo 2017 All problems in computer science can be solved by another level of indirection. David Wheeler 1 - Fonti [POSA4] Pattern-Oriented

Dettagli

Sistemi Informativi DEE - Politecnico di Bari. Architetture dei sistemi distribuiti

Sistemi Informativi DEE - Politecnico di Bari. Architetture dei sistemi distribuiti Architetture dei sistemi distribuiti Sommario Architetture multiprocessore Architetture client server Architetture a oggetti distribuiti Calcolo interoganizzativo Sistemi distribuiti Sistemi in cui l elaborazione

Dettagli

CORSO PAS Laboratorio di RETI

CORSO PAS Laboratorio di RETI CORSO PAS Laboratorio di RETI Nicola Drago nicola.drago@univr.it Dipartimento di Informatica Università di Verona Le origini della comunicazione: Socket In un primo tempo nasce in ambiente UNIX Negli anni

Dettagli

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13

UML Introduzione a UML Linguaggio di Modellazione Unificato. Corso di Ingegneria del Software Anno Accademico 2012/13 UML Introduzione a UML Linguaggio di Modellazione Unificato Corso di Ingegneria del Software Anno Accademico 2012/13 1 Che cosa è UML? UML (Unified Modeling Language) è un linguaggio grafico per: specificare

Dettagli

Pattern software. [SAP] Chapter 13, Architectural Tactics and Patterns

Pattern software. [SAP] Chapter 13, Architectural Tactics and Patterns Luca Cabibbo Architettura dei Sistemi Software dispensa asw310 marzo 2018 Each pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution

Dettagli

Anni 80: reti locali di PC terminali dotati di intelligenza propria, che condividono risorse pregiate, come stampanti, dischi, etc.

Anni 80: reti locali di PC terminali dotati di intelligenza propria, che condividono risorse pregiate, come stampanti, dischi, etc. LEZIONE 2 STORIA DEI SISTEMI DISTRIBUITI E MODELLI ARCHITETTURALI Anni 60-70: architettura centralizzata, monolitica (vedi lezione 1) host (mainframe, mini) a cui vengono collegati terminali stupidi a

Dettagli

Modulo 2 Architetture dei SD Lezione 1

Modulo 2 Architetture dei SD Lezione 1 Modulo 2 Architetture dei SD Lezione 1 Corso Sistemi Distribuiti (6 CFU) Docente: Prof. Marcello Castellano Sistemi Distribuiti, LM Ing. Informatica 6 CFU Docente: Marcello Castellano Table of Contents

Dettagli

ottobre Fonti [SSA] Chapter 15, Introduction to the Viewpoint Catalog [SSA] Appendix, Other Viewpoint Sets Luca Cabibbo

ottobre Fonti [SSA] Chapter 15, Introduction to the Viewpoint Catalog [SSA] Appendix, Other Viewpoint Sets Luca Cabibbo Luca Cabibbo Architetture Software Dispensa AS 15 ottobre 2008 1 -Fonti [SSA] Chapter 15, Introduction to the point Catalog [SSA] Chapter 22, Achieving Consistency Across s [SSA] Appendix, Other point

Dettagli

Architetture di Elaboratori II - Sistemi Distribuiti Introduzione al corso

Architetture di Elaboratori II - Sistemi Distribuiti Introduzione al corso Architetture di Elaboratori II - Sistemi Distribuiti Introduzione al corso Testo di riferimento G.Coulouris, J.Dollimore and T.Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley

Dettagli

Introduzione ai. Sistemi Distribuiti

Introduzione ai. Sistemi Distribuiti Introduzione ai Sistemi Distribuiti Definizione di Sistema Distribuito (1) Un sistema distribuito è: Una collezione di computer indipendenti che appaiono agli utente come un sistema singolo coerente. 1

Dettagli

Stili fondamentali per sistemi distribuiti

Stili fondamentali per sistemi distribuiti Luca Cabibbo Architettura dei Sistemi Software Stili fondamentali per sistemi distribuiti dispensa asw420 marzo 2018 The best thing about the future is that is comes one day at a time. Abraham Lincoln

Dettagli

SCD. Sistemi distribuiti: introduzione. Sistemi distribuiti: introduzione. Sistemi distribuiti: introduzione

SCD. Sistemi distribuiti: introduzione. Sistemi distribuiti: introduzione. Sistemi distribuiti: introduzione Anno accademico 2004/5 Corso di Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Definizione Un sistema distribuito è un insieme di elaboratori indipendenti capaci

Dettagli

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Programma del corso Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Evoluzione dei sistemi informatici Cos è una rete? Insieme di

Dettagli

Architetture di rete. 4. Le applicazioni di rete

Architetture di rete. 4. Le applicazioni di rete Architetture di rete 4. Le applicazioni di rete Introduzione L avvento di tecnologie (hw, sw, protocolli) di rete avanzate ha permesso la nascita di architetture software molto evolute che permettono lo

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 06 Programmi e Oggetti Software Marzo 2010 Programmi e Oggetti Software 1 Contenuti Cosa è un programma Cosa significa programmare Il

Dettagli

7. Progetto di Applicazioni Distribuite

7. Progetto di Applicazioni Distribuite 7. Progetto di Applicazioni Distribuite Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 7. Progetto di Applicazioni Distribuite 1 / 35 Sommario 1 Sistemi

Dettagli

Integrazione di applicazioni

Integrazione di applicazioni Luca Cabibbo Architettura dei Sistemi Software dispensa asw447 marzo 2017 We believe that asynchronous messaging will play an increasingly important role in enterprise software development, particularly

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

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Un sistema software distribuito è composto da un insieme di processi in esecuzione su più nodi del sistema Un algoritmo distribuito può

Dettagli

SCD. Comunicazione in Distribuito. Sistemi distribuiti: comunicazione. Visione a livelli 1. Visione a livelli 2. Evoluzione di modelli

SCD. Comunicazione in Distribuito. Sistemi distribuiti: comunicazione. Visione a livelli 1. Visione a livelli 2. Evoluzione di modelli Visione a livelli 1 Comunicazione in Distribuito SCD TCP/IP Livelli 5-7 del modello OSI Anno accademico 2014/15 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it Connessione

Dettagli

7. Architetture Software

7. Architetture Software 7. Architetture Software definire la struttura Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 7. Architetture Software 1 / 18 Design Nella fase di design

Dettagli

Programmi e Oggetti Software

Programmi e Oggetti Software Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 2 Programmi e Oggetti Software Alfonso Miola Settembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Programmi e Oggetti Software

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

Sistemi Distribuiti Anno accademico 2009/10

Sistemi Distribuiti Anno accademico 2009/10 Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Sistemi Distribuiti Anno accademico 2009/10 Valeria Cardellini E-mail: cardellini@ing.uniroma2.it Tel: 06 72597388 Laurea Magistrale in

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Domenico Lembo Antonella Poggi 1. Architetture dei Sistemi Informativi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico

Dettagli

Introduzione al corso

Introduzione al corso Luca Cabibbo Ingegneria del Software Ingegneria del software: Introduzione al corso Dispensa IDS 0 ottobre 2008 1 Ingegneria e Ingegneria del software Ingegneria gli ingegneri fanno funzionare le cose,

Dettagli

Architetture Client/Server e World Wide Web

Architetture Client/Server e World Wide Web Basi di Dati Architetture Client/Server e World Wide Web Il World Wide Web Il web è una ragnatela (grafo) di contenuti (nodi) collegati tra loro attraverso collegamenti (link) I nodi sono documenti e/o

Dettagli

Architettura a servizi

Architettura a servizi Luca Cabibbo Architettura dei Sistemi Software dispensa asw510 marzo 2018 Anyone who doesn t do this will be fired. Thank you; have a nice day! Jeff Bezos 1 - Fonti [POSA4] Pattern-Oriented Software Architecture

Dettagli

Programmazione modulare

Programmazione modulare Programmazione modulare 2018-2019 Indirizzo: Informatica Disciplina: TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI Classe: 5B Docente: Maria Lizzi, Giorgio Carnevale Ore settimanali

Dettagli

Architetture Distribuite

Architetture Distribuite Architetture Distribuite Programmazione in Ambienti Distribuiti A.A. 2003-04 Applicazioni software Un programma o un insieme di programmi progettati per supportare il lavoro di un insieme di utenti finali

Dettagli

Indice. Introduzione PARTE PRIMA PRELUDIO: SERVIZIO CON SORRISO 1

Indice. Introduzione PARTE PRIMA PRELUDIO: SERVIZIO CON SORRISO 1 Indice Introduzione XIII PARTE PRIMA PRELUDIO: SERVIZIO CON SORRISO 1 Capitolo 1 Creazione di servizi Web 3 1.1 I servizi Web 3 Architetture distribuite basate su componenti 4 Come creare servizi Web 5

Dettagli

Programmazione di servizi web SOAP

Programmazione di servizi web SOAP Luca Cabibbo Architettura dei Sistemi Software Programmazione di servizi web SOAP dispensa asw860 marzo 2017 What is elegance? Soap and water! Cecil Beaton 1 - Fonti The Java EE 7 Tutorial https://docs.oracle.com/javaee/7/tutorial/

Dettagli

SCD. Processi e concorrenza in distribuito. Sistemi distribuiti: processi e concorrenza. Considerazioni di costo 2. Considerazioni di costo 3

SCD. Processi e concorrenza in distribuito. Sistemi distribuiti: processi e concorrenza. Considerazioni di costo 2. Considerazioni di costo 3 Considerazioni di costo 2 Processi e concorrenza in distribuito Anno accademico 2013/14 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Laurea Magistrale in Informatica,

Dettagli

Progettazione Object-Oriented

Progettazione Object-Oriented Progettazione Object-Oriented Generalità, Relazione fra OOA e OOD Concetti di base: Classi e Oggetti, Relazioni fra oggetti, Ereditarietà e Polimorfismo La specifica del Progetto: notazione UML Una metodologia

Dettagli

Corso di Reti di Calcolatori M

Corso di Reti di Calcolatori M Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori M CORBA - Implementazione Invocazione statica: prima parte Luca Foschini Anno accademico 2014/2015 CORBA Implementazione

Dettagli

Introduzione alle Basi di Dati

Introduzione alle Basi di Dati Introduzione alle Basi di Dati Angelo Chianese, Vincenzo Moscato, Antonio Picariello, Lucio Sansone Basi di dati per la gestione dell'informazione 2/ed McGraw-Hill Capitolo 1 Appunti dalle lezioni SQL

Dettagli

MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte

MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte DCOM: Distributed Component Object Model Applicazione Server Applicazione Client Fornitura di servizi WEB in ambiente distribuito Sempre

Dettagli

MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte

MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte Fornitura di servizi WEB in ambiente distribuito Sempre più servizi intesi come sistemi o framework (integrazione e composizione) di oggetti

Dettagli

Introduzione al corso

Introduzione al corso Introduzione al corso Corso di Applicazioni Telematiche A.A. 2006-07 Lezione n.1 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Organizzazione della lezione Obiettivi

Dettagli

Lo strato di applicazione in Internet

Lo strato di applicazione in Internet Lo strato di applicazione in Internet Prof. Ing. Carla Raffaelli a.a. 2004/2005 Protocolli applicativi Sono i protocolli utilizzati dalle applicazioni per scambiarsi informazioni Esempi: HTTP per il web,

Dettagli

Corso di Reti di Calcolatori L-A

Corso di Reti di Calcolatori L-A Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Laurea in Ingegneria Informatica e altro Antonio Corradi Luca Foschini Anno accademico 2009/2010 Introduzione 1

Dettagli

Descrizione generale dell architettura del sistema e dell interazione tra i suoi componenti. Descrizione del sottosistema di sicurezza locale.

Descrizione generale dell architettura del sistema e dell interazione tra i suoi componenti. Descrizione del sottosistema di sicurezza locale. Descrizione generale dell architettura del e dell interazione tra i suoi componenti. Descrizione del di sicurezza locale. Descrizione delle tecniche supportate dal per l organizzazione e la protezione

Dettagli

Tu sai di averne uno quando il guasto di un computer di cui non hai mai sentito parlare non ti permette di fare il tuo lavoro.

Tu sai di averne uno quando il guasto di un computer di cui non hai mai sentito parlare non ti permette di fare il tuo lavoro. 2014 Tu sai di averne uno quando il guasto di un computer di cui non hai mai sentito parlare non ti permette di fare il tuo lavoro. -Lamport Quercioli, Pecoraro, Rando, Lucero V AI Sommario Definizione...

Dettagli

Università degli Studi di Bologna Facoltà di Ingegneria. Meteo Service

Università degli Studi di Bologna Facoltà di Ingegneria. Meteo Service Università degli Studi di Bologna Facoltà di Ingegneria Meteo Service Corso di Reti di Calcolatori L-S Ingegneria Informatica, Laurea Specialistica Casarini Stefano, Matricola 0000195120 1 INTRODUZIONE

Dettagli

Alcune idee sui sistemi software e la loro architettura

Alcune idee sui sistemi software e la loro architettura Luca Cabibbo Analisi e Progettazione del Software Alcune idee sui sistemi software e la loro architettura Capitolo 92 marzo 2016 Gli orchi sono come le cipolle. Le cipolle hanno gli strati. Gli orchi hanno

Dettagli

Sommario 1 Introduzione progetto Soluzione Integrazione Conclusioni... 10

Sommario 1 Introduzione progetto Soluzione Integrazione Conclusioni... 10 SISS SUITE Sommario 1 Introduzione... 3 2 progetto... 3 3 Soluzione... 3 4 Integrazione... 10 5 Conclusioni... 10 2 1 INTRODUZIONE L OMNICOM SISS Suite è una libreria DLL espressamente concepita per facilitare

Dettagli

Progettare per gli attributi di qualità

Progettare per gli attributi di qualità Luca Cabibbo Architettura dei Sistemi Software Progettare per gli attributi di qualità dispensa asw210 marzo 2017 For every complex question there is a simple answer, and it is wrong. Henri Louis Mencken

Dettagli

Ingegneria del Software 16. Progettazione dettaglio. Dipartimento di Informatica Università di Pisa A.A. 2014/15

Ingegneria del Software 16. Progettazione dettaglio. Dipartimento di Informatica Università di Pisa A.A. 2014/15 Ingegneria del Software 16. Progettazione dettaglio Dipartimento di Informatica Università di Pisa A.A. 2014/15 classificatore strutturato È un classificatore di cui si vede la struttura interna, data

Dettagli

Progettazione di dettaglio

Progettazione di dettaglio Progettazione di dettaglio Diagrammi di struttura composita Ingegneria del Software C. Montangero L. Semini a.a. 2012/2013 1 Classificatore strutturato È un classificatore di cui si vede la struttura interna,

Dettagli

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 1 (proposta) Socket Java senza connessione Luca Foschini Anno accademico 2016/2017 Esercitazione 1 1

Dettagli

[Papazoglou] Web Services Principles and Technology

[Papazoglou] Web Services Principles and Technology Luca Cabibbo Architetture Software Dispensa PA 5 ottobre 2008 1 -Fonti [Papazoglou] Web Services Principles and Technology [ACKM] Web Services Concepts, Architectures and Applications [Marks&Bell] Service-Oriented

Dettagli

Basi di dati a oggetti

Basi di dati a oggetti Basi di dati a oggetti A L B E R T O B E L U S S I S I S T E M I I N F O M A T I V I G E O G R A F I C I E M U L T I M E D I A L I A N N O A C C A D E M I C O 2 0 1 1 / 1 2 Aree applicative emergenti Progettazione

Dettagli

Architettura a componenti

Architettura a componenti Luca Cabibbo Architettura dei Sistemi Software dispensa asw470 marzo 2018 The composition is the organized sum of the interior functions of every part of the work Wassily Kandinsky 1 - Fonti Buschmann,

Dettagli

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Laurea in Ingegneria Informatica e altro Antonio Corradi Luca Foschini Anno accademico 2018/2019 Introduzione 1 FINALITÀ

Dettagli

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Laurea in Ingegneria Informatica e altro Antonio Corradi Luca Foschini Anno accademico 2018/2019 Introduzione 1 FINALITÀ

Dettagli

Some reasoned reflections on the real difference between OO and structured development stuff derived from a class on OO testing

Some reasoned reflections on the real difference between OO and structured development stuff derived from a class on OO testing Ingegneria del SW - ottobre 2013 Some reasoned reflections on the real difference between OO and structured development stuff derived from a class on OO testing Enrico Vicario Dipartimento di Ingegneria

Dettagli

AscotWeb - mediatore Versione dicembre 2015

AscotWeb - mediatore Versione dicembre 2015 AscotWeb - mediatore Versione 1.0.1 21 dicembre 2015 Approvazioni Il presente documento è stato approvato da: 20/05/16 12.17 2 Storia delle Modifiche Versione Data Descrizione 1.0 19/05/2016 Prima versione

Dettagli

Introduzione alla programmazione Object Oriented. Luca Lista

Introduzione alla programmazione Object Oriented. Luca Lista Introduzione alla programmazione Object Oriented Luca Lista Concetti base del software OO Classi e oggetti Incapsulamento Relazione di ereditarietà Polimorfismo Cos è un Oggetto? Definizione da vocabolario:

Dettagli

Comunicazione fra oggetti distribuiti

Comunicazione fra oggetti distribuiti Comunicazione fra oggetti distribuiti Livelli Middleware Trasparenza e implementazione La trasparenza - come per le chiamate di locali RMI RPC Eventi di metodo remoto - gli oggetti remoti ricevono le RMI

Dettagli

L infrastruttura STIL. Presentazione dei risultati finali del progetto Alessandro Ricci Università di Bologna DEIS Bologna / Cesena

L infrastruttura STIL. Presentazione dei risultati finali del progetto Alessandro Ricci Università di Bologna DEIS Bologna / Cesena L infrastruttura STIL Presentazione dei risultati finali del progetto Alessandro Ricci Università di Bologna DEIS Bologna / Cesena Ruolo Infrastruttura ICT Fornire modelli, architetture e tecnologie informatiche

Dettagli

invocazione remota ottobre Fonti [CDK/4e] Chapter 5, Distributed Objects and Remote Invocation [Liu] Chapter 8, Advanced RMI

invocazione remota ottobre Fonti [CDK/4e] Chapter 5, Distributed Objects and Remote Invocation [Liu] Chapter 8, Advanced RMI Luca Cabibbo Architetture Software Oggetti distribuiti e invocazione remota Dispensa MW 3 ottobre 2008 1 -Fonti [CDK/4e] Chapter 5, Distributed Objects and Remote Invocation [Liu] Chapter 7, Distributed

Dettagli

Remote file access sulla grid e metodi di interconnesione di rete

Remote file access sulla grid e metodi di interconnesione di rete Remote file access sulla grid e metodi di interconnesione di rete M. Donatelli, A.Ghiselli e G.Mirabelli Infn-Grid network 24 maggio 2001 Remote file access sulla grid Studio, progettazione e implementazione

Dettagli

REGIONE BASILICATA PROCEDURA APERTA (AI SENSI DEL D.LGS.163/2006 E S.M.I.)

REGIONE BASILICATA PROCEDURA APERTA (AI SENSI DEL D.LGS.163/2006 E S.M.I.) PROCEDURA APERTA (AI SENSI DEL D.LGS.163/2006 E S.M.I.) PER L ACQUISIZIONE DEL SERVIZIO EVOLUTIVO E DI ASSISTENZA SPECIALISTICA DEL SISTEMA INFORMATIVO DI MONITORAGGIO DEGLI INVESTIMENTI PUBBLICI DELLA

Dettagli

Domenico Talia. Corso di Laurea in Ingegneria Informatica. Facoltà di Ingegneria A.A UNICAL. D. Talia SISTEMI DISTRIBUITI - UNICAL 1

Domenico Talia. Corso di Laurea in Ingegneria Informatica. Facoltà di Ingegneria A.A UNICAL. D. Talia SISTEMI DISTRIBUITI - UNICAL 1 Corso di Laurea in Ingegneria Informatica SISTEMI DISTRIBUITI Domenico Talia Facoltà di Ingegneria UNICAL A.A. 2006-2007 D. Talia SISTEMI DISTRIBUITI - UNICAL 1 Sistemi Distribuiti - Obiettivi Gli obiettivi

Dettagli