Administración y configuración


Red Hat JBoss BPM Suite 6.1

La Guía de administración y configuración para Red Hat JBoss BPM Suite

Kanchan Desai

Doug Hoffman

Eva Kopalova

Red Hat Content Services

Gemma Sheldon

Red Hat Engineering Content Services

Joshua Wulf

Resumen

Una guía para administradores y usuarios avanzados que se ocupan de la instalación, configuración y uso avanzado de Red Hat JBoss BPM Suite.

Parte I. Introducción

Capítulo 1. Modelo de procesos empresariales y notación

BPMN del inglés Business Process Model and Notation es una notación estándar para el modelado de procesos empresariales. Aspira a cerrar la brecha entre analistas empresariales y programadores brindando un lenguaje de flujo de trabajo claro para ambas partes.

1.1. Componentes

Red Hat JBoss BPM Suite integra múltiples componentes para soportar procesos empresariales a través de todo su ciclo de vida y para brindar funcionalidades de administración de procesos y herramientas para analistas empresariales, desarrolladores y usuarios empresariales. El producto se puede implementar en varios servidores que cumplen con los requerimientos de JEE; la opción recomendada es Red Hat JBoss Enterprise Application Platform 6.
Red Hat JBoss BPM Suite consiste de los siguientes componentes principales:
  • Execution Engine - proporciona el entorno en tiempo de ejecución para procesos y reglas empresariales. Comprende una biblioteca de flujo de trabajo que se puede incluir en una aplicación web de usuario. El gestor del tiempo de ejecución es el objeto raíz y contiene los siguientes componentes:
    • Runtime Engine - implementa el comportamiento esencial del lenguaje informático y es proporcionado por el gestor del tiempo de ejecución.
      • Process Engine - es el entorno para la ejecución del modelo de procesos empresariales.
      • Task Service - maneja los ciclos de vida de las tareas humanas.
    • Rule Engine - se puede utilizar con la máquina de procesos o sola.
      • Rules Evaluation - ejecuta reglas empresariales en el grupo de hechos proporcionados.
      • Complex Event Processing - aplica reglas empresariales en un flujo de eventos entrante.
  • Business Central - una aplicación basada en la red que accomoda herramientas para la creación de activos, administración y monitoreamiento proporcionando un entorno web integrado.
    • Asset Repository - es la ubicación central para compartir (Almacén de conocimiento) para activos empresariales, procesos, reglas, formularios, etc. Los usuarios acceden a este repositorio por medio de la vista del Explorador de proyectos de la Central empresarial a través de AutoríaAutoría de proyectos. Por defecto, el producto inicia un repositorio GIT local como su Repositorio de activos. Sin embargo se pueden agregar o borrar otros repositorios cuando sea necesario.
    • Artifact Repository - es un repositorio basado en Maven para el almacenamiento de artefactos jar de proyectos.
    • Execution Server - proporciona un entorno de ejecución para instancias de procesos empresariales y tareas.
    • Business Activity Monitor - proporciona una vista personalizada sobre el rendimiento empresarial.

Nota

Red Hat JBoss BRMS viene junto con su propia aplicación Central empresarial que es un subgrupo de la aplicación Central empresarial en Red Hat JBoss BPM Suite.

1.2. Proyecto

Un proyecto es un contenedor para paquetes de activos (procesos empresariales, reglas, definiciones de trabajo, tablas de decisiones, modelos de hechos, modelos de datos y DSLs) que viven en el Repositorio de conocimiento. Es este contenedor el que define las propiedades de KIE Base y KIE Session que se aplican a su contenido. En la interfaz gráfica de usuario puede modificar estas entidades en el Editor de proyectos.
Como un proyecto es un proyecto Maven, contiene el archivo Modelo de objetos del proyecto (pom.xml) con información sobre cómo construir el artefacto de salida. También contiene el archivo Descriptor de módulos, kmodule.xml, que contiene la configuración KIE Base y KIE Session para los activos en el proyecto.

1.3. Creación de un proyecto

Para crear un proyecto haga lo siguiente:
  1. Abra la perspectiva Autoría de proyectos: en el menú principal haga clic en AutoríaAutoría de proyectos.
  2. En el Explorador de proyectos seleccione la unidad organizacional y el repositorio en donde quiere crear el proyecto.
  3. En el menú de perspectivas vaya a Nuevo objetoProyecto.
  4. En la ventana Crear nuevo proyecto defina los detalles del proyecto:
    1. En el campo de texto Project ingrese el nombre del proyecto.
  5. El explorador actualiza para mostrar una ventana emergente del Asistente de proyecto nuevo.
  6. Defina los detalles sobre Configuración general del proyecto y Versión del artefacto del grupo para este nuevo proyecto. Estos parámetros están almacenados dentro del archivo de configuración Maven pom.xml.
    • Nombre del proyecto: el nombre para el proyecto; por ejemplo ProyectoHipoteca
    • Descripción del proyecto: la descripción del proyecto, la cual puede ser útil para propósitos de documentación del proyecto.
    • ID del grupo: id del grupo del proyecto; por ejemplo org.micompañia.commons
    • Id de artefacto: id único del artefacto en el grupo; por ejemplo mimarcodetrabajo. Evite utilizar caracteres especiales que puedan generar un nombre inválido.
    • Id de la versión: versión del proyecto; por ejemplo 2.1.1
    La vista Pantalla del proyecto se actualiza con los detalles del nuevo proyecto tal como se define en el archivo pom.xml. Note que puede cambiar entre archivos descriptores de proyectos en el menú desplegable con Configuración de proyectos y Configuración de la base de conocimiento y modifique su contenido.

1.4. Agregar dependencias

Para agregar dependencias a su proyecto haga lo siguiente:
  1. Abra el Editor de proyectos para el proyecto dado:
    1. En la vista Explorador de proyectos de la perspectiva Autoría de proyectos abra el directorio del proyecto.
    2. Haga clic en el botón para abrir la vista del proyecto.
  2. En la vista Pantalla de proyectos, seleccione en la caja desplegable Parámetros del proyecto el ítem Dependencias.
  3. En la Pantalla de proyectos, haga clic en el botón Agregar para adicionar una dependencia Maven o haga clic en el botón Agregar desde repositorio para adicionar una dependencia del almacén de conocimientos (Repositorio de artefactos):
    • Al agregar una dependencia Maven, un usuario debe definir el ID de grupo, el Id de artefacto y el ID de versión en la nueva hilera creada en la tabla de dependencia.
    • Al agregar una dependencia desde el Almacén de conocimientos, seleccione la dependencia en el cuadro de diálogo: la dependencia será agregada a la tabla de dependencias.
  4. Para aplicar los diferentes cambios, las dependencias deben estar guardadas.

Aviso

Si trabaja con artefactos modificados, no vuelva a cargar los artefactos que no están ligados a las instantáneas modificadas, ya que Maven no sabe que estos artefactos han sido actualizados y no funcionará si se implementa de esta forma.

Parte II. Configuración

Capítulo 2. Configuración de la Central empresarial

Una Central empresarial es una aplicación web, los parámetros de configuración se cargan desde DEPLOY_DIRECTORY/business-central.war/WEB-INF/web.xml y los archivos relacionados, y si se implementa en Red Hat JBoss EAP 6, también en jboss-web.xml y jboss-deployment-structure.xml.
Observe que toda la aplicación puede ejecutarse en diferentes perfiles (consulte la Red Hat JBoss BPM Suite Installation Guide).

2.1. Control de acceso

El mecanismo de control de acceso incluye autorización y autenticación. En el entorno unificado de Red Hat JBoss BPM Suite, los usuarios pueden actualizar los roles de usuario predeterminados ubicados dentro de $JBOSS_HOME/standalone/deployments/business-central.war/WEB-INF/classes/userinfo.properties.
Para otorgar acceso de usuario a JBoss BPM Suite, el usuario debe tener el respectivo rol asignado:
  • admin: administra el sistema JBoss BPM Suite y tiene todos los derechos para hacer cambios, incluida la habilidad de agregar y retirar usuarios del sistema.
  • desarrollador: implementa el código requerido para el funcionamiento de procesos y tiene acceso a todo a excepción de tareas administrativas.
  • analista: crea y diseña procesos y formas, inicia los procesos e implementa artefactos. Este rol es similar al del desarrollador, sin acceso a repositorios ni implementaciones.
  • usuario: reclama, realiza e invoca acciones, (tales como, escalamiento, rechazo, etc.) sobre las tareas asignadas y no tiene acceso a las funciones de autoría.
  • mánager: monitoriza el sistema y sus estadísticas y únicamente tiene acceso al panel.
  • usuario empresarial: toma acción sobre tareas empresariales que se requieren para que los procesos avancen. Funciona principalmente con una lista de tareas.
Si utiliza Red Hat JBoss EAP para crear un usuario con roles específicos, ejecute el script $JBOSS_HOME/add-user.sh y cree un usuario de aplicación en el Reino de aplicaciones con sus roles respectivos.

Configuración de Workbench

Dentro de Red Hat JBoss BPM Suite, los usuarios pueden establecer roles mediante LDAP para modificar roles existentes. Los usuarios pueden modificar los roles en la configuración Workbench para garantizar los únicos roles basados en LDAP conforme a los estándares empresariales al editar el directorio de implementaciones localizado en $JBOSS_HOME/standalone/deployments/business-central.war/WEB-INF/classes/workbench-policy.propeties.
Para autenticar el usuario vía LDAP a través de GIT, los administradores deben definir la propiedad del sistema org.uberfire.domain en el nombre del módulo de inicio de sesión que debe usar para autenticar los usuarios a través del servicio GIT. Esta propiedad debe definirse en el archivo standalone.xml.

Autenticación en tareas humanas

Cada tarea asignada que debe ser ejecutada se asigna a uno o múltiples roles o grupos, para que cualquier usuario con un determinado rol o grupo asignado pueda reclamar la instancia de tareas y ejecutarla. Las tareas también pueden asignarse directamente a uno o múltiples usuarios. JBoss BPM Suite usa la interfaz UserGroupCallback para asignar tareas a usuarios.

Aviso

Un grupo para tareas humanas no debe denominarse con el mismo nombre de un usuario existente del sistema. Esta acción ocasionaría problemas intermitentes.

2.2. Configuración del perfil de la Central empresarial

El servidor Red Hat JBoss BPM Suite 6 (o superior) es capaz de iniciar la aplicación de Central empresarial en tres modos diferentes:
  • Perfil total - el perfil predeterminado que se activa sin requerir ninguna configuración adicional (Servicios remotos de interfaz de usuario, p.ej., REST).
  • Perfil del servidor de ejecución - inhabilita completamente los componentes de interfaz de usuario de la aplicación y permite únicamente acceso remoto. p.ej., la interfaz REST.
  • Perfil de servidor de interfaz de usuario - inhabilita servicios remotos, p.ej., REST y permite únicamente acceso de interfaz de usuario para la aplicación.
Para cambiar el perfil siga los siguientes pasos de configuración:

Procedimiento 2.1. Configuración de perfiles de la Central empresarial

  1. Seleccione el web.xml deseado dentro de $BPMS_HOME/standalone/deployments/business-central.war/WEB-INF/. Se proporcionan los siguientes archivos.
    • web.xml (predeterminado) para perfil total
    • web-exec-server.xml para perfil de servidor de ejecución
    • web-ui-server.xml para perfil de servidor de interfaz de usuario
  2. Para activar un perfil diferente al perfil completo predeterminado, se debe renombrar el archivo web-<PROFILE>.xml como web.xml. Los siguientes pasos demuestran una forma de posibilitar la ejecución del perfil de servidor:
    1. Haga una copia de seguridad del archivo web.xml del perfil total
      $ mv web.xml web-full.xml
      Copy to Clipboard Toggle word wrap
    2. Renombre el archivo web-exec-server.xml:
      $ mv web-exec-server.xml web.xml
      Copy to Clipboard Toggle word wrap
  3. Inicie el servidor de aplicaciones con la propiedad de sistema adicional para instruir al gestor de perfiles para que active el perfil provisto-
    • Dorg.kie.active.profile=full - para activar perfil total o ignorar la propiedad por completo
    • Dorg.kie.active.profile=exec-server - para activar el perfil de servidor de ejecución
    • Dorg.kie.active.profile=ui-server - para activar el perfil de servidor de interfaz de usuario

2.3. Personalización de la aplicación Central empresarial

La aplicación web Central empresarial, le permite sustituir algunos de los estilos de diseño predeterminados para personalizar la apariencia. La posibilidad de personalizar la imagen de Central empresarial le permite obtener una apariencia consistente a través de todas sus aplicaciones. Cada equipo puede desarrollar su propia interfaz de usuario personalizada. Los elementos personalizables se construyen mediante hojas en estilo de cascada (CSS), imágenes y archivos HTML que proporcionan un enfoque fácil y flexible para personalizar sin necesidad de recopilar el código.
Puede modificar los siguientes elementos en la aplicación de Central Empresarial para que esté en línea con la imagen de su compañía:
  • Pantalla de inicio de sesión
    Puede personalizar los siguientes atributos de la pantalla de inicio de sesión de Central empresarial:
    • La imagen de fondo
    • El logotipo de la compañía
    • El logotipo de la aplicación
  • Encabezamiento de la aplicación
    Puede personalizar los siguientes atributos del encabezamiento de la aplicación de Central empresarial:
    • El encabezamiento de Central empresarial que contiene el título y el logotipo
  • Ventanas emergentes de ayuda
    Puede personalizar los siguientes atributos de las ventanas emergentes de ayuda de la pantalla de inicio
    • Imágenes de ayuda de la pantalla de inicio
    • El texto de la etiqueta

Procedimiento 2.2. Cambo de imagen del fondo de la página de inicio de sesión de Central empresarial

  1. Inicie el servidor EAP y abra http://localhost:8080/business-central en el navegador.
  2. Copie la nueva imagen de fondo en el directorio $EAP_HOME/standalone/deployments/business-central.war/images en su instalación JBoss BPM Suite.
  3. Navegue en el directorio $EAP_HOME/standalone/deployments/business-central.war/styles y abra el archivo login-screen.css en un editor.
  4. En el archivo login-screen.css, proporcione el sitio de la nueva imagen de fondo en el siguientes atributo background-image.
    background-image: url("../images/login-screen-background.jpg");
    Copy to Clipboard Toggle word wrap
    El atributo background-image apunta a la imagen predeterminada login-screen-background.jpg.
    Además de la imagen de fondo, usted puede modificar otros atributos tales como el tamaño de la imagen , la posición y el color del fondo en el archivo login-screen.css .
Recargue la página de Central empresarial para ver sus cambios.

Procedimiento 2.3. Cambio del logotipo de la compañía y el logotipo del proyecto de la página de inicio en la Central empresarial

  1. Inicie el servidor EAP y abra http://localhost:8080/business-central en el navegador.
  2. Vaya al directorio $EAP_HOME/standalone/deployments/business-central.war/images en su instalación JBoss BPM Suite.
  3. Remplace la imagen predeterminada login-screen-logo.png por una nueva. Este es el logotipo de la compañía que aparece en la esquina superior derecha de la página de inicio.
  4. Remplace la imagen predeterminada RH_JBoss_BPMS_Logo.pngRH_JBoss_BRMS_Logo.png por una nueva. Este es el logotipo del proyecto que aparece en la parte central izquierda de la página de inicio.
Recargue la página de Central empresarial para ver sus cambios.

2.3.2. Personalización del encabezamiento de Central empresarial

Procedimiento 2.4. Cambio del encabezamiento de la aplicación de Central empresarial

  1. Inicie el servidor EAP y abra http://localhost:8080/business-central en el navegador.
  2. Ingrese con sus credenciales a la aplicación de Central empresarial
  3. Copie la imagen de encabezamiento de la nueva aplicación al directorio $EAP_HOME/standalone/deployments/business-central.war/banner en su instalación JBoss BPM Suite.
  4. Abra el archivo $EAP_HOME/standalone/deployments/business-central.war/banner/banner.html en el editor de texto.
  5. En el archivo banner.html, modifique la siguiente etiqueta <img> para proporcionar el nombre de su nueva imagen de encabezamiento:
    <img src="banner/logo.png"/>
    Copy to Clipboard Toggle word wrap
    La imagen predeterminada es logo.png.
Recargue la página principal de Central empresarial para ver sus cambios.
El directorio $EAP_HOME/standalone/deployments/business-central.war/plugins contiene las páginas de pantallas de inicio y los archivos html correspondientes. Cada página de pantalla de inicio tiene el nombre de un archivo html, el cual contiene información sobre las imágenes y el texto que va a ser desplegado. Por ejemplo, la página de la pantalla de inicio authoring_perspective.splash.js apunta al archivo authoring_perspective.splash.html. El archivo authoring_perspective.splash.html contiene los nombres y ubicación de todas las imágenes que aparecen en la ayuda de inicio de la Perspectiva de autoría y también sus subtítulos. Usted puede personalizar las imágenes y los subtítulos correspondientes de las ventanas emergentes de la página de ayuda de la pantalla de inicio.

Procedimiento 2.5. Cambio de las imágenes y subtítulos emergentes de la página de ayuda de Central empresarial

  1. Inicie el servidor EAP y abra http://localhost:8080/business-central en el navegador.
  2. Ingrese con sus credenciales a la aplicación de Central empresarial
  3. Copie su nueva imagen o imágenes de la página de inicio en en directorio $EAP_HOME/standalone/deployments/business-central.war/images en su instalación JBoss BPM Suite.
  4. Abra en un editor de texto el archivo html correspondiente del directorio $EAP_HOME/standalone/deployments/business-central.war/plugins.
  5. Modifique el archivo html para apuntar a su nueva imagen de ayuda de página de inicio. Por ejemplo, para cambiar la primera imagen que aparece en la ayuda de inicio de la Perspectiva de autoría, modifique la etiqueta <img> en el archivo authoring_perspective.splash.html para agregar su nueva imagen:
    <img src="images/authoring_perspective1.png" alt="">
    Copy to Clipboard Toggle word wrap
    La imagen predeterminada es authoring_perspective1.png, la cual aparece en la primera página de la ayuda de inicio de Perspectiva de autoría.
  6. Para cambiar el subtítulo de la imagen que aparece en la ayuda de inicio, modifique el contenido de las etiquetas <h4> y <p> por debajo de la etiqueta <img>:
    <h4>Authoring</h4>
    <p>Modularized and customizable workbench</p>
    Copy to Clipboard Toggle word wrap
Recargue la página principal de Central empresarial y acceda a las ventanas emergentes de la ayuda de inicio para ver sus cambios.

2.4. Descriptores de implementación

