Principios de Sistemas
Distribuidos
Sistemas distribuidos y aplicacin en la
empresa
Revolucin computacional
Costos elevados antes de 1985 => pocos recursos computacionales
en las empresas
Mitad de los 80s: Desarrollo de los microprocesadores
Diseo de redes de alta velocidad (LAN, WAN)
Resultado:
Factibilidad, facilidad de sistemas cmputo compuestos por grandes
cantidades de computadoras interconectadas mediante una red de
alta velocidad.
Sistema Distribuido - Definicin
Aquel en el que los componentes de hardware o software, localizados en computadores unidos
mediante red, comunican y coordinan sus acciones solo mediante paso de mensajes.
Coulouris, Dollimore, Kindberg
Un sistema distribuido es una coleccin de computadoras independientes que dan al usuario la
impresin de constituir un nico sistema coherente.
Tanenbaum, Van Steen
Sistema Distribuido - Motivacin
Se construyen, se disean y se utilizan en la necesidad y el deseo de compartir
recursos.
Se debe facilitar a los usuarios (y a las aplicaciones) el acceso a los recursos
remotos, y compartirlos de manera controlada y eficiente.
Recurso: Todo lo que se puede compartir de manera til en un sistema de
computadores conectados en red.
Hardware
Software
Motivaciones
Econmica
Administracin
Sistemas Distribuidos: Internet
intranet
ISP
backbone
Enlace satelital
Computador de Escritorio
Servidor
Enlace de red
Sistemas Distribuidos: Intranet
email server
Desktop
computers
print and other servers
Local area
network
Web server
email server
File server
print
other servers
the rest of
the Internet
router/firewall
Sistemas Distribuidos: Computacin
mvil
Internet
Host intranet
WAP
gateway
Wireless LAN
Mobile
phone
Printer
Laptop
Camera
Host site
Home intranet
Desafos en el diseo de Sistemas
Distribuidos
Hay muchos sistemas distribuidos
Diseo an bastante simple
Gran posibilidad de desarrollar grandes servicios
Gran posibilidad de desarrollar aplicaciones ms ambiciosas
Muchos desafos ya fueron resueltos
Nuevos desarrolladores necesitan tomarlos en cuenta
Desafo: Heterogeneidad
Heterogeneidad
Composicin de un todo de partes de distinta naturaleza
Variedad y Diferencia
Internet es una red heterognea
Red
Hardware de los computadores
Sistemas operativos
Lenguajes de programacin
Implementaciones de diferentes desarrolladores
Las diferencias se encuentran enmascaradas: todos los computadores
conectados utilizan protocolos estndares de internet para
comunicarse unos con otros
Desafo: Heterogeneidad
Middleware
Software que provee una abstraccin de programacin, as como un enmascaramiento de la
heterogeneidad subyacente de las redes, hardware, sistema operativo y lenguaje de programacin.
El objetivo es ofrecer la vista de un sistema nico.
Los Sistemas Distribuidos se organizan a menudo en trminos de una capa de software, y una
capa subyacente constituida por sistemas operativos y recursos bsicos de comunicacin
Cdigo mvil: Cdigo que puede ser enviado de un computador a otro. para ejecutarse.
Desafo: Extensibilidad y Escalabilidad
Caracterstica que determina si el sistema puede ser extendido y re implementado en diversos
aspectos.
Se determina por el grado en el que se pueden aadir nuevos servicios para compartir recursos
y su puesta a disposicin para su uso por los clientes.
Requisitos
Disponibilidad de Especificacin y documentacin de interfaces
Encarar la complejidad de componentes
Dan origen a:
Sistemas distribuidos abiertos
Desafo: Seguridad
La informacin tiene mucho valor Se debe considerar la seguridad
Sistema Seguro
Confidencialidad
Integridad
Disponibilidad
Necesidad de considerar mecanismos de seguridad para transmitir datos por redes abiertas
(Internet)
Desafo: Escalabilidad
Los Sistemas distribuidos operan en todo tipo de escalas
Pequeas redes privadas (Intranet)
Grandes Redes (Internet)
Un sistema es escalable si conserva su efectividad cuando ocurre un incremento significativo en
el tamao de los recursos y el nmero de usuarios.
Desafo: Escalabilidad
Escalabilidad
Tamao (usuarios y recursos)
Geogrficamente
Administrativamente
Desafo: Escalabilidad
Retos en el diseo de sistemas distribuidos escalables:
Control del costo de los recursos fsicos
Control de la prdida de prestaciones (degradacin)
Prevencin de desbordamiento de recursos de software
Cuellos de botella de las prestaciones
Desafo: Tolerancia a fallos.
Al producirse fallos (HardWare o Software) se producen resultados incorrectos, incompletos, etc
Algunos fallos son detectables
Desafo: Concurrencia
Varios clientes pueden acceder a un mismo recurso compartido al mismo tiempo.
Control de modificaciones y concurrencia.
Desafo: Transparencia
Ocultar al usuario, al programador y/o al sistema de la separacin y ubicacin de los
componentes en un sistema distribuido, de modo que perciba al sistema como un todo.
Acceso
Ubicacin
Concurrencia
Replicacin
Frente a fallos
Movilidad
Prestaciones
Escalabilidad
Principios de
Sistemas Distribuidos