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 19-09-2008
Avatar de jcarteagaf
[jcarteagaf] jcarteagaf is offline
Miembro Premium
 
Registrado: abr 2006
Ubicación: La Paz, Bolivia
Posts: 651
Poder: 19
jcarteagaf Va por buen camino
Aplicación Cliente/Servidor, ¿cual es la mejor opcion?

Hola amigos del Club, recurro a su amplica experiencia para que me den un consejo sobre el siguiente problema: Debo hacer un sistema de almacenamiento de imagenes y datos. Las caracteristicas del sistema son:

- Varios servidores distribuidos por regiones
- Cada region tendra 4 o mas clientes
- Los clientes tendran conexión mediante una red privada al servidor en algunos casos, otros deberan hacerlo via internet (mediante una VPN).
- El envio de datos se lo realizará varias veces al dia, no necesariamente todos a la vez, sin embargo al final del dia sera una hora pico, en la cual todos los clientes (o el 90%) estara enviando información a su correspondiente servidor.
- Por cada renglon de datos se enviara 2 imagenes, cada una de ellas no pesara mas de 80 Kb.
- El servidor debera encargarse de almacenar esta información en una base de datos para una consulta On line.

He estado revisando diferentes formas (componentes y/o soluciones) para realizar este tipo de operaciones:
- Indy (Gratuito)
- Real thin Client SDK (Gratuito)
- RemObjects
- .Net (usando visual studio)

Necesito su consejo para decidir cual de los anteriores utilizar o si existe una mejor alternativa para hacerlo me gustaria conocerla.

Gracias por su tiempo. Saludos

Última edición por jcarteagaf fecha: 23-09-2008 a las 16:13:28. Razón: El titulo no era muy adecuado
Responder Con Cita
  #2  
Antiguo 19-09-2008
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
En mi opinión:

Para diseñar una solución a un sistema, debes conocer y comprender a éste. Para ésto, necesitas la mayor cantidad de información posible. Creo, personalmente hablando, que no estás dando toda la información necesaria para hacer una recomendación.

Debes tener en cuenta muchos aspectos, como por ejemplo, exactamente cúantas veces al día son enviados los datos al ¿servidor principal?. Cúanta información en promedio es transferida en cada paquete. Tienes una buena conexión por Internet?

Mecionas a "varios servidores" lo que no me queda claro es que si la información esta distribuida entre ellos o solo funcionan como repetidores del servidor principal, uno para cada región.

Voy a dar una opinión, una idea, suponiendo que estás trabajando con un servidor principal y los demás son como repetidores para cada una de las regiones. Creo, que sería adecuado implementar un sistema de tres capas.

Saludos.
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #3  
Antiguo 22-09-2008
Avatar de jcarteagaf
[jcarteagaf] jcarteagaf is offline
Miembro Premium
 
Registrado: abr 2006
Ubicación: La Paz, Bolivia
Posts: 651
Poder: 19
jcarteagaf Va por buen camino
Gracias por tu interes. Perdon si no fui muy claro en el plantemiento. Tratare de aclarar la cuestion:

- Los datos serán enviados a un servidor en cada region (o ciudad mas especificamente), cada ciudad tendra sus clientes (entre 10 y 15) y cada ciudad tendra 1 servidor.
- Los datos serán enviados varias veces al dia. El numero de datos a enviar puede varias entre 1 o 500 por lote (por cliente). Algunos clientes tendrán una flujo mayor de información que otros.

- Al finalizar el dia sera necesario consolidad esa información, de modo que cada cliente pueda consultar los datos de las otras regiones (solo consulta, de ninguno modo se permite la modificacion de datos)

- En algunos casos la conexión será directa (existe cableado entre oficinas) pero en otros casos se hara via internet.

Repito mi pregunta, de las tecnologias que indique arriba, cual seria la mas aconsejable?, existen otras alternativas?

Nuevamente gracias su tiempo y su interes.

Saludos
Responder Con Cita
  #4  
Antiguo 23-09-2008
Avatar de jcarteagaf
[jcarteagaf] jcarteagaf is offline
Miembro Premium
 
