7
La Tecnología SOA y la Gestión por Procesos. Ferran Garcia Pagans. Departamento de Sales Consulting. Oracle Iberica. Av. Diagonal 616, 08028 Barcelona. [email protected] 1. Resumen Según Gartner [1], una de las 10 primeras preocupaciones de los directivos de las organizaciones empresariales es la competencia. La competitividad de las organizaciones se ha hecho especialmente crítica con la aparición de compañías en países de economía emergente, donde los costes salariales son más bajos. En este entorno, hay dos cosas que pueden ayudar a las organizaciones a sobrevivir: mejorar la agilidad empresarial (business agility) e incrementar de la productividad. La agilidad empresarial es la capacidad de una organización de responder a cambios en el entorno (mercado, legislación, ...). En cuanto a la productividad, es necesario definirla en función de la estrategia de la compañía y de sus objetivos de negocio. Por ejemplo, para una empresa textil la productividad puede ser reducir los costes de fabricación, o fabricar prendas que se adapten mejor al cliente o fabricar prendas de mayor calidad. La gestión por procesos es una solución a esta problemática. Su objetivo es alinear los distintos recursos de la compañía con los objetivos de la organización. En este documento se analizará la tecnología utilizada en un proyecto de BPM y se utilizará a modo de ejemplo la solución de Oracle. 2. Introducción. El BPM o gestión por procesos es una técnica de gestión empresarial que trata de conseguir unos objetivos de negocio mediante la gestión, el control y la mejora de un conjunto de procesos de negocio fundamentales. Por esta razón, lo más importante en un proyecto BPM es conocer los objetivos de la organización. Los objetivos vienen marcados por la política estratégica y a partir de estos objetivos se definen los objetivos de cada proceso. En un proyecto BPM solamente se tienen en cuenta los procesos fundamentales, esto se debe a que no todos los procesos contribuyen en la misma media en los objetivos. Hasta este momento se ha hablado de procesos pero todavía no se ha definido este término. Generalmente, un proceso de negocio es un conjunto de actividades que una organización realiza para suministrar un bien o un servicio. Los procesos tienen un evento inicial que los desencadena, que puede ser, por ejemplo, una orden de compra, y finalizan cuando los individuos relacionados con el proceso han satisfecho sus necesidades. Por ejemplo, el cliente ha recibido su pedido y el departamento comercial ha podido cobrar la factura. La gestión de una compañía por procesos representa un cambio organizativo importante respecto a la organización tradicional. Esta última, divide a las personas y a los recursos en departamentos. De esta manera no es posible garantizar que los esfuerzos de los distintos departamentos están alineados con los objetivos de la organización. La gestión por procesos rompe las barreras departamentales y organiza las personas y recursos de distintos departamentos en torno a un proceso de negocio, que debe estar perfectamente alineado con la estrategia de la organización. Un fundamento del BPM es el control de la ejecución de los procesos. Por control se entiende:

SOA y Gestion por Procesos

Embed Size (px)

Citation preview

Page 1: SOA y Gestion por Procesos

La Tecnología SOA y la Gestión por Procesos.

Ferran Garcia Pagans. Departamento de Sales Consulting.

Oracle Iberica. Av. Diagonal 616, 08028 Barcelona.

[email protected]

1. Resumen

Según Gartner [1], una de las 10 primeras preocupaciones de los directivos de las organizaciones empresariales es la competencia. La competitividad de las organizaciones se ha hecho especialmente crítica con la aparición de compañías en países de economía emergente, donde los costes salariales son más bajos. En este entorno, hay dos cosas que pueden ayudar a las organizaciones a sobrevivir: mejorar la agilidad empresarial (business agility) e incrementar de la productividad.

La agilidad empresarial es la capacidad de una organización de responder a cambios en el entorno (mercado, legislación, ...).

En cuanto a la productividad, es necesario definirla en función de la estrategia de la compañía y de sus objetivos de negocio. Por ejemplo, para una empresa textil la productividad puede ser reducir los costes de fabricación, o fabricar prendas que se adapten mejor al cliente o fabricar prendas de mayor calidad.

La gestión por procesos es una solución a esta problemática. Su objetivo es alinear los distintos recursos de la compañía con los objetivos de la organización.

