Presentation is loading. Please wait.

Presentation is loading. Please wait.

Inside SonicMQ Progress SonicMQ  and the Java Message Standard Mitchell Horowitz Technical Product Manager, SonicMQ.

Similar presentations


Presentation on theme: "Inside SonicMQ Progress SonicMQ  and the Java Message Standard Mitchell Horowitz Technical Product Manager, SonicMQ."— Presentation transcript:

1 Inside SonicMQ Progress SonicMQ  and the Java Message Standard Mitchell Horowitz Technical Product Manager, SonicMQ

2 © 2000, Progress Software Corporation 2 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Objectives n To explore the JMS Specification. –Discuss the 2 JMS Messaging Models. –Discuss the 7 core framework classes. n Describe how SonicMQ implemented the JMS specification. –Highlight what differentiates SonicMQ. –Show how easy it is to code JMS applications.

3 © 2000, Progress Software Corporation 3 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Agenda n The JMS spec n What the API looks like n SonicMQ’s implementation of the JMS spec

4 © 2000, Progress Software Corporation 4 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation The Java Message Service n Specification for the implementation of Java messaging n A common set of Java interfaces and semantics n Part of the Java 2 Enterprise Edition specification n Developed and Maintained by JavaSoft n Not just an intersection but the fast lane to the information super highway.

5 © 2000, Progress Software Corporation 5 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation The Java Messaging Service n Service allowing Java-based applications to communicate. –SonicMQ has added C/C++ and ActiveX applications. n Two models: –Publish and Subscribe n 0 or more recipients n Messages passed between publishers and subscribers via topics n Message can be published in a persistent manner n Message can be subscribed to in a durable manner n Message are consumed at least once. –Point-to-Point n One recipient only n Messages passed between senders and receivers via queues n Messages are consumed at most once and only once

6 © 2000, Progress Software Corporation 6 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Destination Producer - Destination - Consumer ConsumerProducer Subject of communication Available to registered participants Posts messages to a destination Receives messages on a destination

7 © 2000, Progress Software Corporation 7 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Topic Publish & Subscribe SubscriberPublisher Subject of communication Available to registered participants Posts messages to the topic Receives messages on the topic

8 © 2000, Progress Software Corporation 8 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Publish & Subscribe Supply Chain Management Publisher SubscriberTopic Price Increase New Flavor

9 © 2000, Progress Software Corporation 9 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Queue Point to Point ReceiverSender Subject of communication Available to registered participants Posts messages to the queue Receives messages on the queue

10 © 2000, Progress Software Corporation 10 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Point-to-Point Order and Fulfillment Goods Shipped Queue Need Supplies SenderReceiver

11 © 2000, Progress Software Corporation 11 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Publish & Subscribe vs. Point-to-Point n Publish and Subscribe –Stock ticker –Pricing changes / catalog updates –Data replication n Point-to-Point* –Ordering and fulfillment * Point-to-Point is a specialized version of Publish and Subscribe

12 © 2000, Progress Software Corporation 12 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation The JMS spec and what it means n A common way for Java applications to interact with an enterprise messaging system. n Design to leverage existing messaging systems as well as create new ones. n Describes portable efficient standards for powerful and extensible messaging service n A common set of Java interfaces and semantics

13 © 2000, Progress Software Corporation 13 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation The JMS spec and what it means n Defines an Architecture that includes: –JMS Provider n JMS Interface n JMS Application n Administration n Two Messaging Styles n Message Delivery Capabilities

14 © 2000, Progress Software Corporation 14 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Hub & Spoke Topology JMS Client Message Broker

15 © 2000, Progress Software Corporation 15 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Peer-to-Peer Topology JMS Client

16 © 2000, Progress Software Corporation 16 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation The JMS spec and what it means n JMS/API Framework that includes: –ConnectionFactories,, –Connections.. –Sessions.. –Destinations.. –Message Producers.. –Message Consumers.. –Messages..

17 © 2000, Progress Software Corporation 17 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation ConnectionFactoryConnectionFactory TopicConnectionFactoryTopicConnectionFactory QueueConnectionFactoryQueueConnectionFactory ConnectionConnection TopicConnectionTopicConnection QueueConnectionQueueConnection SessionSession TopicSessionTopicSession QueueSessionQueueSession MessageProducerMessageProducer TopicPublisherTopicPublisher QueueSenderQueueSender MessageConsumerMessageConsumer TopicSubscriberTopicSubscriber QueueReceiverQueueReceiver DestinationDestination TopicTopic QueueQueue MessageMessageStreamMessageStreamMessage MapMessageMapMessage ObjectMessageObjectMessage BytesMessageBytesMessage TextMessageTextMessage Creates Creates one or more Sessions Sessions Create Message Instances Messages are sent to Destinations (Topic/Queue) and routed to MessageConsumers Each Session type creates one or more Producers and/or Consumers Send messages to Topic Send messages to Queue Receive messages from Topic Receive messages from Queue Inheritance (Extends) Creation Incoming/Outgoing Messages Message Interfaces LEGEND XMLMessageXMLMessage

