Conceptos fundamentales de un Middleware y razones de su importancia en el mundo de hoy



Documentos relacionados
Capítulo 5. Cliente-Servidor.

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Service Oriented Architecture: Con Biztalk?

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

Introducción a las redes de computadores

SISTEMAS DE INFORMACIÓN II TEORÍA

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

Elementos requeridos para crearlos (ejemplo: el compilador)

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

Unidad III. Software para la administración de proyectos.

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

Arquitectura de sistema de alta disponibilidad

Los servicios más comunes son como por ejemplo; el correo electrónico, la conexión remota, la transferencia de ficheros, noticias, etc.

M.T.I. Arturo López Saldiña

Ventajas del software del SIGOB para las instituciones

Visión General de GXportal. Última actualización: 2009

Ofrezca la nueva tendencia de innovación empresarial con un entorno de red abierta

1 EL SISTEMA R/3 DE SAP AG

Mª Luisa Gutiérrez Acebrón División de Informática y Tecnologías de la Información Ministerio de Justicia

Infraestructura Tecnológica. Sesión 5: Arquitectura cliente-servidor

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

Soluciones innovadoras para optimizar su infraestructura TI. Virtualización con el sistema operativo i, PowerVM y Power Systems de IBM

SAP BusinessObjects Edge BI Standard Package La solución de BI preferida para. Empresas en Crecimiento

2.1 Compuertas para Bases de Datos

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Gerencia de Procesos de Negocio (Business Process Management, BPM). Lic. Patricia Palacios Zuleta

Presentación de Pyramid Data Warehouse

Workflows? Sí, cuántos quiere?

Brindamos asesorías que involucran tecnología y personal calificado, estos hacen de DOCTUM su mejor aliado.

MACROPROCESO GESTIÓN TECNOLÓGICA

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

CAPÍTULO 2 Sistemas De Base De Datos Multiusuarios

En los últimos años, se ha presentado una enorme demanda por servicios portátiles,

INFORME N GTI INFORME TÉCNICO PREVIO DE EVALUACIÓN DE SOFTWARE

Sistemas de Información Introducción a los Sistemas de Información: El Modelo Cliente/Servidor

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

SIEWEB. La intranet corporativa de SIE

SISTEMAS DE INFORMACIÓN I TEORÍA

GeneXus BPM Suite X. Última actualización: 01 de Setiembre de 2008

FASCÍCULO. Decidir con inteligencia. Este es el momento.

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Estructura de Computadores I Arquitectura de los MMOFPS

WINDOWS : TERMINAL SERVER

computadoras que tienen este servicio instalado se pueden publicar páginas web tanto local como remotamente.

UNIVERSIDAD TECNOLOGICA ECOTEC DIEGO BARRAGAN MATERIA: Sistemas Operativos 1 ENSAYO: Servidores BLADE

SISTEMAS DE INFORMACIÓN III TEORÍA

Arquitectura cliente/servidor

ARC 101 Architecture Overview Diagram

La Intranet Gubernamental como elemento clave de la Interoperabilidad

Ingeniería de Software. Pruebas

LICITACIÓN N L13045 NUEVO SISTEMA LEY DE TRANSPARENCIA

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

Presentación. 29/06/2005 Monografía de Adscripción 1

UNIVERSIDAD DE SALAMANCA

Bechtle Solutions Servicios Profesionales

1.2 Alcance. 1.3 Definición del problema

Unidad 1. Fundamentos en Gestión de Riesgos

CORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Una puerta abierta al futuro

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

La Pirámide de Solución de TriActive TRICENTER

INFORME TECNICO ESTANDARIZACION DEL SERVICIO DE SOPORTE DE LA PLATAFORMA TRANSACCIONAL TRANSLINK TRANSACTION SERVICES OCTUBRE

OLIMPO Servidor Universal

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

TeCS. Sistema de ayuda a la gestión del desarrollo de producto cerámico

Gestión de la Configuración

Día :00h Lugar: Obra Social Ibercaja, Sala De actos, Rambla Ferran 38, 3º, Lleida

Utilidades de la base de datos

Windows Server 2012: Infraestructura de Escritorio Virtual

Arquitectura de red distribuida: escalabilidad y equilibrio de cargas en un entorno de seguridad


3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Introducción a SOA (II) Huibert Aalbers Senior Certified Software IT Architect

Tópicos Avanzados de Análisis y Diseño INGENIERIA DE SOFTWARE ING. MA. MARGARITA LABASTIDA ROLDÁN

