Разработка приложений для Android с использованием Amazon EC2 и SimpleDB - PullRequest
3 голосов
/ 08 марта 2011

Я в настоящее время разрабатываю свое первое приложение для Android и все еще на стадии разработки, пытаясь придумать надежную модель.

Мое приложение будет использовать данные GCal из пользовательского календаря Google и синхронизировать их с одним или несколькими другими пользователями, чтобы определить общее время встреч между всеми без утомительного планирования работы по электронной почте.

Я вижу эту работу, храня каждого пользователя и его данные календаря в базе данных, которая будет обновляться ежедневно. Когда выдается запрос для определения оптимального времени встречи между группами, я хочу выбрать данные календаря каждого пользователя из базы данных, выполнить вычисления, чтобы найти оптимальное время, и отобразить результаты обратно пользователю, который сделал запрос.

AWS SDK для Android поддерживает Amazon SimpleDB и S3, и в этом случае я бы использовал SimpleDB для своей базы данных. Я заблудился, используя веб-сервис Amazon EC2 совместно с SimpleDB для выполнения вычислений.

Прежде всего, любые отзывы о моем подходе и / или дизайне приветствуются.

Во-вторых, как использование не-Android, но API / SDK на основе Java влияет на приложения, или это вообще возможно?

API typica для Java выглядит интересно и полезно, если возможно использовать, например, с Android.

Спасибо!

Ответы [ 2 ]

4 голосов
/ 08 марта 2011

Итак, я считаю важным отметить пару вещей.

  1. То, что вы описываете, не является «приложением для Android».Это приложение веб-службы с клиентом Android.Причина, по которой я педантичен, заключается в том, что многие дизайнерские решения, которые вам нужно принять, полностью помимо того факта, что ваш основной клиент будет работать на Android.жизнеспособность хранения календаря пользователей в нереляционной базе данных.Я не знаю, просматривали ли вы это уже, но проблема, которую вы пытаетесь решить (составление календаря), похоже, выиграет от реляционных преимуществ реляционной базы данных.Например, я не уверен, как бы вы структурировали для хранения данных прошлых, настоящих и будущих событий / встреч в нереляционных.Возможно, это возможно, но я не уверен, что это оптимально.В зависимости от объема данных вам также может потребоваться учитывать максимальный размер записи.

  2. Хотя AWS SDK для Android поддерживает запись в S3 или SimpleDB, я думаю, что есть многоучитывать.Причина, по которой вы не понимаете взаимодействие с EC2, заключается в том, что обычно ваш веб-сервис EC2 будет взаимодействовать с S3 или SimpleDB.Используя AWS SDK, вы можете в теории удалить требование к веб-сервису.Моя главная проблема в том, что теперь вы вынуждены делать гораздо больше для каждого клиента, потому что нет единого шаблона доступа.Ваш ios-клиент или веб-клиент должен иметь ту же логику, что и ваш Android-клиент, чтобы обеспечить одинаковый доступ к вашим s3 и простым данным БД.Если это не имеет смысла, я могу уточнить.

  3. Использование non-android api и sdks - смешанный пакет.Иногда это работает нормально, если классы компилируются в Davlik.Если они этого не сделают, это не сработает.

Одна вещь, на которую я могу обратить внимание, поскольку вы, возможно, уже связаны с технологией Google, - это Google App Engine.Приятной особенностью этого является то, что существует бесплатный уровень обслуживания, который позволяет вам бесплатно запускать и запускать ваше приложение.Основываясь на технологиях, которые вы предлагаете, это может быть что-то для вас, чтобы посмотреть.Кроме этого, я настоятельно рекомендую вам сначала сосредоточиться на создании веб-службы независимо от клиента Android.Потратьте время на то, чтобы смоделировать, как будет взаимодействовать клиент-сервер, и перенести как можно больше «логики» на сервер.То, что я чувствовал, отсутствовало в вашем первоначальном описании.Где будет хруст.

0 голосов
/ 16 мая 2015

Мое решение заключается в том, что вы используете принципы O-O. сохраните свою базу данных на Amazon DynamoDB, а затем синхронизируйте данные пользователя с мобильным приложением. затем вы выполняете обработку данных / вычислений на устройстве перед отображением результатов

...