<?xml version="1.0" encoding="UTF-8"?>
<org.eclipse.epf.uma:TaskDescription xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.6/uma.ecore" xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.1" xmlns:rmc="http://www.ibm.com/rmc" rmc:version="7.5.1" xmi:id="-RIbruSRPcrAZIMhywydlAw" name="determine_rule_implementation,_NL7WwB6EEdu_zM9rU7U4dw" guid="-RIbruSRPcrAZIMhywydlAw" authors="Jerome Boyer" changeDate="2011-09-28T11:41:51.646-0700" version="1.0.0">
  <mainDescription>&lt;a id=&quot;XE_rule__determine_implementation&quot; name=&quot;XE_rule__determine_implementation&quot;>&lt;/a> &#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    Project teams involved in BRMS deployment are often asking the following type of questions:&#xD;
&lt;/p>&#xD;
&lt;ul style=&quot;MARGIN-TOP: 0cm&quot; type=&quot;disc&quot;>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l4 level1 lfo5; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        When should I use BRMS versus a&amp;nbsp;BPM?&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l4 level1 lfo5; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        How do I decide what decisions should I put into a BRE?&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l4 level1 lfo5; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        When should I use BRMS versus code?&amp;nbsp;&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    There are definitively multiple variables which could influence the decision on where to implement rules. We can start&#xD;
    by looking at the BRMS value propositions, it should help to get a first set of variables:&#xD;
&lt;/p>&#xD;
&lt;ul style=&quot;MARGIN-TOP: 0cm&quot; type=&quot;disc&quot;>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l1 level1 lfo6; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        Adaptability – Measure the ability to change the business logic easily. The motivation can be due to short deadline&#xD;
        constraint, or frequent small changes or important change that may occur every month or quarter.&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l1 level1 lfo6; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        Transparency – Represents the need to clearly implement the business logic as what was agreed upon the business&#xD;
        unit and the IT team, in a way that every parties understand the logic. This is leading to express the logic in&#xD;
        natural or close to natural language.&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l1 level1 lfo6; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        Auditability – Represents the ability to trace from the business motivation to the execution of the policy to&#xD;
        better understand what was the logic behind a decision.&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l1 level1 lfo6; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        Reusability – Need to share business logic across processes or applications and stay . consistent across&#xD;
        applications/transactions&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l1 level1 lfo6; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        Manageability- This variable addresses the life cycle management of the business logic. Who writes what, and when,&#xD;
        and all the questions related to maintenance and evolutions of the rule-based service.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    The purpose here is not to say it is not possible to support those variables in standard software development&#xD;
    practices, but more to find some good patterns on how to decide on where to implement the business logic.&#xD;
&lt;/p>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    When looking at a business rules statement software engineer can see different possible choices of implementation like:&#xD;
&lt;/p>&#xD;
&lt;ul style=&quot;MARGIN-TOP: 0cm&quot; type=&quot;disc&quot;>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l0 level1 lfo7; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        Data model: designing an object oriented object model involves supporting a lot of business rules. A statement like&#xD;
        a mortgage application can have a primary and a secondary borrower, will be supported by two classes and a 1 to 2&#xD;
        relationship. At the instantiation of those classes the control of the cardinality can be done in the application&#xD;
        logic, or the database, or the GUI structure.&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l0 level1 lfo7; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        Application code: implementing the logic in function, procedural code or methods in service layer or business&#xD;
        objects.&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l0 level1 lfo7; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        BPM process flow, tasks or links: BPM tools are addressing business process efficiency issue specifically on &quot;who&#xD;
        is involved&quot;, &quot;when they should be involved&quot;. &quot;what they need to do&quot;. BPM supports manual human and automated&#xD;
        actors. At a glance the business logic to implement in BPM is linked to people, task, and data to process within a&#xD;
        task. When supporting purely automated tasks BPM is orchestrating the application logic and services (BPEL engine).&#xD;
        BRMS complements BPM by adding the why to a BPM task, why it behaves a certain way, why this decision is done.&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l0 level1 lfo7; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        Rule engine: &lt;span style=&quot;mso-spacerun: yes&quot;>&amp;nbsp;&lt;/span>using predefined structure like if then else statement or&#xD;
        decision table, rule flow, decision tree, function, rule template or other high level language...&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l0 level1 lfo7; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        Graphical user interface: &lt;span style=&quot;mso-spacerun: yes&quot;>&amp;nbsp;&lt;/span>using scripting language or server side code&#xD;
        in controller class it is possible to implement data validation type of business rules.&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    In the following paragraphs address each of different choices with their impact on the variables&#xD;
