Broker e architettura a oggetti distribuiti

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Broker e architettura a oggetti distribuiti"

Transcript

1 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. Albert Einstein 1 - Fonti [POSA1] Pattern-Oriented Software Architecture (Volume 1): A System of Patterns. Wiley, [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 Bachmann, F., Bass, L., and Nord, R. Modifiability Tactics. Technical report CMU/SEI-2007-TR

2 Obiettivi - Obiettivi e argomenti introdurre i pattern POSA per gli stili di comunicazione distribuita presentare l architettura a oggetti distribuiti e il pattern architetturale Broker Argomenti infrastruttura per la distribuzione verso l architettura a oggetti distribuiti architettura a oggetti distribuiti Broker [POSA] discussione 3 * Infrastruttura per la comunicazione Lo sviluppo dei sistemi software distribuiti è sostenuto da diversi servizi di middleware gli elementi software di un sistema software distribuito sono componenti oppure connettori i componenti sono (devono essere) focalizzati sulla logica di business dell applicazione il collegamento tra questi componenti avviene (deve avvenire) mediante connettori la comunicazione avviene sulla base di paradigmi e stili di comunicazione distribuita implementati dal middleware il middleware fornisce un infrastruttura di comunicazione che protegge i componenti delle applicazioni dalle numerose complessità tipiche dei sistemi distribuiti 4

3 Middleware e stili di comunicazione Sviluppare middleware per la comunicazione nei sistemi distribuiti è un attività estremamente complessa fortunatamente, solo raramente c è la necessità di progettare e implementare nuovi stili o paradigmi di interazione distribuita infatti, sono disponibili un ampia varietà di servizi di middleware, standard e commerciali, già usati con successo in moltissimi sistemi distribuiti Malgrado le differenze nei dettagli, le tecnologie di middleware sostengono di solito uno o più tra tre stili di comunicazione distribuita differenti rappresentati da tre pattern architetturali fondamentali invocazione remota Broker [POSA] messaging Messaging [POSA] notifica di eventi Publisher-Subscriber [POSA] 5 Stili di comunicazione e pattern [POSA] Broker [POSA] organizza il sistema distribuito in un insieme di componenti che interagiscono sulla base di invocazioni remote il broker gestisce gli aspetti della comunicazione tra questi componenti distribuiti Messaging [POSA] organizza il sistema in componenti che interagiscono sulla base dello scambio di messaggi i componenti si scambiano messaggi (che possono codificare dati, metadati, documenti, richieste, risposte) in modo asincrono, tramite un insieme di canali per messaggi Publisher-Subscriber [POSA] organizza il sistema in componenti che interagiscono sulla base dello scambio di notifiche di eventi, in modo asincrono 6

4 Stili di comunicazione e pattern [POSA] distribution infrastructure Broker Domain Object internal partitioning system evolution Domain Model remote communication functional variation Messaging Publisher- Subscriber from mud to structure Layers Pipes and Filters data stream processing data-driven processing Shared Repository user interface variation Model-View Controller Reflection Microkernel 7 Stili di comunicazione e middleware Nel seguito del corso, questi stili di comunicazione verranno discussi separatamente Broker in questa dispensa, Messaging e Publisher-Subscriber in una dispensa successiva in pratica, ciascun servizio di middleware implementa spesso uno o anche più tra questi stili di comunicazione 8

5 * Verso l architettura a oggetti distribuiti Lo sviluppo dei sistemi distribuiti è stato sostenuto, nel corso del tempo, da diversi tipi di tecnologie, a diversi 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 9 Verso l architettura a 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 10

6 Verso l architettura a 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 questo modello distribuito 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 più avanti) per fornire ulteriore trasparenza e maggiore flessibilità oggi è una tecnologia matura e con delle capacità avanzate tuttavia, ha anche alcune limitazioni importanti la cui soluzione ha poi portato alla realizzazione di altre tecnologie di middleware 11 Verso l architettura a oggetti distribuiti L architettura a oggetti distribuiti è un evoluzione dello stile client/server è 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 consentendo una maggiore flessibilità nel rilascio dei componenti distribuiti viene adottato un paradigma a oggetti 12

7 * Architettura a oggetti distribuiti L architettura a oggetti distribuiti (DOA) chiamata anche distributed object computing (DOC) o distributed object model organizza un sistema software in un insieme di elementi software chiamati oggetti distribuiti ciascun oggetto distribuito è un elemento software (a grana grossa) i diversi oggetti distribuiti del sistema sono distribuiti tra più processi e nodi, in modo flessibile l interazione tra oggetti distribuiti avviene sulla base dell invocazione di metodi remoti 13 Architettura a oggetti distribuiti 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) 14

8 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 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 15 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 16

9 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 17 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 18

10 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 19 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 bene con 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 20

