Archivo

Entradas Etiquetadas ‘Aalst’

jBpm y los patrones de la abuela (o de Aalst)

Lunes, 6 de Octubre de 2008

Siguiendo con el tema de los patrones de workflows de Aalst,
aquí os dejo el primero implementado en jbpm:

Pattern 1 (Sequence)

_______________________________________________________________________

<process-definition
xmlns=”urn:jbpm.org:jpdl-3.1″
name=”simple”>
<start-state name=”start”>
<transition name=”to_state” to=”first”>
<action name=”action” class=”com.sample.action.MessageActionHandler”>
<message>Going to the first state!</message>
</action>
</transition>
</start-state>
<state name=”first”>
<transition name=”to_end” to=”end”>
<action name=”action” class=”com.sample.action.MessageActionHandler”>
<message>About to finish!</message>
</action>
</transition>
</state>
<end-state name=”end”></end-state>
</process-definition>

_______________________________________________________________________

public class SimpleProcessTest extends TestCase {

// Pattern 1:Sequence

public void testSimpleProcess() throws Exception {

FileInputStream fis = new FileInputStream(“processes/simple/processdefinition.xml“);
ProcessDefinition processDefinition = ProcessDefinition.parseXmlInputStream(fis);

processInstance instance = new ProcessInstance(processDefinition);
assertEquals(“start state”,instance.getRootToken().getNode().getName(), “start”);

instance.signal();
assertEquals(“first state”,instance.getRootToken().getNode().getName(), “first”);

instance.signal();
assertEquals(“Instance is in end state”,instance.getRootToken().getNode().getName(), “end”);
assertTrue(“Instance has ended”, instance.hasEnded());
}
}

Categories: Workflows, jBPM Tags: , , ,

Los patrones de la abuela…

Miércoles, 14 de Mayo de 2008

En el mundo de los Workflows son vitales los patrones, y en el mundo de los patrones de Workflows , Van der Aalst es el Dios.

Para explicar por que son importantes los patrones, os redirecciono a una publicación de Rodrigo Corral en su blog que lo explica como nadie.

Arquitectos y modistas

Aalst clasifica los patrones en cuatro grandes ramas:

  • Data Patterns : Estos patrones representan los posibles métodos de intercambio de datos entre los procesos
  • Resource Patterns : Estos patrones representan la manera en la cual las fuentes (resources) externas deben ser dirigidos.
  • Control-Flow Patterns : Estos patrones representan los posibles flujos en un workflow.
  • Exception Handling Patterns : Estos partones representan las diferentes formas de manejar posibles excepciones.

Y para cada uno de ellos tiene su bonito artículo publicado :

  • Workflow Data Patterns
  • Workflow Resource Patterns
  • Workflow Control-Flow Patterns, a revised view
  • Exception Handling Patterns in Process-Aware Information Systems

Para mas información podeis ir a la página web del mismo Aalst

Categories: Workflows Tags: , ,