19
UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Embed Size (px)

Citation preview

Page 1: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

UNIVERSIDAD CENTROAMERICANAProgramación Distribuida

Introducción a los sistemas distribuidos

Page 2: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Sistemas Distribuidos (SD)Nivel Físico: Conjunto de procesadores sin memoria común conectados por una red.Sistema débilmente acoplado.No existe un reloj en común.Dispositivos de E/S asociados a cada procesador.Fallos independientes de componentes del Sistema

Distribuido.Carácter heterogéneo.

Page 3: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

¿Qué es un Sistema Distribuido?Es algo difícil de definir…

Mejor hablar de «Síntomas de distribución»:Multiproceso (Concurrencia): el hardware permite el progreso

simultáneo de varias actividades (Varias CPU s, con memoria local etc.)

Interconexión: Permite la comunicación entre las actividades.Relación: Uso compartido de recursos, información, etc.Fallo independiente: Permite buscar soluciones resistentes

en caso de fallo (ojo: las comunicaciones también pueden fallar)

Page 4: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

DefiniciónSegún Coulouris: «Un sistema en el cual componentes ubicados en una red de computadoras se comunican y coordinan sus acciones mediante el intercambio de mensajes»

Principales características:Concurrencia de componentes.Ausencia de reloj global.Independencia de fallos en sus componentes.

Page 5: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Razones para distribuirDistribución funcional: las computadoras tienen diferencias

funcionales: Cliente / Servidor Host / Terminal Colección de datos / Procesamiento de datos. Compartir recursos para funciones especificas.

Distribución inherente al dominio de la aplicación. Cajas registradoras y sistemas de inventario para cadenas de supermercados. Soporte para trabajo colaborativo.

Distribución / Balanceo: asignar tareas a procesadores tal que todo el desempeño del sistema sea optimizado.

Page 6: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Razones para distribuirReplicación del poder de procesamiento:

procesadores independientes trabajan con la misma tarea.

Separación física: Sistemas que confían en el hecho de que las computadoras están físicamente separadas.

Económicos: colecciones de microprocesadores ofrecen una mejor cuota precio / desempeño.

Page 7: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Sistemas Distribuidos vs Sistemas ParalelosDistinción a nivel lógico y / o físico.Dado un sistema físico en cual los procesadores tienen memoria

compartida, es fácil simular paso de mensajes. Por otra parte, dado un sistema físico con varios procesadores conectados por una red es posible simular memoria compartida.

¿Porqué un sistema no debiera ser paralelo en su totalidad? Escalabilidad. Modularidad y heterogeneidad. Datos compartidos (bases de datos distribuidas) Recursos compartidos. Estructura geográfica. Confiabilidad Bajo costo.

Page 8: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Ventajas de los SDEconomía.Alto rendimiento.Soporte de aplicaciones inherentemente distribuidas.Capacidad de crecimiento.Fiabilidad y disponibilidad.Carácter abierto y heterogéneo.Compartir recursos y datos.

Page 9: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Desventajas de SDNecesidad de un nuevo tipo de software.Red de interconexión introduce nuevos problemas.Seguridad y confidencialidad.

Page 10: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Aplicaciones de los SDEntornos de empresas: redes corporativas e intranets.Entornos que requieren procesamiento paralelo.Servicios con alta disponibilidad y rendimiento.Sistemas distribuidos de gestión de base de datos.Aplicaciones multimedia.Sistemas industriales distribuidos y aplicaciones de

control.Internet es un enorme SD.

Page 11: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Objetivos de un SDEn general el desarrollo de sistemas distribuidos intenta poner solución a los siguientes objetivos:

Transparencia.Fiabilidad.Rendimiento.Capacidad de crecimiento.Flexibilidad.Seguridad.

Page 12: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Componentes de un SD.El desarrollo de un sistema distribuido completo requiere el uso de las siguientes funciones y servicios:Servicios de comunicación.Sistemas de archivos.Servicio de nombres.Servicios de sincronización y coordinación.Memoria compartida distribuida.Gestión de procesos.Servicio de seguridad.

Page 13: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Servicios de comunicación.Modelos de interacción.

Cliente/Servidor (2, 3, o n niveles) Peer to Peer. Equilibrio de roles. Intermediarios. Proxy, dispacher, caches… Comunicación en grupo (Multicast) Código móvil.

Tecnologías de comunicación. Paso de mensajes (sockets) Llamada a procedimientos remotos (RPC) Invocación de métodos remotos (RMI) Tecnologías de objetos distribuidos: CORBA, DCOM, EJB. Servicios Web.

Page 14: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Sistemas de Archivos DistribuidosSistema de archivos para sistema distribuido.Gestiona distintos dispositivos en diferentes nodos

ofreciendo a usuarios la misma visión que un SA centralizado.

Permite que usuarios compartan información de forma transparente.

Caching y Replicación.

Page 15: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Servicios de nombres.Identificación y localización de recursos en el entorno distribuido.

Comprende: Servicio de nombres (páginas blancas): DNS, COS-Naming (CORBA) Servicio de directorio (páginas amarillas): X.500, LDAP, Active

Directory de Windows, UDDI(Web services)

Estrategias de resolución de nombres.

Arquitectura de los Servicios. Almacenamiento intermedio: Caching. Replicación y coherencia.

Page 16: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Servicios de Sincronización y CoordinaciónComprende los conceptos de:

Tiempo en entornos distribuidos: sincronización de relojes y relojes lógicos.

Concurrencia y paralelismo: exclusión mutua e interbloqueos. Algoritmos distribuidos: Elección de líder, coordinación, … Transacciones: propiedades, ACID, modelos de commit / rollback.

Afecta a otros servicios. Nombrado e identificación. Seguridad y fiabilidad. Comunicaciones. ….

Page 17: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Memoria compartida distribuida (DSM)Memoria físicamente privada pero lógicamente compartida.

Estrategias de implementación:Basada en páginas.Basada en variables compartidas.Basada en objetos.

Page 18: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Gestión de procesos.Estrategias de asignación de procesadores.Planificación de proceso (interna, global)Migración de procesos.

Equilibrado de carga.Aprovechamiento de máquinas inactivas.

Page 19: UNIVERSIDAD CENTROAMERICANA Programación Distribuida Introducción a los sistemas distribuidos

Servicios de SeguridadTipología de ataques:

Privacidad y confidencialidad. Autenticación Denegación de servicio

Modelos y herramientas de seguridadCifradoProtocolos de seguridadCertificados y firmas digitales.Elementos de seguridad.

Entornos de seguridad.