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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 Luca Cabibbo Architettura dei Sistemi Software dispensa asw430 marzo 2018 The core idea od RPC is to hide the complexity of a remote call. Many implementations of RPC, though, hide too much. Sam Newman 1 - Fonti Coulouris, G., Dollimore, J., Kindberg, T., and Blair, G. Distributed Systems: Concepts and Design, fifth edition. Pearson, Chapter 5, Remote Invocation Tanenbaum, A.S. and Van Steen, M. Distributed Systems: Principles and Paradigms, second edition. Pearson, Chapter 4, Communication 2

2 Obiettivi - Obiettivi e argomenti introdurre l invocazione remota e la sua implementazione discutere la semantica dell invocazione remota che differisce in diversi modi dalla semantica dell invocazione locale Argomenti invocazione remota semantica dell invocazione remota discussione 3 * 4 L invocazione remota è una delle principali astrazioni di programmazione distribuita implementate dal middleware supporta interazioni di tipo client-server tra una coppia di componenti consente ad un componente (nel ruolo di client) di chiamare/invocare un operazione di un componente remoto (nel ruolo di server), affinché il componente remoto esegua l operazione richiesta si tratta di un astrazione remota (distribuita) dell invocazione di operazioni locali, che è presente in tutti i linguaggi di programmazione imperativi attenzione: anche se un invocazione remota può essere scritta nel codice in modo simile ad un invocazione locale, ci sono però delle importanti differenze tra invocazione locale e invocazione remota (che verranno discusse in questa dispensa)

3 L invocazione remota è una delle principali astrazioni di programmazione distribuita implementate dal middleware questo paradigma di programmazione è implementato da molte soluzioni di middleware ad esempio la chiamata di procedure remote (RPC) l invocazione di metodi remoti (RMI) nelle tecnologie a componenti nelle tecnologie a servizi ad es., SOAP e REST questa dispensa discute alcuni aspetti fondamentali dell invocazione remota, facendo riferimento soprattutto alla chiamata di procedure remote (RPC) e, in misura minore, all invocazione di metodi remoti (RMI) tuttavia, quanto viene descritto vale anche per altre implementazioni tecnologiche dell invocazione remota 5 Chiamata di procedure remote (RPC) La chiamata di procedure remote (RPC, Remote Procedure Call) è un astrazione di programmazione distribuita fondamentale è una delle prime soluzioni di middleware realizzate un evoluzione di questa astrazione è comunque disponibile anche nelle soluzioni di middleware più moderne consente ad un componente di chiamare (ovvero, di invocare) una procedura (ovvero, un operazione) di un componente remoto, affinché il componente remoto esegua l operazione richiesta si tratta dunque di una modalità di comunicazione orientata alle azioni, ovvero all invocazione di operazioni remote le operazioni remote possono avere dei parametri inoltre, la loro esecuzione può restituire dei risultati 6

4 Remote Procedure Call RPC (Remote Procedure Call) In distributed computing, a remote procedure call (RPC) is when a computer program causes a procedure (subroutine) to execute in another address space (commonly on another computer on a shared network), which is coded as if it were a normal (local) procedure call, without the programmer explicitly coding the details for the remote interaction. That is, the programmer writes essentially the same code whether the subroutine is local to the executing program, or remote. In the object-oriented programming paradigm, RPC calls are represented by remote method invocation (RMI) [Wikipedia, 2018] Attenzione, il fatto che sia scritto nello stesso modo non implica che funzioni nello stesso modo. 7 Invocazione di metodi remoti (RMI) L invocazione di metodi remoti (RMI, Remote Method Invocation) è un estensione orientata agli oggetti della chiamata di procedure remote (RPC) RMI fornisce un servizio di comunicazione tra componenti distribuiti realizzati con tecnologie a oggetti e chiamati oggetti distribuiti o oggetti remoti (discussi in una successiva dispensa) ovvero, oggetti in esecuzione in processi separati in particolare, RMI consente a un oggetto (nel ruolo di client) in esecuzione in un processo di invocare un metodo di un oggetto (nel ruolo di server) in esecuzione in un processo remoto A parte l oggettificazione del modello di programmazione, un invocazione di metodo remoto (in RMI) corrisponde essenzialmente ad una chiamata di procedura remota (in RPC) nel seguito, ignoreremo queste differenze, e parleremo semplicemente di operazioni e di invocazioni remote 8

5 Un invocazione locale standalone process invocation call Y(arg1, arg2) X Y return value result 9 Un invocazione remota client process invocation server process call Y(arg1, arg2) X Y return value result process boundary 10

6 Un invocazione remota client process invocation request message server process request call Y(arg1, arg2) X Y return value response result response message 11 Paradigma dell invocazione remota Un invocazione remota da un punto di vista sintattico, l operazione remota Y viene invocata da X come se fosse un invocazione locale in realtà, l operazione Y vive in un processo (il processo server) diverso da quello di X (che vive nel processo client) in prima approssimazione, l esecuzione di un invocazione remota prevede le consuete attività di legame dei parametri, esecuzione dell operazione e restituzione dei risultati che però devono essere svolte in modo remoto l implementazione è basata su un protocollo richiesta-risposta ovvero sullo scambio in rete di un messaggio di richiesta (che codifica l invocazione) e di un messaggio di risposta (che codifica il risultato) 12

7 Implementazione dell invocazione remota client stub skeleton server call Y(...) prepare request send request request call Y(...) prepare reply send replay decode request local invocation call Y(...) execute operation return value decode reply return value return value response process boundary 13 Implementazione dell invocazione remota Esecuzione di un invocazione remota il client vuole invocare l operazione Y del server remoto l interazione inizia con il modulo client che (nell ambito dell esecuzione dell operazione X) effettua un invocazione dell operazione Y nei confronti dello stub lo stub (o proxy lato client) è un modulo che è un rappresentante locale (nel processo client) del server remoto note: il modulo client effettua un invocazione locale allo stub l operazione Y dello stub è diversa da quella del server dopo di che, lo stub (l operazione Y dello stub) si occupa di preparare un messaggio di richiesta (request) che codifica l invocazione di Y, con i suoi parametri inviare questo messaggio di richiesta al processo server (ad es., tramite socket) altre attività (discusse dopo) 14

