Enfoque de integración de sistemas parte 4

Post on 08-Aug-2015

147 views 1 download

Transcript of Enfoque de integración de sistemas parte 4

TEMAS

SOLUCIONES ACTUALES EAI TIPOS DE MIDDLEWARE EAI BPMF

Lenguajes de programación web

Soluciones actuales

Lenguajes de programación web

Durante la evolución de los lenguajes de programación, se observa que han pasado de ser estáticos a lo que actualmente conocemos como lenguajes de programación para la web dinámicos. Sin confundir el término dinámico como la interacción del sistema con el usuario, sino como la interacción del usuario con datos a través del sistema.

Lenguajes de programación web

El hecho de que los sistemas estén basados en lenguajes de programación web, se les hace atractivo a un sin números de usuarios, quienes no dependerán por completo de un sistema operativo en particular para usar las aplicaciones, y estas se emplean mediante el navegador web.

Arquitectura común de aplicaciones web

Navegador Lenguaje Base de datos

Cliente Servidor

ASP.NET

Con su desarrollo se resolvieron las limitaciones de su antecesor ASP.

Para desarrollar en ASP.NET se puede usar C#, VB.NET o J#. Para el funcionamiento de las páginas se requiere instalar IIS con el framework .NET.

Los archivos tienen la extensión “.aspx”.

ASP.NET

VentajasOrientado a objetos.Separa el diseño del código.Fácil mantenimiento.Mayor seguridad.

DesventajasMayor consumo de recursos.

Javascript

Se trata de un lenguaje de scripts basado en objetos que permite hacer aplicaciones incrustadas en un documento HTML, que pueden manejar eventos según acciones de parte del usuario. Se maneja del lado del cliente y por lo tanto no se pueden consultar datos del lado del servidor. Útil para la validación de datos antes de enviar al servidor.

Javascript

Ventajas Lenguaje interpretado Se ejecuta del lado cliente Lenguaje seguro.

Desventajas Código visible. El código debe descargarse completamente.

PHP

PHP es un lenguaje de script interpretado en el lado del servidor utilizado para la generación de páginas web dinámicas, embebidas en páginas HTML y ejecutadas en el servidor. PHP no necesita ser compilado para ejecutarse. Para su funcionamiento necesita tener instalado Apache o IIS con las librerías de PHP. La mayor parte de su sintaxis ha sido tomada de C, Java y Perl con algunas características específicas. Los archivos cuentan con la extensión “.php”.

PHP

PHP

PHP

VentajasCapacidad de conexión con distintos manejadores de base de datos.No requiere definición de tipos de variables.Es libre.

DesventajasSe necesita instalar un servidor web.Todo el trabajo es realizado en el servidor. Se puede dificultar la lectura del código

Python

Lenguaje considerado como el más limpio para programar y permite crear todo tipo de aplicaciones incluyendo sitios web.

Es un lenguaje interpretado y multiparadigma, los programadores pueden adoptar un estilo de programación: Estructurada, orientada a objetos, funcional u orientada a aspectos.

Python

Python

VentajasLicencia de código abierto (Opensource).Gran cantidad de funciones y librerías.Orientado a Objetos.Multiplataforma

DesventajasEs lento por tratarse de un lenguaje interpretado.

Perl

Este lenguaje soporta tanto programación estructurada, como la orientada a objetos y la funcional. Es del tipo software libre.

Su estructura está basada en el lenguaje C y aunque su desarrollo fue pensado para la plataforma UNIX, actualmente está disponible en varios sistemas operativos

Perl

VentajasFacilidad y comodidad en la escritura de scripts.Potente para el procesamiento de textos.Versátil.

DesventajasComplejo aprendizaje.Lenguaje interpretado.

RubyLenguaje con una sintaxis inspirada en Python y Perl. Es un lenguaje Opensource, de alto nivel y orientado a objetos, que puede manejar excepciones y cargar librerías de extensiones dinámicamente si el sistema operativo lo permite.

Ruby

VentajasDesarrollo de aplicaciones a bajo costo.PortátilMultiplataforma

DesventajasEl código puede volverse desordenado, si varios programadores no establecen alguna convención de sintaxis.

Lenguajes de programación web

La decisión de qué lenguaje de programación usar a la hora del desarrollo aplicaciones web, siempre será tema de controversia. Las diferencias entre estos, generalmente se encuentran en la plataforma que requieran. Por ello podrá observarse que la elección del lenguaje, tenderá más hacia el gusto del usuario, que al resultado de evaluar el rendimiento de las herramientas.

Integración de aplicaciones de empresas (EAI)

Integración de sus aplicaciones con proveedores y clientes para automatizar los procesos y realizar una gestión más eficiente. Consiga que sus aplicaciones reciban la información de forma sencilla directamente desde la fuente de esta ahorrando en tiempo y evitando demoras.

Integración de aplicaciones de empresas (EAI)

VENTAJASAcceso a información dispersa por toda la

organización

En una empresa dotada de una integración adecuada de sus aplicaciones se puede acceder a cualquiera de sus datos. Se reduce el tiempo de búsqueda, acceso y uso de la información global de la empresa. Aun más, la presentación de esta información o el resultado de la mezcla de varias fuentes se puede orientar a dar funciones de cuadro de mando. Acceder a informes procesados y preparados para que las tomas de decisiones sean lo más rápidas posibles.

VENTAJASSincronización de la información replicada por

las distintas aplicaciones

Uno de los problemas más habituales en las

empresas con sistemas de información es que esta suele estar

muchas veces replicada. Conseguir que esta información esté

sincronizada y correcta es muchas veces presa del factor

humano.

Al establecer una integración correcta entre las distintas

aplicaciones se puede conseguir que la información se

propague de forma natural. De esta forma todos los sistemas

se encontrarán actualizados con la información correcta y de

su origen natural. Es lo que se conoce como SCM(Supply Chain

Management).

VENTAJASCapacidad de administrar la información

Administrar la información global de la empresa es

una empresa imposible si las aplicaciones no están

integradas de forma coherente y sobre dicha

integración se añaden elementos que permitan

modificarla, consultarla o eliminarla de forma

transparente. Se trata de actuar sobre la información

