评论:微软Azure击败亚马逊和谷歌的移动开发

Azure移动服务比Amazon的移动SDK更简单,比谷歌的Firebase更完整,它具备了开发者所需要的更多内容

在去年我检查了6个MBaaS(移动后端即服务)平台:FeedHenry,Kinvey,解析,AnyPresence,Appcelerator的Appery.io。我还简要地审查了相关平台MBaaS关键CFIBM Bluemix在我的那些的PaaS(平台即服务)产品的评论。所有这些MBaaS平台上的某种公共云中运行,有的可以在内部部署或混合云配置进行安装。

为了不被冷落,三大公共云服务已经开发或者购买自己的MBaaS平台。亚马逊开发的移动SDK与多个特定的移动服务,用各种方法,以配合移动应用进入其主流服务,如DynamoDB和S3一起。去年十月,谷歌收购了火力地堡,它提供了一个安全的,实时的,云托管的NoSQL数据库与REST API以及登录服务。微软Azure移动服务还包括非微软的服务组件,如Node.js的网络API和MongoDB存储,以及作为.NET,Active Directory和SQL Server的云服务,你所期望的。

亚马逊移动SDK

AWS移动SDK包括Cognito、移动分析和SNS推送通知。Amazon Cognito可以帮助你在多个设备、平台和应用程序之间安全地存储、管理和同步身份和数据。您可能还想使用DynamoDB, S3和其他亚马逊服务与您的移动应用程序;您也可以使用Cognito来管理这些凭证。通过将Cognito与本地存储同步,使用Cognito构建的应用程序可以离线工作。

Cognito用户配置文件数据以键值对的形式组织在多达1MB的数据集中。在调用synchronize方法之前,对数据集执行的读和写操作只影响本地存储。Amazon提供用户游戏状态作为Cognito数据集的用例。如果您需要存储和检索非用户相关的数据,那么Amazon DynamoDB、S3、MongoDB(例如在Amazon EC2实例中运行)或关系数据库,如MySQL或PostgreSQL(两者都可以作为Amazon RDS中的托管数据库服务使用)可能是更好的选择。Cognito可以通过为这些数据存储存储每个用户的凭证来提供帮助。

亚马逊目前拥有Android和iOS生产移动SDK,以及为统一开发者预览版。移动SDK的Xamarin可以用AWS实验室。

亚马逊移动分析是一种服务,让您收集和分析应用程序使用的数据。除了查看自己的总结,你可以从亚马逊红移设置您的使用情况数据到Amazon S3的自动导出到工作与其他数据分析工具或任何你喜欢。亚马逊移动分析的目的是处理和一个小时内导出您的应用程序事件的数据。

亚马逊SNS可以推送通知到苹果,谷歌,Fire OS, Windows设备,以及中国的Android设备(通过百度云推送)。

亚马逊认知同步演示iOS

图1所示。亚马逊的iOS认知同步演示演示了如何安全地管理和同步你的移动应用程序数据,并通过登录提供商创建独特的身份,包括Facebook,谷歌和登录亚马逊。注意CocoaPods的使用,它是一个基于ruby的Xcode项目依赖管理器,用于维护Amazon框架库代码。

我下载、安装、测试了用于iOS和Android的AWS Mobile和Cognito sdk和样本,并在亚马逊上配置了Cognito服务和身份池。所有这些花费的时间都比预期的要长,因为我发现文档和下载分散而混乱,尽管我再次阅读后发现文档是正确的,而且(几乎)完整到可以使用。我犯了一个又一个的错误——幸运的是,没有一个是致命的。这个过程让我想起了从宜家组装家具。

我最终能构建(图1),然后运行样品,然后我在正确的地方填写的凭证(适用于iOS,这是Constants.h)和无差错运行它们(图2)。我开始做这项工作的一个周四下午,周五的它用了一半,把周末休息,终于得到了一切准备星期一早晨。它会带我不到两个小时,现在我已经grokked它是如何工作的,并清除所有的错误,从我的系统。

亚马逊认知同步演示iOS

