Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-11-2012
Avatar de Cañones
Cañones Cañones is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Paz Entre Ríos
Posts: 354
Poder: 18
Cañones Va por buen camino
Buenas, llego tarde pero aporto una idea.
Yo haría que los clientes digitalicen y que mediante VPN o FTP manden los documentos al servidor.
En el servidor tu aplicación cargando todo lo que le van pasando en la DB.
Lo bueno de esto es que si se te cae la conexión en cualquier cliente puede seguir digitalizando y cuando vuelva la conexión se transfieran los datos. También se pueden definir procesos para que la transferencia se haga por la noche para no ocupar el ancho de banda y durante el día se utiliza la conexión para consultar documentos ya cargados en la DB y sería optimo.
Responder Con Cita
  #2  
Antiguo 23-11-2012
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Yo creo que el tema principal de nuestro amigo es: "¿Cual es la manera más eficiente enviar un archivo local a un servidor remoto?". Esto solo se puede hacer de dos formas:

1.- Enviarlo por FTP (simple de hacer)
Ventajas:
No tienes que programar el software hay muchísimos servidores libres y bastante potenes que puedes utilizar.
Delphi ya trae componentes listos para conectarse y hacer lo que deseas
No te tienes que preocupar por concurrencias, el software servidor hace todo el trabajo
Funciona hasta con una conexión de modem telefónico.

Desventajas:
Puede ser algo lento si tienes demasiadas conexione y el software no lo tienes bien calibrado.
Hay que escribir un poco más de código para transmitir el archivo.

2.- Guardarlo en una carpeta de red (que puede ser trabajar sobre VPN)
Ventajas:
Tu programa puede correr sin modificar nada pues la carpeta "\\servidor" puerde residir en cualquier localidad independientemente de la red real donde este trabajando.
Para los usuarios es más transparente.

Desventajas:
Requieres gran ancho de banda para un comportamiento mas o menos "normal", pues no es lo mismo una LAN a 100 Mbs que una conexión de banda ancha de 20 Mbs que además es compartida entre varios equipos dentro de la red. Lo ideal para esos casos es un enlace dedicado lo cual es algo costoso para muchas empresas.
Hay que configurar la VPN lo cual para que de buenos resultados requiere hardware adicional (routers) en cada punto de conexión (oficina) y conocimientos avanzados de redes para mantenerla.

Mi conclusión:
Si tu cliente tiene el dinero para invertir en enlaces dedicados e infraestructura de red decente, entonces vamonos por VPN; de lo contrario mejor la opción de FTP.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #3  
Antiguo 23-11-2012
JAI_ME JAI_ME is offline
Miembro
 
Registrado: ene 2006
Posts: 188
Poder: 19
JAI_ME Va por buen camino
Muchas gracias por sus respuestas, creo que seria una buena opción el uso de FTP, pues básicamente lo que pretendo es que cuando un cliente escanee a traves de la aplicación delphi y procese el formulario indicado todo se guarde en el servidor.

Si el FTP me soluciona este problema seria grandioso ya que les entendí que requiere de menos ancho de banda y es mas económico.

pero cuales serian las configuraciones o componentes que debería usar para la conexion remota entre cliente y servidor a través de FTP para que funcione mi aplicación.

por recordarles el tema principal, el cliente debe procesar un formulario y escanear uno o varios archivos todo esto debe ir al servidor. (la información del formulario se guardará en la base de datos y los archivos escaneados a un directorio físico en el servidor).
__________________
JaiMelendez

Última edición por JAI_ME fecha: 23-11-2012 a las 21:32:16.
Responder Con Cita
  #4  
Antiguo 24-11-2012
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Con FTP lo resuelves entonces. Necesitas utilizar algún componente para conectarse al servidor (la pestaña Indy tiene uno), solo lo configuras indicando a que dirección se va a conectar y con una instrucción subes el archivo. Hay muchos ejemplos en la red.

Por el lado del servidor, solo necesitas instalar el software, te recomiendo FileZilla Server, es libre y bastante sencillo de configurar. Recuerda que debes configurar en este software y cualquier otr FTP, al menos un usuario con su contraseña y las carpetas del servidor a donde va a tener acceso ese usuario, que obviamente será tu aplicación.

LO puedes implementar muy sencillamente así:

1.- El cliente escanea su documento
2.- Ya escaneado el documento se envía al servidor FTP (habrá que definir un nombre para él, o bien generar uno aleatorio y que el usuario describa que contiene)
3.- Si todo salió bien y se subió sin problema, grabar en la tabla de la BD el nombre de archivo y la descripcion que le puso el usuario.

Para acceder al archivo hacemos lo contrario:

1.- El cliente consultar la tabla de la BD hasta encontrar su archivo
2.- Al encontrarlo se solicita o descarga dicho archivo mediante FTP utilizando los datos que obtuvimos al consultar la tabla
3.- El usuario lo guarda en forma local

Una ventaja adicional es que puedes tener un servidor para la base de datos y otro distinto para guardar los archivos ya que la conexion FTP no tiene que ser forzosamente al mismo servidor que mantiene la base de datos. Por ejemplo, puedes tener el servidor de BD en una ciudad y los archivos físicos en otra diferente.

Si quieres mas info te pongo un ejemplo de como se hace, esta unidad sube un archivo a un servidor previamente configurado:

Código Delphi [-]
unit uCFD_FTP;


interface
uses IdFTP;
const FTP_USERNAME = 'usuario';
      FTP_PASSWORD = 'password';