8 Implementazione dell invocazione remota Esecuzione di un invocazione remota lato server, il messaggio di richiesta viene ricevuto (ad es., tramite socket) dallo skeleton lo skeleton (o proxy lato server) è un modulo che è un rappresentante locale (nel processo server) del client remoto lo skeleton si occupa di decodificare il messaggio di richiesta estraendo dalla richiesta l invocazione di Y, con i suoi parametri effettuare l invocazione dell operazione Y nei confronti del modulo server altre attività (discusse dopo) 15 Implementazione dell invocazione remota Esecuzione di un invocazione remota il modulo server, quando riceve l invocazione da parte dello skeleton, esegue l operazione Y richiesta e gli restituisce i risultati dell esecuzione dell operazione nota: il modulo server riceve un invocazione locale dallo skeleton dopo di che, lo skeleton si occupa di ricevere (dal modulo server) i risultati dell esecuzione dell operazione Y preparare un messaggio di risposta (reply) che codifica i risultati dell esecuzione di Y inviare questo messaggio di risposta al processo client (ad es., tramite socket) 16

9 Implementazione dell invocazione remota Esecuzione di un invocazione remota lato client, il messaggio di risposta viene ricevuto (ad es., tramite socket) dallo stub dopo di che, lo stub si occupa di decodificare il messaggio di risposta estraendo dalla risposta i risultati dell esecuzione di Y restituire i risultati al modulo client infine, il modulo client, dopo aver ricevuto i risultati dell invocazione di Y, prosegue nell esecuzione dell operazione X 17 e proxy remoti Dunque, in un invocazione remota, la comunicazione tra il componente client e il componente server avviene tramite un connettore realizzato come una coppia di moduli intermedi chiamati stub e skeleton lo stub e lo skeleton sono intermediari nella comunicazione sono dei proxy (proxy remoti) un proxy lato client e un proxy lato server Proxy è un design pattern un intermediario, rappresentante di un altro oggetto, di cui ha la stessa interfaccia un proxy [GoF] fornisce un surrogato o un segnaposto per un altro oggetto per controllarne l accesso l uso di una coppia di proxy remoti (stub e skeleton) nasconde al programmatore il fatto che la comunicazione sia distribuita infatti, della comunicazione distribuita (e dei suoi dettagli) si occupano i proxy 18

10 e proxy remoti In pratica, i due proxy remoti hanno lo scopo di implementare un protocollo richiesta-risposta per supportare l invocazione remota le responsabilità principali dei due proxy remoti sono trasmettere (inviare e ricevere) i messaggi di richiesta e risposta preparare e decodificare i messaggi di richiesta e di risposta con RPC e RMI (così come con altre tecnologie di middleware), questi due proxy vengono generati automaticamente (discusso dopo) ovvero, non devono essere implementati manualmente e individualmente dagli sviluppatori inoltre, l implementazione di questi proxy fa di solito riferimento a delle librerie predefinite (moduli di comunicazione, discussi dopo), che sono responsabili di definire la semantica dell invocazione remota (discussa più avanti) 19 Generazione automatica dei proxy Un aspetto fondamentale di molte tecnologie per l invocazione remota è la generazione automatica dei proxy remoti questa generazione avviene sulla base di un linguaggio per la definizione di interfacce Interface Definition Language (IDL) un compilatore d interfacce client code client process language specific call interface client stub development environment IDL service interface IDL compiler server process language specific call interface server skeleton server code 20

11 Generazione automatica dei proxy Uso pragmatico e semplificato dell invocazione remota scrittura dell interfaccia del servizio tramite l IDL l interfaccia di un servizio remoto descrive: (i) quali sono le operazioni e (ii) quali sono i tipi usati dalle operazioni (per i parametri e i valori restituiti) compilazione dell interfaccia produce il codice sia dello stub (proxy lato client) che dello skeleton (proxy lato server) del servizio completamento del codice lato server, va implementato il modulo che implementa le operazioni del servizio inoltre, nello skeleton in opportuni segnaposti vanno chiamate queste operazioni lato client, le chiamate alle operazioni vanno rivolte allo stub inoltre, il programma server va mandato in esecuzione sul server, e il servizio va opportunamente registrato 21 Moduli di comunicazione L implementazione dei proxy remoti è di solito basata sull uso di opportuni moduli di comunicazione (fanno parte delle librerie del middleware) cooperanti questi moduli di comunicazione implementano il protocollo richiesta-risposta sottostante all invocazione remota si occupano soprattutto dello scambio dei messaggi di richiesta e di risposta tra i due proxy hanno un ruolo fondamentale nella definizione della semantica dell invocazione remota (discussa più avanti) 22

12 * Semantica dell invocazione remota L invocazione di un operazione remota viene scritta, sintatticamente, allo stesso modo di un invocazione locale ma la semantica di un invocazione remota è la stessa di un invocazione locale? no, non può essere la stessa, poiché ci sono alcune differenze importanti tra invocazioni remote e locali, tra cui le operazioni sono eseguite in processi e spazi degli indirizzi differenti si possono verificare dei problemi di comunicazione tra i processi distribuiti il legame dei parametri e dei risultati non può essere gestito come nelle invocazioni locali questi aspetti sono discussi qui di seguito 23 - Problemi di affidabilità Nei sistemi distribuiti si possono verificare diversi problemi di affidabilità ad esempio fallimenti nella comunicazione messaggi persi o tramessi male messaggi trasmessi più volte messaggi trasmessi fuori ordine fallimenti nei processi coinvolti ad es., il processo server va in crash A causa di questi (o di altri) problemi, un invocazione remota potrebbe terminare, per il client, anche con la ricezione di un eccezione remota ovvero, la segnalazione di un problema nell invocazione remota 24

13 Problemi di affidabilità Qui, per semplicità, ci limitiamo a considerare la possibilità di perdere messaggi si noti che l uso di un protocollo di rete a livello di trasporto affidabile (ad es., TCP) nell implementazione di un protocollo richiesta-risposta a livello applicativo, realizzato dai moduli di comunicazione, non garantisce automaticamente l affidabilità di quest ultimo protocollo pertanto, i moduli di comunicazione devono considerare esplicitamente la possibilità di perdere messaggi nella definizione del protocollo richiesta-risposta per gestire l invocazione remota in particolare, i moduli di comunicazione potrebbero essere realizzati in modo da tollerare la perdita di alcuni messaggi le opzioni utilizzate nell implementazione dei moduli di comunicazione hanno impatto sulla semantica dell invocazione remota 25 - Semantica dell invocazione remota Si consideri, nell ambito di un sistema distribuito, un client C che effettua un invocazione remota di un operazione O di un servizio S per gestire questa invocazione remota, nel sistema distribuito vengono scambiati alcuni messaggi in rete e vengono svolte alcune attività (tra cui, forse, l esecuzione dell operazione O) alla fine, ci sono due possibilità per il client C C può ricevere un risultato tra i possibili risultati, includiamo anche la ricezione di un eccezione funzionale oppure, C può ricevere la segnalazione di un eccezione remota a fronte di queste due possibili conclusioni di un invocazione remota, che cosa può capire C di quanto è effettivamente successo nel sistema? la semantica dell invocazione remota ha a che fare appunto con ciò che succede durante un invocazione remota 26

