Comunicazione asincrona

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Comunicazione asincrona"

Transcript

1 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 Software Architecture (Volume 4): A Pattern Language for Distributed Computing. Wiley, Hohpe, G. and Woolf, B. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions. Addison- Wesley,

2 Obiettivi - Obiettivi e argomenti introdurre la comunicazione asincrona basata sullo scambio di messaggi e notifiche di eventi, in modo indiretto ed asincrono Argomenti introduzione alla comunicazione asincrona comunicazione asincrona semantica della comunicazione asincrona discussione 3 * Introduzione alla comunicazione asincrona La comunicazione asincrona rappresenta un altra modalità fondamentale di comunicazione nei sistemi distribuiti è una modalità di comunicazione complementare a quella sincrona offerta dall invocazione remota la comunicazione asincrona è un astrazione di programmazione distribuita basata sullo scambio di messaggi, che consente ad un componente di inviare un messaggio (contenente dei dati o la notifica di un evento), in modo indiretto ed asincrono, ad uno o più componenti, affinché questi possano elabora il messaggio questa modalità di comunicazione è offerta dal middleware orientato ai messaggi (message-oriented middleware) in pratica, esistono diverse forme specifiche di comunicazione asincrona in questa dispensa ci concentriamo soprattutto sulle idee di base comuni, ma discutiamo anche alcune differenze e varianti 4

3 Sulla comunicazione sincrona L invocazione remota è una forma di comunicazione sincrona un componente client invoca un metodo offerto da un server per uno specifico servizio (il server potrebbe essere selezionato staticamente o dinamicamente) quando il server ha completato l operazione richiesta, restituisce una risposta al client il client, nel frattempo, era rimasto in attesa del completamento dell operazione l invocazione remota fornisce una sincronizzazione tra client e server ad esempio, può essere usata per garantire che un gruppo di attività vengano eseguite secondo un ordine specificato (quando ciò è richiesto) 5 Sulla comunicazione sincrona Tuttavia, la comunicazione sincrona realizzata dall invocazione remota non è sempre necessaria oppure opportuna in alcuni casi, un componente vuole richiedere l elaborazione di alcuni dati ma non lo si vuole accoppiare ad uno specifico server o ad una specifica operazione o servizio in alcuni casi, un componente vuole richiedere un elaborazione ma non è interessato ad ottenere una risposta in modo sincrono, e talvolta non è nemmeno interessato ad ottenere una risposta dunque, in alcuni casi è desiderabile una modalità di interazione più flessibile di quella basata su invocazioni dirette e sincrone 6

4 Sulla comunicazione sincrona Inoltre, la comunicazione sincrona può avere conseguenze negative sulle qualità di un sistema può ridurre la concorrenza nello svolgimento delle attività limitando le prestazioni e la scalabilità il rallentamento di un componente server può rallentare i componenti client che ne richiedono i servizi il guasto o l indisponibilità di un componente server può propagarsi ai componenti client che ne richiedono i servizi per questo, chi realizza il client per un servizio si deve occupare (se serve) anche di gestire il caso dei rallentamenti o dei guasti del server 7 Verso la comunicazione asincrona La comunicazione asincrona è una modalità di interazione complementare a quella sincrona offre un ulteriore paradigma di programmazione distribuita per le situazioni in cui la comunicazione sincrona non è necessaria o non è opportuna per sostenere un accoppiamento più basso tra i componenti distribuiti e consentire interazioni più flessibili per sostenere qualità come prestazioni, scalabilità e disponibilità evitando le possibili conseguenze negative della comunicazione sincrona 8

5 * La comunicazione asincrona è un paradigma di comunicazione per componenti distribuiti, basato sullo scambio di messaggi, supportato da diversi servizi di middleware il cosiddetto message-oriented middleware nella comunicazione asincrona, i componenti distribuiti interagiscono inviandosi messaggi (oppure notifiche di eventi) in modo indiretto, con l ausilio di canali per messaggi in modo asincrono per questo, la comunicazione asincrona è anche chiamata messaging ( scambiarsi messaggi ) e comunicazione basata su messaggi e si parla anche di code di messaggi e di sistemi publish-subscribe 9 Sulla asincronia 10 Attenzione, non si confonda la comunicazione asincrona con l invocazione remota asincrona infatti, come vedremo tra breve, queste due modalità di comunicazione sono molto diverse tra loro nell invocazione remota asincrona, il client effettua un invocazione e poi continua (senza bloccarsi) tuttavia, al momento dell invocazione, il client ed il server devono entrambi esistere ed essere attivi nella comunicazione asincrona, viceversa, un componente può inviare un messaggio anche quando il componente che riceverà quel messaggio non è attivo o non è nemmeno stato creato inoltre il componente che riceve il messaggio potrebbe farlo quando il componente che ha inviato il messaggio non è più attivo o è stato distrutto dunque, la comunicazione asincrona consente anche la comunicazione tra componenti con un esistenza indipendente

6 Un analogia Ecco un analogia (riferita alle persone) che illustra la differenza tra comunicazione sincrona e comunicazione asincrona la comunicazione che avviene tra due persone in una telefonata è una forma di comunicazione sincrona entrambe le persone devono partecipare contemporaneamente alla telefonata la comunicazione che avviene tra due persone nello scambio di messaggi di posta elettronica, SMS, oppure su un social network è una forma di comunicazione asincrona le persone possono inviare e leggere i messaggi in momenti distinti 11 - di base La comunicazione asincrona viene ora presentata, in due momenti prima viene discusso il caso di una singola interazione nella comunicazione asincrona, relativo allo scambio di un solo messaggio tra una coppia di componenti per comprendere la modalità di interazione di base dopo di che, viene discusso il caso, più significativo ma più complesso, di un sistema distribuito basato sullo scambio di numerosi messaggi tra molti componenti 12

7 Produttori, messaggi e consumatori Nella comunicazione asincrona, ciascuna singola interazione ha lo scopo di consentire ad un componente ( produttore ) di trasmettere dei dati (un messaggio ) ad un altro componente ( consumatore ) un primo componente (nel ruolo di produttore) ha dei dati che vuole che vengano elaborati ma lui non può elaborarli direttamente i dati potrebbero essere dei dati strutturati, un documento, una richiesta per un servizio (un comando) o una risposta, oppure la notifica di un evento allora, il produttore prepara un messaggio contenente questi dati, e poi lo invia ad un altro componente, che è in grado di elaborare oppure è interessato a elaborare quei dati quindi, un secondo componente (nel ruolo di consumatore) riceve questo messaggio e poi ne estrae di dati e li elabora 13 La comunicazione è indiretta Tuttavia, il componente produttore non trasmette il messaggio direttamente ad uno specifico componente consumatore anzi, in generale il produttore non sa (e non è interessato a sapere) qual è il componente che riceve ed elabora il suo messaggio per questo, il produttore invia il messaggio ad un canale per messaggi specifico per il tipo di messaggi trasmesso ma senza specificare l identità del consumatore del messaggio quindi, un consumatore riceve il messaggio prelevandolo da quel canale per messaggi il consumatore viene scelto tra quelli registrati presso quel canale per messaggi ovvero, tra i componenti che sono in grado di elaborare quello specifico tipo di messaggi dunque, il canale per messaggi costituisce un indirezione spaziale nella comunicazione tra produttore e consumatore 14

