Sistemas Distribuidos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 19

SISTEMAS

DISTRIBUIDOS.
Que es un sistema distribuido.

 Un sistema distribuido es aquel en el que los componentes localizados


en computadores, conectados en red, comunican y coordinan sus
acciones mediante el paso de mensajes [Coulouris, 2001]
 Conjunto de computadores independientes, interconectados a través
de una red y que son capaces de colaborar para realizar una tarea
[Liu, 2004]
 Colección de computadores independientes que aparecen ante los
usuarios como un único computador [Tanenbaum 1996]
 En cualquier caso:
 Varios computadores (nodos) conectados Redes de cualquier tipo
 Los nodos pueden estar en un mismo rack o en la otra punta del
mundo
 Apariencia de un único sistema
Consecuencias de la definición
 Lidiaremos con la concurrencia
 Propia de una red en la que varios ordenadores funcionan a la vez
 Permite sacar gran partido de los recursos del grupo
 Desafío: coordinación, sincronización
 Aparecerán retos de coordinación:
 Hecho de ponerse de acuerdo para lograr hacer alguna acción
 Cuando los programas en los nodos necesitan colaborar coordinan sus
acciones mediante intercambio de mensajes y protocolos.
 Pueden darse situaciones de bloqueo, espera indefinida, de acceso a
zonas protegidas (regiones críticas), diferencias de reloj, …
 Aparecerán retos de sincronización:
• Regular el orden de actuación de los intervinientes
• Puede estar basada en relojes: problemas de diferencia de reloj
• Otro aspecto relacionado: protocolos síncronos o asíncronos
Consecuencias de la definición

 Cuidado con la seguridad


 Para compartir y cooperar entre sí los nodos del S.D. deben estar
abiertos al exterior.
 Esto implica riesgos para la disponibilidad
 Es necesario gestionar la disponibilidad para evitar abusos, ataques,
suplantaciones, …
Consecuencias de la definición

 Fallos independientes
 Si todos los sistemas pueden fallar, los distribuidos pueden fallar más
 Fallos de comunicación
 Fallos en algún nodo
 Un problema común es que el resto de los nodos pueden no ser
conscientes del fallo en la red o en otro nodo hasta un tiempo
después de que éste ocurra
 Incluso pueden seguir trabajando de forma autónoma esperando
el restablecimiento del servicio
 “Un sistema distribuido es aquel en el que un fallo de un computador
