掌桥专利:专业的专利平台
掌桥专利
首页

虚拟环境中的数据可视化对象

文献发布时间:2023-06-19 11:55:48


虚拟环境中的数据可视化对象

相关申请的交叉引用

本申请是2018年10月21日提交的题为“3D VISUALIZATION SERVICESINTEGRATING VARIOUS DATA SOURCES AND DISPLAY DEVICES”的美国临时申请No.62/748,504的非临时申请,并且根据35U.S.C.119(e)要求其权益和优先权,其全部内容出于所有目的通过引用而合并于此。

本申请还与以下四个美国专利申请有关:

·Moroze等人于2019年10月21日提交的题为“INTERACTIVE DATA EXPLORER AND3-D DASHBOARD ENVIRONMENT”的美国专利申请No.16/658,162(代理人案卷号088325-1142774),其整体合并于此。

·Moroze等人于2019年10月21日提交的题为“FUNNEL VISUALIZATION WITH DATAPOINT ANIMATIONS AND PATHWAYS”的美国专利申请No.16/658,165(代理人案卷号088325-1142775),其整体合并于此。

·Moroze等人于2019年10月21日提交的题为“OPTIMIZING VIRTUAL DATA VIEWSUSING VOICE COMMANDS AND DEFINED PERSPECTIVES”的美国专利申请No.16/658,169(代理人案卷号088325-1142776),其整体合并于此。

·Moroze等人于2019年10月21日提交的题为“ANIMATION BETWEENVISUALIZATION OBJECTS IN A VIRTUAL DASHBOARD”的美国专利申请No.16/658,177(代理人案卷号088325-1142782),其整体合并于此。

背景技术

传达信息的最有效方式之一是通过可视化。对信息进行捕获和分类通常不足以获得对可从数据中得出的结论的完全理解。尽管二维数据可视化在我们的许多通信技术中占主导地位,但是这些可视化技术中的许多未针对突出显示或强调数据收集的各方面进行优化。有效的数据可视化涉及创建信息式视觉资料,其非常快速地传达数据的一方面。有时,简单的可视化就足够了。然而,对于复杂的多维数据,数据集本身的复杂性可能使充分可视化对于有限维度的空间是困难的。

发明内容

一种用于在交互式虚拟环境中将时序数据(time-series data)可视化的方法,可包括:接收一个或多个数据集,这一个或多个数据集包括数据点的多个时序序列;以三维(3D)线图在虚拟环境中绘制数据点的多个时序序列中的每一个时序序列;在虚拟环境中使用被配置为在3D线图中四处移动的一个或多个虚拟相机来生成3D线图的一个或多个视图;以及将3D线图的一个或多个视图发送到一个或多个客户端设备。这一个或多个客户端设备对应于一个或多个虚拟相机。

一种非暂时性计算机可读介质,可包括指令,这些指令当被一个或多个处理器执行时使这一个或多个处理器执行包括以下各项的操作:接收一个或多个数据集,这一个或多个数据集包括数据点的多个时序序列;以三维(3D)线图在虚拟环境中绘制数据点的多个时序序列中的每一个时序序列;在虚拟环境中使用被配置为在3D线图中四处移动的一个或多个虚拟相机来生成3D线图的一个或多个视图;以及将3D线图的一个或多个视图发送到一个或多个客户端设备。这一个或多个客户端设备对应于一个或多个虚拟相机。

一种系统,可包括一个或多个处理器以及一个或多个存储器设备,这一个或多个存储器设备可包括指令,这些指令当被这一个或多个处理器执行时使这一个或多个处理器执行包括以下各项的操作:接收一个或多个数据集,这一个或多个数据集包括数据点的多个时序序列;以三维(3D)线图在虚拟环境中绘制数据点的多个时序序列中的每一个时序序列;在虚拟环境中使用被配置为在3D线图中四处移动的一个或多个虚拟相机来生成3D线图的一个或多个视图;以及将3D线图的一个或多个视图发送到一个或多个客户端设备。这一个或多个客户端设备对应于一个或多个虚拟相机。

在任何实施例中,可以以任何组合且不受限制地实现以下特征中的任何特征。以3D线图在虚拟环境中绘制数据点的多个时序序列中的每一个时序序列可包括在虚拟环境的坐标系中绘制数据点的多个时序序列中的每个数据点的位置;以及用3D线对象将这些位置中的每个位置连接。该方法/操作还可包括将3D线图的坐标系转换为虚拟环境的坐标系。3D线图的坐标系可包括:与时间相对应的第一水平轴;与数据点的多个时序序列中的索引相对应的第二水平轴;以及与数据点的值相对应的垂直轴。一个或多个数据集可包括不同系统随着时间的推移的测试失败数据。该方法/操作还可包括:加载具有参数化输入的可视化组件;将一个或多个数据集绑定到参数化输入;以及根据可视化组件以3D线图在虚拟环境中绘制数据点的多个时序序列中的每一个时序序列。一个或多个客户端设备中的客户端设备可包括虚拟现实设备。

附图说明

通过参考本说明书的其余部分和附图,可以实现对本发明的本质和优点的进一步理解,其中,贯穿几个附图使用相似的附图标记来指代类似的组件。在一些情况下,子标签与附图标记相关联以表示多个类似组件中的一个。当在没有说明现有子标签的情况下参考附图标记时,旨在指代所有这样的多个类似部件。

图1示出了根据一些实施例的用于创作、提供和使用交互式数据显示的系统。

图2示出了根据一些实施例的已经被绑定到企业数据集的虚拟对象的示例。

图3示出了用于将来自组件交换器的组件导入到应用程序中的用户界面。

图4示出了根据一些实施例的用于在应用程序中下载和实例化组件的过程的框图。

图5示出了根据一些实施例的在虚拟环境中创建的虚拟仪表板。

图6示出了根据一些实施例的各种类型的客户端设备系统和输入设备如何能够全部同时与EDIE环境中的相同虚拟环境进行接口。

图7示出了根据一些实施例的通过2D屏幕界面的虚拟环境的视图。

图8示出了根据一些实施例的有多个用户与虚拟仪表板进行交互的虚拟环境的视图。

图9示出了根据一些实施例的可以用于与虚拟环境进行交互的现实世界环境的视图。

图10示出了根据一些实施例的用于在多维仪表板中显示数据的方法的流程图。

图11示出了根据一些实施例的用于在虚拟环境中显示数据点的时序序列的可视化组件的视图。

图12示出了根据一些实施例的从与图11的角度不同的角度的线图对象的视图。

图13示出了根据一些实施例的当被虚拟环境呈现时的线图对象。

图14示出了根据一些实施例的用户如何能够与虚拟环境中的数据进行交互。

图15示出了根据一些实施例的圆形条形图组件,其可以用于将被绑定到线形图组件的相同数据进行可视化。

图16示出了根据一些实施例的以与线图类似的方式操作的圆形图。

图17示出了根据一些实施例的用于在交互式虚拟环境中将时序数据可视化的方法的流程图。

图18描绘了用于实现一些实施例的分布式系统的简化图。

图19是根据一些实施例的系统环境的一个或多个组件的简化框图,通过该系统环境的一个或多个组件,由实施例系统的一个或多个组件提供的服务可以被提供为云服务。

图20示出了可以在其中实现各种实施例的示例性计算机系统。

具体实施方式

本文中描述的是沉浸式用户界面(UI)体验的实施例。沉浸式用户界面体验可被包装为可以插入到组件交换器或交换所中的单独组件,这些单独组件稍后可以被应用程序开发者或服务开发者用来将交互式UI组件添加到其应用程序或服务中。这些UI组件可以用来在拥挤的市场中区分应用程序,并用来提供用户友好的交互式沉浸式体验,这为许多不同用户设备上的许多不同数据类型提供详细而直观的数据可视化。

图1示出了根据一些实施例的用于创作、提供和使用交互式数据显示的系统。该系统可包括组件交换器124。组件交换器124可以是应用程序开发套件的一部分,该应用程序开发套件允许用户使用定制开发环境以及预定义工具和/或接口的库来开发应用程序和/或服务。应用程序开发套件可以是云托管的开发环境,该开发环境可以作为软件即服务(SaaS)模型供许多不同客户端设备可访问。该开发环境可被配置为开发和/或部署许多不同类型的应用程序,这些应用程序包括:基于云的服务或微服务,web应用程序,移动设备应用程序,企业应用程序,和/或类似者。在应用程序开发套件中设计的应用程序可以通过代表性状态传输(REST)接口与其他SaaS应用程序集成。

应用程序开发套件中的开发环境可包括许多用户友好的工具,这些工具可被开发者用来使开发过程合理化并使整个应用程序开发周期更高效。这些工具可包括所见即所得工具和其他图形界面,这些图形界面允许开发者将各种预包装的组件拖放到应用程序开发空间中。开发环境可以提供各种组件,诸如可重用的业务对象,进程,web控件,用户界面控件,主题,模板,以及应用程序的其他方面。

开发者可以使用开发环境来设计和测试应用程序,然后应用程序可被部署到各种操作环境。当应用程序被部署到操作环境时,开发环境还可以部署应用程序所需的任何附加代码或库,以使得其可以在目标环境中运行。因此,由开发环境提供的灵活性和可重用组件可以移植到任何操作环境,而不会丢失开发环境所提供的任何功能。

在该示例中,开发环境可包括组件交换器。例如,可以使用诸如来自

组件交换器124可以允许组件开发者将组件上传到组件交换器124以供应用程序开发者使用。这允许组件开发者提供可以在整个组件生命周期中进行维护和升级的灵活的组件架构。例如,这些组件可包括标准的web组件,诸如可以在各种用户界面中使用的复选框组件116或滑块组件114。这些组件114、116可以被上传到组件交换器124,然后在其整个生命周期中由组件开发团队进行更新和维护。它们然后可以作为组件交换器124中的组件121、122而被提供给应用程序开发者。

除了标准的web组件之外,本文描述的实施例还允许用户开发可以在企业数据交互式资源管理器(EDIE)环境中使用的特殊可视化对象。这些可视化对象提供企业数据集的多维视图,这些视图可由多个客户端设备通过分开的网络连接同时查看。可以以与将标准web组件导入到组件交换器124中的相同方式将这些可视化对象导入到组件交换器124中。然后可以将这些可视化对象导入到正在开发的各个应用程序中。在那些应用程序中,开发者可以将来自许多不同来源的各种企业数据集绑定到可视化对象上的参数化输入。可视化对象然后可以用来生成虚拟对象的渲染视图,这些虚拟对象表示和可视化多维环境中的企业数据。