procedure CFD_UpLoad(aOrFile,aDestFile:string);
procedure CFD_UpLoadFiles(aXMLOrfile,aXMLDestFile,aPDFOrFile, aPDFDestFile: string);




implementation

procedure CFD_UpLoad(aOrFile,aDestFile:string);
var Servidor: TIdFTP;
begin
  Servidor := TIdFTP.Create(nil);
  try
    Servidor.Passive  := TRUE;
    Servidor.Username := FTP_USERNAME;
    Servidor.Password := FTP_PASSWORD;
    Servidor.Host     := (poner aqui la IP o direccion del servidor FTP)
    Servidor.Connect;  // Conectarse
    Servidor.Put(aOrFile,aDestFile); //subir el archivo
    Servidor.Disconnect; //desconectarse


  finally
    Servidor.Free;
  end;

end;


// Este es lo mismo solo que sube 2 archivos distintos...
procedure CFD_UpLoadFiles(aXMLOrfile,aXMLDestFile,aPDFOrFile, aPDFDestFile: string);
var Servidor: TIdFTP;
Begin
   Servidor := TIdFTP.Create(nil);
  try
    Servidor.Passive  := TRUE;
    Servidor.Username := FTP_USERNAME;
    Servidor.Password := FTP_PASSWORD;
    Servidor.Host     := capadatos.Conexion.HostName;
    Servidor.Connect;
    Servidor.Put(aXMLOrFile ,aXMLDestFile);
    Servidor.Put(aPDFOrFile ,aPDFDestFile);
    Servidor.Disconnect;


  finally
    Servidor.Free;
  end;

End;

end.

Con eso ya puedes hacer bastante.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #5  
Antiguo 24-11-2012
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.471
Poder: 21
newtron Va camino a la fama
Pues yo no lo veo tan claro.

Efectivamente el archivo lo puede subir al servidor por ftp pero... ¿qué pasa con la conexión remota a la BBDD? (solo es por incordiar un poco ).
__________________
Be water my friend.
Responder Con Cita
  #6  
Antiguo 24-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por newtron Ver Mensaje
Pues yo no lo veo tan claro.
Efectivamente el archivo lo puede subir al servidor por ftp pero... ¿qué pasa con la conexión remota a la BBDD? (solo es por incordiar un poco ).
Claro, si además de la imagen escaneada también tiene que actualizar datos en la BD, necesita una conexión a la misma, necesitaría poquito ancho de banda, pero es una conexión. Por lo tanto, no es un incordio lo que dices, es un problemita que hay que solucionar.

Si no se quiere hacer con una conexión directa a la BD a través de internet, entonces habría que inventar algo diferente, por ejemplo, cada cliente tiene su programa cliente que escanea, guarda los datos en un fichero txt/csv/xml y envía ambos al servidor por ftp.
Ese fichero txt/csv/xml puede tener una estructura más o menos así:
Cita:
escaneo123.txt
imagen=escaneo123.jpg
fecha=24.1.2012
hora=11:43
comentario=Documento de tal y cual para no se qué.
otrocampo=bla, bla, bla...
otrocampomas=ble,ble,ble...
El ftp subiría escaneo123.jpg y escaneo123.txt

Y en el lado del servidor, un programita que va chequeando el directorio donde llegan los envíos por ftp, este programita comprueba si hay algún fichero txt y si lo hay entonces lo lee, lo procesa y almacena en la base de datos según el contenido del mismo arriba indicado y busca el jpg con el mismo nombre, este lo movería al directorio correspondiente donde van los jpg o lo almacena en la BD, a gusto del consumidor.

Ahora bien, para consultas... no ha explicado nada JAI_ME, así que eso es lo que hay con lo que nos ha contado.

Última edición por Casimiro Notevi fecha: 24-11-2012 a las 12:00:51.
Responder Con Cita
  #7  
Antiguo 28-11-2012
JAI_ME JAI_ME is offline
Miembro
 
Registrado: ene 2006
Posts: 188
Poder: 19
JAI_ME Va por buen camino
Gracias a su ayuda he terminado la aplicación para enviar las imágenes por FTP, pero como nos comenta nuestro amigo newtron

Cita:
Empezado por newtron
Pues yo no lo veo tan claro.
Efectivamente el archivo lo puede subir al servidor por ftp pero... ¿qué pasa con la conexión remota a la BBDD? (solo es por incordiar un poco ).
La aplicación tiene que trabajar como cliente/servidor, es decir, cualquier usuario desde cualquier localidad puede ejecutar una consulta en tiempo real que halla ingresado otra persona.

Al parecer por ftp no creo solucionemos este problema, como comenta Casimiro Notevi puede ser una solución para guardar un registro, pero al parecer no mas recomendado.

Que otra opción me recomiendan. ????

normalmente como se conectan varios usuarios a una base de datos centralizada desde distintas ciudades ????

gracias de nuevo.
__________________
JaiMelendez
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
bases de datos para intranet eroblesh Internet 16 02-07-2011 23:40:11
Recomendación para aplicación para iphone Galahad Varios 4 24-11-2010 23:24:55
Recomendación para elaborar diagramas de clases y dominios para mi sitio dark_monk9 PHP 2 25-07-2008 20:18:03
Como hacer un programa que utilice base de datos para un a intranet en Buider c++ 5.0 TitoAlejandro C++ Builder 5 22-11-2005 10:02:15
Recomendacion para una tesis. G.A.R.S Conexión con bases de datos 3 28-05-2005 13:51:20


La franja horaria es GMT +2. Ahora son las 20:39:35.


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