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

使用语音命令和定义的视角优化虚拟数据视图

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


使用语音命令和定义的视角优化虚拟数据视图

相关申请的交叉引用

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

本申请还涉及以下五个美国专利申请:

·由Moroze等人于2019年10月21日提交的标题为“INTERACTIVE DATA EXPLORERAND 3-D DASHBOARD ENVIRONMENT”的编号为16/658,162(代理案卷号为088325-1142774)的美国专利申请,该申请整体并入本文。

·由Moroze等人于2019年10月21日提交的标题为“FUNNEL VISUALIZATION WITHDATA POINT ANIMATIONS AND PATHWAYS”的编号为16/658,165(代理案卷号为088325-1142775)的美国专利申请,该申请整体并入本文。

·由Moroze等人于2019年10月21日提交的标题为“OPTIMIZING VIEWS USINGVOICE COMMANDS”的编号为16/658,169(代理案卷号为088325-1142776)的美国专利申请,该申请整体并入本文。

·由Moroze等人于2019年10月21日提交的标题为“ANIMATION BETWEENVISUALIZATION OBJECTS INA VIRTUAL DASHBOARD”的编号为16/658,177(代理案卷号为088325-1142782)的美国专利申请,该申请整体并入本文。

·由Moroze等人于2019年10月21日提交的标题为“DATA VISUALIZATION OBJECTSIN A VIRTUAL ENVIRONMENT”的编号为16/658,180(代理案卷号为088325-1143002)的美国专利申请,该申请整体并入本文。

背景技术

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

发明内容

一种用于确定可视化对象的最佳视图的方法可以包括接收一个或多个数据集;生成与一个或多个数据集中的数据点对应的3D对象;以预定3D形状布置3D对象;接收指示预定3D形状的第一视图的命令;确定与第一视图相关联的距离;以及提供预定3D形状的第一视图的显示。3D对象可以在视觉上相对于一个或多个3D构造被强调,该一个或多个3D构造至少部分地基于与第一视图相关联的距离表示预定3D形状的结构。

一种非暂态计算机可读介质可以包括指令,该指令在由一个或多个处理器执行时,使一个或多个处理器执行操作,该操作包括:接收一个或多个数据集;生成与一个或多个数据集中的数据点对应的3D对象;以预定3D形状布置3D对象;接收指示预定3D形状的第一视图的命令;确定与第一视图相关联的距离;以及提供预定3D形状的第一视图的显示。3D对象可以在视觉上相对于一个或多个3D构造被强调,该一个或多个3D构造至少部分地基于与第一视图相关联的距离表示预定3D形状的结构。

一种系统可以包括一个或多个处理器以及可以包括指令的一个或多个存储器设备,该指令在由一个或多个处理器执行时,使一个或多个处理器执行操作,该操作包括:接收一个或多个数据集;生成与一个或多个数据集中的数据点对应的3D对象;以预定3D形状布置3D对象;接收指示预定3D形状的第一视图的命令;确定与第一视图相关联的距离;以及提供预定3D形状的第一视图的显示。3D对象可以在视觉上相对于一个或多个3D构造被强调,该一个或多个3D构造至少部分地基于与第一视图相关联的距离表示预定3D形状的结构。

在任何实施例中,以下特征中的任何特征可以以任何组合且不受限制地实现。指示第一视图的命令可以包括简明(plain)英语语音命令。该方法/操作还可以包括将简明英语语音命令转换成多个预定命令中的预定命令。该方法/操作还可以包括将预定命令提供给一个或多个神经网络。提供预定3D形状的第一视图的显示使用由一个或多个神经网络的输出确定的虚拟相机的视图位置。可以基于一个或多个神经网络的输出来选择一个或多个数据集。可以基于一个或多个神经网络的输出来选择3D对象和预定3D形状。第一视图位置包括用预定3D形状填充约90%的视图区域的视图。该方法/操作还可以包括确定与第一视图相关联的距离大于第一阈值距离,以及在不强调3D对象的同时强调一个或多个3D构造。该方法/操作还可以包括确定第一视图已经被缩放到低于第二阈值但是高于第一阈值的第二视图位置,以及在逐渐强调3D对象的同时逐渐不强调预定3D形状。该方法/操作还可以包括确定与第一视图相关联的距离小于第二阈值距离,以及在强调3D对象的同时不强调一个或多个3D构造。通过相对于一个或多个3D构造的透明度改变3D对象的透明度,可以相对于一个或多个3D构造在视觉上强调3D对象。

附图说明

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

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

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

图3图示了用于将组件从组件交换器(exchange)导入到应用中的用户界面。

图4图示了根据一些实施例的用于下载和实例化应用中的组件的处理的框图。

图5图示了根据一些实施例的在虚拟环境中创建的虚拟仪表盘(dashboard)。

图6图示了根据一些实施例的各种类型的客户端设备系统和输入设备如何可以全都与EDIE环境中的相同虚拟环境同时对接(interface)。

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

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

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

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

图11图示了根据一些实施例的漏斗形式的可视化对象的示例。

图12A图示了根据一些实施例的表示离数据点第一距离的3D对象的视图。

图12B图示了根据一些实施例的使用基于模型的系统来解释视图和/或数据显示命令的系统的图。

图13图示了根据一些实施例的3D形状的近视图(closer view)。

图14图示了根据一些实施例的数据集的优化视图。

