Sistemas Distribuidos Introducción

Download Report

Transcript Sistemas Distribuidos Introducción

Sistemas Distribuidos
Richard Jiménez V.
sisdistrib.wordpress.com
Richard Jiménez Velasco
Lic. en Informática en la UMSS
Maestría en Informática en la UMSS
Especialidad en desarrollo de aplicaciones Multimedia
en Okinawa - Japón
UMSS
ANB
Banca y Finanzas
Universidad Católica Boliviana, UPDS
Empresas América
¿Qué es un Sistema Distribuido?
¿Qué es una Base de Datos Distribuida?
¿Lenguajes de Programación C#, JAVA, etc.?
Sistemas Distribuidos
Redes de Computadoras
Sistemas Operativos distribuidos
Sistemas de archivos distribuidos
Arquitectura de los SGBD Distribuidos.
Diseño de Bases de Datos Distribuidas.
Fiabilidad de los Sistemas de Bases de Datos
Distribuidos
Lluvia de ideas
Participación
Casos de estudios
Investigación individual y en grupo
Creatividad en los trabajos
Elaboración de un trabajo final
Primer Parcial 20 puntos Miércoles 16
Segundo Parcial 20 puntos Martes 22
Evaluación Final 20 puntos
Trabajo práctico 15 puntos
Evaluación por competencias 25 puntos
Definición de Sistemas Distribuidos.
Objetivo de un Sistema Distribuido
Ventajas y desventajas de los Sistemas
Distribuidos.
Sistemas Operativos Distribuidos
Sistemas Operativos de Red.
Middlewares
Componentes de un Sistema Operativo Distribuido
Definiciones
Un sistema en el cual componentes conectados a
través de una red de computadoras se comunican y
coordinan sus acciones mediante el intercambio de
mensajes”[Coulouris].Principales características:
concurrencia de componentes, auscencia de reloj
global e independencia de fallos en sus componentes
.
Un sistema distribuido es una colección de
computadoras independientes que dan la
apariencia al usuario de ser una computadora
única” [Tanenbaum]
Concurrencia.- Esta característica de los sistemas distribuidos
permite que los recursos disponibles en la red puedan ser
utilizados simultáneamente por los usuarios y/o agentes que
interactúan en la red.
Carencia de reloj global.- Las coordinaciones para la
transferencia de mensajes entre los diferentes componentes
para la realización de una tarea, no tienen una temporización
general, esta más bien distribuida a los componentes.
Fallos independientes de los componentes.- Cada
componente del sistema puede fallar independientemente, con
lo cual los demás pueden continuar ejecutando sus acciones.
Esto permite el logro de las tareas con mayor efectividad, pues
el sistema en su conjunto continua trabajando.
La computación distribuida ha sido diseñada para
resolver problemas demasiado grandes para
cualquier supercomputadora y mainframe,
mientras se mantiene la flexibilidad de trabajar en
múltiples problemas más pequeños.
Por lo tanto, la computación en grid es
naturalmente un entorno multiusuario; por ello, las
técnicas de autorización segura son esenciales
antes de permitir que los recursos informáticos
sean controlados por usuarios remotos.
Distribución funcional: las computadoras tienen
diferencias Funcionales
Cliente / Servidor
Host / Terminal
Recaudación de datos / procesamiento de datos
Compartir recursos para funciones específicas
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
Replicación del poder de procesamiento:
Procesadores independientes trabajan con la misma
tarea
Sistemas distribuídos conformados por varias microcomputador
as pueden tener poder de procesamiento que difícilmente una
supercomputadora tendrá.
10000 CPUs, cada uno corriendo a 50 MIPS, alcanzan 50000
MIPS, por lo que instrucciones ejecutadas en 0.0002 nsec,
equivalen a una distancia luz de 0.6 mm.
Separación física: sistemas que confían en el hecho de que las
computadoras están físicamente separadas (ej. Para satisfacer
requerimiento de confiabilidad).
Económicos: colecciones de microprocesadores ofrecen una
mejor cuota precio/desempeño que grandes mainframes.
Mainframes: 10 veces mas rápidos, 1000 veces más caros
Economía: Buena relación rendimiento/coste
– Gracias a avances en tecnología de microprocesadores y de
comunicaciones.
Alto rendimiento: Procesamiento paralelo.
Soporte de aplicaciones inherentemente distribuidas.
– Por ejemplo: empresa distribuida geográficamente
Capacidad de crecimiento: Escalabilidad.
Fiabilidad y disponibilidad: Tolerancia a fallos.
Carácter abierto y heterogéneo:
– Necesidad de estándares de interoperabilidad.
Compartir recursos y datos.
1. Falta de experiencia en el diseño e
implantación y uso de software distribuido
1. Tipos de sistemas operativos, lenguajes de
programación y aplicaciones son adecuados
2. Conocimiento de los usuarios de la distribución
2. Redes de Comunicación
1. Perdida de mensajes.
2. Saturación de la red
3. Dependencia de la red baja ventajas por saturación y/o
perdida de paquetes.
3. Compartir y Seguridad
1. Si las personas tienen acceso a los datos en todo el
sistema, entonces también a otros que no tiene nada
que ver.
Entornos de empresa: redes corporativas e
intranets.
– Sustituyen a los clásicos mainframes
Entornos que requieren procesamiento paralelo.
– Sustituyen a costosos supercomputadores
Servicios con alta disponibilidad y rendimiento.
Sistemas distribuidos de gestión de bases de
datos.
Aplicaciones multimedia.
Sistemas industriales distribuidos y aplicaciones
de control.
Internet es un enorme sistema distribuido.
Internet
Intranet
Sistemas Multimedia Distribuidos
Computación Móvil e ubicua
Redes heterogéneas de computadoras y aplicaciones
Implementación mediante la pila de protocolos de Internet
Configuración típica
Sistemas de archivos en red
Redes localmente administradas
Generalmente propietarias (ej. Red del campus universitario)
Interfaces con la Internet
Cortafuegos
Proporciona servicios interna y externamente.
Frecuentemente utilizan la infraestructura de Internet
Características
Fuentes de datos y recipientes heterogéneos que
necesitan ser
sincronizados en tiempo real
Video
Audio
Texto
Frecuentemente: Servicios distribuidos
Multidifusión
Ejemplos
Herramientas de tele-educación
Video conferencias
Video y audio en demanda
La portabilidad de los dispositivos, como ordenadores
portátiles, PDA, teléfono móvil, refrigeradores, junto con su
capacidad para conectar fácilmente a las redes en
diferentes lugares, hace posible la computación móvil.
Computación ubicua es el aprovechamiento de los muchos
pequeños dispositivos de cómputo barato que están
presentes en los entornos de los usuarios físico,
incluyendo el hogar, oficina y otros lugares.
Arquitectura para acceder a sistemas de archivos
a través de la
Red
Ejemplos conocidos
Network File System (NFS), originalmente
desarrollado por SUN
Microsystems para soportar acceso remoto en un
contexto UNIX
– Acceso: Manera de acceder a recurso local igual que a remoto.
– Posición: Se accede a los recursos sin conocer su localización.
– Migración: Recursos pueden migrar sin afectar a los usuarios.
– Concurrencia: Acceso concurrente no afecta a los usuarios.
– Replicación: La existencia de réplicas no afecta a los usuarios.
– Fallos: La ocurrencia de fallos no afecta a los usuarios.
– Crecimiento: El crecimiento del sistema no afecta a los usuarios.
– Heterogeneidad: Carácter heterogéneo no afecta a los usuarios.
¿Es buena tanta transparencia?
– A veces el usuario precisa conocer cómo es el sistema subyacente
Fiabilidad como disponibilidad:
– Teóricamente: OR-lógico de sus componentes.
– En ciertos casos: AND-lógico de varios
componentes.
– Mecanismos: redundancia y evitar componentes
críticos.
Fiabilidad como coherencia:
– Se dificulta con caching y redundancia
La fiabilidad está relacionada con la seguridad
(otro objetivo).
Rendimiento para un servicio multiusuario:
– Objetivo: Rendimiento no peor que un sistema centralizado
Rendimiento para la ejecución paralela de aplicaciones:
– Objetivo: Rendimiento proporcional a procesadores
empleados
Factores:
• Uso de esquemas de caching
– Intentar que muchos accesos se hagan localmente
• Uso de esquemas de replicación
– Reparto de carga entre componentes replicados
• En ambos casos: Coste de mantener la coherencia
Diseño de un sistema distribuido debe evitar “cuellos de
botella”:
– Componentes centralizados
– Tablas centralizadas
– Algoritmos centralizados
Características deseables en un algoritmo distribuido:
– Ninguna máquina tiene información completa del estado
del sistema
– Las decisiones se basan sólo en información disponible
localmente
– El fallo de una máquina no debe invalidar el algoritmo
– No debe asumir la existencia de un reloj global
Flexibilidad
SOD debe ser adaptable:
– facilidad para incorporar cambios y extensiones al
sistema
Uso preferible de arquitectura microkernel
Importancia de sistemas abiertos:
– Sus interfaces y protocolos deberían ser públicos.
– Contrario a ”tecnología propietaria”.
– Uso de estándares siempre que sea posible.
– Disponibilidad de su código fuente (libremente o
no).
– Regulación por parte de un colectivo (usuarios u
organizaciones) y no por particulares (fabricantes).
Sistemas de Computación Distribuidos
Sistemas de Información Distribuidos
Sistemas Persuasivos Distribuidos
Una clase importante de sistemas distribuidos
es la utilizada para alto rendimiento en
tareas de computación. En términos generales, se
puede hacer una distinción entre
dos subgrupos.
Cluster
Grid
En cluster de computación del hardware
subyacente consiste en una colección
de estaciones de trabajo similares o
PCs, estrechamente conectadas por medio de
una red de área local de alta velocidad. Además,
cada nodo ejecuta el mismo sistema operativo.
Los Sistemas de cluster de computación se
hicieron populares cuando la relación precio /
rendimiento de los ordenadores personales y
estaciones de trabajo mejoraron.
En un momento determinado, se convirtió en
técnica y financieramente atractiva para
construir una supercomputadora ,
simplemente conectando un conjunto de
equipos relativamente sencillos en una
red de alta velocidad.
En casi todos los casos, la computación
en cluster se utiliza en programación paralelo
donde el programa se ejecuta en paralelo en
varias máquinas.
La situación se vuelve muy diferente en el caso de
la computación en grid. Este subgrupo se
compone de sistemas distribuidos que se
construyen a menudo como una federación de los
sistemas informáticos, en la que cada sistema
puede caer bajo una administrativa diferente de
dominio, y puede ser muy diferente cuando se
trata de hardware, software y desplegado la
tecnología de red.
En un Grid los sistemas informáticos tienen un
alto grado de heterogeneidad: no se hacen
suposiciones sobre hardware, sistemas
operativos, redes, dominios administrativos, de
seguridad,políticas, etc
Una cuestión clave en un sistema grid
distribuido es que los recursos de las diferentes
organizaciones se unen para permitir la
colaboración de un grupo de personas o las
instituciones.
Esta colaboración se realiza en la forma de una
organización virtual. Las personas que pertenecen
a la organización virtual mismos derechos de
acceso a los recursos que se proporcionan a
la organización.