8 La comunicazione è asincrona Inoltre, la comunicazione è asincrona, nel senso che l invio e la ricezione del messaggio non sono sincronizzate dopo che il produttore ha inviato il suo messaggio al canale per messaggi, prosegue nel suo lavoro il produttore non attende né che il messaggio sia stato ricevuto da un consumatore né che sia stato elaborato il consumatore del messaggio riceve ed elabora il messaggio appena è disponibile a farlo questo potrebbe avvenire subito dopo che il messaggio è stato inviato nel canale per messaggi ma anche più tardi inoltre, il consumatore in genere non comunica con il produttore del messaggio ricevuto né per notificargli la ricezione del messaggio né la sua elaborazione dunque, il canale per messaggi costituisce anche un indirezione temporale nella comunicazione tra produttore e consumatore 15 Un interazione di base nella comunicazione asincrona producer consumer 1: create 4: process 2: send 3: receive message channel data message 16

9 La comunicazione è indiretta La comunicazione è indiretta il produttore non invia il messaggio direttamente al consumatore del messaggio piuttosto, il produttore invia i suoi messaggi a un canale per messaggi intermedio il consumatore riceve i messaggi da questo canale producer consumer 1: create 4: process 2: send 3: receive 17 message channel La comunicazione è asincrona La comunicazione è asincrona il produttore comunica in una modalità send-and-forget dopo aver inviato il messaggio, prosegue il suo lavoro, e non attende che il consumatore abbia ricevuto o elaborato il suo messaggio il produttore può inviare un messaggio anche quando il consumatore non è ancora attivo o se non è stato nemmeno creato producer 1: create 2: send 18 message channel

10 La comunicazione è asincrona La comunicazione è asincrona il consumatore può ricevere un messaggio anche in un momento diverso da quando il messaggio è stato inviato il consumatore può ricevere un messaggio anche quando il produttore non è più attivo consumer 4: process 3: receive 19 message channel Invocazione implicita Quando un consumatore riceve un messaggio, di solito lo elabora eseguendo un operazione o un metodo opportuno l operazione da eseguire viene scelta dal consumatore del messaggio, sulla base del contenuto del messaggio l operazione da eseguire non viene scelta sulla base di una richiesta diretta da parte del produttore del messaggio (che di solito non sa nemmeno qual è l interfaccia procedurale del consumatore) per questo, si parla anche di invocazione implicita infatti, l invocazione dell operazione eseguita per elaborare il messaggio è, appunto, implicita 20

11 e accoppiamento La comunicazione asincrona è caratterizzata da un accoppiamento basso più basso che non nell invocazione remota l uso dei messaggi consente un disaccoppiamento rispetto all interfaccia (operazioni) i componenti devono essere d accordo sul formato dei messaggi l uso dei canali per messaggi consente un disaccoppiamento rispetto all identità dei componenti i componenti non devono conoscersi tra di loro ma devono essere d accordo sul canale su cui scambiare i messaggi l uso dei canali per messaggi consente anche un disaccoppiamento temporale i componenti possono comunicare anche avendo un esistenza indipendente 21 Su produttore e consumatore Si noti che i termini produttore e consumatore hanno significato nell ambito dello scambio di ciascun singolo messaggio il componente che invia il messaggio è il produttore del messaggio un componente che riceve il messaggio è un consumatore del messaggio Tuttavia, come discuteremo tra poco, ciascun componente può sia inviare che ricevere messaggi dunque, in genere non c è una distinzione netta tra produttori e consumatori piuttosto, lo scambio di messaggi è una modalità di comunicazione tra pari (peer) 22

12 - Sistemi e comunicazione asincrona Finora abbiamo discusso solo il caso di una singola interazione nella comunicazione asincrona un singolo messaggio scambiato tra una coppia di componenti tramite un canale per messaggi in generale, in un sistema distribuito basato sullo scambio asincrono di messaggi, vengono scambiati una molteplicità di messaggi, tra numerosi componenti (produttori e/o consumatori) e tramite molti canali per messaggi l invio iniziale di un messaggio trovato da parte di un componente dà infatti di solito luogo ad un interazione che comprende lo scambio di molti messaggi tra diversi componenti l architettura di un sistema basato sullo scambio di messaggi può essere organizzata in termini dello stile Pipes and Filters 23 Sistemi e comunicazione asincrona L invio iniziale di un messaggio trovato da parte di un componente può dare luogo ad un interazione che comprende lo scambio di molti messaggi tra diversi componenti 24

13 Sistemi e comunicazione asincrona L architettura di un sistema basato sullo scambio di messaggi può essere organizzata in termini dello stile Pipes and Filters ci possono essere diversi componenti ed ogni componente può essere sia produttore che consumatore di messaggi ciascun componente può agire da filtro ( processor ) ovvero, può ricevere e consumare dei messaggi, elaborarli, e poi produrre e inviare altri messaggi l elaborazione di un messaggio iniziale trovato viene distribuita tra i diversi componenti del sistema ed effettuata in modo incrementale 25 Sistemi e comunicazione asincrona L architettura di un sistema basato sullo scambio di messaggi può essere organizzata in termini dello stile Pipes and Filters possono venire scambiati molti messaggi questi messaggi costituiscono dei flussi di dati all interno del sistema in generale, ciascun messaggio appartiene ad una specifica tipologia di messaggi predefinita, che i componenti sono interessati a scambiarsi ad esempio, Ordini, Richieste di spedizione, Fatture e Pagamenti 26

14 Sistemi e comunicazione asincrona L architettura di un sistema basato sullo scambio di messaggi può essere organizzata in termini dello stile Pipes and Filters ci possono essere diversi canali per messaggi ciascun canale per messaggi è una pipe che rappresenta una specifica tipologia di messaggi ad esempio, un canale per gli Ordini ed uno per i Pagamenti dunque, a ciascuna diversa tipologia di messaggi corrisponde un canale distinto è un indirizzo logico, tale che un componente produttore che vuole che venga elaborato un messaggio di un certo tipo, lo invia al canale per quel tipo di messaggi un componente consumatore che è in grado di elaborare oppure è interessato a ricevere messaggi di un certo tipo, li riceve dal canale per quel tipo di messaggi 27 Sistemi e comunicazione asincrona L architettura di un sistema basato sullo scambio di messaggi può essere organizzata in termini dello stile Pipes and Filters inoltre, tornando a parlare di componenti ci possono molti componenti in grado di produrre e inviare messaggi di un certo tipo ci possono essere anche molti componenti in grado di ricevere e consumare messaggi di un certo tipo in entrambi i casi, quando si parla di molti componenti, si può trattare di istanze multiple di uno stesso tipo di componente ciascuna delle quali effettua una stessa elaborazione oppure, di istanze di tipi di componenti diversi ciascuna delle quali effettua un elaborazione distinta 28

