2

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

例如,一个不需要立即更新的场景发送到群组:假设一个家庭成员可以在应用程序中跟踪他们的开支。新增费用将自动同步到其他家庭成员设备(或在他们选择同步时手动同步)。

需要立即更新发送到组的第二个场景:让我们考虑所有的纸牌游戏或者在二十一点的游戏场景中,我们需要通知桌上的所有玩家荷官为他们每个人打开了哪张牌。

问:我已经开始寻找 Amazon SQS(队列)、SNS(通知)服务。但初步阅读并没有让我得出任何结论。我还将阅读 Azure。

哪些服务可以帮助我实现上述场景?

SQS 问题:SQS 将如何运作?如果我从队列中读取一项,我猜它会从队列中删除。因此,如果一个设备增加了新费用,则家庭中的其他设备不会,因为项目已从队列中删除。或者可能 - 我是否只为每个设备创建一个队列?(可能是我最后的附加代码逻辑可以帮助我)。

请向我提供有关这些服务的任何见解。

谢谢

4

1 回答 1

1

很难回答的问题,也有点具体。答案是那句著名的建筑名言“视情况而定”。我可以在 Azure 部分为您提供帮助,我相信它也可以以某种方式翻译到亚马逊。

让我们来看看你的场景。

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

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

于 2011-07-18T07:24:36.427 回答