Replicación o sincronización de Datos de Aplicativos en varios Vservers


([N2] huntergps) #1

Estimados compañeros Velneadores, estoy con un gran reto de un proyecto, quisiera pedirles su ayuda en lo siguiente:

Se requiere tener un aplicativo instalado en varios vservers, los cuales deben sincronizar los datos, es decir si en el aplicativo del vserver1 se hace una alta, baja ó edición de un registro, esto se replique a los otros vservers.
He pensado inicialmente en tener una tabla con un identificador unico y que el resto de tablas sean submaestras de esta, asi por ejemplo el aplicativo del vserver1, le corresponderia el registro con id=1, del vserver2 con id=2.
Luego guadar los datos en un archivo de texto que luego pueda ser enviado por correo ó ftp a cada vserver y sea ingresado mediante una importación.

De ahí me he quedado en blanco... Auxilio....!!!

Alguién ha realizado algo similar? Se aceptan sugerencias de como afrontar esto.
Si logramos hacerlo sería un gran aporte para ponerlo en las open apps.

Saludos desde las islas Galápagos.

Elmer


([N4] mperez) #2

Hola Elmer. No acabo de entender la solución que propones o igual no entiendo el problema, pero creo que..

Para hacer lo que quieres, la solución son las funciones remotas.

Por ejemplo imaginemos que estamso en el vServer destino, en el que los datos van a ser replicados, en el definiras una funcion remota, por ejemplo Altamod y cuyos parametros serán codigo, nombre y cantidad. Esta funcion hara una alta directa o una modificacion con los parametros recibidos.

En el emisor, simplemente en la tabla en cuestion, pones una booleana, replicado s/n y que actualizas cuando se produce una modificaciono alta

Despues haces un proceso que se lance cada X tiempo, y que lo que haga es cargar lista de rgistros con replicado = N y lanzas la funcion remota Altamod sobre el segundo servidor y si la funcion te devuelve Ok, modificas el registro

Este proceso, tiene la ventaja de que no tienes que controlar nada


([N1] Synetic) #3

Hola Elmer,
Entiendo que lo que quieres hacer es que teniendo varios servidores tener la misma información en todos ellos.

Miguel te cuenta como replicar dos servidores con funciones remotas. Uno obtiene la información del otro.
Yo lo plantearía poniendo un servidor central, digamos MASTER. Todos los servidores se encargar de enviar su información ahí y obtener de el la información almacenada de los otros vservers. Es decir, todos los vservers envían y reciben del mismo sitio, del MASTER.

Luego tienes que controlar los contadores, series, delegaciones o como quieras consolidar datos.

Saludos,


([N2] huntergps) #4

Gracias por sus respuestas... el gran problema en las islas galápagos es que no existen enlaces de datos entre las diferentes islas, por lo que se debera generar un archivo para enviarlo mendiante curier al finalizar el día, ahi ya no puedo utilizar las funciones remotas ni la propuesta de Fernando de usar un vserver MASTER.

Att
Elmer


([N1] Valdes) #5

Yo lo tengo hecho en V6, pero te servirá perfectamente para V7.

Todas las tablas que replican datos entre vServer han de ser submaestras de una tabla de vServers(si la quieres llamar así. No dejan de ser ubicaciones de cada vserver) los llamaremos DESTINOS.

En los manejadores de eventos de alta, modificación y baja añado a una tabla de ACTUALIZACIONES el registro a pasar tantas veces como DESTINOS tenga.

Un demonio cada x tiempo genera un txt con las lineas de cada DESTINO. Antiguamente se pasaban los ficheros por TCP/IP, pero dan problemillas de bloqueos en el vServer, así que se sincronizan entre los vServer por medio de dropbox y la verdad que funciona de jujo.

Saludos


([N2] huntergps) #6

Gracias valdes.m. Es algo como eso lo que necesito implementar, imagino que en la tabla de ACTUALIZACIÓN lo guardas en un solo campo de texto mediante separadores la información del registro a pasar. Hasta cuantos vServer has podido sincronizar?
Como manejas el tema de edición y tiempos, por ejemplo si estoy en el vserver1 y edito el registro #20 y otro usuario en el vserver2 tambien edita el mismo registro #20, a cual das prioridad?

Att
Elmer


([N1] VictorMC) #7

@Hunter

Nosotros trabajamos con replicación de datos entre servidores: de v7 a v7 y de 6x a v7

Realiza la consulta y con todo gusto intentaremos apoyarte.

- Lo que no comprendo es cuando dices que "no tienen conexión de datos" me pregunto: ¿Tienen conexión a internet? o ¿enlace satelital? si es así no veo la dificultad para envíar información por FR

- En cuanto a tu planteamiento para le edición de registros ten en cuenta dos cosas:
1) En estos casos deberás manejar ID únicos para cada registro, incluso cuando estén mesclados los registros dados de alta en diferentes servidores,
2) En nuestro caso la edición solo se permite en un server central y cuando en ocasiones se permite la edición en un server cliente, la prioridad siempre la tiene la matriz.

Saludos, espero te siva de algo.

Victor Martínez Cortés.
www.livesoftmx.com


([N4] info) #8

Como dice Victor hay que crear codigos unicos. yo asigno y codigazo con fecha+hora+minuto+numsecuencial esto me permite replicar de manera bi-multidireccional, la pena es que an las APIS de Velneo no se puedan tratar los nombres de las tablas sino con dos procesos de 30 lineas se hacia todo
un saludo
Miguel


([N2] huntergps) #9

Gracias a todos... por la singularidad de las Islas galápagos el servicio de internet no existe en todas las oficinas.. solo en 2 de ellas.. el resto se sincronizarian por archivos de texto, al final del día se envia un cd o memory en lancha.

Saludos
elmer


([N1] VictorMC) #10

@Elmer

No sería más costeable contratar una conección satelital? o si son sucursales en la misma zona (desconozco las distancias) pudiera hacerce una conexión Punto a Punto por medio de Acces Points y antenas...

Sin duda lo podrás hacer con ahcivos de texto (a lo cual no le veo el problema tampoco), pero lo ideal es contar siempre con una conexión.

En cuanto a los procesos para hacer la importación desde un archivo de texto no creo que tengas problema, así que en lo que se ofrezca, estaré pendiente.

Victor Martínez C.
www.livesoftmx.com


([N2] huntergps) #11

Gracias Victor, estamos hablando de islas separadas por distancias de 80km... y una conexion satelital puede pasar de los $200k al año.... como veras es una singularidad muy peculiar la que tenemos por aquí...

Voy a tratar de hacer en base a generación de archivos... gracias por todo...

Att
elmer


([N1] Valdes) #12

Con 7 vServer funciona sin ningún corte, parada ni molestia y siempre que haya internet los datos están actualizados como mucho en 2 minutos en todos los sitios. El dia que se corte internet, solo depende de los vServer que no lo tengan, el resto sigue replicandose y en cuanto regresa internet tarda muy poco tiempo en pasar de nuevo los datos, ya que controlamos el numero de lineas pendientes de actualizar y la ultima actualización, con lo que en ese momento forzamos el paso de una mayor cantidad de lineas por txt.

Saludos
Mario Valdés Caso