Apuntes_David_23.2


 * __Apuntes de clase__**

Esta habiendo una discusion interesentasima entre el profesor y Espi sobre el numero de procesadores que tiene la XBOX... Creo que al final han llegado a la conclusion de que tiene 3...

La clase de hoy trata sobre las tecnologías que incorporan hoy en dia casi todos los ordenadores de sobremesa. En los apuntes podemos ver cuales son las mas conocidas.

A todas las caracteristicas que incumbren al PARALELISMO se le incorpora la conectividad (WiFi, Bluetooth,...) Hay que hacer una aclaración, y es que Bluetooth es una tecnología WiFi también. EN realidad lo que creo que se queria decir es la incorporación del 802.11, además de Bluetooth.

Vemos también todos los problemas que plantea el paralelismo. DIstrbuir las tareas entre hebras y procsadores, como ya sabemos, no es nada trivial. Los mismos paradigmas se usan para distribución concurrente y distribuida (varias hebras o varios procesadores). En esta asignatura no vamos a diferenciar entre ellas, sino que las asociaremos a una misma idea.

Nos vamos a centrarnos en el nivel de aplicación y no nos preocuparemos de un HW específico ni de implementación de protocolos. Vamos a usar sobre todo Javascript, Ruby y Pearl, aunque de estos dos últimos aprenderemos a través de ejemplos y no los estudiaremos específicamente. A final del segundo tema sabremos programar en Javascript.

TRabajar muy cercanos a la máquina tiene el gran problema de que depende enormemente del HW. POr eso nosotoros abstraeremos a nivel de aplicación, y desde ahí intentaremos sacar máximo partido a la computación distribuida. Es que vamos a trabajar durante la asignatura.

Usamos varios sistemas físicos conectados entre sí. Son nodos, puesto que tienen capacidad de procesamiento.Esto presenta un requerimiento importante, y es que han de ser escalables. También han de sere transparentes y tolerantes a fallos.TRansparente se refiere a q no tienes que preocuparte en q zona del sistema esta el recurso que estas usando. Esta relacionada con la tolerancia a fallo.
 * Computación distribuida**

En computacion paralela no se da la transparencia, sino q la configuracion es especifica y no suele cambiar. Y especificamente hay que decir de q nodo a q nodo se mueve la aplicacion.bEstan ya en desuso.

Tenemos varios tipos de sistemas distribuidos: -Cluster: bajo coste, homogéneos (todos tienen la misma configuracion) conectados con una red de alta velocidad (~1 Gbps). Las aplicaciones son síncronas. El ppal problema es que hay q tener control sobre todos los nodos. - Sist grid. La ppal diferencia es q tiene muchos administradores, a diferencia del cluster q tiene uno. POr lo demas son muy parecidos a los cluster. Los sistemas pueden estar separados fisicamente, a diferencia del cluster donde han de estar todos juntos. - Redes overlay: redes construidas encima de otras redes. Son vinculos logicos, a nivel de aplicacion. Un ej es la red emule. Se consdtruye entre todos los q ejecutan un protocolo. También se les llama redes a nivel de aplicación. - Sist entrre pares: basados en una aplicacion. La idea es q no diferencia entre cliente y servidor. No hay una jerarquía explicita entre los nodos de la red. Tienen un sistema de superpares, donde dichos nodos tienen algunas capacidades especificas. En Bittorrent la crea se crea a nivel de fichero, a diferencia de emule donde la red es a nivel de aplicación. - Computacion de ciclos redundantes: son ciclos "para tirar". Hay redes q aprovechan esto. La mas conocida es SETI@Home, para la búsqueda de vida extraterrestre.

Estos anteriores son sistemas mas o menos simetricos. Hay otros mas clasicos: sistemas cliente-servidor. Se habla de sistemas multi-tier, refiriendose a muchas partes: un servidor de BBDD, otro web, etc. Un middleware es todo lo que haya entre un cliente y un servidor.

Los servicios web son formas de cominicarse entre un cliente y un servidor, sintactica y semanticamente ricas. El paradigma de un servicio web es el fichero. Ahora se esta cambiando al paradigma objeto, o bien al funcional.