con independencia de que sistema la contiene como

se debe realizar esta alteración.

VENTAJAEstablecimiento de una infraestructura global a

toda la empresa

En una empresa integrada completamente se crea una plataforma de fácil acceso que articula de forma global los procesos, aplicaciones y datos de la empresa. De forma directa condiciona el rendimiento de los procesos ya existentes porque elimina muchos otros que existían solo para alimentarlos. Además es muy normal que, al eliminar ineficiencias en los procesos existentes como causa de definir una infraestructura global, se detecten otros de carácter no de las TI, al tener que adaptarse la nueva operativa.

VENTAJAProtección del valor de las inversiones

tecnológicas anteriores Es habitual que las aplicaciones existentes en la empresa sean fruto de grandes

inversiones, o sistemas heredados que son vitales para el funcionamiento de la empresa y que ofrecen una ventaja competitiva. Estos sistemas con el tiempo pueden estar perdiendo posibles oportunidades de mejora que ofrecerían ventajas competitivas vitales.

Las empresas no pueden prescindir de estos sistemas, recodificarlos supondría una inversión enorme que tampoco aseguraría que en el futuro no deban volver a ser modificados Además esas remodificaciones son fuentes de errores y existe miedo de que puedan acabar con la operatividad de estas aplicaciones.

Logramos este objetivo al añadir una integración de estos sistemas orientándolo a la creación de una plataforma que facilite nuevas inclusiones de aplicaciones y nuevos desarrollos que mantengan la operatividad existente y permita acceder a las nuevas oportunidades.

Otro problema similar surge de las bases de datos heredadas y cuya información es vital para la empresa. Existe la opción de migrarla a un entorno más adecuado, pero generalmente a su alrededor se han construido aplicaciones, y al desaparecer haría perder la ventaja que ofrecen a la empresa. Al integrar los datos con la plataforma se obtiene acceso flexible a información heredada sin necesidad de estar migrando o replicando información.

Integración de procesos y no solo de la información   

VENTAJAMayor rapidez y efectividad de costos en la

adaptación a nuevos requerimientos

La flexibilidad de las empresas, su capacidad de adaptación a los cambios, de aprovechar las oportunidades de mejora y convertirlos en ventajas competitivas, es uno de los factores determinantes en su supervivencia.

En muchos casos no se pueden aprovechar estas ventajas porque los costes que supondría son excesivos porque no se dispone de la capacidad de incluir estas nuevas aplicaciones y procesos a los existentes, sin modificar lo que ya se tiene o mediante el desarrollo de procesos de adaptación.

La existencia de una infraestructura de integración adecuadamente definida asegura no solo el aprovechamiento de los sistemas existentes, sino que permite allanar el camino de aquellos elementos que seguro se tendrán que integrar. Que el tiempo de adaptación a la oportunidad sea lo más reducido posible facilita el disponer de la ventaja competitiva antes que el resto de empresas, y si además esta adaptación es de un coste bajo se consigue un retorno de la inversión más rápido.

Patrones de IntegraciónLos patrones de integración (o EAI) definen diseños comunes (patrones) en el desarrollo de funcionalidades relacionadas con la integración de aplicaciones. Especifican una manera estándar de realizar ciertas tareas y ayudan a conocer con un lenguaje común determinadas cosas que desarrollamos habitualmente.Los sistemas de EAI principalmente implementan dos patrones:

Mediación: Donde los sistemas de EAI actúan como el canal que vincula varias aplicaciones o sistemas utilizando técnicas de encaminamiento. Cuando en una aplicación (interlocutor origen) ocurre un evento que puede ser interesante a alguna otra aplicación (interlocutor destino) esta debe notifica a un módulo de integración (servicio) del sistema EAI. Entonces el sistema de EAI propaga esos cambios a las otras aplicaciones relevantes. Federación: En este caso, el sistema EAI actúa como un consolidador de información entre varias aplicaciones. Todos los accesos al o del exterior de la organización a cualquiera de las aplicaciones son gestionados por el sistema EAI, y éste está configurado para exponer sólo la información relevante conectándose a las aplicaciones del mundo exterior, y efectuar todas las interacciones con las aplicaciones internas sin intervención del agente externo.

Tipos de EAI

• Nivel de Datos

• Nivel de Interfaz de Aplicaciones

• Nivel de Métodos

• Nivel de Interfaz de Usuario

EIA A NIVEL DE DATOSExtraer información de una base de datos , si es necesario procesar la información y la actualización de la misma en otra base de datos

Tecnologías de EAI a Nivelde Datos

• Middleware orientada a Base de Datos ODBC JDBC

• Middleware orientada a Mensajes

• Herramientas y tecnologías de Almacenes de Datos

• Replicación de Base de Datos

EAI a Nivel de Interfaz deAplicación

• Interfaces para acceder a los procesos de negocio y la información cencilla

• Los 3 grandes: SAP®, PeopleSoft®, Oracle®• Interfaces para aplicaciones empaquetadas• Capas de Integración• Data• Objetos• Servicios de Negocios

Ventajas de la EAI a Nivel deInterfaz de Aplicación

Proveen mecanismo para compartir tanto métodos como datos

Mueven la información fuera de los sistemas que eran difíciles de acceder

Proveen la infraestructura para compartir procesos de negocios comunes

Soportan problemas de negocios comunes, tales como uniones y adquisiciones

Desventajas de la EAI a Nivelde Interfaz de Aplicación

• Las interfaces que proveen los vendedores de aplicaciones empaquetadas varían desde buenas hasta inexistentes

• Todos claman integración con las aplicaciones empaquetadas pero la verdad es que la integración no es posible sin un gran esfuerzo de adaptación

• Los 3 grandes son lentos para abrir las puertas

Tecnologías de la EAI a Nivelde Interfaz de Aplicación

Message brokers Middleware orientadas a Base de Datos Servidores de Aplicaciones Objetos distribuidos Utilitarios propietarios de las aplicaciones

Empaquetadas Las propias aplicaciones empaquetadas

EAI a Nivel de Métodos• Es el intercambio de la lógica de negocio que pueden existir dentro de

