Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas Distribuidos
Índice
Concepto
Características
Ejemplos
Compartición de recursos
Retos en SD
The World Wide Web
Tendencias
2
Índice
Concepto
Características
Ejemplos
Compartición de recursos
Retos en SD
The World Wide Web
Tendencias
3
Concepto
Un sistema distribuido:
Sistema en el que los componentes localizados en
ordenadores conectados mediante una red se
comunican y coordinan mediante el paso de
mensajes.
mensaje
RED
4
Índice
Concepto
Características
Ejemplos
Compartición de recursos
Retos en SD
The World Wide Web
Tendencias
5
Características
Concurrencia de componentes
Carencia de un reloj global
Fallos independientes
6
Concurrencia
Cada componente trabaja de forma
independiente en un ordenador diferente
Compartiendo recursos
hardware (impresoras, discos…) o software
(páginas web, ficheros…)
Debe existir coordinación para el uso de estos
recursos compartidos
7
RED
Carencia de un reloj global
Los programas que cooperan entre sí coordinan sus
acciones mediante intercambio de mensajes.
A menudo, la coordinación depende del momento en
que ocurren las acciones en los programas.
Pero hay límites en la exactitud en la que los
ordenadores de una red pueden sincronizar sus
relojes ya que no hay una noción única del tiempo.
8
RED
Fallos independientes
Todos los ordenadores pueden fallar.
Es responsabilidad del diseñador del sistema
planificar las consecuencias de los posibles
fallos.
Fallos adicionales en SD
Fallos en la red pueden aislar a ordenadores
conectados (esto no significa que paren la
ejecución)
El fallo de un ordenador (o terminación inesperada
de un programa) no es conocida inmediatamente
9
Índice
Concepto
Características
Ejemplos
Compartición de recursos
Retos en SD
The World Wide Web
Tendencias
10
Ejemplos de sistemas
distribuidos
Finanzas y comercio
Comercio electrónico (Amazon y eBay) y las tecnologías de pago
subyacentes (PayPal)
Banca y negociación online (banking and trading)
Sistemas para mercados financieros
Sociedad de la información
Repositorio de información (World Wide Web)
Motores de búsqueda (Google y Yahoo)
Bibliotecas digitales
Digitalización de fuentes de información heredadas (Google Books)
Contenido generado por el usuario (YouTube, Wikipedia)
Redes sociales
11
Ejemplos de sistemas
distribuidos
Industria creativa y entretenimiento
Juegos online
Música y películas
Contenido generado por el usuario (Youtube)
Salud
Registros de paciente con historia clínica
Telemedicina: diagnóstico remoto, cirugía remota
Asistencia y monitorización de personas mayores en el hogar
Educación
Entornos de enseñanza virtual
Aprendizaje basado en comunidades o colaborativo
12
Ejemplos de sistemas
distribuidos
Transporte y logística
Tecnologías de localización y rutas
Sistemas de gestión de tráfico
Coches o aviones modernos
Servicios de mapas (MapQuest, Google Maps y Google Earth)
Ciencia
Grid para almacenamiento, análisis y procesamiento de datos científicos
Gestión ambiental
Sensores para monitorizar y gestionar el entorno natural
Avisos de desastres naturales
Coordinación de respuestas de emergencia
Análisis de parámetros ambientales para entender fenómenos naturales
como el cambio climático
13
Índice
Concepto
Características
Ejemplos
Compartición de recursos
Retos en SD
The World Wide Web
Tendencias
14
Compartición de recursos
Recursos hardware: impresoras o discos
Recursos software: ficheros o bases de datos
Recursos con funcionalidades específicas: motor de
búsqueda o convertidores de monedas
Los usuarios de un sistema distribuido pueden
interaccionar entre ellos o no
No interacción entre usuarios: motor de búsqueda
Interacción entre usuarios: trabajo cooperativo asistido por
computador (CSCW, Computer-Supported Cooperative
Working)
15
Compartición de recursos
Servicio: parte específica de un sistema de
computador que gestiona una colección relacionada
de recursos y presenta su funcionalidad a los
usuarios y aplicaciones.
Servicio de ficheros para acceder a ficheros compartidos
Servicio de impresora para imprimir documentos
Servicio de pago electrónico para comprar
16
Compartición de recursos
Servidor: proceso que acepta peticiones de programas que se
ejecutan en otros ordenadores para realizar un servicio y
responde apropiadamente.
Cliente: proceso que realiza la petición. El cliente invoca una
operación sobre el servidor.
Invocación remota: Interacción completa entre el cliente y el
servidor desde que el cliente envía la petición hasta que recibe
la respuesta
Modelo cliente-servidor
En OOP: Petición NI
Objeto servidor T
Midleware Midleware
24
Escalabilidad
Un sistema es escalable si sigue siendo eficaz cuando
se incrementa considerablemente el número de
recursos o de usuarios.
Retos del diseño de un sistema escalable:
Controlar el coste de los recursos físicos:
El coste debe ser proporcional al número de usuarios
Controlar la pérdida de rendimiento
Prevenir el agotamiento de los recursos software
Evitar cuellos de botella
Mejor algoritmos descentralizados
Replicación y almacenamiento en memoria caché
Múltiples servidores para realizar tareas comunes de una forma
concurrente
25
Manejo de fallo
Fallos de software o hardware pueden producir resultados
incorrectos o paradas antes de completar las operaciones.
En SD son fallos parciales: Unos componentes fallan mientras
que otros siguen su ejecución.
Técnicas para tratar los fallos:
Detección de fallos
Enmascaramiento de fallos
Tolerancia a fallos
Recuperación de fallos
Redundancia
Disponibilidad: Proporción de tiempo que un sistema está
disponible para su uso
26
Concurrencia
Los servicios generalmente permiten procesar
concurrentemente múltiples peticiones de clientes
La peticiones se ejecutan en hilos concurrentes
Los objetos que representan los recursos
compartidos deben asegurar que operan
correctamente en entornos concurrentes
(seguro/safe)
Para que un objeto sea seguro en un entorno
concurrente sus operaciones deben ser sincronizadas
de tal forma que sus datos permanezcan
consistentes.
Técnicas estándares de SO: semáforos … 27
Transparencia
Ocultación al usuario y al programador de la
separación de componentes en un SD, de tal forma
que el sistema es percibido como un todo más que
como una colección de componentes independientes.
En el Modelo de Referencia para el Procesamiento
Distribuido y Abierto (RM-ODP, Reference Model for
Open Distributed Processing) de ISO se especifican 8
formas de transparencia
28
Transparencias
Transparencia de acceso
Permite acceder a recursos locales y remotos
usando operaciones idénticas
Transparencia
Transparencia de localización de red
30
Transparencias
Transparencia de movilidad
Permite mover recursos y clientes en un sistema
sin afectar la operación de usuarios o programas
Transparencia de rendimiento
Permite a un sistema ser reconfigurado para
mejorar el rendimiento conforme varía la carga
Trasparencia de escala
Permite expandir el sistema sin cambios en la
estructura del sistema o en los algoritmos de la
aplicación
31
Calidad de servicio (QoS)
Fiabilidad (reliability)
Seguridad
Rendimiento (performance)
Respuesta (responsiveness)
Productividad computacional (throughput)
Garantías de tiempo
Adaptabilidad
Disponibilidad
32
Índice
Concepto
Características
Ejemplos
Compartición de recursos
Retos en SD
The World Wide Web
Tendencias
33
The World Wide Web
Publicación y acceso a recursos y servicios
Proporciona una estructura hipertexto entre los
documentos almacenados
Los documentos contienen enlaces
Sistema abierto
Basado en comunicaciones estándares y contenidos
estándares publicados
Basada en:
HTML: lenguaje para especificar contenido y diseño de páginas
URLs: Para la identificación de documentos y otros recursos
HTTP: Reglas de interacción entre los clientes y servidores
34
The World Wide Web
Clientes
Servidores web
http://www.google.com/search?q=obama
www.google.com
http://www.cdk5.net
www.cdk5.net
www.w3c.org
standards
http://www.w3c.org/standards/faq.html#conformance
faq.html 35
The WWW: páginas dinámicas
Para interacción con servicios (no sólo para recuperación de
datos)
Ej:
Para comprar en una tienda online
El usuario (en el navegador) rellena un formulario
Los datos del formulario son enviados al servidor vía HTTP
Como parámetros de entrada al servicio o bien usando la petición POST
El programa invocado en el servidor produce una salida en HTML
que es la que se devuelve al usuario
El programa invocado se llama CGI (Common Gateway Interface)
En el cliente también se puede procesar código para modificar la
página
Por ejemplo para comprobación de datos
36
The WWW: Servicios web
Para interacción con servidores web desde
cualquier programa
Incremento de la necesidad de intercambiar
muchos tipos de estructuras de datos
XML para representar datos específicos de la
aplicación en una forma structurada y
estándar
Las operaciones del recurso son invocadas
mediante peticiones http
37
Índice
Concepto
Características
Ejemplos
Compartición de recursos
Retos en SD
The World Wide Web
Tendencias
38
Tendencias
Computación ubicua (ubiquitous,
omnipresente) y móvil
Sistemas multimedia distribuidos
Sistemas distribuidos como una utilidad
39