下面在本公开中可以更详细地描述这些可视化对象的各种示例。图1示出了可以作为常规对象被导入到组件交换器124中的可视化对象的一些示例。例如,漏斗(funnel)对象112可包括旋转漏斗对象,该旋转漏斗对象示出了企业数据集中的数据点随时间推移的进展。可以用漏斗对象112提供各种视觉效果,这些视觉效果可以用来突出显示绑定到漏斗对象112的数据集的各个方面。例如,用户可以沿各种维度搜索数据集,更改各个数据点,查看随时间推移的数据点路径,看见沿各个维度穿越时间加速时的数据的视觉表示等等。

图1还示出了可用于表示各种企业数据集的三维直方图或条形图对象110。在组件交换器124中,图形对象110可以与任何底层数据集断开连接。然而,当被导入到实际应用程序中时,图形对象110可被绑定到企业数据集,并且图形中的各个条形可以基于数据绑定来调整大小。可视化对象可用来在可由各种客户端设备查看的虚拟环境中生成三维(3D)虚拟对象。例如,图形对象110可被实现为多个三维圆柱体,每个三维圆柱体代表图形中的条形。用户可以进入虚拟环境并在虚拟对象中四处走动,与对象进行交互,改变对象中的值,操纵对象的各部分,并使那些改变后的值被其他用户看到并被存储回存储数据集的底层数据库。

上述可视化对象110、112是作为示例提供的,并不意味着是限制性的。可以用来可视化企业数据集的任何多维对象都可以用作本公开中的可视化对象。其他可视化对象可包括图表、动画、图片、图形等。

在组件交换器124中,可视化对象可被表示为组件118、120,组件118、120可以被开发者选择并在开发期间导入到应用程序中。例如,开发者可以将漏斗对象112的组件118拖放到应用程序中。然后,取决于实施例,可以将该可视化对象绑定到开发环境或部署环境中的数据集。

在一些实施例中,包括一个或多个可视化对象的应用程序可被部署到各种环境。这些环境可包括web应用程序,移动应用程序,客户端侧应用程序,在游戏系统上运行的应用程序,在台式计算机或膝上型计算机上运行的应用程序,用于虚拟环境(诸如虚拟现实或增强现实系统)的应用程序,和/或任何其他计算环境。当应用程序被部署到环境时,组件交换器124可以部署运行可视化对象所需的任何必要的库、第三方库或其他软件组件或库。例如,在3D环境中运行的某些可视化对象可包括其运行所需的OpenGL库或其他3D可视化库。

应用程序可被部署到在本文中一般称为EDIE环境的环境102,该环境可包括多个标准组件以及一个或多个如上所述的可视化对象。环境102可包括可以在其中实例化可视化对象的虚拟环境104。当可视化对象被实例化时,它们可以被绑定到一个或多个底层数据集。可以从诸如数据库表、多维数据立方体、web服务、服务器端应用程序、API接口等的各种来源获取这些数据集。在图1的示例中,企业数据库108可以将来自一个或多个数据库表的值提供给环境102,以与可视化对象中的至少一个一起使用。在该示例中,漏斗对象112可被部署到虚拟环境104中的环境102。漏斗对象112可包括一组输入,诸如参数化输入,这些参数化输入可以单独地和/或共同地绑定到来自企业数据库108的企业数据集中的表或行。可以在开发环境中、在部署环境102中和/或在任何其他时间创建数据集值与可视化对象的参数化输入之间的绑定106。还可以在运行时动态地用不同的数据集调整或重新形成绑定106,或者在执行应用程序之前用不同的数据集调整或重新形成绑定106。

当数据集被绑定到可视化对象时,可视化对象可以用于在虚拟环境104中生成虚拟对象。这可包括使用来自数据集的值来确定虚拟对象各个部分的大小或尺寸。来自数据集的值还可用于为虚拟对象内的对象生成动画速度或运动矢量。来自数据集的值还可以用于为虚拟对象中的对象的视觉表示着色或以其他方式影响虚拟对象中的对象的视觉表示。例如,数据点可以围绕由漏斗对象112创建的虚拟漏斗旋转。数据点可以具有由一个维度确定的颜色,由第二维度确定的大小或半径,由第三维度确定的旋转速度,由第四维度确定的轨迹或运动矢量方向等等。

在虚拟环境104中生成的可视化对象可以由多个不同的客户端设备126、128、130、132进行查看和/或与之交互。这些客户端设备可包括膝上型计算机,台式计算机,工作站,平板计算机,智能电话,智能手表,智能电视,视频游戏机,数字家庭助理,智能眼镜,虚拟现实头盔,增强现实头盔,以及任何其他计算设备。这些客户端设备126、128、130、132中的每一个可以接收进入虚拟环境104的独特视图,该视图对应于每个客户端设备126、128、130、132的独特放置的虚拟相机。用户然后可以与虚拟环境104中的虚拟对象105进行交互,以使用虚拟对象105查看、操纵、编辑和/或更新底层数据集。如下所述,可以为每个用户提供虚拟对象105的独特特定视图,并且不同的设置可以允许用户改变底层数据,以使得虚拟对象105在被提供给其他客户端设备的视图中改变。在每个客户端设备126、128、130、132处,可以使用自动硬件检测来提供虚拟环境104的正确视图。例如,如果客户端设备126由台式计算机实现,则环境102可以提供虚拟环境104的二维(2D)视图。相比之下,如果客户端设备128由虚拟现实头盔实现,则环境102可以提供虚拟环境104的3D视图,以使得客户端设备128的用户沉浸在虚拟环境104中以在其中进行交互。

图2示出了根据一些实施例的已经被绑定到企业数据集的虚拟对象202的示例。如上所述,虚拟对象202可以对应于在图1的组件交换器124中作为组件118上传了的漏斗对象112。虚拟对象202可包括3D漏斗对象,其中漏斗由多个个体数据点形成。来自数据集的个体数据点可以用于定义每个单独数据点的位置、颜色、轨迹、运动、速度、大小、形状和/或任何其他视觉特征。

底层数据集可以源自数据库表、多维数据立方体和/或任何其他数据结构。数据集可包括由数据库表中的行或多维数据立方体中的点表示的数据点。数据库中的各个列或数据立方体中的维度可以用于定义虚拟对象202中每个球体的特征。例如,数据库中的第一维度或第一列可用于确定每个球体的大小或周长。第二维度或列值可用于定义应用于虚拟环境中的每个球体的颜色或纹理。第三维度或列值可用于定义每个球体在漏斗中的位置。第四维度或列值可以定义球体围绕漏斗的中心轴旋转的速度。第五维度或列值可以定义当它穿过漏斗的各个级别时的轨迹或运动路径,依此类推。

当应用程序正在运行时,数据可以保持被绑定到虚拟对象202的每个元素。例如,当戴着虚拟现实头盔时,用户可以接近虚拟环境200中的虚拟对象202。使用虚拟选择手持设备,用户可以把手伸出并“抓住”围绕漏斗轴旋转的球体204之一。用户可以调出显示与由球体204表示的底层数据有关的附加信息的用户界面。用户可以改变该用户界面中的值以改变对应数据库中的底层值。用户还可以将球体204“放置”回到虚拟对象202中的位置。如果球体204的新位置与旧位置不同,则可以在底层数据库中更新用于确定球体204在虚拟对象202中的位置的维度。

图3示出了用于将来自组件交换器的组件导入到应用程序中的用户界面300。用户界面300可包括可被导入到项目中的可用组件的列表302。通过选择列表302中的组件之一,组件交换器可以显示用于下载、实例化和/或使用该组件的附加信息。在该示例中,用户已经选择了先前描述的漏斗对象组件。当从列表302中做出该选择时,界面300的右手侧可以显示用于使用漏斗对象组件的附加信息。

附加信息可包括组件的描述306。该描述306可以描述组件的操作,它如何可被使用,它如何可与其他组件进行交互,典型的使用场景,使用组件的技巧和建议,和/或对组件的新的和/或有经验的用户可能有用的其他信息。描述306可能伴随着示例代码308,该示例代码308说明了如何可以将组件集成到应用程序的代码中。可以以各种编程语言来提供示例代码308,并且可以复制示例代码308并将其从示例代码308粘贴到应用程序的代码中。

此外,一些实施例可以提供安装按钮304。安装按钮可执行用于在用户的应用程序中安装组件的过程。选择安装按钮304可启动附加的窗口、向导和/或界面,这些附加的窗口、向导和/或界面向用户介绍在其应用程序中安装组件的过程。例如,安装按钮304可以触发生成一个或多个web表单,其允许用户选择可以被绑定到组件的参数化界面的数据集。例如,安装按钮304可以生成界面,该界面允许用户将漏斗对象中的球体绑定到数据库中的各个列。安装按钮304还可以自动下载操作组件所必需的任何代码。该代码可包括第三方数据库,图形库,功能库,和/或执行由组件提供的操作所需的其他共享代码。

图4示出了根据一些实施例的用于下载和实例化应用程序中的组件的过程的框图。使用以上在图3中描述的用户界面,用户可以选择漏斗对象402以用作在开发中的应用程序的一部分。漏斗对象402的代码可被下载到客户端设备上的操作环境,该操作环境被配置为利用这种类型的组件。例如,漏斗对象402可被下载到在上述任何客户端设备上运行的EDIE环境102中。EDIE环境102可包括虚拟环境104,该虚拟环境可以提供可以在其中针对二维(2D)和3D观看两者来实例化三维(3D)分量的环境。

除了下载漏斗对象402的代码之外,组件交换器124还可以提供在EDIE环境102中运行组件所需的任何附加代码。该附加代码可以存储在代码库404中,该代码库404被组件交换器124存储并使其可用。附加代码还可包括未由组件交换器124托管和/或提供的来自第三方的库406。例如,组件交换器124可导致作为漏斗对象402的安装过程的一部分而从第三方网站下载图形操作代码的库。所有这些代码都可被下载到EDIE环境102,以使得漏斗对象402可以对于其所有所需功能以独立方式进行操作。

当漏斗对象402被下载到EDIE环境102并在虚拟环境104中被实例化时,EDIE环境102可导致在漏斗对象104的参数化输入与一个或多个数据源之间发生绑定。例如,EDIE环境102可以向用户呈现用户界面,从而允许用户从多个可用数据源之一中进行选择。在选择数据源之后,可以对用户进行将数据源中的各个字段绑定到各个参数化输入的请求。例如,用户可以选择数据库中的特定列,以使得该列中的值确定虚拟环境104中的漏斗对象中的颜色对应的球体。参数化输入与各个数据源之间的绑定可被存储为应用程序的一部分,以使得每当用户启动该应用程序时,漏斗对象402就从底层数据源中检索数据以生成漏斗对象在虚拟环境104中的显示。可以在启动应用程序时更新和/或改变该绑定,或者在运行应用程序时动态地更新和/或改变该绑定,以可视化虚拟环境104中的不同数据集。