15 * Semantica della comunicazione asincrona La semantica della comunicazione asincrona riguarda diversi aspetti associati all invio di un messaggio M da parte di un componente (produttore) tra cui quanti e quali componenti (consumatori) riceveranno il messaggio M? è possibile che il messaggio M venga perso? che cosa succede se il messaggio M viene perso? che cosa succede se si verifica un guasto nel componente a cui è stato assegnato il compito di elaborare il messaggio M? 29 - Implementazione La comunicazione asincrona basata sullo scambio di messaggi è fornita da diversi servizi di middleware chiamati di solito message broker sono possibili diverse implementazioni un caso comune è un message broker implementato come un server centralizzato per gestire i canali per messaggi e lo scambio dei messaggi i canali (con i loro nomi e le loro caratteristiche) devono essere definiti nel message broker prima di iniziare lo scambio dei messaggi questo è analogo alla definizione dello schema di una base di dati, che va fatta prima di potervi inserire dei dati poi, i componenti si scambiano messaggi, agendo come client nei confronti del message broker si noti che la comunicazione con il message broker è sincrona, anche se la comunicazione tra i componenti è invece asincrona 30

16 - Tipologie di canali per messaggi I diversi servizi di middleware per la comunicazione asincrona per lo scambio di messaggi offrono di solito due tipologie principali di canali per messaggi caratterizzate da una semantica differente point-to-point channel (canali punto-punto) chiamati anche queue (code) un messaggio inviato a un canale point-to-point sarà consumato da uno e un solo consumatore è dunque un canale per la comunicazione a-uno publish-subscribe channel (canali publish-subscribe) chiamati anche canali pub-sub oppure topic ( argomenti ) un messaggio inviato a un canale publish-subscribe può essere consumato da più consumatori, tutti quelli registrati presso il canale è un canale per la comunicazione a-molti 31 Canali e consumatori di messaggi In genere, per ciascun canale per messaggi sia nel caso di canale point-to-point che di canale publish-subscribe ci possono essere più componenti consumatori interessati a messaggi inviati a quel canale per ricevere i messaggi per un canale C, i consumatori interessati devono di solito registrarsi (ovvero, abbonarsi o sottoscrivere) al canale C dopo di che, quando viene inviato un messaggio M sul canale C, il servizio di middleware assegna il compito di consumare il messaggio M ad uno o più tra i consumatori registrati a C se C è un canale publish-subscribe, a tutti i consumatori registrati a C se C è un canale point-to-point, ad uno solo dei consumatori registrati a C questo consumatore viene in genere scelto dal servizio di middleware 32

17 Canale point-to-point Produttore m5 invia m4 m3 m2 consuma m1 Consumatore coda 33 Canale point-to-point: più produttori Produttore 1 m14 m13 m22 m12 consuma m21 m11 Consumatore Produttore 2 m23 coda invia 34

18 Canale point-to-point: più consumatori m1 m8 m5 Consumatore 1 Produttore invia m7 m6 coda m4 Consumatore 2 consuma m3 m2 In questo caso, ciascun messaggio viene consumato da un solo consumatore. 35 Canale point-to-point: più produttori e più consumatori m21 m11 Produttore 1 m15 Consumatore 1 m13 m14 m23 Produttore 2 m24 coda m22 Consumatore 2 invia consuma m12 Anche in questo caso, ciascun messaggio viene consumato da un solo consumatore. Messaggi di uno stesso produttore possono essere consumati da consumatori diversi. 36

19 Canali point-to-point: più canali (più tipi di messaggi) Produttore 1 m14 m21 m11 m23 m13 m22 m12 consuma Consumatore 1 Produttore 2 invia coda A M31 M25 M21 Consumatore 2 M24 M33 Produttore 3 invia coda B M23 consuma Consumatore 3 M32 M22 37 Canale point-to-point: componenti consumatori/produttori Componente 1 m14 coda A m13 m12 m11 consuma Componente 2 invia M23 M22 coda B M21 Componente 3 38

20 Canale publish-subscribe m3 m2 m1 m7 m4 Consumatore 1 Produttore invia m5 m6 pub-sub m4 consuma Consumatore 2 m3 m2 m1 In questo caso, i messaggi possono essere consumati da più consumatori. 39 Canali publish-subscribe m21 m12 m11 Produttore 1 m14 m22 Consumatore 1 invia m13 m23 consuma m21 m12 m11 Produttore 2 m24 pub-sub A M32 m22 Consumatore 2 M31 M21 M23 invia M22 consuma Produttore 3 M34 M33 pub-sub B M32 Consumatore 3 M31 M21 40

21 - Prestazioni e scalabilità La comunicazione asincrona è una modalità di comunicazione che abilita prestazioni e scalabilità infatti, i messaggi vengono in genere trasmessi appena possibile, con una latenza bassa e un throughput elevato ad esempio, alcuni servizi di middleware per messaggi (ottimizzati per le prestazioni e la scalabilità) consentono di gestire un numero di messaggi dell ordine del milione di messaggi al secondo (anche su piccoli cluster) inoltre, la possibilità di utilizzare più componenti consumatori per uno stesso tipo di messaggi favorisce prestazioni e scalabilità per la tattica Maintain multiple copies of computations 41 - Un esempio 42 Prima di andare avanti, è utile un esempio per descrivere un possibile scenario di applicazione della comunicazione asincrona consideriamo dei componenti che hanno dei dati che devono essere elaborati ad es., componenti che ricevono immagini da elaborare dagli utenti di un applicazione per ciascuno dei dati va eseguito un certo compito ad es., un ridimensionamento dell immagine il compito si può eseguire indipendentemente su ciascun dato ad es., separatamente per ciascuna immagine c è anche un componente in grado di svolgere questo compito il compito non va necessariamente svolto in modo sincrono, sulla base di un protocollo richiesta-risposta ciascun compito può produrre dei risultati, ma non necessariamente una risposta al componente che l ha richiesto

