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 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.