2009-11-06 12 views
12

Jestem obecnie w fazie badań mojego projektu rozprawy doktorskiej.Opcje komunikacji z serwerem klienta w Androidzie

Mój projekt to system rezerwacji biletów na urządzenie mobilne i wybrałem kierowanie na system Android.

Przewiduję, że potrzebna jest architektura klient/serwer z centralnym serwerem, a więc obecnie przyglądam się, jak Android może komunikować się z takim serwerem. Serwer udzieliłby klientowi dostępu do informacji o biletach, a klient wysłałby informacje o rezerwacji biletów na serwer. Szukam serwera Java EE dla serwera, ponieważ Java jest językiem, z którego najbardziej się zetknąłem.

Jestem świadomy, że Android jest dostarczany z java.nio i java.net, a także z niektórymi pakietami org.apache, ale szukam również bibliotek/technologii, których można używać z Androidem.

Do tej pory nie znalazłem nic przydatnego w Internecie, więc widzę, co SO może zasugerować.

Szczególnie jestem zainteresowany poznaniem:

  1. Jakie wsparcie jest dla różnych technologii middleware w Androidzie? na przykład
    • oparty RPC middleware
    • CORBA
    • oparty Wiadomość middleware
    • usługi internetowe, takie jak XML-RPC, SOAP, REST
  2. Jak dobrze (lub nie) na temat istniejących bibliotek Java działa, gdy używane na platformie Android? (Jeśli chciałem użyć biblioteki/interfejsu API zaprojektowanego dla Java SE zamiast Androida, jakie problemy mogę napotkać?)

Idealnie, ponieważ celem mojego projektu nie jest komunikacja między serwerem i klienta, mógłbym użyć istniejącego oprogramowania pośredniczącego do obsługi komunikacji, ale jestem przygotowany na najgorszy przypadek, który muszę napisać sam.

Odpowiedz

14

Jakie wsparcie jest dostępne dla różnych technologii oprogramowania warstwy pośredniej w systemie Android?

Moja osobista opinia - choć nie wydaje mi się, że jestem samotny w myśleniu w ten sposób - jest taka, że ​​tylko protokoły zaprojektowane specjalnie do pracy w Internecie są zdalnie odpowiednie do użycia z klientem mobilnym. Tak więc, z listy, tylko jeden, że ja nawet zabawiać będzie:

usługi internetowe, takie jak XML-RPC, SOAP, REST

Niektóre osoby zostały utrzymanie Android portu kSOAP2 . Odnoszę jednak wrażenie, że większość programistów Androida pracujących w tym obszarze ma tendencję do używania protokołów REST i REST-ish. Jeśli nic więcej, to właśnie wszystkie fajne witryny i usługi używają API, szczególnie w porównaniu z XML-RPC (stare) i SOAP (stare i icky).

Pomyślnie użyłem bibliotek java.net.URLConnection i Apache HTTPClient w systemie Android do komunikacji z punktami końcowymi w stylu REST - zarówno bezpośrednio, jak i za pośrednictwem JARów firm trzecich - bez problemów związanych z konkretnym systemem Android.

Jak dobrze (lub nie) na temat istniejących bibliotek Java działa, gdy używany na platformie Android ?

Trudno odpowiedzieć na to pytanie w skrócie. Android implementuje znaczny podzbiór JavaSE, ale nie wszystkie JavaSE, więc jest szansa, że ​​dowolny JAR będzie oczekiwać czegoś, czego Android nie oferuje. Podobnie Android nie używa zmiennych środowiskowych, przełączników wiersza polecenia ani wielu innych rzeczy, które programiści skupieni na pulpicie mogli wprowadzić jako półprofile. Tak, niektóre rzeczy działały dla mnie z niczym więcej niż rekompilacją (Beanshell), a niektóre rzeczy działały dla mnie po usunięciu zbędnych klas (JTwitter), a niektóre rzeczy wyglądały tak, jakby miały być upiorne do pracy (JavaMail) .

+1

To pytanie jest trochę stare, ale nadal przyciąga wiele wyświetleń. Czy twoja odpowiedź jest wciąż aktualna lub czy środowisko Androida zmieniło się w ciągu ostatnich 3 lat w odniesieniu do pierwotnego pytania? – chrisbunney

+2

@chrisbunney: Ktoś uruchomił JavaMail, więc to już nie jest problem. 'HttpUrlConnection' jest zalecanym podejściem dla klientów REST za pośrednictwem Apache HTTPClient. W przeciwnym razie uważam, że moje rekomendacje z tamtych czasów są nadal dość dokładne. – CommonsWare

Powiązane problemy