Los procesos y reglas dentro de Red Hat JBoss BPM Suite 6 y posterior son almacenados en Apache Maven con base en paquetes y se conocen como los archivos de conocimiento o kjar. Las reglas, los procesos y activos, hacen parte del archivo jar y son administrados por Maven. A fin de definir las bases de conocimientos y las sesiones, se puede utilizar un archivo dentro del directorio META-INF del kjar denominado kmodule.xml. Este archivo kmodule.xml está vacío por defecto.
Siempre que un componente como Central empresarial esté a punto de procesar el kjar, buscará kmodule.xml para construir la representación del tiempo de ejecución.
Descriptores de implementaciones, una nueva funcionalidad introducida en 6.1 de Red Hat JBoss BPM Suite, la cual le permite un control detallado sobre su implementación y complementa el archivo kmodule.xml. La presencia de estos descriptores es opcional y su implementación proseguirá sin ellos. Las propiedades que pueden establecerse mediante estos descriptores son únicamente de naturaleza técnica e incluyen metavalores de estrategia de tiempo de ejecución, la auditoría y la persistencia.
Estos descriptores le permiten configurar el servidor de ejecución en múltiples niveles (nivel de servidor predeterminado, descriptor de implementación diferente por kjar y así sucesivamente). Esta acción le permite hacer ajustes sencillos a la configuración lista para utilizar del servidor de ejecución (en lo posible por kjar).
Defina los descriptores en un archivo llamado kie-deployment-descriptor.xml y colóquelo cerca de su archivo kmodule.xml en su carpeta META-INF. Puede cambiar esta ubicación predeterminada (y el nombre de archivo) al especificarlo como un parámetro de sistema:
-Dorg.kie.deployment.desc.location=file:/path/to/file/company-deployment-descriptor.xml
Copy to Clipboard Toggle word wrap

2.4.1. Configuración del descriptor de implementación

Los descriptores de implementación permiten al usuario configurar el servidor de ejecución en múltiples niveles:
  • nivel de servidor: el nivel principal y el que aplica a todos los kjars implementados en el servidor.
  • Nivel kjar: le permite configurar descriptores sobre la base de un kjar.
  • nivel de tiempo de implementación: descriptores que aplican durante la implementación de kjar.
Los elementos de configuración de grano fino especificados por los descriptores de implementación tienen prioridad sobre los niveles de servidor, salvo en caso de elementos de configuración que se basan en colección, los cuales se fusionan. La jerarquía funciona como esto: configuración de tiempo de implementación > configuración kjar >configuración de servidor.

Nota

El tiempo de implementación aplica la configuración para implementaciones realizadas a través de la API REST.
Por ejemplo, si el modo de persistencia (uno de los elementos que usted configura) definido en el nivel de servidor es NONE, pero el mismo modo es especificado como JPA en el nivel de kjarl, el modo real será JPA para dicho kjar. Si no se especifica nada para el modo persistencia en el descriptor de implementación ), se retrocederá a la configuración de nivel de servidor, la cual en este caso es NONE (o para JPA si no hay descriptor de implementación de nivel de servidor).
¿Puede usted sobrescribir esta conducta de modo de fusión jerarquía?
Sí. En la forma predeterminada, si existen descriptores de implementación presentes en múltiples niveles, las propiedades de configuración se fusionan con las granulares que sobrescriben los valores en bruto y por los ítems de configuración faltantes en el nivel granular que se suple con dichos valores en los niveles superiores. El resultado final es una configuración fusionada de descriptor de implementación. Este modo de fusión predeterminado se denomina el modo MERGE_COLLECTIONS. No obstante, usted puede cambiarlo (Sección 2.4.2, “Administración de los descriptores de implementación”) si no se ajusta a su entorno:
  • KEEP_ALL: en este modo , todos loa valores superiores sobrescriben los valores de nivel inferior (los valores de nivel de servidor remplazan los valores kjar.)
  • OVERRIDE_ALL: en este modo, todos los niveles inferiores sobrescriben todos los valores superiores (los valores kjar remplazan los valores de nivel de servidor)
  • OVERRIDE_EMPTY: en este modo, todos los ítems de configuración non empty de los niveles inferiores, remplazan los de los niveles superiores, incluidos los que se representan como colecciones.
  • MERGE_COLLECTIONS (PREDETERMINADO): en este modo, todos los ítems de configuración no vacíos del nivel inferior remplazan los de los niveles superiores (como en OVERRIDE_EMPTY), pero las propiedades de colección se fusionan (combinan).
Los descriptores de implementación de kjar dependientes se sitúan en un nivel inferior al del kjar real que se implementa.
¿Necesitaré proveer un descriptor de implementación completo para todos los kjar?
No. Es precisamente aquí que la fusión entre los diferentes archivos puede serle útil. Es posible y recomendable proveer los descriptores de implementación parciales. Por ejemplo, si desea sobrescribir el modo auditoría en un kjar, deberá proporcionarlo y el resto de los valores se fusionarán desde el nivel de servidor o los kjar de nivel superior
Vale la pena anotar que al utilizar el uso de modo fusión OVERRIDE_ALL, todos los ítems de configuración deben especificarse, ya que el kjar relevante, siempre los usará y no se fusionará con otro descriptor de implementación en la jerarquía.
¿Qué puede configurar?
Los detalles de un nivel superior técnico pueden ser configurados a través de los descriptores de implementación. La siguiente tabla los enumera con los valores permisibles y predeterminados para cada uno.
Expand
Tabla 2.1. Descriptores de implementación
ConfiguraciónEntrada XMLValores permisiblesValor predeterminado
Nombre de la unidad de persistencia para datos de tiempo de ejecuciónpersistence-unitCualquier nombre de paquete válido de persistenciaorg.jbpm.domain
Nombre de la unidad de persistencia para datos de auditoríaaudit-persistence-unitCualquier nombre de paquete válido de persistenciaorg.jbpm.domain
Modo de persistenciapersistence-modeJPA, NONEJPA
Modo de auditoríaaudit-modeJPA, JMS o NONEJPA
Estrategia de tiempo de ejecuciónruntime-strategySINGLETON, PER_REQUEST o PER_PROCESS_INSTANCESINGLETON
Lista de oyentes que van a ser registradosevent-listenersNombres de oyentes válidos como ObjectModelSin valor predeterminado
Lista de tareas que van a ser registradastask-event-listenersNombres de oyentes válidos como ObjectModelSin valor predeterminado
Lista de manejadores de elementos de trabajo que van a ser registradaswork-item-handlersClases válidas del manejador de elementos dados como NamedObjectHandlerSin valor predeterminado
Lista de variables globales a ser registradasglobalsVariables globales dadas como NamedObjectModelSin valor predeterminado
Las estrategias de Marshalling que van a ser registradas (para persistencia variables conectables)marshalling-strategiesClases ObjectModel válidasSin valor predeterminado
Roles requeridos que van a ser otorgados a los recursos del kjarrequired-rolesCadena de nombres de rolesSin valor predeterminado
Entradas de entorno adicionales para la sesión de conocimientosenvironment-entriesNamedObjectModel válidoSin valor predeterminado
Opciones de configuración adicionales para la sesión de conocimientosconfiguracionesNamedObjectModel válidoSin valor predeterminado
Cómo proveer valores para colecciones basadas en ítems de configuración?
En los ítems de configuración en la tabla de ítems de configuración anterior, debería notar los valores válidos para la colección basada en ítems pueden ser ObjectModel o NamedObjectModel. Ambos son similares y proveen definición del objeto para el tiempo de ejecución construido o creado, a excepción de los detalles de nombre de objeto NamedObjectModel que deben ser observados. Ambos tipos se definen mediante un identificador, parámetros opcionales y un 'resolver' (para resolver el objeto).
  • identifier - define toda la información sobre el objeto, como por ejemplo el nombre de clase completo, el identificador de bean Spring o la expresión MVEL.
  • parameters - parámetros opcionales que deben utilizarse durante las instancias de creación de objetos desde este modelo.
  • resolver - identificador del resolver que será utilizado para crear instancias de objetos desde el modelo - (reflection, mvel o Spring).
