2009-11-06 10 views
12

Sono attualmente nella fase di ricerca del mio progetto di tesi.Opzioni per comunicazione client server in Android

Il mio progetto è un sistema di prenotazione biglietti per un dispositivo mobile e ho scelto di scegliere come target Android.

Prevedo la necessità di un'architettura client/server con un server centrale, e attualmente sto osservando come Android potrebbe comunicare con un server del genere. Il server concederebbe al cliente l'accesso alle informazioni relative ai biglietti e il cliente invierà informazioni sul servizio di prenotazione dei biglietti al server. Sto guardando Java EE per il server in quanto Java è la lingua con cui ho più esperienza.

Sono consapevole che Android viene fornito con java.nio e java.net, così come alcuni pacchetti org.apache, ma sono anche alla ricerca di librerie/tecnologie che sarebbe possibile utilizzare con Android.

Finora non ho trovato nulla di molto utile su Internet, quindi sto vedendo cosa può suggerire SO.

In particolare Sono interessato a sapere:

  1. Quale sostegno è lì per varie tecnologie middleware di Android? per esempio.
    • RPC basato middleware
    • CORBA
    • basato Messaggio middleware
    • servizi Web come XML-RPC, SOAP, REST
  2. Quanto bene (o non) fanno librerie Java esistenti funziona quando usato sulla piattaforma Android? (Ad esempio, se ho voluto usare una libreria/API progettate per Java SE piuttosto che Android quali problemi potrei incontrare?)

Idealmente, come il focus del mio progetto non è destinata ad essere la comunicazione tra il server e client, potrei usare un middleware esistente per gestire la comunicazione, ma sono pronto per il caso peggiore, che è dover scrivere il mio.

risposta

14

Che supporto c'è per varie tecnologie middleware in Android?

La mia opinione personale - anche se non mi sento io sono il solo a pensare in questo modo - è che solo i protocolli specificatamente progettato per essere eseguito su Internet sono a distanza adatto per l'utilizzo con un client mobile. Così, della vostra lista, l'unico che avrei persino divertire sarebbe:

servizi Web come XML-RPC, SOAP, REST

Alcune persone sono state mantenendo una porta Android di kSOAP2 . Tuttavia, ho la netta impressione che la maggior parte degli sviluppatori Android che lavorano in quest'area abbiano la tendenza verso i protocolli REST e REST-ish. Se non altro, questo è ciò che tutti i divertenti siti Web e servizi utilizzano per un'API, in particolare rispetto a XML-RPC (vecchio) e SOAP (vecchio e icky).

Ho utilizzato con successo entrambe le librerie java.net.URLConnection e Apache HTTPClient in Android per comunicare con endpoint REST - sia direttamente che tramite JAR di terze parti - senza problemi reali specifici di Android.

Quanto bene (o non) non esistenti Java biblioteche funzionano quando utilizzato sulla piattaforma Android ?

È difficile rispondere in astratto. Android implementa un sostanziale sottoinsieme di JavaSE, ma non di tutto JavaSE, quindi c'è la possibilità che qualsiasi dato JAR si aspetti qualcosa che Android non offre. Allo stesso modo, Android non utilizza variabili d'ambiente, switch a riga di comando o una varietà di altre cose che gli sviluppatori focalizzati sul desktop potrebbero aver introdotto come semi-requisiti. Quindi, alcune cose hanno funzionato per me con nient'altro che una ricompilazione (Beanshell), e alcune cose hanno funzionato per me dopo aver rimosso le classi ridondanti (JTwitter), e alcune cose sembravano essere state orribili per funzionare (JavaMail) .

+1

Questa domanda è un po 'vecchia ora, ma attira ancora molti punti di vista. La tua risposta è ancora aggiornata o l'ambiente Android è cambiato negli ultimi 3 anni rispetto alla domanda originale? – chrisbunney

+2

@chrisbunney: qualcuno ha avviato JavaMail, quindi non è più un problema. 'HttpUrlConnection' è l'approccio consigliato per i client REST su Apache HTTPClient. Altrimenti, penso che i miei consigli di allora siano ancora piuttosto accurati. – CommonsWare

Problemi correlati