11 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 21 Architettura a oggetti distribuiti Il modello a oggetti distribuiti è stato già discusso nella dispensa sull Invocazione remota il funzionamento di un ORB è descritto dal pattern architetturale Broker, illustrato qui di seguito 22

12 * Broker [POSA] In generale, il termine broker indica un intermediario un professionista che ricerca e acquista, per conto del cliente, nel mercato di riferimento, il prodotto che offre il miglior rapporto qualità-prezzo [Wikipedia] dunque, ad esempio, una parte che media tra un acquirente e un venditore Il pattern architetturale Broker [POSA] può essere usato per strutturare sistemi distribuiti con componenti disaccoppiati che interagiscono mediante l invocazione di servizi remoti un elemento broker è un intermediario responsabile di coordinare la comunicazione tra i diversi componenti remoti ad es., per inoltrare richieste di un client ad un server opportuno, e poi trasmettere al client risposte o eccezioni 23 Relazione con altri stili [POSA] distribution infrastructure Broker Domain Object internal partitioning system evolution Domain Model remote communication functional variation Messaging Publisher- Subscriber from mud to structure Layers Pipes and Filters data stream processing data-driven processing Shared Repository user interface variation Model-View Controller Reflection Microkernel 24

13 Broker [POSA4] colloca Broker nella categoria infrastrutture per la distribuzione Broker è un pattern alla base della tecnologia a oggetti distribuiti ma è anche utilizzato (nelle sue varianti o evoluzioni) anche in altri servizi di middleware (a componenti, a servizi, per il messaging, ) costituisce un infrastruttura di comunicazione per rendere trasparenti all applicazione (e al programmatore) alcune complessità della distribuzione 25 Esempio City Information System CIS sistema di informazioni turistiche portale verso altri sistemi (esterni) che effettivamente offrono servizi per turisti informazioni su alberghi e ristoranti, trasporti pubblici, musei, visite guidate,... in alcuni casi con la possibilità di fare prenotazioni/acquisti ci possono essere più sistemi esterni che possono soddisfare uno stesso tipo di richieste è possibile la registrazione dinamica di nuovi sistemi esterni il CIS si propone come un punto di contatto singolo per il turista nei confronti dei sistemi esterni dunque, CIS è un broker tra turista e sistemi esterni 26

14 Contesto Broker in un sistema distribuito, ci sono più componenti in grado di erogare dei servizi è necessaria un infrastruttura di comunicazione che protegga le applicazioni dalla complessità della distribuzione 27 Problema Broker si vuole organizzare un sistema distribuito sulla base di un insieme di componenti distribuiti, in modo flessibile ovvero, in modo che gli utenti dei servizi non debbano conoscere la natura e la posizione dei fornitori dei servizi inoltre, deve essere possibile cambiare dinamicamente i collegamenti tra utenti e fornitori di servizi dunque, si desiderano componenti interoperabili ma disaccoppiati trasparenza nell accesso ai componenti indipendenza dalla locazione, dai meccanismi di comunicazione interprocesso e dalla disponibilità dei componenti possibilità di aggiungere/rimuovere/sostituire componenti a runtime se possibile, interoperabilità tra componenti eterogenei 28

15 Problema Broker in generale, le applicazioni distribuite dovrebbero gestire le problematiche connesse alla distribuzione usando un modello di programmazione che protegga le applicazioni stesse dai dettagli della rete e della posizione dei componenti in rete idealmente, i componenti dovrebbero poter interagire mediante l invocazione dei loro servizi queste invocazioni dovrebbe poter essere espresse in modo unificato e indipendente dalla posizione dei componenti (ovvero, indipendentemente dal fatto che i servizi invocati siano locali o remoti) 29 Broker Soluzione (struttura) organizza il sistema distribuito in un insieme di componenti che interagiscono sulla base di invocazioni remote introduci un componente intermediario broker per gestire la comunicazione tra questi componenti distribuiti il broker definisce un modello di programmazione distribuita in cui i client possono invocare servizi remoti come se fossero servizi locali ed incapsula l infrastruttura di comunicazione del sistema distribuito il broker realizza un disaccoppiamento tra utenti (client) e fornitori (server) dei servizi ed inoltre sostiene una separazione tra i dettagli della comunicazione e le funzionalità applicative utilizza degli ulteriori intermediari proxy per aiutare i componenti client e server nell interazione con il broker 30

