sábado, 7 de enero de 2012

El Middleware


Texto basado en el documento:
Oracle Fusion Middleware
Concepts Guide
11g Release 1 (11.1.1)
E10103-03
http://docs.oracle.com/cd/E15523_01/core.1111/e10103.pdf

El Middleware.

1.1 ¿Qué es un Middleware?

El middleware es la infraestuctura que facilita la creación  de aplicaciones de negocio.
Proporciona una serie de servicios básicos como:
Concurrencia, transacciones, subprocesos, mensajería asíncrona y la implementación, Software Communications Architecture (SCA) sobre la cual se despliega una solución SOA.
Incluye tambien el tema de seguridad y habilita la "alta disponibilidad".

El Middleware incluye:
Casi toda la comunicación está basada en XML:
y

En el tema de autenticación y autorización de usuarios se recurre a:
  • Lightweight Directory Access Protocol (LDAP) o
  • Algún otro  servicio de directorio de usuarios.
La figura 1. muestra la arquitectura de un Middleware.



Figura 1. Middleware. Arquitectura.
Actualmente las empresas crecen reutilizando aplicaciones ya existentes (conocidos como sistemas legado), en muchas ocasiones estas aplicaciones legado tiene interfaces (a este nivel entenderemos como interfaces la manera que ofrece cada aplicación para interactuar -de manera externa- con ella) imposibles de modificar.
En algunos casos el costo de volver a escribir o adaptar estas interfaces es prohibitivo.

Adicionalmente  los sistemas resultantes pueden ser utilizados en una amplio rango  de dispositivos, los cuales varían en ancho de banda de consumo, poder de procesamiento local,
resolución de pantalla, capacidad de colores, etc. Estos dispositivos van desde  computadoras personales, agendas digitales, smartphones, etc.

Esto hace que las aplicaciones tengan que diseñarse pensando que a futuro serán  accedidas por esta gama de dispositivos.

1.2 Funciones del Middleware.

Las aplicaciones (empresariales) utilizan software que se encuentra  en la cima del SO, ademas de una amplia gama de protocolos para realizar las siguientes tareas:
  • Ocultar la naturaleza distribuida de una aplicación.
  • Ocultar lo heterogéneo de los sistemas de la empresa.
  • Proporcionar una serie de interfaces de alto nivel de manera uniforme, para que puedan ser utilizadas por los desarrolladores e integradores de software. Así las aplicaciones pueden ser facilmente:  compuestas, reutilizadas, "portadas", e interactuar con otros sistemas.
  • Proporcionar una serie de servicios comunes para realizar tareas y funciones generales,
 Y evitar con esto retrabajo, ademas de facilitar la colaboración entre aplicaciones.

En resumen; El middleware
  1. Facilita el desarrollo de aplicaciones: proporcionando una interface común de desarrollo.
  2. Enmascara lo heterogéneo y la naturaleza distribuida de los sistemas legados de la empresa (esto incluye software y hardware)
  3. Oculta los detalles de bajo nivel de los sistemas existentes.

1.3. Diseño de arquitectura del Middleware.

La función del middleware es mediar la interacción entre fragmentos de una aplicación con otra, o entre aplicaciones completas.

Además de los aspectos arquitectónicos, los principales problemas de diseño de un middleware se refieren a diversos aspectos propios de los sistemas distribuidos.
Cualquier sistema middleware se basa principalmente en una capa de comunicación que permita  interoperar a sus diferentes piezas.

Además, la comunicación es una función proporcionada por el propio middleware para aplicaciones en las que las entidades en comunicación que puede asumir diferentes roles tales como:
El middleware permite además modos de interacción:
  • Invocaciones síncronas.
  • Envío de mensajes asíncronos.
  • Coordinación a través de objetos compartidos.
Involucrando en esto distintos tipos de patrones.

Por lo tanto, el diseño de un sistema middleware se enfrenta a varios retos:

