Sistemas Distribuidos Prog. Distribuida bajo Internet
Definición Hay muchas definiciones Básicamente, varios computadores o nodos de computación en lazados mediante una red y que comparten datos, procesamiento, o ambos [DeWire 94] El software proporciona la imagen de máquina única 2
Definición Organización en niveles Cada máquina posee su SO local Por encima, otra capa construye la imagen de máquina única (middleware) Las aplicaciones distribuidas se construyen sobre el middleware 3
Definición Ejemplos Ordenadores para la docencia en laboratorios Servicios de nombres y mensajeria en Internet servidores de Google 4
Ventajas Eficiencia (explotando el paralelismo) Facilita el acceso a recursos remotos entendemos recurso en sentido amplio (hard, soft,..) En muchas empresas el principal recurso es su base de información Permite prestación de servicios a empresas externas coordinación de actividades internas economía de recursos (compartición entre usuarios) 5
Ventajas Disponibilidad presta servicios incluso ante fallos parciales Escalabilidad para adaptarse a nuevos usuarios y/o servicios 6
Oportunidad Grado creciente de interconexión entre sistemas Mejor soporte en los SO actuales El concepto ya le resulta familiar al usuario ej.- intercambio básico de información (email, ftp,..) navegador web como interfaz usuario 7
Caracteristicas Transparencia Escalabilidad Sistema Abierto 8
Transparencia Tipo (qué oculta) Acceso.- representación de los datos y acceso a los mismos Ubicación.- donde está cada recurso Migración.- un recurso puede cambiar su ubicación Reubicación.- incluso durante la ejecución Replicación.- varias copias coherentes Concurrencia.- acceso simultáneo desde usuarios distintos Fallos.- oculta el fallo y posterior recuperación Persistencia.- datos estables Grado Total.- costosa (incluso inabordable o inconveniente) Parcial (solución de compromiso) 9
Escalabilidad En tamaño Acepta un número creciente de procesos, nodos o usuarios En distancia Latencia y fiabilidad En administración Políticas y restricciones de acceso Sistemas multiorganización 10
Sistema Abierto Utiliza standards Portable (utilizable sobre distintas arquitecturas) interoperable Es modular Configurable Facilidad para reemplazar módulos Es flexible Separación entre Políticas (qué) Mecanismos (cómo) Política configurable Calidad de servicio Tipo de cifrado Número de réplicas y tipo de consistencia 11
Inconvenientes Latencia (overhead comunicación) Sincronización Cómo compartir datos entre procesos manteniendo la integridad Fallo parcial Debe continuar funcionando incluso si fallan algunos componentes Complejidad adicional Seguridad 12
Seguridad Permisos y protección Distintos usuarios poseen acceso a recursos diferentes Autenticación Garantías sobre la identidad del usuario (ej.- certificados digitales) Cifrado La información transmitida no es accesible a terceros Detección y recuperación ante fallos No podemos distinguir entre nodo lento y nodo que falla No podemos saber si un servidor completó la solicitud antes de fallar Semántica de consistencia Ej.- sincronización total Siempre solución de compromiso eficiencia-seguridad 13
A estudiar Analizar los patrones para desarrollar sistemas distribuidos Ej.- modelo cliente/servidor Analizar los aspectos adicionales sobre un sistema centralizado Ej.- arquitectura, descomposición en niveles Usando Java, cubrir los aspectos de programación de sistemas distribuidos Sockets RPC y RMI Peer to peer 14