6

Projektuję usługę obejmującą opartą na chmurze bazę danych (z interfejsem umożliwiającym nam zarządzanie danymi), a następnie aplikację mobilną dla użytkowników końcowych wyświetlającą dane osobom, które tego chcą (głównie tylko). Użytkownicy końcowi będą anonimowi.Którą bazę danych bazy danych w chmurze powinienem użyć w mojej aplikacji na Androida?

Chmura baza danych/serwer aplikacji musi zapewnić:

  • solidna, skalowalna baza danych w chmurze

  • Ładne proste API REST, najlepiej Android SDK

  • Interfejs użytkownika do zarządzania danymi (w tym tworzenie formularzy między tabelami)

  • Rozsądne ceny, ale nie f ree

Moje opcje obejmują Google App Engine, Microsoft Azure, hostowane Couchdb, nadchodzącą bazę danych Salesforce i Amazon SimpleDB. Ale moje trzecie wymaganie, internetowe formularze do wewnętrznego zarządzania danymi, okazują się największą przeszkodą.

Database.com (a dokładniej produkt force.com) sprawiają, że bardzo proste jest tworzenie formularzy online do generowania raportów oraz dodawania i edycji danych. Ale Salesforce są na tyle kłopotliwe, aby sobie z nimi poradzić, a cennik database.com wygląda drogo.

Ludzie sugerują, że sam koduję interfejs użytkownika do edycji danych & zarządzania, i tak, ale to dużo pracy (zwłaszcza, że ​​nie znam Azure, Python itp.), A ja bym dużo raczej włóż ten wysiłek do aplikacji, z której będą korzystać moi klienci. Jestem nowy na Androida w tym roku, więc miejcie ręce pełne nauki na jednej platformie.

Jedną z opcji jest użycie strony force.com do zarządzania danymi, a następnie replikowanie jej w innym miejscu, gdzie przychodzą wywołania API, najlepiej z obu światów.

Która opcja najlepiej odpowiada moim potrzebom? Jestem pewien, że nie jestem sam, szukając miłej usługi zaplecza, aby usiąść za aplikacjami mobilnymi.

Odpowiedz

4

Django jest warte sprawdzenia dla App Engine - jest wyposażony w wbudowaną obsługę konsoli administratora, co ułatwia interaktywną modyfikację danych magazynu. Jeśli jesteś zainteresowany, sprawdź django-nonrel.

+0

Oczekuję, że Django i Google App Engine będą w stanie wykonać to zadanie, ale nigdy nie pracowałem z żadną z nich, więc prawdopodobnie będzie to dość powolne, abym mógł je przyspieszyć i zbudować. Wolę spędzić ten czas na samej aplikacji. –

+0

Aparat aplikacji i magazyn danych są w rzeczywistości dość szybkie, aby przyspieszyć. brzmi to tak, jakbyś był zaznajomiony z Javą, więc założę się, że za godzinę można coś prostego zrobić. Spróbuj! – ryan

+0

@ryan Musisz przesłać komentarze do @Oieie lub nie otrzyma powiadomienia. :) –

0

Dobrze.
Nie mogę powiedzieć, co jest najlepsze dla twoich potrzeb, ale wiem, że Restlet (http://www.restlet.org/) ma zarówno GAE, jak i Androida SDK, może to może być interesujące?

Z mojego doświadczenia wynika, że ​​to działa całkiem gładko.

+0

Tak, perhaos, SDK, który działa na obu końcach byłoby pomocne, ale GAE ma wadę, że nie ma interfejsu do zarządzania danymi w bazie danych, wszystko to wymaga budowania. Nienawidzę wielu rzeczy związanych z force.com, ale jedną z rzeczy, które zrobiły BARDZO dobrze, jest możliwość tworzenia formularzy/raportów/pulpitów z danymi za pomocą kilku kliknięć, v szybkie, mogą skupić się na kodzie klienta. –

2

Jeśli wybierzesz trasę Amazon SimpleDB, będziesz potrzebował również serwera do podpisania żądań.

Nie ma bezpiecznego sposobu na umieszczenie danych uwierzytelniających Amazon w aplikacji, więc potrzebujesz serwera WWW/aplikacji jako "środkowego człowieka".

W rzeczywistości, myślę, że będziesz mieć ten problem z większością opartych na chmurze bazach danych.

+0

Interesujące, nie wiedziałem o SimpleDB. Database.com nie wydaje się mieć tego ograniczenia, choć zakładam, że przyniesie Heroku jako zalecaną platformę serwera aplikacji, aby opcjonalnie z niego korzystać. –

+0

W przypadku dowolnej aplikacji, zarówno stacjonarnej, jak i telefonicznej, nie należy zapisywać poświadczeń dostępu w aplikacji, które ludzie mogliby znaleźć i wykorzystać z programu. W .NET można łatwo znaleźć te wartości za pomocą reflektora. Podobne sposoby istnieją w przypadku większości frameworków. – Tim

+0

Tak, oczywiście, ale to zależy od tego, jaki dostęp zapewniają dane uwierzytelniające. Zakładam, że dostęp do danych logowania uzyskają strony trzecie, a interfejs API zostanie zablokowany. W moim przypadku będzie on tylko do odczytu, z limitami API. –

1

Wspomniałeś "internetowe formularze do wewnętrznego zarządzania danymi, okazują się największą przeszkodą" zwróciło moją uwagę, myślę, że powinieneś rzucić okiem na internetowych budowniczych baz danych, takich jak Ragic.

  1. Utworzenie bazy danych na jej temat, np. Utworzenie formularza arkusza kalkulacyjnego.
  2. Korzystasz z internetowego arkusza kalkulacyjnego do wewnętrznego zarządzania danymi.
  3. Wszystkie utworzone formularze mają interfejs API HTTP, który zwraca JSON i można z nim tworzyć/aktualizować wpisy.
  4. Obsługuje pola połączone dla operacji, które będą krzyżować różne formularze.
Powiązane problemy