2.2. La instalación agrupada genérica implementable

Para instalar Red Hat JBoss BPM Suite en el Red Hat JBoss Web Server (EWS), necesita utilizar el paquete implementable genérico del producto.
Para la instalación en EWS, el paquete implementable genérico contiene bibliotecas de seguridad y administradores de transacciones adicionales que no son parte de Red Hat JBoss EWS.
Observe que el paquete implementable genérico, requiere los siguientes archivos ZIP:
  • jboss-bpmsuite-VERSION-deployable-generic.zip: contiene las aplicaciones web business-central.war, dashbuilder.war y kie-server.war.
  • jboss-bpmsuite-VERSION-engine.zip: bibliotecas de motor de ejecución para incorporar el motor en su aplicación y otras bibliotecas necesarias para implementación genérica.

2.2.1. Descargar el paquete genérico implementable

Para descargar el paquete genérico implementable Red Hat JBoss BPM Suite para JBoss Web Server, siga lo siguiente:
  1. Vaya al portal del cliente de Red Hat e inicie sesión.
  2. Haga clic en Descargas.
  3. En la lista de productos haga clic en Red Hat JBoss BPM Suite.
  4. Desde el menú desplegable Versión, seleccióne la version 6.1 (si aún no ha seleccionado.)
  5. En la sección de Descargas de software que aparece, navegue Red Hat JBoss BPM Suite 6.1 Deployable for all supported containers y luego haga clic en Descargar.
  6. También navegue a los archivos Red Hat JBoss BPM Suite 6.1 Engine y haga clic en Descargar para descargar los archivos JBoss BPM Suite Engine.

2.2.2. Instalación del paquete implementable genérico

Para instalar el paquete implementable genérico, necesita configurar lo siguiente después de haber instalado la plataforma subyacente (Red Hat JBoss WS):

