<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<body link="#355491" alink="#4262a1" vlink="#355491" style="background: #e2e2e2; margin: 0; padding: 20px;">

<div>
        <table cellpadding="0" bgcolor="#FFFFFF" border="0" cellspacing="0" style="border: 1px solid #dadada; margin-bottom: 30px; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                <tbody>
                        <tr>

                                <td>

                                        <table border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" style="border: solid 2px #ccc; background: #dadada; width: 100%; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
                                                <tbody>
                                                        <tr>
                                                                <td bgcolor="#000000" valign="middle" height="58px" style="border-bottom: 1px solid #ccc; padding: 20px; -moz-border-radius-topleft: 3px; -moz-border-radius-topright: 3px; -webkit-border-top-right-radius: 5px; -webkit-border-top-left-radius: 5px;">
                                                                        <h1 style="color: #333333; font: bold 22px Arial, Helvetica, sans-serif; margin: 0; display: block !important;">
                                                                        <!-- To have a header image/logo replace the name below with your img tag -->
                                                                        <!-- Email clients will render the images when the message is read so any image -->
                                                                        <!-- must be made available on a public server, so that all recipients can load the image. -->
                                                                        <a href="http://community.jboss.org/index.jspa" style="text-decoration: none; color: #E1E1E1">JBoss Community</a></h1>
                                                                </td>

                                                        </tr>
                                                        <tr>
                                                                <td bgcolor="#FFFFFF" style="font: normal 12px Arial, Helvetica, sans-serif; color:#333333; padding: 20px;  -moz-border-radius-bottomleft: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 5px; -webkit-border-bottom-left-radius: 5px;"><h3 style="margin: 10px 0 5px; font-size: 17px; font-weight: normal;">
    JbpmMeetingTomHeikoJanuary2009
</h3>
<span style="margin-bottom: 10px;">
    modified by <a href="http://community.jboss.org/people/admin">Administrator Administrator</a> in <i>jBPM</i> - <a href="http://community.jboss.org/docs/DOC-13281">View the full document</a>
</span>
<hr style="margin: 20px 0; border: none; background-color: #dadada; height: 1px;">

