Sincronización de data entre sistemas aislados

Estoy desarrollando un sistema de gestón para una pequeña empresa agroindustrial y para esto el sistema debe correr en tres plantas aisladas una de otras, es decir que no están en red y geográficamente están muy retiradas de la ciudad y entre si, pero ellas necesitan ver parte de la información generada en cada planta, en especial la sede central. La cuestión pasa por la necesidad de sincronizar la data entre plantas, las cuales solo tienen acceso a internet. La idea es que de alguna manera pueda cada planta preparar un paquete de data cada cierto tiempo y enviarlo a los demás por correo electrónico para que estos la "suban" al sistema y así se actualicen. Quisiera que me aconseje al respecto si sabe de una manera de solucionar este problema o una manera más eficiente de realizar lo que se me había ocurrido. Por cierto estoy desarrollando en PowerBuilder 9.0 y uso DB A.S.A. 8.0.

2 Respuestas

Respuesta
1
Si la infraestructura de la empresa no puede generar una intranet, para poder conectarse a la BD vía ODBC, la tecnología cliente servidor no puede aplicarse. Necesitas generar un sistema que trabaje a través de internet, hospedandolo con un proveedor que te permita cread una BD y accesar vía WEB al sistema, puedes generarlo con PHP o JSP's. Esa solución que propones es buena, mientras no haya desincronización de los datos, para que el sistema sea completamente en línea debe existir una sola BD.
Respuesta
1
Ok, entonces lo que puedes hacer es lo siguiente:
Puedes crear una base de datos con ASA, esta base de datos la puedes mantener de manera local en cada uno de los computadores de los sitios que mencionas.
Esta base de datos puede ser igual a la base de datos central. Teniendo la base de datos local, debes crear dos procesos:
-El que envíe al sitio central las modificaciones de los sitios.
-El que actualice la base de datos de los sitios (NO central) con la información que fue generada en los otros sitios.
Si observas bien, lo que se pretende es que en cada sitio se tengan los mismos datos, así que en cualquier sitio podrían consultar la información que se necesite.
El Objeto PIPELINE, lo único que hace es permitirme conexión a dos bases de datos y pasar la información de una tabla a otra tabla de iguales características.
El método clave de este objeto es el start, trata de mirarlo por la ayuda de la aplicación y si tienes dudas de su funcionamiento me cuentas...
La verdad es que hace unos año trabajé para una empresa que manejaba algo similar, para esto lo que hicimos, aunque después se mejoró, fue lo siguiente:
Cada uno de los sitios retirados manejaba una base de datos, y cada vez que un registro era adicionado o modificado, este era marcado en la base de datos con un 1 en un campo de cada tabla.
Luego, en las horas de la tarde estas personas se conectaban por modem al servidor central y corrían un proceso que se encargaba de actualizar en la base de datos central todos los registros que ellos habían adicionado o modificado, el proceso quitaba las marcas cuando este terminaba. Este proceso se realizó usando el objeto datapipeline.
Más sin embargo esto tiene varios problemas:
- Caída de la conexión vía modem.
- Altos costos por llamadas de larga distancia.
- El proceso se demora mucho.
Luego lo que hice fue que las personas de las otros sitios, enviaran la base de datos para que yo estando ubicado en la planta central realizara el proceso de cargue, esto solucionó el problema de costos en llamadas de larga distancia, pero me demandaba tiempo, pues a veces era demorado.
Para mi la mejor solución en tu caso es que desarrolles una aplicación WEB que garantice la información en línea y así los sitios estarán conectados vía modem todo el día, pero usando sus proveedores locales, sin incurrir en gastos de llamadas a larga distancia para conectarse a un modem ubicado en el sitio central.
Espero puedas sacar este sistema adelante y que sea al menor costo posible para la empresa agroindustrial.
Que estés bien.
Saludos Andagui, gracias por atender mi consulta. Quisiera saber si el objecto Pipeline, puede generar algún paquete de exportación de datos o si conoces de algún manejador de BD que lo haga. Lo que sucede, es que aunque las plantas tienen acceso a internet todo el día, no existe en realidad un Servidor Web Central en donde replicar la data (por falta de presupuesto no puede implementarse por el momento). Otro punto crítico es que sólo estoy desarrollando el sistema y no trabajo allí, por lo que el "proceso de transferencia de información" tiene que ser lo más automatizado posible para que un usuario medianamente capacitado pueda realizarlo en cada planta (ya que la data generada en una, es necesaria en otra planta, aparte de la oficina central).
Agradezco mucho su valiosa respuesta que tomaré en cuenta, y si me puede responder esta aclaración le reitero mi agradecimiento.
Gracias por su aporte Andagui, me será de gran utilidad. Le comento que tomaré en cuenta su idea de crear un campo en las tablas a enviar que me permita controlar la transferencia de data. Estoy pensando, a través de datawindows, exportar la data a enviar en archivos XML, los empaqueto con el pkzip y lo envío por e-mail; y realizo un proceso inverso para subirlo al sistema. Si tuviera algún aporte adicional será bien recibido, por lo pronto estoy satisfecho con su ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas