caso de estudio

8
PARADIGMA - REVISTA ELECTRONICA EN CONSTRUCCIÓN DE SOFTWARE Caso de Estudio: Proyecto SIREP2 Estructura, rol e importancia de un ESB en un proyecto Empresarial centrado en procesos de negocio (BPM) y soportados en reusabilidad de Servicios (SOA) Jaime Orlando Moreno, Jorge Humberto Arias Cámara de Comercio de Bogota {jaimem,arquitectodes}@ccb.org.co Resumen. El presente artículo muestra un caso de estudio sobre un enfoque de arquitectura orientado a servicios (SOA: Services Oriented Architecture) en un contexto real. Por otro lado, se presenta como esta arquitectura a la vez se complementó con un enfoque de gestión de procesos (BPM: Business Process Management), monitoreo de procesos de negocio centrado en KPIs (BAM: Business Activity Monitoring) y una plataforma para manejar la heterogeneidad de plataformas (ESB: Enterprise Services Bus) involucradas durante el proyecto. 1 CONTEXTO Y MOTIVADORES DE NEGOCIO Durante la planeación estratégica para el 2.000 al 2.005 la Cámara de Comercio de Bogotá decidió transformar su modelo de gestión y pasar de ser una organización que se gestionaba por funciones a una organización orientada a la gestión por procesos. Esto se acompañó con la implementación del direccionamiento estratégico y el seguimiento a la gestión a través del balance scoredcard. Para el año 2.005 se había terminado el diseño de los procesos y la entidad los había certificado siguiendo la norma ISO 9000; pero aparecieron interrogantes acerca de la conformación de los procesos y su normatización a través de procedimientos que no estaban siendo debidamente seguidos en la operación diaria. Además los indicadores de estos procesos se calculan en tareas batch que se realizan cuando no se pueden tomar acciones para mejorarlos. Pero los procesos se complicaron cuando surgieron retos de integrar a otras entidades externas como la DIAN, la Secretaría de Hacienda Distrital, las notarías y las otras 57 de cámaras de comercio del país, las cuales participan en los procesos de prestación de los servicios a los clientes. Lo anterior llevó a reflexionar si la tecnología de información que soporta el negocio facilitaba el soporte a la transformación del negocio que pretendía hacer la entidad.

Upload: sandrariveram

Post on 12-Jun-2015

1.007 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Caso de estudio

PARADIGMA - REVISTA ELECTRONICA EN CONSTRUCCIÓN DE SOFTWARE

Caso de Estudio: Proyecto SIREP2 Estructura, rol e importancia de un ESB en un proyecto Empresarial centrado en

procesos de negocio (BPM) y soportados en reusabilidad de Servicios

(SOA)

Jaime Orlando Moreno, Jorge Humberto Arias Cámara de Comercio de Bogota

{jaimem,arquitectodes}@ccb.org.co

Resumen.

El presente artículo muestra un caso de estudio sobre un enfoque de arquitectura orientado a servicios (SOA: Services Oriented Architecture) en un contexto real. Por otro lado, se presenta como esta arquitectura a la vez se complementó con un enfoque de gestión de procesos (BPM: Business Process Management), monitoreo de procesos de negocio centrado en KPIs (BAM: Business Activity Monitoring) y una plataforma para manejar la heterogeneidad de plataformas (ESB: Enterprise Services Bus) involucradas durante el proyecto.

1 CONTEXTO Y MOTIVADORES DE NEGOCIO

Durante la planeación estratégica para el 2.000 al 2.005 la Cámara de Comercio de

Bogotá decidió transformar su modelo de gestión y pasar de ser una organización que se

gestionaba por funciones a una organización orientada a la gestión por procesos. Esto se

acompañó con la implementación del direccionamiento estratégico y el seguimiento a la

gestión a través del balance scoredcard.

Para el año 2.005 se había terminado el diseño de los procesos y la entidad los había

certificado siguiendo la norma ISO 9000; pero aparecieron interrogantes acerca de la

conformación de los procesos y su normatización a través de procedimientos que no

