Title: Els serveis de missatgeria "Publish
1Els serveis de missatgeria "Publish Subscribe"
vs. "Message Queues"
- Ramon Amat, Eduard Latre
- Grup T9
2Índex de la presentació
- Els Serveis de Missatgeria
- Message Queues
- Publish and Subscribe
- El model JMS
- Esquema de Programació
- Conclusions
3Què és?
- Els serveis de missatgeria són una forma de
lliurar informació entre diferents aplicacions
distribuïdes per la xarxa. - No es tracta de comunicacions intra o inter
Sistemes Operatius Distribuïts. - Podem distingir entre 2 grans famílies
- Sistemes Actius Publish Subscribe
- Sistemes Passius Message Queues
4Què són les Message Queues?
- Característiques principals
- 1 productor 1 consumidor
- Cada tipus de missatge necessita duna cua
específica - El consumidor no ha destar permanentment
connectat a la cua - Cada missatge resta a la cua fins que el
consumidor el demana o expira - Amb o sense garantia dentrega
- Aplicacions
- Indústria financera (transaccions)
- Correu electrònic
5Què és Publish and Subscribe? (I)
- Característiques principals
- N productors M consumidors
- Es parla de TOPICs i no de cues
- Publicació i Subscripció dinàmica a una
estructura de continguts. - El sistema sencarrega de publicar els missatges
entrants als consumidors pertinents. - Només els consumidors registrats i conectats
reben el missatge (Restricció temporal) - Aplicacions
- Indústria financera (cotitzacions)
6Què és Publish and Subscribe? (II)
- Característiques principals
- Els consumidors registrats no tenen pq estar
conectats quan es publica el missatge (Relaxació
Temporal ). - Sanomena Durable Subscription
- Aplicacions
- Sobretot en el sector de les comunicacions mòblis.
7Proveïdors de Sistemes de Missatgeria
- Propietaris
- Durant els darrers 20 anys han predominat els
sistemes de las següents companyies - TIBCO/TIB,TIBCO/ActiveEnterprise
- IBM's MQSeries
- Active Software
- Standardizats
- JMS API per Java
- Softwired, FioranoMQ, Progress Software
8Introducció a JMS
- JMS és lestàndard de programació en message
oriented middleware, MOM, en Java. - JMS és per sistemes MOM el mateix que JDBC és per
a bases de dades Una interfície estàndard per
accedir-hi. - JMS és oferta a través de la llibreria
(javax.jms) - Sun considera JMS com una tecnologia estratègica
per oferir comunicacions en entorns distribuïts. - Tot venedor dservidors daplicació J2EE ha de
suportar JMS!
JMS és lacrònim de "Java Message Service
9Arquitectura API JMS
- Proveïdor JMS Implementa la interfície JMS i
proporciona eines dadministració i control. - Clients JMS Produeixen i consumeixen missatges.
- Objectes Administrats Permeten publicar (bind)
destinacions i conectar factories en un entorn
JNDI Java Naming and Directory Interface. - Destinacions
- Factories de connexió
- Missatges
10Estructura del model JMS
- Connection Factory
- Permet que el client es conecti al proveïdor
- Connection
- Encapsula una conexió virtual amb un proveïdor
JMS - Repersenta una conexió TCP/IP sobre sockets
client/proveïdor - Session
- Context constituït per un thread per crear
productors, consumidors i els mateixos missatges
JMS
11Estructura del Missatge JMS
- El missatge JMS consta de
- Capçalera
- Propietats (opcional)
- Cos (opcional)
- i.e. TextMessage, Byte-, Stream-, Object-,
MapMessage, - Capcelera
- Cada missatge té un identificador únic (
JMSMessageID ) - El topic del missatge és representat per (
JMSDestination )
Capcelera JMS
12Programmació API JMS (I)
- // JNDI - look up for the connection factory
- Context ctx new InitialContext()
- TopicConnectionFactory tcf ctx.lookup("TopicConne
ctionFactory") - // Lookup for a topic and open connexion
- Topic myTopic (Topic) ctx.lookup("MyTopic")
- TopicConnection tc tcf.createTopicConnection()
- // Open a session for a specific topic
- TopicSession ts tc.createTopicSession(false,
Session.AUTO_ACKNOWLEDGE)
13Programmació API JMS (II)
- Productor de Missatges (síncron)
// Creació dun productor TopicPublisher tp
ts.createPublisher(myTopic) // Creació dun
missatge TextMessage message ts.createTextMessag
e() message.setText(Hello) // Publicar
missatge tp.publish(message)
14Programmació API JMS (III)
- Consumidor de Missatges (síncron)
// Creació dun consumdior TopicSubscriber tsb
ts.createSubscriber(myTopic) // Activació de
la conexió tc.start() // Recepció de
missatge TextMessage m (TextMessage)
tsb.receive(1000) //timeout al cap dun
segon System.out.println(Reading Message
m.getText())
15Què aporta?
- Aporta una interficie neutra per comunicar-se
independentment dels sistemes o aplicacions que
utilitzi qualsevol institució o empresa. - Sofereix com un servei de manera que no
requereixi coneixements avançats per part dels
usuaris. - Facilita lexternalització de recursos
- Les parts deleguen la responsabilitat del
lliurament al servei de missatgeria
16Un Sistema JMS per comunicacions mòbils
17Apendre més - Bibliografia
- Per obtenir lespecificació completa del Java
Message Services - http//java.sun.com/
18 Els serveis de missatgeria
Precs i Preguntes