CN107077392A - 用于可视化修改的预取高速缓存 - Google Patents

用于可视化修改的预取高速缓存 Download PDF

Info

Publication number
CN107077392A
CN107077392A CN201580056656.8A CN201580056656A CN107077392A CN 107077392 A CN107077392 A CN 107077392A CN 201580056656 A CN201580056656 A CN 201580056656A CN 107077392 A CN107077392 A CN 107077392A
Authority
CN
China
Prior art keywords
visualization
computing device
conversion
cache
status
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201580056656.8A
Other languages
English (en)
Other versions
CN107077392B (zh
Inventor
D·达特森科
V·卡拉斯
H·艾哈迈德
R·M·布鲁克纳
A·盖布佐弗
Y·贝雷扎恩斯盖
Y·亚苏尔
B·陈
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN107077392A publication Critical patent/CN107077392A/zh
Application granted granted Critical
Publication of CN107077392B publication Critical patent/CN107077392B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本文中描述了与修改可视化有关的各种技术。客户端计算设备从服务器计算设备请求可视化,并且服务器计算设备响应于接收到请求来构造可视化。服务器计算设备还标识针对可视化的预计变换,并且将可视化和变换传输给客户端计算设备。客户端计算设备显示可视化,并且响应于接收到修改可视化的请求,执行由服务器计算设备提供的变换以更新可视化。

Description

用于可视化修改的预取高速缓存
背景技术
已经开发了以分布式方式执行的软件应用,其中应用的第一部分在第一设备或逻辑分区上执行,并且应用的第二部分在第二设备或逻辑分区上执行。例如,第一设备或逻辑分区可以是客户端计算设备,而第二设备或逻辑分区可以是通过网络与客户端计算设备通信的服务器计算设备。在操作中,用户可以在客户端计算设备处发起应用的第一部分,其中应用的第一部分被配置为在客户端计算设备和服务器计算设备之间打开通信信道,使得第二部分应用被发起。
在示例中,应用的第二部分在由服务器计算设备执行时可以被配置为基于由客户端计算设备处的应用的第一部分接收的用户输入和在由服务器计算设备可访问的数据存储装置中保留的数据来构造可视化。通常,在服务器计算设备处构造可视化可以是处理密集型任务,因为可视化的构造(在一些应用中)可以包括在相对大的数据库或其他合适的数据储存库上执行查询。
一旦应用的第二部分构造可视化,则服务器计算设备通过网络连接将可视化传输给客户端计算设备,客户端计算设备然后在显示器上绘制可视化。用户然后可以与可视化进行交互(例如,请求对可视化的修改),导致更新可视化或生成完全新的可视化的请求被传输给服务器计算设备。应用的第二部分从客户端计算设备接收请求,执行对应于请求的必要处理,然后引起服务器计算设备将更新后的或新的可视化传输回客户端计算设备。由于用户被暴露于与客户端计算设备和服务器计算设备之间的通信相关联的等待时间以及在服务器计算设备处生成更新后的或新的可视化的处理时间,所以这种方法可能不利地影响用户体验。
发明内容
以下是本文中更详细地描述的主题的简要概述。本发明内容不意在限制权利要求的范围。
本文中描述了客户端计算设备,其中客户端计算设备与服务器计算设备进行网络通信。客户端计算设备包括处理器存储器,存储器包括由处理器执行的应用。应用包括交互检测器部件,交互检测器部件被配置为基于关于在计算设备的显示器上呈现的可视化的检测到的交互来构造命令,可视化具有描述可视化的第一可视化状态,命令指示可视化要被更新为具有第二可视化状态。应用还包括预取高速缓存,预取高速缓存包括由客户端计算设备从服务器计算设备接收的变换,其中变换中的每个变换使用由于变换的执行而导致的相应可视化状态被标记。应用还包括高速缓存分析器部件,高速缓存分析器部件被配置为基于可视化命令和第一可视化状态来确定被配置为将可视化更新为第二可视化状态的变换是否被包括在预取高速缓存中。应用还包括可视化更新器部件,可视化更新器部件响应于高速缓存分析器部件确定变换被包括在预取高速缓存中,被配置为基于变换来更新可视化使得可视化具有第二可视化状态。
附图说明
图1是支持在客户端计算设备的显示器上呈现可视化的示例性系统的功能框图。
图2是示例性预取高速缓存的功能框图。
图3是高速缓存分析器部件的功能框图,其被配置为基于关于可视化的检测到的用户交互来标识预取高速缓存中的变换。
图4示出了包括变换树的示例性预取高速缓存。
图5-8示出了示例性可视化。
图9是示出用于更新可视化的示例性方法的流程图。
图10是示出当可视化被更新时客户端计算设备和服务器计算设备之间的示例性通信的流程图。
图11是示出当更新显示在显示器上的可视化时在客户端计算设备处执行的示例性方法的流程图。
图12是示例性计算系统。
具体实施方式
现在参考附图描述与生成和更新可视化相关的各种技术,其中相同的附图标记始终用于指代相同的元件。在下面的描述中,为了解释的目的,阐述了很多具体细节以便提供对一个或多个方面的透彻理解。然而,可以显而易见的是,这样的一个或多个方面可以在没有这些具体细节的情况下实践。在其它实例中,以框图形式示出了公知的结构和设备,以支持描述一个或多个方面。此外,应当理解,被描述为由某些系统部件执行的功能可以由多个部件执行。类似地,例如,部件可以被配置为执行被描述为由多个部件执行的功能。
此外,术语“或”意在表示包括性的“或”而不是排他性的“或”。也就是说,除非另有说明或从上下文清楚可见,否则短语“X使用A或B”意在表示任何自然的包括性排列。也就是说,短语“X使用A或B”由以下任何实例满足:X使用A;X使用B;或X使用A和B两者。此外,除非另有说明或从上下文清楚可见指向单数形式,否则本申请和所附权利要求中使用的冠词“一(a)”和“一个(an)”通常应被解释为表示“一个或多个”。
此外,如本文中所使用的,术语“部件”和“系统”意在包括配置有计算机可执行指令的计算机可读数据存储装置,计算机可执行指令当由处理器执行时引起某些功能被执行。计算机可执行指令可以包括例程、函数等。还应当理解,部件或系统可以位于单个设备上或分布在多个设备上。此外,如本文中所使用的,术语“示例性”意在表示用作某事物的图示或示例,而不意在指示偏好。
现在参考图1,示出了支持基于关于可视化的检测到的交互来更新可视化的示例性系统100。系统100包括客户端计算设备102和服务器计算设备104,其中客户端计算设备102和服务器计算设备104通过网络106彼此通信。例如,网络106可以是因特网、内联网等。此外,在示例性实施例中,客户端计算设备102和服务器计算设备104可以通过有线连接(例如通过通用串行总线(USB)连接、火线、或其他直接连接)进行通信。客户端计算设备102可以是任何合适类型的客户端计算设备,包括但不限于台式计算设备、膝上型计算设备、平板(平板式)计算设备、移动电话等。同样,服务器计算设备104可以是企业环境中的服务器,或者可以被包括在包括多个服务器计算设备的数据中心中。
客户端计算设备102包括客户端处理器108和客户端存储器110。客户端存储器110可以包括由客户端处理器108可执行的指令以及客户端处理器108可访问的数据。客户端计算设备102还包括显示器112或与显示器112通信,如下面将更详细描述的,显示器112可以被配置为向客户端计算设备102的用户显示可视化114。客户端计算设备102还包括输入接口116,输入接口116被配置为接收和检测关于在显示器112上呈现的可视化114的在客户端计算设备102处阐述的用户输入。例如,输入接口116可以是或包括触敏显示器、键盘、麦克风、相机、前述的某种组合等。
客户端存储器110具有在其中加载的客户端侧应用118,其中客户端侧应用118由客户端处理器108可执行。客户端侧应用118可以是分布式应用的一部分,其中服务器计算设备104执行其对应物。
更具体地,服务器计算设备104包括服务器处理器120和服务器存储器122,服务器存储器122包括由服务器处理器120可执行的服务器侧应用124。在概念上,客户端侧应用118和服务器侧应用124可以被认为是单个应用。通常,服务器侧应用124被配置为执行比在客户端计算设备102上执行的任务更加计算上昂贵的任务。在示例中,客户端侧应用118和服务器侧应用124可以结合操作以处理在(相对大的)数据库中的数据,并且基于数据的处理来构造可视化。
因此,服务器计算设备104可以包括或可以访问数据储存库(未示出),其中数据储存库可以包括数据库。服务器侧应用124可以被配置为从客户端侧应用118接收一个或多个查询,在数据库上执行一个或多个查询(例如,基于在客户端侧应用118处接收的查询),并且构造表示处理数据库上的一个或多个查询的结果的可视化。在另一示例中,服务器侧应用124可以被配置为从客户端侧应用118接收命令以基于命令计算推断(投影)(例如,其中命令可以基于数据库中的数据点请求投影数据点)。这可以是相对计算上昂贵的任务,并且因此通常更适合于在服务器计算设备104而不是客户端计算设备102上执行。其中在客户端计算设备和服务器计算设备之间分布任务可以是特别适合的其他类型的应用包括被配置为执行视频处理的应用、其中光燃烧可以发生在服务器计算设备104处的视频游戏应用等。
服务器侧应用124可以包括可视化生成器部件126,可视化生成器部件126可以被配置为生成要在客户端计算设备102的显示器112上显示的可视化。可视化生成器部件126可以响应于接收到来自在客户端计算设备102上执行的客户端侧应用118的请求来生成这样的可视化。例如,用户可以请求在数据库(例如,其包括数据立方体)上执行查询,并且显示表示在数据库上执行查询的结果的可视化。可视化生成器部件126可以接收该请求,并且可以生成可视化。
响应于可视化生成器部件126生成可视化,服务器侧应用124可以被配置为引起服务器计算设备104将可视化传输给客户端计算设备102。客户端侧应用118接收可视化并且引起可视化在显示器112上被绘制(例如,作为可视化114)。响应于生成可视化,可视化生成器部件126可以引起可视化状态128保留在被分配给服务器侧应用124的存储器的一部分中。例如,可视化114可以具有至少部分定义可视化的状态。例如,状态可以定义可视化的类型(图形、图表、表格等)、要在可视化中表示的多个数据点等。
服务器侧应用124还包括高速缓存更新器部件129,高速缓存更新器部件129被配置为预计关于在客户端计算设备102的显示器112上呈现的可视化114的用户交互。高速缓存更新器部件129还被配置为基于预计的交互来构造对可视化的变换。服务器侧应用124可以使用硬编码规则来预计交互。在另一示例中,服务器侧应用124可以基于具有基于用户或用户组的观察到的行为模式已经被学习的参数的算法来预计交互。在示例中,高速缓存更新器部件129可以在服务器计算设备104上的后台更新(例如,当服务器处理器120具有空闲处理周期时)。可以由高速缓存更新器部件130预计的交互的示例性类型可以包括但不限于包括针对关于可视化114的附加数据点的请求(例如,表示沿着图表或图形的X轴的任一方向上的数据点)、可视化的属性的修改(例如,可视化114的表示类型中的修改,例如从图形到图表)等。响应于构造变换,高速缓存更新器部件129可以引起服务器计算设备104通过网络106将这样的变换(和可视化状态128)传输给客户端计算设备102。
如前所述,客户端侧应用118接收由可视化生成器部件126构造的可视化,并且引起可视化作为可视化114被显示在显示器112上。另外,可视化状态128可以保留在客户端存储器110的被分配给客户端侧应用118的一部分中。因此,客户端侧应用118和服务器侧应用124可以都具有在显示器112上呈现的可视化114的可视化状态128的知识。
客户端侧应用118还包括预取高速缓存130。响应于客户端侧应用118从高速缓存更新器部件129接收到变换,客户端侧应用118可以引起这样的变换被存储在预取高速缓存130中。如前所述,当服务器处理器120具有空闲处理周期时,服务器侧应用124的高速缓存更新器部件129可以执行。因此,当客户端计算设备102通过网络106从服务器计算设备104接收到变换时,可以不时地更新预取高速缓存130。
如下面将更详细地描述的,预取高速缓存130中的变换可以布置成变换树,其中每个树包括多个节点(每个节点表示变换),并且其中每个节点被分配可视化状态(在由节点表示的变换已经被执行之后的可视化的可视化状态)。更详细地,变换树可以包括表示绝对变换的根节点,其中绝对变换是独立于可视化状态的变换。变换树还可以包括至少一个子节点,其中子节点表示相对变换。相对变换取决于可视化状态(例如,由变换树中的父节点表示的变换的可视化状态)。此外,预取高速缓存130中的每个变换可以是或者包括可以由客户端侧应用118解释的声明性语言阐述的指令。该方法(以声明性语言表达并分级组织的变换)显著不同于常规方法,常规方法引入等待时间或用整个对象填充高速缓存,其消耗比本文中所阐述的方法更多的存储器,并且还限制客户端侧应用118动态地解释高速缓存对象的能力。
客户端侧应用118还可以在被分配给客户端侧应用的客户端存储器110的一部分中具有规则132,其中规则132从服务器侧应用124被接收。一般来说,规则132中的规则将对[可视化状态,命令]映射到更新后的可视化状态。命令可以属于对客户端计算设备102的用户所阐述的可视化114的所请求的修改。示例性命令可以是“预测(1)”,其可以表示更新可视化114以预测未来一个月数据点的请求。因此,示例性规则可以如下:“可视化状态1+预测(1)→可视化状态2”。
客户端侧应用118还包括交互检测器部件134,其被配置为检测关于显示器112上呈现的可视化的交互。例如,用户可以通过输入接口116与可视化114交互,并且交互检测器部件134可以检测这样的交互。根据示例,交互可以表示更新可视化114的请求。响应于检测到交互,交互检测器部件134可以被配置为构造命令,其中命令表示要对该可视化114进行的修改。
客户端侧应用118还包括与交互检测器部件134通信的高速缓存分析器部件136。高速缓存分析器部件136被配置为接收由交互检测器部件134构造的命令,并且响应于接收到这样的命令还被配置为标识可视化114的可视化状态128。高速缓存分析器部件136还被配置为基于可视化114的可视化状态128和从交互检测器部件134接收的命令来搜索规则132。具体地,高速缓存分析器部件136在规则中搜索包括[可视化状态128,命令]对的规则。当规则132包括这样的规则时,高速缓存分析器部件136标识被映射到前述对的更新后的可视化状态。
当高速缓存分析器部件136不能标识规则132中包括[可视化状态128,命令]对的规则时,高速缓存分析器部件136引起客户端计算设备102通过网络106将该命令传输给服务器计算设备104。服务器侧应用124的可视化生成器部件126被配置为接收命令并且生成更新后的可视化。此后,可视化生成器部件126被配置为更新可视化状态128,并且将更新后的可视化和可视化状态128传输给客户端计算设备102。然后,高速缓存更新器部件129可以被配置为如上所述通过基于预计的用户交互来构造变换来进行动作。
然而,当高速缓存分析器部件136能够标识规则132中将[可视化状态128,命令]对映射到更新后的可视化状态的规则时,高速缓存分析器部件136可以被配置为在预取高速缓存130中搜索用更新后的可视化状态标记的变换。在一些情况下,预取高速缓存130可以包括引起可视化114被更新到期望状态的多个变换。高速缓存分析器部件136可以以各种方式选择变换。例如,高速缓存分析器部件136可以选择第一匹配,可以在预取高速缓存130中搜索“最佳”变换(例如,最有效的变换)等。所选择的变换当被应用于可视化114时导致创建更新后的可视化。高速缓存分析器部件136可以被配置为输出用更新后的可视化状态标记的变换。
客户端侧应用118还包括可视化更新器部件138,其被配置为基于由高速缓存分析器部件136输出的变换来更新可视化114。当变换是在预取高速缓存130中的变换树中的根节点时,可视化更新器部件138可以仅基于变换树中的根节点来更新可视化114。当变换是变换树中的子节点时,可视化更新器部件138可以遍历变换树中的变换(可能基于用可视化状态128标记的变换在变换树中的位置),顺序地执行变换,以更新可视化114。
客户端侧应用118还可以包括状态更新器部件140,状态更新器部件140被配置为响应于可视化更新器部件138更新可视化114来更新客户端侧应用118中的可视化状态128,使得可视化状态128表示被呈现在显示器112上的可视化114的当前可视化状态。状态更新器部件140还可以向服务器计算设备104传输消息,使得其上的可视化状态128也可以被更新以表示被呈现在显示器112上的可视化114的当前状态。响应于可视化状态128被更新,高速缓存更新器部件130可以被配置为预计可以由客户端计算设备102的用户执行的新的交互(例如,基于更新后的可视化状态)。
尽管已经描述了具有客户端-服务器架构的系统100,但是应当理解,本文中所描述的方面也可以在一层应用中使用,其中不同的部件通常被配置为单独操作(类似于客户端计算设备102和服务器计算设备104被描述为如何操作)。也就是说,例如,服务器侧应用124可以驻留在计算设备的存储器的第一部分中,并且客户端侧应用118可以驻留在计算设备的存储器的第二部分中。服务器侧应用124和客户端侧应用118可以如上所述进行通信;然而,与上面描述的不同,服务器侧应用124和客户端侧应用118之间的通信可以是进程间通信(诸如命名管道)或者进程内通信。
另外,在示例性实施例中,服务器侧应用124可以发起状态改变(例如,在没有从客户端侧应用118接收到关于可视化114的交互的指示的情况下)。例如,如果客户端计算设备102和服务器计算设备104之间的连接丢失,如果在服务器计算设备104上存在数据更新等,则这可能发生。当服务器侧应用124发起状态改变时,服务器侧应用124可以引起服务器计算设备104向客户端计算设备102传输新的可视化,并且还可以向客户端计算设备102传输数据,其引起客户端侧应用118删除所有预先获取的状态信息(例如,可以删除预取高速缓存130的内容,并且可以删除规则132)。响应于接收到可视化,客户端侧应用118可以在显示器112上显示这样的可视化作为可视化114。如上所述,服务器侧应用124可以预计关于可视化114的用户交互,并且可以引起服务器计算设备104向客户端计算设备102传输更新规则和变换。
现在参考图2,示出了预取高速缓存130的示例性描绘。预取高速缓存130包括变换指令202。变换指令202可以包括多个变换树204-206。如图所示,变换指令202包括第一变换树204到第p变换树206。
第一变换树204包括多个第一变换208-212。类似地,第p变换树206包括多个第p变换214-218。如前所述,变换指令202中的每个变换用在执行变换时产生的可视化状态被标记。因此,变换208产生具有可视化状态1的可视化,变换210产生具有可视化状态1-1的可视化,变换212产生具有可视化状态1-N的可视化等。注意,在一些情况下,执行不同树中(或甚至子树中)的变换可以使可视化到达相同的结束状态。
变换指令202中的变换208和214可以是绝对变换,因为这些变换208和214的执行独立于可视化状态(例如,可视化状态128)。相反,变换210-212和变换216-218是相对变换,因为它们分别取决于另一可视化状态。例如,变换210取决于基于绝对变换208的执行而产生的可视化状态。类似地,变换212至少取决于基于绝对变换208而产生的可视化状态。
根据示例,被呈现在显示器112上的可视化114可以具有基于第p变换树中的变换216产生的可视化状态。然后,用户可以与显示器112上的可视化114交互,使得能够生成针对具有由变换212(在第一变换树204中)产生的可视化状态的可视化的请求。为了执行这样的变换212,开始于绝对变换208,在执行变换212之前,按顺序执行变换树中按层级在变换212上方的变换。
现在参考图3,示出了高速缓存分析器部件136的示例性描绘。高速缓存分析器部件136包括规则分析器部件302,其被配置为响应于交互检测器部件134输出命令来在规则132上进行搜索。如上所述,基于在输入接口116处检测到的输入,交互检测器部件134被配置为基于交互(交互指示对可视化114的期望修改)来构造命令。规则分析器部件302被配置为获取可视化状态128和命令,并且还被配置为在规则132中搜索被映射到可视化状态128和命令的对的另一可视化状态。
高速缓存分析器部件136还包括请求器部件304,响应于规则分析器部件302未能基于可视化状态128和命令定位更新后的可视化状态,请求器部件304被配置为将命令传输给服务器计算设备104。服务器计算设备104响应于接收到命令,可以生成更新后的可视化并且将这样的可视化传输回客户端计算设备102用于在显示器112上呈现。
当规则分析器部件302基于当前可视化状态128和命令标识规则中的更新后的可视化状态时,变换标识器部件306可以在预取高速缓存130中定位更新后的可视化状态。具体地,如上所述,每个变换用在执行变换时产生的可视化状态被标记。因此,变换标识器部件306可以搜索预取高速缓存130并且标识产生更新后的可视化状态的变换。变换标识器部件306然后可以被配置为将所标识的变换输出给可视化更新器部件138。
现在转到图4,示出了用于特定类型的应用的预取高速缓存130的示例性内容。应当理解,图4重阐述的示例出于解释的目的,而不意在将权利要求的范围限于下面描述的应用或特定的可视化状态。在示例性实施例中,应用(例如,客户端侧应用118和服务器侧应用124的组合)可以被配置为在数据立方体上执行查询并且基于这样的查询呈现可视化。此外,应用可以被配置有产生预测的预测特征(在时间上向前的投影的数据点)和/或产生后报(hindcast)的后报特征(在时间上向后的投影的数据点)。
在示例中,数据立方体可以包括关于2005年和2013年之间的航空公司的乘客的数据。预测特征可以被配置为将数据点投影到未来(例如,2014年,2015年等),而后报特征可以被配置为在时间上向前投影数据点,但是相对于过去的时间。例如,后报特征可以表示如下:“如果预测是一年前创建的,则预测看上去将是如何”,其中在构造后报时不考虑来自最后一年的实际数据。后报特征特别好地适合于估计预测特征的质量,使得用户可以确定关于实际数据的预测的准确性。在该示例中,可视化状态可以由三个值定义:1)定义针对预测的时间窗口的值;2)定义后报的时间窗口的值;以及3)指示可视化是否包括表示投影中的不确定性的误差范围的值。由于数据点是投影,因此存在与其相关的一些不确定性——误差范围可以可视地描绘这种不确定性。
给定前述内容,预取高速缓存130可以包括第一变换树402和第二变换树404(例如,从服务器计算设备104接收的)。第一变换树402包括根变换406,根变换406是当被执行时产生由以下值定义的可视化状态“1”的变换:Forecast(预测)=1,Hindcast(后报)=0和ErrRange(误差范围)=No(否)(例如,具有可视化状态的可视化将显示一个月的预测,没有后报,并且没有误差范围)。根变换406是绝对变换,因为其可以被执行而不管当前可视化状态128。
根可视化406具有两个直接子变换408-410。子变换408产生可视化状态“1.1”,其由以下值定义:Forecast=2,Hindcast=0和ErrRange=No。子变换410在被执行时产生可视化状态“1.2”,其由以下值定义:Forecast=1,Hindcast=0和ErrRange=Yes(是)。子变换408-410是相对变换,因为为了产生可视化状态1.1或可视化状态1.2,可视化114在执行这样的变换之前必须具有可视化状态“1”。因此,可视化状态128必须是“1”,或者根变换406必须在执行子变换408-410中的任一个之前执行。
第一变换树402还包括两个附加子变换412和414,它们各自是变换408的直接子节点。变换412在被执行时产生具有可视化状态“1.1.1”的可视化,而变换414在被执行时产生具有可视化状态“1.1.2”的可视化。可视化状态“1.1.1”由以下值定义:Forecast=3,Hindcast=0,ErrRange=No,而可视化状态“1.1.2”由以下值定义:Forecast=2,Hindcast=0,ErrRange=Yes。类似于上面已经描述的,关于变换408和410,变换412和414是相对的。也就是说,为了执行变换412或变换414,可视化状态128必须是“1.1”,或者可视化状态必须被驱动到“1.1”(例如,通过执行根变换406,之后是变换408)。
第二变换树404具有根变换416,根变换416在被执行时产生具有可视化状态“2”的可视化。可视化状态“2”由以下值定义:Forecast=0,Hindcast=1,ErrRange=No。根变换416是绝对的,因为根变换416不取决于可视化状态。第二变换树404还包括子变换418-422,子变换418-422是根变换416的直接子节点。当被执行时,子变换418产生具有可视化状态“2.1”的可视化,子变换420产生具有可视化状态“2.2”的可视化,并且子变换422产生具有可视化状态“2.3”的可视化。可视化状态“2.1”由以下值定义:Forecast=1,Hindcast=1,ErrRange=No,可视化状态“2.2”由以下值定义:Forecast=0,Hindcast=1,ErrRange=Yes,可视化状态“2.3”由以下值定义:Forecast=1,Hindcast=1,ErrRange=Yes。因此,对于要执行的变换418-422,可视化114的可视化状态128必须是状态“2”。可视化114可以已经具有可视化状态“2”,或者可以通过在可视化114上执行根变换416而使其具有可视化状态“2”。
第二变换树404还包括子变换424和426,子变换424和426是变换418的直接子节点。子变换424在被执行时产生具有可视化状态“2.1.1”的可视化,而子变换426在被执行时产生具有可视化状态“2.1.2”的可视化。可视化状态“2.1.1”由以下值定义:Forecast=2,Hindcast=1,ErrRange=No,可视化状态“2.1.2”由以下值定义:Forecast=2,Hindcast=1,ErrRange=Yes。
现在给出关于图4所示的预取高速缓存130的示例。客户端计算设备102的用户可以请求与数据立方体中的数据(例如,所引用的销售数据)相对应的可视化。在该示例中,假定可视化114受三个参数影响:1)要预测的月数;2)要后报的月数;和3)是否要为预测数据显示误差范围。因此,服务器侧应用124可以接收构造具有由值Forecast=0,Hindcast=0,ErrRange=No定义的可视化状态“0”的可视化的请求,并且可视化生成器部件126可以基于请求构造可视化(具有可视化状态“0”)。可视化生成器部件126然后可以将可视化(和可视化状态)传输给客户端计算设备102,其中客户端侧应用118然后在显示器112上将可视化显示为可视化114。客户端计算设备102和服务器计算设备104上的可视化状态128被更新为状态“0”。
用户然后可以与在显示器112上被绘制的可视化114交互(例如,通过输入接口116)。例如,交互检测器部件134可以检测在可视化中产生一个月的预测的请求。响应于接收到这样的请求,交互检测器部件134可以生成以下命令:SetForecast=1。高速缓存分析器部件136可以接收该命令,并且在规则132中搜索对[状态“0”,SetForecast(设置预测)=1]的规则。根据示例,规则132可以包括以下规则:[状态“0”,SetForecast=1]→状态“1”。因此,高速缓存分析器部件136可以将状态“1”标识为用户请求的可视化状态。
高速缓存分析器部件136然后可以在预取高速缓存130中搜索用可视化状态“1”标记的变换。在该示例中,根变换406用可视化状态“1”被标记。因为该变换是绝对变换,所以可视化更新器部件138可以(独立地)应用这样的变换406,这导致产生具有期望的可视化状态(状态“1”)的可视化。然后更新可视化状态128(在客户端计算设备102和服务器计算设备104两者上),并且根据由客户端计算设备102的用户阐述的请求来更新被显示在显示器112上的可视化114(例如,在没有服务器计算设备104构造可视化114的情况下)。虽然上面的示例已经描述了高速缓存分析器部件136基于可视化状态来搜索预取高速缓存130,但是应当理解,高速缓存分析器部件136可以被配置为基于其他类型的数据来搜索预取高速缓存130。例如,高速缓存分析器部件136可以被配置为基于变量值来进行搜索,其中在示例中,高速缓存分析器部件136可以在预取高速缓存130中搜索具有某些变量值(例如,定义状态)的变换。
随后,客户端计算设备102的用户还可以通过输入接口116与可视化114交互,使得用户请求具有一个月的后报的可视化。交互检测器部件134可以检测该交互,并且可以基于交互产生命令SetHindcast(设置后报)=1。高速缓存分析器部件136可以接收命令,并且可以在规则132中搜索对[状态“1”,SetHindcast=1]。例如,规则132可以包括以下规则:[状态“1”,SetHindcast=1]→状态“2.1”。高速缓存分析器部件136响应于标识规则,然后被配置为在预取高速缓存130中搜索用状态“2.1”标记的变换。这里,可以确定变换418用状态“2.1”被标记,并且变换418是相对变换。
因此,在执行变换418之前,可视化状态必须是状态“2”。由于可视化状态128的值为“1”,因此变换418不能直接应用于在显示器112上被绘制的可视化114。相反,可视化状态可以通过首先执行根变换416而被驱动到状态“2”(其不取决于可视化状态),其驱动可视化以具有状态“2”。随后,执行子变换418,从而更新可视化114以具有期望的可视化状态(状态“2.1”)。状态更新器部件140将可视化状态128更新为状态“2.1”,并且将可视化传输给服务器计算设备104,使得高速缓存更新器部件130可以基于示出在显示器112上的可视化114的当前可视化状态来生成另外的变换。
参考图5,示出了对应于可视化状态“0”(以上参考)的示例性可视化500。可以确定可视化500不包括任何预测数据点或后报数据点。转向图6,示出了具有可视化状态“1”的可视化600,其中呈现了一个月的预测(用虚线示出),但是没有示出后报,并且不呈现错误范围(例如,Forecast=1;Hindcast=0;ErrRange=No)。现在参考图7,示出了具有可视化状态“1.2”的可视化700,其中呈现一个月的预测(以虚线示出),并且为一个月的预测分配误差范围(示出为围绕预测的线)。可视化状态“1.2”由值(Forecast=1,Hindcast=0和ErrRange=Yes)定义。可视化状态“1.2”可以从第一变换树402中的可视化状态“1”直接到达。现在参考图8,示出了具有可视化状态“2.1”的示例性可视化800,其中可视化状态“2.1”由值(Forecast=1,Hindcast=1,ErrRange=No)定义。因此,可视化800包括预测(以黑色虚线示出)和后报(与观察到的数据一起以虚线示出)。
在上面阐述的示例中,可视化500可以由服务器计算设备104构造并且被传输给客户端计算设备102。然后,服务器计算设备104可以传输变换树402和404,以包括在预取高速缓存130中。当用户请求可视化600时,根变换406可以在可视化500上执行以产生可视化600,从而减少与常规系统相关联的等待时间(例如,与网络106上的传输相关联的等待时间、在服务器计算设备104处执行的处理等)。当用户请求可视化700(来自可视化600)时,相对变换410可以在可视化600上执行以产生可视化700。当用户请求可视化800(来自可视化700)时,变换可视化状态“2.1”在第二变换树404中被标识,并且高速缓存分析器部件136执行根变换416,之后是相对变换418。
图9-11示出了与更新可视化相关的示例性方法。虽然方法被示出和描述为按序列执行的一系列动作,但是应当理解和意识到,方法不受序列的顺序的限制。例如,一些动作可以以与本文中所描述的顺序不同的顺序发生。此外,一个行为可以与另一行为同时发生。此外,在一些情况下,并非需要所有动作来实现本文中所描述的方法。
此外,本文中所描述的动作可以是可以由一个或多个处理器实现和/或存储在一个或多个计算机可读介质上的计算机可执行指令。计算机可执行指令可以包括例程、子例程、程序、执行线程和/或类似物。此外,方法的动作的结果可以存储在计算机可读介质中,显示在显示设备上等。
现在参考图9,示出了支持构造预取高速缓存130的示例性方法900。因此,方法900可以由服务器计算设备104执行。方法900在902处开始,并且在904处,标识关于在客户端设备上被呈现的可视化可以由用户进行的多个潜在交互。这些交互可以基于例如关于具有特定可视化状态的可视化的一组已知的可能交互来被标识。在另一示例中,当存在相对大量的潜在交互时,可以对这样的潜在交互进行推断以标识最可能由用户执行的交互。可以基于应用的历史使用、在给定特定可视化状态下执行的历史交互等来标识这样的交互。
在906,基于在904标识的潜在交互,生成多个变换。此外,这样的变换可以被布置成变换树,其中变换树中的根变换是绝对变换,并且变换树中的子变换是相对变换。
在908,构造通过命令将不同的可视化状态彼此映射的规则。在910,通过网络将在906处构造的变换树和在908构造的规则传输给客户端计算设备。在那里,客户端计算设备可以保留规则并且可以在预取高速缓存130中保留变换树。
可选地,在912,可以关于是否存在对在客户端计算设备处显示的可视化的状态的更新进行确定。如果已经进行了更新(或者存在空闲处理周期),则方法900可以返回到904,在904可以标识更多的交互。在914,可以是否已经从客户端计算设备接收到针对可视化的请求进行确定。如果不存在针对可视化的请求,则该方法可以返回到904,在904可以标识附加交互。如果已接收到针对可视化的请求,则方法900进行到916,在916基于该请求生成更新后的可视化。然后可以将更新后的可视化传输给客户端计算设备以在显示器112上呈现。方法900然后可以返回到904,在904可以标识关于所传输的可视化的多个潜在交互。如前所述,当存在空闲处理周期时,动作904-910可以由服务器计算设备104在后台执行。
现在转到图10,示出了可以由客户端计算设备102和服务器计算设备104联合执行的示例性方法1000。方法1000在1002开始,并且在1004,客户端计算设备102从服务器计算设备104请求可视化。在1006,服务器计算设备104接收请求并且基于请求构造可视化。可视化可以是任何合适的可视化,包括图形、图表、动画等。在1008,将在1006处构造的可视化传输给客户端计算设备102,并且在1010,在显示器112上显示可视化。
在1012,关于是否已经检测到关于显示可视化的交互进行确定。如果没有检测到交互,则该方法返回到1010,在1010显示可视化。同时,在服务器计算设备104上,在1014,关于在服务器计算设备104上是否存在空闲处理周期进行确定。如果不存在空闲处理周期,则方法1000返回到1006,在1006在服务器计算设备104处构造可视化或执行其他计算任务。如果在1014,确定存在空闲处理周期,则方法1000进行到1016,在1016标识预计的用户交互。在1018,构造变换树,并且在1020,将变换树传输给客户端计算设备102。在1022,在客户端计算设备上更新预取高速缓存130以包括变换树。尽管动作1018描述了单个变换树的生成,但是应当理解,可以在1020处构造多个变换树并且将其传输给客户端计算设备102。
返回到1012,如果已经检测到交互,则在1024,在客户端计算设备102处,基于检测到的交互来构造命令。在1026,关于预取高速缓存130在其中是否具有将产生所请求的可视化(使得可视化具有更新后的可视化状态)的变换进行确定。如前所述,可以通过首先解析规则132并且然后使用规则中标识的更新状态定位预取高速缓存130中的变换来标识变换。如果预取高速缓存130不包括适当的变换,则方法1000返回到1004,在1004客户端计算设备102从服务器计算设备104请求可视化。
如果在1026确定预取高速缓存130包括适当的变换,则方法1000进行到1028,在1028使用变换来更新可视化。如前所述,当变换是相对变换时,可以执行变换序列以生成更新后的可视化。在1030,将更新后的可视化状态传输给服务器计算设备104,使得可以标识更新后的(预计的)交互。
在一些情况下,可以从预取高速缓存130中移除预取高速缓存130中的一些或所有变换。例如,服务器计算设备104可以向客户端计算设备102传输指令,其中指令在由客户端侧应用118接收时引起客户端侧应用118从预取高速缓存130中移除一个或多个条目。例如,这在服务器侧应用104接收到可视化114具有或将具有如下状态的指示时发生:其中预取高速缓存130中的当前变换不支持关于这样的状态的预计交互。在另一示例中,客户端计算设备102可以引起在客户端计算设备102处存在存储器压力时从预取高速缓存130中移除一个或多个条目。另外地或替代地,当客户端计算设备102检测到存储器压力时,客户端计算设备102可以向服务器计算设备传输信号104,其中信号指示存储器压力的存在。响应于接收到信号,服务器计算设备104可以向服务器侧应用124提供对信号(或其一部分)的访问,服务器侧应用124可以执行逻辑以标识要从预取高速缓存130冲刷哪些变换(例如最不可能的变换、冗余变换等)。服务器计算设备104然后可以向客户端计算设备102传输指令,这引起客户端计算设备102从预取高速缓存130移除在从服务器计算设备104接收的指令中标识的一个或多个变换。
现在参考图11,示出了可以由客户端计算设备102执行的示例性方法1100。方法1100在1102开始,并且在1104,从服务器计算设备接收变换树。在1106,接收规则,其中每个规则将[状态,命令]对映射到更新后的可视化状态。在1108,在显示器上显示可视化,其中可视化被分配可视化状态。
在1110,标识关于可视化进行的交互。该交互可以是改变可视化的请求(例如,使得可视化具有更新后的状态)。在1112,基于在1110标识的交互来构造命令。在1114,在规则中搜索[命令,状态]对。在1116,关于在规则中是否表示上述对进行确定。如果该对不在规则中,则在1118,将针对更新后的可视化的请求传输给服务器计算设备104。此后,方法1100可以进行到动作1104、1106或1108中的任一个。
如果在1116确定上述对被包括在规则中的规则中,则方法1100进行到1120,在1120在变换树中搜索在规则中标识的更新后的可视化状态。在1122,关于预取高速缓存130中是否包括用更新后的状态标记的变换进行确定。如果在预取高速缓存130中不存在用更新后的状态标记的变换,则方法1100前进到1118,在1118将针对更新后的可视化的请求传输给服务器计算设备104。如果确定该变换被包括在预取高速缓存130中,则在1124,将可视化更新为具有更新后的可视化状态。在1126,将更新后的可视化状态传输给服务器计算设备104。
现在阐述各种示例。
示例1:一种与服务器计算设备进行网络通信的客户端计算设备,客户端计算设备包括:处理器;以及存储器,其包括由处理器执行的应用,应用包括:交互检测器部件,其被配置为基于关于在计算设备的显示器上呈现的可视化的检测到的交互来构造命令,可视化具有描述可视化的第一可视化状态,命令指示可视化要被更新为具有第二可视化状态;预取高速缓存,其包括由客户端计算设备从服务器计算设备接收的变换,其中变换中的每个变换用由于变换的执行而产生的相应可视化状态被标记;高速缓存分析器部件,其被配置为基于可视化命令和第一可视化状态来确定被配置为将可视化对象更新为第二可视化状态的变换是否被包括在预取高速缓存中;以及可视化更新器部件,其响应于高速缓存分析器部件确定变换被包括在预取高速缓存中,被配置为基于变换来更新可视化使得可视化具有第二可视化状态。
示例2:根据示例1的客户端计算设备,应用还包括状态更新器部件,其被配置为响应于可视化更新器计算更新可视化来向服务器计算设备传输消息,消息指示可视化具有第二可视化状态。
示例3:根据示例1-2中任一项的客户端计算设备,应用还包括请求器部件,其响应于高速缓存分析器部件确定预取高速缓存未能包括变换,被配置为向服务器计算设备传输更新可视化的请求,其中应用被配置为响应于从服务器计算设备接收到更新后的可视化来在显示器上绘制更新后的可视化。
示例4:如示例1-3中任一项的客户端计算设备,还包括输入接口,其被配置为接收关于可视化的交互,输入接口是触敏显示器。
示例5:根据示例1-4中任一项的客户端计算设备,变换用声明性语言编写。
示例6:根据示例1-5中任一项的客户端计算设备,应用包括规则集,规则集包括规则,规则映射包括以下各项的对:第一可视化状态;以及到第二可视化状态的命令,其中高速缓存分析器部件被配置为通过基于第一变换状态和命令搜索规则集来确定预取高速缓存包括变换。
示例7:根据示例1-6中任一项的客户端计算设备,预取高速缓存包括变换树,其中变换被包括作为变换树中的节点。
示例8:根据示例7的客户端计算设备,其中变换是变换树中的根变换,根变换是独立于第一可视化状态的绝对变换。
示例9:根据示例7的客户端计算设备,其中变换是变换树中的子变换,子变换是取决于可视化状态的相对变换。
示例10:根据示例1-9中任一项的客户端计算设备,可视化是图表、图形或表格之一。
示例11:一种由与服务器计算设备通信的客户端计算设备执行的方法,方法包括:在显示器上显示可视化,可视化具有至少部分定义可视化的第一可视化状态;从服务器计算设备接收变换,变换在被应用于可视化时引起可视化具有不同于第一可视化状态的第二可视化状态;在客户端计算设备上的预取高速缓存中存储变换;检测修改可视化的请求;响应于检测到请求,标识预取高速缓存中的变换满足请求;以及响应于标识预取高速缓存中的变换满足请求,使用预取高速缓存中的变换来更新可视化使得可视化具有第二可视化状态。
示例12:根据示例11的方法,还包括:接收修改可视化的第二请求;响应于接收到第二请求,标识预取高速缓存未能包括满足第二请求的第二变换;响应于标识预取高速缓存未能包括第二变换,从服务器计算设备请求更新后的可视化;从服务器计算设备接收更新后的可视化;以及在显示器上显示更新后的可视化。
实施例13:根据实施例11-12中任一项的方法,变换使用声明性语言。
示例14:根据示例11-13中任一项的方法,其中标识预取高速缓存中的变换满足请求包括:标识请求对应于第二可视化状态;基于第二可视化状态在预取高速缓存中进行搜索;以及标识变换被分配第二可视化状态。
示例15:根据示例14的方法,还包括:标识要向可视化应用的变换序列满足请求,其中变换是变换序列中的最后的变换;以及使用变换序列来更新可视化。
示例16:根据示例11-15中任一项的方法,变换是独立于具有第一状态的可视化的绝对变换。
实施例17:根据实施例11-15中任一项的方法,变换是取决于具有第一状态的可视化的相对变换。
示例18:根据示例11-17中任一项的方法,还包括:接收多个规则,多个规则中的每个规则通过相应命令将初始可视化状态映射到目的地可视化状态,其中标识预取高速缓存中的变换满足请求包括在多个规则中搜索包括第一可视化状态和与请求相对应的命令二者的规则,命令由客户端计算设备响应于检测到修改可视化的请求来构造。
示例19:根据示例11-18中任一项的方法,还包括:向服务器计算设备传输针对可视化的请求,请求标识数据立方体;以及从服务器计算设备接收可视化,可视化是基于数据立方体的内容的图表、图形或表格之一。
示例20:一种在客户端计算设备上的计算机可读存储介质,计算机可读存储介质包括指令,指令在由处理器执行时引起处理器执行包括以下各项的动作:在显示器上显示可视化,可视化具有第一可视化状态;从与客户端计算设备进行网络通信的服务器计算设备接收变换树,变换树中的每个变换对应于相应的可视化状态;从服务器计算设备接收多个规则,每个规则通过相应的命令将相应可视化状态彼此映射;检测关于在显示器上显示的可视化的交互;响应于检测到交互,生成命令,命令指示要对可视化进行的修改;标识多个规则中的包括第一可视化状态和命令的规则;基于规则,标识变换树中的变换,变换支持对可视化进行的修改的执行;以及基于变换树中的变换在显示器上绘制可视化的修改。
示例21:一种客户端计算设备,包括:用于在显示器上显示可视化的装置,可视化具有至少部分定义可视化的第一可视化状态;用于从服务器计算设备接收变换的装置,变换在被应用于可视化时引起可视化具有不同于第一可视化状态的第二可视化状态;用于在客户端计算设备上的预取高速缓存中存储变换的装置;用于检测修改可视化的请求的装置;用于标识预取高速缓存中的变换满足请求的装置;以及用于使用预取高速缓存中的变换来更新可视化使得可视化具有第二可视化状态的装置。
现在参考图12,示出了可以根据本文中公开的系统和方法使用的示例性计算设备1200的高级图示。例如,计算设备1200可以在支持预计用户交互并构造变换树的系统中使用(例如,计算设备1200可以是服务器计算设备104)。作为另一示例,计算设备1200可以在支持在可视化上执行变换以生成更新后的可视化的系统中使用(例如,计算设备1200可以是客户端计算设备102)。计算设备1200包括执行存储在存储器1204中的指令的至少一个处理器1202。指令可以是例如用于实现被描述为由上述一个或多个部件执行的功能的指令或用于实现上述方法中的一个或多个的指令。处理器1202可以通过系统总线1206访问存储器1204。除了存储可执行指令之外,存储器1204还可以存储可视化、变换、规则等。
计算设备1200另外包括由处理器1202通过系统总线1206可访问的数据储存库1208。数据储存库1208可以包括可执行指令、数据库、可视化、变换、规则等。计算设备1200还包括允许外部设备与计算设备1200通信的输入接口1210。例如,输入接口1210可以用于从外部计算机设备、从用户等接收指令。计算设备1200还包括将计算设备1200与一个或多个外部设备对接的输出接口1212。例如,计算设备1200可以通过输出接口1212显示文本、图像等。
设想经由输入接口1210和输出接口1212与计算设备1200通信的外部设备可以被包括在提供用户可以与之交互的基本上任何类型的用户接口的环境中。用户接口类型的示例包括图形用户接口、自然用户接口等。例如,图形用户界面可以接受来自使用诸如键盘、鼠标、遥控器等一个或多个输入设备的用户的输入,并且在诸如显示器的输出设备上提供输出。此外,自然用户界面可以使得用户能够以不受诸如键盘、鼠标、遥控器等输入设备强加的约束的方式与计算设备1200交互。相反,自然用户界面可以依赖于语音识别、触摸和触笔识别、屏幕上和屏幕附近的手势识别、空中手势、头部和眼睛跟踪、声音和语音、视觉、触摸、手势、机器智能等。
另外,虽然被示出为单个系统,但是应当理解,计算设备1200可以是分布式系统。因此,例如,若干设备可以通过网络连接进行通信,并且可以共同地执行被描述为由计算设备1200执行的任务。
本文中所描述的各种功能可以用硬件、软件或其任何组合来实现。如果用软件实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质传输。计算机可读介质包括计算机可读存储介质。计算机可读存储介质可以是可以由计算机可访问的任何可用存储介质。作为示例而非限制,这样的计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其他磁存储设备、或可以用于以指令或数据结构的形式携带或存储期望的程序代码,并且可以由计算机访问的任何其它介质。如本文中所使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光学盘、数字通用光盘(DVD)、软盘和蓝光光盘(BD),其中磁盘通常磁性地再现数据,光盘通常用激光光学地再现数据。此外,传播信号不被包括在计算机可读存储介质的范围内。计算机可读介质还包括通信介质,其包括支持将计算机程序从一个地方传送到另一地方的任何介质。例如,连接可以是通信介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(DSL)或诸如红外、无线电和微波的无线技术从网站、服务器或其他远程源传输软件,则同轴电缆、光纤电缆、双绞线、DSL或诸如红外、无线电和微波的无线技术被包括在通信介质的定义中。上述的组合也应当被包括在计算机可读介质的范围内。
备选地或另外地,本文中描述的的功能至少部分可以由一个或多个硬件逻辑部件执行。例如而非限制,可以使用的硬件逻辑部件的说明性类型包括现场可编程门阵列(FPGA)、程序特定集成电路(ASIC)、程序特定标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。
上面描述的内容包括一个或多个实施例的示例。当然,为了描述上述方面的目的,不可能描述上述设备或方法的每个可想到的修改和改变,但是本领域普通技术人员可以认识到,各种方面的很多进一步的修改和置换是可能的。因此,所描述的方面意在包括落入所附权利要求的精神和范围内的所有这样的改变、修改和变化。此外,在术语“包括”用于细节描述或权利要求中的程度上,这样的术语意在以类似于术语“包括”的方式是包括型的,因为“包含”在权利要求中被用作过渡性词。

