Obiettivo della lezione. Presentare Java 2 Enterprise Edition (J2EE) Presentare due tecnologie Java connesse ad Enterprise Java Beans

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Obiettivo della lezione. Presentare Java 2 Enterprise Edition (J2EE) Presentare due tecnologie Java connesse ad Enterprise Java Beans"

Transcript

1 Lezione Java RMI-IIOP IIOP Vittorio Scarano Corso di Sistemi Distribuiti (00-00) Laurea Specialistica in Informatica Università degli Studi di Salerno Obiettivo della lezione Presentare Java Enterprise Edition (JEE) Presentare due tecnologie Java connesse ad Enterprise Java Beans la tecnologia Java Remote Method Invocation (RMI) over Internet Inter-ORB Protocol (IIOP) RMI-IIOP il trasporto utilizzato dagli EJB la tecnologia Java Naming and Directory Interface JNDI Organizzazione della lezione Applicazioni single tier Evoluzione del calcolo distribuito Java Enterprise Edition RMI su Internet Inter-ORB Protocol Un esempio che usa RMI (su JRMP) RMI-IIOP e CORBA Java Naming and Directory Interface (JNDI) Un esempio in RMI-IIOP per illustrare le differenze Un confronto finale Dumb terminal Applicazione monolitica dove sono presenti, insieme, logica di presentazione logica di business logica di accesso ai dati Mainframes

2 Architettura / (-tier) Fat Architettura -tier 5 Workstation API specifiche del DB Sul client sono presenti, insieme, Database logica di presentazione logica di business logica di accesso ai dati (in parte) Il client invia statement SQL tramite le API messe a disposizione 6 Tipico utilizzo: RPC RPC API specifiche del DB Database separare sui tre livelli la logica di presentazione, business e accesso ai dati Il livello centrale fornisce servizi Necessaria la gestione esplicita di multithreading, concorrenza, transazioni, sicurezza, etc. Architettura -tier a oggetti distribuiti Aggiungiamo uno strato di Web: n-tiern IIOP, RMI, DCOM Oggetti distribuiti API specifiche del DB Database La logica di business e di accesso ai dati implementata tramite oggetti distribuiti ereditando riusabilità e robustezza del modello a oggetti Il middle tier può (aiutare a) gestire servizi di concorrenza multi-threading, transazioni etc. JSP/Servlets, ASP, CGI Web IIOP, RMI, COM, DCOM Application Database Il calcolo distribuito deve il suo successo al WWW il browser come client universale di servizi Scripting lato server: tecnologie diverse, difficili da mantenere e integrare, scalabilità 7 8

3 L obiettivo della moltiplicazione dei tier Organizzazione della lezione Distinguere, separare e localizzare le responsabilità delle componenti della applicazione Riusabilità Flessibilità cambi in un tier non influenzano altri tier (manutenzione) Scalabilità Tuttavia, a carico del programmatore restano: sicurezza, bilanciamento, concorrenza, transazioni, gestione delle risorse, etc. Evoluzione del calcolo distribuito Java Enterprise Edition RMI su Internet Inter-ORB Protocol Un esempio che usa RMI (su JRMP) RMI-IIOP e CORBA Java Naming and Directory Interface (JNDI) Un esempio in RMI-IIOP per illustrare le differenze Un confronto finale 9 0 La architettura N-tier JEE La piattaforma Java Application Web- RMI-IIOP HTTP (JSP/Servlets) Web EJB Application Container Database (RBDMS) Legacy Systems Hand-held devices Micro Edition (JME) Desktop Standard Edition (JSE) Workgroup s Enterprise Edition (JEE) High-end s

4 Cosa c è nel pacco JEE Le tecnologie JEE API e specifiche di tecnologie tutte relative ad applicazioni di una certa entità ambiente di produzione Piattaforma di sviluppo e di deployment unificata per lo sviluppo server-side Alcune implementazioni di riferimento: servono a dimostrare la realizzabilità di alcune tecnologie oltre a servire per la didattica, istruzione, formazione in alcuni casi, le implementazioni Sun sono utilizzabili per ambienti di produzione Test di compatibilità JEE Linee guida per lo sviluppo (Blueprints) Sviluppo di componenti client (applet, application client) server (EJB, componenti Web (JSP, servlet)) Servizio Java Database Connectivity, Java Naming and Directory Interface, Web Services, etc. Comunicazione RMI-IIOP Messaging (JMS, JavaMail) Architettura di base Architettura per il deployment di applicazioni 5 6

