移动应用开发人员不必再孤军奋斗了。早期的移动应用开发人员对于开发工具和开发框架的选择范围非常有限。今天,后端即服务(BaaS)平台已经能够简化常用功能的开发工作,如用户管理、存储和安全等。
在很多方面,BaaS是针对移动设备的一个PaaS的特殊形式。
虽然DIY客户应用开发存在着一定的优势,但是BaaS产品不断增加的功能和不断扩大的供应商范围正在让后端即服务成为一种***吸引力的替代解决方案。
开发人员可以在不断增多的后端即服务专家供应商中进行选择——包括AnyPresence、Appcelerator、Appery、Parse、 Kinvey以及StackMob等——或者建立基础设施即服务(IaaS)和平台即服务(PaaS)供应商,如谷歌公司或微软公司等。
后端即服务供应商因应用类型的不同而体现出服务的差异性;其中一些以企业应用开发人员为目标,而另一些则以消费应用为目标。一些BaaS供应商只提供后端服务,而另一些也提供接口工具。即使已经拥有了这些良好定义的差异性,BaaS供应商也还是分享了一组通用的服务。
针对企业开发人员的后端即服务
以企业开发人员为目标的BaaS供应商已扩展了包括在移动后端平台内的功能和服务范围。其中包括了对用户接口测试、企业应用商店集成以及客户服务器 端脚本程序的支持。Appery公司的开发工具包括一个可视化的拖拽工具,该工具可与jQuery Mobile和 HTML5一起用于开发接口。
对于企业移动应用而言,应用集成也是非常重要的。例如,Kinvey公司的BaaS就包括了数据链接,一个基于REST的wrapper数据库应用编程接口可让开发人员查询和更新内部部署或基于云计算的数据存储。
一些供应商正在精简与PaaS服务的整合。例如,AnyPresence公司可让开发人员从Heroku附件中选择后端应用。而StackMob公司则提供了完全专用的集群,并在其企业级服务规划中提供对公共云计算和私有云计算的支持。
一个用于移动设备的PaaS?
在很多方面,BaaS是针对移动设备的一个PaaS的特殊形式。一些对PaaS存在的常见关注问题也同样适用于BaaS:例如,移动开发人员可以名正言顺地关注受制于供应商的问题。一些BaaS供应商提出了解决方法,即为开发人员提供可在BaaS平台、或IaaS云计算或甚至企业管理的基础设施上运行的代码。
这样一来,如果供应商倒闭关门,虽然在你自己的服务器上运行由BaaS供应商提供的代码所带来的影响会有所减轻,但是这也要求由开发人员部署所有移动应用所 需的后端服务。它还要求开发人员思考后端服务的架构。开发人员可能会对部署企业应用的员工人数有一个很好的想法,但是预测消费者应用对服务器的负载将是更 为困难的,而且其中可能充满了变数。如果你关注受制于供应商的问题,并将在你自己的服务器上部署BaaS供应商提供的代码,那么你应思考可扩展性问题。
一个只支持两个主操作系统平台(即苹果公司的iOS和谷歌公司的Android)的BaaS可能已足以满足以消费者应用为目标的开发人员的需求了,但是它并不符合企业开发人员要求支持Windows或黑莓平台的需求。
应用集成仍然至关重要
移动应用之间并不是互为孤岛的关系。他们都存在于一个由开发人员开发和应用管理员维护的应用生态系统中。软件开发人员已拥有的工具集中包括了集成开 发环境和版本控制系统。与这些相关工具的集成可以有助于进一步简化移动应用的开发。Appcelerator的Titanium Studio就应用了这个原则,这是一个基于Eclipse的集成设备电路(IDE,认为这里原文有误,应为集成开发环境)。
一旦部署了应用,那么你必须监控和收集与应用使用相关的统计数据。分析工具是BaaS供应商都会提供的标配。例如Parse的分析组件就包含了对度量应用使用率、分析推广效果以及测量自定义指标的支持。
BaaS中的存储与管理功能
存储服务是BaaS中的重要组成部分,因为移动设备是依赖于访问云计算中数据与文档的能力的。在BaaS供应商中,具有较少方案的NoSQL数据存 储是比较常见的,但是很多供应商还支持文件存储服务。如果你的应用支持文件管理,可咨询你的BaaS是否支持文本搜索服务。对象存储服务应为被存储对象的 元数据提供搜索服务。
用户管理则是BaaS供应商所提供的另一个核心服务内容。一般而言,其功能包括对分析、个性化以及访问控制等功能的支持。对于要求细粒度访问控制、支持组权限、先进身份验证功能的企业应用来说,后者是尤为重要的,如Active Directory集成。