(21-09-2010 23:49)Teseracto escribió: [ -> ]Cita:Similar al TP de este Cuatrimestre donde se tiene un Grid de Nodos, y uno de ellos es un DC (Distribuidor de Carga).
A mi tambien se me pianta un lagrimon, es el tp que hice :')
Creo que justo lo que mencionas, es lo que tiene de distinto. En el tp - 2do cuatrimestre 2008, no tenias un grid de nodos, ni tampoco un distribuidor de carga. Los nodos formaban una estructura de arbol, y no habia carga para distribuir: el servidor que recibia mensajes del cliente, se encargaba de enviar mensajes que al final eran recibidos por todos los nodos del arbol.
En lo que si lo veo similar, es en el algoritmo de islas, y que tenes nodos .
Como venia de ese tp, pense que talvez en este tambien tenias que hacer un cliente http .
Jajaj que groso recordar tps anteriores de esta manera. =) Podría estar horas hablando de todos los TPs que hice. Aprendí bocha.
Con respecto a lo de este TP comparado con el del 2do Cuatrimestre de 2008, es exactamente como vos decís. De echo, no existía distribución de carga ya que la red gnutella tenía un sentido totalmente distinto. La idea era que el Network Manager pudiera pinguear cada cierto tiempo, configurado por Config File, para que se re-descubriera la red. Cada nodo (File Server) conocía y tenía una lista de nodos que estaban conectados a la red, y si el nodo con el que estaba conectado directamente se caía, ante una solicitud de PING, tenía que probar con siguiente nodo conocido.
Cuando el Cliente efectuaba un Request por su consola, la consulta no era por HTTP sino por protocolo IPC/IRC. Iba dirigida al Network Manager, quien primero consultaba (si estaba activada) al Cache Server si la consulta ya había sido efectuada -CACHE HIT-. La Cache guardaba los Response asociados a esos Requests. Y si daba CACHE MISS, o la Cache estaba desactivada, el pedido Request se transformaba en un Gnutella Package, y el Network Manager se la enviaba al File Server que tenía asociado, y éste lo distribuía tantas veces como el TTL del paquete estaba seteado previamente por el Network Manager (también por Config File).
La consulta a través de la red Gnutella tenía como objetivo que cada nodo File Server enviara la lista de archivos (de su file system local) que empezaran con el nombre solicitado por Request por parte del Cliente, y también los datos de sí mismo (IP y Puerto). De manera tal que, dado el TTL=N del paquete, a N File Servers les iba a llegar este pedido, e iban a enviar la respuesta al nodo anterior (que se la mandó), pero a la vez a re-distribuirla a los nodos que tuviera conectados a sí mismo.
Una vez que la información del pedido Request volvía al Network Manager, se armaba un paquete Response IPC/IRC con todos los datos de los archivos, por File Server, se actualizaba la Cache Server si estaba activada, y se enviaba de vuelta. Finalmente, el Cliente seleccionaba por consola que archivo quería descargar (previo a eso, la consola le mostraba un menú de opciones hermosamente ordenado) y para descargar ese archivo se creaba un nuevo Thread que se comunicaba por protocolo HTTP
directamente con el File Server que tenía el archivo y lo descargaba.
Magicoo.
También se me plantó un lagrimón, porque lo terminé y andaba genial. Pero en ese momento tuve otro lagrimón porque recursé igual xD