16 Broker Soluzione (dinamica) all avvio di ciascun server, il server registra i propri servizi (interfaccia e locazione) presso il broker un client accede ai servizi indirettamente, tramite il broker il client richiede un servizio al broker il broker seleziona un server in grado di erogare il servizio, e gli inoltra la richiesta del client, e poi trasmette la risposta ricevuta al client in questo modo il client può ignorare l identità, la locazione e le caratteristiche del server che lo sta servendo se un server diviene indisponibile, il broker può scegliere dinamicamente di sostituirlo con un altro server (tra quelli che offrono un servizio compatibile) il broker è l unico componente che deve sapere di questo cambiamento senza ripercussioni sui client 31 Struttura (parziale) Client-side Proxy transfer messages Broker transfer messages Server-side Proxy call service pack data retun result unpack data main event loop register service update registry send request find server send response find client call service unpack data pack data calls calls Client Server start task call service use broker API start initialize enter main loop run service use broker API 32

17 Server Partecipanti ciascun server è un oggetto o componente che offre servizi i servizi sono esposti tramite una interfaccia ad es., un IDL di solito ci sono molti server che offrono servizi diversi, ma che possono anche offrire gli stessi servizi ciascun server registra i servizi che può offrire presso il Broker Client ciascun client è un oggetto (o componente o applicazione) che vuole fruire di servizi di solito ci sono molti client concorrenti ciascun client inoltra le proprie richieste al Broker Client e server vanno intesi nell accezione flessibile dell architettura a oggetti distribuiti 33 Partecipanti Broker come abbiamo detto, il termine broker indica l intermediario tra i client e i server nel sistema distribuito il broker è un bus un messaggero responsabile della trasmissione di richieste e risposte tra client e server è responsabile di gestire un registry dei servizi e dei server presenti nel sistema distribuito (con la loro interfaccia e la loro locazione) offre ai server (mediante delle API) la funzionalità per registrare i loro servizi offre ai client (mediante delle API) la funzionalità per richiedere l esecuzione di servizi può offrire ai client e ai server altri servizi aggiuntivi ad es., di naming (directory, context) 34

18 Partecipanti Proxy lato client intermediario tra client e broker/server è il rappresentante lato client del servizio richiesto con la stessa interfaccia del servizio vive localmente al processo del client un remote proxy fornisce trasparenza rispetto alla distribuzione, perché sia il broker che l oggetto server remoto appaiono locali al client Proxy lato server intermediario tra broker e server vive localmente al processo del server responsabile di ricevere richieste dal client (tramite il broker), di invocare il servizio effettivo e di trasmettere le risposte al client (tramite il broker) 35 Parentesi: Proxy [POSA, GoF] Il design pattern Proxy fa comunicare i client di un componente che offre servizi con un rappresentante di quel componente e non direttamente con il componente stesso l introduzione di un tale segnaposto può sostenere diversi scopi ad es., aumentare l efficienza, semplificare l accesso, consentire la protezione da accessi non autorizzati Proxy [GoF] fornisce un surrogato o un segnaposto per un altro oggetto per controllarne l accesso Possibili diverse applicazioni di proxy remote proxy, protection proxy, cache proxy, synchronization proxy, virtual proxy,... in Broker, si tratta di una coppia di remote proxy 36

19 Scenario 1 registrazione server Server Broker start initialize main event loop register service update registry ack enter main loop confine tra processi 37 Scenario 2 gestione richiesta client Client Client-side Proxy Broker Server-side Proxy Server call service pack data send request find server call service unpack data run service result send response pack data return result find client result unpack data 38

20 Scenario 2 Ruolo del broker in questo scenario 2 trascurando il ruolo dei proxy (che già conosciamo) il client chiede l erogazione di un servizio ma non la chiede direttamente a un server, ma piuttosto la chiede al broker il broker (sulla base delle informazioni sui servizi registrati, che gestisce direttamente) seleziona un server in grado di erogare il servizio richiesto potrebbero esserci un solo server in grado di erogare quel servizio, ma potrebbero essercene anche più di uno inoltre, il broker inoltra la richiesta al server selezionato, per conto del client poi, il broker ottiene la risposta alla richiesta dal server, sempre per conto del client infine, il broker restituisce la risposta al client 39 Scenario 2 varianti Lo scenario per la gestione delle richieste da parte di un client ha due varianti principali nelle due varianti, il broker ha ruoli diversi anche i proxy hanno ruoli un po diversi comunicazione indiretta come mostrato dallo scenario 2 di base, tutte le richieste (e le risposte) transitano attraverso il broker il client e il server non comunicano mai in modo diretto comunicazione diretta il broker è responsabile solo di mettere in comunicazione client e server dopo di che, client e server comunicano in modo diretto richiede che client e server comprendano e utilizzino lo stesso protocollo 40

