点评:微软Azure在移动开发方面击败了亚马逊和谷歌

比亚马逊的Mobile SDK更容易,比谷歌的火力地堡更完整,Azure的移动业务有更多的开发者有什么需要

去年,我回顾了6个MBaaS(移动后端即服务)平台:FeedHenryKinvey解析AnyPresenceAppcelerator的,Appery.io。我还简要地研究了与之相关的MBaaS平台关键的CFIBM Bluemix在我对那些PaaS(平台即服务)产品的评论中。所有这些MBaaS平台都运行在某种公共云上,其中一些可以安装在本地或混合云配置中。

另外,三大公共云服务也已经开发或购买了自己的MBaaS平台。Amazon开发了带有多种特定于移动设备的服务的移动SDK,以及将移动应用与DynamoDB和S3等主流服务绑定的方法。去年10月,谷歌收购了Firebase,后者提供了一个安全的、实时的、云托管的NoSQL数据库,以及一个REST API和登录服务。微软Azure移动服务还包括非微软服务组件,如Node.js Web API和MongoDB存储,以及。net、Active Directory和SQL Server云服务。

亚马逊移动SDK

AWS的移动SDK包括Cognito,移动分析和SNS推送通知。亚马逊Cognito帮助您安全地存储,管理和跨多种设备,平台和应用程序同步身份和数据。您也可以使用DynamoDB,S3和其他Amazon的服务与您的移动应用程序;您可以使用Cognito来管理这些证书也是如此。应用与Cognito脱机工作建立与本地存储同步Cognito。

Cognito用户配置文件数据在数据集以键值对的形式高达1MB的数据的组织。直到同步方法被调用,对数据集进行读取和写入操作只影响本地存储。亚马逊为用户提供游戏状态的使用情况Cognito数据集。如果你需要存储和检索非用户相关的数据,那么亚马逊DynamoDB,S3,MongoDB的(在Amazon EC2实例上运行,例如),或关系数据库如MySQL或PostgreSQL(两者可作为管理数据库服务亚马逊RDS)可能是更好的选择。Cognito可以通过存储这些数据存储在每个用户的凭据帮助。

亚马逊目前已经为Android和iOS开发了移动sdk,以及Unity的开发者预览版。在AWS实验室中有一个针对Xamarin的移动SDK。

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

亚马逊SNS可以推动中国的通知,苹果,谷歌,消防OS和Windows设备,以及Android设备(与百度云推送)。

亚马逊Cognito同步演示的iOS

图1.亚马逊Cognito同步演示的iOS展示了如何安全地管理和同步您的移动应用数据,并通过登录提供商,包括Facebook,谷歌和登录亚马逊创造出独特的身份。注意使用的CocoaPods的,为的Xcode项目基于Ruby的依赖管理,维护亚马逊框架库代码。

我下载,安装并测试了AWS移动和Cognito SDK和样品iOS和Android,以及配置Cognito服务和亚马逊的身份池。所有这一切都需要较长的时间比它应该有,因为我发现的文件和分散和混乱的下载,虽然读再我发现文档是正确的,(几乎)完全足够使用。我接连犯了一个错误 - 幸运的是,他们都不是致命的。该过程让我想起了宜家组装家具。

我最终能够构建(图1)和运行样本,然后填写我的凭证在正确的位置(iOS, Constants.h)和运行它们没有错误(图2)。我开始在这周四下午,花了一半的周五,周末了,终于一切都周一早上。现在,我已经了解了它的工作原理,并从我的系统中清除了所有的错误,这只需要不到两个小时。

亚马逊Cognito同步演示的iOS

图2。这里我们看到了在iMac上的Xcode控制下,在iPhone 6模拟器上运行的亚马逊认知同步演示。这么做证明了应用程序中的认知认证是正确的;下一步是为Facebook、谷歌添加登录凭据,并使用Amazon登录,以便用户能够验证身份。

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

虽然AWS移动SDK完成了它的任务,但使用它进行开发并不适合初学者、JavaScript程序员或胆小的人。有其他AWS软件开发工具包——用于Java、。net、PHP、Node。和用于浏览器的JavaScript。Cognito同步管理器为JavaScript SDK,目前在开发者预览版中,结合浏览器的JavaScript AWS SDK提供一套合理的移动网络和移动混合应用程序的API,但是它没有(还)是适合任何JavaScript框架,它不是世界上最简单的JavaScript API,你可以看到的博客贴子,讨论如何使用它

对于已经接受了Amazon服务的本地应用程序开发人员来说,AWS移动SDK可能是一个不错的选择。如果您想要一个易于学习和使用的MBaaS,请查看其他地方。

谷歌重火力点

谷歌Firebase是一个实时的、云托管的NoSQL数据库,带有一个为低延迟而优化的REST API。Firebase还有一个带有几种内置身份验证类型的登录服务。Firebase缺少一些您在企业级MBaaS中所期望的特性,比如推送通知和与记录系统的后端集成,但是它通过GeoFire库支持位置查询。

出于安全考虑,火力地堡,需要对所有数据传输2048位证书,可提供细粒度的访问控制,并支持自定义的身份验证方案SSL加密。存储在火力地堡的所有数据被复制并备份到多个安全位置,并且火力地堡管理上百万并发连接数十亿操作的。

火力地堡办公室捷运

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