la empresa. Las aplicaciones pueden acceder a métodos en cualquier otra aplicación. Los mecanismos para compartir métodos entre las aplicaciones son muchas, incluyendo objetos distribuidos, servidores de aplicaciones y monitores de TP. un ORB puede tomar la llamada de una aplicación a métodos almacenados en otras aplicaciones. Un servidor de aplicaciones puede ser un servidor físico compartido para un conjunto compartido de servidores de aplicaciones. La mayor parte de la integración se han sucediendo a este nivel, ya que hay una serie de tecnologías robustas para llevar a cabo este tipo.

• Integración de procesos para crear aplicaciones compuestas• Compartir lógica del negocio• Compartir código• Compartir procesamiento• Compartir programas• Compartir transacciones• Compartir objetos

Ventajas de la EAI a Nivel deMétodos

Proveen una verdadera infraestructura para la reutilización de código para muchas aplicaciones empresariales

Disponibilidad de tecnologías y experticia Es la solución mas adecuada para muchas

Empresas

Desventajas de la EAI aNivel de Métodos

Mucho mas compleja y costosa que los otros enfoques Necesita de mucho tiempo, arquitectura y Planificación Las tecnologías existentes pueden no escalar a aplicaciones empresariales o tener otras deficiencias

Tecnologías de la EAI aNivel de Métodos

Servidores de Aplicaciones Monitores de Transacciones Objetos distribuidos Herramientas de desarrollo tradicionales

EAI a Nivel de Interfaz deUsuario

Ultimo recurso de la EAI Adaptación de pantallas Enfoques Pantallas como objetos Pantallas como Datos

Ventajas de la EAI a Nivel deInterfaz de Usuario

No requiere cambios en los sistemas fuentes o destinos

No requieren de la creación de nuevas interfaces o cualquier interfaz

Bajo riesgo, bajo costo La tecnología esta disponible y es estable

Desventajas de la EAI aNivel de Interfaz de Usuario

Rendimiento Percepciones En mucha instancias solo prolonga el

problema de EAI

Tecnologías de la EAI aNivel de Interfaz de Usuario

Emuladores 3270 Librerías para aplicaciones basadas en

Terminales Traductores de pantallas a objetos Adaptadores para Message broker y

Servidores de Aplicaciones

TOPOLOGIA EAI

Hay dos topologías principales: hub-and-spoke, y bus• En el modelo hub-and-spoke, el sistema EAI actúa

como el centro (el concentrador), el cual interactúa con las aplicaciones, vía las conversaciones (o spokes).

• En el modelo de bus, el sistema EAI es el bus (o es implementado como un módulo residente en un bus de mensajes existente o un middleware orientado a mensajes).

EJEMPLO HUB AND SPOKE

TOPOLOGIA BUS

TIPOS DE MIDDLEWARE EAI

MIDDLEWARE

Es un Software que conecta y comunica los componentes de

una aplicación distribuida

conecta clientes y servidores

TIPOS DE MIDDLEWARE EAI Asynchronous Event/Message Transport.

Se refiere al middleware orientado a mensajes (MOM). Esto productos posibilitan el enrutamiento asincrónico de eventos del negocio entre aplicaciones.

Ellos pueden posponer entregas de información sobre eventos del negocio hasta que las aplicaciones estén disponibles. Esta capacidad facilita una interrelación poco acoplada entre las aplicaciones. Este es un principio de diseño fundamental en las aplicaciones EAI.

Un MOM (Message Oriented Middleware) utiliza los mensajes como método de integración y provee mecanismos para crear, manipular, almacenar y transmitir esos mensajes. Estos sistemas permiten que las aplicaciones intercambien información en forma de mensajes compuestos por cabeceras y datos.

Punto a punto: Los mensajes van dirigidos a un único receptor. El mensaje queda almacenado en una cola hasta el que el receptor quiera o pueda recogerlo.

Ejemplo: Una persona solicita unos determinados datos y la aplicación de gestión se encarga de obtenerlos y de enviarlos exclusivamente a la persona que los solicitó.

PUNTO A PUNTO

PUBLICACIÓN/SUSCRIPCIÓN

Publicación/suscripción: En estos sistemas hay dos actores: los emisores de información y los suscriptores o consumidores de dicha información. Los consumidores pueden suscribirse a un determinado tipo de mensajes que tengan relación con un tema concreto o con información que cumpla un patrón determinado. Los emisores envían mensajes al MOM, y éste se encarga de hacérselo llegar a los suscriptores correspondientes. Este modelo podría utilizarse en un sistema de monitorización de una red: una aplicación (emisor) recoge datos de tráfico, ocupación de puertos, etc. y envía esos datos al administrador o administradores de la red (suscriptor) de forma automática.

Características de los MOM

• Comunicación asíncrona entre aplicaciones para compartir información.

• No obstante, también hay soluciones que trabajan con conexiones síncronas o pseudo-síncronas.

Características de los MOM

• Los mensajes son almacenados en colas hasta que el receptor está listo para recoger el mensaje.

• Garantía de que los mensajes llegarán siempre a su destino.

• Rapidez en la entrega de los mensajes.• Las aplicaciones están aisladas de la complejidad

de las redes y del hardware gracias al MOM. Por ello, no sufrirán ninguna modificación aunque cambie parte de la red o del hardware utilizado.

Características de los MOM La comunicación entre aplicaciones es no

bloqueante, es decir, que las aplicaciones que realizan una petición no detienen su ejecución mientras esperan el mensaje de respuesta.

Las colas utilizadas pueden ser permanentes o dinámicas. Las primeras almacenan la información en disco, mientras que las segundas guardan los datos de forma temporal en la memoria volátil.

Las colas de mensajes pueden ser leídas como en una pila FIFO o teniendo en cuenta propioridades.

Características de los MOM

Las aplicaciones que se comunican entre sí, no están conectadas directamente y eso facilita la programación y permite crear nuevas funcionalidades.

El emisor no necesita conocer la ubicación física del receptor y viceversa.

Muchas soluciones comerciales MOM proporcionan también encriptación de datos extremo a extremo para incrementar la seguridad.

Características de los MOM Estas características hacen de este tipo de middleware