Administración de Centros de Computo. ITIL. MSG.ING. DARWIN CERCADO B dcercado@primma.com.ec

System Center. la plataforma para una gestión ágil de los entornos de TI IDG COMMUNICATIONS, S.A.

servicios. El API es definido al nivel de código fuente y proporciona el nivel de

ICAFE. Caso de éxito del Instituto del Café de Costa Rica

La toma de decisiones está presente dentro de la vida de la mayoría de las personas. Los

Familia de Windows Server 2003

Resumen General del Manual de Organización y Funciones

5 formas de mejorar su negocio con COMPUTACIÓN EN LA NUBE

CÓMO MEJORAR LA GESTIÓN DE SERVICIOS TI USANDO MEJORES PRÁCTICAS?

SISTEMAS DISTRIBUIDOS DE REDES 3.- ESTANDAR CORBA Características

4. Programación Paralela

Elección de un Sistema de Remuneraciones y Recursos Humanos. Según su modo de operar.

Propiedad Colectiva del Código y Estándares de Codificación.

RBAC4WFSYS: Modelo de Acceso para Sistemas Workflow basado en RBAC

CAPITULO I FORMULACION DEL PROBLEMA

QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A)

Transcripción:

Conceptos fundamentales de un Middleware y razones de su importancia en el mundo de hoy UNLAM, Universidad Nacional de La Matanza, Argentina Matías Leandro Varela 1. Resumen Hoy en día, un gran número de transacciones y/o operaciones son realizadas a través de distintas redes e Internet. Estas redes han logrado conectar PCs, workstations y mainframes, mediante una gran dedicación por parte de las industrias de software y computación. Estas computadoras se comunican a través de la red, lo que permite la integración de diversos componentes. Esta integración conlleva un tiempo usualmente escaso, lo que se convierte en la razón fundamental de por qué los sistemas distribuidos son una muy buena opción que construir nuevo sistemas. Obviamente, este tipo de integración incluirá componentes existentes o anticuados. En sistemas distribuidos, la solución a este contexto que se presenta está en la utilización de Middlewares. Por lo tanto, este paper tiene como objetivo brindar una explicación, estudio y desarrollo general del concepto denominado Middleware en el ambiente computacional. Además, se justificará ampliamente su necesidad, utilidad, ventaja, razón de ser y sus ámbitos de aplicación en el mundo actual, que hacen que esta tecnología posea un importante e imperioso uso por parte de diversos actores, sean personas, empresas y/o organizaciones pertenecientes al rubro informático o no. 2. Introducción Actualmente, la existencia de nuevas arquitecturas, sistemas y plataformas más potentes y económicas hacen que muchas organizaciones se planteen la idea de trasladar sus aplicaciones corporativas, que residen en servidores centrales o mainframes, hacia nuevas plataformas. Sin embargo, los rápidos cambios de las tecnologías, hace necesario garantizar que la inversión que se realiza en el proyecto de rediseño de la aplicación tengan un resultado esperado. Esta estrategia incluye el concepto de Middleware. Además, debido a la estimulación en el crecimiento vertiginoso de aplicaciones en red, la tecnología Middleware ha cobrado una relevante importancia. La misma, cubre un espectro bastante amplio de sistemas software como objetos distribuidos y componentes, comunicación basada en envío de mensajes, aplicaciones para móviles (celulares), entre otros. Si nos remontamos unas décadas atrás, la terminología Middleware tuvo su primera aparición a finales de los 80s donde se referían a productos software de gestión en la conexión de redes. Pero, a mediados de la década del 90, el - CACIC 2007 - Página 1 de 13