图4的示例示出了可用来将企业数据绑定到各种虚拟化对象的参数化输入的企业数据存储库108。在其他示例中,不同的数据源可被绑定到可视化对象的不同方面。例如,一些实施例可允许将来自多个数据库和多个位置的列或字段绑定到同一虚拟化对象的参数化输入。一些实施例可以使用将实时数据提供给可视化组件的在线数据源。可以基于各个应用程序设计者的需求将数据源的任何组合提供给虚拟化对象的参数化输入。

图3至图4中的漏斗对象402的用途仅作为示例提供,并不意味着是限制性的。将理解的是,可以使用类似的过程在EDIE环境102中实现被设计为在EDIE环境102中操作的任何可视化对象。

图5示出了根据一些实施例的在虚拟环境104中创建的虚拟仪表板。尽管本文描述的可视化组件可以在任何类型的应用程序中使用,但它们可能特别适合于设计虚拟仪表板。如本文所使用的,术语仪表板可包括可视化,该可视化聚集、分析和/或显示来自用户界面中的一个或多个数据源的信息。可以在组织的网站的主页上提供仪表板。仪表板也可被显示为应用程序或移动应用程序中的入口屏幕。仪表板通常在二维环境中显示数据的“小部件”(“widget”)或其他图形表示。用户可能经常能够选择仪表板上的各个小部件以显示附加信息。例如,用户可以点击显示当前月份的摘要销售信息的小部件。小部件可被配置为提供与在仪表板中显示的摘要销售信息有关的附加信息。一些仪表板可包括多个小部件,这些小部件可以被配置为当该仪表板被各种用户客户端设备访问时显示来自底层数据源的最新信息。

本文描述的实施例使用上述可视化组件在3D虚拟环境104中实现仪表板。例如,代替在计算机屏幕上显示2D小部件,用户可以使用被使得能够与3D虚拟环境进行交互的客户端设备来提供3D可视化体验,以查看和操纵仪表板数据。一些实施例可以使用虚拟现实头盔或增强现实设备,这些虚拟现实头盔或增强现实设备允许用户进入虚拟环境104并执行与显示仪表板数据的可视化对象的实时交互。在虚拟环境104中,用户可以在可视化对象中四处走动,“抓取”并操纵可视化对象的各部分,与其他用户进行交互,并使他们对可视化对象的操纵更新底层数据源。这将传统的2D仪表板体验变为交互式的、沉浸式的虚拟现实体验,在其中可以以交互、实时的方式查看数据。

虚拟环境可包括多个可视化对象。代替多个2D小部件,3D仪表板可包括放置在虚拟3D环境104中的可视化对象。当用户进入或查看3D虚拟环境时,他们可以在虚拟化对象中四处移动以从任何角度查看它们和从任何位置操纵他们。下面更详细地描述与虚拟环境104进行交互以与可视化对象进行交互的用户的其他示例。

如上所述,可视化对象可以指代由代码主体和/或其关联库表示的软件对象。在虚拟环境104中显示之物可被称为可视化对象的视图。每个可视化对象可以与多个不同的视图相关联,并且每个视图可以为可视化对象提供不同的外观和感觉。例如,漏斗对象可包括传统的业务视图,该业务视图以适合于业务环境的更含蓄的方式显示数据。漏斗对象还可包括附加视图,该附加视图以不太正式的方式显示数据,该方式包括更明亮且更鲜艳的颜色,更有趣的形状,和/或查看漏斗对象的方式的其他变体。为了简单起见,本公开的其余部分将不会在由可执行代码表示的底层可视化对象与在虚拟环境104中显示的可视化对象的视图之间进行区分。代替地,可视化对象(例如,漏斗对象)可被统一称为可视化对象以包含虚拟环境104中的代码和显示两者。

在该示例中,虚拟环境104可包括具有三个可视化对象的仪表板。漏斗对象508可以链接到上面描述的企业数据存储502。图形对象510可以链接到多维数据立方体504,其中该数据立方体中的各维度被绑定到图形对象510的各个元素。人员对象512可包括虚拟环境104中的三维网格中的个体的摘要显示(例如,类似于虚拟名片显示)。人员对象可以绑定到web服务506,以使得人员对象可以从web服务504下载信息以填充个体的摘要显示中的各个项目。可以在虚拟环境104中的各个位置中(例如,在半圆中)呈现这些可视化对象。当用户进入虚拟环境104时,他们可以将可视化对象508、510、512视为它们前方的区域中的对象。为了开始使用虚拟仪表板,用户可以接近可视化对象508、510、512,查看可视化对象,和/或根据需要操纵可视化对象的元素。

图6示出了根据一些实施例的各种类型的客户端设备系统和输入设备如何能够全部同时与EDIE环境102中的同一虚拟环境进行接口。EDIE环境102可包括3D数据探索平台,该3D数据探索平台服务于许多不同目的并且提供许多不同益处。例如,EDIE环境102可以用作重要的聚合的新技术之间的集成的联系,该联系可以使企业数据的探索更加沉浸和流畅。这些技术可包括对话UI(例如,基于语音或基于聊天的)610,虚拟现实(VR)608,增强现实(AR)604,以及许多其他交互式技术。用户还可以使用传统的2D计算工具(诸如移动设备606上的应用程序,显示屏上的web浏览器612,等等)来访问这些可视化技术。EDIE环境102可以提供可视化,该可视化通过设备之间的转换无缝地移动。例如,用户可以在诸如移动设备606的屏幕之类的2D环境中查看3D可视化。用户然后可以戴上一副虚拟现实护目镜并过渡到虚拟现实空间中,该虚拟现实空间包括曾以2D方式显示在移动设备606的屏幕上的可视化对象。在虚拟环境中,用户可以使用如下所述通常包括在VR系统中的手控制器来与可视化对象进行交互。

EDIE环境102可包括硬件检测过程620,该硬件检测过程620检测由客户端设备使用的用户输入设备的类型。例如,如果客户端设备使用具有web浏览器612的传统2D显示屏,则硬件检测过程620可以检测到2D环境正在与虚拟环境104接口。EDIE环境102可包括针对图6所示的这些不同类型的输入设备中的每一个的接口代码。硬件检测过程620可以识别可用的各种输入选项,并且相应地将接口代码加载到EDIE环境102中。接口代码然后可以生成与客户端设备上的对应输入设备兼容的虚拟环境104的视图。

如下面更详细地描述的,EDIE环境102可以在网络模式下操作,以使得虚拟环境104可以被多个不同的客户端设备同时访问。这允许用户在虚拟环境104中彼此交互,同时查看绑定到底层企业数据的可视化对象。硬件检测模块620允许用户基于其自己对其客户端设备的观看体验在虚拟环境104中一起交互。例如,对于从web浏览器612的2D屏幕界面查看虚拟环境104的另一用户,使用虚拟现实设备608进入虚拟环境104的用户可以在虚拟环境104中可视为显示的化身。

图7示出了根据一些实施例的通过2D屏幕界面的虚拟环境104的视图。用户702可以通过配备有2D屏幕界面的台式计算机、膝上型计算机或其他计算设备来访问EDIE环境102。当在2D屏幕704上观看虚拟环境104时,可以将虚拟相机放置在虚拟环境104中以从该虚拟相机的角度呈现虚拟环境104的视图。渲染的图像可以显示在用户702的屏幕704上。当虚拟环境104中的各种对象显示在屏幕704上时,用户可以使用鼠标或触摸屏与虚拟环境104中的各种对象进行交互。

虚拟环境可包括如上所述布置在仪表板显示中的多个可视化对象。这些可视化对象可包括漏斗对象508、图形对象510和/或任何其他可视化对象。此外,由虚拟相机捕获并在屏幕704上显示的图像可包括其他用户在虚拟环境中的位置。每个用户的视图可以由虚拟环境104中的对应虚拟相机捕获。代替显示虚拟相机,这些相机的位置可包括化身的显示或其他用户的其他表示。该示例包括虚拟环境104中的用户708的可视化。用户702可以通过虚拟环境104与用户708进行交互和通信,仿佛他们一起都在虚拟环境104中一样。当用户708将其虚拟相机转向用户702的虚拟相机时,他们可以在虚拟环境104中看到表示用户702的对应可视化或化身。

如上所述,EDIE环境102可以自动确定屏幕704应当显示虚拟环境104的2D视图。用户708可能戴着一副虚拟现实护目镜,并且在该客户端设备上操作的EDIE环境102可以在虚拟环境104中提供虚拟仪表板的3D视图。因此,用户都可以使用同一虚拟环境中的各种设备一起进行交互。一些用户所使用的设备的类型可能对虚拟环境104中的其他用户而言不是明显的。例如,用户708可以看着用于在屏幕704上为用户702进行显示的虚拟相机,并且代替看到虚拟相机,他们可能看到虚拟环境104中的化身。用户708可能无法区分用户702是正在使用虚拟现实头盔还是正在使用2D显示屏704。

图8示出了根据一些实施例的有多个用户与虚拟仪表板进行交互的虚拟环境104的视图。在该示例中,用户804、806由具有人类外观的化身来表示。用户可以选择看起来像其自己或任何其他虚拟角色的化身。当用户使用虚拟现实头盔在现实世界环境中四处移动时,这些化身可以在虚拟环境104中四处移动。当用户在现实世界环境中移动其头部时,虚拟相机可以移动、旋转、平移、倾斜等。这允许用户在虚拟环境104中的虚拟仪表板“四处走动”以从不同的角度看到各种可视化对象。

可以在虚拟环境104中表示各种用户的移动,以使得其对其他用户可见。例如,兼容的虚拟现实设备包括虚拟现实头盔以及可以握在用户手中的选择设备。当在现实世界环境中移动选择设备或虚拟现实头盔时,该移动可用来驱动化身在虚拟环境104中的移动。例如,当用户408在现实世界环境中举起其手时,化身的手也可以在虚拟环境104中被举起,以使得它们对用户806可见。这允许用户做手势并指向虚拟仪表板中的可视化对象,并使这些动作对其他用户可见。

图8还示出了虚拟相机802,其可用来捕获虚拟环境104的视图以便在2D屏幕上显示图像。如上所述,可以用观看屏幕704的用户702的化身来代替虚拟相机802的描绘。可替代地,虚拟相机802在虚拟环境104中可以没有视觉等效物,或者可以由作为3D对象的任何其他视觉指示器代替,该3D对象可被呈现以供其他用户看到。

