Es 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, ahorrando tiempo a los programadores.
miércoles, 6 de mayo de 2015
Historia del middleware
Middleware es un
software que asiste a una aplicación para interactuar o comunicarse con otras
aplicaciones, o paquetes de programas, redes, hardware y/o sistemas operativos.
Éste simplifica el trabajo de los programadores en la compleja tarea de generar
las conexiones y sincronizaciones que son necesarias en los sistemas
distribuidos. De esta forma, se provee una solución que mejora la calidad de
servicio, así como la seguridad, el envío de mensajes, la actualización del
directorio de servicio.
El origen de la
palabra middleware se remonta al año 1968, en donde la palabra fue 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, pero 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.
Ejemplo del uso de Middleware:
Taxonomía del software middleware
La taxonomía o clasificación del software middleware puede ser descrita en dos grandes categorías: una de integración y otra de aplicación. Éstas poseen a su vez diferentes clases.
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 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 ésta es
procesada. Terminado el procesamiento, ocurre el proceso inverso. El client
stub chequea los errores, envía los resultados al software que inició la
petición y entonces suspenden el proceso. Las ventajas de estos middleware es
que usan un tipo estándar en nombres de servicios y procesos remotos, pueden
retornar respuesta aun con problemas en la red y 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 realizó 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:
- El objeto cliente 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 actúa como punto medio y contacta con diversas fuentes de información, obtiene sus referentes IDs, recolecta información y, en ocasiones, la reorganiza.
- El proxy remoto (también conocido como skeleton) desordena la información que le llega del agente y se la pasa al objeto servidor.
- El objeto servidor procesa la información y genera un resultado que es devuelto al cliente siguiendo los pasos inversos.
Las ventajas son que permiten generar reflexión y
escalabilidad, que opera con múltiples tipos de información y estados y que
soporta procesos múltiples. Las desventajas consisten en obtener la existencia
de vínculos antes de la ejecución y de un código contenedor para algunos
sistemas heredados.
Orientados a mensajes (MOM, Message-oriented
middleware):
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 está disponible.
Orientados a componentes:
Un componente es
un 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. Pueden ser objetos o procesos.
- Medios de comunicación. Pueden ser canales, tuberías, etc.
- Leyes. Identifican la naturaleza interactiva de los agentes. Pueden ser la sincronización o el tipo de esquema.
Las ventajas de los middleware agentes son que la
capacidad de éstos para realizar una gran cantidad de tareas en nombre del
usuario y para 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 dadas por 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.
Middleware para acceso a la información (DAM, Data
Access middleware):
Los middleware
para acceso a información 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. Sus ventajas residen en la comunicación que tienen
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 proveer una copia de seguridad y otras
operaciones de fondo. Otras pueden ser manutención y gráficas, 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 interfaces 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 entre
procesos independiente del sistema operativo, protocolo de red y plataforma de
hardware. Los middleware que se encuentran fuertemente unidos a la red se
llaman servidores de aplicaciones, ya que mejoraran 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, descarga de archivos, accesos a
programas y acceso a aplicaciones remotas.
Middleware a tiempo real:
La información
en tiempo real es caracterizada porque la información correcta en un 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.
- 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 ventajas de este tipo de
middleware son que proveen un proceso de decisión que determina el mejor
criterio para resolver procesos sensibles al tiempo, y la posibilidad de ayudar
a los sistemas operantes en la localización de recursos cuando tienen tiempos
límites de operación. Los middleware multimedia son una rama mayor en los
middleware en tiempo real. Éstos 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 (parlantes, cámaras, micrófono) como lógicos.
Middleware específico:
En muchos casos
los middleware proveen una tarea muy específica que no se puede ajustar a las categorías
anteriores. Un ejemplo serían middlewares médicos.
Evolución del middleware
La evolución tecnológica ha tenido lugar en la era
de la industrialización de las TIC, de la utilización del concepto de economía
de escala en los entornos informáticos y de las estrategias de externalización
de servicios. La evolución de sistemas distribuidos de tipo clúster o
peer-to-peer (P2P) hacia sistemas que seguían el paradigma Grid, respondia en
gran medida a un interés de las grandes compañías del sector económico como Google,
IBM, Microsoft, o Amazon por explorar las posibilidades del modelo Utility
Computing.
Es decir, de proporcionar a usuarios individuales,
empresas, corporaciones o administraciones públicas, recursos hardware y
software con el modelo de cualquier otro proveedor de suministros. De esta
forma los clientes podrían acceder a estos recursos de manera remota, y
realizar tareas complejas y pesadas con plataformas sencillas y/o móviles con
muy pocas herramientas y aplicaciones instaladas localmente.
El modelo basado en Grid no prospero en un
principio con este objetivo, aunque si se extendieron los grids de datos y de
computo en entornos académicos y científicos. La posibilidad de compartir
recursos heterogéneos a través de redes de comunicación de área extensa y de
formar organizaciones virtuales con objetivos y fines comunes que además fueran
fácilmente escalables fue muy bien recibida en este tipo de contextos, a pesar
de que las grandes empresas encontraron limitaciones en el modelo para
explotarlo en su propio beneficio.
Sin
embargo, unos pocos años después nos encontramos con que las nuevas necesidades
en relación con la infraestructura hardware y software de una organización en entornos globales, dinámicos y
competitivos como los actuales han vuelto a impulsar la idea del utility
computing entre las grandes empresas del sector. Y en esta ocasión, la
coincidencia en el tiempo de las plataformas grids, de los servicios web y de
las tecnologías de virtualización sí que ha permitido que surja un paradigma
que resuelva el problema, el denominado cloud computing.
Suscribirse a:
Entradas (Atom)