una herramienta muy interesante para mejorar la fiabilidad en el intercambio de mensajes de los Web Services, por ejemplo, ya que la comunicación SOAP sobre HTTP, que es una de las más extendidas, no es fiable.

Una de las desventajas más importantes de los MOM es que no son soluciones interesantes para aplicaciones que trabajen en tiempo real o que estén orientadas a comunicaciones síncronas.

Otro punto negativo es que no existe un estandard de protocolos lo que dificulta la interoperabilidad entre MOMs de diferentes empresas.

Ejemplo: MQSeries Qué es el adaptador de MQSeries?

El adaptador de MQSeries permite enviar y recibir mensajes a sistemas de MQSeries mediante Microsoft BizTalk Server.

Permite hacer lo siguiente: Enviar mensajes a colas de definición remota,

colas locales, colas de transmisión y colas de alias de MQSeries desde BizTalk Server. 

Recibir mensajes procedentes de colas de transmisión, colas locales y colas de alias de MQSeries. 

TIPOS DE MIDDLEWARE EAI

Transformation Engines. Estas aplicaciones convierten datos y eventos del negocio de un formato a otro.

Por ejemplo, una Transformation Engine, puede convertir los datos de un consumidor en ERP al formato usado en una aplicación “hecha en casa”. Estas herramientas están orientadas a batch y operan a nivel de bases de datos o de archivos.

Ejemploaplicación

BDD

MIDDLEWAREFormato de datosNombre Char 20

Costo IntCódigo Char 13

Formato de aplicaciónNombre Char 30

Valor floatCódigo_cliente Char 10

Formato de datosNombre Char 20

Costo IntCódigo Char 13

COMUNICACIÓN

comunicarse

comunicarse

comunica

TIPOS DE MIDDLEWARE EAI

Integration Brokers. Tambien conocidos como message brokers. Estas herramientas proveen la facilidad de enrutar y manipular eventos del negocio inteligentemente entre múltiples aplicaciones y bases de datos. Por ejemplo un messsage broker puede recibir órdenes de compras de una aplicación basada en Web y enrutarla a las aplicaciones objetivos en base a la información contenida en las ordenes. El evento fuente puede ser transformado en el formato esperado por la aplicación destino. Por lo tanto, los integration brokers incluyen servicios de transformación de datos.

TIPOS DE MIDDLEWARE EAI Business Process Management Framework.

Estas herramientas permiten que la lógica del negocio sea separada de los flujos lógicos del proceso. Pueden ser de dos categorías: Process automation y Workflow.

Process automation proven un framework que permite a componentes de software múltiples y dispares participar en un flujo del proceso integrado del negocio.

TIPOS DE MIDDLEWARE EAI

Los Workflow soportan un paradigma similar, pero se enfocan en pasos ejecutados por interacción humana con el sistema.

Como los eventos del negocio se mueven a través del flujo del proceso del negocio se requieren servicios de transformación y enrutamiento. Por lo tanto, por definición, los frameworks process automation/workflow también incluyen sus servicios de integration broker o la habilidad de disponer de estos servicios con un integration broker externo.

Motores de Transformación

Monitores de Transacciones Distribuidas — Provee herramientas y un ambiente de desarrollo y despliegue de aplicaciones distribuidas.

Una transacción es un conjunto de acciones en las que se garantizan las propiedades ACID: Atomicidad, Consistencia, islamiento y Durabilidad.

AAtomicidad

Todas las transacciones

o ninguna

CConsistencia

Solo valido lo guardado en

BDD

IIslamiento

Transacciones que no afecten

a otras

DDurabilidad

Escribiendo en la BDD para no perderla.

Los Monitores de Procesamiento de Transacciones se especializan en administrar transacciones, y proveen un entorno robusto para aplicaciones de gran escala del tipo OLTP (On Line Transaction Processing).

Sus principales servicios son:

− Administración de procesos: Inicia procesos en el servidor, concentra las solicitudes de trabajo y balancea la carga de los servidores.

− Administración de transacciones: Garantiza las propiedades ACID de las transacciones.

OLTP: fuente de datos interna/externa

1000 clientes

1000 conexiones1000 procesos500 Mb de RAM10000 archivos abiertos

SO de bajo desempeño

1000 clientes MONITOR TP

50 conexiones50 procesos25 Mb de RAM500 archivos abiertos

SO de buen desempeño

b). Con monitor TP

Ejemplo:

a). Sin monitor TP

Aquí se ilustra un ejemplo de un sistema Cliente-Servidor de tres capas donde el Monitor de Procesamiento de Transacciones se encarga de controlar los accesos entre los clientes, las aplicaciones y los datos. Por ejemplo, es posible hacer que varios clientes compartan una sola conexión con un servidor de base de datos concentrando así las solicitudes en una sola conexión.

BDD

BDDRPC

MOM

Aplicaciones

transformador

¿Para qué usar las transformaciones?• Heterogeneidades(igualdad) entre aplicaciones• Transformar formato de datos XML <> CSV, EDI SOAP, etc• Transformación entre documentos XML con distinto esquema• En general, los ESB soportan transformaciones a través de XSLT• También incluyen herramientas para transformar mensajes no XML (ej.

Smooks)• Se podría extender el ESB implementando transformaciones más

específicas

XSLT

XML

DOCUMENTO XML/HTML

XSLT PROCESADO

R

Transformación del XML En este paso, usted crea una transformación

VVM para convertir la estructura jerárquica del documento XML en una estructura relacional basada en filas. VVM Studio suministra una GUI de uso sencillo para crear una correlación entre los nodos XML de entrada y las columnas relacionales de salida.

Correlación de elementos XML con columnas relacionales en VVM Studio

Para la creación de las transformaciones, VVM suministra las siguientes opciones:

XML básico a correlación tabular.- Esta correlación nivela los documentos XML como una colección de filas, donde cada fila representa un nodo en el documento XML. Este tipo de transformación se utilizaría raramente para entornos de producción.

Transformaciones de XSLT.-Esta correlación transforma los datos XML en tabulares basada en una transformación XSLT subyacente.

Transformación de flujo continuo.-Esta correlación transforma los datos XML de flujo continuo en tabulares. Esta transformación no requiere que todo el documento XML sea tenido en cuenta en la memoria. Esto es adecuado en situaciones en las cuales el archivo XML es demasiado largo.

