Documentos de Académico
Documentos de Profesional
Documentos de Cultura
M2L1
M2L1
Introducción
Cuando hablamos de un sistema distribuido, nos referimos a múltiples ordenadores o
recursos informáticos independientes que forman parte de un sistema y en su conjunto
son capaces de ofrecer algún servicio común al usuario (Muñoz Escoí et al., 2012).
Al igual que en cualquier aplicación o sistema concurrente, existen múltiples
actividades que colaboran entre sí. En este caso dichas actividades se estarán
ejecutando en ordenadores diferentes y para colaborar deberán enviarse
mensajes entre ellas. Por este motivo, todo sistema distribuido es también un
sistema concurrente y todo lo que se ha aprendido en las lecturas anteriores
ofrecerá una buena base para entender cómo debe gestionarse un sistema
distribuido. (Muñoz Escoí et al., 2012, p. 141)
Por lo tanto,
Desde el punto de vista del hardware, se dispondrá de múltiples computadoras,
físicamente distribuidas, con software encargado de ocultar la existencia de estas
múltiples máquinas, brindando al usuario transparencia. Este tendrá la sensación
de que está utilizando una sola computadora con gran capacidad de cómputo y
con un amplio conjunto de recursos disponibles. Los ordenadores de un sistema
distribuido deben colaborar entre sí para ofrecer esa imagen de sistema único.
Si pensamos que a cada instante habrá muchos usuarios de un buscador, los cuales
realizan un alto número de consultas, entonces advertimos que una única máquina, por
más potente que sea, no podrá soportar dicha carga. De esta manera, cada vez que un
usuario realice una consulta, podrá ser atendido por una computadora diferente. Por lo
tanto, en este caso práctico y de uso diario, se observa que esa imagen de sistema
único y coherente se ha proporcionado de forma transparente (Muñoz Escoí et al.,
2012).
Asimismo, las características comunes a todo sistema distribuido son las siguientes.
Entonces,
Por una parte, se dispondrá del sistema operativo, encargado de la gestión de los
recursos locales y de proporcionar herramientas de comunicación estándar. Por
otra parte, el middleware será el encargado de realizar cierta gestión uniforme de
los recursos existentes en todo el sistema distribuido. (Muñoz Escoí et al., 2012,
p. 144)
Por tanto, este último brindará servicios y funciones comunes a las aplicaciones,
además de aquello que ofrece el sistema operativo. Generalmente, el middleware se
encarga de la gestión de los datos, servicios de aplicaciones, mensajería, autenticación
y gestión de la interfaz de programación de aplicaciones (API). En la figura 1, se puede
ver una arquitectura básica de sistemas distribuidos.
Es aquel que se ajusta a estándares que especifican y describen tanto la sintaxis como
la semántica de las operaciones que constituyen el servicio ofrecido por tal sistema. Al
utilizar estándares, se potencia la flexibilidad, interoperabilidad y portabilidad.
El objetivo en cualquier sistema abierto con un alto grado de flexibilidad será el
proporcionar un amplio surtido de mecanismos para desarrollar sus funciones, de
manera que tanto los administradores como los usuarios puedan decidir qué
políticas emplear a la hora de utilizar los mecanismos existentes. De esa manera,
cada usuario obtendrá un sistema bien adaptado a sus necesidades de uso.
(Muñoz Escoí et al., 2012, p. 153)
4. Ser un sistema escalable
La escalabilidad de un sistema distribuido puede analizarse desde tres
perspectivas diferentes y complementarias.
1. La red es fiable.
2. La red es segura.
3. La red es homogénea.
4. La topología no cambia.
5. El retardo de transmisión de los mensajes es cero.
6. El ancho de banda es infinito.
7. Habrá un administrador.
Claro que esto es solo un modelo ideal, por lo cual en la realidad será muy
diferente. Un entorno distribuido no cumplirá con ninguna de estas características,
por ejemplo, la red no tiene por qué ser siempre fiable (los mensajes pueden
perderse o retrasarse indefinidamente), ni segura (la información transmitida
puede ser vista por otras aplicaciones si no hemos tomado las debidas
precauciones de seguridad), ni homogénea (habrá múltiples ordenadores en
nuestro sistema y cada uno puede estar utilizando un sistema operativo diferente
y tener nodos con distintas características: cantidad de RAM, capacidad del disco
duro, procesador, sistema operativo, etc.), la topología podrá cambiar si alguno de
los ordenadores del sistema deja de funcionar o algún switch o rúter se estropea,
los mensajes tardan un tiempo variable en ser transmitidos y entregados, el ancho
de banda está limitado, el administrador del sistema no siempre estará disponible
para resolver los problemas que vayan surgiendo.
Todo esto nos sirve para tenerlo en cuenta en el diseño del sistema, antes de la
etapa de desarrollo, tomando cada una de estas características y analizando qué
solución es factible en la realidad bajo determinadas tecnologías. Con ello se
podrá refinar progresivamente esa primera solución hasta adaptarla al entorno
físico en el que deba implantarse nuestra aplicación. (Muñoz Escoí et al., 2012, p.
164)
Referencias
Muñoz Escoí, F. D., Argente Villaplana, E., Espinosa Minguet, A. R., Galdámez Saiz,
P., García-Fornes, A., De Juan Marín, R. y Sendra Roig, J. S. (2012). Concurrencia y
sistemas distribuidos. Valencia, España: Universitat Politècnica.