lunes, 10 de octubre de 2011

PATRONES DE INTEGRACION EMPRESARIAL

Crear aplicaciones de negocios es difícil, y hacer que esta maneje todo un negocio es casi imposible. Luego distribuir funciones del negocio entre diversas aplicaciones provee la flexibilidad de escoger lo mejor de cada área de la empresa, sin embargo encontrar todo esto en una solución no es posible, puesto que cada empresa es distinta.
Estos, entre otros, son los problemas que se presentan en las empresas, haciendo necesaria la integración de las aplicaciones, de manera que esta sea eficiente, confiable y segura en el intercambio de datos entre diferentes aplicaciones empresariales.

RETOS DE INTEGRACION.
• Para la integración empresarial se requiere un cambio importante en las políticas corporativas.
• Debido a su amplio espectro, los esfuerzos de integración tienen profundas implicaciones en el negocio, volviendo a las soluciones empresariales una parte vital del negocio.
• Hay un control limitado en la integración de las aplicaciones, puesto que hay demasiado software legado que no puede ser modificado o enlazado adecuadamente con la solución de integración.
• Hay pocos estándares establecidos para llevar a cabo una integración de soluciones y en algunos casos (como el del WebService en XML) solo se ofrece una solución parcial.
• Las diferentes mezclas de tecnología y la naturaleza distribuida de las soluciones empresariales hacen el desarrollo de estas un reto en sí mismas.

ALGUNOS TIPOS DE INTEGRACION
Portal de información: reúnen información de múltiples fuentes en un solo lugar evitando con esto que el usuario tenga que abrir diferentes aplicaciones para lograr su objetivo.
Replicación de datos: nos permite mantener la integridad de diversos de los datos de diversos sistemas utilizando replicación de información.
Función de negocio compartida: evita la redundancia de funciones entre diversas aplicaciones mediante la exposición de dichas funciones como una función de negocio compartida que se implementa una vez y está disponible como un servicio para todos los demás sistemas.
Arquitectura orientada a servicios (SOA): SOA difumina la línea entre integración de aplicaciones y aplicaciones distribuidas. En SOA las funciones de del directorio de servicios y la interfaz de comunicación son elementos importantes para la arquitectura.
Procesos de negocio distribuidos: nos permite coordinar las aplicaciones en un entorno distribuido, permitiendo administrar la ejecución de cada una de estas entre múltiples sistemas.
Integración entre negocios: nos permite agrupar en un solo lugar los servicios de diferentes empresas para lograr un objetivo en particular.

ESTILOS DE INTEGRACION
La integración empresarial es la tarea de hacer que diferentes aplicaciones separadas trabajen juntas para producir un conjunto de funcionalidades. Para lograr lo anterior, se debe seguir una serie de criterios para lograr el objetivo principal.
Emparejamiento de aplicaciones: las aplicaciones integradas deben minimizar las dependencias entre ellas de manera que cada una pueda evolucionar sin provocar problemas a la otra.
Simplicidad de integración: cuando se integren aplicaciones, los desarrolladores deben luchar por minimizar el cambio de la aplicación y minimizar la cantidad de código requerido para la integración.
Tecnología de integración: evitar el casarse con un proveedor de tecnología de integración porque esto incrementa los problemas para el desarrollador y el entendimiento que este tiene de las herramientas.
Formato de los datos: las aplicaciones integradas deben tener un formato de intercambio de datos común o un traductor intermedio para unificar las aplicaciones que insisten en tener formatos propietarios o diferentes a los acordados.
No percepción de tiempo en los datos: el tiempo entre la compartición de la información y el uso de la misma entre aplicaciones integradas debe ser mínimo.
Datos o funcionalidad?: las aplicaciones integradas no deben compartir solo datos, sino funcionalidad entre ellas.
Asincronia: las aplicaciones integradas deben estar en capacidad de ejecutarse de manera asíncrona, de manera que el incorrecto funcionamiento de una, no termine por afectar a todo el sistema.

OPCIONES DE INTEGRACION DE APLICACIONES
Transferencia de archivos: hacer que cada aplicación produzca archivos para que las demás usen, y esta a su vez pueda usar lo que las demás aplicaciones produzcan.
Base de datos compartida: hacer que las aplicaciones guarden la información en un lugar común.
Invocación de procesos remotos: hacer que cada aplicación exponga algunos de sus procedimientos para que puedan ser invocados remotamente, y al mismo tiempo hacer que otras aplicaciones puedan invocar estos para ejecutar una labor de sistema e intercambio de información.
Mensajería: hacer que cada aplicación se conecte a un sistema de mensajería común, comparta información y ejecute funciones mediante el uso de mensajes.

SISTEMA DE MENSAJES
Los sistemas de mensajes hacen las aplicaciones “loosely coupled” al comunicarlas asíncronamente, haciendo la comunicación más confiable por que las dos aplicaciones no necesitan estar ejecutándose al mismo tiempo.
Canales: zona por donde se transmiten los mensajes, conectando al que envía con el que recibe.
Mensaje: paquete atómico que puede ser transmitido por un canal.
Entrega en varios pasos: un sistema de mensajes entrega estos directamente entre el que envía y el que recibe, requiriendo en muchas ocasiones el hacer alguna transformación en el mensaje antes de ser este enviado.
Enrutamiento: aplicación que determina como debe navegar el paquete en la red de canales de la empresa para llegar a su destino.
Transformación: filtro que formatea el mensaje de forma que el receptor lo pueda leer sin inconvenientes al recibirlo.
EndPoint: puente que permite a las aplicaciones el enviar y recibir mensajes entre sistemas de mensajes.

Pipes and Filters: pasos de proceso individuales (filters) están directametne relacionados mediante unos canales de mensajes (pipes). El “pipe” permite a un componente el enviar un mensaje dentro de este, de manera que pueda ser consumido posteriormente por otro proceso que puede ser desconocido por el componente inicial.
Pipeline processing: permite a cada unidad el ejecutar su propio hilo de proceso. Cuando una unidad ha completado el procesamiento de un mensaje, puede entonces enviar un mensaje al canal de salida y empezar un nuevo proceso, sin esperar que el proceso padre haya terminado. Si se compara con el modelo secuencia, el rendimiento del sistema se ve ampliamente incrementado.

Procesamiento en paralelo: mejora el rendimiento del sistema al lanzar varios procesos a que funcionen paralelamente, haciendo que las tareas más costosas en cuanto a tiempo se puedan realizar más rápida eficientemente, pero esta aproximación puede hacer que los mensajes se ejecuten de un modo “out-of-order”.

No hay comentarios:

Publicar un comentario