Arquitectura P2P entre servidores

Julian Reyes Escrigas julian.reyes.escrigas en gmail.com
Lun Dic 13 11:40:59 CLST 2010


 te comento es una aplicacion que va a funcionar en uno de los departamentos de mi pais, donde se va recolectar información madiante digitación de unas encuentas, pero obviamente una persona puede ser encuestada en un lugar distinto y luego encuentada en otro momento en otra ciudad creando una duplicidad que es lo que quieren evitar con este sistema. 


se sugirio que el sistema estuviera totalmente centralizado, es la mejor opcion, pero hay municipios (ciudades), que por X o Y motivo pueden o tiene problemas de conectividad, y necesitan que el trabajo no se suspenda por falta de internet, en otras palabras desean la maxima disponibilidad posible.


las personas que plantearon los requisitos estoy completamente seguro que no tiene las minima idea de lo que solicitaron en los terminos del contrato pero el contrato debe cumplir a cabalidad lo que se exige o al menos una solucion aproximada porque si no se incumpliria en el mismo.


vuelvo y se que las bases de datos se pueden poner a trabajar de una manera que cada servidor se conumique con los demas, pero estoy seguro que este tipo de configuracion son para que siempre tengan conexion.


digamos que la solucion que tengo en mente hasta el momento es la siguiente




servidor secundario
1. la persona trabaja sobre un servidor secundario
2. al momento de procesar la informacion el intenta comunicar al servidor central si no hay conexion se guardan los cambios como si se tratase de una CVS.
3. una tarea programada de cada 15 minutos (por ejemplo) revisa si existen datos que sincronizar si existe conexion los sincroniza


servidor central
1. el servidor central recibe peticiones de un servidor secundario hace validaciones a los datos y regresa una novedad de dicho registro
2. si no existe conexion con el servidor secundario guarda las respuesta en algun lugar 
3. si existe una confrontacion de informacion con otros sistemas el servidor genera las novedades de cada servidor secundario
4. una tarea programa de cada 15 minutos (por ejemplo) revisa que exista conexion entre el y los servidores secundarios si existe envia las novedades a quien corresponda




pues mirandolo de este modo se utilizara algun protocolo para que una tarea programa (cron) envie la informacion cuando exista conexion, el resto simple aplicaciones, la diferencia es que el servidor principal seria nada mas web services para los demas servidores.


yo tengo esta idea pero me gustaria conocer cuales serian esos metodos de comunicacion como web services escuche una recomendacion de REST de alguien y si estuve mirandola como la solucion viable, tamiben escuche algo con protocolo torrent, me llama mas la atencion ya que el torrent puede tener las conexiones cifradas y ademas en caso de que la conexion se caiga en plena transferencia no se pierde los transferido ya que una vez se haga la confrontacion pueden llegar a ser grandes cantidades de datos las tranferidas




Más información sobre la lista de distribución Linux