Middleware ya había evolucionado en un conjunto de paradigmas y servicios que ofrecían ayuda para hacer más fácil y más manejable la construcción de aplicaciones distribuidas. Primeramente, a comienzos de la década del 90, el término fue asociado por varios profesionales del mudo de los negocios con el concepto de base de datos relacionales, pero a mediados de la misma década, éste ya no era el caso. En esa misma época, varios productos comenzaban a ofrecer APIs 1 para múltiples abstracciones como ser objetos distribuidos y colas de mensajes. Citando algunos ejemplos de los primeros tipos de Middlewares nos encontramos con Cronus, el cual se lo considera como el primer sistema de objetos distribuidos más importante. Por otro lado, el primer desarrollo de RPC se realizó alrededor del año 1982. Quality Objects (QuO) fue el primer framework 2 de Middleware3 que proveía una propuesta general y extensible de la calidad del servicio para objetos distribuidos. TAO fue el principal sistema CORBA en proveer calidad del servicio. The Message Oriented Middleware Association (MOMA) fue formado en 1993, y MOM se convirtió en el tipo de Middleware más a finales de la década del 90. Posteriormente, se desarrollarán las características, funcionalidad y deferencia de cada uno de estos tipos. Por lo tanto, el término Middleware no es un concepto relativamente nuevo pero con la aparición de la tecnología basada en sistemas abiertos, el concepto Middleware toma su mayor relevancia en el mundo de la informática. Para introducirnos un poco más en el concepto de Middleware, comenzaremos ofreciendo varias definiciones de distintos autores y/o instituciones para disponer de un panorama más claro: Definición 1: El Middleware es un software de conectividad que ofrece un conjunto de servicios que hacen posible el funcionamiento de aplicaciones distribuidas sobre plataformas heterogéneas. Funciona como una capa de abstracción de software distribuida, que se sitúa entre las capas de aplicaciones y las capas inferiores (sistema operativo y red). Definición 2: El Middleware es un módulo intermedio que actúa como conductor entre sistemas permitiendo a cualquier usuario de sistemas de información comunicarse con varias fuentes de información que se encuentran conectadas por una red. Definición 3: En un sistema informático distribuido, Middleware se define como una capa de software que se encuentra o sitúa entre el sistema operativo y las aplicaciones del sistema. Definición 4: Middleware es un software que permite conectar componentes softwares o aplicaciones. El mismo consiste en un conjunto de servicios que permiten que múltiples procesos corriendo en una o varias máquinas interactúen de un lado a otro de la red. 1 Conjunto de convenciones internacionales que definen cómo debe invocarse una determinada función de un programa desde una aplicación. 2 Esquema, esqueleto o patrón utilizado para el desarrollo y/o la implementación de una aplicación específica. - CACIC 2007 - Página 2 de 13

Figura 1: Ejemplo de un Middleware en un entorno genérico Definición 5: Middleware es un concepto general relacionado con alguna programación que se utiliza para mediar entre dos programas separados y usualmente ya existentes. En resumen, podríamos adoptar varios conceptos válidos de cada uno de estos enunciados y formular una definición más completa, sencilla y fácil de comprender: Básicamente, nos referimos a un Middleware, al software que tiene la capacidad de conectar distintos sistemas y facilitar la interacción entre un cliente y cualquier aplicación que provee un servicio (arquitectura cliente/servidor), independientemente de la plataforma. Por lo tanto, se trata de un software de capa alta (por encima de la red física y las capas de transporte) que se ubica entre el sistema operativo y las aplicaciones, manejando todas aquellas complejas tareas requeridas para proveer el acceso a datos y aplicaciones entre plataformas heterogéneas. En definitiva, El Middleware nos brinda la abstracción de la complejidad y heterogeneidad tanto de las redes de comunicaciones subyacentes como de los sistemas operativos y lenguajes de programación, proporcionando así, una API para acceder a una fácil programación y manejo de aplicaciones distribuidas. 3. Desarrollo Una solución Middleware debe permitir conectar entre sí a una variedad de productos procedentes de diversos proveedores. De esta manera, se puede separar la estrategia de sistemas de información de soluciones propietarias de un sólo proveedor. La tecnología Middleware ha evolucionado proveyendo interoperabilidad en la arquitectura cliente / servidor. Usualmente, utilizado para brindar soporte a aplicaciones distribuidas y complejas. Dentro del concepto Middleware se incluyen los servidores Web, servidores de aplicación, sistemas de content management, y herramientas similares que dan soporte al desarrollo y entrega de aplicaciones. Middleware, esencialmente, - CACIC 2007 - Página 3 de 13