En este documento se analizará la tecnología utilizada en un proyecto de BPM y se utilizará a modo de ejemplo la solución de Oracle.

2. Introducción.

El BPM o gestión por procesos es una técnica de gestión empresarial que trata de conseguir unos objetivos de negocio mediante la gestión, el

control y la mejora de un conjunto de procesos de negocio fundamentales.

Por esta razón, lo más importante en un proyecto BPM es conocer los objetivos de la organización. Los objetivos vienen marcados por la política estratégica y a partir de estos objetivos se definen los objetivos de cada proceso.

En un proyecto BPM solamente se tienen en cuenta los procesos fundamentales, esto se debe a que no todos los procesos contribuyen en la misma media en los objetivos.

Hasta este momento se ha hablado de procesos pero todavía no se ha definido este término. Generalmente, un proceso de negocio es un conjunto de actividades que una organización realiza para suministrar un bien o un servicio. Los procesos tienen un evento inicial que los desencadena, que puede ser, por ejemplo, una orden de compra, y finalizan cuando los individuos relacionados con el proceso han satisfecho sus necesidades. Por ejemplo, el cliente ha recibido su pedido y el departamento comercial ha podido cobrar la factura.

La gestión de una compañía por procesos representa un cambio organizativo importante respecto a la organización tradicional. Esta última, divide a las personas y a los recursos en departamentos. De esta manera no es posible garantizar que los esfuerzos de los distintos departamentos están alineados con los objetivos de la organización. La gestión por procesos rompe las barreras departamentales y organiza las personas y recursos de distintos departamentos en torno a un proceso de negocio, que debe estar perfectamente alineado con la estrategia de la organización.

Un fundamento del BPM es el control de la ejecución de los procesos. Por control se entiende:

Page 2: SOA y Gestion por Procesos

Planificación, Ejecución, Monitorización y Actuación. Es decir, el primer paso es planificar los procesos para asegurar que están alineados con los objetivos. Luego se ejecutan y se monitorizan las métricas de rendimiento más importantes de cada proceso. Sobre la base de estas métricas se toma decisiones para mejorar su rendimiento.

Estos tres pasos que conforman el control corresponden con tres componentes tecnológicos fundamentales: una herramienta de modelado de negocio, una plataforma de desarrollo y ejecución de procesos de negocio y una solución que permita monitorizar los indicadores de rendimiento más importantes de cada proceso o KPI’s (Key Performance Indicators). A través de la monitorización de estos indicadores puede modificar el modelado de procesos para mejorar su rendimiento.

PLANIFICACIÓN

EJECUCIÓN

MONITORIZACIÓN PLANIFICACIÓN

EJECUCIÓN

MONITORIZACIÓN

Figura 1. Control de Procesos.

Un proyecto BPM no es un proyecto tecnológico, sino de organización, y como tal debe estar esponsorizado por la más alta dirección. Aunque no se trate de proyectos puramente tecnológicos, aquí los sistemas informáticos juegan un papel crítico como habilitadores. Hoy la mayoría de las compañías dependen para funcionar de multitud sistemas informáticos. Estos sistemas están organizados en forma departamental y deben adaptarse para dar soporte a una nueva forma de trabajar.

3. Tecnología SOA/BPM

Como se ha visto, el objetivo es convertir una organización con un funcionamiento departamental en una organización gestionada por procesos. Para ello es necesario un doble cambio, un cambio origanizativo y uno en el ámbito de los sistemas de información. Para evaluar el cambio en los sistemas, primero veamos cuál es su estado

actual en una gran cantitdad de organizaciones españolas:

• La mayor parte de organizaciones han invertido una cantidad de recursos importantes en aplicaciones departamentales como CRM, ERP, SCM o aplicaciones a medida.

• Estas aplicaciones tienen un repositorio propio de información.

• La información está dispersa o duplicada en diferentes sistemas y en algunas ocasiones la de diferentes repositorios es inconsistente.

• Los procesos de negocio han incrementado su complejidad debido a la aparición de nuevas normativas, de la concentración de compañías, el aumento de la competencia, etc.

• Como consecuencia del aumento de competitividad, las organizaciones buscan la excelencia en la ejecución. Por ello, el control en la ejecución de los procesos es fundamental.

