Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-03-2014
Avatar de darkerbyte
darkerbyte darkerbyte is offline
Miembro
 
Registrado: feb 2005
Posts: 197
Poder: 22
darkerbyte Va por buen camino
Lightbulb Ahora hay dos buenas ideas

Cita:
Empezado por roman Ver Mensaje
En mi opinión están satanizando en forma algo desmedida. Ya se explicó con claridad cuál es la limitación y a mi me suena bastante razonable: no hay cobertura en el camino y extenderla, no depende, desde luego, de ellos. Por las mañanas, en la central, sí hay cobertura y se carga la base o las actualizaciones.
Roman has entendido perfectametne la situación. Los policias/oficiales o como le llamen en vuestro país tienen una oficina base donde ellos se reportan cada día. En estas oficinas si tenemos internet de banda ancha (unos 10mbps). Una vez que ellos sincronicen sus dispositivos, ellos podran salir a carretera donde no hay cobertura telefónica y por lo mismo no hay internet.

Bueno gracias al amigo mamcx ahora hay dos posibilidades para resolver el problema.

Idea #1: Cuando se compren todos los equipos cargarlos con la base de datos inicial. De ahi en lo sucesivo cada día solo ir actualizando los registros que cambiaron en la base de datos. Algo así como hacen los antivirus los cuales solo descargan y aplican las actualizaciones necesarias para las nuevas vacunas y no descargan todo el diccionario.

Claro que para esto se diseñara un sistema que este trabajando en el servidor que genere cada día las actualizaciones. Para el armado del servidor voy a solicitar tus consejos amigo balapro

Idea #2: Mamcx nos ha sugerido la idea de usar bitmaps. Aunque entiendo muy poco de eso Si me quedan claro tres cosas:

1. La base de datos reduce enormemente su tamaño, y segun las pruebas de el amigo Mamcx, a unos 200mb. Que descargandolos a una velocidad de 450kbs (en una red de 5mpbs) tardaria unos 8 minutos. Suena bastante accesible. Considerando que nuestra velocidad de banda ancha es de 10mpbs

2. Las busquedas son bastante rápidas (segun el ejemplo que nos dejo sobre REDIS y la comparación en 128 millones de usuarios)

3. Se necestaria descargar toda la base de datos para cada actualización.

La verdad es que nunca he trabajado en Phyton. ¿Phyton se puede utilizar para crear aplicaciones moviles?

Y la pregunta del millon. Ahora pensando en el servidor. ¿Que sera mas facil/rapido generar el archivo para python ó el script para actualizar la BD? Considerando que en el servidor si tendremos una BD relacional. Tal vez Oracle o algun otro monstruo.
Responder Con Cita
  #2  
Antiguo 15-03-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.714
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Responder Con Cita
  #3  
Antiguo 15-03-2014
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.942
Poder: 28
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cita:
Empezado por darkerbyte Ver Mensaje
Idea #2: Mamcx nos ha sugerido la idea de usar bitmaps. Aunque entiendo muy poco de eso Si me quedan claro tres cosas:
Haz de cuenta que funciona igual que un Array, solo que unicamente acepta valores True/False:

Código Delphi [-]
datos[0]:=True;
datos[1]:=False;
datos[2]:=False;
datos[3]:=True;

Y que internamente se almacenas BITS, no BYTES, lo que hace que sea super compacto.

Lee bien los links, hay estan explicados y con graficas

Cita:
Empezado por darkerbyte Ver Mensaje
3. Se necestaria descargar toda la base de datos para cada actualización.
No. Como vez en el script, es posible cargar el archivo, asignar datos y volverlo a salvar. Osea que se puede hacer los mismo que con una BD: Preguntar por los cambios desde la version X o desde la fecha X, actualizar el BITMAP y salvarlo.

Sin embargo, es posible ademas reutilizar un servicio como dropbox (que tiene SDK para usarse como libreria interna en mobiles y funciona identico), asi que si haces el archivo en el servidor, lo pones en dropbox, este lo sincronizaria entre las maquinas.

Esa es otra opcion. Probablemente para evitar lios de corrupcion, hay que chequear el SDK para recibir la notificacion de cuando termina el proceso, y mover el archivo a una ubicacion fija cuando termine

Cita:
Empezado por darkerbyte Ver Mensaje
La verdad es que nunca he trabajado en Phyton. ¿Phyton se puede utilizar para crear aplicaciones moviles?
Si: http://kivy.org

Pero si vas a hacer una app por la que te pagan, es mejor usar malo conocido