integra modernas tecnologías de la información basadas en XML, SOAP, servicios Web y SOA. 3.1 Servicios de los Middlewares Como se ha nombrado anteriormente, los Middlewares emplean APIs para proveer un nivel de abstracción al grupo de servicios centrales. Estos servicios son provistos nativamente por la mayoría de los Middlewares. 3.1.1 Servicios de Comunicación Estos servicios permiten la comunicación sistemas remotos sin preocuparse de la complejidad existente del ambiente de red. Es común encontrar diversidad de redes como TCP/IP, IPX/SPX (Novell) o IBM/SNA. La forma en que estos servicios son provistos forman el principal criterio para diferenciar tipos de Middlewares (MOM, RPC, Transaccional). 3.1.2 Servicios de Acceso a Datos Estos servicios permiten ejecutar consultas o distintas actualizaciones tanto a archivos planos como de Bases de Datos, ubicados en uno o más servidores, asegurando la integridad de los datos y la disponibilidad de la aplicación. Además, existen varias APIs que permiten la conectividad con Bases de Datos. Por ejemplo, para aplicaciones Web, los estándares de facto son Microsoft-ODBC y JDBC. 3.1.3 Servicios de planificación de ejecución Estos servicios permiten ejecutar múltiples procesos simultáneamente, balancear la carga y priorizar tareas homogéneamente entre distintas plataformas. Los mismos se proveen utilizando una gestión de hilos. 3.1.4 Servicios de Seguridad Comúnmente, estos servicios, son empleados para conectar sistemas diferentes, en donde cada uno posee su propio sistema de seguridad. Un ejemplo habitualmente usado es el Single Sign On. 3.1.5 Servicios de Directorio Estos servicios proveen un eficiente y potente método de ubicar y administrar recursos en una red. Por ejemplo, podemos mencionar: LDAP. En resumen, los servicios de un Middleware proveen: Ubicación transparente de un extremo a otro de la red permitiendo interacción con otra/s aplicación/es o servicio/s. Independencia de los servicios de la red. Confiabilidad y disponibilidad. - CACIC 2007 - Página 4 de 13

Escalabilidad sin perder funcionalidad. 3.2 Aspectos de un diseño de un Middleware Como ya se ha mencionamos, la función del Middleware es mediar la interacción entre partes de una aplicación o aplicaciones entre sí. Por lo tanto, los inconvenientes en la arquitectura juegan un rol fundamental en su diseño donde la misma se realizará de acuerdo con la estructura en general de la organización y los modelos de comunicación, ambos relacionados con las aplicaciones y el Middleware en sí mismo. El Middleware deben enmascarar la heterogeneidad de las redes, del hardware, de los sistemas operativos, de los lenguajes de programación para lograr finalmente distintas abstracciones que el Middleware otorga, ofreciendo transparencia respecto a ubicación, concurrencia, replicación, fallas, movibilidad, entre otros. 3.3 Tipos de los Middleware Dependiendo del problema a resolver y de las funciones necesarias, serán útiles diferentes tipo de servicios de Middleware. Entonces, clasificar los Middlewares puede ayudar a identificar sus usos y características especiales. 3.3.1 Para Bases de Datos Este Middleware es el más desarrollado actualmente. En este caso, una Base de Datos distribuida ofrece la abstracción tanto de registros como de transacciones. Es decir, este tipo de Middleware permite tanto el manejo de la conectividad, y la capacidad de leer y escribir a Bases de Datos existentes. Son indispensables debido a la facilidad que otorga para acceder a Bases de Datos en múltiples plataformas aunque no tienen la funcionalidad de otros Middlewares. Algunos ejemplos son: IBM-DRDA, ORACLE-SQL*Net, INFORMIX-I_Star y CA-CA-OpenIngres. Otras organizaciones a través de ODBC y JDBC han permitido acceso a distintas Bases de Datos, inclusive a través de Internet. 3.3.2 Remote Procedure Calls (RPC) Este Middleware provee conectividad de una aplicación hacia otra. Es decir, permite que un software o un componente en una máquina pueda requerir la ejecución de un otro en otra máquina. DCE de la OSF es la implementación más usada de RPC debido a su capacidad multi-hilo y valores agregados como Directory Services, Distributed File Systems y Distributed Time Services, que son elementos facilitadores de aplicaciones en redes globales. Estos Middlewares evitan la complejidad de tareas en un entorno de red y su fortaleza reside en su capacidad para pasar grandes volúmenes de datos a través de una red. Este tipo es multiplataforma y especialmente apto para application data intensive que requieren un tiempo de respuesta inmediato y control entre procesos. Sus desventajas: a) Incapacidad de de establecer conectividad punto a punto. - CACIC 2007 - Página 5 de 13