estaban siendo debidamente seguidos en la operación diaria. Además los indicadores de

estos procesos se calculan en tareas batch que se realizan cuando no se pueden tomar

acciones para mejorarlos. Pero los procesos se complicaron cuando surgieron retos de

integrar a otras entidades externas como la DIAN, la Secretaría de Hacienda Distrital, las

notarías y las otras 57 de cámaras de comercio del país, las cuales participan en los

procesos de prestación de los servicios a los clientes.

Lo anterior llevó a reflexionar si la tecnología de información que soporta el negocio

facilitaba el soporte a la transformación del negocio que pretendía hacer la entidad.

Page 2: Caso de estudio

2 Jaime Orlando Moreno, Jorge Humberto Arias

VOL. 1 PARADIGMA - REVISTA ELECTRONICA EN CONSTRUCCIÓN DE SOFTWARE

Después de analizar la arquitectura monolítica implementada y las facilidades que ésta

ofrecía, se tomó la decisión de incluir para la planeación estratégica 2.005 – 2.009 la

adopción e implementación de una arquitectura empresarial de software orientada a

servicios y que su implementación se iniciara soportando los procesos de negocio que

hoy le generan cerca del 88% de los ingresos a la entidad.

El proyecto de cambio tecnológico se estructuró en el 2.005 y se decidió desarrollar

un proyecto que recibió por nombre SIREP2 y el cual debe incluir cuatro elementos

esenciales:

1. Implementar un modelo de desarrollo de software basado en principios de

ingeniería de software para construir un catálogo de servicios ante que una

aplicación.

2. Seguir metodologías para desarrollo de software orientado a servicios y que estas

metodologías ser soportaran en herramientas de software.

3. Implementar repositorios para que el conocimiento que se genere se conserve

como capital intelectual de la entidad

4. Desarrollar un programa bajo el modelo de competencias, para que los ingenieros

de desarrollo y de procesos se capacitaran y pudieran aportarle al proyecto su

conocimiento del negocio.

Hoy el proyecto muestra la madurez y el conocimiento que se adquiere con la práctica y

una buena formación conceptual y que se pule con los inconvenientes que se presentan en

el día a día. Los procesos que se tomaron como base para el modelamiento inicial se han

mejorado, los conceptos de la arquitectura orientada a servicios se han apropiado y sobre

todo se han simplificado para su cabal entendimiento. Las empresas externas

proveedoras de plataformas tecnológicas que intervienen en la prestación de un servicio

para conformar un proceso, han sido capacitadas y en la práctica ya exponen la

funcionalidad propia de su solución como parte del catálogo de servicio.

En conclusión la administración de la Cámara está convencida que el paso y la

orientación que se le dio a la estrategia tecnológica es la correcta y que antes que ver la

tecnología de la información como el desarrollo de programas se le ve como un soporte a

los procesos de negocio a través de la orquestación de servicios que hacen parte del

catálogo de servicios y que antes que ser un lastre para el desarrollo e innovación del

negocio se le ve como un facilitador a través de la facilidad y flexibilidad que le da el

modelamiento de los proceso, su implementación a través de la orquestación de servicios

y la generación en línea de sus indicadores.

El artículo está organizado de la siguiente manera. En la sección dos, se presenta la

estructura y visión de la solución. El rol del ESB dentro del proyecto SIREP2, es

presentado en la sección 3. Finalmente, se presentan las conclusiones y reflexiones

obtenidas como lecciones aprendidas del proyecto.

2 ESTRUCTURA Y VISIÓN DE LA SOLUCIÓN

Las necesidades de negocio claramente descritas en la sección anterior llevaron a que la

Cámara de Comercio de Bogota emprendiera el desarrollo de una solución tecnológica;

que como bien fue mencionado recibió el nombre de SIREP2. Este sistema debe apoyar

Page 3: Caso de estudio

Caso de Estudio: Proyecto SIREP2 Estructura, rol e importancia de un ESB en un proyecto Empresarial

centrado en procesos de negocio (BPM) y soportados en reusabilidad de Servicios (SOA) 3

