Está en la página 1de 19

CARACTERIZACIÓN

DE LOS SISTEMAS
DISTRIBUIDOS
DOCENTE: ING. URETA ORIHUELA Fredy Luis
ESTUDIANTE: VIVANCO IZURRAGA Mario A.
INTRODUCCION
Al momento de implementar un sistema distribuido deben
tenerse en cuenta una serie de factores que lo caracterizan,
como lo son la heterogeneidad de componentes, la
extensibilidad, la seguridad, el tratamiento de fallos, la
escalabilidad, la concurrencia y la transparencia, entre otros.
A continuación se presenta de manera detallada que
comprende cada una de estas características
mencionadas.
Un sistema distribuido permite que los usuarios
accedan a servicios y ejecuten
aplicaciones sobre un conjunto heterogéneo de
redes y computadores. Esta
heterogeneidad (es decir, variedad y diferencia)
HETEROGENEIDAD comprende los siguientes cinco aspectos:
• Redes.
• Hardware de computadores.
• Sistemas operativos.
• Lenguajes de programación.
• Implementaciones de diferentes desarrolladores.
La heterogeneidad se aplica también
a los tipos de datos manejados,
como los enteros, los cuales pueden
representarse de diferente forma en
diferentes clases de hardware. Hay
que tratar con estas diferencias de
representación si se van a
intercambiar mensajes entre
programas que se ejecutan en
diferente hardware
Heterogeneidad y Código Móvil
▪ El término código móvil se emplea
para referirse al código que puede ser
enviado desde un computador a otro
y ejecutarse en éste último, por eso
los applets16 de Java®17 son un
ejemplo de ello. Dado que el conjunto
de instrucciones de un computador
depende del hardware, el código de
nivel de máquina adecuado para
ejecutarse en un tipo de computador
no es adecuado para ejecutarse en
otro tipo.
La extensibilidad de un sistema de
computación es la característica que
determina si el sistema puede ser
extendido y reimplementado en
diversos aspectos. La extensibilidad
de los sistemas distribuidos se
EXTENSIBILIDAD determina en primer lugar por el
grado en el cual se pueden añadir
nuevos servicios de compartición de
recursos y ponerlos a disposición para
el uso por una variedad de programas
cliente.
Estándares Abiertos
▪ La extensibilidad de un sistema Con base en lo anterior se puede concluir lo siguiente:
distribuido se destaca por el hecho de
ser un “Sistema Abierto” o de utilizar ▪ Los sistemas abiertos se caracterizan porque sus
estándares abiertos. Gracias a esto, interfaces están publicadas.
los sistemas pueden ser extendidos
en el nivel hardware mediante la ▪ Los sistemas distribuidos abiertos se basan en la
inclusión de computadores a la red y providencia de un mecanismo de comunicación
en el nivel software por la uniforme e interfaces públicas para acceder a
introducción de nuevos servicios y la recursos compartidos.
reimplementación de los antiguos,
posibilitando a los programas de ▪ Los sistemas distribuidos abiertos pueden
aplicación la compartición de construirse con hardware y software heterogéneo,
recursos. Otro beneficio más, citado a posiblemente de diferentes proveedores. Sin
menudo, de los sistemas abiertos es embargo, la conformidad con el estándar publicado
su independencia de proveedores de cada componente debe contrastarse y
concretos. verificarse cuidadosamente si se desea que el
sistema trabaje correctamente.
Entre los recursos de información que se ofrecen y se
mantienen en los sistemas distribuidos, muchos
tienen un alto valor intrínseco para sus usuarios. Por
esto su seguridad es de considerable importancia . La
seguridad de los recursos de información tiene tres
componentes: confidencialidad (protección contra el
descubrimiento por individuos no autorizados);
integridad (protección contra la alteración o
corrupción); y disponibilidad (protección contra
interferencia con los procedimientos de acceso a los
SEGURIDAD recursos).
Sin embargo, aún existen dos desafíos de seguridad
que no han sido atendidos a cabalidad: los ataques
de denegación del servicio (DoS / Denial of Service) y
el código móvil.
ATAQUES DE DENEGACIÓN DE
SEGURIDAD DEL CÓDIGO MÓVIL
SERVICIO
▪ Este problema de seguridad ocurre El código móvil necesita ser tratado con
cuando un usuario desea obstaculizar cuidado. Suponga que alguien recibe un
un servicio por alguna razón. Esto se programa ejecutable adherido a un
obtiene al bombardear el servicio con correo electrónico: los posibles efectos
un número suficiente de peticiones al ejecutar el programa son
inútiles de modo que los usuarios impredecibles; por ejemplo, pudiera
serios sean incapaces de utilizarlo parecer que presentan un interesante
dibujo en la pantalla cuando en realidad
están interesados en el acceso a los
recursos locales, o quizás pueda ser
parte de un ataque de denegación de
servicio.
Los sistemas distribuidos operan efectiva y
eficientemente en muchas escalas diferentes,
desde pequeñas intranets a Internet. Se dice que
un sistema es escalable si su capacidad de
procesamiento puede crecer añadiendo nodos
adicionales:
▪ Aumenta el rendimiento con un número
ESCALABILIDAD creciente de nodos (idealmente de forma
lineal).
▪ El tiempo de respuesta decrece (o se mantiene
constante o crece lentamente) con un número
creciente de nodos.
▪ La fiabilidad el sistema aumenta con número
creciente de nodos (idealmentede forma
logarítmica).
El diseño de los sistemas distribuidos escalables presenta los
siguientes retos:
Control del coste de los recursos Control de las pérdidas de
físicos prestaciones
▪ Según crece la demanda de un ▪ Considere la administración de un
recurso, debiera ser posible extender conjunto de datos cuyo tamaño es
el sistema, a un coste razonable, para proporcional al número de usuarios o
satisfacerla. Por ejemplo, la recursos del sistema, sea por ejemplo
frecuencia con la que se accede a los
archivos de una intranet suele crecer la tabla con la relación de nombres
con el incremento del número de de dominio de computadores y sus
usuarios y computadores. Debe ser direcciones Internet sustentado por el
posible añadir servidores para evitar Sistema de Nombres de Dominio
el embotellamiento que aparece (DNS / Domain Name System), que
cuando un solo servidor de archivos se emplea principalmente para
ha de manejar todas las peticiones de averiguar nombres DNS tales como
acceso a éstos. www.unad.edu.co.
Prevención de desbordamiento Evitar cuellos de botella de
de recursos software prestaciones
▪ Un ejemplo de pérdida de escalabilidad
se muestra en el tipo de número usado
para las direcciones Internet ▪ En general, para evitar cuellos de
(direcciones de computadores en
Internet). A finales de los años setenta, botella de prestaciones, los
se decidió emplear para esto 32 bits algoritmos deberían ser
(formato de direccionamiento IPv4), descentralizados. Ilustramos este
pero este tipo de direccionamiento para punto aludiendo al predecesor del
Internet se desbordará probablemente Sistema de Nombres de Dominio en
al comienzo de la década del año 2010. el cual la tabla de nombres se
Por esta razón, la nueva versión del
protocolo emplea direcciones Internet alojaba en un soloarchivo maestro
de 128 bits (formato de que podía descargarse a cualquier
direccionamiento IPv6). computador que lo necesitara.
▪ Los sistemas computacionales a veces
fallan. Cuando aparecen fallos en el
hardware o el software, los programas
pueden producir resultados incorrectos o
pueden parar antes de haber completado
el cálculo pedido. Los fallos en un sistema
TRATAMIENTO DE distribuido son parciales; es decir, algunos
componentes fallan mientras otros siguen
FALLOS funcionando. Consecuentemente, el
tratamiento de fallos es particularmente
difícil. Entre las principales técnicas para
tratar fallos se encuentran las siguientes
Detección de fallos Enmascaramiento de fallos
▪ Algunos fallos son detectables. Por Algunos fallos que han sido detectados
ejemplo, se pueden utilizar sumas de pueden ocultarse o atenuarse. Dos
ejemplos de ocultación de fallos son:
comprobación (checksums) para
detectar datos corruptos en un ▪ Los mensajes pueden retransmitirse
mensaje o un archivo. Por otra parte, cuando falla la recepción.
los sistemas que trabajan con el
protocolo IP tienen algoritmos para ▪ Los archivos con datos pueden
detectar errores en los datos escribirse en una pareja de discos de
forma que si uno está deteriorado el
transmitidos. otro seguramente está en buen estado.
▪ Simplemente eliminar un mensaje
corrupto es un ejemplo de atenuar un
fallo(pudiera retransmitirse de nuevo).
Tolerancia de fallos Recuperación frente a fallos
La mayoría de los servicios en Internet La recuperación implica el diseño de
exhiben fallos; es posible que no sea software en el que, tras una caída del
práctico para ellos pretender detectar y servidor, el estado de los datos pueda
ocultar todos los fallos que pudieran reponerse o “reversarse” (roll back) a
aparecer en una red tan grande y con una situación anterior. En general,
tantos componentes. Sus clientes cuando aparecen fallos los cálculos
pueden diseñarse para tolerar ciertos realizados por algunos programas se
fallos, lo que implica que también los encontrarán incompletos y al actualizar
usuarios tendrán que tolerarlos datos permanentes (archivos e
generalmente información ubicada en
almacenamiento persistente) pudiera
encontrarse en un estado inconsistente.
Tanto los servicios como las aplicaciones
proporcionan recursos que pueden compartirse entre
los clientes en un sistema distribuido. Existe por lo
tanto una posibilidad de que varios clientes intenten
acceder a un recurso compartido a la vez. Por
ejemplo, una estructura de datos que almacena
artículos de un determinado Proveedor puede ser
accedida muy frecuentemente cuando se ofertan
CONCURRENCIA descuentos o gangas.
Para que un objeto sea seguro en un entorno
concurrente, sus operaciones deben sincronizarse de
forma que sus datos permanezcan consistentes. Esto
puede lograrse mediante el empleo de técnicas
conocidas como los semáforos, que se usan en la
mayoría de los sistemas operativos
▪ Se define transparencia como la
ocultación, al usuario y al
programador de aplicaciones, de la
separación de los componentes en
un sistema distribuido, de forma que
se perciba el sistema como un todo
más que como una colección de
TRANSPARENCIA componentes independientes. Las
implicaciones de la transparencia
son de gran calado en el diseño del
software del sistema.
1. Transparencia de acceso que permite acceder a los recursos locales y remotos empleando
operaciones idénticas.
2. Transparencia de ubicación que permite acceder a los recursos sin conocer su localización.
3. Transparencia de concurrencia que permite que varios procesos operen concurrentemente
sobre recursos compartidos sin interferencia mutua.
4. Transparencia de replicación que permite utilizar múltiples ejemplares de cada recurso
para aumentar la fiabilidad y las prestaciones sin que los usuarios y los programadores de
aplicaciones necesiten su conocimiento.
5. Transparencia frente a fallos que permite ocultar los fallos, dejando que los usuarios y
programas de aplicación completen sus tareas a pesar de fallos del hardware o de los
componentes software.
6. Transparencia de movilidad que permite la reubicación de recursos y clientes en un
sistema sin afectar la operación de los usuarios y los programas.
7. Transparencia de prestaciones que permite reconfigurar el sistema para mejorar las
prestaciones según varía su carga.
8. Transparencia al escalado que permite al sistema y a las aplicaciones expandirse en
tamaño sin cambiar la estructura del sistema o los algoritmos de aplicación.

También podría gustarte