使用上面描述的2D和3D显示两者的用户可以与虚拟仪表板中的可视化对象的元素进行交互。例如,用户804可以接近漏斗对象508并选择围绕漏斗对象508旋转的球体之一。从2D显示中,可以使用手指轻敲或鼠标点击来选择球体。从3D显示中,可以通过使用由用户804握持的手持虚拟现实设备之一以在球体之一围绕漏斗对象508旋转时伸出并“抓住”该球体来选择球体。球体可被绑定到如上所述的数据存储中的数据对象。例如,球体可以表示数据库中的一行,并且漏斗对象508中的球体的位置、颜色、速度、轨迹等可以由数据库的该行的各列中的不同值来确定。当用户804握持球体时,关于该球体的附加信息可被显示在用户界面或平视显示器(HUD)中。例如,可以为用户804显示数据库的该行中的每个列值。可以在用户804与用户806之间来回传递球体,以使得用户804、806都可以查看底层数据对象的细节。

当用户804已经完成检查球体时,用户804可以将球体放置回漏斗对象508中。在一些实施例中,用户804可以将球体“放置”回漏斗对象508中,并且球体可以自动返回其在漏斗对象508中的先前位置/旋转。在其他实施例中,用户804可以在与起初取回球体的位置不同的位置将球体放置在漏斗对象中。如上所述,球体在漏斗对象508中的位置可以由绑定到漏斗对象508的底层数据集中的值来确定。当球体在漏斗对象508中的位置被改变时,与该位置相对应的值也可被改变。在一些实施例中,可以将与漏斗对象508中的新位置相对应的值写回到底层数据集。这允许用户操纵虚拟环境104中的虚拟化对象的元素,并改变可视化对象所绑定到的数据集中的值。

在一些实施例中,提供给用户804、806中的每个用户的可视化对象的视图可以是相同的。例如,如上所述,当用户804将球体从漏斗对象508中拉出时,用户806将看到球体离开漏斗对象508。类似地,当用户804将球体放置回漏斗对象508中时,用户806可以看到球体在漏斗对象508中的新位置。因此,可视化对象及其底层数据集的变化对于使用虚拟环境104中的虚拟仪表板的每个用户而言可能是共同的。

在其他实施例中,可以向用户804、806中的每一个提供其自己的可视化对象的视图。在这些实施例中,可以为每个用户804、806唯一地保存每个可视化对象的状态。例如,当用户804将球体从如上所述的漏斗对象508中拉出时,用户806将继续看到球体在漏斗对象508中旋转。因此,一个用户804对可视化对象的元素做出的改变将仅被该特定用户804看到。其他用户806将继续看到处于未更改的状态的可视化对象。实施例可以根据存储的偏好来处理一个用户对底层数据集做出的改变。例如,一些实施例可以将改变传播到底层数据集,而其他实施例可以以“只读”配置提供数据集以使得对可视化对象的改变不被反映在底层数据集中。一些实施例可以在将改变写入到底层数据集之前将改变呈现给虚拟环境104中存在的所有用户以供批准。

如上所述,每个可视化对象可具有一个或多个与该可视化对象相关联的视图或视图模型。这些视图模型可以控制当在虚拟环境104中呈现可视化对象时的可视化对象的外观和感觉。EDIE环境102允许每个用户为同一可视化对象选择单独的视图模型。例如,用户804可以选择使用业务视图模型来查看漏斗对象508,该业务视图模型使用柔和的颜色和较小的球体。用户806可以选择使用非正式视图模型来查看漏斗对象508,该非正式视图模型使用较亮的颜色和较大的球体。这允许每个个体用户定制虚拟仪表板中的可视化对象的外观和感觉,而不针对其他用户改变视图模型。

图9示出了根据一些实施例的可用来与虚拟环境104进行交互的现实世界环境908的视图。用户902可使用包括虚拟现实头盔904和/或一个或多个手持选择设备906在内的虚拟现实设备。当用户902在现实世界环境908中四处移动时,虚拟环境104中的虚拟相机可以以对应方式在虚拟环境104中四处移动。虚拟相机可以捕获通过虚拟现实头盔904显示给用户902的虚拟环境104的视图。当用户902移动其握着选择设备906的手时,如上所述,虚拟环境104中的对应化身的手也可以移动和选择虚拟环境104中的对象。

图10示出了根据一些实施例的用于在多维仪表板中显示数据的方法的流程图1000。该方法可包括访问多个3D可视化组件(1002)。每个3D可视化组件可包括用于接收数据集的参数化输入。可以从组件交换器下载或以其他方式接收3D可视化组件,该组件交换器允许开发者提供要在正在开发的多个应用程序中使用的3D可视化组件。3D可视化组件可被下载到客户端设备,或者可被下载到诸如上述EDIE环境之类的操作环境中。例如,3D可视化组件可包括漏斗对象、图形对象和/或本文描述的其他可视化组件。

该方法还可包括接收一个或多个数据集(1004)。数据集可以代表从企业应用程序和/或数据库接收的企业数据。例如,数据集可以包括客户关系管理(CRM)数据库,人力资本管理(HCM)数据库,财务软件数据库和/或操作环境可用的任何其他类型的企业数据。

该方法可以另外包括将多个3D可视化组件的参数化输入与一个或多个数据集绑定(1006)。例如,对于每个3D可视化组件,对应的参数化输入可被绑定到一个或多个数据集之一。3D可视化组件的参数化输入可以使3D可视化组件通用,以使得可以凭借绑定的数据集对其外观和操作进行定制。当将组件放置在应用程序中时,可以在设计时将数据集绑定到对应的3D可视化组件。当在运行时实例化3D可视化组件时,可以替代地或另外地绑定数据集。在运行时期间,系统可以(例如,从用户)接收输入,以将数据集绑定变为不同的数据集。一些3D可视化组件可被绑定到多个不同的数据集,每个数据集可以定义3D可视化组件的视觉或操作方面。

该方法还可包括基于多个3D可视化组件和一个或多个数据集在虚拟环境中呈现多个3D虚拟对象(1008)。每个3D可视化组件可包括视图模型、动画模型、线框骨架和/或其他可用来在虚拟环境中生成3D虚拟对象的图形构造。可以在EDIE操作环境中实现虚拟环境以创建3D虚拟场景,该3D虚拟场景包括除了来自3D可视化组件的3D虚拟对象之外的对象。例如,虚拟环境可被配置为3D虚拟对象的轮盘(carousel)。在另一个示例中,虚拟环境可被配置为企业仪表板,该企业仪表板将3D对象显示为可以由虚拟环境中的用户查看的虚拟“小部件”。仪表板中的每个3D虚拟对象可被绑定到来自不同数据库和/或不同应用程序的不同企业数据集。例如,仪表板可以全部在单个虚拟环境中的一个统一显示中提供财务、雇员、运营、顾客等的摘要数据。

该方法还可包括从多个客户端设备接收到虚拟环境的连接(1010)。一些实施例可包括其上安装有硬件检测过程的客户端设备,该硬件检测过程被配置为检测与客户端设备一起使用的显示和/或输入设备的类型。硬件检测过程可以自动配置与虚拟环境的交互以匹配客户端设备的类型。例如,如果客户端设备包括虚拟现实头盔,则硬件检测过程可被配置为提供沉浸式视图和/或与虚拟环境的交互,以使得用户感觉好像他们正在虚拟环境而不是现实世界环境内工作。如果客户端设备包括2D屏幕(例如,监视器、膝上型计算机等),则硬件检测过程可被配置为将虚拟相机放置在虚拟环境中,以捕获要在该2D屏幕上显示的位置处的虚拟环境的2D图像。

该方法可以另外包括向多个客户端设备提供虚拟环境中的多个3D虚拟对象的多个视图(1012)。可以向每个客户端设备提供虚拟环境的单独视图。此外,每个客户端设备可被配置为允许用户与虚拟环境中的3D虚拟对象进行交互以更改其显示。例如,用户可以从虚拟对象中移除与对应数据集中的各个元素相对应的元素。用户可看到包括与该数据元素中的数据点有关的摘要信息的显示,并且他们可被允许改变某些数据点。可以在3D虚拟对象所绑定到的底层数据源中更新这些改变。在一些实施例中,改变可以被虚拟环境中的其他用户立即查看。或者,某些改变可能仅对做出该改变的用户可见,以使得向每个用户提供虚拟环境的个性化视图。

应当理解,图10所示的具体步骤提供了根据各种实施例的在多维仪表板中显示数据的具体方法。根据替代实施例,也可以执行其他步骤顺序。例如,本发明的替代实施例可以以不同的顺序执行上面概述的步骤。此外,图10所示的各个步骤可包括多个子步骤,这些子步骤可以按照适合于该各个步骤的各种顺序来执行。另外,根据具体应用,可以添加或移除其他步骤。本领域普通技术人员将认识到许多变型、修改和替代。

许多不同的可视化组件可以与上述虚拟环境一起使用。可以在同一应用程序中使用多个可视化组件,以创建以多种不同方式呈现数据的交互式环境。例如,单个虚拟环境可包括与漏斗对象、条形图对象、充满液体状容积的烧杯的表示、人员配置文件的配置文件布局相对应的可视化组件,和/或其他可以在3D空间中呈现以供多个客户端设备上的用户进行查看和操纵的可视化组件。根据数据的类型,可以调整一些可视化组件,以便比其他数据更突出显示该数据的各方面。虚拟环境的设计者可以确定哪些可视化组件最好地为目标受众突出显示数据的各方面。

在本文描述的实施例中,描述了特定类型的可视化组件,其突出显示包括时间分量的数据。例如,一些数据集可包括数据点的时序序列。多个值可被记录并存储为在数据表或其他数据结构中的数据点。这些值中的每个值可以按规则的时间间隔进行采样或记录。例如,可以假设已经记录五个连续的数据值,并且在每个值之间有相同的时间延迟。数据点的序列还可包括指示每个数据点之间的采样速率或间隔的值。在一些实施例中,时序中的每个数据点可以包括值以及指示系统何时获得了或记录了该值的时间戳两者。这允许数据点之间的不规则间隔。数据集可包括数据点的多于一个的时序序列。例如,可以同时为不同的系统采样数据,或者可以在不同的采样会话中为同一系统重复且顺序地采样数据。

不管数据点的时序序列被存储的方式如何,使用能够描绘数据的时间依赖性的可视化组件来显示这些数据点可能是有益的。将数据点的时序序列加载到维度受限的可视化组件中可能掩盖数据点的时间依赖性,或导致多个时序序列以单个维度一起显示,从而掩盖不同时间序列之间的差异。因此,一些可视化组件可包括专用于时间的维度以及针对数据集中的数据点的每个时序序列的单独维度。

