los componentes de
hardware y software, unidos
mediante una red, comunican
y coordinan sus acciones
Un sistema distribuido se
compone de un grupo de
computadores autónomos,
enlazados mediante una red
y equipados con un software
de sistemas distribuidos.
Un sistema distribuido es
un grupo de computadores
independientes que son
percibidas por los usuarios
como un único computador
DEFINICIONES
Desafíos
Heterogeneidad
Extensibilidad
Seguridad
Escalabilidad
Tolerancia a
Fallas
Concurrencia
Transparencia
Heterogeneidad
Middleware: es el estrato de
software que 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.
Ejem: Corba, Java RMI
Extensibilidad
Es la característica que
determina si el sistema puede
extenderse de varias maneras.
Un sistema puede ser abierto o
cerrado con respecto a
extensiones de hardware o de
software. Para lograr la
extensibilidad es imprescindible
que las interfaces clave sean
publicadas
Seguridad
La seguridad tiene tres
componentes:
Confidencialidad:
protección contra
individuos no
autorizados Integridad:
protección contra la
alteración o corrupción
Disponibilidad:
protección contra la
interferencia que impide
el acceso a los recursos
Escalabilidad
Se dice que un sistema es
escalable si conserva su efectividad
cuando ocurre un incremento
significativo en el número de
recursos y en el número de
usuarios
Tratamiento de
Fallos
Recuperación de fallos:
implica el diseño de software
en el que, tras una caída del
servidor, el estado de los
datos puede reponerse o
retractarse (rollback) a una
situación anterior.
Concurrencia
Existe la posibilidad de
acceso concurrente a un
mismo recurso.La
concurrencia en los
servidores se puede
lograr a través de
threads. Cada objeto que
represente un recurso
compartido debe
responzabilizarse de
garantizar que opera
correctamente en un
entorno concurrente.
Transparencia
Transparencia de acceso: permite
acceder a los recursos locales y
remotos empleando operaciones
idénticas. Transparencia de
ubicación: permite acceder a los
recursos sin conocer su localización.
Transparencia de concurrencia:
permite que varios procesos operen
concurrentemente sobre recursos
compartidos sin interferencia mutua.
Modelos arquitectónicos
- Capas de Software
- Arquitecturas de
- Sistema Interfaces y
Objetos
Capas de Software
El término arquitectura de software se
refería inicialmente a la estructuración
del software como capas en un único
computador.
Arquitecturas de Sistema
Modelo Cliente-Servidor Servicios
proporcionados por múltiples
servidores Servidores proxy y
caches Procesos peer-to-peer
Interfaces y Objetos
Una interfaz de un proceso es la especificación
del conjunto de funciones que se pueden invocar
sobre él. En lenguajes orientados a objetos, los
procesos distribuidos pueden ser construidos de
una forma más orientada al objeto. Las
referencias a estos objetos se pasan a otros
procesos para que se pueda acceder a sus
métodos de forma remota. Esta es la
aproximación adoptada por CORBA y Java RMI.