Transformaciones de Xquery.- Esta correlación transforma los datos tabulares en XML. Este tipo de transformación no es apropiada para la consulta de fuentes de datos XML.La transformación de XSLT y la tranformación de flujo continuo son las que se utilizan con mayor frecuencia. La transformación de XSLT permite transformaciones complejas para editar directamente el XSLT subyacente. Los datos de salida del XSLT, sin embargo, debe seguir la estructura presentada en el Listado 2.

Esta imagen muestra la vista previa de los resultados de una asignación de Excel 

Publicación de la transformación

La publicación es un proceso en el cual VVM hace que un recurso particular esté disponible para sus clientes para la realización de consultas, como por ejemplo IBM Cognos 8. Para los clientes ODBC, los recursos son publicados como estructuras relacionales, como tablas y procedimientos almacenados.

En este paso, usted publica la transformación que creó en el paso anterior. Puede publicar la transformación como un procedimiento almacenado o como una tabla. Para publicar la transformación como una tabla, usted debe primero incorporar la transformación a una vista SQL y luego publicar la vista como una tabla.

Publicación en VVM

Se recomienda la exposición de la transformación como una tabla incorporándole una vista SQL.

Después de la publicación, el recurso está disponible como tabla o como procedimiento almacenado en una base de datos debajo del nodo de Virtual View Manager Data Services.

El recurso está disponible para que el mundo exterior realice consultas utilizando SQL sobre ODBC.

Es un motor de transformaciones que permite de forma sencilla todo tipo de datos:

Permite estas transformaciones:

• Enriquecimiento de Mensajes: con datos de otros datasources• Validación de Mensajes: en base a Reglas• Java Binding: de un DataSource cualquiera (CSV, EDI, XML, Java etc) a Java:

• Transformaciones: XML to XML, CSV to XML, EDI to XML, XML to EDI, XML to CSV, Java to XML, Java to EDI, Java to CSV, Java to Java, XML to Java, EDI to Java etc….

La plataforma Open Source Pentaho Business Intelligence cubre muy amplias necesidades de Análisis de los Datos y de los Informes empresariales. Las soluciones de Pentaho están escritas en Java y tienen un ambiente de implementación también basado en Java. Eso hace que Pentaho es una solución muy flexible para cubrir una amplia gama de necesidades empresariales – tanto las típicas como las sofisticadas y especificas al negocio.

Modulos: Reporting Análisis Dashboards Data Mining Integración de Datos

BASE DE DATOS

Libre / comercial

• Reportes• Analisis• Workflow• Carga del DWH• Datamining• Calidad de Datos• Auditoria de uso y

rendimiento• Acceso a todo tipo de

fuentes• Ejecución remota• Planificador • Notificador• Seguridad y perfiles

Spoon es el diseñador gráfico de transformaciones y trabajos del sistema de ETTLs de Pentaho Data Integration (PDI)

Está diseñado para ayudar en los procesos ETTLs, que incluyen la Extracción, Transformación, Transporte y Carga de datos. 

 

 Spoon es una Interfaz Gráfica de Usuario (GUI), que permite diseñar transformaciones y trabajos que se pueden ejecutar con las herramientas de Kettle (Pan y Kitchen). 

 

Pan es un motor de transformación de datos que realiza muchas funciones tales como lectura, manipulación, y escritura de datos hacia y desde varias fuentes de datos. Kitchen es un programa que ejecuta los Trabajos diseñados por Spoon en XML o en un catálogo de base de datos. 

Los Trabajos normalmente se planifican en modo batch (por lotes) para ejecutarlos automáticamente en intervalos regulares. Las Transformaciones y Trabajos se pueden describir usando un archivo XML o se pueden colocar en un catálogo de base de datos de Kettle.

 

Luego Pan o Kitchen pueden leer los datos para ejecutar los pasos que se describen en la Transformación o ejecutar el Trabajo. En resumen, PDI facilita la construcción, actualización, y mantenimiento de Data Warehouses.

Ya sabemos lo que es, pero cómo podemos aprovechar todo su potencia y cuándo nos será útil. Esta herramienta cómo muchas super útiles y super completas, requiere de un conocimiento previo de la opciones y posibilidades, que en este caso entre la documentación oficial y un poco de dedicación se puede llegar a tener un manejo de la herramienta en poco tiempo.

 

Según lo visto hasta ahora y con los primero pasos que demos con la herramienta empezaremos por identificar  la división que hace entre, Job (trabajo) y Transformation (transformación). Un Job es un proceso que implica transformaciones o procesos sobre fuentes de datos, sin entrar en el manejo de los datos. ej: Copiar el fichero A a la carpeta X sería un Job.

En cambio una transformation será todos aquellos pasos que queramos realizar para cualquier tipo de tratamiento o modificación a los datos. ej: De dos columnas, Nombres y Apellidos, generar una tercera que sea la unión de las anteriores

 

En principio estas acciones parecen muy simples, y es que lo son; ahí radica el potencial de esta aplicación permite de forma muy fácil añadir funciones simples a nuestro proyecto (job o transformation) que podremos modificar y configurar según nuestras necesidades de una forma muy simple, desde el interfaz gráfico. La complejidad reside en unir muchas pequeñas acciones con el objeto de generar el proceso que nos sea necesario sin tener que programarlo.

 

Un ejemplo práctico para su uso, podría ser el siguiente trabajo que entre otras cosa ejecuta el siguiente procedimiento:

El objetivo: Actualizar los datos de un portal web mediante ficheros CSV que procesados, se puedan extraer los datos que serán cargados en la base de datos del portal.

Funcionamiento: Desde un servidor, se realiza mediante SCP una importación de un fichero ZIP, que se descomprime conteniendo ficheros CSV, tanto el fichero ZIP como los CSV, son procesados y archivados. El procedimiento continua verificando los ficheros CSV y lanzando una transformación para cada tipo de fichero CSV, que se reconoce de forman única mediante expresiones regulares, la transformación varía según el fichero. Una vez procesado se mueve a un directorio dónde es archivado añadiendole una marca temporal que indica su procesamiento. El sistema continua, envía por cada tipo de transformación un email confirmando la transformación y en caso de error adjunta el log correspondiente. Por último se ejecutan una serie de script de shell para hacer copias de base de datos, restauración y envío mediante SCP de la última copia de base de datos realizada.