Como un ejemplo, si ha construido una estrategia marshalling y desea que sus implementaciones usen dicha estrategia en lugar de la predeterminada, deberá proveer esa estrategia como un ObjectModel, con el identificador com.mycompany.MyStrategy, el programa de resolución que es reflexión (los parámetros más fáciles y predeterminados que se requieren para que su estrategia funcione. La reflexión será utilizada para crear una instancia de esta estrategia mediante el nombre de clase completo que usted ya ha provisto como identificador.
<marshalling-strategy> 
 <resolver>reflection</resolver> 
 <identifier>com.myCompany.MyStrategy</identifier> 
 <parameters>
    <parameter xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      param
    </parameter>
  </parameters> 
</marshalling-strategy>
Copy to Clipboard Toggle word wrap
En el caso de que un programa de resolución no sea suficiente (como se demuestra en el ejemplo anterior), usted puede usar el resolver basado en la expresión MVEL como identificador del modelo de objeto. Al evaluar las expresiones, usted puede sustituir los parámetros que venían ya establecidos. Por ejemplo:
<marshalling-strategy> 
  <resolver>mvel</resolver> 
  <identifier>new com.myCompany.CustomStrategy(runtimeManager)</identifier> 
</marshalling-strategy>
Copy to Clipboard Toggle word wrap
El resolver basado en Spring le permite buscar un bean por su identificador desde un contexto de aplicación Spring. Siempre y cuando JBoss BPM Suite se utilice con Spring, este resolver ayuda en la implementación de kjars dentro del tiempo de ejecución. A manera de ejemplo (observe que el identificador en este caso es un bean denominado en el contexto Spring):
<marshalling-strategy>
 <resolver>spring</resolver> 
 <identifier>customStrategy</identifier> 
</marshalling-strategy>
Copy to Clipboard Toggle word wrap

2.4.2. Administración de los descriptores de implementación

Los descriptores de implementación pueden ser modificados a través de la Central empresarial en una de las siguientes formas: En forma gráfica (haciendo clic en AutoríaAutoría de proyecto y luego al seleccionar HerramientasDescriptor de implementación) o al hacer clic en el menú AuthoríaAdministración y luego haga clic a través de la carpeta META-INF en el archivo Explorer. Haga clic en el archivo kie-deployment-descriptor.xml para editarlo de forma manual.
Cada vez que se crea un proyecto, el archivo kie-deployment-descriptor.xml de inventario se genera con los valores predeterminados como se describió anteriormente.
Sobrescritura del comportamiento de modo de fusión jerárquico
Para cambiar el modo predeterminado de MERGE_COLLECTIONS a uno de KEEP_ALL, OVERRIDE_ALL o OVERRIDE_EMPTY utilice los siguientes métodos, según el requerimiento.
  • Establezca la propiedad del sistema org.kie.dd.mergemode a uno de estos valores. Este modo de fusión se convertirá en predeterminado para todos los kjars implementados en el sistema, a menos que usted lo sobrescriba en un nivel kjar a través del siguiente método.
  • Al implementar una nueva unidad a través de Central empresarial (ImplementarImplementaciones) usted puede seleccionar que el modo de fusión sea utilizado para dicho kjar determinado.
  • Cuando se implementa a través de la API REST, usted puede agregar el parámetro de la petición mergemode a la URL del comando a uno de estos modos a fin de establecer el modo de fusión para dicha implementación.
Restricción del acceso al motor Runtime
Uno de los ítems de configuración discutidos anteriormente, required-roles, pueden ser modificados a través de los descriptores de implementación. Esta propiedad restringe el acceso al motor de tiempo de ejecución en un nivel por kjar o por servidor al garantizar que el acceso a algunos procesos sea únicamente otorgado a los usuarios pertenecientes a grupos definidos por esta propiedad.
El rol de seguridad puede utilizarse para restringir el acceso a las definiciones del proceso o restringir el acceso en tiempo de ejecución.
La conducta predeterminada debe ser agregada a los roles requeridos con base en restricciones de repositorios. Claro está que usted puede modificar estas propiedades de forma manual, como se describe arriba al proporcionar los roles que coincidan con los roles reales definidos en el reino de seguridad.

2.5. Manejo de políticas de sobrescritura de implementación

Si un usuario intenta implementar un artefacto con un GAV (ID de grupo, ID de artefacto y Versión) que ya existe en el sistema, la implementación fallará y se desplegará un mensaje de error en el panel Mensajes .
Esta funcionalidad evita que el usuario sobrescriba por error una implementación existente.
Esta funcionalidad está habilitada de forma predeterminada, es decir que el sistema evitará que el usuario sobrescriba una instalación con el mismo GAV.
Sin embargo, puede haber el caso en el que el usuario desee sobrescribir las implementaciones existentes con el mismo GAV. Aunque usted no puede habilitar la sobrescritura por implementación, usted puede configurar esta funcionalidad para el sistema como un todo mediante la configuración del sistema org.kie.override.deploy.enabled. Esta configuración se predetermina como false . Cámbiela a true para habilitar la sobrescritura de implementaciones con el mismo GAV proporcionándolo en el momento de inicio de su servidor (-Dorg.kie.override.deploy.enabled=true).

2.6. Extensión de Central empresarial

Iniciando por la versión 6.1 BPM Suite, la Central empresarial puede ser configurada por el administrador para agregar nuevas pantallas,menús, editores, pantallas de inicio y perspectivas. Estos elementos pueden extender la funcionalidad de la Central empresarial y pueden accederse a través del menú de Extensiones y se clasifican en Administración de complementos.
Ahora puede definir sus propios complementos basados en Javascript y HTML para extender la Central empresarial y agregarlos sin necesidad de preocuparse de copiar archivos en el sistema de archivos subyacente. Agregue una nueva pantalla en el sistema para visualizar los elementos básicos de esta funcionalidad.

2.6.1. Administración de complementos

Usted puede acceder la pantalla Plugin Management al hacer clic en ExtensionesPlugin Management. Verá la pantalla Plugin Explorer que enumera todos los complementos existentes en sus respectivas categorías: Perspective Plugin, Screen Plugin, Editor Plugin, Splashscreen Plugin y Dynamic Menu. Abra alguno de ellos y verá los complementos existentes en cada categoría, incluidos los que no se pueden modificar y que son generados por el sistema.
Cree un nuevo complemento que haga el eco 'Hello World' cuando los usuarios visiten la pantalla para este complemento. En general, los pasos para crear un nuevo complemento, son:
  • Crear una pantalla
  • Para crear una perspectiva (y agregarle la nueva pantalla)
  • Cree un nuevo menú (y agréguele una nueva perspectiva)
  • Apps (opcional)
Adición de una nueva pantalla
Haga clic en el botón Nueva... y seleccione Nueva pantalla. Se le solicitará que ingrese el nombre de esta nueva pantalla. Ingrese "HelloWorldJS" y presione el botón Aceptar. El editor del complemento de pantalla se abrirá, dividido en 4 secciones: Plantilla, CSS, JavaScript y Medios.

Nota

Todos los elementos creados de forma manual entran dentro de sus respectivas categorías en caso de que usted desee modificarlas más adelante. En este caso, para reabrir el complemento de pantalla en un editor, abra la categoría Complemento de pantalla y pase las pantallas generadas por el sistema para ir al complemento creado manualmente y haga clic en él para volver a abrir el editor de complemento de pantalla.
Las plantillas en donde su HTML irá, CSS es para el estilo, JavaScript es para sus funciones, y Medios es para cargar y administrar imágenes.
Debido a que hacemos un complemento Hello World sencillo, ingrese el siguiente código en la sección de Template (Plantilla): <div>My Hello World Screen</div>. Puede ser cualquier código HTML y usted puede usar los marcos de trabajo Angular y Knockout. Para fines de este ejemplo, no estamos utilizando ninguno de estos marcos de trabajo, pero si desea, puede seleccionarlos desde la sección desplegable Template (Plantilla).
Ingrese su código JavaScript en la sección JavaScript. Algunos método y propiedades comunes se definen para usted, incluidos main, on_close y on_open. Para esta demostración, seleccione on_open e ingrese lo siguiente: function () { alert('Hello World'); }
Haga clic en el botón Guardar para terminar la creación de la pantalla.
Adición de una nueva perspectiva
Una vez que la pantalla haya sido creada, cree la perspectiva en donde residirá esta pantalla. Las perspectivas también pueden ser creadas mediante un clic en el botón Nueva... y luego seleccionando Nueva perspectiva. Así, abrirá el editor de complemento de perspectiva, similar al editor de complemento de la pantalla..
El editor de perspectiva es como un generador de cuadrilla de arrastrar y soltar para pantallas y los componentes HTML. Retire las cuadrículas que estén a mano derecha y luego arrastre una cuadrilla 6 6 al lado derecho.
Después, abra la categoría Componentes y arrastre un componente de pantalla a mano derecha (de la cuadrícula). De esta manera, abrirá el cuadro de diálogo Editar componente donde usted puede ingresar su pantalla creada en el paso anterior (HelloWorldJS). Haga clic en el botón Aceptar y luego en el botón para guardar esta perspectiva. Ingrese HelloWorldPerspective, entre Home en el campo de nombre (y haga clic en el botón Agregar etiqueta), por último haga clic en el botón Aceptar para terminar de guardar.
Si necesita cargar esta perspectiva de nuevo, necesitará el nombre que usted le ha dado, ya que esta perspectiva no aparece en la lista de perspectivas. Para cargar, haga clic en el botón e ingrese el nombre de la perspectiva.
Adición de un nuevo menú
El paso final para crear nuestro complemento es agregar un menú dinámico desde donde pueden ser llamada la nueva pantalla y la perspectiva. Para hacerlo, vaya a ExtensionesAdministración de complemento y luego haga clic en el botón Nuevo ... para seleccionar Nuevo menú dinámico. Nombre a este menú dinámico como (HelloWorldMenu) y luego haga clic en el botón Aceptar . El editor del menú dinámico se abrira.
Ingrese el nombre de la perspectiva (HelloWorldPerspective) como y el ID de actividad y el nombre para el menú desplegable (HelloWorldMenuDropDown). Haga clic en Aceptar y luego en el botón Guardar.
Este nuevo menú se agregará a su tabla de trabajo la próxima vez que recargue la Central empresarial. Recárguela ahora para ver si HelloWorldMenu se ha agregado a su menú de nivel superior. Haga clic en éĺ para mostrar HelloWorldMenuDropDown, el cual al pulsarse se abrirá en su pantalla o perspectiva con el mensaje Hello World.
¡Acaba de crear su primer complemento!
Trabajar con apps (opcional)
Si usted crea múltiples conectores, puede usar la funcionalidad del directorio Apps para organizar sus propios componentes y adiciones, en lugar de tener que depender únicamente de las entradas de menú superior.
Cuando usted graba una nueva perspectiva, puede agregarle etiquetas (tags) para que la perspectiva y estas etiquetas sean utilizadas para asociar una perspectiva con un directorio App. Puede abrir los directorios App haciendo clic en ExtensionesApps.
El directorio Apps proporciona una forma alternativa de abrir su perspectiva. Cuando usted creó su HelloWorldPerspective, ingresó la etiqueta Home. El directorio Apps predeterminado contiene un directorio único llamado Home con el cual usted asoció su perspectiva. Aquí es donde la encontrará cuando abra el directorio Apps. Ahora puede hacer clic para ejecutar la perspectiva.
Puede crear múltiples directorios y perspectivas asociadas con dichos directorios dependiendo de los requerimientos empresariales verticales. Por ejemplo, usted puede crear un directorio HR y luego asociar todas las perspectivas relacionadas con HR con dicho director para administrar de una mejor manera Apps.
Puede crear un nuevo directorio al hacer clic sobre:

2.6.2. JavaScript (JS) API para extensiones

La extensibilidad de Central empresarial se lleva a cabo mediante una API JavaScript (JS) subyacente la cual se carga de forma automática en la carpeta plugins de la Central empresarial webapp (por lo general: {INSTALL_DIR}/business-central.war/plugins/) o puede ser cargada mediante llamadas regulares JavaScript.
Esta API se divide en varios conjuntos según la funcionalidad.
  • API de perspectiva de registro: permite la creación de perspectivas. El ejemplo de abajo crea un panel mediante el método registerPerspective:
    				
    $registerPerspective({
        id: "Home",
        is_default: true,
        panel_type: "org.uberfire.client.workbench.panels.impl.MultiListWorkbenchPanelPresenter",
        view: {
            parts: [
                {
                    place: "welcome",
                    min_height: 100,
                    parameters: {}
                }
            ],
            panels: [
                {
                    width: 250,
                    min_width: 200,
                    position: "west",
                    panel_type: "org.uberfire.client.workbench.panels.impl.MultiListWorkbenchPanelPresenter",
                    parts: [
                        {
                            place: "YouTubeVideos",
                            parameters: {}
                        }
                    ]
                },
                {
                    position: "east",
                    panel_type: "org.uberfire.client.workbench.panels.impl.MultiListWorkbenchPanelPresenter",
                    parts: [
                        {
                            place: "TodoListScreen",
                            parameters: {}
                        }
                    ]
                },
                {
                    height: 400,
                    position: "south",
                    panel_type: "org.uberfire.client.workbench.panels.impl.MultiTabWorkbenchPanelPresenter",
                    parts: [
                        {
                            place: "YouTubeScreen",
                            parameters: {}
                        }
                    ]
                }
            ]
        }
    });
    
    Copy to Clipboard Toggle word wrap
  • La API del editor: le permite crear editores de forma dinámica y asociarlos con el tipo de archivo. El ejemplo de abajo, crea un editor de muestra y lo asocia con el tipo de archivo filename.
    $registerEditor({
        "id": "sample editor",
        "type": "editor",
        "templateUrl": "editor.html",
        "resourceType": "org.uberfire.client.workbench.type.AnyResourceType",
        "on_concurrent_update":function(){
            alert('on_concurrent_update callback')
            $vfs_readAllString(document.getElementById('filename').innerHTML, function(a) {
                document.getElementById('editor').value= a;
            });
        },
        "on_startup": function (uri) {
            $vfs_readAllString(uri, function(a) {
                alert('sample on_startup callback')
            });
        },
        "on_open":function(uri){
            $vfs_readAllString(uri, function(a) {
                document.getElementById('editor').value=a;
            });
            document.getElementById('filename').innerHTML = uri;
        }
    });
    Copy to Clipboard Toggle word wrap
    Además de los métodos on_startup y on_open vistos en el ejemplo anterior, la API expone los siguientes eventos de llamada para administrar el ciclo de vida del editor:
    • on_concurrent_update;
    • on_concurrent_delete;
    • on_concurrent_rename;
    • on_concurrent_copy;
    • on_rename;
    • on_delete;
    • on_copy;
    • on_update;
    • on_open;
    • on_close;
    • on_focus;
    • on_lost_focus;
    • on_may_close;
    • on_startup;
    • on_shutdown;
    Puede desplegar este editor a través de una plantilla html:
    <div id="sampleEditor">
        <p>Sample JS editor (generated by editor-sample.js)</p>
        <textarea id="editor"></textarea>
    
        <p>Current file:</p><span id="filename"></span>
        <button id="save" type="button" onclick="$vfs_write(document.getElementById('filename').innerHTML, document.getElementById('editor').value,  function(a) {});">Save</button>
        <br>
    
        <p>This button change the file content, and uberfire send a callback to the editor:</p>
        <button id="reset" type="button" onclick="$vfs_write(document.getElementById('filename').innerHTML, 'Something else',  function(a) {});">Reset File</button>
    </div>
    
    Copy to Clipboard Toggle word wrap
  • API PlaceManager: los métodos de esta API le permiten solicitar que Central empresarial despliegue un determinado componente asociado con un destino: $goToPlace("componentIdentifier");
  • API de complemento de registro: los métodos de esta API le permiten crear los complementos dinámicos (que serán transformados en pantallas de Central empresarial) a través de JSAPI.
    $registerPlugin( {
        id: "my_angular_js",
        type: "angularjs",
        templateUrl: "angular.sample.html",
        title: function () {
            return "angular " + Math.floor(Math.random() * 10);
        },
        on_close: function () {
            alert("this is a pure JS alert!");
        }
    });
    Copy to Clipboard Toggle word wrap
    El complemento hace referencia a la plantilla angular.sample.html:
    <div ng-controller="TodoCtrl">
        <span>{{remaining()}} of {{todos.length}} remaining</span>
        [ <a href="" ng-click="archive()">archive</a> ]
        <ul class="unstyled">
            <li ng-repeat="todo in todos">
                <input type="checkbox" ng-model="todo.done">
                <span class="done-{{todo.done}}">{{todo.text}}</span>
            </li>
        </ul>
        <form ng-submit="addTodo()">
            <input type="text" ng-model="todoText" size="30" placeholder="add new todo here">
            <input class="btn-primary" type="submit" value="add">
        </form>
        <form ng-submit="goto()">
            <input type="text" ng-model="placeText" size="30" placeholder="place to go">
            <input class="btn-primary" type="submit" value="goTo">
        </form>
    </div>
    
    Copy to Clipboard Toggle word wrap
    Un complemento puede ser agregado a los eventos de Central empresarial a través de una serie de llamadas de JavaScript:
    • on_concurrent_update;
    • on_concurrent_delete;
    • on_concurrent_rename;
    • on_concurrent_copy;
    • on_rename;
    • on_delete;
    • on_copy;
    • on_update;
    • on_open;
    • on_close;
    • on_focus;
    • on_lost_focus;
    • on_may_close;
    • on_startup;
    • on_shutdown;
  • Registre la API de las pantallas de inicio: use los métodos en esta API para crear pantallas de inicio.
    $registerSplashScreen({
        id: "home.splash",
        templateUrl: "home.splash.html",
        body_height: 325,
        title: function () {
            return "Cool Home Splash " + Math.floor(Math.random() * 10);
        },
        display_next_time: true,
        interception_points: ["Home"]
    });
    
    
    Copy to Clipboard Toggle word wrap
  • Una API de Sistema de archivos virtual (VFS): con esta API, usted puede leer y escribir un archivo guardado en el sistema de archivos mediante una llamada asíncrona.
    $vfs_readAllString(uri,  function(a) {
      //callback logic
    });
        
    $vfs_write(uri,content,  function(a) {
      //callback logic
    })
    
    Copy to Clipboard Toggle word wrap

2.7. Configuración de columnas de tablas

La Central empresarial le permite configurar vistas que contengan listas de ítems en forma de tablas. Usted puede redimensionar columnas, mover columnas y agregar o remover la lista predeterminada de columnas y ordenarlas. Esta funcionalidad se proporciona para todas las vistas que contienen tablas
Una vez que haya hecho los cambios a las columnas de una vista de tabla, estos cambios persisten para el usuario conectado.

Adición y remoción de columnas

Las tablas que permiten la configuración de columnas tienen el botón en la esquina superior derecha superior. Al hacer clic en este botón se abre una lista de las columnas que pueden ser agregadas o retiradas de la tabla actual con una casilla de verificación cerca de cada columna:

Redimensionar columnas

Para redimensionar las columnas, coloque el cursor entre los bordes del encabezamiento de la columna y desplácese en la dirección que desea :

Desplazamiento de columnas

Para reordenar y arrastrar y soltar una columna en una posición diferente, vaya con el ratón al área más extrema derecha del encabezamiento de la columna: .
Ahora agarre la columna y desplácela: .
Suéltela sobre el encabezamiento de columna a donde desea desplazarla

Ordenamiento de columnas

Para ordenar columnas, haga clic en el encabezamiento de columna deseado. Para retroceder, haga clic en el encabezamiento otra vez.

Capítulo 3. Configuración en la línea de comandos

La herramienta kie-config-cli es una herramienta de configuración de línea de comandos que proporciona funcionalidades para administrar el repositorio del sistema desde la línea de comandos y puede servir en un modo conectado o desconectado.
  1. Online mode (el predeterminado, recomendado) - en el inicio, la herramienta se conecta al repositorio Git mediante un servidor Git provisto por kie-wb. Todos los cambios son locales y se publican en la corriente principal de desarrollo únicamente después del comando push-changes. Use el comando 'exit' para publicar los cambios locales. Para descartar los cambios al salir, utilice el comando 'discard'.
  2. Offline mode (un estilo de instalador) - crea y manipula el repositorio del sistema directamente en el servidor (no opción 'discard').
La herramienta está disponible en Red Hat Customer Portal. Para descargar la herramienta kie-config-cli tool, proceda de la siguiente manera:
  1. Vaya a Red Hat Customer Portal e ingrese.
  2. Haga clic en DescargasDescargas de productos.
  3. En la página Descargas de productos que se abre, haga clic en Red Hat JBoss BPM Suite.
  4. Desde el menú desplegable Versión, seleccione 6.1.
  5. En la tabla desplegada, navegue a la fila de Herramientas suplementarias y luego haga clic en Descargar.
Extraiga el paquete zip implementable para herramientas suplementarias que usted descargó del Portal del cliente de Red Hat. Este contiene el directorio kie-config-cli-6.VERSIÓN_MENOR-redhat-x-dist con el archivo kie-config-cli.sh.

3.1. Inicie la herramienta kie-config-cli en modo en línea

  1. Para iniciar la herramienta kie-config-cli en modo en línea, navegue al directorio kie-config-cli-6.VERSIÓN_MENOR-redhat-x-dist donde usted instaló la herramienta y luego ejecute el comando.
  2. En un entorno Unix, ejecute:
    ./kie-config-cli.sh
    Copy to Clipboard Toggle word wrap
    En un entorno Windows, ejecute:
    ./kie-config-cli.bat
    Copy to Clipboard Toggle word wrap
La herramienta inicia en modo en línea automáticamente y pide al usuario las contraseñas y una URL de Git para conectarse (el valor predeterminado es git://localhost/system). Para conectarse a un servidor remoto, remplace el host y el puerto con los valores apropiados. Ejemplo: git://kie-wb-host:9148/system

3.2. Iniciar la herramienta kie-config-cli en modo fuera de línea

Para operar en modo fuera de línea, agregue el parámetro 'offline' al comando de abajo.
  1. Navegue en el directorio kie-config-cli-6.VERSIÓN_MENOR-redhat-x-dist donde instaló la herramienta.
  2. En un entorno Unix, ejecute:
    ./kie-config-cli.sh offline
    Copy to Clipboard Toggle word wrap
    En un entorno Windows, ejecute:
    ./kie-config-cli.bat offline
    Copy to Clipboard Toggle word wrap
Al ejecutar este comando cambia la conducta de la herramienta y despliega una solicitud para especificar la carpeta donde se ubica el repositorio del sistema (.niogit). Si .niogit no existe, el valor de la carpeta puede quedar vacío y se creará una configuración totalmente nueva.

3.3. Comandos disponibles para la herramienta kie-config-cli

Los siguientes comandos están disponibles para administrar el repositorio GIT mediante la herramienta kie-config-cli.
  • add-deployment - agrega una nueva unidad de implementación
  • add-repo-org-unit - agrega un repositorio para la unidad organizativa
  • add-role-org-unit - agrega role(s) a una unidad organizativa
  • add-role-project - agrega role(s) a un proyecto
  • add-role-repo - agrega role(s) a un repositorio
  • create-org-unit - crea una unidad organizativa
  • create-repo - crea un nuevo repositorio git
  • discard - no publica cambios locales, limpia los directorios temporales y cierra la herramienta
  • exit - publica trabajo, limpia directorios temporales y cierra la herramienta
  • fetch-changes - extrae cambios del repositorio de la corriente principal de desarrollo
  • help - imprime los comandos disponibles con descripciones
  • list-deployment - lista imple
  • list-org-units - lista las unidades organizativas disponibles
  • list-repo - lista los repositorios disponibles
  • push-changes - envía los cambios al repositorio de la corriente de desarrollo principal (en modo en línea únicamente)
  • remove-deployment - retira la implementación existente
  • remove-org-unit - retira la unidad organizativa existente
  • remove-repo - retira un repositorio existente desde config únicamente
  • remove-repo-org-unit - retira un repositorio de la unidad organizativa
  • remove-role-org-unit - retira los role(s) de la unidad organizativa
  • remove-role-project - retira role(s) de un proyecto
  • remove-role-repo - retira role(s) de un repositorio

Capítulo 4. Migración

La migración de sus proyectos de Red Hat JBoss BPM Suite 5 a Red Hat JBoss BPM Suite 6 requiere un planeamiento cuidadoso y una evaluación paso por paso de los problemas. Puede planear la migración ya sea manualmente o utilizando procesos automáticos. La mayoría de las migraciones reales requerirán una combinación de estos dos procesos.
Debido a que JBoss BPM Suite 6 usa GIT para almacenar activos, artefactos y repositorios de código incluyendo procesos y reglas, debe empezar por crear un proyecto vacio en JBoss BPM Suite 6 como base para su migración con archivos de mentira como marcadores para los diferentes activos y artefactos. El ejecutar un clon GIT de este proyecto vacio en su IDE favorito iniciará el proceso de migración.
Con base en los archivos marcadores en su proyecto clonado, puede empezar a agregar activos en los lugares correctos. El sistema JBoss BPM Suite 6 es lo suficientemente inteligente para reconocer los cambios y aplicarlos de manera correcta. Asegúrese de que cuando esté importando archivos antiguos de reglas que sean importados con la estructura de nombre de paquete adecuada.
Ya que Maven se utiliza para construir proyectos, los activos de proyectos como las reglas, procesos y modelos son accesibles como un archivo jar simple.
Esta sección lista las maneras aceptadas generalmente paso a paso para migrar su proyecto. Esto solo es una guía y la migración real puede ser bien diferente de esta.
En general debe...
  1. Migrar los datos primero: estos son sus activos empresariales.
  2. Luego, migrar sus procesos en tiempo de ejecución.
  3. Finalmente, convertir las llamadas API antiguas a nuevas una por una.
Vamos a ver estos pasos en mas detalle en las siguientes secciones.

4.1. Migración de datos

Para migrar datos desde Red Hat JBoss BPM Suite 5, haga lo siguiente:
  1. Descargue la herramienta de migración iniciando sesión en el Portal del cliente de Red Hat y luego navegue a la sección de descargas de Software de Red Hat JBoss BPM Suite. Haga clic en Red Hat JBoss BPM Suite Migration Tool para descargar el archivador zip.
  2. Descomprima el archivador zip descargado en un directorio de su preferencia y navegue a este directorio en una línea de comandos. Este directorio contiene cuatro carpetas:
    • bin - contiene los scripts de inicio.
    • jcr-exporter-libs - contiene las bibliotecas especificas para la parte export-from-JCR de la migración.
    • vfs-importer-libs - contiene las bibliotecas especificas para la parte import-into-Git de la migración.
    • conf - contiene la configuraciónde la herramienta de migración global.
  3. Para bases de datos de producción, copie el controlador JDBC para la base de datos que es utilizada por parte del repositorio JCR dentro del directorio jcr-exporter-libs de la herramienta de migración.
  4. Ejecute el siguiente comando:
    ./bin/runMigration.sh -i <source-path> -o <destination-path> -r <repository-name>
    Copy to Clipboard Toggle word wrap
Donde:
  • <source-path> es una ruta a un repositorio JCR fuente.
  • <desintation-path> es una ruta a un GIT VFS de destino. Esta carpeta no debe existir previamente.
  • <repository-name> un nombre arbitrario para el nuevo repositorio.
El repositorio es migrado a la ubicación especificada.
Además del comando -i también puede utilizar -h para imprimir un mensaje de ayuda y -f el cual forza una sobrescritura del directorio de salida, por lo tanto eliminando la nacesidad de borrar manualmente este directorio.

Importación del repositorio a la Central empresarial

El repositorio se puede importar en la central empresarial clonándolo. En la perspectiva de administración, haga clic en el menú Repositorios y luego haga clic en el menú Clonar repositorio para iniciar el proceso.

Nota

Los activos también se pueden migrar manualmente. Después de todo son simplemente archivos de texto. La especificación BPMN2 y la sintaxis DRL no cambió entre las diferentes versiones.

Importación del repositorio en JDBS

Para importar el repositorio en JBoss Developer Studio, haga lo siguiente
  1. Inicie JBoss Developer Studio.
  2. Inicie el servidor de Red Hat JBoss BPM Suite (si todavía no está ejecutando) seleccionando el servidor de la pestaña de servidores ya haga clic en el ícono de inicio.
  3. Seleccione ArchivoImportar... y navegue a la carpeta Git. Abra la carpeta Git para seleccionar Proyectos desde Git y haga clic en siguiente.
  4. Seleccione la fuente del repositorio Repositorio local existente y haga clic en siguiente.
  5. Seleccione el repositorio que se va a configurar de la lista de repositorios disponibles.
  6. Importe el proyecto como un proyecto general en la siguiente ventana y haga clic en siguiente. Déle nombre a este proyecto y haga clic en terminar.

4.2. Migración en tiempo de ejecución

Para ejecutar procesos de Red Hat JBoss BPM Suite 5 en Red Hat JBoss BPM Suite 6, haga lo siguiente:
  1. Configure la propiedad del sistema jbpm.v5.id.strategy como verdadera en el archivo standalone.xml de Boss BPM Suite :
    <property name="jbpm.v5.id.strategy" value="true"/>
    Copy to Clipboard Toggle word wrap
  2. Cargue la KieSession tal como se muestra aquí:
    KieSession ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(sessionID, kbase, sessionConf, env);
    Copy to Clipboard Toggle word wrap
  3. Continue la ejecución normal del proceso usando los métodos KieSession:
    ksession.signalEvent("SomeEvent", null);
    Copy to Clipboard Toggle word wrap

4.3. API y compatibilidad retrospectiva

Migración a la versión 6.1

En la versión 6.1, 5.x  las APIs ya no se soportan oficialmente.
Red Hat JBoss BPM Suite ya no proporciona compatibilidad retrospectiva con la API proceso, regla y evento desde JBoss BRMS 5. El contenido del archivo knowledge-api JAR ya no se soporta en la versión 6.1 y es reemplazada por las APIs que se encuentran en el archivo kie-api JAR que se introdujeron en JBoss BPM Suite 6.0.
Si utilizaba la API 5.x de legado (ubicada en knowledge-api.jar), por favor migre (reescriba) la s llamadas de la API  a la nueva API KIE . Por favor tenga en cuenta que varias APIs han cambiado entre JBoss BRMS 5.x y JBoss BPM Suite 6.x, a saber la API de servicio de tareas y REST API.

Migración a la versión 6.0

El sistema JBoss BPM Suite 6 brinda compatibilidad retrospectiva con las interacciones de procesos, reglas, eventos desde JBoss BRMS 5. Eventualmente debe migrar (reescribir) estas interacciones a la nueva API central ya que es posible que esta compatibilidad retroactiva ya no se utilice más en el futuro.
Si no puede migrar su códido para que utilice la nueva API entonces puede utilizar la API proporcionada por la jar knowledge-api construída para código compatible retrospectivamente. Esta API es la interfaz pública para trabajar con JBoss BPM Suite y JBoss BRMS y es compatible retrospectivamente.
Si en lugar usted está usando la REST API en JBoss BPM Suite 5, note que esto ha cambiado también y no hay un mecanismo para compatibilidad retroactiva.

4.4. Migración del servicio de tareas

JBoss BPM Suite 6 proporciona soporte solo para un servidor de tareas en ejecución localmente. Esto significa que usted no necesita configurar ningún servicio de mensajería en su proyecto. Esto es diferente de JBoss BPM Suite 5 ya que brindaba un servidor de tareas que servía de puente desde la máquina central usando, usualmente el sistema de mensajería proporcionado por HornetQ.
Para ayudarle a superar las diferencias hasta que pueda migrar esto en su arquitectura actual, hay un ayudante o método de herramientas, LocalHTWorkItemHandler.
Debido a que la API TaskService es parte de la API pública ahora necesitará refactorizar sus importaciones debido a los cambios del paquete y debe refactorizar sus métodos debido a los cambios de la API.

Capítulo 5. Administración de datos

5.1. Copias de seguridad

Al aplicar un mecanismo de respaldo para Red Hat JBoss BPM Suite asegúrese de hacer copia de seguridad de los siguientes recursos:
  • todos los descriptores de implementación personalizados (tales como, web.xml, jboss-web.xml, jboss.xml)
  • todos los archivos de propiedades personalizadas

    Nota

    Considere hacer una copia de seguridad de todos los archivos business-central.war y dashbuilder.war.

5.2. Configurar índices

Configurar índices de llaves externas

Algunas bases de datos, por ejemplo, Oracle y Postgres, no crean automáticamente un índice para cada llave externa. Esto puede producir interbloqueos. Para evitar esta situación, es necesario crear un índice en todas las llaves externas, en particular en la base de datos de Oracle.

Configurar índices para Proceso y Panel de tareas

El panel de procesos y tareas en 6.1 ha sido recreado para copar con el alto volumen de instancias de tareas y procesos. A fines de obtener tiempos de respuesta durante la solicitud de la base de datos, las tablas de JBoss BPM Suite: processinstancelog y bamtasksummary, deben estar indexadas .
Observe que TODAS las columnas en estas dos tablas deben estar indexadas y no solamente las llaves primarias y externas.

5.3. Configuración de la base de datos

La aplicación Dashbuilder requiere una base de datos existente, creada antes de ejecutar la aplicación. Para crear una base de datos usted puede utilizar la herramienta de cliente y ejecutar los siguientes comandos:
Postgres
El siguiente enunciado sql sirve para crear una base de datos Postgres:
CREATE DATABASE dashbuilder
  WITH ENCODING='UTF8'
         OWNER=dashbuilder
         CONNECTION LIMIT=-1
Copy to Clipboard Toggle word wrap

Nota

La codificación de la base de datos debe ser UTF8
DB2
La base de datos DB2 puede ser creada mediante el siguiente enunciado sql:
CREATE DATABASE dashb PAGESIZE 16384
Copy to Clipboard Toggle word wrap

Nota

El tamaño de la página predeterminada para sistemas DB2 es 4k, lo cual no es suficiente para el tamaño de columnas de la tabla de dashbuilder. El tamaño de la página debe ser forzado a 16384 como se muestra en la oración de arriba.
Una vez que la base de datos haya sido creada, deberá configurar la fuente de datos del servidor de aplicaciones. Modifique el archivo de configuración JBoss EAP y configure el subsistema de fuente de datos como en los siguientes ejemplos:
<datasource jndi-name="java:jboss/datasources/jbpmDS" enabled="true" use-java-context="true" pool-name="postgresqlDS">
    <connection-url>jdbc:postgresql://localhost/test</connection-url>
    <driver>postgresql</driver>
    <pool></pool>
    <security>
       <user-name>sa</user-name>
       <password>sa</password>
    </security>
</datasource>
<drivers>
    <driver name="postgresql" module="org.postgresql">
        <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
    </driver>
</drivers>
Copy to Clipboard Toggle word wrap

5.4. Modificación de la base de datos

Dashbuilder requiere que JBoss BPM Suite tenga tablas de base de datos de registros. Es obligatorio implementar primero la consola de Tareas humanas (o un superset, p.ej: kie-wb). De lo contrario, el Dashboard no se inicializará correctamente y no será posible implementar sus indicadores de rendimiento claves.
La aplicación está configurada de forma predeterminada para usar una fuente de datos con el siguiente nombre JNDI:
java:jboss/datasources/ExampleDS
Copy to Clipboard Toggle word wrap
Se especifica en el archivo de configuración de JBoss EA; por ejemplo, standalone.xml.

Nota

Esta fuente de datos es para propósitos de desarrollo y demostración; está presente de forma predeterminada en cualquier instalación de JBoss.
Si desea implementar una base de datos diferentes desde H2 como Oracle, MySQL, Postgres o MS SQL Server, por favor realice los siguientes pasos:

Procedimiento 5.1. Cambiar la base de datos

  1. Instalar el controlador de la base de datos en JBoss (consulte la documentación de controlador JBoss)
  2. Cree una base de datos vacía y la fuente de datos JBoss que se conecta al controlador de base de datos.
  3. Modifique el archivo dashbuilder.war/WEB-INF/jboss-web.xml:
    <jboss-web>
       <context-root>/dashbuilder</context-root>
       <resource-ref>
           <res-ref-name>jdbc/dashbuilder</res-ref-name>
           <res-type>javax.sql.DataSource</res-type>
           <jndi-name>java:jboss/datasources/myDataSource</jndi-name>
       </resource-ref>
       ...
    
    Copy to Clipboard Toggle word wrap
  4. Remplace el valor del parámetro jndi-name por la ruta JNDI de la fuente de datos JBoss que usted ha creado.
  5. Modifique el archivo dashbuilder.war/WEB-INF/jboss-deployment-structure.xml
  6. Agregue el siguiente fragmento de configuración dentro de la etiqueta deployment, donde jdbcDriverModuleName es el nombre del módulo del controlador JBoss JDBC:
      <dependencies>
          <module name="jdbcDriverModuleName" />
      </dependencies>
    
    Copy to Clipboard Toggle word wrap

5.5. Scripts DDL

Los scripts DDL para tablas de base de datos tanto para JBoss BRMS como para BPM Suite están disponibles para ser descargadas a través del Portal del cliente. Estos scripts le permiten estudiar las tablas y usarlas para crear de forma manual las tablas e índices o en bases de datos que no reciben soporte directo.
Para descargar estos scripts, ingrese al Customer Portal y haga clic en Red Hat JBoss BPM Suite. Seleccione la versión del producto para sus requerimientos y luego haga clic en Descargar en la fila Red Hat JBoss BPM Suite 6.x.x Supplementary Tools para descargar las herramientas suplementarias.
Descomprima el archivo en su máquina. Los scripts DDL están ubicados en la carpeta ddl-scripts. Los scripts de la base de datos se proporcionan para DB2, H2, MySQL5, Oracle, PostgreSQL y SQLServer.
Para completar el diagrama de relación de identidad, consulte Red Hat Solution.

Capítulo 6. Repositorio de activos

Las reglas empresariales, los archivos de definición de procesos y otros activos y recursos creados en la Central empresarial se almacenan en un repositorio de activos, el cual también se conoce como el almacén de conocimiento.
El almacén de conocimiento es un repositorio centralizado para su conocimiento empresarial. Se conecta con el repositorio GIT que le permite almacenar diferentes clases de artefactos y activos de conocimiento en un solo lugar. La Central empresarial brinda una interfaz web que le permite a los usuarios el ver y actualizar el contenido almacenado. Puede accederlo usando el Explorador de proyectos del entorno unificado de Red Hat JBoss BPM Suite.

6.1. Creación de un repositorio

Importante

Note que solo el usuario con el rol ADMIN puede crear un repositorio.

Procedimiento 6.1. Creación de un nuevo repositorio

  1. Abra la perspectiva Administración: en el menú principal haga clic en AutoríaAdministración.
  2. En el menú de perspectivas haga clic en RepositoriosNuevo repositorio.
  3. Se presenta la ventana Create Repository.

    Figura 6.1. Creación de un menú desplegable del repositorio

  4. Introduzca los detalles obligatorios:
    • Nombre del repositorio.

      Nota

      Note que el nombre del repositorio debe ser un nombre de archivo válido. Evite utilizar un espacio o cualquier caracter especial que pueda generar un nombre de archivo inválido.
    • Seleccione una unidad organizacional en la que se creará el repositorio desde la opción desplegable Organizational Unit.
  5. Haga clic en Finish
El nuevo repositorio se puede ver en la vista Explorador de archivos o Explorador de proyectos.

6.2. Clonación de un repositorio

Importante

Note que solo el usuario con el rol ADMIN puede clonar un repositorio.

Procedimiento 6.2. Clonación de un repositorio

  1. Abra la perspectiva Administration.
  2. En el menú Repositories seleccione Clonar repositorio.
  3. Se presenta la ventana Clone Repository.

    Figura 6.2. Clonación de un menú desplegable del repositorio

  4. En la ventana Clonar repositorio ingrese los detalles del repositorio:
    1. Ingrese el Nombre del repositorio Name que se va a utilizar como identificador del repositorio en el repositorio de activos y seleccione la Unidad organizacional a la que se debe agregar.
    2. Ingrese la URL del repositorio GIT:
      • Para un repositorio local: file:///ruta-al-repositorio/nombredelrepo
      • Para un repositorio remoto o preexistente: git://nombredelhost/nombredelrepo

      Nota

      El protocolo de archivos solo se soporta para operaciones 'READ'. Las operaciones 'WRITE' no se soportan.
    3. Si aplica, ingrese el Nombre de usuario y Contraseña a utilizar para autenticación al clonar el repositorio.
  5. Haga clic en Clonar.
  6. Se presenta un mensaje de confirmación con un botón OK, el cual le notifica al usuario que el repositorio se creó de manera exitosa. Haga clic en OK. El repositorio será indexado. Puede que algunas funcionalidades del banco de trabajo no estén disponibles hasta que se haya completado el indexado.
El repositorio clonado se puede chequear en la vista Explorador de archivos o Explorador de proyectos.

6.3. Borrado de un repositorio

Los repositorios se pueden borrar utilizando cualquiera de los siguientes procedimientos.

Borrado de un repositorio desde la Central empresarial

La manera más simple de borrar un repositorio es usando la Central empresarial RepositoryEditor.

Procedimiento 6.3. Uso de la Central empresarial para borrar un repositorio

  1. Acceda el RepositoryEditor en la Central empresarial AutoríaAdministración.
  2. Seleccione Repositorios del menú árbol a la izquierda.
  3. En el RepositoryEditor a la derecha, identifique el repositorio que se va a borrar de la lista de repositorios disponibles.
  4. Seleccione maestro del menú desplegando y haga clic en el botón Borrar.
  5. Aparecerá el siguiente mensaje:
    ¿Está seguro de que quiere borrar el repositorio "<$RepositoryName>"? Es posible que algunos editores no puedan seguir operando si no se puede acceder a su contenido.
    Copy to Clipboard Toggle word wrap
    Presione Ok para borrar.

Borrado de un repositorio usando la herramienta kie-config-cli

Los repositorios se pueden borrar utilizando la herramienta kie-config-cli por medio del comando remove-repo.
Para mayor información sobre la herramienta kie-config-cli consulte Capítulo 3, Configuración en la línea de comandos.

Borrado de un repositorio usando el REST API

Para borrar un repositorio del almacén de conocimiento emita la llamada API REST DELETE. Esta llamada depende de que el usuario haya creado una sesión HTTP autenticada antes de emitir este comando.

Ejemplo 6.1. Borrado de un repositorio usando curl

curl -H 'Accept: application/json' -H 'Content-Type: application/json' -X DELETE 'localhost:8080/business-central/rest/repositories/REPOSITORY_NAME'
Copy to Clipboard Toggle word wrap

6.4. Administración de activos

Nota

El contenido en esta sección se clasifica como un avance tecnológico para el lanzamiento 6.1 de Red Hat JBoss BPM Suite. Se brinda tal como viene y no se proporciona soporte.
Para activar y utilizar las funcionalidades descritas aquí necesita iniciar sesión en la Central empresarial con un usuario que tenga el rol especial kiemgmt.
Para facilitar la administración de proyectos, Red Hat JBoss BPM Suite ahora proporciona una manera de administrar múltiples proyectos con base en estándares. Esto le permite crear estructuras de repositorio usando las prácticas recomendadas por la industria para el mantenimiento, uso de versiones y distribución de sus proyectos.
Para empezar los repositorios ahora pueden ser administrados o no administrados.

Repositorios administrados y no administrados

Los repositorios no administrados son las estructuras del repositorio que ya conoce. Pueden contener múltiples proyectos no relacionados.
Por otro lado, los repositorios administrados proporcionan control de versiones a nivel de proyectos y ramas de proyectos para administrar el ciclo de lanzamientos. Además, los repositorios administrados se pueden restringir a solo un proyecto o que abarquen múltiples proyectos. Cuando se crea un repositorio administrado el proceso de configuracion de administración de activos se lanza de manera automática con el fin de crear las ramas del repositorio y también se crea la estructura correspondiente del proyecto.
Para crear un repositorio administrado o no administrado, abra la pantalla para crear un nuevo repositorio. Esto se logra seleccionando AutoríaAdministración y luego haga clic en RepositoriosNuevo repositorio. Esto hará que aparezca la pantalla Nuevo repositorio.
La creación del repositorio no administrado es la misma que antes; ingrese el nombre del repositorio y seleccione la unidad organizacional a la que pertenece y haga clic en el botón Finish.
Para crear un repositorio administrado seleccione la casilla Managed Repository después de darle un nombre al repositorio y la unidad organizacional a la que pertenece. Haga clic en el botón Siguiente para ingresar los detalles sobre este repositorio administrado.
Seleccione la etiqueta Single Project si el proyecto que está creando es un proyecto simple y es autónomo. Ingrese los detalles del proyecto administrado junto con los detalles GAV. No podrá agregar más proyectos a este repositorio después.
Para proyectos más complejos, en donde hay probabilidad de que haya un proyecto padre que abarque otros proyectos más pequeños seleccione el repositorio Multi proyectos. Todos los proyectos creados en un repositorio multi-proyectos se administrarán de manera conjunta, con el número de versión incrementando también. También ingrese los detalles del proyecto padre y el GAV, los cuales serán heredados por parte de todos los proyectos futuros que cree en este repositorio administrado.

Ramas administradas

Junto con los repositorios administrados viene la ventaja agregada de las ramas administradas. Tal como en GIT, usted puede escoger el trabajar en diferentes ramas de su proyecto (por ejemplo: maestro, desarrollo y lanzamiento). Este proceso de establecer ramas también se puede automatizar seleccionando la casilla al crear un nuevo repositorio administrado (para proyectos únicos y multi-proyectos).
Puede cambiar entre ramas seleccionando la rama deseada al trabajar en el Explorador de proyectos.

Estructura del repositorio

Si no selecciona la administración automática de ramas al crear un repositorio entonces luego puede crear ramas manualmente. Para los repositorios administrados esto lo puede lograr usando el botón Configure. Este botón junto con los botones Promover and Lanzamiento se pueden acceder en la vista Estructura del repositorio.Puede acceder a esta vista haciendo clic en RepositorioEstructura del repositorio en el menú de perspectivas del Explorador de proyectos. Al hacer clic en el botón Configurar le permite crear ramas o modifcar automáticamente las creadas.
Puede promover activos desde la rama maestra a otras ramas usando el botón Promover. De manera similar puede lanzar ramas e implementarlas en el servidor usando el botón Lanzar.
Ambas funciones son controladas internamente por medio del uso de procesos pre-definidos que se implementan en su instancia. Por ejemplo, cuando hace clic en el botón Promover después de haber trabajado en la rama de desarrollo, se inicia un proceso de promoción de cambios en el segundo plano. Al usuario con el rol de kiemgmt le aparecerá una tarea de usuario en esta lista de tareas para revisar los activos que se están promoviendo. Este usuario puede pedir esta tarea y decidir el promover todos, algunos o ninguno de los activos. El proceso subyacente utilizará cherry-pick para guardar los cambios seleccionados por el usuario en una rama de lanzamiento. Este usuario también puede solicitar otra revisión de estos activos y este proceso se puede repetir múltiples veces hasta que todos los activos estén listos para lanzamiento. El flujo para este proceso se puede ver a continuación:
De manera similar, cuando hace clic en el botón Lanzamiento se inicia un flujo de proceso de lanzamiento. Este flujo de proceso construye el proyecto y actualiza todos los arterfactos Maven a la siguiente versión e implementa el proyecto en el tiempo de ejecución si se proporcionan los detalles de implementación del tiempo de ejecución.

Aviso

Las ramas de proyectos que se van a lanzar deben iniciar con la palabra clave release
.

6.5. Repositorio Maven

Maven es una herramienta de administración de proyectos software que utiliza un archivo POM (del inglés project object model) para administrar:
  • Construcciones
  • Documentación
  • Informes
  • Dependencias
  • Lanzamientos
  • SCMs
  • Distribución
Un repositorio Maven se utiliza para mantener o almacenar los artefactos de construcción y las dependencias del proyecto y generalmente es de dos tipos:
  • Local: se refiere a un repositorio local en donde todas las dependencias del proyecto se almacenan y se encuentra con la instalación actual en la carpeta predeterminada como "m2". Es un caché de las descargas remotas y también contiene los artefactos de construcción temporal que todavía no se han lanzado.
  • Remoto: se refiere a cualquier otro tipo de repositorio que se pueda acceder por medio de una variedad de protocolos tal como file:// o http://. Estos repositorios se pueden encontrar en una ubicación remota establecida por un tercero para la descarga de artefactos o un repositorio interno establecido en un archivo o servidor HTTP, utilizado para compartir arterfactos privados entre los equipos de desarrollo para administrar lanzamientos internos.
Nexus es un administrador de repositorios que se utiliza con frecuencia en organizaciones para centralizar el almacenamiento y administración de artefactos de desarrollo de software. Es posible configurar su proyecto de manera que los artefactos producidos por cada construcción se implementen automáticamente en un repositorio en un servidor Nexus remoto.
Para configurar su proyecto para implementar artefactos en un repositorio Nexus remoto, agregue un elemento distributionManagement al archivo pom.xml de su proyecto tal como se demuestra en el código de ejemplo a continuación.
<distributionManagement>
  <repository>
    <id>deployment</id>
    <name>Internal Releases</name>
    <url>http://your_nexus_host:8081/nexus/content/repositories/releases</url>
  </repository>
  <snapshotRepository>
    <id>deployment</id>
    <name>Internal Releases</name>
    <url>http://your_nexus_host:8081/nexus/content/repositories/snapshots/</url>
  </snapshotRepository>
</distributionManagement>
Copy to Clipboard Toggle word wrap
Reemplace las URLs en el ejemplo con las URLs reales de sus repositorios Nexus. El repositorio especificado en el elemento snapshotRepository se utiliza cuando se agrega el calificador -SNAPSHOT al número de la versión actual del proyecto. En otros casos se utiliza el repositorio especificado en el elemento repository.
Si su servidor Nexus requiere autenticación también tendrá que modificar la configuración de sus proyectos Maven para agregar sus credenciales en el archivo settings-security.xml usando una contraseña maestra. Por defecto, este archivo se encuentra en la carpeta ~/.m2 a menos de que usted haya cambiado su ubicación modificando la propiedad del sistema kie.maven.settings.custom.
<servers>
  <server>
    <id>deployment</id>
    <username>admin</username>
    <password>admin.123</password>
  </server>
</servers>
Copy to Clipboard Toggle word wrap
Con esta configuración en vigor, al hacer clic en el botón Build and Deploy en la Central empresarial ejecuta una construcción Maven e implementa los artefactos construídos en el repositorio local y en uno de los repositorios Nexus especificado en el archivo pom.xml.

6.7. Configuración del sistema

En JBoss EAP, para cambiar una propiedad de la Central empresarial tal como la configuración para SSH, haga lo siguiente:

Procedimiento 6.4. Cambio de las propiedades del sistema

  1. Modifique el archivo $JBOSS_HOME/domain/configuration/host.xml
  2. Ubique el servidor de elementos XML que pertenece al main-server-group y agregue la propiedad del sistema. Por ejemplo:
    <system-properties>
     <property name="org.uberfire.nio.git.dir" value="..." boot-time="false"/>
     ...
    </system-properties>
    
    Copy to Clipboard Toggle word wrap
Esta es una lista de todas las propiedades del sistema disponibles:
  • org.uberfire.nio.git.dir: ubicación del directorio .niogit. Predeterminado: directorio de trabajo
  • org.uberfire.nio.git.daemon.enabled: activa/desactiva el demonio GIT. Predeterminado: verdadero
  • org.uberfire.nio.git.daemon.host: Si el demonio GIT está activado entonces usa esta propiedad como el identificador del host local. Predeterminado: localhost
  • org.uberfire.nio.git.daemon.port: Si el demonio GIT está activado entonces usa esta propiedad como el número de puerto. Predeterminado: 9418
  • org.uberfire.nio.git.ssh.enabled: activa/desactiva el demonio SSH. Predeterminado: verdadero
  • org.uberfire.nio.git.ssh.host: Si el demonio SSH está activado entonces usa esta propiedad como el identificador host local. Predeterminado: localhost
  • org.uberfire.nio.git.ssh.port: Si el demonio SSH está activado entonces usa esta propiedad como el número del puerto. Predeterminado: 8001
  • org.uberfire.nio.git.ssh.cert.dir: La ubicación del directorio .security en donde se almacenarán los certificados locales. Predeterminado: directorio de trabajo
  • org.uberfire.metadata.index.dir: La ubicación de la carpeta .index para Lucene. Predeterminado: directorio de trabajo
  • org.uberfire.cluster.id: Nombre del clúster Helix, por ejemplo: kie-cluster
  • org.uberfire.cluster.zk: cadena de conecxión a Zookeeper. Tiene el formato: host1:port1,host2:port2,host3:port3. Por ejemplo: localhost:2188.
  • org.uberfire.cluster.local.id: id único del nodo del clúster Helix. Note que ':' es reemplazado con '_'. Por ejemplo: node1_12345.
  • org.uberfire.cluster.vfs.lock: nombre del recurso definido en el clúster Helix, por ejemplo: kie-vfs
  • org.uberfire.cluster.autostart: retrasa el uso del clúster VFS hasta que la aplicación se inicie completamente para evitar conflictos cuando todos los miembros del clúster crean clones locales. Predeterminado: falso
  • org.uberfire.sys.repo.monitor.disabled: desactiva el monitor de configuración (no lo desactive a menos de que sepa lo que está haciendo). Predeterminado: falso
  • org.uberfire.secure.key: contraseña secreta utilizada por el cifrado de la contraseña. Predeterminado: org.uberfire.admin
  • org.uberfire.secure.alg: algoritmo cifrado utilizado por el cifrado de la contraseña. Predeterminado: PBEWithMD5AndDES
  • org.guvnor.m2repo.dir: lugar en donde se almacenará la carpeta del repositorio Maven. Predeterminado: directorio-de-trabajo/repositorios/kie
  • org.kie.example.repositories: carpeta desde donde se clonarán los repositorios de demostración. Es necesario haber obtenido y ubicado en esta carpeta los repositorios de demostración. Esta propiedad del sistema tiene precedencia sobre las propiedades org.kie.demo y org.kie.example. ŕedeterminado: no se utiliza.
  • org.kie.demo: habilita la clonación externa de una aplicación de demostración desde GitHub. Esta propiedad del sistema tiene precedencia sobre org.kie.example. Predeterminado: verdadero.
  • org.kie.example: habilita la estructura de ejemplo compuesta por el repositorio, la unidad organizacional y el proyecto. Predeterminado: falso

Capítulo 7. Proceso de exportación e importación

7.1. Creación de una definición de proceso

Verifique si ha entrado a JBoss BPM Suite o si está en JBoss Developer Studio con el repositorio conectado.
Para crear un proceso haga lo siguiente:
  1. Abra la perspectiva de autoría de proyectos (AuthoringProject Authoring).).
  2. En Project Explorer (Autoría de proyectoProject Explorer), navegue al proyecto en el que desea crear la definición del proceso (en la vista Proyecto, seleccione el repositorio respectivo y el proyecto en la lista desplegable; en la vista Repository, navegue al directorio REPOSITORIO/PROYECTO/src/main/resources/ ).

    Nota

    Se recomienda que cree sus recursos, incluyendo sus definiciones de procesos, en un paquete de un Proyecto para permitir el importar recursos y su uso de referencias. Para crear un paquete, haga lo sguiente:
    • En la vista de Repositorio del Project Explorer, navegue el directorio REPOSITORIO/PROYECTO/src/main/resources/.
    • Vaya a Nuevo ítemPaquete.
    • En el cuadro de diálogo Nuevo recurso, defina el nombre del paquete y verifique la ubicación del paquete en el repositorio.
  3. En el menú de perspectivas vaya a Nuevo ítemProyecto
  4. En el cuadro de diálogo Nuevos procesos, ingrese el nombre del proceso y haga clic en ACEPTAR. Espere hasta que aparezca el editor del proceso con el diagrama del proceso.

7.2. Importación de una definición de procesos

Para importar una definición JSON o BPMN2 existentes, haga lo siguiente:
  1. En el Explorador de proyectos, seleccione un Proyecto y el paquete respectivo al cual quiere importar la definición del Proceso.
  2. Cree un nuevo Proceso empresarial en el cual trabajar y para hacer esto vaya a Nuevo objetoProceso empresarial.
  3. En la barra de herramientas del Diseñador de procesos haga clic en el ícono Importar en la barra de herramientas del editor y seleccione el formato de la definición de procesos importados. Note que usted debe seleccionar para sobrescribir la definición del proceso existente con el fin de importar.
  4. Desde la ventana de Importación, ubique el archivo de procesos y haga clic en Importar.

    Figura 7.1. Ventana de importación

Cuando se importa una definición de procesos, la definición importada existente se sobrescribe. Asegúrese de que no esté sobrescribiendo una definición de procesos que ya haya modificado de manera que no pierda ninguno de los cambios.
Un proceso también puede ser importado al repositorio git en el sistema de archivos clonando el repositorio, agregando los archivos de procesos y enviando los cambios de nuevo a git. Además de los métodos de importación opcionales, puede copiar y pegar un proceso o simplemente abrir un archivo en el diálogo de importanción.
Al importar procesos, el Diseñador de procesos proporciona soporte visual para elementos de procesos y por lo tanto requiere información en posiciones de elementos en el canvas. Si la información no es proporcionada en el proceso importado entonces necesita agregarla manualmente.

7.3. Importación de jPDL 3.2 a BPMN2

Para migrar e importar una definición jPDL a BPMN2, en el Diseñador de procesos, haga clic en el botón de importación y luego baje y seleccione Migrar jPDL 3.2 a BPMN2.

Figura 7.2. Migrar jPDL 3.2 a BPMN2

En el cuadro de diálogo Migrate to BPMN2 , seleccione el archivo de la definición del proceso y el nombre del archivo gpd. Confirme con un clic en el botón Migrate.

Figura 7.3. Migrate al cuadro de diálogo BPMN2

Importante

La herramiemta de migración de jPDL 3.2 a BPMN2 es un avance de tecnología y por lo tanto no se soporta actualmente en Red Hat JBoss BPM Suite.

7.4. Exportación de un proceso

Procedimiento 7.1. Exportación de un proceso empresarial

Para exportar un proceso empresarial, haga lo siguiente:
  1. Abra la perspectiva Autoría de proyectos: en el menú principal haga clic en AutoríaAutoría de proyectos.
  2. Selecciones el proceso empresarial que debe ser exportado, para verlo en el Diseñador de procesos.
  3. Haga clic en el botón ( ) de la barra de herramientas del diseñador del proceso y seleccione Ver fuentes del proceso desde las opciones desplegables.
  4. Se desplegará la ventana de Fuentes de procesos
  5. Haga clic en el botón Download BPMN2 y guarde el proceso empresarial en la ubicación deseada.

Parte III. Integración

Puesto que Red Hat JBoss BPM Suite y S-RAMP son dos productos independientes, es posible desplazar artefactos entre ellos. Puede desplazar artefactos desde JBoss BPM Suite a S-RAMPmediante Maven o a través de la interfaz de usuario.
Esta sección proporciona información sobre estos dos procesos.
Antes de poder implementar artefactos Red Hat JBoss BPM Suite para S-RAMP mediante Maven, deberá habilitar el S-RAMP Maven Wagon. El S-RAMP Maven Wagon es una funcionalidad de llave que soporta el protocolo S-RAMP Atom. Al habilitar el S-RAMP Maven Wagon, los usuarios podrán acceder a artefactos desde el repositorio como dependencias en el proyecto Maven.
Para habilitar el S-RAMP Maven Wagon, modifique el archivopom.xml como se muestra a continuación:
<build>
  <extensions>
    <extension>
      <groupId>org.overlord.sramp</groupId>
      <artifactId>s-ramp-wagon</artifactId>
      <version>${s-ramp-wagon.version}</version>
    </extension>
  </extensions>
</build>
Copy to Clipboard Toggle word wrap
Una vez S-RAMP Maven Wagon esté habilitado, puede implementar artefactos para el repositorio . Para hacerlo, siga los pasos a continuación:
  1. Para clonar el repositorio Git, donde usted ha guardado el proyecto BPM Suite, ejecute el siguiente comando :
    git clone http://localhost:8001/REPOSITORY_NAME
    Copy to Clipboard Toggle word wrap
  2. En la línea de comandos, desplácese a la carpeta que contiene el proyecto.
  3. Siga las instrucciones en la Red Hat JBoss Fuse Service Works 6 Development Guide, Volume 3: Governance, sección Implementación en S-RAMP. Use la URL del ejemplo de abajo:
    <distributionManagement>
      <repository>
        <id>local-sramp-repo</id>
        <name>S-RAMP Releases Repository</name>
        <url>sramp://S-RAMP_SERVER_URL/s-ramp-server/</url>
      </repository>
      <snapshotRepository>
        <id>local-sramp-repo-snapshots</id>
        <name>S-RAMP Snapshots Repository</name>
        <url>sramp://S-RAMP_SERVER_URL/s-ramp-server/</url>
      </snapshotRepository>
    </distributionManagement>
    Copy to Clipboard Toggle word wrap
    Con estos parámetros, las implementaciones Maven se envían directamente al repositorio S-RAMP mediante la API API . Observe que los artefactos agregados al repositorio S-RAMP con un tipo de artefacto basado en el tipo Maven del proyecto. Puede sobrescribir esta conducta, si agrega un parámetro de solicitud a la URL del repositorio en el archivo pom.xml. Por ejemplo:
    <distributionManagement>
      <repository>
        <id>local-sramp-repo</id>
        <name>S-RAMP Releases Repository</name>
        <url>sramp://S-RAMP_SERVER_URL/s-ramp-server/?artifactType=KieJarArchive</url>
      </repository>
    </distributionManagement>
    
    Copy to Clipboard Toggle word wrap
    El ejemplo anterior hace que el artefacto Maven se cargue con el artefacto S-RAMP de KieJarArchive.
  4. Arregle el complemento Maven en el archivo pom.xml y agréguele una dependencia como sigue en caso de que el proyecto no contenga tablas de decisión.
    <plugins>
        <plugin>
          <groupId>org.kie</groupId>
          <artifactId>kie-maven-plugin</artifactId>
          <version>6.0.2-redhat-6</version>
          <extensions>true</extensions>
          <dependencies>
              <dependency>
                  <groupId>org.jbpm</groupId>
                  <artifactId>jbpm-bpmn2</artifactId>
                  <version>6.0.2-redhat-6</version>
              </dependency>
          </dependencies>  
         </plugin>
        </plugins>
    
    Copy to Clipboard Toggle word wrap
    Si el proyecto contiene tablas de decisión, use esta dependencia para kie-maven-plugin en su lugar:
    <plugins>
        <plugin>
          <groupId>org.kie</groupId>
          <artifactId>kie-maven-plugin</artifactId>
          <version>6.0.2-redhat-6</version>
          <extensions>true</extensions>
          <dependencies>
              <dependency>
                   <groupId>org.drools</groupId>
                   <artifactId>drools-decisiontables</artifactId>
                   <version>6.0.2-redhat-6</version>
               </dependency>
          </dependencies>  
         </plugin>
        </plugins>
    
    Copy to Clipboard Toggle word wrap
  5. Ejecute una implementación limpia mediante el siguiente comando:
    mvn -s sramp-settings.xml deploy
    Copy to Clipboard Toggle word wrap
    .

Nota

Para la implementación Maven al repositorio S-RAMP, es necesario establecer las credenciales en el archivo settings.xml. Para obtener más información sobre las credenciales, consulte Red Hat JBoss Fuse Service Works (FSW) documentación sobre autenticación.
Para implementar artefactos Red Hat JBoss BPM Suite para un repositorio S-RAMP mediante la interfaz de usuario, haga lo siguiente:
  1. Navegue a http://localhost:8080/s-ramp-ui/. Si la interfaz de usuario ha sido configurada para ejecutarse desde el nombre de dominio, sustituya localhost para el nombre de dominio. Por ejemplo http://www.example.com:8080/s-ramp-ui/.
  2. Haga clic en Artefactos.
  3. En la sección Administrar artefactos, seleccione Importar.
  4. Localice el archivo kie que desea implementar. En el cuadro de diálogo que se abre, rellene KieJarArchive como el tipo y seleccione Importar.
  5. La implementación luego crea estas entradas en el repositorio S-RAMP:
    KieJarArchive, desde el cual se deriva:
    • KieXmlDocument (Si el archivo contiene kmodule.xml)
    • BpmnDocument (Si el archivo contiene definiciones bpmn)
    • DroolsDocument (Si el archivo contiene definiciones drl)
La integración de Red Hat JBoss Fuse permite a los usuarios de JBoss Fuse complementar su solución de integración con funcionalidades provistas por JBoss BPM Suite y JBoss BRMS. La integración Red Hat JBoss BPM Suite consta de dos archivos features.xml: uno provisto por funcionalidades principales de JBoss BPM Suite y JBoss BRMS, las cuales definen las funcionalidades OSGi que pueden implementarse en JBoss Fuse, y otro que provee soporte adicional para la integración con SwitchYard y Camel.

Nota

Para los usuarios de Jboss Fuse 6.1, solamente las funcionalidades principales de JBoss BPM Suite and JBoss BRMS, provistas por el siguiente archivo, reciben soporte. Los clientes que utilizan una versión anterior de este archivo deben actualizarlo.

Importante

La integración de SwitchYard es una muestra de tecnología en JBoss Fuse 6.2, y por lo tanto no recibe soporte.
drools-karaf-features-6.2.0.Final-redhat-6-BZ1232486-features.xml provee las funcionalidades principales de JBoss BPM Suite y JBoss BRMS.
  • drools-common
  • drools-module
  • drools-templates
  • drools-decisiontable
  • drools-jpa
  • kie
  • kie-ci
  • kie-spring
  • kie-aries-blueprint
  • jbpm-commons
  • jbpm-human-task
  • jbpm
  • droolsjbpm-hibernate
  • h2
Este archivo de funcionalidades (y los repositorios que lo soportan) se provee como un correctivo en Red Hat Customer Portal.
La siguiente tabla provee ejemplos de casos de uso para algunas de las funcionalidades listadas arriba:
Expand
Tabla 9.1. Funcionalidades y ejemplos de caso de uso
FuncionalidadCaso de uso
drools-moduleUse el motor JBoss BRMS para evaluación de reglas, sin requerir persistencia, procesos o tablas de decisión.
drools-jpaUse el motor JBoss BRMS para evaluación de reglas con persistencia y transacciones, pero sin las tablas de procesos o decisión. La funcionalidad drools-jpa ya existe incluye drools-module, sin embargo necesitará instalar la funcionalidad droolsjbpm-hibernate o verificar si está instalado un paquete Hibernate compatible.
drools-decisiontableUse el motor JBoss BRMS con tablas de decisión.
jbpmUse el motor JBoss BPM Suite (o el motor JBoss BRMS con procesos). La funcionalidad drools-jpa ya incluye drools-module drools-jpa. Usted deberá instalar la funcionalidad droolsjbpm-hibernate o verificar si está instalado un paquete Hibernate compatible.
jbpm and jbpm-human-taskUse the JBoss BPM Suite (o el motor JBoss BRMS con procesos) con Human Task..
Jars de motor de base y kie-ci.Use JBoss BRMS o JBoss BPM Suite con KieScanner (KIE-CI) para descargar los kJAR desde el repositorio Maven.
kie-springUse integración KIE-Spring.
kie-spring and kie-aries-blueprint.Use KIE-Aries-Blueprint integration.
Las siguientes funcionalidades adicionales para integración con SwitchYard y Camelon en JBoss Fuse son provistas por org/jboss/integration/fuse/karaf-features/1.0.0.redhat-620137/karaf-features-1.0.0.redhat-620137-features.xml:
  • fuse-bxms-switchyard-common-knowledge
  • fuse-bxms-switchyard-rules
  • fuse-bxms-switchyard-bpm
  • kie-camel
  • jbpm-workitems-camel
Este archivo (y los repositorios que lo soportan) se encuentra en http://repository.jboss.org/nexus/content/repositories/public, el cual ya está configurado para se utilizado en JBoss Fuse 6.2 listo para utilizar en installDir/etc/org.ops4j.pax.url.mvn.cfg.
Este archivo también puede descargarse desde la página del producto JBoss Fuse 6.2 o JBoss BPM Suite en el Portal del cliente de Red Hat.
Si ya tiene instada una versión anterior de las funcionalidades principales de JBoss BPM Suite y JBoss BRMS(por ejemplo, drools-karaf-features-6.2.0.Final-redhat-6-features.xml), necesita retirarlas y asociar los archivos antes de intalar el archivo features.xml más reciente.

Procedimiento 9.1. Retiro de una instalación drools-karaf-features

  1. Inicie la consola Fuse mediante:
    $ ./installDir/bin/fuse
    Copy to Clipboard Toggle word wrap
  2. Desinstale las funcionalidades anteriores o apps que utilizó en el archivo features.xml anterior. Por ejemplo:
    JBossFuse:karaf@root> features:uninstall drools-module
    JBossFuse:karaf@root> features:uninstall jbpm
    JBossFuse:karaf@root> features:uninstall kie-ci
    
    Copy to Clipboard Toggle word wrap
  3. Busque referencias de lotes utilizando drools/kie/jbpm y retírelos:
    list -t 0 -s | grep drools
    list -t 0 -s | grep kie
    list -t 0 -s | grep jbpm
    Copy to Clipboard Toggle word wrap
    Para retirar los lotes:
    karaf@root> osgi:uninstall <BUNDLE_ID>
    Copy to Clipboard Toggle word wrap
  4. Remueva la url drools-karaf-features anterior:
    karaf@root> features:removeurl mvn:org.drools/drools-karaf-features/6.2.0.Final-redhat-<VERSION>/xml/features
    Copy to Clipboard Toggle word wrap
  5. Reinicie Fuse
  6. Agregue el archivo de nuevas funcionalidades
    karaf@root> features:addurl mvn:org.drools/drools-karaf-features/6.2.0.Final-redhat-6-BZ1232486/xml/features
    Copy to Clipboard Toggle word wrap
  7. Instale las funcionalidades:
    karaf@root> features:install ...
    Copy to Clipboard Toggle word wrap
Para instalar drools-karaf-features:

Procedimiento 9.2. Instale las funcionalidades principales de JBoss BPM Suite y JBoss BRMS

  1. Descargue e instale la corrección.
    1. Descargue jboss-brms-6.1.1-BZ-1232486.zip.
    2. Descomprímalo.
    3. Navegue al directorio descomprimido BZ-1232486.
    4. Ejecute el siguiente comando de consola:
      $ mvn org.apache.maven.plugins:maven-install-plugin:2.5.2:install-file -Dfile=drools-karaf-features-6.2.0.Final-redhat-6-BZ1232486-features.xml -DgroupId=org.drools -DartifactId=drools-karaf-features -Dversion=6.2.0.Final-redhat-6-BZ1232486 -Dpackaging=xml -Dclassifier=features
      Copy to Clipboard Toggle word wrap
  2. Configure los repositorios requeridos
    1. Modifique el archivo installDir/etc/org.ops4j.pax.url.mvn.cfg en su instalación JBoss Fuse y agregue la siguiente entrada a la variable org.ops4j.pax.url.mvn.repositories, tenga en cuenta que las entradas deben ir separadas por ‘, \’:
      • http://maven.repository.redhat.com/techpreview/all/@id=bxms-product-repo
  3. Inicie JBoss Fuse:
    $ ./installDir/bin/fuse
    Copy to Clipboard Toggle word wrap
  4. Agregue una referencia al archivo de funcionalidades de base al ejecutar el siguiente comando de consola:
    JBossFuse:karaf@root> features:addurl mvn:org.drools/drools-karaf-features/6.2.0.Final-redhat-6-BZ1232486/xml/features
    Copy to Clipboard Toggle word wrap
  5. Ahora podrá instalar las funcionalidades provistas por este archivo al ejecutar, por ejemplo, el siguiente comando de consola:
    JBossFuse:karaf@root> features:install drools-module
    Copy to Clipboard Toggle word wrap

9.2. Instalación de funcionalidades de integración adicionales

Siga el siguiente procedimiento para integración adicional con SwitchYard y Camel.

Importante

La integración de SwitchYard es una muestra de tecnología en JBoss Fuse 6.2, y por lo tanto no recibe soporte.

Procedimiento 9.3. Integración de SwitchYard y Camel

  1. Agregue una referencia al archivo de funcionalidades para integración adicional con SwitchYard y Camel al ejecutar el siguiente comando de consola:
    JBossFuse:karaf@root> features:addurl mvn:org.jboss.integration.fuse/karaf-features/1.0.0.redhat-620137/xml/features
    Copy to Clipboard Toggle word wrap
  2. Ahora podrá instalar las funcionalidades para integración SwitchYard y Camel mediante la ejecución, por ejemplo, del siguiente comando de consola:
    JBossFuse:karaf@root> features:install fuse-bxms-switchyard-rules
    Copy to Clipboard Toggle word wrap
Las siguientes funcionalidades para aplicaciones de inicio rápido de integración JBoss Fuse están provistas por org/jboss/integration/fuse/quickstarts/karaf-features/1.0.0.redhat-620137/karaf-features-1.0.0.redhat-620137-features.xml:
  • fuse-bxms-switchyard-quickstart-bpm-service
  • fuse-bxms-switchyard-quickstart-remote-invoker
  • fuse-bxms-switchyard-quickstart-rules-camel-cbr
  • fuse-bxms-switchyard-quickstart-rules-interview
  • fuse-bxms-switchyard-quickstart-rules-interview-container
  • fuse-bxms-switchyard-quickstart-rules-interview-dtable
  • fuse-bxms-switchyard-demo-library
  • fuse-bxms-switchyard-demo-helpdesk
Este archivo (y los repositorios que lo soportan) se encuentra en http://repository.jboss.org/nexus/content/repositories/public, el cual ya está configurado para se utilizado enJBoss Fuse 6.2 lista para ser utilizado en installDir/etc/org.ops4j.pax.url.mvn.cfg.

Procedimiento 9.4. Instalación de la aplicación Quickstart

  1. Agregue una referencia al archivo de funcionalidades mediante la ejecución del siguiente comando de consola:
    JBossFuse:karaf@root> features:addurl mvn:org.jboss.integration.fuse.quickstarts/karaf-features/1.0.0.redhat-620137/xml/features
    Copy to Clipboard Toggle word wrap
  2. Ahora puede instalar las aplicaciones Quickstart provistas por este archivo de funcionalidades mediante la ejecución, por ejemplo, del siguiente comando de consola:
    JBossFuse:karaf@root> features:install fuse-bxms-switchyard-quickstart-bpm-service
    Copy to Clipboard Toggle word wrap
También puede descargar un archivo ZIP desde la página de conocimiento del producto: https://repository.jboss.org/nexus/content/repositories/public/org/jboss/integration/fuse/fuse-integration-karaf-distro/1.0.0.redhat-620137/ . El archivo proporciona el código fuente para cada aplicación Quickstart al igual que el código para prueba.

Procedimiento 9.5. Descarga e instalación de los archivos Quickstart ZIP.

  1. Descarga del archivo ZIP de la aplicación Quickstart.
  2. Desempaque el contenido del directorio de inicios rápidos en su directorio installDir/quickstarts directory.
  3. Desempaque el contenido del directorio del sistema en su directorio installDir/system.

9.3.1. Prueba de su primera aplicación Quickstart

Procedimiento 9.6. Prueba de su aplicación Quickstart

  1. Inicie JBoss Fuse:
    $ ./installDir/bin/fuse
    Copy to Clipboard Toggle word wrap
  2. Instale e inicie switchyard-bpm-service mediante la ejecución del siguiente comando de consola:
    JBossFuse:karaf@root> features:install fuse-bxms-switchyard-quickstart-bpm-service
    Copy to Clipboard Toggle word wrap

    Nota

    Todas las funcionalidades dependientes especificadas por el archivo de funcionalidades de aplicaciones serán instaladas de forma automática.
  3. Envíe una solicitud de servicio web para invocar la puerta de enlace SOAP.
    1. Abra una ventana de terminal y navegue al directorio Quickstart asociado que fue desempacado desde el archivo ZIP de la aplicación Quickstart (en este caso, switchyard-bpm-service).
    2. Ejecute el siguiente comando:
      $ mvn clean install
      Copy to Clipboard Toggle word wrap

      Nota

      Requerirá los siguientes repositorios configurados en su archivo settings.xml:
      • http://maven.repository.redhat.com/techpreview/all/
      • http://repository.jboss.org/nexus/content/repositories/public/
    3. Ejecute el siguiente comando:
      $ mvn exec:java -Pkaraf
      Copy to Clipboard Toggle word wrap
  4. Usted recibirá la siguiente respuesta:
    SOAP Reply:
    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/><soap:Body><ns2:submitOrderResponse xmlns:ns2="urn:switchyard-quickstart:bpm-service:1.0">
        <orderId>test1</orderId>
        <accepted>true</accepted>
        <status>Thanks for your order, it has been shipped!</status>
    </ns2:submitOrderResponse></soap:Body></soap:Envelope>
    Copy to Clipboard Toggle word wrap

Capítulo 10. Integración con Spring

10.1. Configuración de Red Hat JBoss BPM Suite con Spring

Consulte la Guía de instalación de Red Hat JBoss BPM Suite para descargar el módulo Spring. Tendrá que descargar la versión genérica implentable de JBoss BPM Suite.
El módulo Spring está presente en el archivo jboss-bpms-engine.zip y se llama kie-spring-VERSION-redhat-MINORVERSION.jar.
La manera en que tenga planeado el utilizar los módulos Spring en su aplicación afecta la manera en que se deben configurar.

Como una máquina de procesos auto administrada

Esta es la manera estándar para empezar a utilizar JBoss BPM Suite en su aplicación Spring. Solo necesita configurarlo una vez y ejecutarlo como parte de la aplicación. Al utilizar la API RuntimeManager, se administra internamente una sincronización perfecta entre la máquina de procesos y el servicio de tareas y el usuario final no tiene que tocar el código interno para que estos dos funcionen juntos.

Como servicio de tarea compartida

Cuando utiliza una sola instancia de un TaskService, tiene mayor flexibilidad al configurar la instancia del servicio de tarea ya que es independiente del RuntimeManager. Una vez configurado luego el RuntimeManager lo utiliza cuando se requiere.
Para crear un RuntimeEnvironment desde su aplicación Spring, puede utilizar la clase org.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean. Esta clase de fábrica es la responsable de producir instancias del RuntimeEnvironment que son consumidas por el RuntimeManager al ser creadas. A continuación puede ver ilustrado un RuntimeEnvironment configurado con el gestor de entidades, gestor de transacciones y los recursos para la clase org.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean:
<bean id="runtimeEnvironment" class="org.kie.spring.factorybeans.RuntimeEnvironmentFactoryBean">
  <property name="type" value="DEFAULT"/>
  <property name="entityManagerFactory" ref="jbpmEMF"/>
  <property name="transactionManager" ref="jbpmTxManager"/>
  <property name="assets">
    <map>
      <entry key-ref="process"><util:constant static-field="org.kie.api.io.ResourceType.BPMN2"/></entry>
    </map>
  </property>
</bean>
Copy to Clipboard Toggle word wrap
Los siguientes entornos RuntimeEnvironment pueden ser creados o configurados:
  • DEFAULT - configuración predeterminada (la más común) para RuntimeManager
  • EMPTY - entorno completamente vació para ser rellenado manualmente
  • DEFAULT_IN_MEMORY - igual a DEFAULT pero sin persistencia de motor de tiempo de ejecución
  • DEFAULT_KJAR - igual a DEFAULT pero activo de conocimientos se toman del KJAR identificado por releaseid o GAV
  • DEFAULT_KJAR_CL - construido directamente desde classpath, que consta del descriptor kmodule.xml
Dependiendo del tipo seleccionado se requieren propiedades obligatorias diferentes. Sin embargo, se debe proporcionar por lo menos una de las siguientes propiedades de conocimiento:
  • knowledgeBase
  • activos
  • releaseId
  • groupId, artifactId, versión
Finalmente, para los tipos DEFAULT, DEFAULT_KJAR, DEFAULT_KJAR_CL es necesario configurar la persistencia en con los valores para entity manager factory y transaction manager. A continuación puede ver ilustrado un RuntimeManager de ejemplo para org.kie.spring.factorybeans.RuntimeManagerFactoryBean:
<bean id="runtimeManager" class="org.kie.spring.factorybeans.RuntimeManagerFactoryBean" destroy-method="close">
  <property name="identifier" value="spring-rm"/>
  <property name="runtimeEnvironment" ref="runtimeEnvironment"/>
</bean>
Copy to Clipboard Toggle word wrap

Capítulo 11. Integración CDI

11.1. Integración CDI

Para hacer uso de jbpm-kie-services en su sistema, usted necesitará proporcionar algunos mbeans para satisfacer todas las dependencias de los servicios. Hay varios mbeans que dependen de escenarios reales.
  • Gestor de entidad y fábrica de gestor de entidades
  • llamada de grupo de usuario para tareas humanas
  • proveedor de identidad para pasar información de usuario autenticada para los servicios
Al ejecutar en el entorno JEE, como por ejemplo JBoss Application Server, el mbean debe satisfacer todos los requerimientos de jbpm-kie-services
public class EnvironmentProducer { 

    @PersistenceUnit(unitName = "org.jbpm.domain")
    private EntityManagerFactory emf;

    @Inject
    @Selectable
    private UserGroupCallback userGroupCallback;

    @Produces
    public EntityManagerFactory getEntityManagerFactory() {
        return this.emf;
    }

    @Produces
    @RequestScoped
    public EntityManager getEntityManager() {
        EntityManager em = emf.createEntityManager();
        return em;
    }

    public void close(@Disposes EntityManager em) {
        em.close();
    }

    @Produces
    public UserGroupCallback produceSelectedUserGroupCalback() {
        return userGroupCallback;
    }
    @Produces

    public IdentityProvider produceIdentityProvider {
        return new IdentityProvider() {
             // implement IdentityProvider
        };
    }
}
Copy to Clipboard Toggle word wrap
Luego el archivo deployments/business-central.war/WEB-INF/beans.xml puede ser configurado para cambiar los parámetros actuales de la nueva implementación usergroupcallback.
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://docs.jboss.org/cdi/beans_1_0.xsd">

<alternatives>
  <class>org.jbpm.services.task.identity.JAASUserGroupCallbackImpl</class>
</alternatives>

</beans>
Copy to Clipboard Toggle word wrap

Nota

org.jbpm.services.task.identity.JAASUserGroupCallbackImpl es apenas un ejemplo para demonstrar los parámetros del servidor de aplicaciones independiente de lo que en realidad es (LDAP, DB, etc).

Capítulo 12. Persistencia

Los datos del tiempo de ejecución de la máquina de procesos se pueden persistir en almacenes de datos. El mecanismo de persistencia guarda los datos usando ordenación: los datos del tiempo de ejecución se convierten en un grupo de datos binario y el grupo de datos se guarda en el almacenamiento de datos.
Observe que la persistencia no se configura de forma predeterminada y la máquina se ejecuta sin persistencia

Nota

Los datos del tiempo de ejecución se guardan usando ordenamiento (persistencia binaria). El mecanismo de ordenamiento es un mecanismo de serialización personalizado.
Red Hat JBoss BPM Suite persistirá lo siguiente cuando sea configurado:
  • Estado de la sesión: este incluye el Id de sesión, la fecha de la última modificación, los datos de sesión que la reglas empresariales necesitarían para evaluación, estado de las tareas del temporizador.
  • Estado de la instancia del proceso: este incluye el id de la instancia del proceso, el id del processo, la fecha de la última modificación, la fecha de la última lectura, fecha de inicio de la instancia del proceso, datos del tiempo de ejecución (el estado de ejecución incluyendo el nodo que se está ejecutando, los valores de las variables, etc.) y los tipos de eventos.
  • Estado del tiempo de ejecución del objeto de trabajo: este incluye el id del objeto de trabajo, fecha de creación, nombre, id de la instancia del proceso y el estado del objeto de trabajo mismo.
Con base en los datos persistidos, es posible restablecer el estado de ejecución de todas las instancias de procesos en ejecución en caso de fallo o de borrar de manera temporal instancias en ejecución desde la memoria y restablecerlas posteriormente. Por defecto, no se configura la persistencia.
Para permitir persistencia necesita agregar los archivos jbpm-persistence a la ruta de clase de su aplicación y configurar la máquina para utilizar persistencia. La máquina almacena automáticamente el estado en tiempo de ejecución en el almacenamiento cuando la máquina alcanza un punto seguro. Los puntos seguros son puntos en donde la instancia del proceso ha realizado una pausa. Cuando una invocación de la instancia de proceso alcanza un punto seguro en la máquina entonces la máquina almacena cualquier cambio en la instancia del proceso como una instantánea de los datos del tiempo de ejecución del proceso. Sin embargo, cuando se completa una instancia de proceso, la instantánea persistida de los datos del tiempo de ejecución de la instancia del proceso se borra de manera automática.
Si ocurre un fallo entonces necesita restablecer el tiempo de ejecución de la máquina desde el almacenamiento, las instancias de procesos se restablecen automáticamente y su ejecución reanuda así que no hay necesidad de volver a cargar y disparar las instancias de procesos manualmente.
Los datos de persistencia del tiempo de ejecución se consideran internos de la máquina. No debe acceder a los datos del tiempo de ejecución persistidos o modificarlos directamente ya que esto puede tener efectos secundarios inesperados.
Para obtener información sobre el estado de ejecución actual, consulte el registro del historial. Realice una petición a la base de datos para ver los datos del tiempo de ejecución solo si es absolutamente necesario.

12.1. Sesión

Las sesiones se persisten como entidades SessionInfo. Estas persisten el estado de la sesión KIE del tiempo de ejecución y almacenan los siguientes datos:
Expand
Tabla 12.1.
CampoDescripciónNullable
ID
llave primaria
falso
lastmodificationdate
última vez guardado en el almacén de datos
N/A
rulesbytearray
grupo de datos binario con estado de sesión (blob binario)
falso
startdate
inicio de la sesión
optlock
número de la versión utilizado para bloquear el valor para el bloqueo optimista

12.2. Instancia del proceso

Las instancias de procesos se persisten como entidades ProcessInstanceInfo, las cuales persisten el estado de una instancia de proceso en tiempo de ejecución y almacenan los siguientes datos:
Expand
Tabla 12.2.
CampoDescripciónNullable
instanceid
llave primaria
falso
lastmodificationdate
última vez guardado en el almacén de datos
N/A
lastreaddate
última lectura desde el almacén de datos
N/A
processid
El ID del proceso sobre el cual se basa la instancia
falso
processinstancebytearray
grupo de datos binario con estado de instancia del proceso( blob binario)
falso
startdate
Fecha de inicio de la instancia del proceso
optlock
número de la versión utilizado para bloquear el valor para el bloqueo optimista
estado
Estado de la instancia del proceso
falso
ProcessInstanceInfo tiene una relación 1:N con la entidad EventTypes.
La entidad EventTypes contiene los siguientes datos:
Expand
Tabla 12.3.
CampoDescripciónNullable
instanceid
referencia a la instancia de proceso (llave foránea a la processinstanceinfo)
falso
elemento
campo de texto relacionado a un evento por el cual ha pasado una instancia de proceso

Soporte de bloqueo pesimista

El mecanismo de bloqueo predeterminado para la persistencia de procesos es optimista. With multi-thread high concurrency to the same process instance, this locking strategy can result in bad performance.
Con el lanzamiento de la versión 6.1de Red Hat JBoss BPM Suite, esto se puede cambiar en tiempo de ejecución para permitirle al usuario el establecer el bloqueo proceso por proceso y permtir que sea pessimista (el cambio se puede realizar a nivel de sesión KIE o también a nivel del gestor en tiempo de ejecución y no solo a nivel del proceso).
Para hacer que un proceso use un bloqueo pesimista, haga esto en el entorno del tiempo de ejecución:
import org.kie.api.runtime.Environment;
import org.kie.api.runtime.EnvironmentName;
import org.kie.api.runtime.manager.RuntimeManager;
import org.kie.api.runtime.manager.RuntimeManagerFactory;

...

// here env is an instance of org.kie.api.runtime.Environment
env.set(EnvironmentName.USE_PESSIMISTIC_LOCKING, true);

// now create your Runtime Manager using this enviornment
RuntimeManager manager = RuntimeManagerFactory.Factory.get().newPerRequestRuntimeManager(environment);
Copy to Clipboard Toggle word wrap

12.3. Objetos de trabajo

Los objetos de trabajo son persistidos como entidades workiteminfo, las cuales persisten el estado de la instancia del objeto de trabajo especifico en el tiempo de ejecución y almacena los siguientes datos:
Expand
Tabla 12.4.
CampoDescripciónNullable
workitemid
llave primaria
falso
nombre
nombre del objeto de trabajo
processinstanceid
id de la instancia del proceso padre
falso
estado
número entero que representa el estado del objeto de trabajo
falso
optlock
número de la versión utilizado para bloquear el valor para el bloqueo optimista
workitembytearray
grupo de datos binario con el estado del objeto de trabajo (blob binario )
falso
creationDate
sello de fecha en el que se creó el objeto de trabajo
falso

12.4. Configuración de persistencia

12.4.1. Configuración de persistencia

Aunque la persistencia no se utiliza por defecto, las dependencias que se necesitan están disponibles en el directorio del tiempo de ejecución como archivos jar .
La persistencia se define por sesión y puede definirla usando la clase JBPMHelper después de crear una sesión o utilizando el JPAKnowledgeService para crear su sesión. La última opción proporciona mayor flexibilidad mientras que JBPMHelper tiene un método para crear una sesión y usa un archivo de configuración para configurar esta sesión.

12.4.2. Configuración de la persistencia usando JBPMHelper

Para configurar la persistencia de su sesión usando JBPMHelper, haga lo siguiente:
  1. Defina su aplicación para que utilice un constructor de sesión JBPMHelper apropiado:
    • KieSession ksession = JBPMHelper.newKieSession(kbase);
    • KieSession ksession = JBPMHelper.loadKieSession(kbase, sessionId);
  2. Configure la persistencia en el archivo jBPM.properties .

    Ejemplo 12.1. Un archivo jBPM.properties de ejemplo con persistencia para la base de datos H2 en memoria

    # para crear una fuente de datos
    persistence.datasource.name=jdbc/jbpm-ds
    persistence.datasource.user=sa
    persistence.datasource.password=
    persistence.datasource.url=jdbc:h2:tcp://localhost/~/jbpm-db
    persistence.datasource.driverClassName=org.h2.Driver
    
    # para configurar la persistencia de la sesión
    persistence.enabled=true
    persistence.persistenceunit.name=org.jbpm.persistence.jpa
    persistence.persistenceunit.dialect=org.hibernate.dialect.H2Dialect
    
    # para configurar el servicio de tareas humanas
    taskservice.enabled=true
    taskservice.datasource.name=org.jbpm.task
    taskservice.transport=mina
    taskservice.usergroupcallback=org.jbpm.task.service.DefaultUserGroupCallbackImpl
    Copy to Clipboard Toggle word wrap
Ahora cualquier invocación en la sesión disparará el proceso de persistancia.
Asegúrese de que la fuente de datos esté funcionando cuando la máquina inicie. Si está ejecutando la base de datos H2 en memoria, puede iniciar la base de datos desde su aplicación usando la llamada del método JBPMHelper.startH2Server(); y regístrela con la máquina usando la llamada de método JBPMHelper.setupDataSource();.

12.4.3. Configuración de la persistencia usando JPAKnowledgeService

Para crear su sesión de conocimiento y configurar su persistencia usando JPAKnowledgeService, haga lo siguiente:
  1. Defina su aplicación para utilizar la sesión de conocimiento creada por JPAKnowledgeService:
    • Defina la sesión con base en una base de conocimiento, una configuración de la sesión de conocimiento y un entorno. El entorno debe contener una referencia a su fábrica del gestor de entidades:
      // cree la fábrica del gestor de entidades y regístrela en el entorno
      EntityManagerFactory emf = Persistence.createEntityManagerFactory( "org.jbpm.persistence.jpa" );
      Environment env = KnowledgeBaseFactory.newEnvironment();
      env.set( EnvironmentName.ENTITY_MANAGER_FACTORY, emf );
      
      // cree una nueva sesión de conocimiento que usa JPA para almacenar el estado del tiempo de ejecución
      KieSession ksession = JPAKnowledgeService.newKieSession( kbase, null, env );
      int sessionId = ksession.getId();
      
      // invoque los métodos en su método aquí
      ksession.startProcess( "MyProcess" );
      ksession.dispose();
      Copy to Clipboard Toggle word wrap
    • Defina la sesión con base en un id de sesión específico.
      // recree la sesión desde la base de datos usando el sessionId
      ksession = JPAKnowledgeService.loadKieSession(sessionId, kbase, null, env );
      Copy to Clipboard Toggle word wrap
  2. Configure la persistencia en el archivo META-INF/persistence.xml : configure JPA para que utilice Hibernate y la base de datos respectiva.
    La información sobre cómo configurar la fuente de datos en su servidor de aplicaciones debe estar disponible en la documentación que va junto con el servidor de aplicaciones. Para encontrar mayor información para JBoss Enterprise Application Platform, consulte la Administration and Configuration Guide para este producto.

    Ejemplo 12.2. Un archivo persistence.xml de ejemplo con persistencia para una fuente de datos H2 jdbc/jbpm-ds

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <persistence
      version="1.0"
      xsi:schemaLocation=
        "http://java.sun.com/xml/ns/persistence
         http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd
         http://java.sun.com/xml/ns/persistence/orm
         http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
      xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns="http://java.sun.com/xml/ns/persistence">
      <persistence-unit name="org.jbpm.persistence.jpa" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>jdbc/jbpm-ds</jta-data-source>
        <mapping-file>META-INF/JBPMorm.xml</mapping-file>
        <class>org.drools.persistence.info.SessionInfo</class>
        <class>org.jbpm.persistence.processinstance.ProcessInstanceInfo</class>
        <class>org.drools.persistence.info.WorkItemInfo</class>
        <properties>
          <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
          <property name="hibernate.max_fetch_depth" value="3"/>
          <property name="hibernate.hbm2ddl.auto" value="update"/>
          <property name="hibernate.show_sql" value="true"/>
          <property name="hibernate.transaction.manager_lookup_class"
                    value="org.hibernate.transaction.BTMTransactionManagerLookup"/>
        </properties>
      </persistence-unit>
    </persistence>
    Copy to Clipboard Toggle word wrap
Ahora cualquier invocación en la sesión disparará el proceso de persistancia.
Asegúrese de que la fuente de datos esté funcionando cuando la máquina inicie. Si está ejecutando la base de datos H2 en memoria, puede iniciar la base de datos desde su aplicación usando la llamada del método JBPMHelper.startH2Server(); y regístrela con la máquina usando la llamada de método JBPMHelper.setupDataSource();.

Nota

Si está ejecutando JBoss BPM Suite en un entorno Java simple, la configuración de la fuente de datos será similar a la siguiente:
PoolingDataSource ds = new PoolingDataSource();
ds.setUniqueName("jdbc/jbpm-ds");
ds.setClassName("bitronix.tm.resource.jdbc.lrc.LrcXADataSource");
ds.setMaxPoolSize(3);
ds.setAllowLocalTransactions(true);
ds.getDriverProperties().put("user", "sa");
ds.getDriverProperties().put("password", "sasa");
ds.getDriverProperties().put("URL", "jdbc:h2:tcp://localhost/~/jbpm-db");
ds.getDriverProperties().put("driverClassName", "org.h2.Driver");
ds.init();
Copy to Clipboard Toggle word wrap

Capítulo 13. Transacciones

13.1. Transacciones

El motor de procesos soporta transacciones JTA: las transacciones locales únicamente cuentan con soporte cuando utilizan Spring. Las transacciones Pure Local no reciben soporte.
Cada invocación de método es considerada una transacción. Para cambiar esta conducta, por ejemplo, combine los múltiples comandos en una transacción, necesitará especificar límites de transacciones.

13.2. Definición de transacciones

Para definir una transacción, proceda de la siguiente manera:
  1. Registre el gestor de transacciones en su entorno.

    Ejemplo 13.1. Codifique con el registro del gestor de transacciones

    // create the entity manager factory
    EntityManagerFactory emf = EntityManagerFactoryManager.get().getOrCreate("org.jbpm.persistence.jpa");
    TransactionManager tm = TransactionManagerServices.getTransactionManager();
    Environment env = EnvironmentFactory.newEnvironment();
    env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf);
    env.set(EnvironmentName.TRANSACTION_MANAGER, tm);
    	
    // setup the runtime environment
    RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get()
    .newDefaultBuilder()
    .addAsset(ResourceFactory.newClassPathResource("MyProcessDefinition.bpmn2"), ResourceType.BPMN2)
        .addEnvironmentEntry(EnvironmentName.TRANSACTION_MANAGER, tm)
        .addEnvironmentEntry(EnvironmentName.PERSISTENCE_CONTEXT_MANAGER, new JpaProcessPersistenceContextManager(env))
        .addEnvironmentEntry(EnvironmentName.TASK_PERSISTENCE_CONTEXT_MANAGER, new JPATaskPersistenceContextManager(env))
        .get();
    Copy to Clipboard Toggle word wrap
  2. Inicialice la KieSession:
    // get the KieSession
    RuntimeManager manager = RuntimeManagerFactory.Factory.get().newPerProcessInstanceRuntimeManager(environment);
    RuntimeEngine runtime = manager.getRuntimeEngine(ProcessInstanceIdContext.get());
    KieSession ksession = runtime.getKieSession();
    Copy to Clipboard Toggle word wrap
  3. Defina el gestor de transacciones en jndi.properties.

    Ejemplo 13.2. Definición del gestor de transacciones Bitronix en jndi.properties

    java.naming.factory.initial=bitronix.tm.jndi.BitronixInitialContextFactory
    Copy to Clipboard Toggle word wrap

    Nota

    Para usar un gestor de transacciones JTA diferente, modifique hibernate.transaction.manager_lookup_class, la propiedad de gestor de transacciones, en el archivo persistence.xml para cargar su gestor de transacciones.

    Ejemplo 13.3. JBoss Transaction Manager se establece como el gestor de transacciones

    <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
    Copy to Clipboard Toggle word wrap
  4. Defina el inicio y el final de la transacción.
     // start the transaction
    UserTransaction ut = InitialContext.doLookup("java:comp/UserTransaction");
    ut.begin();
    
    // perform multiple commands inside one transaction
    ksession.insert( new Person( "John Doe" ) );
    ksession.startProcess("MyProcess");
    
    // commit the transaction
    ut.commit();
    Copy to Clipboard Toggle word wrap