1) Los sistemas middleware se basan en mecanismos de intervención y direccionamiento indirecto de mensajes,  dichos mecanismos inducen una reducción en el desempeño de las aplicaciones.
Volver estos mecanismos adaptables, sólo agrega rodeos al procesamiento de dichos de mensajes innecesarios y empeoran la situación.

2) Debido a  las aplicaciones están cada vez más interconectadas e interdependientes, el número de objetos, usuarios y dispositivos tiende a aumentar considerablemente.

Esto plantea  problemas de escalabilidad, comunicación; en los algoritmos de gestión de objetos, y aumenta la complejidad de la administración.
La disponibilidad, fiabilidad, concurrencia, seguridad y rendimiento de las aplicaciones también puede ser un problema.

3) La informática generalizada/distribuida  es la visión en un futuro próximo, La movilidad y la reconfiguración dinámica será dominante, lo que requiere la adaptación permanente de las aplicaciones.

4) La gestión de aplicaciones de gran tamaño que son heterogéneas, ampliamente distribuidos, y en permanente evolución plantea muchas preguntas, tales como:
  • El monitoreo constante,
  • La seguridad,
  • El balanceo entre la autonomía y la interdependencia de los diferentes subsistemas,
  • La definición e implementación de políticas de gestión de recursos.

1.4 SOA.

La arquitectura orientada a servicios (SOA por sus siglas en inglés) es un estilo arquitectónico, cuyo objetivo es lograr un bajo acoplamiento entre las diversas aplicaciones de software que interactuen entre sí, habilitando a una organización para  que tome ventajas de las aplicaciones y sistemas con los que cuenta.

SOA facilita el desarrollo de servicios del negocio modulares que pueden ser facilmente integrados y reusados, creando así una infraestructura flexible y adaptable.
Utilizando una aproximación SOA una organización puede enfocar más los recursos de su presupuesto en innovación y no en la puesta a punto de nuevos servicios de negocio.

Algunas de las ventajas de usar SOA son:
  • Reducción en los tiempos y costo de los desarrollos.
  • Menores los costos de mantenimiento.
  • Servicios de alta calidad.
  • Reducción en los costos de integración.
¿Cómo logra SOA reducir el acoplamiento entre la interacción de los agentes de software?
Lo hace mediante el empleo de dos restricciones de la arquitectura:

1) Se proporciona un conjunto compacto y generalizado  de interfaces para que pueda ser usado por los agentes.
Las interfaces están universalmente disponibles para todos los proveedores y los consumidores.

2) Se usan mensajes descriptivos limitados por un esquema extensible.
La más mínima actividad de un sistema esta definido por un mensaje. 
Dichos mensajes están limitados por un vocabulario definido. Un esquema extensible permite que las nuevas versiones de los servicios que se creen puedan existir sin romper los  servicios existentes.

1.5 Oracle Fusion Middleware Solution

Oracle proporciona una suite completa de productos llamada: Oracle Fusion Middleware, es (comercialmente hablando) la propuesta de middleware de Oracle para el mercado empresarial.

Oracle Fusion Middleware ofrece una solución para manejar  software aplicativo empresarial  complejo y distribuido.
Esto incluye:
Y demás herramientas que apoyen el desarrollo y liberación de aplicaciones empesariales.

Oracle Fusion Middleware es una colección de productos basados en estandares de software, que incluyen un rango de herramientas y servicios: desde un entorno totalmente compatible con las implementaciones JEE5 (Java Enterprise Edition), pasando por herramientas de desarrollo para integrar servicios, bussines intelligence, entornos de colaboración, y administradores de contenidos.

Oracle Fusion Middleware ofrece un soporte completo para desarrollar, desplegar y administrar aplicaciones  empresariales.



Figura 2. Resumen de tecnologías implicadas en la Oracle Fusion Middleware.
Listado de soluciones:
  • Administrador de contenido (Content Management)
  • Application Server
  • Integracion y Business Process Management (BPM)
A grandes rasgos, ahora ya sabes que es el middleware y, la solución ofrecida por Oracle.


Saludos!!
---
RuGI

No hay comentarios:

Publicar un comentario