Claims (15)

1.一种与服务器计算设备进行网络通信的客户端计算设备,所述客户端计算设备包括:
处理器;以及
存储器,其包括由所述处理器执行的应用,所述应用包括:
交互检测器部件,其被配置为基于关于在所述客户端计算设备的显示器上呈现的可视化的检测到的交互来构造命令,所述可视化具有描述所述可视化的第一可视化状态,所述命令指示所述可视化要被更新为具有第二可视化状态;
预取高速缓存,其包括由所述客户端计算设备从所述服务器计算设备接收的变换,其中所述变换中的每个变换用由于变换的执行而导致的相应可视化状态被标记;
高速缓存分析器部件,其被配置为基于所述命令和所述第一可视化状态来确定被配置为将所述可视化更新为所述第二可视化状态的变换是否被包括在所述预取高速缓存中;以及
可视化更新器部件,其响应于所述高速缓存分析器部件确定所述变换被包括在所述预取高速缓存中,被配置为基于所述变换来更新所述可视化以使得所述可视化具有所述第二可视化状态。
2.根据权利要求1所述的客户端计算设备,所述应用还包括状态更新器部件,其被配置为响应于所述可视化更新器计算更新所述可视化来向所述服务器计算设备传输消息,所述消息指示所述可视化具有所述第二可视化状态。
3.根据权利要求1所述的客户端计算设备,所述应用还包括请求器部件,其响应于所述高速缓存分析器部件确定所述预取高速缓存未能包括所述变换,被配置为向所述服务器计算设备传输更新所述可视化的请求,其中所述应用被配置为响应于从所述服务器计算设备接收到更新后的所述可视化来在所述显示器上绘制更新后的所述可视化。
4.根据权利要求1所述的客户端计算设备,所述变换用声明性语言编写。
5.根据权利要求1所述的客户端计算设备,所述应用包括规则集,所述规则集包括规则,所述规则映射包括以下各项的对:
所述第一可视化状态;以及
到所述第二可视化状态的所述命令,其中所述高速缓存分析器部件被配置为通过基于所述第一可视化状态和所述命令搜索所述规则集来确定所述预取高速缓存包括所述变换。
6.根据权利要求1所述的客户端计算设备,所述预取高速缓存包括变换树,其中所述变换被包括作为所述变换树中的节点。
7.根据权利要求6所述的客户端计算设备,其中所述变换是所述变换树中的根变换,所述根变换是独立于所述第一可视化状态的绝对变换。
8.根据权利要求6所述的客户端计算设备,其中所述变换是所述变换树中的子变换,所述子变换是取决于可视化状态的相对变换。
9.一种由与服务器计算设备通信的客户端计算设备执行的方法,所述方法包括:
在显示器上显示可视化,所述可视化具有至少部分定义所述可视化的第一可视化状态;
从所述服务器计算设备接收变换,所述变换在被应用于所述可视化时引起所述可视化具有不同于所述第一可视化状态的第二可视化状态;
在所述客户端计算设备上的预取高速缓存中存储所述变换;
检测修改所述可视化的请求;
响应于检测到所述请求,标识所述预取高速缓存中的所述变换满足所述请求;以及
响应于标识所述预取高速缓存中的所述变换满足所述请求,使用所述预取高速缓存中的所述变换来更新所述可视化以使得所述可视化具有所述第二可视化状态。
10.根据权利要求9所述的方法,还包括:
接收修改所述可视化的第二请求;
响应于接收到所述第二请求,标识所述预取高速缓存未能包括满足所述第二请求的第二变换;
响应于标识所述预取高速缓存未能包括所述第二变换,从所述服务器计算设备请求更新后的可视化;
从所述服务器计算设备接收更新后的所述可视化;以及
在所述显示器上显示更新后的所述可视化。
11.根据权利要求9所述的方法,其中标识所述预取高速缓存中的所述变换满足所述请求包括:
标识所述请求对应于所述第二可视化状态;
基于所述第二可视化状态来在所述预取高速缓存中进行搜索;以及
标识所述变换被分配所述第二可视化状态。
12.根据权利要求11所述的方法,还包括:
标识要向所述可视化应用以满足所述请求的变换序列,其中所述变换是所述变换序列中的最后的变换;以及
使用所述变换序列来更新所述可视化。
13.根据权利要求9所述的方法,所述变换是独立于具有所述第一状态的所述可视化的绝对变换。
14.根据权利要求9所述的方法,所述变换是取决于具有所述第一状态的所述可视化的相对变换。
15.根据权利要求9所述的方法,还包括:
接收多个规则,所述多个规则中的每个规则通过相应命令将初始可视化状态映射到目的地可视化状态,其中标识所述预取高速缓存中的所述变换满足所述请求包括在所述多个规则中搜索包括所述第一可视化状态和与所述请求相对应的命令二者的规则,所述命令由所述客户端计算设备响应于检测到修改所述可视化的所述请求而被构造。
CN201580056656.8A 2014-10-20 2015-10-20 用于可视化修改的预取高速缓存 Active CN107077392B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/518,683 US10038749B2 (en) 2014-10-20 2014-10-20 Pre-fetch cache for visualization modification
US14/518,683 2014-10-20
PCT/US2015/056289 WO2016064767A1 (en) 2014-10-20 2015-10-20 Pre-fetch cache for visualization modification