5 La architettura multitier di JEE Componenti JEE: tier Le componenti di una applicazione JEE sono: Componente -tier (eseguita sul client). Componente Web-tier (eseguita sul server JEE) Componente Business-tier (eseguita sul server JEE) Enterprise information system (EIS)-tier software (eseguito sull EIS server). Comunque può essere considerata una applicazione a -tier dato il ruolo centrale svolto dal server JEE Web clients browser, web pages, applets Application client applicazioni con interfacce utenti stand-alone (Swing, AWT, etc.) CORBA IIOP complaint 7 8 Componenti JEE: Web tier Componenti JEE: Business tier Componenti Componenti che gestiscono la logica di business Servlets Pagine JSP EJB permettono di separare i processi di business (session beans) dalle componenti di dati 9 0

6 Componenti JEE: Data tier Installazione e container Database del server di applicazioni Oracle, MySQL, etc. Enterprise Information System (EIS) sistemi di gestione di dati per imprese mainframe transaction processing database system altri eventuali legacy system Il processo di deployment installa le componenti JEE sui container EJB container Web container Application client container / Applet container ambienti operativi lato client oppure browser Il server JEE fornisce i container EJB e Web JEE I ruoli nella realizzazione di un sistema JEE (a) JEE product provider Web Browser Application Application Container JEE Servlet Enterprise Bean Web Container Enterprise Bean EJB Container JSP Page Database coloro che forniscono la piattaforma che realizza le specifiche JEE Component Provider coloro che forniscono componenti web, Enterprise Java Beans, applet o client da usare in applicazioni JEE Application Assembler coloro che usano le componenti per assamblarle in una applicazione

7 I ruoli nella realizzazione di un sistema JEE (b) Ciclo di vita di una applicazione JEE Application Deployer e Amministratore coloro che configurano e effettuano il deployment della applicazione JEE, la monitorano e la amministrano Tool provider colore che creano tool di sviluppo, di assemblaggio e di packaging, che vengono usati dai component providers, assemblers e deployer. 5 6 Organizzazione della lezione RMI-IIOP: IIOP: origine e motivazioni Evoluzione del calcolo distribuito Java Remote Method Invocation (RMI) 7 Java Enterprise Edition RMI su Internet Inter-ORB Protocol Un esempio che usa RMI (su JRMP) RMI-IIOP e CORBA Java Naming and Directory Interface (JNDI) Un esempio in RMI-IIOP per illustrare le differenze Un confronto finale 8 permette la invocazione di metodi remoti tra applicazioni interamente scritte in Java protocollo di comunicazione delle chiamate basato su Java Remote Method Protocol (JRMP) Java RMI over Internet Inter-ORB Protocol (IIOP) usa l ORB di CORBA e IIOP interoperabilità con oggetti CORBA scritti in altri linguaggi ammesso che le loro interfacce siano scritte in Java se si vuole la completa interoperabilità con CORBA c è una altra strada serve da protocollo di comunicazione per gli Enterprise JavaBean

8 Organizzazione della lezione Un esempio di uso: l'oggetto remoto Hello 9 Evoluzione del calcolo distribuito Java Enterprise Edition RMI su Internet Inter-ORB Protocol Un esempio che usa RMI (su JRMP) RMI-IIOP e CORBA Java Naming and Directory Interface (JNDI) Un esempio in RMI-IIOP per illustrare le differenze Un confronto finale 0 Definizione della Interface Remota definizione derivata da java.rmi.remote ogni metodo deve lanciare java.rmi.remoteexception Scrivere la implementazione della Classe specificare la interface remota specificare il/i costruttore/i dell'oggetto remoto implementare i metodi remoti creare ed installare un security manager creare una o più istanze di oggetti remoti registrare gli oggetti al registry. Scrivere la Classe ottenere un riferimento remoto all'oggetto remoto dal registro invocare il/i metodo remoto Il diagramma di RemoteHello RMI: Il processo di creazione - Definizione della interface remota «interface» «interface» Remote Remote UnicastRemoteObject UnicastRemoteObject Hello Hello + main(in args: String[]): void + main(in args: String[]): void «interface» «interface» Hello Hello + dimmiqualcosa(in dachi: String): String + dimmiqualcosa(in dachi: String): String HelloImpl HelloImpl + HelloImpl(): void + HelloImpl(): void + dimmiqualcosa(in dachi: String): String + dimmiqualcosa(in dachi: String): String + main(in args: String[]): void + main(in args: String[]): void la interface rmiregistry oggetti server