18 © 2000, Progress Software Corporation 18 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Inheritance (Extends) Creation Incoming/Outgoing Messages Message Interfaces LEGEND ConnectionFactoryConnectionFactory TopicConnectionFactoryTopicConnectionFactory QueueConnectionFactoryQueueConnectionFactory ConnectionConnection TopicConnectionTopicConnection QueueConnectionQueueConnection SessionSession Creates Creates one or more Sessions

19 © 2000, Progress Software Corporation 19 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation ConnectionFactories n Provides access to a specific messaging service implementation TopicConnectionFactoryQueueConnectionFactory

20 © 2000, Progress Software Corporation 20 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Connections n Interface representing a client connection to the underlying messaging provider n ConnectionFactory returns a Connection implementation n Protocol and connection information contained in this object TopicConnectionQueueConnection

21 © 2000, Progress Software Corporation 21 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Destination Interfaces TopicTopic QueueQueue Messages are sent to Destinations (Topic/Queue) and routed to MessageConsumers Inheritance (Extends) Creation Incoming/Outgoing Messages LEGEND DestinationDestination

22 © 2000, Progress Software Corporation 22 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Destinations n Targets for a producer’s messages n Sources for a consumer’s messages n JMS administered objects n Can be temporary –Out-of-band discussions –Request / reply TopicQueue

23 © 2000, Progress Software Corporation 23 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation JMS Administered Objects n Can be modified without requiring changes to the application

24 © 2000, Progress Software Corporation 24 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Message Interfaces SessionSession TopicSessionTopicSession QueueSessionQueueSession MessageProducerMessageProducer TopicPublisherTopicPublisher QueueSenderQueueSender MessageConsumerMessageConsumer TopicSubscriberTopicSubscriber QueueReceiverQueueReceiver Each Session type creates one or more Producers and/or Consumers Send messages to Topic Send messages to Queue Receive messages from Topic Receive messages from Queue Inheritance (Extends) Creation Incoming/Outgoing Messages LEGEND

25 © 2000, Progress Software Corporation 25 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Sessions n Enforces ordering for production and consumption of messages n Defines acknowledgement semantics n Defines JMS transactions n One or more sessions can be created by a Connection TopicSessionQueueSession

26 © 2000, Progress Software Corporation 26 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Message Producers n Used to send or publish messages to a destination n Created by a Session instance n Can define message delivery semantics –Time-to-live –Persistence –Priority TopicPublisherQueueSender

27 © 2000, Progress Software Corporation 27 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Message Consumers n Used to handle messages sent to a destination n Created by a Session instance n Can be durable beyond a physical connection TopicSubscriberQueueReceiver

28 © 2000, Progress Software Corporation 28 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Message Interfaces SessionSession MessageMessageStreamMessageStreamMessage MapMessageMapMessage ObjectMessageObjectMessage BytesMessageBytesMessage TextMessageTextMessage Sessions Create Message Instances Inheritance (Extends) Creation Incoming/Outgoing Messages LEGEND XMLMessageXMLMessage

29 © 2000, Progress Software Corporation 29 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Messages Message Header Properties Body Used to identify and route the message The actual “payload” of the message (five different types, plus XML for SonicMQ) Support application-specific values passed with the message

30 © 2000, Progress Software Corporation 30 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Message Headers n JMSReplyTo n JMSCorrelationID n JMSExpiration n JMSPriority n JMSDeliveryMode n JMSMessageID Full list available in the JMS spec

31 © 2000, Progress Software Corporation 31 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Message Properties n Optional fields and values associated with a message. n Allows filtering of messages by the consumer n Can be used to carry the data, or selected parts of the data to do content-based filtering –e.g. where region= “Northeast”

32 © 2000, Progress Software Corporation 32 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Message Body BytesMessage Message MapMessage ObjectMessage StreamMessage TextMessageXMLMessage

33 © 2000, Progress Software Corporation 33 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Agenda n The JMS spec n What the API looks like n SonicMQ’s implementation of the JMS spec

34 © 2000, Progress Software Corporation 34 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation What the Java/API looks like // Create a connection factory TopicConnectionFactory factory; factory = (new progress.message.jclient.TopicConnectionFactory (broker)); // Create a connection connect = factory.createTopicConnection (username, password); // Create a session session = connect.createTopicSession(true, Session.AUTO_ACKNOWLEDGE); // Create a topics. Topic topic = session.createTopic (“jms.progress.chat”); // Create Subscriber to application topics. TopicSubscriber subscriber = session.createSubscriber(topic); // Initialize the onMessage() message handler. subscriber.setMessageListener(this); // Create a publisher publsher = session.createPublisher(null); // Topic will be set for each reply // Now setup is complete, start the Connection connect.start();

35 © 2000, Progress Software Corporation 35 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Agenda n The JMS spec n What the API looks like n SonicMQ’s implementation of the JMS spec

