移动云应用的开发与管理

简介:

云计算与移动性这两大技术的交叉必然是炙热异常的,而这也是应用程序开发人员和规划人员所面临的一大挑战。因为移动应用程序更具自发性和个性化,所以它们成为了云计算支持的最合适候选者,但是让移动云应用从一开始就在正确的方向上发展是非常重要的。为了做到这一点,就要从基于工作流的应用程序深度管理开始,以系统的方法引入BYOD支持,使用应用程序生命周期管理(ALM)来统一应用程序的发布。

移动云应用的开发与管理

移动用户是所有用户最具地域多元化的用户,而这一多样性也同时为云计算带来了机会和挑战。云计算允许开发人员把应用程序支持部署在与移动用户相同的广泛地域中,但是如果缺乏正确的管理,这也会为成本和性能带来不利的影响。

移动云应用开发中最显著的问题是如何把握将应用程序扩展至所谓的“自然分布”。就如同有着一定静态数据内容的网站主机一样,它们可以被很容易且低价地复制以提高性能。在云计算中,可以在用户较为集中的位置部署站点以供本地应用程序访问。但是,如果应用程序是依赖于托管在企业数据中心中的数据(有可能是出于安全性或成本管理方面的考虑)的,那么所有的应用程序最终将不得不返回数据中心以获取信息。

为了平衡成本性能与集中化数据存储处理两方面的关系,应试图抽取应用程序工作流程以说明用户是如何与应用程序进行交互并访问集中处理存储的企业信息的。一般而言,应用程序与用户的交互分为包含选择表现形式的一系列阶段,如收集信息、处理信息和返回结果。在云计算中的关键阶段是“处理”阶段,因为这是云计算外包最难以为应用程序进行定价、提升性能和遵守合规性的所在。应用程序设计的第一目标应当是确保处理阶段是工作流中的一个单一环节,这样就可确保应用程序的其他阶段可以被云计算外包、复制和分发。

应用程序阶段的概念引入了移动云计算的第二个问题,即如何支持BYOD。解决BYOD问题的一个常见方法是为应用程序开发多个前端以支持各种移动平台。这样做是与分布性原则相违背的,因为把每一个前端应用程序组件的副本分发至每一位移动用户可能出现的区域是一件相当不经济的做法。

为了更高效地在云计算中支持BYOD,可以有两个方法:把特定设备格式移至移动设备或者为用户的应用程序开发多个设备前端组件。如果前端处理是由集中化 “显示面板”反馈的,那么前者是有效的,因为这个“显示面板”是专为轻松实现目标设备重新格式化而设计的;而如果“设备-应用程序”的交互被限制于支持所有BYOD目标的归一化形式(以特定设备的方式),那么后一个方法也是有效的。实际上,开发一个具有基本功能的“虚拟移动设备”就可以在之后为每一个 BYOD目标进行定制。

为每一个设备进行格式转换的缺点在于,如果为应用程序开发了更多的功能就会造成对新设备支持工作的复杂化。用户可能可以通过一些“移动后端即服务”的工具来管理这一复杂性,所以在对虚拟移动设备进行架构设计之前审查工具的具体功能是非常明智的一件事。

移动云应用的最后一个问题就是应用程序管理流程。应用程序管理通常被视为移动应用程序本身的版本控制和根据用户需求和意愿向用户发布应用程序的组合。移动云应用由于其中的云计算组件而必须被更广泛地考虑,而更为复杂的结构让应用程序管理变得更像是ALM,在很多情况下这是最好的入手点。从某种意义上来说,移动云应用管理就是云应用生命周期管理和移动应用程序发布控制的组合。

由于变更因素的多样性,移动云应用产生了管理方面的问题。业务变更总是会造成应用程序的变更,所以操作系统和中间件元素也需实现有序升级。传统的ALM是通过为开发人员和操作人员制定“变更-测试-部署”的标准化程序来解决这一问题的。移动云计算不仅引入了另一类的变更(即移动平台的组合集),而且还至少带来了新版本交错部署的潜在问题,这是以往ALM实践所没有考虑过的问题。

因为大多数精心设计的移动云应用是多组件和分布式的,其独特前端处理集是随着移动设备的改变而变化的,所以是有可能把移动云应用的前端和后端当作两个独立应用程序来对待的。这一方法的风险取决于用户的“虚拟设备”是否真正地实现了两个应用程序组件的各自独立。

