Cap 01 Introduccion
Cap 01 Introduccion
Cap 01 Introduccion
Capítulo1
Introducción
Introducción
La vida moderna se desenvuelve en un
entorno de redes:
Celulares
Empresariales
De control de producción
campus
hogar
En el vehículo
Etc.
Actualmente
Aumento de la dependencia de los
negocios y la sociedad en general, en
los sistemas y aplicaciones distribuidas
Se requiere analizar grandes cantidades
de datos mediante sistemas distribuidos
geográficamente (gran capacidad)
Objetivos de estudio
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights
reserved. 0-13-239227-5
Definición de Leslie
Lamport’s (informal)
“Un Sistema distribuido es aquel en el cual yo no
puedo terminar mi trabajo debido a que alguna
computadora de la que nunca había oído, ha
colapsado.“
Leslie Lamport –investigador en sistemas distribuidos,
desarrollador LaTeX y BibTex
Sistema de computación distribuida
es aquel en el que los recursos utilizados por las
aplicaciones se distribuyen a través de numerosas
computadoras conectadas por una red.
(Anthony , 2015)
Definición de un Sistema
Distribuido (1)
“Un Sistema en el cual un componente hardware o software localizado en
computadoras enlazadas en una red, se comunican y coordinan sus
acciones solamente mediante el paso de mensajes.” [Coulouris]
Figura 1-1. Un Sistema distribuido organizado como un middleware. La capa middleware se extiende sobre múltiples
máquinas, y ofrece a cada aplicación la misma interface.
Aplicaciones distribuidas
modernas
Buscadores web
Redes sociales
Sistemas de educacion online
Juegos en línea con multijugadores
Sistemas de negocios financieros
Sistemas de control de vuelos
redes de sensores IOT
Redes eléctricas y smart grid
Computación en la nube
Minería de datos
Razones para usar Sistemas
distribuidos (1)
1. Separación funcional entre recolección y procesamiento:
Hay computadores con diferentes capacidades y propósitos:
Clientes - servidores
Recolección - procesamiento de datos
Scaling transparency allows the system and applications to expand in scale without
change to the system structure or the application algorithms
Concurrencia
El acceso compartido a recursos debe ser posible (varios usuarios):
planificación, evitar interbloqueos (deadlocks)
Escalabilidad
Los sistemas deberían trabajar eficientemente al incrementarse el número
de usuarios
El desempeño del Sistema debería incrementarse con la adición de
recursos extras
• Problemas
CS: Cuello de botella al incrementar usuarios y servicios
CD: Saturación de líneas de comunicación al tener datos centralizados (Ej. Resolución de DNS – guía tel.
única)
CA: Sobrecarga de la red al pasar datos al algoritmo centralizado y distribuir a los usuarios
Investigación. Próximo viernes
1. Historia de TCP, Internet, WWW y tendencias futuras del Internet
2. 4ta revolución industrial
Distributed Computing Platforms
5. The Grid
29-3-19
6. Cloud Computing
3 personas
5 a 10 paginas de informe
Retos (cont…)
Escalabilidad (cont…)
Tipos de escalamiento
• Scaling out (escalado horizontal)
• adicionar más nodos al Sistema – Ej. Cluster
• Pros
• Economía: Máquinas simples con menos recursos
• Crecimiento gradual en mas o en menos
• Contras
• Comunicación: Incremento de complejidad , no la máxima velocidad
• Administración y desarrollo
Seguridad
El Sistema solo debería ser usado en la forma que se
planeó: Encriptamiento, autentificación, control de
acceso, disponibilidad, etc.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights
reserved. 0-13-239227-5
Tipos de Sistemas distribuidos
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights
reserved. 0-13-239227-5
1. Tipos de Sistemas de cómputo
distribuidos
A) Sistema Multicomputador / Clusters
conjunto de computadores que trabajan juntos para que, puedan ser
vistos como un solo sistema, en el que cada nodo hace la misma
tarea; controlado y planificado por software
Características
No hay memoria compartida
Homogéneos en hardware y software
Corre el mismo SO
Preguntas relacionadas:
• Como podemos configurar (dinamicamente) un
árbol eficiente en una red de sensores?
• Cómo se da el agregamiento de resultados? Puede
ser controlado?
• Qué sucede cuando los enlaces caen?
Redes vehiculares 2-03-19
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights
reserved. 0-13-239227-5
Redes vehiculares
Preguntas relacionadas
Infraestructura mas eficiente en costo y funcionalidad
Restricciones de tiempo de conexión
Prioridad de transmisión de datos
Cómo se tratan datos duplicados y envejecidos
Privacidad y seguridad de datos
Ética en la prevención de accidentes (v. autónomos)
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights
reserved. 0-13-239227-5
Falsas asunciones del
desarrollador novel:
(Peter Deutsch- Sun Microsystems)
• La red es confiable.
• La red es segura.
• La red es homogenea.
• La topología no cambia.
• La latencia es cero.
• El ancho de banda es infinito.
• El coste de transporte es cero.
• No hay un administrador.
Tendencias en sistemas
distribuidos 5/4/19
Intranet %
%
% ISP
backbone
satellite link
desktop computer:
server:
network link:
Desktop
computers
Print and other servers email server
Local area
Web server network
email server
print
File server
other servers
the rest of
the Internet
router/firewall
B. Computacion mobil y
ubicua
Internet
Printer
Mobile
phone
Camera Laptop Host site
• C. Creciente importancia de los sistemas
distribuidos multimedia:
provee acceso a musica, radio, canales de TV, video
conferencia para muchos usuarios.
Content delivery networks: Netflix, Youtube, etc.
D. Tendencias Cloud
El uso de los sistemas distribuidos como un utilitario o
commodity (Cloud Computing – Computacion como servicio)
Tarea (3personas)
1.1 Proporcione cinco tipos de recursos de hardware y cinco tipos de datos o recursos de
software que puedan ser compartidos de manera útil. Da ejemplos de cómo se comparten en
la práctica en sistemas distribuidos
1.2 ¿Cómo se sincronizan los relojes en dos computadoras que están conectadas por una red
local sin referencia a una fuente de tiempo externa? ¿Qué factores limitan la precisión del
procedimiento que describió? ¿Cómo se sincronizarían los relojes en una gran cantidad de
computadoras conectadas por Internet? Discuta la exactitud de ese procedimiento.
1.3 Considere las estrategias de implementación para los juegos en línea multijugador
masivos. En particular, ¿qué ventajas ve al adoptar un enfoque de servidor único para
representar el estado del juego multijugador? ¿Qué problemas puede identificar y cómo se
pueden resolver?
1.4 Un usuario llega a una estación de ferrocarril que nunca ha visitado antes, y lleva un PDA
que es capaz de establecer una red inalámbrica. Sugiera cómo se le puede proporcionar al
usuario información sobre los servicios y comodidades locales en esa estación, sin ingresar el
nombre o los atributos de la estación. ¿Qué desafíos técnicos deben superarse?
1.5 ¿Comparar y contrastar la computación en la nube con una informática cliente-servidor
más tradicional? ¿Qué hay de novedoso sobre la computación en la nube como concepto?
1.6 Use la World Wide Web como ejemplo para ilustrar el concepto de compartir recursos,
cliente y servidor. ¿Cuáles son las ventajas y desventajas de HTML, URL y HTTP como
tecnologías centrales para la búsqueda de información? ¿Alguna de estas tecnologías es
adecuada como base para la informática cliente-servidor en general?
1.7 Un programa de servidor escrito en un idioma (por ejemplo, C ++) proporciona la
implementación de un objeto BLOB (Binary large object) al que deben acceder los clientes que
pueden escribirse en un idioma diferente (por ejemplo, Java). Las computadoras cliente y servidor
pueden tener hardware diferente, pero todas ellas están conectadas a internet. Describa los
problemas debidos a cada uno de los cinco aspectos de la heterogeneidad que deben resolverse
para que un objeto cliente pueda invocar un método en el objeto del servidor.
1.8 Un sistema distribuido abierto permite agregar y acceder a nuevos servicios de recursos
compartidos, como el objeto BLOB en el Ejercicio 1.7, mediante una variedad de programas
cliente. Discutir en el contexto de este ejemplo, hasta qué punto las necesidades de apertura
difieren de las de la heterogeneidad.
1.9 Suponga que las operaciones del objeto BLOB están separadas en dos categorías: operaciones
públicas que están disponibles para todos los usuarios y operaciones protegidas que están
disponibles solo para ciertos usuarios nombrados. Indique todos los problemas involucrados para
garantizar que solo los usuarios nombrados puedan usar una operación protegida. Suponiendo que
el acceso a una operación protegida proporciona información que no debe revelarse a todos los
usuarios, ¿qué otros problemas surgen?
1.10 El servicio INFO gestiona un conjunto de recursos potencialmente muy grandes, a los que
pueden acceder los usuarios a través de Internet mediante una clave (un nombre de cadena).
Discuta un enfoque para el diseño de los nombres de los recursos que logre la pérdida mínima de
rendimiento a medida que aumente la cantidad de recursos en el servicio. Sugiera cómo se puede
implementar el servicio INFO para evitar cuellos de botella de rendimiento cuando la cantidad de
usuarios sea muy grande.
1.11 Enumere los tres componentes principales del software que pueden fallar cuando un proceso
del cliente invoca un método en un objeto servidor, dando un ejemplo de falla en cada caso.
Sugiera cómo se pueden hacer los componentes para tolerar los errores de los demás.
1.12 Un proceso de servidor mantiene un objeto de información compartido como el objeto
BLOB del ejercicio 1.7. Proporcione argumentos a favor y en contra de permitir que el servidor
ejecute las solicitudes del cliente al mismo tiempo. En el caso de que se ejecuten
simultáneamente, dé un ejemplo de posible "interferencia" que puede ocurrir entre las operaciones
de diferentes clientes. Sugiera cómo se puede prevenir tal interferencia.
1.13 Un servicio es implementado por varios servidores. Explicar por qué los recursos pueden ser
transferidos entre ellos. ¿Sería satisfactorio que los clientes multicast todas las solicitudes al
grupo de servidores como una forma de lograr la transparencia de la movilidad para los clientes?
1.14 Los recursos en la World Wide Web y otros servicios se nombran por URL. ¿Qué denotan las
iniciales URL? Dé ejemplos de tres tipos diferentes de recursos web que pueden nombrarse por
URL.
1.15 Dar un ejemplo de una URL HTTP. Enumere los componentes principales de una URL
HTTP, indicando cómo se denotan sus límites e ilustre cada uno de su ejemplo. ¿En qué medida
es transparente la ubicación HTTP URL?