13.3. Contenedor de transacciones administradas

En casos en los que JBoss BPM Suite está incorporado dentro de una aplicación que es un contenedor que puede administrar transacciones por sí mismo (Transacción manejada por contenedor - CMT), se proporciona un gestor de transacciones dedicado mediante la clase org.jbpm.persistence.jta.ContainerManagerTransactionManager. Esto se debe a que la implementación predeterminada del gestor de transacciones en JBoss BPM Suite se basa en la clase UserTransaction para obtener el estatus de transacciones. Sin embargo, algunos servidores de aplicaciones en un modo CMT no permiten el acceso a la instancia UserTransaction desde JNDI.
Las operaciones ejecutadas en este gestor no son operativas (no-op) debido a que no pueden afectar la CMT subyacente. La clase ContainerManagedTransactionManager espera que la transacción esté siempre activa (retornando ACTIVE al método getStatus()).

Nota

Aunque el contenedor maneja las transacciones, el contenedor debería conocer las excepciones que se producen durante la ejecución de la instancia del proceso. Las excepciones enviadas por el motor deben propagarse hasta que el contenedor puede restaurar las transacciones correctamente.

Configuración del gestor de transacciones

Para configurar y usar ContainerManagedTransactionManager, se debe insertar en el entorno antes de crear o cargar una sesión:
    Environment env = EnvironmentFactory.newEnvironment();
    env.set(EnvironmentName.ENTITY_MANAGER_FACTORY, emf);
    env.set(EnvironmentName.TRANSACTION_MANAGER, new ContainerManagedTransactionManager());
    env.set(EnvironmentName.PERSISTENCE_CONTEXT_MANAGER, new JpaProcessPersistenceContextManager(env));