&lt;/p>&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;a>&lt;font color=&quot;#0066B2&quot;>&lt;em>&lt;font size=&quot;3&quot;>Rule in Data Model&lt;/font>&lt;/em>&lt;/font>&lt;/a>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-language: HE&quot;>Rule which is controlling the structure of the model and the reference integrity&#xD;
    should be in the physical data model, the O/R mapping layer or on the domain object model.&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;ul style=&quot;MARGIN-TOP: 0cm&quot; type=&quot;disc&quot;>&#xD;
    &lt;li style=&quot;MARGIN: 0cm 0cm 0pt; mso-list: l6 level1 lfo2; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        &lt;span style=&quot;mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>Rule setting constraint on relationship -&#xD;
        &lt;span style=&quot;mso-spacerun: yes&quot;>&amp;nbsp;&lt;/span>like a loan application could only have two borrowers&lt;/span>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;MARGIN: 0cm 0cm 0pt; mso-list: l6 level1 lfo2; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        &lt;span style=&quot;mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>Rule on the structure of the business&#xD;
        entities - like this attribute is part of this object&lt;/span>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;MARGIN: 0cm 0cm 0pt; mso-list: l6 level1 lfo2; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        &lt;span style=&quot;mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>The following facts are based on a simple&#xD;
        user authentication problem, are well implemented in an object model and the supporting application code which&#xD;
        create the instance from the data (O/R mapping layer or DAO or service layer):&lt;/span>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p style=&quot;TEXT-INDENT: -18pt; MARGIN: 3pt 0cm 3pt 54pt; mso-list: l5 level1 lfo3; tab-stops: list 54.0pt&quot;&#xD;
class=&quot;MsoNormal&quot;>&#xD;
    &lt;span&#xD;
    style=&quot;FONT-FAMILY: Symbol; mso-bidi-language: HE; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol&quot;>&lt;span&#xD;
    style=&quot;mso-list: Ignore&quot;>·&lt;span&#xD;
    style=&quot;FONT: 7pt 'Times New Roman'&quot;>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;/span>&lt;/span> &lt;span&#xD;
    style=&quot;mso-bidi-language: HE&quot;>A Company has a list of users who can login to the application&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;TEXT-INDENT: -18pt; MARGIN: 3pt 0cm 3pt 54pt; mso-list: l5 level1 lfo3; tab-stops: list 54.0pt&quot;&#xD;
class=&quot;MsoNormal&quot;>&#xD;
    &lt;span&#xD;
    style=&quot;FONT-FAMILY: Symbol; mso-bidi-language: HE; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol&quot;>&lt;span&#xD;
    style=&quot;mso-list: Ignore&quot;>·&lt;span&#xD;
    style=&quot;FONT: 7pt 'Times New Roman'&quot;>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;/span>&lt;/span> &lt;span&#xD;
    style=&quot;mso-bidi-language: HE&quot;>A Company has a list of groups of user&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;TEXT-INDENT: -18pt; MARGIN: 3pt 0cm 3pt 54pt; mso-list: l5 level1 lfo3; tab-stops: list 54.0pt&quot;&#xD;
class=&quot;MsoNormal&quot;>&#xD;
    &lt;span&#xD;
    style=&quot;FONT-FAMILY: Symbol; mso-bidi-language: HE; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol&quot;>&lt;span&#xD;
    style=&quot;mso-list: Ignore&quot;>·&lt;span&#xD;
    style=&quot;FONT: 7pt 'Times New Roman'&quot;>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;/span>&lt;/span> &lt;span&#xD;
    style=&quot;mso-bidi-language: HE&quot;>A User is part of a group&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;TEXT-INDENT: -18pt; MARGIN: 3pt 0cm 3pt 54pt; mso-list: l5 level1 lfo3; tab-stops: list 54.0pt&quot;&#xD;
class=&quot;MsoNormal&quot;>&#xD;
    &lt;span&#xD;
    style=&quot;FONT-FAMILY: Symbol; mso-bidi-language: HE; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol&quot;>&lt;span&#xD;
    style=&quot;mso-list: Ignore&quot;>·&lt;span&#xD;
    style=&quot;FONT: 7pt 'Times New Roman'&quot;>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;/span>&lt;/span> &lt;span&#xD;
    style=&quot;mso-bidi-language: HE&quot;>A group includes a list of Users&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;TEXT-INDENT: -18pt; MARGIN: 3pt 0cm 3pt 54pt; mso-list: l5 level1 lfo3; tab-stops: list 54.0pt&quot;&#xD;
class=&quot;MsoNormal&quot;>&#xD;
    &lt;span&#xD;
    style=&quot;FONT-FAMILY: Symbol; mso-bidi-language: HE; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol&quot;>&lt;span&#xD;
    style=&quot;mso-list: Ignore&quot;>·&lt;span&#xD;
    style=&quot;FONT: 7pt 'Times New Roman'&quot;>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;/span>&lt;/span> &lt;span&#xD;
    style=&quot;mso-bidi-language: HE&quot;>A group has one user reference who is the creator of the group&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    Terms and facts and derived attributes&amp;nbsp;are the primary constituents of data models and are represented in a UML&#xD;
    class diagram, and logical data model (entities/relationship model), or a physical data model.&#xD;
