Connection factories e destinazioni: sono oggetti amministrati da JNDI.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Connection factories e destinazioni: sono oggetti amministrati da JNDI."

Transcript

1 1 JMS Gli elementi fondamentali di un applicazione JMS sono: Connection factories e destinazioni: sono oggetti amministrati da JNDI. Connection Factories: sono oggetti che il client usa per creare connessioni con il provider che incapsulano un inseme di parametri per la connessione. Ogni connection factory è un istanza di QueueConnectionFactory o TopicConnectionFactory. Questi nomi sono anche quelli utilizzati di default da J2EE. Per creare delle nuove connection factory da J2EE: j2eeadmin -addjmsfactory MiaQFactory queue j2eeadmin -addjmsfactory MiaTFactory topic Quando un client vuole ottenere una connection factory: Context ctx = new I n i t i a l C o n t e x t ( ) ; QueueConnectionFactory queueconnectionfactory =( QueueConnectionFactory ) c t x. lookup ( QueueConnectionFactory ) ; TopicConnectionFactory topicconnectionfactory =(TopicConnectionFactory ) ctx. lookup ( TopicConnectionFactory ) ; Destinazioni: sono oggetti sche il client usa come destinazioni o sorgenti di messaggi. Nel dominio P2P le destinazioni sono chiamate queue, mentre nel dominio publish/subscribe sono chiamate topic. Per creare delle nuove destinazioni da J2EE: j2eeadmin -addjmsdestination MiaQueue queue j2eeadmin -addjmsdestination MioTopic topic In JBOSS: <?xml version= 1. 0 encoding= UTF 8?> <s e r v e r> <mbean code= org. j b o s s.mq. s e r v e r. jmx. Queue name= j b o s s.mq. d e s t i n a t i o n : s e r v i c e=queue, name=myqueue > <depends o p t i o n a l a t t r i b u t e name= DestinationManager >j b o s s. m q : s e r v i c e= DestinationManager</ depends> </mbean> </ s e r v e r> Per ottenere delle destinazioni: Topic mytopic = ( Topic ) ctx. lookup ( MyTopic ) ; Queue myqueue = ( Queue ) ctx. lookup ( MyQueue ) ; Connessioni: sono connessioni virtuali con un provider JMS. Per ottenere delle connesioni a partire da connection factory in precedenza istanziate: QueueConnection queueconnection = queueconnectionfactory. createqueueconnection ( ) ; TopicConnection topicconnection = topicconnectionfactory. createtopicconnection ( ) ; Per poter iniziare a consumare messaggi bisogna chiamare il metodo start sulla connessione, il metodo stop invece disabilita temporaneamente la consegna di messaggi senza chiudere la connessione.per chiudere completamente la connessione bisogna invocare il suo metodo close(). Sessioni: sono contesti nei quali si possono produrre e consumare messaggi. Vengono usate per creare produttori, consumatori e messaggi. 1

2 T opicsession t o p i c S e s s i o n = topicconnection. c r e a t e T o p i c S e s s i o n ( false, S e s s i o n. AUTO ACKNOWLEDGE) ; QueueSession queuesession = queueconnection. createqueuesession ( true, 0) ; Nel caso della topicsession di cui sopra false indica che la sessione non è transazionale mentre Session.AUTO ACKNOWLEDGE significa che la sessione notifica automaticamente i messaggi che sono stati ricevuti con successo. Produttori: sono oggetti creati dalla sessione e servono ad inviare messaggi. QueueSender queuesender = queuesession. c r e a t e S e n d e r (myqueue) ; TopicPublisher t o p i c P u b l i s h e r = t o p i c S e s s i o n. c r e a t e P u b l i s h e r ( mytopic ) ; I messaggi vengono inviati tramite il metodo send o publish: queuesender. send ( message ) ; t o p i c P u b l i s h e r. p u b l i s h ( message ) ; Consumatori: sono oggetti creati dalla sessione e servono a ricevere messaggi. QueueReceiver queuereceiver = queuesession. c r e a t e R e c e i v e r (myqueue) ; TopicSubscriber t o p i c S u b s c r i b e r =t o p i c S e s s i o n. c r e a t e S u b s c r i b e r ( mytopic ) ; Una volta creato il consumatore, questo diventa attivo cioè pronto a ricevere messaggi, per renderlo inattivo bisogna chiamare il metodo close(). La consegnadi messaggi comunque non inizia finchè non viene chiamato il metodo start sulla connessione. Si può usare poi il metodo receive() per consumare i messaggi in modalità sincrona (sempre dopo aver invocato start sulla connessione). Invece per consumare i messaggi in modalità asincrona si usa un message listener. Message listener: è un oggetto che si comporta come un gestore di eventi asincroni. Implementa l interfaccia MessageListener che contiene un metodo, onmessage. Nell implementazione di tale metodo viene specificato il comportamento alla ricezione del messaggio. Il consumatore si registra al listener di interesse: T o p i c L i s t e n e r t o p i c L i s t e n e r = new T o p i c L i s t e n e r ( ) ; t o p i c S u b s c r i b e r. s e t M e s s a g e L i s t e n e r ( t o p i c L i s t e n e r ) ; Messaggi: Un messaggio è composto da: Header: ogni campo dello header ha i metodi set e get. Alcuni campi devono essere settati esplicitamente ma la maggior parte di essi viene settata automaticamente dai metodi send o publish (e in questi casi gli eventuali campi già settati manualmente vengono sovrascritti). Properties (opzionali) Body (opzionale): ci sono 5 tipi divers di body: TextMessage: messaggio testuale MapMessage: coppie nome/valore in cui il noe è una stringa ed il valore è un tipo primitivo di java. ByteMessage: uno strem di bytes StreamMessage: uno stream di valori primitivi di java ObjectMessage: un oggetto di tipo serializzabile Message: costituito dai soli campi header e properties 2