que ni siquiera sabes que existe puede dejar tu propio ordenador
inutilizable” [Leslie Lamp
Características de los sistemas
distribuidos
 La computación usa múltiples recursos que están situados
físicamente dispersos.
 En un sistema distribuido se ejecutan múltiples aplicaciones a la vez.
 Las aplicaciones pueden pertenecer a diferentes usuarios.
 Un sistema distribuido es a menudo heterogéneo
 Un sistema distribuido no tiene una memoria compartida, al menos
a nivel de hardware.
 Las características y las formas de comunicarse de las
computadoras quedan ocultas para el usuario.
 Los usuario y las aplicaciones pueden interactuar con el sistema
distribuido de manera consistente y uniforme sin importar donde y
cuando se tenga lugar
 Con el objeto de dar soporte a computadoras y redes
heterogéneas mientras se ofrece la vista de un sistema único, los
sistemas distribuidos se organizan a menudo en términos de una
capa de software.
 S .D están colocados de manera lógica entre una capa de alto
nivel que consta de usuarios y aplicaciones y una capa subyacente
constituida por los sistemas operativos y recursos básicos de
comunicación.
 Un sistema distribuido comúnmente se apoya de una capa de
middleware que se extiende sobre diversas máquinas, y ofrece a
cada aplicación la misma interfaz.
Objetivos.

 Un sistema distribuido debe hacer que los recursos sean fácilmente


accesibles; debe de ocultar de manera razonable el hecho de que
los recursos están distribuidos por toda la red; debe de ser abierto; y
debe de ser escalable.
 • Hacer accesibles los recursos
 El principal objetivo de un sistema distribuido es facilitar a los
usuarios (y a las aplicaciones) el acceso a los recursos remotos
(físicos, bases de datos, archivos, redes, etc.), y compartirlos de
manera controlada y eficiente. • Groupware (Sistemas de edición y
trabajo colaborativo)
Transparencia en la distribución
 Se deberá de ser capaz de presentarse ante los usuarios y las
aplicaciones como si se tratará de una sola computadora.
 Aunque la transparencia de distribución generalmente es
considerada preferible para cualquier sistema distribuido, no
siempre es posible ocultar por completo los aspectos de distribución
a los usuarios, además de no ser la mejor idea
Grado de apertura

 Un sistema distribuido abierto es un sistema que ofrece servicios de


acuerdo con las reglas estándar que describen la sintaxis y la
semántica de dichos servicios.
 Interoperabilidad: Define la extensión mediante la cual dos
implementaciones de sistemas o componentes de fabricantes
distintos pueden coexistir y trabajar juntos.
 Portabilidad: Define la extensión mediante la cual una aplicación
desarrollada para un sistema distribuido A se pueda ejecutar en un
sistema distribuido B.
Escalabilidad
 • Un sistema distribuido puede ser escalable con respecto a su
tamaño, i.e. agregar fácilmente usuarios y recursos.
 • Existe la escalabilidad geográfica, según los alcances
geográficos de la conexión al sistema.
 • El hablar de escalabilidad implica resolver una gran cantidad de
problemas de diversos tipos.
Ejemplos de sistemas distribuidos

 • Internet
 • Una intranet, que es porción de Internet gestionada por una
organización
 • La computación móvil y ubicua
Implicaciones de los sistemas
distribuidos
• Concurrencia: en la red existirán programas concurrentes, los cuales
requieren coordinarse y compartir recursos.
• Inexistencia de reloj global: La coordinación estrecha depende a
menudo de una idea compartida del instante en el que ocurren las
acciones de los programas. Aunque hay limites de precisión para
sincronizar relojes, no hay una única noción global del tiempo
correcto.
• Fallos independientes: Es necesario planificar las consecuencias de
posibles fallos. Un posible fallo en la red aislará a una computadora,
pero los programas que se ejecutan no deberán de detener su
ejecución
Desafíos de los sistemas distribuidos

 Aunque en la actualidad se encuentran sistemas distribuidos por todas


partes, su diseño es aún bastante simple y quedan todavía grandes
posibilidades de desarrollar servicios y aplicaciones más ambiciosas.
Para ello es necesario enfrentarse a los siguientes desafíos:
 • Heterogeneidad
 • Extensibilidad
 • Seguridad
 • Escalabilidad
 • Tratamiento de fallos
 • Concurrencia
 • Transparencia
 Heterogeneidad: En los diferentes elementos redes, hardware,
sistemas operativos, lenguajes de programación, implementaciones
de distintos desarrolladores.
 • El middleware provee una abstracción de programación, así
como un enmascaramiento de la heterogeneidad subyacente de
las redes, hardware, sistemas operativos y lenguajes de
programación.
 • La mayoría de los midleware se implementas obre protocolos de
Internet, enmascarando la diversidad de redes existente.
 • Ejemplo. Java RMI y CORBA soportan un lenguaje de
programación y transparentan el proceso del paso de mensajes y
la distribución de los objetos.
 • Heterogeneidad y código móvil: En un sistema distribuido cabe la
posibilidad de enviar código de una computadora a otra que será
la el que finalmente lo ejecutará.
 • Es muy común depender de una máquina virtual.
 • Extensibilidad: Los sistemas distribuidos deberían de ser extensibles,
el primer paso es la publicación de las interfaces de sus
componentes, aunque es un verdadero reto la integración de
componentes escritos por distintos desarrolladores.
 • Seguridad: Se puede emplear encriptación para proporcionar
una protección adecuada a los recursos compartidos y mantener
secreta la información sensible cuando se transmite un mensaje a
través de la red. Los ataques de denegación de servicio son un
problema.
 Escalabilidad: Un sistema distribuido es escalable si el coste de
añadir un usuario es una cantidad constante en términos de
recursos que se deberán añadir.
 Los algoritmos empleados para acceder a los datos compartidos
deberían evitar cuellos de botella y los datos deberían estar
estructurados jerárquicamente para dar los mejores tiempos de
acceso.
 Los datos frecuentemente accedidos pudieran estar replicados.
 Tratamiento de fallos: Cualquier proceso, computadora o red
puede fallar independientemente de los otros. En consecuencia
cada componente necesita estar al tanto de las formas posibles en
que pueden fallar los componentes de los que depende y estar
diseñado para tratar apropiadamente con cada un
 Concurrencia: La presencia de múltiples usuarios en un sistema
distribuido es un fuente de peticiones concurrentes a sus recursos.
Cada recurso debe estar diseñado para ser seguro en un entorno
concurrente.
 Transparencia: Ciertos aspectos de la distribución deben ser
invisibles al programador de aplicaciones de modo que solo se
necesite ocuparse del diseño de su aplicación en particular.
 Ejm. no debería de ocuparse de su ubicación o los detalles de
como accede a sus operaciones por otros componentes, o si será
replicado o migrado. Incluso los fallos de las redes y los procesos
deberán presentarse en forma de excepciones que puedan ser
tratadas. o de estos fallos.

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy