Ver Mensaje Individual
  #8  
Antiguo 26-11-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Reputación: 25
__cadetill Va por buen camino
Bueno, de forma rápida.

Las comunicaciones se hacen de Tienda -> Almacén, es decir, la que establece la conexión es la tienda y el que espera la conexión (por lo que siempre ha de estar conectado) es el almacén.

Tendrías que crearte un programa de comunicaciones que se disparara cada X minutos.

Al dispararse tendrías que hacer:
1.- Mirar que datos has de enviar al almacén
2.- Comprimirlos (para ello yo utilizo las ZLib -> para una demo y componentes, mira en mi web)
3.- Realizar el envío por medio de FTP
4.- Marcar los datos como enviados (por un campo Flag en la BD o como quieras)
5.- Mirar si en el almacén hay datos para descarga
6.- Si los hay, descargarse los datos (que tambien irán comprimidos), descomprimirlos y actualizar BD

Lo de controlar los datos a enviar se puede hacer de muchas maneras. Nosotros, por ejemplo, tenemos triggers asociados a las tablas que tenemos que "subir" y que rellenan tablas temporales (dentro del FB). Luego, sólo tenemos que leer esas tablas creando un fichero XLM por tabla para despues comprimirlos. Lo del XML es porque, al ser fichero de texto, ocupa poco y el envío se hace más rápido.

Luego, para la descarga de información, el procedimiento es más o menos el mismo. Si, por ejemplo, se crea un artículo nuevo, se pone en una tabla temporal (tambien por triggers). Cada X minutos se lanza un proceso que crea los XML pertinentes, los comprime y los pone en la carpeta de la tienda correspondiente (una carpeta por tienda que será donde se conectarán ellas)

Bueno, esto es de forma algo por encima. Si te interesa el tema, se puede ampliar la explicación, pero almenos es para que veais la idea
Responder Con Cita