• Los presupuestos de los directores de informática se incrementarán por debajo de 3% [1], pero al mismo tiempo la exigencia al departamento de IT es mayor y más compleja.

Con este escenario, se plantea la pregunta de si las organizaciones pueden ser más eficientes con un menor coste gracias a la implementación de la tecnología BPM. Jeston y Nelis [2] responden afirmativamente; la razón es que la tecnología BPM proporciona una capa independiente para enlazar diversas aplicaciones y personas que participan en un solo proceso de negocio. De esta manera es posible asegurar que los distintos esfuerzos de departamentos y personas distintas están alineados entre si y con los objetivos. Además, monitorizando los distintos pasos de los procesos de negocio, las organizaciones pueden medir el rendimiento de la organización y auditar los procesos.

Medir el rendimiento de la organización permite descubrir oportunidades de mejora en los procesos de negocio mediante la modificación de los mismos. Al realizar estos cambios y monitorizar los procesos en tiempo real, se puede conocer inmediatamente el impacto de estas modificaciones.

Para implementar un proyecto BPM el primer paso es modelar los procesos de negocio de la compañía. Además de modelar los procesos, en

Page 3: SOA y Gestion por Procesos

muchas ocasiones es importante poder simularlos. Hay que tener en cuenta que la automatización de un proceso no eficiente, no convierte al proceso en eficiente.

Durante esta definición de procesos aparecerá un conjunto de servicios atómicos, que en algunos casos se re-utilizará en diferentes procesos.

Así, el paso siguiente será construir un portafolio de servicios y conectarlos mediante una capa de bus de servicios (ESB). Luego se componen los procesos extremo a extremo, y finalmente es posible construir un cuadro de mandos para visualizar en tiempo real los indicadores de cada proceso. Esta arquitectura tecnológica se adapta al objetivo de la gestión por procesos, es decir, control de procesos (Planificar, Ejecutar, Monitorizar, Actuar).

La arquitectura presenta estas capas:

1. Definición de procesos de negocio. 2. Portafolio de Servicios y un bus de servicios. 3. Composición de procesos. 4. Interfaz de Usuario y de Cuadros de Mandos. 5. Gestión y seguridad de la plataforma.

SERVICIOS

EJECUCIÓN DE PROCESOS

MONITORIZACIÓN INDICADORES

SENSORES

GOBERNABILIDAD Y GETION

MODELADO DE PROCESOS

SERVICIOS

EJECUCIÓN DE PROCESOS

MONITORIZACIÓN INDICADORES

SENSORES

GOBERNABILIDAD Y GETION

MODELADO DE PROCESOS

Figura 2. Arquitectura de una Solución SOA/BPM.

Como se ha dicho, la clave en un proyecto BPM es alinear los recursos de la compañía con la estrategia. Por esta razón es posible dividir estas capas en dos grupos. Los componentes fundamentales para conseguir esta alineación son el modelado de procesos, el entorno de ejecución de procesos y una solución que permita la monitorización del rendimiento de los procesos.

Una arquitectura orientada a servios como la que se propone tiene un conjunto de características técnicas a tener en cuenta.

• Los servicios no están concentrados en un solo punto, sino que se encuentran distribuidos.

• La implementación de los servicios es tecnológicamente heterogénea.

• Estos servicios muchas veces tienen que acceder a sistemas heredados.

• La misma información se representa de forma distinta en distintos sistemas de información.

• La seguridad de la plataforma depende de la seguridad de los servicios individuales, de los procesos, sistemas de colas, ....

• La disponibilidad y el nivel de servicio de los procesos dependen de la disponibilidad y del nivel de servicio de los servicios que intervienen en el proceso.

Una arquitectura como esta requiere dos componentes importantes un bus de servicios o ESB para conectar sistemas hereterogéneos y una plataforma de gestión que permita manejar de forma centralizada una plataforma distribuida y hetereogena como la que se ha descrito.

Para resumir, el modelado, ejecución y monitorización de procesos son las piezas estratégicas en una arquitectura BPM. Al mismo tiempo esta nueva arquitectura precisa de unos componentes tecnológicos que son el bus de servicios y la plataforma de gestión.

3.1. Definición de Procesos de Negocio.

