MIDDLEWARE
MIDDLEWARE

Actualmente el uso de Internet como herramienta básica de
comunicación es fundamental en muchos sectores industriales y profesionales.
Desarrollar software moderno para Internet requiere afrontar nuevos requisitos,
como por ejemplo: escalabilidad, el número de nodos y dispositivos gestionados
por el sistema no debe establecer un límite para las aplicaciones;
adaptabilidad, la aplicación debe soportar simultáneamente una amplia gama de dispositivos
con recursos y funciones heterogéneos; flexibilidad, la aplicación debe
permitir cambios en las condiciones de entorno, y dinamicidad, los nuevos
dispositivos pueden estar disponibles durante breves periodos de tiempo.
HISTORIA DE MIDDLEWARE
HISTORIA DE MIDDLEWARE
en día tecnologías móviles
(celulares) están aplicando esta tecnología para el soporte de llamadas VOIP.
En el pasado ganaron popularidad en la década de los 80, ya que eran la
solución de cómo integrar las nuevas aplicaciones con los sistemas heredados
(legacy systems), en todo caso, el termino ha sido usado desde 1968. También
facilitaba la computación distribuida, mediante conexión de múltiples
aplicaciones para crear una mucha mayor, sobre una red.
Un sistema distribuido es un sistema informático compuesto
por computadoras autónomas (nodos) que se comunican mediante una red de
comunicación. La principal diferencia entre un sistema distribuido y un sistema
en red es la transparencia: en el sistema distribuido hay capas de software que
permiten a las aplicaciones ejecutarse como si el sistema fuese parte de una
única entidad de computación, mientras que en el sistema en red la aplicación
es consciente de los nodos y debe realizar su gestión.
Los sistemas distribuidos son cada vez más populares e
importantes en el campo de la computación
Actualmente la programación de este tipo de aplicaciones es
independiente del lenguaje de
programación y se realiza mediante componentes. El componente distribuido es un elemento de desarrollo del software distribuido que se programa de forma independiente del resto de la aplicación, facilitando así el análisis y desarrollo progresivo de partes específicas de la aplicación. Esto tiene como ventaja adicional la reducción del coste de las nuevas aplicaciones distribuidas mediante la reutilización de dichos componentes.
TAXONOMÍA
DE LOS SOFTWARE MIDDLEWARE
Middleware orientado a mensajes
Los mensajes pueden ser utilizados para solicitar la
ejecución de servicio remoto, para notificación distribuida de eventos, o para
implementar sistemas basados en publicación-suscripción.
Generalmente el middleware orientado a mensajes sólo
proporciona de forma eficiente servicios asíncronos y colas de mensajes (no
ofrece soporte para la comunicación síncrona). Este bajo nivel de abstracción
suele completarse con capas adicionales que incorporen mecanismos de detección
de fallos, gestión de prioridad de mensajes, desacople entre cliente y servidor
(para facilitar la escalabilidad del software), y soporte básico de radiado de
mensajes (multicast y broadcast).
Middleware basado en RPC
Este tipo de middleware proporciona gestión eficiente de
llamadas remotas a procedimiento (Remote Procedure Call --RPC).
La principal ventaja de la RPC es que permite definir la
interfaz de comunicación con los componentes mediante un lenguaje de definición
de interfaz (Interface Definition Language--IDL).
A partir de esta definición existen herramientas automáticas
de generación de código que generan el código necesario para realizar el
empaquetado/desempaquetado de los mensajes y gestionar la comunicación a través
de la red. Además, la RPC tiene implementaciones (bindings) para múltiples
sistemas operativos y lenguajes de programación, aspecto que le convierten en
una solución interesante para la programación de sistemas distribuidos
multiplataforma.
Desde la perspectiva de los desarrolladores, la RPC además
facilita la reutilización de código, ya que se utiliza de forma semejante a una
llamada a procedimiento local.
Middleware orientado a transacciones
Este tipo de middleware facilita el desarrollo de sistemas
que requieren transacciones distribuidas.
La transacción asegura que un conjunto de operaciones se
realicen en todos los nodos del sistema o en ninguno. Generalmente se utilizan
en aplicaciones que requieren consistencia de estado entre componentes
distribuidos.
El principal inconveniente de este tipo de middleware es su
eficiencia; la complejidad inherente a las transacciones distribuidas requiere
un alto coste de ejecución. Por esta razón, este tipo de middleware sólo suele
utilizarse cuando es realmente imprescindible para la aplicación.
Middleware orientado a objetos
lenguajes de programación orientados a
objetos. Estas extensiones incluyen soporte para herencia, referencias a
objetos y soporte de excepciones.
El middleware orientado a objetos comparte muchas de las
ventajas atribuidas al middleware basado en RPC. De nuevo, el empaquetado y
desempaquetado son generados automáticamente por los suplentes del cliente y
del servidor, liberando al programador de esta tarea propensa al error.
Middleware basado en grupos
El simple intercambio de mensajes entre un emisor y un
receptor, no es siempre un buen modelo de comunicación para un sistema
distribuido. En muchas situaciones es más útil disponer de primitivas que
permitan enviar datos desde un emisor a un grupo de procesos. Este tipo de
comunicación es habitual en sistemas con requisitos de tolerancia a fallos,
disponibilidad de servicio o reparto de carga. En estos casos, suele ser más
sencillo diseñar la aplicación utilizando radiado de mensajes (multicast).
A continuación se describen brevemente las características
de algunos middleware basados en grupos:
Transis: es un middleware con soporte de comunicación con
grupo que proporciona comunicación con multicast fiable, y servicios que ayudan
en la diseminación y replicación de la información.
Horus: es un middleware para el desarrollo y la
experimentación de protocolos. Proporciona una implementación de alto
rendimiento del modelo de sincronía virtual. Considera a los protocolos tipos
abstractos de datos para proporcionar diferentes calidades de servicio. Este
apilamiento se lleva a cabo en tiempo de ejecución, y se fuerza usando una
interfaz uniforme y claramente definida, llamada Horus Common Protocol
Interface (HCPI).
Ensemble: No es sólo un conjunto de herramientas, sino una
arquitectura completa, y un conjunto de protocolos. Entre los objetivos
principales que guían el diseño de Ensemble, los siguientes son especialmente
destacables: 1) Abstraer la implementación de los niveles de protocolo lo más
posible del sistema de ejecución. 2) Soportar la aplicación de métodos formales
a implementaciones reales de protocolos de comunicación distribuida. 3)
Proporcionar una plataforma flexible para facilitar la experimentación.
Isis: diseñado como un conjunto de herramientas, fue uno de
los primeros sistemas que proporcionaron primitivas de comunicación que
garantizasen entrega causal y totalmente ordenada. Se diseñó como un conjunto
de herramientas para simplificar la construcción de sistemas distribuidos
tolerantes a fallos, y está basada en los conceptos de grupo de procesos y
sincronía virtual.
EVOLUCION MIDDLEWARE
Modelo centralizado:
• Toda la
“inteligencia”, procesamiento de negocio, interfaces y persistencia, se realiza
en un host central.
• También
conocidas como “Mainframe architectures”
• 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).
Modelo centralizado
• 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).
Modelo centralizado
• Empresas
como IBM utilizan sus productos tipo mainframe para soportar servidores J2EE.
• El caso
de la línea y Series es un ejemplo de ello.
• El
mainframe ejecuta un sistema operativo particular el cual ejecuta Websphere
(Application Server).
• Las
aplicaciones acceden a este como si entraran a un servidor tradicional.
• Hoy día
existe un resurgimiento de las arquitecturas tipo mainframe.
Modelo de intercambio de archivos
• Conocidas
también como “file sharing architectures”.
• Tiene su
punto de partida con la popularización de las redes de área local.
• En esta,
el servidor (o el PC) descarga en su espacio local archivos que se encuentran
en el servidor.
• El
procesamiento solicitado por el cliente, es realizado en el espacio de
procesamiento del mismo.
• Funcionan
cuando el volumen compartido es bajo, la contención por actualizaciones es baja
y el volumen transferido es también bajo
• Un ejemplo
de esto, es un sistema desarrollado en Visual Basic con Access
• Los
clientes acceden a través de los programas (almacenado en el servidor en un
disco compartido) a una base de datos/archivos indexados compartida
• 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 con
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).
Lenguajes de programación en el DBMS (Java, C).
• Procedimientos
almacenados.
• Triggers.
• Todos
estos enfoques limitan la portabilidad del sistema construido.
• Sin
embargo aumentan la eficiencia de los mismos, ya que el procesamiento:
• Se hace
más cerca de los datos.
• Se hace
en un entorno más poderoso (servidor).
• 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.
PROTOCOLOS MIDDLEWARE
Protocolos de nivel de transporte de Internet Ambos permiten
un paso de mensajes básico.
UDP: con fallos por omisión.
TCP: garantiza la entrega en condiciones normales, pero al
coste de una bajada en el rendimiento
Generalmente, usamos TCP sobre IP, o TCP/IP Aunque TCP/UDP abstraen del nivel de red, no
abstraen perfectamente de los niveles de hardware y ssoo Distinto almacenamiento de números (little
endian/big endian) Distinta codificación
de caracteres (ASCII/Unicode).
Hay tres paradigmas de invocación remota Protocolos de petición-respuesta, un modo relativamente a
bajo nivel para ejecutar una operación remota.
Sienta las bases para RPC y RMI Remote procedure call (RPC) es el primer modelo (y el más
conocido) para facilitar las llamadas a servidores remotos
Remote method invocation (RMI) extensión de RP para la
llamada a métodos de objetos en nodos remotos.
Se basa en tres primitivas de comunicación
doOperation(s,args): invoca una operación remota en
los argumentos
indicados en args (parámetros y tipo de operación) getRequest: espera/adquiere
una petición en el servidor sendReply(r,c):
manda el mensaje de respuesta r al cliente c.
WAP son las siglas de Wireless Application Protocol. Define
un entorno de aplicación y una pila de protocolos para aplicaciones y servicios
accesibles a través de terminales móviles. Consiste en un conjunto de
especificaciones, definidas tanto por la Open Mobile Alliance como por el WAP
Forum, que permiten a los desarrolladores diseñar aplicaciones de interconexión
para terminales móviles, teléfonos generalmente.
La versión 1 de WAP aparece en 1999. El lenguaje de
presentación de contenidos o lenguaje de marcas, es el WML, o Wireless Markup
Language. En el capítulo siguiente se hablará en profundidad sobre los
lenguajes de marcas.
La pila de protocolos de WAP 1 se compone de:
WAE (Wireless Application Environment). Es la base para el
desarrollo de aplicaciones de propósito general, se combinan tecnologías
similares a las usadas en el WWW y tecnologías relacionadas con telefonía
móvil.
WSP (Wireless Session Protocol). Permite definir sesiones.
Ofrece dos tipos de servicios, orientados a conexión y no orientados a
conexión.
WTP (Wireless Transaction Protocol). Garantiza la entrega de
los mensajes.
WTLS (Wireless Transport Layer Security). Proporciona
integridad de datos, privacidad y autenticación en la comunicación de dos
aplicaciones.
WDP (Wireless Datagram Protocol). Corresponde a la capa de
transporte. Su funcionalidad es equivalente al protocolo UDP de Internet y,
como él, no garantiza la entrega de los mensajes. Se apoya en los servicios de
la "portadora" WAP, que depende de la red móvil que esté usando el
terminal.
APLICACIONES
Middleware ofrece algunas ventajas únicas tecnológicas para
los negocios y la industria. Por ejemplo
, los sistemas tradicionales de bases
de datos suelen ser desplegados en entornos cerrados, donde los usuarios
acceden al sistema sólo a través de una red restringida o intranet (por
ejemplo, red interna de una empresa).
APLICACIONES
En un Sistema Distribuido, el middleware (lógica de la
mediación) es un software de conectividad que permite ofrecer un conjunto de
servicios que hacen posible el funcionamiento de aplicaciones distribuidas
sobre plataformas heterogéneas, el middleware 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).
Los servicios de middleware proporcionan un conjunto más
funcional de la API's 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 anonymization process para la protección de la privacidad.

Con el crecimiento de la World Wide Web, los usuarios pueden
acceder a prácticamente cualquier base de datos para las que tengan derechos de
acceso adecuados desde cualquier parte del mundo. Middleware aborda el problema
de diferentes niveles de interoperabilidad entre las estructuras de base de
datos diferente. Middleware facilita el acceso a la herencia de un sistema de
gestión de bases de datos (DBMS) o aplicaciones a través de un servidor web,
sin tener en cuenta las características específicas de base de datos.
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 desarrolladores de redes inalámbricas pueden utilizar
middleware para afrontar los retos asociados a los de sensores inalámbricos de
red (WSN), o tecnologías WSN. La implementación de una aplicación de middleware
permite WSN [Los analistas Middleware] desarrolladores]. Para integrar los
sistemas operativos y hardware con la amplia variedad de aplicaciones
diferentes que están disponibles actualmente.
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.
0 Response to "MIDDLEWARE"
Publicar un comentario