21 Scenario 2 varianti Confronto tra le due varianti nella comunicazione diretta, l overhead di comunicazione è minore tuttavia, nella comunicazione indiretta, il client è protetto in modo continuo da eventuali indisponibilità e da variazioni di locazione dei servizi inoltre la comunicazione indiretta abilita un ulteriore scenario di interoperabilità, in cui il client e il server potrebbero essere eterogenei ed essere basati su protocolli o su formati diversi questo scenario di interoperabilità che è basato sull utilizzo di una federazione di broker (anziché di un solo broker) e su componenti bridge per collegare questi broker viene qui trascurato per semplicità 41 Conseguenze Benefici trasparenza dalla posizione il client non ha bisogno di sapere dove si trova il server i server possono ignorare la posizione dei loro client modificabilità ed estendibilità dei componenti riusabilità di servizi esistenti possibile l interoperabilità tra tipi di client, server e broker diversi 42

22 Conseguenze Inconvenienti riduzione delle prestazioni, a causa dell indirezione del broker inoltre preclude la possibilità di effettuare ottimizzazioni legate, ad es., ad un allocazione statica dei componenti distribuiti minor tolleranza ai guasti rispetto a una soluzione non distribuita il broker potrebbe essere un punto di fallimento singolo (ma se è opportunamente replicato/ridondato, allora potrebbe non esserlo) maggior complessità difficile da verificare 43 Esempio: Java RMI Java RMI l architettura Java RMI è basata, in parte, su Broker il ruolo del broker è svolto dalla JVM remota che contiene l oggetto servente il ruolo del proxy lato client è svolto dalla JVM lato client e da uno stub generato implicitamente il ruolo del proxy lato server (lo skeleton) è svolto dalla JVM lato server anche in questo caso, lo skeleton è generato implicitamente comunicazione diretta la comunicazione Java RMI è normalmente basata sul protocollo JRMP tuttavia, la tecnologia Java RMI-IIOP (Java RMI over Internet Inter-ORB Protocol) consente l interoperabilità con dei broker CORBA 44

23 - Usi conosciuti Il pattern architetturale Broker è molto diffuso la prima implementazione di un broker che è stata ampliamente usata è in CORBA (Common Object Request Broker Architecture) il pattern broker è usato, in forme variate ed evolute, anche nelle tecnologie a componenti (come Java EE e.net) e nelle architetture a servizi 45 - Broker e tattiche per la modificabilità Increase semantic coherence increase cohesion ciascun server raggruppa un insieme di funzionalità semanticamente correlate Encapsulate reduce coupling ciascun server espone le proprie funzionalità mediante un interfaccia remota pubblicata l interazione con i client avviene solo sulla base di tale interfaccia anche il broker espone le proprie responsabilità pubbliche (ad es., relativamente alla registrazione dei servizi) mediante delle API pubbliche in modo indipendente dall implementazione di tali responsabilità 46

24 Broker e tattiche per la modificabilità Use an intermediary reduce coupling il broker è un intermediario tra client e server fornisce la possibilità di invocare servizi in modo indipendente dalla locazione anche il proxy lato client è un intermediario gli oggetti remoti appaiono locali al client anche il proxy lato server è un intermediario il server riceve delle chiamate locali la coppia di proxy nasconde a client e server i dettagli implementativi della comunicazione remota 47 Broker e tattiche per la modificabilità Restrict dependencies reduce coupling il client comunica con il server indirettamente, tramite i proxy e il broker questo consente cambiamenti nei server motivati, ad esempio, da obiettivi di affidabilità o bilanciamento del carico Use runtime binding defer binding i server si registrano presso il broker a runtime le registrazioni possono cambiare dinamicamente 48

25 * Discussione I servizi di middleware utilizzati nella realizzazione dei sistemi distribuiti sostengono di solito tre stili principali di comunicazione distribuita rappresentati da tre pattern architetturali fondamentali in questa dispensa abbiamo studiato Broker che suggerisce di organizzare un sistema distribuito come un insieme di componenti che interagiscono sulla base di invocazioni remote in una successiva dispensa studieremo Messaging e Publisher- Subscriber che suggeriscono di organizzare un sistema distribuito come un insieme di componenti che interagiscono sulla base dello scambio di messaggi e di notifiche di eventi, in modo asincrono in pratica, ciascun servizio di middleware implementa di solito uno o più tra questi stili di comunicazione 49

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

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

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

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

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

POSA: Un catalogo di pattern architetturali. (seconda parte) [POSA1] Pattern-Oriented Software Architecture A System of Patterns, 1996

POSA: Un catalogo di pattern architetturali. (seconda parte) [POSA1] Pattern-Oriented Software Architecture A System of Patterns, 1996 Luca Cabibbo Architetture Software POSA: Un catalogo di pattern architetturali (seconda parte) Dispensa ASW 361 ottobre 2014 Quando una decisione ha senso in molte circostanze diverse, probabilmente è

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

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

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

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

Pattern POSA: Pipes and Filters

Pattern POSA: Pipes and Filters Luca Cabibbo Architettura dei Sistemi Software Pattern POSA: Pipes and Filters dispensa asw340 marzo 2017 Sam had a strange feeling as the slow gurgling stream slipped by: his old life lay behind in the

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

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

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

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

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

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

