2010-07-03 7 views
7

Sono interessato ad estendere il mio sito Web per fornire un servizio che coinvolga gli utenti che effettuano il check-in nel campus della mia università. Dal Location Based Services (LBS) è abbastanza nuovo, e non ci sono molta letteratura in giro che potrebbe fornire interessi relativi a questo argomento, ho le seguenti domande da porre:Creazione di un servizio per il mio sito Web che presenta alcune caratteristiche di quadrilatero

In primo luogo, so che devo progettare un Android App e possibilmente un'applicazione di app per telefono. Per quanto mi riguarda, Foursquare sta semplicemente utilizzando il client per inviare i dati al loro server web avanti e indietro.

  1. Quali sono i protocolli standard per il client per comunicare con il server web? (o è semplicemente solo json o xml?)
  2. Che tipo di servizio Web speciale usano sul loro back-end? (Come alcune ricerche rivelerebbero che stanno usando LIFT, scritto in Scala, che è qualcosa che non mi è familiare.).
  3. Conosco bene il pitone. Ci sono web server, ad esempio django o piloni, che forniscono un servizio simile a 2) sopra?
  4. Quanto è difficile questo?

Inoltre, qualsiasi letteratura su questo argomento è molto apprezzata.

+1

Non si deve presumere che tutti riconosceranno i propri acronimi o nomi di prodotti.Cosa sono "LBS" e "Foursquare" in questo contesto? Potrei google ma non avrei dovuto. – TechZen

+0

Foursquare? Pensavo che tutti sapessero che si tratta di un sito di reti geografiche. E questo indizi LBS, ovviamente: servizi basati sulla posizione. –

+0

@TechZen Ho avuto "Location Based Services (LBS)" ... – asdfawvsdv

risposta

2

Utilizzare foursquare API.

Hanno librerie già predisposte sia per Django che per Python here, quelle dovrebbero facilitare l'integrazione di foursquare nel tuo sito web.

2

Bene, penso che un buon primo passo sarebbe quello di guardare a Foursquare's API, sia per vedere se è possibile semplicemente integrare con il loro servizio (cioè cercare check-in che sono per gli edifici del campus o qualsiasi altra cosa) o semplicemente per ottenere una foto di ciò che stanno usando. La loro API sembra un servizio web piuttosto standard che utilizza XML o JSON, il che sembra una buona pratica anche per te.

Ci sono alcune sfide nella creazione di un servizio Web scalabile che gestirà i dati geografici: vorresti un database in grado di gestire geospatial indexing per te (altrimenti gli algoritmi possono diventare un po 'complessi). Se hai familiarità con Django, GeoDjango potrebbe essere una buona idea per te. Ho sentito che Foursquare sta effettivamente passando a MongoDB, che ha qualche geospatial indexing features: probabilmente utilizzano un database NoSQL a causa dei loro problemi di ridimensionamento unici di cui probabilmente non devi preoccuparti.

0

L'imitazione del quadrante non è un buon approccio. Una soluzione alle tue esigenze specifiche di funzionalità e i livelli di carico saranno sempre personalizzati, non copiati. Anche il più grande campus universitario del mondo, con ogni singola persona che usa il servizio, saresti totalmente sminuito dalla base di utenti di foursquare. Quindi qualunque cosa stiano facendo è VELOCE di fascia più alta di quello che ti serve.

Per i vostri scopi, un semplice servizio web è probabilmente più che adeguato. Sto creando app che sono sensibili alla posizione (eventi artistici/culturali e offerte di consumo locali alla posizione corrente dell'utente) in questo momento che colpiscono script PHP con stringa di query o argomenti di dati inviati e consumano JSON. Niente di eccezionale, ma posso gestire il carico sul lato server con tecnologie leggere che conosco già, e so che scalerà per soddisfare il mio carico effettivo.

Non lasciarti coinvolgere dal modo in cui lo fa qualcun altro, anche se è il leader del settore. I loro bisogni non sono i tuoi bisogni.

+0

Dan, qualsiasi dettaglio sulle tecnologie leggere che stavi/stai usando per l'app che hai menzionato? database, lingua, framework ecc., cosa stai usando? – tom

+0

MySQL e PHP su un server LAMP. Ho un ORM arrotolato a mano che sto usando (anche se non richiede molta complessità di query per far saltare la sua piccola mente e richiede una codifica SQL manuale). –

+0

Ho letto che MySQL non è adatto per le chiamate web transazionali (un sacco di aggiornamenti e letture), stai bene con quello? hai confrontato con altre soluzioni di database? – tom