MIDDLEWARE
Middleware es un software de
computadora que conecta componentes de software o aplicaciones para que puedan
intercambiar datos entre éstas. Es utilizado a menudo para soportar
aplicaciones distribuidas.
Esto incluye:
- Servidores web
- Servidores de aplicaciones
- Sistemas de gestión de contenido y herramientas similares.
Middleware es especialmente
esencial para tecnologías como:
- XML
- SOAP
- Servicios web y arquitecturas orientadas a servicios.
Middleware es una
incorporación relativamente reciente en la computación, obtuvo popularidad en
los 80 como una solución al problema de cómo conectar nuevas aplicaciones con
viejos sistemas.
De todas maneras el término ha
sido usado desde 1968. También facilitaba el procesamiento distribuido, conexión
de múltiples aplicaciones para crear una aplicación más grande, generalmente
sobre una red.
HISTORIA DE MIDDLEWARE
No existe un registro
histórico sobre el nacimiento y desarrollo de middleware RFID, pero sí que se
conoce las causas que lo hicieron desarrollarse, como que los sistemas
informáticos existentes en el año 2.000, no eran capaces de procesar el
torrente de información que generaba un sistema RFID, sistemas capaces de leer
más de 300 eventos por segundo. Si la ventaja del RFID era poder tomar
decisiones on Edge, los sistemas informáticos existentes no eran capaces de dar
respuesta eficiente a 300 lecturas en 1-2 segundos.
Empresas como Oracle,
Microsoft, SAP, IBM e Intel se dieron cuenta de la problemática y cada uno de
ellos, dentro de su propio campo de actuación, fueron preparando las
plataformas para que los desarrolladores en Middleware RFID pudieran crearlos y
hacerlos comercialmente viables.
TAXONOMÍA DE LOS 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 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.
EVOLUCION MIDDLEWARE
La arquitectura de los sistemas ha evolucionado con el
tiempo. Acompaña los cambios tecnológicos y de paradigmas. Algunos tipos de arquitectura:
- Centralizadas (Monolíticas).
- Cliente/Servidor (2 niveles).
- En múltiples capas (3 o más niveles).
- Orientadas a servicios (Altamente desacopladas).
Modelo centralizado
También conocidas como
“Mainframe architectures”. Toda la “inteligencia”, procesamiento de negocio,
interfaces y persistencia, se realiza en un host central. Los usuarios
interactúan a través de terminales tontas.
Capturan el teclado, envían la
información al host, este procesa y se retorna la pantalla a la terminal.
La interacción puede
realizarse tanto en terminales unix, dos/windows u otras.
Fueron (y lo son todavía) muy
exitosas en ámbitos donde se realizan procesamientos intensos de datos, Por
ejemplo, entidades bancarias, procesamiento de tarjetas de crédito, etc. Es
común encontrar hoy día mainframes en perfecto funcionamiento. Sus
programadores se cotizan en el mercado (escasean).
- Posee limitantes.
- No soporta fácilmente el uso de interfaces gráficas.
- Se dificulta el acceso a repositorios de datos (DBMS) distribuidos.
- Hoy día existe un resurgimiento de las arquitecturas tipo mainframe.
- Como soporte para servidores en arquitecturas cliente servidor distribuidas.
Modelo Cliente/Servidor
- Como una evolución de las anteriores, surge este modelo.
- El servidor de archivos es reemplazado por una base de datos (relacional).
- Se tienen dos partes claramente diferenciadas, el cliente y el servidor.
- El cliente emite consultas, las cuales son respondidas por un servidor.
- En este caso, se recibe solo la respuesta, en vez de un archivo compartido.
- El procesamiento es dividido entre el cliente y el servidor, balanceando la carga entre ambos.
- Existen modelos basados en cliente servidor que extienden la idea.
- Arquitecturas en 2 capas
- Arquitecturas en 3 capas
- Arquitecturas en 3 capas
- Monitores transaccionales
- Servidores de mensajes
- Servidores de aplicación
Arquitectura en 2 capas
- La presentación y la lógica de negocio se encuentran en la maquina cliente.
- Los datos y el acceso a los mismos, se resuelve en el servidor.
- El servidor suele ser mucho más poderoso que las maquinas cliente.
- Este tipo de arquitecturas es buena cuando el volumen de los usuarios es alto.
- Ahora la lógica de negocio puede colocarse también dentro de la base de datos (nuevas herramientas).
Arquitectura en 3 capas
También conocidas como arquitecturas multicapa (no están
limitadas a 3),una capa intermedia se añade entre el ambiente del cliente
y el servidor de base de datos,esta capa puede implementarse de múltiples formas:
- Servidores de aplicación.
- Monitores transaccionales.
- Sistemas de mensajería.
Esta capa intermedia puede:
- Facilitar encolado de peticiones.
- Ejecutar aplicaciones y lógica de negocio (en forma de programas).
- Cachear información desde la base de datos.
- Definir planificación y prorización del trabajo realizado.
PROTOCOLOS DEL MIDDLEWARE
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.
Un protocolo permite que
componentes heterogéneos de sistemas distribuidos puedan desarrollarse
independientemente, y por medio de módulos de software que componen el
protocolo, haya una comunicación transparente entre ambos componentes. Es
conveniente mencionar que estos componentes del protocolo deben estar tanto en
el receptor como en el emisor.
Los protocolos de recursos y
conectividad manejan todas las transacciones de red específicas para grid que
se desarrollan entre los computadores y los recursos de grid. Por ejemplo, los
computadores contribuyendo en una grid específica deben reconocer los mensajes
de grid relevantes e ignorar el resto.
Ejemplos de protocolos:
- IP: Protocolo de Internet.- Protocolo de la capa de Red, que permite definir la unidad básica de transferencia de datos y se encarga del direccionamiento de la información, para que llegue a su destino en la red.
- TCP: Protocolo de Control de Transmisión.- Protocolo de la capa de Transporte, que permite dividir y ordenar la información a transportar en paquetes de menor tamaño para su transporte y recepción.
- HTTP: Protocolo de Transferencia de Hipertexto.- Protocolo de la capa de aplicación, que permite el servicio de transferencia de páginas de hipertexto entre el cliente WEB y los servidores.
- SMTP: Protocolo de Transferencia de Correo Simple.- Protocolo de la capa de aplicación, que permite el envío de correo electrónico por la red.
- POP3: Protocolo de Oficina de Correo.- Protocolo de la capa de aplicación, que permite la gestión de correos en Internet, es decir, le permite a una estación de trabajo recuperar los correos que están almacenados en el servidor.
APLICACIONES
Los servicios de middleware
proporcionan un conjunto más funcional de la APIs para permitir una aplicación
a:
- Localizar claramente a través de la red, proporcionando así una interacción con otro servicio o aplicación.
- Los datos filtrados para que sean utilizables en un ambiente público a través de proceso de anonimización para la protección de la privacidad.
- Ser independiente del servicio de red
- Ser fiable y siempre disponible
- Añadir los atributos complementarios como semántica en comparación con el sistema operativo y servicios de red.
Las empresas frecuentemente
utilizan las aplicaciones de middleware para vincular la información de bases
de datos de sus departamentos, tales como nóminas, ventas y contabilidad, o
bases de datos alojadas en múltiples localizaciones geográficas. En el mercado
de la salud que es altamente competitivo, los laboratorios hacen un amplio uso
de aplicaciones de middleware para minería de datos y sistema informático del
laboratorio (LIS), y para combinar los sistemas de información durante fusiones
de hospitales. Los Middleware ayudan a reducir la brecha entre LISs separados
en una red de salud recién formado a raíz de una compra del hospital.
Los middleware pueden ayudar a
los desarrolladores de software a no tener que escribir APIs para todos los
programas de control, que actúa como una interfaz de programación independiente
para sus aplicaciones. Para la Internet del Futuro, el funcionamiento de la red
a través del monitoreo de tráfico en escenarios multi-dominio, utilizando
herramientas de mediación (middleware) es una poderosa ayuda, ya que permiten
operadores, investigadores y proveedores de servicios para supervisar Calidad
de servicio y analizar los eventuales fracasos en servicio de telecomunicaciones.
Por último, el comercio
electrónico utiliza middleware para ayudar en el manejo de transacciones
rápidas y seguras a través de muchos tipos diferentes de entornos informáticos.
Suscribirse a:
Entradas (Atom)