移动设备上大数据集的有效处理的制造方法与工艺

文档序号:11412368阅读:170来源:国知局
移动设备上大数据集的有效处理的制造方法与工艺
本发明通常涉及到移动通信,更具体地,涉及到采用移动设备获取和呈现信息。

背景技术:
不具有本地数据库应用程序或不具有足够的本地存储容量的移动设备用户通常无法在不经受响应时间的延迟的前提下获取和显示大数据集。虽然响应时间对用户界面(UIs)的有效性很关键,但是当用户试图导航列表视图时,当前移动操作系统和平台的用户界面无法在不使用户经受延迟的前提下显示大数据集(即,具有成千上万条记录的数据集)的列表视图。当获取“混合”数据集时,这种问题更严重。此类混合数据集可包括文本和诸如图形、音频和视频之类的多媒体数据的组合。尤其是当数据集包括图形图像和图标时,移动设备没有有效获取和显示大数据集的能力,这导致移动设备用户界面缺乏响应能力。移动计算设备的出现和发展允许用户从几乎任何地方存取相应信息而不受具体地理位置的约束。例如,当此类用户从一物理位置行进到另一物理位置时,其可以使用这些设备来查看相关数据。在移动设备仍旧变得普遍的商业环境中,这点尤其有利。来自不同领域的大量商业用户依靠该设备来实地存取大数据集的数据。通常将一些企业和应用数据库的子集下载到这些移动设备上或与其同步,从而用于在移动设备的用户界面上查看。虽然移动设备相对较小的体积有助于携带,但该体积也已被证实为对一些用户和应用程序造成阻碍,对于那些需要从大数据集中获取和查看数据的企业移动用户来说尤其如此。尽管移动技术方面已有进步,但在内存容量、数据存储容量、中央处理器(CPU)容量和网络性能方面,移动设备通常比工作站计算机的局限性更大。由于这些局限性,一些具有触摸屏界面的移动设备操作平台,诸如由苹果公司开发的iPhoneTM操作系统、Google公司的Android平台、ResearchInMotion(RIM)公司的Blackberry操作系统以及类似的移动操作系统,不能在单个视图中显示包括大量记录(即,数据行)的大数据集。当需要获取和显示大数据集的不同部分时,这些局限性提出了挑战来响应用户在移动设备的用户界面内的滚动或导航输入。考虑到移动设备的多功能性,理想的情况是通过执行一种方法使这些移动设备可以快速获取和显示来自服务器端数据库的大数据集的子集,并在可能断断续续的、不可靠的、偶尔连续的、可变速(服务质量)的或者暂时不可用的网络能力的环境下有效地显示这些子集。随着越来越多的企业应用程序执行从应用服务器到移动设备的大型数据库同步,需要请求移动设备用户界面有效地显示越来越大的数据集。尽管较新的移动设备实现了在中央处理器(CPU)、内存容量和存储容量方面的改进,但是需要消耗大量内存来处理大数据集的移动应用程序仍然降低了用户对移动平台的体验。例如,传统技术足以在服务器、工作站和个人电脑上执行对包含10000个图标的数据集的列表视图的显示,但在移动设备上执行时会引起内存和CPU的性能问题。一些移动操作系统(OSs)试图通过标记那些需要消耗大量内存或CPU资源的应用程序进程来解决这些问题,从而可向其它的应用程序提供额外的资源分配。这种标记可以防止应用程序消耗不成比例的内存量,但是,这种技术的缺点在于被标记的应用程序的响应能力会降低。当用户导航到数据时,用于在移动平台上显示来自大数据集数据的传统技术依靠实时(justintime)数据检索来获取将被显示的数据行。然而,当用户通过滚动或者导航到数据行而获取数据行时,经常会由于与无线环境中的这种实时获取有关的延迟而导致令人不可接受的、缓慢的UI响应时间。用来在移动设备上显示大数据集的传统技术包括对大数据集进行检索并将其局部存储在移动设备上。但是,该技术的缺点是许多移动设备缺乏用于本地存储和显示大数据集的本地数据库应用程序和/或足够的本地存储容量。即使具有相对快速的本地数据库,在没有资源密集型数据同步以保持移动设备上的数据集更新的条件下,这种技术仍会导致显示过期数据。该技术的另一个缺点是当检索和存储大数据集时用户会遇到UI延迟。尽管通过对索引和查询的优化而提高了数据库的性能,但是,传统数据库在移动环境下的实施无法在不出现诸如UI延迟和滞后等明显性能问题的条件下进行扩展以处理大数据集。传统技术使用户很难浏览或查看那些超出移动设备屏幕当前可视区域的大数据表。这种限制使传统技术不适用于那些需要在小显示屏(例如移动设备)上显示长数据列表的应用。因此,所期望的是以有效和经济的方式获取并在移动设备上快速显示来自大数据集的数据子集的能力。进一步需要的是用于响应用户在移动设备界面的滚动和触摸手势并且只动态显示那些在浏览数据的任何时候都适于移动设备屏幕的数据的系统、方法和计算机程序产品。由于移动设备往往受资源约束,还需要能用最少的资源高效获取数据的能力,从而使系统和方法能扩展以处理非常大的数据集。还需要能够响应用户在触摸屏用户界面内的触摸手势且只动态显示那些浏览数据的任何时候都适于移动设备屏幕的数据的能力。

