Gestión del ciclo de vida y el comportamiento de las versiones de los subprocesos

Un proceso iniciado por otro proceso es conocido como un subproceso. La manera en que puede gestionarse el ciclo de vida de los subprocesos y el comportamiento de sus versiones depende de cómo están modelados estos procesos.

A fines de modularidad y reutilización, a menudo es razonable aplicar el concepto de programación de encapsulación al modelado de procesos de empresa, es decir, implementar uno o varios pasos de la lógica empresarial como un proceso diferenciado e invocar dicho proceso desde el proceso principal. Además, un subproceso puede iniciar otro proceso. Esto puede conducir una jerarquía de profundidad arbitraria de instancias de proceso. Cuando se despliegan estos procesos, todas las plantillas de proceso de la relación de proceso a proceso deben desplegarse en la misma base de datos de Business Process Choreographer.

Gestión del ciclo de vida

Un subproceso puede tener una relación de igual a igual o una relación de padre a hijo con el proceso que llama. Esta relación determina el comportamiento de un subproceso cuando se invoca una acción que gestiona el ciclo de vida para el proceso que llama. Las acciones de ciclo de vida abarcan la suspensión, reanudación, terminación, supresión y compensación. Las acciones que gestionan el ciclo de vida del proceso sólo pueden realizarse en instancias de proceso de nivel superior.

La relación entre el proceso que llama y el subproceso viene determinada por el atributo autonomy del subproceso. Este atributo puede tener uno de los valores siguientes:
Peer
Un proceso de igual se considera un proceso de nivel superior. Un proceso de nivel superior es una instancia de proceso que no ha sido invocada por otra instancia de proceso, o sí lo ha sido pero tiene autonomía de igual. Si el subproceso forma parte de una relación de igual a igual, las acciones de ciclo de vida en la instancia de proceso que llama no se aplican a la instancia de subproceso.

No obstante, para los procesos de larga duración con una operación de creación que implementa una interfaz unidireccional, el valor del atributo autonomy se establece automáticamente en peer durante la ejecución. Si el atributo autonomy se establece en child, este valor se pasará por alto durante la ejecución.

Child
Si el subproceso forma parte de una relación de padre a hijo, las acciones de ciclo de vida en la instancia de proceso padre se aplican a la instancia de subproceso. Por ejemplo, si la instancia de proceso padre se suspende, todas las instancias de subproceso con autonomía de hijo se suspenden también.

Un microflujo siempre se ejecuta como un proceso hijo. No obstante, si hay otro componente entre los dos procesos, puede evitar que se establezca una relación de padre a hijo, por ejemplo, un componente de correlación de interfaz que está conectado entre los dos componentes de proceso.

Comportamiento de versiones

La versión de un proceso que se utiliza viene determinada por si el proceso se utiliza en un escenario de enlace temprano o de enlace tardío.
Enlace temprano
En un escenario de enlace temprano, la decisión sobre la versión del subproceso que debe invocarse se realiza durante el despliegue. El proceso de llamada invoca un subproceso dedicado, enlazado estadísticamente, en función del cableado SCA (Service Component Architecture). Se pasa por alto la versión del proceso.

Un ejemplo de enlace temprano es un cable SCA. Por ejemplo, si conecta una referencia autónoma a un componente de proceso, todas las invocaciones del proceso que utilicen esta referencia se direccionan a la versión específica representada por el componente de proceso.

Enlace tardío
En un escenario de enlace tardío, la decisión sobre la que se invoca la plantilla de subproceso se produce cuando la instancia de proceso que llama tiene que invocar el subproceso. En este caso, se utiliza la versión del subproceso que es válida actualmente. Una versión más reciente de un proceso reemplaza a todas las versiones anteriores del proceso. Las instancias de proceso existentes se siguen ejecutando con la plantilla de proceso con la que estaban asociadas cuando se iniciaron. Esto conduce a las siguientes categorías de plantillas de proceso:
  • Las plantillas de proceso que ya no son actuales todavía pueden ser válidas para instancias de proceso de larga duración existentes
  • Las plantillas de proceso actuales se utilizan para instancias de proceso nuevas
  • Las plantillas de proceso que se vuelven válidas en el futuro en función de su fecha y hora de inicio de validez.

Para aplicar el enlace tardío cuando se invoca un subproceso, el proceso padre debe especificar el nombre de la plantilla de subproceso desde la que debe elegirse el subproceso válido en el socio de referencia. El atributo de inicio de validez del proceso se utiliza para determinar la plantilla de subproceso que es válida actualmente. Se pasa por alto el cableado SCA.

Un ejemplo de enlace tardío es cuando se invoca un nuevo proceso en el Explorador de Business Process Choreographer. La instancia que se crea se basa siempre en la versión más reciente de la plantilla de proceso con una fecha de inicio de validez que no sea futura.

Cuando se crea una versión nueva de un modelo de proceso y el modelo de proceso existente se utiliza en escenarios de enlace tardío, debe evitar realizar cambios que causen problemas de compatibilidad cuando la nueva versión del proceso pase a ser válida y, por ejemplo, un proceso padre invoque una instancia de la nueva versión del subproceso. A continuación se muestran cambios incompatibles que debe evitar:
  • Modificación de los conjuntos de correlaciones
  • Cambio de cualquier interfaz que utilice el proceso padre para comunicarse con el subproceso

Condiciones de uso |


(c) Copyright IBM Corporation 2005, 2006.
Este centro de información está basado en tecnología Eclipse (http://www.eclipse.org)