SISTEMAS DISTRIBUIDOS.
Sistemas Distribuidos.
Definiciones
Desafíos en el diseño de sistemas
Distribuidos
Modelos Arquitectónicos
Definicion.
Definicion.
“Se define un sistema distribuido como aquel en el que los
componentes de hardware y software, localizados en
computadores unidos mediante una red, comunican y
coordinan sus acciones sólo mediante el paso de
mensajes”
Definicion.
Esta definición tiene las siguientes
Consecuencias:
Concurrencia
Inexistencia de un reloj global
Fallos Independientes
Desafíos.
Heterogeneidad.
Extensibilidad.
Seguridad.
Escalabilidad.
Tolerancia a Fallas.
Concurrencia.
Desafíos: Heterogeneidad.
La heterogeneidad se aplica en
los siguientes elementos:
Redes
Hardware de computadores
Sistemas operativos
Lenguajes de programación
Implementaciones de diferentes
desarrolladores
Desafíos: 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
Desafíos: Heterogeneidad.
Heterogeneidad y código móvil
Código Móvil: código que puede enviarse
desde un computador a otro y ejecutarse
en este último.
El concepto de máquina virtual ofrece un
modo de crear código ejecutable sobre
cualquier hardware
Desafíos: 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.
Los Sistemas Distribuidos Abiertos pueden
extenderse a nivel de hardware mediante la
inclusión de computadoras a la red y a nivel
de software por la introducción de nuevos
servicios y la reimplementación de los Antiguos.
Otro beneficio de los sistemas abiertos es su
independencia de proveedores concretos.
Desafíos: Extensibilidad.
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
Desafíos: Seguridad.
Existen dos desafíos que no han sido
resueltos en su totalidad:
Ataques de denegación de servicio.
Seguridad del código móvil
Desafíos: Seguridad.
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.
El diseño de Sistemas Distribuidos escalables presenta
los siguientes retos:
Control de costo de los recursos físicos: para que
un sistema con n usuarios sea escalable, la cantidad de
recursos físicos necesarios para soportarlo debería
ser O( n).
Desafíos: Escalabilidad.
Controlar la degradación del rendimiento:
Ejm: Los algoritmos que emplean estructuras
jerárquicas se comportan mejor frente al crecimiento
de la escala, que los algoritmos que emplean
estructuras lineales.
Evitar cuellos de botella: los algoritmos deberían
ser descentralizados
Desafíos: Escalabilidad.
Detección de fallos:
Ejem. Se pueden utilizar sumas de comprobación
(checksums) para detectar datos corruptos en un
mensaje.
Enmarascamiento de fallos:
Ejem. Los mensajes pueden retransmitirse
Replicar los datos
Desafíos: Tratamiento de Fallos.
Tolerancia de fallos: los programas clientes de
los servicios pueden diseñarse para tolerar ciertos
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.
Redundancia: emplear componentes
redundantes
Desafíos: Tratamiento de Fallos.
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.
Para que un objeto sea seguro en un entorno
concurrente, sus operaciones deben sincronizarse
de forma que sus datos permanezcan consistentes.
Desafíos: Concurrencia.
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.
Desafíos: Transparencia.
Transparencia de replicación: permite replicar los
recursos sin que los usuarios y los programadores
necesiten su conocimiento.
Transparencia frente a fallos: permite ocultar
fallos.
Transparencia de movilidad: permite la
reubicación de recursos y clientes en un sistema sin
afectar la operación de los usuarios y los programas.
Desafíos: Transparencia.
Transparencia de rendimiento: permite
reconfigurar el sistema para mejorar el desempeño
según varíe su carga.
Transparencia al escalado: permite al sistema y a
las aplicaciones expandirse en tamaño sin cambiar la
estructura del sistema o los algoritmos de aplicación.
Desafíos: Transparencia.
Modelos Arquitectonicos.
Modelo Arquitectónico de un Sistemas Distribuidos:
trata sobre la colocación de sus partes y las relaciones
entre ellas.
Ejem: modelo cliente-servidor y el modelo de procesos
de “igual a igual” (peer-to-peer)
Diferentes 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.
Más recientemente las capas son uno o varios
procesos, localizados en el mismo o diferentes
computadores, que ofrecen y solicitan servicios.
Capas de Software.
Plataforma:
estas capas más bajas
proporcionan servicio a las
superiores y su implementación
es dependiente de cada
computador.
Desafíos: Transparencia.
Middleware:
es una capa de software cuyo
propósito es enmascarar la
heterogeneidad y proporcionar
un modelo de programación
conveniente para los
programadores de aplicaciones
Desafíos: Transparencia.
El middleware se ocupa de proporcionar bloques
útiles para la construcción de componentes de
software que puedan trabajar con otros en un
sistema distribuido.
En particular mejora el nivel de las actividades de
comunicación de los procesos de
aplicación soportando abstracciones como:
llamadas a procedimientos remotos,
comunicación entre un grupo de procesos,etc.
Desafíos: Transparencia.
Ejem: Sun RPC (llamadas a procedimientos
remotos), CORBA (middleware orientado a objeto),
Java RMI (invocación de objetos remotos en Java),
DCOM (Modelo común de
objetos distribuidos de Microsoft)
Desafíos: Transparencia.
Transparencia de rendimiento: permite
reconfigurar el sistema para mejorar el desempeño
según varíe su carga.
Transparencia al escalado: permite al sistema y a
las aplicaciones expandirse en tamaño sin cambiar la
estructura del sistema o los algoritmos de aplicación.
Desafíos: Transparencia.
Transparencia de rendimiento: permite
reconfigurar el sistema para mejorar el desempeño
según varíe su carga.
Transparencia al escalado: permite al sistema y a
las aplicaciones expandirse en tamaño sin cambiar la
estructura del sistema o los algoritmos de aplicación.
Desafíos: Transparencia.
Transparencia de rendimiento: permite
reconfigurar el sistema para mejorar el desempeño
según varíe su carga.
Transparencia al escalado: permite al sistema y a
las aplicaciones expandirse en tamaño sin cambiar la
estructura del sistema o los algoritmos de aplicación.
Desafíos: Transparencia.
Transparencia de rendimiento: permite
reconfigurar el sistema para mejorar el desempeño
según varíe su carga.
Transparencia al escalado: permite al sistema y a
las aplicaciones expandirse en tamaño sin cambiar la
estructura del sistema o los algoritmos de aplicación.
Desafíos: Transparencia.