Publications (2)

Publication Number Publication Date
CN107077392A true CN107077392A (zh) 2017-08-18
CN107077392B CN107077392B (zh) 2020-09-25

Family

ID=54366530

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580056656.8A Active CN107077392B (zh) 2014-10-20 2015-10-20 用于可视化修改的预取高速缓存

Country Status (4)

Country Link
US (1) US10038749B2 (zh)
EP (1) EP3210117B1 (zh)
CN (1) CN107077392B (zh)
WO (1) WO2016064767A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8520000B2 (en) 2008-07-02 2013-08-27 Icharts, Inc. Creation, sharing and embedding of interactive charts
US9665654B2 (en) * 2015-04-30 2017-05-30 Icharts, Inc. Secure connections in an interactive analytic visualization infrastructure
US10861202B1 (en) 2016-07-31 2020-12-08 Splunk Inc. Sankey graph visualization for machine data search and analysis system
US10853380B1 (en) 2016-07-31 2020-12-01 Splunk Inc. Framework for displaying interactive visualizations of event data
US11037342B1 (en) * 2016-07-31 2021-06-15 Splunk Inc. Visualization modules for use within a framework for displaying interactive visualizations of event data
US10459939B1 (en) 2016-07-31 2019-10-29 Splunk Inc. Parallel coordinates chart visualization for machine data search and analysis system
US10459938B1 (en) 2016-07-31 2019-10-29 Splunk Inc. Punchcard chart visualization for machine data search and analysis system
US20200341903A1 (en) * 2019-04-23 2020-10-29 Dove Ventures, LLC Data caching, dynamic code generation, and data visualization technology

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040186840A1 (en) * 2003-03-20 2004-09-23 International Business Machines Corporation Partial data model exposure through client side caching
CN1641645A (zh) * 2004-01-16 2005-07-20 微软公司 用于控制可视结果集合的系统和方法
US20100122175A1 (en) * 2008-11-12 2010-05-13 Sanjay Gupta Tool for visualizing configuration and status of a network appliance
CN103678578A (zh) * 2013-12-10 2014-03-26 广东威创视讯科技股份有限公司 一种数据可视化处理方法、服务器及数据可视化处理系统
US8832184B1 (en) * 2006-04-06 2014-09-09 Versata Development Group, Inc. Predictive prefetching of data from remote client-state cache from server to update local client-state cache

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6122666A (en) 1998-02-23 2000-09-19 International Business Machines Corporation Method for collaborative transformation and caching of web objects in a proxy network
US6622168B1 (en) * 2000-04-10 2003-09-16 Chutney Technologies, Inc. Dynamic page generation acceleration using component-level caching
IES20010887A2 (en) 2001-10-08 2002-10-02 Val Cassidy A database interface
EP1502207A2 (en) * 2002-01-18 2005-02-02 Idetic, Inc. A multi-tiered caching mechanism for the storage and retrieval of content multiple versions
US8626136B2 (en) 2006-06-29 2014-01-07 Microsoft Corporation Architecture for user- and context-specific prefetching and caching of information on portable devices
US8473859B2 (en) * 2007-06-08 2013-06-25 Apple Inc. Visualization and interaction models
US20080307330A1 (en) * 2007-06-08 2008-12-11 Apple Inc. Visualization object divet
US8561116B2 (en) 2007-09-26 2013-10-15 Charles A. Hasek Methods and apparatus for content caching in a video network
US7975025B1 (en) 2008-07-08 2011-07-05 F5 Networks, Inc. Smart prefetching of data over a network
US8321533B2 (en) 2009-08-03 2012-11-27 Limelight Networks, Inc. Systems and methods thereto for acceleration of web pages access using next page optimization, caching and pre-fetching techniques
US8788577B2 (en) * 2010-06-22 2014-07-22 Akamai Technologies, Inc. Method and system for automated analysis and transformation of web pages
US8949739B2 (en) * 2011-10-28 2015-02-03 Microsoft Technology Licensing, Llc Creating and maintaining images of browsed documents
US10664479B2 (en) * 2014-06-27 2020-05-26 Sap Se Accommodating concurrent changes in underlying data during reporting

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040186840A1 (en) * 2003-03-20 2004-09-23 International Business Machines Corporation Partial data model exposure through client side caching
CN1641645A (zh) * 2004-01-16 2005-07-20 微软公司 用于控制可视结果集合的系统和方法
US8832184B1 (en) * 2006-04-06 2014-09-09 Versata Development Group, Inc. Predictive prefetching of data from remote client-state cache from server to update local client-state cache
US20100122175A1 (en) * 2008-11-12 2010-05-13 Sanjay Gupta Tool for visualizing configuration and status of a network appliance
CN103678578A (zh) * 2013-12-10 2014-03-26 广东威创视讯科技股份有限公司 一种数据可视化处理方法、服务器及数据可视化处理系统

