Wednesday, November 26, 2008

Drools Live Documentation

Hudson, our continuous build server, now outputs our full documentation and javadocs with new summary pages for easy navigation. So now as we improve the docs, ready for Drools 5.0 final, you can see things as they change:

Monday, November 24, 2008

Whats new in Drools 5 video and Q&A session

Last week (very late night my time) we had a "webex" online seminar talking about what is new in Drools 5, followed by a question and answer session.

Drools 5 Whats New from Michael Neale on Vimeo.

(You can also access the original webex video here - which has all the slides and some answers etc - you will need to download the free webex client however). Apologies: there is a blacked out bit around 10 mins in, I will see if I can correct it (its not that its showing anything secret - I promise !)

UPDATE: There was a higher fidelity quicktime one - but I burnt through the 2 gig monthly limit in hours (whoops - I totally forgot to read the fine print !). If people want the hi-fi one, I will make it available on another link. I forgot quite a few people read this !

Q&A following is most of the questions (with answers !) to the viewers that were online at the time:


Q: How is Drools Flow different from jBPM?

A: A different approach - behavioural modelling, event driven, integrated and mixed with rules. Process model is continually emitting events for the rules to consume. Same API (as rules).


Q: Drools5 is currently in MR2 phase. What is the planned GA date for Drools 5?

A: M3 will be out today - a candidate release is expected in the first week of December, shortly followed by "GA" unless major issues are found.

Q: For long-running processes involving human tasks, how is the state of the process/flow persisted?

A: Various approaches available - database via hibernate for instance, file system, all intended for high performance. Working Memories are now transactional and persistable (JPA is also an option).

Q: While you have "Flow" worklow as part of your solution, can the rules engine work with other BPM/workflow applications (e.g. Microsoft Sharepoint MOSS)

A: Certainly. You can use just rules, no issue. In that specific case with heterogenous environment, you could access the rules as a service via XML or JSON (drools-server) from the SharePoint side (or you could use the ESB, many options). You only need to use what you need for your specific project, it is not monolithic.

Q: Are there plans to integrate with Netbeans?

A: Eclipse is the developer tooling platform we target currently, however there have been informal chats with Netbeans people on this, but nothing concrete at this point in time. Ideally someone from the community will get involved with this, which would set a clear direction (that is how the Eclipse one started a few years ago).

Q: I am fairly new to DROOLS. can I hookup my Eclipse IDE with Guvnor?

A: Yes. There is a plug in which lets you explore artifacts in Guvnor. You can also browse the web GUI from within your IDE with this plug in.

Q: Does the new Asym Rete reduce Memory usage?

A: In some cases (a high end logistics user has reported some reduction in memory usages for very large heaps). For some smaller cases there may not be a noticable difference. The key difference is that fact objects do not need to be "shadowed" - this means the state of the facts does not have to be copied (obviously for large numbers of facts this reduces memory and increases speed).

Q: We saw Dynamic Fact model - does this mean for a change in the fact model, we dont have to build and redeploy the rules?

A: If you are making a change to the fact model - you will need to redeploy the rules if you want to use the new fields in the fact model (obviously !). The dynamic fact model is deployed along with the rules.

Q: Can a model be supplied from an external datasource?

A: A declarative model is "drl" source code - so it can come from any source, but must be available at rule "compile" time. But the data to populate the model instances (facts) - certainly !

Q: How is the associated pojo/class created and accessed when the model is defined from within Guvnor?

A: Using a reflection-like API (you can also use your own bean-mapping tools - as behind the scenes it is a class that follows the java bean pattern).

Q: any plans to support an API-based approach to create rules? (instead of drl file based)

A: There are several APIs that are used internally to generate rules (and there is the AST directly) - but there is no plan to have the "old" style "pojo rules" which can't easily cope with higher order logic which is common in a rule language.

Q: In BRMS 5.0.0.M1, I used to have an "upload" button to add DSL (just like I can upload Model jars). It was removed to just a copy/paste textarea in 5.0.0.M2. Why?

A: This was actually a mistake in M1 - it was always a text area (an additional upload may be provided in future if enough people want it).

Q: Can the enumarations be picked from a database?

A: Yes they can. An MVEL (expression language) expression can retrieve the lists via JDBC or any other means you choose.

Q: Is seamless integration with a BPM still possible and Drools 5 can be used just as a rules engine with BRMS (we would not need the Modeling and Processing as we need to integrate with our BPM).

A: Yes - as mentioned before, its totally modular and most features are optional (you only use what you need).

Q: When using the guided rule editor, what happens when you type a letter in an integer variable field? When is validation done? Also, will there be a date picker for date variable fields?

A: It will not allow you to enter invalid characters. Date picker is not available in that editor yet.

Q: When defining a fact model object as an analyst, types like "Integer, Boolean, Float" don't make sense to me. Will they be defined or renamed so analysts can understand what they stand for?

A: No reason - a bug has been raised to ensure this is corrected.

Q: Are java 5+ "Enums" supported in Guvnor for drop-down choices in web decision tables *and* in guided rule editor variable selection?

A: No, not at this stage.

Q: Can security integrate with other authentication/authorization sources such as LDAP/AD?

A: Yes - JAAS is used (via Seam). Coarse grained authorization (admin users) as well as Authentication can work with LDAP and AD (that is recommended).

Q: Are user permissions only enforceable at the package level, not by Categories? Once you have access to read/write a package, is everything in that package available to you, or can it be more fine-grained?