Registrado: abr 2006
Ubicación: La Paz, Bolivia
Posts: 651
Poder: 19
jcarteagaf Va por buen camino
Aun necesito su consejo

Sigo con la duda de cual es la mejor opción para la situación que he planteado. He modificado el titulo original que coloque, trate de hacerlo mas especifico. Espero puedan darme una mano en esto. Gracias de antemano por su tiempo.

Saludos
Responder Con Cita
  #5  
Antiguo 24-09-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
No tengo una idea clara de cual será el comportamiento de los clientes, pero está también la opción de utilizar DataSnap o WebServices para implementarlo.

DataSnap es una opción que a mi me ha dado resultados en diferentes entornos y podes implementarlo sobre http si existe la posibilidad de firewalls de por medio, o directamente sobre Sockets si tenes mayor control sobre las redes.

Tiene también la ventaja de que, con el desarrollo adecuado, se puede implementar aplicaciones que trabajen desconectadas del servidor y luego solamente apliquen sus cambios y refresquen su información.

En fin, sin saber mayores detalles es difícil dar un consejo puntual.

Un saludo.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 24-09-2008
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 es redundante y poco práctico (por experiencia lo digo) el tener varios servidores independientes y que al final consolidan la información en otro servidor. Esto aunque como ventaja tiene que se cuenta con una capa de respaldo por cada sucursal al final resulta en más código y más cosas que cuidar para que todo funcione bien.

Yo te recomendaría montar un solo servidor principal con un motor de BD para guardar ahi las imágenes y que se puedan consultar rápidamente por cualquier cliente. Tan solo con eso ya te ahorras mucho trabajo ya que la gran parte de él lo hará el motor de BD. A los clientes les das la ventaja de que pueden consultar la información casi inmediatamente después de que ha sido actualizada y dado que únicamente se realizarán consultas y no modificaciones la programación es mas sencilla.

Ahora bien, la interface de su sistema cliente no puede ser más sencilla y hasta tienes la opción de hacer una pequeña aplicación web que puede tambien estar alojada en el servidor principal, para subir y consultar las imágenes o bien si prefieres hacer un cliente sencillo en Delphi para el mismo fin pero indudablemente es muy simple de desarrollar tanto en uno como en otro modo.

Nada mas habría que tener cuidado al elegir el servidor principal dado el tráfico que va a manejar, yo sugeriría uno con procesador de al menos 3.0GHz, DD de 260 Gb (si se puede armar un RAID de minimo 4 discos mejor) , al menos 2 GB de Memoria y una conexión rápida a internet. Obviamente montandole un SO Linux del sabor que te guste y si es posible unicamente con línea de comandos para aprovechar al máximo los recursos exclusivamente para ese fin.
__________________
AKA "El animalito" ||Cordobés a mucha honra||

Última edición por AzidRain fecha: 24-09-2008 a las 19:22:36.
Responder Con Cita
  #7  
Antiguo 24-09-2008
Avatar de jcarteagaf
[jcarteagaf] jcarteagaf is offline
Miembro Premium
 
Registrado: abr 2006
Ubicación: La Paz, Bolivia
Posts: 651
Poder: 19
jcarteagaf Va por buen camino
Muchas gracias por las respuestas.

jachguate:

Los clientes lo unico que haran es enviar la información y las imagenes, el servidor debe indicarles si la información se recibio con exito o no.

De ninguna manera los clientes trabajaran desconectados, ya que su unica función será enviar la información. Existe otra aplicación que se encarga de generar la información y las imagenes en cada cliente.

AzidRain

Por la naturaleza de la aplicación y debido al alto trafico que se generara en ciertas horas pico, es mas optimo tener un servidor por ciudad. Ademas la velocidad de envio sera menor (ya que algunos estaran conectados directamente al servidor)

La segunda parte del proyecto es laconsulta de la información para lo cual se tiene pensado una pagina web (la decision esta entre usar PHP o ASP.Net), luego abrire un hilo para pedir su consulta sobre este aspecto.

Nuevamente gracias por su tiempo.

Saludos.
Responder Con Cita
  #8  
