Comunicazione fra oggetti distribuiti

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Comunicazione fra oggetti distribuiti"

Transcript

1 Comunicazione fra oggetti distribuiti Livelli Middleware Trasparenza e implementazione La trasparenza - come per le chiamate di locali RMI RPC Eventi di metodo remoto - gli oggetti remoti ricevono le RMI interfaccia meccanismo per la cliente servente come primitiva di un linguaggio di programmazione asincrona agli oggetti di eventi Analogia con l di un metodo (locale) e la chiamata di (locale) Diversa implementazione Servizio a livello RPC è un modulo che interfaccia per esportare operazioni su un tipo di dato astratto o risorsa Specifica I parametri di I/O (input al servente, ) (output al cliente nel reply) Se i parametri sono passati per reference indicare se sono I o O o I/O Esecuzione (non si può usare l ambiente globale del chiamante) Non si possono usare puntatori a locazioni di memoria S. Balsamo Università Ca Foscari di Venezia 1 Applicazioni RMI, RPC ed eventi Protocollo Request Reply Rappresentazione di dati esterni Sistema Operativo Trasparenza - di locazione - dai protocolli - dalla piattaforma (s.o. e hw) - dal linguaggio di programmazione con uso di interfacce (es. Corba IDL) Middleware livelli SD.5.2 MA RPC più soggette a guasti -> minor trasparenza per distinguere locale/remoto interfacce diverse se non c è trasparenza anche diverse implementazioni Implementazione interfaccia supporto alla RPC, supporto a RMI integrazione nel linguaggio di programmazione usuale marshalling connessione alla del server messaggi request e reply binding connessione del server Interfaccia programmi come insieme di moduli comunicanti identificazione di procedure all interno di cliente e servente o dei moduli inclusa nei messaggi di richiesta Procedure stub cliente converte la chiamata locale in servente seleziona la adatta (con l identificatore) decodifica gli argomenti - la esegue - ricodifica il risultato SD.5.3 Binding Interfacce Esempio CORBA IDL Collegamento nome -> oggetto (identificatore) Es: servizio -> porta del server (identificatore di connessione) Es: Unix indirizzo socket (indirizzo IP, numero porta) Es: Mach, Amoeba, Chorus indirizzo porta indipendente dalla locazione Se il cliente usa l indirizzo IP dell host è dipendente dalla locazione e in caso di modifica di allocazione del server, il cliente deve essere ricompilato Binder servizio di collegamento nomi -> porte del server rende visibili i nomi delle porte dei server ai clienti Es: procedure Nel server: register(nome_servizio: stringa; porta_servizio:porta; versione:int); withdraw (nome_servizio: stringa; porta_servizio:porta; versione:int); Nel client: Lookup (nome_servizio: stringa; versione:int): porta; SD.5.4 I moduli sono implementati in modo da rendere trasparente la realizzazione del operazioni. L interfaccia contiene le sole informazioni utili per l uso dei metodi invocati. Interfaccia per RPC o RMI. Non vi è accesso diretto alle variabili del modulo. Se il middleware permette diversi linguaggi di programmazione (es. CORBA), si usa un linguaggio di definizione di interfaccia (IDL - Interface Definition Language) - specifica la notazione per def. le interfacce con specifica dei parametri (I/O e tipo) Interfaccia di servizi - specifica di procedure rese disponibili al cliente Interfaccia - specifica i metodi di un oggetto remoto che sono invocabili da altri processi, indica gli argomenti I/O NON si ha mai l accesso diretto alle variabili Esempi: CORBA IDL (IDL per RMI), Sun XDR (IDL per RPC), DCE(Ditributed Common Object Model) IDL, DCE (Distributed Computing Environment, OSF) IDL JAVA RMI: integrazione RMI in un linguaggio OO SD.5.5 // In file Person.idl struct Person { string name; string place; long year; Nome interfaccia ; interface PersonList { readonly attribute string listname; void addperson(in Person p) ; void getperson(in string name, out Person p); long number(); Metodi disponibili ad un RMI che implementa questa interfaccia SD.5.6 1