图2.在这里,我们看到在iPhone 6模拟器中运行的Xcode的iMac上的控制下,亚马逊Cognito同步演示适用于iOS。得到这个地步证明,在应用中Cognito凭据是正确的;下一步将是添加的登录凭据Facebook,谷歌,并登录亚马逊,以便用户可以验证身份。

我很惊讶有在此过程来更新我的iOS和Android工具,但意识到,我一直在使用基于云计算的移动建设者前一个月左右。确保你的工具是最新的之前如果您想避免更新它们可能导致的流程中断,可以开始使用移动sdk。

虽然AWS移动SDK做的事情列出来办,用它开发是不是新手,JavaScript程序员,或者微弱的心脏。有其他AWS sdk- 针对Java,.NET,PHP,Node.js的,和JavaScript的浏览器。The Cognito Sync Manager SDK for JavaScript, currently in developer preview, combines with the AWS JavaScript SDK for the browser to provide a reasonable set of APIs for mobile Web and mobile hybrid applications, but it hasn’t (yet) been tailored to any JavaScript frameworks and it’s not the simplest JavaScript API in the world, as you can see in the讨论如何使用它的博客文章

AWS的移动SDK可能是谁已经有亚马逊服务承诺本机应用程序开发人员提供了不错的选择。如果你想要一个易于学习和易于使用的MBaaS,看看其他地方。

谷歌火力地堡

谷歌火力地堡是一个实时的,云托管的NoSQL数据库,支持低延迟优化的REST API。也火力地堡有内置的身份验证几种类型的登录服务。火力地堡缺少你所期望的企业级MBaaS,如推送通知,并与记录系统的后端集成一些功能,但它支持其GeoFire库的位置查询。

为了安全,Firebase要求对所有数据传输使用具有2048位证书的SSL加密,提供粒度访问控制,并支持自定义身份验证方案。所有存储在Firebase中的数据都被复制和备份到多个安全位置,并且Firebase管理数百万并发连接和数十亿操作。

重火力点办公室发

图3.办公室捷运应用程序是围绕火力地堡建造一个协作绘图程序。

不幸的是,Firebase目前还在运行只要在自己的公共云和不提供的存储位置的选择。我看不到使用火力地堡的应用程序需要遵守HIPAA,PCI-DSS或FIPS标准,或用于数据需要存储在欧盟范围内。

火力地堡对所有主要的Web和移动客户端平台和绑定最流行的框架,再加上其他不受支持的平台的REST API库。它对于iOS和Android漂亮的快速入门指南,它通过支持库,这一切看起来不错用AngularJS集成,Ember.js,反应,Backbone.js的。它通过一个第三方库与聚合物整合。

火力迅速fig04

图4:基于firebase的iOS应用的Swift代码很容易理解。

火力地堡可以通过第三方库或它的REST API使用Ruby,Node.js的,Python和Java的,Clojure的,PHP和Perl服务器集成。你必须使用自己的服务器(或谷歌App引擎)您需要任何后端的整合,因为火力地堡本身没有提供任何数据库或应用程序的集成。

火力地堡提供有限的托管(1GB至10GB,这取决于你的计划),这将是你所需要的,比如说,一个ReactJS应用。托管是静态文件,并自动包括SSL加密和CDN的托管网站的地域分布。您管理您的火力地堡使用命令行站点管理工具承载您安装使用NPM,包管理器Node.js的

对于火力地堡支持Android的Java代码

图5。基于Firebase的Android应用程序的Java代码几乎和基于Firebase的iOS应用程序的Swift代码一样容易理解。

基于firebase的应用可以离线工作,因为本地存储充当云存储的缓存。当设备离线时,你可以正常使用Firebase api;一旦连接重新建立,应用程序将接收适当的事件集,以便客户端“赶上”当前服务器状态,而无需您编写任何自定义代码。

我经历了所有的火力地堡文档和教程去了几个小时。从那里,我下载了办公室捷运5000个样本(图3);看着为iOS(图4),机器人(图5),和Web(图6)的代码;并试图构建iOS和Android项目。我能更新我的一些Android的工具和框架后,成功地打造了Android Studio中基于摇篮,Android项目。我不能够建立基于SWIFT的iOS的项目,因为一些苹果UIKit的类具有指针成员;必要的变化似乎很小,但是。