Copy to Clipboard Toggle word wrap
Luego configure el proveedor JPA en su archivo persistence.xml . Por ejemplo, si utiliza IBM WebSphere:
<property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.CMTTransactionFactory"/>
<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.WebSphereExtendedJTATransactionLookup"/>
Copy to Clipboard Toggle word wrap

Disposición de KSession en un CMT

En una CMT, no debe disponer de ksession directamente (al usar el método dispose()). Al hacerlo, causará excepciones al completar la transacción ya que el motor del proceso necesita limpiar el estado después de que la invocación haya terminado.
En su lugar, use el método org.jbpm.persistence.jta.ContainerManagedTransactionDisposeCommand's execute() method. Using this command ensures that the ksession will be disposed when the transaction is actually complete.
Este método verifica si la transacción está activa. Si lo está, delega la fase afterDisposal de la transacción en lugar de ejecutarla directamente. Si no hay ninguna transacción activa, ksession se suprimirá inmediatamente.

Capítulo 14. Registro

El mecanismo de registro le permite almacenar información sobre la ejecución de una instancia de proceso. Es proporcionado por un escucha especial de eventos que escucha a la máquina de procesos para que cualquier evento relevante sea registrado, de manera que la información se puede almacenar de manera separada de otra información almacenada que no es de registro en la base da datos incluida del servidor (h2) o una fuente de datos conectada usando JPA o Hibernate.
El módulo jbpm-audit proporciona el escucha de eventos y también le permite almacenar información relacionada con el proceso directamente en una base de datos usando JPA o Hibernate. Los datos de las siguientes entidades se almacena así:
  • Instancias de procesos como processinstancelog
  • Instancia de elementos como nodeinstancelog
  • Instancia de variables como variableinstancelog
