2010 X33EJA Java Message Service

1,144 views

Published on

2010 X33EJA Java Message Service

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,144
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

2010 X33EJA Java Message Service

  1. 1. Copyright©2007KOMIXs.r.o. 1. Copyright©2007KOMIXs.r.o. Martin Ptáček, KOMIX s.r.o. ptacek@komix.cz Java Message Service (JMS)
  2. 2. Copyright©2007KOMIXs.r.o. 2. Co je Messaging? Specifikace a architektura JMS Použití JMS API Závěrečné shrnutí Otázky a odpovědi, Diskuse Obsah
  3. 3. Copyright©2007KOMIXs.r.o. 3. • Způsob komunikace mezi komponentami a aplikacemi. • Specifikace, která popisuje jakým způsobem programy mohou vytvářet, odesílat, přijímat a číst distribuované zprávy. • Loosely coupled communication – Destination, Message format • Email je pro člověka to samé co Messaging pro aplikace. Java Message Service (JMS) Co je Messaging (zasílání zpráv)?
  4. 4. Copyright©2007KOMIXs.r.o. 4. • Vznikla na základě již existujících implementací. • Umožňuje aplikacím vytvářet, odesílat, přijímat a číst zprávy. • Definuje: – Modely komunikace – Spolehlivost (Reliable) – Podporu transakcí – Distribuovatelnost – Bezpečnost Java Message Service (JMS) Specifikace JMS
  5. 5. Copyright©2007KOMIXs.r.o. 5. • JMS provider – Implementace JMS API – Apache ActiveMQ, JBoss Messaging, BEA Weblogic, OpenJMS, WebSphereMQ atd. • JMS clients – Aplikace nebo proces, který odesílá a/nebo přijímá zprávy. • JMS Message – Objekt obsahující data, která jsou posílána mezi klienty. Java Message Service (JMS) Architektura JMS
  6. 6. Copyright©2007KOMIXs.r.o. 6. • Model Point to point – Queues (fronty) – Od jednoho odesílatele k jednomu příjemci • Model Publish/Subscribe – Topics (témata) – Od jednoho odesílatele více příjemcům Java Message Service (JMS) Modely komunikace
  7. 7. Copyright©2007KOMIXs.r.o. 7. Java Message Service (JMS) Model Point-to-Point Client 1 Sends Queue Client 2 Msg Msg Delivers Subscribes
  8. 8. Copyright©2007KOMIXs.r.o. 8. Java Message Service (JMS) Model Publish/Subscribe Client 1 Publishes Client 2 Msg Msg Topic Delivers Subscribes Client 3 Delivers Subscribes
  9. 9. Copyright©2007KOMIXs.r.o. 9. Java Message Service (JMS) Použití JMS API Dohledáno v JNDI Dohledáno v JNDI
  10. 10. Copyright©2007KOMIXs.r.o. 10. • Synchronní – Použití metody receive() – Blokující thread • Asynchronní – Registrování posluchače, který implementuje MessageListener – MDB specifikace JavaEE Java Message Service (JMS) Způsoby příjmu zprávy
  11. 11. Copyright©2007KOMIXs.r.o. 11. • Header – JMSMessageID, JMSDestination, JMSExpiration, JMSPriority, JMSCorrelationID, JMSReplyTo, JMSDeliveryMode • Properties (nepovinný) – Jméno-Hodnota • Body (nepovinný) – JMS API definuje několik typů zpráv • TextMessage, MapMessage, BytesMessage, StreamMessage, ObjectMessage Java Message Service (JMS) JMS Message
  12. 12. Copyright©2007KOMIXs.r.o. 12. • PERSISTENT – Dochází k ukládání zpráv dokud není zpráva bezpečně doručena příjemci či příjemcům. – Nesmí dojít ke ztrátě zprávy při výpadku serveru (JMS Provider) • NON_PERSISTENT – Není zajištěna persistence zprávy Java Message Service (JMS) Režimy doručování (Delivery Mode)
  13. 13. Copyright©2007KOMIXs.r.o. 13. • CLIENT_ACKNOWLEDGE – Konzument sám pošle potvrzení přijetí zprávy voláním metody acknowledge() • AUTO_ACKNOWLEDGE – Automatické potvrzení po příjmu – Po korektním opuštění metody receive() nebo onMessage() • DUPS_OK_ACKNOWLEDGE – Postupné (Lazy) potvrzování přijetí – Konzument musí být schopen přijímat duplicity Java Message Service (JMS) Potvrzování příjmu (Acknowledge)
  14. 14. Copyright©2007KOMIXs.r.o. 14. • Redelivery – Opakované doručení zprávy • Nastává při nepotvrzení přijetí z důvodu neočekávané chyby – Vlastnost JMS implementace – Možno nastavit • Počet opakování • Časový interval (timeout) mezi jednotlivými opakováními • Dead Letter Queue (DLQ) – Fronta pro zprávy, které nebyly úspěšně doručeny Java Message Service (JMS) Redelivery
  15. 15. Copyright©2007KOMIXs.r.o. 15. • Filtrování zpráv pro zpracovatele – Definuje zpracovatel – Možno filtrovat na základě údajů v Header a Properties • SQL 92 subset – Example: JMSPriority > 5 AND JMSType = ‘???’ • POZOR!!! – Specifikace nedefinuje, jak a kde se provádí Java Message Service (JMS) Message Selector
  16. 16. Copyright©2007KOMIXs.r.o. 16. • Implementace servisního synchronního volání • Odesílatel čeká na odpověď – Simulace remote volání • Několik způsobů implementace – javax.jms.QueueRequestor • Jednoduchá implementace součástí JMS API – Použití Temporary Queue – Použití Message Selector Java Message Service (JMS) Request-Reply Pattern
  17. 17. Copyright©2007KOMIXs.r.o. 17. • Výhody – Velice robustní a škálovatelné řešení – Vysoká spolehlivost – Snadná implementace – Podpora ve standardu JEE • Nevýhody – Java API, pouze některé komerční implementace nabízejí možnost využití z jiných jazyků Závěrečné shrnutí Java Message Service
  18. 18. Copyright©2007KOMIXs.r.o. 18. • http://download.oracle.com/javaee/1.3/jms/tutorial/ • http://knol.google.com/k/lukas-zapletal/java-message- service-1-1/1as80wv4bdzca/6# Závěrečné shrnutí Odkazy
  19. 19. Copyright©2007KOMIXs.r.o. 19. Otázky a odpovědi Otázky?
  20. 20. Copyright©2007KOMIXs.r.o. 20. Děkuji za vaši pozornost Martin Ptáček ptacek@komix.cz +420 225 989 981 KOMIX s.r.o. Holubova 1, 150 00 Praha 5 www.komix.cz

×