6

Tôi đang thiết kế một dịch vụ sẽ bao gồm cơ sở dữ liệu dựa trên đám mây (với giao diện người dùng để quản lý dữ liệu) và sau đó là ứng dụng dành cho thiết bị di động cho người dùng cuối hiển thị dữ liệu cho những người muốn nó (chủ yếu là đọc) chỉ có). Người dùng cuối sẽ ẩn danh.Tôi nên sử dụng nền tảng cơ sở dữ liệu đám mây nào cho ứng dụng Android của mình?

Cơ sở dữ liệu đám mây/máy chủ ứng dụng cần cung cấp:

  • Một rắn, khả năng mở rộng, cơ sở dữ liệu dựa trên đám mây

  • Một API thoải mái dễ dàng, REST, và lý tưởng một SDK Android

  • Giao diện người dùng trên web để quản lý dữ liệu (bao gồm việc tạo biểu mẫu trên các bảng)

  • Giá cả hợp lý, nhưng không phải f ree

Tùy chọn của tôi bao gồm Google App Engine, Microsoft Azure, được lưu trữ Couchdb, bộ máy cơ sở dữ liệu sắp tới của Salesforce và Amazon SimpleDB. Nhưng yêu cầu thứ ba của tôi, các biểu mẫu dựa trên web để quản lý dữ liệu nội bộ, đang chứng minh trở ngại lớn nhất.

Database.com (hoặc cụ thể hơn là sản phẩm force.com) làm cho VERY dễ dàng tạo biểu mẫu trực tuyến để chạy báo cáo và thêm và chỉnh sửa dữ liệu. Nhưng Salesforce là một nỗi đau ở mặt sau để đối phó với, và giá cả của database.com trông đắt tiền.

Mọi người đang đề xuất tôi tự viết mã cho giao diện người dùng để chỉnh sửa dữ liệu và có thể, nhưng có rất nhiều công việc (đặc biệt là tôi không biết Azure, Python, v.v.) thay vì nỗ lực đó vào ứng dụng, đó là những gì khách hàng của tôi sẽ sử dụng. Tôi là người mới sử dụng Android trong năm nay, vì vậy tôi đã học toàn bộ nền tảng.

Một tùy chọn là để tôi sử dụng force.com để quản lý dữ liệu, nhưng sau đó sao chép nó ở một nơi khác, nơi các cuộc gọi API đến, tốt nhất của cả hai thế giới.

Tùy chọn nào phù hợp nhất với nhu cầu của tôi nhất? Tôi chắc chắn rằng tôi xa một mình trong việc tìm kiếm một dịch vụ back-end tốt đẹp để ngồi đằng sau các ứng dụng di động.

Trả lời

4

Django đáng xem giao diện App Engine - nó đi kèm với hỗ trợ bảng điều khiển dành cho quản trị viên, giúp dễ dàng sửa đổi kho dữ liệu của bạn một cách tương tác. Hãy xem django-nonrel nếu bạn quan tâm.

+0

Tôi hy vọng Django và Google App Engine có thể thực hiện công việc, nhưng tôi chưa bao giờ làm việc với một trong hai vì vậy nó có thể là khá chậm đối với tôi để có được lên đến tốc độ và xây dựng nó. Tôi muốn dành thời gian đó vào chính ứng dụng. –

+0

công cụ ứng dụng và kho dữ liệu thực sự đều khá nhanh để tăng tốc. Nghe có vẻ như bạn đã quen thuộc với java, vì vậy tôi đặt cược bạn có thể nhận được một cái gì đó đơn giản và chạy trong một giờ hoặc lâu hơn. cho nó một shot! – ryan

+0

@ryan Bạn cần phải giải quyết nhận xét cho @Ollie hoặc anh ấy sẽ không được thông báo. :) –

0

Vâng.
Tôi không thể cho bạn biết điều gì là tốt nhất cho nhu cầu của bạn, tuy nhiên, tôi biết rằng Restlet (http://www.restlet.org/) có cả GAE và Android SDK, có lẽ điều này có thể thú vị?

Trải nghiệm của tôi hoạt động khá mượt mà.

+0

Có, perhaos, một SDK hoạt động ở cả hai đầu sẽ hữu ích, nhưng GAE có nhược điểm là không có giao diện được cung cấp để quản lý dữ liệu trong cơ sở dữ liệu, tất cả đều cần xây dựng. Tôi ghét nhiều thứ về force.com nhưng một điều họ đã làm rất tốt là khả năng tạo biểu mẫu/báo cáo/trang tổng quan dữ liệu của bạn với một vài cú nhấp chuột, v nhanh chóng, có thể tập trung vào mã khách hàng. –

2

Nếu bạn đi tuyến đường Amazon SimpleDB, bạn cũng sẽ cần một máy chủ để ký yêu cầu.

Không có cách an toàn để nhúng thông tin đăng nhập truy cập Amazon của bạn vào một ứng dụng, vì vậy bạn sẽ cần một máy chủ web/ứng dụng như một 'người trung gian'.

Thực tế, tôi nghĩ bạn sẽ gặp vấn đề này với hầu hết các cơ sở dữ liệu dựa trên đám mây.

+0

Thú vị, tôi không biết điều này về SimpleDB. Database.com dường như không có giới hạn này, mặc dù tôi cho rằng họ sẽ đưa Heroku vào làm nền tảng máy chủ ứng dụng được đề xuất để tùy chọn sử dụng với nó. –

+0

Đối với bất kỳ ứng dụng nào, có thể là máy tính để bàn hoặc điện thoại, bạn không nên lưu trữ bất kỳ thông tin đăng nhập truy cập nào trong ứng dụng mà mọi người có thể khám phá và sử dụng trong chương trình của bạn. Trong NET của nó dễ dàng để tìm thấy những giá trị này bằng cách sử dụng phản xạ. Cách tương tự tồn tại cho hầu hết các khung công tác. – Tim

+0

Có tất nhiên, mặc dù nó phụ thuộc vào những gì truy cập thông tin đăng nhập cung cấp. Tôi sẽ giả định thông tin đăng nhập sẽ được các bên thứ ba truy cập và API sẽ bị khóa. Trong trường hợp của tôi, nó sẽ là chỉ đọc, với các giới hạn API. –

1

Bạn đã đề cập đến "biểu mẫu dựa trên web để quản lý dữ liệu nội bộ, đang chứng tỏ rào cản lớn nhất", tôi cho rằng bạn nên xem xét các nhà xây dựng cơ sở dữ liệu trực tuyến như Ragic.

  1. Bạn tạo cơ sở dữ liệu trên đó như tạo biểu mẫu bảng tính.
  2. Bạn sử dụng biểu mẫu bảng tính dựa trên web để quản lý dữ liệu nội bộ.
  3. Tất cả các biểu mẫu được tạo đều có API HTTP trả về JSON và bạn có thể tạo/cập nhật các mục nhập với nó.
  4. Nó hỗ trợ các trường được liên kết cho các hoạt động sẽ vượt qua các biểu mẫu khác nhau.
Các vấn đề liên quan