图11示出了根据一些实施例的用于在虚拟环境中显示数据点的时序序列的可视化组件的视图。该可视化组件可被称为线图组件。当在虚拟环境中实例化或加载线图组件时,线图组件可接收如上所述要绑定到参数化输入的一个或多个数据集。每个数据集可包括数据点的一个或多个时序序列。例如,每个数据集可包括一个或多个数据表,其中数据表中的每一行对应于该时序序列中的数据值,并且每一行的每一列包括该数据值的属性值或特征。这些属性值可包括时间戳,用户ID,会话ID,其他数据值,客户端设备,测试过程,和/或任何其他可以描述为数据表中的该行记录的数据值或与为数据表中的该行记录的数据值相关联的元数据。不包括时间戳或其他采样速率标识符的行可被假定为在每个数据值之间具有规则的间隔,并且采样速率或数据值之间的间隔可被分开指定。参数化输入可以将数据点的这些时间序列中的每一个接收为矢量、数组、列表、序列和/或任何其他包括可变数量或固定数量的数据值的数据结构。

当线图组件通过参数化输入来接收和处理数据点的时序序列中的输入时,线图组件可以在虚拟环境中生成线图对象1100。线图对象1100可包括多维线图,该多维线图被设计为示出时序数据的不同维度,以使得其对于用户而言是明确可区分的。线图中的不同维度或轴可以被指派给显示中的针对每个数据值的不同维度。

在图11的示例中,线图对象1100包括可以与每个数据点的值相关联的垂直轴1102。线图对象1100还可包括与时间相对应的第一水平轴1106。线图对象1100还可包括与数据点的多个时序序列中的索引相对应的第二水平轴1104。例如,如果一个或多个数据集包括数据点的多个时序序列,则数据点的每个时序序列可被指派沿水平轴1104的特定索引。这使各个时序序列散开,以使得它们在视觉上彼此可以区分开。

作为示例,下面描述的实施例使用测试数据来说明线图对象1100如何可以显示时序数据。该测试数据可包括随着时间的推移从特定机器接收到的许多故障。沿水平轴1104的每个索引可以对应于不同的被测机器。根据水平轴1106的时间可以对应于检测到故障的时间。最终,根据水平轴1102的值可以对应于故障的严重性,检测到的故障的数量,和/或表征硬件/软件故障的任何其他方法。该测试数据被用作示例,是因为它说明了将数据点的各种时序序列彼此分开的优点。它还说明了使用与将每个时序序列分开的另一水平轴1104正交的时间轴1106的优点。

可以沿着水平轴1104的不同索引在线图对象1100中绘制数据点的每个时序序列。在一些实施例中,可以用使用不同颜色的连续线来表示数据点的每个时序序列,以使得可以在视觉上将它们与相邻的线区分开。替代地或附加地,可以用不同的线样式(例如,虚线,点划线,实线,等等)来表示数据点的每个时序序列。在一些实施例中,可以将数据点的时序序列中的每个值与阈值进行比较,并且可以更改每条线的线样式、线颜色、线透明度和/或其他视觉特性或效果以表明阈值已被超过。例如,线1108包括相对较高的值,该值可能超过故障数据的阈值。线1108可被突出显示或以不同方式着色。线1108还可包括不同的线样式,诸如较粗的点值,以表明阈值被超过。这可以帮助用户根据阈值在视觉上区分感兴趣的数据的时序序列(例如,以识别出已经广泛故障的机器)。

图12示出了根据一些实施例的从与图11的角度不同的角度的线图对象1100的视图。如以上详细描述的,在其中生成线图对象1100的虚拟环境可以是允许来自多个客户端设备的用户交互的3D虚拟环境。用户可被各自指派虚拟环境中的对应虚拟相机,该虚拟相机根据其输入进行移动。这些输入可取决于每个用户正在使用的客户端设备的类型。例如,台式计算机可包括一虚拟相机,该虚拟相机呈现来自虚拟环境的图像,该图像被显示在现实世界环境中的二维显示屏上。可以从鼠标、键盘、触摸屏显示器,从语音命令等接收用于在虚拟环境中“四处移动”的输入。这些输入可以使虚拟相机在虚拟环境中四处移动,以提供线图对象1100的3D视图的不同透视图。

如果用户通过诸如虚拟现实头盔之类的虚拟现实设备来访问虚拟环境,则虚拟环境中的对应虚拟相机可以提供图像,以使得用户感觉好像他们已经进入虚拟环境。其在现实世界环境中的物理运动可以对应于虚拟相机在虚拟环境中的运动。这允许用户在虚拟环境中的不同可视化对象中“四处走动”。如上所述,这还允许用户在可视化对象中的各个数据点被呈现在虚拟环境中时与可视化对象中的各个数据点进行交互。

例如,用户可以站在图11中的线图对象1100的前面。当他们在其视锥(viewfrustrum)当中从左向右移动时,他们可查看表示数据点的时序序列的差异线。该位置在图11中可被表示为位置1122。如果用户希望从不同的角度查看数据点的时序序列,则他们可以在现实世界环境中生成输入(例如运动),以将其虚拟相机移动到虚拟环境中的新位置。例如,用户可以四处走动到线图对象1100的右侧以便能够“向下看”线图对象1100中的每条线,以从不同的角度看数据。该角度在图12中示出。该新位置可以对应于图11和图12中的位置1120。当用户走动到新位置1120时,可以好像他们正在走过虚拟环境中的固体对象一样。这样,他们可能能够在线图对象1100周围或在线图对象1100中走动,以从所期望的任何角度或位置查看数据。

应当注意的是,从图12中的位置1120看的数据角度不同于从图11中的位置1122看的数据角度。例如,当与表示数据点的时序序列的线在图12中的尺寸相比时,这些线在图11中相对较小。除了在虚拟环境中四处移动之外,用户还可以控制他们查看虚拟环境的比例尺。当使用诸如虚拟现实头盔之类的虚拟现实设备时,这可以对应于缩放用户的虚拟“大小”。使用户变得更大/更高允许他们从图11所示的前方/头顶角度查看线图对象1100。相比之下,使用户变得更小/更矮允许他们从图12所示的更地面位置查看线图对象1100。当使用2D界面时,用户可以通过移动虚拟相机的位置并进行放大/缩小来缩放视图。

图13示出了根据一些实施例的正在由虚拟环境呈现的线图对象。为了呈现线图对象1100的视图,可以首先实例化3D对象并将其放置在虚拟环境中。线图对象1100可包括多条线,每条线对应于与线图组件的参数化输入绑定的一个或多个数据集中的数据点的各个时序序列。为了生成线图对象,虚拟环境可以为线图对象建立坐标系,将该坐标系转换成虚拟环境的坐标系,绘制每个时间序列中的各个数据点,以及用可见的线来连接那些数据点,以使得用户可以看到每个时序序列如何沿时间轴进展。

3D线图的坐标系可以对应于上述不同轴的单位。可以基于数据点中的最大值来缩放与数据点的值相对应的垂直轴。可以基于所表示的总时间和/或时序序列的数量来缩放与多个时序序列中的时间和索引相对应的第一和第二水平轴。为了将该坐标系转换成虚拟环境的坐标系,可以指定线图对象1100的整体维度。这些维度中的每一个都可以以诸如英寸、英尺等的在虚拟环境中表示的单位来表示。然后,可以将任何维度的总长度除以线图坐标系中的划分的数量,以将那些单位转换成虚拟环境中的单位。例如,如果时间轴包括各自对应于五分钟的20个划分,并且虚拟环境中的时间维度的长度是10虚拟英尺,则坐标转换可以每6英寸按5分钟进行缩放。可以针对线图对象中的每个维度执行类似的过程。

在为线图对象1100建立坐标系之间的比例之后,可以为每个时序序列绘制各个数据点。例如,由图13中的线1302表示的数据点的时序序列可被绘制如下。可以在虚拟环境中的对应坐标中绘制各个数据点中的每个数据点。例如,可以基于数据点1304的对应时间和值来绘制数据点1304。当已经针对特定的时序序列绘制了这些数据点中的每个数据点时,可以在虚拟环境中通过线对象顺序连接每个数据点。这可以对应于线、射线、多边形条和/或任何其他可以表示线图对象1100中的这些连接的3D构造。可以针对被提供给可视化组件的数据集中的每一个时序序列执行该相同过程。取决于实施例,这些可被顺序地和/或同时地绘制。

图14示出了根据一些实施例的用户如何能够与虚拟环境中的数据进行交互。如上所述,配备有虚拟现实设备和/或虚拟环境中的对应虚拟相机的用户可以在虚拟环境中四处移动。这可包括允许用户在虚拟环境中的线图对象1100的各部分上方移动,在虚拟环境中的线图对象1100的各部分中移动,和/或穿过虚拟环境中的线图对象1100的各部分。

在该示例中,虚拟环境中可以存在两个用户。这些用户可以由虚拟环境中的虚拟相机来表示。代替在虚拟环境中显示虚拟相机的表示,一些实施例可以改为生成与各个用户相对应的化身1402、1404。因此,当用户凭借移动其虚拟相机来在虚拟环境中四处移动时,虚拟环境中的其他用户可以看到化身1402、1404以动画方式在虚拟环境中四处移动。当化身1402的用户查看虚拟环境时,他们可以从图14所示的其化身1402的角度看到包括线图对象1100和另一用户的化身1404在内的虚拟环境。

用户可以在虚拟环境中将其自己缩放到允许他们与所需的数据的时序序列进行交互的级别。例如,该示例中的用户已经缩小其化身1402、1404,以使得他们可以与由线1302表示的时序序列进行交互。在一些实施例中,随着他们变得更靠近线1302,可以在线1302上突出显示各个数据点以使得它们更易于进行交互。例如,随着化身1402移动到线1302旁边,数据点1304可以变得作为球体而可见,以使得用户可以与数据点1304进行交互。当用户不紧密靠近数据点位置时,这些球体可被隐藏,以避免使表示时序序列的线的轨迹的视图杂乱。

用户可以通过“抓取”虚拟环境中的对应球体来使其化身1402与数据点1304进行交互。这可以使用如上所述的虚拟现实系统的手控制来完成。用户然后可以使得显示该数据点1304的附加信息,诸如该数据点的属性值。用户然后可以通过弹出的用户界面来改变那些属性值中的任何属性值,并针对时序序列替换行1302中的数据点1304。

一些实施例还可以允许用户改变数据点的位置。例如,用户可以使化身1402“抓取”数据点1304的球体并使其位置向上移动或向下移动。数据点1304的对应值和/或时间可被相应地改变。这些改变可以通过两个用户的化身1402、1404而对两个用户可见。这些改变也可以仅局限于做出那些改变的用户。一些实施例还可以将这些改变写回到底层数据源,而其他实施例可以仅在虚拟环境中反映改变而不写回到底层数据源。

如上所述,许多不同的可视化组件可用来显示数据中的具有时间依赖分量的时序序列。上面讨论的线图组件的示例仅作为示例提供,并不意味着是限制性的。其他实施例可以使用包括与时间相对应的维度的任何类型的可视化组件。

