2010-12-15 14 views
7

Mam nadzieję, że ktoś może potwierdzić lub poprawić moje wnioski tutaj.Czy CouchDB może być rzeczywiście używany do aplikacji komputerowej?

Zajmuję się pisaniem małego projektu pobocznego. Chcę utworzyć aplikację komputerową do robienia notatek, które zsynchronizują się z serwerem internetowym, dzięki czemu wiele instalacji może być przechowywanych w kroku i udostępnionych danych, a także, w razie potrzeby, będzie można uzyskać do nich dostęp za pośrednictwem przeglądarki.

W pewnym stopniu słuchałem odgłosów związanych z CouchDB i słyszałem wzmiankę o "funkcjonalności offline", o desktopdb i ruchach, aby wykorzystać jej zdolność do obsługi przerywanej komunikacji, aby umożliwić rozproszone aplikacje w rynek mobilny. To wszystko doprowadziło mnie do przekonania, że ​​może to być interesująca opcja, jeśli chodzi o udostępnianie moich danych, a także obsługę moich potrzeb synchronizacji, ale po spędzeniu czasu na szukaniu informacji o tym, jak zacząć, mój wniosek jest taki, że mam kompletnie niewłaściwy koniec kija, a rzeczywistość jest taka:

Nie ma możliwości upakowania instancji CouchDB, rozpowszechniania jej jako części aplikacji komputerowej i uruchamiania jej w kontekście tej aplikacji w celu zapewnienia lokalnej pamięci i synchronizacja z centralną bazą danych.

Czy mam tutaj rację? Jeśli tak, to czy istnieje jakaś technologia, która robi tego rodzaju rzeczy, czy też zostawiam toczące się własne lokalne przechowywanie i może nadal korzystam z CouchDB na serwerze?

+0

Przynajmniej jedna osoba zdecydowała, że ​​odpowiedź brzmi: nie. Http://philwilson.org/blog/2009/04/couchdb-in-desktop-applications – RobertB

+0

Ale w Ubuntu jest jeszcze jeden wysiłek związany z obsługą pulpitu: https: // launchpad.net/desktopcouch Wygląda na to, że w tym miejscu jest tylko * nix. Więcej interesujących dokumentów znajduje się tutaj: http://www.freedesktop.org/wiki/Specifications/desktopcouch – RobertB

Odpowiedz

5

Update (2012/05): sprawdzeniu nowych projektów TouchDB z Couchbase jeśli są kierowane Mac OS X and/or iOS lub Android. Te faktycznie używają SQLite pod maską (przynajmniej na razie), ale mogą replikować do/z "prawdziwego" serwera CouchDB. Kolejną alternatywą dla klienta, która wreszcie zaczyna się rozwijać, jest PouchDB, która działa w silnikach przeglądarek z obsługą indeksowania. Korzystanie z nich lub korzystanie z nich w celu zainspirowania podobnego portu do innej platformy desktopowej staje się teraz lepszą ścieżką.

Oryginalny odpowiedź:

Nie ma sposobu pakowania górę instancji couchdb, rozdzielając je jako części aplikacji pulpitu i uruchomienie go w kontekście tego wniosku dostarczenie pamięci lokalnej i synchronizacja z centralną bazą danych .

W tym momencie Twoja wypowiedź jest poprawna, chociaż praktycznie możliwe jest m.in. CouchDB w aplikacji - na przykład patrz CouchDBX.app która jest cienka owijka wokół ustalonej wiązki CouchDB i wszystkie zależności .

Najprostszym sposobem na zbudowanie aplikacji CouchDB jest założenie, że użytkownik będzie już mieć uruchomiony a CouchDB server. Jest to łatwiejsze, niż się wydaje, zwłaszcza w przypadku hostingu Couchone lub wstępnie zbudowanej aplikacji, takiej jak CouchDBX na OS X lub DesktopCouch na Ubuntu. Ta ostatnia jest szczególnie interesująca, ponieważ jeśli dobrze rozumiem, jest ona domyślnie dołączana do systemu Ubuntu w dzisiejszych czasach i automatycznie obraca serwer CouchDB na użytkownika, gdy wyszukujesz jego port przez D-Bus. Coś podobnego można (i należy) zrobić na OS X używając launchd i Bonjour.

Tak jak piszesz, to trzeba albo zaprojektować aplikację do przechowywania danych w lokalnym formacie i ewentualnie synchronizacji z usługą couchdb podać albo trzeba by build i pakiet wszystkich Erlang, SpiderMonkey i CouchDB wraz z aplikacja wraz z niektórymi skryptami, aby upewnić się, że działa w razie potrzeby. Jest to możliwe, ale oczywiście żadna z nich nie jest idealna i wierz mi, że nie jesteś jedyną osobą, która chce prostszego rozwiązania dla aplikacji zorientowanych na komputery!

+0

Dzięki za odpowiedź (i dla komentujących). Wyobrażałem sobie coś w rodzaju lokalnego sklepu SQLite i biblioteki, która może być opowiedziana o zdalnej instancji CouchDB. No cóż, może kiedyś w przyszłości. – mwtb

+0

Rzeczywiście tak się działo w ostatnich miesiącach! Sprawdź moje linki do TouchDB w aktualizacji do mojej odpowiedzi powyżej. – natevw

Powiązane problemy