Shao Fang presented the D3 (Demand Driven Development) program and their work on integrating business rules into the Intalio BPMS. A few notes on the D3 program:
- Not custom development
- Community suggested projects
- Customers put up money for features they really want and get credit for them
- Some are decoupled and done offshore, some more tightly integrated and done onshore
- Product enhancements are priced at cost – not a profit making effort – though they include the cost of maintenance for 3 years
- A forum is used to gather feedback on suggestions and gauge demand before estimating
- Completed features become part of standard product – typically in the enterprise edition. Some become part of the community edition and some move to the open source code base.
Currently working on some interesting ones for which they are looking for D3 sponsors – the Drools integration, Alfresco content management integration, Liferay portal integration, Atom feed. Other suggestions include a BPMN debugger, Visio and XPDL importers, VMWare image etc. All of these are slated to be part of the 5.3 enterprise edition but D3 supporters are needed to firm up the specifications and delivery dates.
Now came the interesting piece (from my perspective), the overview of how Intalio is integrating its BPMS with the Drools BRMS. The idea is to separate business rule definition from process definition. Primarily going to use a decision table interface initially and target business analysts/process owners (programmers can use Drools directly, of course). The kind of table is very similar to Corticon’s – different columns representing attributes with one or more action columns and rows linking attribute values or ranges to a given set of outcomes. There is a wizard to help build an initial decision table and tables can be dragged and dropped onto BPMN diagrams to make it a participant and all the hook ups get created (treating it like a web service call). This implementation is a fairly pure approach to decision services (stateless, no updates). Any changes to the decision table that don’t change the data model can be deployed without versioning the process. The integration allows a set of rules to be called from a task and then uses the ability of the Intalio engine to take action to act on the results – Action handling is passed to the BPMS.
It’s clearly not a fully functional integration yet but it looks interesting and it looks like the folks at Intalio understand how this should be done. In addition they are taking advantage of all the great work Mark Proctor’s Drools team has been doing extending the core engine to more of a complete rule management environment. Going to get interesting as this gets extended…