Está en la página 1de 45

Mquinas Computadoras II

Introduccin a los Sistemas


Distribuidos
UNIVERSIDAD NACIONAL DE INGENIERIA
FACULTAD DE ELECTROTECNIA Y COMPUTACIN
DEPARTAMENTO DE SISTEMAS DIGITALES Y TELECOMUNICACIONES
Ingeniera Electrnica - MC2
Contenido
Aspectos del Diseo
Conceptos de Software
Introduccin a los Sistemas Distribuidos 2
Definicin, Ventajas y Desventajas
DEFINICIN, VENTAJAS Y
DESVENTAJAS
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 3
Qu es un Sistema Distribuido?
Una coleccin de
computadoras
independientes que
aparecen ante los
usuarios del sistema
como una nica
computadora.
Un sistema en el
cual los
componentes de
hardware o software
ubicados en una red
de computadoras,
comunican y
coordinan sus
acciones usando
nicamente
mensajes.
Una coleccin de
computadoras
autnomas
enlazadas por una
red con software
diseado para
producir una
facilidad de
computo
integrado.
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-4
Comentarios sobre definicin
La arquitectura del
sistema esta
compuesta de
mquinas
autnomas, lo que
significa que ellas
pueden trabajar
independientemente.
El usuario percibe el
sistema distribuido
como un sistema
nico resolviendo
problemas (aunque
en la realidad son
muchas
computadoras en
lugares diferentes)
Corriendo el software
del sistema
distribuido, las
computadoras son
habilitadas para
coordinar sus
actividades y
compartir recursos
como hardware,
software, datos.
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-5
Transparencia
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 6
Habilita que los
recursos locales y
remotos sean
accedidos usando
operaciones idnticas.
Acceso
Habilita que los
recursos sean
accedidos sin
conocimiento de su
localizacin fsica o
red.
Localizacin
Habilita que varios
procesos operen en
paralelo usando
recursos compartidos
sin interferencia entre
ellos
Concurrencia
Habilita que varias
instancias de recursos
sean usadas para
incrementar la
confiabilidad y
desempeo sin
conocer las replicas
Rplica
Habilita que la falla y
recuperacin de un
recurso no afecte la
ejecucin de una tarea
Fallas
Permite que un
recurso puede ser
movido hacia otra
localizacin sin afectar
la operacin del
sistema
Movilidad
Permite al sistema ser
configurado para
mejorar el desempeo
segn la carga varia
Desempeo
Permite al sistema y
aplicaciones
expandirse en escala
sin cambiar la
estructura del sistema
y los algoritmos de las
aplicaciones
Escalabilidad
7
Ejemplo de Sistemas Distribuidos
Finanzas y comercio
eComercio p.e. Amazon y eBay,
PayPal, banca en lnea
La Sociedad de la
Informacin
Informacin Web y motores de
bsquedas, ebooks, Wikipedia;
redes sociales: Facebook y
MySpace.
Industria Creativa y
entretenimiento
Juegos online, msica y
pelculas en el hogar, contenido
generado por usuarios, p. e.
YouTube, Flickr
Salud
Informtica en la salud, registro
de paciente en lnea, monitoreo
de pacientes
Educacin
E-leaning, ambiente de
aprendizaje virtual; enseanza a
distancia
Transporte y logstica
GPS en sistema para encontrar
rutas, servicios de mapas;
Google Maps, Google Earth
Ciencia
El Grid como una tecnologa
para colaboracin entre
cientficos
Gestin ambiental
Sensor de tecnologa para
monitorear terremotos,
inundacin o tsunamis
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2
Ejemplo: La Internet World Wide
Web
La Internet como tal no es un sistema distribuido, pero es
una infraestructura para implementar aplicaciones y
servicios distribuidos ( como el World Wide Web).
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-8
Internet
Browsers
Web servers
www.google.com
www.cdk3.net
www.w3c.org
Protocols
Activity.html
http://www.w3c.org/Protocols/Activity.html
http://www.google.comlsearch?q=kindberg
http://www.cdk3.net/
File system of
www.w3c.org
Crecimiento de la Internet
Fecha Computadoras Servidores Web Porcentaje
1993, July
1,776,000 130 0.008
1995, July 6,642,000 23,500 0.4
1997, July 19,540,000 1,203,096 6
1999, July 56,218,000 6,598,697 12
2001, July 125,888,197 31,299,592 25
42,298,371 2003, July
2005, July
~200,000,000
353,284,187 67,571,581
21
19
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 9
Ventajas sobre los Sistemas
Centralizados
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-10
Economa
Los microprocesadores ofrecen mejor proporcin
precio/rendimiento que los mainframes.
Velocidad
Un sistema distribuido puede tener mayor poder
de cmputo que un mainframe
Distribucin
inherente
Algunas aplicaciones utilizan mquinas que estn
separadas a cierta distancia
Confiabilidad
Si una mquina se descompone, el sistema
puede sobrevivir como un todo
Crecimiento
por
incrementos
Se puede aadir poder de cmputo en pequeos
incrementos
Ventajas sobre Computadoras
Aisladas
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-11
Permiten que varios usuarios tengan acceso a una base de datos
comn
Datos Compartidos
Permiten que varios usuarios compartan perifricos caros, como las
impresoras de color
Dispositivos Compartidos
Facilitan la comunicacin de persona a persona; por ejemplo, mediante
el correo electrnico
Comunicacin
Difunde la carga de trabajo entre las mquinas disponibles en la forma
ms eficaz en cuanto a costos
Flexibilidad
Desventajas
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-12
Existe
poco
software
para los
sistemas
distribuidos
en la
actualidad
La red se
puede
saturar o
causar
otros
problemas
Un acceso
sencillo
tambin se
aplica a
datos
secretos
Desafos de un Sistema
Distribuido
Concurrencia
Concurrencia o paralelismo
es la norma.
La capacidad de manejar
ms recursos
concurrentemente puede ser
incrementada aadiendo
ms recursos.
La sincronizacin es critica.
Sin Reloj Global
Coordinacin entre
programas depende de una
idea compartida del
momento en que ocurren las
acciones
Hay un lmite en la precisin
de los relojes globales.
Fallas independientes
Fallas de procesos
individuales pueden
permanecer ocultas
Fallas en el sistema pueden
no ser detectadas por
procesos individuales
Como un sistema nico,
fallas independientes no
deberan afectar a los
usuarios.
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-13
Orden de Eventos en Tiempo Real
send
receive
send
receive
m
1
m
2
2
1
3
4
X
Y
Z
Physical
time
A
m
3
receive receive
send
receive receive receive
t
1
t
2
t
3
receive
receive
m
2
m
1
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 14
Dispositivos Portables
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 15
16
Computacin en la Nube (Cloud
computing)
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2
ASPECTOS DEL DISEO
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 17
18
Generaciones de Sistemas
Distribuidos
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2
19
Paradigma de Entidades de
Comunicacin y Comunicacin
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2
Arquitecturas de Sistemas Distribuidos
Cliente-Servidor Entre pares
Mltiples
Servidores
Proxy Web Applet Servicios Web
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 20
Clientes invocan servidores
individuales
Server
Client
Client
invocation
result
Server
invocation
result
Process:
Key:
Computer:
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 21
Arquitectura
Entre Pares
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 22
Servicio proporcionado por
mltiples servidores
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 23
Pearson Education 2012
Servidor Web Proxy
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 24
Applet de Web
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 25
Cliente Ligeros (thin client) y
Servidores de Computo
Thin
Client
Application
Process
Network computer or PC
Compute server
network
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 26
Servicios Web
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 27
Un Web Service Broker
es un servicio complejo
expuesto como Web
Service. Coordina la
interaccin entre uno o
ms servicios, agrega
responses y puede
demarcar
transacciones.
Sistema Abierto
Sistema Distribuido Abierto
Capaz de interactuar con servicios de otros sistemas abiertos,
sin importar del ambiente en que estn:
El sistema debe estar formado de interfaces bien definidas
El sistema debe interoperar fcilmente
El sistema debe soportar la portabilidad de las aplicaciones
Como lograr un Sistema Abierto
Al menos el sistema distribuido debe ser independiente de la
heterogeneidad de los ambientes:
Hardware
Plataforma
Lenguajes
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-28
Desempeo
el desempeo de las estaciones de trabajo
individual
la velocidad de la infraestructura de
comunicaciones
la carga extra relacionada con la confiabilidad en
el sistema (tolerancia a falla)
flexibilidad en la distribucin de la carga de
trabajo: por ejemplo asignacin de tareas de
usuarios a procesadores ociosos
Muchos factores influencian el
desempeo de un sistema distribuido:
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-29
Escalabilidad
el costo de agregar recursos debe ser razonable,
la prdida en el desempeo con el incremento de
usuarios y recursos debe ser controlada,
los recursos de software no deben agotarse (nmero
de bits en direcciones, nmero de entradas en
tablas, etc.)
debe evitarse cuellos de botella en el desempeo
(cuidado con recursos compartidos que son
accesados frecuentemente)
El sistema debe
permanecer
eficiente aun con
un incremento
considerable en el
nmero de usuarios
y recursos
conectados (Def.):
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-30
Tcnicas de Escalabilidad
Distribucin: Particionar los datos y programas en mltiples
mquinas:
mover programa a los clientes (applets de Java)
descentralizar servicio de nombres (DNS)
descentralizar sistemas de informacin (WWW)
Replicacin: Hacer copias de los datos disponibles en mquinas
diferentes.
replicar servidores de archivos
replicar base de datos
crear sitios Web espejos
Cacheo: Permitir a los procesos clientes acceder copias locales
cache de Web (browser/web proxy)
cache de archivos (en servidor y clientes)
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-31
Confiabilidad
Confiabilidad es uno de los principales objetivos de un
sistema distribuido
Si algunas mquinas fallan, el sistema debe continuar
trabajando con una reducida cantidad de recursos
deben haber una cantidad muy pequea de recursos crticos
piezas claves de hardware y software deben ser replicadas
Los datos en el sistema no deben perderse, y deben
recuperarse de copias almacenadas redundantemente
en diferentes servidores
Mientras ms copias se mantengan es mejor la confiabilidad,
pero es ms difcil mantener la consistencia
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-32
Tolerancia a Fallas
El sistema debe detectar una falla y actuar en una
manera razonable:
detectando las fallas: Algunas pueden ser detectadas (con cheksum
por ejemplo).
enmascarando la falla: continuar trabajando con posiblemente un
desempeo reducido, pero sin perder datos o informacin
tolerando las fallas: se informa al usuario el problema, dejndolo libre
de para intentar de nuevo ms tarde. Los sistemas puede tolerar fallas
con el uso de redundancia en los componentes
recuperndose de las fallas: diseo de software para que se recupera
rollback
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-33
Seguridad
Recursos disponible y mantenidos en un sistema distribuido tienen
valor intrnseco para los usuarios
La seguridad debe proporcionar
Confidencialidad: proteccin contra accesos de usuarios no
autorizados
Integridad: proteccin contra alteraciones o corrupcin
Disponibilidad: proteccin contra interferencias cuando se accedan los
recursos
Retos a alcanzar
Rechazo a ataques contra servicios. El ataque consiste en
bombardear un servicio con solicitudes sin sentido.
Seguridad de cdigo portable. Los posibles efectos de correr un
programa dentro de un correo electrnico es impredecible.
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-34
CONCEPTOS DE SOFTWARE
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 35
Conceptos de Software
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 36
Capas en un Sistema Distribuido
Un sistema distribuido puede ser organizado como un
Middleware (Almacn Intermedio). Este middleware se
extiende sobre muchas mquinas.
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-37
Redes de Computadoras vs
Sistemas Distribuidos
Redes de Computadoras: las computadoras autnomas
son explcitamente visibles (tienen que ser direccionadas
en forma explicita)
Sistemas Distribuidos: existencia de mltiples
computadoras es transparente.
Sin embargo
Muchos problemas en comn,
En algunos aspectos las redes (por ejemplo, servicio de
nombres) son sistemas distribuidos, y
Normalmente, cada sistema distribuido se basa en servicios
proporcionados por una red de computadoras.
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-38
Sistemas Operativos
Uniprocesador
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-39
Aplicaciones son separadas del cdigo del sistema operativo a travs
de un micro kernel.
Sistema Operativo Distribuidos
El SO en cada computadora conoce acerca de las otras computadoras.
El SO es generalmente el mismo.
Servicios son generalmente (transparentemente) distribuidos en las computadoras.
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-40
Software: Sistemas Operativos de
Redes
Software dbilmente acoplado en hardware dbilmente acoplado.
Cada mquina tiene su propio SO con facilidades de redes (puede tener diferentes SO).
El sistema operativo controla las estaciones de trabajo en lo individual.
Servicios estn ligados a nodos individuales (servidores de archivos, ftp, www, etc)
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-41
Sistemas Distribuidos
Software fuertemente acoplado sobre un hardware dbilmente acoplado.
SO en cada computadora no necesita saber de las otras computadoras y no necesita ser el mismo.
Servicios son generalmente (transparentemente) distribuidos en las computadoras
Los protocolos usados en cada Middleware deben ser los mismos, as como las interfaces hacia las
aplicaciones
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-42
Comparacin entre los Sistemas
Caractersticas
SO distribuido
NOS
SO basado en
Middleware
Multiproc. Multicomp.
Grado de Transparencia Muy Alto Alto Bajo Alto
Mismo SO en todos los
nodos?
S S No No
Nmero de copias de SO 1 N N N
Comunicacin basada en:
Memoria
compartida
Mensajes Archivos Segn modelo
Manejo de Recursos
Global,
central
Global,
distribuido
Por nodo Por nodo
Escalabilidad No Moderada S Varia
Flexibilidad Cerrada Cerrada Abierta Abierta
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 1-43
Categoras
de
Middleware
Introduccin a los Sistemas Distribuidos Ingeniera Electrnica - MC2 44
Ingeniera Electrnica MC2