Also Published As

Publication number Publication date
EP3210117A1 (en) 2017-08-30
CN107077392B (zh) 2020-09-25
EP3210117B1 (en) 2018-08-15
US10038749B2 (en) 2018-07-31
WO2016064767A1 (en) 2016-04-28
US20160112511A1 (en) 2016-04-21

Similar Documents

Publication Publication Date Title
CN107077392A (zh) 用于可视化修改的预取高速缓存
KR102186864B1 (ko) 네트워크 토폴로지 적응형의 데이터 시각화 방법, 장치, 설비 및 저장 매체
US11036695B1 (en) Systems, methods, apparatuses, and/or interfaces for associative management of data and inference of electronic resources
US11361510B2 (en) Optimizing virtual data views using voice commands and defined perspectives
CN110363853A (zh) 家具摆放方案生成方法、装置以及设备、存储介质
US10832457B2 (en) Interface for data analysis
JP6013642B2 (ja) 体験コンテンツデータセットに関するキャンペーン最適化
CN108701014A (zh) 用于尾部查询的查询数据库
CN104106066A (zh) 用于查看和操纵在时间参考点处的产物的系统
CN110390153A (zh) 户型结构改造方案的生成方法、装置以及设备、存储介质
CN109471805A (zh) 资源测试方法及装置、存储介质、电子设备
CN108255706A (zh) 自动化测试脚本的编辑方法、装置、终端设备及存储介质
CN105580043A (zh) 用于推荐系统的基于强度的建模
CN111966361A (zh) 用于确定待部署模型的方法、装置、设备及其存储介质
CN107729396A (zh) 数据动态查询方法及装置
JP2009134520A (ja) ソーシャルネットワーク表示システム、方法、及びプログラム
US20200081912A1 (en) Identifying physical objects using visual search query
CN109155004A (zh) 用于强化学习代理的无模型控制
US10627984B2 (en) Systems, devices, and methods for dynamic virtual data analysis
CN110352418A (zh) 通过消歧对话问题来进行查询消歧
CN112508163B (zh) 神经网络模型中子图的展示方法、装置和存储介质
JP2020052783A (ja) 学習装置、学習方法及びプログラム
CN112632309B (zh) 图像展示方法、装置、电子设备和存储介质
US20220230233A1 (en) Virtual Environment Arrangement and Configuration
CN110706772A (zh) 一种排序方法及装置、电子设备、存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant