Presentation is loading. Please wait.

Presentation is loading. Please wait.

Java Messaging Service Notes prepared from GBC Professional Development Seminar :Understanding the Java Messaging Service David Chappell & Rick Kuzyk,

Similar presentations


Presentation on theme: "Java Messaging Service Notes prepared from GBC Professional Development Seminar :Understanding the Java Messaging Service David Chappell & Rick Kuzyk,"— Presentation transcript:

1 Java Messaging Service Notes prepared from GBC Professional Development Seminar :Understanding the Java Messaging Service David Chappell & Rick Kuzyk, Sonic Software.

2 Messaging Data exchange requirements between disparate applications –B2C components (and clients) catalogs order payment fulfillment support

3 Messaging Data exchange requirements between disparate applications –B2B components (and clients) wholesale  retail accounts payable and receivable –Disconnected users (mobile, handheld) package delivery maintenance web phones

4 Messaging Data exchange requirements between disparate applications –B2B components (and clients) wholesale  retail accounts payable and receivable –Disconnected users (mobile, handheld) package delivery maintenance web phones

5 Enterprise Messaging (MOM) Message oriented middleware (MOM) –Asynchronous messaging; sender need not wait for reply –decoupled sender and receiver—no direct communication –no persistent connection between parties, including MOM

6 Enterprise Message vs RPC Enterprise MessagingRPC AsynchronousSynchronous (Req/Rpy) Tolerates partial failurePartial failure can affect entire application Transparent support for distributed systems Best for single, possibly n-tiered, system Indirect communication through MOM Direct communication between processes Applications decoupledApplications coupled

7 Enterprise messaging Application A Messaging API Messaging Clients Application A Messaging API Messaging Clients MOM

8 App CApp A RPC infrastructure Tightly coupled RPC RPC infrastructure App D RPC infrastructure App B RPC infrastructure n*(n-1)/2 connections

9 JMS Messaging Message server JMS Client Hub and spoke JMS Client Local "server" Router Local "server" Decentralized (IP multicast)

10 JMS JMS Messaging client –Uses the JMS API to create, send, receive messages –Interfaces and classes or the API = client runtime JMS Message server –handles deliver of messages sent by clients to other messaging clients who register an interest JMS provider = JMS client runtime + message server. –supports the JMS API and reliable delivery J2EE provides glue that lets certain objects to run as a JMS messaging client

11 JMS and J2EE These objects can function as JMS messaging clients via J2EE –enterprise beans (EJB) –servlets –JSP pages –J2EE application client message-driven bean: an EJB that can consume JSP messages

12 J2EE Client application EJB Container Application Client Container Web Container J2EE platform JMS Server JDBC Server

13 JMS Client classes ConnectionBinds a JMS client to a message server. multiple per client; associated with either pub/sub or PTP SessionContext for sending/receiving messages; multiple per Connection Producersends messages to Destinations Destinationidentifier for a message Messagepackage sent from a producer to a consumer

14 JMS Client Consumer Connection Session JMS Components JMS Client Producer Connection Session Message server Destination Message

15 JMS Client Consumer JMS Components JMS Client Producer Message server Destination Send Message Consume Message Bind to Destination

16 JMS Client objects Producer –Binds to a destination to send messages –Determines message TTL, priority, persistence Consumer –Binds to a destination to receive messages –Receives messages asynchronously through a message listener or synchronously by polling

17 JMS Client objects Messages –Headers –Property list (some predefined); Consumers can select on properties –Body

18 JMS Message types Message typeBody MessageEmpty TextMessageJava String ObjectMessageSerializable Java object MapMessageName/value pairs StreamMessageStream of Java primitives BytesMessageUninterpreted bytes

19 Messaging Domains Publish and subscribe (pub/sub) –Many consumers per message –Messages have a topic that identifies the relation of publisher to subscriber Point-to-point (PTP, p2p) –One consumer per message –Messages queued. Consumers can browse queue without consuming

20 Pub/Sub model PublisherTopicSubscriber New books HW

21 P2P model SenderQueReceiver Submit Grade hw9 A+ PARTY! res hw9A+res

22 Connections and sessions jndi = new InitialCOntext(env); tFactory = (TopicConnectionFactory)jndi.lookup("TopicConnectionFactory"); qFactory = QueueConnectionFactory)jndi.lookup("QueueConnectionFactory"); tConnect = tFactory.createTopicConnection(unsername, password); qConnect = qFactory.createQueueConnection(unsername, password); tSession = tConnect.createTopicSession(false, Session.AUTO_ACKNOWLEDGE); qSession = qConnect.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); tConnect.start(); qConnect.start();

23 Destinations Pub/sub topics –May be predetermined by server –May be created on a server by a JMS client Topic hw9Topic = tSession.createTopic("hw9"); –May be looked up in a db via Java Naming and Directory Interface (JNDI) Topic hw9Topic (Topic)jndi.lookup("hw9");

24 Destinations P2P queues –Queue must exist in server Queue hwQ = tSession.createQueue("HW"); // or Queue hwQ = (Queue) jndi.lookup("HW");

25 Creating and populating a message Queue Session qSession Text Message textMsg qSession.createTextMessage(); String thisHW="hw9"; textMsg.createContent("GreatJob on" + thisHW);

26 JMS message headers Assigned by system –JMSDestination –JMSDeliveryMode –JMSMessageID –JMSTimestamp –JMSExpiration –JMS Priority Assigned by developer –JMSReplyTo –JMSCorrelationID –JMSType

27 Message properties Name/value pairs assigned by application Values must be Java primitives Setting: message.setStringProperty("studentName", "Nemo"); //prop message.setJMSReplyTo(hw9Q); //header Can filter on props or headers javax.jms.QueueReceiver rcvr = qSession.createReceiver(hw9Q, "JMSPriority > 10");


Download ppt "Java Messaging Service Notes prepared from GBC Professional Development Seminar :Understanding the Java Messaging Service David Chappell & Rick Kuzyk,"

Similar presentations


Ads by Google