Presentation is loading. Please wait.

Presentation is loading. Please wait.

OpenJMS An Open Source Implementation of the JMS Specification Jim Alateras Intalio Inc.

Similar presentations


Presentation on theme: "OpenJMS An Open Source Implementation of the JMS Specification Jim Alateras Intalio Inc."— Presentation transcript:

1 OpenJMS An Open Source Implementation of the JMS Specification Jim Alateras Intalio Inc.

2 2 Contents JMS Specification History of OpenJMS Existing Architecture Work In Progress Deployment Development Environment Current Release Future Direction Q & A

3 3 JMS Specifications Two Messaging Models - Queues and Topics Persistent and Non-Persistent Message Delivery Five Message Types - Text, Byte, Object, Map and Stream Synchronous and Asynchronous message consumption Selectors, priority, QueueBrowser Local and distributed transactions

4 4 JMS Specifications - Queues Sender publishers to the Queue and Receiver consumers Supports multiple senders/receivers per queue Message Ordering Undefined Delivery semantics for > 1receiver Persistent messages delivered exactly once Non-persistent messages delivered at most once

5 5 JMS Specifications - Topics Publisher publishes and Subscribers consumes Multiple publishers/subscribers per topic Subscriber each receives own copy of messages Priority effects message delivery order Persistent and non-persistent delivery semantics

6 6 JMS Providers JMS Providers distribute JMS compliant components/products 21 vendors have a JMS offering Four Open Source offerings including OpenJMS, ObjectCube, Joram and spyderMQ A number of commercial products including MQSeries, FioranoMQ and SonicMQ No compliance test suite available to compare the various offerings No industry benchmarks to compare performance

7 7 History of OpenJMS Sponsored by the Exolab Group (OpenOrb, OpenEJB) Started in Feb-2000 V0.1 released in May-2000 (pub-sub, p2p, non-persistent, rmi) V0.2 released in Jun-2000 (jdbc-based persistence, gui, application, testharness) V0.3 released in Aug-2000 (tcp, temporary destinations, database caching, selectors) V0.4 released in Oct-2000 (bug fixes, initial queue browser, more client test coverage) V0.5 released in Dec-2000 (wild card sub, queue browser and flow control) 3 core developers based in Melbourne

8 8 OpenJMS Architecture Service based adaptive architecture Initial focus was on time-to-market and features (RMI and JDBM) Failed to initially architect for availability and scalability Second iteration is focusing on failover, clustering and load balancing In the end the architecture was quite tolerable to change. Subsequently released more widely used adaptors (TCP, JDBC)

9 9 Server Internals

10 10 OpenJMS Configuration XML based configuration file generated from Castor tool Server configuration Administered Destinations Participants and Authentication Persistent adaptors <attribute name="clusterName" type="string" minOccurs="0" maxOccurs="1" /> <attribute name="jmsAdminServerName" type="string" maxOccurs="1"/> </element <PersistenceAdapterConfiguration minConsumerListSize="10000" minMessageListSize="40000" persistentType="RDBMS" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:oci8:@test" userName="jim" password="ab1234" retries="5" timeout ="2000" />

11 11 JNDI Integration Client uses JNDI to lookup factories and destinations Run an embedded JNDI provider Connect to an external JNDI provider Automatic object registration at start-up

12 12 Administration GUI Initial Administration GUI deployed with v0.2 New Administration GUI available in v0.6 Create administered destinations Start and stop the server Purge persistent messages for a destination Register durable subscribers

13 13 Stateless Connections (WIP) Original server maintained stateful client information Compicates failover and dynamic load balancing New architecture moves to stateless Facilitates failover since client is not tied to a particular server Facilitates dynamic load balancing Client information is now part of the request context

14 14 OpenJMS Clustering (WIP) OpenJMS will support clustering Servers in the cluster share the same resources Multicast channel for inter server comms Client failover confined to the cluster You can configure multiple independent clusters Client uses multicast channel for connection Clients load balanced within the cluster

15 15 Security (WIP) Security is not specified by the JMS Specifications OpenJMS uses JAAS for Authorization and Authentication Authentication is based on participants Participants are associated with an authentication data source Supported actions are publish, consumer, browse and administer. Security can be turned off Authorization is fine grained and based on destinations, participants and actions

16 16 Deployment Standalone Server Configuration Symmetric Federated Configuration Cluster Configuration Asymmetric Federated Configuration

17 17 Development Environment Jakarta ANT as the project build tool JTF (but will move to Junit for unit testing) Bugzilla for bug management Castor’s SourceGen for configuration ANTLR for selectors A host of open source libraries including log4j and Tyrex OpenExec for load and performance tests

18 18 Current Release Publish-Subscribe and Point-to-Point Persistent and Non-Persistent Message Delivery Synchronous and asynchronous message consumption Administration GUI Message Selectors, Priority and QueueBrowser Local transactions Test cases and extensive examples Stand alone or embeddable server

19 19 Future Direction Refactored messaging core New administration GUI Clustering and federation support Explicit support for XML messaging Improved performance of the messaging core Complete ASF support which includes session pools and XA. IIOP and SSL support

20 20 Resources OpenJMS JMS Specifications ANTLR JUnit Open Source Initiative Castor, Tyrex Jakarta ANT and Log4j http://openjms.exolab.org http://java.sun.com/products/jms http://www.exolab.org http://www.antlr.org http://jakarta.apache.org http://www.junit.org http://www.opensource.org

21 Q & A

22 Thank you


Download ppt "OpenJMS An Open Source Implementation of the JMS Specification Jim Alateras Intalio Inc."

Similar presentations


Ads by Google