
如果说移动互联网的到来彻底颠覆了我们的生活方式,那么极致用户体验是吸引我们创造全新生活方式的最强驱动力。用户体验设计是我们移动应用设计的核心内容,而用户体验的衡量指标是产品的视觉效果、用户的触控感、用户的使用感觉、用户的操作习惯以及用户对产品的黏度。通常情况下,移动应用的流畅运行非常依赖于良好网络环境。一旦移动设备处于网络断开或者信号微弱状态,绝大多数移动应用的用户体验将会受到极大的影响。下面的一些移动应用场景相信很多用户都非常熟悉:
当我们正在坐着高铁的出差途中,打开iPad处理公文审批时,刚填好审批意见进行提交时,移动设备的信号断了,所有填写的信息全部丢失。
当我们在上下班的地铁上用手机查看天气预报时,由于手机信号在地铁中时断时通,前一秒还能看到的天气信息,在后一秒已经无法显示了。
当电梯设备的维修人员在电梯间处理设备维修时,需要利用移动设备对售后服务工单进行处理时,由于移动设备信号较弱,导致无法及时完成工单处理。
当用户打开从移动应用商店下载的某一款移动应用时,由于移动设备网络信号不佳,该应用一直处于加载状态而无法打开,长时间的用户等待导致用户放弃该软件的使用而转向其他类似的应用软件。
以上这些常见的移动应用使用问题表面看是因为移动网络信号引起的问题,但实际上是移动应用的设计问题。那究竟如何通过良好的设计使得即使在网络信号很差的情况下用户仍然可以流畅使用app?通过怎样的设计在移动设备离线的情况下用户可以仍然处理手头的工作?有没有一种解决方案能够帮助移动开发人员通过简单配置和少数代码就可以实打造终极用户体验呢?
Oracle MCS移动云数据离线和同步能做什么?
Oracle移动云服务(Mobile CloudService)的数据离线和同步功能正是为此而设计,完美解决移动设备离线情况下的数据缓存和数据同步需求。通过这一功能,移动开发人员可以轻松实现移动设备的离线数据加载和业务处理需求。Oracle MCS在移动后端提供了数据离线和同步组件Data Offline&Sync,在前端为移动应用开发人员提供了Sync Client SDK工具,开发人员可以利用该SDK在移动端进行离线数据处理。

Oracle MCS可以处理的离线数据有两类:
(1)MCS Storage*上存储的数据对象,在移动云端;
(2)通过Custom API*请求的数据对象,在移动客户端。
*MCS Storage是MCS提供的移动云存储服务,可以保存各类数据对象,如文件,文本,图片,JSON等;
*Custom API是MCS提供的后台自定义接口。这类自定义的接口用于实现向后台各应用系统的服务的请求和响应。
Oracle MCS移动云数据离线和同步是怎么工作的?
1.设置SDK环境
移动开发人员从移动云端下载SDK包,在移动应用开发环境里设置好开发包,Andioid、iOS和Windows分别有不同的设置方式。
2.设置离线数据处理和同步策略
Oracle MCS移动云把对离线数据和同步的操作分类以下6类,并定义不同的处理规则。规则设置的优先级从高到低分别为:1)设置在接口的客户端的HTTP响应头中;2)设置在客户端请求接口的属性中;3)设置在移动客户端的配置文件;4)设置在移动客户端的代码中;5)设置在移动云后端。以上规则设置的优先级从高到低。数据离线处理和同步策略分为6种:
(1)Fetch:数据获取,即移动应用读取数据
从缓存读取数据:即不管移动设备在线与否,移动app都从本地缓存读取数据,如果读不到,则报错,如果读到则直接显示在移动设备上。这种情况通常用在数据实时性要求不是很高,但是APP响应要求又很快的场景。比如移动APP启动画面,为了让用户能够得到快速响应,APP先从本地读取数据显示,同时客户端后台通过更新数据的方式和服务器后台同步最新数据;
从服务器读取数据:即不管移动设备在线与否,移动APP都是试图从服务器读取最新数据,如果无法读取服务器数据,则显示报错。这种情况通常用在数据实时性要求很高的场景,如股票买卖时移动APP获取股票实时价格。
如果移动设备在线则从服务器读取:即如果设备在线则从服务器读取,否则从本地缓存读取。微信好友的朋友圈信息的设计就是这类规则。
如果本地缓存没有则从服务器获取:即移动设备先从本地缓存读取数据,如果读不到再从服务器获取。移动办公中的离线处理公文就是适用这类规则。
如果本地缓存没有或者有缓存但是数据已过期则从服务器读取:这种情况适用于社交app的留言或评论信息读取,数据实时要求不高,允许一定间隔的更新频率。
从本地缓存获取并同时后台更新缓存数据:这种方式可以为用户提供极好的响应速度,同时能确保数据更新较为及时。
读取数据并后台更新:如果本地缓存存在并数据没有过期,则从本地读取并后台刷新缓存,否则从服务器读取数据并客户端后台刷新缓存。
(2)Expiration:数据过期,即把移动端缓存数据设置为过期
每次APP启动时标记缓存数据过期,并在下次读取时从服务器读取并更新本地缓存;
设置本地缓存从生成到过期的时间,以秒为单位;
设置本地缓存永不过期;
(3)Eviction:数据清除,即把移动端缓存数据清空
设置每次APP启动时,清空状态为过期的缓存数据;
设置缓存数据清理方式为人工清理,即只能通过接口代码来执行清理指令;
(4)Periodic Refresh:数据刷新,即后台刷新缓存数据
设置移动客户端后台自动刷新的频率;
(5)Update:数据更新,移动应用更新业务数据;
设置只要移动设备在线,则移动客户端发起的数据提交直接更新服务器。如果移动设备不在线,则提交失败。
设置如果移动设备不在线,则移动客户端发起的数据提交暂时先保存到移动设备的本地缓存中,一旦移动设备在线,则自动从本地缓存更新到服务器。这个场景即用在移动办公的离线审批中。
(6)Conflict resolution:数据冲突处理
客户端数据为准:当缓存数据提交到服务器端时如果发现服务器端的数据状态已经和当初缓存的服务器数据状态不一致时,则以客户端数据覆盖服务器端数据。
服务器端数据为准:当缓存数据提交到服务器端时如果发现服务器端的数据状态已经和当初缓存的服务器数据状态不一致时,则以服务器端数据为准,客户端数据被自动清空;
人工处理:当缓存数据提交到服务器端时如果发现服务器端的数据状态已经和当初缓存的服务器数据状态不一致时,弹出提示,由用户决定如何更新。
3.编写移动客户端代码
在完成步骤1和2以后,移动开发人员只要利用SDK和移动开发框架编写移动客户端代码即可实现对离线数据的处理。对于MCS Storage数据对象,需要调用MCS提供的Storage SDK;对于MCS端用户自定义的服务接口数据,则调用MCS提供的针对特定移动操作系统的SDK开发包,调用MCS后端以及对应的API;对于这两类数据的读取方式,更新方式、同步机制、数据过期、清理机制以及冲突处理机制则可以通过Sync Client SDK设置。
Oracle MCS移动云数据离线和同步的价值
很显然,利用Oracle MCS移动云数据离线和同步功能,用户可以得到以下好处:
设计出极致用户体验的移动APP,极大提高用户满意度
快速开发实现离线数据处理功能,降低开发周期和开发难度
构建企业级移动应用开发平台,提高运营和维护效率
了解更多,敬请关注甲骨文开发者社区......