Para definir los procesos de negocio, se utiliza un software de modelado de procesos de negocio. La utilización de este software debería promover la utilización de una metodología de trabajo. Los componentes deben ser fácilmente re-utilizables. Para ello es necesario que los distintos modelos sean accesibles por todos los miembros del equipo, así podrán ser re-utilizados. Otro aspecto importante de este tipo de software es la posibilidad de simular y optimizar procesos antes de implementarlos. También es necesario analizar diversos aspectos, como la interdependencia entre procesos, la dependencia entre tareas y personas, dependencia con sistemas informáticos, etcétera.

Page 4: SOA y Gestion por Procesos

El modelado de procesos es una tarea compleja, por esta razón las distintas herramientas de modelado facilitan la aplicación de algún tipo de metodología.

Una vez han sido modelados los procesos, algunas herramientas permiten exportar el proceso hacia una herramienta de implementación, con la finalidad de que sirva de punto de partida a los desarrolladores que implementarán el proceso. Así se reduce el tiempo de desarrollo y se mejora la comunicación entre los usuarios de negocio que definen y los desarrollados que implementan.

En la solución Oracle, el modelado y simulación de procesos se cubre con Oracle BPA Suite, basada en ARIS Business Architect de IDS Sheer[5]. Oracle ha integrado esta herramienta dentro de su Oracle SOA Suite.

Para facilitar el modelado de procesos, esta herramienta (al igual que ARIS) propone dividir los procesos en vistas simples para reducir su complejidad [5]. Generalmente se contemplan la vista de los datos, la de las funciones, la de la organización y la de control o proceso; de esta manera un proceso (vista de control) es una conjunto de funciones (vista de funciones), realizadas por un conjunto de personas (vista de la organización) en un orden determinado (vista de control o procesos).

Para describir un proceso de forma adecuada es necesario modelarlo a distintos niveles. Generalmente se empieza con un diagrama general, por ejemplo, una cadena de valor y luego se va entrando en detalle diagramando el proceso principal, luego los subprocesos y finalmente las tareas. En las últimas fases del modelado de procesos es conveniente la participación de una arquitecto de procesos (desarrollador senior) que asegure que los procesos de negocio diagramados por los analistas de negocio sean implementables. Una vez se han definido los procesos es posible importarlos desde Oracle JDeveloper para utilizarlos para el desarrollo de procesos en BPEL.

3.2. Portafolio de Servicios.

En esta capa de servicios, una buena idea es utilizar distintas tecnologías enmarcadas dentro de los estándares Servicios Web. Una de las razones

por las que es interesante utilizar estos estándares es por se basan en mensajería XML y generalmente utilizan el protocolo http; de esta manera los servicios web son prácticmente ubicuos. No es objetivo de este documento describir estos estándares.

Una vez definido el portafolio, se presentarán tres tipos de servicios: los que no están implementados y que por tanto es necesario desarrollar, los que ya se encuentran desarrollados y que por tanto no es necesario desarrollar, y los servicios que se encuentran implementados en alguna tecnología propietaria o heredada y que es necesario habilitarlos como servicios web.

Una opción gratuita para el desarrollo de servicios es Oracle JDeveloper 10g. Esta es la herramienta propuesta por Oracle para todo el desarrollo SOA. Dado que los servicios web están basados en estándares es posible utilizar otras herramientas como por ejemplo Eclipse.

Además de la herramienta de desarrollo, en tiempo de ejecución, es necesario contar con un servidor de aplicaciones con soporte a servicios web. Oracle Application Server 10g dispone de soporte completo a los estándares de servicios web. Como en el caso de la herramienta de desarrollo, los servicios web desplegados en otros servidores se incorporan sin ningún inconveniente. Las consideraciones de seguridad y gestión de la plataforma se tratarán más adelante.

Es muy habitual que algunas organizaciones dispongan de un volumen importante de aplicaciones desarrolladas en Cobol, SAP o otras tecnologías que no tienen soporte directo de servicios web. Para habilitar estas aplicaciones como servicios web, es conveniente utilizar un bus de servicios. Este componente tiene 3 responsabilidades: conectividad, traducción y modificación de mensajes de mensajes y distribución y enrutado.

Para la conectividad se utilizan adaptadores que acceden al sistema propietario y lo exponen como servicios web o como un conector Java (JCA).

