从手持设备到基于服务器的数据,使用MBaaS或BaaS开发端到端的移动计算体验、应用和服务是快速并且安全的。
不久前,专为移动设备(智能手机,平板电脑或可穿戴设备)而设计的应用还被认为是一种自主的体验,这样的体验和Web或桌面应用不同,通常两者是松耦合不太相关的关系。这种互相孤立的理念在一定程度上是由当时技术上的限制所决定的,并形成了在隔绝的环境中开发单独的移动应用的做法,使用的工具——以及开发人员——也只专注在移动体验上。
时代已经改变。移动应用不再仅仅存在于隔离的环境中。如今,可能略微有些自相矛盾,移动体验在突飞猛进的同时,也开始融入到整个云的体系里。虽然移动领域已经成为无可争议的用户交互的卓越渠道,但它的开发反而不再是过去那样的完全独立的工作了。
正是因为移动开发开始融入到整个应用的创建过程中,长期以来的MBaaS(移动后端即服务)已经不再受欢迎,取而代之的是BaaS平台,后者更宽泛地涵盖了后端即服务。无论你怎么称呼它,为移动应用选择合适的开发平台比以往更加重要。供应商越来越多地用BaaS的名字来描述他们的产品,不再强调MBaaS这一术语,而仅仅将其保留在他们的营销材料中。我们将专注于BaaS。
为了更好地匹配技术能力和业务需求,我们必须了解技术,理解它的工作原理,调研关键特性,并将其全部组合在一起,从而做出明智的选择。
MBaaS技术解析BaaS平台是一个具有两个组件的云开发架构。第一个组件是开发数字化移动体验的前端。它为开发人员提供了创建应用程序所需的工具和架构,这些应用程序是为各种屏幕大小、外形尺寸和操作系统而设计的。第二个组件是管理和操作服务的后端。它为移动计算和通信设备提供了中央化的方式——通常是通过API——来访问服务器、存储、数据库、处理逻辑和其他资源,这些应用程序需要以安全的方式进行互操作,并且和大型云环境的其他特性集成。
“BaaS实际上是一种中间件,开发人员使用这些中间件将各种移动设备类型和运行在云基础设施或本地的后台服务器上的服务和存储连接起来。”云咨询公司Hurwitz&Associates LLC总裁兼首席执行官Judith Hurwitz表示,“如今,你希望通过API的力量来构建这些连接。”
移动应用开发的一个明显的挑战是处理看似无穷无尽的目标设备和操作系统。 BaaS平台开发环境需要支持多种操作系统 ——Android,iOS和Windows 10 Mobile ——而这仅仅是个开始。在各自为政的Android世界中,设备制造商按照自己的时间表发布操作系统的更新,尽管Lollipop(v 5.x; 2014年11月),Marshmallow(v 6.x; 2015年10月)和 Nougat(v 7.x; 2016年8月)更新一些,但安装最广泛的版本仍然是KitKat(4.4版,2013年10月发布)。在受严格控制的iOS世界中情况并不是这样,根据苹果公司自己的数据,目前79%的设备正在使用这一代的iOS 10.x。苹果还在运行着BlackBerry 10操作系统的BlackBerry设备中添加了WatchOS。
除了操作系统的混杂之外,BaaS平台需要让开发者有能力为真实的屏幕像素的分辨率和物理尺寸构建用户体验。在Apple的产品中,iPhone屏幕像素的分辨率涵盖了一个很大的范围,包括640×960(iPhone 4)、640×1136(iPhone 5)、750 x 1334(iPhone 6和7)和1080 x 1920(iPhone 6 Plus和7 Plus)。不同的iPad分辨率也需要支持:760 x 1024、1536 x 2048和2048 x 2732。安卓手机和平板电脑也具有同样令人困惑的分辨率问题。
BaaS如何工作BaaS被实现为一组工具,通过结合使用软件开发工具包(SDK)、API和可重用代码库,将移动应用与数据库,服务器和其他应用和服务连接起来。通过在移动设备和其他应用和服务之间进行交互,BaaS充当了一个能够管理所有手机的后端连接的中介,这样开发人员就可以实现最佳的用户体验。集成的实现可以通过使用REST API和接口与JSON结合的方式进行数据交换和应用集成。
所需的特性架构选项不是特性,但是BaaS平台本身的设计上,存在两种非常不同的实现方法。
首先,BaaS平台及其所有的组成部分都集成到大型云平台供应商所提供的云服务中。由Amazon Web Services,Google Cloud Platform,IBM Bluemix和Microsoft Azure提供的综合BaaS环境,旨在将移动应用程序的开发工具集成到他们的云操作平台中。其思想是开发和测试可以轻松带来自动化的持续部署和持续的运维操作。
另外,一些BaaS平台供应商将自己的工具作为独立实体提供,与云平台或其所在的本地数据中心分开。他们的观点是,这些开发套件的独立性使它们具有高度的可配置性,并且更适合单独业务的独特需求。独立的BaaS平台是那些不接受公有云的企业的唯一选择,他们可以将其安装在自己的内部基础设施上。Forrester的应用程序开发和交付专业的首席分析师Michael Facemire强调,“全合一”和“自己动手”的方法同样有效。这是哪种方式更适合企业IT哲学的问题。
以下是选择BaaS平台时需要考虑的一些特性:
在云时代,几乎没有例外,每个应用都是移动应用。为了满足用户的移动体验,该应用必须具有吸引人的外观,使用方便,易于导航,并且无滞后时间响应。与驻留在云上或者本地服务器上的数据库的事务和交互必须是安全的,并且与桌面和Web应用的非移动体验同步。
实现这些需求需要构建一个移动应用程序,并且能够为不同的设备类型、多个操作系统和各种屏幕分辨率提供原生支持的接口。另一个需求是构建与私有以及第三方数据,以及由IT开发的,或者通过软件即服务订阅方式进行访问的应用和工作负载的集成。最后,需要管理这些流程的工具,以协助部署和提供性能监控。
MBaaS或BaaS平台是能够提供广泛工具的保护伞技术,让开发者能够创造出移动体验。