&lt;/p>&#xD;
&lt;p>&#xD;
    &lt;span style=&quot;mso-bidi-language: HE&quot;>The following table lists the impact of this implementation on the previously&#xD;
    defined variables&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;div align=&quot;center&quot;>&#xD;
    &lt;table&#xD;
    style=&quot;BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid silver 1.0pt; mso-yfti-tbllook: 480; mso-border-insideh: 1.0pt solid silver; mso-border-insidev: 1.0pt solid silver&quot;&#xD;
     class=&quot;ISISTable&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;>&#xD;
        &lt;thead>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: -1; mso-yfti-firstrow: yes&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: gray 1pt solid; BORDER-LEFT: gray 1pt solid; PADDING-BOTTOM: 0cm; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BACKGROUND: #f3f3f3; BORDER-TOP: gray 1pt solid; BORDER-RIGHT: gray 1pt solid; PADDING-TOP: 0cm&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p style=&quot;TEXT-ALIGN: center; mso-yfti-cnfc: 1&quot; class=&quot;MsoNormalCxSpMiddle&quot; align=&quot;center&quot;>&#xD;
                        &lt;b style=&quot;mso-bidi-font-weight: normal&quot;>&lt;i style=&quot;mso-bidi-font-style: normal&quot;>&lt;span&#xD;
                        style=&quot;COLOR: #005da0; mso-bidi-language: HE&quot;>&lt;font size=&quot;3&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Variables&lt;/font>&lt;/font>&lt;/span>&lt;/i>&lt;/b>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: gray 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; PADDING-LEFT: 5.4pt; WIDTH: 221.4pt; PADDING-RIGHT: 5.4pt; BACKGROUND: #f3f3f3; BORDER-TOP: gray 1pt solid; BORDER-RIGHT: gray 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid gray 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;295&quot;>&#xD;
                    &lt;p style=&quot;TEXT-ALIGN: center; mso-yfti-cnfc: 1&quot; class=&quot;MsoNormalCxSpMiddle&quot; align=&quot;center&quot;>&#xD;
                        &lt;b style=&quot;mso-bidi-font-weight: normal&quot;>&lt;i style=&quot;mso-bidi-font-style: normal&quot;>&lt;span&#xD;
                        style=&quot;COLOR: #005da0; mso-bidi-language: HE&quot;>&lt;font size=&quot;3&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Evaluation&lt;/font>&lt;/font>&lt;/span>&lt;/i>&lt;/b>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
        &lt;/thead>&#xD;
        &lt;tbody>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 0&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;font face=&quot;Times New Roman&quot;>&lt;span&#xD;
                        style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>Adaptability&lt;/span>&lt;/font>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 221.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;295&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Very static implementation. A change in the constraints of the object model&#xD;
                        impact, data persistence, logical data model, service and presentation layers. Change is managed on&#xD;
                        a monthly or yearly basis&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 1&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;font face=&quot;Times New Roman&quot;>&lt;span&#xD;
                        style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>Transparency&lt;/span>&lt;/font>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 221.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;295&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Data model represented as UML classes diagram is doing a poor job to&#xD;
                        communicate to business. Entities diagram represents a more high level representation of the domain&#xD;
                        model, but forces the team to maintain the link between the implementation and the business&#xD;
                        representation.&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 2&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;font face=&quot;Times New Roman&quot;>&lt;span&#xD;
                        style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>Auditability&lt;/span>&lt;/font>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 221.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;295&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Configuration management tool, with a strict development process and&#xD;
                        disciplines can help to trace back to the business motivation.&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 3&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Reusability&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 221.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;295&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Domain Object model can be designed as reusable. But in the reality each&#xD;
                        application needs a view of the core business object model, and so part of the implemented&#xD;
                        application will be to build those view.&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 4; mso-yfti-lastrow: yes&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Manageability&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 221.4pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;295&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Configuration management tools and strict discipline can help maintain the&#xD;
                        business logic.&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
        &lt;/tbody>&#xD;
    &lt;/table>&#xD;
&lt;/div>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;a>&lt;font color=&quot;#0066B2&quot;>&lt;em>&lt;font size=&quot;3&quot;>Rule in application code&lt;/font>&lt;/em>&lt;/font>&lt;/a>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>Implementing business rule in application code is&#xD;
    currently the most common way the IT developer is doing it. The major justifications are performance and flexibility of&#xD;
    the coding language. Using hard coded if/then/else statements isn't too flexible, but in the hands of a top notch&#xD;
    programmer it can be very fast and arguably as fast as or faster than a rule engine. Assuming the programmer has&#xD;
    unlimited time to optimize the execution for a fixed set of rules. If the ruleset changes frequently and the system&#xD;
    can't tolerate a big drop in performance, then a rule engine is the solution.&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>The following example of business rules may be&#xD;
    easily implemented in code:&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span class=&quot;ISISCodeParagraphChar&quot;>&lt;font face=&quot;Courier&quot;>verify in each items the customer bought since he is customer&#xD;
    with us there is at least one article of type T so that we can propose the new product Y with X % of discount, except&#xD;
    if the customer is from the state of New York or New Jersey&lt;/font>&lt;/span>&lt;span&#xD;
    style=&quot;mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>.&lt;/span>&#xD;