Existe la posibilidad de utilizar una solución como Oracle Enterprise Service Bus o bien de implementar este concepto ya que el bus de mensajes es una combinación del patrón Canonical Data Model, una infraestructura de

Page 5: SOA y Gestion por Procesos

mensajería, unos adaptadores y un conjunto de comandos comunes[4].

3.3. Composición de Procesos.

Esta es una de las capas fundamentales en un proyecto BPM ya que aquí se implementan los procesos. Anteriormente se habían utilizado soluciones propietarias para para definir los procesos de negocio. Actualmente los principales fabricantes dan soporte a Business Process Execution Language (BPEL) [3]. BPEL es un lenguaje de programación cuyo objetivo principal es implementar procesos mediante la composición de servicios web[3]. BPEL estandariza la integración de aplicaciones y estimula a las organizaciones a definir procesos de negocio que puedan ser optimizados dando lugar a re-ingeniería de procesos[3].

Un proceso implementado en BPEL es un servicio web que a su tiempo llama a otros servicios (composición de servicios) para implementar un proceso de negocio.

La capa de procesos es el punto central de la arquitectura y interactúa con el resto de componentes de la arquitectura. Para empezar, sería interesante disponer de una integración entre la herramienta de desarrollo de procesos y la herramienta de modelado, de manera que el modelo de procesos sirviera como punto de inicio en el desarrollo del proceso.

Si se desea desarrollar un cuadro de mandos con las principales métricas de los procesos, será deseable que el motor de ejecución pueda exportar fácilmente información a una herramienta que permita desarrollar estos cuadros de mando.

Los procesos definidos en esta capa van a hacer uso de los servicios web definidos en el bus de servicios. Este acceso no representará ningún problema al tratarse de servicios web.

De la misma forma, los procesos desarrollados en BPEL se integran fácilmente con cualquier interfaz de usuario.

También es conveniente integrar con los procesos reglas de negocio y un motor de workflow.

En este tipo de proyectos donde se trata de automatizar procesos en los que intervienen

diferentes personas, es importante disponer de un motor de workflow y que este esté integrado con el motor de procesos.

En la capa de procesos, una buena alternativa es Oracle BPEL Process Manager. Oracle BPEL PM dispone de dos componentes principales, una herramienta de desarrollo y un motor de ejecución de procesos. Juric realiza un extenso análisis de la primera versión de esta herramienta [3].

JDeveloper dispone de integración con la herramienta de modelado de procesos Oracle BPA Suite para poder importar los modelos como punto de partida para el desarrollo.

Oracle BPEL PM dispone de un motor de Workflow y uno de notificaciones. Además cuenta con integración con Oracle BAM (monitorización indicadores de negocio), Oracle Business Rules y otros motores de reglas de negocio.

3.4. Cuadros de Mando e Interfaz de Usuario.

Una vez se han creado los procesos, es necesario analizar los indicadores principales de cada uno. Para ello se desarrolla un cuadro de mando que muestra su evolución en tiempo real.

Como es lógico, la definición de los indicadores principales debe realizarla el analista de negocio encargado de modelar el proceso. Es fundamental que estos indicares estén en linea con los objetivos estratégicos y con los objetivos individuales del proceso.

Para desarrollar este cuadro de mando, el primer paso es extraer información de los procesos; para ello se puede desarrollar servicios que almacenen información del proceso en algún almacén, como una base de datos. Algunas herramientas de gestión de procesos, como Oracle BPEL PM, permiten definir sensores que extraen la información del flujo, evitando desarrollar nuevos servicios.

El segundo paso es el desarrollo del propio cuadro de mandos sobre la base de la información que se extrae de los procesos. Dentro de la solución de Oracle esta funcionalidad se cubre con Oracle Busisness Activity Monitoring, que permite desarrollar cuadros de mando personalizados para cada usuario, alertas, informes, etcétera.

Page 6: SOA y Gestion por Procesos

Además del cuadro de mando, también es necesario disponer de una interfaz de usuario para interactuar con los procesos de negocio. Dado que un proceso BPEL es a su tiempo un servicio web, integrarlo dentro de una interfaz de usuario no es un problema.

3.5. Seguridad y Gestión de la plataforma.

