Autore Topic: Utilizzo di DB esterni all'app  (Letto 400 volte)

Offline fattidare

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S4
  • Sistema operativo:
    Ubuntu 14.04, Windows 8.1
Utilizzo di DB esterni all'app
« il: 07 Marzo 2015, 19:36:09 CET »
0
Salve a tutti, mi sto accingendo ad iniziare un progetto validante per il tirocinio universitario.
Io ed un mio amico abbiamo avuto un'idea abbastanza originale che, senza entrare nei dettagli, è sulla falsa riga di un TripAdvisor.
La fase di analisi dei requisiti è terminata ed ora ci sorge un dubbio: quali sono i passi per lo sviluppo considerando che l'utente di dovrà interfacciare con un server esterno su cui sarà implementato un database MySQL?
Al momento stiamo creando le tabelle ed alcune function/trigger in codice SQL. Come dobbiamo proseguire? Subito con l'interfaccia app oppure c'è qualcosa da fare in mezzo che permetta la comunicazione?
So che i dati vengono scambiati in formato XML o JSON, ma come funziona di preciso?

Offline felasandroid

  • Utente normale
  • ***
  • Post: 345
  • Respect: +10
    • Github
    • balduzziantonio
    • balduzziantonio.unifi
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Play Store ID:
    FelasTech
  • Sistema operativo:
    Windows 10
Re:Utilizzo di DB esterni all'app
« Risposta #1 il: 07 Marzo 2015, 19:48:17 CET »
0
Salve a tutti, mi sto accingendo ad iniziare un progetto validante per il tirocinio universitario.
Io ed un mio amico abbiamo avuto un'idea abbastanza originale che, senza entrare nei dettagli, è sulla falsa riga di un TripAdvisor.
La fase di analisi dei requisiti è terminata ed ora ci sorge un dubbio: quali sono i passi per lo sviluppo considerando che l'utente di dovrà interfacciare con un server esterno su cui sarà implementato un database MySQL?
Al momento stiamo creando le tabelle ed alcune function/trigger in codice SQL. Come dobbiamo proseguire? Subito con l'interfaccia app oppure c'è qualcosa da fare in mezzo che permetta la comunicazione?
So che i dati vengono scambiati in formato XML o JSON, ma come funziona di preciso?

Bhe se la App deve recuperare dati da questo Server da un Db, sicuramente io farei un Web Services (REST) in modo tale che la App chiama le varie API che implementate.
Se vuoi rimanere in abito Java io ti consiglio di usare per il WS il framework Jersey (https://jersey.java.net/)  integrato con Spring per le operazioni sul Db e magari anche per la sicurezza.
I dati passali in JSON (molto più leggero a parità di informazioni e lo scambio veloce di dati è fondamentale nell'ambito mobile). Ulteriore consiglio utilizzare per il WS la libreria Jackson per restituire in formato JSON i dati.

Piccolo workflow:

1) Creare un Web Services (REST).
2) Dopo aver creato il WS puoi anche passare a iniziare lo sviluppo della App.
« Ultima modifica: 07 Marzo 2015, 19:54:10 CET da felasandroid »

Offline fattidare

  • Nuovo arrivato
  • *
  • Post: 2
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S4
  • Sistema operativo:
    Ubuntu 14.04, Windows 8.1
Re:Utilizzo di DB esterni all'app
« Risposta #2 il: 07 Marzo 2015, 20:37:55 CET »
0
E qui si presenta un altro problema: come si crea un WS?
Altra domanda che mi fa capire quando sia stato trattato male l'argomento durante tutti i corsi universitari: con "API che implementate" intendi le function che creeremo in SQL direttamente sul DB?

PS: Sviluppiamo l'app sia per Android che per IOS
« Ultima modifica: 07 Marzo 2015, 20:59:02 CET da fattidare »

Offline felasandroid

  • Utente normale
  • ***
  • Post: 345
  • Respect: +10
    • Github
    • balduzziantonio
    • balduzziantonio.unifi
    • Mostra profilo
  • Dispositivo Android:
    Huawei P8 Lite
  • Play Store ID:
    FelasTech
  • Sistema operativo:
    Windows 10
Re:Utilizzo di DB esterni all'app
« Risposta #3 il: 08 Marzo 2015, 01:33:15 CET »
0
E qui si presenta un altro problema: come si crea un WS?
Altra domanda che mi fa capire quando sia stato trattato male l'argomento durante tutti i corsi universitari: con "API che implementate" intendi le function che creeremo in SQL direttamente sul DB?

PS: Sviluppiamo l'app sia per Android che per IOS

Ti scrivo brevemente quello che ho creato io.

Abbiamo detto ti serve un WS per l'interfaccia verso l'app. Il WS dovrai farlo girare in qualche server, io uso Tomcat come servlet container.
In Eclipse mi creo un progetto (Maven) dynamic web e importo le librerie principali che mi occorrono per far funzionare Jersey (nel link che ti ho dato prima c'è anche la guida) e configuro il web.xml.
In rete trovi tutto, qui ad esempio c'è una guida (http://www.vogella.com/tutorials/REST/article.html).

Il WS poi lo poi creare sincrono o asincrono questo dipende se ci sono operazioni parecchio pesanti o meno che devi fare.

Il tuo WS esporrà verso la app un'interfaccia uniforme che consentirà alla app (Android/iOS/Quello che vuoi) di richiedere tramite le API vari servizi.

Poi tra il WS e la tua base dati ci sarà un middleware che si occupa di tutta la logica applicativa, puoi vederlo nel classico 3-tier, livello presentazione/logica/dati.
« Ultima modifica: 08 Marzo 2015, 10:43:08 CET da felasandroid »