3 Per creare un messaggio di tipo testuale: TextMessage message = queuesession. createtextmessage ( ) ; message. settext ( msg text ) ; // m s g t e x t è d i t i p o S t r i n g queuesender. send ( message ) ; Quando il messaggio viene consumato esso arriva come messaggio generico (di tipo Message) e quindi deve essere fatto il cast al tipo appropriato. Message m = queuereceiver. r e c e i v e ( ) ; i f (m instanceof TextMessage ) TextMessage message = ( TextMessage ) m; System. out. p r i n t l n ( Reading message : + message. gettext ( ) ) ; else // G e s t i s c i l e r r o r e 1.1 Esempio MDB Un semplice esempio di Message Driven Bean che utilizza una coda per ricevere messaggi. import javax. e j b. MessageDrivenBean ; import javax. e j b. MessageDrivenContext ; import javax. jms. Message ; import javax. jms. MessageListener ; import javax. jms. TextMessage ; Listing 1: FirstMDB.java public class FirstMDB implements MessageDrivenBean, MessageListener public void ejbcreate ( ) System. out. p r i n t l n ( Creo l MDB ) ; public void setmessagedrivencontext ( MessageDrivenContext c x t ) System. out. p r i n t l n ( Setto i l c o n t e s t o ) ; public void ejbremove ( ) System. out. p r i n t l n ( Rimuovo l MDB ) ; public void onmessage ( Message msg ) System. out. p r i n t l n ( Ricevuto un messaggio ) ; S t r i n g t e x t = null ; i f ( msg instanceof TextMessage ) try t e x t = ( ( TextMessage ) msg ). gettext ( ) ; System. out. p r i n t l n ( +t e x t ) ; catch ( Exception ex ) ex. printstacktrace ( ) ; else System. out. p r i n t l n ( non è un messaggio t e s t u a l e! ) ; 3

4 Listing 2: MDBClient.java public class MDBClient public s t a t i c void main ( S t r i n g arg [ ] ) try / S o l u z i o n e 1 : In a l t e r n a t i v a a l j n d i. p r o p e r t i e s / / j a v a. u t i l. P r o p e r t i e s prop = new j a v a. u t i l. P r o p e r t i e s ( ) ; prop. put ( Context.INITIAL CONTEXT FACTORY, org. jnp. i n t e r f a c e s. NamingContextFactory ) ; prop. put ( Context.URL PKG PREFIXES, org. jnp. i n t e r f a c e s ) ; prop. put ( Context.PROVIDER URL, l o c a l h o s t ) ; Context c o n t e x t = new I n i t i a l C o n t e x t ( prop ) ; / / S o l u z i o n e 1 / / S o l u z i o n e 2 : Contesto preso d a l f i l e j n d i. p r o p e r t i e s / Context context = new I n i t i a l C o n t e x t ( ) ; / S o l u z i o n e 2 / // Look up d e l l a connection f a c t o r y ( QueueConnectionFactory è q u e l l a d i d e f a u l t per JBOSS) QueueConnectionFactory queuefactory =( QueueConnectionFactory ) c o n t e x t. lookup ( QueueConnectionFactory ) ; // Crea una connessione con i l JMS p r o v i d e r QueueConnection queueconnection = queuefactory. createqueueconnection ( ) ; // Crea una s e s s i o n e QueueSession s e s s i o n = queueconnection. createqueuesession ( false, S e s s i o n.auto ACKNOWLEDGE) ; // Lookup d e l l a coda d i d e s t i n a z i o n e su c u i p u b b l i c a r e Queue queue = ( Queue ) context. lookup ( queue / f i r s t Q u e u e ) ; // Crea un p r o d u t t o r e QueueSender queuesender = s e s s i o n. c r e a t e S e n d e r ( queue ) ; // Crea un messaggio d i t e s t o TextMessage message = s e s s i o n. createtextmessage ( ) ; message. settext ( H e l l o World! ) ; // I n v i a i l messaggio queuesender. send ( message ) ; // Chiude l a connessione queueconnection. c l o s e ( ) ; catch ( Exception e ) e. printstacktrace ( ) ; Listing 3: jndi.properties java. naming. f a c t o r y. i n i t i a l=org. jnp. i n t e r f a c e s. NamingContextFactory java. naming. p r o v i d e r. u r l=jnp : // l o c a l h o s t :1099 java. naming. f a c t o r y. u r l. pkgs=org. j b o s s. naming : org. jnp. i n t e r f a c e s <?xml version= 1. 0 Listing 4: META-INF/ejb-jar.xml encoding= UTF 8?> <!DOCTYPE ejb j a r PUBLIC //Sun Microsystems, Inc. / /DTD E n t e r p r i s e JavaBeans 2.0//EN h t t p : // java. sun. com/ dtd / ejb j a r 2 0. dtd > <ejb j a r> <e n t e r p r i s e beans> 4

5 <message driven> <ejb name>firstmdb</ ejb name> <ejb c l a s s>firstmdb</ ejb c l a s s> <message driven d e s t i n a t i o n> <d e s t i n a t i o n type> javax. jms. Queue </ d e s t i n a t i o n type> </ message driven d e s t i n a t i o n> <t r a n s a c t i o n type>container</ t r a n s a c t i o n type> </ message driven> </ e n t e r p r i s e beans> </ ejb j a r> <j b o s s> <e n t e r p r i s e beans> <message driven> <ejb name>firstmdb</ ejb name> <d e s t i n a t i o n jndi name> f i r s t Q u e u e </ d e s t i n a t i o n jndi name> </ message driven> </ e n t e r p r i s e beans> </ j b o s s> Listing 5: META-INF/jboss.xml 1.2 Esempio Queue Listing 6: Receiver.java class T e x t L i s t e n e r implements MessageListener public void onmessage ( Message message ) try TextMessage txtmsg=(textmessage ) message ; System. out. p r i n t l n ( r i c e v u t o : +txtmsg. gettext ( ) ) ; catch ( JMSException e r r o r ) System. out. p r i n t l n ( hai r i c e v u t o una e c c e z i o n e : +e r r o r. getmessage ( ) ) ; public class Receiver QueueConnectionFactory c f = null ; QueueConnection c onnection = null ; QueueSession s e s s i o n = null ; Queue d e s t i n a t i o n = null ; QueueReceiver r e c e i v e r = null ; // TextMessage message = n u l l ; 5