&lt;/p>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>We can implement this in a method which loops on&#xD;
    the articles bought by a given customer and do the search. At a first analysis, navigating in a collection of objects&#xD;
    and testing multiples conditions on them is easy to implement using the power of programming language.&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>One thing interesting will be the hard coding of&#xD;
    the value of New York, New Jersey... If this logic change we need to add if statements in the code.&lt;/span>&#xD;
&lt;/p>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>Other type of rules are related to the control of&#xD;
    the execution of a set of &quot;services&quot; to support specific use case. Dispatching, orchestration, data manipulation, … are&#xD;
    better candidate to be implemented in application code. Those rules are more static, often more complex, and&#xD;
    definitively linked to context of execution. The context may be too complex to expose to a rule engine.&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>Orchestration are now very well supported by&#xD;
    BPM-BPEL engine because the developer needs to add flexibility on the service selection and invocation.&lt;span&#xD;
    style=&quot;mso-spacerun: yes&quot;>&amp;nbsp;&lt;/span>&lt;/span>&#xD;
&lt;/p>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>The evaluation of the important variables&#xD;
    is:&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;div align=&quot;center&quot;>&#xD;
    &lt;table&#xD;
    style=&quot;BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid silver 1.0pt; mso-yfti-tbllook: 480; mso-border-insideh: 1.0pt solid silver; mso-border-insidev: 1.0pt solid silver&quot;&#xD;
     class=&quot;ISISTable&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;>&#xD;
        &lt;thead>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: -1; mso-yfti-firstrow: yes&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: gray 1pt solid; BORDER-LEFT: gray 1pt solid; PADDING-BOTTOM: 0cm; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BACKGROUND: #f3f3f3; BORDER-TOP: gray 1pt solid; BORDER-RIGHT: gray 1pt solid; PADDING-TOP: 0cm&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p style=&quot;TEXT-ALIGN: center; mso-yfti-cnfc: 1&quot; class=&quot;MsoNormalCxSpMiddle&quot; align=&quot;center&quot;>&#xD;
                        &lt;b style=&quot;mso-bidi-font-weight: normal&quot;>&lt;i style=&quot;mso-bidi-font-style: normal&quot;>&lt;span&#xD;
                        style=&quot;COLOR: #005da0; mso-bidi-language: HE&quot;>&lt;font size=&quot;3&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Variables&lt;/font>&lt;/font>&lt;/span>&lt;/i>&lt;/b>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: gray 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; PADDING-LEFT: 5.4pt; WIDTH: 334.25pt; PADDING-RIGHT: 5.4pt; BACKGROUND: #f3f3f3; BORDER-TOP: gray 1pt solid; BORDER-RIGHT: gray 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid gray 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;446&quot;>&#xD;
                    &lt;p style=&quot;TEXT-ALIGN: center; mso-yfti-cnfc: 1&quot; class=&quot;MsoNormalCxSpMiddle&quot; align=&quot;center&quot;>&#xD;
                        &lt;b style=&quot;mso-bidi-font-weight: normal&quot;>&lt;i style=&quot;mso-bidi-font-style: normal&quot;>&lt;span&#xD;
                        style=&quot;COLOR: #005da0; mso-bidi-language: HE&quot;>&lt;font size=&quot;3&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Evaluation&lt;/font>&lt;/font>&lt;/span>&lt;/i>&lt;/b>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
        &lt;/thead>&#xD;
        &lt;tbody>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 0&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;font face=&quot;Times New Roman&quot;>&lt;span&#xD;
                        style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>Adaptability&lt;/span>&lt;/font>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 334.25pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;446&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>the necessity to change code when a business rule changes is still&#xD;
                        unpleasant: software build are more efficient and cost less than before but deployment may be&#xD;
                        expensive depending of the complexity of the production environment. &lt;span&#xD;
                        style=&quot;mso-spacerun: yes&quot;>&amp;nbsp;&lt;/span>&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Changing code under time pressure usually leads to poor&#xD;
                        quality&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&lt;br class=&quot;MsoNormalCxSpMiddle&quot; />&#xD;
                    &lt;br />&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 1&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;font face=&quot;Times New Roman&quot;>&lt;span&#xD;
                        style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>Transparency&lt;/span>&lt;/font>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 334.25pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;446&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Poor. The logic as defined by the business is split in multiple parts of the&#xD;
                        code, methods and procedures.&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 2&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;font face=&quot;Times New Roman&quot;>&lt;span&#xD;
                        style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>Auditability&lt;/span>&lt;/font>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 334.25pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;446&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Poor. Only strict use of configuration management tools with a strict&#xD;
                        development process may help.&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 3&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Reusability&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 334.25pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;446&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>If the logic is implemented in a service layer with defined interface it may&#xD;
                        be possible to reuse part of the methods.&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 4; mso-yfti-lastrow: yes&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Manageability&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 334.25pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;446&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;font face=&quot;Times New Roman&quot;>&lt;span&#xD;
                        style=&quot;FONT-SIZE: 8pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>Developer is&#xD;
                        responsible to implement the change, and use configuration management tools and strict development&#xD;
                        disciplines.&lt;/span>&lt;/font>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
        &lt;/tbody>&#xD;
    &lt;/table>&#xD;
