+ All Categories
Home > Education > Sistemas distibuidos

Sistemas distibuidos

Date post: 25-Jan-2017
Category:
Upload: tensor
View: 82 times
Download: 0 times
Share this document with a friend
32
SISTEMAS DISTRIBUIDOS.
Transcript
Page 1: Sistemas distibuidos

SISTEMAS DISTRIBUIDOS.

Page 2: Sistemas distibuidos

Sistemas Distribuidos.

Definiciones

Desafíos en el diseño de sistemas

Distribuidos

Modelos Arquitectónicos

Page 3: Sistemas distibuidos

Definicion.

Page 4: Sistemas distibuidos

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”

Page 5: Sistemas distibuidos

Definicion.

Esta definición tiene las siguientesConsecuencias:

Concurrencia

Inexistencia de un reloj global

Fallos Independientes

Page 6: Sistemas distibuidos

Desafíos.

Heterogeneidad.

Extensibilidad.

Seguridad.

Escalabilidad.

Tolerancia a Fallas.

Concurrencia.

Page 7: Sistemas distibuidos

Desafíos: Heterogeneidad.

La heterogeneidad se aplica enlos siguientes elementos:

Redes

Hardware de computadores

Sistemas operativos

Lenguajes de programación

Implementaciones de diferentes

desarrolladores

Page 8: Sistemas distibuidos

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

Page 9: Sistemas distibuidos

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

Page 10: Sistemas distibuidos

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.

Page 11: Sistemas distibuidos

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.

Page 12: Sistemas distibuidos

La seguridad tiene tres componentes:

Confidencialidad: protección contra individuosno 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.

Page 13: Sistemas distibuidos

Existen dos desafíos que no han sidoresueltos en su totalidad:

Ataques de denegación de servicio.

Seguridad del código móvil

Desafíos: Seguridad.

Page 14: Sistemas distibuidos

Se dice que un sistema es escalable si conserva su efectividad cuando ocurre un incremento significativoen 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.

Page 15: Sistemas distibuidos

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.

Page 16: Sistemas distibuidos

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.

Page 17: Sistemas distibuidos

Tolerancia de fallos: los programas clientes delos 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 componentesredundantes

Desafíos: Tratamiento de Fallos.

Page 18: Sistemas distibuidos

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.

Page 19: Sistemas distibuidos

Transparencia de acceso: permite acceder alos recursos locales y remotos empleandooperaciones idénticas.

Transparencia de ubicación: permite accedera los recursos sin conocer su localización.

Transparencia de concurrencia: permite quevarios procesos operen concurrentemente sobre recursos compartidos sin interferencia mutua.

Desafíos: Transparencia.

Page 20: Sistemas distibuidos

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.

Page 21: Sistemas distibuidos

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.

Page 22: Sistemas distibuidos

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 SoftwareArquitecturas de SistemaInterfaces y Objetos

Page 23: Sistemas distibuidos

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 diferentescomputadores, que ofrecen y solicitan servicios.

Page 24: Sistemas distibuidos

Capas de Software.

Page 25: Sistemas distibuidos

Plataforma:

estas capas más bajas proporcionan servicio a las superiores y su implementación es dependiente de cada computador.

Desafíos: Transparencia.

Page 26: Sistemas distibuidos

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.

Page 27: Sistemas distibuidos

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.

Page 28: Sistemas distibuidos

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 deobjetos distribuidos de Microsoft)

Desafíos: Transparencia.

Page 29: Sistemas distibuidos

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.

Page 30: Sistemas distibuidos

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.

Page 31: Sistemas distibuidos

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.

Page 32: Sistemas distibuidos

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.


Recommended