A discussion page for a "deployment agent" for taking binary packages from the BRMS (or IDE) and deploying them to a runtime system:


-- NOTE: This is currently present in Drools 4 - part of the core module. It can pull packages from the repository, or file system.

Still a lot more work to be done in this area (especially for "push" modes) - the stuff below is left in for this reason.



1) A full blown agent using jboss cache (or some similar distributed tech) - basically the BRMS can push packages into the "cloud" and each system that is interested gets updated with them. Thats the magic of JBoss Cache. The runtime systems just need to declare what packages they are interested in, and a simple call to get a rulesession is all the user sees.


pros: Very powerful, can do anything (including updating long lived WMs, can "talk back" to BRMS with stats etc).

cons: More complex to build, heavier dependencies on execution environment


2) A JMX based poller: This is jboss specific, but you can create an MBean that checks a URI or a File location for changes, and when found it refreshes the rulebase from it.

pros: Simple (ish), no depdendencies really.

cons: JBoss specific, is clumsier, more complex to use.


3) A "agent console" type web app, perhaps in Seam. This is a very very simple app people can throw up alongside their apps, and, like the jBPM console, allows people to upload .pkg files etc... and makes them available via the servers JNDI.

pros: Relatively simple

cons: Medium complexity.