&lt;/div>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;a>&lt;font color=&quot;#0066B2&quot;>&lt;em>&lt;font size=&quot;3&quot;>Rule in process map&lt;/font>&lt;/em>&lt;/font>&lt;/a>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-language: HE&quot;>Business process automation is the technology components substituting and/or&#xD;
    supplementing manual processes to manage information flow within an organization to lower costs, reduce risk, and&#xD;
    increase consistency. In this context Business rules describe the structure, operation, and strategy of an&#xD;
    organization's business process. The business process definition can be seen as a business rule. Typically a rule&#xD;
    involving routing of transactional data to a queue, a task, or a sub process will be most likely implemented in a&#xD;
    process map. Defined at the link level business rules are linked to the structure of the process flow. Once designed&#xD;
    and implemented there is few chance those rule will change. Changing a business process is most of the time risky: we&#xD;
    do not want to change thing working and involving a lot of parties and stakeholders. In fact&lt;/span> new policies,&#xD;
    regulations or business strategies may affect the rules without changing the core business processes.&#xD;
&lt;/p>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-language: HE&quot;>A rule like: &quot;&lt;i style=&quot;mso-bidi-font-style: normal&quot;>if there is an exception in&#xD;
    the claim processing we want a supervisor to study the claim and the accumulated reasons extracted by the process so&#xD;
    far&quot;&lt;/i> will most likely finish as guard on a process map link:&lt;/span>&#xD;
&lt;/p>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;img alt=&quot;&quot; src=&quot;resources/brinbpm.jpg&quot; width=&quot;313&quot; height=&quot;348&quot; />&#xD;
&lt;/p>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    Task 1 will most of the time call a rule engine to take decision on the claim. One of the pattern is to accumulate all&#xD;
    the possible reasons in a list. If the list include an exception or high priority reason, the process map will route to&#xD;
    the &quot;Process Exception&quot; task. This task can queue the work item to a supervisor queues.&#xD;
&lt;/p>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-language: HE&quot;>There are a lot tasks in a business process that are decision rich, so with a lot&#xD;
    of business rule to execute before completing the task. Those rules can be executed by a rule engine. The integration&#xD;
    Rule Engine – BPM will bring the value to support those cases. But as good practice it is always possible to try to&#xD;
    re-arrange an activity diagram of a use case or a process map so that some activities are purely automatically executed&#xD;
    in a rule engine mapped as a rule flow.&lt;/span>&#xD;