图15图示了根据一些实施例的渲染的可视化组件的完全缩放的视图。

图16图示了如上所述的用于确定可视化组件的最佳视图的方法的流程图。

图17图示了根据一些实施例的用于从数据点集合生成可视化对象的方法的流程图。

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

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

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

具体实施方式

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

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

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

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

在这个示例中,开发环境可以包括组件交换器。例如,可以使用任何商业可用的开发环境来实现开发环境,诸如来自

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

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

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

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

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

在组件交换器124中,可视化对象可以被表示为组件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还可以在运行时或在执行应用之前用不同的数据集动态地调整或重新形成。

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

在虚拟环境104中生成的可视化对象可以由多个不同的客户端设备126、128、130、132查看和/或与之交互。这些客户端设备可以包括膝上型计算机、台式计算机、工作站、平板计算机、智能电话、智能手表、智能TV、视频游戏控制台、数字家庭助理、智能眼镜、虚拟现实耳机、增强现实耳机以及任何其它计算设备。这些客户端设备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复制和粘贴到应用的代码中。

此外,一些实施例可以提供安装按钮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。例如,作为用于漏斗对象402的安装处理的一部分,组件交换器124可以使得从第三方网站下载图形操纵代码的库。所有这些代码都可以被下载到EDIE环境102,使得漏斗对象402可以以其所有需要的功能以独立的方式进行操作。

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

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

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

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

本文描述的实施例使用上述可视化组件在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数据探索平台。例如,EDIE环境102可以用作重要的、融合的新技术之间的集成的联系,这些新技术可以使企业数据的探索更加沉浸和流畅。这些技术可以包括(例如,基于语音或基于聊天的)对话UI 610、虚拟现实(VR)608、增强现实(AR)604以及许多其它交互式技术。用户还可以使用传统的2D计算工具(诸如移动设备606上的app、显示屏上的web浏览器612等)访问这些可视化技术。EDIE环境102可以提供可视化,该可视化通过设备之间的转变无缝地转换。例如,用户可以在2D环境中(诸如移动设备606的屏幕上)查看3D可视化。然后,用户可以戴上一副虚拟现实护目镜,并过渡到虚拟现实空间,该虚拟现实空间包括以2D方式显示在移动设备606的屏幕上的可视化对象。在虚拟环境中,用户可以使用如下所述的VR系统中通常包括的手动控制器与可视化对象进行交互。

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

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

图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可以看虚拟相机以查看用户702在屏幕704上的显示,并且代替看到虚拟相机,他们可以看到虚拟环境104中的化身。用户708可能无法区分用户702是使用虚拟现实耳机还是2D显示屏704。

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

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

图8还图示了虚拟相机802,该虚拟相机802可以被用于捕获虚拟环境104的视图以获得要显示在2D屏幕上的图像。如上所述,可以用供用户702查看屏幕704的化身来代替虚拟相机802的描绘。可替代地,虚拟相机802可以在虚拟环境104中不具有视觉等同物,或者可以由任何其它视觉指示器代替,作为可以被渲染给其他用户观看的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中所示的各个步骤可以包括多个子步骤,这些子步骤可以按照适合于各个步骤的各种顺序来执行。此外,取决于特定的应用,可以添加或移除附加步骤。本领域普通技术人员将认识到许多变型、修改和替代。

如上所述,导入的数据集可以由虚拟环境中的一个或多个可视化组件表示。可以将许多不同类型的可视化组件导入虚拟环境,以表示它们被绑定到的数据集。每个可视化组件可用的形状、设计和动画可以经过专门设计,以便为用户提供视觉体验,以供他们查看、理解和操纵复杂的数据集。代替简单查看网页上的图形或2D饼图,用户还可以看到三个维度的高级动画,这些动画可以说明数据随时间变化的方式、数据如何彼此交互以及通过数据传播了哪些改变以实现期望的结果。与用于显示企业数据并与企业数据进行交互的传统二维仪表盘相比,这些可视化组件具有明显的优势。

以下各图图示了可视化组件的示例,该可视化组件可以用于显示特定类型的数据和与特定类型的数据交互。图11图示了根据一些实施例的漏斗1100形式的可视化对象的示例。漏斗1100可以被称为最终对象、漏斗可视化组件或漏斗3D对象。漏斗1100对于可视化具有数千或甚至数百万个数据点的大型数据集可以是有用的。漏斗1100可以提供可以共同传达关于每个数据点和关于数据点集合的信息的多个同时视觉指示器。这些视觉指示器可以包括数据点的着色、数据点的尺寸、数据点到漏斗1100的中心的径向距离、数据点的径向角度、数据点绕漏斗1100的旋转速度、沿着漏斗1100的长度的距离等。数据集中的属性可以被用于在漏斗1100周围绘制各个数据点,并控制其外观和/或动画以将所有这些信息以可视显示的形式同时传达给用户。

