2012-02-18 14 views
43

Chcę, aby CouchDB działał jako backend dla mojej aplikacji mobilnej, zastępując SQlite.Mylić, jak używać CouchDB na Androidzie

Byłem bardzo zdezorientowany jako nowicjusz w tej technologii, ponieważ, oprócz wszystkich podobnych produktów dźwiękowych wydanych przez Couchbase w ubiegłym roku (Couchbase, Couchbase Single Server, Membase, Couchbase Mobile), teraz wydają się zrzucać/łącząc je wszystkie w jeden projekt, Couchbase Server. Ale to właściwie Membase, a nie CouchDB. Na dodatek twórca CouchDB nie będzie już pracował nad CouchDB. Wydaje się jednak, że wokół CouchDB jest bardzo aktywna społeczność. Oto, co wiem:

  1. Rozumiem, że firma Couchbase nie zapewnia już dystrybucji CouchDB.

  2. Rozumiem, że Couchbase Server, nowy cel firmy Couchbase, w rzeczywistości nie jest CouchDB i nie jest kompatybilny z CouchDB. Nie implementuje api HTTP, którego używa CouchDB, używa protokołu binarnego, który ewoluował z Membase.

  3. Wszystkie najnowsze informacje na temat CouchDB Mobile wydają się wskazywać na Couchbase Mobile.

Moje pytania sprowadzają się do:

Czy można jeszcze używać CouchDB na urządzeniu z systemem Android? W szczególności CouchDB, a nie serwer Couchbase, ponieważ interfejsy API nie są zgodne

Jeśli to nadal możliwe, jak to zrobić? Gdzie jest kod źródłowy? Jakieś przykładowe aplikacje?

Przepraszam, jeśli moje pytanie jest mylące. Szczerze mówiąc, ciężko mi jest przebrnąć przez ogromną kolekcję pozornie sprzecznych postów online. Chcę uruchomić CouchDB na Androida! :)

+0

Coś offtopic, ale dlaczego chcesz używać CouchDB zamiast SQLite? – Luksprog

+2

@slukian Chcę skorzystać z funkcji replikacji CouchDB. Aplikacja serwera, która pokrywa się z aplikacją mobilną, wykorzystuje CouchDB. – Jonathan

Odpowiedz

12

Android port TouchDB, https://github.com/couchbaselabs/TouchDB-Android, może być interesujące:

"TouchDB CouchDB jest kompatybilny lekki silnik bazy danych nadaje się do osadzania w aplikacjach mobilnych lub stacjonarnych."

To nie jest zamiennik dla CouchDB, ale obiecuje API, które jest w zasadzie takie samo i być może przede wszystkim dla ciebie "obsługuje replikację do iz CouchDB".

+1

Dzięki za to, zagłębię się w to. Wciąż mam nadzieję, że uda mi się znaleźć nieporęczne CouchDB na Androida, o którym wspomina wiele postów internetowych. – Jonathan

30

jako współzałożyciel Couchbase, powinienem być w stanie zapewnić ci lepsze zrozumienie. Przyjmę twoje pytania po kolei.

1) Prawidłowo. Couchbase Server nie jest CouchDB. Poświęca niektóre fajne rzeczy, które robi CouchDB (interfejs HTTP, replikacja master/master), dzięki czemu może wykonywać inne zgrabne rzeczy (opóźnienia poniżej milisekund, gigantyczne klastry). W dłuższej perspektywie chcielibyśmy powrócić na wyższy poziom. Wersje wydajnościowe funkcji, które musieliśmy upuścić. Na razie budujemy najszybszą i najbardziej niezawodną bazę danych NoSQL (yay), ale nie odpowiada ona na takie same przypadki użycia jak CouchDB.

2) Może właśnie odpowiedziałem na to? Więcej informacji o serwerze Couchbase znajduje się tutaj: http://www.couchbase.com/couchbase-server/overview

3) Couchbase nadal inwestuje w technologię mobilną. Mamy sprawdzone implementacje dostępne na Androida i iOS.Są one oparte na Apache CouchDB, więc będą miały zestaw funkcji, którego szukasz. Odwiedź tutaj, aby pobrać je: http://www.couchbase.com/wiki/display/couchbase/Couchbase+Mobile+Syncpoint (zobacz linki do iOS i Androida na tej stronie)

W dalszej kolejności koncentrujemy się na lekkich alternatywach, które faktycznie obsługują kod oparty na CouchDB na urządzeniu. Aby uruchomić CouchDB na urządzeniu, wymagana jest maszyna wirtualna Erlang. Choć jest lekki i pełen szacunku dla żywotności baterii (dla VM), wciąż jest maszyną wirtualną. Dlatego budujemy więcej lekkich silników synchronizujących i pamięci masowych na urządzenia mobilne. TouchDB for iOS można synchronizować z Apache CouchDB. Mamy również a similar project for Android. Gdybym rozpoczynał nowy projekt, przyjrzałbym się im.

+0

Spośród dwóch sugerowanych opcji, które, twoim zdaniem, byłyby lepszym wyborem do nurkowania? Czy przyszłe wydania Syncpoint będą kompatybilne z CouchDB, czy będę musiał znaleźć nowe rozwiązanie w ciągu kilku miesięcy? Wreszcie, jak dobrze działa ciągła replikacja/synchronizacja? Dzięki za pomoc, jest to bardzo doceniane! Mam książkę, którą jesteście współautorami, siedzącą obok mnie. :) – Jonathan

+0

Jeszcze jedno ... Jak GeoCouch pasuje do obrazu? – Jonathan

+0

Poziom synchronizacji warstwy synchronizacji będzie oparty na Apache CouchDB, więc powinna zsynchronizować się z nim dobrze. To powiedziawszy, możemy dokonać optymalizacji, która może naruszyć kompatybilność. Wszystko, co robimy, to open source i jest dostępne dla projektu scalania z Apache, więc prawdopodobnie będziemy kompatybilni. –

6

TouchDB został zastąpiony przez Couchbase Lite Android i Couchbase-Lite-Android może być użyty tylko w strukturze plastra miodu i powyżej.

Również w tym dniu 16-wrz-13 biblioteka jest w wersji alfa i nie widzę, aby była ona wkrótce używana.

Jedynym rozwiązaniem w tym miejscu wydaje się być parse.com, co jest oczywiście rozwiązaniem płatnym.

+0

Strona Github (https://github.com/couchbase/Android-Couchbase) mówi, że Android 2.1 lub nowszy, jak to jest obecnie. –

1

Odpowiedzi tutaj stają się nieco przestarzałe.

Couchbase Lite to dojrzały produkt wysyłkowy (open-source), który implementuje autonomiczną, w pełni funkcjonalną bazę danych NoSQL przeznaczoną do urządzeń mobilnych, Internetu przedmiotów i innych zastosowań, w których łączność sieciowa stanowi problem lub potrzebujesz czegoś lżejszego niż serwer Couchbase. Ma szerokie wsparcie platformowe.

Couchbase Lite umożliwia synchronizację. Jest kompatybilny z CouchDB.

Możesz znaleźć więcej informacji na stronie Couchbase. Dla urządzeń przenośnych, przejdź do http://developer.couchbase.com/mobile