PipelineEngine
Description
En BBj 16.0 o superior, el framework BBSJP provee un procesador de flujo de trabajo que ejecuta uno o más componentes u objetos BBjspPipelineStage.
Estos objetos se ejecutan en secuencia para ejecutar alguna tarea compleja de negocio y cada componente puede causar una bifurcación a otros componentes en el pipeline (tubería).
Los Pipelines controlan el proceso de negocio que se ejecuta del lado del servidor cuando el usuario interactúa con el sitio. Cada elemento en el pipeline se ejecuta secuencialmente y dependiendo del resultado de la ejecución, el mecanismo de control bifurcarpa a la siguiente etapa más apropiada en el pipeline. Un Pipeline se puede ejecutar desde un BBjspCommand o Page. Un Pipeline no tiene acceso a los datos de BBjspWebSession, pero tiene acceso al objeto BBjspSessionData.
Cada etapa del pipeline se ejecuta antes que el pipeline se mueva a la siguiente etapa. Una etapa puede bifurcar dentro del pipeline, A stage can branch within the pipeline, es decir que puede pasar a una etapa específica.
¿Qué es un Pipeline?
Un pipeline es un set de programas BBj, llamados etapas, que se definen en un archivo de configuración XML. Los Pipelines trabajan dentro de un BBjspSessionData el cual es accesible en tu aplicación web. Cada etapa recupera los datos de sesión, ejecuta alguna lógica de negocios para modificar/validar los datos y sale. Después de cada etapa, el motor de pipeline mueve a la siguiente etapa en el pipeline a menos que una condición de bifuración se detecte, y el pipeline determine el salto a otra etapa.
Código
Los componentes Pipeline o etapas son programas BBj los cuales son ejecutados por el framework BBJSP cuando se requiere. Solo basta que sean declarados:
METHOD PUBLIC BBjString execute (BBjspSessionData)
y retorna un resultado, el cual el framework usará para decidir cómo proceder
Una etapa de Pipeline stages:
interactúa con la BBjspSession
retorna un BBjString que contiene un resultado significativo
Deje que el framework BBJSP haga el resto
Configurar
La configuración de Pipeline configuration is through an XML file that defined each of the stage components and identified the possible outcomes which will dictate what acrtion needs to follow
You might want to use a pipeline in a web-store and the payment process may need to have a set of stages similar to this:
RESERVE - reserves the stock
AUTHORIZE - authorize the credit-card payment
FAIL - release the stock
SUCCESS - allocate stock for shipping
There may be many more stages in that process but by breaking the process into small chunks you can easily build a reusable code-base.
Ejecutar
The BBJSP framework will handle all the decision making for you, each of the stages is executed and following the rules defined in the configuration file the execution flows through the appropriate staged.
What about BBjspSession?
Rather like a BBjHttpSession, the BBjspSessionData is used to store data related to the current user. Unlike the BBjHttpSession however, the BBjspSessionData persists across multiple visits to your site so if a user goes away from their browser and returns 31 minutes later, any data stores in the BBjHttpSession will be reset but data in the BBjspSessionData session will remain.