如上所述,用于漏斗1100的可视化组件可以被设计为对任何特定的数据集都是不可知的。代替地,漏斗1100可以包括现有数据集可以绑定到的参数化输入的集合。通过示例的方式,以下讨论可以使用特定类型的数据集来说明漏斗1100可以如何查看和操纵该数据集。这个示例数据集可以包括从销售云应用导入或访问的数据表。这个数据表可以在数据表的每一行中包括销售机会。数据表中的不同列可以包括销售机会的所有属性。这些属性可以包括个人之间的互动、分数、进度指示器和/或将销售机会发展为完成的销售的任何其它特征。当将用于漏斗1100的可视化组件导入到应用(诸如虚拟仪表盘应用)时,应用设计者和/或用户可以选择销售机会表作为要由漏斗1100表示的数据集。然后可以使用来自数据表的数据点来构造表示漏斗1100的3D对象,以控制漏斗1100的视觉方面。这些视觉方面将在下面进行详细描述,但是简而言之,数据表中的每一行可以与漏斗1100中绕漏斗1100旋转的球体对应。每个球体的旋转速度、角度、轨迹、颜色、尺寸和/或其它特性可以由对应数据行中的列定义。

将理解的是,仅以示例的方式使用针对漏斗1100的底层数据集的销售机会数据的使用,这并不意味着是限制性的。如上面所强调的,用于漏斗1100的可视化组件的设计不依赖于底层数据集。代替地,任何数据集可以绑定到漏斗1100,以便用表示数据点的球体来填充漏斗1100。销售机会信息仅仅是数据集的一个示例,该数据集说明了可以如何使用漏斗1100交互地可视化数据点的属性。其它数据集可以包括财务数据、科学数据、测试或实验数据、调查数据和/或任何其它类型的数据源。

首先,漏斗1100上的距离1106可以传达每个数据点的含义。距漏斗1100的原点的距离1106可以由与漏斗1100中的球体对应的每一行的列的值来确定。例如,对于每个单独的数据点,距离1106可以指示数据点从开始值到结束值的相对进度。例如,对于表示销售机会的数据点,数据点离漏斗1100的原点越远,销售机会离成功完成越远。因此,数据点1107将表示处于进度的初始阶段的销售机会,而数据点1108将表示接近成功完成的销售机会。漏斗1100本身的形状也可以传达这种类型的含义。漏斗一般使用其物理对应物在较大的开口处接收新材料,然后沿着漏斗将该材料(例如,液体)“经过漏斗”逐渐朝漏斗的较小端倒入。通过在虚拟环境中使用漏斗1100的形状,用户可以直观地理解,数据点将从较大的外部区域朝着漏斗内部较小的较小区域前进。因此,漏斗1100对于显示一大组数据点中的各个数据点的进度非常有用。当在虚拟环境中构造漏斗1100时,每个球体可以被放置在漏斗中的基于来自数据集的这个值的位置或距离1106处。

除了示出数据点的集合中的单个数据点的进度外,漏斗1100对于显示数据点进度的总体趋势也非常有用。在图11的图示中,在漏斗可视化中,数据集中有成千上万个数据点,这些数据点由小球体表示。除了专注于单个数据点的能力外,这个可视化还为用户提供了数据的聚类或自然分组的说明,以说明数据集中的趋势。例如,在漏斗1100的开始阶段(例如,阶段1)中距原点(例如,阶段5)很远的数据点的聚类可以表示开始阶段中的大量销售机会;但是,在漏斗1100的原点(例如,阶段5)附近的少量数据点将说明相对少的销售机会已被追求或完成。漏斗1100还可以快速提供评估数据集中的数据点总数的方式。例如,填充稀少的漏斗说明几乎没有销售机会可用。相反,每个级别密集填充的漏斗说明有在不同的进度状态之间平均分配的许多机会。

通过创建将在漏斗本身1100的渲染中显示的数据的阈值、分条或分组,可以增强漏斗1100中在视觉上显而易见的数据的自然分组或聚类。例如,漏斗1100可以包括第一阶段1101、第二阶段1102、第三阶段1103、第四阶段1104和第五阶段1105。阶段之间的划分可以通过用户定义的阈值来建立,并且可以表示数据点向最终结果前进的阶段。例如,第一阶段1101可以表示已被识别但尚未评估或未采取行动的销售机会。第五阶段1105可以代表已经被培养成完成的销售的销售机会。在一些实施例中,可以使用定义的边界、不同的配色方案和/或在视觉上区分一个阶段中的数据点与另一个阶段中的数据点的其它手段如图11所示在视觉上描绘每个阶段。在一些实施例中,这可以包括似乎是漏斗本身的表示,而其它实施例可以借助于填充漏斗的数据点简单地形成漏斗形状。

不同阶段1101、1102、1103、1104、1105可以沿着漏斗1100的长度规则地间隔开。可以基于由漏斗1100定义的静态间隔来确定阶段1101、1102、1103、1104、1105中的每一个的相对宽度。相对宽度也可以由每个阶段内的多个数据点确定。例如,当较大数量的数据点驻留在这个第一阶段1101中时,第一阶段1101的宽度可以较大。各个阶段的颜色可以是透明的,使得它们遮盖漏斗1100的各个区域,同时仍然允许在其中循环的数据点易于被查看。如上所述,用户可以通过选择在漏斗1100内旋转的各个数据点来与漏斗进行交互。不同阶段不需要在虚拟环境中建模为实体表面,而是用户可以“穿过”每个阶段以与其中循环的数据点进行交互。

