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 elclient 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:
1.
El objeto cliente llama a un método lógico para
obtener un objeto remoto.
2.
Un ORB Proxy (también conocido como stub)
pone en orden la información y la transmite a través del agente (broker).
3.
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.
4.
El proxy remoto (también conocido como skeleton)
desordena la información que le llega del agente y se la pasa al objeto
servidor.
5.
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.
Middleware
especialistas
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.