首页> 中国专利> 用于基于WEB的图表可视化的可扩展性

用于基于WEB的图表可视化的可扩展性

摘要

通过允许图表更新引擎起动定制数据模块来实现基于WEB的图表可视化服务中的可扩展体系结构和数据流。用于不固有地受支持的数据源的数据模块通过专门定义的接口(例如.NET程序集)由第三方创建,且使得它对基于WEB的图表服务可见并可以从图表更新引擎调用。因而,可以从中检索图表数据的许多数据源以及操纵和聚集输入的数据的方式是可以通过代码来扩展的。

著录项

  • 公开/公告号CN102292719A

    专利类型发明专利

  • 公开/公告日2011-12-21

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200980155363.X

  • 申请日2009-12-04

  • 分类号G06F15/16(20060101);G06F9/06(20060101);G06F9/44(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人蔡悦

  • 地址 美国华盛顿州

  • 入库时间 2023-12-18 04:12:59

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-09-21

    授权

    授权

  • 2015-08-12

    专利申请权的转移 IPC(主分类):G06F15/16 变更前: 变更后: 登记生效日:20150721 申请日:20091204

    专利申请权、专利权的转移

  • 2012-02-08

    实质审查的生效 IPC(主分类):G06F15/16 申请日:20091204

    实质审查的生效

  • 2011-12-21

    公开

    公开

说明书

背景技术

计算机和软件对人们的日常生活的主要贡献中的一种是诸如文字处理、电子表 格计算和图表表现等的广泛使用的任务的自动化。这些应用程序不仅自动化并使各 种任务可被任何人使用,而且它们也增加了操纵各种各样的文档和数据的许多新的 能力。直到最近,典型的环境包括带有被安装在其上的单机或联网的计算机。因而, 用户使用也被本地存储的数据借助于在他们的本地的计算机上安装和执行的应用 程序来工作。这一方法的一个缺点是,每当可获得更新版本、替换计算设备等等时, 必须重新安装应用程序,且用户需要在其上安装有软件的机器上工作。

近来的无需将全尺寸应用程序安装在用户的计算机上的负担就提供相同的文 档创建和操纵能力的趋势是允许用户通过web访问来执行相同的任务。在典型的 web访问服务中,用户可以利用受控的服务来通过诸如因特网等的联网介质创建新 的文档、操纵现有的文档。文档可以由受控的服务存储或被存储在用户的本地计算 机处。典型的web访问服务是用于数据可视化(例如图表表现)。一些数据可视化管 线受限于刷新来自一组有限的已知数据源的数据。在没有允许插入来自定制数据源 的数据的规定的情况下,在渲染数据的浏览器请求被web服务器处理时,来自非 本机的源数据必须适配成受支持的数据源。

发明内容

提供本概述以便以简化形式介绍下面在详细描述中进一步描述的概念的选集。 本概述不旨在排他性地标识所要求保护的本主题的关键特征或必要特征,也不旨在 辅助确定所要求保护的本主题的范围。

各实施方式针对允许图表更新引擎起动定制代码模块的可扩展的体系结构和 数据流。根据一些实施方式的接口允许数据源的第三方创建,并使得它们对于基于 web的图表服务来说是可见的,且可以从图表更新引擎调用。因而,可以从中检索 图表数据的许多数据源以及操纵和聚集输入数据的方式是可以通过使用根据各实 施方式的数据模型的代码来扩展的。

从下列详细描述的阅读和关联的图的查阅中可以明显看出这些和其他特征和 优点。应理解,前述的一般描述和下列的详细描述两者是解释性的且不限制所要求 保护的方面。

附图说明

图1是其中可以实现各实施方式的阐释示例web可访问的图表表现服务的概 念图;

图2是阐释在基于web的图表表现服务中的数据的更新期间的数据流的顺序 图;

图3是阐释根据各实施方式的在基于web的图表表现服务中的数据的更新期 间数据流的另一时序图;

图4是阐释实现各实施方式的带有多个数据源的基于web的图表表现服务中 的主要组件的概念图;

图5是其中可以实现根据各实施方式的系统的联网环境;

图6是其中可以实现各实施方式的示例计算操作环境的框图;以及

图7阐释提供根据各实施方式的web可访问的图表表现服务的过程的逻辑流 程图。

具体实施方式

如以上简要地描述的,可扩展的体系结构和数据流可以被用来允许图表更新引 擎起动用于检索、操纵和聚集来自各种源的数据的定制代码模块,且接口被用来允 许通过定制数据模块与非本机的数据源通信。在下列的详细描述中,对附图进行引 用,附图形成详细描述的部分,且作为阐释具体的实施方式或示例而示出附图。可 以组合这些方面,可以利用其他方面,且可以在不偏离本公开内容的精神或范围的 前提下做出结构改变。因此不应以限制的意义理解下列的详细描述,且本发明的范 围由所附权利要求及其等效物来界定。

尽管将在结合在个人计算就的操作系统上运行的应用程序执行的程序模块的 一般上下文中描述各实施方式,但本领域中的技术人员将认识到,各方面也可以与 其他程序模块组合实现。

一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、 组件、数据结构和其他类型的结构。此外,本领域中的技术人员将明白,各实施方 式可以与包括手持式设备、多处理器系统、基于微处理器的或可编程的消费者电子 设备、小型计算机、大型计算机和可比拟的计算设备在内的其他计算机系统配置一 起实践。各实施方式也可以在分布式计算环境中实践,分布式计算环境中任务由通 过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本 地存储器存储设备和远程存储器存储设备两者。

可以将各实施方式实现为计算机实现的过程(方法)、计算系统或制品,例如计 算机程序产品或计算机可读介质。计算机程序产品可以是可由计算机系统读取的且 编码包括用于引起计算机或计算系统执行示例过程的指令在内的计算机程序的计 算机存储介质。计算机可读存储介质可以例如经由易失性计算机存储器、非易失性 存储器、硬盘驱动器、闪速驱动器、软盘或紧致盘以及类似介质中的一种或多种实 现。计算机程序产品也可以是载波(例如调频信号或调相信号)或可由计算系统读取 的、编码用于执行计算机过程的指令的计算机程序的介质上的传播的信号。

贯穿这一说明书,术语“平台”可以是用于管理基于web的图表表现服务数据 的软件组件和硬件组件的组合。平台的示例包括但不限于在多个服务器上执行的受 控服务、在单个服务器上执行的应用程序和类似的系统。术语“服务器”一般是指 通常在联网环境中执行一个或多个软件程序的计算设备。然而,服务器也可以被实 现为在一个或多个计算设备上执行的被看作是网络上的服务器的虚拟服务器(软件 程序)。

参见图1,阐释其中可以实现各实施方式的示例web可访问的图表表现服务的 概念图100。在图1的示例系统100中,用户的web服务106通过在服务器108上 执行的一个或多个web应用程序提供图表可视化功能,供用户102通过诸如在计 算设备104上执行的浏览器等的通用应用程序访问该系统。为了发起该服务,用户 102从主机服务106的服务器108请求图表。作为响应,服务器108与图表服务后 端112的服务器114通信,以检索数据、计算公式、关系等等。

各图表可以包括静态元素或动态元素。例如,一些形状、连接器和其他元素的 属性可以通过动态方式来定义,例如取决于来自可以在渲染时间轮询的可更新的数 据源(例如从被存储在其他地方的数据接收形状信息的数据条(data bar))的数 据。在一些情况中,在图表的元素之间的动态关系可以确定个体形状的属性和连接 器(例如组织结构图)的属性。

图表可视化服务可以包括受支持的数据源的列表,例如SQL表、Excel电子 表格、WSS列表等等。根据各实施方式的系统可以将那些受支持的数据源扩展到 由定制数据模块使用为该服务定义的接口来定义的任何数据源。

图2阐释在基于web的图表表现服务中的数据的更新期间的数据流的时序图 200。使用诸如web浏览器等的渲染应用程序,图表使用者可以向web服务222的 服务器群发出对所公布的图的请求(231)。web服务222可以将对图表(232)的请求 引导到诸如更新引擎等的图表服务后端。图表服务后端224(更新引擎)可以从数据 存储226检索图表定义(233,234)并解析它,寻找指示去哪里检索用于所定义的图 表视觉效果的数据的所嵌入的信息和相关的数据连通性信息。根据一种实施方式, 如果找到了一些记录集,则可以为每一记录集提取(239)下列信息:引用受支持的 数据源的连接字符串;待执行的针对受支持的数据源的查询字符串;以及预期在查 询运行之后从受支持的数据源返回的记录集数据的模式定义。

对于连接到受支持的数据源每一数据连接,图表服务后端可以调用内建数据提 供器(240),内建数据提供器(240)连接到受支持的数据源,通过运行上面针对受支 持的数据源定义的查询来检索特定的数据,并针对以上所描述的模式验证所返回的 记录集。

然后,图表服务后端224(更新引擎)可以通过以下来刷新和返回(241)图表视觉 效果定义:从图表定义解析和提取用于数据连接的图表元素的视觉效果定义;重新 评估每一图表元素的每一属性(例如背景颜色、高度)的公布时间公式,且根据来自 浏览器的请求的类型以向量或光栅格式渲染图表。web服务222可以用经更新的图 表(242)回复由浏览器发出的请求。

没有数据源可扩展性时,图表更新管线通常限于仅在更新引擎处用内建数据提 供器刷新来自数据源的数据。那些数据源可以包括顺序查询语言(SQL)表、电子表 格表和类似的广泛使用的数据源(例如WSS列表)。此外,一旦在公布时间被编码 到图表中,被用于刷新图表的可视元素数据聚集和操纵公式就可以是永久不变的。

图3阐释在根据各实施方式的基于web的图表表现服务中的数据的更新期间 的数据流的另一时序图300。根据一些实施方式,通过允许第三方用户创建基于 web的图表表现服务可见的定制数据提供器代码(也被称为定制数据模块或定制数 据提供器)以及通过允许图表公布器在它们的数据图表中引用定制数据模块来提供 数据源可扩展性。一旦检测到对定制数据模块的引用,基于web的图表表现服务 就可以将数据检索操作委托给所引用的数据模块。尽管数据模块必须实现预定义的 抽象类(例如DiagramRefreshAddOn类),但开发者可以实现各种抽象的成员的内部 定义,这给他们提供了从任何数据源检索数据(或在数据模块中生成数据)以及操纵 要注入到图表表现服务刷新管线的数据的灵活性。

图300中所表示的交互是在根据各实施方式的系统的相同的组件之间进行的, 其中从图表请求到图表定义步骤的返回与结合图2描述的动作相似。不同于图200, 如果更新引擎遇到不能由内建数据提供器处理的连接字符串,则图表表现服务后端 224可以尝试查找引用定制数据模块(335)的连接字符串。示例模块可以是以下形 式:“Assembly=<assembly>;Class=<class>;<additional information>”其中 <assembly>是数据模块程序集的共享空间名称,<class>是实现数据模块抽象类的共 享空间类名称(包括名称空间),且<additional information>是以格式[[Key=Value]…] 的附加连接/查询信息。

如果提取了连接字符串,则也可以提取针对数据源执行的有效的查询字符串。 也提取预期在查询运行之后要从数据源返回的数据的模式定义。对于对定制数据源 的每一引用,图表表现服务后端224可以将刷新委托给关联的数据模块。这需要图 表表现服务后端更新引擎返回(336)到接收最初的图表请求的前端服务器(web服务 222),并尝试查找匹配以上所描述的<assembly>和<class>令牌的任何定制数据模 块。

如果找到所有所引用的定制数据模块,则前端服务器上的更新引擎代码可以通 过以下动作来开始对数据的并行查询和异步查询:调用每一数据模块上的数据检索 (337)(例如BeginGetData),以及将以下内容作为参数传入:图表请求者的网络上下 文以便允许查询的个性化、如先前所讨论的所提取的“附加信息”、以及其他类似的 信息。数据模块运行它们的数据检索、生成和聚集代码。通过回调系统,前端服务 器(web服务222)上的代码可以管理数据模块数据检索、错误和挂起。如果一个或 多个数据模块不能执行,则整个请求失败,且可以将错误返回给最终用户。

如果没有发生错误,则数据模块将所检索的数据的结构化(例如串行化的数据 集)表示返回给数据模块驱动代码。数据返回被发送(338)给图表表现服务后端224, 图表表现服务后端224将该数据集成到图表更新操作中与其他数据提供器(定制或 内建)的数据合作。当数据模块定制代码遭遇异常时,开发者可以创建他们自己的 异常对象并将其指派给数据模块的错误特性,以便将该异常传播给更新引擎,以便 进行进一步动作。也可以用关联的异常消息将异常显示给最终用户。

对于连接到受支持的数据源(包括由定制数据模块定义的数据源)的每一数据 连接(239,240),图表更新引擎调用硬编码数据检索代码,该硬编码数据检索代码 连接到受支持的外部数据源、通过运行针对该数据源定义的查询来检索特定的数 据、并且针对以上所描述的模式验证所返回的数据。

然后,图表更新引擎可以通过解析和提取数据连接的图表元素的视觉效果定 义、重新评估每一图表元素的每一属性的公布时间公式(该公式可以包含对从预定 义的和定制的数据源检索的外部数据的引用)、以及根据来自最终用户的请求的类 型以向量格式或光栅格式渲染图表来刷新图表视觉效果定义。如图2中,web服务 用经更新的图表(242)回复请求(231)。

图200和图300中的组件和动作仅出于阐释目的,且不构成对各实施方式的限 制。其他组件、软件或硬件和配置可以被用于为基于web的图表可视化提供可扩 展性。

图4是阐释实现各实施方式的带有多个数据源的基于web的图表表现服务中 的主要组件的概念图。如许多基于web的服务中,基于web的图表表现服务包括 在三个主要组件之间的信息的交换:执行诸如浏览器等的客户机应用程序的客户机 设备452、实际上执行用于图表的渲染的计算的图表服务后端456、以及在客户机 应用程序和图表服务后端456之间协调的web服务前端454。

因而,在客户机应用程序请求带有对外部数据源的引用的图表时,web服务前 端454将请求转发给图表服务后端456。对于并不固有地受图标可视化服务支持的 数据源,可以通过采用采用定制数据模块来获得可扩展性。模块可以被安装在web 服务服务器上,且可以由数据连接字符串标识符标识。对于每一外部数据源,图表 服务后端456可以将数据连接信息传送到前端454。web服务前端454将数据连接 信息传递给实现预定义的抽象类的对应模块。例如,数据模块可以包括以下(被示 出为伪代码):

数据源(例如462,464,466)通过数据模块经可扩展的数据流接口458将数据以 预定义结构返回到web服务前端454,或者返回异常(如果是这种情况的话)。 web服务前端454将数据返回给后端以供进一步处理,该进一步处理更新图表、执 行必要的计算并将图表渲染到前端以便在客户机设备452处呈现给最终用户的浏 览器。

上面所讨论的场景、示例系统、应用程序和命令是出于阐释目的。各实施方式 不限于那些示例。其他应用程序、配置、通信模式和命令可以被用于以类似方式使 用在此描述的原理来实现用于基于web的图表表现服务的可扩展体系结构和数据 流。

图5是其中可以实现各实施方式的示例联网环境。可以经由在诸如受控服务等 的一个或多个服务器574上执行的软件实现提供用于基于web的图表可视化服务 的可扩展的体系结构和数据流的平台。该平台可以通过网络570与诸如智能电话 573、膝上型计算机572和台式计算机571(客户机设备)等的个体计算设备上的客户 机应用程序(例如浏览器)通信。web前端服务可以与在分离的服务器组576上执行 的图表服务后端通信。

如以上所描述的,定制数据模块可以被用来定义用于从不被包括在后端服务的 标准受支持的数据源列表中的数据源检索数据的过程。与基于web的图表表现服 务相关联的信息可以被存储在一个或多个数据存储(例如数据存储579)中,该数据 存储可以由服务器576或数据库服务器578中的任何一个管理。

网络570可以包括服务器、客户机、因特网服务提供商和通信介质的任何拓扑。 根据各实施方式的系统可以具有静态拓扑或动态拓扑。网络570可以包括诸如企业 网络等的安全网络、诸如无线开放网络等的非安全网络或因特网。网络570也可以 在诸如PSTN或蜂窝式网络等的其他网络上协调通信。网络570在在此描述的各节 点之间提供通信。作为示例而非限制,网络570可以包括无线介质,例如声学、 RF、红外和其他无线介质。

计算设备、应用程序、数据源和数据分布系统的许多其他配置可以被用来通过 定制数据模块实现用于提供可扩展的基于web的图表表现服务的系统。此外,图5 中讨论的联网环境仅出于阐释目的。各实施方式不限于示例应用程序、模块或进程。

图6和关联的讨论旨在提供其中可以实现各实施方式的合适的计算环境的简 要、一般的描述。参考图6,阐释诸如计算设备600等的用于根据各实施方式的应 用程序的示例计算操作环境的框图。在基本的配置中,计算设备600可以是向客户 机浏览器提供图表可视化服务的web前端服务的服务器,且包括至少一个处理单 元602和系统存储器604。计算设备600也可以包括在执行程序时合作的多个处理 单元。取决于计算设备的准确的配置和类型,系统存储器604可以是易失性存储器 (例如RAM)、非易失性存储器(例如ROM、闪存等等)或两者的某种组合。系统存 储器604通常包括适用于控制平台的操作的操作系统605,例如来自华盛顿州雷德 蒙市的微软公司的WINDOWS操作系统。系统存储器604也可以包括一个或多个 软件应用程序,例如程序模块606和图表服务622。

图表服务622可以使用如先前所讨论的定制数据模块来扩展外部数据的数据 源连接性、操纵和聚集。图表服务622可以是受控的基于web的服务的分离的应 用程序或整合模块,该服务向客户机应用程序/设备提供图表可视化服务。在图6 中由虚线608内的那些组件来阐释这一基本配置。

计算设备600可以具有附加的特征或功能。例如,计算设备600也可以包括附 加的数据存储设备(可移动的和/或不可移动的),诸如例如磁盘、光学盘或带。在图 6中由可移动存储609和不可移动存储610阐释这样的附加存储。计算机可读存储 介质可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等 的信息的任何方法或技术实现的易失性介质和非易失性介质、可移动介质和不可移 动介质。系统存储器604、可移动存储609和不可移动存储610都是计算机可读的 存储介质的示例。计算机可读存储介质包括但不限于RAM、ROM、EEPROM、闪 存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁 带、磁盘存储或其他磁存储设备或可以被用来存储所期望的信息且可以由计算设备 600访问的任何其他介质。任何这样的计算机可读存储介质可以是计算设备600的 部分。计算设备600也可以具有输入设备612,例如键盘、鼠标、笔、语音输入设 备、触摸输入设备和类似的输入设备。也可以包括输出设备614,例如显示器、扬 声器、打印机和其他类型的输出设备。这些设备在本领域中是公知的,且在这里不 需要详细讨论。

计算设备600也可以包含允许设备与其他设备618通信的通信连接616,例如 在分布式计算环境中的无线网络、卫星链路、蜂窝式链路和类似的机制上。其他设 备618可以包括执行通信应用程序、主机服务服务器和类似的设备的计算机设备。 通信连接616是通信介质的一个示例。通信介质可以在其中包括计算机可读指令、 数据结构、程序模块、或诸如载波或其他传输机制等的经调制数据信号中的其他数 据,并且通信介质包括任何信息传输介质。术语“经调制数据信号”意味着一种信 号,其特性中的一种或多种以在信号中编码信息的方式来设置或改变。作为示例而 非限制,通信介质包括诸如有线网络或直接有线连接等的有线介质和诸如声学、 RF、红外和其他无线介质等的无线介质。

示例实施方式也包括方法。可以以任何数量的方式来实现这些方法,这些方式 包括在这一文档中描述的结构。一种这样的方式通过在这一文档中所描述的类型的 设备的机器操作。

另一可选的方式是,对于各方法的单独操作中的一个或多个,要结合执行某种 事物的一个或多个人类操作员来执行。这些人类操作员不需要相互搭配,而是每一 个仅带有执行一部分程序的机器。

图7阐释用于提供根据各实施方式的web可访问的图表表现服务的过程700 的逻辑流程图。过程700可以被实现为图3和图4中所讨论的web服务的一部分。

过程700以操作710开始,在操作710,从诸如浏览器等的客户机应用程序接 收图表请求。所请求的图表可以包括对来自外部数据源的数据的引用。在操作720, 该请求被web服务前端转发给图表服务后端。在操作730,后端服务确定每一数据 源的数据连接信息,并传送给web服务前端。在操作740,web服务前端使用在操 作730接收的数据连接信息来与适当的模块通信并调用它们。

所调用的模块实现由web服务指定的抽象类并返回所请求的数据或异常。这 在操作750在web服务前端被接收,在操作760,web服务前端将数据转发给图表 服务后端以供进一步处理。在操作770和操作780,在后端服务器接收和处理数据, 且重新评估依赖于来自定制模块的数据的图表视觉效果。依赖于来自本机数据源的 数据的图表视觉效果可以在该过程期间的任何点由后端渲染。在操作790,从后端 接收图表的经更新的渲染,且在操作795,将其提供给最终用户的浏览器。

过程700中所包括的操作是出于阐释目的。基于web的图表可视化服务可以 由带有较少的或附加的步骤的类似过程实现,且可以以与使用在此描述的原理的操 作不同的次序来实现。

上面的说明、示例和数据提供各实施方式的组成部分的制造和使用的完整描 述。尽管已经用对结构特征和/或方法论动作来说专用的语言描述了本主题,但应 理解,在所附权利要求中界定的本主题并不必定限于以上所描述的具体的特征或动 作。相反,以上所描述的具体的特征和动作是作为实现权利要求和实施方式的示例 形式而公开的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号