图15示出了根据一些实施例的圆形条形图组件,其可以用来可视化被绑定到线图组件的相同数据。圆形条形图组件可用来在虚拟环境中生成圆形条形图对象1500。与其他可视化组件一样,圆形条形图对象1500可被绑定到用来生成对象1500的一个或多个数据集。

如上所述,可以在虚拟环境中实例化或生成多个可视化组件以形成信息的虚拟仪表板。故事数据结构可用来在各种可视化组件之间动画化和转换数据。在该示例中,来自线图对象的时序序列可被转换或动画化为圆形条形图对象1500,以便以不同的方式显示相同的数据。

圆形条形图对象1500可包括从图1500的中心发出的各条线。这些线中的每条线可以表示数据点的单个时序序列。时间维度可被表示为从圆的中心发出的这些线中的每条线分成规则间隔的扇区。这些数据点中的每个数据点的值可以由从圆的边缘伸出的垂直条表示。这些条中的每一个可被间隔开以表示各个时序序列。圆形条形图1500因此可以表示时间和/或值维度,同时仍为用户在视觉上将各个时序序列分组在一起。

圆形条形图1500可以形成如上所述由用户占据的虚拟环境的一部分。例如,由化身1402、1404表示的用户可以在虚拟环境中沿着圆形条形图对象1500的顶部行走。他们可以通过踩上或以其他方式接触圆上的对应部分来突出显示不同的时间序列和/或值。

圆形条形图1500可用来显示任何类型的数据,而不仅仅是上面描述的时序数据。从圆的中心发出的线可以表示数据的分组,并且从这些线分离出来的扇区可以表示数据的子分组。向下延伸的垂直条可以表示任何维度中的任何值。因此,由圆形条形图1500表示的数据点的时序序列仅作为示例呈现,并不意味着限制圆形条形图1500的操作。

图16示出了根据一些实施例的以与线图1100类似的方式进行操作的圆形图1500。在该示例中,圆形图1500中的每个圆可以对应于数据点的单个时序序列。从圆的中心延伸出的径向线可以对应于时间维度上的划分。向上延伸的垂直条对应于时间序列中的每个数据点的值。可以以类似于如上所述绘制线图1100的方式来绘制圆形图1600。例如,线图1100可被绕在其自身上以形成圆形图1600。

圆形图1600对于查看周期性的数据可以是有利的。例如,当数据被重复(例如,测试被重复,输入的数据被重复,等等)时,这些数据可以形成可以由圆形图1600中的圆的重复遍历表示的重复图案。该图周围的每个周期可以将新数据与该先前位置中的数据聚合在一起,以使得垂直条形成垂直维度上的数据的直方图表示。

圆形图1600可以与任何类型的数据一起使用,并且从圆的中心延伸出的径向线无需一定表示时间维度上的划分。圆形图1600可以表示任何其他类型的数据。此外,圆形图1600可以是虚拟仪表板的一部分,该虚拟仪表板包括其他可视化组件,诸如圆形条形图1500和/或线图1100。该虚拟仪表板还可包括诸如上述漏斗对象之类的可视化组件。

图17示出了根据一些实施例的用于在交互式虚拟环境中可视化时序数据的方法的流程图1700。该方法可包括接收一个或多个数据集,这一个或多个数据集包括数据点的多个时序序列(1702)。数据集可包括测试数据,企业数据,来自企业应用程序或数据库的数据,从web服务或任何其他数据源接收的数据,等等。数据点的每个时序序列可包括时间维度,以使得每个数据点与时间戳相关联和/或以规则的时间间隔被接收。

该方法还可包括以3D线图在虚拟环境中绘制数据点的多个时序序列中的每一个时序序列(1704)。如上所述,这可包括为线图生成坐标系,将该坐标系转换成在虚拟环境中找到的维度,以及在那些坐标中绘制各个数据点。一些实施例可以使用线或其他3D构造将这些坐标连接在一起,以表示当数据点的时序序列穿过时间维度时的数据点的时序序列。一些实施例还可以沿另一个维度将时序序列中的每一个时序序列分开,以使得在虚拟环境中容易区分它们。

该方法可以另外包括使用一个或多个虚拟相机来生成3D线图的一个或多个视图,这一个或多个虚拟相机被配置为在虚拟环境中在3D线图中四处移动(1706)。每个虚拟相机可以通过在虚拟环境中捕获3D线图的视图并呈现要在显示设备上显示的该图像的2D视图来生成视图。每个虚拟相机可以对应于由用户操作的客户端设备。这些客户端设备可包括具有2D屏幕的设备(例如,膝上型计算机,台式计算机,等等)或具有3D显示能力的设备(例如,增强现实眼镜,虚拟现实头盔,等等)。

该方法还可包括将3D线图的一个或多个视图发送到一个或多个客户端设备(1708)。视图可被实时发送,以使得它们在每个客户端设备上以交互帧速率显示。这可以允许客户端设备的用户在虚拟环境中彼此交互。这还可以允许任何用户与3D线图中的各个数据点进行交互。例如,用户可以通过在虚拟环境中操纵3D线图中的各个数据点的值来更改这些值。这些更改可导致与可视化组件绑定的底层数据的变化。

应当理解,图17所示的具体步骤提供了根据各种实施例的在交互式虚拟环境中可视化时序数据的特定方法。根据替代实施例,也可以执行其他步骤顺序。例如,本发明的替代实施例可以按照不同的顺序执行上面概述的步骤。此外,图17所示的各个步骤可包括多个子步骤,这些子步骤可以按照适合于各个步骤的各种顺序来执行。另外,根据具体应用,可以添加或移除其他步骤。本领域普通技术人员将认识到许多变体、修改和替代。

本文描述的每个方法可以由计算机系统来实现。这些方法的每个步骤可以由计算机系统自动执行,并且/或者可被提供涉及用户的输入/输出。例如,用户可以为方法中的每个步骤提供输入,并且这些输入中的每一个可以响应于请求这样的输入的特定输出,其中该输出是由计算机系统生成的。可以响应于对应的请求输出而接收每个输入。另外,可以作为数据流从用户、从另一计算机系统接收输入,从存储器位置检索输入,通过网络检索输入,从web服务请求输入,等等。同样,可以将输出作为数据流提供给用户、提供给另一计算机系统,保存在存储器位置中,通过网络发送,提供给web服务,等等。简而言之,本文描述的方法的每个步骤可以由计算机系统执行,并且可以涉及去往或来自计算机系统的任何数量的输入、输出和/或请求,这些输入、输出和/或请求可以涉及用户或可以不涉及用户。不涉及用户的那些步骤可以说是在没有人为干预的情况下由计算机系统自动执行的。因此,鉴于本公开将会理解,本文描述的每个方法的每个步骤可被更改为包括去往和来自用户的输入和输出,或者可以在没有人为干预的情况下由计算机系统自动完成,其中由处理器做出任何判定。另外,本文描述的每个方法的一些实施例可被实现为存储在有形的非暂时性的存储介质上以形成有形的软件产品的一组指令。

图18绘出了用于实现实施例之一的分布式系统1800的简化图。在所示实施例中,分布式系统1800包括一个或多个客户端计算设备1802、1804、1806和1808,其被配置为通过一个或多个网络1810执行和操作客户端应用,诸如web浏览器、专有客户端(例如,OracleForms)等。服务器1812可以经由网络1810与远程客户端计算设备1802、1804、1806和1808通信地耦合。

在各种实施例中,服务器1812可以适于运行由系统的一个或多个部件提供的一个或多个服务或软件应用。在一些实施例中,这些服务可以作为基于web的服务或云服务被提供,或者在软件即服务(SaaS)模型下被提供给客户端计算设备1802、1804、1806和/或1808的用户。操作客户端计算设备1802、1804、1806和/或1808的用户又可以利用一个或多个客户端应用来与服务器1812交互以利用由这些部件提供的服务。

在图中绘出的配置中,系统1800的软件部件1818、1820和1822被示出为在服务器1812上实现。在其它实施例中,系统1800的一个或多个部件和/或由这些部件提供的服务也可以由客户端计算设备1802、1804、1806和/或1808中的一个或多个来实现。然后,操作客户端计算设备的用户可以利用一个或多个客户端应用来使用由这些部件提供的服务。这些部件可以用硬件、固件、软件或其组合来实现。应该认识到的是,各种不同的系统配置是可能的,其可能与分布式系统1800不同。图中所示的实施例因此是用于实现实施例系统的分布式系统的一个示例,而不是要进行限制。