一些实施例可以以静态而非运动的方式在漏斗1100中呈现数据点。替代地或附加地,一些实施例还可以基于一个或多个属性来对漏斗1100中的数据点的运动进行动画处理。例如,图11中的数据点可以基于涉及具体数据点的动作的频率而被动画处理为绕漏斗1100的中心轴旋转。在表示销售数据的数据点的示例中,各个数据点绕漏斗1100的中心轴旋转的速度可以由对那个数据点(客户联系人、电子邮件、直销等)采取的销售动作的数量或速率来确定。这允许用户在视觉上识别未被作用的数据点,以解释其与漏斗1100的原点的相对距离。没有移动或移动缓慢的数据点指示销售机会没有进度。相反,如果第一阶段1101中的机会在漏斗1100周围以高速率循环,那么该机会可能会快速前进。当数据点向漏斗1100的起点前进时,这也提供了数据点的自然而逼真的可视化。与现实世界的漏斗一样,数据点将通过绕漏斗1100的中心轴旋转而逐渐朝着漏斗1100的原点前进并提高速度直到到达原点。这也提供了有关数据前进的效率和一致性的总体概述。通过对所有数据点进行动画处理,变得可以直观地看出哪些数据点比其它数据点受到更多或更少的关注、哪些数据点比其它数据点前进得慢或快,以及易于使用这个可视化对象传达的其它可比较可视化信息。

与任何3D可视化一样,在确定如何最佳地缩放、显示、查看、旋转和以其它方式将数据呈现给用户时,存在技术问题。当成千上万个数据点可用时,一次显示所有这些数据点可能会使用户淹没在数据点中,并且另外掩盖否则可能显而易见的可见趋势。本文描述的实施例分析数据集并确定对用户最有利的可视化对象的优化的初始视图。这些实施例还提供了多个预定视图,这些预定视图被配置为取决于数据点的数量、布置数据点的预定3D形状的形状以及预定3D形状中不同划分的数量来最佳地显示数据。此外,可以基于通过用户界面接收的语音命令或其它上下文查询来确定显示的数据类型和/或显示视图。随着时间的推移,系统可以学习到哪些数据集最适合用于处理各种语音命令。

图12A图示了根据一些实施例的表示距第一距离的数据点的3D对象的视图。从被认为相对远的这个距离来看,各个数据点的视图可以排在漏斗形状本身的视图之后。由于视图距离各个数据点太远,因此它们可以不被强调。这种不强调可以包括显示较少数量的数据点、使数据点更透明、使数据点的颜色变淡等。在一些实施例中,数据点可以以更长的距离被分组在一起并且在显示中由单个球体表示。例如,每三个数据点可以被分组在一起并且由单个数据点表示,以避免使对象的显示混乱。

相比之下,可以在更长的距离强调可视化组件(即,漏斗)的渲染。这允许用户凭借其形状观看并识别可视化组件。如上所述,来自可视化组件的多个3D对象可以作为虚拟仪表盘的一部分被包括在虚拟环境中。如果数据点是自己单独显示的,那么其中布置表示数据点的3D对象的总体预定3D形状可能不那么明显。在这些实施例中,可以强调总体形状,使得它容易被识别。强调漏斗对象可以包括减少对象外壳的透明度、增加用于显示漏斗对象的颜色的对比度或鲜艳度、将漏斗对象渲染为实体表面或体积等。

在一些实施例中,可以将附加的3D构造添加到虚拟环境以形成其中可以布置表示数据点的3D对象的预定形状。在漏斗可视化组件的示例中,表示数据点的各个3D对象可以如上所述以漏斗形状布置。但是,当在远处查看时,球体的数量和/或浓度可能太密集或稀疏,以致于漏斗的形状不容易被识别。在一些实施例中,可以添加附加的3D构造以在一定距离处形成可视化组件的总体预定3D形状。

在这个示例中,可以基于确定代表可视化组件的对象的视图超出阈值距离来生成圆锥形截面。例如,如果生成图12中所示的用户视图的虚拟相机与漏斗相距预定距离(例如,在虚拟环境中为15英尺),那么系统可以生成一个或多个3D构造来表示预定3D形状的形状。为了构造漏斗对象,可以将多个锥形环1202形成为3D构造,并将其插入到虚拟环境中以定义漏斗的形状。锥形环1202可以被构造成形成表面对象并且被一起渲染,使得漏斗的形状对于在一定距离的观察者更明显。这些锥形环1202可以形成漏斗对象的结构,并且可以如上所述在表示数据点的各个球体上被强调。例如,可以将锥形环1202渲染为使得它们不透明。它们可以用表示漏斗区域中数据点的颜色和/或纹理的颜色和/或纹理生成。它们可以被渲染为使得它们包含由各个数据点形成的漏斗形状,并且数据点的所有这些渲染球体都在由锥形环1202形成的漏斗内部。这可以使得用户将注意力集中在由锥形环1202形成的外壳的形状上,并理解可视化组件的性质,而不是被在一定距离旋转的球体所形成的更模糊的形状分散或混淆。

在一些实施例中,各个球体可以继续旋转和/或在锥形环1202内部可见,使得用户还可以理解实时数据可用于在可视化组件的3D对象内查看和/或交互。例如,用户可以看到各个数据点从锥形环1202内部的某个距离旋转。虽然此距离可能足够大,以至于用户无法区分各个数据点和/或在视觉上隔离各个数据点,但对于他们理解在漏斗对象中有多个数据点可用可能就足够。这些球体的相对尺寸还可以使得显而易见的是,移近漏斗对象可以开始在锥形环1202所形成的漏斗形状上强调各个数据点。