6 c f = ( QueueConnectionFactory ) ctx. lookup ( ConnectionFactory ) ; d e s t i n a t i o n = ( Queue ) ctx. lookup ( queue /miacoda ) ; c onnection = c f. createqueueconnection ( ) ; s e s s i o n = connection. createqueuesession ( false, r e c e i v e r = s e s s i o n. c r e a t e R e c e i v e r ( d e s t i n a t i o n ) ; r e c e i v e r. s e t M e s s a g e L i s t e n e r (new T e x t L i s t e n e r ( ) ) ; c onnection. s t a r t ( ) ; System. out. p r i n t l n ( La c o n n e s s i o n e e p a r t i t a, sono in a t t e s a d i un messaggio ) ; Listing 7: Sender.java public class Sender QueueConnectionFactory c f = null ; QueueConnection c onnection = null ; QueueSession s e s s i o n = null ; Queue d e s t i n a t i o n = null ; QueueSender sender = null ; TextMessage message = null ; c f = ( QueueConnectionFactory ) ctx. lookup ( ConnectionFactory ) ; d e s t i n a t i o n = ( Queue ) ctx. lookup ( queue /miacoda ) ; c onnection = c f. createqueueconnection ( ) ; s e s s i o n = connection. createqueuesession ( false, sender = s e s s i o n. c r e a t e S e n d e r ( d e s t i n a t i o n ) ; message = s e s s i o n. createtextmessage ( ) ; message. settext ( a r g s [ 0 ] ) ; System. out. p r i n t l n ( I n v i o d e l messaggio d i a llarme in c o r s o.. \n ) ; sender. send ( message ) ; 6

7 c onnection. c l o s e ( ) ; System. out. p r i n t l n ( Messaggio di allarme i n v i a t o correttamente. ) ; 1.3 Esempio Topic Listing 8: Publisher.java public class P u b l i s h e r TopicConnectionFactory c f = null ; TopicConnection connection = null ; T opicsession s e s s i o n = null ; Topic d e s t i n a t i o n = null ; TopicPublisher p u b l i s h e r = null ; TextMessage message = null ; c f = ( TopicConnectionFactory ) ctx. lookup ( ConnectionFactory ) ; d e s t i n a t i o n = ( Topic ) ctx. lookup ( t o p i c / i n c e n d i o ) ; c onnection = c f. createtopicconnection ( ) ; s e s s i o n = connection. c r e a t e T o p i c S e s s i o n ( false, p u b l i s h e r = s e s s i o n. c r e a t e P u b l i s h e r ( d e s t i n a t i o n ) ; message = s e s s i o n. createtextmessage ( ) ; message. settext ( a r g s [ 0 ] ) ; System. out. p r i n t l n ( I n v i o d e l messaggio d i a llarme in c o r s o.. \n ) ; p u b l i s h e r. send ( message ) ; c onnection. c l o s e ( ) ; System. out. p r i n t l n ( Messaggio di allarme i n v i a t o correttamente. ) ; Listing 9: Subscriber.java class T e x t L i s t e n e r implements MessageListener 7

8 public void onmessage ( Message message ) try TextMessage txtmsg=(textmessage ) message ; System. out. p r i n t l n ( r i c e v u t o : +txtmsg. gettext ( ) ) ; catch ( JMSException e r r o r ) System. out. p r i n t l n ( hai r i c e v u t o una e c c e z i o n e : +e r r o r. getmessage ( ) ) ; public class S u b s c r i b e r TopicConnectionFactory c f = null ; TopicConnection connection = null ; T opicsession s e s s i o n = null ; Topic d e s t i n a t i o n = null ; TopicSubscriber s u b s c r i b e r = null ; // TextMessage message = n u l l ; c f = ( TopicConnectionFactory ) ctx. lookup ( ConnectionFactory ) ; d e s t i n a t i o n = ( Topic ) ctx. lookup ( t o p i c / i n c e n d i o ) ; c onnection = c f. createtopicconnection ( ) ; s e s s i o n = connection. c r e a t e T o p i c S e s s i o n ( false, s u b s c r i b e r = s e s s i o n. c r e a t e S u b s c r i b e r ( d e s t i n a t i o n ) ; s u b s c r i b e r. s e t M e s s a g e L i s t e n e r (new T e x t L i s t e n e r ( ) ) ; c onnection. s t a r t ( ) ; System. out. p r i n t l n ( La c o n n e s s i o n e e p a r t i t a, sono in a t t e s a d i un messaggio ) ; 1.4 Esempio Topic Selection Listing 10: Publisher.java public class P u b l i s h e r 8

9 TopicConnectionFactory c f = null ; TopicConnection connection = null ; T opicsession s e s s i o n = null ; Topic d e s t i n a t i o n = null ; TopicPublisher p u b l i s h e r = null ; TextMessage message = null ; c f = ( TopicConnectionFactory ) ctx. lookup ( ConnectionFactory ) ; d e s t i n a t i o n = ( Topic ) ctx. lookup ( t o p i c / allarme ) ; c onnection = c f. createtopicconnection ( ) ; s e s s i o n = connection. c r e a t e T o p i c S e s s i o n ( false, p u b l i s h e r = s e s s i o n. c r e a t e P u b l i s h e r ( d e s t i n a t i o n ) ; message = s e s s i o n. createtextmessage ( ) ; message. s e t S t r i n g P r o p e r t y ( tipoallarme, a r g s [ 0 ] ) ; message. settext ( a r g s [ 1 ] ) ; TextMessage txtmsg=(textmessage ) message ; System. out. p r i n t l n ( I n v i o d e l messaggio d i a llarme in c o r s o.. \n ) ; p u b l i s h e r. send ( message ) ; c onnection. c l o s e ( ) ; System. out. p r i n t l n ( Messaggio di allarme i n v i a t o correttamente. ) ; Listing 11: Subscriber.java class T e x t L i s t e n e r implements MessageListener public void onmessage ( Message message ) try TextMessage txtmsg=(textmessage ) message ; System. out. p r i n t l n ( r i c e v u t o : +txtmsg. gettext ( ) ) ; catch ( JMSException e r r o r ) System. out. p r i n t l n ( hai r i c e v u t o una e c c e z i o n e : +e r r o r. getmessage ( ) ) ; public class S u b s c r i b e r 9

10 TopicConnectionFactory c f = null ; TopicConnection connection = null ; T opicsession s e s s i o n = null ; Topic d e s t i n a t i o n = null ; TopicSubscriber s u b s c r i b e r = null ; // TextMessage message = n u l l ; S t r i n g s e l e c t o r = null ; c f = ( TopicConnectionFactory ) ctx. lookup ( ConnectionFactory ) ; d e s t i n a t i o n = ( Topic ) ctx. lookup ( t o p i c / allarme ) ; c onnection = c f. createtopicconnection ( ) ; s e s s i o n = connection. c r e a t e T o p i c S e s s i o n ( false, // d i c h i a r o che intendo u t i l i z z a r e un s e l e t t o r e s e l e c t o r = tipoallarme = i n c e n d i o ; s u b s c r i b e r = s e s s i o n. c r e a t e S u b s c r i b e r ( d e s t i n a t i o n, s e l e c t o r, f a l s e ) ; s u b s c r i b e r. s e t M e s s a g e L i s t e n e r (new T e x t L i s t e n e r ( ) ) ; c onnection. s t a r t ( ) ; System. out. p r i n t l n ( La c o n n e s s i o n e e p a r t i t a, sono in a t t e s a d i un messaggio ) ; Listing 12: Subscriber2.java class TextListener2 implements MessageListener public void onmessage ( Message message ) try TextMessage txtmsg=(textmessage ) message ; System. out. p r i n t l n ( r i c e v u t o : +txtmsg. gettext ( ) ) ; catch ( JMSException e r r o r ) System. out. p r i n t l n ( hai r i c e v u t o una e c c e z i o n e : +e r r o r. getmessage ( ) ) ; public class S u b s c r i b e r 2 10

11 TopicConnectionFactory c f = null ; TopicConnection connection = null ; T opicsession s e s s i o n = null ; Topic d e s t i n a t i o n = null ; TopicSubscriber s u b s c r i b e r = null ; // TextMessage message = n u l l ; S t r i n g s e l e c t o r = null ; c f = ( TopicConnectionFactory ) ctx. lookup ( ConnectionFactory ) ; d e s t i n a t i o n = ( Topic ) ctx. lookup ( t o p i c / allarme ) ; c onnection = c f. createtopicconnection ( ) ; s e s s i o n = connection. c r e a t e T o p i c S e s s i o n ( false, // d i c h i a r o che intendo u t i l i z z a r e un s e l e t t o r e s e l e c t o r = tipoallarme = rapina ; s u b s c r i b e r = s e s s i o n. c r e a t e S u b s c r i b e r ( d e s t i n a t i o n, s e l e c t o r, f a l s e ) ; s u b s c r i b e r. s e t M e s s a g e L i s t e n e r (new TextListener2 ( ) ) ; c onnection. s t a r t ( ) ; System. out. p r i n t l n ( La c o n n e s s i o n e e p a r t i t a, sono in a t t e s a d i un messaggio ) ; 1.5 Esempio Queue con lettura sincrona Listing 13: ReceiverSync.java public class ReceiverSync QueueConnectionFactory c f = null ; QueueConnection c onnection = null ; QueueSession s e s s i o n = null ; Queue d e s t i n a t i o n = null ; QueueReceiver r e c e i v e r = null ; 11

12 TextMessage message = null ; c f = ( QueueConnectionFactory ) ctx. lookup ( ConnectionFactory ) ; d e s t i n a t i o n = ( Queue ) ctx. lookup ( queue /miacoda ) ; c onnection = c f. createqueueconnection ( ) ; s e s s i o n = connection. createqueuesession ( false, r e c e i v e r = s e s s i o n. c r e a t e R e c e i v e r ( d e s t i n a t i o n ) ; c onnection. s t a r t ( ) ; do message=(textmessage ) r e c e i v e r. r e c e i v e ( ) ; System. out. p r i n t l n ( r i c e v u t o messaggio : +message. gettext ( ) ) ; while (! message. gettext ( ). e q u a l s ( stop ) ) ; Listing 14: SenderSync.java public class SenderSync QueueConnectionFactory c f = null ; QueueConnection c onnection = null ; QueueSession s e s s i o n = null ; Queue d e s t i n a t i o n = null ; QueueSender sender = null ; TextMessage message = null ; c f = ( QueueConnectionFactory ) ctx. lookup ( ConnectionFactory ) ; d e s t i n a t i o n = ( Queue ) ctx. lookup ( queue /miacoda ) ; c onnection = c f. createqueueconnection ( ) ; s e s s i o n = connection. createqueuesession ( false, 12

13 sender = s e s s i o n. c r e a t e S e n d e r ( d e s t i n a t i o n ) ; message = s e s s i o n. createtextmessage ( ) ; message. settext ( a r g s [ 0 ] ) ; System. out. p r i n t l n ( I n v i o d e l messaggio d i a llarme in c o r s o.. \n ) ; sender. send ( message ) ; c onnection. c l o s e ( ) ; System. out. p r i n t l n ( Messaggio di allarme i n v i a t o correttamente. ) ; 13

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

Architetture Software Orientate ai Servizi Java Message Service - JMS

Architetture Software Orientate ai Servizi Java Message Service - JMS Architetture Software Orientate ai Servizi Java Message Service - JMS Magnifico ambasciatore. «Tarde non furon mai grazie divine». Dico questo perché mi pareva di aver non perduto, ma smarrito la grazia

Dettagli

ottobre Fonti The Java EE 5 Tutorial The Java Message Service API Luca Cabibbo Messaging

ottobre Fonti The Java EE 5 Tutorial The Java Message Service API   Luca Cabibbo Messaging Luca Cabibbo Architetture Software Dispensa MW 4 ottobre 2008 1 -Fonti The Java EE 5 Tutorial The Java Message Service API http://java.sun.com/javaee/5/docs/tutorial/doc/ 2 Obiettivi - Obiettivi e argomenti

Dettagli

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Distributed and Agent Systems Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma Distributed and Agent Systems JMS Prof. Agostino Poggi What is JMS? Acronym of Java Messaging

Dettagli

Obiettivo della lezione. Presentare un esempio di meccanismi di comunicazione asincrona utilizzato nei Message- Oriented-Middleware (MOM)

Obiettivo della lezione. Presentare un esempio di meccanismi di comunicazione asincrona utilizzato nei Message- Oriented-Middleware (MOM) Obiettivo della lezione Lezione 20 Java Message Service Vittorio Scarano Corso di Sistemi Distribuiti (2003-2004) Laurea Specialistica in Informatica Università degli Studi di Salerno Presentare un esempio

Dettagli

Java Messaging Service

Java Messaging Service Java Messaging Service Università di Bologna CdS Laurea Specialistica in Ingegneria Informatica III Ciclo - A.A. 2008/2009 Corso di Sistemi Distribuiti LS Java Messaging Service (JMS): panoramica e alcuni

Dettagli

Java Messaging Service

Java Messaging Service Java Messaging Service Università di Bologna CdS Laurea Specialistica in Ingegneria Informatica III Ciclo - A.A. 2008/2009 Corso di Sistemi Distribuiti LS Java Messaging Service (JMS): panoramica e alcuni

Dettagli

Java Message Service (JMS)

Java Message Service (JMS) Luca Cabibbo Architettura dei Sistemi Software Java Message Service (JMS) dispensa asw840 marzo 2017 I ll send an S.O.S. to the world. I hope that someone gets my message in a bottle. Yeah. The Police

Dettagli

07 - Java Messaging Service (JMS) e

07 - Java Messaging Service (JMS) e Java Messaging Service e Enterprise Service Bus Università di Bologna CdS Laurea Magistrale in Ingegneria Informatica I Ciclo - A.A. 2013/2014 Corso di Sistemi Distribuiti M 07 - Java Messaging Service

Dettagli

Enterprise Service Bus

Enterprise Service Bus Java Messaging Service e Enterprise Service Bus Università di Bologna CdS Laurea Specialistica in Ingegneria Informatica II Ciclo - A.A. 2009/2010 Corso di Sistemi Distribuiti LS Java Messaging Service

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

Messaging (middleware)

Messaging (middleware) Luca Cabibbo Architetture Software Messaging (middleware) Dispensa ASW 840 ottobre 2014 Quando sei di fronte a un interfaccia particolarmente difficile, prova a cambiare la sua caratterizzazione. Eberhardt

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

Java Messaging Service e Enterprise Service Bus

Java Messaging Service e Enterprise Service Bus Java Messaging Service e Enterprise Service Bus Alma Mater Studiorum - Università di Bologna CdS Laurea Magistrale in Ingegneria Informatica I Ciclo - A.A. 2016/2017 Corso di Sistemi Distrbuiti M 07 -

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

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

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

Corso sul linguaggio Java

Corso sul linguaggio Java Corso sul linguaggio Java Modulo JAVA9 B3.2 Produttore-consumatore 1 Prerequisiti Elementi di programmazione concorrente Mutua esclusione Produttore-consumatore 2 1 Introduzione In questa Unità vediamo

Dettagli

Corso di Telematica II

Corso di Telematica II Corso di Laurea Triennale in Ingegneria Informatica ed Ingegneria delle Telecomunicazioni Corso di Telematica II Matricola Nome, Cognome Data Orale... Prova scritta del 21/07/2005 Si implementi, in linguaggio

Dettagli

Programmazione distribuita in Java. Socket & Client-Server

Programmazione distribuita in Java. Socket & Client-Server Programmazione distribuita in Java Socket & Client-Server 1 Strumenti per networking Libreria java.net Socket (Astrazione per una presa di comunicazione) Serializzazione Socket Per comunicare si apre una

Dettagli

Programmazione Concorrente e Distribuita

Programmazione Concorrente e Distribuita Programmazione Concorrente e Distribuita Esame scritto del 29 Giugno 2012 Versione I Esercizio 1 ( punti) 1 class Mammal { 2 S t r i n g name = f u r r y ; 3 S t r i n g makenoise ( ) { return g e n e

Dettagli

L'applicazione di esempio. Trasparenza di distribuzione. La classe Consumatore. La classe Produttore

L'applicazione di esempio. Trasparenza di distribuzione. La classe Consumatore. La classe Produttore Trasparenza di distribuzione L'applicazione di esempio Il processo Produttore produce periodicamente un prodotto e lo invia in push al processo Consumatore Immaginiamo un sistema composto da Processo Produttore

Dettagli

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

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

Dettagli

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

Scambio Messaggi. Message Passing. Synchronization. Garantiscono la mutua esclusione Scambio di informazioni

Scambio Messaggi. Message Passing. Synchronization. Garantiscono la mutua esclusione Scambio di informazioni Scambio Messaggi Domenico Cotroneo Dipartimento di Informatica e Sistemistica Message Passing Garantiscono la mutua esclusione Scambio di informazioni send (destination, message) receive (source, message)

Dettagli

PROCEDURA APERTA PER L AFFIDAMENTO DELLA FORNITURA DI AUSILI PER INCONTINENZA E ASSORBENZA A MINOR IMPATTO AMBIENTALE 3

PROCEDURA APERTA PER L AFFIDAMENTO DELLA FORNITURA DI AUSILI PER INCONTINENZA E ASSORBENZA A MINOR IMPATTO AMBIENTALE 3 PROCEDURA APERTA PER L AFFIDAMENTO DELLA FORNITURA DI AUSILI PER INCONTINENZA E ASSORBENZA A MINOR IMPATTO AMBIENTALE 3 ALLEGATO 5.1 SISTEMA INFORMATIVO SPECIFICHE MESSAGGI BACKBONE SPA SVILUPPO PERCORSI

Dettagli

Prova d Esame Compito A

Prova d Esame Compito A Prova d Esame 19.04.2005 Compito A Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private int counter;

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Qualità del Codice: Convenzioni di Stile versione 1.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima

Dettagli

Principi, Modelli e Applicazioni per Sistemi Distribuiti M

Principi, Modelli e Applicazioni per Sistemi Distribuiti M Università degli Studi di Bologna Facoltà di Ingegneria Principi, Modelli e Applicazioni per Sistemi Distribuiti M Esercitazione 2 (svolta) Socket Java con connessione Alessandro Pernafini Architettura

Dettagli

Riferimenti ad oggetti: Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro. Riferimenti ad oggetti: (Esempio)

Riferimenti ad oggetti: Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro. Riferimenti ad oggetti: (Esempio) Fondamenti di Informatica L-B Esercitazione n 4 Java: I/O, Costruttori e altro A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Riferimenti ad oggetti: Cosa si può fare con i riferimenti?

Dettagli

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Dettagli

GESTIONE DEGLI ERRORI

GESTIONE DEGLI ERRORI GESTIONE DEGLI ERRORI Spesso vi sono istruzioni critiche, che in certi casi possono produrre errori L approccio classico consiste nell inserire controlli (if else..) per cercare di intercettare a priori

Dettagli

Corso di Reti di Calcolatori L-A

Corso di Reti di Calcolatori L-A Università degli Studi di Bologna Facoltà di Ingegneria Corso di Reti di Calcolatori L-A Esercitazione 0 (svolta) Multithreading in Java Luca Foschini Anno accademico 2009/2010 Esercitazione 0 1 Modello

Dettagli

Programmazione ad Oggetti. Java Parte II

Programmazione ad Oggetti. Java Parte II Programmazione ad Oggetti Java Parte II Overview Caratteristiche lessicali Il primo programma Java 1 Commenti /* Commento tradizionale, eventualmente su più linee, non nidificato */ // Commento su di una

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

ESERCIZIO 1 ESERCIZIO 1

ESERCIZIO 1 ESERCIZIO 1 Si crei un progetto Java che mappi un semplice sistema medico. Il progetto deve contenere tre classi: una per i pazienti, una per le patologie e una per il main. Inoltre si definiscano le seguenti eccezioni:

Dettagli

Oggetti e dati primitivi 1

Oggetti e dati primitivi 1 I membri delle classi Oggetti e dati primitivi Corso di laurea in Le classi contengono 2 tipi di membri, definiti per l intera classe o per le singole istanze Le variabili o i campi, che rappresentano

Dettagli

Programmazione Concorrente e Distribuita

Programmazione Concorrente e Distribuita Programmazione Concorrente e Distribuita Esame scritto del 10 Gennaio 2012 Versione C Esercizio 1 (5 punti) 1 public class Tenor extends S i n g e r { 2 public s t a t i c S t r i n g s i n g ( ) { 3 return

Dettagli

I Thread. un thread è uno stream di esecuzione del programma

I Thread. un thread è uno stream di esecuzione del programma I Thread un thread è uno stream di esecuzione del programma Sistema Operativo e Thread Un processo o thread una successione di operazioni che vengono eseguite dal sistema operativo in modo sequenziale

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

Esempio: Costruttori ed ereditarietà

Esempio: Costruttori ed ereditarietà Esempio: 1 Introduzione Java prevede due automatismi legati ai costruttori: Se una classe non ha costruttori viene creato automaticamente il costruttore di default (quello senza parametri) Se in un costruttore

Dettagli

Programmazione con Java

Programmazione con Java Programmazione con Java Classi e istanze in Java Definizione di classe in Java A meno che non si usino classi già scritte da altri, prima di poter creare un qualsiasi oggetto devo creare la sua rappresentazione:

Dettagli

Il Modello a scambio di messaggi

Il Modello a scambio di messaggi Il Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto typedef struct{ origine; destinazione; contenuto;

Dettagli

Modello a scambio di messaggi

Modello a scambio di messaggi Modello a scambio di messaggi PRIMITIVE PER LO SCAMBIO DI MESSAGGI Un messaggio si può considerare costituito da: origine, destinazione e contenuto type messaggio = record origine:. ; destinazione:. ;

Dettagli

Esercitazione 2: Java Thread

Esercitazione 2: Java Thread Esercitazione 2: Java Thread Thread Un thread è un singolo flusso sequenziale di controllo all interno di un processo Un thread (o processo leggero) è un unità di esecuzione che condivide codice e dati

Dettagli

Progetto di Applicazioni Software

Progetto di Applicazioni Software Progetto di Applicazioni Software Tecnologie di Base per la Programmazione in Ambienti Distribuiti Remote Procedure Call (RPC) e Message Oriented Middleware (MOM) RPC e MOM in Java: Java RMI e JMS thread

Dettagli

Esercitazione 2: Java Thread. Java Thread. Java Thread. Un thread:

Esercitazione 2: Java Thread. Java Thread. Java Thread. Un thread: Esercitazione 2: Thread Un thread è un singolo flusso sequenziale di controllo all interno di un processo Un thread (o processo leggero) è un unità di esecuzione che condivide codice e dati con altri thread

Dettagli

Interfaccia Comparable. Fondamenti di Informatica L-B Esercitazione n 5 Java: Comparable, Array. Come sfrutto Comparable?

Interfaccia Comparable. Fondamenti di Informatica L-B Esercitazione n 5 Java: Comparable, Array. Come sfrutto Comparable? Fondamenti di Informatica L-B Esercitazione n 5 Java: Comparable, Array A.A. 2005/06 Tutor: Loris Cancellieri loris.cancellieri@studio.unibo.it Interfaccia Comparable class Contatore implements Comparable

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

Applicazioni web. Sommario. Parte 4 http. http Metodi, intestazioni e codici di stato get post Parametri e cookie. Applicazioni web.

Applicazioni web. Sommario. Parte 4 http. http Metodi, intestazioni e codici di stato get post Parametri e cookie. Applicazioni web. Parte 4 http Sommario http Metodi, intestazioni e codici di stato get post Parametri e cookie 1 Http Hyper Text Transfer Protocol Protocollo di livello applicazione per sistemi informativi distribuiti,

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

I Thread. Sistema Operativo e Thread

I Thread. Sistema Operativo e Thread I Thread un thread è uno stream di esecuzione del programma Sistema Operativo e Thread Un processo o thread una successione di operazioni che vengono eseguite dal sistema operativo in modo sequenziale

Dettagli

Configurazione di una vs. Laboratorio di sistemi interattivi. Dal modello formale all implementazione

Configurazione di una vs. Laboratorio di sistemi interattivi. Dal modello formale all implementazione Laboratorio di sistemi interattivi Lezione 10: Dal modello formale all implementazione General Course Information 1 Dal modello formale all implementazione Interprete universale del formalismo possibile

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

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

Programmazione a oggetti

Programmazione a oggetti Programmazione a oggetti Quanti oggetti, tra di loro parlando, fanno programmi. Pilu Crescenzi piluc@dsi.unifi.it Università di Firenze Programmazione a oggetti p.1/32 Cosa è un oggetto Una scatola software

Dettagli

Concetti Base Encapsulation ed Ereditarietà Programmare con l Ereditarietà. Java: Ereditarietà. Damiano Macedonio

Concetti Base Encapsulation ed Ereditarietà Programmare con l Ereditarietà. Java: Ereditarietà. Damiano Macedonio Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica Introduzione Ereditarietà in Sintesi È uno dei concetti chiave della programmazione orientata agli

Dettagli

Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals()

Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Programmazione in Java (I modulo) Lezione 21: Classi derivate e l'operatore instanceof Riscrivere il metodo tostring() Riscrivere il metodo equals() Ereditarietà (Inheritance) RIASSUMIAMO DALLA SCORSA

Dettagli

Rinaldo Bonazzo Rinaldo Bonazzo, japs incontra Spring Cagliari, 14 Giugno 2008

Rinaldo Bonazzo   Rinaldo Bonazzo, japs incontra Spring Cagliari, 14 Giugno 2008 LjAPS incontra Spring o Rinaldo Bonazzo http://www.jroller.com/rbonazzo/ 1 Chi sono Responsabile informatico di Sardinia Point Srl (www.sardiniapoint.it) società che: sviluppa strumenti informatici destinati

Dettagli

Eccezioni Precisazioni e approfondimenti

Eccezioni Precisazioni e approfondimenti Eccezioni Precisazioni e approfondimenti Costruttore: il parametro String definisce il messaggio di errore associato all eccezione Metodi particolarmente significativi getmessage(): ritorna l istanza di

Dettagli

Prova d Esame Compito A

Prova d Esame Compito A Prova d Esame 19.07.2005 Compito A Domanda 1 A) Si richiede di analizzare le seguenti sezioni di codice. Il candidato indichi il risultato dell esecuzione del main. public class Father { private int counter;

Dettagli

Spring & Mule. Andrea Bozzoni

Spring & Mule. Andrea Bozzoni Spring & Mule Andrea Bozzoni andrea.bozzoni@gmail.com 1 Contenuti 1 - Panoramica su un ESB 2 - Introduzione a Mule 3 - Integrazione tra Spring & Mule 3.1 - Spring come component Factory 3.2 - Configurare

Dettagli

SOMMARIO Tipo di dato astratto (ADT) : Interfacce: interface. TIPI DI DATI ASTRATTI. Polimorfismo: Tipo class. Tipo interface. Tipi run-time: is e as.

SOMMARIO Tipo di dato astratto (ADT) : Interfacce: interface. TIPI DI DATI ASTRATTI. Polimorfismo: Tipo class. Tipo interface. Tipi run-time: is e as. SOMMARIO Tipo di dato astratto (ADT) : Interfacce: interface. Polimorfismo: Tipo class. Tipo interface. Tipi run-time: is e as. Confronto tra oggetti: Equals(). IComparable. IComparer. TIPI DI DATI ASTRATTI

Dettagli

Java Thread. Thread. Un thread

Java Thread. Thread. Un thread Java Thread Thread Un thread è un singolo flusso sequenziale di controllo all interno di un processo Un thread (o processo leggero) è un unità di esecuzione che condivide codice e dati con altri thread

Dettagli

Programmazione Orientata agli Oggetti in Linguaggio Java

Programmazione Orientata agli Oggetti in Linguaggio Java Programmazione Orientata agli Oggetti in Linguaggio Java Sintassi e Semantica Componenti versione 2.0 Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons (vedi ultima pagina)

Dettagli

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014

Programmazione. Cognome... Nome... Matricola... Prova scritta del 11 luglio 2014 Cognome................................ Nome................................... Matricola............................... Programmazione Prova scritta del 11 luglio 2014 TEMPO DISPONIBILE: 2 ore Negli esercizi

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

C# delegates. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 1. Delegate

C# delegates. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 1. Delegate C# delegates Vittorio Maniezzo Università di Bologna Vittorio Maniezzo Università di Bologna 1 Delegate I delegati possono essere visti come definizioni di tipi per puntatori a funzione. Permettono di

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

Enterprise Java Bean (EJB)

Enterprise Java Bean (EJB) Luca Cabibbo Architettura dei Sistemi Software Enterprise Java Bean (EJB) dispensa asw850 marzo 2017 Coming together is beginning. Keeping together is progress. Working together is success. Henry Ford

Dettagli

Scope e visibilità per classi

Scope e visibilità per classi Scope e visibilità per classi Packages Classi interne nelle loro diverse forme Interne / statiche / locali Utilizzo congiunto con interfacce Implementazione di iteratori Gestione di eventi Classi interne

Dettagli

Server Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione

Server Sequenziale. Server Concorrente. Esercitazione: Socket Java con connessione Esercitazione: Socket Java con connessione Sviluppare un applicazione C/S che effettui il trasferimento di un file dal client al server (put) usando una connessione. In particolare nel servizio: il client

Dettagli

Messaggistica (Messaging) Obiettivi. Vantaggi Dei Messaggi. Vantaggi Dei Messaggi Abilita la comunicazione ed il trasferimento dati fra applicazioni

Messaggistica (Messaging) Obiettivi. Vantaggi Dei Messaggi. Vantaggi Dei Messaggi Abilita la comunicazione ed il trasferimento dati fra applicazioni Messaggistica (Messaging) Obiettivi Componenti distribuiti, o varie applicazioni, devono comunicare attraverso la rete La rete è inaffidabile, ciascun elemento della rete può causare ritardi o interruzioni.

Dettagli

domenica 9 giugno 13 Serializzazione

domenica 9 giugno 13 Serializzazione Serializzazione A cosa serve? Ad ottenere una rappresentazione di una struttura dati che possiamo memorizzare, trasmettere via rete Cosa possiamo serializzare? OK NO Tipi primitivi, Riferimenti stringhe

Dettagli

Programmazione ad Oggetti

Programmazione ad Oggetti Programmazione ad Oggetti Java Eccezioni Eccezioni in breve Un eccezione è un oggetto che descrive una situazione anomala o di errore L eccezioni vengono lanciate da una parte di un programma e possono

Dettagli

Java: Definire Classi e Creare Oggetti

Java: Definire Classi e Creare Oggetti Dipartimento di Informatica, Università degli Studi di Verona Corso di Programmazione per Bioformatica lezione del 21 marzo 2014 Introduzione Programmare con gli Oggetti Un programma Java è costituito

Dettagli

Programmazione Java Avanzata. MVC Model, View,, Controller. Ing. Gianluca Caminiti

Programmazione Java Avanzata. MVC Model, View,, Controller. Ing. Gianluca Caminiti Programmazione Java Avanzata MVC Model, View,, Controller Ing. Gianluca Caminiti Uso di JSP: complessità crescente Invocare codice Java direttamente. Posizionare tutto il codice Java in una pagina JSP

Dettagli

Le eccezioni in Java

Le eccezioni in Java Eccezioni 1 Le eccezioni in Java i tipi di eccezione sono particolari classi che contengono solo il costruttore ci possono essere più costruttori overloaded sono definite in moduli separati da quelli che

Dettagli

Programmazione Java Struttura di una classe, Costruttore, Riferimento this

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

Dettagli

Esercitazioni 13 e 14

Esercitazioni 13 e 14 Università degli Studi della Calabria Corso di Laurea in Ingegneria Informatica A.A. 2001/2002 Sistemi Operativi Corsi A e B Esercitazioni 13 e 14 Comunicazione tra processi (IPC) Meccanismo per la comunicazione

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

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

Programmazione lato client. JavaScript. Applicazioni di Rete M. Ribaudo - DISI. JavaScript

Programmazione lato client. JavaScript. Applicazioni di Rete M. Ribaudo - DISI. JavaScript Programmazione lato client Netscape: Microsoft: JScript ECMAScript (ECMA-262) (European Computer Manufactures Association) 1 Linguaggio di script interpretato con alcune caratteristiche Object Oriented

Dettagli

MQSeries. Utilizzo di Java SC13-2958-07

MQSeries. Utilizzo di Java SC13-2958-07 MQSeries Utilizzo di Java SC13-2958-07 MQSeries Utilizzo di Java SC13-2958-07 Nota Prima di utilizzare queste informazioni ed il prodotto che esse supportano, leggere le informazioni contenute nella Appendice

Dettagli

Linguaggi di Programmazione I Lezione 9

Linguaggi di Programmazione I Lezione 9 Linguaggi di Programmazione I Lezione 9 Prof. Marcello Sette mailto://marcello.sette@gmail.com http://sette.dnsalias.org 6 maggio 28 Variabili 3 Ambiti................................................................

Dettagli

14 - Metodi e Costruttori

14 - Metodi e Costruttori 14 - Metodi e Costruttori 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

Dettagli

I a Prova in Itinere di Telematica di Base 24 marzo 2006

I a Prova in Itinere di Telematica di Base 24 marzo 2006 Cognome e Nome: Matricola: I a Prova in Itinere di Telematica di Base 24 marzo 2006 1. Un pacchetto di 20M deve attraversare un collegamento tra due nodi la cui frequenza di trasmissione e di 200Mbs. Il

Dettagli

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

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

Dettagli

ESERCITAZIONE: AZIENDA

ESERCITAZIONE: AZIENDA ESERCITAZIONE: AZIENDA Homework 24 ottobre 2002 Emanuel Weitschek emanuel@dia.uniroma3.it Prerequisiti (software) PostgreSQL pgadmin Driver JDBC Ambito Si consideri una base di dati che contiene informazioni

Dettagli

Polimorfismo parametrico vs polimorfismo per inclusione

Polimorfismo parametrico vs polimorfismo per inclusione Polimorfismo parametrico vs polimorfismo per inclusione Esercizio Definire il tipo di dato Stack con operazioni Push( element ) Pop() Non forzare una specifica implementazione Non forzare un tipo specifico

Dettagli

Le eccezioni in Java

Le eccezioni in Java Eccezioni 1 Le eccezioni in Java i tipi di eccezione sono particolari classi che contengono solo il costruttore ci possono essere più costruttori overloaded sono definite in moduli separati da quelli che

Dettagli

Enterprise Java Beans (EJB) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi

Enterprise Java Beans (EJB) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi Enterprise Java Beans (EJB) SAPIENZA Università di Roma Corso di Architetture Software Orientate ai Servizi Enterprise Java Beans Gli Enterprise Java Beans (EJB) sono componenti scritti in Java che realizzano

Dettagli