Pattern software. [SAP] Chapter 13, Architectural Tactics and Patterns Luca Cabibbo Architetture Software Dispensa ASW 350 ottobre 2014 Prima che sia stato provato, è un opinione. Dopo che è stato provato, è ovvio. William C. Burkett 1 -Fonti [SSA] Chapter 11, Using Styles

Dettagli

Pattern. Corso di ingegneria del software

Pattern. Corso di ingegneria del software Corso di Laurea Triennale in Ingegneria Informatica Ingegneria del software Pattern Corso di ingegneria del software Definizione Pattern software la descrizione strutturata di una soluzione esemplare ad

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

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

Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC.

Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit per lo sviluppo di interfacce utente con paradigma MVC. tesi di laurea Analisi e comparazione dei Framework OpenSwing e Google Web Toolkit. Anno Accademico 2009/2010 relatore Ch.mo prof. Porfirio Tramontana correlatore Ing. Luca Anniciello candidato Gianluca

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

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

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

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 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

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

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

POSA: Un catalogo di pattern architetturali. (prima parte) [POSA1] Pattern-Oriented Software Architecture A System of Patterns, 1996

POSA: Un catalogo di pattern architetturali. (prima parte) [POSA1] Pattern-Oriented Software Architecture A System of Patterns, 1996 Luca Cabibbo Architetture Software POSA: Un catalogo di pattern architetturali (prima parte) Dispensa ASW 360 ottobre 2014 La struttura di un sistema dovrebbe assomigliare alla struttura funzionale. Eberhardt

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

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

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

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

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

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. 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

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

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

Il Modello a scambio di messaggi