除了漏斗对象本身之外,该实施例还图示了可以用于在视图之间即时切换的视图控件1204。漏斗的当前视图是可以从更长的距离显示漏斗的“缩小(Zoom Out)”视图。但是,通过选择任何控件1204,用户可以立即将视图改变为由对应控件描述的视图。这些控件可以包括“侧视图”、“端视图”、“放大”视图等。当渲染2D图像时,这些控件1204可以改变虚拟相机在对应的虚拟3D空间中的位置。当使用AR/VR设备时,使用这些控件1204可以立即改变用户在虚拟3D空间中的位置,使得他们正在从将生成对应视图的位置观看漏斗1100。

可以通过多个不同的机制来提供输入。例如,可以使用触摸屏设备上的手指轻扫、手指轻击、手指捏合等来选择控件1204。还可以使用传统计算设备上的鼠标指针来选择控件1204。一些实施例还可以集成人工智能和语音识别技术以在漏斗周围导航。如上所述,一些实施例可以使用人工智能模块来与用户一起操作聊天机器人或其它基于对话的系统。例如,用户可以要求系统“show me a funnel view of these data(向我显示这些数据的漏斗视图)”,并且作为响应漏斗视图可以被自动生成。类似地,用户可以说诸如“后退”或“靠近”的短语,以将移动意图传达给系统。然后,系统可以使用人工智能模块来解密意图并相应地选择与意图对应的控件之一。例如,诸如“后退”之类的短语可以用于从控件1204的列表中选择“缩小”命令。

图12B图示了根据一些实施例的使用基于模型的系统来解释视图和/或数据显示命令的系统的图。客户端设备1220可以通过命令解释器1222向系统提供输入。命令解释器1222可以接收要求特定类型的数据的特定视图的文本命令和/或语音命令。命令解释器1222可以包括知识库和/或意图引擎,该知识库和/或意图引擎解释命令并将命令重新格式化或变换成对系统已知的请求。例如,命令“let me see all of the data(让我查看所有数据)”可以被解释为使得将其替换为已知的命令“缩小”。因此,命令解释器1222可以接收从客户端设备1220接收到的任何简明英语命令,并将该命令变换成系统可以接收的命令。

然后可以将该命令发送到模型1226。例如,模型可以包括神经网络,该神经网络包括多个输入。在一些实施例中,神经网络的输入可以匹配从命令解释器1222输出的已知命令。神经网络可以通过神经网络过滤来自命令解释器1222的命令,以在神经网络的输出之一上生成信号。神经网络的输出可以对应于不同的视图选项。例如,神经网络的输出可以包括与图12A中的控件1204对应的命令,以在虚拟环境中提供不同的预定视图。在以上示例中,从命令解释器1222接收到的“缩小”命令可以激活神经网络上的输出,该输出激活接口的命令1204中的“缩小”命令1206。

一些实施例可以包括第二神经网络,该第二神经网络也从命令解释器1222接收命令。第一神经网络可以接收与3D对象的不同视图相关的命令,而第二神经网络可以接收与要显示的数据类型相关的命令。例如,命令解释器1222可以从客户端设备1220接收请求,诸如“show me sales data for last quarter(向我显示上一季度的销售数据)”。命令解释器1222可以生成已知命令以“显示销售数据”。该命令可以被输入到模型1226,并且模型的输出可以指示响应于输入命令而要检索到的特定数据集。例如,此命令可以激活神经网络上的输出,该输出发送SQL命令以从销售数据库加载所指示的时间间隔内的销售数据。可以在企业数据108上执行该命令以检索所指示的数据集。因此,模型1226可以基于用户命令生成期望的视图。模型1226还可以确定要为指示的命令加载的最佳数据集。

在一些实施例中,模型1226可以包括第三神经网络,该第三神经网络也从命令解释器1222接收命令。第三神经网络可以被配置为接收这些命令并提供指示要从组件交换机124加载的特定可视化组件的输出。可以根据由第一神经网络确定的视图将来自指示的可视化组件的参数化输入绑定到从虚拟环境104中渲染的企业数据108中选择的数据集。因此,模型1226可以接收请求显示数据类型的通用语音命令,并且模型1226可以使虚拟环境104基于模型输出根据可能响应于命令的视图来加载可视化组件、绑定数据集以及显示数据。

在虚拟环境104中渲染可视化对象的视图之后,系统可以监视由客户端设备1220提供的任何视图输入1224。这些视图输入1224可以包括通过扫描、平移、倾斜、旋转和/或以其它方式移动虚拟环境104中的客户端设备1220的虚拟相机来对视图进行操纵。这些视图输入1224还可以使绑定到可视化组件的数据集改变(例如,用户可以选择不同的数据集绑定到漏斗对象)。这些视图输入1224还可以使可视化对象在虚拟环境104中被改变。例如,用户可以将漏斗可视化对象交换为三维图形对象。

