Diferencia entre revisiones de «Integración de aplicaciones para empresas»
Línea 57: | Línea 57: | ||
An integration operation could be short-lived (e.g., keeping data in sync across two applications could be completed within a second) or long-lived (e.g., one of the steps could involve the EAI system interacting with a human workflow application for approval of a loan that takes hours or days to complete). |
An integration operation could be short-lived (e.g., keeping data in sync across two applications could be completed within a second) or long-lived (e.g., one of the steps could involve the EAI system interacting with a human workflow application for approval of a loan that takes hours or days to complete). |
||
== |
== Topologias de EAI == |
||
Hay dos topologias principales: hub-and-spoke, y bus. Cada una de ellas tiene sus propias ventajas y desventajas. En el modelo hub-and-spoke, el sistema EAI actua como el centro(el concentrador), el cual interactua con las aplicaciones via las conversaciones (o spokes). |
Hay dos topologias principales: hub-and-spoke, y bus. Cada una de ellas tiene sus propias ventajas y desventajas. En el modelo hub-and-spoke, el sistema EAI actua como el centro(el concentrador), el cual interactua con las aplicaciones via 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 un middleware orientado a mensajes). |
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 un middleware orientado a mensajes). |
||
== Tecnologias == |
== Tecnologias == |
Revisión del 17:28 18 sep 2007
Enterprise application integration
Enterprise Application Integration (EAI) o Integración de Aplicaciones de Empresa se define como el uso de software y principios de arquitectura de sistemas para integrar un conjunto de aplicaciones.
Justificación del EAI
Enterprise Application Integration (EAI) es el proceso de conectar las aplicaciónes con otras para intercambiar información operativa o financiera.
Cuando dichos sistemas no pueden compartir su información efectivamente se crean cuellos de botella que requieren de la intervención humana en la forma de toma de decisiones o en el ingreso mismo de la información. Con una Arquitectura EAI correctamente implementada, las organizaciones pueden enfocar la mayoria de sus esfuerzos en la creación de competencias que generen valor en lugar de enfocarse en la coordinación de labores operativas.
Durante varias generaciones, los sistemas de las empresas han servido para un proposito especifico a un único usuario o grupo de usuarios, los cuales actuan como la interfaz de dicho sistema con el resto de la organización, con lo cual se ha limitado su conexión con otros sistemas modernos o mas amplios en la empresa, mas aun por la creciente demanda de las empresas por compartir datos y usarlos en sus procesos si tener que realizar cambios en sus aplicaciones o en sus estructuras de datos.
Uno de los retos que encaran las organizaciones modernas es darle a sus empleados información completa en tiempo real. Muchas de las aplicaciones en uso actualmente se apoyan en tecnologías antiguas, por lo cual esos sistemas enfrentan dificultades a la hora de mover esta información entre las aplicaciones.
EAI, como una disciplina, busca solventar muchos de esos problemas, asi como crear nuevos paradigmas para ciertamente mejorar las organizaciones, tratando de trascender el objetivo de conectar las aplicaciones individuales para buscar ser un mecanismo de incrementar el conocimiento de la organizacion y crear ventajas competitivas futuras a la empresa.
Mejorando la conectividad
La Integracion de Aplicaciones de Empresa ha incrementado si importancio porque la computación en las empresas frecuentemente toma la forma de islas de información.
Esto ocasiona que el valor de los sistemas individuales no sea aprovechado al máximo debido a su mismo aislamiento. Si la integración se aplica sin seguir un enfoque estructurado de EAI, las conexiones punto a punto crecen al interior de la organizaciónion resultando en una masa imberbe que es dificil de mantener. Esto se denota normalmente como el espagueti, en alusión al equivalente en programación: el código espagueti. Por ejemplo:
El número de conexiones necesario para tener completamente conectados varios sistemas punto a punto crece geométricamente. Por ejemplo: para tener 10 aplicaciones completamente conectadas se requieren 45 conexiones punto a punto.
La fórmula es n(n-1) / 2
Objetivo del EAI
EAI puede ser usado con diferentes fines: • Integración de datos(informacion): asegurando que la información en varios sistemas es consistente. Esto también se conoce como EII (Enterprise Information Integration). • Integración de Procesos: enlace los procesos de negocios entre diferentes aplicaciones. • Independencia de proveedor: estrayendo las politicas o reglas del negocio de las aplicaciones e implementandolas en un sistema EAI, de forma que cualquiera de las aplicaciones usadas pueda ser cambiada sin que dichas reglas de negocio deban ser reimplementadas. • Facade común: Un Sistema EAI puede actuar como el front-end de un cúmulo de aplicaciones, proporcionando una interfaz de acceso única y consistente a esas aplicaciones y aislando a los usuarios sobre la interacción con distintas aplicaciones.
Patrones de EAI
Patrones de Integration
Hay dos patrones que implementan los sistemas de EAI. • Mediacion: Aqui, los sistemas de EAI actuan como el vínculo entre o los enrutadores entre varias aplicaciones. En el lugar en el cual ocurre un evento interesante en alguna aplicación (e.j., se crea una nueva información, se completa una nueva transacción, etc.) se notifica a un módulo de integración del sistema EAI. El módulo entonces propaga esos cambios a las otras aplicaciones relevantes. • Federacion: En este caso, el sistema EAI actua como un consolidador de información entre varias aplicaciones. Todos los accesos del 'exterior' a cualquiera de las aplicaciones son recibidos por el sistema EAI, y éste esta configurado para exponer sólo la información relevante conectandose a las aplicaciones del mundo exterior, y efectuar todas las interacciones con las aplicaciones internas sin intervención del agente externo.
Ambos patrones son usados en conjunto frecuentemente. El mismo sistema EAI puede tener varias aplicaciones en sync (mediacion), mientras sirve requerimientos de agentes externos contra esas aplicaciones(federacion).
Patrones de Acceso
EAI supports both asynchronous and synchronous access patterns, the former being typical in the mediation case and the latter in the federation case. [edit] Lifetime Patterns An integration operation could be short-lived (e.g., keeping data in sync across two applications could be completed within a second) or long-lived (e.g., one of the steps could involve the EAI system interacting with a human workflow application for approval of a loan that takes hours or days to complete).
Topologias de EAI
Hay dos topologias principales: hub-and-spoke, y bus. Cada una de ellas tiene sus propias ventajas y desventajas. En el modelo hub-and-spoke, el sistema EAI actua como el centro(el concentrador), el cual interactua con las aplicaciones via 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 un middleware orientado a mensajes).
Tecnologias
Varias tecnologias se han usado para implementar cada uno de los componentes de un sistema EAI: • Bus/hub: Este se implementa frecuentemente al ampliar la funcionalidad de productos middleware existentes (servidores de aplicaciones, buses de mensajes) o se implementa como un programa monolítico (ej., sin usar ningun middleware), que actua como su propio middleware. • Conectividad de aplicaciones: El bus/hub se conecta a las aplicaciones mediante un conjunto de adaptadores (tambien conocidos como conectores). Esos son programas que conocen como interactuar con la aplicación específica. El adaptador efectua una comunicación en dos vías, enviando requerimientos del hub hacia la aplicación, y notificando al hub cuando un evento de interes ocurren en la aplicación (un nuevo registro es insertado, una transacción es completada, etc.). Los Adaptadores pueden ser tanto específicos a la aplicación o a un conjunto de aplicación. El adaptador puede residir en el mismo espacio de procesos que el bus/hub o ejecutarse en una localización remota e interactuar con el hub/bus a través de protocolos estándares de industria como colas de mensajes, servicios web, o protocolos propietarios. • Formateo de Datos y Transformación: Para prevenir que cada adaptador tenga que convertir los datos que van o vienen de otras aplicaciones, los sistemas EAI usualmente emplean un formato de datos común, al cual y desde el cual se convierten los formatos de las aplicaciones mediante unos servicios de transformación. Esto se hace en dos pasos, el adaptador convierte la información del formato de aplicación al formato comun del bus. Y entonces se pueden aplicar transformaciones semánticas a esto (ejemplo: convirtiendo códigos postales a nombres de ciudades, separando/fusionando objetos de una aplicación en objetos de otras aplicaciones, y asi sucesivamente). • Módulos de Integracion: Un sistema EAI puede participar en operaciones de integración concurrentes en un momento dado, cada tipo de integración es procesada por un módulo de integración diferente. Los módulos de integración se suscriben a eventos de tipos específicos y ellos reciben las notificaciones de procesos en el momento en que esos eventos ocurren. • Soporte a transacciones: Cuando se emplean para integración de procesos, el sistema EAI provee consistencia transaccional entre las aplicaciones al ejecutar todas las operaciones que involucran una sola transaccion distribuida (usando el protocolo de commit de dos fases o transacciones de compensacion (operaciones que deshacen las acciones sobre un sistema dado).
Arquitecturas de comunicaciones
Currently, there is a lot of variation of thought on what constitutes the best infrastructure, component model, and standards structure for Enterprise application integration. There seems to be consensus that four things are essential for a modern enterprise application architecture: 1. There needs to be a centralized broker that handles security, access, and communication. This can be accomplished through integration servers (like the School Interoperability Framework (SIF) Zone Integration Servers) or through similar software like the Enterprise service bus (ESB) model which acts as a SOAP-oriented services manager. 2. The use of an independent data model based on a standard data structure. It appears that XML and the use of XML style sheets has become the de facto and in some cases de jure standard. 3. A connector, or agent, model where each vendor, application , or interface can build a single component that can speak natively to that application and communicate with the centralized broker. 4. A system model that defines the APIs, data flow and rules of engagement to the system such that components can be built to interface with it in a standardized way. Although other approaches like connecting at the database or user-interface level have been explored, they have not been found to scale or be able to adjust. Individual applications can publish messages to the centralized broker and subscribe to receive certain messages from that broker. Each application only requires one connection to the broker. This central control approach can be extremely scalable and highly evolvable. Enterprise Application Integration is related to middleware technologies such as message-oriented middleware (MOM), and data representation technologies such as XML. Other EAI technologies involve using web services as part of service-oriented architecture as a means of integration. Enterprise Application Integration tends to be data centric. In the near future, it will come to include content integration and business processes.
Problemas de implementación de los EAI En el año 2003 se reportó que el 70% de todos los proyectos EAI fallaron. La mayoria de dichas fallas no se debian a fallas técnicas del software mismo o la implementación, sino a problemas de gobernabilidad. El gerente general de EAIIC Steve Craggs ha determinado las siete principales retos que afrontan las compañías que usan sistemas EAI y explica soluciones a dichos problemas.[2] • Cambio constante The very nature of EAI is dynamic and requires dynamic project managers to manage their implementation. • Falta de expertise en EAI EAI requiere conocimiento de muchas problematicas y aspectos técnicos. • Estándares en competencia Dentro del campo de EAI, la paradoja es que los estándares de EAI no son por si mismos univaersales, ya que cada proveedor particular trata de imponer los propios. • EAI es un paradigma de herramientas EAI no es una herramienta, si no es un sistema y debe ser implementado como tal. • Construir interfaces es un arte Realizar el proceso de ingenieria de la solución puede no ser suficiente. Las soluciones requieren ser negociadas con departamentos de usuarios para lograr un consenso comun sobre el entregable final. La falta de consenso en los diseños de las interfaces tiende a acarrear un esfuerzo excesivo para mapear los requerimientos de datos de varios sistemas. • Falta de detalle La información que al principio parece poco importante, con el tiempo se puede volver crucial. • Contabilidad Puesto que varios departamentos pueden tener requerimientos contradictorios entre si, ellos deben contar para la estructura del sistema final.
Otros problemas potenciales pueden abarcar las siguientes areas: • Requierimientos nuevos Las implementaciones de EAI deben ser extensibles y modulares para permitir cambios futuros. • Proteccionismo Las aplicaciones cuyos datos son integrados, frecuentemente pertenecen a departamentos diferentes los cuales tienen razones técnicas, culturales y políticas para no querer compartir su información con otros departamentos.
Ventajas y desventajas
• Ventajas o Acceso a la Información en tiempo Real entre los sistemas o Permite encadenar los procesos de negocio y ayuda a incrementar la eficiencia organizacional. o Mantiene la integridad de la información entre varios sistemas. • Desventajas o Costos de desarrollo muy altos, especialmente para pequeños y medianos negocios (small and mid-sized businesses: SMBs). o Las implementaciones de EAI consumen mucho tiempo y requieren muchos recursos. o Requieren una gran cantidad de diseño frontal, el cual muchos gerentes no son capaces de visualizar o en el cual no muchos desean invertir. La mayoria de los proyectos de EAI usualmente comienzan como esfuerzos de integración punto a punto, y muy rapidamente se vuelven inmanejables en la medida que el numero de aplicaciones aumenta.
El futuro de EAI
Las tecnologias de EAI aun estan en desarrollo y no hay un consenco sobre cual es el enfoque ideal o el frupo correcto de tecnologias que la compañia deberia usar.
Ver tambien
• SIF (Schools Interoperability Framework) • Integracion de datos • Patrones de Integracion de Empresa • Bus de Servicios de Empresa (Enterprise Service Bus) • OSS • Open Knowledge Initiative (using SOA for application integration) • iWay Software • SAP Exchange Infrastructure • Health Level 7 • Comparison of business integration software • TIBCO • Microsoft BizTalk Server • IBM WebSphere Message Broker • WebMethods • Oracle BPEL Process Manager
Proyectos de Código Abierto
• Apache ActiveMQ • Apache Camel • Apache ServiceMix • Bostech • Virtuoso Universal Server • Business Information Dispatcher [edit] External links • Integration Consortium
Referencias
1. ^ In its April 2001 report for AIIM International, "Enterprise Applications: Adoption of E-Business and Document Technologies, 2000-2001: Worldwide Industry Study," Gartner defines EAI as "the unrestricted sharing of data and business processes among any connected applications and data sources in the enterprise." (http://findarticles.com/p/articles/mi_qa3937/is_200203/ai_n9019202) 2. ^ Trotta, Gian (2003-12-15). Dancing Around EAI 'Bear Traps'. Retrieved on 2006-06-27. Retrieved from "http://en.wikipedia.org/wiki/Enterprise_application_integration" Categories: Wikipedia articles needing style editing | Enterprise application integration