&lt;/p>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-language: HE&quot;>The variables evaluation:&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;div align=&quot;center&quot;>&#xD;
    &lt;table&#xD;
    style=&quot;BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid silver 1.0pt; mso-yfti-tbllook: 480; mso-border-insideh: 1.0pt solid silver; mso-border-insidev: 1.0pt solid silver&quot;&#xD;
     class=&quot;ISISTable&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;>&#xD;
        &lt;thead>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: -1; mso-yfti-firstrow: yes&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: gray 1pt solid; BORDER-LEFT: gray 1pt solid; PADDING-BOTTOM: 0cm; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BACKGROUND: #f3f3f3; BORDER-TOP: gray 1pt solid; BORDER-RIGHT: gray 1pt solid; PADDING-TOP: 0cm&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p style=&quot;TEXT-ALIGN: center; mso-yfti-cnfc: 1&quot; class=&quot;MsoNormalCxSpMiddle&quot; align=&quot;center&quot;>&#xD;
                        &lt;b style=&quot;mso-bidi-font-weight: normal&quot;>&lt;i style=&quot;mso-bidi-font-style: normal&quot;>&lt;span&#xD;
                        style=&quot;COLOR: #005da0; mso-bidi-language: HE&quot;>&lt;font size=&quot;3&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Variables&lt;/font>&lt;/font>&lt;/span>&lt;/i>&lt;/b>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: gray 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; PADDING-LEFT: 5.4pt; WIDTH: 344.65pt; PADDING-RIGHT: 5.4pt; BACKGROUND: #f3f3f3; BORDER-TOP: gray 1pt solid; BORDER-RIGHT: gray 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid gray 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;460&quot;>&#xD;
                    &lt;p style=&quot;TEXT-ALIGN: center; mso-yfti-cnfc: 1&quot; class=&quot;MsoNormalCxSpMiddle&quot; align=&quot;center&quot;>&#xD;
                        &lt;b style=&quot;mso-bidi-font-weight: normal&quot;>&lt;i style=&quot;mso-bidi-font-style: normal&quot;>&lt;span&#xD;
                        style=&quot;COLOR: #005da0; mso-bidi-language: HE&quot;>&lt;font size=&quot;3&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Evaluation&lt;/font>&lt;/font>&lt;/span>&lt;/i>&lt;/b>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
        &lt;/thead>&#xD;
        &lt;tbody>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 0&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;font face=&quot;Times New Roman&quot;>&lt;span&#xD;
                        style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>Adaptability&lt;/span>&lt;/font>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 344.65pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;460&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Business rules hardly coded in using BPM notation is not efficient and lead&#xD;
                        to complex map. The real design implementation is to mix BPM map and business rules-decision&#xD;
                        delegated in a process task. In this type of implementation we can leverage the best of both&#xD;
                        worlds, and the adaptability is excellent.&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 1&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;font face=&quot;Times New Roman&quot;>&lt;span&#xD;
                        style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>Transparency&lt;/span>&lt;/font>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 344.65pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;460&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Excellent: when the integration of BPMS and BRMS is done perfectly, the&#xD;
                        business and IT team have a clear understanding of the process execution and the decision done by a&#xD;
                        task by studying the rules attached to the task.&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 2&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;font face=&quot;Times New Roman&quot;>&lt;span&#xD;
                        style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>Auditability&lt;/span>&lt;/font>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 344.65pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;460&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Excellent: both tools has version control, and it is possible to link&#xD;
                        process map version to rule set version.&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 3&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Reusability&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 344.65pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;460&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Rules defined in a task should be expose to the other application as a&#xD;
                        service. So reusability can be achieved. Rules in a BPM map are not really reusable.&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 4; mso-yfti-lastrow: yes&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Manageability&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 344.65pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;460&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;font face=&quot;Times New Roman&quot;>&lt;span&#xD;
                        style=&quot;FONT-SIZE: 8pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>Process logic will&#xD;
                        have a more stable life cycle, and it is managed in the BPMS. &lt;span&#xD;
                        style=&quot;mso-spacerun: yes&quot;>&amp;nbsp;&lt;/span>&lt;/span>&lt;/font>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
        &lt;/tbody>&#xD;
    &lt;/table>&#xD;
&lt;/div>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;a>&lt;font color=&quot;#0066B2&quot;>&lt;em>&lt;font size=&quot;3&quot;>Rule in a rule engine&lt;/font>&lt;/em>&lt;/font>&lt;/a>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-language: HE&quot;>Any type of rule using a forward chaining approach will best fit in any RETE rule&#xD;
    engine. To avoid long explanation a rule engine will perform very efficiently the following rules which are more&#xD;
    complex to implement in code:&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;ul style=&quot;MARGIN-TOP: 0cm&quot; type=&quot;disc&quot;>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l2 level1 lfo4; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        &lt;span style=&quot;mso-bidi-language: HE&quot;>Set parameter = A / (B ^ 2)&lt;/span>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l2 level1 lfo4; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        &lt;span style=&quot;mso-bidi-language: HE&quot;>If parameter is above 30 then the risk is&lt;span&#xD;
        style=&quot;mso-spacerun: yes&quot;>&amp;nbsp;&lt;/span> medium&lt;/span>&#xD;
    &lt;/li>&#xD;
    &lt;li style=&quot;MARGIN: 3pt 0cm; mso-list: l2 level1 lfo4; tab-stops: list 36.0pt&quot; class=&quot;MsoNormal&quot;>&#xD;
        &lt;span style=&quot;mso-bidi-language: HE&quot;>If the risk is medium then alert the manager&lt;/span>&#xD;
    &lt;/li>&#xD;
&lt;/ul>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-language: HE&quot;>&lt;span style=&quot;mso-spacerun: yes&quot;>&amp;nbsp;&lt;/span>If we enter a new value for A all the&#xD;
    depend rules will be fired. Rules can be entered in any order we want, it is less declarative than procedural&#xD;
    code.&lt;/span>&#xD;
&lt;/p>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-language: HE&quot;>Backward chaining rule pattern can also been supported by a rule engine. The rule&#xD;
    system works down the tree to find the data that it requires. It will ask question to be able to infer decisions. It is&#xD;
    possible to implement backward chaining with product using pure inference by&amp;nbsp;using a goal object.&lt;/span>&#xD;
&lt;/p>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-language: HE&quot;>As we already stated one of the key factor is flexibility. We already encounter the&#xD;
    following decision: &quot;This rule will not change&quot;... but in fact it will do in the future or some of related one&quot;&#xD;
    .&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-language: HE&quot;>We can for example take a simple example of a static rule defined as&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;TEXT-ALIGN: justify; MARGIN: 1.9pt 0cm 0pt 18pt&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span class=&quot;ISISCodeParagraphChar&quot;>&lt;font face=&quot;Courier&quot;>If the status of the customer is gold and the product is&#xD;
    &amp;lt;&amp;gt; then apply &amp;lt;&amp;gt; % discount&lt;/font>&lt;/span>&lt;span style=&quot;mso-bidi-language: HE&quot;>.&lt;/span>&#xD;
