【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

走向开放式移动应用开发平台之路

  • 2018-07-23
  • 本文字数:3886 字

    阅读完需:约 13 分钟

关键要点

  • 移动应用程序开发平台支持多种部署选项——原生、混合和 Web。
  • 开发人员可以将前端和 MBaaS 基础设施分开。
  • MADP 通过使用云服务和低代码开发方法来实现任务自动化。
  • 使用开源 MADP 平台来避免被厂商锁定。

现在的商业领袖正全力以赴地通过移动技术改造他们的组织。外包应用开发专家 Contract IQ 最近发布的 2017 年企业移动应用报告显示,“企业对定制应用开发的需求已经从 2014 年的 23%增加到 2015 年的 29%,以及到 2016 年的 32%” 。

移动技术可以从多个方面帮助推动业务发展——从销售和业务流程到现场服务和客户满意度。为了满足这种飙升的需求,开发人员需要提供可以在各种设备、操作系统、框架和运行时上运行的应用程序。

本文将说明开放式开发基础设施是在快速和动态的市场中提升业务敏捷性的关键。

MADP 的价值

随着企业采用了越来越复杂的应用程序,从移动 CRM 和离线现场服务交付到车辆动态控制和集成飞行应用程序,全栈的移动应用程序开发平台(MADP)可以减轻移动开发和维护的负担。更重要的是,它有助于扩展无数的应用程序和后端集成,以便更好地支持移动工作人员并将他们连接到企业网络。

MADP 可以帮助企业快速构建、测试和部署智能手机和平板电脑的移动应用程序。它可以最大限度地减少编码需求,集成构建块服务,例如用户管理、数据管理和推送通知,以及在各种移动设备上交付应用程序。它提供了一种通用且一致的方法,因此开发人员可以自定义他们的应用程序,而无需担心后端系统或实现细节。

根据 Forrester Research 首席分析师 Michael Facemire 对移动开发平台的分析,公司可以分为两大阵营:“一部分选择了全包平台”,他们代表了现今在平台支出方面最多但结果却不尽如人意的部分,以及“另一部分选择了自己管理一系列服务“。

第一组用户与大型的基础设施厂商合作,例如 IBM、Oracle 和 SAP,他们为移动应用程序的开发、交付和管理提供了完整的环境。他们从平台稳定性和定制能力中获得好处,但与其他平台相比,在他们的私有生态系统之外构建移动应用时可能会遇到困难。

第二组用户更愿意自己管理一系列服务,用以支持自己的移动计划。这些服务驱动的解决方案,加上亚马逊和微软这些厂商,要求企业组建由大量熟练的开发人员组成的大型团队,以便快速交付大规模的移动应用程序。但是,它们可能更灵活,并且可以更轻松地自定义最终应用程序,以便更好地满足特定需求。

虽然两者都可以从 MADP 中受益,但只有基于开放和标准技术的平台才能在私有生态系统之外构建移动应用。

提升移动性

在企业内部搭建移动基础设施可能会占用大量时间和资源。移动应用必须提供可在各种设备上运行的用户界面,包括智能手机、平板电脑、笔记本电脑、上网本——甚至汽车仪表盘。

开发企业级移动应用程序需要处理以下问题:

  • 与数据连接:移动工作人员希望实时访问各种数据源,如客户关系管理(CRM)、企业资源规划(ERP)、财务和人力资源。但是,创建可绑定到这些后端基础设施的移动应用程序可能会占用大量资源并且非常耗时。
  • 支持多个平台:每个移动平台都有自己的展示信息、布局屏幕和实现导航的方式。要开发跨平台的移动应用程序,需要致力于创建可在多个操作系统上运行的单个代码库。
  • 构建服务:移动应用程序使用了托管在集中式服务器栈上的核心服务。这些服务涵盖了多个方面,从数据管理和推送通知,到社交媒体集成和分析。为了提高生产力,在多个应用程序项目中重用这些构建块服务是有意义的。
  • 同步脱机数据:在离线场景下,需要强大的同步服务,这样移动用户就可以在网络不可用时处理本地数据,然后在网络恢复时将数据同步到后端系统。
  • 控制数据访问:当移动工作人员从个人或公司设备上访问公司资产时,用户身份管理变得至关重要。连接到网络的个人设备容易受到安全漏洞的攻击,所以需要集成与企业目录相关联的用户身份验证机制,例如 LDAP 和 Active Directory。
  • 管理安全性:保护好静止存储的数据或在移动设备和服务器之间传输的数据,需要对公司记录(如密码、支付信息和其他应被视为隐私的数据)进行加密。