14 Semantica dell invocazione remota I moduli di comunicazione (m.d.c.), per gestire la possibilità che vengano persi messaggi ovvero, che non vengano ricevuti entro un certo timeout possono implementare il protocollo richiestarisposta in modi diversi (a cui corrispondono semantiche differenti) in particolare, possono usare (oppure non usare) le seguenti opzioni per gestire la perdita di messaggi di richiesta e/o di risposta ciascuna opzione richiede anche le precedenti ripetizione del messaggio di richiesta lato client filtraggio di richieste duplicate lato server ritrasmissione di risposte lato server 27 Semantica dell invocazione remota Opzioni per gestire la perdita dei messaggi ciascuna opzione richiede anche le precedenti ripetizione del messaggio di richiesta lato client il m.d.c. lato client ripete l invio della propria richiesta fino a quando non riceve una risposta o comunque per un numero massimo di volte filtraggio di richieste duplicate lato server il m.d.c. lato client assegna un identificatore alle proprie richieste il m.d.c. lato server mantiene una storia delle richieste ritrasmissione di risposte lato server il m.d.c. lato server mantiene una storia delle richieste e delle risposte quando riceve una richiesta duplicata, anziché rieseguire l operazione, ripete l invio della risposta generata a seguito della prima esecuzione dell operazione 28

15 Semantica dell invocazione remota L uso combinato di queste opzioni dà luogo a un ventaglio di semantiche differenti per l invocazione di operazioni remoti maybe non ripetere richieste at least once ripeti richieste, non filtrare duplicati, riesegui l operazione at most once ripeti richieste, filtra duplicati, non rieseguire l operazione, ritrasmetti risposte Queste semantiche sono differenti tra loro infatti, nei tre casi, il client di un operazione remota può capire cose differenti quando gli viene restituito il controllo con la restituzione di un risultato o con la segnalazione di un eccezione remota 29 Semantica dell invocazione remota Possibili semantiche per l invocazione remota maybe non ripetere richieste se il client riceve un risultato vuol dire che l operazione è stata eseguita una sola volta se invece il client riceve la segnalazione di un eccezione remota vuol dire o che l operazione non è stata mai eseguita oppure che è stata eseguita (ma solo una volta) at least once ripeti richieste, non filtrare duplicati, riesegui l operazione at most once ripeti richieste, filtra duplicati, non rieseguire l operazione, ritrasmetti risposte La semantica dell invocazione locale è invece exactly once 30

16 Semantica dell invocazione remota Possibili semantiche per l invocazione remota maybe non ripetere richieste at least once ripeti richieste, non filtrare duplicati, riesegui l operazione se il client riceve un risultato vuol dire che l operazione è stata eseguita una volta oppure anche più volte se invece il client riceve la segnalazione di un eccezione remota vuol dire che l operazione è stata eseguita una volta o anche più volte, oppure che l operazione non è stata mai eseguita at most once ripeti richieste, filtra duplicati, non rieseguire l operazione, ritrasmetti risposte La semantica dell invocazione locale è invece exactly once 31 Semantica dell invocazione remota 32 Possibili semantiche per l invocazione remota maybe non ripetere richieste at least once ripeti richieste, non filtrare duplicati, riesegui l operazione at most once ripeti richieste, filtra duplicati, non rieseguire l operazione, ritrasmetti risposte se il client riceve un risultato vuol dire che l operazione è stata eseguita esattamente una volta se invece il client riceve la segnalazione di un eccezione remota vuol dire o che l operazione non è stata mai eseguita oppure che è stata eseguita (ma solo una volta) è come la semantica maybe, ma con una maggior tolleranza alla perdita di messaggi è la semantica di default per molte tecnologie La semantica dell invocazione locale è invece exactly once

17 Semantica dell invocazione remota Possibili semantiche per l invocazione remota maybe non ripetere richieste at least once ripeti richieste, non filtrare duplicati, riesegui l operazione at most once ripeti richieste, filtra duplicati, non rieseguire l operazione, ritrasmetti risposte La semantica dell invocazione locale è invece exactly once l operazione viene eseguita esattamente una volta un invocazione può terminare solo con la restituzione di un risultato non è possibile nessuna eccezione remota Si noti che nessuna delle tre semantiche per l invocazione remota corrisponde alla semantica exactly once dell invocazione locale 33 Discussione Semantica Opzioni Se il client riceve un risultato, l operazione è stata eseguita Maybe At least once At most once non ripetere richieste ripeti richieste, non filtrare duplicati, riesegui l operazione ripeti richieste, filtra duplicati, non rieseguire l operazione, ritrasmetti risposte esattamente 1 volta Se il client riceve un eccezione remota, l operazione è stata eseguita 0 o 1 volta 1 o più volte 0 o più volte esattamente 1 volta Exactly once invocazione locale esattamente 1 volta Note 0 o 1 volta maggiore tolleranza ai guasti rispetto a maybe non è possibile invocazione locale 34

18 Discussione Dunque, ci sono tre possibili semantiche per l invocazione remota queste semantiche differiscono tra loro per ciò che può avvenire durante un invocazione remota, per il grado di tolleranza alla perdita di messaggi e per ciò che è in grado di capire il client di un operazione quando il client riceve un risultato oppure la segnalazione di un eccezione funzionale (la consideriamo la stessa cosa) oppure il client riceve la segnalazione di un eccezione remota nessuna di queste tre semantiche dell invocazione remota corrisponde alla semantica exactly once dell invocazione locale 35 - Prestazioni Un altra differenza tra invocazioni remote e invocazioni locali è relativa ai tempi di esecuzione delle invocazioni remote, a causa dei tempi di comunicazione il protocollo richiesta-risposta su cui si basa l invocazione remota introduce degli overhead, talvolta significativi per lo scambio in rete dei messaggi di richiesta e di risposta per le attività di preparazione e decodifica dei messaggi di richiesta e di risposta per minimizzare la penalizzazione imposta dalle invocazioni remote, bisogna di solito cercare di minimizzare il numero di invocazioni remote pertanto, nella definizione dei servizi distribuiti e delle loro interfacce, è in genere opportuno definire operazione remote con una granularità abbastanza grossa certamente più grossa che non quella di interfacce e operazioni locali 36