&lt;/p>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-language: HE&quot;>This rule can be implemented within application code using some tables in a&#xD;
    database that link the product, the category of possible status and the discount to apply. But when discussing with the&#xD;
    business user to understand what is a gold customer? We can get other conditions that definitively will change over&#xD;
    time.&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-language: HE&quot;>For example,&amp;nbsp;a&lt;/span> &lt;span style=&quot;mso-bidi-language: HE&quot;>gold customer is&#xD;
    initially defined as one who spends more than &amp;lt;&amp;gt; amount of money during the last 6 months.&amp;nbsp;&lt;/span> &lt;span&#xD;
    style=&quot;mso-bidi-language: HE&quot;>Then an exception is added.&amp;nbsp; Product&lt;/span> &lt;span style=&quot;mso-bidi-language: HE&quot;>X&#xD;
    was available only for 4 months, so the time period needs to be 4 months for product X.&lt;/span> &lt;span&#xD;
    style=&quot;mso-bidi-language: HE&quot;>Additional qualifiers are added over time.&amp;nbsp; Customers in certain countries are&#xD;
    ineligible. A&lt;/span>&lt;span style=&quot;mso-bidi-language: HE&quot;>&amp;nbsp;customer must be 18 years old.&amp;nbsp; A customer working&#xD;
    for our company or subsidiaries cannot have gold status.&amp;nbsp; And so on.&lt;/span>&#xD;
&lt;/p>&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;span style=&quot;mso-bidi-language: HE&quot;>The variables evaluation:&lt;/span>&#xD;
&lt;/p>&#xD;
&lt;div align=&quot;center&quot;>&#xD;
    &lt;table&#xD;
    style=&quot;BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; BORDER-COLLAPSE: collapse; BORDER-TOP: medium none; BORDER-RIGHT: medium none; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-alt: solid silver 1.0pt; mso-yfti-tbllook: 480; mso-border-insideh: 1.0pt solid silver; mso-border-insidev: 1.0pt solid silver&quot;&#xD;
     class=&quot;ISISTable&quot; border=&quot;1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot;>&#xD;
        &lt;thead>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: -1; mso-yfti-firstrow: yes&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: gray 1pt solid; BORDER-LEFT: gray 1pt solid; PADDING-BOTTOM: 0cm; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BACKGROUND: #f3f3f3; BORDER-TOP: gray 1pt solid; BORDER-RIGHT: gray 1pt solid; PADDING-TOP: 0cm&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p style=&quot;TEXT-ALIGN: center; mso-yfti-cnfc: 1&quot; class=&quot;MsoNormalCxSpMiddle&quot; align=&quot;center&quot;>&#xD;
                        &lt;b style=&quot;mso-bidi-font-weight: normal&quot;>&lt;i style=&quot;mso-bidi-font-style: normal&quot;>&lt;span&#xD;
                        style=&quot;COLOR: #005da0; mso-bidi-language: HE&quot;>&lt;font size=&quot;3&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Variables&lt;/font>&lt;/font>&lt;/span>&lt;/i>&lt;/b>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: gray 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; PADDING-LEFT: 5.4pt; WIDTH: 344.65pt; PADDING-RIGHT: 5.4pt; BACKGROUND: #f3f3f3; BORDER-TOP: gray 1pt solid; BORDER-RIGHT: gray 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid gray 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;460&quot;>&#xD;
                    &lt;p style=&quot;TEXT-ALIGN: center; mso-yfti-cnfc: 1&quot; class=&quot;MsoNormalCxSpMiddle&quot; align=&quot;center&quot;>&#xD;
                        &lt;b style=&quot;mso-bidi-font-weight: normal&quot;>&lt;i style=&quot;mso-bidi-font-style: normal&quot;>&lt;span&#xD;
                        style=&quot;COLOR: #005da0; mso-bidi-language: HE&quot;>&lt;font size=&quot;3&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Evaluation&lt;/font>&lt;/font>&lt;/span>&lt;/i>&lt;/b>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
        &lt;/thead>&#xD;
        &lt;tbody>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 0&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;font face=&quot;Times New Roman&quot;>&lt;span&#xD;
                        style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>Adaptability&lt;/span>&lt;/font>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 344.65pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;460&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Excellent, rule can change quickly and be deployed quickly too&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 1&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;font face=&quot;Times New Roman&quot;>&lt;span&#xD;
                        style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>Transparency&lt;/span>&lt;/font>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 344.65pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;460&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Excellent: by adding meta data to implemented rule we can clearly link rule&#xD;
                        to business strategies and policies&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 2&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;font face=&quot;Times New Roman&quot;>&lt;span&#xD;
                        style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>Auditability&lt;/span>&lt;/font>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 344.65pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;460&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Excellent and most of the rule engine has log mechanism to trace what were&#xD;
                        the rules executed on a given transaction.&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Rule reports are important to the business as part of&#xD;
                        documentation&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 3&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Reusability&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 344.65pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;460&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-language: HE; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Very good if the BRMS use rule repository and the rule analyst designed a&#xD;
                        rule sharing approach&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
            &lt;tr style=&quot;mso-yfti-irow: 4; mso-yfti-lastrow: yes&quot;>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: silver 1pt solid; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 4cm; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;151&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;span style=&quot;FONT-SIZE: 8pt; mso-bidi-font-size: 12.0pt&quot;>&lt;font&#xD;
                        face=&quot;Times New Roman&quot;>Manageability&lt;/font>&lt;/span>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
                &lt;td&#xD;
                style=&quot;BORDER-BOTTOM: silver 1pt solid; BORDER-LEFT: #ece9d8; PADDING-BOTTOM: 0cm; BACKGROUND-COLOR: transparent; PADDING-LEFT: 5.4pt; WIDTH: 344.65pt; PADDING-RIGHT: 5.4pt; BORDER-TOP: #ece9d8; BORDER-RIGHT: silver 1pt solid; PADDING-TOP: 0cm; mso-border-left-alt: solid silver 1.0pt; mso-border-top-alt: solid silver 1.0pt&quot;&#xD;
                 valign=&quot;top&quot; width=&quot;460&quot;>&#xD;
                    &lt;p class=&quot;MsoNormalCxSpMiddle&quot;>&#xD;
                        &lt;font face=&quot;Times New Roman&quot;>&lt;span&#xD;
                        style=&quot;FONT-SIZE: 8pt; mso-bidi-font-family: Arial; mso-bidi-font-size: 10.0pt&quot;>Excellent as rules&#xD;
                        are externalized and managed as a standalone artifact. Rule configuration management is complex,&#xD;
                        and integrity between rule life cycle and rule set versioning is not a simple&#xD;
                        practice.&lt;/span>&lt;/font>&#xD;
                    &lt;/p>&#xD;
                &lt;/td>&#xD;
            &lt;/tr>&#xD;
        &lt;/tbody>&#xD;
    &lt;/table>&#xD;