22 Un esempio In questo caso, potrebbe avere senso organizzare il sistema sulla base di componenti che comunicano in modo asincrono i componenti che hanno dati da elaborare agiscono da produttori di messaggi per ciascuno dei dati da elaborare, preparano un messaggio e lo inviano a un canale per messaggi ad es., un messaggio per ciascuna immagine da elaborare il componente che sa svolgere il compito agisce da consumatori di messaggi per ciascun messaggio ricevuto dal canale per messaggi, ne estrae il dato e lo elabora ad es., ridimensiona l immagine e la salva da qualche parte oppure invia l immagine ridimensionata come messaggio a un altro canale per messaggi 43 Un esempio Client 1 Ridimensiona immagini Client 2 immagini da ridimensionare immagini ridimensionate la comunicazione asincrona consente di gestire i compiti da svolgere in modo asincrono 44

23 Un esempio In questo caso, l uso di un canale point-to-point consente ai componenti produttori di inviare messaggi per chiedere l elaborazione dei loro dati anche quando attualmente non ci sono componenti consumatori pronti a svolgere il compito richiesto potrebbero essere attivati successivamente di avere più istanze di componenti consumatori in grado di svolgere il compito richiesto in modo da poter distribuire il carico dei compiti sulle diverse istanze presenti di poter aumentare dinamicamente il numero di istanze di componenti consumatori per svolgere il compito richiesto in caso di aumento del carico dei messaggi da elaborare e di poterlo diminuire quando il carico diminuisce sostenendo così la scalabilità nell esecuzione del compito 45 Un esempio Ridimensiona immagini Client 1 Ridimensiona immagini Client 2 immagini da ridimensionare Ridimensiona immagini immagini ridimensionate un canale point-to-point consente di distribuire il carico relativo ad un compito da svolgere tra più componenti consumatori che possono operare in modo indipendente sui messaggi individuali 46

24 Un esempio Invece, l uso di un canale publish-subscribe è utile quando per ciascun messaggio vanno svolti più compiti separati ad esempio, se ciascuna immagine va sia ridimensionata che convertita in bianco e nero (indipendentemente) in questo caso è possibile avere per ciascun diverso compito un componente (consumatore) differente, in grado di svolgere solo quel compito un canale publish-subscribe consente di distribuire una copia del messaggio a ciascuno dei consumatori ciascuno dei quali svolgerà il suo compito indipendentemente dagli altri consumatori inoltre, se sorgesse l esigenza di dover svolgere dei nuovi compiti per ciascuno dei messaggi, l uso di un canale publishsubscribe consente di aggiungere dinamicamente nuovi componenti in grado di svolgere i compiti aggiuntivi senza ripercussioni né sui produttori né sugli altri consumatori 47 Un esempio Ridimensiona immagini Client 1 immagini ridimensionate Client 2 immagini da elaborare Converte immagini in B/N immagini in bianco e nero un canale publish-subscribe consente di distribuire il carico relativo a più compiti da svolgere tra più componenti consumatori, ciascuno dei quali è in grado di svolgere in modo indipendente un compito differente 48

25 Un esempio Ridimensiona immagini Client 1 immagini ridimensionate Client 2 immagini da elaborare Converte immagini in B/N immagini in bianco e nero Riconosci volti volti riconosciuti un canale publish-subscribe consente di aggiungere dinamicamente nuovi componenti per svolgere dei compiti aggiuntivi 49 Discussione Questo esempio consente di comprendere il supporto fornito dalla comunicazione asincrona a diverse qualità la modificabilità in virtù dell accoppiamento basso tra componenti prestazioni e scalabilità anche grazie alla possibilità di replicare componenti 50

26 - Aspetti temporali La semantica della comunicazione asincrona può prevedere delle varianti, in relazione ad aspetti temporali, nonché alla modalità di memorizzazione dei messaggi nel message broker in genere, un messaggio inviato ad un canale point-to-point viene conservato nel message broker fino a quando non è stato consegnato ad un componente consumatore registrato a quel canale dopo di che, il messaggio viene cancellato dunque, un messaggio viene mantenuto in un canale pointto-point anche se, quando è stato inviato, non c è nessun consumatore registrato a quel canale tuttavia, è anche possibile assegnare ad un messaggio una durata o scadenza dopo di che, quando il messaggio scade, viene cancellato, anche se non è stato consegnato a nessun consumatore 51 Aspetti temporali La semantica della comunicazione asincrona può prevedere delle varianti, in relazione ad aspetti temporali, nonché alla modalità di memorizzazione dei messaggi nel message broker invece, un messaggio inviato ad un canale publish-subscribe viene consegnato a tutti i consumatori attualmente registrati presso quel canale dopo di che, di solito il messaggio viene cancellato un consumatore registrato presso un canale publishsubscribe riceve solo i messaggi inviati a quel canale durante il periodo della sua registrazione se un messaggio viene inviato ad un canale publishsubscribe quando presso quel canale non è registrato nessun consumatore, allora il messaggio viene cancellato anche senza che sia stato consegnato a nessun consumatore 52

27 Aspetti temporali La semantica della comunicazione asincrona può prevedere delle varianti, in relazione ad aspetti temporali, nonché alla modalità di memorizzazione dei messaggi nel message broker tuttavia, è anche possibile che un canale publish-subscribe sia persistente oppure che le registrazioni al canale siano durature nel caso di un canale publish-subscribe persistente, tutti i consumatori registrati presso il canale possono ricevere tutti i messaggi inviati a quel canale nel caso di registrazioni durature ad un canale publishsubscribe, un consumatore può ricevere tutti i messaggi inviati a quel canale durante il periodo della sua registrazione anche se il consumatore si disconnette temporaneamente dal canale (in questo caso, registrazione e connessione sono nozioni distinte) 53 Discussione La memorizzazione dei messaggi nel message broker richiede risorse la gestione delle scadenze, dei canali persistenti e delle registrazioni durature richiede una quantità di risorse ancora maggiore in generale, la modalità di memorizzazione dei messaggi va configurata in modo dipendente anche dal contesto applicativo 54

28 - Affidabilità Un message broker può offrire diverse opzioni di consegna dei messaggi a cui corrispondono livelli differenti di affidabilità consegna non persistente (di tipo best effort) i messaggi inviati al message broker possono perdersi ad esempio, se il message broker fallisce oppure viene riavviato consegna persistente il message broker registra in memoria secondaria i messaggi che gli vengono inviati, che pertanto non possono perdersi nemmeno se il message broker fallisce oppure viene riavviato 55 Affidabilità Un message broker può offrire diverse opzioni di consegna dei messaggi a cui corrispondono livelli differenti di affidabilità acknowledgment il message broker considera un messaggio consumato con successo quando il consumatore a cui viene assegnato il messaggio conferma la ricezione del messaggio tuttavia, un messaggio potrebbe non venire elaborato se fallisce il consumatore a cui è stato assegnato consegna transazionale il message broker considera un messaggio consumato con successo quando il consumatore a cui viene assegnato il messaggio conferma l elaborazione del messaggio se il consumatore a cui è stato assegnato un messaggio fallisce, allora il message broker assegna il messaggio ad un altro consumatore 56