可悲的是,火力地堡目前运行只有在它自己的公共云中,不提供存储位置的选择。我不能将Firebase用于需要遵守HIPAA、PCI-DSS或FIPS标准的应用程序,也不能用于需要存储在欧盟内的数据。

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

重火力点迅速fig04

图4:用于火力地堡支持iOS应用的SWIFT代码是容易理解的。

Firebase可以与Ruby、Node集成。通过第三方库或其REST API实现js、Python、Java、Clojure、PHP和Perl服务器。对于需要的任何后端集成,您必须使用自己的服务器(或谷歌应用程序引擎),因为Firebase本身不提供数据库或应用程序集成。

Firebase提供有限的托管空间(1GB到10GB,取决于你的计划),这将是你所需要的,比如说,一个ReactJS应用。托管空间用于静态文件,并自动包含托管站点的SSL加密和CDN地理分布。您可以使用命令行站点管理工具来管理您的Firebase托管,这些工具是用npm安装的,也就是Node.js的包管理器。

基于firebase的Android的Java代码

图5.一个火力地堡支持Android应用程序的Java代码几乎是一样容易理解,作为一个火力地堡iOS应用的SWIFT CODE。

火力地堡供电的应用程序脱机工作,作为本地存储充当云存储中的高速缓存。您可以使用火力地堡原料药通常当设备处于脱机状态;一旦重新建立连接,应用程序将收到相应的事件集,使得客户端“赶上”与当前服务器的状态,无需您编写任何自定义代码。

我在几个小时内浏览了所有Firebase文档和教程。从那里,我下载了Office Mover 5000示例(图3);查看iOS(图4)、Android(图5)和Web(图6)的代码;并尝试为iOS和Android开发项目。在更新了一些Android工具和框架后,我成功地使用Android Studio构建了基于gradle的Android项目。我没能像苹果的一些产品一样,创建基于swift的iOS项目UIKit类有指针成员;然而,必要的改变似乎很小。

对于火力地堡的Web应用程序的JavaScript代码

图6。基于Firebase的Web应用程序的普通JavaScript代码也很简单。

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

微软Azure移动服务

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

信息世界编辑器的选择

重新命名的微软Azure仍然有大量的微软服务,但它不再是一个专门面向windows的系统。你想要CoreOS虚拟机吗?没有问题。需要一个MongoDB或云的NoSQL数据库?明白了。尽管Visual Studio工具与Microsoft Azure的集成比以往任何时候都好,并且支持Visual Studio Online,但我还是用Chrome浏览器对Mac OS X Yosemite进行了评估,正如你将在屏幕截图中看到的那样。

微软Azure移动服务提供了一个全功能的MBaaS,托管在Azure公共云上,数据中心分布在全球19个地区。2020欧洲杯预赛Azure允许通过Azure和数据中心之间的混合连接实现混合云——例如,将Azure网站或移动服务连接到本地SQL服务器,或者设置混合HPC计算集群。2020欧洲杯预赛Azure支持多因素身份验证,并已被用于受管制行业(如医疗保健和金融)和地区(如欧盟)的许多应用程序。

微软Azure移动服务

图7.您可以通过命令行的Azure的移动业务管理几乎一切,甚至在Mac或Linux中。您也可以编写脚本使用PowerShell中Azure的移动服务。

微软Azure移动服务支持iOS、Android、Windows Phone、Windows Store、Xamarin iOS、Xamarin Android、HTML、PhoneGap、Sencha和Appcelerator客户端。在后端,您可以托管一个. net或Node.js Web API, 24/7的监视和管理。无论您选择哪种客户端和服务器技术,您都可以使用Active Directory、Facebook、Twitter和谷歌的单点登录;向个别用户和动态受众细分发送推送通知;使用SQL、表存储和MongoDB存储数据;访问内部系统、Office 365和SharePoint;并使用基于云的同步来创建离线工作的应用程序。

Azure和Azure Mobile可以通过命令行(图7)或Web控制台进行管理。创建Azure移动服务还会生成Azure SQL Server数据库和用于推送通知的移动中心。如果愿意,您可以使用现有的数据库,但它应该与其他服务位于同一区域,以最小化服务间的延迟。

微软Azure SQL数据库

图8。您可以使用SQL服务器驱动程序和客户端从任何经过授权的系统管理Azure SQL数据库。这个客户机是用Java编写的,使用JDBC驱动程序。

一旦您创建了一个移动服务,Azure将提供创建一个starter to-do应用程序(图8)。创建该应用程序的一个步骤是为它创建一个SQL数据库表,一旦您授权了自己的IP地址,您就可以在自己的计算机上查看该表。Azure通过告诉您当前正在使用的IP地址,并询问您是否要授权它进行管理,从而使这一点变得简单。请注意,我正在从一个Mac上的开源Java应用程序浏览数据库(图9),PC上的SQL Server工具或Visual Studio。

有些人会对使用SQL数据库而不是NoSQL数据库作为移动后端的想法产生不良反应。坦白地说,两者都可以很好地工作,而且这种SQL数据设计允许清晰的版本跟踪和时间戳,这有助于解决冲突。

微软Azure移动服务

图9。Azure移动服务团队使得向现有应用程序添加后端支持变得很容易。

12 第1页
第1页共2页
工资调查:结果是