2.2.2.1. Configuración del gestor de transacciones para Red Hat JBoss Web Server 2.1 (Tomcat 7)

  1. Extraiga el paquete zip genérico implementable que descargó del Portal del cliente de Red Hat a una ubicación temporal. Este paquete zip contiene los siguientes tres archivos de aplicaciones web: business-central.war, dashbuilder.war y kie-server.war en un formato utilizado. Renombre estas carpetas para retirar la extensión .war.
  2. Copie estas carpetas directamente en la carpeta $TOMCAT_DIR/webapps.
    Al final debe tener tres carpetas en formato en un formato explotado: $TOMCAT_DIR/webapps/business-central, $TOMCAT_DIR/webapps/dashbuilder and $TOMCAT_DIR/webapps/kie-server.

    Nota

    $TOMCAT_DIR se refiere al directorio de inicio en donde se encuentra su servidor de red. Remplácelo con la ruta a su directorio de inicio del servidor de red, por ejemplo: /home/john/jboss-ews-2.1/tomcat7/
  3. Extraiga el contenido de los archivos JBoss BPM Suite Engine del archivador a una ubicación temporal desde donde puede copiar las bibliotecas requeridas. Esta carpeta ahora contiene todas las bibliotecas centrales JBoss BPM Suite en la carpeta extraída y una carpeta lib.
  4. Instale el gestor de transacciones.

    Aviso

    Por favor observe que la siguiente sección describe la configuración de un gestor de transacción, Bitronix que no recibe oficialmente soporte de Red Hat.
    Copie las siguientes bibliotecas JAR del administrador de transacciones de la carpeta lib al directorio $TOMCAT_DIR/lib/:
    • btm-VERSION.jar
    • btm-tomcat55-lifecycle-VERSION.jar
    • jta-VERSION.jar
    • slf4j-api-VERSION.jar
    • slf4j-jdk14-VERSION.jar
    Además, descargue la siguiente biblioteca y cópiela en la carpeta $TOMCAT_DIR/lib/ también:
  5. Instale el controlador en su base de datos
    Copie el archivo jar con el controlador de base de datos importante para $TOMCAT_DIR/lib/.

    Nota

    Si utiliza la base de datos H2 integrada, el controlador está disponible en business-central/WEB-INF/lib/.
  6. Cree los archivos de configuración del gestor de transacciones en $TOMCAT_DIR/conf/:
    • btm-config.properties
      bitronix.tm.serverId=tomcat-btm-node0
      bitronix.tm.journal.disk.logPart1Filename=${btm.root}/work/btm1.tlog
      bitronix.tm.journal.disk.logPart2Filename=${btm.root}/work/btm2.tlog
      bitronix.tm.resource.configuration=${btm.root}/conf/resources.properties
      
    • resources.properties (el resource.ds1.uniqueName define el nombre de la fuente de datos utilizado después en la definición de recursos tomcat - tome nota de este valor).
      Asegúrese de cambiar los valores en las siguientes definiciones para que coincidan con su entorno.

      Ejemplo 2.1. Definición de la fuente de datos H2

      resource.ds1.className=bitronix.tm.resource.jdbc.lrc.LrcXADataSource
      resource.ds1.uniqueName=jdbc/jbpm
      resource.ds1.minPoolSize=10
      resource.ds1.maxPoolSize=20
      resource.ds1.driverProperties.driverClassName=org.h2.Driver
      resource.ds1.driverProperties.url=jdbc:h2:file:~/jbpm
      resource.ds1.driverProperties.user=sa
      resource.ds1.driverProperties.password=
      resource.ds1.allowLocalTransactions=true

      Ejemplo 2.2. Definición de la fuente de datos MySQL 5.5

      resource.ds1.className=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
      resource.ds1.uniqueName=jdbc/jbpm
      resource.ds1.minPoolSize=0
      resource.ds1.maxPoolSize=10
      resource.ds1.driverProperties.URL=jdbc:mysql://localhost:3306/sampledb
      resource.ds1.driverProperties.user=dbuser
      resource.ds1.driverProperties.password=dbpassword
      resource.ds1.allowLocalTransactions=true

      Ejemplo 2.3. Definición de la fuente de datos DB2 Type 4

      resource.ds1.className=com.ibm.db2.jcc.DB2Driver
      resource.ds1.uniqueName=jdbc/jbpm
      resource.ds1.minPoolSize=0
      resource.ds1.maxPoolSize=10
      resource.ds1.driverProperties.URL=jdbc:db2://localhost:50000/sampledb
      resource.ds1.driverProperties.user=dbuser
      resource.ds1.driverProperties.password=dbpassword
      resource.ds1.allowLocalTransactions=true

      Ejemplo 2.4. Definición de la fuente de datos Oracle

      resource.ds1.className=oracle.jdbc.xa.client.OracleXADataSource
      resource.ds1.uniqueName=jdbc/jbpm
      resource.ds1.minPoolSize=0
      resource.ds1.maxPoolSize=10
      resource.ds1.driverProperties.URL=jdbc:oracle:thin:@//localhost:1521/bpms 
      resource.ds1.driverProperties.user=dbuser
      resource.ds1.driverProperties.password=dbpassword
      resource.ds1.allowLocalTransactions=true

      Ejemplo 2.5. Definición de la fuente de datos del servidor Microsoft SQL

      resource.ds1.className=com.microsoft.sqlserver.jdbc.SQLServerDriver
      resource.ds1.uniqueName=jdbc/jbpm
      resource.ds1.minPoolSize=0
      resource.ds1.maxPoolSize=10
      resource.ds1.driverProperties.URL=jdbc:sqlserver://localhost:1433;databaseName=bpms;
      resource.ds1.driverProperties.user=dbuser
      resource.ds1.driverProperties.password=dbpassword
      resource.ds1.allowLocalTransactions=true
  7. Configure el escucha de gestor de transacciones en $TOMCAT_DIR/conf/server.xml para iniciar y detener Bitronix en el arranque y detención del contenedor:
    Agregue el siguiente elemento como el último elemento <Listener> en el elemento <Server>:
    <Listener className="bitronix.tm.integration.tomcat55.BTMLifecycleListener" />
  8. Defina la propiedad del sistema btm.root y la ubicación en donde se ubica el archivo de configuración bitronix:
    En $TOMCAT_DIR/bin/, cree el archivo setenv.sh con el siguiente contenido:
    CATALINA_OPTS="-Xmx512M -XX:MaxPermSize=512m -Djava.security.auth.login.config=$CATALINA_HOME/webapps/business-central/WEB-INF/classes/login.config -Dbtm.root=$CATALINA_HOME -Dbitronix.tm.configuration=$CATALINA_HOME/conf/btm-config.properties -Dorg.jbpm.designer.perspective=RuleFlow -Djbpm.tsr.jndi.lookup=java:comp/env/TransactionSynchronizationRegistry"
    La propiedad org.jbpm.designer.perspective se establece a RuleFlow para que la perspectiva para el diseñador sea RuleFlow en lugar de Full. Otórguele al archivo permisos de ejecución si Grant the file execute permissions if applicable.
    La propiedad java.security.auth.login.config debe establecerse para que el clon ssh del repositorio git funcione.

    Importante

    En sistemas Microsoft Windows remplace el valor $CATALINA_HOME en el contenido del archivo con el nombre de la variable de entorno equivalente o use la ruta absoluta y agregue los valores en el archivo setenv.bat, tal como se muestra en el siguiente ejemplo:
    set "CATALINA_OPTS=-Xmx512M -XX:MaxPermSize=512m -Dbtm.root=C:/Tomcat -Dbitronix.tm.configuration=C:/Tomcat/conf/btm-config.properties -Dorg.jbpm.designer.perspective=RuleFlow"