29 Affidabilità Un message broker può offrire diverse opzioni di consegna dei messaggi a cui corrispondono livelli differenti di affidabilità transazioni un componente può specificare una transazione per eseguire in modo atomico la ricezione e/o l invio di uno o più messaggi se la transazione fallisce, il message broker assegna i messaggi ad altri consumatori attenzione, ciascuna transazione individuale può riguardare solo attività svolte da un singolo componente ma non può includere, ad esempio, l invio di un messaggio da parte di un componente e la sua ricezione ed elaborazione da parte di un altro componente queste attività devono appartenere a transazioni distinte le transazioni possono includere anche compiti più ampi ad es., l accesso a una base di dati 57 Discussione Le diverse opzioni per l affidabilità richiedono risorse sul message broker via via maggiori l aumento dell affidabilità va di solito a scapito delle prestazioni e della scalabilità in generale, il livello di affidabilità va configurato in modo dipendente anche dal contesto applicativo 58

30 e affidabilità Dunque, la comunicazione asincrona è una modalità di comunicazione che abilita anche l affidabilità come abbiamo appena visto, la consegna dei messaggi può essere configurata con riferimento a diversi livelli di affidabilità inoltre, l affidabilità è sostenuta anche dalla possibilità di utilizzare repliche ridondanti dei componenti consumatori 59 - Modalità di consumo dei messaggi La ricezione di un messaggio da parte di un consumatore può avvenire secondo due modalità principali polling il consumatore, quando è disponibile, chiede al message broker un messaggio (se c è) da un certo canale, per poterlo elaborare subscription il consumatore si registra presso il message broker per ricevere messaggi inviati su un certo canale quando viene inviato un messaggio su un canale, il message broker lo assegna a dei consumatori registrati a quel canale scelti usando un algoritmo opportuno invocando un operazione del consumatore 60

31 - Altre varianti In pratica, i diversi servizi di middleware orientati ai messaggi esistenti offrono anche delle ulteriori varianti rispetto al modello descritto in questa dispensa a titolo di esempio, uno dei servizi di middleware per i messaggi prevede una sola tipologia di canale per messaggi ma poi introduce una nozione aggiuntiva di gruppo di componenti, tale che un messaggio inviato ad un canale viene consegnato solo ad un componente per ciascun gruppo se tutti i consumatori per un canale appartengono ad uno stesso gruppo, allora il canale ha una semantica di tipo point-to-point se ogni consumatore per un canale appartiene ad un gruppo distinto, il canale ha una semantica di tipo publish-subscribe ma sono possibili anche semantiche personalizzate, se i consumatori per un canale sono suddivisi in più gruppi 61 * Discussione La comunicazione asincrona è un astrazione di programmazione distribuita basata sullo scambio di messaggi consente ad un componente di inviare un messaggio (contenente dei dati o la notifica di un evento), in modo indiretto ed asincrono, ad uno o più componenti, affinché questi possano elabora il messaggio è una modalità di comunicazione complementare all invocazione remota sostiene qualità come modificabilità (accoppiamento basso e maggior flessibilità nella comunicazione), prestazioni, scalabilità ed affidabilità come discuteremo in una successiva dispensa, questo stile di comunicazione è rappresentato dai pattern architetturali POSA Messaging e Publisher-Subscriber 62

32 Quando usare la comunicazione asincrona? Quando preferire la comunicazione asincrona all invocazione remota? se i componenti di un applicazione possono non essere tutti attivi contemporaneamente se i componenti possono essere progettati in modo tale da inviare informazioni ad altri componenti continuando a lavorare anche senza ricevere una risposta immediata se i componenti devono/possono essere progettati in modo da ignorare le interfacce degli altri componenti, basando la comunicazione solo sul formato dei messaggi scambiati come caso estremo, se i componenti che devono comunicare sono stati sviluppati indipendentemente l uno dall altro (integrazione di applicazioni) questo è un aspetto metodologico importante, che riprenderemo in successive dispense 63

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

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

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

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

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

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

