You are on page 1of 31

  

Sistemas Distribuídos Middleware Tipos de Middleware


 

Principales Middlewares
Caso de Estúdio

Conclusiones

Los Sistemas Distribuídos son...
◦ Vantajas
        Disponibilidad Escalabilidad Tolerancia a fallas Costo Mayor fuente de fallas Complejidad Heterogeneidad Seguridad

◦ Desvantajas

ICE. servidores de aplicaciones.. Ejemplos: Ruby on Rails. . hardware y lenguajes de programación.Capa de software que proporciona un nivel de abstracción ocultando diferencias en sistemas operativos. CORBA. Bases de datos. etc. Ejemplos:          Servidor web. También hablamos de \frameworks": componentes software que simplifican tareas típicas (en nuestro caso relativas a sistemas distribuidos). .. Gestores de colas. redes. etc. Normalmente asociados a un lenguaje de programación.NET. JaxWS. Django. Coordinadores de transacciones.

Da soporte al desarrollo de aplicaciones distribuidas: ◦ Abstracción: Haciendo de interfaz entre las tareas/procesos y el hardware o sistema operativo. ◦ No depende del hardware y sistema operativo subyacente. ◦ Sistema abierto independiente del fabricante. ◦ DCE (Open Group). ◦ Servicios: Proporciona servicios y funcionalidades para el desarrollo de aplicaciones. Ejemplos: ◦ Capa de software que ejecuta sobre el sistema operativo local ofreciendo unos servicios distribuidos estandarizados. . ◦ CORBA (OMG).

Esquema Gráfico Middleware SO Hardware SO Hardware SO Hardware .