客户端计算设备1802、1804、1806和/或1808可以是便携式手持设备(例如,

虽然示例性分布式系统1800被示出为具有四个客户端计算设备,但是可以支持任何数量的客户端计算设备。其它设备(诸如具有传感器的设备等)可以与服务器1812交互。

分布式系统1800中的(一个或多个)网络1810可以是本领域技术人员熟悉的、可以利用任何各种可商业获得的协议支持数据通信的任何类型的网络,其中协议包括但不限于TCP/IP(传输控制协议/网际协议)、SNA(系统网络体系架构)、IPX(互联网报文交换)、AppleTalk,等等。仅仅作为示例,(一个或多个)网络1810可以是局域网(LAN),诸如基于以太网、令牌环等的LAN。(一个或多个)网络1810可以是广域网和互联网。它可以包括虚拟网络,包括但不限于虚拟专用网(VPN)、内联网、外联网、公共交换电话网(PSTN)、红外网络、无线网络(例如,依据电子电气学会(IEEE)802.11协议套件、

服务器1812可以由一个或多个通用计算机、专用服务器计算机(作为示例,包括PC(个人计算机)服务器、

服务器1812可以运行包括以上讨论的操作系统当中任意一种的操作系统,以及任何可商业获得的服务器操作系统。服务器1812还可以运行任何各种附加的服务器应用和/或中间层应用,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(公共网关接口)服务器、

在一些实现中,服务器1812可以包括一个或多个应用,以分析和整合从客户端计算设备1802、1804、1806和1808的用户接收到的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括,但不限于,

分布式系统1800还可以包括一个或多个数据库1814和1816。数据库1814和1816可以驻留在各种位置中。作为示例,数据库1814和1816中的一个或多个可以驻留在服务器1812本地的(和/或驻留在服务器1812中的)非瞬态存储介质上。替代地,数据库1814和1816可以远离服务器1812,并且经由基于网络的连接或专用的连接与服务器1812通信。在一组实施例中,数据库1814和1816可以驻留在本领域技术人员熟悉的存储区域网络(SAN)中。类似地,用于执行服务器1812所具有的功能的任何必要的文件都可以适当地本地存储在服务器1812上和/或远程存储。在一组实施例中,数据库1814和1816可以包括适于响应于SQL格式的命令而存储、更新和检索数据的关系数据库,诸如由Oracle提供的数据库。

图19是根据本公开的实施例的系统环境1900的一个或多个部件的简化框图,通过该系统环境1900,由实施例系统的一个或多个部件提供的服务可以作为云服务提供。在所示实施例中,系统环境1900包括可以由用户使用以与提供云服务的云基础设施系统1902交互的一个或多个客户端计算设备1904、1906和1908。客户端计算设备可以被配置为操作客户端应用,诸如web浏览器、专有客户端应用(例如,Oracle Forms)或某种其它应用,这些应用可以由客户端计算设备的用户用来与云基础设施系统1902交互以使用由云基础设施系统1902提供的服务。

应该认识到的是,图中描绘的云基础设施系统1902可以具有除了所描绘的那些之外的其它部件。另外,图中所示的实施例仅是可以结合本发明的实施例的云基础设施系统的一个示例。在一些其它实施例中,云基础设施系统1902可以具有比图中所示更多或更少的部件、可以组合两个或更多个部件、或者可以具有不同的部件配置或布置。

客户端计算设备1904、1906和1908可以是与上面针对1802、1804、1806和1808所描述的设备类似的设备。

虽然示例性系统环境1900被示出具有三个客户端计算设备,但是任何数量的客户端计算设备可以被支持。诸如具有传感器的设备等的其它设备可以与云基础设施系统1902交互。

(一个或多个)网络1910可以促进客户端1904、1906和1908与云基础设施系统1902之间的数据通信和交换。每个网络可以是本领域技术人员所熟悉的可以使用各种商业上可获得的协议(包括上面针对(一个或多个)网络1810所描述的那些协议)中的任何一种支持数据通信的任何类型的网络。

云基础设施系统1902可以包括一个或多个计算机和/或服务器,其可以包括上面针对服务器1812所描述的那些计算机和/或服务器。

在某些实施例中,由云基础设施系统提供的服务可以包括按需对云基础设施系统的用户可用的许多服务,诸如在线数据存储和备份解决方案、基于Web的电子邮件服务、被托管的办公室(office)套件和文档协作服务、数据库处理、受管理的技术支持服务等。由云基础设施系统提供的服务可以动态扩展以满足云基础设施系统的用户的需要。由云基础设施系统提供的服务的具体实例化在本文中被称为“服务实例”。一般而言,从云服务提供商的系统经由通信网络(诸如互联网)对用户可用的任何服务被称为“云服务”。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自己的本地服务器和系统不同。例如,云服务提供商的系统可以托管应用,并且用户可以经由诸如互联网的通信网络按需订购和使用应用。

在一些示例中,计算机网络云基础设施中的服务可以包括对存储装置、被托管的数据库、被托管的Web服务器、软件应用或由云供应商向用户提供的其它服务的受保护的计算机网络访问,或者如本领域中另外已知的那样。例如,服务可以包括通过互联网对云上的远程存储装置进行密码保护的访问。作为另一个示例,服务可以包括基于Web服务的被托管的关系数据库和脚本语言中间件引擎,以供联网的开发人员私有使用。作为另一个示例,服务可以包括对在云供应商的网站上托管的电子邮件软件应用的访问。

在某些实施例中,云基础设施系统1902可以包括以自助服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式递送给客户的应用、中间件和数据库服务产品的套件。这种云基础设施系统的示例是由本受让人提供的Oracle公共云。

在各种实施例中,云基础设施系统1902可以适于自动供应、管理和跟踪客户对由云基础设施系统1902供给的服务的订阅。云基础设施系统1902可以经由不同的部署模型来提供云服务。例如,可以依据公共云模型提供服务,其中云基础设施系统1902被销售云服务的组织拥有(例如,被Oracle拥有),并且服务对一般公众或不同行业的企业可用。作为另一个示例,可以依据私有云模型来提供服务,其中云基础设施系统1902仅针对单个组织操作,并且可以为该组织内的一个或多个实体提供服务。还可以依据社区云模型来提供云服务,其中云基础设施系统1902和由云基础设施系统1902提供的服务由相关社区中的若干组织共享。云服务还可以依据混合云模型被提供,该混合云模型是两个或更多个不同模型的组合。

在一些实施例中,由云基础设施系统1902提供的服务可以包括在软件即服务(SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(IaaS)类别或包括混合服务的其它服务类别下提供的一个或多个服务。客户经由订阅订单可以订购由云基础设施系统1902提供的一个或多个服务。云基础设施系统1902然后执行处理以提供客户的订阅订单中的服务。

在一些实施例中,由云基础设施系统1902提供的服务可以包括但不限于应用服务、平台服务和基础设施服务。在一些示例中,应用服务可以由云基础设施系统经由SaaS平台提供。SaaS平台可以被配置为提供落入SaaS类别的云服务。例如,SaaS平台可以提供在集成开发和部署平台上构建和递送按需应用套件的能力。SaaS平台可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用由SaaS平台提供的服务,客户可以利用在云基础设施系统上执行的应用。客户可以获取应用服务,而无需客户购买单独的许可和支持。可以提供各种不同的SaaS服务。示例包括但不限于为大型组织提供销售绩效管理、企业集成和业务灵活性的解决方案的服务。

在一些实施例中,平台服务可以由云基础设施系统经由PaaS平台提供。PaaS平台可以被配置为提供落入PaaS类别的云服务。平台服务的示例可以包括但不限于使组织(诸如Oracle)能够在共享的公共体系架构上整合现有应用以及充分利用平台提供的共享服务来构建新应用的能力的服务。PaaS平台可以管理和控制用于提供PaaS服务的底层软件和基础设施。客户可以获取由云基础架构系统提供的PaaS服务,而无需客户购买单独的许可和支持。平台服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)等。

通过利用由PaaS平台提供的服务,客户可以采用由云基础设施系统支持的编程语言和工具,并且还控制所部署的服务。在一些实施例中,由云基础设施系统提供的平台服务可以包括数据库云服务、中间件云服务(例如,Oracle融合中间件服务)和Java云服务。在一个实施例中,数据库云服务可以支持共享服务部署模型,该模型使得组织能够汇集数据库资源并且以数据库云的形式向客户供应数据库即服务。在云基础设施系统中,中间件云服务可以为客户提供开发和部署各种业务应用的平台,并且Java云服务可以为客户提供部署Java应用的平台。

各种不同的基础设施服务可以由云基础设施系统中的IaaS平台提供。基础设施服务促进底层计算资源(诸如存储装置、网络和其它基础计算资源)的管理和控制,以供客户利用由SaaS平台和PaaS平台提供的服务。

在某些实施例中,云基础设施系统1902还可以包括基础设施资源1930,用于向云基础设施系统的客户提供用于提供各种服务的资源。在一个实施例中,基础设施资源1930可以包括预先集成和优化的硬件(诸如服务器、存储装置和联网资源)的组合,以执行由PaaS平台和SaaS平台提供的服务。

在一些实施例中,云基础设施系统1902中的资源可以由多个用户共享并且根据需要动态重新分配。此外,可以将资源分配给在不同时区的用户。例如,云基础设施系统1930可以使在第一时区中的第一组用户能够在指定的小时数内利用云基础设施系统的资源,并且然后使相同资源能够被重新分配给位于不同时区的另一组用户,从而使资源的利用率最大化。

在某些实施例中,可以提供由云基础设施系统1902的不同部件或模块以及由云基础设施系统1902提供的服务共享的多个内部共享服务1932。这些内部共享服务可以包括但不限于:安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。

在某些实施例中,云基础设施系统1902可以提供云基础设施系统中的云服务(例如,SaaS、PaaS和IaaS服务)的综合管理。在一个实施例中,云管理功能可以包括用于供应、管理和跟踪由云基础设施系统1902接收到的客户订阅等的能力。

在一个实施例中,如图中所绘出的,云管理功能可以由一个或多个模块提供,诸如订单管理模块1920、订单编排模块1922、订单供应模块1924、订单管理和监视模块1926,以及身份管理模块1928。这些模块可以包括一个或多个计算机和/或服务器或者使用一个或多个计算机和/或服务器来提供,这些计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器场、服务器集群或任何其它适当的布置和/或组合。

在示例性操作1934中,使用客户端设备(诸如客户端设备1904、1906或1908)的客户可以通过请求由云基础设施系统1902提供的一个或多个服务并且下订阅由云基础设施系统1902供应的一个或多个服务来的订单来与云基础设施系统1902交互。在某些实施例中,客户可以访问云用户界面(UI)(云UI 1912、云UI 1914和/或云UI 1916)并经由这些UI下订阅订单。云基础设施系统1902响应于客户下订单而接收到的订单信息可以包括识别客户以及客户想要订阅的云基础设施系统1902供应的一个或多个服务的信息。

在客户下订单之后,经由云UI 1912、1914和/或1916接收订单信息。

在操作1936处,订单存储在订单数据库1918中。订单数据库1918可以是由云基础设施系统1918操作和与其它系统元件一起操作的若干数据库之一。

在操作1938处,订单信息被转发到订单管理模块1920。在一些情况下,订单管理模块1920可以被配置为执行与订单相关的计费和记账功能,诸如验证订单、以及在验证后预订订单。

在操作1940处,将关于订单的信息传送到订单编排模块1922。订单编排模块1922可以利用订单信息为客户下的订单编排服务和资源的供应。在一些情况下,订单编排模块1922可以使用订单供应模块1924的服务来编排资源的供应以支持所订阅的服务。

在某些实施例中,订单编排模块1922使得能够管理与每个订单相关联的业务过程并应用业务逻辑来确定订单是否应该进行到供应。在操作1942处,在接收到新订阅的订单时,订单编排模块1922向订单供应模块1924发送分配资源并配置履行订阅订单所需的那些资源的请求。订单供应模块1924使得能够为客户订购的服务分配资源。订单供应模块1924提供在由云基础设施系统1900提供的云服务和用于供应用于提供所请求的服务的资源的物理实现层之间的抽象层。因此,订单编排模块1922可以与实现细节(诸如服务和资源是否实际上即时供应或预先供应并仅在请求后才分配/指派)隔离。

在操作1944处,一旦供应了服务和资源,就可以通过云基础设施系统1902的订单供应模块1924向客户端设备1904、1906和/或1908上的客户发送所提供的服务的通知。

在操作1946处,订单管理和监视模块1926可以管理和跟踪客户的订阅订单。在一些情况下,订单管理和监视模块1926可以被配置为收集订阅订单中的服务的使用统计信息,诸如,所使用的存储量、传输的数据量、用户的数量,以及系统运行时间量和系统停机时间量。

在某些实施例中,云基础设施系统1900可以包括身份管理模块1928。身份管理模块1928可以被配置为提供身份服务,诸如云基础设施系统1900中的访问管理和授权服务。在一些实施例中,身份管理模块1928可以控制关于希望利用由云基础设施系统1902提供的服务的客户的信息。这样的信息可以包括认证这些客户的身份的信息以及描述这些客户被授权相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段等)执行哪些动作的信息。身份管理模块1928还可以包括对关于每个客户的描述性信息以及关于如何和由谁来访问和修改这些描述性信息的管理。

图20示出了其中可以实现本发明的各种实施例的示例性计算机系统2000。系统2000可以用于实现上述任何计算机系统。如图所示,计算机系统2000包括经由总线子系统2002与多个外围子系统通信的处理单元2004。这些外围子系统可以包括处理加速单元2006、I/O子系统2008、存储子系统2018和通信子系统2024。存储子系统2018包括有形计算机可读存储介质2022和系统存储器2010。

总线子系统2002提供用于让计算机系统2000的各种部件和子系统按意图彼此通信的机制。虽然总线子系统2002被示意性地示出为单条总线,但是总线子系统的替代实施例可以利用多条总线。总线子系统2002可以是若干种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用任何各种总线体系架构的局部总线。例如,这种体系架构可以包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围部件互连(PCI)总线,其可以被实现为按IEEE P1386.1标准制造的Mezzanine总线。

可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元2004控制计算机系统2000的操作。一个或多个处理器可以被包括在处理单元2004中。这些处理器可以包括单核或多核处理器。在某些实施例中,处理单元2004可以被实现为一个或多个独立的处理单元2032和/或2034,其中在每个处理单元中包括单核或多核处理器。在其它实施例中,处理单元2004也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处理单元。

在各种实施例中,处理单元2004可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定的时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或多个)处理器2004中和/或存储子系统2018中。通过适当的编程,(一个或多个)处理器2004可以提供上述各种功能。计算机系统2000可以附加地包括处理加速单元2006,其可以包括数字信号处理器(DSP)、专用处理器,等等。

I/O子系统2008可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚动轮、点击轮、拨盘、按钮、开关、键盘、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括,例如,运动感测和/或手势识别设备,诸如的Microsoft

用户接口输入设备也可以包括但不限于三维(3D)鼠标、操纵杆或指向棒、游戏面板和绘图板,以及音频/视频设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪和视线跟踪设备。此外,用户接口输入设备可以包括,例如,医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层摄影术、医疗超声设备。用户接口输入设备也可以包括,例如,诸如MIDI键盘、数字乐器等的音频输入设备。

用户接口输出设备可以包括显示子系统、指示灯,或者诸如音频输出设备的非可视显示器,等等。显示子系统可以是阴极射线管(CRT)、诸如使用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏,等等。一般而言,术语“输出设备”的使用意在包括用于从计算机系统2000向用户或其它计算机输出信息的所有可能类型的设备和机制。例如,用户接口输出设备可以包括,但不限于,可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备,以及调制解调器。

计算机系统2000可以包括包含软件元件、被示为当前位于系统存储器2010中的存储子系统2018。系统存储器2010可以存储可加载并且可在处理单元2004上执行的程序指令,以及在这些程序的执行期间所产生的数据。

取决于计算机系统2000的配置和类型,系统存储器2010可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器,等等)。RAM通常包含可被处理单元2004立即访问和/或目前正被处理单元2004操作和执行的数据和/或程序模块。在一些实现中,系统存储器2010可以包括多种不同类型的存储器,例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实现中,诸如包含有助于在启动期间在计算机系统2000的元件之间传送信息的基本例程的基本输入/输出系统(BIOS),通常可以被存储在ROM中。作为示例,但不是限制,系统存储器2010也示出了可以包括客户端应用、web浏览器、中间层应用、关系数据库管理系统(RDBMS)等的应用程序2012,程序数据2014,以及操作系统2016。作为示例,操作系统2016可以包括各种版本的Microsoft

