Guardando le tue domande, a sua volta:
- funziona allo stesso modo un sito web funziona? (Http richiesta al server?)
Ci sono molte opzioni, ma probabilmente il più comune, o alla moda, in questo momento è quello di utilizzare un'interfaccia RESTFUL: http://en.wikipedia.org/wiki/Representational_state_transfer
In precedenza, un web basato SOAP il servizio avrebbe potuto essere la scelta più comune: http://en.wikipedia.org/wiki/SOAP
vedi qui per qualche discussione sul perché si potrebbe utilizzare REST piuttosto che il SOAP ora: Why would one use REST instead of SOAP based services?
- come avviene lo scambio di dati tra frontend e backend?
Supponendo REST, HTTP viene utilizzato per trasportare i messaggi e dati delle applicazioni è in genere incluso in XML o JSON forma
- quali sono le soluzioni comuni a mio problema?
Penso che questo sia coperto dalle altre parti della domanda/risposta.
- esiste un modo efficace per definire questo back-end per le app mobili e un sito Web?
Questo è molto dipendente dalla particolare applicazione server, in particolare dalle dimensioni e dall'architettura. Se l'applicazione server è suddivisa in componenti o parti e le parti che generano le "viste" o le pagine "HTML" per l'app Web sono distinte e ben separate dalle parti "back-end" dell'applicazione server, E dall'applicazione è di un tipo che la funzionalità è in gran parte la stessa sia che l'utente stia usando un sito web o un mobile ed è solo il modo in cui la vista viene generata per i diversi dispositivi che differisce, quindi un design efficiente sarebbe quello che mantiene come gran parte del backend è il più comune possibile.Se l'uso dell'applicazione è molto diverso se usato da un client mobile, questo potrebbe non avere senso. Più in generale, un design efficiente manterrebbe il maggior numero di funzionalità comuni tra le applicazioni Mobile e Web.
Vale sicuramente la pena acquisire familiarità con il modello di architettura di 'Model View Controller' come la maggior parte dei framework lato server, così come molti framework per client Web Javascript e anche iOS e (in misura minore) Android quadri usano questi concetti:
http://en.wikipedia.org/wiki/Model -view-Controller
One considerazioni importanti se avete bisogno di 'spingere' o di notifica, come la funzionalità sul tuo telefonino app. Se quindi si consiglia di guardare alcune delle soluzioni comuni per capire se essi soddisfano le vostre esigenze - probabilmente più semplice per iniziare con le offerte di Apple e Google per ottenere una comprensione, ma ci sono un sacco di altre soluzioni disponibili anche:
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html
http://developer.android.com/google/gcm/index.html
non ho familiarità con questo servizio, ma si potrebbe essere meglio guardando un semplice approccio basato REST prima e vedere se soddisfa le vostre esigenze.