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 car
ga: 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