A: Can be enforced at the category level.

Q: Can the workflows (ruleflows) be defined from within the Guvnor (versus Eclipse)?

A: Not at present - only viewed (limited editing) but in the near future full editing of flow diagrams will be supported (we are trying out various ajax and possibly flex techniques to make sure we can target all the popular browser platforms).

Q: What does a Foo.scenario look like in the eclipse plugin if you open it up? Can you run scenarios from eclipse? Can they be grouped to be part of a continuous build/test nightly process?

A: It is XML. Yes you can - using the ScenarioRunner class (from code).

Q: In WebDAV, how are user permissions enforced? Can I change or edit rules in WebDAV mode?

A: Fine grained permissions are not enforced in WebDAV at the moment - only authentication.

Q: Are Web decision tables customizable?

A: To some extent - the grouping can be setup, as can widths/names of columns etc..., but not to the extend that spreadsheet based ones are.

Q: Regarding security, is it custom in Guvnor, or is it linked up to JAAS LoginModules like other standard apps?

A: JAAS. No out of the box authentication is provided - it is delegated to the container.

Q: Is security rights defined in the Guvnor also enforced when editing assets using the elcipse plugin?

A: Only authentication - as this uses the WebDAV facility (at present).

Q: is there any way to import xls file to rule repository

A: You can import - but it will not convert them to web based decision tables - it will simply be stored as is, and used as is in a rule package.

Q: Are fact models created within Guvnor versioned Such as source would be in cvs/SubVersion/clearcase . . .

A: Yes they are.

Q: Can rule flows be invoked via a JSR 94 interface?

A: Not at this stage.

Q: In drools 4 - we had to turn off the AOP - caching because it conflicted with our own cache. Has that whole concept of truth maintenance been re-vamped in drools 5?

A: It was highly likely it was the shadow facts (little proxy classes generated to copy data from facts) - these would cause havoc with AOP and other tools. Shadow facts are no longer needed in drools 5.

Q: Any Apache Camel or Spring Integration - support?

A: There are some members of the community working on this. In terms of spring - there are a few ways people have used it available on the wiki.

Q: Web service exposure of the rules is still through custom methods or is there "out of box" functionality to expose them?

A: There is an "out of the box" module called "drools-server" which uses the RuleAgent to expose rules as RESTful services (XML or JSON payloads for the facts).

Q: can business users publish the rule to production after testing the rules edited by them

A: This depends on the configuration - if you want, yes. Generally though someone with "full access" to Guvnor would create a snapshot for production usage which the remote rule agents then consume.

Q: What really is a partition for events? In traditional programming we have shared memory and threads working over that memory. Is a partition like a thread - or is an actual partition of the working memory? Would you please define your terms. Thank you.

A: There is some partitioning of the working memory for the concurrent threads handling the event streams - but it is of course one memory space (one java process) - so a partition exists to help this per-thread isolation.

Q: Is the goal of Drools 5 - BLIP + BPML + BPEL?

A: Not at this stage (for the 5.0 release anyway). BPML has had some interest and there has been quite a bit of work in both BPML and BPEL as popular standards. "BLiP" is really a cute acronym meaning the combined business logic approaches of rules and processes.

Q: Are thre any changes in the (de)serialization of rules in Drools 5? We had problems with the size of the serialized rules when having more than 2K rules because all imports for the package were included into every rule

A: There has been a LOT of work around serialization and de-serialization to make it much more efficient. You should certainly see an improvement here.

Q: Are there any integration with rule mining tools such as Relativity? i.e. Go throught the lines of cobol code harvest the rules and automagically import them in drools as a rule.

A: No - not that we have heard of (an ISV may have done something along these lines though).

Q: Are the rules stored in repository so that they can be reused

A: Not in this version, but that is on the roadmap for a near future version (requires dependency analysis so its slightly more complicated then it sounds).

Q: how do we use the binery package for further use?

A: You can use the RuleAgent to access the binary .pkg either directly from the repository, or from the file system.


Thursday, November 06, 2008

Semantic SOA

So was talking to my friend Benjamin Grosof, ex MIT Sloan Professor, from Paul Allen's cutting edge research company Vulcan Inc. While talking about next generation stuff he introduced me to the concept of Semantic SOA, he personally believes this will be the next big thing. It took a while for the concept to sink in, but once it did I was shocked to my core over the possible impact of such technology. Unfortunately he's twisted my arm, so I can't talk about it further :( But I'd be very interested to here what other people think this is about, and whether Gartner or other analysts have picked up on this yet.

update (7th of Nov 2009): heh, this was a hoax for a bit of fun. While at BRF I mentioned that I'm pushing the term "Business Logic" for a product that was neither rule centric or process centric. So our minds went wandering about other possible names, then obviously we thought it would be funny if we combine the hype of Semantic Web with the hype of SOA and see the response :)

Monday, November 03, 2008

Drools Presentation at Belgian JBug

I'll be giving a presentation about Drools in general (and some more details on Drools Flow specifically), on the first Belgian JBoss User Group, this Friday November 7th in Huizingen. The event starts at 17h. There will additional presentations from Nicolas Leroux on the latest development methods using Java EE, Seam, Hibernate, etc. and from Alexey Loubyanski on the new features of the upcoming JBoss AS 5 release.

All the information can be found on the Belgian JBug website:

As far as I know, the maximum capacity has not yet been reached so do not hesitate to register if you are around and interested in Drools, any of the other topics or just in JBoss in general !