Expand
Tabla 14.1. Campos de la tabla ProcessInstanceLog
CampoDescripciónNullable
ID
La llave primaria de la entidad de registro
No
end_date
La fecha de terminación de la instancia del proceso
processid
El nombre (ID) del proceso subyacente
processinstanceid
El ID de la instancia del proceso
No
start_date
La fecha de inicio de la instancia del proceso
estatus
El estatus de la instancia del proceso
parentProcessInstanceId
El ID de la instancia del proceso de la instancia del proceso padre si es el caso
resultado
El resultado de la instancia del proceso (detalles sobre la terminación del proceso como un código de error)
Expand
Tabla 14.2. Campos de la tabla NodeInstanceLog
CampoDescripciónNullable
ID
La llave primaria de la entidad de registro
No
log_date
La fecha del evento
nodeid
El ID del nodo del elemento del proceso subyacente
nodeinstanceid
El ID de la instancia de nodo
nodename
El nombre del nodo subyacente
processid
El ID del nodo del proceso subyacente
processinstanceid
El ID de la instancia del proceso padre
No
tipo
El tipo del evento (0 = enter event, 1 = exit event)
No
Expand
Tabla 14.3. Campos de la tabla VariableInstanceLog
CampoDescripciónNullable
ID
La llave primaria de la entidad de registro
No
log_date
La fecha del evento
processid
El nombre (ID) del proceso subyacente
processinstanceid
El ID de la instancia del proceso
No
valor
El valor de la variable en el momento de registro
variableid
El id de la variable tal como se define en la definición del proceso
variableinstanceid
El id de la instancia de la variable
resultado
El resultado de la instancia del proceso (detalles sobre la terminación del proceso como un código de error)
Si es necesario, defina su propio modelo de datos de información personalizada y use los escuchas de eventos de procesos para extraer la información.

