Wednesday, September 22, 2010

Drools&jBPM Boot Camps 2011 USA and EMEA (Rules, Workflow, Event Processing and Ontologies)

We are looking into an end of February date to do the next week long Boot Camp, location to be decided - proposals for USA so far are Chicago, Austin and Miami. The EMEA one will be Berlin, probably overlapping with the 2011 JudCon.

The last boot camp had a medical focus and was a huge success. We have more budget this year so hoping to build on that.

We are thinking of doing a Monday optional 1 day pre-conference "basics" day, to avoid repeating the "what is a process, what is a rule, what is an event" type talks. This also means we don't bore returning people with repeated content and that everyone there has the basics.

Then follow up with 2 days of applied industry talks split into "vertical tracks". Because of the high level of interest and success last time, we will run a dedicated 2 day Medical/Healthcare track again. Whether we run dedicated or mixed tracks for other verticals depends on interest and people's willingness to present or organise and lead other verticals. I imagine initially we'd probably do mini tracks, say half a day per vertical. Some target verticals would be telecoms, commercial finance (trading), consumer finance (mortgage/insurance/loans), logistics.

The 4th day would then be an organised workshop day. We'll provide bootable USB keys for all in attendance, so that we have a quick start off (previously we wasted hours getting everyone up and running with virtual images). The workshops will allow people to go through the very basic examples or the more advanced examples and infrastructure set-up with us on hand. Those that have their own projects and just want to work on that with us on hand to offer help can do so too.

The 5th day will be more of an open floor. Some people will leave early, others will want to continue working through the basic examples and making sure they can configure and set everything up. Others will want dedicated discussion time to work on their own problems and ideas. In general it's the day where the developers will be on hand for what ever anyone wants – you'll get out of it what you put in.

If you would like to present or even run and organise a vertical let me know. In the past I've found for a vertical to work it needs a well connected industry person to chair it, so we definitely need community people to take up the mantle here. Talks can either be "What we did with Drools and/or jBPM" or "This is an industry problem use case that could be solved with Drools and/or jBPM" or just something that we think will be of interest to the audience. The range of technologies covers (but not limited too) rules (expert systems and other derivatives domains), workflow, event processing and ontologies.

The event will again be free for attendance. We are thinking of opening it up for sponsorship to help towards food and drink.

So if you are interested in talking, organising, sponsoring or just have some general input then let us know - we want to progress in moving these events to a more industry focus and not pure technology, for that to happen we need YOU the community.

(mproctor at codehaus d0t org)


Tuesday, September 21, 2010

Add JBoss Drools Support In IntelliJ IDEA (leif.hanack) (leif.hanack)

Do you use Drools, a very popular rule engine? Do you use IntelliJ IDEA? Then this post might be interesting for you!

Peter Gromov showed me the power of custom file types. Another secret I discovered in the world’s greatest Java IDE.

I followed his advice and created a custom file type for DRL files.

Nice, isn’t it? Besides the coloring you get:

  • basic code completion (all configured keywords)
  • support braces, brackets, parens, string escapes
  • 4 different keyword sets (4 different colorings)
  • Comment/Uncomment lines (Mac: Command-/)
  • Block-Comment/Uncomment (Mac: Control-?)

You can easily import this IDEA drl file type with File > Import Settings... I didn’t tried to import them, so back up your settings please.

You want more? Go and vote for IDEA-24348.


Wednesday, September 15, 2010

Slides from it@cork Conference Presentation

Here are the slides I presented at the it@cork Conference.

Drools it@cork presentation.odp

Tuesday, September 14, 2010

Lazily Enabled Truth Maintenace

Three weeks ago I posted the project idea for "Left and Right Unlinking". So far there are no takers, so if you are interested let me know :)

In the meantime I tried to think of a simpler enhancement that we would like to see done.

At the moment Drools has a user setting "MaintainTMSOption" which can be true or false. It's a small optimisation that when turned off avoids using the equality hashmap that is maintained for all inserted objects.

It would be a much better idea to remove this configuration setting, thus simplifying things for end users and have TMS lazily enabled on demand.

