MIDDLEWARE

MIDDLEWARE



Introducción

Como elemento característico de los sistemas distribuidos, surge el concepto de “Middleware”, la capa de software que se ubica entre el sistema operativo y las aplicaciones de los usuarios.

Fundamentos de Middleware

En un Sistema Distribuido, el middleware (lógica de la mediación) es un software de conectividad que permite ofrecer un conjunto de servicios que hacen posible el funcionamiento de aplicaciones distribuidas sobre plataformas heterogéneas. Como se muestra en la figura el middleware 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)

 Middleware














El middleware permite abstraer las funciones de un sistema distribuido, de la complejidad y heterogeneidad de las redes de comunicaciones subyacentes, así como de los sistemas operativos y lenguajes de programación, proporcionando una API (Application Programming Interface / Interfaz de Programación de Aplicaciones) para la fácil programación y manejo de aplicaciones distribuidas (Figura 34). Dependiendo del problema a resolver y de las funciones necesarias se requieren diferentes tipos de servicios de middleware.








             Middleware y APIs












El Middleware es fundamental para:

·         Migrar las aplicaciones monolíticas basadas en mainframes a aplicaciones Cliente/Servidor.

·         Soportar la comunicación entre procesos a través de plataformas heterogéneas
Según se aprecia en la figura , los servicios del middleware son una capa de software distribuida, que se localiza entre la aplicación y la plataforma concreta sobre la que se implementa la aplicación (Sistema Operativo + Red).

Los servicios del middleware proporcionan un conjunto de APIs más funcional que el sistema operativo y los servicios de red para permitir a una aplicación.

        Sistema distribuido visto como Middleware










·        Localización transparente a través de la red, proporcionando interacción con otra aplicación o servicio.

·        Ser independiente de los servicios de red.

·        Ser fiable y disponible.

·        Ser escalable, en el sentido de poder aumentar su capacidad sin pérdida de funcionalidad.

Funciones Middleware

Las aplicaciones middleware realizan las siguientes funciones:

·         Ocultar la distribución: middleware maneja el hecho de que una aplicación esté compuesta de muchas partes interconectadas ejecutándose en ubicaciones distribuidas.

·         Ocultar la heterogeneidad: middleware oculta o hace transparente al usuario diversas plataformas de sistemas operativos, protocolos de comunicación y dispositivos hardware.


·         Proveer interfaces uniformes y estándares de alto nivel: tanto a los desarrolladores como a los integradores de aplicaciones, de tal manera que las aplicaciones sean fácilmente desarrolladas, reusada s, transportadas y puedan interoperar correctamente.

·         Suministrar un conjunto de servicios comunes: para realizar varias actividades de propósito general con el fín de evitar duplicar esfuerzos y facilitar la colaboración entre aplicaciones.

Componentes Middleware

El middleware está compuesto de agentes de software que generalmente actúan entre el sistema operativo y las aplicaciones, con la finalidad de proveer comunicación entre diferentes aplicaciones en un sistema distribuido. Las funciones que realiza el middleware dentro de un cluster de servidores (datacenter) son:
·        Una interfaz única de acceso al sistema, denominada SSI, la cual genera la sensación al usuario de que utiliza un único computador muy potente.

·        Herramientas para la optimización y mantenimiento del sistema: migración de procesos, checkpoint-restart(congelar uno o varios procesos, mudarlos de servidor y continuar su funcionamiento en el nuevo host), balanceo de carga, tolerancia a fallos, etc.

·         Escalabilidad: debe poder detectar automáticamente nuevos servidores conectados al cluster para proceder a su utilización.
·         Existen diversos tipos de middleware, como por ejemplo: MOSIX, OpenMOSIX, Condor, OpenSSI, etc.


El middleware recibe los trabajos entrantes al cluster y los redistribuye de manera que el proceso se ejecute más rápido y el sistema n o sufra sobrecargas en un servidor. Esto se realiza mediante políticas definidas en el sistema (automáticamente o por un administrador) que le indican dónde y cómo debe distribuir los procesos, por un sistema de monitorización, el cual controla la carga de cada CPU y la cantidad de procesos en él.

El middleware también debe poder migrar procesos entre servidores con distintas finalidades:

·        Balancear la carga: si un servidor está muy cargado de procesos y otro está ocioso, pueden transferirse procesos a este último para liberar de carga al primero y optimizar el funcionamiento.


·        Mantenimiento de servidores: si hay procesos corriendo en un servidor que necesita mantenimiento o una actualización, es posible migrar los procesos a otro servidor y proceder a desconectar del cluster al primero.


·        Priorización de trabajos: en caso de tener varios procesos corriendo en el cluster, pero uno de ellos de mayor importancia que los demás, puede migrarse este proceso a los servidores que posean más o mejores recursos para acelerar su procesamiento.