Antiguo 24-09-2008
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
A que llamas "alto tráfico" según lo que has platicado no le veo mayor problema, si tomamos en cuenta que los archivos a enviar no pesan mas alla de 100K lo cual bajo estándares actuales es bastante poco. Digamos que cada cliente va a subir diariamente 20 Mb de info. de todas maneras es poco y el motor no tendrá problemas, de todos modos no puedes evitar el tráfico hacia el servidor principal pues en algun momento tendrán que actualizarlo todos los "servidores regionales" generando exactamente el mismo tráfico que si lo hubieran hecho los propios clientes desde el principio.


Para la consulta de la info. de acuerdo a lo que comentas es más recomendable PHP pues no necesitas gran cosa de sofisticación además de que te dará oportunidad de montarlo en un servidor Linux que como ya te comenté te permitirá sacar el mayor provecho de los recursos del servidor.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #9  
Antiguo 24-09-2008
Avatar de jcarteagaf
[jcarteagaf] jcarteagaf is offline
Miembro Premium
 
Registrado: abr 2006
Ubicación: La Paz, Bolivia
Posts: 651
Poder: 19
jcarteagaf Va por buen camino
Gracias por tu pronta respuesta y por tu tiempo.

Tienes razon, tomando en cuenta la tecnologia actual no es mucho, pero se produce un cuello de botella cuando se esta llegando a la hora limite, en ese momento todos los clientes enviaran la mayor cantidad de informacion, haciendo trabajar al servidor a toda su capacidad. Me olvide mencionar que existe una hora limite de envio, llegada a esa hora se cerrara el acceso al servidor asi que todos trataran de enviar la mayor cantidad de info momentos antes de la hora de cierre.

Con respecto a PHP ya el amigo Chackall me aconsejo lo mismo, voy a plantearlo como solución (a estudiar se ha dicho....).

Saludos
Responder Con Cita
  #10  
Antiguo 24-09-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cita:
Empezado por jcarteagaf Ver Mensaje
Los clientes lo unico que haran es enviar la información y las imagenes, el servidor debe indicarles si la información se recibio con exito o no.
Creo que esto se sobreentiende en todos los casos y probablemente soy yo quien no he sabido expresar la pregunta, pero es que todo está mas o menos vago.

Tratando de ser mas puntual, podrías basar la aplicación front-end en controles asociados a datos, valiéndote del uso de DataSnap, lo que simplifica mucho las cosas, pues es este quien se encarga de gestionar la forma en que se transmitirán los datos y en delphi vos lo ves como cualquier otro DataSet.

Otra ventaja del uso de DataSnap, que ya había comentado, es que podes montar el servidor sobre http.

Cita:
Empezado por jcarteagaf Ver Mensaje
De ninguna manera los clientes trabajaran desconectados, ya que su unica función será enviar la información. Existe otra aplicación que se encarga de generar la información y las imagenes en cada cliente.
Trabajar desconectado no es un requisito indispensable... solo algo que se puede lograr.

Un saludo.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #11  
Antiguo 24-09-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cita:
Empezado por jcarteagaf Ver Mensaje
se produce un cuello de botella cuando se esta llegando a la hora limite, en ese momento todos los clientes enviaran la mayor cantidad de informacion, haciendo trabajar al servidor a toda su capacidad.
Si hay clientes por Internet, creo que el cuello de botella será el ancho de banda mucho antes que la capacidad de proceso del servidor.

Es mi opinión.

Un saludo.
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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
cual es la mejor opcion para conectar delphi 2007 con firebird 2 hibero Conexión con bases de datos 16 27-10-2008 03:32:01
Cual es la mejor opcion para imprimir ticket en impresora matricial hibero Impresión 12 24-05-2008 00:16:33
Sobre cuál es la mejor opción para trabajar con Word Gabo Servers 6 16-01-2008 13:36:21
Cual es la mejor forma de llevar registros contables en un sistema AzidRain Debates 11 30-03-2007 02:27:44
Cual es la mejor opción para imprimir ?? Delphitest Impresión 4 27-10-2006 21:50:59


La franja horaria es GMT +2. Ahora son las 11:21:10.


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