2.2.2.2. Configuración de una central empresarial para Red Hat JBoss Web Server 2.1 (Tomcat 7)

Para establecer la central empresarial haga lo siguiente:
  1. Configure Valve para que la aplicación web Business Central web pueda cargar los usuarios configurados en Tomcat:
    1. Defina los usuarios y roles en $TOMCAT_DIR/conf/tomcat-users.xml. Note que la central empresarial requiere que los usuarios tengan los roles especificados como admin y/o analyst (fpara más información sobre definiciones de roles y usuarios consulte la documentación de Tomcat 7).
      El programa listado a continuación muestra un ejemplo de cómo se agregarían estos dos roles y se le asignarán estos roles al usuario llamado bpmsadmin.

      Nota

      Asegúrese de que los nombres de usuario no estén en conflicto con los roles conocidos. Por ejemplo, no debe crear un usuario con el nombre de usuario admin.
        <role rolename="admin"/>
        <role rolename="analyst" />
        <user username="bpmsadmin" password="P@ssw0rd" roles="admin,analyst"/>
      
    2. Desplace (no copie) kie-tomcat-integration-VERSION.jar de $TOMCAT_DIR/webapps/business-central/WEB-INF/lib/ a $TOMCAT_DIR/lib/.
    3. Copie jboss-jaxb-api-VERSION.jar from $TOMCAT_DIR/webapps/business-central/WEB-INF/lib/ en $TOMCAT_DIR/lib/.
    4. En $TOMCAT_DIR/conf/server.xml agregue la declaración de válvula Tomcat en el elemento relevante <host>:
      <Valve className="org.kie.integration.tomcat.JACCValve" />
  2. Si está usando una fuente de datos diferente de la predeterminada proporcionada por la base de datos H2 subyacente necesitará configurar la persistencia. Si está utilizando la base de datos H2 predeterminada entonces puede ignorar el resto de pasos en este procedimiento.
    En este procedimiento se configura una fuente de datos con el nombre JNDI jdbc/myDatasource tal como se define en uniqueName=jdbc/jbpm en el archivo bitronix resources.properties (para la opción MySQL):
    1. En business-central/META-INF/context.xml reemplace el nombre JNDI de la fuente de datos en el elemento <Resource>. El atributo uniqueName se refiere a la propiedad resource.ds1.uniqueName establecida en resources.properties:
      <Resource name="jdbc/myDatasource" uniqueName="jdbc/jbpm" auth="Container" removeAbandoned="true" factory="bitronix.tm.resource.ResourceObjectFactory" type="javax.sql.DataSource"/>
    2. En business-central/WEB-INF/web.xml remplace el nombre JNDI de la fuente de datos en el elemento <res-ref-name> con su nombre de fuente de datos:
      <resource-ref>
              <description>Console DS</description>
              <res-ref-name>jdbc/myDatasource</res-ref-name>
              <res-type>javax.sql.DataSource</res-type>
              <res-auth>Container</res-auth>
      </resource-ref>
    3. Cambie business-central/WEB-INF/classes/META-INF/persistence.xml.
      En este archivo cambie el nombre del dialecto hibernate utilizado para su base de datos si está utilizando una base de datos diferente de H2. El código a continuación demuestra la información de la base de datos original para persistence.xml:
      <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
      Esta información se puede actualizar de la siguiente manera (tal como se demuestra con la base de datos MySQL a continuación):
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>

      Nota

      El dialecto para DB2 es org.hibernate.dialect.DB2Dialect, para DB2 en AS/400 es org.hibernate.dialect.DB2400Dialect, para Oracle es org.hibernate.dialect.Oracle10gDialect y para el servidor Microsoft SQL es org.hibernate.dialect.SQLServerDialect
    4. Cambie el archivo business-central/WEB-INF/classes/META-INF/persistence.xml de manera que la máquina de procesos JBoss BPM Suite pueda usar la nueva base de datos.
      El código a continuación demuestra la información de la fuente de datos original para persistence.xml:
      <jta-data-source>java:comp/env/jdbc/jbpm</jta-data-source>
      Cambie este valor a la fuente de datos definida anteriormente:
      <jta-data-source>java:comp/env/jdbc/myDatasource</jta-data-source>
  3. Ahora puede iniciar JBoss Web Server para iniciar sesión en la central empresarial.
    1. Ejecute startup.sh en el directorio $TOMCAT_HOME/bin.
      ./startup.sh
    2. Vaya a http://localhost:8080/business-central en un navegador web.
    3. Inicie sesión con el nombre de usuario/contraseña definidos en el archivo tomcat-users.xml.