19 - Concorrenza Le operazioni remote possono essere eseguite in modo concorrente tra loro l esecuzione di un operazione remota avviene di solito in un popup thread distinto del componente remoto diversamente dall esecuzione di un operazione locale, che avviene nello stesso thread del chiamante l esecuzione di un operazione remota viene di solito gestita in uno stack dedicato alla chiamata remota diversamente dall esecuzione di un operazione locale, che avviene nello stesso stack del chiamante è possibile l esecuzione concorrente di operazioni remote attenzione, è anche possibile che operazioni eseguite in modo concorrente accedano a risorse condivise tra le diverse esecuzioni nel caso, la possibile concorrenza va gestita in modo opportuno 37 - Legame dei parametri L invocazione di operazioni remote è di solito basata su un meccanismo di legame dei parametri per valore-risultato in cui, in un operazione, si fa distinzione tra parametri di input (in) e risultati/parametri di output (out) Esempio: calcola le radici di un equazione di secondo grado intestazione dell operazione (omettendo i tipi) calcolaradici(in a, in b, in c, out x1, out x2) invocazione dell operazione calcolaradici(1, 4, 2, radice1, radice2) In alcuni linguaggi (come Java), questo tipo di legame è disponibile in una versione limitata con un solo risultato, legato mediante un assegnazione double sqrt(double x) r = sqrt(125) 38

20 Legame dei parametri per valore-risultato Legame dei parametri per valore-risultato al momento dell invocazione dell operazione, vengono legati i parametri di input i parametri attuali di input (lato client) sono valori questi valori sono usati come valori iniziali per i parametri formali (lato server), che sono variabili quando termina l esecuzione dell operazione, vengono legati i risultati ovvero, i parametri di output i risultati di output (lato server) sono valori questi valori sono usati come valori da assegnare ai parametri attuali di output (lato client), che sono (devono essere) variabili 39 Legame di dati strutturati e oggetti Una differenza importante tra la semantica dell invocazione remota e quella dell invocazione locale è nel modo in cui avviene il legame di dati strutturati come oggetti o record in un invocazione locale, quando un parametro (o un risultato) è un oggetto (o un record, passato per riferimento), allora il valore che viene passato come parametro attuale è in genere un riferimento all oggetto questo ha senso perché i riferimenti (che di solito sono implementati come puntatori) hanno significato nell ambito di un singolo processo inoltre, il passaggio di un riferimento rende possibile effetti collaterali sugli oggetti passati come parametri ovvero, il chiamato può modificare l oggetto passato come parametro, e il chiamante può osservare questa modifica oppure, il chiamante può modificare l oggetto che gli è stato restituito, e il chiamato potrà osservare questa modifica 40

21 Legame di dati strutturati e oggetti Una differenza importante tra la semantica dell invocazione remota e quella dell invocazione locale è nel modo in cui avviene il legame di dati strutturati come oggetti o record in un invocazione remota, invece, quando un parametro (o un risultato) è un oggetto (o un record), allora il valore che viene passato come parametro attuale è in genere una rappresentazione serializzata dello stato dell oggetto quella che viene passata è una copia dell oggetto, che l operazione remota ottiene deserializzando la rappresentazione ricevuta il passaggio di una rappresentazione serializzata disabilita la possibilità di avere effetti collaterali sugli oggetti passati come parametri (o restituiti come risultati) poiché l operazione remota opera solo su una copia dell oggetto passato come parametro, eventuali modifiche applicate a questa copia non comportano una modifica diretta dell oggetto originale 41 Serializzazione Serialization In computer science, serialization is the process of translating a data structure or an object state into a format that can be stored (for example, in a file) or transmitted (for example, across a network connection link) and reconstructed later (possibly in the same or in a different computer environment). When the resulting series of bits is reread according to the serialization format, it can be used to create a semantically identical clone of the original object. [Wikipedia, 2018] 42

22 Legame di dati strutturati e oggetti Un parametro che è un oggetto viene legato per valore il valore è una rappresentazione serializzata dell oggetto questa rappresentazione viene trasmessa e poi ricostruita nel processo remoto alpha(value-object) { type : asw.model.employee, id : 410, firstname : John, lastname : Smith, dept : call alpha( ) } { } type : asw.model.department, id : 992, name : DIA 43 Legame di riferimenti remoti In effetti, in RMI, è anche possibile passare dei parametri che sono dei riferimenti ad oggetti remoti (come discusso meglio in una successiva dispensa) questi parametri possono anche essere legati per riferimento remoto beta(remote-object) call beta( remote reference to remote-object ) in questo caso, l operazione remota potrà effettuare a sua volta delle invocazioni remote sull oggetto remoto passato come parametro sono possibili effetti collaterali in modo analogo a quanto avviene nelle invocazioni locali attenzione però alla proliferazione delle invocazioni remote che possono avere conseguenze negative sulle prestazioni 44 Oggetti distribuiti e invocazione remota

23 - Invocazione asincrona e callback Un invocazione remota può avere una latenza alta soprattutto se l operazione invocata può avere un durata lunga per questo, sono state definite alcune varianti dell invocazione remota invocazione asincrona il chiamante effettua una chiamata non bloccante dell operazione remota la chiamata restituisce immediatamente un oggetto (chiamato promise oppure future) con cui il chiamante potrà poi accedere al risultato (o all esito) dell operazione invocazione sincrona differita il chiamante effettua una prima chiamata dell operazione remota il server restituisce solo una conferma (ack) il chiamante, successivamente, effettua una seconda chiamata per accedere al risultato (o all esito) dell operazione 45 Invocazione asincrona e callback Un invocazione remota può avere una latenza alta soprattutto se l operazione invocata può avere un durata lunga per questo, sono state definite alcune varianti dell invocazione remota callback il chiamante, al momento dell invocazione remota (asincrona), specifica un operazione (chiamata callback) che l oggetto remoto dovrà invocare per comunicare il risultato (o l esito) dell operazione È però importante osservare che l invocazione remota asincrona è, in un certo senso, una forma di comunicazione sincrona poiché il client e il server devono essere attivi contemporaneamente nella gestione dell invocazione remota dunque, non è una forma di comunicazione asincrona, nel senso che verrà discusso in una successiva dispensa sulla Comunicazione asincrona 46

24 * Discussione L invocazione remota è un astrazione di programmazione distribuita fondamentale i componenti distribuiti interagiscono mediante l invocazione di operazioni remote (procedure o metodi remoti) le invocazioni remote vengono scritte sintatticamente, nel codice, in modo simile a quelle locali ma la loro semantica è differente, per vari motivi per la possibilità di fallimenti nella comunicazione remota e per il modo in cui vengono gestiti per il tempo richiesto dalla gestione di una chiamata per la concorrenza e l eventuale asincronia delle chiamate remote per come viene effettuato il legame dei parametri e per gli effetti collaterali che si possono verificare (o non verificare) per aspetti legati alla sicurezza (che non sono stati discussi) 47

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

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

