views:

1337

answers:

2

I am evaluating drools flow as wrokflow engine with drools expert rule. Key evaluation points:

  • Generating Customize Rules and Workflow through own custom Web UI
  • Admin user can see all of the items in workflow in UI (View job queue: current queue, executed jobs, exceptions)
  • Rule Actions can be web services, Java classes or it can be stored procedure
  • Delete/cancel process definitions at runtime
  • Integrate with Calendaring/Scheduling
  • Web Service can be rule input
  • Web service can be actor in process
  • runtime compiling capability That is, no application re-start on rule change
  • Exposing Processes as Services

    Please can anyone provide your inputs on the above mentioned areas to help us this evaluation process?

A: 

Let me try to give a quick answer to these bullets:

  • Generating Customize Rules and Workflow through own custom Web UI

You can always build your own custom tooling, as long as you export the rules and processes in the expected DRL or xml format. Guvnor provides some examples of web-based editing of rules. We are looking into Oryx to allow web-based editing of processes.

  • Admin user can see all of the items in workflow in UI (View job queue: current queue, executed jobs, exceptions)

The gwt-console allows a user to log into a web application and see the currently running instances; task lists, etc.

  • Rule Actions can be web services, Java classes or it can be stored procedure

Rule actions are just Java, so you can easily invoke any functionality you want. If you want more declarative modeling of these actions, you can use work items to model these actions more declaratively.

  • Delete/cancel process definitions at runtime

ksession.abortProcessInstance(id)

  • Integrate with Calendaring/Scheduling

Use a pluggable work item for this. We have an example that integrates with google calendar for this.

  • Web Service can be rule input

Anything inside the working memory is rule input or you can use a from clause to extract more info during rule evaluation; e.g. NewData ( .. ) from myService.getMoreInfo(..)

  • Web service can be actor in process

Best to model this as a work item as well. The work item handler will delegate to the web service.

  • runtime compiling capability That is, no application re-start on rule change

You can dynamically add or remove knowledge (rules and processes) from your knowledge base

  • Exposing Processes as Services

The session could be exposed directly (so people can call operations like startProcess etc.). I suppose you could easily build a wrapper around this if you want to expose each process as a separate service.

Kris Verlaenen
Thanks Kris. We are in final stages for evaluation process we have required clarification on following areas1. For Human task how we can assign/associate the group of users from my application authentication service for the swimlane actor id2. In WSHumanTask can i write my own Human work item handler to handle the human task user assignment using my own authentication services with out mina server?3. For workflow persistence using the JPAKnowledgeService will does that or we need to do write our persistence logic like store, retervie, update?ThanksPrem
Prem
Also We have tried configuring persistence service (JPAKnowledgeService) to H2db as specified https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/docs/drools-flow/html_single/index.html#d0e1496.When we start the application it throws exception SingleSessionCommandService during the user transaction context lookup since it return null ctx.lookup( "java:comp/UserTransaction".); ThanksPrem My project technolgies ares Tomcat 6.x as a web server, Spring, Hibernte with Drools.
Prem
A: 

it throws exception SingleSessionCommandService during the user transaction context lookup since it return null ctx.lookup( "java:comp/UserTransaction".);

You need to integrate a JTA txn manager, like Atomikos or JOTM. I'm using Atomikos.

Taylor