9 La interface remota dell'oggetto: il file Hello.java public interface Hello extends java.rmi.remote { String dimmiqualcosa(string dachi) throws java.rmi.remoteexception; Interface eredita da java.rmi.remote Metodo dimmiqualcosa dichiarato Lancia RemoteException RMI: Il processo di creazione - Implementazione della interface remota la interface rmiregistry oggetti server La implementazione dell'oggetto remoto: il file HelloImpl.java () La implementazione dell'oggetto remoto: il file HelloImpl.java () import java.rmi.*; import java.rmi.server.unicastremoteobject; public HelloImpl extends UnicastRemoteObject implements Hello { public HelloImpl() throws java.rmi.remoteexception { public String dimmiqualcosa(string dachi) throws RemoteException { System.out.println("Saluto "+dachi); return "Ciao "+dachi+"!"; // continua Derivato da e implementa la interface remota Il costruttore (vuoto) dell'oggetto remoto con chiamata implicita al costruttore della supere Implementazione del metodo remoto // continua public static void main(string args[]) { System.setSecurityManager(new RMISecurityManager()); try { HelloImpl obj = new HelloImpl(); Naming.rebind("Hello", obj); System.out.println("Pronto!"); catch (Exception e) { e.printstacktrace(); // end main // end e HelloImpl Crea ed installa un security manager utile per poter caricare i dinamicamente se non sono presenti sul CLASSPATH crea una istanza di oggetto remoto obj registra l'oggetto sul registry 5 6

10 RMI: Il processo di creazione / - Compilazione con la interface rmiregistry oggetti server La compilazione del server HelloImpl Compilazione della interface: Hello.java Compilazione del server: HelloImpl.java Generazione stub e : HelloImpl che genera i file: HelloImpl_. HelloImpl_Skel. 7 8 RMI: Il processo di creazione 5/6/7 - rmiregistry e server RMI: Il processo di creazione 8 - Implementazione del la interface rmiregistry oggetti server la interface rmiregistry oggetti server

