Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccion A La Computacion Distribuida
Introduccion A La Computacion Distribuida
distribuida
Departamento de
Matemticas y
Computacin
Grado en Ingeniera
Informtica
Sistemas distribuidos
Objetivos
Introducir el concepto de sistema distribuido
y de computacin distribuida
Repasar las caractersticas de los sistemas
distribuidos
Repasar los retos tecnolgicos que supone el
empleo de sistemas distribuidos y su
construccin, y analizar algunas de las
soluciones
Introducir la necesidad de repasar conceptos
bsicos de E/S, concurrencia,
comunicaciones
Grado en Ingeniera Informtica Sistemas Distribuidos
Bibliografa
Computacin distribuida: conceptos y aplicaciones. M.L. Liu.
Addison Wesley (2004). ISBN: 84-7829-066-4
Captulo 1: Introduccin a la computacin distribuida
Agenda
Definicin
Repaso de los tipos de computacin
Desafos de los sistemas distribuidos
Conceptos bsicos en computacin
distribuida
Definicin
Un sistema distribuido es aquel en el que los componentes localizados
en computadores, conectados en red, comunican y coordinan sus
acciones mediante el paso de mensajes [Coulouris, 2001]
Conjunto de computadores independientes, interconectados a travs
de una red y que son capaces de colaborar para realizar una tarea
[Liu, 2004]
Coleccin de computadores independientes que aparecen ante los
usuarios como un nico computador [Tanenbaum 1996]
En cualquier caso
Varios computadores (nodos) conectados
Redes de cualquier tipo
Los nodos pueden estar en un mismo rack o en la otra punta del
mundo
Apariencia de un nico sistema
Grado en Ingeniera Informtica Sistemas Distribuidos
Consecuencias de la definicin
Lidiaremos con la concurrencia
Propia de una red en la que varios ordenadores funcionan a la
vez
Permite sacar gran partido de los recursos del grupo
Desafo: coordinacin, sincronizacin
Aparecern retos de coordinacin:
Hecho de ponerse de acuerdo para lograr hacer alguna accin
Cuando los programas en los nodos necesitan colaborar coordinan sus
acciones mediante intercambio de mensajes y protocolos.
Pueden darse situaciones de bloqueo, espera indefinida, de acceso a
zonas protegidas (regiones crticas), diferencias de reloj,
Consecuencias de la definicin
Cuidado con la seguridad
Para compartir y cooperar entre s los nodos del S.D. deben
estar abiertos al exterior.
Esto implica riesgos para la disponibilidad
Es necesario gestionar la disponibilidad para evitar abusos,
ataques, suplantaciones,
Consecuencias de la definicin
Fallos independientes
Si todos los sistemas pueden fallar, los distribuidos pueden
fallar ms
Fallos de comunicacin
Fallos en algn nodo
Agenda
Definicin
Repaso de los tipos de computacin
Desafos de los sistemas distribuidos
Conceptos bsicos en computacin
distribuida
10
Tipos de computacin
Monoltica
La que utiliza una nica CPU para ejecutar uno o ms
programas por cada aplicacin
No conectado a red: slo puede usar los recursos de los que
dispone por s
Puede ser monousuario o multiusuario
En multiusuario
Los recursos del computador se reparten en el tiempo (time-slicing)
Los usuarios (que puede estar dispersos geogrficamente) se
conectan a travs de terminales
Ejemplos: IBM 360, Univac 1100 (Mainframes)
11
Distribuida
Usa mltiples computadores conectados a una red, cada uno de los
cuales aporta su CPU y sus recursos
Los usuarios de cada equipo (multiusuario o monousuario) pueden
acceder a los recursos de su propio computador y a los de los dems
Cooperativa
Mltiples equipos, programas o recursos colaboran para realizar una
tarea
Ejemplos:
P2P, GRID computing
Computacin voluntaria: BOINC, RiojaScience@home
12
Escalabilidad
En la computacin monoltica los recursos estaban limitados por la capacidad del
computador
En la distribuida es ms fcil aadir o captar ms recursos si son necesarios
Load Balancing
Tolerancia a fallos
Es posible replicar recursos para presentar disponibilidad en presencia de fallos
(Mirroring)
13
Red enorme
Programas ejecutndose en diferentes ordenadores
Se comunican mediante paso de mensajes (ej HTTP)
Empleando un medio comn de comunicaciones
El conjunto de servicios es abierto (se pueden aadir servidores)
Intranet
Porcin de Internet con acceso restringido por una poltica de seguridad
Mltiples configuraciones: desde una nica LAN a varias LAN en distintos
pases (usando VPN o no)
Se conecta a Internet mediante un router
Se protege del exterior y limita los accesos desde el interior mediante un
cortafuegos (firewall)
Optimiza el acceso al exterior mediante caches (locales) y servidores proxy
(compartidos)
Hay casos en los que ni siquiera estn conectadas a Internet (hospitales, redes
militares, bancos, )
14
Agenda
Definicin
Repaso de los tipos de computacin
Desafos de los sistemas distribuidos
Conceptos bsicos en computacin
distribuida
15
Heterogeneidad
Heterogeneidad: variedad y diferencia
Se da en: redes, hardware de ordenadores, sistemas operativos,
lenguajes de programacin, implementaciones de diferentes
desarrolladores
La forma de tratar esta diversidad es mediante el uso de estndares
Ejemplo de todos los das: USB
Internet usa un gran nmero de esos protocolos que permiten que
nodos de distinto tipo (mquina, SO,) se entiendan
HTTP, FTP, SMTP, POP,
16
Middleware
Capa software que proporciona una abstraccin de programacin y
de la heterogeneidad subyacente (redes, S.O., lenguajes de
programacin)
Proporciona un modelo computacional uniforme a disposicin de los
programadores de aplicaciones distribuidas:
Abstrae los protocolos y mecanismos de bajo nivel y
proporciona una serie de posibilidades de alto nivel a los
desarrolladores
Ejemplos de middleware:
17
Extensibilidad
Caracterstica que determina si un sistema
puede ser ampliado y/o re-implementado en
distintos aspectos
Aadir nuevos recursos y servicios (ej: un nuevo
disco)
Ampliar la capacidad de servicio de los ya
existentes
Modificar los ya existentes por otros ms capaces
(ej: cambio de BD)
18
Seguridad
Los recursos de informacin que un sistema distribuido maneja
pueden ser de alto valor
La disponibilidad lleva asociados riesgos de seguridad
La seguridad tiene varios componentes (aspectos):
Confidencialidad: proteccin contra el descubrimiento por parte de
individuos no autorizados
Acceso no autorizado a sistemas y a la informacin que contienen
Captura de mensajes intercambiados con datos sensibles
19
Escalabilidad
Un sistema es escalable si conserva su efectividad cuando ocurre
un incremento significativo en el nmero de recursos y nmero de
usuarios
Para que un sistema sea escalable debe ser extensible
El diseo de sistemas escalables presenta como retos:
Control de los recursos fsicos
Al crecer la demanda debera ser posible, a coste razonable, extender los
recursos fsicos que prestan el servicio (ej: Balanceo de carga / mirroring)
20
Tipos de escalabilidad
Vertical
Comprar hardware ms potente, reemplazando el
actual.
Est limitado por la tecnologa disponible
Es sencillo de poner en prctica
El coste no suele escalar linealmente: un servidor el
doble de rpido suele ser ms del doble de caro
Horizontal
Comprar hardware adicional, que complementa al
actual.
Es ms complejo de disear, construir y mantener
Requiere planificacin: el SW y HW debe permitir
hacerlo
Grado en Ingeniera Informtica Sistemas Distribuidos
21
Tratamiento de fallos
Concepto relacionado: disponibilidad
Porcin del tiempo en el que un sistema es utilizable.
22
Tolerancia a fallos:
Capacidad de un sistema de conservar su funcionalidad an en
caso de producirse algn fallo.
Hacer un sistema 100% a prueba de fallos puede ser muy costoso
(o imposible)
Hay ciertos fallos que pueden tolerarse
23
Concurrencia
Una caracterstica bsica de los sistemas distribuidos: comparticin
de recursos
Hay sistemas que reciben miles de solicitudes por minuto
(servidores Web)
Los sistemas no deben procesar estas solicitudes de forma
secuencial (sera muy limitante)
Existe la posibilidad de que un mismo recurso sea accedido por
varios usuarios al mismo tiempo (ej, BD, sistema de subastas,
aplicacin de reserva de turno de prcticas)
Es necesario disponer de mecanismos que garanticen la integridad
de los recursos ante accesos concurrentes (ej.: los problemas
clsicos de acceso a BD)
Una solucin podra pasar por disponer de mecanismos de bloqueo
24
Transparencia
Es la ocultacin al usuario y al programador de la separacin de los
componentes del sistema distribuido, de forma que lo perciba como
un todo ms que como una coleccin de componentes individuales
(ej RMI).
Tipos de transparencia
Transparencia de acceso que permite acceder a los recursos locales
y remotos empleando operaciones idnticas.
Transparencia de ubicacin que permite acceder a los recursos sin
conocer su localizacin.
Transparencia de concurrencia que permite que varios procesos
operen concurrentemente sobre recursos compartidos sin interferencia
mutua.
Transparencia de replicacin que permite utilizar mltiples
ejemplares de cada recurso para aumentar la fiabilidad y las
prestaciones sin que los usuarios y los programadores de aplicaciones
necesiten su conocimiento.
25
Transparencia (II)
Transparencia frente a fallos que permite ocultar los fallos, dejando
que los usuarios y programas de aplicacin completen sus tareas a
pesar de fallos del hardware o de los componentes software.
Transparencia de movilidad que permite la reubicacin de recursos y
clientes en un sistema sin afectar la operacin de los usuarios y los
programas.
Transparencia de prestaciones (HW) que permite reconfigurar el
sistema para mejorar las prestaciones segn vara su carga.
Transparencia al escalado (SW) que permite al sistema y a las
aplicaciones expandirse en tamao sin cambiar la estructura del
sistema o los algoritmos de aplicacin. Se apoya en el anterior.
26
Transparencia (III)
Ejemplos de transparencia
De acceso: sistema de ficheros, RMI
De ubicacin: las URL
son nombres lgicos, no direcciones fsicas (gracias al
DNS)
No tiene transparencia de movilidad
27
Agenda
Definicin
Repaso de los tipos de computacin
Desafos de los sistemas distribuidos
Conceptos bsicos en computacin
distribuida
28
Qu se necesita saber?
Algunos de los conceptos clave que hemos de repasar
para poder hacer programacin distribuida son:
Programacin en red
Lleva pareja un repaso profundo de los APIs de entrada/salida (I/O)
Programacin concurrente
29
Departamento de
Matemticas y
Computacin
Grado en Ingeniera
Informtica
Sistemas distribuidos
Balanceador
Cluster
Aplicacin A
Aplicacin B
Aplicacin C
Aplicacin D
Copias
(mirrors)
Aplicacin A
Aplicacin B
Aplicacin C
Aplicacin D
Volver
Grado en Informtica Programacin de Bases de datos
31
Balanceador
Cluster
Copias
(mirrors)
Volver
Grado en Informtica Programacin de Bases de datos
Aplicacin A
Aplicacin B
Aplicacin C
Aplicacin D
32