一个Firebase Web应用程序的JavaScript代码

图6.普通的JavaScript代码用于火力地堡的Web应用程序也简单。

对于它的功能 - 实现低延迟的NoSQL存储和简单的登录服务 - 火力地堡是非常,非常好。然而,火力地堡缺乏许多企业MBaaS平台普遍预期的服务和部署选项。在夹钳,你可以使用谷歌应用程序引擎与谷歌云存储作为数据库,并建立服务器和应用程序的使用谷歌云端点框架REST API之间的接口。

微软Azure移动服务

当Windows Azure云中首次引入,它基本上所有的微软,所有的时间。所有的工具在Visual Studio中运行,并且所有的服务脱胎于Windows服务器,只要有足够的差异,虽然使用API​​是一个挑战之作。在创业初期,它可能需要多达半小时提供服务;现在,它通常需要不到一分钟。

InfoWorld的编辑选择奖

重命名的微软Azure仍然有大量的微软服务,但它已经不再仅仅一个面向Windows的系统。你想一个CoreOS VM?没问题。需要的MongoDB或Cloudant的NoSQL数据库?得到它了。尽管与微软的Azure在Visual Studio工具的整合比以往任何时候和支持Visual Studio在线好,我在使用Chrome浏览器,因为你会在截图看到确实在Mac OS X约塞米蒂我目前的评估。

微软Azure移动服务提供了一个全功能的MBaaS,在全球19个地区托管在Azure的公共云与数据中心。雷竞技电脑网站Azure的允许通过Azure和数据中心之间的连接混合混合云 - 到Azure的网站或移动服务连接到内部部署的SQL Server,例如,或者建立一个混合的HPC雷竞技电脑网站计算集群。Azure的支持多因素身份验证,并已用于监管行业的许多应用(如医疗保健和金融)和地区(比如欧洲)。

微软Azure移动服务

图7。您可以通过命令行管理Azure移动服务中的几乎所有内容,甚至在Mac或Linux机器上也是如此。您还可以使用PowerShell编写Azure移动服务的脚本。

微软Azure移动服务支持的iOS,安卓,Windows手机,Windows应用商店,Xamarin的iOS,Android的Xamarin,HTML,的PhoneGap,煎茶,和Appcelerator的客户。在后端,你可以举办一个.NET或Node.js的网络API提供全天候的监控和管理。不,你选择哪一个客户端和服务器技术的事情,你可以使用单点登录与Active Directory,Facebook,微博,和谷歌;发送推送通知到个人用户和动态细分受众群;存储在SQL,表存储,和MongoDB数据;访问本地系统,办公365,和SharePoint;和基于云的使用同步构建脱机工作的应用程序。

Azure和天青移动可以从一个命令行(图7)或Web控制台来管理。创建Azure的移动业务也产生了Azure的SQL Server数据库和推送通知移动枢纽。而如果你愿意,你可以使用现有的数据库,它应该是在同一区域的其他服务,以尽量减少军种间的等待时间。

Microsoft Azure SQL数据库

图8.您可以使用SQL Server驱动程序和客户端的任何授权系统管理的Azure的SQL数据库。此客户端是用Java编写的,并使用JDBC驱动程序。

一旦你创建了一个移动服务,天青提供了创建启动待办事项应用程序(图8)。其中一个在创建应用程序的步骤之一是为它创建一个SQL数据库表,你可以从自己的计算机,一旦你授权你的IP地址查看。那么容易,告诉你的IP地址,您目前使用并询问您是否要批准它用于管理Azure的品牌。请注意,我从开源的Java应用程序在浏览数据库(图9)在Mac上,SQL Server工具或Visual Studio的PC上。

有些人会产生严重变态反应使用SQL数据库作为移动后端,而不是一个的NoSQL数据库的想法。老实说,无论是做工精细,并且该SQL数据设计允许干净的版本跟踪和时间戳,这与解决冲突的帮助。

微软Azure移动服务

图9. Azure的移动服务团队取得了很容易的后端支持添加到现有的应用程序。

12 第1页
页面1的2
IT薪资调查:结果在