Está en la página 1de 39

Tema 1: Introducción a los

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

 La forma de acceder al servicio es a través de un


conjunto de operaciones (interfaz de comunicación)
que el servicio exporta
 El servicio de ficheros proporciona las operaciones de leer, escribir,
crear y borrar ficheros

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

 Objeto cliente Cliente E


R
Servidor Recurso
F
 Método remoto A
Respuesta Z
17
Índice
 Concepto
 Características
 Ejemplos
 Compartición de recursos
 Retos en SD
 The World Wide Web
 Tendencias
18
Retos en sistemas distribuidos
 Heterogeneidad
 Apertura
 Seguridad
 Escalabilidad
 Manejo de fallo
 Concurrencia
 Transparencia
 Calidad de servicio
19
Heterogeneidad
 Servicios y aplicaciones en ordenadores
y redes heterogéneas
 Heterogeneidad: Variedad y diferencia
 Redes
 Hardware
 Sistemas operativos
 Lenguajes de programación
 Implementaciones por diferentes
desarrolladores 20
Heterogeneidad
 Middleware (software intermedio o intermediario):
 Capa de software que proporciona una abstracción de
programación que enmascara la heterogeneidad subyacente
(redes, hardware, SO y lenguajes de programación).
Base común
Para las aplicaciones Aplicación Aplicación

API midleware API midleware

Midleware Midleware

 Ejemplos: S.O S.O


 Remote Procedure Call (RPC) para C Hardware Hardware
 Java Remote Method Invocation (RMI) para Java
 CORBA para C, Java y otros lenguajes
Red

 Proporcionan un modelo computacional uniforme para ser usado


por los programadores de servidores y aplicaciones distribuidas
Ej: CORBA  Invocación de métodos remotos
21

Heterogeneidad y
código móvil
 Código móvil: código de programa que puede ser transferido de
un ordenador a otro y se ejecuta en el destino
 El código que se ejecuta en una máquina no es necesariamente
adecuado para la ejecución en otra máquina ya que los
programas son normalmente específicos para el conjunto de
instrucciones de la máquina y el S.O.
 Una máquina virtual (de java) puede proporcionar una forma de
ejecutar código en distintas máquinas.
 El compilador genera código para la MV en vez de para una
máquina particular.
 Este código es interpretado por la MV
 La MV tiene que ser implementada en cada tipo de ordenador
 Ej: se incluyen programas Javascript en páginas que son
cargadas en navegadores 22
Apertura
 Característica que determina si un sistema puede ser extendido
y reimplementado de varias formas
 En SD: grado en el que nuevos servicios pueden ser añadidos y
usados por una variedad de programas clientes
 La especificación y documentación de las interfaces de los
componentes tienen que estar disponibles para los
desarrolladores
 Publicación de interfaces
 SD abiertos son extensibles
 en el nivel de hardware añadiendo nuevos ordenadores a la red
 En el nivel de software introduciendo nuevos servicios y
reimplementando los existentes
 Independencia de los fabricantes
23
Seguridad
 Confidencialidad: protección frente a usuarios no
autorizados
 El contenido del mensaje no debe ser visto por usuarios no
autorizados
 Se debe asegurar la identidad del usuario remoto
 Integridad: protección frente alteración o corrupción
de la información
Cifrado de datos

 Disponibilidad: protección frente interferencias con


los medios para acceder al recurso

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

 Permite acceder a los recursos sin conocer sus


localizaciones físicas o de red
 Transparencia de concurrencia
 Permite a varios procesos operar
concurrentemente usando recursos compartidos
sin interferencias entre ellos
29
Transparencias
 Transparencia de replicación DNS roth La IP

 Permite tener múltiples instancias de los recursos


para aumentar la fiabilidad y el rendimiento sin
que los usuarios o programadores tengan
conocimiento de estas réplicas
 Transparencia de fallo
 Permite ocultar fallos, de forma que los usuarios y
programas puedan completar sus tareas a pesar
de los fallos de hardware o software

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

También podría gustarte