Gestione delle eccezioni in Java

Gestione delle eccezioni in Java Gestione delle eccezioni in Java Fondamenti di Informatica Ingegneria Gestionale Canale AL 1 Le eccezioni in Java Exception handling: insieme di costrutti e regole sintattiche e semantiche presenti nel

Dettagli

Servizi di interscambio dati e cooperazione applicativa Guida alla gestione dei servizi web Mipaaf

Servizi di interscambio dati e cooperazione applicativa Guida alla gestione dei servizi web Mipaaf Servizi di interscambio dati e cooperazione applicativa Indice 1 Introduzione... 3 2 Accesso ai servizi... 4 2.1 La richiesta di convenzione... 4 2.2 Le credenziali di accesso al sistema... 5 2.3 Impostazione

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

Java Native Interface Appunti

Java Native Interface Appunti Java Native Interface Appunti Riccardo Rizzo 1/8 Introduzione L'uso delle Java Native Interface e' giustificato tutte quelle volte che una applicazione non puo' essere scritta interamente in Java. Per

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

Introduzione alle applicazioni di rete

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

Dettagli

Sommario. G. Piscitelli

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

Dettagli

Processi, Threads e Agenti

Processi, Threads e Agenti Processi, Threads e Agenti Processi in Sistemi Distribuiti Un sistema software distribuito ècompostodaun insieme di processi in esecuzione su più nodi del sistema. Un algoritmo distribuito può essere definito

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 8 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Il Livello di Trasporto: 1 L utente non ha il controllo sulla rete; non può risolvere i problemi di un servizio inadeguato

Dettagli

Modelli per la descrizione di protocolli

Modelli per la descrizione di protocolli POLITECNICO DI MILANO Corso di Laurea in Ingegneria Informatica Modelli per la descrizione di protocolli asincroni basati sull usouso di servizi Web Relatore: Prof. Stefano Ceri Correlatori: Ing. Marco

Dettagli

Sistemi Distribuiti e Cloud Computing A.A. 2014/15

Sistemi Distribuiti e Cloud Computing A.A. 2014/15 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Sistemi Distribuiti e Cloud Computing A.A. 2014/15 Valeria Cardellini E-mail: cardellini@ing.uniroma2.it

Dettagli

Internet (- working). Le basi.

Internet (- working). Le basi. Internet (- working). Le basi. 1 GABRIELLA PAOLINI (GARR) 18 OTTOBRE 2011 Capire come funziona Internet 2 FACCIAMO UN PASSO INDIETRO Internet È un insieme di reti interconnesse fra di loro su tutto il

Dettagli

Service Oriented Architecture

Service Oriented Architecture Service Oriented Architecture Università degli Studi di L Aquila Giuseppe.DellaPenna@univaq.it http://www.di.univaq.it/gdellape Engineering IgTechnology Info92 Maggioli Informatica Micron Technology Neta

Dettagli

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca

Dettagli

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche Mariarosaria Napolitano Architettura TCP/IP Corso di: Laboratorio di tecnologie informatiche e telematiche Contesto e Prerequisiti Contesto E' rivolto agli studenti del V anno degli Istituti Tecnici Industriali

Dettagli

corso di Sistemi Distribuiti 4. IPC (Inter Process Communication) (parte 1): le forme ed i modelli della comunicazione tra processi

corso di Sistemi Distribuiti 4. IPC (Inter Process Communication) (parte 1): le forme ed i modelli della comunicazione tra processi CdL MAGISTRALE in INFORMATICA A.A. 2014-2015 corso di Sistemi Distribuiti 4. IPC (Inter Process Communication) (parte 1): le forme ed i modelli della comunicazione tra processi Prof. S.Pizzutilo Elementi

Dettagli

Sistemi Operativi (modulo di Informatica II)

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

Dettagli

API e socket per lo sviluppo di applicazioni Web Based

API e socket per lo sviluppo di applicazioni Web Based API e socket per lo sviluppo di applicazioni Web Based Cosa sono le API? Consideriamo il problema di un programmatore che voglia sviluppare un applicativo che faccia uso dei servizi messi a disposizione

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

Comunicazione fra oggetti distribuiti

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

Dettagli

Sistemi Distribuiti e Cloud Computing A.A. 2013/14

Sistemi Distribuiti e Cloud Computing A.A. 2013/14 Università degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Sistemi Distribuiti e Cloud Computing A.A. 2013/14 Valeria Cardellini E-mail: cardellini@ing.uniroma2.it

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

Java Remote Method Invocation

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

Dettagli

1 Vincenzo de Stefano SAP e Servizi Web http://desvino.altervista.org

1 Vincenzo de Stefano SAP e Servizi Web http://desvino.altervista.org 1 Vincenzo de Stefano SAP e Servizi Web http://desvino.altervista.org Prefazione. Da Hello World a Hello World Wide Web. Hello World è la prima frase stampata a video dal primo programma di esempio scritto

Dettagli

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi C1_2 V3.3. Connettori

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi C1_2 V3.3. Connettori Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi C1_2 V3.3 Connettori Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per

Dettagli

Lab. Sistemi - Classe 5Bn A. S. 2000/2001 ITIS Primo Levi - Torino AA.AA. STANDARD SERIALE DI COMUNICAZIONE: RS232 Lo standard seriale di

Lab. Sistemi - Classe 5Bn A. S. 2000/2001 ITIS Primo Levi - Torino AA.AA. STANDARD SERIALE DI COMUNICAZIONE: RS232 Lo standard seriale di STANDARD SERIALE DI COMUNICAZIONE: RS232 Lo standard seriale di interfacciamento è stato introdotto al fine di collegare dispositivi remoti a bassa velocità con un calcolatore centrale. In questo genere

Dettagli

Utilizzo collegamento remoto

Utilizzo collegamento remoto Utilizzo collegamento remoto Introduzione Il collegamento VPN (virtual private network) consente a PC collegati ad internet ma fisicamente fuori dalla rete interna regionale, di accedere, con le credenziali

Dettagli

Introduzione a Java Remote Method Invocation (RMI)

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

Dettagli

e-shop Ordina online i tuoi prodotti con pochi e semplici clic!

e-shop Ordina online i tuoi prodotti con pochi e semplici clic! Ordina online i tuoi prodotti con pochi e semplici clic! ACQUISTI IMPERO ONLINE GUIDA UTENTE Introduzione e-shop, il sito web per gli acquisti Impero online e-shop garantisce l accesso a 10 000 articoli

Dettagli

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi

