lunes, 6 de febrero de 2017

MIDDLEWARE

MIDDLEWARE


El término middleware se discute en [Lewandosky 1998]. El software distribuido requerido para facilitar las interacciones cliente-servidor se denomina middleware. El acceso transparente a servicios y recursos no locales distribuidos a través de una red se provee a través del middleware, que sirve como marco para las comunicaciones entre las porciones cliente y servidor de un sistema.

El middleware define: el API que usan los clientes para pedir un servicio a un servidor, la transmisión física de la petición vía red, y la devolución de resultados desde el servidor al cliente. Ejemplos de middleware estándar para dominios específicos incluyen: ODBC, para bases de datos, Lotus para groupware, HTTP y SSL para Internet y CORBA, DCOM y JAVA RMI para objetos distribuidos.

El middleware fundamental o genérico es la base de los sistemas cliente-servidor. Los servicios de autentificación en red, llamadas a procedimiento remoto, sistemas de ficheros distribuidos y servicios de tiempo en red se consideran parte del middleware genérico. Este tipo de middleware empieza a ser parte estándar de los sistemas operativos modernos como Windows NT. En sistemas donde no se disponga deberá recurrirse a middleware del tipo OSD DCE (Distributed Computing Environment) [OSF 1994]. El middleware específico para un dominio complementa al middlware genérico de cara a aplicaciones mucho más específicas.

El protocolo de comunicaciones más usado por el middleware, tanto genérico como específico, es TCP/IP. Esto se debe a su amplia difusión en todos los sistemas operativos del mercado y en especial en los ordenadores personales.


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
·          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.
·        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 inter operar 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 nuevohost), 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

No hay comentarios:

Publicar un comentario