Post on 09-Jan-2016
description
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
85 Sistema a Distancia
Tercera Unidad: Arquitecturas Distribuidas Empresariales
Sumario La siguiente unidad presenta las arquitecturas distribuidas que las organizaciones estn seleccionando para la integracin de sus procesos y aplicaciones, adems se describen y caracterizan los ERP, se realiza una comparacin con el software de gestin y se describe brevemente sobre las principales soluciones de ERP Libres basadas en Software Libre. Luego se define y explica la Gestin de Procesos de Negocios (BPM), sus componentes, tecnologas, estndares que utiliza, su lenguaje XPDL para la definicin de procesos, su notacin BPMN y se describe la herramienta Intalio Designer y Server como solucin BPMS para alinear la tecnologas y los procesos de negocios. Al final de esta unidad se presenta la Arquitectura Orientada a Servicios como una alternativa para integrar procesos y sistemas informticos en las organizaciones, adems se hace una descripcin del Enterprise Service Bus (ESB) y la relacin de SOA y BPM.
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
86 Sistema a Distancia
Objetivos
Al finalizar esta unidad el estudiante ser capaz de:
Conceptuar, describir y caracterizar las soluciones ERP. Comprender y diferenciar las soluciones ERP y BPM en las
organizaciones. Comprender, analizar y evaluar las diferentes alternativas y soluciones
de ERP y BPMS basadas en Software Libre. Entender las arquitecturas ERP, BPM y SOA adems de describir sus
componentes que lo integran. Conocer y experimentar con una solucin ERP de Software Libre para la
integracin de procesos empresariales. Conocer una herramienta BPMS que permita modelar, diagramar,
ejecutar, monitorear y mejorar procesos de negocios.
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
87 Sistema a Distancia
Leccin 7: ERP
7.1 Qu es un ERP?
"Definimos el ERP (Enterprise Resource Planning o Sistema de Planificacin de Recursos Empresariales) como un sistema de planificacin de los recursos y de gestin de la informacin que, de una forma estructurada, satisface la demanda de necesidades de la gestin empresarial." (Muiz, 2000, p.27),
Este tipo de sistemas empresariales son arquitecturas de software distribuido que integra la informacin de distintas funciones de la empresa, tienen gran capacidad de adaptacin, modularidad, universalidad con otro tipo de software.
"..., un gran sistema de informacin utilizado para integrar las actividades de todas las unidades de una compaa. Esta apoyando por una gran base de datos a travs de la cual todos comparten la misma informacin cuando ocurre una transaccin". (Griffin y Ronald, 2005, p.160).
Figura 7.1: Integracin de procesos con un ERP Fuente: Adaptacin propia
7.2 Objetivos de un ERP
Con este tipo de herramientas los negocios esperan: - Mejorar su productividad
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
88 Sistema a Distancia
- Mejorar la calidad en los servicios con sus proveedores y clientes - Mejorar el nivel de servicio con los clientes internos y externos - Reducir los costes de integracin
Adems permiten:
- Optimizar e integrar los procesos - Ayudar a gestionar y toma de decisiones - Acceder a informacin de forma precisa en la fuente de datos - Compartir informacin entre las diferentes reas - Converger e integrar en una sola base de datos - Reducir los tiempos en los procesos involucrados con los proveedores y clientes.
7.3 Caractersticas
Son muchas las razones por las cuales se debe elegir una solucin para integrar procesos, aqu se muestra las caractersticas tcnicas ms importantes:
- Simulacin de la realidad - Bases de datos centralizadas - Los datos se aaden una sola vez - Da soporte a las funciones bsicas del sistema - Interaccionabilidad - Integrabilidad - Flexibilidad - Modularidad - Adaptabilidad - Comprensivo
7.4 Mdulos bsicos de un ERP
Algunos ERPs poseen una gran cantidad de mdulos y paquetes pero en la mayora coincide estos mdulos bsicos:
- SCM (Mdulo para la gestin de cadena de suministros) - MPR (Mdulo para la gestin del proceso de produccin) - CRM (Mdulo para la fidelizacin de los clientes) - Ventas (Mdulo para la gestin de puntos de venta del negocio- CRM (Procesos de Negocio)
7.5 Implantacin de un ERP en un Negocio
Existen diferentes esquemas para implementar y poner en marcha este tipo de sistemas, a continuacin presentamos este modelo desarrollado en fases:
Fase I: Anlisis y diseo: - Define el proyecto - Definicin de requisitos
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
89 Sistema a Distancia
- Identificar diferentes soluciones ERP - Elegir la solucin eficiente de acuerdo con las caractersticas tcnicas, operativas y econmicas
Fase II: De desarrollo de la solucin - Desarrollo de adaptaciones de los mdulos o componentes - Instalacin y Configuracin del ERP en el negocio - Conversin de datos e integracin con los mdulos del ERP
Fase III: De implementacin - Capacitacin y formacin de los mdulos para los usuarios - Puesta en explotacin de mdulos del ERP
7.6 Factores crticos de xito
Para que este tipo de software distribuido tenga un gran xito es necesario que:
- La gerencia general tiene que liderar la implantacin - Los usuarios deben estar adecuadamente capacitados - La organizacin debe tener definido su arquitectura de negocios integrada con su arquitectura tecnolgica - La organizacin debe definir claramente los objetivos frente a este tipo de sistemas de informacin - Definir e identifiquen los recursos tcnicos - Elegir el correcto ERP en funcin de las necesidades y adaptacin al negocio - Evaluar y analizar los requisitos, requerimientos y necesidades de la organizacin.
7.7 Factores crticos para el fracaso
Aqu algunos factores que determinan el fracaso en la puesta en marcha e implementacin de los ERPs en los negocios:
- La alta gerencia no entiende las prestaciones que ofrece este tipo de sistemas - No entiende las necesidades y requerimientos de los sistemas actuales - Carencia de comunicacin y cooperacin - Relacin poco fluida con los responsables de su implementacin - Usuarios mal capacitados - Proyecto de implementacin no controlado
7.8 Ventajas de los ERP
Existe una lista por las cuales se elige el software ERP, entre las que podemos citar: - Seguimiento de los procesos de la organizacin de manera efectiva - Reducir los costes de integracin - Mejorar el servicio al cliente y los proveedores - Mejorar la comunicacin entre las diferentes reas o unidades de negocio
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
90 Sistema a Distancia
- Integra los procesos de negocios de una organizacin - Capacidad para racionalizar procesos y flujos de trabajo. - Capacidad para compartir datos a travs de las reas de los departamentos. - Mejoran la eficiencia continua.
7.9 Comparativa ERP versus Software de gestin
Existes muchas diferencias entre un ERP y un Software de Gestin el cual describimos a continuacin:
ERP Software de Gestin
Aplicacin desarrolladas, estandarizadas, existentes y con costes fijos de implantacin.
Costes de implantacin elevados.
Documentacin para los usuarios ya desarrollados.
Manuales y documentacin personalizada.
Mantenimiento y desarrollo de los mdulos lo ofrecen diferentes empresas.
Mantenimiento y desarrollo depende solo de la empresa desarrolladora del software de gestin.
Un modelo estndar respecto a su diseo y programacin.
El anlisis y diseo depende de los requerimientos de los negocios, hecho a medida.
Modelo adaptado para las necesidades de los usuarios
Su desarrollo depende de las necesidades del negocio y sus usuarios.
Integrado y puede interoperar con otros sistemas externos
Hay que preparar su integracin con otros sistemas y desarrollar un mdulo para interoperar con otros software
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
91 Sistema a Distancia
7.10 ERP basados en tecnologa de Software Libre Existen una gran cantidad de productos ERP en el mercado entre software libre, software ERP por suscripcin y software ERP propietario, aqu algunos productos basados en Software Libre y Open Source:
Adempiere: Es un proyecto desarrollado por la comunidad de software libre, posee mdulos para la gestin de relacin con los clientes (CRM) y administracin de la cadena de suministro (SCM). Basado originalmente en Compiere, es un ERP desarrollado con tecnologa Java y completamente libre bajo la licencia GPLv2 y trabaja con base de datos PostgreSQL. Tiene un soporte comunitario y comercial. (http://www.adempiere.com)
AbanQ: Es un ERP desarrollado modularmente estn disponible para plataformas GNU/Linux, Windows y MAC OS. Posee mdulos integrados para facturacin, gestin de almacenes, gestin de tesorera, contabilidad financiera, control de produccin (MRP) y adems tiene soporte completo para cdigos de barras. Esta trabajando bajo licencia GPL y orientado a pequeas empresas. (http://www.infosial.com/)
Compiere: Es un ERP de software libre destinada para las empresas de pequeo y mediano tamao. Compiere est desarrollado bajo la licencia pblica Compiere (CPL). Es una solucin desarrollada en el lenguaje de programacin Java, trabaja con la base de datos Oracle y con un servidor de aplicaciones JBoss. (http://www.compiere.com)
OasisERP: Es un ERP orientado para las pymes basado ntegramente en herramientas de software libre, trabaja bajo la licencia pblica GPL. Desarrollado con los lenguajes de programacin PHP y GTK y trabaja con la base de datos PostgreSQL. (http://www.oasis-clm.es/)
Openbravo: Desarrollado como software libre y basado ntegramente en entorno web. Basado en una versin antigua de Compiere. Dispone de soporte para bases de datos PostgreSQL y Oracle. Se encuentra disponible en espaol y actualmente se preparan localizaciones en varios otros idiomas, licenciado bajo Openbravo Public License Version 1.1. (http://www.openbravo.com)
OpenERP: Este ERP esta basado ntegramente desarrollado en Python, PyGTK y trabaja con la base de datos PostgreSQL. Posee mdulos para CRM, contabilidad, gestin de compras, gestin de almacenes, inventario, gestin de ventas y mdulos para configurar puntos de venta. Actualmente esta bajo la licencia pblica General GPL y es libre su descarga. OpenERP est orientado al uso de las pequeas y medias empresas internamente usa un modelo de flujos de trabajo desarrollado con arquitectura en tres capas. (http://www.openerp.com)
openXpertya: Es un ERP es otra solucin ERP liberada con Licencia Pblica de openXpertya, esta integrado con mdulos CRM, servicios B2B o B2C, adems incluye mdulos para la gestin de proyectos, marketing y puntos de venta. El sistema ha sido desarrollado ntegramente en la plataforma J2EE y el
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
92 Sistema a Distancia
cdigo fuente de openXpertya se puede descargar libremente. (http://www.openxpertya.org)
Xendra: Este ERP liberado bajo la licencia pblica general (GPL) por lo tanto tambin es software libre, actualmente esta disponible para sistemas operativos de windows, adaptado a la legislacin y el mercado peruano. Ofrece una gran cantidad de mdulos funcionales desde CRM, SCM, contabilidad, entre otros. Trabaja con el servidor de aplicaciones Jboos y base de datos PostgreSQL. (http://www.xendra.org)
Leccin 8: BPM 8.1 Procesos de Negocio
Es un conjunto de actividades relacionadas dentro de una organizacin que tienen como objetivo conseguir un determinado resultado.
"...son los procesos utilizados en los negocios para lograr algn objetivo del negocio. Un ejemplo de un proceso de negocios es una compaa de seguros sera emitir una poltica de seguros; en una fabrica, un proceso de negocios sera aceptar un pedido para los productos y estipular el proceso de fabricacin asociado. Los procesos de negocio pueden ser diseados alrededor de un sistema heredado y restringidos por la funcionalidad que ste proporciona" (Sommerville, 2006, p. 36)
Los procesos de negocios son una secuencia de actividades que tiene entradas predeterminadas y producen salidas resultados, adems generan valor para un cliente.
Ordenacin lgicamente interrelacionada de tareas desarrolladas en tiempo y espacio (con comienzo y fin, con entradas y salidas definidas) y que se orienta al logro de un objetivo de negocio, generando un output de valor (total o parcial) para el cliente del proceso (Davenport y Short, 1990).
Esta coleccin organizada de comportamientos de negocio satisfacen los propsitos del negocio, actuando conforme a las reglas de negocio de la organizacin.
8.2 Qu es BPM?
La gestin de procesos de negocio ha dado origen a una nueva etapa en la gestin de procesos denominada Business Process Management (BPM).
BPM (Business Process Management) Gestin de Procesos de Negocios es un conjunto de mtodos, herramientas y tecnologas utilizados para disear, representar, analizar y controlar los procesos de negocio de una organizacin (Garimella, Lees y Williams, 2008, p. 5).
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
93 Sistema a Distancia
Tiene un enfoque centrado en los procesos para mejorar el rendimiento de los procesos de negocio, abarca sistemas, funciones, negocios, proveedores y clientes.
"BPM es una tecnologa que soporta todo el proceso de gestin y desarrollo de negocio de una organizacin. En este contexto, se entiende que un proceso de negocio consiste en una secuencia de actividades a realizar y los ejecutores de dichas actividades, que definen los flujos de trabajo y de conocimiento. BPM permite la representacin explcita de la lgica de los procesos de negocio de forma orientada al proceso, y se utiliza cada vez ms como una solucin que integra los procesos de fabricacin e ingeniera" (Reza-Balay, 2010, p. 62).
Combina la gestin de procesos conjuntamente con tecnologas de informacin para modelar, disear, automatizar, ejecutar y monitorear procesos de negocio.
"El corazn de una plataforma BPM es el motor de ejecucin de procesos al ofrecer mecanismos de control transaccional para ejecutar procesos de negocio de principio a fin, estos motores pueden usarse para gestionar actividades internet y complejos procesos B2B" (Munilla y Garca, 2003, p. 114)
Permite integrar con otras tecnologas como SOA, ERP, Web Services, sistemas heredados y aplicaciones de Comercio Electrnico.
Es la disciplina de modelar, automatizar, manejar y optimizar procesos para incrementar la rentabilidad de un negocio. En esta ptica, el objetivo de la gestin de procesos esta concentrada en el aumento de la rentabilidad (Khan 2003).
Podemos entender BPM como el mejoramiento continuo de la gestin de los procesos de negocio de una organizacin, de una manera integral, colaborativa con el uso de la tecnologa en este sentido BPM permite la alineacin de los procesos, tecnologas con los objetivos y visin del negocio.
8.3 BPM en las Organizaciones
Los siguientes son beneficios identificados en la aplicacin de soluciones BPM:
Mejor y mayor flexibilidad para la adaptacin y cambio de procesos. Integracin de la informacin del negocio dispersa en diferentes
aplicaciones y sistemas. Permite adquirir habilidad para disear, simular, implementar, poner en
marcha y supervisar procesos de manera automtica. Permite organizar la organizacin de una manera planeada y alineada a
la visin y objetivos del negocio. Visibilidad de los procesos de negocios en las organizaciones Reducir posible costos de integracin y mantenimiento al adoptar
tecnologa preparadas para abordar el cambio.
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
94 Sistema a Distancia
8.4 Tecnologas de Informacin para BPM
En la actualidad existen empresas de la industria del software que estn proporcionando las tecnologas que permiten la implementacin y adopcin de los procesos de negocios utilizando BPM, que constituye una nueva categora de sistemas de informacin denominada Business Process Management System (BPMS). El modelo planteado de este tipo de herramientas implica un ciclo de vida basada en la figura
Figura 8.1: Arquitectura de trabajo de los Business Process Management Systems (BPMS)
Fuente: Adaptado de Howard, S,. & Fingar, P. (2003) Business Process Management: the third wave.
Este tipo de sistemas permiten definir, modelar, implementar y mejorar el proceso durante su operacin. Los sistemas BPMS tiene una gran capacidad de: modelar, simular, integrar, automatizar y desplegar procesos de negocios.
Todo ello integrado en un nico entorno que realiza todas las funciones de la tecnologa BPM.
Podemos citar diferentes Suites BPMS propietarios y basadas en software libre:
- Oracle SOA Suite - IBM BPMS - Bizagi BPMS - Aural Portal - BEA AquaLogic BPMS - Process Maker - Intalio BPMS - BonitaSoft
8.5 Componentes Tpicos de un BPMS
Los componentes mnimos que trabajan este tipo de tecnologas son:
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
95 Sistema a Distancia
Modelado de Procesos - Diseo grfico de los procesos de negocio - Sin necesidad de conocimientos tcnicos
Motor de Orquestacin - Toma modelos de un repositorio de procesos - Gestiona y controla el estado de cada una de las instancias de las diferentes tareas - Gestiona el estado de los procesos - Ofrece mecanismos de recuperacin y reanudacin de procesos ya automatizados
Monitorizacin y Anlisis - Analiza en tiempo real los datos de la ejecucin de los procesos ya automatizados - Ofrece indicadores de gestin y cuadros de mando - Identifica problemas con cuellos de botella y fallos del proceso
Simulacin y Optimizacin - Ejecucin de los procesos en ambientes no reales y con datos reales - Soporte para metodologas de optimizacin
Motor de Reglas - Define las reglas de negocio asociadas a condiciones basadas en parmetros - Integrado en el motor BPM
Servidor de Integracin - Implementa la interfaz del proceso de negocio. - Ofrece conectores, mensajera, reglas de transformacin y enrutamiento.
8.6 Estndar BMPN para Modelar Procesos de Negocio
The Business Process Management Initiative (BPMI), desarroll una notacin para modelos de los procesos de negocios denominado Business Process Modeling Notation (BPMN) cuyo objetivo es proveer una notacin que sea entendida por todos los usuarios tcnicos o no tcnicos y pueda ser visualmente expresado por una notacin comn.
Figura 8.2: Notacin BPMN Fuente: Layna Fischer (2010) BPMN 2.0 Handbook
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
96 Sistema a Distancia
8.7 Lenguaje para la definicin de procesos
Existe el formato XPDL (XML Process Definition Language), un lenguaje para la definicin de un Flujo de trabajo (WorkFlow), creado por la organizacin WfMC, actualmente en una versin 2.0.
XPDL forma parte de la interfaz para definir los procesos de negocios basados en XML que puede ser usado para intercambiar modelos de procesos de negocio entre distintas BPMS.
XPDL es el formato de archivo que representa el dibujo o modelo del proceso de negocios, utilizado para la automatizacin de los procesos.
Figura 8.3: Representacin del proceso con BPMN
Figura 8.4: Cdigo generado en XPDL
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
97 Sistema a Distancia
8.8 Intalio BPMS
Es un Suite de BPM para modelar, automatizar y poner en marcha procesos de negocios, desarrollado en Java y es software libre (utilizacin gratuita).
Contiene las componentes tpicos de una suite BPMS, actualmente se cuenta con una versin Intalio|Works Community y una solucin de Intalio |Works Enterprise Edition, el cual incluye mdulos empresariales que le dan un valor aadido al producto.
8.8.1 Intalio Designer
La herramienta Intalio Designer, permite modelar y parametrizar los procesos con notacin BPMN adems de la notacin extendida
Ofrece un conjunto de conectores a diversos sistemas, como bases de datos, Servicios web y funcionalidades SOA.
Permite integracin y despliegue de los procesos con Intalio Server a travs de su entorno de desarrollo.
Adems es una herramienta que permite la transformacin automtica de la notacin BPMN a BPEL ms el Workflow.
Figura 8.5: Intalio diseador de procesos
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
98 Sistema a Distancia
8.8.2 Intalio Server
Permite la ejecucin de los procesos creados con Intalio Designer, esta basado en J2EE y una arquitectura SOA del tipo Axis 2.
Integra dos componentes de Software Libre interconectados (Apache ODE: Motor de BPEL 2.0 e Intalio Tempo: Motor de Workflow con soporte tareas humanas).
Ofrece 2 interfaces visuales a nivel administrador y usuarios finales de los procesos.
Permite publicar los procesos de negocio como Servicios Web y llamarlos con servicios web externos.
Figura 8.6: El motor de procesos Intalio Server
Leccin 9: SOA 9.1 Concepto de Servicio
Se puede considerar como un "contrato" en el cual se hacen las prestaciones que se entregaran al usuario.
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
99 Sistema a Distancia
"Los servicios son funcionalidades especficas que pueden ser descubiertas y describen tanto lo que puede hacer como el modelo de interactuar con l" (W3C, 2004)
Por ejemplo: Devolver los datos personales de un cliente comunicar a cada cliente de la empresa una nueva promocin comercial.
9.2 Qu es SOA?
"Una aplicacin SOA es una coleccin de servicios, un servicio es la unidad atmica de una SOA, los servicios encapsulan procesos de negocios, los proveedores de servicios se registran solos, un servicio involucra: Find, Bind, Execute y las instancias ms conocidas son los web services" (Brooks, 2008).
La arquitectura orientada a servicios (SOA), es un marco de trabajo conceptual que permite a las organizaciones unir los objetivos de negocio con la infraestructura de TI integrando los datos y la lgica de negocio de sus sistemas separados.
"Permite la creacin de sistemas altamente escalables que reflejan el negocio de la organizacin, brinda una forma estndar de exposicin e invocacin de servicios (comnmente pero no exclusivamente con web services), lo cual facilita la interaccin entre diferentes sistemas propios o de terceros" (Bieberstein, 2003).
Con SOA, una empresa puede mantener sus inversiones en los sistemas heredados y a la gente necesaria para mantenerlos, es una solucin prometedora para los problemas de integracin de sistemas de informacin y aplicaciones.
Esta propuesta SOA implica, descomponer la lgica de negocio de una organizacin en partes ms pequeas. Donde cada una de ellas contiene su propia unidad lgica.
SOA es un enfoque para disear y desarrollar soluciones de negocio, a partir de componentes independientes que exponen funciones como servicios accesibles por otros componentes a travs de interfaces estndares.
SOA permite alinear las capacidades de TI con los objetivos de negocio y visin del negocio, donde provee una infraestructura tcnica para responder a los cambios de requerimientos del negocio.
A continuacin la tabla 9.1, donde describe las diferencias sobre las diferentes tecnologas distribuidas y su comparacin con SOA.
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
100 Sistema a Distancia
Tabla 9.1 Tabla comparativa de las caractersticas de las soluciones distribuidas
Caractersticas
SOA
DCOM
CORBA
RMI
Protocolo
SOAP
RPC
IIOP
IIOP o JRMP
Formato de mensaje
XML
NDR
CDR
Java Serialization Format
Descubrimiento
UDDI
Registry
Naming Service
RMI Registry o JNDI
Descripcin
WSDL
IDL
OMG IDL
Java
Enfocado
Integracin de Procesos de Negocio
Componentes distribuidos
Objetos Distribuidos
Invocacin de Mtodos Remotos
9.2.1 SOA en las empresas y organizaciones
Para la industria del software SOA es considerada la solucin para la integracin de datos, aplicaciones y procesos, donde interoperan sistemas de manera independiente a la tecnologa y plataforma.
SOA es la prxima ola de desarrollo de aplicaciones. Es ms rpida, mejor y ms barata (Pallos, 2001, p.350)
Algunos gobiernos para la implementacin de aplicaciones de gobierno electrnico han considerado viable implementar este tipo de soluciones. En el caso peruano SUNAT, Aduanas, Reniec han comenzado a implementar web services y el siguiente paso ser la integracin de sus sistemas utilizando un SOA gubernamental.
Recomiendan a los arquitectos de tecnologas de informacin considerar SOA como la prioridad nmero uno en sus esfuerzos de planeamiento arquitectnico (Giga IT Trendsm, 2003: Application architecture and design).
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
101 Sistema a Distancia
9.3 Comparacin con otros enfoques de desarrollo
Existen diferencias concretas entre el modelo de servicios con otras soluciones distribuidas, tal como se presenta en la siguiente tabla:
Tabla 9.2 Tabla comparativa con otros enfoques de desarrollo Fuente: Mitchell, K. (2002) A matter of style: Web Services architectural
patterns. XML Conference & Exposition, Baltimore
9.4 Enterprise Service Bus (ESB)
Enterprise Service Bus (ESB) Bus de servicios de empresa (BSE) consiste en un combinado de arquitectura de software que proporciona servicios fundamentales para arquitecturas complejas a travs de un sistema de mensajes (el bus) basado en las normas y que responde a eventos.
El uso de la palabra "bus" viene del bus que transporta los bits entre los distintos dispositivos de un ordenador.
Software de infraestructura que posibilita el acceso a los servicios de negocio reutilizables por parte de usuarios, aplicaciones, procesos de negocio, y otros servicios []. Infraestructura software que posibilita SOA, al actuar como una capa de middleware de intermediacin a travs del cual se puede acceder a un conjunto de servicios de negocio reutilizables (Vollmer y Gilpin, 2006)
Infraestructura middleware que soporta web services y aporta comunicacin de valor aadido entre programas, y mediacin para componentes de negocio orientados a servicios y guiados por eventos (Schulte, 2005).
Relacion entre Proveedor y Consumidor
Programacin Estructurada
Programacin Orientada a
Objetos Programacin
por Componentes
Desarrollo Orientado a
Servicios Granularidad
Muy fina
Fina
Intermedia
Gruesa
Contrato
Definido
Privado/Publico
Publico
Publicado
Reusabilidad
Baja
Baja
Intermedia
Alta
Acoplamiento
Fuerte
Fuerte
Dbil
Muy dbil
Dependencias
Tiempo de Compilacin
Tiempo de Compilacin
Tiempo de Compilacin
Tiempo de Ejecucin
mbito de Comunicacin
Intra-Aplicacin
Intra- Aplicacin
Inter- Aplicaciones
Inter-Empresas
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
102 Sistema a Distancia
Figura 9.1 Integracin de sistemas con ESB en una Arquitectura Orientada a Servicios
Fuente: Adaptado de Microsoft (2007) A high-level example of the connectivity provided the Enterprise Service Bus architecture
9.5 SOA y BPM
La adopcin de SOA y BPM estn muy relacionadas. Un reciente estudio de Forrester (2009) mostr que el 92% de los encuestados que estaban implantando SOA tambin consideraban BPM importante para el futuro de su organizacin.
La generacin actual de los productos de gestin de BPM estn centrados en funcionalidades SOA. Los ltimos aos los lderes de BPM han transformado el mercado en soluciones basado en SOA y tecnologa de integracin basada en estndares.
La prxima generacin de soluciones de integracin de sistemas y ejecucin de procesos de negocio estar basada en arquitecturas orientadas a servicios. SOA permitiendo de esta manera maximizar el rendimiento de las inversiones en TI.
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
103 Sistema a Distancia
BPM y SOA van juntos, adems ambos permiten optimizar los procesos de negocio con ms flexibilidad y rapidez. Ambos convergen y permiten el alineamiento del rea de negocio con rea de Tecnologas de Informacin.
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
104 Sistema a Distancia
RESUMEN
La unidad desarrollada nos proporciona las principales arquitectura distribuidas empresariales como son los ERPs, soluciones basadas en la gestin de procesos (BPM) y la Arquitectura Orientada a Servicios.
Se describen y detallan los objetivos, caractersticas y mdulos que ofrecen los sistemas de planificacin de recursos empresariales (ERP), adems se especifica su implementacin, factores crticos para el xito y fracaso, adems de una comparacin de las principales ERP basadas en software libre.
Luego se definen y se describe la Gestin de Procesos de Negocios (BPM), desde un enfoque de gestin y tecnolgico adems de describir sus componentes, la notacin BPMN y el lenguaje para la definicin de procesos (XPDL). Se finaliza esta leccin describiendo Intalio Designer e Intalio Server como solucin BPMS para modelar, automatizar, ejecutar y mejorar procesos de negocio.
Luego se describe y define la Arquitectura Orientada a Servicios (SOA) como una solucin para integrar procesos de negocios, sistemas heredados, y componentes reutilizables del negocio. Luego se define Enterprise Service Bus (ESB), como el principal componente de las soluciones SOA que permite articular los servicios y vistos como web services para este tipo de soluciones.
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
105 Sistema a Distancia
L E CTURA
SOI (Service Oriented Integration) *
SOI o Servicio Orientado a la Integracin es la forma de integrar servicios de una arquitectura SOA, ensamblndolos en pequeas partes hasta alcanzar el mximo nivel de granularidad. Hace que la integracin sea una tarea ms sencilla al ensamblar componentes de bajo nivel. Los resultados son similares a los de las soluciones propietarias EAI: ambas pueden integrar aplicaciones y publicar servicios Web para que sean consumidos por otras aplicaciones, pero existen algunas diferencias.
La tecnologa SOI es complementaria a la tecnologa MOM (Message Oriented Middleware) que utilizan las soluciones EAI, pero no la necesita para realizar la integracin, lo que reduce los costes y la complejidad del proyecto. Cuando en un proyecto es necesario implantar tecnologas MOM (normalmente en grandes empresas) SOI puede reducir los costes de configuracin en el punto donde los mensajes se convierten en lgica de aplicacin o datos, con la tecnologa EAI se puede alcanzar una infraestructura de mensajera escalable y multitud de conexiones con las aplicaciones, pero es en la ltima milla donde se hacen necesarios los adaptadores de aplicacin y donde la precisin en su desarrollo eleva los costes. No slo es ms sencillo construir adaptadores con SOI sino que los es toda la metodologa de integracin en s misma ya que separa el desarrollo de la lgica de integracin del adaptador, donde sera necesario desarrollar cdigo cliente, y lo lleva a un repositorio central donde resulta ms sencillo trabajar con las API. Desde este repositorio se puede visualizar los distintos componentes de las aplicaciones de empresas y bases de datos para ser ensamblados en forma de servicios.
SOI utiliza adaptadores ligeros
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
106 Sistema a Distancia
Los servicios de aplicaciones estn evolucionando. BEA, por ejemplo, ofrece nuevos servicios de integracin, que incluyen BPM y B2Bi, los cuales se ejecutan en su servidor de aplicaciones ofreciendo servicios de runtime, como seguridad, escalabilidad, pool de conexiones, etc. IBM ha cambiado su estrategia de integracin desde MQ Series a WebSphere y sigue una estrategia similar. Al mismo tiempo, la tecnologa de los brokers de integracin tambin evoluciona, y estn adaptando los servicios web, incluso soportan programacin Java, ms adaptadores de aplicaciones, soluciones verticales para reducir tiempos de implantacin.
Mientras que los brokers de integracin fueron utilizados para las aplicaciones crticas, los servidores de aplicaciones permitieron a las empresas desarrollar sus aplicaciones para la web. Un mercado como el de los brokers de integracin, dominado por herramientas propietarias, no resulta operativo para los requerimientos actuales en cuanto a interoperabilidad del e-business. Aunque funcionara en las primeras etapas de una estrategia e-business con aplicaciones simples que tan solo necesitaban de un servidor de aplicaciones y una base de datos relacional, actualmente, y para beneficiarse del e-business colaborativo, los procesos de negocio de la empresa deben ser integrados con los procesos de sus socios, lo que requiere una plataforma de integracin que conecte todas las aplicaciones que formen parte del sistema de informacin.
Estructura con brokers de integracin
Si una empresa ya ha invertido en un broker de integracin capaz de gestionar sus procesos globales. lo lgico ser conectarlo con un servidor de aplicaciones J2EE para la gestin de la seguridad y la capa de presentacin.
Si no ha realizado esta inversin, puede utilizar un estndar comoJCA (desarrollado por Sun, IBM y BEA), que permiten al servidor acceder a
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
107 Sistema a Distancia
las aplicaciones de empresas de igual modo que JDBC lo hace con las bases de datos relacionales. Si la empresa quiere conectar su ERP con una aplicacin especfica que se ejecuta en el servidor de aplicaciones. Solo necesitara el conector JCA apropiado. El mercado camina hacia la integracin basada en Internet y los servidores de aplicaciones parecen estar mejor posicionados. J2EE se ha convertido en un estndar en el mercado de los servidores web, mientras que JCA ofrece conexin estndar con mltiples sistemas de back-office. La combinacin de integracin web con aplicaciones existentes en la empresa ofrece el entorno imprescindible para consolidar una estrategia de e-business a nivel global.
Las empresas deben basar cada vez ms su tecnologa en estndares para obtener ventajas, como: disponibilidad de recursos, capacidad de reaccin, proteccin de la inversin, escalabilidad, independencia del vendedor, etc. Bien es verdad que todava queda por resolver problemas como el soporte JCA para la comunicacin asincrnica o que la portabilidad de complejos desarrollos EJB no es completa.
Para conformar una plataforma de integracin, se necesita estndares y herramientas, los servicios web representan un conjunto de estndares y gracias a la amplia adopcin de stos por la industria casi todas las herramientas y plataformas los soportan. Hoy existen herramientas de desarrollo, como VisualStudio.NET o Borland Jbuilder, o plataformas que soportan servicios web, como WebSphere, BEA WebLogic o los servidores.NET. Tambin se pueden ampliar las herramientas creadas en la empresa empleando tecnologas abiertas, como Microsoft SOAP Toolkit o Apache SOAP. Las opciones son ilimitadas. Aparte de plataformas y herramientas, los fabricantes de soluciones empaquetadas anuncian soporte para los servicios web, lo que significa que se integrarn directamente con la plataforma de integracin desarrollada con los servicios web sin cdigo en el cliente, algo imposible con las plataformas propietarias.
Los servicios web permiten construir una plataforma de integracin basada en estndares en cualquier tipo de empresa. Con las herramientas actuales puede ser desarrollada incrementalmente, proyecto a proyecto, sin la necesidad de realizar una inversin inicial grande, empezando por utilizarlos en integracin punto a punto y escalar hacia una plataforma completa.
* Fuente: (Valcrcel, I. y Munilla, 2003, pp. 97-100)
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
108 Sistema a Distancia
AUTOEVALUACIN 3
1. Un ERP permite: a. Planificar recursos tecnolgicos b. Gestionar solo los clientes y proveedores c. Gestionar usuarios y recursos de los proveedores d. Gestionar la contabilidad, proveedores, clientes y procesos de negocio e. Gestionar la demanda tecnolgica
2. Uno de los mdulos no es parte de un ERP: a. Mdulo de Compras b. Mdulo de Recursos Humanos c. Mdulo de CRM d. Mdulo de ETL e. Mdulo de Contabilidad
3. Uno de los factores crticos de xito en la implementacin de un ERP, no corresponde a. Gerencia lidera la implementacin b. Se elige un correcto ERP c. Evaluar requisitos correctamente d. La organizacin tiene definido su arquitectura de negocios e. Carencia de Comunicacin
4. Un software de gestin es: a. Un sistema de informacin estndar b. Un sistema de informacin con documentacin ya desarrollado c. Un sistema de informacin utilizable para determinados negocios d. Un sistema integrado que puede interoperar con otros sistemas e. Un sistema de informacin desarrollado a medida
5. Openbravo es un ERP desarrollado con las siguientes tecnologas: a. Java + Oracle b. Java + Mysql c. php + Oracle d. Mysql + .Net
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
109 Sistema a Distancia
e. PosgreSQL + php
6. Openbravo es una implementacin ERP basada en: a. Compire b. Xendra c. OpenERP d. AbanQ e. Adempiere
7. Con BPM las organizaciones pueden: a. Solo modelar procesos de negocios b. Disear, controlar procesos con el proveedor y sus socios c. Visualizar los procesos de negocios d. Solo diagramar procesos de negocios e. Aumentar los costos de integracin y mantenimiento
8. Las herramientas de BPMS permiten a. Solo modelar procesos de negocios b. Solo automatizar procesos de negocios c. Definir, Modelar, Implementar y Mejorar procesos de negocios d. Solo monitorear procesos de negocios e. Identificar procesos de negocios
9. El lenguaje XML que permite definir los procesos de negocio se denomina: a. XSD b. XMLSchema c. DTD d. XPDL e. XMLNS
10. Una de las afirmaciones es incorrecta acerca de SOA: a. Integrar web services y aplicaciones b. Integrar datos, aplicaciones y procesos. c. Recomendado para alinear las tecnologas y el negocio
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
110 Sistema a Distancia
d. Un sistema distribuido cliente/servidor e. Un enfoque para disear y desarrollar soluciones de negocio
RESPUESTAS DE CONTROL 1. d 2. d 3. e 4. a 5. a 6. a 7. c 8. c 9. d 10. d
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
111 Sistema a Distancia
EJERCICIOS PROPUESTOS
Caso ERP para la empresa FarmaPer La cadena de farmacias FarmaPer, ha decidido implementar una solucin ERP para integrar sus procesos ms importantes que tiene con sus proveedores y clientes, adems conocen que la plataforma funcional es la muestra en la figura siguiente:
Plataforma OpenBravo ERP Se pide: a. Configurar, instalar, personalizar y poner en marcha el ERP en una
plataforma GNU/Linux y personalizar los mdulos de Gestin de Datos Maestros y Gestin de Contabilidad.
b. Describir la arquitectura tecnolgica del ERP c. Describir 10 funcionalidades tcnicas del ERP OpenBravo d. Mencionar los requisitos tcnicos para poner en marchar OpenBravo e. Personalizar el mdulo para la gestin de ventas y puntos de venta f. Ingresar informacin al mdulo de logstica y gestionar los productos por
categora y cantidad en stock. g. Presentar informes y reportes en PDF sobre las ventas mensuales.
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
112 Sistema a Distancia
EXPLORACIN ON LINE
URL:http://sisbib.unmsm.edu.pe/bibvirtualdata/publicaciones/risi/n3_2005/a04.pdf En este artculo del Sistema de Bibliotecas de la UNMSM describe la implementacin de un sistema ERP en una organizacin
URL: http://www.openbravo.com/es/product Sitio oficial del ERP OpenBravo en espaol donde muestra las funcionalidades, experiencias incluso un centro de demostracin de esta solucin gil.
URL: www.openbravo.com/es/product Sitio oficial del ERP OpenBravo en espaol donde muestra las funcionalidades, experiencias incluso un centro de demostracin de esta solucin gil.
URL: http://www.bpmi.org Sitio oficial de la organizacin estndar que define a BPM denominada Business Process Management Initiative
URL: http://wiki.bizagi.com/es/index.php?title=BPMN En este sitio se muestra y describe cada uno de los smbolos de la notacin BPMN, fundamental para disear y modelar procesos de negocio, adaptado para el BPMS bizagi.
URL: http://www.oracle.com/lad/products/middleware/soa/index.html Sitio oficial de Oracle, donde describe su solucin y productos para adoptar SOA en los negocios.
URL: http://www.estebanf.com/bpm/2009-08-26/intaliobpm-mas-alla-de-soa/ En este artculo se demuestra la relacin BPM y SOA. Adems se describe como la solucin Intalio BPM necesita una arquitectura distribuida como SOA
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
113 Sistema a Distancia
REFERENCIA BIBLIOGRFICA
Brooks, M. (2008) Service Oriented Architecture and Grid Computing, Victoria RMIT University Australia
Bieberstein, N. (2003) SOA Project Planning Aspects. SOA & WOA Magazine.
Davenport, T.H. & Short, J.E. (1990). The New Industrial Engineering: Information Technology and Business Process Redesign, Sloan Management Review.
Fischer, L. (2010) BPM and Workflow Handbook. City of Lighthouse Point: Future Strategies Inc.
Forrester Research (2006) The Forrester Wave: Integration- Centric Business Process Management Suites.
Garimella, K., Lees, M., y Williams, B. (2008) Introduccin a BPM para Dummies. Wiley Publishing, Inc
Giga IT Trendsm (2003) Application architecture and design. Giga Taps 10 Key IT Trends for 2003.
Griffin, R. y Ronald, E. (2005) Negocios. D.F. Mxico: Pearson Edicin de Mxico, S.A.
Howard, S,. & Fingar, P. (2003) Business Process Management: the third wave
Khan, R. (2003) Evaluating BPM Software, Business Integration Journa
Mitchell, K. (2002) A matter of style: Web Services architectural patterns. XML Conference & Exposition, Baltimore.
Microsoft (2007) A high-level example of the connectivity provided the Enterprise Service Bus architecture, Microsoft ESB Guidance for BizTalk Server 2006 R2. Publicado Noviembre del 2007. Obtenido 14 de Marzo del 2011. http://msdn.microsoft.com/en-us/library/bb931189.aspx
Munilla, E. y Garca, I. (2003) E-Bussiness Colaborativo. Madrid: Editorial Confemetal
Muiz, L. (2000) ERP, gua prctica para la seleccin e implantacin. Madrid: Ediciones Gestin 2000
Pallos, M. (2001) WebShere Application Server & Database Performance tuning
Reza-Balay (2010) Hacia la excelencia.Alicante: Editorial Club Universitario
Sistemas Distribuidos II - Unidad III Daniel Yucra Sotomayor
114 Sistema a Distancia
Schulte, R. (2005) Application Integration and WS, Gartner Group.
Sommerville, I. (2006) Ingeniera del Software 7ma edicin. Madrid: Addison-Wesley
Valcrcel, I. y Munilla, E. (2003) E-Business Colaborativo. Madrid: FC Editorial
Vollmer, K. & Gilpin, M. (2006) Forrester Reseach W3C (2004) W3C Workshop on Constraints and
Capabilities for Web Services. Publicado 12 y 13 de Octubre 2004. Obtenido 16 de Marzo del 2011, desde http://www.w3.org/2004/06/ws-cc-cfp.html
BIBLIOGRAFA COMENTADA
- Coulouris, G., Dollimore, J., & Kindberg, Tim (2007) Sistemas Distribuidos Conceptos y Proyecto 4ta. Madrid: Addison Wesley. Puede revisar la unidad 19, sobre los Web services y SOA.
- Muiz, L. (2000) ERP, gua practica para la seleccin e implantacin. Madrid: Ediciones Gestin 2000. Se recomienda revisar los captulos 1, 2 y 3 sobre las caractersticas, tareas y anlisis de los mdulos de los Sistemas de Planificacin de Recursos Empresariales (ERP).
- Krafzig, D., Banke, K. & Slama, D. (2005) Enterprise SOA, Service-Oriented Architecture: Best Practices. Se recomienda revisar el captulos 4 sobre la arquitectura de Software de SOA, adems del captulo 7 sobre la relacin SOA y Business Process Management (BPM).