Inside Sonic MQ Progress Sonic MQ and the

  • Slides: 54
Download presentation
Inside Sonic. MQ Progress Sonic. MQ and the Java Message Standard Mitchell Horowitz Technical

Inside Sonic. MQ Progress Sonic. MQ and the Java Message Standard Mitchell Horowitz Technical Product Manager, Sonic. MQ

Objectives n n To explore the JMS Specification. – Discuss the 2 JMS Messaging

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

Agenda n n n The JMS spec What the API looks like Sonic. MQ’s

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

The Java Message Service n n n Specification for the implementation of Java messaging

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

The Java Messaging Service n n Service allowing Java-based applications to communicate. – Sonic.

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

Producer - Destination - Consumer Producer Destination Consumer Posts messages to a destination Subject

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

Publish & Subscribe Publisher Topic Subscriber Posts messages to the topic Subject of communication

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

Publish & Subscribe Supply Chain Management Publisher Topic Subscriber New Flavor Price Increase 8

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

Point to Point Sender Queue Receiver Posts messages to the queue Subject of communication

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

Point-to-Point Order and Fulfillment Sender Queue Receiver Need Supplies Goods Shipped 10 Exchange 2000,

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

Publish & Subscribe vs. Point-to-Point n Publish and Subscribe – Stock ticker – Pricing

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 11 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation

The JMS spec and what it means n n A common way for Java

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

The JMS spec and what it means n Defines an Architecture that includes: –

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

Hub & Spoke Topology JMS Client Message Broker JMS Client JMS Client 14 Exchange

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

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

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

The JMS spec and what it means n JMS/API Framework that includes: – Connection.

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

Message Interfaces Topic. Publisher Topic. Connection. Factory Creates Connection. Factory Topic. Session Topic. Connection

Message Interfaces Topic. Publisher Topic. Connection. Factory Creates Connection. Factory Topic. Session Topic. Connection Creates one or more Sessions Connection Session Message. Producer Queue. Sender Each Session type creates one or more Producers and/or Consumers Queue. Connection Queue. Sessions Create Message Instances Send messages to Queue Receive messages from Topic. Subscriber Creates Queue. Connection. Factory Send messages to Topic Message. Consumer Receive messages from Queue. Receiver Object. Message Topic Map. Messages are sent to Destinations (Topic/Queue) and routed to Message. Consumers Destination Message Stream. Message Text. Message XMLMessage Queue Bytes. Message Inheritance (Extends) LEGEND Creation Incoming/Outgoing Messages 17 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation

Message Interfaces Topic. Connection. Factory Creates Connection Creates Queue. Connection. Factory Topic. Connection Creates

Message Interfaces Topic. Connection. Factory Creates Connection Creates Queue. Connection. Factory Topic. Connection Creates one or more Sessions Session Queue. Connection LEGEND Inheritance (Extends) Creation Incoming/Outgoing Messages 18 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation

Connection. Factories Topic. Connection. Factory n Queue. Connection. Factory Provides access to a specific

Connection. Factories Topic. Connection. Factory n Queue. Connection. Factory Provides access to a specific messaging service implementation 19 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation

Connections Topic. Connection n Queue. Connection Interface representing a client connection to the underlying

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

Destination Interfaces Topic Messages are sent to Destinations (Topic/Queue) and routed to Message. Consumers

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

Destinations Topic n n Queue Targets for a producer’s messages Sources for a consumer’s

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

JMS Administered Objects n Can be modified without requiring changes to the application 23

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

Message Interfaces Topic. Publisher Topic. Session Each Session type creates one or more Producers

Message Interfaces Topic. Publisher Topic. Session Each Session type creates one or more Producers and/or Consumers Queue. Session Message. Producer Queue. Sender Send message s to Topic Send message s to Queue Receive messages from Topic. Subscriber Receive messages Message. Consumer from Queue. Receiver LEGEND Inheritance (Extends) Creation Incoming/Outgoing Messages 24 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation

Sessions Topic. Session n n Queue. Session Enforces ordering for production and consumption of

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

