AWS 和 Microsoft 发布了竞争的移动通知服务

  • Richard Seroter
  • 孙镜涛

2013 年 9 月 1 日

话题:微软移动AWSWindows Azure语言 & 开发架构

几天之内,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

微软移动AWSWindows Azure语言 & 开发架构