Ejemplos reales:

http://www.stratebi.com/demos

Se verá el framework Xpand y Xtend (usualmente usados conjuntamente y junto a Xtext)

Xtext permite transformar texto que conforma con una gramática (especificada en una sintaxis similar a Antlr) ) Modelo

Xpand+Xtend permiten generar texto (código) desde modelos y metamodelos

Xpand

Xpand y Xtend son herramientas para convertir modelos y metamodelos a texto Veremos dos ejemplos:

- Cómo generar código a partir de una instancia del metamodelo Tree

- En particular, generaremos una representación gráfica del árbol usando Graphviz1

- Cómo generar código para un metamodelo

- Documentación de clases en HTML

Permite una representación gráfica sencilla y rápida Nos permitirá ver nuestros árboles:

digraph G

{

Root -> A;

Root -> B;

5 A -> X;

B -> Y;

}

¿Podemos generar ese código a partir de cualquier modelo Tree?

Root

A

X

B

Y

Xpand es un sistema de plantillas para la generación de código

Las plantillas pueden contener variables, bucles, etc.

Es similar a ASP o JSP

Lenguaje funcional Luego que Jboss presente su lenguaje Ceylon para la plataforma Java;

ahora la organización eclipse pone una nueva ficha en el tablero. Xtend es el lenguaje de eclipse. El cual corre sobre la plataforma java.

Xtend nació con el objetivo de simplificar el lenguaje y escribir menos lineas de código. Entre sus características podemos nombrar:

– Tipado estático– Facilita el desarrollo– Closures– Compila a código Java no a bycode– Sintaxis similar a Java– Se desarrollo con Xtext y se basa en Xbase

El objetivo de Xtend no es remplazar a Java, algo bastante complicado, sino ser una alternativa en algunas situaciones en las que Java no es lo suficientemente útil.

Para poder empezar a usar Xtend es necesario disponer antes de Eclipse IDE. Podemos descargar de uno de los Update Site el SDK de Xtend. En él se incluye un tutorial con algunas clases de ejemplo para ver las sintaxis de todas características del lenguaje y cambios respecto a java.

Lenguajes de programación utilizados en Eclipse 3.2.1

Lenguaje Líneas de código  %

Java 1.911.693 92,66%

ANSI C 133.263 6,46%

C++ 10.082 0,49%

JSP 3.613 0,18%

sh 2.066 0,10%

perl 1.468 0,07%

php 896 0,04%

sed 2 0,00%

Ejemplo:

Fundación Priva.- Desarrollo de un sistema de analítica de casos de tortura con pentaho

Empresas en Ecuador

Integration Bróker

Integration Bróker conocido también como Message Bróker, es un programa intermediario que traduce los mensajes de un sistema desde un lenguaje a otro, a través de un medio de telecomunicaciones.

Un bróker de mensajería es un patrón arquitectónico para la validación, la transformación y el ruteo de mensajes

El propósito del bróker es recibir los mensajes entrantes desde las aplicaciones y llevar a cabo determinadas acciones con ellas

Un mensaje bróker, puede recibir órdenes de compras de una aplicación basada en Web y enrutarla a las aplicaciones objetivos en base a la información contenida en las órdenes. El evento fuente puede ser transformado en el formato esperado por la aplicación destino. Por lo tanto, los integration bróker incluyen servicios de transformación de datos

Ejemplos de acciones del bróker

Rutear mensajes a una o más destinaciones distintas Transformar mensajes a una representación alternativa Realizar una agregación de mensajes, descomponer mensajes en

varios mensajes componentes, reenviándolos a sus respectivos destinos, para posteriormente recomponer las respuestas en un único mensaje que será remitido al usuario

Interactuar con un depósito externo para aumentar un mensaje o almacenarlo

Invocar un servicio Web para consultar datos Responder a eventos o errores Proveer un ruteo de los mensajes basado en su contenido o en

sus tópicos empleando el modelo de publica/suscribe

Ejemplo:

Existe una empresa multinacional, donde el equipo de IT es tan grande que está dividido incluso en los lenguajes que estos utilizan para el desarrollo de software.

El grupo 1 utiliza .Net El grupo 2 utiliza Java El grupo 3 utiliza AS400 (RPG) Con el paso del tiempo cada grupo ha desarrollado una cantidad inimaginable de

servicios y sistemas en cada herramienta, pero llega el día en el que un nuevo gerente de ventas desee que en un determinado sistema que está programado en java se utilicen servicios o se realicen procesos que ya están funcionando correctamente en el grupo 1 y grupo 3, los cuales utilizan .Net y AS400 (RPG) respectivamente.

A este punto seria costoso desarrollar un proceso que ya esta funcional en RPG o en .Net , por lo que la forma más sencilla seria realizar una integración entre los tres grupos por medio de Enterprise Services Bus (ESB), en este caso utilizaremos Bróker.

Enterprise Services Bus (ESB)

Bus de servicios de empresa, es un software destinado a la integración de aplicaciones. Es un combinado de arquitectura de software, que proporciona servicios fundamentales para arquitecturas complejas, a través de un sistema de mensajes (el bus) basado en las normas y que responde a eventos

Objetivo: Facilitar el ofrecimiento y la demanda de servicios, gracias a la

creación y la gestión de distintos flujos de datos, de manera totalmente transparente para los desarrolladores de aplicaciones

En la configuración se detalla la lógica de la arquitectura, que se activan automáticamente, o son activados por las propias aplicaciones

ESBCaracterísticas:

Es una plataforma de integración basada en estándares de comunicación abiertos

Combina los paradigmas SOA y EDA

Está basado en la naturaleza síncrona de los servicios y asíncrona de los eventos

Contiene herramientas para configurar el flujo de los mensajes

Permite incorporar módulos personalizados

Enterprise Services Bus (ESB)