For each object type there is an "ObjectTypeConf" configuration object that is retrieved every time a working memory action, such as insert, is executed. The enabledTMS boolean should be moved there, so there is one per object type, by default it is false.

When a working memory action occurs, like insert, it retrieved the ObjectTypeConf and checks the maintainTms boolean there, instead of the current engine scoped configuration. When a logical insertion occurs and the ObjectTypeConf is retrieved if maintainTms is false it sets the value to true and then iterates the associated ObjectTypeNode memory lazily adding all the objects to the TMS equality map. From then on for that ObjectType all inserted objects are added to that equality map.

With this you now have the advantage of TMS being laziy enabled, so the minor hashmap operation is no longer used and likewise a small memory saving from not populating the map. There is a further advantage that this is now fine grained and when enabled only impacts for that specific object type.

A further enhancement could use a int counter, instead of a boolean. Each logical insertion for that object type increases the counter, each retraction decreases the counter; even if automatically retracted if the truth is broken for that logical assertion. When the counter reaches zero, TMS for that OTN can be disabled. We do not however remove the objects from the equality map, as this would cause "churn" if TMS is continuously enabled and disabled. Instead when TMS is disabled record the current fact counter id. Then if TMS is disabled on a retraction but there is a counter id, we can check that counter id to see if the fact is prior to TMS being disabled and thus would need to be retracted from the equality map.

Thursday, September 09, 2010

Drools JBoss Rules 5.0:Complex Event Processing (Michal Bali)

Mical Bali has written an article on CEP, so thought i'd link it in.
In this article, by Michal Bali, author of Drools JBoss Rules 5.0, we'll look at implementing a banking fraud detection system. It is an ideal candidate for CEP. The volume of events in a banking system is huge and we need to be able to do complex decisions based on these events.

We'll specifically cover:

* CEP and ESP
* Drools Fusion
* Fraud detection

Monday, September 06, 2010

JUDCon Berlin, October 7-8 2010

After the first success at Boston, JUDCon, the conference for and by JBoss users and developers, is coming to Berlin on October 7-8. This time, there is a special track on Workflow and BPM on day 1. So hopefully there will be a lot of interesting presentations on Drools Flow / jBPM. The call for papers is still open (until September 13), so hurry is you want to submit a session. So if you are or want to become part of the community, don't hesitate!

I'll be giving a presentation on jBPM5 and will be available if you want to talk or even dive into code. Ideal chance to talk to core or other community developers.

Hope to see you all there.

Friday, September 03, 2010

Progress Savvion BRMS : Security and Performance Alert

Progress Savvion BRMS is built from an old and outdated version of JBoss Drools BRMS, JBoss is a Division of Red Hat. This is a small fact that Progress Savvion keep quiet, passing off the Drools work a their own.

Savvion BRMS users are urged to the move to newest release of Drools to receive the latest security and performance fixes. Only by downloading Drools from it's original source, Red Hat, can they be sure they are getting the latest and greatest and the "Real Deal".

In the opinion of the Drools team, who are the recognised authority on Drools, Progress Savvion are simply not capable of standing behind and supporting the sophisticated rule engine in Drools. If you want someone who can stand behind their product, then be sure to get Drools BRMS support from JBoss a division of Red Hat -

Drools 5.1

For additional information please see:
Progress Buy a Bridge in Brooklyn (Savvion BRMS) and make Del Boy Trotter Proud
Breaking news... Progress and Savvion steal candy from a baby!!!

Breaking news... Progress and Savvion steal candy from a baby!!!

So by now you've probably already read:
Progress Buy a Bridge in Brooklyn (Savvion BRMS) and make Del Boy Trotter Proud

Breaking news... Have your vote on what the Drools community should do with it's 30% of the Savvion $49mill Sale

And are thinking, this guy is a fruit cake.... Anyway bear with me as they were just tongue in cheek bits of fun. Sure, not so fun for Progress, who are gonna have customers reading this noise and thinking "WTF?", but then that was the point :)

I'm just having a little bit of fun, at their expense, which is well deserved for such shockingly bad behaviour. So I would urge anyone else to join in and have some fun too :) Do your own blogs, polls etc to bring attention to this.

