[rules-users] Drools Flow / Declarative process definition
Jaroslav Pullmann
jaroslav.pullmann at fit.fraunhofer.de
Wed Mar 3 05:31:16 EST 2010
Hello Kris,
thank you for your detailed response, this makes Drols Flow an even more
appealing solution for data-driven processes.
> Yes, if you execute your processes in advanced mode, we are translating
> procedural constructs like sequence into a more declarative rule like the
> one you described as an example. Note we are currently not doing that for
> all procedural constructs (like branch / joins) but we plan to extend these
> integration points over time.
JOpera might be worth a look. It uses a ECA-driven approach and support a range of
control patterns [1] via dependency conditions [2].
>
> This does allow you to execute a process without having explicit connections
> between all nodes. We like to describe this as process fragments, where you
> have small, not-connected flow fragments and where the rules or the user can
> define when each fragment should be executed, etc. This could then be
> event-based, data-based, user-triggered, etc. Instead of the process
> controlling everything, we see this as an inversion where your rules will be
> controlling the process fragments.
Could this be expressed in the process XML, while it explicitely states "connections"
between the tasks ?
> This is however still work in progress
> (meaning a lot is already possible if you dive into it, but we definitely
> need to extend the tooling etc. to better harness this power before we
> unleash this to our users). I'm hoping to do a blog entry about this soon,
> to show some direction. If you're interested in this, it's also related to
> flexible or ad-hoc processes, adaptible case management, etc.
Yes please, I'd like to continue this topic.
>
> Drools currently targets the Java space primarly. But this doesn't mean you
> can't use if for XML processing. At this stage, this could become rather
> complex as we don't provide high-level constructs yet to manipulate this XML
> data, so you'd have to either build this yourself or do more low-level XML
> manipulation. As part of our move to BPMN2, we are however planning to
> seriously enhance this, by adding XPath as a constraint language dialect,
> better web service integration (as part of our integration with the ESB and
> the entire SOA platform), etc.
SCXML [3] has the notion of a pluggable data- and expression langauge model and
[4] offers an XML/Xpath support. This results in an elegant way of specifing
state (task) activation through data-driven transitions:
<state id="frist">
<datamodel>
<data id="input">
<input> <!-- will change e.g. through incomming events/interaction -->
<source/>
<content/>
</input>
</data>
</datamodel>
<transition cond="$input/content != ''" target="second"/>
</state>
<state id="second"/>
On the other side SCXML requires a design-time decision on state coordination
(state vs. parallel elements) which makes it unsuitable for adaptive worklflows.
Having at least XPath as a constraint language operating on whatever data model
(e.g. Java beans) would be great!
Best regards
Jaro
[1] http://www.workflowpatterns.com/patterns/control/index.php
[2] http://www.jopera.org/docs/help/jop_9.html
[3] http://www.w3.org/TR/scxml/
[4] http://commons.apache.org/scxml/index.html
> ----- Original Message -----
> From: "Jaroslav Pullmann" <jaroslav.pullmann at fit.fraunhofer.de>
> To: <rules-users at lists.jboss.org>
> Sent: Friday, February 26, 2010 2:47 PM
> Subject: [rules-users] Drools Flow / Declarative process definition
>
>
>> Dear Drools team,
>>
>> I like much the approach of Drools Flow and would appreciate to learn
>> more.
>>
>> The documentation states the extended rule engine having knowledge of the
>> process model
>> and instance state derives the next process execution step. I am
>> wondering, whether the
>> overall flow is reactive, even the procedural constructs like sequence,
>> branching/joining
>> are implemented through firing rule actions ? For example, does Drools
>> Flow converts the
>> sequence of steps A -> B into sth. like "when A.passed then B.start()" ?
>>
>> When the prevoius holds, does Drools Flow allows to create (desgin) and
>> execute declarative processes
>> omiting any explicit sequencing ? The steps/tasks were ordered partially
>> by data- or event-based
>> dependency conditions or even activated independently of each other.
>>
>> Drools Flow/Expert provide a thight integration with Java (e.g.
>> representing facts as Java classes).
>> Are there future plans for supporting a higher-level processing with
>> XML/XPath/XQuery like in YAWL ?
>>
>> Many thanks
>> Jaro
>>
>>
>>
>>
>> --
>> Jaroslav Pullmann
>> Web Compliance Center - Fraunhofer FIT
>> Schloss Birlinghoven, D-53757 Sankt Augustin, Germany
>> Phone: +49-2241-142623 Fax: +49-2241-142065
>> _______________________________________________
>> rules-users mailing list
>> rules-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
> Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
--
Jaroslav Pullmann
Web Compliance Center - Fraunhofer FIT
Schloss Birlinghoven, D-53757 Sankt Augustin, Germany
Phone: +49-2241-142623 Fax: +49-2241-142065
More information about the rules-users
mailing list