Algunos de los ESB que pueden encontrarse en el mercado son Oracle ESB o IBM WebSphere, como ejemplos comerciales, Mule, Apache ServiceMix o WSO2, en la categoría de open source.

La tecnología ESB es perfecta para la integración de los servicios de seguridad y confianza que ofrece TrustedX.

Lista de software de bróker de mensajería DIPS Message Bróker Apache ActiveMQ OpenAMQ Comverse Message Bróker (Comverse Technology) Antares Enovacom eSCL Message Bróker (Interface & Control Systems) FUSE Message Bróker (enterprise ActiveMQ) Financial Fusion Message Bróker (Sybase) JBoss Messaging (JBoss) Microsoft BizTalk Server (Microsoft) Oracle Message Bróker (Oracle Corporation) Proteus, una implementación open source por Info-Scape WebSphere Message Bróker (IBM) webMethods Message Bróker (webMethods Message Bróker) Cloverleaf (E-Novation Lifeline) SAP PI (SAP AG) Sapo Bróker (Portugal Telecom) Python Message Service e-Biz Impact (Sybase, Inc) Spread Toolkit Niklas message broker by Copernicus RabbitMQ (Mozilla Public License, written in Erlang) Axway Integration Bróker JORAM

WebSphere Message Bróker MQ

WebSphere Message Bróker MQ

Tecnología de IBM, conocido en el entorno laboral como MQ Bróker (cuando integra MQ Message Queue (Cola de Mensajes)) o únicamente Bróker, la función de este es incrementar la agilidad del negocio y optimizar los costos haciendo la integración de aplicaciones fácil.

Consola WebSphere Message Bróker MQ

Subsistema QMQM de IBM AS400

Subsistema QMQM de IBM AS400

Ventajas

Reduce costos e interrupción de procesos causados por pérdida de datos estableciendo una solución unificada de entrega garantizada de mensajes y transacciones

Ayude a prevenir costos relacionados con problemas de seguridad Ayude a lograr estandarización e integridad de mensajes y

transacciones Reduzca costos y esfuerzos de mantenimiento ya que provee un canal

de transporte de datos unificado para protocolos HTTP, REST y JMS Establezca la base para la infraestructura de un Bus Empresarial de

Servicios (ESB por sus siglas en inglés) asegurando entrega de mensajes, procesos, archivos y eventos

Desventajas

Al producirse falta de comunicación por: (corte de fibra, aplicación fuera de la red, etc.), los mensajes no llegan a su destino, provocando retraso en la mensajería. La aplicación vuelve a reenviar los mensajes encolados, siempre y cuando así este definida la programación del WebSphere Message Bróker

Características y beneficios

Integra virtualmente cualquier sistema

WebSphere MQ ofrece un sistema unificado de conectividad el cual garantiza la entrega de mensajes y transacciones entre sistemas, aplicaciones o servicios sin importar en que lenguaje que estén implementados.

Entrega asegurada

WebSphere MQ puede trabajar con esquemas de comunicación síncronos y asíncronos para asegurar la entrega aún si la red o aplicaciones no están disponibles

Cuenta con mecanismos para asegurar que los datos no son duplicados y que puedan completar una unidad de trabajo o transacción.

Características y beneficios

Servicios Web

Provee el canal ideal de transporte para agregar confiabilidad y trazabilidad a interacciones SOAP entre servicios Web

Seguridad de inicio a fin

Soporta SSL (Secure Sockets Layer) para autenticación, integridad de mensajes y encriptación de datos enviados vía Internet

Que mas hace el bróker para hacer posible la integración?

El bróker además de distribuir los mensajes también los transforma.

Por ejemplo: si un sistema desarrollado en java envía una petición en XML y la aplicación que debe procesar esta información es RPG, entonces el Bróker puede transformar el XML en una trama que sea entendible para RPG y así RPG procesa la información, posteriormente envía una trama y el Bróker nuevamente la transforma, solo que esta vez la transforma en XML para que el sistema en java pueda convertirla fácilmente en un objeto y utilizar dicha información.

Business Process Management Framework

Definición de Business Process Management (BPM)

Business Process Management (BPM) es un conjunto de métodos, herramientas y tecnologías utilizados para diseñar, representar, analizar y controlar procesos de negocio operacionales. BPM es un enfoque centrado en los procesos para mejorar el rendimiento que combina las tecnologías de la información con metodologías de proceso y gobierno. BPM es una colaboración entre personas de negocio y tecnólogos para fomentar procesos de negocio efectivos, ágiles y transparentes.

BMPS

La “S” de BPMS significa “Suite”. BPMS es la suite de tecnologías BPM, lo que incluye todos los módulos funcionales, las capacidades técnicas y la infraestructura de apoyo, integradas en un único entorno que realiza todas las funciones de la tecnología BPM de manera perfecta, sin fisuras. BPMS es el paquete completo.

FrameWork

FrameWork es un concepto sumamente genérico, se refiere a “ambiente de trabajo, y ejecución”, por ejemplo “.Net” es considerado un “framework” para desarrollar aplicaciones (Aplicaciones sobre Windows). En general los framework son soluciones completas que contemplan herramientas de apoyo a la construcción (ambiente de trabajo o desarrollo) y motores de ejecución (ambiente de ejecución).

FrameWork puede ser algo tan grande como “.NET” o Java (también es un framework), pero también el concepto se aplica a ámbitos mas específicos, por ejemplo; dentro de Java en el ámbito especifico de aplicaciones Web tenemos los frameworks: Struts, “Java Server Faces”, o Spring. Estos frameworks de Java en la practica son conjuntos de librerías (API’s) para desarrollar aplicaciones Web , más librerías para su ejecución (o motor), y más un conjunto de herramientas para facilitar esta tarea (debuggers, ambientes de desarrollo como Eclipse, etc).

Otros ejemplos de frameworks para ámbitos específicos:

Ámbito: Webservices => FrameWork: Axis. Ámbito: Interfaz de Usuario Web Dinámica

=> FrameWork: Ajax – DWR Ambito: Procesos de Negocio => BPMS

(WebSphere, AquaLogic, y Oracle)

Oracle BPM

¿Qué es Oracle BPM? Es un entorno de ejecución de procesos de negocios de

