Академический Документы
Профессиональный Документы
Культура Документы
Introduccin
Joan Vila
DISCA / UPV Departament dInformtica de Sistemes i Computadors Universitat Politcnica de Valncia
Introduccin
Diseo Y Aplicaciones de Sistemas Distribuidos
Indice
Conceptos bsicos Modelos de computacin distribuida
DYA
Conceptos bsicos
Sistema distribuido
Conjunto de computadores dbilmente acoplados (independientes) interconectados a travs de una red que colaboran con el fin de realizar una tarea.
Es un sistema hetergeneo (arquitecturas, sistemas operativos, protocolos, ... diferentes) Diferentes tipos de redes: LANs, WANs, wifis, Tendencia a computadores pequeos y muy potentes interconectados
DYA
Conceptos bsicos
Crecimiento
Marcado por la web...
DYA
Conceptos bsicos
Computacin distribuida
Computacin que se ejecuta sobre un sistema distribuido. Los programas son bastante autnomos y acceden eventualmente a la red. Pueden clasificarse en tres niveles:
DYA
Servicios de red: capa de servicios estndar en Internet proporcionado por un servidor (o red de servidores) como HTTP, DNS, FTP, SMTP. Es la mitad servidora del cliente-servidor y sirve para construir servicios y aplicaciones de red. Servicios Web: conjunto de servicios ofertados en la web sobre el protocolo HTTP, tales como motores bsqueda de Informacin (Google), servicios de directorio, cambio de moneda, sms,..... Utilizan SOAP y XML como forma de especificarse. Algunos son de pago. Aplicaciones de red: aplicaciones especficas desarrolladas por usuarios finales, como aplicaciones de comercio electrnico, chats, juegos de red, etc... Utilizan diferentes tipos de middleware como sustrato de comunicaciones.
Conceptos bsicos
Ap.
Ap. Ap.
Ap.
Servicios web
Servicios middleware
SOAP HTTP
DYA
Servicios TCP
TCP/IP
6
Conceptos bsicos
Aplicaciones web: venta de artculos, comercio electrnico, accesos a bases de datos Transacciones distribuidas: sistemas bancarios Aplicaciones multimedia: videoconferencia, video bajo demanda
Aplicaciones en LANs
Aplicaciones industriales: control de procesos, robtica. Switched Ethernet est sustituyendo a los buses de campo.
Topologas en estrella y anillo. Configuraciones con anillos redundantes.
DYA
Conceptos bsicos
2 3
eBay 5
Conmutadores/ Encaminadores (mirrored) Cisco 200 Servidores front-end Compaq / Windows NT
Internet 6 7
Ana conda Bull
Discos mirrored con logs de datos
www
Wanadoo ISPs del cliente UPV ... proveedores de Internet REDIRIS WANs: enrutadores,satlites, ... AOL ...
7
cluster
Bear
2 Servidores (duplicados entre si) Sun Starfire Discos compartidos de Oracle (mirrored) con base de datos dual
10
DYA
www
8
....... ...... ......
Nuevo
9
8
Conceptos bsicos
LAN
Operador
DYA
Conceptos bsicos
DYA
10
Conceptos bsicos
Se pueden compartir recursos fsicos (p.e. Impresoras, discos,...) o informacin (p.e. pginas web o bases de datos) Compartir recursos permite reducir costes y aumentar su utilizacin La carga muchas veces se reparte de forma geogrfica: la informacin puede replicarse total o parcialmente por zonas y cada zona estar atendida por un servidor diferente Los recursos crticos pueden replicarse.
DYA
11
Conceptos bsicos
Problemtica
Heterogeneidad Bsqueda de servicios e informacin Congestin de la red y congestin de recursos (calidad de servicio) Seguridad Asincrona Fallos parciales
DYA
12
Conceptos bsicos
Heterogeneidad
Los componentes pueden estar construidos con tecnologas diferentes: arquitectura, s.o., redes y protocolos, lenguajes de programacin. Soluciones: interoperabilidad, sistemas abiertos
Interoperabilidad: integrar sistemas y componentes heterogneos en un todo sin costosos desarrollos ad-hoc. Normalmente se logra a travs de protocolos y estndares. Sistemas abiertos: permiten ampliar su funcionalidad con nuevos componentes a travs de interfaces claras.
DYA
13
Conceptos bsicos
Escalabilidad: las prestaciones no deben degradarse conforme aumenta el nmero de clientes. La escalabilidad se basa en la descentralizacin: evitar soluciones donde existe un componente que interviene en el procesamiento de todas las peticiones. De ah la famosa frase Los ciclos de servidor son de oro. La descentralizacin requiere un reparto de la carga que normalmente implica replicacin total o parcial de datos o recursos.
14
DYA
Conceptos bsicos
Autonoma de los nodos: los nodos deben minimizar la dependencia la red. Ello les permitir seguir funcionando ante eventuales fallos de la misma: La autonoma requiere caching/replicacin de datos: si se mantiene una memoria local con los datos ms frecuentemente utilizados, se reducir el nmero de accesos a la red. Calidad de Servicio (QoS): tcnicas de gestin de la red y contratos para garantizar un ancho de banda y unos retrasos mximos acotados
DYA
15
Conceptos bsicos
Seguridad
Las redes de difusin son proclives a la intromisin de intrusos que pueden fisgonear la informacin y utilizar recursos sin autorizacin. La autentificacin de las partes es crtica en las transacciones. El cdigo migrado es un virus en potencia. Soluciones: criptografa, autentificacin de clientes
La criptografa permite cifrar la informacin para evitar el fisgoneo. Las firmas digitales permiten autentificar a clientes, proveedores de servicios, fuentes de cdigo migrado.
DYA
16
Conceptos basicos
Fallos parciales
Las aplicaciones no fallan por completo, sino que determinados componentes pueden dejar de operar y otros seguir funcionando (independencia en el modo de fallo). Los fallos parciales pueden ser una desventaja ms que una ventaja pues las cadas de nodos pueden provocar inconsistencias.
Sistemas AND: sistemas en los que con que falle un componente, la aplicacin deja de funcionar. Sistemas OR: pueden seguir funcionando con que funcione al menos algn componente.
DYA
17
Conceptos basicos
Asincrona
La comunicacin y las acciones de cmputo no estn guiadas por un nico reloj global. Cada nodo tiene su reloj y puede haber derivas entre ellos. Esto dificulta la sincronizacin entre los componentes de un sistema distribuido y la determinacin de la relacin antes/despus entre eventos remotos. Solucin: protocolos de sincronizacin de relojes y utilizacin del concepto de causalidad.
DYA
18
Conceptos bsicos
Transparencia?
En un principio se pens que ocultar al usuario el hecho de la distribucin de componentes o incluso su replicacin era la base para estructurar un sistema distribuido. Hoy en da esto se ha revelado imposible, aunque principios como la uniformidad de nombre o la uniformidad de acceso se consideren deseables.
DYA
19
Introduccin
Diseo Y Aplicaciones de Sistemas Distribuidos
Indice
Conceptos bsicos Modelos de computacin distribuida
DYA
20
DYA
21
Cliente-servidor
Modelo cliente-servidor
Permite compartir recursos en red El servidor realiza la peticin en nombre del cliente
Pginas web Disco Impresora
Recurso
Servidor
Cliente Cliente Cliente
...
Red
peticin respuesta 22
DYA
Movilidad de cdigo
Terminal mvil
Agente mvil
Servidor
DYA
Red
23
Movilidad de cdigo
MA
Host3
Red
Host4 Host5
MA
DYA
24
Movilidad de cdigo
Movilidad de cdigo
Clientes web (applets): la parte cliente de la aplicacin es un navegador web que puede programarse para ser cliente de cualquier aplicacin.
No hay necesidad de instalacin previa del programa del cliente. Reducir la comunicacin, realizando el cmputo en la mquina donde se migra en lugar del servidor.
Agentes mviles: agentes inteligentes que pueden desplazarse por la red, ejecutndose en los distintos nodos.
El programa escoge cuando y donde migrar. Se transporta asmismo a otra mquina y activa y suspende su ejecucin a voluntad. Objetivos: recoleccin de datos, bsqueda de informacin, etc...
Comercio electrnico Procesamiento paralelo
DYA
Problemas:
Seguridad: son virus en potencia (gusanos). Ejecucin en un entorno heterogneo. Precisan ejecutarse en mquina virtual. 25
Grupos
Grupos
Comunicacin reactiva: sigue el patrn difusor / escucha. Se utiliza para notificar eventos.
Clula de produccin
Escuchas
p3 manejar evento
Robocup
p4
difundir evento
difundir
manejar evento
DYA
Difusor 26
Introduccin
Diseo Y Aplicaciones de Sistemas Distribuidos
Indice
Conceptos bsicos Modelos de computacin distribuida
DYA
27
Introduccin
Evolucin histrica
Kernels y microkernels
Ej: RT-Mach, Clouds, ...
Middleware
Ej: CORBA, Java-RMI
Servicios web
Ej: XML-RPC, SOAP
DYA
28
Microkernels
Kernels y microkernels
El kernel proporciona una funcionalidad mnima:
Espacio de direcciones: memoria lgica para ubicar los componentes de una aplicacin distribuida Mecanismo de comunicacin entre espacios de direcciones Hilo de ejecucin dentro de un espacio de direcciones Mecanismo proteccin.
Cualquier servicio del sistema operativo se implementa fuera del ncleo, como un componete ms:
Espacio de direcciones 1
Espacio de direcciones 2
Espacio de direcciones 3
DYA
Espacio de direcciones 4
Espacio de direcciones 5
Espacio de direcciones 6
Microkernel
Microkernel 29
Microkernels
Las memorias locales actan como una cache de la memoria virtual: la pgina fsica que da soporte a una pgina lgica puede residir en cualquier procesador. Los fallos de pgina pueden ser servidos por un paginador local o remoto.
Nodo 1 Memoria 1
Paginador memoria compartida
Nodo 2 Memoria 2
Paginador memoria compartida
Nodo n
...
Memoria n
Paginador memoria compartida
DYA
231
Objetos en memoria
30
Middleware
Middleware
Bus software a nivel de usuario que proporciona interoperabilidad entre objetos en un entorno distribuido heterogneo. Asume el modelo de objetos e invocaciones a mtodos remotos Ada
Aplicaciones
Object x
Java
Object y Object z
ORB
Unix BSD Windows NT Linux
DYA
31
Middleware
Middleware
Existen, fundamentalmente, 3 proyectos Middleware importantes: CORBA
Es un estndar del consorcio de fabricantes OMG Genrico: no cubre los requerimiento de aplicaciones multimedia. Independencia de plataforma: la mquina virtual Java se ejecuta sobre muchas plataformas Protocolos e interfaces genricos: el protocolo RMI es propietario y no permite comunicar, en principio, con sistemas no Java. Los interfaces se definen en Java. Para solucionar esto existen clases CORBA. Independencia de plataforma: restringido a Microsoft. Interfaces y protocolos estndar: utiliza IDL y la tecnologa del proyecto DCE (anterior a CORBA) del consorcio OSF. Existen puentes DCOM/CORBA 32
Java-RMI
DYA
Servicios web
Servicios web
Son objetos o rutinas en Internet disponibles a programas CGI en Perl, PHP,... (no tienen interfaz de usuario como pg. web necesariamente).
Se basan en transformar invocaciones a objetos en peticiones HTTP (GET, PUT) y utilizan XML como lenguaje de intercambio de datos.
Servicio
Nivel web
Nivel aplicacin
DYA
WWW server
Servicio
33
Arquitecturas
Comparacin
Microkernel
Aplicable a sistemas homogneos, cerrados Poco compatibles / interoperables con otros sistemas Protocolos de comunicacin propietarios o TCP/IP El soporte para tiempo real es fcil de introducir Aplicable a sistemas heterogneos, abiertos o cerrados Interoperabilidad es uno de los objetivos fundamentales Protocolos de comunicacin estandarizados (IIOP) Modelo de tiempo real de sistemas orientados a objetos. Descansa sobre las facilidades Aplicable a sistemas heterogneos, abiertos Protocolo de comunicacin basado en web (muy disponible) 34
Middleware
DYA
Servicios Web