Italian Decisioni critiche: DB

LucaMs

Expert
Licensed User
Longtime User
Sono arrivato al punto cruciale della mia app: l'allineamento dei db tra due dispositivi con installato il mio progetto.

Questo è un atout importante (dato che non ho intenzione di pubblicarla gratuita).

L'idea iniziale era quella di far colloquiare direttamente tra loro i due dispositivi, senza il tramite del web. Non tutti i dispositivi hanno il wifi-direct. L'ideale, in questo caso, sarebbe anche evitare l'uilizzo di rete locale, quindi del normale wifi. Quindi BlueTooth (è lento ma probabilmente sufficiente).

Ma la sincronizzazione è ovviamente impossibile.

Usare un server: non ho idea da dove iniziare (tranne quella assurda di crearne uno in casa!). Non credo che esistano siti che ti consentano di installare un db (server), di gestirlo a tuo piacimento e magari anche free, no?!

Usare un'email dell'utente? Obbligarlo ad inviare un'email con le modifiche all'altro utente (o altri)?

Essere o non essere... beh, meglio essere :)

P.S. Intendevo siti con server MS, dato che non conosco MySql-PHP-Apache & company
 
Last edited:

maxware

Well-Known Member
Licensed User
Longtime User
Ciao LucaMs
Io la vedo cosi . Se non ricordo male hai fatto un app per la nota spese o cose del genere giusto ?
escluderei a priori il bluetooth ..se i dispositivi non sono vicini come li sincronizzi ? Non puoi
stesso discorso per il Wifi
Se non vuoi utilizzare un database web potresti provare con una soluzione dropbox o google drive ove depositare i file di aggiornamento
Oppure studiare un qualcosa che invii un sms con qulcosa dentro per poi cercare di intercettarlo
Ciaooo
Mamo
 

LucaMs

Expert
Licensed User
Longtime User
Ciao LucaMs
Io la vedo cosi . Se non ricordo male hai fatto un app per la nota spese o cose del genere giusto ?
escluderei a priori il bluetooth ..se i dispositivi non sono vicini come li sincronizzi ? Non puoi
stesso discorso per il Wifi
Se non vuoi utilizzare un database web potresti provare con una soluzione dropbox o google drive ove depositare i file di aggiornamento
Oppure studiare un qualcosa che invii un sms con qulcosa dentro per poi cercare di intercettarlo
Ciaooo
Mamo


eh, o via email.

Mah. Sono ancora dubbioso! E' tosta.

Ci sono tante variabili in campo; ce ne è anche una da non sottovalutare: le soluzioni via internet hanno pro e contro; il contro è che l'utente potrebbe non avere la possibilità, in un dato momento, di connettersi.

L'ideale, ovviamente, sarebbe un db server online... sto dando un'occhiata a quel Parse.com, ma non mi convince: magari ti dicono che le "transazioni" superano il limite; e poi, dipendi sempre da altri.

Sai, in generale, cosa si dovrebbe fare? Se si è certi di sviluppare molte app e che molti utenti si connetteranno, converrebbe dotarsi di un proprio server (inteso come hardware!).

Ciao, Mamo e buone feste
 
Last edited:

AlpVir

Well-Known Member
Licensed User
Longtime User
Come mi sembra di ricordare qualche settimana fa avevo scritto che avevo avuto passate esperienza su questo tema ed avevo anche illustrato quella che poteva essere una possibile soluzione.
In informatica la problematica si chiama "db disconnessi" e non ha una soluzione univoca.
Diciamo che potrebbe funzionare per il 95% dei dati da sincronizzare.
Quella da te prospettata (email con allegato) è la più semplice. C'è in B4A anche una libreria che zippa ed unzippa per cui l'allegato può essere assai ridotto.
Ancora meglio (molto meglio) vedrei la soluzione FTP. Un server condiviso da 20 euro all'anno può essere sufficiente. Probabilmente persino uno spazio web gratuito.
Abbiamo ad esempio due utenti A e B; ci può essere anche C, D, ecc.
A invia al server l'archivio zippato e B, C o D quando vogliono, prelevano l'archivio; e viceversa.
Ma questa non è una vera sincronizzazione perchè i dati di B, C e D scompaiono e restano solo quelli di A.
Perchè ci sia una sincronizzazione/fusione bisogna che l'archivio originale e quello sostituto (ossia quello downloadato) contengano informazioni supplementari utili a questa fusione. Ed è questo aspetto che, mi par di capire, non hai ancora affrontato e risolto appieno e che è essenziale se vuoi una vera sincronizzazione.
Poi il modo di inviare di quà e di là le informazioni si trova, email, FTP, dropbox, ecc. ecc.
Se, come mi par di ricordare, conosci il VB6 ti consiglierei (per questioni di velocità e debug facilitato) di fare tutto o quasi prima con il VB6 (o linguaggio analogo ad alto livello) per poi trasferire il tutto in B4A.
 

LucaMs

Expert
Licensed User
Longtime User
Cerco di fare il punto e di chiarire le idee a me stesso mentre ti rispondo, AlpVir.

La soluzione ideale sarebbe ovviamente quella di un unico db centrale; questo obbliga comunque sia l'accesso ad Internet, sia ad un server db.
Mi hanno segnalato una sito che sembra un compromesso, Parse.com, ma devo approfondire, perché, alla prima occhiata, mi pare non del tutto adeguato.

Si, chiaramente l'aspetto dei dati veri e propri ha un forte peso, parlando dei db disconnessi. Ora sono piuttosto frastornato (e quando mai non lo sono? hehehe) e quindi non ricordo chi, forse tu stesso, mi ha consigliato di "conservare" le query eseguite sui dispositivi (con il sottinteso di rieseguirle sull'altro/altri). E' una buona indicazione, ma chiaramente anch'essa non è sicurissima.

D'altra parte, se devo mettermi a confrontare ogni singolo campo modificato, se esso faccia parte di una tabella fondamentale, etc. ...
Poi ci sono persone che si meravigliano che io "prentenda" di vendere la mia app a non meno di 2,49€ !!!

Ci sarebbe anche la possibilità di utilizzare i trigger, ma non mi sembra che cambi molto, rispetto al salvataggio delle query effettuate.

Ancora, esiste la possibilità che io pubblichi l'app senza questa funzione, hehehe (almeno per il momento).

Si, conosco (sarebbe meglio dire conoscevo) VB6, ma ormai conosco meglio VB.Net (che per quanto dici non cambia alcunché: e qui, dato che sono logorroico, faccio notare a noi stessi, che TUTTI sbagliamo, quando diciamo: "non posso farci niente", "non c'è nessuno" o "non cambia niente", perché affermiamo il contrario di quanto vorremmo :)).

Conosco anche bene SQL Server, ma non mi pare che esistano siti che mettano a disposizione un bel server MS e pure gratis (tirchi e avaracci :D).

Va beh, meglio augurarvi buon anno e pensarci nel 2014.

Ciao
 
Top