挑战
在移动软件应用中检测网络状态的变化,并进行相应调整。 在办公室之外仍保持同样的工作效率是一大挑战。近年来的平台发展使许多类似挑战迎刃而解。电池寿命更持久,新外形更轻便,便于携带,集成的无线网卡可以在美国国内 20,000 多个热点地区实现网络连接。但是,在任意位置实现有效的连接带来了新的问题:
- 我们为什么要连接网络?花费五分钟手动释放和续订 IP 地址就等于浪费了五分钟的工作时间。
- 为什么多数应用采用固定的无限带宽?监视带宽流量并相应调整行为的应用可以增强用户体验并提高工作效率。
需要考虑是否为完成给定任务而连接网络,因为这会对工作效率产生负面影响,并且日益复杂的环境也会扩大这种影响。在未来,移动笔记本电脑可用的网络数量将从两个(有线以太网和 Wi-Fi)增长到多个(有线以太网、Wi-Fi、蜂窝、WiMax、UWB、蓝牙*、GPS 等)。连接问题使用户需要从 IT 部门获取额外支持,因此增加了成本,降低了工作效率。
而且,一旦用户获得网络连接后,这些挑战将一直存在。没有可延展的移动软件应用监视并适应不断变化的网络环境,工作效率的降低会更严重。网络连接时断时续时,应用可能会挂起,迫使用户重新启动应用。在这种情况下,可能会丢失关键数据。
解决方案
实施移动策略管理。 这个概念是构建灵活的移动软件应用,不断适应带宽流量的核心。移动策略管理定义了最重要的数据。它还定义了可在本地缓存的数据、应该传输的数据以及传输时间、传输的网络类型和速度。
可以使用简单的算法来确定,当网络连接速度小于 100 kbps 时使用本地数据库,当网络连接速度等于或大于 100 kbps 时使用网络数据库。这种算法也适用于那些没有需要交换的扩展数据、也不存在安全隐患的特定应用。但是,对网络需求较高的应用则需要高级的策略管理算法。
将移动策略管理移植至单个对象或组件中对于大多数产品而言无疑是明智之举。这样便容易区分执行策略决策的代码与实现网络数据传输的代码。该做法还可以使代码能够随着时间的推移轻松增加移动策略的复杂度。
在需要在短时间内传输大量数据的应用中,数据优先级划分至关重要。应用自身的数据不应成为一个人为障碍,影响其对用户的响应能力。例如,在简单的电子邮件应用中,第一优先级应该是向电子邮件应用发送新邮件的主题行,然后是用户首先会阅读到的完整的邮件正文。用户不希望等到接收完一封特长邮件的完整文本后才能看到所有邮件的列表。数据优先级划分不正确会直接影响应用的性能体验。
有两种方式可以避免此类缺陷。第一种方式是正确划分数据优先级。数据的优先级是策略管理器应做出的策略决策。避免数据阻塞的第二种方式是对传输层加以设计,使其基于数据包进行传输,并支持多个任务。这种类型的架构可支持策略管理器更好地响应用户需求。
要充分利用可用的网络带宽,应用必须避免不必要的数据占用带宽。最小化数据传输时,您需要关注四项重要特性:
- 脱机数据存储: 网络连接不可用时,需要在本地保存一份数据以确保应用的正常工作。在本地保存常用的联机数据也可以显著提高应用联机时的响应能力。系统连接网络时,如果本地已保存数据,则可以仅通过网络传输更改的数据。这缩短了用户等待完整可用数据的时间。
- 区别传送: 简单来讲,即指不必重新发送先前已经成功发送的数据。如果某个应用已经有一份记录、文件、电子邮件、图片等的副本,无论它来自脱机数据存储还是之前已传输该数据,均无需再次发送该数据。如果该记录已被修改,则只需通过网络交换新旧记录之间的差别部分。
- 重新启动: 连接有时会中断,造成任务的优先级重新得到划分。无论出于何种原因,数据传输都可能失败或发生延迟,应用必须能够重新启动该传输,同时避免重新发送已发送过的数据。
- 压缩: 为了最大程度地利用可用网络带宽,如果适用,应当对数据进行压缩。压缩数据不仅可以让网络连接速度更快,而且还能为用户节省资金,因为某些类型的网络连接是按时间(分)或数据量(MB)进行收费的,例如一些 GPRS 连接或公共无线热点。
本文内容是“如何实现软件应用移动化” 中涵盖的系列内容之一。