36 © 2000, Progress Software Corporation 36 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation However there are… Limitations of the JMS Standard It Does Not Address n Security n Load Balancing n Fault Tolerance n Error Notification n Administration n Repositories n XML Support n Wire Protocols It Does Not Require n Support for Both Messaging Models n Transaction Support n Server Clusters n 100% Java Commercial Implementations Vary in Scope

37 © 2000, Progress Software Corporation 37 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Hub & Spoke Topology JMS Client Message Broker

38 © 2000, Progress Software Corporation 38 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Peer-to-Peer Topology JMS Client

39 © 2000, Progress Software Corporation 39 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Broker Broker BrokerClusterClusterTopic Queue SonicMQ Architecture BrokerBroker CClient Topic JMSClient ActiveXClient AdminClient JMSClient JMSClient JMSClient

40 © 2000, Progress Software Corporation 40 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation SonicMQ Features ADMINISTRATION CLIENT Command Line & GUICommand Line & GUI Remote accessRemote access TOPIC/QUEUE PTP & Pub/Sub PTP & Pub/Sub XML Messages XML Messages Durable Subscribers Durable Subscribers Hierarchical Name Hierarchical Name Spaces Spaces Push to Client Push to Client Subject-based Subject-based Addressing Addressing Interbroker SupportInterbroker Support MESSAGE BROKER Transaction Support Transaction Support Security Security Message Persistence Message Persistence QoS Delivery QoS Delivery Asynch Delivery Asynch Delivery Abstraction of Abstraction of Communications Communications ActiveXClients JavaClients FutureClients CClients

41 © 2000, Progress Software Corporation 41 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation SonicMQ’s JMS Implementation n Administration n Security n Performance and Scalability n Internet / Protocol Support n ActiveX/COM Clients n C/C++ Clients n XML Support n Usability

42 © 2000, Progress Software Corporation 42 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Administration Tools n Java-based GUI tool n Command-line tool for script-based automation of administrative tasks n Support of managing users, groups, destination QoP, destination ACLs, clusters n Allows monitoring of broker performance metrics and broker events n Provides tools for prototyping and testing n Remote monitoring capability n JNDI support

43 © 2000, Progress Software Corporation 43 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation SonicMQ Explorer

44 © 2000, Progress Software Corporation 44 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Security n Access Control Lists (by topic and queue) n Secure authentication n PKI support / Digital certificates n SSL support n Payload encryption n User and group administration –Available at the cluster-level

45 © 2000, Progress Software Corporation 45 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Performance and Scalability n Thousands of clients n 10,000’s messages per second –Publish and subscribe n Broker Clusters –Cluster-level administration n In-house Long Duration Test –42 days: 100 million test cycles n 200 million 10K messages served –That's 2 Terabytes through the broker!

46 © 2000, Progress Software Corporation 46 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation SonicMQ Performance 256-Byte Message Size Quad CPU Machine Out of Box (No tuning) * Durable, persistent Throughput (messages/ second) Concurrent Clients

47 © 2000, Progress Software Corporation 47 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Internet / Protocol Support n SSL n TCP n HTTP tunneling n Full support for firewalls and proxies n Applet support n Interbroker communication over Internet protocols n XML message support

48 © 2000, Progress Software Corporation 48 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation JMS over HTTP for Firewall Support* JMS API JMS Client HTTP TCP/IP Stack HTTP TCP/IP Stack JMS Server Firewall(s) M M Any Application * Beyond the JMS specificaion No changes required by the firewall administrator. Allows for multi-company networks. Plus SSL support with 40 bit and 128 bit encryption.

49 © 2000, Progress Software Corporation 49 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation ActiveX/COM client n Provides access to SonicMQ from non-Java development environments –MS Visual Basic –MS Visual C++ –Delphi –VBA-enabled applications –Progress 4GL n Java events are presented as native ActiveX control events, allowing for asynchronous listeners n Exception listeners provide support for JMS exception handling

50 © 2000, Progress Software Corporation 50 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation C/C++ Clients n Publish and Subscribe n Point- to- Point n TextMessage and BinaryMessage formats n Native client implementation –No JVM required n Supported on Windows NT and Solaris

51 © 2000, Progress Software Corporation 51 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation XML Support n XMLMessage type n Accessible as DOM or Text n IBM xml4j parser included in product –Can be replaced if required

52 © 2000, Progress Software Corporation 52 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Usability n Extensive documentation n Rich set of sample applications –Publish and subscribe –Point-to-point –ActiveX/COM –Servlet n Turnkey installation n Open database connectivity via JDBC –In addition to the embedded data store

53 © 2000, Progress Software Corporation 53 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Questions

54 © 2000, Progress Software Corporation 54 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation Thank you for your time.


Download ppt "Inside SonicMQ Progress SonicMQ  and the Java Message Standard Mitchell Horowitz Technical Product Manager, SonicMQ."

Similar presentations


Ads by Google