这些视图输入1224可以被解释为对由模型1226自动提供的视图、可视化对象和/或数据集进行的校正。因此,一些实施例可以将视图输入1224发送到模型1226以及虚拟环境104。当模型1226接收到这些视图输入1224时,模型可以进入训练模式,该训练模式使模型1226中的神经网络根据视图输入1224被重新训练。例如,在训练模式中,模型1226可以考虑由最初为虚拟环境104生成了视图、可视化对象和数据集的命令解释器1222提供的命令。模型1226还可以接收在将信息提供给用户之后接收到的任何视图输入1224。可以在每个神经网络上将视图输入与不同的输出进行匹配,使得可以对其进行重新训练,使得该命令使新输出代替原始输出更有可能被选择。继续以上示例,将可视化组件改变为3D图形组件的视图输入可以被发送到模型1226。第三神经网络可以被重新训练,使得来自命令解释器1222的相同命令可以使与图形组件对应的输出沿着第三神经网络中的神经路径接收更高的权重。可以使用任何最小化算法来调整这些权重。下一次从命令解释器1222接收到相同命令时,模型1226将更有可能选择图形对象而不是漏斗对象。

当模型1226被各种客户端设备和用户使用时,该系统允许模型1226被不断地重新训练。模型1226可以随着时间而适应,使得它以用户不太可能提供视图输入1224来改变模型1226的输出的方式变得对用户输入更具响应性。随着时间的推移,随着模型不断地进行训练1226,用于查看特定类型的数据、查看特定数据的视图以及使用特定可视化对象查看数据的命令更可能是正确的。

图13图示了根据一些实施例的3D形状的近视图。当用户的视线移近漏斗时,与漏斗对象的3D形状相比,表示数据点的各个3D对象可以开始被强调。可以通过显示更多3D对象、减少3D对象的透明度、增加3D对象颜色的对比度或鲜艳度、增加3D对象的大小和/或强调这些3D对象的任何其它视觉技术来强调表示数据点的这些3D对象。相比之下,与数据点相比,可以开始不强调(deemphasize)由3D形状形成的漏斗的图像。不强调可以增加锥形环1202的透明度、使锥形环1202的颜色柔和等。移近漏斗还可以显示文本信息,诸如数据点值、日期标签、阶段标签和其它文本信息,这些文本信息在从远处查看时可能太小而无法被阅读。

在一些实施例中,随着视线移近可视化组件的视图,可以不强调和/或移除被插入以清楚地显示可视化组件的3D形状的任何3D构造。相比之下,表示数据点的各个3D对象(例如,漏斗中的球体)可以逐渐变得更加被强调。在图13的示例中,在超过可视化组件的视图的第一阈值距离之后,可以移除一半的锥形环1202。凭借锥形环1202仍然可见的一半,这可以向用户提供仍然明显是漏斗对象的视图。该视图还可以通过移除3D构造的一部分向用户提供由表示各个数据点的3D对象1304所示的更多详细信息。如上所述,表示数据点的3D对象以及它们的大小、颜色、运动、轨迹和/或提供关于各个数据点的信息的其它视觉特性可以更加可见。

图14图示了根据一些实施例的数据集的优化视图。该视图可以是系统自动提供的初始视图,以向用户可视化漏斗对象中的数据。优化的视图可以被确定为以下视图:(1)显示所有可用的数据点;(2)填充显示区域;(3)以及从对用户最有用的角度显示数据。在这个实施例中,漏斗对象基本上为用户填充了视图区域,并以完整的视图显示各个数据点中的每个数据点。该视图也是从相对于漏斗对象的中心轴倾斜的角度,使得强调显示的3D性质。

当视线移近可视化组件1302的视图时,可以经过第二阈值,使得可以对可视化组件1302的显示进行附加更改。例如,在超过第二阈值之后,可以为表示数据点的每个3D对象1304显示第二级别的详细信息。代替将它们显示为围绕漏斗的锥形环1202循环的“点”,可以渲染和显示每个3D对象1304的完整渲染。可以增加锥形环1202的透明度,使得3D对象1304的所有旋转和移动可以是可见的。此外,可以显示所有3D对象1304的完整色、大小、速度和移动。在这个示例中,在与锥形环1202一起显示时,围绕漏斗旋转的球体的颜色、位置、大小和移动可以是完全可见的。

图15图示了根据一些实施例的渲染的可视化组件1302的完全缩放的视图。在该视图中,可以超过第三阈值距离,使得可视化对象1302的视图基本上填充显示设备的视图。例如,可视化对象1302的视图可以填充显示设备的视图的大约75%。这可以对应于来自图12A中的控件1204的“放大”视图。在这个更近的距离处,漏斗的锥形环1202可以被完全移除。更一般地,可以移除先前被添加以传达可视化组件的3D形状的结构的任何3D构造。替代地,仅表示各个数据点的各个3D对象1304可以保留在显示中。由于与表示数据点的3D对象1304紧密接近,因此可视化组件1302的总体形状对于用户可以是清晰的(例如,漏斗的形状可以从旋转的球体是清晰的)。另外,被添加以传达可视化组件1302的形状的任何3D构造可以仅使表示各个数据点的3D对象1304的视图模糊。由于用户更可能与在此近距离处的各个数据点进行交互,因此它们与先前提供的任何结构形状相比可以被充分强调。

应该强调的是,漏斗的可视化组件仅以示例的方式提供,并不意味着是限制性的。也可以使用其它可视化组件,诸如3D条形图。仅作为一个示例提供了漏斗,以说明如何基于到可视化组件的视图的距离生成不同的视图。