And please vote up at Digg and DZone to help raise awareness:

Being slightly less tongue in check, this is just the reality of open source, I've been doing this a long time now and I know you just have to live with it, take the lumps with the smooth - as long as you get more smooth than lumps, it's still worth while :) At it's best it brings people together who collaborate and help each other and enrich the open-source eco system. At it's worst you have organisations such as Progress executing on predatory amoral tactics. The debate on whether all corporations are ultimately operating on degrees of amorality is out of scope for today :) As each year goes buy you start to appreciate Red Hat more for the sterling work it does in open source. While it would be nice if Progress got involved and contributed to Drools, the reality is that this doesn't bother me as much as you think it would, and I'm not throwing my toys out the pram. It hasn't lestened the Drools community and technology, we still go from strength to strength, and I've always been more concerned about what we are doing and achieving than what someone else may or may not be doing with regards to taking advantage of our work.

Ultimately this is actually quite flattering and re-affirms the strength of our technology and the directions we are going. I'd rather have an organisation using Drools and moving it one step closing to being a defacto standard, than they partner with someone else or develop yet another rule engine splintering the market and confusing users. "Drools Everywhere" has alwas been my moto :)

However that said, anyone who knows me, knows I have a mischievous sense of humour and if Progress and Savvion aren't even going to at the very least accredit us then they are fair game and surely myself and the Drools community deserve a little fun at their expense :)

Mark - The Mischievous Lead

Breaking news... Have your vote on what the Drools community should do with it's 30% of the Savvion $49mill Sale

I've just put up some polls for people to have some fun with :)

Maybe others can put up some polls on their blog or other ideas. I'm also open to other ideas :)


PS. Progress, shame on you.

Thursday, September 02, 2010

Progress Buy a Bridge in Brooklyn (Savvion BRMS) and make Del Boy Trotter Proud

So earlier this year someone packaged up the open source Drools BRMS and added one of the more uninspiring industry BPM products and sold it to Progress for $49 million, who are calling it Savvion BRMS, otherwise known as "A Bridge in Brooklyn".

Progress already have a failing strategy with Open Source, pumping millions into acquiring open source projects and communities only to then have no idea what to do with them and then dump them almost as rapidly. The ripping off of Drools and selling it as their own, only shows even deeper levels of desparations and incompetence, with no ability to innovate on their own.

Progress has never contributed a single line of code to Drools, they are not involved in the community process or have any real insight or involvement of the road map and future developments.

Shame on you Progress you represent some of the worst predatory practices in the open source industry. Not only have you ripped off the hard work of many people, some dedicating their lives to making Drools a success. You then shamelessly pass it off as your own misleading your paying customers who have no idea that you are flogging them an out dated version of a freely available open source project, that you can't even really offer proper support for.

I don't think Progress really thought this through, or under stood what Drools is or where it is going, as it complicates their portfolio and they'll have no ability to bring in the latest Drools innovations while keeping their portfolio sane. Or maybe that's the plan, they realise their own tech stack is pants and looking for Drools to provide their future BPMN2 and CEP solutions, and are just slowly phasing it in so not to alarm customers who are investing in their soon to be deprecated products.

Progress has a CEP product and Drools Fusion does CEP. Savvion provides BPM software, yet Drools now does BPMN2. These things are tightly integrated with Drools, if they attempt to remove them or hide them, they are then just selling the customers crippleware. Why would someone buy that, when they can get the real deal from Red Hat, who can actually provide support they can stand behind. This is only going to get worse for them, as we are investing further in these technologies providing even greater value via deeper integration, all of which will be leveraged for our grid solution in delivering Drools in the cloud. Any customers using Savvion BRMS are going to feel like someone has delivered them a Porsche, but when they take it for a spin they find out it's got the engine of a three wheeled Robin Reliant in it.

Well done Progress, you'd make Del Boy Trotter proud. You Plonkers!.

To organisations that are still tempted by Savvion BRMS, why not invite me along to the sales call. I'll be more than happy to interview their support team and engineers with a few choice questions to see if they can actually support what they are selling you.

