Comunicazione fra oggetti distribuiti
|
|
- Annibale Torre
- 5 anni fa
- Visualizzazioni
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 RMI RPC invocazione di metodo remoto - gli oggetti remoti ricevono le RMI interfaccia remota meccanismo per la comunicazione cliente servente come primitiva di un
DettagliLPR 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
DettagliOggetti 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
DettagliChiamata 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
DettagliRemote 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
DettagliApplicazioni 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
DettagliApplicazioni 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
Dettagli10. 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.
DettagliOrganizzazione 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:
DettagliLaurea 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:
DettagliEsercizi 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
DettagliCorso 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
DettagliEsercitazione 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
DettagliRemote 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
DettagliJava 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
DettagliEsercizi 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
DettagliOrganizzazione 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
Dettagli7 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)
DettagliSCD. 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
DettagliInvocazione 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,
DettagliOrganizzazione 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
DettagliLezione 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
DettagliPROVA 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
DettagliCorso 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
DettagliOrganizzazione 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
DettagliCORSO 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
DettagliSCD. 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
DettagliEsercizi 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
DettagliOrganizzazione 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
DettagliArchitetture 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
Dettagli15. 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.
DettagliOrganizzazione 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
Dettagli18. 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
DettagliASD: 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
DettagliAgenti 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
Dettagli12. 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
DettagliLezione 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:
DettagliArchitettura 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
Dettagliinvocazione 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
DettagliSCD. 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
DettagliSCD. 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
DettagliArchitetture 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
DettagliCompute 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
DettagliCorso 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
DettagliCorso 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
DettagliOrganizzazione 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
DettagliLezione 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
DettagliSocket & 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
DettagliInvocazione 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
DettagliSommario (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
DettagliINTRODUZIONE 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
DettagliINTRODUZIONE 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
Dettagli16. 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
DettagliOrganizzazione 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
DettagliE. 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
DettagliCentralizzata Monolitica anni Reti Client Server anni Internet The network is the computer
Distributed Object C o m p utin g "!$#&% ')(+*,#&-).0/2143657*98:.;8
DettagliCorso 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
DettagliSerializzazione 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
DettagliCorso 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
DettagliActivation 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
DettagliProgrammazione 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
DettagliOrganizzazione 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
DettagliUnicastRemoteObject. 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
DettagliIl 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
DettagliRMI 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
DettagliOrganizzazione 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
DettagliIntroduzione 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
DettagliCompute 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
DettagliPiattaforme Software Distribuite. Roberto Beraldi
Piattaforme Software Distribuite Roberto Beraldi Middleware classification Middleware Synchronous Approaches (Tightly coupled) Asynchronous approaches (Loosely coupled) Interprocess communication and Serialization
DettagliRPC 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
DettagliSerializzazione 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)
DettagliCorso 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
DettagliLezione 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
DettagliOCA 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
DettagliIl 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
DettagliOrganizzazione 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
DettagliProgrammazione 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
DettagliProgrammazione 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:
DettagliOrganizzazione 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
DettagliContesto 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
DettagliTIPI 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
DettagliFondamenti 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
DettagliSCD. 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
DettagliLe 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
DettagliCorso 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
DettagliOrganizzazione 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
DettagliProgrammazione 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
DettagliRMI: 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
DettagliRMI 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
DettagliDistributed 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,
DettagliOCA 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
DettagliRiuso 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
DettagliLezione 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
Dettagli9 - 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
DettagliJAVA - 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