Oracle BPM
¿ Qué es Oracle BPM ? Es un entorno de ejecución de procesos de negocios de empresas y está compuesto de diferentes aplicaciones y servicios que pueden ser instalados y configurados en diferentes topologías a manejar diferentes escenarios, soportando diferentes usos.
Un entorno BPM es la infraestructura técnica en la cuál se ejecutan procesos de negocio. Definimos entorno BPM como todos los componentes ejecutables (aplicaciones y servicios) que trabajan juntos para permitir la ejecución de procesos de negocio.
Contenido
- 1 Infraestructura técnica
- 2 Ejemplos de entornos Oracle BPM
- 3 Componentes de un entorno BPM
- 4 BPM Clients
- 5 Servicios de soporte
- 6 Servicios requeridos por el proceso de negocio
- 7 Servicios provistos por componentes BPM
- 8 Elección de una topología
- 9 Guia para definir una topología
- 10 Requisitos
- 11 Demo
- 12 Problemas y soluciones
- 13 Ver también
Infraestructura técnica
Algunos componentes deben estar siempre presente para el entorno de ejecución, mientras que otros dependen de la activación de características o requisitos externos. Oracle BPM soporta una variada combinación de estos componentes, que van desde muy sencillos y pequeños a toda la organización.
Los componentes que tienen que estar presentes:
- por lo menos un motor BPM con su correpondiente esquema de base de datos
- un directorio en el repositorio que contiene el esquema de base de datos
- la aplicación BPM, vista de usuario final
- la aplicación BPM, vista administrador
Los componentes opcionales:
- servidor LDAP
- más motores BPM
- un servicio de monitoreo de procesos
- múltiples áreas de trabajo de BPM
- clientes JAVA
Ejemplos de entornos Oracle BPM
Los siguientes gráficos proveen una vista de alto nivel de diferentes partes. Estos gráficos muestran 3 tipos de artefactos: cajas, puntos, y registros.
- Las cajas representan aplicaciones y servicios en el entorno.
- Los puntos representan los servicios expuestos por las aplicaciones (cajas).
- Las flechas representan una conexion entre una aplicación y un servicio expuesto por otro.
Ejemplo 1: ilustra la arquitectura generada con el wizard de Oracle BPM Enterprise Standalone
Ejemplo 2: ilustra la arquitectura generada con el wizard de Oracle BPM Enterprise for WebLogic
Ejemplo 3: entorno clusterizado a través de Oracle BPM Enterprise for WebLogic
Representea una topología escalable, típicamente usada en instalaciones grandes.
Componentes de un entorno BPM
Esta sección enfoca sobre las cajas presentadas en los gráficos de arriba. Las cajas representan la ejecución de aplicaciones como parte del entorno. Consideramos aplicaciones a procesos Java standalone, servidores web y de aplicaciones, aplicaciones web, aplicaciones JEE (EARs), servidores de base de datos, servidores LDAP.
Desde esta perspectiva, los componentes de un entorno BPM se pueden dividir en 3 grupos: BPM Core, BPM Clients y servicios de soporte. Cada entorno BPM contendrá componenetes en cada uno de estos grupos.
I can't believe I've been going for years wtihout knowing that.
BPM Clients
Los clientes BPM son aplicaciones que interactuan con los procesos de negocio que ejecutan en los motores BPM.
La mayoría de los clientes de BPM se conectan a los motores de BPM a través de los servicios expuestos por el motor. Pero hay otro tipo de cliente BPM: los que interactúan con los procesos de negocio a través de recursos externos, como una cola JMS, un sistema de archivos, o una tabla de base de datos. En este caso es el proceso de negocio en sí - como parte de su definición - la que establece una interacción empujando y tirando de la información a través de estos recursos, la definición de un contrato con la entidad externa para intercambiar información. Desde el punto de vista de que el servicio de motores BPM utiliza el cliente para conectarse, tenemos dos grandes grupos: los clientes PAPI, que utilizan el servicio de proceso interno, y los clientes de servicios Web.
Cliente PAPI
Es el proceso API y refiere a la API de Java que este cliente usa para interactuar con el motor BPM. PAPI está embebido en muchas aplicaciones web. Realiza funciones críticas desde el punto de vista de usuario final. Está configurado para autenticar y autorizar usuarios finales, encuentra los procesos disponibles en el directorio BPM, conecta a los motores BPM que ejecutan dichos procesos, y retorna información a los usuarios finales. Es la única API de JAVA para la interacción de procesos.
With the bases ldoaed you struck us out with that answer!
Area de trabajo BPM
El "workspace" o area de trabajo BPM es lo más importante en la aplicación de usuario final. El area de trabajo BPM es a los procesos de negocio lo que el Outlook es al mail: la principal aplicación de interacción. El area de trabajo BPM es un cliente PAPI, y tiene funcionalidad adicional que es importante entender. Desde la perspectiva de la topología, es una práctica saludable tener áreas de trabajo BPM siempre disponible. El area de trabajo BPM provee un montón de funcionalidad sobre PAPI: soporte a flujos de pantallas, tableros, diseños de páginas, etc. La aplicación también permite adaptar la interfaz de usuario a través de hojas de estilos y otras configuraciones. Autenticación y SSO (Single Sign On) tienen importantes consideraciones en el área de trabajo de BPM. El área de trabajo BPM puede confiar en el servidor web (Tomcat, Weblogic, etc) para autenticar y conectar a usuarios remotos.
Clientes Web Service (WS)
Pueden elegirse clientes WS entre dos servicios disponibles: los servicios "Process-WS" expuestos por el motor BPM y la aplicación "PAPI-WS".
El servicio "Process-WS" expone ciertas actividades del proceso de negocio como operaciones de WS. En particular, puede ser usado para crear nuevas instancias de procesos y enviar notificaciones a las instancias de procesos existentes. Las actividades de los procesos de negocio tienen que ser marcadas explícitamente como expuestas para ser agregadas al servicio. Técnicamente, este servicio es provisto por el mismo motor BPM. Cuando levanta el motor, lee todos los procesos definidos y busca cuales actividades están marcadas. La interfaz expuesta por el servicio es definida por el parámetro las actividades expuestas (creación y espera notificación), entonces la interfaz del servicio está directamente relacionada a la definición de los procesos.
El servicio "PAPI-WS" expone la mayoría de las operaciones de PAPI a través de una interfaz SOA. Este servicio está separado de la aplicación web PAPI-WS. Esta aplicación se despliega como cualquier otra aplicación web, y simula un servicio web alrededor de la funcionalidad PAPI. El servicio "PAPI-WS" es un cliente PAPI porque usa la API. La interfaz expuesta por el servicio es similar a la API, y esta es independiente de los procesos desplegados. PAPI-WS puede interactuar con cualquier proceso desplegado en el entorno.
Clientes de administracion
Esta categoría incluye el proceso administrador de BPM, la herramienta principal de administración junto con el área de trabajo de BPM y la vista de archivos. Estas aplicaciones web no son usadas para tareas diarias, y son importantes en la configuración y administración del entorno.
El proceso administrador proporciona configuración y administración para la organización, motores, recursos externos, procesos de negocio, y es usado para desplegar procesos de negocio en los motores BPM. Adicionalmente a la configuración técnica de la conexion del directorio BPM, el proceso administrador de BPM también maneja la configuración del resto del entorno.
Desde un punto de vista técnico, el proceso administrador de BPM requiere conectividad al directorio y a motores BPM en orden al monitoreo y control de los mismos (parar, comenzar). El proceso administrador BPM también puede crear el esquema de base de datos requerido por el motor BPM.
La aplicación administradora del área de trabajo de BPM es la responsable de configurar las vistas del área de trabajo (PAPI) y presentar la disponibilidad a los usuarios del área de trabajo. Utilizado por los dueños del negocio o administradores, quienes quieren proporcionar adaptaciones, vistas basadas en roles y presentaciones a usuarios. Por ejemplo, puede proporcionar una vista de seguimiento para los gestores y una cola de trabajo priorizada para los roles no gerenciales.
El visualizador de archivos BPM es una aplicación web que es usada para ver la información archivada de instancias de procesos. Esta información se saca de los motores BPM y se introduce en los archivos de base de datos.
Clasificación por tipo de aplicación
Hay varios tipos de procesos clientes, incluyendo aplicaciones de usuario final y sistemas backend. Las aplicaciones de usuario final pueden ser parte del producto, por ejemplo, área de trabajo BPM. La mayoría de los entornos tendrá al menos una aplicación de usuario final con la que los usuarios del proceso interctúan con el sitema. La aplicación a ser usada está basada en decisiones de diseño tomadas por el equipo de desrrollo. Estas aplicaciones deben ser comunicadas con el motor BPM en orden a acceder a la información de los procesos e invocar operaciones de los procesos.
¿ Cuántos clientes BPM en tu entorno ?
NO hay restricciones en el número y tipo de clientes BPM trabajando en un entorno BPM. Estas decisiones están basadas en la arquitectura del entorno. La mayoría de los entornos usan áreas de trabajo BPM, mientras que otros pueden optar por construir su propia interfaz de usuario, ya sea a través del PAPI o servicios web. Una tercera opción es escribir los servicios backend que llevan a cabo operaciones específicas en los procesos, como la creación de una instancia cuando llega un mensaje en una cola. Un punto de interés en estos entornos distribuidos es la sincronización de información a través de diferentes componentes. Por ejemplo, si una instancia de proceso está actualizada por una tarea ejecutada en el motor BPM, el estado actualizado de la instancia del proceso debe estar propagado a cualquier cliente PAPI que pueda estar escuchando para actualizaciones. Otro ejemplo es que si un nuevo proceso está desplegado, este debería aparecer inmediatamente en el área de trabajo de BPM y estar disponible para usar. La frecuencia y método de actualización de los diferentes componentes del entorno son consideraciones importantes en los cambios posibles de las propiedades del entorno.
Servicios de soporte
Un número de servicios de soporte son requeridos para el entorno BPM, incluyendo base de datos, LDAPs y servidores web y J2EE. Los requerimientos de servicio específico dependen de la configuración, topología, y el motor BPM.
Base de datos
Toda la configuración e información de ejecución se almacena en base de datos. En sistemas de archivos del servidor, se almacenan los archivos de log, cache. La BPM de Oracle requiere un esquema separado de base de datos por cada función específica:
- Requerido por cada directorio BPM: metadata
- Requerido por cada motor BPM: información de ejecución
Conexión a base de datos
Hay 2 maneras para que una aplicación BPM pueda obtener conexión a la base de datos: directamente, via los drivers de JDBC o usando datasources de J2EE. Las aplicaciones independientes como el administrador de BPM, el servicio de monitoreo de procesos y el motor independiente siempre usan los drivers JDBC.
I sacehred a bunch of sites and this was the best.
Recursos J2EE usados por el motor BPM
Los motores BPM que ejecutan en un servidor de aplicaciones J2EE utilizan datasources para acceder al esquema del directoio y motor. Adicionalmente a estos esquemas requeridos, cada motor BPM requiere dos recursos de mensajeria: una cola y un topic. Estos recursos JMS son necesarios para archivar funcionalidad que el motor BPM independiente puede implementar sin ellos. Los servidores de aplicación no proporcionan un framework para las ejecuciones en segunod plano, entonces las colas JMS son usadas como disparadores de eventos en segundo plano con un MDB. El motor BPM genera un mensaje cuando una tarea tiene que ejecutar. El MDB levanta el mensaje y ejecuta la tarea. El topic JMS se usa para enviar información a los clientes PAPI. Los motores BPM necesitan una forma de propagar los cambios a todos los clientes PAPI, y estos clientes esperan mensajes en estos topicos. El motor BPM coloca un mensaje en el topic cuando hay noticias para publicar, y los clientes leen los mensajes y actualizan la memoria interna. Entonces, el motor BPM es el publicador y los clientes PAPI son los suscriptores.
Portal web: centro de integracion web, portal weblogic
La BPM de Oracle está integrada con portales en diferentes formas. Algunas aplicaciones web de BPM, área de trabajo BPM particulares, pueden ser navegadas a través del centro de integración web (WCI) o del portal weblogic (WLP). Otra alternatiba es construir portles, usando PAPI. Este último caso no es diferente de cualquiere adaptación de una aplicación PAPI.
Desde el punto de vista físico, el área de trabajo de BPM ejecuta separado de JVM, tipicamente se construye en un servidor Tomcat, y se comunica con WCI remotamente. Para la integración del directorio BPM, la información del WCI es accedida de la misma manera que con cualquier proveedor LDAP.
This has made my day. I wish all potsings were this good.
LDAPs
Son usados como fuente de información de la organización, específicamente usuarios, unidades organizacionales y grupos. Esta integración es muy flexible y configurable.
Integración técnica
Desde un punto de vista técnico, LDAP se convierte en parte de los metadatos del directorio, por lo que cualquier aplicación que requiere acceso al directorio BPM (por ejemplo, los motores BPM, los clientes PAPI, el proceso administrador). Dado que el acceso a LDAP es de sólo lectura, se utiliza el acceso anónimo. No obstante, puede configurarse la conexión segura y la autenticación. Generalmente, las conexiones LDAP se utilizan a través de un pool para mejorar el rendimiento, y la autenticación se utiliza con usuario/contraseña que proporciona LDAP. Luego, el proceso de autorización se maneja con el esquema de directorio BPM.
Integración funcional
BPM define usuarios, grupos y unidades de la organización en una estructura única y bien definida. Esto difiere de cómo muchas organizaciones definen los conceptos. Por ejemplo, Oracle BPM definie que un usuario solo puede pertenecer a una unidad de organización, asigna funciones a los usuarios y grupos, mientras que algunas organizaciones podrían asignar funciones a la unidad organizativa. Es importante entender que en todos los casos la estructura LDAP tiene que estar mapeada con el modelo de organización de la BPM.
Servicios requeridos por el proceso de negocio
Si tus procesos de negocio integran con otros sistemas (web service, colas, etc), estos se convierten en parte de tu entorno BPM y son necesarios para que tus procesos ejecuten. La configuración de estos recursos se realiza sobre todo en el proceso administrador de BPM.
Servicios provistos por componentes BPM
El proveedor de servicios más importante es el motor BPM. Cada operación instancia de proceso se produce en el motor de BPM y la dispara automáticamente el motor, o externamente un cliente BPM. El principal servicio expuesto por el motor BPM es el servicio de procesos interno. Este servicio es usado por PAPI para interactuar con el motor. Cada cliente PAPI usa este servicio para consultar e invocar instancias del proceso.
Servicio de proceso del motor BPM
Desde el punto de vista lógico, el servicio de proceso del motor BPM expone una interfaz a través de diferentes protocolos:
- protocolo Java RMI, si es una implementación standalone
- EJBs, que utilizan el protocolo del servidor de aplicaciones (wl, t3, loop, etc) en las implementaciones en wl y websphere. Los EJBs forman parte de la aplicación ear, que se instala en el servidor de aplicaciones como motor BPM.
Los clientes PAPI ubican automáticamente los motores y seleccionan el protocolo adecuado en función del tipo de motor.
Elección de una topología
Muchos factores pueden influir la selección de una topología:
- Carga de los procesos de negocio: el número de instancias de proceso, las actividades en el proceso, y personas que interactuan con el proceso
- Aprovechamiento de infraestructura existente: servidores wl, etc
- Aprovechamiento de conocimientos existentes: J2EE, Java
- Políticas institucionales, por ejemplo, separar backend del frontend
- Confiabilidad, disponibilidad y requisitos de performance
- Costo
Guia para definir una topología
Algunas pautas según las capacidades del producto:
- Definir al menos un motor de BPM
- Los procesos pueden ser desplegados en ninguno de los motores definidos
- Cada motor de BPM se puede configurar independiente y optimizado para casos de uso específicos
- Puede haber muchos clientes BPM según se necesiten
- El área de trabajo de BPM y los clientes PAPI pueden estar en el mismo servidor que el motor de BPM o en otro diferente
- Los clientes PAPI pueden implementarse en cluster o en granja de servidores
- Cada cliente PAPI pude configurarse de forma independiente
- Los clientes PAPI pueden interactuar con cualquiera de los procesos
- Los motores de BPM, clientes PAPI y todas las aplicaciones de BPM requieren conexión con el directorio BPM
- El área de trabajo BPM y el motor BPM son aplicaciones que consumen muchos recursos. La decisión de ubicar en el mismo servidor de destino o grupo tiene importantes implicaciones en el rendimiento
- La comunicación entre el área de trabajo BPM y el motor BPM requiere de una configuración específica, dependiendo de si están en diferentes grupos o dominios. Es más fácil de configurar desplegados en diferentes dominios en lugar de grupos diferentes