PARADIGMA - REVISTA ELECTRONICA EN CONSTRUCCIÓN DE SOFTWARE VOL. 1

la línea de negocio de Registros Públicos de la Camara de Comercio de Bogotá (CCB),

la cual se compone de 35 procesos de negocio, los cuales a bajo nivel requieren el apoyo

de cerca de 650 casos de usos, e integración con cerca de 10 entidades externas. Es por

esto que la estructura y conceptualización de SIREP2 como mínimo debe considerar los

siguientes lineamientos:

1. Automatización de procesos de negocio más que automatización de los

tradicionales procedimientos de negocio.

2. Publicación de funcionalidades de negocio como servicios reutilizables a partir

de las cuales se puedan componer de manera flexible procesos de negocio.

3. Composición de procesos de negocio a partir de funcionalidades de negocio

implementadas desde cero como parte del proyecto, y funcionalidades de negocio

existentes en sistemas externos tales como: SAP, DIAN, Redeban, SHD

(Secretaria de Hacienda Distrital), Microsoft Dynamics CRM, entre otros.

4. Medición de procesos negocio en tiempo real vía indicadores de desempeño KPI

(Key performance Indicator).

5. Integración con sistemas de externos en tiempo real vía un modelo de servicios

síncronos y eventos asíncronos.

6. Gobernabilidad y gestión de funcionalidades de negocio publicadas como

servicios para que se pudiera asegurar la reusabilidad, evolución y localización de

las mismas a lo largo de los 35 procesos de negocio que componen la línea de

negocio apoyada por SIREP2.

Estos lineamientos mínimos de base llevaron a que se tomará la decisión de emplear

como el enfoque de arquitectura más apropiado para el proyecto un enfoque de

arquitectura orientado a servicios (SOA: Services Oriented Architecture). Este enfoque de

arquitectura a la vez se complemento con un enfoque de gestión de procesos (BPM:

Business Process Management), monitoreo de procesos de negocio centrado en KPIs

(BAM: Business Activity Monitoring) y una plataforma que permitiera manejar de

manera transparente y bajo un enfoque de servicios la heterogeneidad de plataformas a la

que debíamos enfrentarnos durante el proyecto (ESB: Enterprise Services Bus).

A continuación se ilustra la estructura conceptual que integran las piezas enunciadas

en el párrafo anterior y que resume la visión bajo la cual se estructuro e implemento el

proyecto SIREP 2 (Fig.1). Como puede verse claramente en la figura, el proyecto

SIREP2 puede resumirse lógicamente en cuatro capas: Canales, BPM, servicios y

sistemas de información empresarial. Cada una de estas capas tiene asociadas

responsabilidades claramente definidas todo con el objetivo claro de apoyar una visión de

negocios y tecnología centrada en procesos de negocio y dirigida por servicios.

Page 4: Caso de estudio

4 Jaime Orlando Moreno, Jorge Humberto Arias

VOL. 1 PARADIGMA - REVISTA ELECTRONICA EN CONSTRUCCIÓN DE SOFTWARE

Figure 1. Arquitectura conceptual del Proyecto SIREP2

A continuación se describe brevemente el alcance y responsabilidades de cada una de las

capas:

1. Capa de sistemas de información empresarial (EIS Layer): Agrupa todos los

sistemas de información de magnitud empresarial que apoyan la operación back-

end de la Cámara de Comercio de Bogota. Entre este tipo de sistemas se destacan:

SAP (ERP), Royal Image (ECM), RUE (Sistema externo que centralizada

información de todas las cámaras de comercio del país), Microsoft Dinámica

(CRM), Muisca-DIAN, entre otros.

Estos sistemas de información en su interior tienen implementados las

funcionalidades de negocio que posteriormente son publicadas como servicios, a

partir de los cuales se componen y estructuran procesos de negocio.

2. Capa de Servicios (Services Layer): Se compone de todas las funcionalidades de

negocio implementadas por las plataformas de negocio de la CCB que se publican

como servicios reutilizables a partir de los cuales se pueden componer procesos