Drools Co-Creator and Lead

If you like this article please vote for it at Digg and DZone:

Follow up blogs:
Breaking news... Have your vote on what the Drools community should do with it's 30% of the Savvion $49mill Sale
Breaking news... Progress and Savvion steal candy from a baby!!!

Drools 5.1 Released

Drools 5.1 has been released. The main focus for this release has been around improved consumerability for users with declarative services based on Spring, Camel and CXF integration as well as the BPMN2 implementation for Flow and an improved Rete algorithm for reduced memory consumption providing better scalability for large number of objects.

You can get full release details here:
Drools 5.1 New and Noteworthy
Oryx integration for web based BPMN2 Authoring

JMX Monitoring
Spring, Camel and CXF integration
Knowledge Agent Incremental Change Set Support

Differential Update (reduced memory consumption for better scalability)
Live Querries
Timers and Calendars

BPMN2 (Eclipse + Web authoring)
Pluggable Variable Persistence

Inbox (to monitor changes)
Bulk Importer
Built in Selector
Working Sets
Fact Constraints
Guided editor improvements
Rule Templates
Oryx integration for web based BPMN2 editing (more details here)

Rules Fest
Don't forget about the San Jose Rules Fest Oct 2010. It's a 3 day event of talks followed by a one day Boot Camp with separate rooms for Jess, Drools&jBPM, Grind Works and Open Rules. You may attend the talks or the bootcamps or both.

The Boot Camp will spend the morning introducing the 4 Drools technologies: Expert, Fusion, Flow and Guvnor and will additionally cover what's new in Drools 5.1. We will also discuss the plans for jBPM3, jBPM4 and Drools Flow. The afternoon will be an open floor where you can get time with us core developers for any questions, mentoring or assistance that you would like.

Drools 5.1 wouldn't have been possible without the following people:


Mark Proctor
Edson Tirelli
Kris Verlaenen
Toni Rikkola
Geoffrey De Smet
Jervis Liu

Antoine Toulm
Wolfgang Laun
Nicolas Héron
Hadrian Zbarcea
Tihomir Surdilovic
Pablo Nussembaum
Lucaz Amador
Esteban Aliverti
Diego López León
Mauricio Salatino

Wednesday, September 01, 2010

BPMN2 Authoring in Drools Guvnor

Drools Guvnor supports editable BPMN2 process in the browser via Oryx. Oryx is a web-based editor for modeling business processes hosted at Google Code. Oryx is also backed by Signavio, who provide a professionally maintained version of Oryx.

Drools Flow is integrated with the BPMN2 process designer provided from the Oryx branch maintained by Antoine Toulme. This branch is maintained with the goal to apply upstream patches to the Oryx project. The latest version of the designer can be downloaded from github here.

This integration also includes synchronization of .bpmn artifacts created in the designer with Eclipse, allowing BPMN2 round-trip authoring between Eclipse and Drools Guvnor. You can watch the video that Kris created showing this action here.

How to use the designer:
a) Download the designer.war from here and unzip it into $jboss_home/server/$config/deploy directory.
b) Start up your server instance.
c) Navigate to http://localhost:8080/designer/editor

You should be now able to create your process and save it (or view the produced BPMN2 XML and paste it into a .bpmn file locally).

BPMN2 being edited in Oryx designer

Open this file in Eclipse and use the Drools Guvnor Perspective to upload it to your Drools Guvnor repository as shown in the video.
Now open the process in Drools Guvnor and you should see the same process designer. Note that Oryx still uses the BPMN2 beta1 format, so you should make sure you are using that version and not the latest (or Oryx will not be able to parse your input).

BPMN2 being edited in web based Guvnor

BPMN2 being edited in Eclipse

Oryx currently requires Java6
Oryx currently requires Mozilla Firefox
Deploy the designer.war onto the same AS instance and configuration alongside drools-guvnor.war

We are working on updating the Oryx designer.war to the latest BPMN2 version (which Drools already supports) so check this blog and the mentioned download link for latest updates. These updates will happen independently from Drools releases.