(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

SISTEMI DI ELABORAZIONE

SISTEMI DI ELABORAZIONE SISTEMI DI ELABORAZIONE CORSO DI LAUREA MAGISTRALE IN INGEGNERIA ELETTRONICA SPECIFICHE DI PROGETTO A.A. 2011/2012 Il progetto consiste nello sviluppo di un applicazione client/server. Client e server

Dettagli

Interazione tra Processi. Sistemi Operativi T AA

Interazione tra Processi. Sistemi Operativi T AA Interazione tra Processi Sistemi Operativi T AA 2012-13 1 Classificazione: Processi interagenti processi interagenti/indipendenti: due processi sono interagenti se l esecuzione di un processo è in alcun

Dettagli

Le reti rete La telematica telematica tele matica Aspetti evolutivi delle reti Modello con mainframe terminali Definizione di rete di computer rete

Le reti rete La telematica telematica tele matica Aspetti evolutivi delle reti Modello con mainframe terminali Definizione di rete di computer rete Reti e comunicazione Le reti Con il termine rete si fa riferimento, in generale ai servizi che si ottengono dall integrazione tra tecnologie delle telecomunicazioni e le tecnologie dell informatica. La

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

Laboratorio di Programmazione di Rete Laurea Triennale in Informatica Applicata Progetto di fine Corso - A.A. 08/09

Laboratorio di Programmazione di Rete Laurea Triennale in Informatica Applicata Progetto di fine Corso - A.A. 08/09 Laboratorio di Programmazione di Rete Laurea Triennale in Informatica Applicata Progetto di fine Corso - A.A. 08/09 SRM: Un Sistema Tollerante ai Guasti per la Gestione di Risorse Condivise in Una Rete

Dettagli

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Hardware, software e periferiche Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Riepilogo - Concetti di base dell informatica L'informatica è quel settore scientifico disciplinare

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

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

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

ARCHITETTURA DI UN DBMS

ARCHITETTURA DI UN DBMS ARCHITETTURA DI UN DBMS Modelli di dati Un approccio con basi di dati fornisce un certo livello di astrazione dei dati Nasconde i dettagli sulla memorizzazione dei dati stessi Un modello dei dati fornisce

Dettagli

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione I semestre 03/04 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 2

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

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

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

ISO- OSI e architetture Client-Server

ISO- OSI e architetture Client-Server LEZIONE 9 ISO- OSI e architetture Client-Server Proff. Giorgio Valle Raffaella Folgieri giorgio.valle@unimi.it folgieri@dico.unimi.it Lez 10 modello ISO-OSI e architettura client-server 1 Nelle scorse

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto type messaggio = record origine:. ; destinazione:. ;

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

Il Modello a scambio di messaggi

Il Modello a scambio di messaggi Il Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto typedef struct{ origine; destinazione; contenuto;

Dettagli

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI

CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI CONCETTI E ARCHITETTURA DI UN SISTEMA DI BASI DI DATI Introduzione alle basi di dati (2) 2 Modelli dei dati, schemi e istanze (1) Nell approccio con basi di dati è fondamentale avere un certo livello di

Dettagli

In attuazione al Decreto del Presidente del Consiglio dei Ministri del 6 maggio 2009, è stato attivato

In attuazione al Decreto del Presidente del Consiglio dei Ministri del 6 maggio 2009, è stato attivato In attuazione al Decreto del Presidente del Consiglio dei Ministri del 6 maggio 2009, è stato attivato Po stacertificat@, un servizio gratuito che consente ai cittadini di dialogare con le Pubbliche Amministrazioni.

Dettagli

Interazione tra Processi. Sistemi Operativi T AA

Interazione tra Processi. Sistemi Operativi T AA Interazione tra Processi Sistemi Operativi T AA 2009-2010 1 Classificazione: Processi interagenti processi interagenti/indipendenti: due processi sono interagenti se l esecuzione di un processo è in alcun

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

Infrastruttura per la Cooperazione Applicativa

Infrastruttura per la Cooperazione Applicativa Infrastruttura per la Cooperazione Applicativa - C.A.R.T. Linee guida per lo sviluppo di interfacce tra il Sistema Informativo Locale e il Nodo Applicativo Locale Ver. 1.2 Linee guida per lo sviluppo di

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

Protocolli multimediali

Protocolli multimediali Protocolli multimediali RTP, RTCP, RTSP Ormai molte applicazioni scambiano informazioni in cui le relazioni temporali sono molto importanti. La Telefonia via Internet, Videoconferenza, Lezioni a distanza,

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

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

Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION

Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION 1 Avete capito fino in fondo il concetto di nodo fine flusso? Che differenza c e tra fine flusso e fine attività? MODEL DIFFERENCES AND EVOLUTION 2 Rivediamo questo esempio di activity diagram Università

Dettagli

Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola Sicurezza e Permission in Android

Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola Sicurezza e Permission in Android Tesina esame Programmazione di Sistemi Mobile realizzata da Roberto Giuliani matricola 633688 Sicurezza e Permission in Android La sicurezza al giorno d oggi è uno degli aspetti più importanti dell informatica!

Dettagli

SISTEMI INFORMATIVI E DATABASE

SISTEMI INFORMATIVI E DATABASE SISTEMI INFORMATIVI E DATABASE SISTEMA INFORMATIVO AZIENDALE (S.I.) In una realtà aziendale si distingue: DATO elemento di conoscenza privo di qualsiasi elaborazione; insieme di simboli e caratteri. (274,

Dettagli

Chiamata di procedura remota

Chiamata di procedura remota Con gli strumenti gia` visti, si puo` realizzare come segue: lato chiamante: send asincrona immediatamente seguita da una receive lato chiamato: una receive seguita, al termine dell azione richiesta, da

Dettagli

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica Il calcolatore È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica ogni livello di descrizione è caratterizzato da una struttura rappresentante l organizzazione

Dettagli

Modelli di interazione tra processi

Modelli di interazione tra processi Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema

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

DATEV KOINOS Azienda Cloud. Guida introduttiva

DATEV KOINOS Azienda Cloud. Guida introduttiva DATEV KOINOS Azienda Cloud Guida introduttiva INDICE 1. Accesso al servizio pag. 3 2. Profilo utente pag. 4 3. Prima attivazione pag. 5 4. Accesso alle applicazioni pag. 5 5. Upload dei file da disco locale

Dettagli

Modelli di interazione tra processi

Modelli di interazione tra processi Modelli di interazione tra processi Modelli di interazione Modello a memoria comune (ambiente globale) Modello a scambio di messaggi (ambiente locale, message passing) Modello a memoria comune Il sistema

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Classi e Oggetti: Metafora Parte a versione 2.2 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Portale di gestione Version 7.5

Portale di gestione Version 7.5 Portale di gestione Version 7.5 MANUALE DELL AMMINISTRATORE Revisione: 29/08/2017 Sommario 1 Informazioni sul documento...3 2 Informazioni sul portale di gestione...3 2.1 Account e unità... 3 2.2 Browser

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

Descrivono la collaborazione di un gruppo di oggetti per implementare collettivamente un comportamento

Descrivono la collaborazione di un gruppo di oggetti per implementare collettivamente un comportamento Diagrammi di interazione Diagrammi di sequenza Diagrammi di comunicazione (ex collaborazione) Diagrammi di interazione generale Diagrammi di temporizzazione Descrivono la collaborazione di un gruppo di

Dettagli

Configurazione di riferimento di IP Office Server Edition IP Office 8.1

Configurazione di riferimento di IP Office Server Edition IP Office 8.1 Configurazione di riferimento di IP Office Server Edition IP Office 8.1 15-604135 Dicembre 2012 Sommario Capitolo 1: Introduzione... 5 Scopo del documento... 5 Destinatari... 5 Documenti correlati...

Dettagli

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un

Dettagli

Connessione alla rete WiFi della Casa di Cura S. Giorgio

Connessione alla rete WiFi della Casa di Cura S. Giorgio Pagina 1 di 7 Questo documento spiega come attivare la connessione WiFi messa a disposizione dalla Casa di Cura S. Giorgio per gli Ospiti ed i Degenti. La procedura, anche se descritta solo per il cellulare,

Dettagli

LabVIEW. Introduzione. Laboratory Virtual Instrument Engineering Workbench. Esempio di pannello frontale. Misure Elettroniche 1

LabVIEW. Introduzione. Laboratory Virtual Instrument Engineering Workbench. Esempio di pannello frontale. Misure Elettroniche 1 LabVIEW Laboratory Virtual Instrument Engineering Workbench h In molte applicazioni di test e misura è importante poter controllare la strumentazione per mezzo di un calcolatore. L applicativo software

Dettagli

Manuale d uso della Posta TBS. Oracle Collaboration Suite

Manuale d uso della Posta TBS. Oracle Collaboration Suite Manuale d uso della Posta TBS. Oracle Collaboration Suite Indice 1 Introduzione...3 2 Prerequisiti:...3 3 Accesso WEB...3 3.1 Come cambiare la propria password...8 4 Quota spazio su disco del mail server...9

Dettagli

Lezione 3 Sistemi Operativi e misure di performance. Parleremo di

Lezione 3 Sistemi Operativi e misure di performance. Parleremo di Lezione 3 Sistemi Operativi e misure di performance Parleremo di Ambienti di Elaborazione e Natura della computazione Classi di Sistemi Operativi Efficienza, Performance del Sistema, e Servizi Utente Sistemi

Dettagli

la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK.

la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK. 1. Considerare il problema della stima del Round Trip Time. Supporre che inizialmente RTT valga 200 ms. Il mittente invia un segmento e riceve l ACK relativo dopo 100 ms, quindi invia un altro segmento,

Dettagli

Il Sistema Operativo

Il Sistema Operativo Il Sistema Operativo Il sistema operativo Con il termine sistema operativo si intende l insieme di programmi e librerie che opera direttamente sulla macchina fisica mascherandone le caratteristiche specifiche

Dettagli

SISTEMA TESSERA SANITARIA 730 SPESE SANITARIE

SISTEMA TESSERA SANITARIA 730 SPESE SANITARIE SISTEMA TESSERA SANITARIA 730 SPESE SANITARIE ISTRUZIONI OPERATIVE PER GLI ESERCIZI COMMERCIALI CHE SVOLGONO L ATTIVITÀ DI DISTRIBUZIONE AL PUBBLICO DI FARMACI AI QUALI È STATO ASSEGNATO DAL MINISTERO

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

Linguaggi di Programmazione

Linguaggi di Programmazione Linguaggi di Programmazione Linguaggi di Programmazione Programmazione. Insieme delle attività e tecniche svolte per creare un programma (codice sorgente) da far eseguire ad un computer. Che lingua comprende

Dettagli

Guida rapida. Indice: Creare un progetto Gestire e modificare un progetto Visualizzare i risultati di un progetto o una valutazione

Guida rapida. Indice: Creare un progetto Gestire e modificare un progetto Visualizzare i risultati di un progetto o una valutazione Guida rapida Indice: Creare un progetto Gestire e modificare un progetto Visualizzare i risultati di un progetto o una valutazione Questo documento è studiato per aiutarti ad amministrare rapidamente le

Dettagli

SISTEMA TESSERA SANITARIA 730 SPESE SANITARIE

SISTEMA TESSERA SANITARIA 730 SPESE SANITARIE SISTEMA TESSERA SANITARIA 730 SPESE SANITARIE ISTRUZIONI OPERATIVE PER GLI ESERCENTI L ARTE SANITARIA AUSILIARIA DI OTTICO CHE ABBIANO EFFETTUATO LA COMUNICAZIONE AL MINISTERO DELLA SALUTE DI CUI AGLI

Dettagli

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica

Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Corso di Laurea Ingegneria Informatica Fondamenti di Informatica Dispensa 04 Programmi e Oggetti Software Alfonso Miola Ottobre 2012 http://www.dia.uniroma3.it/~java/fondinf/ Programmi e Oggetti Software

Dettagli

Guida introduttiva: Gestisci utenti e visibilità partner

Guida introduttiva: Gestisci utenti e visibilità partner Guida per il cliente Novembre 2016 La presente guida mostra come utilizzare il Microsoft Business Center per cercare un utente, invitare nuovi utenti e assegnare o rimuovere ruoli per gestire le autorizzazioni

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

Regole e modalità di utilizzo della PEC e della PEO istituzionale

Regole e modalità di utilizzo della PEC e della PEO istituzionale ALLEGATO 2 al Manuale per la Gestione del Protocollo informatico, dei Flussi documentali e degli Archivi Regole e modalità di utilizzo della PEC e della PEO istituzionale 3 All. 2 Regole e modalità di

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

CdLM Informatica (DM 270/2004) Sistemi Distribuiti. Publish Subscribe. Angelastro Sergio Diomede Antonio Viterbo Tommaso

CdLM Informatica (DM 270/2004) Sistemi Distribuiti. Publish Subscribe. Angelastro Sergio Diomede Antonio Viterbo Tommaso CdLM Informatica (DM 270/2004) Sistemi Distribuiti Publish Subscribe Angelastro Sergio Diomede Antonio Viterbo Tommaso Outline Messaging System Messaging Benefits Synchronous and Asynchronous Call Semantics

Dettagli

Linguaggi, Traduttori e le Basi della Programmazione

Linguaggi, Traduttori e le Basi della Programmazione Corso di Laurea in Ingegneria Civile Politecnico di Bari Sede di Foggia Fondamenti di Informatica Anno Accademico 2011/2012 docente: Prof. Ing. Michele Salvemini Sommario Il Linguaggio I Linguaggi di Linguaggi

Dettagli

Modelli di interazione tra processi

Modelli di interazione tra processi Modelli di interazione tra processi Modello a memoria comune (ambiente globale, global environment) Modello a scambio di messaggi (ambiente locale, message passing) 1 Modello a memoria comune Il sistema

Dettagli

Calcolo parallelo. Una sola CPU (o un solo core), per quanto potenti, non sono sufficienti o richiederebbero tempi lunghissimi

Calcolo parallelo. Una sola CPU (o un solo core), per quanto potenti, non sono sufficienti o richiederebbero tempi lunghissimi Calcolo parallelo Ci sono problemi di fisica, come le previsioni meteorologiche o alcune applicazioni grafiche, che richiedono un enorme potenza di calcolo Una sola CPU (o un solo core), per quanto potenti,

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

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria

Dettagli

Xerox FreeFlow Print Server V 9.0 SP3

Xerox FreeFlow Print Server V 9.0 SP3 FreeFlow Print Server V9 SP3 Novembre 2012 708P90226 Xerox FreeFlow Print Server V 9.0 SP3 Pacchetto di benvenuto per i sistemi Xerox Color 550/560, Xerox 700 e 770 Digital Color e Xerox J75 e C75 Digital

Dettagli

Lezione 15. L elaboratore Elettronico

Lezione 15. L elaboratore Elettronico Lezione 15 Architettura di un calcolatore L elaboratore Elettronico Un elaboratore elettronico è una macchina elettronica in grado di elaborare dati secondo le specifiche fornite da un algoritmo Internamente

Dettagli

Elementi di Reti per Telecomunicazioni

Elementi di Reti per Telecomunicazioni Elementi di Reti per Telecomunicazioni (Parte I) Corso di Telecomunicazioni Anno Accademico 2004/2005 Contenuti Introduzione ai sistemi di TLC. Definizione e struttura dei modelli funzionali in reti di

Dettagli

EXTERNALAPI CLOUDLIFT. copia n Controllata non controllata Distribuita a: in forma data Firma. 00 X CLIENTI Elettronica 05/06/2017

EXTERNALAPI CLOUDLIFT. copia n Controllata non controllata Distribuita a: in forma data Firma. 00 X CLIENTI Elettronica 05/06/2017 EXTERNAL CLOUDLIFT 1 di 6 IDENTIFICAZIONE: CODICE REVISIONE DATA PERCORSO FILE i.d. 00 www.cloudlift.it Norma di Riferimento UNI EN ISO 9:2015 Paragrafo riferimento 8.2.2 DISTRIBUZIONE: copia n Controllata

Dettagli

Traccia delle soluzioni. Si consideri il seguente enunciato: Spett Ditta,

Traccia delle soluzioni. Si consideri il seguente enunciato: Spett Ditta, Corso di Ingegneria del software Primo appello 8 gennaio 2008 V. Ambriola, L. Semini Dipartimento di Informatica, Università di Pisa a.a. 2007/08 La prova si svolge a libri chiusi (non è permessa la consultazione

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

Direzione Didattica e Servizi agli Studenti. Centro Linguistico e Risorse Digitali per la Didattica DIDATTICA ONLINE IL FORUM

Direzione Didattica e Servizi agli Studenti. Centro Linguistico e Risorse Digitali per la Didattica DIDATTICA ONLINE IL FORUM IL FORUM 1. Impostazioni generali Il forum è un ambiente per la comunicazione asincrona, permette cioè ai partecipanti di inviarsi messaggi in uno spazio condiviso senza necessariamente essere online nello

Dettagli

Industria 4.0 da conoscere da vicino: Web-IO 4.0 digitale con MQTT

Industria 4.0 da conoscere da vicino: Web-IO 4.0 digitale con MQTT Comunicato stampa ottobre 2016 Industria 4.0 da conoscere da vicino: Web-IO 4.0 digitale con MQTT La nuova generazione dei teleruttori basati sulla rete di Wiesemann & Theis supporta protocolli di comunicazione

Dettagli

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Modelli di programmazione parallela

Modelli di programmazione parallela Modelli di programmazione parallela Oggi sono comunemente utilizzati diversi modelli di programmazione parallela: Shared Memory Multi Thread Message Passing Data Parallel Tali modelli non sono specifici

Dettagli

Codice partner: Profilo di segnalazione: All attenzione del legale rappresentante

Codice partner: Profilo di segnalazione: All attenzione del legale rappresentante Rifer. a nota n. del Classificazione Oggetto Codice partner: Profilo di segnalazione: All attenzione del legale rappresentante La Banca d Italia, in attuazione del Decreto Legislativo del 19 novembre 2008,

Dettagli

17. Indirizzamento Multicast (IGMP)

17. Indirizzamento Multicast (IGMP) 17. Indirizzamento Multicast (IGMP) 17.1. Introduzione Dopo aver esaminato il trattamento delle tre classi di indirizzi A, B e C, descriviamo ora una quarta classe che permette la consegna efficiente di

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

APPUNTI PER IL CORSO DI ALFABETIZZAZIONE INFORMATICA

APPUNTI PER IL CORSO DI ALFABETIZZAZIONE INFORMATICA Università degli Studi di Udine CENTRO SERVIZI INFORMATICI E TELEMATICI Via delle Scienze, 208-33100 UDINE (Italy) Tel. +39-0432-558900 Fax +39-432-558911 CF 80014550307 P. IVA 01071600306 Internet E-mail:

Dettagli

Programmazione in Rete

Programmazione in Rete Programmazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12 Sommario della

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 Esercitazione 4 (proposta) Server Multiservizio: Socket C con select Luca Foschini Anno accademico 2010/2011 Esercitazione

Dettagli

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. I SISTEMI OPERATIVI Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. Le funzioni di un S.O. non sono definibili in modo esaustivo e puntuale così come non

Dettagli

LA GESTIONE DELLA I/O

LA GESTIONE DELLA I/O LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono

Dettagli

Componenti principali

Componenti principali Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria

Dettagli

Panoramica Introduttiva su Inter-Process Communication (IPC)

Panoramica Introduttiva su Inter-Process Communication (IPC) Panoramica Introduttiva su Inter-Process Communication (IPC) Inter-Process Communication: panoramica (1) Dei processi si dicono cooperanti se si influenzano l'un con l'altro. Per potersi influenzare dei

Dettagli

POSTALIZZAZIONE Manuale d'uso del modulo di postalizzazione di RipartoIG

POSTALIZZAZIONE Manuale d'uso del modulo di postalizzazione di RipartoIG POSTALIZZAZIONE Manuale d'uso del modulo di postalizzazione di RipartoIG Ultimo Aggiornamento: 15 Aprile 2016 Ultima versione disponibile al link: http://www.inve.it/external/manuale Postalizzazione RipartoIG

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

Introduzione al funzionamento di un calcolatore elettronico

Introduzione al funzionamento di un calcolatore elettronico 1 / 21 Introduzione al funzionamento di un calcolatore elettronico Natascia Piroso 23 settembre 2009 2 / 21 Sommario Che cos è un calcolatore? 1 Che cos è un calcolatore? Definizioni preliminari Il calcolatore

Dettagli

Mon Ami 3000 MACommerce La soluzione per il commercio elettronico totalmente integrata con Mon Ami 3000

Mon Ami 3000 MACommerce La soluzione per il commercio elettronico totalmente integrata con Mon Ami 3000 Mon Ami 000 MACommerce La soluzione per il commercio elettronico totalmente integrata con Mon Ami 000 Prerequisiti La soluzione MACommerce si integra totalmente con le versioni Azienda Light e Azienda

Dettagli

Sistemi Distribuiti. Informatica B. Informatica B

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

Dettagli

INFORMATIVA SUL TRATTAMENTO DEI DATI PERSONALI

INFORMATIVA SUL TRATTAMENTO DEI DATI PERSONALI INFORMATIVA SUL TRATTAMENTO DEI DATI PERSONALI In ottemperanza alle disposizioni di cui al Decreto Legislativo n. 196 del 30 giugno 2003 e sue successive modifiche (il Codice della Privacy ), con la presente

Dettagli

Guida introduttiva: Uso dei voucher per la formazione

Guida introduttiva: Uso dei voucher per la formazione Guida per il cliente La presente guida mostra come visualizzare, scoprire e utilizzare i vantaggi del Voucher per la formazione oltre ad altri vantaggi Software Assurance e vantaggi che si possono ottenere

Dettagli

SISTEMA TESSERA SANITARIA 730 SPESE SANITARIE

SISTEMA TESSERA SANITARIA 730 SPESE SANITARIE SISTEMA TESSERA SANITARIA 730 SPESE SANITARIE ISTRUZIONI OPERATIVE PER GLI ISCRITTI AGLI ALBI PROFESSIONALI DEGLI PSICOLOGI, INFERMIERI, DELLE OSTETRICHE ED OSTETRICI, DEI TECNICI SANITARI DI RADIOLOGIA

Dettagli

Panoramica di Document Portal

Panoramica di Document Portal Per visualizzare o scaricare questa o altre pubblicazioni Lexmark Document Solutions, fare clic qui. Panoramica di Document Portal Lexmark Document Portal è una soluzione software che offre funzioni di

Dettagli