技术实现要素:
本发明的实施例包括用于有效获取将在(诸如但不局限于移动设备)客户端设备的用户界面(UI)内显示的数据的方法、系统和计算机程序产品。该方法、系统和计算机程序产品能处理大型数据集而不需要将整个数据集存储在客户端设备上。本发明的实施例由用户随时加载可视数据,并将数据绑定到UI元素上。当用户在数据列表视图内滚动、导航或在任意方向上做手势(即上/下)以便遍历大数据集时,本发明的实施例动态获取附加数据页,从而给用户这样一个印象:附加页面已经加载并可显示/供查看。例如,当用户导航到当前浏览的页面时,获取“向后滚动”和“向前滚动”的数据页。这种向前滚动和向后滚动页面包括所提取的、与当前浏览页面的前一页和后一页数据相对应的数据。该方法、系统和计算机程序产品通过调用模块构建了一个包括可视数据行和逻辑数据窗口的“列表视图(ListView)”。在一个实施例中,模块驻留在移动设备中。模块从驻留在服务器上的大数据集中获取可视数据行和逻辑数据窗口所需要的附加页面。该数据集类似于执行搜索或查询并获取结果集之后的结果集。本实施例中,该结果集仅具有需要从上到下地显示在客户端设备的UI显示器中的那些记录的主关键字。所获取的数据与局部存储在移动设备上的主关键字相对应。该数据获取和显示的方法、系统和计算机程序产品用作一种机制,当移动设备的用户通过数据集的列表视图进行导航时,该机制可有效地从服务器中获取大数据集的各部分。本发明的实施例剖析了用户界面后的手-眼协调的行为元素。该剖析尝试理解手(在触摸屏界面的情况下)或其他输入设备(例如但不局限于鼠标)如何与用户界面交互以便指示用户界面显示更多信息,这些信息随后被可视化地呈现给眼睛。在一个实施例中,在客户端设备上的应用程序会话期间,该进程可能会重复地继续多次循环。例如,iPhoneTM的触摸界面使用户可以滑动手指并向下滚动数据列表来阅读更多的记录。数据列表视图可以根据以每个滑动手势发送到客户端应用程序的慢速或快速触摸屏事件来缓慢滚动或快速滚动。本发明的各实施例可有效地处理在具有有限显示尺寸的移动设备上的大数据集的数据显示。例如,如果数据集中有成千上万条记录,移动设备每次可能只能显示几行。用户可以滚动数据列表视图来读取数十条、可能数千条记录,但是,在任一瞬间,仍然只有少数记录对用户来说是可见的。用户也可以缓慢地、快速地滚动列表或根本不滚动列表。此时,用户也可能只浏览数据列表视图中的少数记录而不是数千条记录。在一个实施例中,所有的这些滚动和导航情景在期望的数据可被查看之前就被处理了,而不会使用户感觉到明显的延迟。另外,本发明的实施例包括一种方法,通过调用函数从服务器上获取大数据集子集,该方法在移动设备的用户界面内有效处理大数据集的导航和显示。该方法包括在移动设备上存储大数据集的行(即数据记录)的主关键字。在一个实施例中,根据移动设备上发起的查询或搜索来定义大数据集。例如,移动设备上浏览器会话中的搜索可以生成对存储在服务器上的大数据集的定义。该方法进一步地包括调用函数来初始化ListView。在一个实施例中,被初始化的ListView指明了数据集中可用记录的总数和移动设备的UI中一个可见行的高度(例如,以像素为单位)。该方法为UI的活动视图区域获取数据,并将所获取的数据绑定到移动设备的UI元素上。然后,所获取和绑定的数据作为当前可视行显示在用户界面中。为了优化用户界面的响应速度,该方法为附加的、与当前可视行相邻的向后滚动和向前滚动数据页面获取数据并将数据绑定到用户界面元素。以这种方式,该方法能快速地在移动设备上显示UI中当前可视数据前面和后面的数据。以这种方式,用户的眼睛在一定程度上受骗而相信在滚动开始之前所有的数据就被预先加载了。该方法还包括在移动设备上定义一个移动的逻辑数据窗口。根据实施例,移动窗口的大小为Nx,其中,x是适合移动设备上的UI页面的记录的数目,N代表所预测的UI中的滚动/导航速度。该方法还包括检测滚动和检测导航输入(例如但不局限于滑动手势),并确定滚动/导航的速度。根据上述速度,该方法动态地向移动数据窗口添加页面。在一个实施例中,预测的滑动/导航速度由UI内的用户手势及过去和当前的滚动速度来确定。例如,在具有触摸屏用户界面(UI)的移动设备中,检测到的手指滑动手势的迅速性会导致较长的滚动。预测的滚动/导航速度也能通过检测手势的力度来确定。例如,检测到的滑动手势的力度能被用来确定预测的滚动/导航速度。这样的力度可以通过例如触摸屏滑动手势的摩擦系数来量度。一旦检测到滚动/导航已经结束,该方法获取、绑定并在移动设备上UI的活动视图区域显示用户已经导航到的数据行。另外,本发明的实施例还包括计算机可读介质,此介质上存储着计算机可执行指令,当由计算设备执行时,这些指令将会使计算设备执行用于有效地获取并在移动设备上显示来自大数据集的数据的操作。本发明的实施例包括用来获取并在移动设备上显示来自大数据集的数据的系统。该系统包括移动设备上的UI,用来显示源自远程数据库的大数据集的数据,其中,所显示的数据是ListView的一部分,ListView包括可见行和驻留在移动设备上的逻辑数据窗口。该系统包括配置成从服务器获取数据行的模块,那些数据行是为移动设备上的ListView内的逻辑数据窗口添加可视行和附加数据页面所需要的。本发明的一个实施例中,该模块驻留在移动设备上。为响应对移动设备上UI内的导航输入或滚动手势的检测,该系统调用获取模块以从服务器的数据库中获取数据行,这些数据行与来自移动设备的查询或列表导航输入相对应。该系统将所获取的数据绑定到移动设备上的UI元素上。在一个实施例中,该系统包括移动设备上的初始化模块,该模块被配置成根据数据集中的记录总数和移动设备上UI中的一个可视(可显示的)行的高度来初始化ListView数据结构。在一个实施例中,那些驻留在移动设备上的模块是采用脚本语言编写的,这些脚本语言可以由移动设备读取,移动设备包括但不局限于运行iPhoneTM操作系统的移动设备。在示范性的非限制性实施例中,这些模块可以用JavaScript编写。下面将参照附图详细描述本发明的其他特点和优点以及本发明各种实施例的结构和操作。值得注意的是,本发明并不局限于本文所描述的具体实施例。这里介绍的这些实施例仅用于说明目的。根据本文所包含的教导,对相关领域的技术人员而言其他的实施例是显而易见的。附图说明附图被合并到此处并成为说明书的一部分,其与说明书一起阐释本发明,还起到解释本发明原理并使相关领域的技术人员能制造和使用本发明的目的。图1为示例性的分布式系统图,各实施例可以在该系统中实施。图2阐释了根据本发明实施例的、用来处理客户端设备上大数据集的系统的模块化视图。图3-图7阐释了根据本发明实施例的示例性图形用户界面(GUI),其中,可以获取并在移动设备上显示大数据集。图8是根据本发明实施例的流程图,其阐释了一些步骤,通过这些步骤可以获取并在移动设备上显示大数据集。图9描述了可以在其中实施本发明的示例性计算机系统。现在将参照附图来描述本发明。图中相同的参考标号通常代表相同的元件或功能相似的元件。此外,参考标号最左边的数字通常表示该参考标号首次出现的附图。具体实施方式目录I.引言II.数据获取和列表视图(ListView)显示系统III.用于显示ListView的移动设备用户界面的实施例IV.数据获取和列表视图(ListView)显示方法V.计算机系统实施的实施例VI.结论I.引言本发明的下述具体描述参考了阐释符合本发明的示例性实施例的附图。其它实施例也是可能的,而且,在本发明的精神和范围内可对各实施方式进行修改。因此,该具体描述并不旨在限制本发明。相反,本发明的范围是由所附的权利要求书来确定的。如下所述,本发明可采用软件、硬件、固件和/或图中所示出的实体等不同的实施方式来实现,这对本领域的每个技术人员而言是显而易见的。本发明不限于专门控制用于实施本发明的硬件的任何实际软件代码。因此,鉴于本文提供的详细级别,将在理解可对这些实施方式作出修改和改变的前提下描述本发明的操作行为。本发明涉及系统、方法和计算机程序产品,其用于有效地获取和在移动客户端设备上显示数据,其中,数据包括从驻留在远程服务器上的大数据集中选取的数据的多个子集。各实施方式涉及快速地在移动设备有限的内容窗口区域中以图形方式显示并提供大数据集的列表视图。在本发明的具体描述中,提及到的“一个实施例”、“实施例”“示例性的实施例”等表明所描述的实施例可以包括特定的特征、结构或特性,但并不是每个实施例都必须包括那些特定的特征、结构或特性。而且,这类短语也不一定指相同的实施例。此外,当结合一个实施例来描述特定的特征、结构或特性时,应该理解,无论是否明确描述,本领域技术人员的知识将允许其结合其他的实施例来影响这种特征、结构或特性。本文中可互换使用的术语“显示器”、“显示屏”和“屏幕”是泛指且包括任意类型的、连接到计算设备或与计算设备集成的显示设备或屏幕,以用于通过计算设备用户显示可视的内容。在一个实施例中,计算设备是移动设备。此类显示屏可包括,例如但不限于,触摸屏液晶显示器(LCD)。本发明的实施例中,移动设备的UI可在显示器上显示。在一个实施例中,移动设备的UI包括移动设备显示器的活动视图范围内所呈现的列表视图的可视行。除非以不同方式明确声明,本文中可互换使用的用户用于识别个人用户、软件代理或一组用户和/或一组软件代理。除了需要获取和查看数据的个人用户以外,软件应用程序或软件代理有时需要获取待显示的数据。因此,除非特别声明,本文所用的术语“用户”不一定指的是人。本发明实施例的具体描述分为几个部分。第一部分描述了用来从服务器上的大数据集中有效获取数据并在移动客户端设备上显示所获取的数据的系统。后续部分将描述用于有效获取并在移动客户端设备上显示数据的用户界面和方法。II.数据获取和ListView显示系统图1是示例性的分布式系统100的阐释,可以在该系统中实施此处所描述的实施方式。分布式系统100包括群集了应用程序128的应用服务器122。图1所示的示例性实施方式中,应用程序128可以是关系数据库管理系统(RDBMS)。在另一个实施方式中,应用程序128可以是SYBASETM无线平台(SUP)的一部分。尽管系统100中描述了单一移动设备160,可以理解的是多个移动设备160可以通过无线网络132来访问应用服务器122和数据库130。移动设备160可以是具有一个或多个处理器、输入设备(例如,触摸屏、QWERTY键盘、麦克风、触控板、滚动轮、音频命令、跟踪球或T9键盘)的任意类型的移动计算设备和能通过网络接收和发送数据的通信基础设施。例如,移动设备160可包括但并不限于个人数字助理(“PDA”)、iPhoneTM、iPodTM、iTouchTM或iPadTM触控设备、运行Google公司Android操作系统的设备、根据MicrosoftPocketPC规范运行MicrosoftCE操作系统的设备、运行MicrosoftMobileStandard操作系统的设备、运行MicrosoftMobileProfessional操作系统的设备、运行Symbian操作系统的设备、运行Palm操作系统的设备、移动电话、设备、智能电话、手持电脑、上网本、掌上电脑、手提电脑、超级移动电脑或其他相似类型的能够处理指令并在人与其他计算设备之间收发数据的移动设备。应用服务器122可以是能将数据从数据库130传递到移动设备160的任意类型的服务器或计算设备。例如,应用服务器122可以包括但不限于计算机或可能是服务器机群一部分的计算机机群。网络132可以是任意网络或者能承载数据通信的网络组合。这种网络可包括但不局限于有线网络(例如,以太网)或无线网络(例如,Wi-Fi,3G,和4G)。此外,网络132可以包括但不局限于局域网、中域网和/或诸如因特网之类的广域网。网络132可以支持协议和包括但不限于因特网或万维网协议和/或服务的技术。可以根据特定的应用程序或环境在分布式系统100的组件之间提供中介网络路由器、网关或服务器(未示出)。在一个实施例中,应用服务器122包括数据库130。数据库130可以存储任意类型的数据,包括但不限于文本、图像、音频和视频数据,这些数据将分别被应用服务器122和移动设备160上托管的应用程序128和客户端应用程序162使用。尽管所显示的数据库130被作为应用服务器122的一个组件,但数据库130可以通过局域网、中域网或广域网的间接连接而通信地联接到应用服务器122上。此外,尽管只给出了数据库130,必要时可以使用附加的数据库。传统上,服务器和诸如应用程序128之类的企业应用程序作为本机应用程序或依赖于平台的应用程序被安装在诸如应用服务器122之类的专用后端服务器或企业服务器上。尽管这些应用程序具有实用性,但一直难以从移动设备160中的数据库130及相关数据集124中快速访问大量数据。当数据集124包括大量来自数据库130、且必须经由网络132传递的数据时,这个问题是复杂的。即使数据集124包括来自数据库130的数量相对较小的记录,但当其包括混合数据(即多媒体数据)时,数据集的大小可能大到足以产生移动检索和显示的延迟。如果没有响应灵敏的移动用户界面来查看从数据集124中获取的数据行126的话,移动设备160的用户可能会发现:为了能更快地查看所获取的数据行126,直接通过应用服务器122访问应用程序128更可取。例如,花费超过150毫秒的用户界面响应可能会被用户视为反应迟钝。此外,传统上,创建一个界面来查看来自数据库130及驻留在应用服务器122上的数据集124的数据的操作一直涉及为移动设备平台开发专用软件或者使本地数据浏览应用程序成为移动设备平台或操作系统(OS)的一部分。然而,这些本地移动浏览应用程序通常不能有效地处理大数据集和包含混合数据的数据集。在移动设备160上高效获取数据集124中的数据提高了易用性和速度,由此所获取的数据行126能在移动设备160的UI中查看。本发明实施例的另外一个优点是使得缺乏足够的处理和存储资源来处理大数据集124的移动设备160可以被用来查看和导航驻留在应用服务器122中的数据集124。在图1、图2所示的示例性数据获取和显示系统100和200中,从数据库130中获取的数据行126已经返回来响应查询/输入12,然后被接收到移动设备160上。根据本发明的实施例,与数据集124相对应的主关键字166被局部存储在移动设备上。在一个实施例中,数据集124的主关键字166存储在内存中,以便快速访问记录数据库130。主关键字166所指的实际数据记录被存储在应用服务器122的数据库130中。数据库124是数据库130的、与主关键字166以及从客户端应用程序162接收到的查询/输入125相对应的子数据集。当需要被绑定到移动设备160上的逻辑数据窗口168内的相应UI元素169上时,所获取的数据行126经由网络132被接收到移动设备160上。如图1中示例性实施例中所示的,逻辑数据窗口168包括可视行167、列表视图(ListView)165和UI元素169。下面将在图3-图7所示的示例性用户界面的上下文中对逻辑数据窗口168的组件和功能进行描述。如本文所用的,在一个实施例中,ListView是逻辑数据结构,其用来存储以图形方式描述来自数据集的数据记录列表所需要的数据。ListView具有可视行和那些不可见的或在UI内不具有活动聚焦的行。例如,在ListView显示器中指定的可视行是那些将在图形用户界面(GUI)中显示的行,其中,可见行是作为搜索或查询的结果而返回的、较大数据集的子集。ListView保持一个动态的、移动的、由位于可见行之前和/或之后的数据行组成的数据页面的逻辑数据窗口。在一个实施例中,包含在ListView中的数据集的数据记录包括混合数据,例如但不限于与图像数据、音频数据和视频数据中的一个或多个结合的文本数据。正如本文所用的,ListView便于展示来自数据集的数据记录的导航列表,那些数据集包含的数据记录比能同时在图形用户界面(GUI)的活动窗口内显示的数据记录更多。也就是说,ListView中的数据记录既包括可视行,又包括那些位于超出图形用户界面(GUI)屏幕的当前可视区域之外的逻辑数据窗口内的数据。根据实施例,图形用户界面(GUI)屏幕是移动客户端设备的屏幕。在一个实施例中,ListView通过用户输入、滚动命令、触摸屏滑动/滚动手势的组合来激活导航,从而使逻辑数据窗口中的各行成为图形用户界面(GUI)屏幕的当前可视区域的一部分。数据获取和显示系统100和200是可操作的,从而在获取已获取的行126和在移动设备160上的逻辑数据窗口168内显示可视行167。客户端应用程序162和262检测滑动手势并测量手势的速度。在一个实施例中,该速度是相对于显示器261在滚动一秒中所遍历的像素、以像素每秒(pps)为单位进行量度的。当客户端应用程序162和262知道先前的滑动手势有多快时,如果随后再出现相同速度的滑动手势,它们就能确定屏幕将滚动多少或以什么速度(以像素每秒为单位)来滚动。客户端应用程序162和262也以像素为单位来确定单一可视行167的高度。通过确定此高度,客户端应用程序162和262就知道对于给定的滚动速度(以像素每秒为单位),有多少可视行167被滚过或导航过。动态地再次利用距离当前在显示器261内聚焦的可视行167最远的ListView165的数据行,以便将UI元素169绑定到逻辑数据窗口168内需要活动聚焦的数据上。根据本发明的实施例,客户端应用程序162包括被配置为用于初始化ListView165、定义逻辑数据窗口168、将可视行167的数据绑定到UI元素169上的各个模块。该模块便于函数调用,以实施上面所列功能。下面的代码是这些功能的一个实施例。在此示例性的实施例中,采用JavaScript来实现移动设备160上的函数。正如相关领域的技术人员所理解的那样,也可以采用其它程序语言和技术来实现以下程序语言代码示例所列的功能。正如相关领域的技术人员所理解的那样,上述代码示例所列的一些函数和变量是可选的,因此,可以不必对所有类型的移动设备160和客户端设备260都填入这些函数和变量。例如,本发明的一个实施例中,移动设备160是运行iPhoneTM操作系统(OS)的设备,iPhoneTM操作系统是由Apple公司为具有触摸屏显示器261的iPhoneTM和iPodTMtouch开发的。然而,在本发明的其它实施例中,也可以使用另一类型的、没有触摸屏显示器的移动设备160。同样地,可以使用图2所示的个人计算机客户端设备260,并且也可以不包括触摸屏显示器。因此,对于某些移动设备160和客户端设备260而言,touchStart、touchMove和touchEnd函数是可选的。在一个实施例中,配置应用程序128,以便经由网络132接收源自客户端应用程序162的查询/输入125。在一个实施例中,查询/输入125可以包括在图2所示的显示器261上所显示的UI内的列表导航手势和输入。用户可以利用图2所示的输入设备263在移动设备160上选择一个或更多的搜索、查询或列表导航输入。这些查询/输入125随后经由网络132转发给应用服务器122。进一步配置应用程序128,以便识别数据库130(包含数据集124)中的数据的子集。数据集124与所接收的查询/输入125相对应。在一个实施例中,应用程序128与数据库130交互,以便从与查询/输入125相对应的数据集124中检索若干所获取的行126。所获取的行126经由网络132被接收到移动设备160上。此时,所获取的行126在移动设备160上填...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1