[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Re: Hot Deploy with JBM 2

timfox do-not-reply at jboss.com
Mon Jan 7 05:21:46 EST 2008


I have been thinking about this (and other things - more later) a lot over the Christmas period.

I would like to make some changes, that I believe would make our system's configuration much simpler and more elegant.

The JBM 2.0 messaging core will be JMS agnostic, but is also a fully functioning messaging system that can be used/ embedded for OEMs etc.

The core should know nothing about JMS queues, topics, or durable subscriptions since these are JMS concepts, not core concepts.

Therefore the core should have no destination deployment configuration at all.

With core, connection factories are created directly (new JBossConnectionFactory()), so there is no need for them to exist in JNDI, same for destinations.

We can avoid a destination deployment script altogether - instead destinations are created on the fly as users use them - the first to use a destination creates it.

We then control access as to who can create, read and write using our security policy - so there's no need for destination deploy/undeploy etc. Just need a security policy.

The security policy should be overhauled to work hierarchically, e.g. you would declare something like:


  | <security name="topics.newsfeed.bbc.*">
  |     <role name="guest" read="true" write="false"/>
  |      <role name="publisher" read="true" write="false" create="false"/>
  |      <role name="admin" read="true" write="true" create="true"/>
  | </security>
  | 
  | <security name="*">
  | ..default security...
  | </security>
  | 
  | <security name="tmp.*">
  |   ...temp destination security...
  | </security>
  | 
  | etc
  | 
  | 

So, it's the security policy that determines whether users can create, read or write to a queue, the actual queues are created on the fly (if the security config allows it).

This removes the need for a redeployable destination deployment file. The only thing that needs to be hot deployable is the security policy.

So that's the core messaging.

Now, for JMS we have a further requirement of "JMS administered objects" (see JMS spec).

These are the connection factories and JMS queues and topics that the user may want preconfigured in JNDI.

This is not part of the messaging core, and is very simple to implement - just a trivial JBoss service that instantiates the connection factory and destination objects and inserts them in JNDI - this service does not need to talk to messaging core at all - it's completely independent.




View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4117471#4117471

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4117471



More information about the jboss-dev-forums mailing list