g. disco). MPI. ◦ Migración de procesos/checkpointing.. ◦ Administración del sistema.Niveles de Middleware  Nivel de implementación:  Nivel de programación: ◦ Acceso a E/S compartida (e. …) ◦ Lenguajes y bibliotecas específicos (HPF. OpenMP) ◦ Servicios:  Sistemas de ficheros de cluster  Memoria compartida distribuida (DSM)  Nivel de gestión: ◦ Gestión de trabajos. ◦ Espacio unificado (procesos. usuarios. .

Requisitos de un Middleware  Permitir Comunicación ◦ Uso de protocolos de comunicación .

Requisitos de un Middleware  Confianza en la execución de peticiones ◦ Mejor esfuerzo  Sín garantías ◦ Por lo menos una  Potencialmente más de una ◦ No más de una  Solo una vez .

Requisitos de un Middleware  Permitir Escalabilidad ◦ Medir la Capacidad de adaptación ◦ Replicación de componentes como solución  Transparencia en el acesso  Transparencia en la localización  Transparencia de migración  Transparencia de replicación .

Requisitos de un Middleware  Manejo de la Heterogeneidad ◦ No restringe a un solo sistema de tecnología ◦ Permite a los componentes heredados a ser integrados con los nuevos componentes. .

 Servicios del Middleware ◦ Ciclo de vida  Gestión del ciclo de vida de los objetos ◦ Servicio de nombres  Permite hacer referencia a los objetos por su nombre ◦ Relación  Dinámicamente crea asociaciones entre objetos ◦ Transacción  Realiza la gestión de transacciones .

 Servicios de Middleware ◦ Negócio  Permite servicios de localización ◦ Seguridad  Oferece funciones de seguridad ◦ Tiempo  Sincronización de los relojes de servicio ◦ Evento  Registra componente de interés para los eventos .

 Middleware Transaccional ◦ Soporte para transacciones síncronas ◦ Coordina las peticiones entre clientes y servidores ◦ Puede soportar las propiedades ACID .

Consistencia. . Aislamiento y Durabilidad)  En bases de datos se denomina ACID a un conjunto de características necesarias para que una serie de instrucciones puedan ser consideradas como una transaccion. Middleware Transaccional ◦ Propiedades ACID(Atomicidad.

. Esto asegura que la realización de dos transacciones sobre la misma información sean independientes y no generen ningún tipo de error.  Cumpliendo estos 4 requisitos un sistema gestor de bases de datos puede ser considerado ACID Compliant. Middleware Transaccional ◦ Propiedades ACID(Atomicidad. Consistencia. Aislamiento y Durabilidad)  Atomicidad: es la propiedad que asegura que la operación se ha realizado o no. ésta persistirá y no se podrá deshacer aunque falle el sistema. La propiedad de consistencia sostiene que cualquier transacción llevará a la base de datos desde un estado válido a otro también válido. Por lo tanto se ejecutan aquellas operaciones que no van a romper las reglas y directrices de integridad de la base de datos.  Consistencia: Integridad.  Durabilidad: es la propiedad que asegura que una vez realizada la operación. y por lo tanto ante un fallo del sistema no puede quedar a medias.  Aislamiento: es la propiedad que asegura que una operación no puede afectar a otras. Es la propiedad que asegura que sólo se empieza aquello que se puede acabar.

Middleware Transaccional  Vantajas ◦ Los componentes se mantienen consistentes ◦ Bastante confiables ◦ Buen rendimiento ◦ Programación y priorización de las solicitudes .

Middleware Transaccional  Desvantajas ◦ Ausencia de normalización para describir los servicios ◦ Realiza una menor cantidad de plataformas ◦ Bloqueos innecesarios ◦ Seleccion y Des seleccion implementadas manualmente .

.

 Middleware Orientado a Mensajes (MOM) ◦ Cola de Mensajes  Comunicacion indirecta  Asíncrona(el transmisor puede enviar datos sin previo aviso) ◦ Paso de Mensajes  Comunicación direta  Síncrona (el transmisor debe coordinarse con el receptor antes del envío de datos) .

Middleware Orientado a Mensajens (MOM)  Ventajas ◦ Soporta la comunicación de grupo atómicamente ◦ confiabilidad ◦ Amplio soporte para protocolos de red .

Middleware Orientado a Mensajens (MOM)  Desventajas ◦ Escalabilidad limitada y la heterogeneidad ◦ Poco portabilidad por falta de estandarización  Uso ◦ Aplicaciones cuya disponibilidad de la red o todos los componentes no es un problema .

.

Ofrece la sintaxis necesaria para definir los procedimientos o métodos que queremos invocar remotamente. Una vez tengamos esta interfaz creada deberemos pasarla por un compilador de interfaces que generará el proxy . Middleware Orientado a Objetos (MOO) ◦ Evolución de los procesos middleware ◦ Invocación de métodos de interacción ◦ Normalmente la comunicación sincrónica ◦ IDL para describir los servicios  IDL: Lenguaje de especificación de interfaces que se utiliza en software de computación distribuida.

Middleware Orientado a Objetos (MOO)  Ventajas ◦ Gran apoyo a la heterogeneidad( Composición de un todo de partes de distinta naturaleza). ◦ De selección y des-selección automática ◦ versatilidad .

Middleware Orientado a Objetos (MOO)  Desventajas ◦ Poca Escalabilidad  Uso ◦ Las aplicaciones que no requieren alta escalabilidad .

.

 Transacciones  MOM MOO ◦ Tuxedo (BEA) ◦ CICS (IBM) ◦ Encina (Transarc) ◦ MQSeries (IBM) ◦ JMS (Sun) ◦ CORBA (OMG) ◦ COM (Microsoft) ◦ RMI  .

 Middleware trata de resolver la mayoría de las complejidades añadido mediante el uso de varios equipos  Crear un entorno para el desarrollo de aplicaciones distribuidas a nivel superior Permitir la reutilización de los componentes  .

la programación a nivel del sockets. Amortizan los costos del ciclo de vida del software mediante aprovechar la experiencia puesta en desarrollos previos e implementaciones con patrones de diseño que son reutilizables. propenso a errores y de los detalles de la plataforma. por ejemplo.   Cuando los middlewares se implementan adecuadamente: Protegen a los desarrolladores de software del trabajo tedioso. evitando construirlos manualmente para cada uso. .

logging y seguridad que son necesarios para operar efectivamente en un ambiente de interconectado. tales como.          Proporcionan un conjunto consistente de abstracciones de alto nivel orientadas a la red que son más cercanas a los requerimientos de la aplicación con el fin de simplificar el desarrollo de sistemas distribuidos y embebidos. 􀂉 No olvidar considerar que su mal uso se traduce en ineficiencia. . los servicios de nombrado. 􀂉 Proveen de una amplia gama de servicios orientados al desarrollador que están listos para ser utilizados y son reutilizables. ya que ocupan más “capas” de software.