Sistemi Operativi. Lez. 13: primitive per la concorrenza monitor e messaggi Sistemi Operativi Lez. 13: primitive per la concorrenza monitor e messaggi Osservazioni I semafori sono strumenti particolarmente potenti poiché consentono di risolvere ogni problema di sincronizzazione

Dettagli

Sistemi Web Tolleranti ai Guasti

Sistemi Web Tolleranti ai Guasti Sistemi Web Tolleranti ai Guasti Candidato: Paolo Romano Relatore: Prof. Salvatore Tucci Correlatore: Prof. Bruno Ciciani Sommario Il problema: garantire semantica exactly once alle transazioni Web. Sistema

Dettagli

Guida Rapida per i Docenti dell ITIS Galilei

Guida Rapida per i Docenti dell ITIS Galilei Guida Rapida per i Docenti dell ITIS Galilei Il nuovo server Internet learning dell Istituto Galileo Galilei di Roma è raggiungibile digitando http://lnx.itisgalileiroma.it/moodle nella barra degli indirizzi

Dettagli

Comunicazione Digitale

Comunicazione Digitale Comunicazione Digitale Schema didattico di riferimento 1 1. Internet e le reti locali 1. Qual è la storia della rete Internet dagli albori ai giorni nostri 2. I tipi di rete, come si organizzano e agglomerano

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

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti Informazioni generali Docente Giacomo Cabri Come contattarmi Via email (consigliato) giacomo.cabri@unimore.it Telefono 059/2058320 Ricevimento Lunedì dalle 15 alle 17 presso Matematica,

Dettagli

Uso degli oggetti. Un programma Java. è un insieme di oggetti, ognuno istanza di una classe, che si inviano messaggi

Uso degli oggetti. Un programma Java. è un insieme di oggetti, ognuno istanza di una classe, che si inviano messaggi Uso degli oggetti Uso di oggetti predefiniti attraverso l'invio di messaggi. Il concetto di metodo; argomenti e restituzione di valori; segnatura e prototipo di un metodo. Il concetto di overloading. Le

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

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

Comunicazione tra Processi

Comunicazione tra Processi Comunicazione tra Processi Comunicazioni in un Sistema Distribuito Un sistema software distribuito è realizzato tramite un insieme di processi che comunicano, si sincronizzano, cooperano. Il meccanismo

Dettagli

Comunicazione tra Processi

Comunicazione tra Processi Comunicazione tra Processi Comunicazioni in un Sistema Distribuito Un sistema software distribuito è realizzato tramite un insieme di processi che comunicano, si sincronizzano, cooperano. Il meccanismo

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

Introduzione ai connettori

Introduzione ai connettori Luca Cabibbo Architetture Software Dispensa ASW 810 ottobre 2014 Le relazioni tra elementi sono ciò che dà valore aggiunto ai sistemi. Eberhardt Rechtin 1 -Fonti [Shaw] Mary Shaw, Procedure Calls are the

Dettagli

Socket & RMI Ingegneria del Software - San Pietro

Socket & RMI Ingegneria del Software - San Pietro Socket & RMI Ingegneria del Software - San Pietro Socket È possibile trattare la comunicazione di rete allo stesso modo con cui è possibile trattare la lettura da file. La classe Socket rappresenta la

Dettagli

Esercitazione. Livello di Trasporto [Capitolo 3]

Esercitazione. Livello di Trasporto [Capitolo 3] Esercitazione Livello di Trasporto [Capitolo 3] 1 È possibile che un'applicazione che gira su UDP ottenga un trasferimento dati affidabile? Si. Lo sviluppatore dell'applicazione può inserire il trasferimento

Dettagli

Chiamate a Procedure Remote

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

Dettagli

RILASCIO NOTE DI RILASCIO NOTE DI RILASCIO NOTE DI RILASCIO. Bilancio. Bilancio Ver. 15.10. Bilancio. Bilancio. Bilancio. Bilancio.

RILASCIO NOTE DI RILASCIO NOTE DI RILASCIO NOTE DI RILASCIO. Bilancio. Bilancio Ver. 15.10. Bilancio. Bilancio. Bilancio. Bilancio. Avvertenze Prima di eseguire l'aggiornamento Archivi NOTE DI RILASCIO NOTE Ver. DI 15.10 RILASCIO NOTE DI RILASCIO NOTE Ver. DI 15.10 RILASCIO Eseguire il salvataggio degli archivi da Strumenti/Esportazione

Dettagli

rchinizer il protocollo informatico obiettivi e strategie dott. michele bianchi

rchinizer il protocollo informatico obiettivi e strategie dott. michele bianchi rchinizer il protocollo informatico obiettivi e strategie dott. michele bianchi Obiettivi migliorare l'efficienza interna ridurre i registri cartacei diminuire gli uffici di protocollo razionalizzare i

Dettagli

Esercizi (1-2): da: TCP/IP Sockets in C (Donahoo-Calvert)

Esercizi (1-2): da: TCP/IP Sockets in C (Donahoo-Calvert) Esercizi PARTE 1 Esercizi (1-2): da: TCP/IP Sockets in C (Donahoo-Calvert) When you make a phone call, it s usually the callee that answers with hello. What changes to our example client and server would

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

Creare client statici

Creare client statici Client statico Creare client statici Un client statico crea, a partire dal WSDL di un servizio, un insieme di classi di supporto client-side (stub) Sono necessari solo 2 passi: 1. parsing del WSDL pubblicato

Dettagli

Web Service Architecture

Web Service Architecture Giuseppe Della Penna Università degli Studi di L Aquila dellapenna@di.univaq.it http://dellapenna.univaq.it Engineering IgTechnology Info92 Maggioli Informatica Micron Technology Neta Nous Informatica

Dettagli

SOA!= OO. Andrea Saltarello Software Architect @ Managed Designs S.r.l. andrea.saltarello@manageddesigns.it http://blogs.ugidotnet.

SOA!= OO. Andrea Saltarello Software Architect @ Managed Designs S.r.l. andrea.saltarello@manageddesigns.it http://blogs.ugidotnet. SOA!= OO Andrea Saltarello Software Architect @ Managed Designs S.r.l. andrea.saltarello@manageddesigns.it http://blogs.ugidotnet.org/pape http://creativecommons.org/licenses/by-nc-nd/2.5/ Chi sono Solution

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

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

Introduzione ai Sistemi Distribuiti

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

Dettagli

Sistemi Distribuiti. Libri di Testo