Message Producers Topic. Publisher n n n Queue. Sender Used to send or publish

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

Message Consumers Topic. Subscriber n n n Queue. Receiver Used to handle messages sent

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

Message Interfaces Sessions Create Message Instances Message Object. Message Map. Message Stream. Message Text.

Message Interfaces Sessions Create Message Instances Message Object. Message Map. Message Stream. Message Text. Message XMLMessage Bytes. Message LEGEND Inheritance (Extends) Creation Incoming/Outgoing Messages 28 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation

Messages Message Header Properties Used to identify and route the message Support application-specific values

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

Message Headers n n n JMSReply. To JMSCorrelation. ID JMSExpiration JMSPriority JMSDelivery. Mode JMSMessage.

Message Headers n n n JMSReply. To JMSCorrelation. ID JMSExpiration JMSPriority JMSDelivery. Mode JMSMessage. ID Full list available in the JMS spec 30 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation

Message Properties n n n Optional fields and values associated with a message. Allows

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

Message Body Message Bytes. Message Map. Message Object. Message Stream. Message Text. Message 32

Message Body Message Bytes. Message Map. Message Object. Message Stream. Message Text. Message 32 Exchange 2000, Barcelona Spain XMLMessage © 2000, Progress Software Corporation

Agenda n n n The JMS spec What the API looks like Sonic. MQ’s

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

What the Java/API looks like // Create a connection factory Topic. Connection. Factory factory;

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

Agenda n n n The JMS spec What the API looks like Sonic. MQ’s

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

However there are… Limitations of the JMS Standard It Does Not Address n n

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

Hub & Spoke Topology JMS Client Message Broker JMS Client JMS Client 37 Exchange

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

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

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

Sonic. MQ Architecture Admin Client C Client Broker Cluster Broker Topic Queue Broker JMS

Sonic. MQ Architecture Admin Client C Client Broker Cluster Broker Topic Queue Broker JMS JMS Client 39 Exchange 2000, Barcelona Spain Topic Active. X Client © 2000, Progress Software Corporation

Sonic. MQ Features MESSAGE BROKER • Transaction Support • Security • Message Persistence •

Sonic. MQ Features MESSAGE BROKER • Transaction Support • Security • Message Persistence • Qo. S Delivery • Asynch Delivery • Abstraction of Communications • Interbroker Support TOPIC/QUEUE • PTP & Pub/Sub • XML Messages • Durable Subscribers • Hierarchical Name Spaces • Push to Client • Subject-based Addressing Java Clients Active. X Clients C Clients Future Clients ADMINISTRATION CLIENT • Command Line & GUI • Remote access 40 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation

Sonic. MQ’s JMS Implementation n n n n Administration Security Performance and Scalability Internet

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

Administration Tools n n n n Java-based GUI tool Command-line tool for script-based automation

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

Sonic. MQ Explorer 43 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation

Sonic. MQ Explorer 43 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation

Security n n n Access Control Lists (by topic and queue) Secure authentication PKI

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

Performance and Scalability n n Thousands of clients 10, 000’s messages per second –

Performance and Scalability n n Thousands of clients 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 10 K messages served – That's 2 Terabytes through the broker! 45 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation

Sonic. MQ Performance Quad CPU Machine (messages/ second) T h ro u g h

Sonic. MQ Performance Quad CPU Machine (messages/ second) T h ro u g h p u t 256 -Byte Message Size Out of Box (No tuning) Concurrent Clients * Durable, persistent 46 Exchange 2000, Barcelona Spain © 2000, Progress Software Corporation

Internet / Protocol Support n n n n SSL TCP HTTP tunneling Full support

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

JMS over HTTP for Firewall Support* No changes required by the firewall administrator. Allows

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

Active. X/COM client n Provides access to Sonic. MQ from non-Java development environments –

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

C/C++ Clients n n Publish and Subscribe Point- to- Point Text. Message and Binary.

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

XML Support n n n XMLMessage type Accessible as DOM or Text IBM xml

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

Usability n n Extensive documentation Rich set of sample applications – Publish and subscribe

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

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

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

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

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