用于基于web的图表可视化的可扩展性的制作方法

文档序号:6596209阅读:209来源:国知局
专利名称:用于基于web的图表可视化的可扩展性的制作方法
用于基于WEB的图表可视化的可扩展性
背景技术
计算机和软件对人们的日常生活的主要贡献中的一种是诸如文字处理、电子表格计算和图表表现等的广泛使用的任务的自动化。这些应用程序不仅自动化并使各种任务可被任何人使用,而且它们也增加了操纵各种各样的文档和数据的许多新的能力。直到最近, 典型的环境包括带有被安装在其上的单机或联网的计算机。因而,用户使用也被本地存储的数据借助于在他们的本地的计算机上安装和执行的应用程序来工作。这一方法的一个缺点是,每当可获得更新版本、替换计算设备等等时,必须重新安装应用程序,且用户需要在其上安装有软件的机器上工作。近来的无需将全尺寸应用程序安装在用户的计算机上的负担就提供相同的文档创建和操纵能力的趋势是允许用户通过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的服务
6器108请求图表。作为响应,服务器108与图表服务后端112的服务器114通信,以检索数据、计算公式、关系等等。各图表可以包括静态元素或动态元素。例如,一些形状、连接器和其他元素的属性可以通过动态方式来定义,例如取决于来自可以在渲染时间轮询的可更新的数据源(例如从被存储在其他地方的数据接收形状信息的数据条(data bar))的数据。在一些情况中, 在图表的元素之间的动态关系可以确定个体形状的属性和连接器(例如组织结构图)的属性。图表可视化服务可以包括受支持的数据源的列表,例如SQL表、Excel 电子表格、 WSS 列表等等。根据各实施方式的系统可以将那些受支持的数据源扩展到由定制数据模块使用为该服务定义的接口来定义的任何数据源。图2阐释在基于web的图表表现服务中的数据的更新期间的数据流的时序图200。 使用诸如web浏览器等的渲染应用程序,图表使用者可以向web服务222的服务器群发出对所公布的图的请求031)。web服务222可以将对图表Q32)的请求引导到诸如更新引擎等的图表服务后端。图表服务后端224(更新引擎)可以从数据存储2 检索图表定义 (233,234)并解析它,寻找指示去哪里检索用于所定义的图表视觉效果的数据的所嵌入的信息和相关的数据连通性信息。根据一种实施方式,如果找到了一些记录集,则可以为每一记录集提取(239)下列信息引用受支持的数据源的连接字符串;待执行的针对受支持的数据源的查询字符串;以及预期在查询运行之后从受支持的数据源返回的记录集数据的模式定义。对于连接到受支持的数据源每一数据连接,图表服务后端可以调用内建数据提供器040),内建数据提供器(MO)连接到受支持的数据源,通过运行上面针对受支持的数据源定义的查询来检索特定的数据,并针对以上所描述的模式验证所返回的记录集。然后,图表服务后端224(更新引擎)可以通过以下来刷新和返回041)图表视觉效果定义从图表定义解析和提取用于数据连接的图表元素的视觉效果定义;重新评估每一图表元素的每一属性(例如背景颜色、高度)的公布时间公式,且根据来自浏览器的请求的类型以向量或光栅格式渲染图表。web服务222可以用经更新的图表042)回复由浏览器发出的请求。没有数据源可扩展性时,图表更新管线通常限于仅在更新引擎处用内建数据提供器刷新来自数据源的数据。那些数据源可以包括顺序查询语言(SQL)表、电子表格表和类似的广泛使用的数据源(例如WSS列表)。此外,一旦在公布时间被编码到图表中,被用于刷新图表的可视元素数据聚集和操纵公式就可以是永久不变的。图3阐释在根据各实施方式的基于web的图表表现服务中的数据的更新期间的数据流的另一时序图300。根据一些实施方式,通过允许第三方用户创建基于web的图表表现服务可见的定制数据提供器代码(也被称为定制数据模块或定制数据提供器)以及通过允许图表公布器在它们的数据图表中引用定制数据模块来提供数据源可扩展性。一旦检测到对定制数据模块的引用,基于web的图表表现服务就可以将数据检索操作委托给所引用的数据模块。尽管数据模块必须实现预定义的抽象类(例如DiagramRefreshAddOn类),但开发者可以实现各种抽象的成员的内部定义,这给他们提供了从任何数据源检索数据(或在数据模块中生成数据)以及操纵要注入到图表表现服务刷新管线的数据的灵活性。
图300中所表示的交互是在根据各实施方式的系统的相同的组件之间进行的,其中从图表请求到图表定义步骤的返回与结合图2描述的动作相似。不同于图200,如果更新引擎遇到不能由内建数据提供器处理的连接字符串,则图表表现服务后端2M可以尝试查找引用定制数据模块(335)的连接字符串。示例模块可以是以下形式“Assembly = 〈assembly〉;Class = <class> ;〈additional information〉”其中〈assembly〉是数据模块程序集的共享空间名称,〈class〉是实现数据模块抽象类的共享空间类名称(包括名称空间),且〈additional information〉是以格式[[Key = Value]...]的附加连接/查询信息。如果提取了连接字符串,则也可以提取针对数据源执行的有效的查询字符串。也提取预期在查询运行之后要从数据源返回的数据的模式定义。对于对定制数据源的每一引用,图表表现服务后端2M可以将刷新委托给关联的数据模块。这需要图表表现服务后端更新引擎返回(336)到接收最初的图表请求的前端服务器(web服务22 ,并尝试查找匹配以上所描述的〈assembly〉和〈class〉令牌的任何定制数据模块。如果找到所有所引用的定制数据模块,则前端服务器上的更新引擎代码可以通过以下动作来开始对数据的并行查询和异步查询调用每一数据模块上的数据检索(337) (例如BeginGetData),以及将以下内容作为参数传入图表请求者的网络上下文以便允许查询的个性化、如先前所讨论的所提取的“附加信息”、以及其他类似的信息。数据模块运行它们的数据检索、生成和聚集代码。通过回调系统,前端服务器(web服务22 上的代码可以管理数据模块数据检索、错误和挂起。如果一个或多个数据模块不能执行,则整个请求失败,且可以将错误返回给最终用户。如果没有发生错误,则数据模块将所检索的数据的结构化(例如串行化的数据集)表示返回给数据模块驱动代码。数据返回被发送(338)给图表表现服务后端224,图表表现服务后端2M将该数据集成到图表更新操作中与其他数据提供器(定制或内建)的数据合作。当数据模块定制代码遭遇异常时,开发者可以创建他们自己的异常对象并将其指派给数据模块的错误特性,以便将该异常传播给更新引擎,以便进行进一步动作。也可以用关联的异常消息将异常显示给最终用户。对于连接到受支持的数据源(包括由定制数据模块定义的数据源)的每一数据连接(239,M0),图表更新引擎调用硬编码数据检索代码,该硬编码数据检索代码连接到受支持的外部数据源、通过运行针对该数据源定义的查询来检索特定的数据、并且针对以上所描述的模式验证所返回的数据。然后,图表更新引擎可以通过解析和提取数据连接的图表元素的视觉效果定义、 重新评估每一图表元素的每一属性的公布时间公式(该公式可以包含对从预定义的和定制的数据源检索的外部数据的引用)、以及根据来自最终用户的请求的类型以向量格式或光栅格式渲染图表来刷新图表视觉效果定义。如图2中,web服务用经更新的图表(M2)回复请求031)。图200和图300中的组件和动作仅出于阐释目的,且不构成对各实施方式的限制。 其他组件、软件或硬件和配置可以被用于为基于web的图表可视化提供可扩展性。图4是阐释实现各实施方式的带有多个数据源的基于web的图表表现服务中的主要组件的概念图。如许多基于web的服务中,基于web的图表表现服务包括在三个主要组件之间的信息的交换执行诸如浏览器等的客户机应用程序的客户机设备452、实际上执行用于图表的渲染的计算的图表服务后端456、以及在客户机应用程序和图表服务后端 456之间协调的web服务前端454。因而,在客户机应用程序请求带有对外部数据源的引用的图表时,web服务前端妨4将请求转发给图表服务后端456。对于并不固有地受图标可视化服务支持的数据源,可以通过采用采用定制数据模块来获得可扩展性。模块可以被安装在web服务服务器上,且可以由数据连接字符串标识符标识。对于每一外部数据源,图表服务后端456可以将数据连接信息传送到前端454。web服务前端妨4将数据连接信息传递给实现预定义的抽象类的对应模块。例如,数据模块可以包括以下(被示出为伪代码)
权利要求
1.一种至少部分地在用于可扩展的基于web的图表可视化服务的计算设备中执行的方法,所述方法包括响应于接收到对包括对外部数据源的引用的图表231的请求,将所述请求提供给更新引擎224,以便确定受支持的数据源和用于不受支持的数据源的定制数据模块; 从所述更新引擎2M接收定制数据模块标识符336 ; 调用由所述标识符指示的定制数据模块; 从所述定制数据模块接收数据和异常的其中之一; 如果接收到数据,则将所述数据转发给所述更新引擎224 ;以及通过接收基于来自所述更新引擎224的所转发的数据而更新的所述图表241的渲染, 在客户机应用程序处协调所请求的图表的呈现。
2.如权利要求1所述的方法,进一步包括如果从所述定制数据模块接收到异常,则将异常消息提供给所述客户机应用程序。
3.如权利要求1所述的方法,其特征在于,所述更新引擎2M被配置为对来自所述受支持的数据源的数据执行更新,并且对于来自所述不受支持的数据源的数据则委托给对应的定制数据模块。
4.如权利要求1所述的方法,其特征在于,所述数据与来自以下组中的至少一个相关联所请求的图表中的元素的形状、大小、位置和属性。
5.如权利要求1所述的方法,进一步包括一旦确定所有定制数据模块,就对每一定制数据模块启动并行查询和异步查询。
6.如权利要求5所述的方法,其特征在于,发起请求的客户机应用程序的网络标识符和附加的连接和查询信息被作为参数传送给每一定制数据模块。
7.如权利要求1所述的方法,其特征在于,每一定制数据模块被配置为检索、生成和聚集数据并采用回调来返回。
8.如权利要求1所述的方法,进一步包括解析和提取连接到外部数据的图表元素的视觉效果定义; 重新评估带有对外部数据的引用的图表元素的每一属性的公布时间公式;以及渲染所述图表。
9.一种用于执行用于可扩展的基于web的图表可视化的图表服务的系统,所述系统包括web前端(WFE)服务器,其被配置为响应于从浏览器接收对包括对外部数据源的引用的图表231的请求,将所述请求转发给更新引擎224;从所述更新引擎2M接收引用定制数据模块的连接字符串; 调用所述定制数据模块以便从所述外部数据源检索、生成和聚集数据; 从所述定制数据模块接收预定义格式的数据; 将所接收的数据转发给所述更新引擎224 ; 从所述更新引擎2M接收经渲染的图表241 ;以及将经渲染的图表241提供给所述浏览器M2 ;以及被配置为执行所述更新引擎241的后端服务器,其中所述后端引擎被配置为对于带有对受支持的外部数据源的每一图表元素,将用于所述受支持的数据源的连接字符串返回给所述WFE;对于带有对不受支持的外部数据源的每一图表元素,确定用于定制数据模块的连接字符串;以及如果找到定制数据模块,则将所述用于定制数据模块的连接字符串返回给所述WFE;否则将错误代码返回给所述WFE。
10.如权利要求9所述的系统,其特征在于,所述用于定制数据模块的连接字符串包括所述定制数据模块的名称、用于实现所述定制数据模块类的类以及预定义格式的附加的连接和查询信息。
11.如权利要求9所述的系统,其特征在于,所述更新引擎2M还被配置为返回要针对所述受支持的数据源执行的查询字符串以及预期要从所述受支持的数据源返回的数据的模式定义。
12.如权利要求11所述的系统,其特征在于,所述更新引擎2M还被配置为连接到所述受支持的数据源、通过执行由所述查询字符串定义的查询来检索所述数据以及针对所述模式验证所述数据,且其中每一定制数据模块被配置为通过来自所述WFE的回调系统检索和聚集数据并将所述数据返回给所述WFE。
13.一种其上存储有用于可扩展的基于web的图表可视化服务的指令的计算机可读存储介质,所述指令包括接收对包括对外部数据源的引用的图表231的请求;对于对受支持的数据源的引用确定所引用的数据源;连接到所引用的数据源;通过执行查询来检索数据;以及验证所检索的数据;对于对不受支持的数据源的引用确定用于来自所引用的不受支持的数据源的数据的定制数据模块; 通过将发起请求的客户机应用程序的网络上下文和连接/查询信息传递给所述定制数据模块来调用所确定的定制数据模块;以及从所述定制数据模块接收数据; 解析和提取数据连接的图表元素的视觉效果定义; 计算所述图表元素的公布时间公式; 基于所更新的公布时间公式来渲染所请求的图表;以及将经渲染的图表242提供给所述发起请求的客户机应用程序。
14.如权利要求13所述的计算机可读介质,其特征在于,所述定制数据模块还被配置为基于所述网络上下文来认证请求者,且其中在后端服务器基于从受支持的和不受支持的数据源接收的数据来渲染所请求的图表231,且所渲染的图表被web前端服务器提供给所述发起请求的客户机应用程序。
15.如权利要求13所述的计算机可读介质,其特征在于,所述指令还包括调用所述定制数据模块以及通过并行回调和异步回调的其中之一来接收数据。
全文摘要
通过允许图表更新引擎起动定制数据模块来实现基于WEB的图表可视化服务中的可扩展体系结构和数据流。用于不固有地受支持的数据源的数据模块通过专门定义的接口(例如.NET程序集)由第三方创建,且使得它对基于WEB的图表服务可见并可以从图表更新引擎调用。因而,可以从中检索图表数据的许多数据源以及操纵和聚集输入的数据的方式是可以通过代码来扩展的。
文档编号G06F9/44GK102292719SQ200980155363
公开日2011年12月21日 申请日期2009年12月4日 优先权日2009年1月21日
发明者A·马修, E·奇科什, P-J·阿里达, R·罗伽纳坦 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1