lunes, 11 de mayo de 2015

APLICACIONES






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(por ejemplo)
  • 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.

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

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. En resumen, el middleware se ha convertido en un elemento crítico en una amplia gama de industrias, gracias a su capacidad de reunir los recursos a través de diferentes redes o plataformas de computación.



En 2004 los miembros de la Unión Europea de Radiodifusión (UER), han realizado un estudio de Middleware con respecto a la integración de sistemas en entornos de difusión. Se trataba de sistema de expertos en ingeniería de diseño de 10 principales cadenas europeas, se trabajó durante un período de 12 meses para entender el efecto de productos, principalmente de software, basado en técnicas de producción de medios de comunicación y el diseño del sistema de radiodifusión. Los informes resultantes 3300S Tecnología 3300 y Tech fueron publicados y están disponibles gratuitamente desde el sitio web de la UER.

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)

Bajo nivel:

Ofrece funcionalidades esenciales, generalmente relacionadas con cambios sobre el soporte básico TCP/UDP + IP:
·         Representación independiente de SSOO (marshalling)
·         Multicast sobre IP
·         Red virtual sobre la red IP subyacente.

 Alto nivel (invocación remota)

·         Centrada en el envío/recepción de datos
·         Remote Procedure Call (RPC)
·         Remote Method Invocation (RMI)

EVOLUCIÓN 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.

  1.      Arquitecturas en 2 capas
  2.          Arquitecturas en 3 capas
  3.          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).
  • 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.


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

Ejemplos representativos de este tipo de middleware son Java RMI, JavaBeans, DCOM, y CORBA. 

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.

HISTORIA DE MIDDLEWARE




    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. 

Los Middleware han aparecido de manera relativamente reciente en el mundo de la informática, hoy 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. 

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

Definiciones de middleware 



  •  Software de conectividad que consiste en un conjunto de servicios que permiten interactuar a múltiples procesos que se ejecutan en distintas máquinas a través de una red. Ocultan la heterogeneidad y proveen de un modelo de programación conveniente para los desarrolladores de aplicaciones.

  • La organización IETF (Internet Engineering Task Force) en mayo de 1997 lo definió como sigue: – “Un Middleware puede ser visto como un conjunto de servicios y funciones reutilizables, expandibles, que son comúnmente utilizadas por muchas aplicaciones para funcionar bien dentro de un ambiente interconectado”. 

  • Es un software que puede incrementar significativamente la reusabilidad mediante soluciones utilizables rápidamente y basadas en estándares aplicables a problemas y tareas comunes en programación. Permite concentrarse en asuntos propios de la aplicación y olvidarse de problemas comunes, estructurales o no, ya resueltos previamente de forma elegante y satisfactoria.

  • 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 orientada a servicios.

  • El middleware define: el API que usan los clientes para pedir un servicio a un servidor, la transmisión física de la petición vía red, y la devolución de resultados desde el servidor al cliente. Ejemplos de middleware estándar para dominios específicos incluyen: ODBC, para bases de datos, Lotus para groupware, HTTP y SSL para Internet y CORBA, DCOM y JAVA RMI para objetos distribuidos.