empresas y está compuesto de diferentes aplicaciones y servicios que pueden ser instalados y configurados en diferentes topologías para manejar diferentes escenarios, soportando diferentes usos.

Un entorno BPM es la infraestructura técnica en la cuál se ejecutan procesos de negocio. Definimos entorno BPM como todos los componentes ejecutables (aplicaciones y servicios) que trabajan juntos para permitir la ejecución de procesos de negocio.

Ejemplos de entornos Oracle BPM

 

 Los siguientes gráficos proveen una vista de alto nivel de diferentes partes. Estos gráficos muestran 3 tipos de artefactos: cajas, puntos, y registros.

Las cajas representan aplicaciones y servicios en el entorno.

Los puntos representan los servicios expuestos por las aplicaciones (cajas).

Las flechas representan una conexión entre una aplicación y un servicio expuesto por otro.

Ejemplo 1: ilustra la arquitectura generada con el wizard de Oracle BPM Enterprise

Standalone

Ejemplo 2: ilustra la arquitectura generada con el wizard de Oracle BPM

Enterprise for WebLogic

Ejemplo 3: entorno clusterizado a través de Oracle BPM Enterprise for WebLogic

Componentes de un entorno BPM

Las cajas representan la ejecución de aplicaciones como parte del entorno. Desde esta perspectiva, los componentes de un entorno BPM se pueden dividir en 3 grupos: BPM Core, BPM Clients y servicios de soporte. Cada entorno BPM contendrá componentes en cada uno de estos grupos.

BPM Clients

Los clientes BPM son aplicaciones que interactúan con los procesos de negocio que ejecutan en los motores BPM.

Desde el punto de vista donde el servicio de motores BPM utiliza el cliente para conectarse, tenemos dos grandes grupos: los clientes PAPI, que utilizan el servicio de proceso interno, y los clientes de servicios Web.

Cliente PAPI

Es el proceso API y refiere a la API de Java que este cliente usa para interactuar con el motor BPM. PAPI está embebido en muchas aplicaciones web. Realiza funciones críticas desde el punto de vista de usuario final. Está configurado para autenticar y autorizar usuarios finales, encuentra los procesos disponibles en el directorio BPM, conecta a los motores BPM que ejecutan dichos procesos, y retorna información a los usuarios finales. Es la única API de JAVA para la interacción de procesos.

Area de trabajo BPM

El "workspace" o area de trabajo BPM es lo más importante en la aplicación de usuario final. El area de trabajo BPM es a los procesos de negocio lo que el Outlook es al mail: la principal aplicación de interacción.

El área de trabajo BPM es un cliente PAPI y provee gran funcionalidad sobre estos: soporte a flujos de pantallas, tableros, diseños de páginas, etc. La aplicación también permite adaptar la interfaz de usuario a través de hojas de estilos y otras configuraciones. El área de trabajo BPM puede confiar en el servidor web (Tomcat, Weblogic, etc) para autenticar y conectar a usuarios remotos.

Clientes Web Service (WS)

Pueden elegirse clientes WS entre dos servicios disponibles: los servicios "Process-WS" expuestos por el motor BPM y la aplicación "PAPI-WS".

El servicio "Process-WS" expone ciertas actividades del proceso de negocio como operaciones de WS. En particular, puede ser usado para crear nuevas instancias de procesos y enviar notificaciones a las instancias de procesos existentes. Las actividades de los procesos de negocio tienen que ser marcadas explícitamente como expuestas para ser agregadas al servicio. Técnicamente, este servicio es provisto por el mismo motor BPM.

El servicio "PAPI-WS" expone la mayoría de las operaciones de PAPI a través de una interfaz SOA. Este servicio está separado de la aplicación web PAPI-WS. Esta aplicación se despliega como cualquier otra aplicación web, y simula un servicio web alrededor de la funcionalidad PAPI. El servicio "PAPI-WS" es un cliente PAPI porque usa la API. La interfaz expuesta por el servicio es similar a la API, y esta es independiente de los procesos desplegados. PAPI-WS puede interactuar con cualquier proceso desplegado en el entorno.

Servicios de soporte

Un número de servicios de soporte son requeridos para el entorno BPM, incluyendo base de datos, LDAPs y servidores web y J2EE. Los requerimientos de servicio específico dependen de la configuración, topología, y el motor BPM.

Conexión a base de datos

Hay 2 maneras para que una aplicación BPM pueda obtener conexión a la base de datos: directamente, vía los drivers de JDBC o usando datasources de J2EE. Las aplicaciones independientes como el administrador de BPM, el servicio de monitoreo de procesos y el motor independiente siempre usan los drivers JDBC.

Recursos J2EE usados por el motor BPM

cada motor BPM requiere dos recursos de mensajería: una cola y un topic. Estos recursos JMS son necesarios para archivar funcionalidad

Los servidores de aplicación no proporcionan un framework para las ejecuciones en segundo plano, entonces las colas JMS son usadas como disparadores de eventos en segundo plano con un MDB. El motor BPM genera un mensaje cuando una tarea se tiene que ejecutar. El MDB levanta el mensaje y ejecuta la tarea.

Recursos J2EE usados por el motor BPM

El topic JMS se usa para enviar información a los clientes PAPI. Los motores BPM necesitan una forma de propagar los cambios a todos los clientes PAPI, y estos clientes esperan mensajes en estos topics. El motor BPM coloca un mensaje en el topic cuando hay noticias para publicar, y los clientes leen los mensajes y actualizan la memoria interna. Entonces, el motor BPM es el publicador y los clientes PAPI son los suscriptores.

LDAPs

Son usados como fuente de información de la organización, específicamente usuarios, unidades organizacionales y grupos. Esta integración es muy flexible y configurable.

Integración funcional

BPM define usuarios, grupos y unidades de la organización en una estructura única y bien definida. Esto difiere de cómo muchas organizaciones definen los conceptos. Por ejemplo, Oracle BPM define que un usuario solo puede pertenecer a una unidad de organización, asigna funciones a los usuarios y grupos, mientras que algunas organizaciones podrían asignar funciones a la unidad organizativa. Es importante entender que en todos los casos la estructura LDAP tiene que estar mapeada con el modelo de organización de la BPM.