14.1. Registro de eventos en la base de datos

Para registrar un evento que ocurre en tiempo de ejecución en una instancia de proceso, una instancia de elemento o una instancia de variable, necesita hacer lo siguiente:
  1. Mapee las clases de registro a la fuente de datos de manera que la fuente de datos dada acepte las entradas de registro. En Red Hat JBoss EAP, modifique las propiedades de la fuente de datos en el archivo persistence.xml.

    Ejemplo 14.1. Las clases ProcessInstanceLog, NodeInstanceLog y VariableInstanceLog habilitadas para processInstanceDS

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <persistence  version="1.0"  xsi:schemaLocation=
        "http://java.sun.com/xml/ns/persistence
         http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd
         http://java.sun.com/xml/ns/persistence/orm
         http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
      xmlns:orm="http://java.sun.com/xml/ns/persistence/orm"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns="http://java.sun.com/xml/ns/persistence">
    
      <persistence-unit name="org.jbpm.persistence.jpa">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>jdbc/processInstanceDS</jta-data-source>
        <class>org.drools.persistence.info.SessionInfo</class>
        <class>org.jbpm.persistence.processinstance.ProcessInstanceInfo</class>
        <class>org.drools.persistence.info.WorkItemInfo</class>
        <class>org.jbpm.process.audit.ProcessInstanceLog</class>
        <class>org.jbpm.process.audit.NodeInstanceLog</class>
        <class>org.jbpm.process.audit.VariableInstanceLog</class>
    
        <properties>
          <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
          <property name="hibernate.max_fetch_depth" value="3"/>
          <property name="hibernate.hbm2ddl.auto" value="update"/>
          <property name="hibernate.show_sql" value="true"/>
          <property name="hibernate.transaction.manager_lookup_class"
                    value="org.hibernate.transaction.BTMTransactionManagerLookup"/>
        </properties>
      </persistence-unit>
    </persistence>
    
    Copy to Clipboard Toggle word wrap
  2. Registre un gestor de registro en su sesión Kie.

    Ejemplo 14.2. Importar los gestores de registro

    import org.jbpm.process.audit.AuditLogService;
    import org.jbpm.process.audit.AuditLoggerFactory;
    import org.jbpm.process.audit.AuditLoggerFactory.Type;
    import org.jbpm.process.audit.JPAAuditLogService;
    ...
    
    Copy to Clipboard Toggle word wrap

    Ejemplo 14.3. Registrar un gestor de registro en una sesión Kie

    @PersistenceUnit(unitName = PERSISTENCE_UNIT_NAME)
      private EntityManagerFactory emf;
    
      private AuditLogService auditLogService;
    @PostConstruct
      public void configure() {
      
      auditLogService = new JPAAuditLogService(emf);
      ((JPAAuditLogService) auditLogService).setPersistenceUnitName(PERSISTENCE_UNIT_NAME);
      
      if( emf == null ) { 
      ((JPAAuditLogService) auditLogService).setPersistenceUnitName(PERSISTENCE_UNIT_NAME);
      }
      
      RuntimeEngine runtime = singletonManager.getRuntimeEngine(EmptyContext.get());
      KieSession ksession = runtime.getKieSession();
      AuditLoggerFactory.newInstance(Type.JPA, ksession, null);
    
      }
    
    Copy to Clipboard Toggle word wrap
  3. Opcionalmente, llame al método addFilter en el gestor de registros para filtrar información irrelevante. Solo la información aceptada por todos los filtros aparece en la base de datos.
  4. Las clases del gestor de registros se pueden ver en la Vista de auditoría:
    <dependency>
    	<groupId>org.jbpm</groupId>
    	<artifactId>jbpm-audit</artifactId>
    	<version>6.0.1.Final</version>
    </dependency>
    
    Copy to Clipboard Toggle word wrap

14.2. Funcionalidad logback

Red Hat JBoss BPM Suite proporciona funcionalidades logback para configuración de registros.
De esta manera, todo lo configurado se registra en la Simple Logging Facade for Java SLF4J, la cual delega cualquier registro a Logback, Apache Commons Logging, Log4j o java.util.logging. Agregue una dependencia al adaptador de registros para su marco de trabajo de registros que usted escoja. Si todavía no está utilizando ningún marco de trabajo de registros entonces puede utilizar Logback agregando esta dependencia Maven:
 
  <dependency>
     <groupId>ch.qos.logback</groupId>
     <artifactId>logback-classic</artifactId>
     <version>1.x</version>
  </dependency>
