Beruflich Dokumente
Kultur Dokumente
Bibliografa
|
A. Tanembaum & M. Van Steen. Sistemas Distribuidos. Principios y Paradigmas. 2da. Edicin. Smith & Nair. The Architecture of Virtual Machines. IEEE Computer. 2005. Fuggetta et al. Understanding Code Mobility. IEEE Transactions on Software Engineering Vivek, Aron, Banga. Locality-Aware Request Distribution in Cluster Based Network Servers
Contenido
|
| |
Hilos z Repaso del concepto de hilos y procesos z Hilos en sistemas distribuidos (arquitectura C/S). Virtualizacin (Virtualizacin de Proceso, V. de Sistema) Clientes Servidores (servidores de clsteres, servidores distribuidos) Migracin de Cdigo
Servidores de Clsteres
Es una coleccin de mquinas conectadas a travs de una red (LAN), donde cada mquina ejecuta uno o ms servidores de aplicacin. La red tiene un gran ancho de banda y la latencia muy pequea. | La mayora de los servidores de clusters estn organizados dentro de tres niveles:
|
Servidores de Clsteres
Servidores de Clsteres
El primer nivel es un switch o interruptor lgico que enruta las peticiones del cliente hacia el componente del cluster adecuado. | En el segundo nivel se encuentran los servidores dedicados a procesar aplicaciones. Contienen Hw para computacin de alto rendimiento.
|
Servidores de Clsteres
|
En el caso de servidores empresariales, pudiera ser que el poder de cmputo requerido no sea el cuello de botella, sino que requieran gran capacidad de almacenamiento: El tercer nivel consta de servidores de procesamiento de datos (sistemas de archivos), servidores de BD. No todos los clsteres siguen esta separacin, es frecuente que cada mquina tenga sus propias unidades de almacenamiento (arquitectura de dos niveles).
Servidores de Clsteres
Cuando el servidor de cluster ofrece mltiples servicios, pudiera ser que nodos diferentes dentro del cluster ejecuten servidores de aplicaciones distintos. | En este caso el switch tiene que tener la capacidad de distinguir los servicios para enviar las peticiones a las mquinas apropiadas (slo basta observar el nmero de puerto dentro de la peticin)
|
La mayora de las implementaciones son servidores de dos niveles que ejecutan nicamente un nico servicio. La asignacin de los requerimientos a los servidores busca principalmente balancear la carga. El switch enva los requerimientos a los nodos sin importar el tipo de servicio o el contenido que se est solicitando. Todos los nodos se consideran con igual capacidad de servir cualquier request. Una estrategia sencilla puede ser round-robin.
Hay otros enfoques: Locality-Aware Request Distribution: Se distribuyen las peticiones de acuerdo al contenido junto con informacin relacionada con la carga de cada nodo. La idea es enviar cada requerimiento al nodo que ya tiene los datos en su cache. Esta estrategia debe aumentar el rendimiento debido principalmente al aumento en la cantidad de hits en los caches. Tambin se incrementa la escalabilidad porque los datos se distribuyen entre los distintos nodos del cluster.
A
AA AAA
AAACBCAACB
CB CC B
Una meta importante en el diseo de servidores de clsteres es ocultar el hecho de que existen mltiples servidores. Esta transparencia de acceso se ofrece dado que se tiene un nico punto de acceso, el interruptor, que pudiera ser una mquina dedicada. Es el nico punto de entrada, por lo cual se ofrece una nica direccin de red.
El swith acepta peticiones entrantes de una conexin TCP y re-direcciona las peticiones hacia uno de los nodos. Para cada peticin se re-enva el paquete con la misma, al nodo o servidor seleccionado.
El nodo seleccionado enva una respuesta al cliente, pero insertando la direccin IP del switch como campo fuente del encabezado del paquete.
Lo anterior es necesario para que el cliente pueda continuar con la ejecucin del protocolo TCP: est esperando una respuesta por parte del switch, no de algn servidor aleatorio con el cual nunca se ha comunicado.
Servidores Distribuidos
|
| |
Los servidores de clsteres anteriores son configurados de forma esttica. Ofrecen un conjunto de mquinas y un nico punto de acceso. Cuando el punto falla, el cluster ya no est disponible. Para eliminar este problema se pueden proporcionar varios puntos de acceso. DNS (Servicio de Nombres de Dominio) pudiera devolver diversas direcciones, todas asociadas al mismo nombre.
Servidores Distribuidos
|
Lo ideal es tener un punto de acceso con vida prolongada. Tener flexibilidad en la configuracin del cluster: que tanto los nodos como el switch puedan variar. Servidor Distribuido: un conjunto de mquinas que cambian de manera dinmica y posiblemente tambin tengan ms de un punto de acceso. Ante el mundo aparecen como un nico y poderoso servidor.
Servidores Distribuidos
|
Cmo se puede lograr: z IP versin 6: Nodo mvil, est asociado a una red domstica donde reside normalmente y una direccin domstica (HoA). Esta red tiene un enrutador (agente domstico) que se encarga de enrutar el trfico cuando el nodo mvil se sale de la red. Cuando el nodo se conecte a una red externa recibir una direccin aadida cuidadosamente (CoA). Esta direccin se reporta al agente domstico quien ver que todo el trfico se re-envie a la nueva direccin. Todas las aplicaciones que se comunican con el nodo mvil slo ven la HoA.
10
Servidores Distribuidos
|
Cmo se puede lograr: z Se asigna una direccin de contacto al punto de contacto del servidor distribuido (la que usa toda la vida y conocen todas las aplicaciones). Si el rol de servidor de contacto lo toma otro nodo, la direccin de este nuevo nodo se registra como una CoA (direccin aadida cuidadosamente) con el agente domstico asociado al servidor distribuido. z El agente re-direcciona todo trfico que viene a la direccin de contacto a la nueva direccin. El punto de acceso redirecciona las peticiones hacia los nodos que actualmente participan.
Servidores Distribuidos
|
Para mejorar el desempeo se puede usar la el mtodos de MIPV6 conocido como optimizacin de ruta:
z
Cada vez que un nodo movil con direccin domstica HoA informa su CoA al agente domstico. Este ltimo puede re-enviar su CoA al cliente. A partir e ese momento el Cliente puede enviar directmanet los datos a la CoA. Aunque del lado del cliente la aplicacin sigue usando la misma HoA (direccin domstica), el software de soporte subyacente para MIPv6 traducir dicha direccin a la CoA.
11
Contenido
|
Hilos
Repaso del concepto de hilos y procesos z Hilos en sistemas distribuidos.
z
Migracin de Cdigo
Hasta ahora slo nos hemos preocupado por el intercambio de datos en SD. Sin embargo existen situaciones en las que el pase de un programa (de una mquina a otra), a veces incluso mientras se ejecutan, puede simplificar el diseo de un sistema distribuido.
12
Migracin de Cdigo
Razones para la Migracin de Cdigo | Tecnologa y Mecanismos | Paradigmas de Diseo | Migracin en Entornos Heterogneos.
|
Inicialmente se hablaba de migrar procesos: trasladar un proceso de una mquina a otra (suspender la ejecucin, migrar cdigo y estado y reiniciar la ejecucin en otro computador). La migracin se haca bsicamente para balancear la carga, trasladando procesos desde nodos ms saturados a nodos menos saturados. Indicadores de desempeo: longitud de cola del CPU, uso de la memoria, etc.
13
Distributed Information Retrieval: se trata de encontrar datos que satisfacen un determinado criterio en un conjunto de fuentes de informacin de tamao importante y dispersas en la red. Las fuentes pueden definirse de forma esttica o determinarse en forma dinmica durante el proceso de bsqueda. La migracin del cdigo puede mejorar la eficiencia, migrando el cdigo que ejecuta la bsqueda al mismo lugar (en la misma mquina) donde se encuentra la fuente de informacin.
Migrar partes de un servidor al cliente (Documentos Activos): Las pginas estticas se pueden mejoran con la capacidad de ejecutar programas que estn relacionados con el contenido. Por ejemplo una aplicacin que usa formas para componer y enviar queries a una BD remota. Este tipo de aplicacin puede ser implementada usando una tecnologa que haga fetch de fragmentos de cdigo remoto (Java applets).
14
Explotacin de paralelismo: Bsqueda de informacin en la WEB. Ejem: se implementa una consulta con un programa mvil, llamado agente mvil, que se traslada de sitio en sitio. Al hacer distintas copias de dicho programa y enviar cada copia a un sitio distinto, se aumenta el paralelismo y se mejora la eficiencia de la aplicacin.
Aplicaciones para monitorear/controlar dispositivos remotos: La migracin de cdigo se puede usar para disear e implementar componentes de monitoreo que se instalan en los dispositivos a monitorear y reportan eventos que representen la evolucin del estado del dispositivo.
15
Migracin de Cdigo
Razones para la Migracin de Cdigo | Tecnologa y Mecanismos | Paradigmas de Diseo | Migracin en Entornos Heterogneos.
|
Enfoques ms recientes...
|
Hoy en da se habla de sistemas de cdigo mvil: Mobile Code System (MCS). los cuales presentan ciertas innovaciones con respecto a los enfoques anteriores:
La movilidad se explota en la internet: heterogeneidad, anchos de banda diferentes. z El programa est consciente de su localizacin y la movilidad est bajo el control del programador. z La movilidad se realiza por otras razones, no necesariamente por balanceo de 32 carga.
z
16
Traditional systems
33
34
17
35
36
18
19
Mecanismos
|
Movilidad Fuerte: Se puede migrar tanto el cdigo como el estado a otro CE. Se puede implementar mediante dos mecanismos: migracin y clonacin. Migracin: Suspende el proceso (EU), transmite ste a su destino y luego lo resume. Clonacin: se crea una copia del proceso (EU) en otro CE, el original EU sigue ejecutndose.
Movilidad Dbil: Se transfiere nicamente el segmento de cdigo, junto con algunos datos de inicializacin. Un proceso transferido siempre comienza en algunos puntos predefinidos. Por ejemplo los applets de Java siempre comienzan su ejecucin desde el comienzo.
Mecanismos
|
Sin importar si se trata de clonacin o migracin o si la movilidad es fuerte o dbil se pude hacer una distincin adicional si la migracin es iniciada por el remitente o por el destinatario. Iniciada por el remitente (proactiva): la migracin comienza en la mquina donde reside o se ejecuta el cdigo. Envo de agentes a realizar una determinada bsqueda . Iniciada por el destinatario (reactiva): la mquina destino toma la iniciativa para realizar la migracin. Los applets de Java son un ejemplo. Programas para actualizar versiones del sistema de operacin.
20
Mecanismos
|
Iniciada por el destinatario:es ms simple. Puede ocurrir entre un cliente y un servidor, y es el cliente quien toma la iniciativa. Se realiza de manera annima, el servidor no est interesado en los recursos del cliente. La carga segura de un cdigo hacia el servidor, con frecuencia requiere que el cliente se encuentre registrado y autentificado. El servidor debe conocer todos sus clientes. El cliente probablemente requiera acceder recursos del servidor y es necesario la proteccin de dichos recursos.
Mecanismos
|
Movilidad Dbil:
z
Una EU puede solicitar cdigo (fetch) para ser enlazado/ejecutado dinmicamente o enviar el cdigo a otro CE. Se puede migrar un cdigo o programa entero (se instancia una nueva EU en el destino) o fragmentos de cdigo (clases) (pueden enlazarse al contexto de un cdigo que ya se est ejecutando). Sncrono o asncrona: depende de si la EU requiriendo la transferencia se suspende o no hasta que llegada del cdigo. Ejecucin diferida o inmediata: si el cdigo que llega se ejecuta inmediatamente o posteriormente, cuando se satisface alguna condicin.
21
43
Resource model
Resource = <I, V, T> Binding: By Identifier, By Value, By Type Transferable vs. Non-Transferable
44
22
Enlace por Identificador: se hace referencia a un recurso mediante su identificador. Se requiere explcitamente el recurso al que se hace referencia. Ejem: un URL, un direccin IP de un servidor FTP. Enlace por Valor: se requiere solamente el valor del recurso. Ejm: rutinas de librera, no importa los archivos ni donde se encuentren sino el cdigo o constantes que definan dichas libreras. Enlace por Tipo: se requiere un tipo de recurso especfico, por ejemplo un terminal, una impresora.
Recursos
|
Fijos: Estn ligados a una mquina, no se pueden trasladar (dispositivos locales), recursos del SOP. Transferibles: Ejem. un archivo. No adjuntos: se pueden trasladar fcilmente entre diversas mquinas. Adjuntos: trasladarlo o copiarlo puede ser posible pero a un costo muy alto. Ejem: Una base de datos o un sitio WEB completo.
23
47
48
24
Recursos
|
Si U estaba enlazado por identificador al recurso: si se puede transferir el recurso, se mueve (se re-establece el enlace en la mquina destino) (a). Si el recurso no se puede mover se establece una referencia remota (b)
50
25
Recursos
|
Mover el recurso de su CE puede causar problemas (a, abajo). No se traslada el recurso sino que se establece una referencia remota.
52
26
Recursos
|
Si B es por valor y el recurso es transferible, lo ms conveniente es crear una copia del recurso en el destino (R) y en el destino re-establecer el enlace a R (c). Si R no se puede transferir la nica solucin es una referencia remota. Si un recurso con el mismo valor ya est disponible en el CE destino, se evita la copia.
54
27
Recursos
|
Si B es por tipo lo ms conveniente es el re-enlace. El enlace se elimina y se establece, despus de la migracin, a un recurso R en el CE destino, que tiene el mismo tipo de R (d)
Recursos
|
La naturaleza del recurso y el tipo de enlace vienen determinadas normalmente por el lenguaje ms que por el programador de aplicaciones.
28
Agent Tcl Ara Facile Java Java Aglet M0 Mole Obliq Safe-Tcl Sumatra TACOMA 57 Telescript
Agent Tcl: una EU, es un proceso UNIX que ejecuta el interpretador del lenguaje (TCL). Como los procesos corren en espacio de direcciones separados slo pueden compartir recursos del SOP. Tales recursos se consideran no transferibles. En Agent TCL los agentes pueden saltar a otro CE, clonar (fork) un EU a otro CE remoto o enviar un trozo de cdigo a un remoto CE.
29
En el primer caso se mueve el interprete completo con el cdigo del procesos y su estado. En el segundo caso se hace una clonacin remota (creacin remota de copias de los procesos). En el tercer caso se crea un nuevo EU en el destino para ejecutar el script (shipping o envo, movilidad dbil). El mecanismo es asncrono e inmediato. Una copia de las variables de ambiente de la EU que solicita el envo del script se pueden enviar tambin al destino.
Java: La mquina Virtual Java que interpreta el bytecode, constituye el CE. Java provee un mecanismo programable (class loader) para recuperar y enlazar clases dinmicamente a un programa en ejecucin. El class-loader se invoca cuando el cdigo que se est ejecutando contiene un nombre de clas eno resuelto.
30
El class-loader recupera la clase, probablemente desde un servidor remoto y la carga en la JVM. El cdigo de la clase comienza a ejecutarse. Este proceso puede ser activado de forma explcita por una aplicacin, independientemente de la necesidad de ejecutar o no el cdigo. Por lo tanto Java soporta: movilidad dbil, usando un mecanismo para traer (fetch) de fragmentos de cdigo. El cdigo se ejecuta desde el comienzo, no se trabaja con el estado ni con asociaciones a recursos.
Los applets pueden ser descargados con pginas HTML para permitir dinamismo en la presentacin y acceso interactivo al servidor. La combinacin de un browser con una JVM se puede ver como una tecnologa por s misma . En este caso los browsers son CE y los applets son EU ejecutndose concurrentemente. La descarga de applets se puede ver como un mecanismo qu ofrece el browser para traer (fetch) de cdigo stand-alone.
31
Paradigmas de Diseo
La meta del diseo es la creacin de una arquitectura de software: el software se descompone en componentes y se indican sus interacciones. Las arquitecturas de software con caractersticas similares se denominan estilos arquitectnicos o paradigmas de diseo. Los enfoques tradicionales no son suficientes cuando se disean aplicaciones mviles, el concepto de localizacin es importante. Es importante identificar paradigmas de diseo razonables en SD que exploten la movilidad del cdigo.
63
Definiciones
|
32
Conceptos
Interacciones: eventos que involucran a dos o mas componentes. | Sites: albergan o contienen los componentes
|
Paradigmas de Diseo
Cliente-Server (CS) z Evaluacin Remota (REV) z Cdigo bajo demanda (COD) z Agentes Mviles (MA)
z
66
33
Metfora
Luisa y Cristina interactan para hacer una torta. - Receta o algoritmo: know-how (componente de cdigo) - El Horno y los ingredientes son los recursos - La persona que mezcla los ingredientes es el elemento o componente computacional. Para preparar la torta todos los componentes deben encontrarse en el mismo Site.
Design Paradigms
68
34
Modelo C/S
Luisa quiere la torta y no tiene ni la receta, ni el horno ni los ingredientes. Solicita a Cristina que se la haga y ella recibe la torta cuando est lista.
Evaluacin Remota
Before After
Luisa slo tiene el rcipe y Cristina tiene lo dems. Luisa le enva la receta a Cristina por telefono y luego recibe la torta. Un componente computacional A tiene el know-how pero no los recursos, A enva el cdigo a B (ubicado en un site remoto Sb). B ejecuta el cdigo usando los recursos disponibles y enva los resultados de vuelta a A.
35
Code on Demand
Before After
Luisa tiene los Ingredientes y el horno pero no la receta. Luisa le solicita a Cristina la receta, y ella se la da por telfono y Luisa prepara la torta en su casa. A tiene los recursos pero ninguna informacin para manipularlos. A interacta con un componente B en otro sitio (Sb) y le solicita el servicio del know-how. B le enva el cdigo a A.
Mobile Agent
Luisa tiene el recipe y los ingredientes pero no el horno. Luisa va con la torta batida (o sin batir) a la casa de Cristina a hornear la torta. A tienen el know-how e inicialmente se encuentra en Sa. Algunos recursos estn en Sb. A migra a Sb, llevando consigo el know-how y algunos resultados intermedios. Una vez en Sb, A culmina los servicios. El componente computacional se desplaza (estado)
36
Design Paradigms
73
Est la mquina destino preparada para ejecutar el cdigo???? (slo si hablamos de sistemas homogneos). Solucin: Mquinas Virtuales
z z
Lenguajes Interpretados ejecutndose en una mquina virtual de procesos: Java Mquinas virtuales de sistema que permiten la migracin de sistemas operativos completos y aplicaciones.
37