图16图示了如上所述的用于确定可视化组件的最佳视图的方法的流程图1600。该方法可以通过在相对远的距离处观看可视化对象开始(1602)。可视化对象可以是上述漏斗对象。然后,该方法可以确定在I放大时是否已经超过第一阈值(1604)。如果已经超过第一阈值,那么随着视图放大,系统可以逐渐不强调可视化组件,并且逐渐强调各个数据点。强调或不强调可视化组件可以包括强调或不强调表示可视化组件的形状的任何3D构造。强调或不强调数据点可以包括强调或不强调表示数据点的3D对象。这种逐渐的强调/不强调可以继续直到超过第二阈值(1608)。在这一点上,数据点可以被充分强调而可视化对象可以不被强调(1610)。

另一种方法可以包括从企业应用接收一个或多个数据集。数据集可以包括用于单个数据属性的数据的时间序列。该方法还可以包括生成与一个或多个数据集中的每个数据点对应的3D对象。3D对象可以包括如以上所述或以其它方式所绘出的3D球体。该方法还可以包括将3D对象布置为预定3D形状。3D形状可以由3D对象本身形成,或者可以在3D虚拟空间中独立地创建,其中3D对象围绕3D形状。例如,3D形状可以包括如以上所述和所绘出的漏斗对象。该方法还可以包括确定用于虚拟相机渲染3D形状的最佳视图位置。可以通过选择将包括所有数据点并填充视图区域的阈值百分比(例如,90%、75%等)的视图距离来确定最佳视图。还可以基于强调三维数据的视角来确定最佳视图位置。可以基于可视化对象的类型来预定该视角。例如,漏斗对象可以具有相对于漏斗的中心轴倾斜的初始视角。其它视图对象可能具有强调其3D性质的特定视角。另外,一些实施例可以基于由特定可视化对象的设计者提供的预定数据来确定初始位置和/或视角。

当从一定距离观看时,显示许多数据点的复杂可视化可以由一个或多个更简单的形状表示,这在无法辨别精细细节时可以提高性能。数据点的可见性和不透明度以及更简单的形状可以与可视化与相机之间的距离成比例。例如,系统可以计算可视化的边界框的中心与相机之间的距离。当该距离大于最大阈值时,简单形状可见,但数据点不可见。当该距离小于最小阈值时,数据点可见,但简单形状不可见。在最小和最大阈值距离之间,数据点和简单形状都可见,但是它们的不透明度不同。数据点的不透明度与距离成反比,使得这些点在最大阈值处为最小不透明,并且在最小阈值处为最大不透明。简单形状的不透明度与距离直接成正比变化,使得形状在最大阈值处为最大不透明,并且在最小阈值处为最小不透明。当用户从一定距离接近时,起初只有简单形状可见。随着用户靠近,简单形状会随着数据点的淡入而淡出。当用户非常靠近时,只有数据点可见。

图17图示了根据一些实施例的用于从一组数据点生成可视化对象的方法的流程图。可视化对象或可视化组件可以从组件库下载或交换并包含在应用中。应用可以包括虚拟环境,该虚拟环境允许创建和渲染3D对象,以使用多种客户端设备类型为多个用户生成视图。如上所述,可视化对象(诸如漏斗对象)可以包括可以绑定到底层数据集的参数化输入集合。该方法描述了如何可以使用这些数据集生成预定3D形状的形状和外观。

该方法可以包括从企业应用接收一个或多个数据集(1702)。可以从任何类型的数据源接收一个或多个数据集,其中数据源诸如数据库、表、电子表格、文本文件、CSV文件、web服务、网站、XML文件、存储储存库和/或任何其它类型的数据结构或数据存储设备。可以从诸如提供企业数据的企业应用之类的应用接收数据集。数据可以包括CRM数据、HCM数据、财务数据、销售数据和/或任何其它类型的数据。当加载或下载可视化组件时,设计者和/或用户可以选择通过一个或多个参数化输入将一个或多个数据集绑定到可视化组件。

该方法还可以包括生成与一个或多个数据集中的数据点中的每个数据点对应的3D对象(1704)。每个3D对象可以对应于一个或多个数据集中的单个数据点。例如,每个3D对象可以对应于数据库中的一行。每个对象还可以包括可以与数据点相关联的多个属性或属性值。例如,属性值可以包括存储在数据库表中一行的列中的值。这些值中的每一个都可以用来构造3D对象的外观和/或行为,如下所述。3D对象可以包括如以上所述或以其它方式所绘出的3D球体。3D对象还可以包括任何其它类型的三维对象,诸如条形、多边形、星形和/或其它实体对象。

该方法还可以包括将3D对象布置为预定3D形状(1706)。3D形状可以由3D对象本身形成,或者可以在3D虚拟空间中独立地创建,其中3D对象围绕3D形状。例如,3D形状可以包括如以上所述和所绘出的漏斗对象。3D对象可以被布置为使得它们的集体布置形成预定3D形状。替代地,诸如表面、线框和/或其它3D构造之类的附加3D对象可以用于生成和表示预定3D形状的至少一部分。在这些实施例中,可以将3D对象布置在其它3D构造的周围,使得它们符合预定3D形状。