de negocio, a soportar escenarios de integración bajo un enfoque SOI (Services

Oriented Integration).

Alrededor de esta capa se define lo que hemos llamado al interior de la CCB

Portafolio de servicios. El portafolio de servicios es el agrupamiento de todos los

servicios o funcionalidades de negocio publicadas bajo estándares abiertos, tipos de

2. Los canales activan y consumen procesos de

negocio

EmpresariosEmpresarios

1. Los empresarios solicitan

servicios vía diferentes canales.

Estos servicios activan procesos de

negocio.

Registrar info

PagoLiquidar

Valor Servicio

Chequear

Homimia

Crear

Matricula Registrar info

PagoLiquidar

Valor Servicio

Chequear

Homimia

Crear

Matricula

SAPRUE CajaSIREP2

Inscripción de proponentes Registro Matrícula persona

NaturalRenovación matrícula

Mercantíl

3. Se llaman las funcionalidades de

negocio que estructuran los procesos

4. La ejecución de los procesos

generan indicadores de gestión

4. La ejecución de los procesos

generan indicadores de gestión

Tablero de control

(Dashboard)

Tablero de control

(Dashboard) Funcionarios

CCB

Funcionarios

CCB

Services Layer

EIS Layer

BPM Layer

Channel Layer Portal Client/server JSwing Webservices

Page 5: Caso de estudio

Caso de Estudio: Proyecto SIREP2 Estructura, rol e importancia de un ESB en un proyecto Empresarial

centrado en procesos de negocio (BPM) y soportados en reusabilidad de Servicios (SOA) 5

PARADIGMA - REVISTA ELECTRONICA EN CONSTRUCCIÓN DE SOFTWARE VOL. 1

datos estandarizados y lineamientos de seguridad y manejo transaccional que faciliten

su reutilización, y proveen flexibilidad a la hora de componer procesos de negocio.

La gestión y gobernabilidad del portafolio de servicios se realiza de manera

centralizada para evitar problemas de duplicidad de servicios, evolución o extensión

no controlada y/o versionada de servicios, y asegurar la reusabilidad de los mismos.

Finalmente, es importante anotar que esta capa puede ser potenciada con un a

plataforma de integración que asegure la entrega de mensajes enviados a un servicio,

provea soporte a requerimientos no funcionalidades de integración (Enrutamiento,

traducción y transformación, seguridad, manejo transaccional vía 2PC y enfoques de

compensación, entre otros)

3. Capa de BPM (BPM Layer): Esta definida en términos de los procesos de

negocio que estructuran la línea de negocio de Registros Públicos de la Cámara

de Comercio, y que fueron necesarios orquestar vía un enfoque de servicios, y

monitorear vía eventos de negocio generadores de KPIs (Key Performance

Indicator).

Es importante anotar, que para la CCB un proceso de negocio no es más que la

orquestación ordenada y bien definida de un conjunto de funcionalidades de negocio

que se encuentran publicadas como servicios. Dicha orquestación durante el tiempo

genera eventos de negocio a partir de los cuales se pueden tomar definiciones

centradas en un tablero de control o DashBoard.

Para la implementación de esta capa se emplearon enfoques BPM para procesos

de negocio de comportamiento predecible y rígidos en su estructura en el tiempo, y

máquinas de estados (State machines) para procesos de negocio de comportamiento

no predecibles y de estructura flexible. Estos tos enfoque permitieron al interior de

la CCB conceptualizar e implementar una capa centrada en el negocio y totalmente

flexible.

4. Capa de canales (Channel Layer): Esta capa permite manejar la interacción de

los empresarios, clientes y empleados con los servicios que presta la Cámara de

Comercio de Bogota, los cuales se materializan en la ejecución de procesos de

negocios.

Es decir, la CCB publica los servicios que presta como procesos de negocio, los

cuales implican atravesar diferentes áreas funcionalidades y sistemas de información.

Esto debido a que la CCB más que ser una organización orientada a funciones y

procedimientos de negocio es una organización orientada a procesos de negocio.

Los canales empleados por la CCB para prestar sus servicios son: Internet, sedes