开放你的平台

那么,应该如何选择企业级的 MADP 厂商?

在选择开发方法时需要考虑到预算、项目时间、目标受众和应用程序功能。更具体地说,可以支持多种部署选项的平台——原生、混合和 Web——将提供最大的灵活性:

  • 原生应用程序可以保证能够访问目标设备的每个功能,例如消息传递、GPS、相机、推送通知、图像捕获分配、条形码扫描等。它们在 B2C 环境中表现出色。
  • 混合应用程序通常运行在 B2B 环境中的个人和公司的设备上。它们不需要使用专门的开发语言:开发人员只需将应用程序的核心部分编写成 HTML5 或 JavaScript 代码,然后在外面包上一层原生包装器。混合应用可以重用更多的代码,开发人员可以用更少的时间和成本开发跨平台的应用。
  • 渐进式 Web 应用程序是常规的网页或网站,它们的行为看起来与原生移动应用程序类似。开发人员可以直接在 Web 服务器上更新它们,而无需将更新提交到应用商店。

自动化开发

移动应用程序开发平台(MADP)致力于交付更具可扩展性的基础设施后端,并确保更高的前端开发效率。低代码(low-code)MADP,例如 OutSystems Convertigo ,只需要很少代码甚至不需要编码即可开发出移动应用程序,这样开发人员就不需要掌握复杂的代码。

通常,可视化开发环境让开发人员通过拖放内容和服务来构建移动应用程序。



移动后端即服务(MBaaS)还提供了核心服务,例如数据存储、推送通知、地理位置以及用户身份验证和管理。

“通过 MBaaS/MADP 技术,我们能够简化和优化移动应用程序的开发”,来自 CGI IT 和业务咨询的移动开发执行官 Adrien Loire 在一次对话中说道,“我们使用这种全栈方式来管理移动开发,从业务线应用程序连接和安全控制,到管理离线数据,再到创建多平台用户界面“。

为了实现更快、更高效的开发周期,建议对 MADP 采用以下做法。

  • 解耦前端和 MBaaS

移动应用程序实际上是由两个应用程序组成的:一个是用户驱动的前端流程集合,一个是后端遗留应用程序流程。

在企业中,应用程序的使用场景可以变化多端,以至于单个前端开发工具无法解决所有问题。这意味着 MADP 必须向其他前端框架和工具开放后端和集成服务,以便更好地适应特定的使用场景。

遗留系统也会随着时间的推移而演化。因此,移动应用程序必须易于维护。灵活的移动平台可以帮助提高生产力并降低出错的风险。

  • 符合标准

遵守标准可以降低风险和潜在的隐藏成本,从而保护你的投入。为了跟上市场变化并促进与第三方产品的互操作性,MADP 使用的技术应该是符合标准并广为人知的,它们可能已经被数百万开发人员部署和使用过,如 HTML5、JavaScript、TypeScript、Angular、Apache Cordova 或 Node.js。这就是为什么在选择 MADP 时,最重要的是要看看它们的架构是否可以支持这些标准。

  • 利用云

移动应用程序是云服务的理想候选者。它们有助于适应不断变化的移动设备市场。我们可以期待 MADP 能够运行在云端,这样就可以从新技术中受益,例如容器化(Docker)和弹性扩展(Kubernetes)。

云 MBaaS 解决方案还提供了开箱即用的功能,可以减少开发和配置任务,例如在服务器上为 Android 和 iOS 配置多个推送通知。

更重要的是,这些云基础设施可以减少繁琐的任务,如配置、部署和操作服务器和移动应用基础设施。

  • 促进 API 访问

MBaaS 平台需要与企业的遗留环境集成——包括 ERP 或 CRM 系统数据库、实时 RSS 源,甚至是管理帐户和身份验证的目录。

管理连接到这些后端资源的 API 可以极大简化跨多个平台的开发工作。

移动应用程序需要连接器来访问企业数据和服务,以实现脱机支持、网络连接和安全性。这样就不需要在开发应用程序时购买额外的后端基础设施组件来提供网络连接、同步数据、验证用户等。

  • 考虑开源

移动行业发展迅速。 Gartner 的数据显示,2016 年全球智能手机销量总计达 15 亿台。新的需求和机遇以惊人的速度出现。例如,移动解决方案可能会在几周内引入新功能,或支持新的工作流,或带来更好的用户体验。