&lt;/div>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;a>&lt;font color=&quot;#0066B2&quot;>&lt;em>&lt;font size=&quot;3&quot;>Rule in a graphical user interface&lt;/font>&lt;/em>&lt;/font>&lt;/a>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    We will base the integration on the Model-View-Controller (MVC) design pattern. The presentation tier handles the&#xD;
    client interaction by abstracting the low-level protocol details into an event-based mechanism. The view's main&#xD;
    requirement is synchronization with the model so that data displayed to the user is up to date. The controller is&#xD;
    responsible to prepare the data and manage the view flow and content. Delegating the creation of content to a rule&#xD;
    engine is possible but need to be done synchronously.&#xD;
&lt;/p>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    The business rule will be related to control the list of widget the GUI will present. A typical pattern is around&#xD;
    product catalog application or dynamic questionnaire. The rule pattern to control the content looks like:&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm 3pt 36pt&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;i style=&quot;mso-bidi-font-style: normal&quot;>If the selection on this page was &amp;lt;&amp;gt; then add this &amp;lt;&amp;gt; to the model&#xD;
    used in view &amp;lt;&amp;gt;&lt;/i>&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    A rule to control the flow of page looks like&#xD;
&lt;/p>&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm 3pt 36pt&quot; class=&quot;MsoNormal&quot;>&#xD;
    &lt;i style=&quot;mso-bidi-font-style: normal&quot;>If the user visited page &amp;lt;&amp;gt; (and | or page &amp;lt;&amp;gt;) then next page is&#xD;
    &amp;lt;&amp;gt;&lt;/i>&#xD;
&lt;/p>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    Both rules may be enriched with business type decision based on data of the model.&#xD;
&lt;/p>&lt;br style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot; />&#xD;
&lt;br />&#xD;
&lt;p style=&quot;MARGIN: 3pt 0cm&quot; class=&quot;MsoNormal&quot;>&#xD;
    In these pattern it is clear we need to keep the previous context of decision, and events the user created.&lt;span&#xD;
    style=&quot;mso-spacerun: yes&quot;>&amp;nbsp;&lt;/span> So most of the current applications are putting the business rule in the&#xD;
    controller class or in the java script of the view, but it is possible to design the controller to use a rule engine,&#xD;
    as soon as the decision needs to change. This is particularly true for e-commerce web site, where marketing campaign&#xD;
    can quickly be put in place by proposing product or product feature more dynamically.&lt;span&#xD;
    style=&quot;mso-spacerun: yes&quot;>&amp;nbsp;&lt;/span>&#xD;
&lt;/p>&lt;br /></mainDescription>
</org.eclipse.epf.uma:TaskDescription>