该方法还可以包括接收指示预定3D形状的第一视图的命令(1708)。该命令可以通过语音命令、文本命令或任何其它类型的输入来接收。在一些实施例中,该命令可以作为简明英语短语被接收,诸如“show me last month’s sales data(向我显示上个月的销售数据)”。该命令可以由命令解释器处理,该命令解释器将简明英语短语转换成标准化命令。这些标准化命令可以包括与模型或神经网络的输入对应的输入。模型或神经网络可以接收简单命令并生成输出集合。在一些实施例中,神经网络可以包括多个神经网络,每个神经网络根据命令产生不同类型的输出。例如,可以提供特定的神经网络,其输出虚拟相机的视图位置、要被加载的特定可视化组件和/或要被绑定到可视化组件的参数化输入的特定数据集。来自模型的这些输出可以被提供给虚拟环境,并且可视化组件可以在虚拟环境中被实例化并在定义的视图位置处进行观看。该可视化组件可以替换已经在虚拟环境中被实例化的先前的可视化组件。替代地,可以将此可视化组件作为虚拟仪表盘中的新3D小部件添加到虚拟环境。在简单情况下,指示预定3D形状的第一视图的命令可以在神经网络上提供确定不同视图位置、角度、焦点等的输出。然后可以根据神经网络的输出来查看在虚拟环境中以3D形状布置的现有3D对象。换句话说,指示第一视图的命令不需要加载任何附加或替代的可视化组件,而是可以简单地重新定向现有可视化组件的视图。

该方法还可以包括确定与第一视图相关联的距离(1710)。可以在虚拟相机和可视化组件的预定3D形状之间测量距离。可以以特定于虚拟环境的单位进行该测量,并且这些单位可以与对应的现实环境中的物理单位对应。例如,在虚拟环境和现实环境两者中,距离都可以是20英尺。例如,对于戴着虚拟现实耳机的用户,在现实环境中向前走20英尺可以等同于在虚拟环境中走20虚拟英尺。当用户看到可视化组件时,它可以看起来在虚拟环境中相距20英尺。与第一视图相关联的距离也可以在预定3D形状与用户的虚拟相机的焦点或焦平面之间测量。例如,代替向前移动以接近预定3D形状,用户可以在预定3D形状上放大其显示,而无需在虚拟环境中移动相机的位置或在现实环境中移动其观看设备的位置。

该方法可以附加地包括提供预定3D形状的第一视图的显示(1712)。如以上详细描述的,相对于表示预定3D形状的结构的一个或多个3D构造,可以在视觉上强调或不强调表示各个数据点的3D对象。在漏斗对象的示例中,可以将包括锥形环或其它表面/外壳的3D构造添加到虚拟环境,以清楚地定义漏斗对象的形状。随着与第一视图相关联的距离增加,表示各个数据点的3D对象可以不被强调,并且表示预定3D形状的结构的3D构造可以被强调。这种强调可以包括调整这些对象的透明度、颜色、亮度、大小和/或其它视觉特性。随着与第一视图相关联的距离减小,表示各个数据点的3D对象可以相对于3D构造被强调。例如,随着距离减小,3D构造可以变得更加透明。表示各个数据点的3D对象的大小可以增加,并且显示指示数据点的属性的各种颜色。一些实施例可以使用如上所述的阈值来确定何时相对于其它对象强调一些对象。

应当认识到的是,图17中所示的具体步骤提供了根据各种实施例的生成可视化对象的视图的特定方法。根据替代实施例,也可以执行其它步骤序列。例如,本发明的替代实施例可以以不同的次序执行上面概述的步骤。而且,图17中所示的各个步骤可以包括多个子步骤,这些子步骤可以按照适合于各个步骤的各种次序来执行。此外,取决于特定的应用,可以添加或移除附加步骤。本领域普通技术人员将认识到许多变型、修改和替代。

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

图18描绘了用于实现实施例之一的分布式系统1800的简化图。在所示的实施例中,分布式系统1800包括一个或多个客户端计算设备1802、1804、1806和1808,该一个或多个客户端计算设备被配置为通过一个或多个网络1810执行和操作客户端应用,诸如web浏览器、专有客户端(例如,Oracle Forms)等。服务器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包括可以由用户使用以与提供云服务的云基础设施系统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,该处理加速单元2006可以包括数字信号处理器(DSP)、专用处理器等。

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

用户接口输入设备也可以包括但不限于:三维(3D)鼠标、操纵杆或指向棒(pointing stick)、游戏面板和绘图板、以及音频/视觉设备,诸如扬声器、数码相机、数码摄录机、便携式媒体播放器、网络摄像头(webcam)、图像扫描仪、指纹扫描仪、条形码阅读器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一起并且可选地与系统存储器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的描述仅旨在作为具体的示例。具有比图中绘出的系统更多或更少组件的许多其它配置是可能的。例如,定制的硬件也可以被使用和/或特定的元素可以在硬件、固件、软件(包括小程序应用(applet))或其组合中实现。另外,可以采用到诸如网络输入/输出设备的其它计算设备的连接。基于本文提供的公开内容和教导,本领域普通技术人员将认识到实现各种实施例的其它方式和/或方法。

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

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

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

而且,要注意的是,各个实施例可以已经被描述为被描绘为流程图、流图、数据流图、结构图或框图的处理。虽然流程图可以已经将操作描述为顺序处理,但是许多操作可以并行或并发地执行。此外,可以重新布置操作的次序。处理在器操作完成时终止,但可以具有图中未包括的附加步骤。处理可以与方法、函数、过程、子例程、子程序等对应。当处理与函数对应时,其终止可以与该函数返回到调用函数或主函数对应。

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

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

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

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

技术分类

06120113106254