来自 CGI 的 Loire 表示,“为此,我们选择了一个开放、商业化——同时也是开源的 MADP 平台”。一个关键动机是只有开源的全栈式 MADP 才能避免厂商锁定。

这样的平台应该为客户提供广泛的应用部署选项。例如,如果你的企业正面临严格的合规要求,它们就应该提高包括公有云、私有云和混合云部署以及内部部署在内的解决方案。

开源的 MADP 平台,例如由我担任首席执行官的公司开发的 Convertigo Mobility 平台,可以帮助你们获得项目所需的加速度和灵活性。与私有的 MADP 不同,开源的全栈式 MADP——不仅仅是特定模块——可以降低被锁定在生态系统中、厂商可能会删除对某些服务的支持或提高定价的风险。你的开发人员可以使用他们首选的前端设计和开发工具,从而能够充分利用他们的专业技能。

更重要的是,开源的 MADP/MBaaS 平台的代码可以公开访问。这意味着大量的社区用户和开发人员可以共享信息,解决问题,并让你从持续的增强和升级中受益。

这样我们就有机会使用和定制适合公司特定需求的应用程序,并确保未来的演化能力。

关于作者

Olivier Picciotto 是 Convertigo 的联合创始人兼首席执行官,专注于为企业构建开源的数字化平台。Olivier 曾担任 Twinsoft 的首席执行官兼联合创始人,专注于企业软件,将遗留应用程序集成到基于 Web 的门户中。Olivier 经常在大会上发表演讲,并且在企业中间件软件行业拥有强大的背景,他为 ATOS 工作期间建立并管理了产品开发团队。

查看英文原文 Your Roadmap to an Open Mobile Application Development Strategy

2018-07-23 18:081743
用户头像

发布了 731 篇内容, 共 433.7 次阅读, 收获喜欢 1997 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

训练营第四周作业 1

仲夏

极客大学架构师训练营

架构师作业 - 第四周 - 一个典型的大型互联网应用系统使用了哪些技术方案和手段

袭望

DDIA读书笔记(1)可靠性,可扩展性,可维护性

莫黎

读书笔记

区块链助力政府建设高效政务能力

CECBC

区块链 政务

架构师训练营-week04-作业1

lucian

极客大学架构师训练营

理解分布式一致性:Raft协议

程序那些事

分布式 raft 分布式一致性 raft协议

理解分布式一致性:Paxos协议之Basic Paxos

程序那些事

raft PAXOS raft协议 paxos协议 Basic paxos

视读——沟通的艺术,看入人里,看出人外(第四章)

废材姑娘

架构师训练营 1 期 -- 第四周作业

曾彪彪

极客大学架构师训练营

week04作业

龙卷风

架构师一期

架构师训练营第 1 期 - 第四周总结

Todd-Lee

极客大学架构师训练营

用Python绘制地理图

计算机与AI

Python 绘图

大型互联网应用面对的挑战及应对方案和手段

张荣召

为什么说 Python 内置函数并不是万能的?

Python猫

Python

区块链行业发展的“忧与愁”

CECBC

区块链 互联网

架构师训练营第四周作业

吴传禹

极客大学架构师训练营

Spring 事务,你真的用对了吗(上篇)?

废材姑娘

Spring MVC

B站真题:如何判断括号是否有效?

王磊

Java 数据结构 算法

极客时间架构师培训 1 期 - 第 4 周作业

Kaven

week04总结

龙卷风

架构师一期

架构师训练营第 1 期 - 第四周作业提交

Todd-Lee

极客大学架构师训练营

架构师训练营 1 期 -- 第四周总结

曾彪彪

极客大学架构师训练营

LeetCode题解:22. 括号生成,递归生成同时过滤,JavaScript,详细注释

Lee Chen

大前端 LeetCode

WEEK4 一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述

陈勇

会用Docker的人都别装了,这多简单呐

MySQL从删库到跑路

MySQL Docker Linux yum redhat

系统架构:系统技术挑战与方案

张荣召

互联网架构演化

张荣召

聊聊「测试分工和测试时间」

清菡软件测试

测试

WEEK4 学习总结

陈勇

极客大学架构师训练营

训练营第四周作业 2

仲夏

极客大学架构师训练营

Paxos 的变种(一):Multi-Paxos 是如何劝退大家去选择 Raft 的

多颗糖

分布式 架构师 分布式架构 分布式一致性

走向开放式移动应用开发平台之路_开源_Olivier Picciotto_InfoQ精选文章