(las cuales emplean una aplicación Cliente/Servidor en Java que emplean un front-end

en JSwing), webservices (empleados por la entidades de gobierno para solicitarles

servicios a la CCB), entre otros. Todos estos canales consumen la misma definición

de procesos de negocio para soportar la entrega ordenada, medible, flexible, rápida y

eficiente de los servicios que presta la organización a los empresarios y a la ciudad.

Page 6: Caso de estudio

6 Jaime Orlando Moreno, Jorge Humberto Arias

VOL. 1 PARADIGMA - REVISTA ELECTRONICA EN CONSTRUCCIÓN DE SOFTWARE

De esta manera, la CCB garantiza que independientemente del canal se presta el

mismo servicio, con lo mismo datos, y con las mismas reglas de negocio. Escenarios

que son difíciles de garantizar en organizaciones que soportan su operación en una

heterogeneidad de plataformas tecnológicas, necesitan responder de manera inmediata

a los cambios del mercado (para el caso en particular de la CCB, cambios en

regulaciones de gobierno).

Finalmente, desde esta capa se encuentra el tablero de control, el cual es el lugar

donde se publican los indicadores de negocio KPI que se calculan a partir de los

eventos de negocio generados por el BPM durante la orquestación de un proceso de

negocio. Este tablero de control publicado en un portal al grupo ejecutivo de la CCB

para que este último puede conocer en un tiempo cercano al real (NRT: Near to Real

Time) como se están prestando los servicios que ofrece la CCB y como va la

organización en general.

3 EL ROL DEL ESB DENTRO DEL PROYECTO SIREP2

La arquitectura conceptual que describe el proyecto SIREP2, la cual se detalla en el

numeral anterior, puede resumirse en términos de las siguientes estructuras lógicas

(Fig.2):

BPM

ESB

PORTAL

ERP CRMAplicaciones

J2EE

Aplicaciones

.net

Aplicaciones

Legadas

BAM

Repositorio

Servicios CCB

Traducción

Interceptores

Transformación

Seguridad

Transacciones

Aplicaciones

J2EE / .netCRM / ERP

Proyecto SIREP 2

Figure 2. Estructuras lógicas del Proyecto SIREP2

Como puede verse en esta figura, el bus de servicios (ESB) es un pieza estructural y

angular para soportar la arquitectura total del proyecto, ya que todos lo mensajes que

fluyen entre el BPM, CRM, ERP, aplicaciones legadas, aplicaciones J2EE, y aplicaciones

Page 7: Caso de estudio

Caso de Estudio: Proyecto SIREP2 Estructura, rol e importancia de un ESB en un proyecto Empresarial

centrado en procesos de negocio (BPM) y soportados en reusabilidad de Servicios (SOA) 7

PARADIGMA - REVISTA ELECTRONICA EN CONSTRUCCIÓN DE SOFTWARE VOL. 1

.NET y las aplicaciones proveedoras de las funcionalidades de negocio deben pasar por el

esta pieza intermedia.

El ESB ofrece robustez y confiabilidad en la entrega de mensajes a los escenarios de

negocio que consideran el flujo de información entre varias aplicaciones y/o plataformas

tecnológicas, gracias a la naturaleza asíncrona sobre la que se encuentra implementada

la comunicación de los diferentes elementos estructuradores del Bus.

Por ejemplo, cuando el BPM desea invoca una funcionalidad de negocio publicada

por la plataforma ERP (SAP) de la CCB, y la cual hace parte de una orquestación de un

proceso de negocio, delega la entrega del mensaje al ESB, el cual asume las siguientes

responsabilidades para garantizar la entrega del mensaje:

1. Toma el mensaje enviado por el BPM

2. Procede a transformarlo en el formato de mensajes que maneja la plataforma ERP,

3. Publica el mensaje a una cola JMS ó MQ Series,

4. Toma el mensaje de la cola, bajo un contexto transaccional JTA,

5. Envía a través de un adaptador el mensaje publicado en la cola a la plataforma

ERP

6. Sí este último se encuentra fuera de línea, el mensaje no es entregado y por ende

