Come può funzionare un singolo database per il sito Web, le app mobili?

3

Abbiamo sviluppato un portale di lavoro in cui gli utenti possono visualizzare i lavori e anche pubblicare lavori. Abbiamo usato Php e MySQL. Abbiamo ospitato questo sulla fazione web. Ora vogliamo sviluppare l'app mobile del portale di lavoro per android, ios e windows. Poiché il database deve essere sincrono e allineato dinamicamente con le app e il database del sito web. Poiché il codice di back-end deve essere modificato in Java in Android e c # in Windows, come gestire un singolo database sincrono?

    
posta Abhishek 26.12.2012 - 13:51
fonte

3 risposte

11

Hai bisogno di Architettura orientata ai servizi . Perché stai condividendo i dati su tutte queste piattaforme, i servizi Web.

Fondamentalmente piuttosto che chiamare una "funzione" si effettua una richiesta HTTP a un URL, i parametri vengono passati attraverso la stringa di query o l'intestazione Http. XML o JSON viene restituito. Leggi su.

Il fatto è che la tua app deve essere sempre online ...

    
risposta data 26.12.2012 - 14:08
fonte
3

Ci sono diversi modi per gestirlo.

Al livello più basso, puoi lasciare che il server del database si occupi di esso. Se tutte le applicazioni si connettono allo stesso database sullo stesso server e si utilizzano correttamente le transazioni SQL, il server MySQL assicurerà che tutti vedano una vista coerente del database.

Ma se hai già bisogno della connessione Internet per raggiungere il database, perché non c'è un solo server web che gestisce la logica di business insieme all'accesso al database e restituisce i risultati in un formato digeribile per i vari front-end ( app Android, app ios, programma Windows, sito Web). In questo modo devi solo scrivere la logica di business una volta e solo il codice di presentazione specifico front-end deve essere scritto per ogni piattaforma supportata.

    
risposta data 26.12.2012 - 15:54
fonte
0

È necessario rendere l'applicazione Web basata su php "orientata ai servizi", ovvero funge da endpoint del servizio Web e elabora solo le richieste e risponde con dati XML / JSON / di testo. Questa interfaccia sarà disponibile sia per l'applicazione mobile che per l'applicazione Web (utilizzare ajax per comunicare con il servizio).

In questo caso l'applicazione web e l'applicazione mobile fungono da livello di presentazione per i dati ricevuti dal servizio web. Tuttavia, a causa del modo in cui i crawler analizzano i siti Web, la tua applicazione web basata su Ajax non sarà più leggibile da loro. Se hai bisogno che la tua applicazione web sia leggibile dai crawler, devi introdurre un altro livello che interagisce con il servizio web e presenta le informazioni come una pagina generica basata su HTML.

Quindi la tua app web sarà come:

Client >> Presentation-Layer (js) >[HTTP]> Service-Layer (php) >> DB (MySQL)

Oppure,

Client >[HTTP]> Presentation-Layer (php) >[HTTP]> Service-Layer (php) >> DB (MySQL)

se vuoi che sia analizzabile dai crawler.

E la tua app mobile sarà come:

Client >> Presentation-Layer (java/obj-C) >[HTTP]> Service-Layer >> DB (MySQL)

Puoi anche connetterti in remoto al tuo database principale sia dall'applicazione web sia dall'applicazione mobile, ma è sconsigliato creare un punto di vista della sicurezza, e dovrai anche ri-implementare tutta la logica su entrambi i web e applicazione mobile.

    
risposta data 22.10.2013 - 13:12
fonte

Leggi altre domande sui tag