Sistemas Distribuidos I

Slides:



Advertisements
Presentaciones similares
Guido Rubin Escalabilidad.
Advertisements

Multiprocesadores 3.1 Dominios de aplicación
I T S S P LIC INFORMATICA SISTEMAS OPERATIVOS WINDOWS 2003 SERVER DOCENTE: L.I RAMIRO ROBLES VILLANUEVA ALUMNOS: ROGELIO CHAIDEZ CORDOBA ZENON ESTRADA.
Bases de datos distribuidas
Base de Datos Distribuidas FUNDAMENTOS DE BASES DE DATOS DISTRIBUIDAS
Carlos Rojas Kramer Universidad Cristóbal Colón
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
TEMA 2: «CONFIGURACIÓN DE MÁQUINAS VIRTUALES»
INTRODUCCIÓN ESTADO DE LA TÉCNICA PROCESAMIENTO DISTRIBUIDO CON MPI PROCESAMIETNO DISTRIBUIDO DE IMÁGENES GENÉRICO CON VTK PROCESAMIENTO DISTRIBUIDO DE.
Término que se le da al conjunto de equipos de cómputo que se encuentran conectados entre si por medio de dispositivos físicos que envían y reciben -
Servicios Web.
Arquitectura Orientada a Servicios (SOA)
Sistemas Distribuidos y Paralelos
HISTORIA Y CLASIFICACIÓN DE LOS SISTEMAS OPERATIVOS
RMI Remote Method Invocation
Base de Datos Distribuidas
BASES DE DATOS DISTRIBUIDAS
Introducción a los Sistemas de Bases de Datos Distribuidos
Universidad Centroamericana
Sistemas Operativos Distribuidos Plataforma Cliente/Servidor
Contexto en el proceso general
Universidad de SonoraArquitectura de Computadoras1 PROGRAMA CION PARALELA Y DISTRIBUIDA PRESENTA: JESUS BECERRIL PACHECO MODELOS DE ACCESO A LA MEMORIA.
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
Diseño Lógico de la Red Topología.
Ing. Fabián Ruano.  Definición  Diferencias con BD Centralizadas.
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
Arquitectura de una aplicación
Contenido: 1- Que es el .Net Framework 2- Arquitectura en .Net
Introducción al modelo Cliente-Servidor Carlos Rojas Kramer Universidad Cristóbal Colón.
Desarrollo de aplicaciones para ambientes distribuidos
Computación en la Nube UASF.
Introducción a los Sistemas Operativos
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
Servidores Conceptos Generales.
Despliegue de la aplicación Web
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Araí: integración e interoperabilidad de soluciones SIU
1 Capítulo 21: Interacción Cliente Servidor ICD 327: Redes de Computadores Agustín J. González.
NOTA: Para cambiar la imagen de esta dispositiva, seleccione la imagen y elimínela. A continuación haga clic en el icono Imágenes en el marcador de posición.
Introducción a los SOs.
BASES DE DATOS DISTRIBUIDAS
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
Redes de Area Local, LAN Una red de área local es una red de datos de alta velocidad que cubre un área geográfica relativamente pequeña. Típicamente conecta.
Escuela Normal “Profr. Darío Rodríguez Cruz”
Departamento de Informática Universidad de Rancagua
Prof. César Molina Sesión 2 - Principios de la computación Redes y comunicaciones.
Diseño Arquitectonico
Modelo de 3 capas.
Modelo OSI Surgimiento del Modelo OSI ¿Que es el Modelo OSI?
Introducción a los Sistemas Distribuidos. Prof. Yudith Cardinale Sept – Dic 2008 Universidad Simón Bolívar Departamento de Computación y T. I Sistemas.
Patrones de diseño equipo n.1
DESARROLLO DE APLICACIONES PARA AMBIENTES DISTRIBUÍDOS ALUMNOS: MARIANA MIGNÓN RÉDING CARLOS ANTONIO CARRASCO MARTÍNEZ PROFESOR: DR. JOSÉ BERNARDO PARRA.
BASE DE DATOS DISTRIBUIDAS
Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ.
Proceso de desarrollo de Software
Arquitectura de una aplicación Arquitectur a: desarrolla un plan general del sistema, asegurando que las necesidades de los usuarios sean atendidas. Ingeniería.
1 Unidad I.2.- Objetivos de los Sistemas Distribuidos Ing. Luis Armando García Eliseo © Agosto 2011.
 Definir conceptos fundamentales de las BDD como DTM y DBMS.  Conocer el esquema actual de la Base de datos de la UNACH.  Analizar cuándo utilizar.
