如何做移动应用同步与云服务,如亚马逊(sqs/sns)或azure



我想实现几个移动应用程序(windows phone/iOS/android)的想法。其中大多数需要在其他设备组上获取用户数据更新。

例如,

1种不需要立即更新发送到组的场景:假设一个家庭成员可以在应用程序中跟踪他们的支出。新添加的支出将自动同步到其他家庭成员的设备上(或者当他们选择同步时手动同步)。

第二种需要立即向组发送更新的场景:让我们考虑所有的纸牌游戏或者在21点的游戏场景中,我们需要通知桌上的所有玩家发牌人给他们每人开了哪张牌。

问题:我已经开始寻找亚马逊SQS(队列),SNS(通知)服务。但最初的阅读并没有让我得出任何结论。我还打算读Azure。

什么服务可以帮助我实现上述场景?

SQS问题:SQS如何工作?如果我从队列中读取一个项目,我猜它将从队列中删除。所以,如果一个设备添加了新的费用,家族中的其他设备不会,因为项目从队列中删除了。或者,我是否只需为每个设备创建一个队列?(可能在我的末端附加的代码逻辑可以帮助我)。

请给我一些关于这些服务的见解。

谢谢

这个问题很难回答,也有点具体。答案是那句著名的建筑格言:"视情况而定"。我可以帮你解决Azure部分的问题,我相信它也可以以某种方式翻译到亚马逊。

让我们看看你的场景。

  • 场景1不需要你说的即时更新。因为也可以有n个客户端,所以在我看来,处理这个问题的最佳方法是表存储。您将费用存储在一个表存储中,并将某些金额等存储在单独的行中。要访问这些数据,有两种可能的情况:(1)创建一个WCF服务来处理身份验证;授权,以及数据检索,通过公开一个方法,如GetFamilyExpenses(familyId);(2)在Azure上使用AppFabric(虽然有点贵)进行身份验证和直接访问表存储。更新是在你的应用程序内部处理的…
  • 场景2也有点具体。因为这是一款游戏,所以更新需要比其他任何内容都更加即时。我认为正确的实现方法是直接与服务建立一个TCP通道(托管在任何一个服务上),并通过一些自定义协议进行通信。队列不会帮助你,因为(至少在Azure上)你仍然需要轮询它们。
  • 场景3你没有提到,但这是队列发挥作用的地方。假设你有5家零售店,一个带笔记本电脑的经理和一个仓库。当零售商店达到指定数量的库存物品时,需要从仓库发出新物品。因此,当进行购买时,队列项被发送到两个主题、一个审计主题和一个仓库主题。审计主题由管理员的应用程序读取,它允许管理员查看发生的所有事情。

这是我看到的Azure选项的基本概述。如果答案对你有帮助,请不要忘记投票/标记。

最新更新