2.2.2.3. Configuración de Dashbuilder para Red Hat JBoss Web Server 2.0 (Tomcat 7)

Nota

Antes de configurar Dashbuilder en Red Hat JBoss Web Server, debe asegurarse de tener instalada correctamente la Central Empresarial como se describe en Sección 2.2.2.2, “Configuración de una central empresarial para Red Hat JBoss Web Server 2.1 (Tomcat 7)”. Dashbuilder necesita las tablas de base de datos del registro de historia para existir, las cuales únicamente son provistas por la Central empresarial. Si estas tablas no están presentes en la base de datos antes de intentar los pasos de abajo, es posible que se presenten errores de inicialización.
Para establecer un panel de construcción en el servidor de red JBoss Red Hat, haga lo siguiente:
  1. Defina usuarios y roles en $TOMCAT_DIR/conf/tomcat-users.xml. Observe que Dashbuilder requiere que los usuarios tengan el rol especificado como admin y/o analyst. Si ya definió estos usuarios para la Central empresarial entonces no necesita definirlos de nuevo.
  2. Habilite el inicio de sesión único entre Dashbuilder y la Central empresarial borrando el comentario de las siguientes líneas en el archivo $TOMCAT_DIR/conf/server.xml:
    <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
  3. Como con la configuración de la Central empresarial, si está utilizando una base de datos diferente a la predeterminada y una base de datos integrada H2, deberá configurar persistencia.
    En este procedimiento, configure una fuente de datos con el nombre JNDI jdbc/dashbuilderDS como se define en uniqueName=jdbc/jbpm en el archivo bitronix resources.properties .
    1. En dashbuilder/META-INF/context.xml reemplace el nombre JNDI de la fuente de datos en el elemento <Resource>. El atributo uniqueName se refiere a la propiedad resource.ds1.uniqueName establecida en resources.properties:
      <Resource name="jdbc/dashbuilderDS" uniqueName="jdbc/jbpm" auth="Container" removeAbandoned="true" factory="bitronix.tm.resource.ResourceObjectFactory" type="javax.sql.DataSource"/>

      Nota

      Dependiendo de su base de datos es posible que necesite definir otras propiedades aquí también. Por ejemplo, en un entorno Oracle esta entrada puede verse como el siguiente listado.
      <Resource name="jdbc/jbpm" uniqueName="jdbc/jbpm" auth="Container"  removeAbandoned="true" factory="bitronix.tm.resource.ResourceObjectFactory" type="javax.sql.DataSource" username="username" password="password"  driverClassName="oracle.jdbc.xa.client.OracleXADataSource" url="jdbc:oracle:thin:YOUR-URL:1521:YOUR-DB" maxActive="8" />
      
    2. En dashbuilder/WEB-INF/web.xml agregue el nombre JNDI de la fuente de datos en el elemento <res-ref-name> con su nombre de fuente de datos:
      <resource-ref>
          <description>Dashboard Builder Datasource</description>
          <res-ref-name>jdbc/dashbuilderDS</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
      </resource-ref>
    3. En dashbuilder/META-INF/context.xml defina la fábrica de transacciones:
       <Transaction factory="bitronix.tm.BitronixUserTransactionObjectFactory"/>
    4. Actualice el nombre JNDI de la fuente de datos en dashbuilder/WEB-INF/etc/hibernate.cfg.xml en el elemento <session-factory>:
      <property name="connection.datasource">java:/comp/env/jdbc/dashbuilderDS</property>
  4. Reinicie el servidor de red Java para que los cambios tengan efecto. Una vez reiniciado puede navegar al Dashbuilder desde la central empresarial o directamente a través de: http://localhost:8080/dashbuilder.