Il Modello a scambio di messaggi Il Modello a scambio di messaggi 1 Interazione nel modello a scambio di messaggi Se la macchina concorrente e` organizzata secondo il modello a scambio di messaggi: PROCESSO=PROCESSO PESANTE non vi è memoria

Dettagli

Laboratorio di Reti, Corsi A e B. Text-Twist. Progetto di Fine Corso A.A. 2016/17

Laboratorio di Reti, Corsi A e B. Text-Twist. Progetto di Fine Corso A.A. 2016/17 Laboratorio di Reti, Corsi A e B Text-Twist Progetto di Fine Corso A.A. 2016/17 1.Descrizione del problema Il progetto consiste nello sviluppo di un gioco multiplayer online. All inizio di una partita

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

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

X Prefazione dei paradigmi della programmazione concorrente. Successivamente, l evoluzione delle tecnologie hardware, che hanno consentito lo sviluppo

X Prefazione dei paradigmi della programmazione concorrente. Successivamente, l evoluzione delle tecnologie hardware, che hanno consentito lo sviluppo Prefazione La concorrenza, intesa come contemporaneità di esecuzione di parti diverse di uno stesso programma, rappresenta una caratteristica di primaria importanza nello sviluppo del software, sia nel

Dettagli

SOMMARIO DESIGN PATTERN

SOMMARIO DESIGN PATTERN INTRODUZIONE AI DESIGN PATTERN INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica Corso di Laurea in Informatica, A.A. 2014 2015 rcardin@math.unipd.it 2 DESIGN PATTERN

Dettagli

SOMMARIO DESIGN PATTERN INTRODUZIONE AI DESIGN PATTERN INGEGNERIA DEL SOFTWARE. Introduzione. Cos è un design pattern. Cos è un design pattern

SOMMARIO DESIGN PATTERN INTRODUZIONE AI DESIGN PATTERN INGEGNERIA DEL SOFTWARE. Introduzione. Cos è un design pattern. Cos è un design pattern INTRODUZIONE AI DESIGN PATTERN INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica, A.A. 2011 2012 2 rcardin@math.unipd.it DESIGN PATTERN

Dettagli

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E.

Corso di Laurea Specialistica in Ingegneria Informatica. Corso di Ingegneria del Software A. A Introduzione ad UML E. Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Introduzione ad UML E. TINELLI UML È un linguaggio (e notazione) universale per rappresentare qualunque

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

CdL MAGISTRALE in INFORMATICA A.A corso di Sistemi Distribuiti. 8. Le architetture (prima parte) Prof. S.Pizzutilo

CdL MAGISTRALE in INFORMATICA A.A corso di Sistemi Distribuiti. 8. Le architetture (prima parte) Prof. S.Pizzutilo CdL MAGISTRALE in INFORMATICA A.A. 2015-16 corso di Sistemi Distribuiti 8. Le architetture (prima parte) Prof. S.Pizzutilo I Sistemi Distribuiti Un Sistema Distribuito è un insieme di processori indipendenti

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

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

MODELLI ISO/OSI e TCP/IP

MODELLI ISO/OSI e TCP/IP PARTE I - Reti di Calcolatori ed Internet MODELLI ISO/OSI e TCP/IP 2.1 Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto tra OSI e TCP/IP ARPANET Ethernet Reti ATM reti

Dettagli

Università degli studi dell Aquila. Sistemi di elaborazione delle informazioni

Università degli studi dell Aquila. Sistemi di elaborazione delle informazioni Università degli studi dell Aquila Corsi di studio: I2E, I2I Sistemi di elaborazione delle informazioni 9 C.F.U. Ing. Gaetanino Paolone Architetture Software (richiami) Stile architetturale. Cos'è un'architettura

Dettagli

Ottenere qualità: stili, tattiche e prospettive architetturali

Ottenere qualità: stili, tattiche e prospettive architetturali Luca Cabibbo Architetture Software Ottenere qualità: stili, tattiche e prospettive architetturali Dispensa ASW 160 ottobre 2014 Semplifica, combina ed elimina. Suzaki 1 -Fonti [SAP] Chapter 4, Understanding

Dettagli

SCD. Openness. Sistemi distribuiti: introduzione. Definizione

SCD. Openness. Sistemi distribuiti: introduzione. Definizione Definizione Anno accademico 2012/1 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Un sistema distribuito è un insieme di nodi di calcolo indipendenti capaci di apparire

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

MODELLI ISO/OSI e TCP/IP

MODELLI ISO/OSI e TCP/IP PARTE I - Reti di Calcolatori ed Internet MODELLI ISO/OSI e TCP/IP Reti di Calcolatori Livelli e Servizi Il modello OSI Il modello TCP/IP Un confronto tra OSI e TCP/IP ARPANET Ethernet Reti ATM reti wireless

Dettagli

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I)

Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Corso di Algoritmi e Strutture dati Programmazione Object- Oriented in Java (Parte I) Ing. Gianluca Caminiti Sommario ( OOP ) Programmazione Object-Oriented Incapsulamento, Ereditarietà, Polimorfismo Richiami

Dettagli

Cooperazione applicativa

Cooperazione applicativa La cooperazione applicativa costituisce l elemento centrale per il collegamento delle infrastrutture dati in modalità distribuita. Tale meccanismo definisce le modalità di interscambio tra Enti e consente

Dettagli

THE BRAIN BEHIND YOUR BUSINESS

THE BRAIN BEHIND YOUR BUSINESS CONCEPT STORE THE BRAIN BEHIND YOUR BUSINESS www.sinapsesystem.com SINAPSE / OVERVIEW Sinapse è un sistema software a plugin che connette, come in una rete neurale, entità semplici che collaborano per

Dettagli

Interazione fra applicazioni

Interazione fra applicazioni WEB SERVICES Successo del Web Negli anni passati il Web ha avuto un enorme successo principalmente per due motivi: Semplicità: Ubiquità Per un fornitore di servizi è semplice raggiungere un numero molto

Dettagli

SETA Selection Tool del Sistema ARTIST

SETA Selection Tool del Sistema ARTIST Selection Tool del Sistema ARTIST L incarico è stato affidato al RTI composta da: Kayser Italia S.r.l. Daxo con capogruppo Kayser Italia s.r.l. SETA () Espandibilità e flessibilità Delocalizzazione istallazione

Dettagli

Bandwidth on Demand. Realizzazione di un testbed per l allocazione dinamica di canali e2e con prenotazione della banda

Bandwidth on Demand. Realizzazione di un testbed per l allocazione dinamica di canali e2e con prenotazione della banda Bandwidth on Demand Realizzazione di un testbed per l allocazione dinamica di canali e2e con prenotazione della banda Definizione del servizio Un servizio di allocazione dinamica della banda prevede la

Dettagli

Allegato Tecnico Backup As A Service

Allegato Tecnico Backup As A Service Allegato Tecnico Backup As A Service Nota di lettura 1 Descrizione del servizio 1.1 Definizioni e acronimi 1.2 BACKUP AS A SERVICE 1.3 Attivazione del servizio Scenari possibili Scenario 1 Scenario 2 Scenario

Dettagli

PIANO DI LAVORO ANNO SCOLASTICO 2016/2017. I.I.S.S. C. E. GADDA Sede di Langhirano MATERIA DI INSEGNAMENTO TECNOLOGIE E PROGETTAZIONE DI

PIANO DI LAVORO ANNO SCOLASTICO 2016/2017. I.I.S.S. C. E. GADDA Sede di Langhirano MATERIA DI INSEGNAMENTO TECNOLOGIE E PROGETTAZIONE DI PIANO DI LAVORO ANNO SCOLASTICO 2016/2017 I.I.S.S. C. E. GADDA Sede di Langhirano MATERIA DI INSEGNAMENTO TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI PROF. MAURIZIO MERCURI

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

Contenitori. Subhraveti, D. Containers Beyond the Hype. AppOrbit, 2015.

Contenitori. Subhraveti, D. Containers Beyond the Hype. AppOrbit, 2015. Luca Cabibbo Architettura dei Sistemi Software dispensa asw640 marzo 2017 Containers are much faster to provision than full-fat virtual machines. Sam Newman 1 - Fonti Subhraveti, D. Containers Beyond the

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi Modello a scambio di messaggi Aspetti caratterizzanti il modello Canali di comunicazione Primitive di comunicazione 1 Aspetti caratterizzanti il modello modello architetturale di macchina (virtuale) concorrente

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

Identità digitale federata: il caso ICAR-INF3. Francesco Meschia CSI-Piemonte

Identità digitale federata: il caso ICAR-INF3. Francesco Meschia CSI-Piemonte Identità digitale federata: il caso ICAR-INF3 Francesco Meschia CSI-Piemonte Il task INF-3 di ICAR Identità digitale federata tra le Regioni Identità digitale a supporto di SPC Identità digitale per gli

Dettagli

Laboratorio di Progettazione di Sistemi Software Design Patterns

Laboratorio di Progettazione di Sistemi Software Design Patterns TITLE Laboratorio di Progettazione di Sistemi Software Design Patterns Valentina Presutti (A-L) Riccardo Solmi (M-Z) 1 Indice degli argomenti Tipi di Design Patterns Creazionali Strutturali Comportamentali

Dettagli

Modelli di Sistemi Distribuiti

Modelli di Sistemi Distribuiti Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica Corso di Sistemi Distribuiti Prof. Stefano Russo Modelli di Sistemi Distribuiti

Dettagli

ARCHITECTING AND DESIGNING J2EE APPLICATIONS

ARCHITECTING AND DESIGNING J2EE APPLICATIONS ARCHITECTING AND DESIGNING J2EE APPLICATIONS [cod. S301] UN BUON MOTIVO PER Il corso fornisce le competenze richieste per utilizzare la piattaforma J2EE (Java 2 Platform, Enterprise Edition) per creare

Dettagli

Introduzione ai casi d uso

Introduzione ai casi d uso Introduzione ai casi d uso versione 16 marzo 2009 http://www.analisi-disegno.com Introduzione ai casi d uso Pag. 1 Obiettivo di questa introduzione fornire elementi di base sui casi d uso fornire indicazioni

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

INTRODUZIONE A RETI E PROTOCOLLI

INTRODUZIONE A RETI E PROTOCOLLI PARTE 1 INTRODUZIONE A RETI E PROTOCOLLI Parte 1 Modulo 1: Introduzione alle reti 1 Perché le reti tra computer? Collegamenti remoti a mainframe (< anni 70) Informatica distribuita vs informatica monolitica

Dettagli

(e integrazione di applicazioni)

(e integrazione di applicazioni) Luca Cabibbo Architetture Software Messaging (e integrazione di applicazioni) Dispensa PA 3 ottobre 2008 1 -Fonti [POSA4] Pattern-Oriented Software Architecture A Pattern Language for Distributed Computing

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

Architetture Applicative Altri Esempi

Architetture Applicative Altri Esempi Architetture Applicative Altri Esempi Alessandro Martinelli alessandro.martinelli@unipv.it 15 Aprile 2014 Architetture Applicative Altri Esempi di Architetture Applicative Architetture con più Applicazioni

Dettagli

Piattaforma di Comunicazione Unificata

Piattaforma di Comunicazione Unificata Piattaforma di Comunicazione Unificata Contesto Nell attuale scenario lavorativo la grande quantità di informazioni e la varietà dei mezzi di comunicazione arrivano a costituire un ostacolo all interazione

Dettagli

MVC - Principio. MVC Model View Controller. MVC - Terminologia. MVC - Funzionamento. Richiesta. Controller. Model. Risposta. View

MVC - Principio. MVC Model View Controller. MVC - Terminologia. MVC - Funzionamento. Richiesta. Controller. Model. Risposta. View MVC View Controller! Si tratta di un pattern di progettazione introdotto originariamente con Smalltalk (1980 Xerox)! Si basa su astrazioni presenti in tutte le applicazioni dotate di interfaccia grafica!

Dettagli

Un architettura orientata ai servizi per la localizzazione di dispositivi mobili

Un architettura orientata ai servizi per la localizzazione di dispositivi mobili Tesi di laurea Un architettura orientata ai servizi per la localizzazione di dispositivi mobili Anno Accademico 2004 /2005 Relatore Ch.mo Prof. Domenico Cotroneo Correlatore Ing. Massimo Ficco Candidato

Dettagli

Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi

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

Dettagli

Basi di Dati. Concetti e Principi Generali. Maria Mirto

Basi di Dati. Concetti e Principi Generali. Maria Mirto Basi di Dati Concetti e Principi Generali Maria Mirto Organizzazione dei Dati Archivi o file Procedure di accesso in qualunque linguaggio di programmazione Duplicazione dati: ridondanza incoerenza formati

Dettagli

Sistemi Operativi (modulo di Informatica II) La comunicazione tra processi

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

Dettagli

Ingegneria del Software

Ingegneria del Software Ingegneria del Software Analisi Object Oriented ed Elementi di Programmazione OO Origini Le metodologie ad oggi nascono negli anni 70 ma si affermano solo nelgi anni 80 grazie alla nascita dei linguaggi

Dettagli

Capitolo 6 Le infrastrutture SoftWare

Capitolo 6 Le infrastrutture SoftWare Capitolo 6 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: garantire la correttezza e la precisione nell elaborazione

Dettagli

R. Orsini - A. Roncato - F. Dalla Libera

R. Orsini - A. Roncato - F. Dalla Libera Interfacce per basi di dati e integrazione di sistemi informativi R. Orsini - A. Roncato - F. Dalla Libera Workshop del Dipartimento di Informatica 2 Marzo 2006 Aree e progetti Progetto Rewerse: Query

Dettagli

Sistemi operativi e distribuiti

Sistemi operativi e distribuiti Sistemi operativi e distribuiti La memoria Indirizzi fisici e indirizzi logici Importante separazione di concetti Ci permette di separare la parte software da la parte hardware Indirizzo logico (o virtuale):

Dettagli

PVIS: Pilz VISualization

PVIS: Pilz VISualization PVIS: Pilz VISualization Diagnostica dei dispositivi per la sicurezza funzionale di un impianto Descrizione delle funzioni Caso applicativo: Vela prefabbricati Ing. Giovanni Sangiorgio Product Manager

Dettagli

Esempio di rete di calcolatori Esempi di applicazioni

Esempio di rete di calcolatori Esempi di applicazioni Reti di calcolatori Reti di calcolatori Prof.ssa Simonetta Balsamo Dipartimento di Informatica Università Ca Foscari di Venezia balsamo@dsi.unive.it http://www.dsi.unive.it/~reti Introduzione al corso

Dettagli

24 - Possibili approfondimenti

24 - Possibili approfondimenti 24 - Possibili approfondimenti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it

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

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 2 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Commutazione di Circuito Le reti telefoniche utilizzano la tecnica della commutazione di circuito. I commutatori

Dettagli

Laboratorio di Applicazioni Internet Anno Accademico 2005/2006

Laboratorio di Applicazioni Internet Anno Accademico 2005/2006 Laboratorio di Applicazioni Internet Anno Accademico 2005/2006 Tito Flagella (tito@link.it) Domenico Aquilino (d.aquilino@metaware.it) Dipartimento di Informatica Università di Pisa Orario Mercoledì, 9-11

Dettagli

LABORATORIO di Reti di Calcolatori

LABORATORIO di Reti di Calcolatori LABORATORIO di Reti di Calcolatori Architetture client-server 1 of 12 v slide della docente Bibliografia v testo di supporto: D. Maggiorini, Introduzione alla programmazione client-server, Pearson Ed.,

Dettagli

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1

Corso di Laurea Ingegneria Civile Fondamenti di Informatica. Dispensa 07. Oggetti e Java. Marzo Programmazione Java 1 Corso di Laurea Ingegneria Civile Fondamenti di Informatica Dispensa 07 Oggetti e Java Marzo 2010 Programmazione Java 1 Contenuti Il linguaggio Java Applicazioni Java e il metodo main Esempi di applicazioni

Dettagli

Definire un surrogato per un oggetto per controllare gli accessi ad esso.

Definire un surrogato per un oggetto per controllare gli accessi ad esso. Intento: Definire un surrogato per un oggetto per controllare gli accessi ad esso. Es: in un editor all'apertura di un documento bisogna ridurre i tempi di creazione di oggetti che contengono immagini.

Dettagli

Prof. Pagani corrado JAVA

Prof. Pagani corrado JAVA Prof. Pagani corrado JAVA NASCITA DI JAVA Java è stato creato, a partire da ricerche effettuate alla Stanford University agli inizi degli anni Novanta, da un gruppo di esperti sviluppatori capitanati da

Dettagli

Servizi REST. Fielding, R.T. Architectural Styles and the Design of Networkbased Software Architectures. PhD Thesis, 2000.

Servizi REST. Fielding, R.T. Architectural Styles and the Design of Networkbased Software Architectures. PhD Thesis, 2000. Luca Cabibbo Architettura dei Sistemi Software dispensa asw530 marzo 2017 The World Wide Web is arguably the world's largest distributed application. Understanding the key architectural principles underlying

Dettagli

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica - Programma Un programma è una formulazione

Dettagli