(Python es muy simple en general, pero en cuanto a mobiles, son pocas las opciones maduras: El lenguaje nativo de cada plataforma es la opcion #1, luego siguen MONO, C/C++ plus Lenguaje nativo, ciertas herramientas con Lua, Delphi, etc.)

Cita:
Empezado por darkerbyte Ver Mensaje
Y la pregunta del millon. Ahora pensando en el servidor. ¿Que sera mas facil/rapido generar el archivo para python ó el script para actualizar la BD? Considerando que en el servidor si tendremos una BD relacional. Tal vez Oracle o algun otro monstruo.
Usa una BD relacional. El monstruo que quieres se llama Postgres.

No solo tiene los comandos necesarios para manipular bits:

http://www.postgresql.org/docs/9.3/s...bitstring.html

Se pueden programar los procedimientos/funciones en muchos lenguajes (como python!), y por ende, se puede usar el codigo que puse de base para guardar la info en un campo BITSTRING:

http://www.postgresql.org/docs/9.3/s...atype-bit.html

O un campo binario:

http://www.postgresql.org/docs/9.3/s...pe-binary.html

P.D: Mira tambien:

http://dba.stackexchange.com/questio...sql-bit-string

Generar de forma rapida en el servidor el archivo puede requerir algo de gimnasia. Estuve mirando generar los 100 millones y realmente lento de forma sequencial. Explotando que solo importaria los datos True se puede (quizas) reducir un poco pero al final la gracia es crear un codigo que sea multi-proceso * N-Cores * N-Threads, generar (digamos) de a millon de datos en archivos y concatenar los archivos en uno solo.
__________________
El malabarista.
Responder Con Cita
  #4  
Antiguo 15-03-2014
Avatar de darkerbyte
darkerbyte darkerbyte is offline
Miembro
 
Registrado: feb 2005
Posts: 197
Poder: 22
darkerbyte Va por buen camino
Talking Mucho por estudiar

Gracias amigo mamcx, eres un maestro! Voy a meterme a estudiar bien el asunto de los bitmap.

Bueno, hay muchas cosas que se decían que eran imposibles hasta que alguien inventó la solución. Por ejemplo, todos decian que era imposible Volar.
Creo que de este problema que para muchos esta descabellado e imposible de resolver, podemos inventar una solución
Responder Con Cita
  #5  
Antiguo 15-03-2014
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.714
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por darkerbyte Ver Mensaje
Tal vez Oracle o algun otro monstruo.
No, justo lo contrario, busca algo sencillo, simple, agil, pequeño y rápido. No tiene sentido instalar, mantener y pagar por un oracle para tener una tabla con 4 campos
No se necesita un gran servidor, ni tampoco potentes "clientes", lo que necesitas es un sistema sencillo y bien afinado.... y una buena internet
Responder Con Cita
  #6  
Antiguo 15-03-2014
ASAPLTDA ASAPLTDA is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA-CALI
Posts: 639
Poder: 24
ASAPLTDA Va por buen camino
Post Generacion de Cambios

[QUOTE
1. La base de datos reduce enormemente su tamaño,...
2.[/quote]

Segun entiendo el problema en la noche podrias generar un una tabla con solo los cambios la cual seria descargada por todos los usuarios, para asi no no tener que generar una tabla de cambios para cada uno de los usuarios, ya que es comun a todos aquellos.

Podrias tener un log de cambios para cada fecha, ya que pasaria si un usuario no puede descargar los cambios en un par de dias
Responder Con Cita
  #7  
Antiguo 16-03-2014
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 835
Poder: 24
gatosoft Va camino a la fama
Hola darkerbyte,

Pensar en tener bases offline, que se sincornicen y que recidan en un dispositivo movil, no suena muy natural. suena forzado.

Y creo que de tanto enofcarse en la solución propuesta, podrías estar perdiendo de vista el problema general. El problema evidente aqui es la comunicación y deberías revisar soluciones enfocadas en ésta dirección. Aunque supongo que tu y tu patrocinador ya buscaron alternativas en éste sentido, quiero mencionarlo por si acaso:

¿El problema de cobertura en comunicación vía celular/movil se limita solo a datos?, tienes disponible SMS, o Voz Digital? En el caso de voz digital podrias porbar un sistema de audio respuesta (IVR), pos SMS hay alternativas de comunicación masiva (cuyos costos debe asumir tu sponsor).

Existe una opcion un poco mas "sofisticada" y es utilizar la transmisión de datos por radiofrecuencia No conozco bien, pero pueden hacerse adaptaciones a los dispositivos para que emitan y reciban la información transformando analogico a digital.

Han pensado en servicio de internet satelital? (Red BGAN ==> Broadband Global Area Network). Tiene como complicación que el "modem" es del tamaño de una laptop, lo cual sería irónico si lo que se queria era proporcionar una simple tablet.

No soy experto en nada de lo que propongo, solo intento mostrar que la solcuión puede estar en otro foco.

Un saludo,
Responder Con Cita
  #8  
Antiguo 18-03-2014
Avatar de darkerbyte
darkerbyte darkerbyte is offline
Miembro
 
Registrado: feb 2005
Posts: 197
Poder: 22
darkerbyte Va por buen camino
Talking Hemos buscado las soluciones

Claro que si amigo Gatosoft
Estamos buscando opciones de conectividad. Desafortunadamente por GSM/3G ninguna compaña telefonica tiene cobertua del 100% de carreteras. La mayoria de la cobertura solo es en autopistas y carreteras cercanas a la ciudad.

Estamos buscando otras opciones ya que contar con internet sería mucho mas facil que el desarollo de todo el sistema. Dado que aun no encontramos estamos considerando seriamente la opcion via software, por esto estamos estudiando la viabiliadad de este proyecto.

Un enorme agradecimiento a todos por su tiempo y consejos, en cuanto se defina algo los informaré
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Arrays de millones de datos elcigarra OOP 8 13-10-2008 20:15:53
Puzzle de 2 millones de $$$ gluglu La Taberna 6 24-08-2007 21:36:45
1.600 millones !!! de Spam gluglu Noticias 1 30-01-2007 14:11:44
¿cómo puedo manejar los datos de una consulta si son varios registros? nuri SQL 3 18-07-2005 14:02:43
Insertar 8 millones de registros en interbase... nacho Firebird e Interbase 11 17-02-2005 22:34:01


La franja horaria es GMT +2. Ahora son las 18:30:27.


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