[jboss-svn-commits] JBL Code SVN: r20734 - in labs/jbossrules/trunk/drools-docs/drools-docs-flow/en: Chapter-GettingStarted and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jun 24 10:35:35 EDT 2008
Author: KrisVerlaenen
Date: 2008-06-24 10:35:35 -0400 (Tue, 24 Jun 2008)
New Revision: 20734
Added:
labs/jbossrules/trunk/drools-docs/drools-docs-flow/en/Chapter-RulesAndProcesses/
labs/jbossrules/trunk/drools-docs/drools-docs-flow/en/Chapter-RulesAndProcesses/Chapter-RulesAndProcesses.xml
Modified:
labs/jbossrules/trunk/drools-docs/drools-docs-flow/en/Chapter-GettingStarted/Chapter-GettingStarted.xml
labs/jbossrules/trunk/drools-docs/drools-docs-flow/en/master.xml
Log:
Drools flow docs
Modified: labs/jbossrules/trunk/drools-docs/drools-docs-flow/en/Chapter-GettingStarted/Chapter-GettingStarted.xml
===================================================================
--- labs/jbossrules/trunk/drools-docs/drools-docs-flow/en/Chapter-GettingStarted/Chapter-GettingStarted.xml 2008-06-24 14:21:16 UTC (rev 20733)
+++ labs/jbossrules/trunk/drools-docs/drools-docs-flow/en/Chapter-GettingStarted/Chapter-GettingStarted.xml 2008-06-24 14:35:35 UTC (rev 20734)
@@ -21,7 +21,8 @@
<para>Download the Drools Eclipse IDE plugin from <ulink
url="http://www.jboss.org/auth/drools/downloads.html">
- http://www.jboss.org/auth/drools/downloads.html</ulink>, unzip it in your eclipse
+ http://www.jboss.org/auth/drools/downloads.html</ulink> (the latest snapshot build
+ can also be downloaded from <ulink url="https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/">https://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/</ulink>), unzip it in your eclipse
folder and (re)start Eclipse. If installation was successful, the Drools menu
action should appear in the top menu bar.</para>
</section>
Added: labs/jbossrules/trunk/drools-docs/drools-docs-flow/en/Chapter-RulesAndProcesses/Chapter-RulesAndProcesses.xml
===================================================================
--- labs/jbossrules/trunk/drools-docs/drools-docs-flow/en/Chapter-RulesAndProcesses/Chapter-RulesAndProcesses.xml (rev 0)
+++ labs/jbossrules/trunk/drools-docs/drools-docs-flow/en/Chapter-RulesAndProcesses/Chapter-RulesAndProcesses.xml 2008-06-24 14:35:35 UTC (rev 20734)
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<chapter xmlns:xi="http://www.w3.org/2001/XInclude" >
+ <title>Rules and Processes</title>
+ <para>Drools Flow is a workflow and process engine that allows
+ advanced integration of processes and rules. This chapter gives an
+ overview of how to integrate rules and processes, ranging from simple
+ to advanced.</para>
+
+ <section>
+ <title>Why use rules in processes?</title>
+ <para>
+ <orderedlist>
+ <listitem>
+ <para>Simplicity: Complex decisions are sometimes easier to specify using rules</para>
+ </listitem>
+ <listitem>
+ <para>Separate life cycle => Agility: Change rules without having to change process</para>
+ </listitem>
+ <listitem>
+ <para>Different scope: Rules can be reused accross processes or outside processes</para>
+ </listitem>
+ <listitem>
+ <para>Declarative: Focus on what instead of how, rules are additive</para>
+ </listitem>
+ <listitem>
+ <para>Granularity: Easy to write rules for specific circumstances, processes should be more generic</para>
+ </listitem>
+ <listitem>
+ <para>Data-centric: Rules can easily handle large data sets</para>
+ </listitem>
+ <listitem>
+ <para>Performance: Rule evaluation is optimized</para>
+ </listitem>
+ <listitem>
+ <para>Advanced condition and action language: Supports advanced features like custom functions, collections, not, exists, for all, etc.</para>
+ </listitem>
+ <listitem>
+ <para>Higher-level: Using DSLs, business editors, decision tables, decision trees, etc.</para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section>
+ <title>Why integrate rules and processes in a single engine?</title>
+ <para>
+ <orderedlist>
+ <listitem>
+ <para>Simplicity: Easier for end user to use both rules and processes</para>
+ </listitem>
+ <listitem>
+ <para>Encapsulation: Sometimes close integration between processes and rules is beneficial</para>
+ </listitem>
+ <listitem>
+ <para>Performance: No unnecessary passing, transformation or synchronization of data</para>
+ </listitem>
+ <listitem>
+ <para>Learning curve: Easier to learn one product</para>
+ </listitem>
+ <listitem>
+ <para>Manageability: Easier to manage one product, rules and processes can be similar artefacts in a larger knowledge repository</para>
+ </listitem>
+ <listitem>
+ <para>Integration of features: Audit log, IDE, Web-based management platform, Repository, Debugging, etc.</para>
+ </listitem>
+ </orderedlist>
+ </para>
+ </section>
+
+ <section>
+ <title>Approach</title>
+ <para>
+ </para>
+ </section>
+
+
+ <section>
+ <title>Examples</title>
+
+ <section>
+ <title>Evaluating a set of rules in your process</title>
+ <para>This example evaluates a set of rules as part of the process.
+ The rules that need to be evaluated should be grouped in a ruleflow
+ group (using the ruleflow-group rule attribute) and a RuleSet node
+ can be used to trigger the evaluation of these rules in your process.</para>
+ </section>
+
+ <section>
+ <title>Using rules for evaluating constraints</title>
+ <para>Rules can be used for expressing and evaluating complex constraints
+ in your process. For example, when a decision should be made which execution
+ paths should be selected at a split, rules could be used to define these
+ conditions. Similarly, a wait state could use a rule to define how long
+ to wait.</para>
+ </section>
+
+ <section>
+ <title>Assignment rules</title>
+ <para>Human tasks can be used in a process to describe work that needs to
+ be executed by a human actor. Which actor could be based on the current
+ state of the process, and the history. Assignment rules can be used to
+ describe how to the actor based on this information. These assignment rules
+ will then be applied automatically whenever a new human task needs to be
+ executed.</para>
+ </section>
+
+ <section>
+ <title>Describing exceptional situations using rules</title>
+ <para>Rules can be used for describing exceptional situations and how to respond
+ to these situations. Adding all this information in the control flow of the main
+ process would make the basic process much more complex. Rules can be used to
+ handle each of these situations separately, without making the core process more
+ complex. It also makes it much easier to adapt existing processes to take new
+ unanticipated events into account.</para>
+ </section>
+
+ <section>
+ <title>Modularizing concerns using rules</title>
+ <para>The process defines the overall control flow. Rules could be used
+ to add additional concerns to this process without making the overall control
+ flow more complex. For example, rules could be defined to log certain information
+ during the execution of the process. The original process is not altered and
+ all logging functionality is cleanly modularized as a set of rules. This
+ greatly improves reusability (allows users to easily apply the same strategy
+ on different processes), readability (control flow of the original process
+ is still the same) and modifiability (you can easily add, remove or change the
+ logging strategy by adding, removing or changing the rules, the process should not
+ be modified).</para>
+ </section>
+
+ <section>
+ <title>Using rules to dynamically alter the behaviour of the process</title>
+ <para>If a problem is encountered at runtime with one of the processes, new rules
+ could be added at runtime to for example log additional information or handle
+ specific cases of the process. Once the problem is solved (e.g. an improved
+ process has been deployed), these rules can easily be removed again. Based on
+ current circumstances, different strategies could be selected dynamically,
+ for example based on the current load of all the services, rules could be used
+ to optimize the process to the current load.</para>
+ </section>
+
+ </section>
+
+</chapter>
Modified: labs/jbossrules/trunk/drools-docs/drools-docs-flow/en/master.xml
===================================================================
--- labs/jbossrules/trunk/drools-docs/drools-docs-flow/en/master.xml 2008-06-24 14:21:16 UTC (rev 20733)
+++ labs/jbossrules/trunk/drools-docs/drools-docs-flow/en/master.xml 2008-06-24 14:35:35 UTC (rev 20734)
@@ -44,6 +44,7 @@
<xi:include href="Chapter-Introduction/Chapter-Introduction.xml" />
<xi:include href="Chapter-GettingStarted/Chapter-GettingStarted.xml" />
<xi:include href="Chapter-Flow/Chapter-RuleFlow.xml" />
+ <xi:include href="Chapter-RulesAndProcesses/Chapter-RulesAndProcesses.xml" />
<xi:include href="Chapter-DomainSpecificProcesses/Chapter-DomainSpecificProcesses.xml" />
<xi:include href="Chapter-Debugging/Chapter-Debugging.xml" />
More information about the jboss-svn-commits
mailing list