Middleware es un software que asiste a
una aplicación para interactuar o comunicarse con otras aplicaciones, software,
redes, hardware y/o sistemas operativos. Éste simplifica el trabajo de los
programadores en la compleja tarea de generar las conexiones que son necesarias
en los sistemas distribuidos. De esta forma se provee una solución que mejora
la calidad de servicio, seguridad, envío de mensajes, directorio de servicio,
etc.
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). El
middleware abstrae 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 para la fácil
programación y manejo de aplicaciones distribuidas. Dependiendo del problema
que resolver y de las funciones necesarias, serán útiles diferentes tipo de
servicios de middleware. Por lo general el middleware del lado cliente está
implementado por el Sistema Operativo, el cual posee las bibliotecas que
ejecutan todas las funcionalidades para la comunicación a través de la red.
El software que
proporciona un enlace entre aplicaciones
de software independientes. Middleware a veces se llama a la vía que
conecta dos aplicaciones y pasa los datos entre ellas. Los Middleware permiten
que los datos contenidos en una base de datos puedan ser accedidos a través de
otra. Ahorra el tiempo a los programadores..
Historia
El origen de la
palabra Middleware se remonta al año 1968, en donde la palabra es usada
durante la 1968 NATO Software Engineering Conference, siendo una
idea de cómo conectar el nuevo software con sistemas más antiguos. Durante las
décadas previas a los 90s, fue solamente descrito como un software para la
gestión de conexión en redes, para cuando las tecnologías en redes alcanzaron
una penetración y visibilidad suficiente el software middleware' había
evolucionado en un conjunto de paradigmas y servicios. De esta forma se estaba
ofreciendo una manera más fácil, robusta y controlable para construir
aplicaciones distribuidas.
Categoría de integración
El tipo de
integración que incluyen, posee la capacidad de unirse con sistemas
heterogéneos. Cada middleware posee diferentes protocolos de comunicación o
formas de operar en diferente software, los tipos de integración se pueden ver
como:
Orientados a procedimiento o procesos
Los middleware
que son orientados a procesos, utilizan a una comunicación sincronizada (como
por ejemplo el teléfono). Una de las características de estos, es que utilizan
el “Client Stub” y el “Server Skeleton”. El “client stub”, convierte la
petición en un mensaje que es mandado al servidor, luego el “server skeleton”
recibe el mensaje, lo convierte en la petición y llama a la aplicación del
servidor donde esta es procesada. Terminado el procesamiento el proceso inverso
ocurre. El “client stub” chequea los errores, envía los resultados al software
que inicio la petición y entonces suspenden el proceso. Las ventajas de estos
middleware es que usan un tipo estándar en nombres de servicios, procesos
remotos, pueden retornar respuesta aun con problemas en la red, pueden manejar
múltiples tipos de formatos para datos y niveles heterogéneos de sistemas de
servicio. Las desventajas son que no poseen escalabilidad, no pueden retornar
la información a un programa diferente del que realizo la solicitud (reflexión)
y poseen procesos muy rígidos.
Orientados a objetos
Soportan
pedidos de objetos distribuidos. La comunicación entre los objetos puede ser
sincronizada, sincronizada diferida o no sincronizada. Soportan múltiples
pedidos similares realizados por múltiples clientes en una transacción. La
forma de operar es primero con el objeto cliente que llama a un método lógico
para obtener un objeto remoto. Un ORB Proxy (también conocido como stub) pone
en orden la información y la transmite a través del agente (broker). El agente
actua como punto medio que contacta un número de fuentes de información,
obtener sus referentes IDs, recolectar información y a veces reorganizarla. El
objeto servidor recibe el mensaje desde el agente y el proxy remoto (también
conocido como Skeleton) desordena la información. La información es ingresada a
un objeto servidor sirviente en donde un particular procesos es realizador. El
resultado es devuelto de forma inversa a lo explicado. Las ventajas es que
permiten generar reflexión y escalabilidad. También opera con múltiples tipos
de información y estados y soporta procesos múltiples. Las desventajas incluyen
pre vínculos antes de la ejecución y la necesidad de un código contenedor para
algunos sistemas heredados.
Orientados a mensajes (MOM)
Se pueden
dividir en dos tipos, espera y publicación/suscripción. El paso de espera se
puede dividir en mensaje y espera. El paso de mensaje, inicia con que la
aplicación envía un mensaje a uno o más clientes, con el MOM del cliente. El
servidor MOM, recoge las peticiones de la cola (Message Broker) en un orden o
sistema de espera predeterminado. Los actos del servidor MOM son como un router
y usualmente no interactúan con estas. El MOM de publicación y suscripción
actúa de manera ligeramente diferente. Es más orientado a eventos. Si un
cliente quiere participar por primera vez, se une al bus de información.
Dependiendo de su función, si es como publicador, suscriptor y ambas, este
registra un evento. El publicador envía una noticia de un evento al bus de
memoria. El servidor MOM envía un anuncio al subscriptor registrado cuando la
información es disponible.
Orientados a componentes
Un componente
es "programa que realiza una función específica, diseñada para operar e
interactuar fácilmente con otros componentes y aplicaciones". El
middleware en este caso en una configuración de componentes Los puntos fuertes
de este middleware es que es configurable y reconfigurable. La reconfiguración
se puede realizar en tiempo de ejecución, lo que ofrece una gran flexibilidad
para satisfacer las necesidades de un gran número de aplicaciones
Agentes
Los agentes son
un tipo de middleware que posee varios componentes: entidades, los medios de
comunicación y las leyes. Las entidades pueden ser objetos o procesos, los
medios pueden ser canales, tuberías, etc. Mientras que las leyes identifican la
naturaleza interactiva de los agentes, como son la sincronización o el tipo de
esquema. Las fortalezas de los middleware agentes son que pueden realizar una
gran cantidad de tareas en nombre del usuario y que pueden cubrir una amplia gama
de estrategias basadas en el entorno que les rodea. Sin embargo su
implementación es complicada debido a la complejidad y dificultades que se
necesita para entender las operaciones que manejan.
Categoría de
Aplicación
La
clasificación por aplicación incluye los middleware que son ajustados para
aplicaciones específicas.
DAM
Los middleware
para acceso a información (Data Access middleware DAM), tienen la
característica de poder interactuar con diversas fuentes de datos. En este tipo
de middleware se encuentran los que procesan transacciones, gateways de bases
de datos y sistemas distribuidos de transacción/procedimiento. Las fortalezas
que posee este tipo de middleware es la comunicación que tiene entre múltiples
fuentes de datos, la conversión del lenguaje de programación de la aplicación a
un lenguaje aceptado por la fuente de datos de destino y la capacidad de
respuesta en un formato y lenguaje aceptable para el solicitante.
Middleware de
escritorio
Los middleware
de escritorio pueden hacer variaciones en la presentación de la información
pedida por el usuario por aplicaciones de rastreo y asistencia, controlar
cualquier servicio de transporte y provee una copia de seguridad y otras
operaciones de fondo. Otras pueden ser mantención e graficas, ordenamientos,
directorios de servicios, manejo de información de la base de datos, manejo de
procesos, calendarización de trabajos, notificación de eventos de servicios,
manejo de instalación de software, servicios de cifrado y control de accesos.
Middleware basados en
la web
Este tipo de
middleware asiste al usuario con la navegación web, el uso de interface que le
permiten encontrar páginas de su interés y detectar cambios de interés del
usuario basado en su historial de búsquedas. Provee de un servicio de identificación
para un gran número de aplicaciones y comunicación interprocesos independiente
del sistema operativo, protocolo de red y plataforma de hardware. Los
middleware que se encuentran fuertemente unido a la red se llaman servidores de
aplicaciones, ya que mejorar el rendimiento, disponibilidad, escalabilidad,
seguridad, recuperación de información, y soportan la administración
colaborativa y su uso. Los middleware pueden contactar directamente a la
aplicación ganando mejor comunicación entre el servidor y el cliente. Otros
servicios importantes dados por este tipo de middleware son servicios de
directorios, emails, cadenas de suministros de gran tamaño, accesos remotos a
información, descargar archivos, accesos a programas y acceso aplicaciones
remotas.
Middleware a tiempo
real
La información
en tiempo real es caracterizada por que la información correcta de este
instante, puede no serlo en otro. Los middleware en tiempo real soportan las
peticiones sensibles al tiempo y políticas de planificación. Esto se realiza
con servicios que mejoran la eficiencia de las aplicaciones de usuario. Los
middleware en tiempo real se pueden dividir en diferentes aplicaciones
(aplicación de base de datos en tiempo real, sensor de procesamiento y
transmisión de información). La información que pasa a través de un middleware
en tiempo real se ha incrementado dramáticamente con la introducción de
Internet, redes inalámbricas, y las nuevas "aplicaciones basadas en la
difusión". Las fortalezas de este tipo de middleware son que proveen un
proceso de decisión que determinar el mejor criterio para resolver procesos
sensibles al tiempo y puedes ayudar a los sistemas operantes en la localización
de recursos cuando tienen tiempos límites de operación. Los multimedia
middleware es una rama mayor en los middleware en tiempo real, estos pueden
manejar una gran variedad de información. Estos tipos pueden ser textos,
imágenes de todo tipo (GPS, imágenes, etc.), procesadores de lenguajes
naturales, música y video. La información debe ser recopilada, integrada y
entonces enviada al usuario sensible del tiempo. Los dispositivos multimedia
pueden incluir una mezcla de dispositivos tanto físicos como lógicos, en el
caos de los físicos están los parlantes, cámaras, micrófonos, etc.
No hay comentarios:
Publicar un comentario