Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-11-2006
Avatar de kovaski
kovaski kovaski is offline
Miembro
 
Registrado: oct 2006
Ubicación: Valencia
Posts: 39
Poder: 0
kovaski Va por buen camino
Question Replicación o algo parecido...

Hola a todos y gracias por vuestra atención.

Os comento:

Estoy realizando un proyecto para conectar de cientos a miles de programas con una base de datos en firebird. Para no saturar el servidor estoy pensando en varias posibilidades.

Una de ellas es optimizar mucho el código para reducir al máximo las peticiones al servidor y pedir solo la información necesaria( Este en cualquier caso la estoy usando). Y otra es algo parecido a la Replicación.

La replicación que quiero hacer no es completa, es decir, no quiero que todos los clientes tengan la base de datos completa en cada ordenador(eso seria una locura de Gigabites). Lo que quiero es que solo se repliquen algunas tablas como provincias, poblaciones y cosas de este estilo, y así evitaría saturar al servidor cada vez que haya que pedir información de este tipo.

Pero ademas de esto, deseo que una tabla de la base de datos que sera la que mas datos tenga, solo se replique cierta información, por ejemplo: Un cliente que tenga mi programa podrá consultar la información que desee de esa tabla y también la información que el mismo a insertado. Esta claro que la información que mas va a solicitar es la suya propia y precisamente esa información es la que quiero que quede replicada en su ordenador y la peticiones las haga solamente a su base de datos, pero cuando inserte, modifique o elimine algún dato esta se replicará al servidor de forma transparente para el usuario. De esta forma yo creo que reduciría mucho la peticiones al servidor y ganaría en velocidad de consulta.

Ahora viene mi pregunta : ¿Cual es la mejor manera de llevar a cabo esto que os he comentado?

Ante todo Gracias.
Responder Con Cita
  #2  
Antiguo 14-11-2006
tefots tefots is offline
Miembro
 
Registrado: feb 2005
Posts: 108
Poder: 20
tefots Va por buen camino
el diseño de un sistema de base de datos , donde van ha haber miles de conexiones , es siempre un problema , y depende mucho de la información almacenada , de las consultas y operaciones sobre la base de datos que se vayan a hacer , y del hardware y aquitectura utilizado.

para hacer una aplicación de ese estilo , donde el servidor va a tener que manejar muchas conexiones , lo mejor es usar la tecnologia 3 capas , así podrás separar la carga del servidor de base de datos .
incluso se podria preparar uno o varios servidores de aplicación , que se encargen de gestionar las peticiones y resultados de las consultas de los clientes.

lo normal es que evites enviar información innecesaria , y que algunos datos que son fijos y no varian , los tengan los clientes
El tema de replicación , no es nada optimo , todo lo contrario ,ya que generaría mucho trafico en el servidor y los clientes (sobre todo cuando n usuarios se conecten a la vez y tengan que actualizar sus tablas y las del servidor).

El diseño de las aplicaciones cliente , afectan enormemente al rendimiento del servidor , estas tan solo deben conectarse , traserse / enviar la información requerida , y desconectarse , hay que hacer un uso optimo de los recursos controlando toda la informacion que se envia y recibe.

aun así , firebird (ni otras bd comerciales ) no está pensado para un entorno en el que puedan existir tantas conexiones concurrentes (miles) . para esto , hay que usar otras tecnologias como bd's distribuidas , clustering , etc.

saludos.
Responder Con Cita
  #3  
Antiguo 14-11-2006
Avatar de kovaski
kovaski kovaski is offline
Miembro
 
Registrado: oct 2006
Ubicación: Valencia
Posts: 39
Poder: 0
kovaski Va por buen camino
Gracias tefost por tu información.

La tecnología de 3 capas, he oido hablar de el. Pero la verdad no se por donde empezar. (MIDAS?).

Soy consciente que el diseño del cliente afecta mucho al rendimiento del servidor, y de ahí mi preocupación. Por que quiero que la aplicación sea agil y en lo posible rápida.

Actualmente estoy usando delphi 7, e ibobjects con firebird para realizar el proyecto.

Aun así, ¿Que componentes y bd's distribuidas me recomendais?
¿Por donde empezar con la tecnología 3 capas?

Y por ultimo y perdonar mi ignorancia ¿Que significa clustering?

Gracias de antemano.
Responder Con Cita
  #4  
Antiguo 14-11-2006
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Yo he tenido experiencias parecidas.

entre los componestes que he usado son:
Asta
Remobjects
y otros

son como seis o siete.

Y de verdad recomiendo rem objects.

Para acceder a la bd ibobject es lo mejor qu ehe usado (para mi).

