sistemas distribuidos

8,020 views

Published on

Published in: Education
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
8,020
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
328
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

sistemas distribuidos

  1. 1. SISTEMAS DISTRIBUIDOS.
  2. 2.  Sistemas Distribuidos.  Definiciones  Desafíos en el diseño de sistemas  Distribuidos  Modelos Arquitectónicos
  3. 3.  Definicion.
  4. 4.  Definicion.“Se define un sistema distribuido como aquel en el que loscomponentes de hardware y software, localizados encomputadores unidos mediante una red, comunican ycoordinan sus acciones sólo mediante el paso demensajes”
  5. 5.  Definicion. Esta definición tiene las siguientes Consecuencias:  Concurrencia  Inexistencia de un reloj global  Fallos Independientes
  6. 6.  Desafíos. Heterogeneidad. Extensibilidad. Seguridad. Escalabilidad. Tolerancia a Fallas. Concurrencia.
  7. 7.  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
  8. 8.  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
  9. 9.  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
  10. 10.  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.
  11. 11.  Desafíos: Extensibilidad.  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.
  12. 12.  Desafíos: 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
  13. 13.  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
  14. 14.  Desafíos: Escalabilidad.Se dice que un sistema es escalable si conserva suefectividad cuando ocurre un incremento significativoen el número de recursos y en el número de usuarios.El diseño de Sistemas Distribuidos escalables presentalos siguientes retos: Control de costo de los recursos físicos: para que un sistema con n usuarios sea escalable, la cantidad derecursos físicos necesarios para soportarlo debería ser O( n).
  15. 15.  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
  16. 16.  Desafíos: Tratamiento de Fallos.  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 
  17. 17.  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
  18. 18.  Desafíos: Concurrencia.Existe la posibilidad de acceso concurrente a un mismo recurso.La concurrencia en los servidoresse 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.
  19. 19.  Desafíos: 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.
  20. 20.  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.
  21. 21.  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.
  22. 22.  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
  23. 23.  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.
  24. 24.  Capas de Software.
  25. 25.  Desafíos: Transparencia.  Plataforma: estas capas más bajas proporcionan servicio a las superiores y su implementación es dependiente de cada computador.
  26. 26.  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
  27. 27.  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.
  28. 28.  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)
  29. 29.  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.
  30. 30.  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.
  31. 31.  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.
  32. 32.  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.

×