Sistemi Distribuiti. Libri di Testo Sistemi Distribuiti Rocco Aversa Tel. 0815010268 rocco.aversa@unina2.it it Ricevimento: Martedì 14:16 Giovedì 14:16 1 Libri di Testo Testo Principale A.S. Tanenbaum, M. van Steen, Distributed Systems (2

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

A2A technical presentation

A2A technical presentation A2A technical presentation Milano, 24 Sept 2012 Enrico Papalini IT Development Manager Attuale modalità di connessione LU6.2 LU6.2 response IAG HTTP client Mainframe or Customer Server HTTP service Https

Dettagli

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori a.a. 2009/10

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori a.a. 2009/10 Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori a.a. 2009/10 Roberto Canonico (roberto.canonico@unina.it) Antonio Pescapè (pescape@unina.it) ICMP ARP RARP DHCP - NAT ICMP (Internet

Dettagli

Ingegneria del Software. Presentazione del pattern Proxy

Ingegneria del Software. Presentazione del pattern Proxy Ingegneria del Software Presentazione del pattern Proxy 1 Il pattern Proxy (1/6) Nome Proxy Synopsis Pattern molto generale che occorre in molti altri pattern, ma raramente nella sua forma pura. Il pattern

Dettagli

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2

Computazione multi-processo. Condivisione, Comunicazione e Sincronizzazione dei Processi. Segnali. Processi e Threads Pt. 2 Computazione multi-processo Avere più processi allo stesso momento implica/richiede Processi e Threads Pt. 2 Concorrenza ed efficienza Indipendenza e protezione dei dati ma deve prevedere/permettere anche:

Dettagli

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore.

Unità Didattica 3 Linguaggio C. Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Unità Didattica 3 Linguaggio C Generalità sulle Funzioni. Variabili locali e globali. Passaggio di parametri per valore. Funzioni Generalizzazione del concetto di funzione algebrica: legge che associa

Dettagli

I processi. Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi

I processi. Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi I processi Concetto di processo Scheduling dei processi Operazioni sui processi Processi cooperanti Comunicazione fra processi Il modello a processi Consideriamo un informatico appassionato di cucina che

Dettagli

ESEMPI DI APPLICAZIONI ONC-RPC

ESEMPI DI APPLICAZIONI ONC-RPC ESEMPI DI APPLICAZIONI ONC-RPC Applicazione 1: Procedura remota per la somma di due numeri Applicazione 2: Procedura remota per la realizzazione di una chat Annarita Fierro matricola: 628404 Applicazione

Dettagli

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale

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

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

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

Dettagli

Master Interoperabilità A.A. 2010-2011 Presentazione Lavoro Pratico 1 Interoperabilità Tecnologica (Prof. Roberto Beraldi) Maccaroni Danilo

Master Interoperabilità A.A. 2010-2011 Presentazione Lavoro Pratico 1 Interoperabilità Tecnologica (Prof. Roberto Beraldi) Maccaroni Danilo Master Interoperabilità A.A. 2010-2011 Presentazione Lavoro Pratico 1 Interoperabilità Tecnologica (Prof. Roberto Beraldi) Maccaroni Danilo Rheinmetall Italia S.p.A. 2010 SCCP (Skyguard Lavoro Coordination

Dettagli

Il Pattern PROXY. Ex presentazione realizzata dallo studente Paolo Melchiori (matricola 65734) nell a.a. 2007-2008

Il Pattern PROXY. Ex presentazione realizzata dallo studente Paolo Melchiori (matricola 65734) nell a.a. 2007-2008 UNIVERSITÀ DEGLI STUDI DI BRESCIA FACOLTÀ DI INGEGNERIA CORSO DI LAUREA SPECIALISTICA IN INGEGNERIA INFORMATICA DIPARTIMENTO DI ELETTRONICA PER L'AUTOMAZIONE Il Pattern PROXY Ex presentazione realizzata

Dettagli

I servizi del SITR-IDT

I servizi del SITR-IDT I servizi del SITR-IDT Sistema Informativo Territoriale Regionale (SITR-IDT) Titolo Creatore I servizi del SITR-IDT SITR Data 05/02/10 Soggetto Tipo Editore Descrizione Autori Formato Riferimento Diritti

Dettagli

Sicurezza delle reti 1. Uso di variabili. Mattia Monga. a.a. 2010/11

Sicurezza delle reti 1. Uso di variabili. Mattia Monga. a.a. 2010/11 1 Mattia Lezione VIII: Sicurezza perimetrale Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2010/11 1 c 2011 M.. Creative Commons Attribuzione-Condividi

Dettagli

Sistema Gestionale Avviso Maplab

Sistema Gestionale Avviso Maplab Sistema Gestionale Avviso Maplab Guida al sistema Servizi Informatici Versione 23 Sommario della guida Il sistema informatico per la gestione delle domande L utente presentatore: diritti e responsabilità

Dettagli

fornitore di servizi utente all interazione tra utenti e sistemi

fornitore di servizi utente all interazione tra utenti e sistemi 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

Corso di Applicazioni Telematiche

Corso di Applicazioni Telematiche Corso di Applicazioni Telematiche Lezione n.1 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Facoltà di Ingegneria Obiettivi del corso Supporti didattici Modalità d esame Panoramica

Dettagli

Le comunicazioni ordinate

Le comunicazioni ordinate Le comunicazioni ordinate Comunicazioni Ordinate E importante (e utile definire delle primitive di comunicazione che diano qualche garanzia sull ordine di consegna dei messaggi inviati all interno di un

Dettagli

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it

RMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it Java Remote Method Invocation -- RMI G. Prencipe prencipe@di.unipi.it RMI RMI è una tecnologia JAVA che permette a una JVM di comunicare con un altra JVM per farle eseguire metodi È possibile che oggetti

Dettagli

INTRODUZIONE ALLE BASI DATI RELAZIONALI

INTRODUZIONE ALLE BASI DATI RELAZIONALI INTRODUZIONE ALLE BASI DATI RELAZIONALI RELAZIONI E TABELLE Nelle BASI DI DATI RELAZIONALI le informazioni sono organizzate in TABELLE; Le tabelle sono rappresentate mediante griglie suddivise in RIGHE

Dettagli

Segue a questa lista una descrizione delle funzioni per ogni punto.

Segue a questa lista una descrizione delle funzioni per ogni punto. SUITE DI GESTIONE WISP MANAGER/Offerta Economica Realizzazione dei servizi su nodi virtuali. La virtualizzazione permette di astrarre i servizi dalla macchina sulla quale sono installati. Uno dei principali

Dettagli

Università degli Studi di Napoli Federico II Facoltà di Ingegneria Corso di Laurea Specialistica in Ingegneria Informatica.

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

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

Implementazione di un servizio VoIP in ambienti SOA per mobile computing

Implementazione di un servizio VoIP in ambienti SOA per mobile computing tesi di laurea Implementazione di un servizio VoIP in ambienti SOA per mobile computing Anno Accademico 2006/2007 relatore Ch.mo prof. Domenico Cotroneo correlatore ing. Marcello Cinque candidato Vittorio

Dettagli

Seminario di Sistemi Distribuiti RPC su SOAP

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

Dettagli

Networking. Mauro Migliardi Ph. D.

Networking. Mauro Migliardi Ph. D. Software Architectures Networking Mauro Migliardi Ph. D. A word of wisdom The word networking strikes fear in the hearts of many programmers. Fear not! Using the networking capabilities provided in the

Dettagli

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni

Sistemi Operativi Anno Accademico 2011/2012. Segnali: Interrupt software per la gestione di eventi asincroni Anno Accademico 2011/2012 Segnali: Interrupt software per la gestione di eventi asincroni Concetto di segnale Un segnale è un interrupt software Un segnale può essere generato da un processo utente o dal

Dettagli

SAP Manuale del firmatario DocuSign

SAP Manuale del firmatario DocuSign SAP Manuale del firmatario DocuSign Sommario 1. SAP Manuale del firmatario DocuSign... 2 2. Ricezione di una notifica e-mail... 2 3. Apposizione della firma sul documento... 3 4. Altre opzioni... 4 4.1

Dettagli

ORGANISMO VERONESE DI MEDIAZIONE FORENSE REGOLAMENTO DI PROCEDURA E CODICE ETICO. Allegato 3

ORGANISMO VERONESE DI MEDIAZIONE FORENSE REGOLAMENTO DI PROCEDURA E CODICE ETICO. Allegato 3 ORGANISMO VERONESE DI MEDIAZIONE FORENSE REGOLAMENTO DI PROCEDURA E CODICE ETICO Allegato 3 REGOLAMENTO DELLA MEDIAZIONE ON-LINE (mediazione telematica a distanza) APPLICAZIONE ConciliaSFERA Il servizio

Dettagli

CONFIGURATION MANUAL

CONFIGURATION MANUAL RELAY PROTOCOL CONFIGURATION TYPE CONFIGURATION MANUAL Copyright 2010 Data 18.06.2013 Rev. 1 Pag. 1 of 15 1. ENG General connection information for the IEC 61850 board 3 2. ENG Steps to retrieve and connect

Dettagli

Sistemi Distribuiti AA 2005/2006. durante il corso: dopo lezione dopo il corso: mercoledì dalle 16,00 alle 18,00 per chi lavora: spedire una mail

Sistemi Distribuiti AA 2005/2006. durante il corso: dopo lezione dopo il corso: mercoledì dalle 16,00 alle 18,00 per chi lavora: spedire una mail Sistemi Distribuiti AA 2005/2006 Laurea Specialistica-Telecomunicazioni Docente: Dott.Ing. Sara Tucci Piergiovanni Il corso: informazioni utili Riferimenti del docente: sito web: www.dis.uniroma1.it/tucci

Dettagli

Moduli Bluetooth 03 - connessione seriale via BT

Moduli Bluetooth 03 - connessione seriale via BT Moduli Bluetooth 03 - connessione seriale via BT v 0.1 - Author: Mirco Piccin aka pitusso La connessione seriale ai moduli BT permette di inviare dati dal pc/smartphone/altro ad Arduino, in modalita wireless.

Dettagli

INDICE. Indice. Introduzione

INDICE. Indice. Introduzione V Indice Introduzione XIII Capitolo 1 La programmazione multithread 1 1.1 Cosa sono i thread 2 Utilizzare i thread per dare una possibilità ad altri task 9 Avvio ed esecuzione dei thread 10 Esecuzione

Dettagli

Robot Operating System

Robot Operating System Robot Operating System Lezione 1 A cura di: Jonathan Cacace 1 Outline Lezione 1: Introduzione; Architettura ROS; Protocolli di comunicazione; Concetti base; Primi passi. Lezione 2: ROS Stage; 2 Introduzione

Dettagli

BitDefender Business Security

BitDefender Business Security BitDefender Business Security BitDefender Business Security è una soluzione di gestione potente e facile da usare per la sicurezza delle aziende, che offre una protezione proattiva contro virus, spyware,

Dettagli

Il World Wide Web. Il Servizio World Wide Web (WWW) WWW WWW WWW WWW. Storia WWW: obbiettivi WWW: tecnologie Le Applicazioni Scenari Futuri.

Il World Wide Web. Il Servizio World Wide Web (WWW) WWW WWW WWW WWW. Storia WWW: obbiettivi WWW: tecnologie Le Applicazioni Scenari Futuri. Il Servizio World Wide Web () Corso di Informatica Generale (Roberto BASILI) Teramo, 20 Gennaio, 2000 Il World Wide Web Storia : obbiettivi : tecnologie Le Applicazioni Scenari Futuri La Storia (1990)

Dettagli

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

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

Dettagli

Lezione 3 Progettazione di siti

Lezione 3 Progettazione di siti Lezione 3 Progettazione di siti Ingegneria dei Processi Aziendali Modulo 1 Servizi Web Unità didattica 1 Protocolli Web Ernesto Damiani Università di Milano Elementi base della progettazione di servizi

Dettagli

Via Oberdan, 42, 48018 Faenza (RA) Italy Tel.: ++39-0546-677111 Fax: ++39-0546-677577 E-mail: support_ahd@eu.irco.com WAVE MODE MOBILE GUIDA RAPIDA

Via Oberdan, 42, 48018 Faenza (RA) Italy Tel.: ++39-0546-677111 Fax: ++39-0546-677577 E-mail: support_ahd@eu.irco.com WAVE MODE MOBILE GUIDA RAPIDA Via Oberdan, 4, 4808 Faenza (RA) Italy Tel.: ++9-0546-677 Fax: ++9-0546-677577 E-mail: support_ahd@eu.irco.com WAVE MODE MOBILE GUIDA RAPIDA * tasti con doppia funzionalità : dipende dalla modalità di

Dettagli

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse. Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,

Dettagli

ACCESSO ALLA POSTA ELETTRONICA TRAMITE OUTLOOK WEB ACCESS

ACCESSO ALLA POSTA ELETTRONICA TRAMITE OUTLOOK WEB ACCESS ACCESSO ALLA POSTA ELETTRONICA TRAMITE OUTLOOK WEB ACCESS Versione 1.2 9 Luglio 2007 Pagina 1 di 16 SOMMARIO 1. Cos è Outlook Web Access... 3 2. Quando si usa... 3 3. Prerequisiti per l uso di Outlook

Dettagli