viernes, 8 de mayo de 2015

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

 


3.2.5.1. Categoría de Aplicación


     La clasificación por aplicación incluye los middleware que son ajustados para aplicaciones específicas
 
3.2.5.1.1.      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.

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

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

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

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

3.2.4. Protocolos middleware



            3.2.4.1. Definición de protocolo

     Es un conjunto bien conocido de reglas y formatos que se utilizan para la comunicación entre procesos que realizan una determinada tarea. Se requieren dos partes:

     Especificación de la secuencia de mensajes que se han de intercambiar.
     Especificación del formato de los datos en los mensajes.
     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.

3.2.4.2. Ejemplos de protocolos usados en los sistemas distribuidos
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.

3.2.3. Evolución middleware



    Esquema 1.3 Representación de la evolución de middleware.



     Dependiendo del problema a resolver y de las funciones necesarias, serán útiles diferentes tipo de servicios de Middleware. Entonces, clasificar los Middlewares puede ayudar a identificar sus usos y características especiales.

3.2.3.1 Para bases de datos

     Este Middleware es el más desarrollado actualmente. En este caso, una Base de Datos distribuida ofrece la abstracción tanto de registros como de transacciones. Es decir, este tipo de Middleware permite tanto el manejo de la conectividad, y la capacidad de leer y escribir a Bases de Datos existentes. Son indispensables debido a la facilidad que otorga para acceder a Bases de Datos en múltiples plataformas aunque no tienen la funcionalidad de otros Middlewares. Algunos ejemplos son: IBM-DRDA, ORACLE-SQL*Net, INFORMIX-I_Star y CA-CA-OpenIngres. Otras organizaciones a través de ODBC y JDBC han permitido acceso a distintas Bases de Datos, inclusive a través de Internet.

3.2.3.2. Remote rrocedure calls (RPC)

     Este Middleware provee conectividad de una aplicación hacia otra. Es decir, permite que un software o un componente en una máquina pueda requerir la ejecución de un otro en otra máquina. DCE de la OSF es la implementación más usada de RPC debido a su capacidad multi-hilo y valores agregados como Directory Services, Distributed File Systems y Distributed Time Services, que son elementos facilitadores de aplicaciones en redes globales. Estos Middlewares evitan la complejidad de tareas en un entorno de red y su fortaleza reside en su capacidad para pasar grandes volúmenes de datos a través de una red. Este tipo es multiplataforma y especialmente apto para application data intensive que requieren un tiempo de respuesta inmediato y control entre procesos.

Sus desventajas:

a   *  Incapacidad de de establecer conectividad punto a punto.
b  * Su naturaleza sincrónica obliga a ambos componentes, cliente y servidor, a estar disponibles al momento de la llamada. Existen algunas implementaciones que permiten convertir el RPC de sincrónico en asincrónico.

     Esquema 1.4 Secuencia de primitivas para la utilización de sockets que el servidor tiene que usar.


3.2.3.3. Object request broker (ORB)
     Estos Middlewares soportan la conexión entre aplicaciones Orientadas a Objetos. Junto a la amplia aceptación de la tecnología JAVA y las Orientadas a Objetos, y el crecimiento de Internet, llevan a estos Middlewares a la estrategia central de los Sistemas de Información. Las interfases ORB son definidas mediante un lenguaje de definición de Interfases (IDL). Además, los servicios de objetos proveen un grupo de servicios importantes como ser seguridad y ubicación. Los ORB están altamente estandarizados CORBA (OMG) y OLE (DCOM, Microsoft). Algunos ejemplos son: ORBIX (IONA) y Visibroker (Visigenic).


3.2.3.4. Monitores de procesamiento de transacciones distribuidas (DTPM)

     Los primeros Procesadores de Transacciones de Mainframe (CICS) brindaban una interfase, la cual permitía a los desarrolladores abstraerse de características físicas inherentes al teleprocesamiento. Por otra parte, incluían facilidades de ejecuci{on de hilos, seguridad y transaccionalidad. La diferencia entre éstos y los existentes actualmente es que estos Middlewares pueden realizar una transacción entre múltiples plataformas distribuidas.

     Los DTPM soportan aplicaciones OLTP usando diversidad de plataformas y Bases de Datos. Poseen, además, mecanismos de colas y ejecución de hilos que permiten el eficiente procesamiento de gran volumen de transacciones. Algunos ejemplos Tuxedo (BEA), TX (IBM), ENCINA (Transarc), entre otros.

      Esquema 1.5 Demostración de un TP Monitors

3.2.3.5. Orientados a mensajes (MOM)

     El Messaging es el mecanismo que permite que dos aplicaciones cambien datos simplemente enviando mensajes. Se emplea un protocolo punto a punto que permite el envío asincrónico de mensajes. El Messaging es más apropiado para las aplicaciones que son conducidas por eventos y no requieren respuesta inmediata. En conclusión, este Middleware permite colocar datos en una cola de mensajes que pueden ser accedida a lo largo de la red.

     La mayoría de los productos MOMs ofrecen colas con persistencia, replicación, o performance en tiempo real. Algunos ejemplos son IBM-MQ y Microsoft-MSMQ. La fortaleza reside en su garantía de despacho, balanceo de carga, eficiencia y soporte de plataformas.

3.2.3.6. La web

     Hoy en día, la Web puede ser considerada como la culminación de los Middlewares debido a las prestaciones que ofrece como la apertura, escalabilidad, integridad y transparencia. Pero además, la Web ha agregado nuevas capas de complejidad como ser lenguajes de programación, APIs, protocolos, estándares, entre otros que han incrementado el rol de los Middlewares.



     Por último, entre tendencias actuales relacionadas con los Middlewares, podemos observar distintos ámbitos:

3.2.3.7. Infraestructura inteligente integrada

     Es una práctica que consiste en planificar y diseñar una infraestructura de Middleware que permita a una organización adaptarse a los cambios y asegurar que la información logre llegar a donde sea necesaria en tiempo y forma.

3.2.3.8. Brokers de Integración (integración brokers)

     Consiste es el máximo responsable de conciliar, ajustar y convenir las diferencias entre los sistemas participantes. Algunos ejemplos son: IBM Component Broker, Tibco, Microsoft BizTalk, entre otros.

3.2.3.9. BPM (business process managers - workflows)

     Esta tecnología permite describir, formalizar y desplegar un proceso de negocio, que contiene varios pasos, diseñado para colectar y dispersar información, ejecución de procesos secuencialmente y disparar nuevos procesos en base a eventos. Estas herramientas son muy útiles debido a su agilidad e inteligencia.

3.2.3.10. Middleware de comunicaciones/transporte

     Es la parte fundamental de la infraestructura de un Middleware. Algunos ejemplos son: IBM-MQ, SOAP, Tibco, entre otros.

3.2.3.11. Adapter technologies

     Esta tecnología son censores que fueron preparados para recibir distintos “formatos de información”. Frecuentemente, los podemos encontrar dentro de los brokers de integración. 

3.2.3.12. Integración de servidores web

     Esta tipo de integración es limitada en sus funciones pero permiten encontrar aplicaciones externas, dar formato a la información en forma estándar e iniciar intercambio de información, independientemente de la tecnología que se halle en el otro extremo. 

3.2.3.13. Servidores de aplicación

     A pesar de que no son una tecnología de integración por sí mismas, son una parte importante como contenedores de lógica.

3.2.2. Taxonomía de software middleware




     Esquema 1.2 Taxonomía de 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.


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

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.
 




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