Servicios middleware

Dentro de los principales servicios que se pueden ofrecer con una plataforma middleware se encuentran los siguientes:

Administración de Objetos: Soporta desde simples tipos de datos hasta grandes volúmenes de información.

Administración de Documentos: Usa el servicio de administración de objetos y además nombra y organiza documentos. Soporta el lenguaje de fórmulas (lenguaje de script para construir aplicaciones de usuarios).

Seguridad: soporta encripción, firmas digitales y control de acceso discrecional.


Indexamiento: Suministra acceso indexado tanto a resúmenes como a contenidos completos de documentos. Opera con herramientas de recuperación basadas en contenido y descriptores de documentos

Mensajería: soporta direccionamiento y transporte de correos, incluyendo direccionamientos a grupos de nombres y nombres jerárquicamente organizados.

Eventos: Soportar notificación dinámica a través de mensajes de correo o registro de Bitácora (Log).

Registro (Logging): Para auditar eventos.

Nombrado: Soporta enlaces Cliente/Servidor y lo integra con servicios de transporte y seguridad.

Administración del Sistema: Soporta control de administración desde consolas remotas.

Además  de  lo  anterior,  los  siguientes  componentes  podrían  ser  servicios

Middleware:

·        Administración de Presentaciones: Administrador de formas, administrador de gráficos, enlazador de hipermedios y administrador de impresión.

·    Computación: Ordenamientos, servicios matemáticos de cálculos, servicios de internacionalización (para manipulación de alfabetos y caracteres).

·        Administración de la Información: Servidor de Directorios, Administrador de Logs, administrador de archivos, administrador de registros, sistemas de bases de datos relacionales, sistemas de bases de datos orientadas a objetos, administrador de bodegas de datos.
·        Comunicaciones: Mensajería Peer-to-Peer (P2P), Llamadas a procesos remotos (RPC), colas de mensajes, correo electrónico, intercambio electrónico de datos (EDI).

·        Administración de Sistemas: Servicio de notificación de eventos, servicios de contabilidad, administrador de la configuración de dispositivos, administrador de instalación de software, detector de fallas, coordinador de recuperaciones.

Ventajas y campos de aplicación del middleware

Entre las principales ventajas que se obtienen al utilizar el middleware se encuentran:

·         Simplifica el proceso de desarrollo de aplicaciones al independizar los entornos propietarios.

·         Permite la interconectividad de los diferentes Sistemas de Información de una organización.


·         Proporciona mayor control del negocio al poder contar con información procedente de distintas plataformas sobre el mismo soporte.

·         Facilita el desarrollo de sistemas complejos con diferentes tecnologías y arquitecturas.

Dentro de los inconvenientes más importantes se des tacan la mayor carga de máquina necesaria para que puedan funcionar.


Los sistemas middleware tienen un amplio rango de aplicaciones, de los cuales se describirán los más importantes:


Migración de los Sistemas Host. Reingeniería de Aplicaciones


Toda aplicación empresarial debería diseñarse en base a módulos intermedios middleware encargados de la comunicación entre el ordenador personal y el host. Con el uso de middleware se puede desarrollar una aplicación sin tener en cuenta los futuros cambios tecnológicos que puedan sufrir los sistemas host. Si el sistema host cambia, o las aplicaciones de host se migran a plataformas de ordenadores personales, todo lo que se necesita es un nuevo módulo middleware. La interfaz de usuario, la lógica y el código interno permanecen sin cambios. Por ejemplo, si el equipo lógico del sistema host se traslada desde el mainframe a una base de datos de plataforma PC ejecutándose en un servidor de archivos, sólo hay que sustituir el módulo de middleware de forma que realice llamadas SQL.

Interconectividad

Uno de los usos más importantes de las herramientas de middleware es la de facilitar la interconectividad de los diferentes sistemas de una organización integrando las diferentes islas de información departamentales.

Arquitectura orientada a objetos distribuidos


El concepto de middleware permite también independizar los servicios proporcionados por diferentes objetos que se encuentran en una red proporcionando una red de objetos independientes e interconectados entre sí.

Arquitectura cliente/servidor


La utilización de middleware permite desarrollar aplicaciones en arquitectura cliente servidor independizando los servidores y clientes, facilitando la interrelación entre ellos y evitando dependencias de tecnologías propietarias.

Como se puede apreciar, la tecnología emergente middleware está constituyéndose en una plataforma fundamental para la operación de los sistemas en las organizaciones. En el capítulo uno de la tercera unidad se realizará una exposición detallada de uno de los sistemas Middleware de mayor uso actualmente, el sistema operativo distribuido CORBA.

Comentarios

Entradas populares