2 Modello orientato ad oggetti Metodi di e locale Un oggetto remoto e la sua interfaccia Modello orientato ad oggetti è naturale in ambito distribuito Insieme di oggetti - insieme di dati + metodi Riferimenti ad oggetti (object reference) valori - possono essere passati come argomenti o ottenuti come risultati Interfacce : definizione dei metodi (tipo degli argomenti, valori risultato, eccezioni) senza riferimento all implementazione Metodi : sono implementati se compaiono nell interfaccia sono invocati -> modifica lo stato dell oggetto invocato può causare altre invocazioni possono avvenire eccezioni: reazioni ad azioni inaspettate o errori A B C locale locale E locale D F interfaccia Data m1 m2 implementazione { m3 dei metodi m4 m5 m6 Java: una classe può implementare più interfacce i metodi di una interfaccia possono essere implementati da qualsiasi classe Necessità di tecniche di garbage collection per il recupero di spazio di memoria di oggetti non più invocati B e F oggetti remoti Modello cliente-servente Reference - identificatore di oggetto remoto interfaccia - i metodi sono implementati dalla classe dell oggetto remoto Interfaccia : specifica quali metodi possono essere invocati mente SD.5.7 SD.5.8 SD.5.9 Semantica dell Semantica dell Semantiche dell Implementazione della con protocollo Request-Reply Semantiche dell affidabilità della (o della RPC) rispetto al chiamante se in UDP si possono verificare i guasti di: - omissione del messaggio - disordine - duplicazione possibile guasto del processo (crash o arbitrario) => non si può garantire una semantica Exactly Once come per le operazioni locali Semantica dell : scelte implementative - ritrasmissione della richiesta - filtro dei duplicati al servente in caso di ritrasmissione - all arrivo di ritrasmissione: riesecuzione o rinvio risultati => diverse possibili semantiche SD.5.10 Ritrasmissione del messaggio request No Misure di tolleranza ai guasti Filtro dei duplicati Non applicable No Procedura di riesecuzione o ritrasmissione di reply Non applicable Riesegui la Ritrasmetti reply Nella locale la semantica è exactly one Semantica della RPC Semantica della At-least-once At-most-once Maybe SD.5.11 Maybe Almeno una volta Al più una volta nessuna misura di tolleranza ai guasti guasti di omissione ( o risultato perso), crash (server) non riprova la trasmissione il cliente non sa il motivo e se la RMI o RPC è avvenuta ritrasmissione esegue i possibili duplicati guasti di crash (server), guasti arbitrari idempotenza necessaria Esempi: Java RMI at most once CORBA at most once o maybe SUN RPC at least once ritrasmissione senza riesecuzione SD

3 Implementazione RMI Ruolo del proxy e skeleton nei metodi di Ruolo delle procedure stub di cliente e servente nella RPC File di interfaccia in Sun XDR client A proxy per B Request Reply riferimento remoto server skeleton & dispatcher per classe di B remoto B riferimento remoto : realizzano la semantica di riferimento remoto: traduzione del riferimento locale - remoto, tabella di oggetti remoti (inclusi i proxy) Proxy: rende trasparente l, marshalling/unmarshalling Dispatcher: riceve la richiesta e seleziona il metodo invocato Skeleton: (della classe) implementa i metodi nell interfaccia Generate automaticamente in RMI SD.5.13 Programma cliente client process client stub procedure Request Reply server process dispatcher server stub procedure Procedura di servizio Stub: come proxy, rende trasparente la chiamata, esegue marshall Dispatcher: seleziona la corrispondente alla richiesta Server Stub: come skeleton, unmarshall, chiama la server stub, marshall il reply SD.5.14 tipi const MAX = 1000; typedef int FileIdentifier; typedef int FilePointer; typedef int Length; struct Data { int length; char buffer[max]; struct writeargs { FileIdentifier f; FilePointer position; Data data; # programma, # versione struct readargs { FileIdentifier f; FilePointer position; Length length; program FILEREADWRITE { version VERSION { void WRITE(writeargs)=1; 1 Data READ(readargs)=2; 2 =2; = 9999; numero SD.5.15 Notifica di eventi Room system Event Service Un oggetto può re eventi che vengono rilevati da altri oggetti in sistemi distribuiti: gli oggetti possono essere in diverse locazioni paradigma publish - subscribe - un oggetto che genera eventi pubblica il tipo di evento che può essere rilevato - un oggetto che vuole ricevere esegue una subscribe ai tipi di evento di interesse : oggetto che rappresenta un evento (publisher) Genera evento () Tipi di evento, attributi di evento - usati da sottoscrizione e Notifica evento Info update External source Information provider Information provider External source Scopo: disaccoppiare publisher e event service - mantiene una base di dati di eventi pubblicati e di interesse - usato da publisher per generare eventi e da per indicare quali sono gli eventi di interesse al fine di ricevere la (publisher) Modi di re: Genera evento Event Service Notifica evento Subscribe (quali) () 1. Notifica diretta 2. Notifica via observer 3. Notifica via observer, ma l oggetto è esterno all E.S. e viene interrogato dall observer Anche catena di più observers per la consegna della Eterogeneità - asincronia SD.5.16 SD.5.17 SD

4 Architettura per la di eventi distribuiti Observer - Esempio :JINI JAVA RMI 3. observer Event service observer Diverse semantiche possibili (garanzie di consegna) (e.g. vincoli real-time) SD.5.19 Processi observer con diversi compiti: - forward observer consegna (spedizione) di da parte di più oggetti - filtro di riduzione del numero di notifiche ricevute da un observer rispetto a vincoli (predicati) sul loro contenuto - modello di eventi interesse a specifiche relazioni fra eventi - mailbox di notifiche introduce un ritardo nella consegna della qualora il non fosse pronto (guasti) Esempio: Jini, specifica di eventi distribuiti in una Java Virtual Machine (JVM) per ricevere notifiche da oggetti in un altra JVM Oggetti: - generatore di eventi - Remote Event Listener - riceve le notifiche - Eventi remoti - notifiche - Third-party agents - observer Classi: RemoteEvent Interfacce: RemoteEventListener con metodo notify (per ricevere le notifiche) EventGenerator con metodo register (per sottoscrivere eventi) SD.5.20 Estensione del modello ad oggetti JAVA per supportare oggetti distribuiti in linguaggio JAVA Metodi di con la stessa sintassi dei metodi di locale, ma con diversa semantica Interfacce remote definite in linguaggio JAVA Gestione delle RemoteException Esempio: lavagna condivisa da un gruppo di utenti con oggetti grafici il servente gestisce e mostra le forme grafiche inserite dai clienti Estensione di una interfaccia Remote nel package java.rmi Interfacce remote Shape, ShapeList Classe GraphicalObject che implementa l interfaccia Seralizable Gli oggetti sia locali che remoti possono essere sia argomento che risultato di una interfaccia ; gli oggetti remoti sono indicati con il nome del interfaccia Gli argomenti e risultato di RMI devono essere serializzabili Se chi riceve un oggetto per valore non ha la classe, questa viene scaricata automaticamente => trasparenza SD.5.21 Interfacce remote Java Shape e ShapeList Interfacce remote Java Shape e ShapeList JAVA RMI Registry public interface Shape extends Remote { int getversion() throws RemoteException; GraphicalObject getallstate() throws RemoteException; 1 public interface ShapeList extends Remote { Shape newshape(graphicalobject g) throws RemoteException; 2 Vector allshapes() throws RemoteException; int getversion() throws RemoteException; Dich. interfaccia Package Cliente Reference NewShape genera una istanza di oggetto grafico Servente Genera un oggetto remoto con stato GraphicalObject Nota: se chi riceve un oggetto passato per valore non ha la classe corrispondente, questa viene scaricata automaticamente -> trasparenza RMI Registry Nome binder per Java RMI eseguito su tutti i server con oggetti remoti ogni istanza ha una tabella di corrispondenze nome -> riferimento ad oggetto remoto presenti sul nodo (nota: non è un servizio globale, ma i nomi sono locali) accesso con i metodi della classe Naming //nome_computer:porta/nome_oggetto dove nome_comupter:porta localizza RMI registry sul nodo i clienti effettuano la ricerca con lookup diretta ad un dato nodo Esempio: classe ShapeListServer implementa l interfaccia ShapeList classe ShapeServer implementa l interfaccia Shape SD.5.22 SD.5.23 SD

5 Classe Naming di Java RMI registry Classe Java ShapeListServer con il metodo main Classe Java ShapeListServant che implementa l interfaccia ShapeList void bind (String name, Remote obj) Metodo usato dal server per registrare l identificatore di un oggetto remoto per nome void rebind (String name, Remote obj) Metodo alternativo usato dal server per registrare un oggetto remoto per nome, se il nome è già legato ad un riferimento di oggetto remoto si ha una eccezione. void unbind (String name, Remote obj) Metodo che elimina un collegamento. Remote lookup (String name) Metodo usato dal cliente per cercare un oggetto per nome. Restituisce unriferimento di oggetto remoto. String [] list() Metodo che restituisce un vettore di stringhe contenente i nomi collegati nel registro. public class ShapeListServer{ Crea una istanza di ShapeListServant public static void main(string args[]){ System.setSecurityManager(new RMISecurityManager()); try{ ShapeList ashapelist = new ShapeListServant(); 1 Naming.rebind("Shape List", ashapelist ); 2 System.out.println("ShapeList server ready"); catch(exception e) { System.out.println("ShapeList server main " + e.getmessage()); Tipo dell RMI per riferire l oggetto remoto metodo RMI registry import java.rmi.server.unicastremoteobject; Fornisce oggetti remoti vivi solo entro il processo creato public class ShapeListServant extends UnicastRemoteObject implements ShapeList { private Vector thelist; // contiene la lista of Shapes 1 private int version; public ShapeListServant()throws RemoteException{... public Shape newshape(graphicalobject g) throws RemoteException { 2 version++; Shape s = new ShapeServant( g, version); 3 thelist.addelement(s); return s; Costruisce un nuovo oggetto remoto Inserisce la forma creata public Vector allshapes()throws RemoteException{... public int getversion() throws RemoteException {... Restituisce Shape, interfaccia dell oggetto remoto SD.5.25 SD.5.26 Metodo: permette ai clienti di creare un oggetto remoto SD.5.27 Cliente Java dishapelist Callback Classi che supportano Java RMI import java.rmi.server.*; public class ShapeListClient{ public static void main(string args[]){ Abilita la sicurezza Java per proteggere il server RMI System.setSecurityManager(new RMISecurityManager()); ShapeList ashapelist = null; Cerca un oggetto remoto try{ ashapelist = (ShapeList) Naming.lookup("//bruno.ShapeList") ; 1 Vector slist = ashapelist.allshapes(); RMI 2 catch(remoteexception e) {System.out.println(e.getMessage()); catch(exception e) {System.out.println("Client: " + e.getmessage()); Metodo SD.5.28 Invece di avere richieste continue cliente -> il servente, per identificare l occorrenza di eventi, può re al cliente tale occorrenza Cliente crea un oggetto remoto che implementa una interfaccia con un metodo che il Servente può chiamare callback object Servente avverte il Cliente interessato all oggetto che è indicato come reference nell oggetto callback mantiene una lista Evento quando occorre il Servente chiama tutti i Clienti interessati Vantaggi evita chiamate ripetute di clienti a serventi che possono causare un degrado delle prestazioni del servente può migliorare il tempo di aggiornamento del cliente Svantaggi il servente deve mantenere una lista aggiornata degli oggetti callback dei clienti interessati il servente deve realizzare una serie di RMI sincrone a tutti i callback nella lista SD.5.29 RemoteObject RemoteServer Activatable UnicastRemoteObject <servant class> Struttura di ereditarietà delle classi che supportano i server JAVA RMI SD

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

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

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

Dettagli

Oggetti Distribuiti e Java RMI

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

Dettagli

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

Remote Method Invocation

Remote Method Invocation JAVA RMI LSO 2008 Remote Method Invocation Perché RMI? L obiettivo è di permettere ad una applicazione in esecuzione su una macchina locale di invocare i metodi di un oggetto in esecuzione su un altro

Dettagli

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

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

Dettagli

Applicazioni distribuite e sistemi ad oggetti distribuiti

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

Dettagli

10. Invocazione di Metodi Remoti

10. Invocazione di Metodi Remoti 10. Invocazione di Metodi Remoti Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Programmazione Distribuita.

Dettagli

Organizzazione della lezione. Modelli di programmazione: RPC e RMI Trasparenza: un dibattito Un esempio di implementazione di invocazione remota

Organizzazione della lezione. Modelli di programmazione: RPC e RMI Trasparenza: un dibattito Un esempio di implementazione di invocazione remota Organizzazione della lezione 10. Invocazione di Metodi Remoti Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Modelli di programmazione:

Dettagli

Laurea in Informatica. "Programmazione Distribuita" - Prof. Scarano. A.A Università di Salerno 1. Organizzazione della lezione

Laurea in Informatica. Programmazione Distribuita - Prof. Scarano. A.A Università di Salerno 1. Organizzazione della lezione 12. Invocazione di Metodi Remoti Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Modelli di programmazione:

Dettagli

Esercizi su Callback RMI

Esercizi su Callback RMI Esercizi su Callback RMI Esercitazione di Laboratorio di Programmazione di Rete A Daniele Sgandurra Università di Pisa 03/12/2008 Esercizio Settimana Scorsa Sviluppare un applicazione RMI per la gestione

Dettagli

Corso di Reti di Calcolatori LA

Corso di Reti di Calcolatori LA Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori LA RMI: callback Silvia Vecchi Anno accademico 2003/2004 RMI: Callback 1 Callback (1) Molte applicazioni richiedono

Dettagli

Esercitazione di Sistemi Distribuiti

Esercitazione di Sistemi Distribuiti Scenario generale Esercitazione di Sistemi Distribuiti Java RMI Leonardo Mariani client object (2) estrazione dei riferimenti ad oggetti remoti Object Registry (3) invocazione remota (4) eventuale invio

Dettagli

Remote Procedure Call

Remote Procedure Call Remote Procedure Call Concetti generali e principi di progettazione Architettura (schema concettuale) pack args client APPLICATION LEVEL local call local return suspended execution STUB unpack results

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

Esercizi RMI. Laboratorio di Programmazione di Rete A 5/12/2007. Esercitazione di Laboratorio

Esercizi RMI. Laboratorio di Programmazione di Rete A 5/12/2007. Esercitazione di Laboratorio Esercitazione di Laboratorio 5/12/2007 Sviluppare un applicazione RMI per la gestione di un elezione. Il server esporta un insieme di metodi: public void vota(string nome): accetta come parametro il nome

Dettagli

Organizzazione della lezione. Lezione 11 Oggetti Distribuiti. Marshalling: : perché. Rappresentazione Esterna dei Dati

Organizzazione della lezione. Lezione 11 Oggetti Distribuiti. Marshalling: : perché. Rappresentazione Esterna dei Dati Lezione 11 Oggetti Distribuiti Vittorio Scarano Corso di Programmazione Distribuita (23-24) Laurea di I livello in Informatica Università degli Studi di Salerno,, 2 Marshalling: : perché Rappresentazione

Dettagli

7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità:

7 Esercitazione (svolta): Callback. Polling. Java RMI: callback. Server. Server. Client. Client. due possibilità: 7 Esercitazione (svolta): due possibilità: Java RMI: callback Molte applicazioni richiedono un meccanismo publish/subscribe I partecipanti (client) necessitano di notifiche da parte del coordinatore (server)

Dettagli

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

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

Dettagli

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

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

Dettagli

Organizzazione della lezione. Invocazione remota di metodi fai-da-te. Lezione 12 Introduzione a Remote Method Invocation

Organizzazione della lezione. Invocazione remota di metodi fai-da-te. Lezione 12 Introduzione a Remote Method Invocation Organizzazione della lezione Lezione 12 Introduzione a Remote Method Invocation Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi

Dettagli

Lezione n.9. RMI: Remote Method Invocation 1/12/2009 Andrea Corradini

Lezione n.9. RMI: Remote Method Invocation 1/12/2009 Andrea Corradini Università degli Studi di Pisa Dipartimento di Informatica Lezione n.9 LPR-B-09 RMI: Remote Method Invocation 1/12/2009 Andrea Corradini Lezione 9: RMI - Remote Method Invocation Andrea Corradini 1 Da

Dettagli

PROVA FINALE Ingegneria del software

PROVA FINALE Ingegneria del software PROVA FINALE Ingegneria del software Ing. Jody Marca jody.marca@polimi.it Laboratorio N 6 Cosa faremo oggi 2 Comunicazione RMI Comunicazione RMI Multi-Thread Remote Method Invocation 3 L obiettivo è di

Dettagli

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Esercitazione 7 (svolta) Java RMI e Riferimenti Remoti Un RMI Registry Remoto Luca Foschini Anno accademico 2018/2019

Dettagli

Organizzazione della lezione. Lezione 16 Remote Method Invocation - 4. Modello Client Server. Le classi di Archivio Client-Server

Organizzazione della lezione. Lezione 16 Remote Method Invocation - 4. Modello Client Server. Le classi di Archivio Client-Server Organizzazione della lezione Lezione 16 Remote Method Invocation - 4 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

Dettagli

CORSO PAS Laboratorio di RETI

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

Dettagli

SCD. Il modello CORBA. Sistemi distribuiti: il modello CORBA. Architettura del modello 2. Architettura del modello 3. Architettura del modello 1

SCD. Il modello CORBA. Sistemi distribuiti: il modello CORBA. Architettura del modello 2. Architettura del modello 3. Architettura del modello 1 Architettura del modello 2 Il modello CA Anno accademico 2017/18 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Modello cliente-servente a oggetti distribuiti La

Dettagli

Esercizi su Java RMI. Progetto di Cliente / Servitore e supporto. Possibile tabella mantenuta dal server

Esercizi su Java RMI. Progetto di Cliente / Servitore e supporto. Possibile tabella mantenuta dal server Esercizi su Java RMI Progetto di Cliente / Servitore e supporto Un progetto RMI si deve basare sempre sulla interfaccia remota e sulle classi del cliente e del servitore più su alcune classi di supporto

Dettagli

Organizzazione della lezione. 18. Applicazioni ed Esempi (2) II prova intercorso. Prove scritte degli esami successivi

Organizzazione della lezione. 18. Applicazioni ed Esempi (2) II prova intercorso. Prove scritte degli esami successivi Organizzazione della lezione 18. Applicazioni ed Esempi (2) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della

Dettagli

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

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

Dettagli

15. Java Remote Method Invocation (3)

15. Java Remote Method Invocation (3) 15. Java Remote Method Invocation (3) Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Programmazione Distribuita.

Dettagli

Organizzazione della lezione. Lezione 15 Remote Method Invocation - 3. Lo schema del Factory Design Pattern - 1. Factory design pattern

Organizzazione della lezione. Lezione 15 Remote Method Invocation - 3. Lo schema del Factory Design Pattern - 1. Factory design pattern Organizzazione della lezione Lezione 15 Remote Method Invocation - 3 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

Dettagli

18. Applicazioni ed Esempi (2)

18. Applicazioni ed Esempi (2) 18. Applicazioni ed Esempi (2) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Organizzazione della

Dettagli

ASD: Sistemi Distribuiti (Prof. Scarano) 20/05/2002

ASD: Sistemi Distribuiti (Prof. Scarano) 20/05/2002 Organizzazione della lezione 12. Java: Remote Method Invocation (3) Vittorio Scarano Algoritmi e Strutture Dati: Sistemi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno Il

Dettagli

Agenti Mobili in Java RMI

Agenti Mobili in Java RMI Agenti Mobili in Java RMI Un agente è una computazione che agisce per conto di un host presso un altro host. Gli agenti in Java RMI sfruttano due peculiarità di Java: Serializzazione, attraverso cui gli

Dettagli

12. Java: Remote Method Invocation (3)

12. Java: Remote Method Invocation (3) 12. Java: Remote Method Invocation (3) Vittorio Scarano Algoritmi e Strutture Dati: Sistemi Distribuiti Corso di Laurea in Informatica Università degli Studi di Salerno Organizzazione della lezione Il

Dettagli

Lezione n.10 LPR Informatica Applicata RMI Approfondimenti Callback. 15/05/2012 Laura Ricci

Lezione n.10 LPR Informatica Applicata RMI Approfondimenti Callback. 15/05/2012 Laura Ricci Lezione n.10 LPR Informatica Applicata RMI Approfondimenti Callback 15/05/2012 Laura Ricci Laura Ricci 1 RMI: IL MECCANISMO DELLE CALLBACK RMI utilizza una comunicazione sincrona a rendez vouz esteso:

Dettagli

Architettura a oggetti distribuiti

Architettura a oggetti distribuiti Luca Cabibbo Architettura dei Sistemi Software Architettura a oggetti distribuiti dispensa asw435 marzo 2018 First Law of Distributed Object Design: Don t distribute your objects! Martin Fowler 1 - Fonti

Dettagli

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

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

Dettagli

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

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

Dettagli

SCD. Comunicazione. Sistemi distribuiti: comunicazione. UniPD - SCD 2010/11 - Corso di Sistemi Concorrenti e Distribuiti 1. Evoluzione di modelli

SCD. Comunicazione. Sistemi distribuiti: comunicazione. UniPD - SCD 2010/11 - Corso di Sistemi Concorrenti e Distribuiti 1. Evoluzione di modelli Evoluzione di modelli Comunicazione Anno accademico 2010/11 Sistemi Concorrenti e Distribuiti Tullio Vardanega, tullio.vardanega@math.unipd.it SCD Remote Procedure Call (RPC) Trasparente rispetto allo

Dettagli

Architetture distribuite Alcuni esempi: Alcuni commenti sul ruolo del registry. Import Interfaccia remota Due metodi remoti

Architetture distribuite Alcuni esempi: Alcuni commenti sul ruolo del registry. Import Interfaccia remota Due metodi remoti Organizzazione della lezione 17. Applicazioni ed Esempi Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Architetture distribuite

Dettagli

Compute engine generici in RMI

Compute engine generici in RMI Compute engine generici in RMI Esempio: Calcolo del prodotto scalare Un unico server offre il servizio di calcolo del prodotto scalare tra vettori di interi Un client richiede al server il calcolo del

Dettagli

Corso di Reti di Calcolatori T

Corso di Reti di Calcolatori T Università degli Studi di Bologna Scuola di Ingegneria Corso di Reti di Calcolatori T Sistemi con Chiamate Remote Antonio Corradi Anno accademico 2018/2019 RPC e simili 1 SEMANTICA della COMUNICAZIONE

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 0 (svolta) Multithreading in Java Luca Foschini Anno accademico 2009/2010 Esercitazione 0 1 Modello

Dettagli

Organizzazione della lezione. 15. Java Remote Method Invocation (3) Lo schema del Factory Design Pattern - 1. Factory design pattern

Organizzazione della lezione. 15. Java Remote Method Invocation (3) Lo schema del Factory Design Pattern - 1. Factory design pattern Organizzazione della lezione 15. Java Remote Method Invocation (3) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Il design pattern

Dettagli

Lezione n.10 LPR. RMI CallBacks

Lezione n.10 LPR. RMI CallBacks Lezione n.10 LPR 12/05/2008 RMI CALLBACKS Un client può richiedere servizi ad un servente mediante RMI. Talvolta è utile poter consentire al servente di contattare il client il servente notifica degli

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

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

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

Dettagli

Sommario (1) Object Request Broker

Sommario (1) Object Request Broker Università di Roma RomaTre Sommario (1) Sommario (2) Introduzione a CORBA Claudio Morgia 1999 Architetture distribuite Object Request Broker Contratti IDL IR + DSI + DII Strutture Client, Object Implementation

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

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma

INTRODUZIONE ALLA PROGRAMMAZIONE AD ALTO LIVELLO IL LINGUAGGIO JAVA. Fondamenti di Informatica - Programma 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

16. Java Remote Method Invocation (4)

16. Java Remote Method Invocation (4) 16. Java Remote Method Invocation (4) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Oggetti attivabili

Dettagli

Organizzazione della lezione. 16. Java Remote Method Invocation (4) Le classi ed interfacce di RMI. Persistenza. Oggetti attivabili

Organizzazione della lezione. 16. Java Remote Method Invocation (4) Le classi ed interfacce di RMI. Persistenza. Oggetti attivabili Organizzazione della lezione 16. Java Remote Method Invocation (4) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Oggetti attivabili

Dettagli

E. Lodolo

E. Lodolo L implementazione di COM Enrico Lodolo e.lodolo@bo.nettuno.it 1 Oggetti COM e server Indipendenza dalla collocazione fisica: l applicazione che usa un oggetto COM (client) non sa dove risiede effettivamente

Dettagli

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

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

Dettagli

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 6 (svolta) Java RMI Luca Foschini Anno accademico 2010/2011 Esercitazione 6 1 Specifica: il Client

Dettagli

Serializzazione Java. Serializzazione. Calendario esercitazioni e laboratori. Applicazioni della Serializzazione

Serializzazione Java. Serializzazione. Calendario esercitazioni e laboratori. Applicazioni della Serializzazione Calendario esercitazioni e laboratori 29 Marzo esercitazione 12 Aprile esercitazione 26 Aprile laboratorio (lab721) 2 Maggio laboratorio (lab721) 3 Maggio esercitazione 9 Maggio laboratorio (???) 17 Maggio

Dettagli

Corso di Reti di Calcolatori M

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

Dettagli

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati

Activation In sintesi: è inutile avere attivi degli oggetti se non vengono utilizzati Activation In generale i Sistemi ad oggetti distribuiti sono progettati per lavorare con oggetti persistenti. Dato che questi sistemi saranno composti da migliaia (forse milioni) di tali oggetti, sarebbe

Dettagli

Programmazione distribuita

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

Dettagli

Organizzazione della II prova intercorso ed esami. L accesso al registry per il rebind() Una soluzione con registry multipli Alcuni commenti finali

Organizzazione della II prova intercorso ed esami. L accesso al registry per il rebind() Una soluzione con registry multipli Alcuni commenti finali Organizzazione della lezione 18. Applicazioni ed Esempi (2) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della

Dettagli

UnicastRemoteObject. Massimo Merro Programmazione di Rete 103 / 124

UnicastRemoteObject. Massimo Merro Programmazione di Rete 103 / 124 UnicastRemoteObject Java RMI fornisce diverse classi base per definire server remoti: UnicastRemoteObject < RemoteServer < RemoteObject dove A < B significa che A è una sottoclasse di B. UnicastRemotObject

Dettagli

Il linguaggio Java. Oggetto remoto. Remote Method Invocation (RMI) Oggetto remoto: oggetto i cui metodi possono essere invocati attraverso la rete

Il linguaggio Java. Oggetto remoto. Remote Method Invocation (RMI) Oggetto remoto: oggetto i cui metodi possono essere invocati attraverso la rete Il linguaggio Java Remote Method Invocation (RMI) Oggetto remoto Oggetto remoto: oggetto i cui metodi possono essere invocati attraverso la rete Client Server 2 Schema di principio oggetto client oggetto

Dettagli

RMI remote method invocation

RMI remote method invocation RMI remote method invocation Marco Danelutto Lab. Programmazione di Rete :: A.A. 2007-2008 Concetto RPC/RMI invocazione di procedura/metodo o.method(params); eseguita su oggetto remoto: metodo per ottenere

Dettagli

Organizzazione della lezione. Lezione 17 Remote Method Invocation - 5. Remote. Le classi ed interfacce di RMI. Persistenza. Oggetti attivabili

Organizzazione della lezione. Lezione 17 Remote Method Invocation - 5. Remote. Le classi ed interfacce di RMI. Persistenza. Oggetti attivabili Organizzazione della lezione Lezione 17 Remote Method Invocation - 5 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

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

Compute engine generici in RMI

Compute engine generici in RMI Compute engine generici in RMI Esempio: Calcolo del prodotto scalare Un unico server offre il servizio di calcolo del prodotto scalare tra vettori di interi Un client richiede al server il calcolo del

Dettagli

Piattaforme Software Distribuite. Roberto Beraldi

Piattaforme Software Distribuite. Roberto Beraldi Piattaforme Software Distribuite Roberto Beraldi Middleware classification Middleware Synchronous Approaches (Tightly coupled) Asynchronous approaches (Loosely coupled) Interprocess communication and Serialization

Dettagli

RPC based middleware

RPC based middleware RPC based middleware Introduzione Componente Applicazione SW WIRE PROTOCOL Componente Applicazione SW SOAP APPLICAZIONE RPC Wire Protocol: protocollo visto a livello applicazione SW Le componenti SW girano

Dettagli

Serializzazione Java. Serializzazione. Complicazioni 1/2. Complicazioni 2/2. Calendario esercitazioni e laboratori. Applicazioni della Serializzazione

Serializzazione Java. Serializzazione. Complicazioni 1/2. Complicazioni 2/2. Calendario esercitazioni e laboratori. Applicazioni della Serializzazione Calendario esercitazioni e laboratori Martedì 17 Aprile Esercitazione Martedì 24 Aprile Esercitazione Giovedì 3 Maggio Laboratorio (lab721, 9.30-12.30) Giovedì 10 Maggio Laboratorio (lab721, 9.30-12.30)

Dettagli

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

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

Dettagli

Lezione n.8. RMI: Remote Method Invocation. 1/12/2009 Vincenzo Gervasi

Lezione n.8. RMI: Remote Method Invocation. 1/12/2009 Vincenzo Gervasi Università degli Studi di Pisa Dipartimento di Informatica Lezione n.8 LPR-A-09 RMI: Remote Method Invocation 1/12/2009 Vincenzo Gervasi Lezione U 8: RMI - Remote Method Invocation Vincenzo Gervasi 1 Da

Dettagli

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 7 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 7 SE PROGRAMMER

Dettagli

Il linguaggio Java. Remote Method Invocation (RMI)

Il linguaggio Java. Remote Method Invocation (RMI) Il linguaggio Java Remote Method Invocation (RMI) RMI MECCANISMI BASE 2 Oggetto remoto Oggetto remoto: oggetto i cui metodi possono essere invocati attraverso la rete Client Server 3 Schema di principio

Dettagli

Organizzazione della lezione. Lezione 13. Applicazioni ad oggetti distribuite. Remote Method Invocation (RMI)

Organizzazione della lezione. Lezione 13. Applicazioni ad oggetti distribuite. Remote Method Invocation (RMI) Organizzazione della lezione Lezione Remote Method Invocation Vittorio Scarano Corso di Programmazione Distribuita (00-00) Laurea di I livello in Informatica Università degli Studi di Salerno Remote Method

Dettagli

Programmazione I - corso B a.a prof. Viviana Bono

Programmazione I - corso B a.a prof. Viviana Bono Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 2009-10 prof. Viviana Bono Blocco 12 Riepilogo e complementi sui tipi Ripasso del sistema di tipi

Dettagli

Programmazione a Oggetti Lezione 11. Eccezioni e Packages

Programmazione a Oggetti Lezione 11. Eccezioni e Packages Programmazione a Oggetti Lezione 11 Eccezioni e Packages Sommario Eccezioni Sollevamento Cattura Trattamento Packages e visibilità Eccezioni I programmi spesso si trovano ad operare in condizioni anomale:

Dettagli

Organizzazione della lezione. Lezione 14 Remote Method Invocation - 2. Remote. Il diagramma di RemoteHello

Organizzazione della lezione. Lezione 14 Remote Method Invocation - 2. Remote. Il diagramma di RemoteHello Organizzazione della lezione Lezione 14 Remote Method Invocation - 2 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

Dettagli

Contesto e motivazioni Architettura e concetti di base Componenti di RMI RMIRegistry Interfacce, eccezioni e classi Lo sviluppo di una applicazione L

Contesto e motivazioni Architettura e concetti di base Componenti di RMI RMIRegistry Interfacce, eccezioni e classi Lo sviluppo di una applicazione L CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell Informazione Politecnico di Milano Programmazione Object Oriented in Java Java Remote Method Invocation Docente: Diego Peroni CEFRIEL

Dettagli

TIPI PRIMITIVI E CLASSI WRAPPER

TIPI PRIMITIVI E CLASSI WRAPPER I tipi primitivi come oggetti Package java.lang In varie situazioni, può essere comodo poter trattare i tipi primitivi come oggetti per passarli per riferimento a una funzione quando una funzione pretende

Dettagli

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011

Fondamenti di Informatica 1. Prof. B.Buttarazzi A.A. 2010/2011 Fondamenti di Informatica 1 Prof. B.Buttarazzi A.A. 2010/2011 Sommario Paradigma OO Oggetti e Classi Metodi Parametri Variabili di istanza Costruttori Esercizi Paradigma Object-Oriented Il paradigma OO

Dettagli

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

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

Dettagli

Le basi del linguaggio Java

Le basi del linguaggio Java Le basi del linguaggio Java Compilazione e interpretazione Quando si compila il codice sorgente scritto in Java, il compilatore genera il codice compilato, chiamato bytecode. È un codice generato per una

Dettagli

Corso di Reti di Calcolatori M

Corso di Reti di Calcolatori M Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori M CORBA - Implementazione Invocazione Dinamica e Invocazioni Asincrone Luca Foschini Anno accademico 2014/2015 Agenda

Dettagli

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind()

Organizzazione della lezione. Lezione 18 Remote Method Invocation - 6. (con callback) L accesso al registry per il rebind() Organizzazione della lezione Lezione 18 Remote Method Invocation - 6 Vittorio Scarano Corso di Programmazione Distribuita (2003-2004) Laurea di I livello in Informatica Università degli Studi di Salerno

Dettagli

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

Programmazione Java Struttura di una classe, Costruttore, Riferimento this Programmazione Java Struttura di una classe, Costruttore, Riferimento this romina.eramo@univaq.it http://www.di.univaq.it/romina.eramo/tlp Roadmap > Struttura di una classe > Costruttore > Riferimento

Dettagli

RMI: metodi equals e hashcode

RMI: metodi equals e hashcode RMI: metodi equals e hashcode Per verificare se due oggetti remoti contengono gli stessi dati, la chiamata indirizzata al metodo equals() avrebbe bisogno di contattare i server dove si trovano gli oggetti

Dettagli

RMI e Firewall. Una soluzione è offerta dal transport layer di RMI stesso

RMI e Firewall. Una soluzione è offerta dal transport layer di RMI stesso Firewall Ogni applicazione di rete, che opera fuori da quelli che sono i confini di una rete locale, incontra inevitabilmente i cosiddetti firewall Tipicamente i firewall bloccano tutto il traffico di

Dettagli

Distributed Garbage Collection

Distributed Garbage Collection Distributed Garbage Collection Una delle peculiarità di Java RMI è la presenza di un meccanismo di garbage collection distribuita (DGC) in grado di recuperare la memoria occupata da server remoti inaccessibili,

Dettagli

OCA JAVA 8 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO

OCA JAVA 8 SE PROGRAMMER I DOCENTE: DOTT. FAUSTO DELL ANNO CENTRO STUDI ULISSE Via Buccino, n. 22 - C.a.p. 84018 - Scafati (SA) Tel. Fax. 081.19970299-339.2365416-349.4152010 E-mail: info@centrostudiulisse.it - www.centrostudiulisse.it OCA JAVA 8 SE PROGRAMMER

Dettagli

Riuso di classi. Ereditarietà. Ereditarietà. Spesso si ha bisogno di classi simili

Riuso di classi. Ereditarietà. Ereditarietà. Spesso si ha bisogno di classi simili Riuso di classi Spesso si ha bisogno di classi simili Si vuole cioè riusare classi esistenti per implementare attributi e metodi leggermente diversi Non è pratico copiare la classe originaria e modificarne

Dettagli

Lezione n.10. RMI CallBacks 9/12/2009 Andrea Corradini

Lezione n.10. RMI CallBacks 9/12/2009 Andrea Corradini Università degli Studi di Pisa Dipartimento di Informatica Lezione n.10 LPR-B-09 RMI CallBacks 9/12/2009 Andrea Corradini Lezione 10: RMI CallBacks - Miscellanea Andrea Corradini 1 RMI: PASSAGGIO DI PARAMETRI

Dettagli

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

9 - Array. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 9 - Array Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it Corso di Laurea

Dettagli

JAVA - I/O System. Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita:

JAVA - I/O System. Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita: JAVA - I/O System Il JAVA considera tutte i flussi da e verso l esterno, come stream di byte. Questi possono essere di ingresso o di uscita: 1. InputStream: Flusso di byte in ingresso. Con questa classe

Dettagli