Prem
Prem

Reputation:

Evaluation of Drools Flow with Drools Expert on a web based J2ee project

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

Upvotes: 0

Views: 2791

Answers (2)

Taylor
Taylor

Reputation: 4087

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.

Upvotes: 0

Kris Verlaenen
Kris Verlaenen

Reputation: 81

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.

Upvotes: 1

Related Questions