no es confirmado su consumo en el sistema de colas, para que luego vía un

mecanismos pull o push (Patrón Reactor/Proactor POSA) sea aplicado un

reintento de mensajes.

Este ejemplo refleja tres importantes requerimientos no-funcionales que deben ser

asegurados en un escenario de integración SOA y que son delegados en cuento a su

manejo a la plataforma ESB: Traducción y transformación de formatos de mensajes,

entrega y consumo transaccional de mensajes, y garantía de entrega de mensajes

apoyados en enfoques asincrónicos con activación dinámica Pull o Push.

Adicionalmente, el ESB esta siendo empleado en la CCB como proxy a los servicios

SOA publicados directamente por las plataformas de negocio y sistemas de información

sobre las cuales la Cámara soporta su operación diaria. Esto para ofrecer una capa

homogénea, bien formada, definida y estandarizada de acceso en cuanto a: Protocolos

invocación (binding), formato de datos y manejo de requerimientos no funcionales. Todo

esto desde la perspectiva de las aplicaciones consumidoras de servicios tales como: BPM,

Portal, BAM, entre otras. Lo cual promueve la reusabilidad desde diferentes sistemas de

las funcionalidades de negocio publicadas como servicios.

4 CONCLUSIONES Y REFLEXIONES

Las conclusiones y reflexiones que se presentan a continuación, está encaminadas al por

qué utilizar un ESB de acuerdo a las lecciones aprendidas en la CCB. A lo largo del

camino que se ha tenido que labrar para lograr la exitosa implementación del proyecto

SIREP2 pueden enunciarse las siguientes conclusiones sobre la relevancia e importancia

de un ESB dentro de la arquitectura tanto lógica como física de un proyecto SOA / BPM.

El ESB es una plataforma que ofrece y garantiza confiabilidad y robustez al

intercambio de mensajes se da entre aplicaciones consumidores de servicios (Portal,

Page 8: Caso de estudio

8 Jaime Orlando Moreno, Jorge Humberto Arias

VOL. 1 PARADIGMA - REVISTA ELECTRONICA EN CONSTRUCCIÓN DE SOFTWARE

BPM, BAM, Sistemas Cliente/Servidor, Sistemas externos, etc.) y aplicaciones

proveedoras de servicios donde residen las funcionalidades de negocio (ERP (SAP),

aplicaciones legadas, aplicaciones en .NET / J2EE, CRM (Microsoft Dynamics, etc.)

La implementación de los requerimientos no-funcionales que deben asegurarse a lo

largo de intercambio de datos, sea este de naturaleza síncrona o asíncrona, tales como:

Enrutamiento de mensaje, traducción y transformación de datos basados en programación

u ontologías, enriquecimiento de mensajes, entre otros, debe centralizarse y manejarse en

el ESB. Para garantizar de esta manera la reutilización de dichos manejos, y facilitar las

labores de mantenimiento.

Uno de los principales objetivos de un proyecto SOA es definir, estructurar e

implementar un completo catálogo de servicios. Si este catálogo no se evoluciona y

gestiona adecuadamente, todos los esfuerzos realizados no tendrán sentido y valor de

negocio para la organización. Ya que los principios de flexibilidad y reusabilidad que

propone SOA pronto van a terminar desvirtuándose.

La incorporación de una plataforma de ESB dentro de la solución va a permitir

realizar estas tareas de gobierno de una manera centralizada y versionada, garantizándose

así que el catálogo de servicio que define e inspira la arquitectura SOA de la organización

pueda crecer ordenadamente, y cumpla a cabalidad los principios de flexibilidad y

reusabilidad que promete SOA.

Finalmente, los principios de integración no-intrusiva bajo los cuales se soportan la

visión conceptual que define la implementación de un ESB permite que funcionalidades

de negocio implementadas y residentes en sistemas legados y sistemas desarrollados

sobre tecnologías cerradas puedan ser fácilmente publicadas como servicios, y por ende

ser promovidas como un potencial servicio reutilizable del portafolio de servicios

empresarial.