Presentation is loading. Please wait.

Presentation is loading. Please wait.

Java Message Service (JMS) Web Apps and Services.

Similar presentations


Presentation on theme: "Java Message Service (JMS) Web Apps and Services."— Presentation transcript:

1 Java Message Service (JMS) Web Apps and Services

2 l Messaging Concept l JMS Messaging Models l JMS Features l JMS Application l Portal Architecture l Action cases l State diagram l JMS Implementation Performance l Portal Performance l Summary and Lessons Learned Content

3 Messaging Concept l Message use for loosely coupled distributed communications  Sender and receiver are not necessary on-line at the same time l Java API Package javax.jms

4 Point-to-point l Publish/Subscribe JMS Messaging Models Messaging Server TOPIC  Publisher Message     Subscriber Messages     Messaging Server QUEUE ||||||||||||||| Sender Message     Receiver Message  

5 JMS Features l Persistency l Reliability l Asynchronous / Synchronous receiver l Message body types: text, byte, stream, map (name/value pair), object

6 Connection JMS Application Session TCP/IP Publisher or Sender Subscriber or Receiver Message Asynch or Synch Listener Destination (Topic or Queue) Persistent Storage Client AClient B

7 WebLogic Application Server 5.1 Service Pack 8 JMS Destination (Queue) Oracle Database JDBC connection pool (thin driver) JMS Persistent Messages Stored messages can be read from database HTTP services Java Servlet JMS Message Producer News Retrieval Function Portal Architecture Submit News Read News HTTP Protocol Web browser HTTP services JavaServlet JMS Message Consumer News Maintanance Function Consumed messages are stored in database Limited to news service It uses one server

8 WebLogic Application Server 5.1 Service Pack 8 JMS Destination (Queue) JDBC connection pool (thin driver) Oracle Database HTTP services Java Servlet JMS Message Producer News Retrieval Function HTTP services JavaServlet JMS Message Consumer News Maintanance Function Case 1: News browsing Stored messages can be read from database Read News HTTP Protocol GET Web browser

9 WebLogic Application Server 5.1 Service Pack 8 HTTP services JavaServlet JMS Message Consumer News Maintanance Function JMS Destination (Queue) HTTP services Java Servlet JMS Message Producer News Retrieval Function Oracle Database JDBC connection pool (thin driver) Case 2: News submitting Consumed messages are stored in database Submit News HTTP Protocol POST Web browser

10 WebLogic Application Server 5.1 Service Pack 8 JMS Destination (Queue) Oracle Database JDBC connection pool HTTP services Java Servlet JMS Message Producer News Retrieval Function HTTP services JavaServlet JMS Message Consumer News Maintanance Function Case 3: News submitting without listener (Persistent messages) JMS Persistent Messages Submit News HTTP Protocol POST Web browser

11 Case 4: Collecting persistent messages after listener recovers Web Logic Application Server 5.1 Service Pack 8 JMS Destination (Queue) HTTP services Java Servlet JMS Message Producer News Retrieval Function JDBC connection pool Oracle Database JavaServlet JMS Message Consumer News Maintanance Function Consumed messages are stored in database JMS Persistent Messages Web browser

12 State diagram for client Idle (Servlet) Servlet call from web browser Initialization of servlet and JDBC connection pool Database connection and displaying current brief news Waiting for HTTP request All objects are closed and destroyed Server is shut down Get latest news (GET) Go to next page (GET) Go to previous page (GET) Displaying complete news Telling the user, the message is sent Submit an original news (POST & JMS) Submit a reply as comment (POST & JMS) Look at complete news (POST) Get latest news (GET)

13 State diagram for listener Idle (Servlet) Servlet call from web browser The receiver is listening to queue. - The receiver is closed. - Persistency is active - Stop consuming messages Recreate a queue receiver (POST & JMS) Close the receiver (POST & JMS) All objects are closed and destroyed Server is shut down Get latest news (GET) Go to next page (GET) Go to previous page (GET) - Stop consuming messages, persistency - The browser displays queue content without consuming messages Create a queue browser, close the receiver (POST & JMS) Close queue browser and recreate a queue receiver (POST & JMS) - Waiting for HTTP request - Receiving messages asynchronously Initialization of servlet, JMS and JDBC conection pool Database connection and displaying current news with all headers/properties

14 JMS Implementation on WLS 5.1 SP 8 Performance

15 JMS Test Condition l One client connected to server l Decoupled for persistent messages l Coupled for non-persistent messages l Asynchronous receiver l Destination: Topic and Queue l Text Message: 1000 characters in message body l Bytes Message: 1000 byte values in message body l Map Message: 500 characters as String, one max value for byte, short, integer, long, float and double primitive type l No news saving operation (neither to files nor database)

16 Delivery and Retrieval Time for Persistent Messages Processing 15.818.6Average retrieved messages / second 25.519.1Average delivered messages / second QueueTopicMap Message 17.619.7Average retrieved messages / second 27.419.2Average delivered messages / second QueueTopicText Message 15.617.7Average retrieved messages / second 28.620.7Average delivered messages / second QueueTopicBytes Message

17 Delivery and Retrieval Time for Non-Persistent Messages Processing 18.117.9Average retrieved messages / second 29.2 Average delivered messages / second QueueTopicMap Message 17.819.3Average retrieved messages / second 28.629.6Average delivered messages / second QueueTopicText Message 13.813.4Average retrieved messages / second 21.721.5Average delivered messages / second QueueTopicBytes Message

18 JMS-based Portal Performance

19 Multiclients test on news portal l 12 concurrent clients by WebLoad tool l Serialization for read and write methods to avoid database conflict l One test agenda for 1 hour duration: Go to portal site Browse news Submit original news (ca 1 kB size) Browse news Look at certain news Give a comment (ca 1 kB size) Browse news l Total average round time by 12 clients: 199.76 seconds

20 Multiclients test on news portal l 1,5, 10, 15, 20, 30 concurrent clients by Web Application Stress tool (15 minutes test) l For 1 client: 4.5 messages/minute Server overloaded, not complete data acquisition

21 Summary l JMS defines destination as mediator between sender and receiver to make decoupling possible. l Queue destination gives faster processing time than topic. l JMS does not specify how to administer messaging products. JDBC and database for saving news. l The portal relies on JMS persistency feature to avoid messages loss when partial crash on JMS listener happens. l JMS persistency does not help for whole server crash because all JMS objects fail as well. l JMS persistency may help for server clustering. One server for sender and one server for receiver. l JMS is useful for notification, chat program, short message service with applet use (more interaction and often times to be decoupled ).

22 Lessons Learned JAVA + J2EE Java Message Service (JMS) Java Servlet JDBC + Oracle database JNDI WebLogic 5.1- 7.0 HTML


Download ppt "Java Message Service (JMS) Web Apps and Services."

Similar presentations


Ads by Google