• No se han encontrado resultados

distribuido introduccion

N/A
N/A
Protected

Academic year: 2020

Share "distribuido introduccion"

Copied!
70
0
0

Texto completo

(1)

Sistemas Distribuidos

Introducción

(2)

Sistemas Distribuidos y

Paralelismo

Un único procesador resuelve todas las tareas.

(3)

Motivaciones

9 Sistemas de predicción del tiempo del Área de EEUU y Canadá para los próximos 2 días:

Para predecir 1 hora

Con un solo procesador que pueda ejecutar 1 billón de cálculos por seg (109) tomará aprox.

2 x 1015 calc./109 calc.por seg = 2 x 106 segs

9 Problema de los N-Cuerpos en el espacio

(4)
(5)

Motivaciones: resolver grandes

problemas

9

Modelado y Predicción del clima

9

Problemas de astrofísica

9

Biología computacional

9

Base de datos geográficas

9

Modelados de Fluidos

(6)

Demandas de Mayor:

9Poder de computación (veloc., capacidad)

9Mayor flexibilidad (compartición, acceso remoto) Junto a:

9Los desarrollos tecnológicos de:

9Microelectrónica.

9Redes de comunicación de alta velocidad.

9Disminución de los costos.

9Necesidades de los usuarios:

9Aplicaciones más sofisticadas

9Administrativa y económicas

(7)

Computadoras Conectadas

Múltiples procesadores resuelven todas las

(8)

Sistemas Distribuidos

Tecnología de los Microprocesadores (´80) +

Tecnología de las Comunicaciones __________________________________

(9)

Sistemas de Alta Performance

SISTEMAS DISTRIBUIDOS

SISTEMAS PARALELOS

Permitir que varios usuarios trabajen en forma

cooperativa

(10)

Sistemas de Alta Performance

SISTEMAS DISTRIBUIDOS

SISTEMAS PARALELOS

Conjunto de tareas que trabajan simultáneamente para resolver un problema

(11)

Sistemas de Alta Performance

SISTEMAS DISTRIBUIDOS:

Otras definiciones

Sistema en el cual múltiples procesadores autónomos, posiblemente de diferente tipo, están interconectados por una subred de comunicación para interactuar de una manera

cooperativa en el logro de un objetivo global. [Lelann 1981]

Sistema en el cual componentes de hardware y software, localizadas en computadores de red, se comunican y

(12)

Sistemas de Alta Performance

SISTEMAS DISTRIBUIDOS:

Otras definiciones

Un SSDD es una colección de computadoras

independientes, interconectadas vía una red, que son capaces de colaborar en una tarea. Las computadoras son

consideradas independientes y no tienen memoria compartida o espacio de ejecución de programas.

[Liu 2004]

(13)

Sistemas distribuidos

Estas definiciones tiene las siguientes

consecuencias:

- Concurrencia

- Inexistencia de un reloj global

- Fallos Independientes

Ejemplos

- Internet

- Intranets

(14)

Internet

intranet

ISP

desktop computer:

backbone

satellite link

server:

network link:

(15)

Intranets

Porción de Internet administrada

separadamente.

Utilizan la tecnologías de Internet (capas de

software) para el transporte de datos y servicios.

Suelen estar conectados a Internet a través de

un cortafuegos (firewall)

En algunos casos críticos no se conectan a

(16)
(17)

Computación móvil y/o ubicua

• Se caracteriza porque sus elementos no están conectados todo el tiempo a la red y cambia

continuamente el lugar desde el que se conectan

• Tipos de dispositivos

- Computadoras portátiles

- Dispositivos de mano (PDA’s, teléfonos móviles, buscapersonas y videocámaras o cámaras digitales)

- Dispositivos que se pueden llevar puestos como relojes inteligentes, etc.

(18)
(19)

Enfatiza en los siguientes aspectos:

9 La computación usa múltiples recursos que están situados físicamente dispersos.

9 En un sistema distribuido se corren múltiples aplicaciones a la vez. Las aplicaciones pueden pertenecer a diferentes

usuarios.

9 Un sistema distribuido es a menudo heterogéneo.

9 Un sistema distribuido no tiene una memoria compartida, al menos a nivel de hardware.