11 Il : : il file Hello.java RMI: Il processo di creazione 9- Compilazione del import java.rmi.*; public Hello { public static void main(string args[]) { String host = localhost ; String nome = Pippo ; if (args.length > 0 ) host = args[0]; if (args.length > ) nome = args[]; try { Hello obj = (Hello) Naming.lookup( rmi:// +host+ /Hello"); System.out.println("Ricevuto:" + obj.dimmiqualcosa(nome)); catch (Exception e) { e.printstacktrace(); // fine main // fine e Hello Prende (se c è) il primo parametro come host e il secondo come nome Ottiene un riferimento remoto all'oggetto remoto dal registro Hostname Invocare il metodo remoto la interface rmiregistry oggetti server La compilazione del client Hello RMI: Il processo di creazione 0 - Avendo a disposizione lo stub HelloImpl_. Compilazione del client: Hello.java la interface rmiregistry oggetti server 5 6 7

12 Organizzazione della lezione RMI-IIOP: IIOP: scopi e obiettivi Evoluzione del calcolo distribuito Java Enterprise Edition RMI su Internet Inter-ORB Protocol Un esempio che usa RMI (su JRMP) RMI-IIOP e CORBA Java Naming and Directory Interface (JNDI) Un esempio in RMI-IIOP per illustrare le differenze Un confronto finale Combinare (alcune) caratteristiche di Java RMI facilità di uso e di deployment scrittura in Java (niente IDL) con la flessibilità (standard) fornita da IIOP e ORB di CORBA: permettendo la integrazione di componenti legacy scritte in altri linguaggi che usino CORBA che dovranno usare l IDL generato a partire dalla descrizione delle interfacce Java 5 6 Una alternativa pienamente CORBA: Java IDL I rapporti tra il mondo Java RMI e CORBA 7 Java IDL: permette di utilizzare CORBA specificando le interfacce in IDL Classica definizione di un oggetto CORBA pienamente interoperabile simile nell uso a quello di C, Smalltalk, etc. In maniera astratta, RMI-IIOP deriva da RMI e da Java IDL RMI RMI-IIOP Java IDL 8 La situazione prima di RMI-IIOP completa non interoperabilità tra CORBA e RMI (JRMP) La situazione dopo RMI-IIOP client/server RMI-IIOP completamente interoperabili con RMI (JRMP) il server RMI-IIOP completamente interoperabile con CORBA client client RMI-IIOP in parte: semantica IDL CORBA superset di quella di RMI-IIOP

13 Gli strumenti di RMI-IIOP: IIOP: Le differenze tra RMI e RMI-IIOP IIOP Classico compilatore usato da RMI per stub e che utilizzano come protocollo di trasporto JRMP Utilizzi di iiop genera gli stub e tie () per usare IIOP come protocollo di trasporto idl genera l IDL per poterlo usare con un client (CORBA) scritto in un altro linguaggio che vuole accedere al server via RMI-IIOP La implementazione remota deve ereditare da e non più da oppure utilizzando esplicitamente il metodo Il casting ad una interfaccia remota va fatto con il metodo invece che con l usuale casting Java Naming: non si usa rmiregistry ma il servizio di Naming di CORBA CosNaming (accessibile via JNDI) 9 50 Organizzazione della lezione Java Naming e Directory Interface (JNDI) Evoluzione del calcolo distribuito La architettura JNDI consiste di Java Enterprise Edition RMI su Internet Inter-ORB Protocol Un esempio che usa RMI (su JRMP) RMI-IIOP e CORBA Java Naming and Directory Interface (JNDI) Un esempio in RMI-IIOP per illustrare le differenze Un confronto finale API per il programmatore per usare i servizi di naming e directory (=trading) disponibili Service Provider Interface per poter aggiungere nuovi servizi di naming e directory 5 5

14 I servizi disponibili in JNDI con relativa factory Come utilizzare un servizio JNDI 5 Lightweight Directory Access Protocol (LDAP) CORBA Common Object Services name service Java RMI registry Domain Name System (DNS) Altri possono essere disponibili dai singoli vendor 5 Via codice Hashtable env = new Hashtable(); env.put( java.naming.factory.initial, com.sun.jndi.cosnaming.cnctxfactory ; env.put( java.naming.provider.url, iiop://localhost ; Context ic = new InitialContext(env); ic.rebind( ServiceName, server); Con parametri per la JVM: %> java Djava.naming.factory.initial=com.sun.jndi.cosnaming.CNCtxFactory Djava.naming.provider.url=iiop://hostname:port. server Context ic = new InitialContext(); ic.rebind( ServiceName, server); Organizzazione della lezione Il diagramma di RMI-IIOP IIOP RemoteHello Evoluzione del calcolo distribuito Java Enterprise Edition RMI su Internet Inter-ORB Protocol Un esempio che usa RMI (su JRMP) RMI-IIOP e CORBA Java Naming and Directory Interface (JNDI) Un esempio in RMI-IIOP per illustrare le differenze Un confronto finale 55 56

15 RMI-IIOP: IIOP: Il processo di creazione - Definizione della interface remota la interface orbd oggetti server La interface remota dell'oggetto: il file Hello.java public interface Hello extends java.rmi.remote { String dimmiqualcosa(string dachi) throws java.rmi.remoteexception; Interface eredita da java.rmi.remote Metodo dimmiqualcosa dichiarato Lancia RemoteException RMI-IIOP: IIOP: Il processo di creazione - Implementazione della interface remota 59 la interface orbd oggetti server La implementazione dell'oggetto remoto: il file HelloImpl.java 60 import java.rmi.remoteexception; import javax.rmi.*; public HelloImpl extends PortableRemoteObject implements Hello { protected HelloImpl() throws RemoteException { super(); public String dimmiqualcosa(string s) throws RemoteException { System.out.println("Chiamato da "+s); return "Ciao "+ s + "!"; Derivato da e implementa la interface remota Il costruttore (vuoto) dell'oggetto remoto con chiamata implicita al costruttore della supere Implementazione del metodo remoto

16 La implementazione del server: il file Hello.java import javax.naming.*; public Hello { public static void main(string[] args) { try { HelloImpl helloref = new HelloImpl(); Context ic = new InitialContext(); ic.rebind("helloservice", helloref ); System.out.println(": Ready..."); catch (Exception e) { System.out.println( Eccezione: " + e); e.printstacktrace(); Crea una istanza di oggetto remoto Accede al contesto JNDI definito con i parametri e usa il metodo UHELQG Da notare la differenza tra di rmiregistry (statico) e metodo di un contesto (istanza) RMI-IIOP: IIOP: Il processo di creazione / - Compilazione con la interface orbd oggetti server 6 6 La compilazione del server HelloImpl 6 Compilazione della interface: Hello.java Compilazione della implementazione oggetto server: HelloImpl.java Compilazione del server: Hello.java Generazione stub e : iiop HelloImpl che genera i file: _HelloImpl_. _HelloImpl_Tie. RMI-IIOP: IIOP: Il processo di creazione 5 - orbd la interface orbd oggetti server 5 6 7

17 Si lancia naming service di ORB su Java: orbd RMI: Il processo di creazione 6/7 - server e registrare il server la interface orbd oggetti server Si lancia il server che istanzia e registra l oggetto remoto RMI-IIOP: IIOP: Il processo di creazione 8 - Implementazione del 8 la interface orbd oggetti server

18 Il : : il file Hello.java () Il : : il file Hello.java () import javax.rmi.*; import javax.naming.*; public Hello { public static void main(string[] args) { Context ic; Object objref; try { ic = new InitialContext(); objref = ic.lookup("helloservice"); System.out.println(": Ho il rif,"); //. continua Ottiene il riferimento al contesto di naming iniziale come specificato dai parametri della JVM Ottiene un riferimento remoto all'oggetto remoto dal servizio JNDI attenzione! si tratta di un riferimento a EMHFW // continua Hello serverref = (Hello) PortableRemoteObject.narrow( objref, Hello.); System.out.println ( serverref.dimmiqualcosa( "Pippo" )); catch( Exception e ) { e.printstacktrace( ); Effettua un casting su utilizzando il metodo riferimento a Object definizione della e Invocazione remota Perché serve il metodo Non avremmo il casting di Java? IIOP è stato progettato per CORBA quindi per diversi linguaggi.. alcuni hanno la operazione di casting mentre altri no Quindi, il casting viene offerto in maniera standard dalla definizione di IIOP di CORBA e dobbiamo usarlo in questa maniera RMI-IIOP: IIOP: Il processo di creazione 9- Compilazione del la interface orbd oggetti server

19 La compilazione del client Hello RMI: Il processo di creazione 0 - Avendo a disposizione lo stub _HelloImpl_. Compilazione del client: Hello.java la interface rmiregistry oggetti server Si lancia Ed il server risponde 75 76

20 Organizzazione della lezione Sviluppo e esecuzione di un programma Java RMI Evoluzione del calcolo distribuito Java Enterprise Edition RMI su Internet Inter-ORB Protocol Un esempio che usa RMI (su JRMP) RMI-IIOP e CORBA Java Naming and Directory Interface (JNDI) Un esempio in RMI-IIOP per illustrare le differenze Un confronto finale. String rmihost = rmi://localhost/helloservice ; Hello serverref = (Hello) Naming.lookup(rmiHost); String res= serverref.hello( Pippo ); System.out.println (res); Hello. java Hello. Remote Ref. Layer import java.rmi.*; public interface Hello extends Remote() { public String hello (String s) throws RemoteException; Hello. HelloImpl_stub. import java.rmi.*; public HelloImpl extends UnicastRemoteObject() implements Hello { public String hello (String s) throws RemoteException { System.out.println ( Hello + s); JRMP HelloImpl. HelloImpl_skel. HelloImpl srv = new HelloImpl(); Naming.bind ( HelloService, srv); Hello. Hello. Skeleton Remote Ref. Layer java rmiregistry Sviluppo e esecuzione di un programma Java RMI-IIOP IIOP Atre differenze con RMI (JRMP) 79 Hello. public interface Hello extends java.rmi.remote() { public String dimmiqualcosa (String s) throws RemoteException;. Context ic = new InitialContext(); Object obj = ic.lookup ( HelloService ); Hello serverref = (Hello)PortableRemoteObject.narrow( obj, Hello.); String res= serverref.dimmiqualcosa( Pippo ); System.out.println (res); java Hello. Remote Ref. Layer Hello. _HelloImpl_stub. import javax.rmi.*; public HelloImpl extends PortableRemoteObject() implements Hello { public String dimmiqualcosa (String s) throws RemoteException { System.out.println ( Hello +s); IIOP HelloImpl. -iiop _HelloImpl_tie. HelloImpl helloref = new HelloImpl(); Context ic = new InitialContext(); ic.rebind ( HelloService, srv); Hello. Hello. Skeleton Remote Ref. Layer java -Djava.naming.factory.initial= com.sun.jndi.cosnaming.cnctxfactory -Djava.naming.provider.url= iiop://localhost:050 orbd 80 Non esiste la Distributed Garbage Collection si usa per rendere un oggetto non più esportato e quindi soggetto alla Garbage Collection usuale Non si possono usare: Altre piccole differenze: costanti nelle interface remote che siano valutate a tempo di compilazione attenzione a nomi che differiscono solo per maiuscole/minuscole

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

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

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

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

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

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

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE

INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE 00-PRIME PAGINE 2-07-2003 10:04 Pagina V Indice Prefazione XI PARTE PRIMA INTRODUZIONE A J2EE 1.4 E AI SERVIZI WEB ENTERPRISE 1 Capitolo 1 Le ragioni di tanto interesse 3 1.1 Enterprise in J2EE 3 Definizione

Dettagli

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

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

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

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

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

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

14. Java Remote Method Invocation (2)

14. Java Remote Method Invocation (2) 14. Java Remote Method Invocation (2) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Il modello della

Dettagli

Organizzazione della lezione. Organizzazione della lezione. 14. Java Remote Method Invocation (2) La sicurezza in Java

Organizzazione della lezione. Organizzazione della lezione. 14. Java Remote Method Invocation (2) La sicurezza in Java Organizzazione della lezione 14. Java Remote Method Invocation (2) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Il modello della

Dettagli

Obiettivo della lezione. Creare e fare il deployment di un Enterprise Javabean

Obiettivo della lezione. Creare e fare il deployment di un Enterprise Javabean Lezione 13 Enterprise JavaBeans Vittorio Scarano Corso di Sistemi Distribuiti (2003-2004) Laurea Specialistica in Informatica Università degli Studi di Salerno Obiettivo della lezione Creare e fare il

Dettagli

Vittorio Scarano. Università degli Studi di Salerno. Lezione 23 Enterprise JavaBeans (8)

Vittorio Scarano. Università degli Studi di Salerno. Lezione 23 Enterprise JavaBeans (8) Lezione 23 Enterprise JavaBeans (8) Vittorio Scarano Corso di Sistemi Distribuiti (2003-2004) Laurea Specialistica in Informatica Università degli Studi di Salerno Obiettivo della lezione Presentare le

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

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

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

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

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 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

Il problema nasce dalla caratteristica di Java di essere distribuito

Il problema nasce dalla caratteristica di Java di essere distribuito Organizzazione della lezione 14. Java Remote Method Invocation (2) Vittorio Scarano Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Istanziazione

Dettagli

! " # $ % & % ' ( $! ) * + *, $ * " (!

!  # $ % & % ' ( $! ) * + *, $ *  (! ! " # $ % & % ' ( $! ) * + *, $ * " (! Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione Un ambiente di esecuzione che gestisce o naming di oggetti, sicurezza, concorrenza, transazioni,

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

JNDI. Massimo Merro Programmazione di Rete 214 / 229

JNDI. 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

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

Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste. Basi di Dati e Web. Credits to: Prof. M. Di Felice UniBO

Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste. Basi di Dati e Web. Credits to: Prof. M. Di Felice UniBO Basi di Dati Prof. Alfredo Cuzzocrea Università degli Studi di Trieste Basi di Dati e Web Credits to: Prof. M. Di Felice UniBO " Molti sistemi software prevedono la presenza di un database gestito da un

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

MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte

MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte DCOM: Distributed Component Object Model Applicazione Server Applicazione Client Fornitura di servizi WEB in ambiente distribuito Sempre

Dettagli

MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte

MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte MIDDLEWARE E COMPONENTI: direzioni di evoluzione e stato dell'arte Fornitura di servizi WEB in ambiente distribuito Sempre più servizi intesi come sistemi o framework (integrazione e composizione) di oggetti

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

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

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

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

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

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

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

Vittorio Scarano. Università degli Studi di Salerno. Lezione 21 Enterprise JavaBeans (7)

Vittorio Scarano. Università degli Studi di Salerno. Lezione 21 Enterprise JavaBeans (7) Lezione 21 Enterprise JavaBeans (7) Vittorio Scarano Corso di Sistemi Distribuiti (2003-2004) Laurea Specialistica in Informatica Università degli Studi di Salerno Obiettivo della lezione Presentare il

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

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

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

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

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

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

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

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

Introduzione ORGANIZZAZIONE DEL LIBRO. Il libro è composto da 12 capitoli organizzati nelle tre parti seguenti:

Introduzione ORGANIZZAZIONE DEL LIBRO. Il libro è composto da 12 capitoli organizzati nelle tre parti seguenti: Introduzione Questo libro, espressamente rivolto ai programmatori esperti in Java, tratta gli elementi essenziali della piattaforma Java 2 Enterprise Edition (J2EE) e analizza in modo particolare le nuove

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

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC

Programma didattico. Sviluppare Applicazioni Distribuite in ambiente. Spring MVC Programma didattico Sviluppare Applicazioni Distribuite in ambiente Spring MVC Programma del corso 1.Progettazione e Sviluppo Database Relazionali Questa competenza permette di Progettare e Sviluppare

Dettagli

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

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

Dettagli

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

Obiettivo della lezione. Introdurre il modello a componenti distribuiti, presentando Enterprise JavaBeans di Sun

Obiettivo della lezione. Introdurre il modello a componenti distribuiti, presentando Enterprise JavaBeans di Sun Lezione 10 Introduzione a Enterprise Javabeans Vittorio Scarano Corso di Sistemi Distribuiti (2003-2004) Laurea Specialistica in Informatica Università degli Studi di Salerno Obiettivo della lezione Introdurre

Dettagli

Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione

Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione Gli EJB offrono vari vantaggi allo sviluppatore di una applicazione Un ambiente di esecuzione che gestisce o naming di oggetti, sicurezza, concorrenza, transazioni, persistenza, distribuzione oggetti (location

Dettagli

Una breve presentazione. Basati sulla specifica EJB Sun Microsystems. Consentono di costruire applicazioni ad oggetti distribuite, utilizzando Java

Una breve presentazione. Basati sulla specifica EJB Sun Microsystems. Consentono di costruire applicazioni ad oggetti distribuite, utilizzando Java Enterprise JavaBeans Approfondimento per il corso di Sistemi Distribuiti A.A. 2002/2003 Una breve presentazione Basati sulla specifica EJB Sun Microsystems Consentono di costruire applicazioni ad oggetti

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

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

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Laurea in Ingegneria Informatica ed Automatica Laurea in Ingegneria dei Sistemi Informatici Laurea Magistrale in Ingegneria Informatica Credits: parte del materiale utilizzato

Dettagli

Il middleware e le tecnologie per lo sviluppo software

Il middleware e le tecnologie per lo sviluppo software IS Capitolo 10 17-02-2006 11:29 Pagina 201 Capitolo 10 Il middleware e le tecnologie per lo sviluppo software Lo sviluppo di una soluzione informatica complessa deve basarsi su un processo rigoroso di

Dettagli

Evoluzione delle Architetture Distribuite

Evoluzione delle Architetture Distribuite Evoluzione delle Architetture Distribuite 1 Evoluzione dell architettura Dall architettura centralizzata all architettura distribuita Applicazioni centralizzate Applicazioni Client/Server Applicazioni

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

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

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

Remote Method Invocation (RMI)

Remote 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

Dettagli

Programmazione di sistemi distribuiti

Programmazione 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

Dettagli

Università di Bologna CdS Laurea Magistrale in Ingegneria Informatica I Ciclo - A.A. 2014/ Modelli a Componenti e Enterprise Java Beans (base)

Università di Bologna CdS Laurea Magistrale in Ingegneria Informatica I Ciclo - A.A. 2014/ Modelli a Componenti e Enterprise Java Beans (base) Modelli a Componenti e Enterprise Java Beans Università di Bologna CdS Laurea Magistrale in Ingegneria Informatica I Ciclo - A.A. 2014/2015 02 Modelli a Componenti e Enterprise Java Beans (base) Docente:

Dettagli

Programmazione Client-Server

Programmazione Client-Server Programmazione Client-Server Davide Taibi davide.taibi@uninsubria.it The Java Platform Java Technology Enabled Devices Java Technology Enabled Desktop Workgroup Server High-End Server The Java Platform

Dettagli

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION

CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION CORSO DI PROGRAMMAZIONE JAVA STANDARD + ENTERPRISE EDITION 0 DURATA 200 ore CONTENUTI Oracle PL/SQL Introduzione al PL/SQL Cenni su SQL con utilizzo di SQL*PLUS Configurazione ambiente Developer DB Classi,

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

Laboratorio di Applicazioni Internet Anno Accademico 2005/2006

Laboratorio di Applicazioni Internet Anno Accademico 2005/2006 Laboratorio di Applicazioni Internet Anno Accademico 2005/2006 Tito Flagella (tito@link.it) Domenico Aquilino (d.aquilino@metaware.it) Dipartimento di Informatica Università di Pisa Orario Mercoledì, 9-11

Dettagli

Flavio De Paoli. Agenda. Introduzione Architettura J2EE (Java 2 Enterprise Edition) Servizi e Comunicazione Enterprise Java Beans Future directions

Flavio De Paoli. Agenda. Introduzione Architettura J2EE (Java 2 Enterprise Edition) Servizi e Comunicazione Enterprise Java Beans Future directions Enterprise Java Bean Flavio De Paoli 1 Agenda Introduzione Architettura J2EE (Java 2 Enterprise Edition) Servizi e Comunicazione Enterprise Java Beans Future directions 2 Java 2 Enterprise Edition Definisce

Dettagli

Modelli a Componenti e Enterprise Java Beans

Modelli a Componenti e Enterprise Java Beans Modelli a Componenti e Enterprise Java Beans Università di Bologna CdS Laurea Magistrale in Ingegneria Informatica I Ciclo - A.A. 2010/2011 02 Modelli a Componenti e Enterprise Java Beans (base) Docente:

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

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

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

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

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

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

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Domenico Lembo Antonella Poggi 1. Architetture dei Sistemi Informativi Dipartimento di Informatica e Sistemistica Antonio Ruberti SAPIENZA Università di Roma Anno Accademico

Dettagli

1 EJB e Portal Component Object http://desvino.altervista.org

1 EJB e Portal Component Object http://desvino.altervista.org 1 EJB e Portal Component Object http://desvino.altervista.org In questo tutorial studiamo come sfruttare la tecnologia EJB, Enterprise JavaBean, all interno del SAP Netweaver Portal. In breve, EJB è un

Dettagli

Principi di OOP con JAVA

Principi di OOP con JAVA Principi di OOP con JAVA lezioni 08 - gen - 2004 15 - gen - 2004 Tommaso Di Noia t.dinoia@poliba.it OOP (elementi) Programmazione Procedurale e Orientata agli Oggetti. FUNZIONI OGGETTI STRUTTURE DATI METODI

Dettagli

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

19 - Eccezioni. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo 19 - Eccezioni 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

Dettagli

Introduzione alle JSP

Introduzione alle JSP Introduzione alle JSP Corso di Sistemi Web e Basi Dati Prof. Antonio d Acierno Java Server Page JSP Riferimenti http://java.sun.com/products/jsp http://www.coreservlets.com http://www.html.it/jsp Le JSPs

Dettagli

Introduzione a Java. Riferimenti

Introduzione a Java. Riferimenti Introduzione a Java Si ringraziano Massimiliano Curcio e Matteo Giacalone 1: Introduction 1 Riferimenti! Java tutorial: http://java.sun.com/docs/books/tutorial/! Il Java tutorial è parte di una più ampia

Dettagli

RMI. Remote Method Invocation. Enrico Tassi, 3/4/2009. Slides originali di Nicola Gessa

RMI. Remote Method Invocation. Enrico Tassi, 3/4/2009. Slides originali di Nicola Gessa RMI Remote Method Invocation Enrico Tassi, 3/4/2009 Slides originali di Nicola Gessa Remote Method Invocation Si colloca del mondo della programmazione distribuita. L obiettivo è di fornire al programmatore

Dettagli

Java SE 7. Introduzione.

Java SE 7. Introduzione. Java SE 7 Introduzione diegozabot@yahoo.it ursula.castaldo@gmail.com Java Java è un linguaggio di programmazione. Inizialmente usato per creare semplici programmi nelle pagine web (chiamati applets), Java

Dettagli

PRIMO MODULO. DURATA: 80 ore CONTENUTI

PRIMO MODULO. DURATA: 80 ore CONTENUTI 0 PRIMO MODULO DURATA: 80 ore CONTENUTI 1. Introduzione alla programmazione a. Cosa è la programmazione strutturata b. Strutture dati c. Come si affronta una problematica da risolvere d. Quali sono i passi

Dettagli

Java RMI. Alcune premesse Interfaccia e Implementazione RMI. Architettura. Esempi interfaccia e implementazione

Java RMI. Alcune premesse Interfaccia e Implementazione RMI. Architettura. Esempi interfaccia e implementazione Java RMI Alcune premesse Interfaccia e Implementazione Modello OO Interfaccia esprime una vista astratta di un ente computazionale, nascondendo organizzazione interna dettagli di funzionamento Implementazione

Dettagli

Framework. Impianti Informatici. Web application - tecnologie

Framework. Impianti Informatici. Web application - tecnologie Framework Web application - tecnologie Web Application: tecnologie 2 Java-based (J2EE) Sviluppata inizialmente da Sun Cross-platform e open source Gestire direttamente le funzionalità dell applicazione

Dettagli

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

Lezione 2 Introduzione a Java (2)

Lezione 2 Introduzione a Java (2) Lezione 2 Introduzione a Java (2) Vittorio Corso di Programmazione Distribuita Laurea di I livello in Informatica Università degli Studi di Salerno Organizzazione della lezione Una review sulle caratteristiche

Dettagli

Tecnologie di Sviluppo per il Web

Tecnologie di Sviluppo per il Web Tecnologie di Sviluppo per il Web Programmazione Web: Architetture versione 3.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina) G. Mecca mecca@unibas.it

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

Piattaforme software distribuite

Piattaforme software distribuite Piattaforme software distribuite Java 2 Platform Enterprise Edition (J2EE) Davide Lamanna lamanna@dis.uniroma1.it Il modello delle applicazioni multitier Applet An applet is a program written in the JavaTM

Dettagli