No se va a profundizar en la seguridad y gestión de la plataforma, ya que no es el motivo de este documento, pero se enumerarán algunos aspectos importantes.

En las aplicaciones tradicionales todo el control de acceso, auditoría y trazabilidad esta centralizado en las propias aplicaciones. En una arquitectura SOA existen diversos entornos de ejecución, con tecnologías distintas y generalmente muy heterogéneas. Es importante notar que en una arquitectura SOA, el rendimiento, disponibilidad o seguridad de un proceso, no depende solo del propio proceso, sino de los distintos servicios que son invocados por el servicio. Así, por ejemplo para que un proceso esté disponible es necesario que los servicios utilizados por ese proceso estén todos disponibles. En estos entornos es necesario encontrar una solución que nos permita gestionar toda la seguridad, auditoria, disponibilidad y trazabilidad de la plataforma de una forma centralizada. En caso contrario, el coste de operación de la plataforma será muy elevado. En la plataforma Oracle estas funciones de seguridad y gobernabilidad las lleva a cabo Web Services Manager.

Otro componente importante para garantizar la gobernabilidad de la plataforma es un registro UDDI. En este tipo de registro se almacenan de forma centralizada la definición de cada uno de los servicios que forman parte de nuestro portafolio. Este tipo de registros fomenta la reutilización, ya que los distintos analistas y desarrolladores disponen de un punto central para conocer y acceder a los servicios que ya están desarrollados.

4. Conclusiones.

La clave de la gestión por procesos es que permite alinear los recursos entorno a un proceso de negocio. Dicho de otra forma, la gestión por procesos reduce la fricción entre la organización vertical de las empresas y la naturaleza horizontal de los procesos de negocio. El liderazgo de un proyecto de gestión por procesos debe proceder de la alta dirección. Los beneficios de negocio de la gestión por procesos son:

• Incremento de productividad de la organización a bajo coste.

• Mejora de la agilidad de la compañía. • Se dispone de una visión de la compañía más

completa y en tiempo real. • Se dispone de más y mejor información para

tomar decisiones. • Mejora del servicio al cliente. Tal como se ha visto, aunque se trate de un concepto empresarial, la solución tecnológica es clave para el éxito del proyecto. Para el departamento de sistemas se trata de un proyecto clave que va a permitir aportar valor a la compañía.

Las arquitecturas SOA permiten proteger la inversión en aplicativos ya que los convierten en servicios web que se integran en nuevos procesos.

Cuando la arquitectura SOA/BPM esta desplegada, el departamento de informática es más ágil respondiendo a las necesidades de sus clientes; ya que entre otras cosas el tiempo de desarrollo de aplicaciones se reduce. Además las aplicaciones SOA son más flexibles y es más fácil adaptarlas a nuevos requerimientos.

En un proyecto SOA/BPM el modelado de procesos, la implementación, ejecución y monitorización de los procesos es clave para efectuar el control sobre los procesos y para alinear los recursos de la compañía con los objetivos.

Por otro lado el bus de servicios, la seguridad y la gobernabilidad son aspectos clave desde el punto de vista de arquitectura.

Se han comentado, a modo de ejemplo, diversos componentes de la solución SOA/BPM de Oracle. Un elemento importante de esta solución es que proporciona una solución completa a un proyecto SOA/BPM. Al mismo tiempo, esta solución está basada en estándares, cosa que asegura la

Page 7: SOA y Gestion por Procesos

interoperabilidad de los componentes en plataformas no-Oracle.

No ha sido posible analizar en detalle cada uno de los componentes de la arquitectura. En otros trabajos se profundizará en estos componentes.

Referencias

[1] The Gartner Scenario 2006: The Current State and Future Direction of IT. Ken McGee y otros.

[2] Business Process Management: Practical Guidelines to Successful Implementations. John Jeston, Johan Nelis. Published 2006 Elsevier.

[3] Business Process Execution Language for servicios web. An architect and developer’s guide to orchestrating web using BPEL4WS. Matjaz B. Juric con Benny Mathew y Poornachandra Sarang. Packt Publishing.

[4] Enterprise Integration Patterns. Design, Building, and Deploying Messaging Solution. Gregor Hohpe, Bobby Woolf y otros. Pearson Education, Inc.

[5] Process Modeling with ARIS. Heinrich Seidlmeier.