几天之内,Microsoft和Amazon Web服务(AWS)分别发布了面向开发者的移动友好通知服务。这两个服务都能够让你快速且便宜地向所有类型的设备广播成千上万的消息。虽然表面上看起来非常相似,但是每一种服务都提供了它们自己独特的能力。
\推通知正逐渐成为移动开发者工具箱中的一个重要部分,但是为各种类型的移动设备实现推通知是非常困难的。在宣布Amazon SNS支持推通知的博客帖子中,AWS团队介绍了移动开发者所面临的问题。
\\\实现推通知是非常棘手的,特别是在你想要支持iOS、Android和Kindle Fire等多种平台的情况下。许多客户的实现方式是直接集成Amazon、Apple和Google为它们的设备所提供的推转播服务。这些服务各自使用不同的、平台特定的API,并且你必须自己管理令牌的更新和失效这样的事情,还要处理用户升级他们的设备或者删除应用时的令牌反馈。此外,移动应用分布的性质是,成功的应用几乎能够一夜成名。快速地从零扩展到上百万的设备,每天发送数千万的通知是非常具有挑战性的。
\
为了克服这个挑战,AWS用一个移动推送特性扩展了他们的Amazon SNS服务,开发者能够通过一个单独的API向Amazon Kindle Fire、iOS和Android设备广播消息。该API在Amazon(通过ADM)、Google(通过GCM)和Apple(通过APNs)所提供的底层通知服务之上提供了一个抽象的接口。该服务不仅能够向每一个连接的设备(通过SNS主题)广播,还能把个人设备作为广播目标。开发者还能够通过该服务向每一种设备类型发送量身定制的平台特定的消息。为什么要扩展Amazon SNS而不是创建一个全新的服务呢?AWS 的CTO Werner Vogels在一篇博客文章中解释了这样做的原因。
\\\我们之所以选择增强Amazon SNS而不是构建一个单独的移动通知服务,是因为从设计Amazon SNS的第一天起我们的目的就是为了让它能够支持多种协议和推送方法(Email、SMS、SQS和HTTP等),并且现在每天都已经有数亿的通知通过这些推送方法向外发送了。
\通过利用AWS的规模和现有的SNS技术,我们能够为移动推送服务提供和为Amazon SNS所提供的一样的成本效益价格。
\
在典型的AWS模式中,文档和SDK都已经被更新到了和SNS新功能匹配的版本。
\Microsoft目前也正在移动通知领域大肆宣传它们自己的新Windows Azure通知中心。在今年1月份发布了预览版之后,开发者就已经能够利用通知中心服务向Windows 8、Windows Phone 8、iOS和Android设备发送推通知了。在AWS的公告中突出显示了Microsoft 副总裁Scott Guthrie对移动开发挑战所做出的回应。
\\\推通知是移动应用程序中的一个非常重要的组件。对移动应用程序的开发者而言这是他们可以利用的一种强大的用户参与机制。向一个移动用户发送一个推通知消息是相当简单直接的,同时使用Windows Azure移动服务也是非常容易办到的。但是在低延迟的情况下向数以百万的移动用户发送同步推通知,同时还要处理真实的需求(例如位置、多平台设备和用户个性化)是非常困难的。
\
通知中心支持平台特定的和局部的通知模板,订阅者能够很容易地在特定主题中设置兴趣“标记”。扩展是在Windows Azure管理门户中完成的,这需要定义“单元”的使用数量,每一个单元最多支持10万台设备。Microsoft已经更新了他们的文档,并且还为每一个支持的平台提供了设备SDK。
\AWS和Microsoft都把焦点放在了能够展示它们新平台的案例研究上。Werner Vogels解释了移动应用程序性能管理提供商Crittercism是如何采用SNS和移动推送服务的。
\\\开发者告诉我们,管理大规模的推通知让他们不能专心地构建优秀的应用。在某些情况下这项工作会复杂到让开发者难以为用户提供他们想要提供的内容。例如,Crittercism告诉我们随着用户的发展壮大,开发者及时地向6亿设备发送推通知的工作是非常繁重的,在过去他们宁愿选择停止提供推通知服务。现在,通过Amazon SNS他们能够再次向他们的用户发送推通知,并且能够在几秒钟之内将应用程序性能问题通知给数千万的用户。
\
Scott Guthrie也不甘示弱,他描述了Bing News应用是如何使用Windows Azure通知中心为每一个Windows 8设备提供服务的。
\\\Bing News应用需要立即通知用户,告诉他们相关的新闻。这可能是一个令人望而却步的任务,原因如下:
\
- 非常大的规模:每一个Windows 8用户都安装了News应用,在Bing后端每月需要向他们发送数以亿计的新闻通知\
- 基于主题的多路广播:基于每个用户的兴趣向不同的市场广播推通知,这需要有效的公共订阅路由和基于主题的多路广播逻辑\
- 跨平台推送:在不同的移动平台之间,通知的格式和语法变化多样,追踪通道和令牌在它们之间也非常复杂\
Windows Azure通知中心被证明非常适合于Bing News,在该应用做了最近的更新之后,它们现在已经在使用通知中心每天向成千上万的Windows和Windows Phone设备发送推通知了。
\
如何在这两个产品之间做出选择呢?下面这个简单的图标列出了一些关键的属性。
\\ Amazon SNS \ | \ Windows Azure \通知中心 \ | |
\ 支持的平台 \ | \ Amazon、iOS、Android \ | \ Windows 8、Windows Phone 8、iOS、Android \ |
\ 容量限制 \ | \ 每一个帐号能够拥有多达3000个主题,每一个主题最多能够有10000个订阅,因此有3千万个端点能够收到完全相同的消息。更多的可以通过直接寻址订阅。 \ | \ 每一个订阅可以扩展到2500个单元。等同于2.5亿的设备和每月数十亿的操作。 \ |
\ 消息定制 \ | \ 支持平台特定的模板 \ | \ 本地语言,能够配置设备特定的模板 \ |
\ 目标通知 \ | \ 可以直接寻址到目标个人设备,也可以使用主题将它们和一个特殊的兴趣域连接起来。 \ | \ “被标记的”消息会被发送到一个设备子集。也能够被发送到个人设备。不需要服务配置。 \ |
\ 监控能力 \ | \ 能够通过Amazon CloudWatch获取少数指标。 \ | \ 差不多有50个指标可以追踪通知和发送。 \ |
\ 价格 \ | \ 可以免费发送一百万移动通知(64Kb),高于一百万的每一百万0.5美元。 \ | \ 免费支持500个设备和每月100k的通知。更大的规模有基础和标准价格。 \ |
查看英文原文:AWS and Microsoft Release Dueling Mobile Notification Services