b) Su naturaleza sincrónica obliga a ambos componentes, cliente y servidor, a estar disponibles al momento de la llamada. Existen algunas implementaciones que permiten convertir el RPC de sincrónico en asincrónico. 3.3.3 Object Request Broker (ORB) Estos Middlewares soportan la conexión entre aplicaciones Orientadas a Objetos. Junto a la amplia aceptación de la tecnología JAVA y las Orientadas a Objetos, y el crecimiento de Internet, llevan a estos Middlewares a la estrategia central de los Sistemas de Información. Las interfases ORB son definidas mediante un lenguaje de definición de Interfases (IDL). Además, los servicios de objetos proveen un grupo de servicios importantes como ser seguridad y ubicación. Los ORB están altamente estandarizados CORBA (OMG) y OLE (DCOM, Microsoft). Algunos ejemplos son: ORBIX (IONA) y Visibroker (Visigenic). 3.3.4 Monitores de Procesamiento de Transacciones Distribuidas (DTPM) Los primeros Procesadores de Transacciones de Mainframe (CICS) brindaban una interfase, la cual permitía a los desarrolladores abstraerse de características físicas inherentes al teleprocesamiento. Por otra parte, incluían facilidades de ejecuci{on de hilos, seguridad y transaccionalidad. La diferencia entre éstos y los existentes actualmente es que estos Middlewares pueden realizar una transacción entre múltiples plataformas distribuidas. Los DTPM soportan aplicaciones OLTP usando diversidad de plataformas y Bases de Datos. Poseen, además, mecanismos de colas y ejecución de hilos que permiten el eficiente procesamiento de gran volumen de transacciones. Algunos ejemplos Tuxedo (BEA), TX (IBM), ENCINA (Transarc), entre otros. 3.3.5 Orientados a Mensajes (MOM) El Messaging es el mecanismo que permite que dos aplicaciones cambien datos simplemente enviando mensajes. Se emplea un protocolo punto a punto que permite el envío asincrónico de mensajes. El Messaging es más apropiado para las aplicaciones que son conducidas por eventos y no requieren respuesta inmediata. En conclusión, este Middleware permite colocar datos en una cola de mensajes que pueden ser accedida a lo largo de la red. La mayoría de los productos MOMs ofrecen colas con persistencia, replicación, o performance en tiempo real. Algunos ejemplos son IBM-MQ y Microsoft-MSMQ. La fortaleza reside en su garantía de despacho, balanceo de carga, eficiencia y soporte de plataformas. 3.3.6 La Web Hoy en día, la Web puede ser considerada como la culminación de los Middlewares debido a las prestaciones que ofrece como la apertura, escalabilidad, integridad y transparencia. Pero además, la Web ha agregado nuevas capas de complejidad como ser lenguajes de programación, APIs, protocolos, estándares, entre otros que han incrementado el rol de los Middlewares. - CACIC 2007 - Página 6 de 13

3.4 Clasificación de los Middleware Los Middlewares pueden ser considerados de acuerdo a su facilidad de uso, sencillez o rol estratégico dentro del ambiente donde se lo necesite. En primera instancia, se encuentran los considerados Oportunísticos. Estos son aquellos que poseen un rápido aprendizaje para los desarrolladores, con menores conocimientos necesarios, e inclusión de soporte a nuevas tecnologías. Su precio inicial es frecuentemente bajo. Entre ellos, se pueden mencionar: OAS, IAS, WebSphere, BEA Weblogic, Microsoft TS, entre otros. En segundo lugar, se encuentran los Sistemáticos. En este grupo, el concepto central es la larga vida de la tecnología y su proveedor, y además, las características de los Mainframes por encima de calidad de servicio (disponibilidad, performance, gestionabilidad e integridad). Estos Middlewares son considerados estratégicos por parte de las áreas de sistemas centrales de las organizaciones. Se emplean para proyectos de extensa duración e impacto en la organización. Entre ellos, se pueden mencionar: CICS, DEC openacms (Tandem) y Pathway (Tandem), ORBIX (IONA Technologies). 3.5 Requerimientos de un Middleware Entre los requisitos que es Middleware ofrece se encuentran: Comunicación de red: debido a que los componentes se encuentran ubicados en diferentes hosts, los sistemas distribuidos necesitan comunicación a través de la red. La comunicación requiere la transformación de las estructuras de datos en un formato específico para ser transmitidos por un protocolo específico. Coordinación: En los sistemas distribuidos, la coordinación es requerida para controlar la comunicación entre múltiples puntos. Existen varios mecanismos para lograr la coordinación. Esto incluye políticas de sincronización y de activación. Fiabilidad: Los sistemas distribuidos necesitan incluir mecanismos de detección y corrección de errores para eliminar causas indeseadas debido a errores. Escalabilidad: en este caso, nos referimos a cómo responde correctamente el hardware o un software cuando se incrementa la demanda. La principal tarea es proveer cambios en un sistema distribuido sin cambiar su arquitectura o diseño. Heterogeneidad: aquí nos referimos a la cualidad de ser diferente y no comparable en su tipo. En un sistema distribuido, existen componentes de distintos tipos (propietarios o nuevos) y, a su vez, escritos en distintos lenguajes. - CACIC 2007 - Página 7 de 13

3.6 Factores de Selección de los Middlewares Actualmente, los factores más destacables que influyen la selección de los Middlewares son: Integración: tienen un rol fundamental en la dirección de integrar procesos orientados a nuevos modelos de gestión. Confiabilidad y disponibilidad: mayor robustez de las aplicaciones desarrolladas con Middlewares debido a los mecanismos de recuperación e integridad con que cuentan, como por ejemplo, rollback y el two phase commit, Performance: mejoran el empleo en el uso de los recursos (threading) Gestión: Son elementos comunes de las aplicaciones, y en algunos casos de administración centralizada. Por lo tanto, obligan a una organización y a una administración centralizada (BPM, D/TPM, serv. de aplicación). Seguridad: Algunos Middlewares agregan seguridad a nivel de transacciones (CICS, DCE), otros se integran con el sistema operativo (LDAP, DCE) o ambos. Escalabilidad: El diseño de los Middlewares permite escalar más fácilmente, como por ejemplo, más colas MQ, ejecución de hilos, granja de servidores, entre otros. Seguimiento de estándares 3.6 Consideraciones del Middlewares Obviamente, como todo tecnología existente, encontramos algunas ventajas o cierta utilidad o medio que nos ayude a resolver un problema. Pero también, aparecerán algunas restricciones que harán que los servicios que ofrecen los Middlewares no sean una solución perfecta. Entre las utilidades que ya fuimos mencionando desde el comienzo del paper, podríamos resumir en que: Los Middlewares permiten simplificar el proceso de desarrollo de aplicaciones gracias a que podemos independizar los entornos propietarios. Los Middlewares ofrecen interconexión con los Sistemas de Información del Organismo. Debido a que podemos contar con información procedente de distintas plataformas, los Middlewares proporciona mayor control del negocio Los Middlewares facilitan el desarrollo de sistemas complejos con diferentes tecnologías y arquitecturas. No obstante, se debe tener en cuenta algunas consideraciones o limitaciones en lo que respecta a esta tecnología. Existe una diferencia bastante marcada entre los principios del Middleware y la práctica en sí. En general, los inconvenientes más habituales encontrados se deben a la inmadurez de algunos Middlewares y de las organizaciones de sistemas como ser la falta de habilidades. Esta situación es muy usual ya que las empresas de desarrollo de software se concentran primero en la funcionalidad, luego en continuar con objetivos de performance y solucionar los defectos, y por último, en pensar la mejor administración y servicios de seguridad. - CACIC 2007 - Página 8 de 13

En conclusión, enumeraremos algunos ejemplos de posibles problemas que nos podemos encontrar cuando trabajos con Middlewares: Dificultades para administrarlos. Algunos Middlewares populares son o utilizan implementaciones propietarias, haciendo que las aplicaciones dependan de una sola empresa. Temas de seguridad fuertemente referidos a cuales capas de la arquitectura se planificará emplearla. Los niveles de abstracción de los servicios crecen día a día, pero éstos no permiten que los programadores de las aplicaciones posean diseños simples de implementar. Falta de las personas con las habilidades necesarias. Perfomance de los sistemas menor a la esperada. Desarrollos demasiados complejos. Integración con Mainframes. Para poder mantener el ambiente computacional o informático simple y administrable, los desarrolladores deben seleccionar una poca cantidad de servicios que concuerden con sus necesidades relacionadas con la funcionalidad y su plataforma. En definitiva, la clave para la superación de estos inconvenientes estará en contar con un entendimiento completo y claro del problema de la aplicación en sí y el valor que los servicios proveen, que harán posible una aplicación distribuida. 3.7 Objetivos de Negocios para los Middlewares Los Middlewares, en sí mismos, no son un objetivo, pero sí deben responder a objetivos de negocios que las nuevas aplicaciones necesitan ser cumplidos y realizados. Los más destacados son: Capacidad de ofrecer nuevos productos y servicios rápidamente. Encontrar nuevas formas de llegar a los clientes o potenciales clientes. Capacidad de cambiar las prácticas de negocio ágilmente a través de la colaboración e integración. Posibilidad de entrar a nuevos mercados, Estos objetivos pueden ser alcanzados debido a las facilidades que proveen los Middlewares: Simplificar la modificación o actualización de sistemas contenedores de aplicaciones como ser un servidor de aplicaciones. Facilitar la integración de aplicaciones. Simplificar la gestión del sistema. Reducir los costos de desarrollo con un diseño que lo debe acompañar. Reducir el tiempo de salida al Mercado con una disponibilidad inmediata y oportuna ( Time to Market ). - CACIC 2007 - Página 9 de 13

3.8 Tendencia de los Middlewares En escasos períodos de tiempo, los Middlewares han evolucionando y transformándose muchas veces. En las primeras épocas, comenzó como intermediario y creciendo hasta llegar al desafío de conectar aplicaciones y esta situación continuará a medida que aparezcan nuevas tecnologías. Actualmente, los desarrolladores están sujetos a los Middlewares para crear nuevas aplicaciones de manera rápida, donde los usuarios finales emplean una interfaz consistente para las mismas, que, hoy en día, evolucionan transparentemente. En la realidad, no hay una solución rígida para definir sincrónico versus asincrónico u ORB versus MOM. La respuesta a este contexto está en la necesidad del proceso de negocio y la habilidad para combinar tecnologías. El pasaje de dos capas a multicapas continuará rigiendo el vertiginoso crecimiento de los Middlewares que facilitan la comunicación entre aplicaciones. Por otro lado, se pude observar una fuerte propensión en la concentración de los siguientes tipos de Middlewares: Servidores de aplicación que soporten aplicaciones basadas en componentes, específicamente aquellos que incluyan ORBs y OTMs. MOMs. TPMs distribuídos, especialmente aquellos que corren en UNIX o Windows. Por último, entre tendencias actuales relacionadas con los Middlewares, podemos observar distintos ámbitos: Infraestructura Inteligente Integrada. Es una práctica que consiste en planificar y diseñar una infraestructura de Middleware que permita a una organización adaptarse a los cambios y asegurar que la información logre llegar a donde sea necesaria en tiempo y forma. Brokers de Integración (Integración brokers). Consiste es el máximo responsable de conciliar, ajustar y convenir las diferencias entre los sistemas participantes. Algunos ejemplos son: IBM Component Broker, Tibco, Microsoft BizTalk, entre otros. BPM (Business Process Managers - Workflows). Esta tecnología permite describir, formalizar y desplegar un proceso de negocio, que contiene varios pasos, diseñado para colectar y dispersar información, ejecución de procesos secuencialmente y disparar nuevos procesos en base a eventos. Estas herramientas son muy útiles debido a su agilidad e inteligencia. Middleware de Comunicaciones/Transporte. Es la parte fundamental de la infraestructura de un Middleware. Algunos ejemplos son: IBM-MQ, SOAP, Tibco, entre otros. Adapter Technologies. - CACIC 2007 - Página 10 de 13

Esta tecnología son censores que fueron preparados para recibir distintos formatos de información. Frecuentemente, los podemos encontrar dentro de los brokers de integración. Integración de Servidores Web. Esta tipo de integración es limitada en sus funciones pero permiten encontrar aplicaciones externas, dar formato a la información en forma estándar e iniciar intercambio de información, independientemente de la tecnología que se halle en el otro extremo. Servidores de Aplicación. A pesar de que no son una tecnología de integración por sí mismas, son una parte importante como contenedores de lógica. 4. Conclusión Como se ha analizado, el principal propósito de los Middlewares es que sus servicios nos ayuden a solucionar muchos problemas de conectividad entre diversas aplicaciones como así también, los inconvenientes de interoperabilidad. Los Middlewares simplifican la interacción, cumplen un rol estratégico en el crecimiento de las organizaciones hacia el mundo distribuido e integrado, y permiten extender la inversión en los sistemas propietarios y actuales. Por otro lado, al simplificar la interacción, reduce el nivel de expertise de los programadores aunque se debe contar con el experto. Es decir, que, además de aportar menor tiempo de desarrollo por parte de los programadores, aportan menos expertos. Los Middlewares han facilitado la conexión de aplicaciones propietarias y las nuevas aplicaciones cliente / servidor y, actualmente, proveen la misma facilidad que los que brindan los sistemas Back-End a Internet. Actualmente, existe un gran número de servicios Middlewares y empresas en el rubro; esto significa, que las aplicaciones Middlewares continuarán creciendo a medida que se implementen más tecnologías heterogéneas. Por lo que se puede apreciar, las tecnologías que serán de mayor valor estratégico las encontraremos en los servidores de aplicaciones orientados a la Web, ORBs, TPMs y MOMs. Con la llegada de nuevas tecnologías, se vislumbra una nueva perspectiva para que el Middleware continúe siendo la capa invisible que haga más fácil desarrollos futuros. Aunque, la paradoja es que, mientras los Middlewares facilitan el desarrollo multiplataforma, no existe mucha facilidad para realizar la conexión entre ellos. Hoy en día, los sectores o departamentos de sistemas de las organizaciones deberían tomar con seriedad las tecnologías de Middleware, además de construir una apropiada infraestructura en post de hacer frente a la dinámica y complejidad del mundo de Internet. Sin la existencia de los Middlewares, cierto tipo de actividades a nivel de redes serían imposibles. En un futuro no muy lejano, habrá aplicaciones cada vez más poderosas y potentes y más Middlewares van a ser necesitados. - CACIC 2007 - Página 11 de 13

4.1 Relación del concepto Middleware con la tecnología Grid Computing Para concluir el paper, daremos la justificación de por qué el concepto Middleware se encuentra estrechamente ligado con la tecnología Grid Computing. En un principio, Grid es un servicio que provee la capacidad compartir potencia de cálculo y volumen de almacenamiento a través de la red. Mediante la abstracción y virtualización de los recursos que componen una infraestructura Grid, se lleva a cabo esa compartición, logrando finalmente que el usuario final pueda visualizarla como una única y potente computadora. Entonces, el objetivo final de la tecnología Grid es crear una infraestructura integrando todo recurso informático heterogéneo que existe dentro de un entorno específico. Un Grid puede estar compuestos por muchos clusters de computadores o por ninguno. Gracias a lo que se conoce como Grid Middleware es que es posible lograr un Grid. Esto significa que el la tecnología Grid sólo tiene sentido si en ella se encuentra un tipo de Middleware específico. Entonces, el Grid Middleware es la parte fundamental en una estructura Grid y se lo considera como el software especial que permite la integración de los distintos tipos de recursos que participan en él. Entre sus funcionalidades se encuentran: La eficiente asignación de recursos. La ejecución de trabajos y transferencia de resultados. El Almacenamiento, registro y localización y acceso a datos. Proveer mecanismos de seguridad. Monitorización. Cuando se comenzó a diseñar y desarrollar el Grid Middleware, los especialistas se inclinaron por utilizar servicios Web como la tecnología base. No obstante, debieron añadir algunas características específicas de las que carecían los originales servicios Web para adaptar esa solución a la tecnología Grid. Entre estas características se encuentra el estado, la transitoriedad, el servicio de notificaciones, entre otros. De esta manera, a través del agregado de estas nuevas particularidades a los servicios Web, se creó lo que se denominan Grid Services. Por lo tanto, otro punto importante de relación entre los concepto Middleware y Grid es que este último se apoya a través de los servicios Grid, los cuales tiene su origen en los servicios Web, que a su vez son una tecnología de Middleware distribuido como lo son Corba y RMI. 5. REFERENCIAS [1] Richard E. Scantz, Douglas C. Schmidt. Middleware for Distributed Systems. http://www.cs.wustl.edu/~schmidt/pdf/middleware-chapter.pdf. [2] http://doi.ieeecomputersociety.org/10.1109/mdso.2001.5 [3] David E. Bakken. Middleware. Washington State University - CACIC 2007 - Página 12 de 13

[4] http://es.wikipedia.org/wiki/middleware. [5] http://middleware.objectweb.org. [6] Jorge Salvo. Cátedra: Sistemas Operativos Distribuidos. UNLAM, 2006 [7] http://middleware.internet2.edu. [7] http://en.wikipedia.org/wiki/middleware. [8] Hennadiy Pinus. Middleware: Past and Present a Comparison, 2004. [9] http://www.wisegeek.com/what-is-middleware.htm [10] A. S. Tanenbaum. Distributed Operating Systems. Prentice Hall, 1995. [11] http://www.sei.cmu.edu/str/descriptions/middleware.html [12] Guillermo Losilla Anadón. Introducción al GRID, 2005 [13] http://www.csae.map.es/csi/silice. - CACIC 2007 - Página 13 de 13