BASES DE DATOS CONCEPTOS BASICOS Elizabeth Maite Zarate Machaca “El tratamiento eficiente de la información al servicio del usuario”
Conociendo el modelo Cliente-Servidor
Sistemas Distribuidos Conceptos Básicos Propiedades MSI. Nancy A. Olivares Ruiz.
BASES DE DATOS DISTRIBUIDAS M.C.C. María Guadalupe Villanueva Carrasco INGENIERIA EN SISTEMAS COMPUTACIONALES.
WLAN (Wireless Local Area Network). WLAN  Es un sistema de comunicación de datos inalámbrico flexible muy utilizado como alternativa a la LAN cableada.
Conociendo el modelo Cliente-Servidor. Introducción En el mundo de TCP/IP las comunicaciones entre computadoras se rigen básicamente por lo que se llama.
Bases de datos ITecnológico San Agustín1 BASES DE DATOS Conceptos Básicos Paulo César Acosta Lozano –
{ Topología de Red Yaritza Ortega Astrid Zúñiga Vishal Patel.
Transcripción de la presentación:

Sistemas Distribuidos I Conceptos de Sistemas Distribuidos y Arquitectura

Objetivos El objetivo general del diseño de un sistema distribuido no es muy diferente de otro sistema operativo. Eficiencia, Flexibilidad, Consistencia y Robustez Las diferencias se resumen en que los recursos están distribuidos, el overhead de la comunicación no puede ser despreciada y la alta probabilidad de fallas de los componentes Eficiencia: Comunication delays Effective communication primitives at the language or OS level Scheduling cambia en sistemas distribuidos Flexibilidad: User’s point of view: friendliness Ease of use interface Consistencia y robustez System point of view Evolucionar y migrar Modularidad, scalability, portabilidad, interoperabilidad Consistencia Falta de informacion global Replicacion y particion de los datos Predictability Robustez Communication links Reiniciar a un estado conocido Degradacion de performance

Objetivos Eficiencia Es mas complejo por la existencia de los retardos en la comunicación. Las primitivas usadas para comunicación a nivel del lenguaje o sistema operativo deben ser eficientes. Buenos protocolos de comunicación a nivel de red. Se deben tener en cuenta problemas de distribución de la carga, cuellos de botella o congestionamientos.

Objetivos Flexibilidad Desde el punto de vista del usuario la ‘amabilidad’ y ‘libertad’ para usar el sistema. Amabilidad: capacidad de mapear problemas reales a problemas computacionales. Libertad: Permitirle al usuario decidir cuando, como y donde usar el sistema sin restricciones irracionales.

Objetivos Flexibilidad Desde el punto de vista del sistema: Capacidad de evolucionar y migrar. Modularidad, Escalabilidad, portabilidad y interoperabilidad.

Objetivos Consistencia Desde el punto de vista del usuario un sistema es consistente si existe uniformidad en el uso del sistema y el comportamiento es predecible. La falta de información global, posibilidad de fallas en los componentes y complejidad de interacción entre los módulos hacen que el problema de consistencia sea complejo. Debe haber mecanismos de control de concurrencia, procedimientos de manejo y recuperación de fallas, etc.

Objetivos Robustez Es el problema mas importante Los fallos en los canales de comunicación son mas comunes El sistema debe ser capaz de reinicializar a un punto donde la integridad del sistema es conocida Fiabilidad, protección y control de acceso son puntos muy importantes.

Transparencia Transparencia de acceso Transparencia de ubicación Habilidad de acceder objetos locales y remotos en una forma uniforme. Transparencia de ubicación El usuario no sabe donde esta ubicado el objeto, estos se referencian con nombres lógicos Transparencia de migración El objeto se puede mover físicamente a otro nodo, pero mantiene el mismo nombre

Transparencia Transparencia Concurrencia Transparencia de replicación Compartir objetos sin interferirse (time-sharing) Transparencia de replicación Consistencia entre diferentes instancias de archivos y datos. Transparencia de paralelismo Posibilidad de correr actividades en paralelo sin necesidad de que el usuario sepa donde y cuando el las actividades se realizan

Transparencia Transparencia de fallas Transparencia de rendimiento La fallas se transforman en una degradación de rendimiento del sistema en lugar de interrupciones. Transparencia de rendimiento Consistencia y predictibilidad del rendimiento aun con cambios de la estructura o en la distribucion de la carga.

Transparencia Transparencia de tamaño Transparencia de versión Modularidad y escalabilidad sin que la percepción del sistema cambie para el usuario. Transparencia de versión Distintas revisiones del sistema no son visibles para el usuario

Categorización de transparencias Objetivos del Sistema Transparencias Eficiencia Concurrencia Paralelismo Rendimiento Flexibilidad Acceso Ubicación Migración Tamaño Versión Consistencia Replicación Robustez Fallas

Mapeo de problemas con transparencias Comunicación Sincronización Algoritmos distribuidos Interacción y control de transparencia Planeamiento de procesos Manejo de deadlock Manejo de carga Transparencia de rendimiento Planeamiento de recursos Archivos compartidos Control de concurrencia Transparencia de recursos Manejo de fallas Configuración Redundancia Transparencia de fallas

Servicios Un sistema operativo es un proveedor de servicios. Los servicios mas fundamentales (primitivas del sistema) se implementan en el kernel de cada nodo Otros servicios pueden estar implementados en cualquier lugar del sistema y proveer funciones básicas (servidores de sistema) Existen también los que proveen servicios de alto nivel o de propósito especial (servicios de valor agregado)

Servicios primitivos Hay tres funciones fundamentales: Comunicación Sincronización Multiplexación de procesadores

Servicios por servidores de sistema Name server or Directory server: Este es el servicio mas esencial en un sistema distribuido. Network server: Transforma las direcciones de los objetos en caminos de comunicación. Broadcast o Multicast server: Se encarga de esta funcionalidad si la red no lo soporta. Time server: Es usado para sincronizar y planear procesos. (Físico o lógico)

Servicios para manejar recursos File server: Repositorio de archivos. Puede ser particionado o duplicado siempre manteniendo la consistencia Print server: Servicio de impresión Servidor de procesos: Puede mover procesos de un nodo a otro basado en los recursos

Servicios de valor agregado Servidor de grupos: Maneja la creación y terminación de actividades de grupo. Servidor de conferencias distribuidas Servidor web

Modelos de arquitectura La implementación de un SD depende de la arquitectura del sistema y de la red de comunicación La arquitectura del sistema es una descripción abstracta de los componentes y sus relaciones La arquitectura de la red especifica las opciones de comunicación.

Arquitecturas de sistemas distribuidos Workstation-Server: La estación de trabajo provee capacidad de procesamiento local e interface con la red. Processor-Pool: Se comparte poder computacional aparte de los recursos. Modelo hibrido

Modelo Processor-Pool

Arquitectura de la red de comunicación Pueden ser conexiones punto a punto o multipunto. Multipunto Basada en buses: Ethernet, token ring, FDDI Switcheadas: Frame relay, ISDN, ATM La capacidad y la distancia juegan un papel importante.

Clases de aplicaciones cliente/servidor Proceso basado en una máquina central: No es realmente un proceso cliente/servidor. Entorno tradicional de grandes sistemas. Cliente Servidor Lógica de presentación Lógica de aplicación Lógica de base de datos SGBD (a) Proceso basado en una máquina central

Clases de aplicaciones cliente/servidor Proceso basado en el servidor: Todo el tratamiento se hace en el servidor. Los puestos de trabajo de los usuarios ofrecen una interfaz de usuario gráfica. Lógica de presentación Lógica de aplicación Lógica de base de datos SGBD (b) Proceso basado en el servidor

Clases de aplicaciones cliente/servidor Proceso basado en el cliente: Casi todo el proceso de la aplicación se hace en el cliente. Las rutinas de validación de datos y otras funciones lógicas de la base de datos se realizan en el servidor. Lógica de presentación Lógica de aplicación Lógica de base de datos Lógica de base de datos SGBD (d) Proceso basado en el cliente

Clases de aplicaciones cliente/servidor Proceso cooperativo: El proceso de la aplicación se lleva a cabo de forma optimizada. Compleja de instalar y mantener. Lógica de presentación Lógica de aplicación Lógica de aplicación Lógica de base de datos SGBD (c) Proceso cooperativo

Clases de aplicaciones cliente/servidor Para los casos (c) y (d) anteriores gran parte de la carga está en el cliente. Este modelo es llamado: cliente grueso. Ha sido popularizado por herramientas como PowerBuilder, SQL Windows, etc. Con el cliente grueso se saca provecho a la capacidad computacional de la máquina del cliente. Esto también implica descargar el procesamiento de los servidores.

Cliente Grueso Sostener clientes gruesos implica una actualización frecuente de máquinas por la necesidad de capacidad de cómputo. También debe actualizarse las capacidades de red por los grandes volúmenes de datos en las transacciones. Es bastante engorroso mantener actualizadas las aplicaciones en los clientes. Todo lo anterior hace que a pesar de parecer atractiva, la solución del cliente grueso no sea buena.

Cliente Delgado El ejemplo (b) anterior representa el cliente delgado. Este enfoque imita al de host centralizado. Se lo usa como vía de migración para pasar las aplicaciones de un sistema centralizado a un entorno distribuido. La mejor representación de esta clase de cliente es con las aplicaciones adaptadas a entorno web (web enabled).

Arquitectura cliente/servidor de tres capas El software de aplicación está distribuido entre tres tipos de máquinas: Máquina de usuario: Cliente delgado. Servidor de capa intermedia: Pasarelas. Convierte protocolos. Mezcla e integra resultados de distintas fuentes de datos. Servidor final (backend).

Arquitectura cliente/servidor de tres capas Servidor de capa intermedia (servidor de aplicaciones) Servidores finales (servidores de datos) Figura 13.6. Arquitectura cliente/servidor de tres capas.

Problemas de Diseño Un sistema distribuido consiste en una serie de procesos concurrentes que acceden a recursos distribuidos a través de mensajes en un ambiente de red que no es confiable y contiene componentes que pueden no ser confiables.

Problemas de Diseño Modelo de Objetos Objetos en el sistema son los procesos, archivos de datos, memoria, dispositivos, etc. Es deseable que se representen con objetos con una interfase bien definida Los procesos que manejan los objetos se transforman en servidores de objetos.

Problemas de Diseño Esquema de nombres Para contactar un servidor se lo debe identificar Hay tres formas de identificar un servidor Por nombre Por la dirección física o lógica Por el servicio que el servidor provee Se asumen únicos Puede haber múltiples direcciones para el mismo servidor Un servidor puede proveer varios servicios Son mas intuitivos y transparentes Contienen información estructural de la localización No contienen información de la localización

Problemas de Diseño Esquema de nombres La conversión de nombres a direcciones lógicas es responsabilidad del servidor de nombres El mapeo de direcciones lógicas a físicas es responsabilidad del servicio de red El modelo de objetos del sistema y el esquema de nombres son muy importantes y se deben decidir en una etapa temprana del diseño del sistema

Problemas de Diseño Coordinación distribuida Hay tres tipos de requerimientos de sincronización Sincronización de barrera: Un grupo de procesos debe llegar a un punto común de sincronización antes de seguir Coordinación por condición: Se debe esperar una condición para mantener algún orden de ejecución. Exclusión mutua: Hay exclusión cuando se acceden recursos compartidos

Problemas de Diseño Coordinación distribuida La sincronizacion implica el conocimiento del estado de otros procesos. La decision de coordinacion depende de protocolos distribuidos basados en mensajes. Se puede usar un coordinador centralizado pero trae otro tipo de problemas

Problemas de Diseño Coordinación distribuida Existen problemas de deadlock. Algunas veces conviene detectar el deadlock en lugar de prevenirlo Las soluciones para la sincronización y el deadlock intentan asimilar información de estado parcial.

Problemas de Diseño Comunicación entre procesos Todo el sistema depende de esto Modelo cliente/servidor Remote Procedure Call (RPC) El Multicast es muy importante. Logical Multicast probablemente sin la interacción de hardware. El multicast debe ser confiable

Problemas de Diseño Recursos Distribuidos Puede ser una distribución de cargas estáticas cuyo objetivo es el de minimizar el tiempo de ejecución de un grupo de procesos relacionados O dinámicas, donde el objetivo es maximizar la utilización de los procesadores. Transparencia aplicada a los datos: “Memoria compartida distribuida” Coherencia y consistencia de los datos

Problemas de Diseño Tolerancia a fallas y seguridad El sistema debe ser resistente a fallas y estas deben ser transparentes al usuario. La redundancia es una propiedad inherente de los SD Se debe mantener información de estado que permite volver a un punto de funcionamiento correcto