移动应用程序发布要求将版本控制纳入ALM流程中。如果用户对应用程序或移动设备进行了修改,其影响可能会跨越虚拟设备的边界,用户可能不得不更新应用程序组件的设备副本。请确保您的移动应用程序管理工具具有软件版本控制功能,并对按需更新设备组件有一个科学有效的升级机制。一般来说,您的应用程序管理软件应当能够验证任意被用于运行应用程序的新移动设备的设备型号和软件版本。

从开发的角度来看,移动云计算是两个相互依存的事物。至少在某种程度上保持两者的独立性将有助于用户实现移动性和云计算使用的优化,但是也应至少在ALM层面上把两者连接在一起也是实现应用程序长期稳定性的关键所在。小心行事,您是可以做到这两点的。


本文作者:佚名

来源:51CTO

相关文章
|
监控 iOS开发 MacOS
解决启动 Parallels Desktop 之后 macOS 没声音的问题
解决启动 Parallels Desktop 之后 macOS 没声音的问题
1289 0
解决启动 Parallels Desktop 之后 macOS 没声音的问题
|
运维 算法 调度
系统授权license方案
软件系统设计关于授权时的一点见解
|
运维 负载均衡 Kubernetes
负载均衡的前世今生——揭秘阿里云ALB Ingress云原生网关
随着云原生发展如火如荼,拥抱云原生成为业界共识,为了更好地支持云原生场景,ALB与ACK/ASK等云原生服务深度集成,阿里云推出了ALB Ingress——云原生Ingress网关。
2123 1
负载均衡的前世今生——揭秘阿里云ALB Ingress云原生网关
|
11月前
|
监控 Java Android开发
深入探索Android系统的内存管理机制
本文旨在全面解析Android系统的内存管理机制,包括其工作原理、常见问题及其解决方案。通过对Android内存模型的深入分析,本文将帮助开发者更好地理解内存分配、回收以及优化策略,从而提高应用性能和用户体验。
|
存储 安全 Java
Java“ArrayStoreException”解决
Java中的ArrayStoreException发生在尝试将错误类型的对象存储到特定类型对象的数组中时。解决方法包括:确保数组元素类型与赋值对象类型一致,使用泛型集合替代数组以增强类型安全。
232 4
|
安全 Java 应用服务中间件
【小白误闯】这可能是对 Tomcat 工作原理解释最详细的文章
脑子一闪而过,当年 V 哥在面试 Java 开发时,被问到让你写一个 Tomcat 服务器,你有什么想法?尼码,面试官摆明是在压工资了,你得逞了,我回答不上来,当时也没研究过 Tomcat 的源码,饮恨被拒。今天想想看,当时尴尬的表情,蛮逗的嘞。 今天V 哥有空把这个问题整理出来,干脆写成文章吧,放到资料库里,也分享给大家。Tomcat 是一个流行的 Java Servlet 和 JSP 容器,用于运行 Java Web 应用程序。它的核心组件主要包括:
448 1
|
API 定位技术
查IP[查指定IP归属地]免费API接口教程
该API用于查询指定IPv4地址的归属地信息,支持POST和GET请求。需提供用户ID和KEY,可选填查询IP,默认为请求接口IP。返回信息包括状态码、地理位置及运营商等。示例请求和响应详见文档。
1863 3
|
算法 Serverless 计算机视觉
【OpenCV】- 多边形将轮廓包围
【OpenCV】- 多边形将轮廓包围
214 5
|
缓存 JSON JavaScript
深入理解RESTful API设计原则与最佳实践
- REST是一种基于HTTP的Web服务设计风格,强调资源、统一接口和无状态性。 - 设计原则:统一接口(资源标识、操作、自描述消息、无状态),资源中心,标准方法,分层系统和缓存。 - 最佳实践:版本控制、JSON格式、有意义的状态码、HATEOAS和安全性(HTTPS,认证,授权)。 - 示例:使用Node.js和Express实现用户管理API,包括GET、POST、PUT和DELETE操作,展示资源操作的基本实现。 代码示例展示了如何创建、读取、更新和删除用户资源,以及处理HTTP状态码和错误情况。实际应用时,需进一步完善安全和性能优化。
2196 0
|
自然语言处理 达摩院 索引
Elasticsearch 中文分词器
在使用Elasticsearch 进行搜索中文时,Elasticsearch 内置的分词器会将所有的汉字切分为单个字,对用国内习惯的一些形容词、常见名字等则无法优雅的处理,此时就需要用到一些开源的分词器,以下分别介绍几种常见的中文分词器
10443 2
Elasticsearch 中文分词器