为移动应用缓存数据的系统和方法技术方案

技术编号:2860329 阅读:318 留言:0更新日期:2012-04-11 18:40
一种缓存表包括一组访问参数和一组数据列。缓存表的一个或多个实例存储在移动计算设备上。每个实例包括自变量(访问参数的独特的一组值)和结果集(数据列的一组值)。这样,在结果集中的每个结果包括自变量和相应的列值。缓存的结果集有指定的有效期,其在变成无效之后可能是可用的或可能是不可用的。可以使用有效的缓存数据而不管是否有可用的到数据源(例如,数据或应用服务器)的连接。如果没有可用的到数据源的连接,无效数据则可以使用一段时间。可以从数据源选择性地更新缓存表中的数据,而不用同步整个的本地数据库。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及计算机系统领域。更特别地,本专利技术提供用于在移动设备上缓存数据的系统和方法。
技术介绍
在移动设备上(例如膝上型计算机、个人数字助理、移动电话)运行的应用通常已经被设计用于联机使用或者脱机使用。两种类型的移动应用倾向于使用浏览器的某种形式与用户交互。联机应用喜欢连续访问企业服务器(例如,中央数据库服务器)。相反,脱机应用操作与企业服务器有最少的或者没有接触。更特别地,只要需要,联机移动应用就能访问企业服务器上的数据,从而可能不需要在本地存储数据。然而,由于联机移动应用的“总是连接的”的特性,连接费用(例如,用于无线发射时间)相当高。同样,联机移动应用通常要忍受无法预测的等待时间。当联机应用向服务器发送请求时,除了在服务器上的任何拥塞外,响应时间还取决于移动设备的无线网络的使用水平。此外,取决于无线网络的范围,联机应用的使用可能受地域限制,且在一些位置可能是被禁止的(例如,飞机、医院)。更进一步,联机移动应用经常访问成组的数据,例如,整个网页、数据表等等。当数据项需要替换时,可能替换整个数据集而不是仅仅替换一个项。这会效率低且增加操作应用的成本。移动应用倾向于访问成组数据(例如,整个网页)的一个原因是数据紧紧地与数据显示相结合。特别地,当为移动应用拷贝或下载数据到客户设备上时,每个数据集合(例如,表、一组数据库的行或者字段)典型地在将在显示该数据集合的页面内传送。这样,除了能在那个网页内显示,数据不能在客户端显示。因为每个数据组或者集合可能用完整的显示页面存储,并且除了它们封装的数据以外许多页面可能是一样的,所以可能浪费在客户端上的许多存储空间。与联机应用形成对比,脱机移动应用不喜欢连续访问由企业服务器保持的数据。来自企业服务器的一些数据(例如,瞬像)可以拷贝到或者复制到移动设备上。虽然脱机应用可能总是可用的(例如,当从服务器脱机时),但它不总是有最新的数据,而且它只能访问拷贝给它的数据。使用数据瞬像的脱机移动应用通常要求不时的或者定期的(例如,每天一次)把它存储的脱机数据与企业服务器同步。同步的频率通常与在移动设备上访问或修改数据项的频率无关。因此,可能使用失时效的数据在移动设备上执行许多事务处理或操作。同步可能引起高的开销,因为要经常交换大量的数据——即使是还没有改变的且不需要刷新的数据。例如,即使在网页内只有一个数据项需要更新,也可能下载或者交换整个网页或者网页组。由于数据同步不频繁,所以脱机移动应用不适合用于高度动态的数据。此外,脱机移动应用经常需要保持所有由应用做的数据更改的事务日志,以便于同步。通常,用于移动应用的存储在移动设备上的企业数据可能有不同的寿命。一些数据点或项可能是长时期有效的(例如,产品描述、地址);其它数据点或项可能在仅仅相对短时期之后无效(例如,股票报价、货币兑换比率)。典型地不配置现有的移动应用和客户数据库来识别或考虑下载数据的寿命。此外,那些尝试为用户提供重要功能的移动客户应用倾向于需要强有力的软件和/或硬件配置(例如,Java虚拟机、HTTP监听器、服务引擎)。这样的需要避免了例如个人数字助理(PDA)或者智能电话一样的更小的、限制更多的客户设备的使用,也增加了客户操作的开销。
技术实现思路
在本专利技术的一个实施例中,提供用于细粒度缓存数据的系统和方法,这些数据由在移动(例如,无线)设备上执行的应用使用,移动设备被配置用于第三代无线网络或其它企业网络。在这个实施例中,设备不需要总是访问数据的中央源或主源(例如,数据、网络或应用服务器)并且能在联机或脱机模式下使用缓存的数据。在设备和数据源之间的传统的同步操作是不必要的,因为在移动设备上缓存的数据在需要的时候可以被选择地刷新。因此,获得两种操作模式的好处(例如,刷新的数据、可接受的连接成本)。在本专利技术的实施例中,数据在缓存表中缓存,缓存表被实现为移动设备的本地DBMS(数据库管理系统)的一部分。在这个实施例中,缓存表的内容在要求时从服务器检索并根据与内容相关联的缓存控制指令进行本地缓存。缓存表的列(或属性)的子集被指定为缓存表的“访问参数”。为了从缓存表检索数据,为访问参数中的每一个提供一个值。这些值构成用于缓存表的一个实例的自变量。如果那些自变量值的行(或多个行)不在本地数据库中或者已经过期,DBMS会与相应的服务器联系以检索并缓存这些行。例如,如果缓存表被配置成报告关于不同仓库位置的库存数字,响应指定的零件号,缓存表的列可以包括零件号、仓库号、存储在相应仓库中的零件的数量。被提供作为查询部分的零件号可以是缓存表的访问参数。对于每一个唯一的零件号,缓存表的单独实例包括报告存储在每个仓库中的零件数量的一组行(结果集)。在本专利技术的实施例中,通过在缓存表内封装数据缓存策略,数据缓存与应用逻辑分离。这使应用开发者不需要把缓存策略编码成应用逻辑的一部分,并允许数据库管理者定义缓存策略。在本专利技术的另一个实施例中,提供了一种算法以定义缓存表的数据和事务型语义,其方式与数据库事务处理的ACID(原子性、一致性、孤立性和持久性)特性是一致的。特别地,存储在缓存表中的数据有相关联的有效期,该有效期可以由数据来源的数据源指定。数据也可以有相关联的缓存控制信息,如果没有可用的到服务器的连接,该信息指出在变为无效之后数据是否可以使用和可以使用多久。当本地数据库的操作影响缓存表时,应用该算法以确定是否使用缓存数据或是否尝试从数据源刷新数据。该算法可能考虑是否有可用的到数据源的连接、数据是否被同一个或者另一个事务处理锁定、数据是否是无效的、当数据无效时,相关联的缓存控制信息是否允许使用数据等等。例证性地,本专利技术的实施例使移动设备和应用能够脱机访问本地数据并且在需要时选择性地刷新特定数据(例如,缓存表结果集)。因此,连接成本(例如,到数据源)和对失时效数据的使用减到最少。由于缓存表是一个表,所有的移动数据库应用不必在应用逻辑中写额外的代码就能得到由缓存表提供的益处。附图说明图1是描述适合实现本专利技术实施例的移动计算环境的框图。图2是依照本专利技术实施例被配置在移动计算设备上缓存数据的客户设备框图。图3A-B包括图示依照本专利技术实施例的使用和刷新缓存表的一个方法的流程图。图4描述依照本专利技术实施例的配备有智能客户代理的移动客户设备。图5A是演示依照本专利技术实施例在智能客户代理内操作分配器以处理请求页面的方法的流程图。图5B-C包括演示依照本专利技术实施例的脚本引擎可以在智能客户代理内组合页面的方法的流程图。图6描述根据本专利技术一个实施例的缓存表。图7-11演示根据本专利技术的一个实施例用于在操作缓存表的客户设备与和缓存表相关联的数据源之间通信的例证性形式。具体实施例方式以下的描述使得本领域任何技术人员能够制造和使用本专利技术,且随后的描述是在本专利技术的特定应用和它们需要的环境下提供的。对公开实施例的各种修改对本领域技术人员来说很明显,且在不偏离本专利技术范围的情况下,这里定义的一般原理可以应用到其它实施例和应用中。因此本专利技术并不打算限于显示出的实施例,而是与这里公开的原理和特征一致的最宽范围一致。在其中执行本专利技术当前实施例的程序环境结合了通用目的的计算机或者专用目的的设备例如移动计算机、PDA(个人数字助理)、电话等等。为了清楚,可以忽略对这种设备(例如,处理器、本文档来自技高网
...

【技术保护点】
一种便于在用不连续的可用通信链路连接到数据源的移动计算设备上缓存来自数据源的数据的方法,包括:在移动计算设备上的数据库中配置缓存表,其中所述缓存表包括:访问参数,包括在数据源上的数据集的第一组列;结果列,包括与数据集 的第一组列不同的数据集的第二组列;在数据库内产生所述缓存表的一个或多个实例,其中每一个所述缓存表的实例包括一组行,其中每一个所述行包括:自变量,所述自变量包括访问参数的每一列的值;和结果集,包括结果列的每一列的值,   其中,在一组行中的每一行包括相同的自变量。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:R阿哈德J蒋O科伯威R普拉卡萨S瑞曼
申请(专利权)人:欧里科国际公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1