Copy to Clipboard Toggle word wrap

Nota

slf4j-nop y slf4j-simple son ideales para un entorno ligero.

14.3. Configuración de registros

Para configurar el nivel de registro de los paquetes cree un archivo logback.xml en business-central.war/WEB-INF/classes/logback.xml. Para establecer el nivel de registro del paquete org.drools como "depurar" para registros verbosos necesita agregar la siguiente línea al archivo:
<configuration>

    <logger name="org.drools" level="debug"/>

    ...

<configuration>
Copy to Clipboard Toggle word wrap
De manera similar, puede configurar registros para paquetes tal como el siguiente:
  • org.guvnor
  • org.jbpm
  • org.kie
  • org.slf4j
  • org.dashbuilder
  • org.uberfire
  • org.errai
  • etc...
Si configura con log4j, el log4j.xml lo puede encontrar en business-central.war/WEB-INF/classes/log4j.xml y se puede configurar de la siguiente manera:
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <category name="org.drools">
      <priority value="debug" />
    </category>

    ...

</log4j:configuration>
Copy to Clipboard Toggle word wrap

Nota

Puede configurar registros adicionales en el contenedor individual. Para configurar los registros para JBoss Enterprise Application Platform, por favor consulte la Guía de administración y configuración de Red Hat JBoss Enterprise Application Platform.

Capítulo 15. Localización y personalización

15.1. Idiomas disponibles

La interfaz de usuario web de Red Hat JBoss BPM Suite puede ser vista en múltiples idiomas:
  • Inglés de Estados Unidos (en_US)
  • Español (es_ES)
  • Japonés (ja_JP)
  • Chino (zh_CN)
  • Portugués (pt_BR)
  • Francés (fr_CA)
  • Alemán (de_DE)

Nota

Si no se especifica el idioma, se utiliza automáticamente el idioma inglés de Estados Unidos.

15.2. Cambio de parámetros de idioma

Cambio de idioma de la interfaz de usuario en Central empresarial.

Por defecto la Central empresarial usa el idioma del sistema. Si necesita cambiarlo entonces agregue el código del idioma requerdio al finalr de la URL de la Central empresarial. Por ejemplo, la siguiente URL configurará el idioma como portugués (pt_BR).
http://localhost:8080/business-central/?locale=pt_BR

Cambio de idioma de la interfaz de usuario en Dashbuilder

Para cambiar el idioma en la interfaz de usuario de Dashbuilder, siga los siguientes pasos:
  1. Inicie sesión en el panel de construcción después de que el servidor haya iniciado exitosamente navegando a http://localhost:8080/dashbuilder en un navegador.
  2. Seleccione el idioma de su elección mediante un clic en los parámetros regionales disponibles en el centro superior de la interfaz de usuario Dashbuilder para cambiar el idioma.

Configuración del idioma de la interfaz de usuario predetermianda en Dashbuilder

Siga el siguiente ejemplo para establecer el idioma de la interfaz de usuario predeterminada en Dashbuilder.

Procedimiento 15.1. Configuración del idioma predeterminado en Francés

  1. Navegue a jboss-eap-6.1/standalone/configuration y defina lo siguiente en el archivo standalone.xml.
    <system-properties>
        <property name="org.jboss.dashboard.LocaleManager.installedLocaleIds" value="en,es,de,fr,ja,pt,zh"/>
        <property name="org.jboss.dashboard.LocaleManager.defaultLocaleId" value="fr"/>
    </system-properties>
    
    Copy to Clipboard Toggle word wrap
  2. El idioma predeterminado de la interfaz de usuario del panel de construcción ahora está configurado como francés.

Definición de los parámetros regionales instalados en Dashbuilder

El siguiente es un ejemplo para definir los parámetros regionales instalados en el panel de construccción:

Procedimiento 15.2. Definición del parámetro regional instalado

  • Navegue a jboss-eap-6.1/standalone/configuration y defina lo siguiente en el archivo standalone.xml.
    <system-properties>
        <property name="org.jboss.dashboard.LocaleManager.installedLocaleIds" value="en,es,de,fr,ja,pt"/>
        <property name="org.jboss.dashboard.LocaleManager.defaultLocaleId" value="fr"/>
    </system-properties>
    
    Copy to Clipboard Toggle word wrap
En este ejemplo, se borró chino (zh) de la lista de parámetros regionales instalados así que los usuarios no podrán cambiar el panel de construcción a chino. El panel de construcción presentará el contenido en francés, el cual es el parámetro regional predeterminado. Los usuarios podrán seleccionar otros idiomas que estén definidos (inglés, español, alemán, japonés, portugués) en este archivo.

Nota

Dentro de la Central empresarial, no es necesario volver a iniciar el servidor de aplicaciones después de cambiar los parámetros regionales si agrega el parámetro "locale" a la URL de la Central empresarial. Sin embargo, con Dashbuilder, el servidor de aplicaciones si se debe reiniciar después de haber cambiado los archivos de configuración.

15.3. Ejecución de la MVJ con la codificación UTF-8

Red Hat JBoss BPM Suite está diseñada para trabajar con la codificación UTF-8. Si la MVJ utiliza un sistema de codificación diferente entonces es posible que ocurran errores inesperados.
Para asegurarse de que la MVJ utilice UTF-8 entonces use la opción "-Dfile.encoding=UTF-8".

Parte IV. Ejecución

Capítulo 16. Servidor de ejecución

16.1. Reglas de tareas

Las reglas de tareas son reglas ejecutadas de forma automática cuando se crea o completa una tarea humana. Este mecanismo puede ser utilizado, por ejemplo, para asignar automáticamente una tarea humana a un usuario específico para efectuar una tarea si faltan los datos.

16.1.1. Definición de reglas de tareas

Para definir reglas de tareas, proceda de la siguiente manera:
  1. Cree un archivo que contenga la definición de la regla sobre classpath de Central empresarial (la ubicación recomendada es $DEPLOY_DIR/standalone/deployments/business-central.war/WEB-INF/classes/):
    • default-add-task.drl con las reglas que deben verificarse cuando se crea la tarea humana.
    • default-complete-task.drl with the rules con las reglas que deben verificarse cuando se completa la tarea humana.
  2. Defina las reglas en el archivo.

Ejemplo 16.1. El contenido default-add-task.drl

package defaultPackage

import org.kie.api.task.model.Task;
import org.kie.api.task.model.User;
import org.kie.api.task.model.Status;
import org.kie.api.task.model.PeopleAssignments;
import org.jbpm.services.task.rule.TaskServiceRequest;
import org.jbpm.services.task.exception.PermissionDeniedException;
import org.jbpm.services.task.impl.model.*;
import java.util.HashMap;
import java.util.List;


global TaskServiceRequest request;

rule "Don't allow Mary to complete task when rejected"
    when
        $task : Task()
        $actualOwner : User( id == 'mary') from $task.getTaskData().getActualOwner()
        $params : HashMap(this["approved"] == false)
    then
        request.setAllowed(false);
        request.setExceptionClass(PermissionDeniedException.class);
        request.addReason("Mary is not allowed to complete task with approved false");
end
Copy to Clipboard Toggle word wrap
Si los propietarios potenciales de una tarea human contienen el usuario Mary la tarea automáticamente asignará al usuario mary.

Ejemplo 16.2. El contenido default-complete-task.drl

package defaultPackage

import org.kie.api.task.model.Task;
import org.kie.api.task.model.User;
import org.kie.api.task.model.Status;
import org.kie.api.task.model.PeopleAssignments;
import org.jbpm.services.task.rule.TaskServiceRequest;
import org.jbpm.services.task.exception.PermissionDeniedException;
import org.jbpm.services.task.impl.model.*;
import java.util.HashMap;
import java.util.List;


global TaskServiceRequest request;

rule "Don't allow Mary to complete task when rejected"
    when
        $task : Task()
        $actualOwner : User( id == 'mary') from $task.getTaskData().getActualOwner()
        $params : HashMap(this["approved"] == false)
    then
        request.setAllowed(false);
        request.setExceptionClass(PermissionDeniedException.class);
        request.addReason("Mary is not allowed to complete task without approval.");
end
Copy to Clipboard Toggle word wrap
Si los propietarios potenciales de una tarea human contienen el usuario Mary la tarea automáticamente asignará al usuario mary.

16.2. Sesión de correo

La sesión de correo define las propiedades del servidor de correo que se utilizan para enviar correo-e si es requerido por la aplicación, tal como, mecanismos de escalación o notificación (consulte Red Hat JBoss BPM Suite User Guide).

16.2.1. Configuración de la sesión de correo

Para configurar la sesión de correo de su motor de ejecución, proceda de la siguiente manera:
  1. Abra el perfil del archivo de configuración respectivo (standalone.xml o host.xml) para editarlo.
  2. Agregue la sesión de correo al subsistema urn:jboss:domain:mail:1.1 .

    Ejemplo 16.3. Nueva sesión de correo en localhost

    <subsystem xmlns="urn:jboss:domain:mail:1.1">
        <!-- omitted code -->
    
        <mail-session jndi-name="java:/mail/bpmsMailSession" debug="true" from="bpms@company.com">
            <smtp-server outbound-socket-binding-ref="bpmsMail"/>
        </mail-session>
    </subsystem>
    
    Copy to Clipboard Toggle word wrap
  3. Defina el socket de salida de la sesión en e archivo de configuración del perfil.

    Ejemplo 16.4. Definición de socket de salida

    <outbound-socket-binding name="bpmsMail">
        <remote-destination host="localhost" port="12345"/>
    </outbound-socket-binding>
    
    Copy to Clipboard Toggle word wrap

Capítulo 17. Complemento para Red Hat JBoss Developer Studio

17.1. Complemento

Parte V. Monitorización

Capítulo 18. Monitorización de procesos

18.1. JBoss Operations Network

Un complemento para JBoss Operations puede ser utilizado para monitorizar sesiones de reglas para Red Hat JBoss . El complemento utiliza Extensiones de administración de Java (JMX) para monitorizar la sesiones de reglas.
Debido a una limitación para pasar los argumentos de monitoreamiento de la MVJ por medio d ela línea de comandos Maven, todos los parámetros com.sun.management.jmxremote.* se deben pasar a la aplicación JBoss por medio del archivo de configuración pom.xml.
Por favor consulte la JBoss Operations Network Guía de instalación para obtener instrucciones para el servidor JBoss ON.

18.2. Instalación de complementos de JBoss BRMS en JBoss ON

El complemento de Red Hat JBoss BRMS para JBoss Operations Network se puede instalar ya sea copiando los archivos JAR complemento en el directorio complemento de JBoss Operations Network o por medio de la GUI de JBoss Operations Network.
El siguiente procedimiento guía un usuario para copiar los archivos JAR complemento en el directorio complemento de JBoss Operations Network

Procedimiento 18.1. Copiado de los archivos JAR complemento de JBoss BRMS

  1. Extraiga el archivador paquete complemento de JBoss BRMS en una ubicación temporal. Esto crea un subdirectorio con el nombre jon-plugin-pack-brms-bpms-3.3.0.GA. Por ejemplo:
    [root@server rhq-agent]# unzip jon-plugin-pack-brms-bpms-3.3.0.GA.zip -d /tmp
    Copy to Clipboard Toggle word wrap
  2. Copie los archivos extraídos JAR complemento de JBoss BRMS del directorio jon-plugin-pack-brms-bpms-3.2.0.GA/ en el directorio complemento del servidor de JBoss ON. Por ejemplo:
    [root@server rhq-agent]# cp /tmp/jon-plugin-pack-brms-bpms-3.3.0.GA/*.jar /opt/jon/jon-server-3.3.0.GA1/plugins
    Copy to Clipboard Toggle word wrap
  3. Inicie el servidor JBoss Operations Network para actualizar el complemento JBoss BRMS.
Para cargar el complemento JBoss BRMS por medio de la GUI de JBoss Operations Network este es el procedimiento

Procedimiento 18.2. Carga del complemento de JBoss BRMS por medio de la GUI

  1. Inicie el servidor de JBoss Operations Network e inicie sesión para acceder a la GUI.
  2. En la parte superior de la GUI, abra el menú Administration.
  3. En el área Configuration a la izquierda, seleccione el enlace Plugins de servidor.
  4. Al final de la lista de complementos del servidor cargado haga clic en el botón Cargar un plugin y seleccione el complemento BRMS.
  5. El complemento JBoss BRMS para JBoss Operations Network ha sido cargado.

18.3. Monitorización de bases Kie y sesiones Kie

Con el fin de que JBoss Operations Network monitoree KieBases y KieSessions, los MBeans deben estar habilitados.
Los MBeans se pueden habilitar ya sea pasando el parámetro:
-kie.mbeans = enabled
Copy to Clipboard Toggle word wrap
O por medio de la API:
KieBaseConfiguration kbconf = KieServices.Factory.get().newKieBaseConfiguration();
    kbconf.setOption(MBeansOption.ENABLED);
Copy to Clipboard Toggle word wrap

Nota

Kie Services han sido implementados para JBoss BRMS 6; para JBoss BRMS 5, Drools Services era la convención de nombrado utilizada y tenía diferentes medidas en las sesiones. Por ejemplo, el renombrado activacióncoincidencia ocurría en la versión actualizada.
Por favor consulte la guía JBoss Operations Network Resource Monitoring and Operations Reference para obtener información sobre la importación de sesiones Kie en la vista de inventario con el fin de monitorear.

19.1. Acceso a Red Hat JBoss BPM Suite Dashbuilder

Dashbuilder es la interfaz de usuario basada en red de la suite BPM JBoss Red Hat para monitorear actividades empresariales. Para acceder el constructor de páneles (Dashbuilder) desde la central empresarial vaya a PanelesPaneles de procesos & tareas.
El pánel que se presenta proporciona estadísticas sobre los datos en tiempo de ejecución seleccionados a su izquierda. Puede crear su propio pánel en el constructor de páneles que se presenta al hacer clic en PanelesPaneles empresariales.

19.2. Gestión de seguridad

Para administrar la seguridad puede definir políticas de autorización personalizadas para otorgar o denegar acceso al espacio de trabajo, página o instancias de panel por rol.
A continuación encontrará definidas una lista de roles disponibles para Dashbuilder:
  • admin - administra el sistema Red Hat JBoss BPM Suite. Tiene todos los derechos para hacer cambios, incluida la habilidad de agregar y borrar usuarios del sistema.
  • desarrollador - implementa el código requerido para que los procesos funcionen. Utiliza la conexión JBDS en su mayoría para ver procesos pero utiliza la herramienta de red ocasionalmente.
  • analista - es el responsable de crea y diseñar procesos en el sistema. Crea flujos de procesos y maneja peticiones de cambio de procesos. Necesitar probar los procesos que crea. También crea formularios y paneles.
  • usuario - el usuario diario del sistema que realiza acciones en tareas empresariales que se requieren para que los procesos continuen. Funciona principalmente con las listas de tareas.
  • mánager - un mánager es un observador del sistema que está interesado en las estadísticas relacionadas con los procesos empresariales y su rendimiento, indicadores empresariales y otros reportes del sistema y de las personas que interactúan con el sistema.
Gracias al sistema de permisos, puede construir una estructura de espacio de trabajo con varias páginas, menús y paneles y define las páginas y paneles dentro de una página que serán visible para cada rol. También puede definir tipos especiales de usuarios y les otorga acceso restringido a ciertas funcionalidades de las herramientas o incluso acceso restringido a un subgrupo de páginas.

19.3. Permisos del espacio de trabajo

Procedimiento 19.1. Acceso a los permisos del espacio de trabajo

  1. Inicie sesión en los Paneles empresariales de la Central empresarial (tal como se describe en la sección sobre Acceso a Red Hat JBoss BPM Suite Dashbuilder).
  2. Seleccione el Panel apropiado del menú desplegable del espacio de trabajo.

    Figura 19.1. Espacio de trabajo del constructor de paneles

  3. Haga clic en el botón Edit selected workspace properties para acceder al Panel del espacio de trabajo.
  4. Haga clic en la etiqueta Permisos para ver la pantalla de gestión de permisos.

    Figura 19.2. Pantalla de permisos

Bajo la sección Asignación de permisos hay una lista de acciones permitidas que se aplican al rol seleccionado:
  • Acceso: permiso para iniciar sesión en la aplicación.
  • Administrar: permiso para acceder la barra de herramientas y las funcionalidades de configuración del sistema.
  • Crear páginas: habilidad para crear nuevas páginas del proyecto.
  • Editar: permiso para cambiar las propiedades del espacio de trabajo.
  • Limpiar: habilidad para borrar el espacio de trabajo.
  • Modificar permisos: habilidad para otorgar/negar permisos.
  • Cambiar paneles permitidos: permiso para restringir el tipo de paneles que se pueden utilizar en este espacio de trabajo.
Para asignar un permiso tiene que seleccionar el rol destino y la lista de acciones permitidas sobre el recurso seleccionado.

Figura 19.3. Asignación de permisos

  • Roles destino (quién): el usuario al que se le otorgará/negará los permisos definidos.
  • Acciones permitidas: dependiendo del tipeo de recurso podemos habilitar/deshabilitar lo que el usuario puede hacer en este recurso.
  • Reverso (opcional): cuando tenemos un grupo de roles y queremos otorgar/negar un permiso a todos los roles a excepción de uno.

Nota

Por defecto, el grupo completo de permisos van al rol admin. Esto facilita el crear un usuario que tenga todos los permisos en tanto se asigne el rol admin.

19.4. Permisos de páginas

  1. Para acceder a Permisos de páginas, ubique el menú desplegable Páginas bajo el panel jBPM (o el panel que haya seleccionado).
  2. Después de expandir Páginas, expanda la opción Panel de procesos.
  3. Seleccione la opción Permisos de página.

Figura 19.4. Permisos de páginas

Bajo la sección Asignación de permisos hay una lista de acciones permitidas que se aplican al rol seleccionado:
  • Visualizar: permiso para hacer la página visible.
  • Edit: habilidad para cambiar las propiedades de la página.
  • Limpiar: habilidad para borrar la página.
  • Modificar permisos: habilidad para otorgar/negar permisos para la página.

19.5. Permisos del panel

  1. Para acceder a la página Permisos de panel expanda la opción Instancias del panel bajo el panel jBPM (o el panel que esté utilizando).
  2. Expanda la opción Panel y luego expanda el Panel de procesos.
  3. Expanda Paneles y seleccione el proceso apropiado.
  4. Abra la página Permisos de panel.
A continuación podrá ver una instantánea de la pantalla de gestión de permisos para un panel dado (en este ejemplo, el panel de procesos):

Figura 19.5. Pantalla de configuración de los permisos del panel

Las acciones permitidas son las siguientes:
  • Visualizar: hacer el panel visible.
  • Modificar: cambiar las propiedades del panel.
  • Modificar permisos: habilidad para otorgar/negar permisos para el panel.

Apéndice A. Historia de revisiones

Historial de revisiones
Revisión 1.0.0-1.1Tue Jan 5 2016Red Hat Localization Services
Los archivos de traducción sincronizados con fuentes XML 1.0.0-1
Revisión 1.0.0-1Wed Aug 05 2015Petr Penicka
Construido de la especificación de contenido: 22829, Revisión: 765028 por ppenicka

Aviso Legal

Copyright © 2015 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Volver arriba
Red Hat logoGithubredditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar. Explore nuestras recientes actualizaciones.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

Theme

© 2026 Red Hat