<div class="jive-rendered-content"><h3>Logging / History [<a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBPM-1994">JBPM-1994</a>]</h3><ul><li>Transactional storage of the history of a process execution (not software logging)</li><li>Do we have a good name for this ?</li><li>Log pluggability is in place</li><li>Basic pluggability infrastructure is in place</li><li>TODO</li><ul><li>HistoryRecords generated during process execution need to be created</li><li>HistoryRecords need to merge themselves into the History DB schema</li><li>Schema for storing history information needs to be build</li><li>Filtering the history storage should be based on features</li><ul><li>We should not place the burden on the users to link log filtering to the features that remain available</li></ul></ul></ul><h3>Database schema</h3><p>Analyse the DB schema</p><p>Compatibility needs to be installed in the project</p><h3><br/>Database schema</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* Analyse the DB schema<br/> * Developmemt process for DB evolution [<a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBPM-1995">JBPM-1995</a>]</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3>Project Structure</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>(add this to developer docs in wiki)</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h4>API package refactoring [<a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBPM-1997">JBPM-1997</a>]</h4><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* api<br/>&#160;&#160; - the public api (client services, client, activity, eventlisteners)<br/>&#160;&#160; - all other modules should have package names that include ..internal..</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* config</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h4>Test suite consolidation [<a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBPM-1996">JBPM-1996</a>]</h4><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* jpdl<br/>&#160;&#160; - parsing jpdl<br/>&#160;&#160; - jpdl activity impl<br/>&#160;&#160; - base jpdl test suite jpdl/src/test/java<br/>&#160;&#160; - base jpdl test suite should be able to access jpdl impl and pvm impl classes</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* examples --&gt; jpdl/src/test/examples<br/>&#160;&#160; - can be merged into jpdl module<br/>&#160;&#160; - works against public api and jpdl<br/>&#160;&#160; - part of test suite<br/>&#160;&#160; - included in docs<br/>&#160;&#160; - examples project in distro<br/>&#160;&#160; - compile time checking on api usage only</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* test-db --&gt; jpdl/src/test/examples/org/jbpm/examples/advanced<br/>&#160;&#160; - can be merged into jpdl module<br/>&#160;&#160; - more elaborate functional testing<br/>&#160;&#160; - works against public api and jpdl<br/>&#160;&#160; - part of test suite<br/>&#160;&#160; - compile time checking on api usage only</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* task ?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3>Task management</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* assignment</p><p>&#160; - distinction between assignable user and groups [<a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBPM-1998">JBPM-1998</a>]</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* context data</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* task definition</p><p>&#160; - add outcomes [<a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBPM-1999">JBPM-1999</a>]</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* process integration<br/>&#160;&#160; - variables<br/>&#160;&#160; - signal execution upon completion</p><p>&#160;&#160; - provide outcome to signal mapping [<a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBPM-1999">JBPM-1999</a>]</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* external presentation<br/>&#160;&#160; - web form [<a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBPM-2000">JBPM-2000</a>]<br/>&#160;&#160; - email<br/>&#160;&#160; - db record</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* reporting<br/>&#160;&#160; - history <a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBPM-1994">JBPM-1994</a><br/>&#160;&#160; - how was the workload in this department last month</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* monitoring<br/>&#160;&#160; - e.g. notify me when the resource alloction in group x goes beyond 80%</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* embedded / standalone</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3>In scope for jBPM 4.0.0.GA</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><strong>jPDL</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* Environments in order of priority (installer, qa, docs)<br/>&#160;&#160;&#160;&#160;&#160;&#160; 1) JBoss 5.0.0<br/>&#160;&#160;&#160;&#160;&#160;&#160; 2) Tomcat latest<br/>&#160;&#160;&#160;&#160;&#160;&#160; 3) JBoss 4.2.3<br/> * Examples and test-db need to run with cactus on the target container<br/> * Local EJB in scope<br/> * Remote EJB out of scope</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><strong>Logging / History</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* Transactional storage of the history of a process execution (not software logging)<br/> * Do we have a good name for this ?<br/> * Log pluggability is in place<br/> * Basic pluggability infrastructure is in place<br/> * TODO<br/>&#160;&#160;&#160; o HistoryRecords generated during process execution need to be created<br/>&#160;&#160;&#160; o HistoryRecords need to merge themselves into the History DB schema<br/>&#160;&#160;&#160; o Schema for storing history information needs to be build</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><strong>Console</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* management<br/> * task management<br/> * process management<br/> * reporting (strategical dashboard)<br/> * monitoring (analythical dashboard)<br/> * roles ?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><strong>Designer</strong><br/> *</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><strong>Scenario 1</strong><br/> * Install distro<br/> * Import examples project (done)<br/> * Execute example test in eclipse (done)<br/> * Create new process definition file with designer wizard (done)<br/>&#160;&#160; * Declare couple of variables<br/>&#160;&#160; * Create 2 human task activities<br/>&#160;&#160;&#160;&#160;&#160; - Generate task form with designer<br/>&#160;&#160;&#160;&#160;&#160; - Using variables declared in the process<br/>&#160;&#160;&#160;&#160;&#160; - Associate task form with task activity<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; (this should be done automatically by using the designer task form generation)<br/>&#160;&#160; * Create esb service activity<br/>&#160;&#160;&#160;&#160;&#160; - ESB is assumed running and having a service<br/>&#160;&#160; * Create Include Java pojo<br/>&#160;&#160;&#160;&#160;&#160; - Write minimal PrintLn activity<br/> * Start AS<br/>&#160;&#160;&#160; - the one you installed jbpm in<br/>&#160;&#160;&#160; - maybe installer can generate start-server.bat script in jbpm instsallation directory ?<br/> * Dynamically deploy process from designer<br/>&#160;&#160;&#160; - might involve defining the process archive package<br/> * In console start the process (with form)<br/> * For each task, <br/>&#160;&#160; - log in as the task user<br/>&#160;&#160; - see task list<br/>&#160;&#160; - navigate to task form<br/>&#160;&#160; - complete task form<br/> * Run through process execution by submitting task forms<br/> * Show reports including this execution</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>optional extension:<br/> * redeploy an update to the process</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><strong>Scenario 2</strong><br/> * Burr's demo<br/> * Existing: 3 Session EJB's with 1 method<br/> * jPDL process orchestrates these 3 methods<br/> * jPDL process gets updated and redeployed<br/> * No redeployment of the ejbs<br/>--&gt; ejb invocation activity</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Variation:</p><p>* show how 2 pojo methods</p><p>* in case you want to execute those asynchronous, show how this can be done with 2 MDBs</p><p>* show how this can be done easily in a process with 2 asynchronous continuations</p><p>* other variations: show how you can implement competing consumers with jpdl</p><p><strong><br/>BPMN</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* api will be PVM based so process language and BPMN neutral<br/>* jPDL will use bpmn terminology on a best effort basis<br/>* jPDL 4 will drive the activity types and we'll select the BPMN <br/>&#160; symbol that matches the jPDL activity type<br/>* the BPMN interpretation of the notational element that we pick must <br/>&#160; match exactly with the jpdl element.&#160; if not, we need to clearly indicate<br/>&#160; grafically that notation is jPDL specific<br/>* we'll also go over the most common BPMN elements and see if we <br/>&#160; can come up with meaningfull jPDL for all the elements.</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><strong>Task Management</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* basic task model</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>- task activity creates task when execution arrives.<br/> - tasks can have a map of variables<br/> - upon creations, optionally data is passed from the execution into the task scope<br/> - users can complete tasks and provide data optionally<br/> - a special piece of information that can be supplied with the task completion is the outcome<br/> - the potential outcomes are stored in task definition<br/> - the task activity will implement the task definition interface<br/> - upon completion of a task, the execution signal and parameters need to be provided<br/> - by default, the outcome will map to the signal and hence bind to the outgoing transition<br/> - task data will be stored as process variables, same techniques apply as the process variable scoping<br/> - a TaskHandler interface will have methods for all task-processexecution integration<br/>&#160;&#160;&#160;&#160; createTask(Execution)<br/>&#160;&#160;&#160;&#160; taskCompleted(Task)<br/> - The default task handler will use the task outcome as the signal that is given on the execution.<br/> - Custom task handlers can be specified to overwrite this default behaviour</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* assignment</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* sub tasks<br/>&#160;&#160; - dynamic<br/>&#160;&#160; - for grouping (3 out of 5) (with a certain outcome ?)</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3>Roadmap</h3><p><br/><strong>jBPM 4.0.0.Alpha2 (March 1st)</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* identity spi [<a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBPM-1860">JBPM-1860</a>]<br/> * integrate identity component [<a class="jive-link-external-small" href="https://jira.jboss.org/jira/browse/JBPM-1993">JBPM-1993</a>] <br/> * introduce distinction between users and groups<br/> * process definition attachments<br/> * review console dao and compare with current process and execution service<br/> * variable declaration in jpdl<br/> * task form url and form type property (explain to heiko for review)</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* installer with profiles for all target containers<br/> * introduce console (process management)</p><p><strong><br/></strong></p><p><strong>jBPM 4.0.0.Beta1 (April 1st)</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* get facelets generation work in jbpm 4 (beginning of iteration so that heiko could include this later in this iteration)<br/>&#160;&#160; no designer support yet<br/> * alternative form generation can be prototyped</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>* define process archive packaging strategy<br/> * define how to deploy process archives on the target containers<br/> * task management and task forms<br/>&#160;&#160;&#160; - starting a process<br/>&#160;&#160;&#160;&#160;&#160;&#160; - associated to process definition<br/>&#160;&#160;&#160;&#160;&#160;&#160; - authorization ?<br/>&#160;&#160;&#160; - perform a task in the middle of the process<br/>&#160;&#160;&#160;&#160;&#160;&#160; - associated to task list<br/>&#160;&#160;&#160; - task assignment</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p><strong>jBPM 4.0.0.Beta2 (May 1st)</strong></p><p><strong><br/></strong></p><p><strong>jBPM 4.0.0.CR1 (June 1st)</strong></p><p><strong><br/></strong></p><p><strong>jBPM 4.0.0.GA (July 1st)</strong></p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3>Ideas for jBPM 4 after GA</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>1) Migration Aspects<br/> * DB schema<br/> * jPDL process files<br/> * custom activities<br/> * user components using <br/>&#160;&#160;&#160; - client api<br/>&#160;&#160;&#160; - db schema<br/>&#160;&#160;&#160; - hibernate api / hql<br/> * select 1 or 2 key customers and assist them with migration<br/>&#160;&#160;&#160; - leverage that knowledge in building migration<br/> * set up infrastructure to capture knowledge that we build up: wiki page ?<br/> * This effort can be started as of CR earliest<br/> * Not a requirement to release 4.0.0.GA</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>2) Spring support<br/>Task for a new hire ?</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>3) Logging / History<br/>Filtering the history storage should be based on features<br/>We should not place the burden on the users to link log filtering to the features that remain available</p><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><h3>Links/Resources</h3><p style="min-height: 8pt; height: 8pt; padding: 0px;">&#160;</p><p>Work 2.0 Peter Fingar<br/>Orbeon<br/>NetKernel<br/>OrganisationalManagement (Meuhlen)<br/><a class="jive-link-external-small" href="http://in.relation.to/service/File/2994" target="_blank">http://in.relation.to/service/File/2994</a></p></div>

<div style="background-color: #f4f4f4; padding: 10px; margin-top: 20px;">
    <p style="margin: 0;">Comment by <a href="http://community.jboss.org/docs/DOC-13281">going to Community</a></p>

        <p style="margin: 0;">Create a new document in jBPM at <a href="http://community.jboss.org/choose-container!input.jspa?contentType=102&containerType=14&container=2034">Community</a></p>
</div></td>
                        </tr>
                    </tbody>
                </table>


                </td>
            </tr>
        </tbody>
    </table>

</div>

</body>
</html>