存储子系统2018也可以提供用于存储提供一些实施例的功能的基本编程和数据结构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模块、指令)可以被存储在存储子系统2018中。这些软件模块或指令可以被处理单元2004执行。存储子系统2018也可以提供用于存储根据本发明被使用的数据的储存库。

存储子系统2000也可以包括可被进一步连接到计算机可读存储介质2022的计算机可读存储介质读取器2020。与系统存储器2010一起并且,可选地,与其相结合,计算机可读存储介质2022可以全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可读信息的远程、本地、固定和/或可移除存储设备加存储介质。

包含代码或代码的部分的计算机可读存储介质2022也可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于,以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。这可以包括有形的计算机可读存储介质,诸如RAM、ROM、电可擦除可编程ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学储存器、磁带盒、磁带、磁盘储存器或其它磁存储设备,或者其它有形的计算机可读介质。这也可以包括非有形的计算机可读介质,诸如数据信号、数据传输,或者可以被用来发送期望信息并且可以被计算系统2000访问的任何其它介质。

作为示例,计算机可读存储介质2022可以包括从不可移除的非易失性磁介质读取或写到其的硬盘驱动器、从可移除的非易失性磁盘读取或写到其的磁盘驱动器、以及从可移除的非易失性光盘(诸如CD ROM、DVD和

通信子系统2024提供到其它计算机系统和网络的接口。通信子系统2024用作用于从其它系统接收数据和从计算机系统2000向其它系统发送数据的接口。例如,通信子系统2024可以使计算机系统2000能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系统2024可以包括用于访问无线语音和/或数据网络的射频(RF)收发器部件(例如,使用蜂窝电话技术,诸如3G、4G或EDGE(用于全球演进的增强型数据速率)的先进数据网络技术,WiFi(IEEE 802.11系列标准),或其它移动通信技术,或其任意组合)、全球定位系统(GPS)接收器部件和/或其它部件。在一些实施例中,作为无线接口的附加或者替代,通信子系统2024可以提供有线网络连接(例如,以太网)。

在一些实施例中,通信子系统2024也可以代表可以使用计算机系统2000的一个或多个用户接收结构化和/或非结构化数据馈送2026、事件流2028、事件更新2030等形式的输入通信。

作为示例,通信子系统2024可被配置为实时地从社交网络和/或其它通信服务的用户接收数据馈送2026,诸如

此外,通信子系统2024也可被配置为接收连续数据流形式的数据,这可以包括本质上可以是连续的或无界的没有明确终止的实时事件的事件流2028和/或事件更新2030。产生连续数据的应用的示例可以包括,例如,传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视,等等。

通信子系统2024也可被配置为向一个或多个数据库输出结构化和/或非结构化数据馈送2026、事件流2028、事件更新2030,等等,这一个或多个数据库可以与耦合到计算机系统2000的一个或多个流式数据源计算机通信。

计算机系统2000可以是各种类型之一,包括手持便携式设备(例如,

由于计算机和网络的不断变化的本质,在图中绘出的计算机系统2000的描述仅仅要作为具体的示例。具有比图中绘出的系统更多或更少部件的许多其它配置是可能的。例如,定制的硬件也可以被使用和/或特定的元素可以用硬件、固件、软件(包括applets)或其组合来实现。另外,也可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。基于本文提供的公开内容和示教,本领域普通技术人员将认识到实现各种实施例的其它方式和/或方法。

在前述描述中,出于说明的目的,阐述了许多具体细节以便提供对本发明的各种实施例的透彻理解。然而,对本领域技术人员显而易见的是,可以在没有这些具体细节中的一些的情况下实践本发明的实施例。在其他情况下,以框图形式示出了公知的结构和设备。

前述描述仅提供示例性实施例,并不旨在限制本公开的范围、适用性或配置。而是,示例性实施例的前述描述将向本领域技术人员提供用于实现示例性实施例的使能描述。应当理解的是,在不脱离所附权利要求所阐述的本发明的精神和范围的情况下,可以对元素的功能和布置做出各种改变。

在前述描述中给出了具体细节以提供对实施例的透彻理解。然而,本领域的普通技术人员将理解,可以在没有这些具体细节的情况下实践实施例。例如,电路、系统、网络、过程和其他组件可能已经被示出为框图形式的组件,以便不会在不必要的细节上使实施例晦涩难懂。在其他情况下,可能已经在没有不必要的细节的情况下示出了公知的电路、过程、算法、结构和技术,以避免使实施例晦涩难懂。

另外,注意到,各个实施例可能已经被描述为一过程,该过程被描绘为流程图、流程图、数据流程图、结构图或框图。尽管流程图可能已经将操作描述为顺序过程,但是许多操作可以并行执行或同时执行。此外,可以重新安排操作的顺序。流程在其操作完成时终止,但可能具有图中未包括的其他步骤。过程可以对应于方法、函数、过程、子例程、子程序等。当过程对应于函数时,其终止可以对应于该函数返回到调用函数或主函数。

术语“计算机可读介质”包括但不限于:便携式存储设备或固定存储设备,光学存储设备,无线信道以及各种其他能够存储、包含或携带一个或多个指令和/或数据的介质。代码段或机器可执行指令可以表示过程,函数,子程序,程序,例程,子例程,模块,软件包,类,或者指令、数据结构或程序语句的任意组合。一个代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一个代码段或硬件电路。信息、自变量、参数、数据等可以经由包括存储器共享、消息传递、令牌传递、网络传输等的任何合适的方式进行传递、转发或传输。

另外,可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任意组合来实现实施例。当以软件、固件、中间件或微代码来实现时,执行必要任务的程序代码或代码段可以存储在机器可读介质中。一个或多个处理器可以执行必要的任务。

在前述的说明书中,本发明的各方面参考其具体实施例进行了描述,但本领域技术人员将认识到的是,本发明不限于此。上述发明的各个特征和方面可以被单独或联合使用。此外,在不脱离本说明书的更广泛精神和范围的情况下,实施例可以在除本文所述的那些之外的任何数目的环境和应用中被使用。相应地,本说明书和附图应当被认为是说明性而不是限制性的。

此外,出于说明的目的,以特定顺序描述了方法。应当理解,在替代实施例中,可以按照与所描述的顺序不同的顺序来执行这些方法。还应当理解,上述方法可以由硬件组件执行,或者可以以机器可执行指令的序列来体现,这些机器可执行指令的序列可用来使机器(诸如通用或专用的处理器或者用指令进行编程的逻辑电路)执行这些方法。这些机器可执行指令可以存储在一个或多个机器可读介质(诸如CD-ROM或其他类型的光盘、软盘、ROM、RAM、EPROM、EEPROM、磁卡或光卡、闪存、或者适用于存储电子指令的其他类型的机器可读介质)上。可替代地,可以通过硬件和软件的组合来执行这些方法。

相关技术
  • 虚拟环境中的数据可视化对象
  • 虚拟环境中的虚拟对象控制方法、装置、设备及存储介质
技术分类

06120113106253