Как выполнить синхронизацию мобильного приложения с облачным сервисом, таким как amazon (sqs / sns) или azure - PullRequest
1 голос
/ 18 июля 2011

Я хочу реализовать пару идей для мобильных приложений (Windows Phone / iOS / Android).Большинство из них требуют получения обновлений пользовательских данных на другой группе устройств.

Например, 1 сценарий, который не требует немедленного обновления, отправляемого группе: скажем, член семьи может отслеживать свои расходы в приложении.Вновь добавленные расходы будут автоматически синхронизироваться с другими устройствами членов семьи (или вручную, когда они выберут синхронизацию).

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

Вопрос: Я начал искать сервисы Amazon SQS (очередь), SNS (уведомление).Но первоначальное чтение еще не привело меня к какому-либо заключению.Я также собираюсь прочесть Azure.

Какие службы должны помочь мне в достижении вышеуказанных сценариев?

Вопрос SQS: Как будет работать SQS?Если я читаю один элемент из очереди, я предполагаю, что он будет удален из очереди.Таким образом, если одному устройству будут добавлены новые расходы, другие устройства в семействе этого не сделают, поскольку элемент был удален из очереди.Или может быть - я просто создаю одну очередь на устройство?(Может быть, дополнительная логика кода с моей стороны может помочь мне).

Пожалуйста, предоставьте мне любую информацию об этих услугах.

Спасибо

1 Ответ

1 голос
/ 18 июля 2011

Сложный вопрос, немного конкретный тоже.Ответ в том, что известная архитектурная цитата "это зависит".Я могу помочь вам с частью Azure, и я уверен, что она также может быть каким-то образом переведена на Amazon.

Давайте рассмотрим ваши сценарии.

  • Сценарий 1 не требует немедленных обновлений, как вы говорите.Поскольку может также быть N-много клиентов, мне кажется, лучшим способом справиться с этим было бы Table Storage.Вы храните расходы в табличном хранилище, а также храните определенные суммы и т. Д. В отдельном ряду.Для доступа к этим данным существует два возможных сценария: (1) создать службу WCF для обработки аутентификации и авторизации, а также для извлечения данных, предоставляя такой метод, как GetFamilyExpenses(familyId);или (2) использовать AppFabric в Azure (хотя и немного дороже) для аутентификации и прямого доступа к хранилищу таблиц.Обновления обрабатываются внутри вашего приложения ...
  • Сценарий 2 также немного специфичен.Поскольку это игра, обновления должны быть более мгновенными, чем все остальное.Мой взгляд на правильную реализацию здесь заключается в том, чтобы установить канал TCP непосредственно со службой (размещенной на обеих службах) и обмениваться данными через некоторый пользовательский протокол.Очереди вам не помогут, потому что (по крайней мере, в Azure) вам все равно нужно их опросить.
  • Сценарий 3 , о котором вы не упомянули, но именно здесь очереди вступают в игру.Представьте, что у вас есть 5 розничных магазинов, менеджер с ноутбуком и склад.Новые товары со склада необходимо отправить, когда розничные магазины достигнут определенного количества товаров на складе.Таким образом, при совершении покупки элемент очереди отправляется в две темы , тему аудита и тему хранилища.Тема аудита читается приложением менеджера и позволяет менеджеру видеть все, что происходит .

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

...