Sistemas distibuidos

  • 1.
  • 2.
    Sistemas Distribuidos. Definiciones Desafíos enel diseño de sistemas Distribuidos Modelos Arquitectónicos
  • 3.
  • 4.
    Definicion. “Se define unsistema distribuido como aquel en el que los componentes de hardware y software, localizados en computadores unidos mediante una red, comunican y coordinan sus acciones sólo mediante el paso de mensajes”
  • 5.
    Definicion. Esta definición tienelas siguientes Consecuencias: Concurrencia Inexistencia de un reloj global Fallos Independientes
  • 6.
  • 7.
    Desafíos: Heterogeneidad. La heterogeneidadse aplica en los siguientes elementos: Redes Hardware de computadores Sistemas operativos Lenguajes de programación Implementaciones de diferentes desarrolladores
  • 8.
    Desafíos: Heterogeneidad. Middleware: esel 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
  • 9.
    Desafíos: Heterogeneidad. Heterogeneidad ycódigo móvil Código Móvil: código que puede enviarse desde un computador a otro y ejecutarse en este último. El concepto de máquina virtual ofrece un modo de crear código ejecutable sobre cualquier hardware
  • 10.
    Desafíos: Extensibilidad. Es lacaracterí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.
  • 11.
    Los Sistemas DistribuidosAbiertos pueden extenderse a nivel de hardware mediante la inclusión de computadoras a la red y a nivel de software por la introducción de nuevos servicios y la reimplementación de los Antiguos. Otro beneficio de los sistemas abiertos es su independencia de proveedores concretos. Desafíos: Extensibilidad.
  • 12.
    La seguridad tienetres 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 Desafíos: Seguridad.
  • 13.
    Existen dos desafíosque no han sido resueltos en su totalidad: Ataques de denegación de servicio. Seguridad del código móvil Desafíos: Seguridad.
  • 14.
    Se dice queun 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. El diseño de Sistemas Distribuidos escalables presenta los siguientes retos: Control de costo de los recursos físicos: para que un sistema con n usuarios sea escalable, la cantidad de recursos físicos necesarios para soportarlo debería ser O( n). Desafíos: Escalabilidad.
  • 15.
    Controlar la degradacióndel rendimiento: Ejm: Los algoritmos que emplean estructuras jerárquicas se comportan mejor frente al crecimiento de la escala, que los algoritmos que emplean estructuras lineales. Evitar cuellos de botella: los algoritmos deberían ser descentralizados Desafíos: Escalabilidad.
  • 16.
    Detección de fallos: Ejem.Se pueden utilizar sumas de comprobación (checksums) para detectar datos corruptos en un mensaje. Enmarascamiento de fallos: Ejem. Los mensajes pueden retransmitirse Replicar los datos Desafíos: Tratamiento de Fallos.
  • 17.
    Tolerancia de fallos:los programas clientes de los servicios pueden diseñarse para tolerar ciertos 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. Redundancia: emplear componentes redundantes Desafíos: Tratamiento de Fallos.
  • 18.
    Existe la posibilidadde 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. Para que un objeto sea seguro en un entorno concurrente, sus operaciones deben sincronizarse de forma que sus datos permanezcan consistentes. Desafíos: Concurrencia.
  • 19.
    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. Desafíos: Transparencia.
  • 20.
    Transparencia de replicación:permite replicar los recursos sin que los usuarios y los programadores necesiten su conocimiento. Transparencia frente a fallos: permite ocultar fallos. Transparencia de movilidad: permite la reubicación de recursos y clientes en un sistema sin afectar la operación de los usuarios y los programas. Desafíos: Transparencia.
  • 21.
    Transparencia de rendimiento:permite reconfigurar el sistema para mejorar el desempeño según varíe su carga. Transparencia al escalado: permite al sistema y a las aplicaciones expandirse en tamaño sin cambiar la estructura del sistema o los algoritmos de aplicación. Desafíos: Transparencia.
  • 22.
    Modelos Arquitectonicos. Modelo Arquitectónicode un Sistemas Distribuidos: trata sobre la colocación de sus partes y las relaciones entre ellas. Ejem: modelo cliente-servidor y el modelo de procesos de “igual a igual” (peer-to-peer) Diferentes modelos arquitectónicos: Capas de Software Arquitecturas de Sistema Interfaces y Objetos
  • 23.
    Capas de Software. Eltérmino arquitectura de software se refería inicialmente a la estructuración del software como capas en un único computador. Más recientemente las capas son uno o varios procesos, localizados en el mismo o diferentes computadores, que ofrecen y solicitan servicios.
  • 24.
  • 25.
    Plataforma: estas capas másbajas proporcionan servicio a las superiores y su implementación es dependiente de cada computador. Desafíos: Transparencia.
  • 26.
    Middleware: es una capade software cuyo propósito es enmascarar la heterogeneidad y proporcionar un modelo de programación conveniente para los programadores de aplicaciones Desafíos: Transparencia.
  • 27.
    El middleware seocupa de proporcionar bloques útiles para la construcción de componentes de software que puedan trabajar con otros en un sistema distribuido. En particular mejora el nivel de las actividades de comunicación de los procesos de aplicación soportando abstracciones como: llamadas a procedimientos remotos, comunicación entre un grupo de procesos,etc. Desafíos: Transparencia.
  • 28.
    Ejem: Sun RPC(llamadas a procedimientos remotos), CORBA (middleware orientado a objeto), Java RMI (invocación de objetos remotos en Java), DCOM (Modelo común de objetos distribuidos de Microsoft) Desafíos: Transparencia.
  • 29.
    Transparencia de rendimiento:permite reconfigurar el sistema para mejorar el desempeño según varíe su carga. Transparencia al escalado: permite al sistema y a las aplicaciones expandirse en tamaño sin cambiar la estructura del sistema o los algoritmos de aplicación. Desafíos: Transparencia.
  • 30.
    Transparencia de rendimiento:permite reconfigurar el sistema para mejorar el desempeño según varíe su carga. Transparencia al escalado: permite al sistema y a las aplicaciones expandirse en tamaño sin cambiar la estructura del sistema o los algoritmos de aplicación. Desafíos: Transparencia.
  • 31.
    Transparencia de rendimiento:permite reconfigurar el sistema para mejorar el desempeño según varíe su carga. Transparencia al escalado: permite al sistema y a las aplicaciones expandirse en tamaño sin cambiar la estructura del sistema o los algoritmos de aplicación. Desafíos: Transparencia.
  • 32.
    Transparencia de rendimiento:permite reconfigurar el sistema para mejorar el desempeño según varíe su carga. Transparencia al escalado: permite al sistema y a las aplicaciones expandirse en tamaño sin cambiar la estructura del sistema o los algoritmos de aplicación. Desafíos: Transparencia.