Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-09-2006
Ariel Pérez Ariel Pérez is offline
Miembro
 
Registrado: ene 2006
Posts: 10
Poder: 0
Ariel Pérez Va por buen camino
Intercambiar información entre bases de datos por Internet ¿TCP o FTP?

Hola a todos, estoy desarrollando una aplicación que, instalada en varios lugares remotos, con acceso a Internet, tiene que compartir cierta parte de la información, almacenada en dichos lugares, de manera que determinados registros (no todos) insertados o modificados en uno de los dos lugares, sean igualmente insertados o modificados en el resto.

Para ello he pensado en dos posibilidades, pero como carezco de experiencia en aplicaciones para Internet, solicito y agradezco, la colaboración de quien me pueda ayudar a decidir qué camino tomar.

En ambos casos he pensado en la necesidad de una segunda aplicación, que actúe como servidor, y se encargue de recibir y enviar la información de un lugar a otro, ya que los lugares que albergan la primera aplicación (a partir de ahora la llamaré aplicación cliente), no tienen una IP fija, además de que el intercambio se debe realizar a pesar de que uno de los equipos esté apagado, por ello veo necesario y conveniente el desarrollo de la aplicación servidor, la cual si estará instalada en una red con IP fija, conocida por las aplicaciones clientes.

Por un lado he pensado en implementar el intercambio mediante los componentes “TIdTCPClient” y “TIdTCPServer”, de la siguiente manera (resumida), el cliente establece la conexión y envía la información al Servidor, el cual la recibe, identifica un comando que se envía al principio del texto, comprueba que haya llegado toda la trama, guarda en la base de datos lo que sea, y notifica al cliente remitente la recepción ok de la trama, para que este no la envíe más. Posteriormente espera hasta que el cliente destinatario esté conectado y disponible, le envía también un comando (que es identificado por el cliente) más la información, el cliente destinatario recibe la trama, …etc., etc., etc., …, y responde que la ha recibido para que el servidor la elimine de la base de datos, etc., o sea, elaboro un protocolo, un poco más detallado y cuidado de lo que aquí expreso (ya que este es un proceso conocido), pero que en esencia utiliza los componentes “TIdTCPClient” y “TIdTCPServer” para enviar y recibir la información, y la información se envía cada vez que se inserta / modifica.

En paralelo he pensado en la posibilidad de hacerlo mediante FTP (TIdFTP), de la siguiente forma: el cliente remitente inserta / modifica uno o varios registros, esto se guarda en un archivo en forma de “script”, el cual es subido (FTP) al servidor, en la medida en la que estos archivos vayan llegando el servidor, este los irá reorganizando, o sea, cada vez que llegue uno, viene de un único cliente remitente, pero puede contener información para uno o varios clientes destinatarios, así que va creando nuevos escripts para cada cliente destinatario, con lo cual, cuando un cliente destinatario se conecta se puede bajar (por FTP) los archivos que hay para él, los cuales tendrán información de uno o varios clientes remitentes, una vez los baja, existe un intérprete para esos scripts que se encarga de actuar sobre la base de datos y eliminar los scripts cuando haya terminado, pero el intercambio de información no se realiza registro a registro o comando a comando sino en bloques vía FTP, cada un cierto tiempo, configurable.

Mi pregunta es, qué método debería utilizar, para el intercambio de información, el primero (con TCP), el segundo (FTP) u otro que no haya tenido en cuenta.

Como nota interesante, les argumento que la información que se va a intercambiar es de diferentes tipos, desde INTEGER Y VARCHAR hasta BLOB con texto enriquecido e imágenes.

S.O. para la explotación: Windows 2000 / Win XP y es posible que algo menor en algún cliente.

Para el desarrollo:
S.O.: Win XP.
Delphi 7
Firebird 1.5
Acceso a Internet: ADSL en todos los casos.

Si no me he explicado con suficiente claridad, o no he detallado determinados conceptos que sean necesarios, les ruego que me pregunten y estaré encantado de aportar lo que me haya faltado.

Les estaría muy agradecido de cualquier ayuda o sugerencia que me puedan ofrecer, se que aquí hay muchas personas con experiencia y capacidad demostradas, que podrán ayudarme a tomar la mejor decisión, por eso desde ahora les doy las gracias.

Que pasen un buen día.
Responder Con Cita
  #2  
Antiguo 15-09-2006
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
creo que deberias revisar un poco lo que es replicacion de bases de datos
__________________
self.free;
Responder Con Cita
  #3  
Antiguo 15-09-2006
Ariel Pérez Ariel Pérez is offline
Miembro
 
Registrado: ene 2006
Posts: 10
Poder: 0
Ariel Pérez Va por buen camino
Hola droguerman, agradezco tu interés, como me temía seguramente no me he explicado con suficiente claridad antes, ya que lo que necesito no es replicar una base de datos en otra, lo que necesito es enviar determinado registros, de una base de datos a otras, pero éstos registros no van a la misma tabla, hay un proceso intermedio que los pasa de una tabla a otra (con algunos campos comunes y otros diferentes), luego en el cliente destinatario se guarda en una tabla y en el cliente remitente en otra, pero parte de esa información es la misma, por otra parte no es tampoco ni toda las modificaciones de la BD ni todas las tablas, ni todos los registros, o sea es solamente determinados registros de un cliente van a parar a determinados clientes destinatarios.

Imagínate por ejemplo un intercambio de mensajes, “el cliente 1” le envía un mensaje a los “clientes 2, 5, y 8”, por ejemplo, luego el mensaje se guarda, en el “cliente 1” en una tabla de “mensajes enviados” con una determinada estructura, mientras que en los clientes receptores del mensaje, se guarda en una tabla de “mensajes recibidos” (con una estructura diferente a mensajes enviados), pero parte de la información es la misma, luego los “clientes 3,4,6,7, etc.”, no reciben esa información, o sea, el intercambio es selectivo, de una tienda a las tiendas que cumplan determinados criterios en cada caso.

Gracias.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Enlaces entre Bases de Datos!! Chik_Electronik C++ Builder 3 01-06-2006 05:00:37
Como realizar consultas entre dos bases de datos jfgonzalez Conexión con bases de datos 1 20-10-2005 01:52:48
conexión entre distintas bases de datos jsanchez Firebird e Interbase 1 09-03-2004 22:35:22
Bases de datos en Internet negama Conexión con bases de datos 0 16-06-2003 18:12:28
Consulta entre bases de datos diferentes yanaysi Varios 1 28-05-2003 04:35:37


La franja horaria es GMT +2. Ahora son las 13:12:29.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi