Comunicazione fra oggetti distribuiti
|
|
- Alessandra Ruggiero
- 8 anni fa
- Visualizzazioni
Transcript
1 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 linguaggio di programmazione Analogia con l invocazione di un metodo (locale) e la chiamata di procedura (locale) Diversa implentazione 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, procedura) (output al cliente nel reply) Se i parametri sono passati per reference indicare se sono I o O o I/O Esecuzione remota (non si può usare l ambiente globale del chiamante) Non si possono usare puntatori a locazioni di memoria 1 Livelli Middleware Applicazioni RMI, RPC ed eventi Protocollo Request Reply livelli Middleware Rappresentazione di dati esterni Sistema Operativo C5.2 1
2 Trasparenza e implementazione La trasparenza - come per le chiamate di procedura locali MA RPC più soggette a guasti -> minor trasparenza per distinguere locale/remoto interfacce diverse se non c e trasparenza anche diverse implementazioni Implementazione interfaccia supporto alla RPC, supporto a RMI integrazione nel linguaggio di programmazione usuale marshalling connessione alla procedura del server comunicazione messaggi request e reply bindingconnessione 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 remota servente seleziona la procedura adatta (con l ident.) decodifica gli argomenti - la esegue - ricodifica il risultatoc5.3 Binding 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; C5.4 2
3 Interfacce 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 remota - 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 C5.5 Esempio CORBA IDL // In file Person.idl struct Person { string name; string place; long year; ; interface PersonList { readonly attribute string listname; void addperson(in Person p) ; void getperson(in string name, out Person p); long number(); ; C5.6 3
4 Modello orientato ad oggetti 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 Java: una classe può implementare più interfacce i metodo di una interfaccia possono essere implementati da qualsiasi classe Necessità di tecniche di garbage collection per il recuperodi spazio di oggetti non più invocati C5.7 Metodi di invocazione remota e locale A invocazione remota B locale locale C locale E D invocazione remota F B e F oggetti remoti Reference - identificatore di oggetto remoto interfaccia remota - i metodi sono implementati dalla classe dell oggetto remoto C5.8 4
5 Un oggetto remoto e la sua interfaccia remota Oggetto remoto interfaccia remota Data m1 m2 implementazione { m3 dei metodi m4 m5 m6 C5.9 Semantica dell invocazione Misure di tolleranza ai guasti Semantica della invocazione Ritrasmissione del messaggio request Filtro dei duplicati Procedura di riesecuzione o ritrasmissione di reply No Non applicable Non applicable Maybe Sì No Riesegui la procedura At-least-once Sì Sì Ritrasmetti reply At-most-once Nella invocazione locale la semantica è exactly one Semantica della RPC C5.10 5
6 Semantiche dell invocazione Semantiche dell affidabilità della invocazione remota (o della RPC) rispetto al chiamante Maybe nessuna misura di tolleranza ai guasti guasti di omissione (invocazione o risultato perso), crash (server) non riprova la trasmissione il cliente non sa il motivo e se la RMI o RPC è avvenuta Almeno una volta ritrasmissione esegue i possibili duplicati guasti di crash (server), guasti arbitrari idempotenza necessaria Al più una volta ritrasmissione senza riesecuzione C5.11 Implementazione RMI Ruolo del proxy e skeleton nei metodi di invocazione remota client Oggetto A proxy per B Request server skeleton & dispatcher per classe di B Oggetto remoto B Reply Modulo di Modulo di riferimento remoto comunicazione Modulo di comunicazione Modulo di riferimento remoto Modulo di comunicazione: realizzano la semantica di invocazione Modulo di riferimento remoto: traduzione del riferimento locale - remoto, tabella di oggetti remoti (inclusi i proxy) Proxy: rende trasparente l invocazione remota, marshalling/unmarshalling Dispatcher: riceve la richiesta e seleziona il metodo invocato Skeleton: (della classe) implementa i metodi nell interfaccia remota C5.12 6
7 Ruolo delle procedure stub di cliente e servente nella RPC client process server process Request Programma cliente client stub procedure Modulo di comunicazione Reply Modulo di comunicazione dispatcher server stub procedure Procedura di servizio Stub: come proxy, rende trasparente la chiamata remota, esegue marshal Dispatcher: seleziona la procedura corrispondente alla richiesta Server Stub: come skeleton, unmarshal, chiama la server stub, marshal il reply C5.13 File di interfaccia in Sun XDR 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; ; struct readargs { FileIdentifier f; FilePointer position; Length length; ; program FILEREADWRITE { version VERSION { void WRITE(writeargs)=1; 1 Data READ(readargs)=2; 2 =2; = 9999; C5.14 7
8 Notifica di eventi Un oggetto può notificare 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 notifica esegue una subscribe ai tipi di evento di interesse notifica: oggetto che rappresenta un evento Oggetto (publisher) Oggetto (subscriber) Genera evento Notifica evento Tipi di evento, attributi di evento - usati da sottoscrizione e notifica C5.15 Room system Dealer s computer External source Dealer s computer Dealer Dealer Information provider Dealer s computer Dealer Information provider External source Dealer s computer Dealer C5.16 8
9 Event Service Scopo: disaccoppiare publisher e subscriber event service - mantiene una base di dati di eventi pubblicati e di interesse - usato da publisher per generare eventi e da subscriber per indicare quali sono gli eventi di interesse al fine di ricevere la notifica Oggetto (publisher) Genera evento Event Service Notifica evento Subscribe (quali) Oggetto (subscriber) Modi di notificare: 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 notifica C5.17 Architettura per la notifica di eventi distribuiti Event service oggetto di interesse subscriber 1. notifica oggetto di interesse observer subscriber 2. notifica notifica oggetto di interesse observer subscriber 3. notifica C5.18 9
10 Observer - Esempio :JINI Processi observer con diversi compiti: - forward observer consegna (spedizione) di notifica da parte di più oggetti - filtro di notifica 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 notifica qualora il subscriber non fosse pronto Esempio: Jini, specifica di eventi distribuiti subscriber 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: RemoteEventi Interfacce: RemoteEventListener con metodo notify (per ricevere le notifiche) EventGeenrator con metodo register (per sottoscrivere eventi) C5.19 Interfacce remote Java Shape e ShapeList import java.rmi.*; import java.util.vector; 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; C
11 Classe Naming di Java RMI registry void rebind (String name, Remote obj) Metodo usato dal server per registrare l identificatore di un oggetto remoto per nome void bind (String name, Remote obj) Metodo alternativo usato dal server per registrare un oggeto 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. C5.21 Classe Java ShapeListServer con il metodo main import java.rmi.*; public class ShapeListServer{ 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()); C
12 Classe Java ShapeListServant che implementa l interfaccia ShapeList import java.rmi.*; import java.rmi.server.unicastremoteobject; import java.util.vector; 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; public Vector allshapes()throws RemoteException{... public int getversion() throws RemoteException {... C5.23 Cliente Java dishapelist import java.rmi.*; import java.rmi.server.*; import java.util.vector; public class ShapeListClient{ public static void main(string args[]){ System.setSecurityManager(new RMISecurityManager()); ShapeList ashapelist = null; try{ ashapelist = (ShapeList) Naming.lookup("//bruno.ShapeList") ; 1 Vector slist = ashapelist.allshapes(); 2 catch(remoteexception e) {System.out.println(e.getMessage()); catch(exception e) {System.out.println("Client: " + e.getmessage()); C
13 Classi che supportano Java RMI RemoteObject RemoteServer Activatable UnicastRemoteObject <servant class> C
Comunicazione fra oggetti distribuiti
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
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
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
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
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)
DettagliJNDI. Massimo Merro Programmazione di Rete 214 / 229
JNDI Abbiamo già visto come i registri RMI espletino un servizio di Naming attraverso cui vengono associati nomi simbolici a referenze a server remoti. Esistono comunque altri servizi di naming: COS (Common
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 di sistemi distribuiti
Programmazione di sistemi distribuiti I Sistemi Distribuiti, per loro natura, prevedono che computazioni differenti possano essere eseguite su VM differenti, possibilmente su host differenti, comunicanti
DettagliRMI. Java RMI RMI. G. Prencipe prencipe@di.unipi.it
Java Remote Method Invocation -- RMI G. Prencipe prencipe@di.unipi.it RMI RMI è una tecnologia JAVA che permette a una JVM di comunicare con un altra JVM per farle eseguire metodi È possibile che oggetti
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
DettagliRegistri RMI. Massimo Merro Univ. Verona Programmazione di Rete 90 / 247
Registri RMI Per poter interagire con un server remoto, un client deve essere in possesso di una sua referenza remota (ovvero un oggetto stub). Un servizio di Naming è una risorsa centralizzata che può
DettagliLaboratorio di Sistemi Distribuiti Leonardo Mariani
Laboratorio di Sistemi Distribuiti Leonardo Mariani ELECTION ALGORITHMS In molti sistemi distribuiti un processo deve agire da (o svolgere un ruolo particolare) per gli altri processi. Spesso non è importante
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
DettagliConcetto di Funzione e Procedura METODI in Java
Fondamenti di Informatica Concetto di Funzione e Procedura METODI in Java Fondamenti di Informatica - D. Talia - UNICAL 1 Metodi e Sottoprogrammi Mentre in Java tramite le classi e gli oggetti è possibile
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
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
DettagliSISTEMI OPERATIVI DISTRIBUITI
SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching
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
DettagliTipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:
Tipi primitivi Il linguaggio Java offre alcuni tipi di dato primitivi Una variabile di tipo primitivo può essere utilizzata direttamente. Non è un riferimento e non ha senso tentare di istanziarla mediante
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
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
DettagliMobilità di Codice. Massimo Merro Programmazione di Rete 128 / 144
Mobilità di Codice Abbiamo già visto come un dato host possa trasmettere un oggetto (serializzabile) ad un altro host. Quest ultimo potrà eseguire l oggetto pur non possedendo il bytecode della classe
DettagliRMI Remote Method Invocation
RMI Remote Method Invocation [Pagina intenzionalmente vuota] (1 12 2004) slide 4:1/18 (p.106) Un applicazione RMI è un applicazione distribuita ad oggetti. Applicazione RMI tipica, strutturata in: server:
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
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
DettagliIntroduzione alle applicazioni di rete
Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza
DettagliLa prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete
La prima applicazione Java Programma MyFirstApplication Il programma visualizza una finestra vuota sullo schermo. Importo il package delle classi usate nel seguito. Dichiaro la classe MyFirstApplication
DettagliJava: Compilatore e Interprete
Java: Compilatore e Interprete Java Virtual Machine Il bytecode non è Linguaggio Macchina. Per diventarlo, deve subire un ulteriore trasformazione che viene operata dall interprete Java in modalità JIT
DettagliChiamate a Procedure Remote
FACOLTA DI SCIENZE MATEMATICHE, FISICHE E NATURALI Corso di Laurea Magistrale in Informatica Corso di Sistemi Distribuiti Anno Accademico 2012/2013 Relazione sullo sviluppo di Chiamate a Procedure Remote
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
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 LS
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori LS CORBA - Implementazione Naming Service e Interface Repository Luca Foschini Anno accademico 2008/2009 Agenda CORBA
DettagliDistributed Object Computing
Evoluzione Architetturale Distributed omputing entralizzata Monolitica anni 60-70 Reti locali di P anni 80 Reti lient Server anni 80-90 Internet The network is the computer Paolo Falcarin Sistemi Informativi
Dettagli13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti
13 - Gestione della Memoria nella Programmazione Orientata agli Oggetti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/
DettagliEsercitazione di Sistemi Distribuiti: Java RMI
Esercitazione di Sistemi Distribuiti: Java RMI Anno Accademico 2007-08 Marco Comerio comerio@disco.unimib.it Richiami Teorici Oggetti distribuiti 2-16 Usuale organizzazione di un oggetto remoto con un
DettagliRemote Method Invocation (RMI)
(RMI) Remote Method Invocation (RMI) in Java. Walter Cazzola Dipartimento di Informatica e Comunicazione Università à degli Studi di Milano. e-mail: cazzola@disi disi.unige.it Walter Cazzola Java: Remote
DettagliCORBA ( Common Object Request Broker Architecture ) Le specifiche più conosciute sono UML e CORBA
CORBA ( Common Object Request Broker Architecture ) consiste in un insieme di specifiche promosse e curate da OMG (Object Management Group). L OMG è un consorzio internazionale no-profit di industrie nel
Dettaglidall argomento argomento della malloc()
Allocazione dinamica Quando? Tutte le volte in cui i dati possono crescere in modo non prevedibile staticamente a tempo di sviluppo Un array con dimensione i fissata a compile-time non è sufficiente È
DettagliJava Virtual Machine
Java Virtual Machine programmi sorgente: files.java compilatore files.class bytecode linker/loader bytecode bytecode Java API files.class interprete macchina ospite Indipendenza di java dalla macchina
DettagliGarbage Collection Distribuito
Chiamata remota di metodi Il meccanismo di leasing Quando non ci sono più riferimenti, locali o remoti, ad un oggetto, l'oggetto può essere raccolto stub oggetto remoto TIGA 53 In Java, il servizio Distributed
DettagliUML Diagrammi delle classi. UML Diagramma classi 1
UML Diagrammi delle classi UML Diagramma classi 1 Diagramma delle classi Non è nei nostri obiettivi affrontare UML nel suo complesso Ci concentreremo sui diagrammi delle classi che ci forniscono un linguaggio
DettagliI Socket. Laboratorio Software 2008-2009 M. Grotto R. Farina
M. Grotto R. Farina Sommario 1. Applicazioni Distribuite 2. I Socket Introduzione Interfacce e protocolli Descrizione Stile di comunicazione Namespace e protocollo Include e system call Creazione e chiusura
DettagliProgrammazione CORBA in Java
Programmazione CORBA in Java Ing. Andrea Santoro http://www.dis.uniroma1.it/~santoroa santoro@dis.uniroma1.it (codice preparato dall ing. Alessandro Termini) Overview Naming Service Motivazioni Name Service
DettagliProgrammazione di rete in Java
Programmazione di rete in Java Reti di calcolatori Una rete di calcolatori è un sistema che permette la condivisione di dati informativi e risorse (sia hardware sia software) tra diversi calcolatori. Lo
DettagliCenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it
Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale
DettagliServers Activatable. Massimo Merro Programmazione di Rete 166 / 193
Servers Activatable Nelle lezioni precedenti abbiamo detto che una referenza remota ad un server di tipo UnicastRemoteObject rimane valida finchè il server è in esecuzione. Quando il server termina, o
Dettagli!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&) !"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9
!"#$%&&'()#*%+%+!"#$"',,'()#*%+ -")%*&'&'+'$.)+-$$%&&)!"#$%&&'(%)'*+%",#-%"#.'%&'#/0)-+#12"+3,)4+56#7+#.')8'9 Slide 1 Paradigmi di Programmazione! Un linguaggio supporta uno stile di programmazione se
DettagliGESTIONE DEI PROCESSI
Sistemi Operativi GESTIONE DEI PROCESSI Processi Concetto di Processo Scheduling di Processi Operazioni su Processi Processi Cooperanti Concetto di Thread Modelli Multithread I thread in Java Concetto
Dettagli10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress.
ESERCIZIARIO Risposte ai quesiti: 10.1. Un indirizzo IP viene rappresentato in Java come un'istanza della classe InetAddress. 10.2. Un numero intero in Java è compreso nell'intervallo ( 2 31 ) e (2 31
DettagliReflection in Java. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2009-2010 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Reflection in Java 1 Reflection Riflessione
DettagliSOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE
SOMMARIO Coda (queue): Specifica: interfaccia. Implementazione: Strutture indicizzate (array): Array di dimensione variabile. Array circolari. Strutture collegate (nodi). Prestazioni. Strutture Software
DettagliProblema del naming. Modello di Naming
Sistemi Distribuiti Problema del naming 1 Modello di Naming Conoscenza reciproca delle entità / servizi In una relazione cliente/servitore il cliente deve avere un riferimento al servitore Problema della
DettagliSiti web centrati sui dati (Data-centric web applications)
Siti web centrati sui dati (Data-centric web applications) 1 A L B E R T O B E L U S S I A N N O A C C A D E M I C O 2 0 1 2 / 2 0 1 3 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente
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
DettagliMain System Monitor Keyboard
Composite 57 8. Composite (Gof pag. 163) 8.1. Descrizione Consente la costruzione di gerarchie di oggetti composti. Gli oggetti composti possono essere conformati da oggetti singoli, oppure da altri oggetti
DettagliRMI. Prova pratica di Sistemi Distribuiti:
Prova pratica di Sistemi Distribuiti: RMI Di Nicola Milella Al fine di toccare con mano queste tecnologie e capirne i rispettivi pro e contro si è deciso di sviluppare un applicazione distribuita sfruttando
Dettagliappunti delle lezioni Architetture client/server: applicazioni server
Sistemi informativi applicati (reti di calcolatori): appunti delle lezioni Architetture /: applicazioni 1 La logica dei Abbiamo visto che un applicazione si connette e comunica con un applicazione mediante
Dettagli8. Sistemi Distribuiti e Middleware
8. Sistemi Distribuiti e Middleware Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) 8. Sistemi distribuiti e Middleware 1 / 32 Sommario 1 Sistemi distribuiti
Dettagli3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo
3 - Variabili 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
DettagliUniversità di Torino Facoltà di Scienze MFN Corso di Studi in Informatica. Programmazione I - corso B a.a. 2009-10. prof.
Università di Torino Facoltà di Scienze MFN Corso di Studi in Informatica Programmazione I - corso B a.a. 009-10 prof. Viviana Bono Blocco 9 Metodi statici: passaggio parametri, variabili locali, record
DettagliReplicazione. Requisisti di consistenza i clienti devono ricevere risposte consistenti e coerenti. Motivazioni
Replicazione Replicazione dei dati: gestione e manutenzione di un insieme di copie dei dati Motivazioni: - disponibilità - tolleranza ai guasti - prestazioni aching diverso da replicazione aching non aumenta
DettagliSistemi Distribuiti. Anno Accademico 2005-06 Prof. Flavio De Paoli. Il modello ad oggetti
Sistemi Distribuiti Anno Accademico 2005-06 Prof. Flavio De Paoli 1 Il modello ad oggetti 2 Distributed Objects 2-16 Common organization of a remote object with client-side proxy. 3 Caratteristiche Oggetti
DettagliProgrammazione a Oggetti Lezione 10. Ereditarieta
Programmazione a Oggetti Lezione 10 Ereditarieta Sommario Come definire sottoclassi Costruttori Abstract Classes Final Ereditarietà: promemoria Strumento tipico dell OOP per riusare il codice e creare
DettagliAppunti di Sistemi Distribuiti
Appunti di Sistemi Distribuiti Matteo Gianello 27 settembre 2013 1 Indice 1 Introduzione 3 1.1 Definizione di sistema distribuito........................... 3 1.2 Obiettivi.........................................
DettagliFunzioni in C. Violetta Lonati
Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Funzioni - in breve: Funzioni Definizione di funzioni
DettagliInizializzazione, Assegnamento e Distruzione di Classi
Inizializzazione, Assegnamento e Distruzione di Classi Lezione 9 Operazioni Automatiche In ogni programma C++ oggetti classe vengono gestiti automaticamente dal compilatore Inizializzati al momento della
DettagliMultithreading in Java. Fondamenti di Sistemi Informativi 2014-2015
Multithreading in Java Fondamenti di Sistemi Informativi 2014-2015 Multithreading La programmazione concorrente consente di eseguire più processi o thread nello stesso momento. Nel secondo caso si parla
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
DettagliIntroduzione a Classi e Oggetti
Introduzione a Classi e Oggetti Oggetto: concetto astratto Entità di un programma dotata di tre proprietà caratteristiche stato informazioni conservate nell oggetto condizionano il comportamento dell oggetto
DettagliInformatica 3. LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1)
Informatica 3 LEZIONE 7: Fondamenti di programmazione orientata agli oggetti (1) Modulo 1: Introduzione: oggetti e classi Modulo 2: Link e associazioni Modulo 3: Aggregazione Informatica 3 Lezione 7 -
DettagliProgrammare in Java. Olga Scotti
Programmare in Java Olga Scotti Linguaggi di programmazione linguaggio macchina assembler linguaggi ad alto livello Linguaggi ad alto livello istruzioni comprensibili linguaggio simile a quello naturale
DettagliModellazione dei dati in UML
Corso di Basi di Dati e Sistemi Informativi Modellazione dei dati in UML Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Introduzione UML (Unified Modeling Language):
DettagliParte II: Reti di calcolatori Lezione 10
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 10 Giovedì 3-04-2014 1 Reti per la distribuzione
DettagliCome funziona il WWW. Architettura client-server. Web: client-server. Il protocollo
Come funziona il WWW Il funzionamento del World Wide Web non differisce molto da quello delle altre applicazioni Internet Anche in questo caso il sistema si basa su una interazione tra un computer client
DettagliApplicazioni web centrati sui dati (Data-centric web applications)
Applicazioni web centrati sui dati (Data-centric web applications) 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 WEB La tecnologia del World Wide Web (WWW) costituisce attualmente lo strumento di riferimento
DettagliIndirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet
Indirizzi Internet e Protocolli I livelli di trasporto delle informazioni Comunicazione e naming in Internet Tre nuovi standard Sistema di indirizzamento delle risorse (URL) Linguaggio HTML Protocollo
DettagliCorso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005
Studente (Cognome Nome): Matricola: Corso di Informatica Corso di Laurea in Ingegneria Gestionale a.a. 2005-06 Secondo Compitino 17 Dicembre 2005 Si noti che le soluzioni ai quesiti saranno considerate
DettagliPronto Esecuzione Attesa Terminazione
Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma
DettagliLe funzioni in C. I programmi C sono costituiti da definizioni di variabili e funzioni.
Le funzioni in C I programmi C sono costituiti da definizioni di variabili e funzioni. Una definizione di funzione ha il seguente formato: tipo-ritornato nome-funzione(lista-parametri) { dichiarazioni
DettagliFunzioni. Il modello console. Interfaccia in modalità console
Funzioni Interfaccia con il sistema operativo Argomenti sulla linea di comando Parametri argc e argv Valore di ritorno del programma La funzione exit Esercizio Calcolatrice 2, presente in tutti i programmi
DettagliRealizzazione di una classe con un associazione
Realizzazione di una classe con un associazione Nel realizzare una classe che è coinvolta in un associazione, ci dobbiamo chiedere se la classe ha responsabilità sull associazione. Diciamo che una classe
DettagliChat. Si ha un server in ascolto sulla porta 4444. Quando un client richiede la connessione, il server risponde con: Connessione accettata.
Chat Si ha un server in ascolto sulla porta 4444 Quando un client richiede la connessione, il server risponde con: Connessione accettata. Nome: Il client deve rispondere con lo user name A questo punto
DettagliImplementing a new ADT based on the HL7 version 3 RIM. Esempio
Implementing a new ADT based on the HL7 version 3 RIM Esempio Contesto di riferimento Alla fine degli anni 90, sei ospedali vennero fusi allo scopo di formare un unica organizzazione lo University Hospital
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
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:
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.
DettagliArchitetture software
Sistemi Distribuiti Architetture software 1 Sistemi distribuiti: Architetture software Il software di gestione di un sistema distribuito ha funzionalità analoghe ad un sistema operativo Gestione delle
DettagliLinguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008. Esercitazione. Programmazione Object Oriented in Java
Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A. 2007-2008 Alessandro Longheu http://www.diit.unict.it/users/alongheu alessandro.longheu@diit.unict.it Programmazione Object Oriented in Java
DettagliArchitetture Web: un ripasso
Architetture Web: un ripasso Pubblicazione dinamica di contenuti. Come si fa? CGI Java Servlet Server-side scripting e librerie di tag JSP Tag eseguiti lato server Revisione critica di HTTP HTTP non prevede
DettagliSistemi Distribuiti Multiagente A.A.2010-11 Informatica Magistrale Università di Bari
Java RMI I lucidi che seguono sono stati prodotti sulla base dei seguenti riferimenti: - Sistemi Distribuiti Dip. Informatica (S.Pizzutilo) - Seminario Java RMI di G.Cozzolongo Java RMI: Remote Method
DettagliTECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI
TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI Confronto tra ISO-OSI e TCP/IP, con approfondimento di quest ultimo e del livello di trasporto in cui agiscono i SOCKET. TCP/IP
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
DettagliInizializzazione degli Host. BOOTP e DHCP
BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un
DettagliProgrammazione a Oggetti e JAVA. Prof. B.Buttarazzi A.A. 2012/2013
Programmazione a Oggetti e JAVA Prof. B.Buttarazzi A.A. 2012/2013 Relazioni tra classi Ereditarietà Generalizzazione Specializzazione Aggregazione Composizione Dipendenza Associazione Sommario Relazioni
DettagliSiti web centrati sui dati Architettura MVC-2: i JavaBeans
Siti web centrati sui dati Architettura MVC-2: i JavaBeans 1 ALBERTO BELUSSI ANNO ACCADEMICO 2009/2010 Limiti dell approccio SEVLET UNICA La servlet svolge tre tipi di funzioni distinte: Interazione con
DettagliSistemi Mobili e Wireless Android - Servizi
Sistemi Mobili e Wireless Android - Servizi Stefano Burigat Dipartimento di Matematica e Informatica Università di Udine www.dimi.uniud.it/burigat stefano.burigat@uniud.it Servizi Un servizio è un componente
DettagliIntroduzione alla programmazione in C
Introduzione alla programmazione in C Testi Consigliati: A. Kelley & I. Pohl C didattica e programmazione B.W. Kernighan & D. M. Ritchie Linguaggio C P. Tosoratti Introduzione all informatica Materiale
Dettagli