Antes he explicado unas soluciones en otros hilos tu problema.

Yo he solucionado usando tres capas con un servidor de aplicaciones con pul de conexiones atendido por varias computadoras.

La cosas es mas compleja de lo que parece. Pero si puedes lee un poco de reemobject uq ete dan muy buenas ideas y hablan un poco de como trabajar.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #5  
Antiguo 15-11-2006
Avatar de kovaski
kovaski kovaski is offline
Miembro
 
Registrado: oct 2006
Ubicación: Valencia
Posts: 39
Poder: 0
kovaski Va por buen camino
Hola.

He estado informándome sobre esas tecnologías y, uf parece que la curva de aprendizaje es alta.

rastafarey para mi también los ibobjects son los mejores y unido a ZebeDee, te evitan mucho trabajo de optimización.

Antes de lanzarme a la aventura de 3 capas. Me gustaría dar solución a la replicación con ibobjects. Como comenté antes no es una replicación completa.

Mi idea es la siguiente: de momento todas las consultas se harán en el servidor y se traerá los datos desde allí. Lo que quiero hacer es tener una copia sincronizada de ciertos datos de una determinada tabla, en la maquina cliente, para solo consulta. Es decir la replicación solo se haría si la información cambia en el servidor y no en el cliente(ya que en el cliente los datos serán de solo lectura, y así cuando no tengan acceso a Internet por lo menos podrán consultar sus datos privados).

¿Hay alguna forma elegante de hacer esto con ibobjects o algún otro componente?

Saludos.
Responder Con Cita
  #6  
Antiguo 21-11-2006
Avatar de kovaski
kovaski kovaski is offline
Miembro
 
Registrado: oct 2006
Ubicación: Valencia
Posts: 39
Poder: 0
kovaski Va por buen camino
Pues bien, despues de buscar mucha información al final me he decidido por remobjects para pasar mi aplicación a la tecnologia 3 capas.

He estado haciendo alguna prueba toqueteando componentes pero nos soy capaz de sacarles punta.

Existe muy poca información sobre estos componentes y siempre esta en ingles que no es mi fuerte.

rastafarey tu esperiencia en estos componentes me seria de gran ayuda, donde has conseguido información en "Español" de estos componentes? y sino pues algun tutorial de como conectarme en el servidor con la base datos o algo asi por donde empezar.

La verdad que ando un poco perdido, tambien es verdad que informacion de datasnap si tengo en español dentro de "Guia de desarrollo Delphi 5". Pero viendo en solucionesvulcano me recomiendan mejor Remobjects.

En definitiva vuestra ayuda sera bienvenida.

Gracias.
Responder Con Cita
  #7  
Antiguo 22-11-2006
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
resp

Mira estos componenstes usan la formade RPC(Remote procedure call) Lo que quiere decir que llamas las funcione sy los procedimientos que estan en le servidor como si fueran lkocales simplemente con un castin del un compoenente(canal) que se enelasa con el compeonete que esta el servidor(serveindy... o servhttp...). En si esto lo que haceque establece la conexion y por detras levanta la capa de transaprte (indy o la que digas que uses) y arma la estructura para enviar los datos y lo mismo se hace del lado del servidor. En si lo que hace es enviar y recivir objectos. Todo esto se hace transparente al la programado. Esto te lo digo ya que tengo el codigo fuente y le eche una ojeada para cambiar unas cositas.

Nota. Es uno de lso amejores codigos que jamas alla visto(los programadores se merecen mi respeto).

Lo del aparendisaje es relativo solo hay que entender la logica antes de volverse loco.

Solo debes bajar un video que esta en la pagina que te explican cono se hace la cosa una vez que comprendas el video todo se va hacer muy facil y veras que no lo vas a qquerer soltar. Con decirte que puedes hacer un chat con todad las de lay en menos de un dia.

Osea una vez que lo aprendas usar diras lo mismo que dijo Linuux Torbat cuando dejod e programar con ensablandor y comenzo con C "Esto es como cocer y cantar"
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
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
Algo parecido a sinonimos en INFORMIX? jwmoreira MS SQL Server 2 01-02-2006 19:44:29
Ayuda Para Installshield O Algo Parecido cmena Varios 2 29-08-2004 22:29:28
Algo parecido al try...except __cadetill PHP 18 10-05-2004 00:03:55
Algo parecido a un TabSheet.... craven Varios 1 05-09-2003 18:10:25
Alguien conoce algo parecido cmgenny Windows 4 29-07-2003 20:30:02


La franja horaria es GMT +2. Ahora son las 01:37:24.


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