(20)

Enfatiza en los siguientes aspectos:

9 Una aplicación es dividida en subtareas que son resueltas simultáneamente (generalmente en forma fuertemente acopladas)

9 Una aplicación es considera a la vez y el objetivo es la velocidad de procesamiento de esta única aplicación

9 Los programas ejecutan en arquitecturas homogéneas

(21)

Tienen propiedades que los diferencia:

C. Paralelas dividen una aplicación en tareas

que son ejecutadas al mismo tiempo.

C. Distribuidas las tareas relacionadas o no

son ejecutadas en diferentes ubicaciones

usando diferentes recursos.

(22)

S. Paralelos vs. S. Distribuidos

Características comunes:

9 Múltiples procesadores

9 Los procesadores están interconectados por alguna red

9 Múltiples procesos (actividades computacionales) están en progreso al mismo tiempo y cooperan unos con otros (el

(23)

S. Paralelos vs. S.

Distribuidos

Desde los medidos de los ´90 se ha incrementado la convergencia de ambas áreas:

9Las áreas incrementalmente usan las mismas arquitecturas

9Muchos aspectos de paralelismo y distribución son intercambiables o comunes e incrementalmente han comenzado a ser investigados juntos

(24)

S. Paralelos vs. S.

Distribuidos

(25)

Ventajas de los S. Distribuidos

9 Velocidad: Un sistema distribuido puede alcanzar mayor poder de

computación que una única máquina.

9 Confiabilidad: Si una máquina cae, el sistema aún puede continuar en operación.

9 Compartir datos: Admitir que varios usuarios accedan a datos comunes.

9 Compartir dispositivos: Admitir que varios usuarios accedan a recursos escasos o

caros.

9 Comunicación: Permitir una sencilla comunicación.

9 Flexibilidad: Distribuir la carga de trabajo entre las máquinas disponibles.

9 Escalabilidad: Se pueden agregar recursos a

(26)

Desventajas de los S.

Distribuidos

9

Seguridad: Un sistema distribuido debe tener

mecanismos para asegurar sus datos.

9

Networking: El sistema depende del desempeño

de la red.

9

Software: Existe poco software para los sistemas

existentes.

9

Muchos puntos de fallos: debido a que son

(27)

Desafíos de los S. Distribuidos

9

Performance

9

Heterogeneidad

9

Extensibilidad

9

Escalabilidad

9

Conectividad

9

Seguridad

9

Confiabilidad

(28)

Desafíos de los S. Distribuidos

9

Transparencia

9

De acceso

9

De ubicación

9

De Falla

9

De Replicación

9

De almacenamiento

9

De Migración

9

De re-ubicación

(29)

Heterogeneidad

La heterogeneidad se aplica en los siguientes

elementos:

- Redes

- Hardware de computadores

- Sistemas operativos

- Lenguajes de programación

(30)

Heterogeneidad

Middleware

: es el estrato de software que

provee una abstracción de programación,

así como un enmascaramiento de la

heterogeneidad subyacente de las redes,

hardware, sistemas operativos y lenguajes

de programación. Ejemplo: Corba, Java

(31)

Middleware

• Existen diversos tipos de middleware

- Para Base de datos: ODBC, JDBC, SQLJ, SQL * NET Oracle

- Para OLTP (Procesamiento de transacciones) : ATMI, WS Tuxedo, TIP Microsoft, OTS de CORBA

- Para Groupware: MAPI, VIM, JavaMail, Workflow y llamadas de Lotus Notes

- Para Objetos: CORBA/IIOP de OMG, COM+ Microsoft, RMI sobre IIOP de JavaSoft

- Para Internet: HTTP, CGI, XML, SET

(32)

Heterogeneidad

Heterogeneidad y código móvil

- Código Móvil: código que puede enviarse

desde un computador a otro y ejecutarse

en este último.

(33)

Extensibilidad

Es la característica que determina si el

sistema puede extenderse de varias

maneras. Un sistema puede ser abierto o

cerrado con respecto a extensiones de

hardware o de software.

Para lograr la extensibilidad es

(34)

Extensibilidad

Los Sistemas Distribuidos Abiertos pueden

extenderse a nivel de hardware mediante la

inclusión de computadoras a la red y a nivel de

software por la introducción de nuevos servicios

y la reimplementación de los antiguos.

(35)

Escalabilidad

Se dice que un sistema es escalable si conserva

su efectividad cuando ocurre un incremento

significativo en el número de recursos y en el

número de usuarios.

El diseño de SSDD escalables presenta los

siguientes retos:

- Control de costo de los recursos físicos

: para

que un sistema con

n

usuarios sea escalable, la

cantidad de recursos físicos necesarios para

(36)

Escalabilidad

Controlar la degradación del rendimiento:

-

Ejemplo: Los algoritmos que emplean

estructuras jerárquicas se comportan mejor

frente al crecimiento de la escala, que los

algoritmos que emplean estructuras lineales.

-

Evitar cuellos de botella:

los algoritmos deberían

ser descentralizados

.

(37)

Seguridad

La seguridad tiene tres componentes:

- Confidencialidad: protección contra individuos

no autorizados

- Integridad: protección contra la alteración o

corrupción

(38)

Seguridad

Existen dos desafíos que no han sido

resueltos en su totalidad:

(39)

Tratamiento de Fallos

Detección de fallos

:

- Ejemplo: Se pueden utilizar sumas de

comprobación (checksums) para detectar

datos corruptos en un mensaje.

Enmascaramiento de fallos

: Ejemplos:

- Los mensajes pueden retransmitirse

(40)

Tratamiento de Fallos

Tolerancia de fallos:

los programas clientes de

los servicios pueden diseñarse para tolerar

ciertos fallos. Esto implica que los usuarios

tendrán también que tolerarlos.

Recuperación de fallos:

implica el diseño de

software en el que, tras una caída del servidor,

el estado de los datos puede reponerse o

retractarse (rollback) a una situación anterior.

Redundancia:

emplear componentes

(41)

Concurrencia

Existe la posibilidad de acceso concurrente a un

mismo recurso. La concurrencia en los

servidores se puede lograr a través de threads.

Cada objeto que represente un recurso

compartido debe responsabilizarse de

garantizar que opera correctamente en un

entorno concurrente.

Para que un objeto sea seguro en un entorno

concurrente, sus operaciones deben

(42)

Transparencia

Transparencia de acceso: permite acceder a los

recursos locales y remotos empleando

operaciones idénticas.

Transparencia de ubicación: permite acceder a

los recursos sin conocer su localización.

Transparencia de concurrencia: permite que

(43)

Transparencia

Transparencia de replicación: permite replicar

los recursos sin que los usuarios y los

programadores necesiten su conocimiento.

Transparencia frente a fallos: permite ocultar

fallos.

Transparencia de movilidad: permite la

reubicación de recursos y clientes en un sistema

sin afectar la operación de los usuarios y los

(44)

Transparencia

Transparencia de rendimiento: permite

reconfigurar el sistema para mejorar el

desempeño según varíe su carga.

Transparencia al escalado: permite al sistema y

a las aplicaciones expandirse en tamaño sin

(45)

Ventajas de los S.

Paralelos

9 Velocidad: Un sistema paralelo puede

resolver un problema con mayor velocidad que una única

computadora.

9 Compartir de datos: Varias tareas acceden a datos comunes.

9 Diferentes Arquitecturas: Aceptan diferentes arquitecturas: de pasaje de mensaje o de memoria

compartida.

9 Comunicación: Depende de la arquitectura.

(46)

S. Distribuidos y

Redes de Computadoras

Servicios SON Kernel Servicios SON Kernel Servicios SON Kernel Aplicaciones Distribuidas

Kernel Kernel Kernel

Aplicaciones Distribuidas Sistema Operativo Distribuido

Sistema Operativo de Redes

(47)

S. Distribuidos y

Redes de Computadoras

Servicios SON Kernel Servicios SON Kernel Servicios SON Kernel Aplicaciones Distribuidas

Servicios de Middleware Middleware

Provee:

9 Transparencia 9 Portabilidad

(48)

S. Distribuidos y

Redes de Computadoras

Sistemas Operativo de Red:

9Propio S.O.

9Acceso remoto a recursos.

9No tolerancia a las fallas.

9No transparente.

Sistemas Operativo Distribuido:

9Distribuido en los nodos.

9Administración de recursos.

9Transparencia de acceso.

(49)

Trampas – suposiciones que no

son ciertas

• Cuando se diseña un SSDD se suponen premisas que son erróneas (Peter Deutsh)

- La red es confiable - La red es segura

- La red es homogénea - La topología no cambia - La latencia es igual a cero - El ancho de banda es infinito

- El costo del transporte es igual a cero

(50)

Tipos de SSDD (Tanembaum)

Sistemas distribuidos de cómputo

- Sistemas de cómputo en cluster

- Sistemas de cómputo en grid

Sistemas distribuidos de información

- Sistema de procesamiento de transacciones

- Integración de aplicaciones empresariales

Sistemas distribuidos masivos

- sistemas caseros

- sistemas electrónicos para el cuidado de la

salud

(51)

Sistemas distribuidos de cómputos

• Sistemas de cómputos en cluster

Adquirieron popularidad cuando mejoró relación precio-rendimiento de las PCs.

Un cluster es un conjunto de dos o más computadoras acopladas en red que comparten un subsistema de discos, y un software que trabajan como un sistema

único garantizando el funcionamiento normal del sistema aunque falle una de las computadoras.

La computación en cluster se utiliza para la

programación en paralelo donde un solo programa (de cálculo intensivo) corre paralelamente en múltiples

(52)

Cluster

(53)

Cluster de Google

Se estima en cada centro

de datos tiene de 10 a 12

cluster con 2000

maquinas por cluster.

(54)

Sistema de cómputos en Grid

• Una característica del cómputo basado en cluster es su homogeneidad. Todas tienen el mismo sist. Operativo y en esencia son las mismas.

• Los sist. basados en Grid tienen alto grado de heterogeneidad

• Permite compartir recursos en forma coordinada y

controlada para resolver problemas en organizaciones multiinstitucionales dinámicas.

• Complementa las tecnologías existentes de computación distribuida.

• Las organizaciones virtuales por medio de Grid hacen posible la existencia de grupos diversos de

(55)
(56)

Capas de la arquitectura Grid ( Foster) y su

relación con las capas de Internet

• La capa más baja de fabricación proporciona interfaces para recursos locales ubicados en un sitio específico

• La capa de conectividad consiste en protocolos de

comunicación para dar soporte a las transacciones del grid

• La capa de recursos es responsable de la administración de un solo recurso

• La capa colectiva se encarga de manipular el acceso a múltiples recursos

(57)

Sistema de cómputo en grid

(58)

Sistemas distribuidos de información

• Muchas de las soluciones de middleware existentes son el resultado del trabajo con la infraestructura con la cual es más fácil integrar aplicaciones dentro de un sistema de información corporativa.

• Podemos distinguir varios niveles donde la integración tomó parte.

• La integración a nivel más bajo permitía a los clientes alojar cierto número de peticiones dentro de una sola petición y ejecutarla como transacción distribuida

• Mientras más sofisticadas se hicieron las aplicaciones se fueron separando de manera gradual en

componentes independientes

(59)

Sistemas de procesamiento de

transacciones

• En la práctica en una base de datos las operaciones se llevan a cabo generalmente en forma de transacciones

• Programar utilizando transacciones requiere primitivas de transacción especiales que deben ser

proporcionadas ya sea por el sistema distribuido

subyacente o por el lenguaje del sistema en tiempo de ejecución.

• Ejemplos típicos de primitivas de transacción son: begin_transaction, read, write, etc.

• La lista de primitivas puede variar: por ej. Para un

sistema de correo existen primitivas para enviar y recibir correos, pero en un sistema contable aparecen otras

primitivas.

(60)

Sistemas de procesamiento de

transacciones

• Las transacciones cumplen cuatro características: 1. atómicas: para el mundo exterior, la transacción es

indivisible

2. consistentes: la transacción no viola sistemas invariantes

3. aisladas: las transacciones concurrentes no interfieren entre sí.

4. durables: una vez que se confirma una transacción, los cambios son permanentes

Surgen problemas con las transacciones distribuidas o anidadas. Para ello se suele utilizar el monitor de transacciones, cuya tarea es la de permitirle a una aplicación el acceso a múltiples servidores/base de datos ofreciendo un modelo de programación

(61)
(62)

Integración de aplicaciones

empresariales

• Conforme las aplicaciones fueron desligándose de las bases de datos sobre las que se desarrollaron, la

necesidad de que las instalaciones integraran

aplicaciones independientes de sus base de datos se volvió evidente.

• Los componentes de las aplicaciones debían ser

capaces de comunicarse entre sí de manera directa y no solo mediante un comportamiento de petición respuesta soportado por sistemas de procesamiento de

transacciones.

(63)

Sistemas distribuidos masivos

Los SSDD anteriores tiene como característica

la estabilidad: los nodos están fijos y tienen una

conexión más o menos permanente.

La situación se ha vuelto más compleja con los

sistemas móviles y embebidos.

En estos casos un error es difícil de enmascarar

o recuperarse del mismo.

(64)

Sistemas caseros

• Estos sistemas consisten en una o más PC’s que integran aparatos electrónicos de consumo como

televisores, equipos de audio y video, dispositivos para juegos, smartphones, PDAs, etc.

• Existe un área de conocimiento llamada domótica que trata estos temas.

• Desde la perspectiva de sistema existen varios retos a vencer: reconfiguración automática del sistemas (ayuda Plug and play universal); administración sencilla del

espacio personal; sincronización de documentos y tareas.

(65)

Sistemas electrónicos para el cuidado

de la salud

• Son sistemas basados en dispositivos electrónicos (personales) utilizados para el cuidado de la salud.

• El objetivo es dar seguimiento de bienestar a personas asistidas para que el dispositivo se ponga en contacto con el médico en caso de dificultad.

• Los sistemas para el cuidado de la salud están

equipados con diversos sensores en una BAN ( body-area network) de preferencia inalámbrica.

(66)
(67)

Redes de monitoreo

• Estas redes incluyen redes de sensores, mesh, controladores, vigilancia, etc.

• Las redes mesh forman una colección de nodos (fijos) que se comunican a través de vínculos inalámbricos.

• Una red de sensores típica está constituida de decenas o centenas de nodos relativamente pequeños, usan

baterías y la comunicación es inalámbrica. Los criterios de diseño apuntan a la eficiencia en el consumo.

(68)
(69)
(70)

Redes de monitoreo

• Para organizar una red de monitoreo como una BD distribuida existen 2 posibilidades:

- Los sensores no cooperan sino que solo envían sus datos a la BD centralizada

- Se envían consultas a sensores importantes y se dejan que cada sensor calcule una respuesta, ello requiere que el operador agregue las respuestas devueltas.

Partes de los problemas se han solucionado con TinyOS y TinyDB.

Para hacer las cosas eficientemente, las consultas son más espaciadas durante un período de tiempo de tal manera que los recursos de red y la energía se

Referencias

Documento similar

Este trabajo de fin de grado trata sobre la integración de las gafas de realidad aumentada Epson Moverio Bt-200 en la plataforma multimodal de Vocalia N-Terac, que consta de una

E n el presente capítulo conoceremos lo que es un sistema distribuido, mostraremos algunas definiciones, conoceremos algunas de las ventajas que obtenemos al

En este capítulo se realiza el estudio de diferentes sistemas de control, ante la necesidad de cambiar el sistema de control distribuido que se encontraba instalado en la

Por último, se desarrollará un SCADA para la simulación de la planta piloto mediante Delta V, y se pondrá en funcionamiento algoritmos de control que permita el

Desarrollo de un sistema de telecontrol distribuido para la gestión de arquetas hidráulicas basado en dispositivos móviles y motes

Este estudio tiene como objetivo comparar las aplicaciones educativas musicales gratuitas y de pago en móviles y tabletas con sistema operativo Android y Apple para conocer

- Hito 2: Implementación del sistema – plataforma de registro distribuido (blockchain) - Hito 3: Desarrollo y despliegue del sistema de captura manual de datos (software) - Hito

Luego de conocer estas características, se emplea el software EASE para realizar la simulación del comportamiento de los altavoces dentro del sistema distribuido, en él, se