虚拟仪表盘中可视化对象之间的动画的制作方法

文档序号:25653909发布日期:2021-06-29 21:25阅读:101来源:国知局
虚拟仪表盘中可视化对象之间的动画的制作方法
虚拟仪表盘中可视化对象之间的动画
1.相关申请的交叉引用
2.本申请是于2018年10月21日提交的标题为“3d visualization services integrating variousdata sources and display devices”的美国临时申请no.62/748,504的非临时申请,并援引35u.s.c.119(e)要求其利益和优先权,出于所有目的,其全部内容通过引用并入本文。
3.本申请还涉及以下四个美国专利申请:
4.·
由moroze等人于2019年10月21日提交的标题为“interactive data explorer and 3

d dashboard environment”的美国专利申请no.16/658,162号(代理人案卷号088325

1142774),该申请整体并入本文。
5.·
由moroze等人于2019年10月21日提交的标题为“funnel visualization with data point animations and pathways”的美国专利申请no.16/658,165(代理人案卷号088325

1142775),该申请整体并入本文。
6.·
由moroze等人于2019年10月21日提交的标题为“optimizing virtual data views using voice commands and defined perspectives”的美国专利申请no.16/658,169(代理人案卷号088325

1142776),该申请整体并入本文。
7.·
由moroze等人于2019年10月21日提交的标题为“data visualization objects in a virtual environment”的美国专利申请no.16/658,180(代理人案卷号088325

1143002),该申请整体并入本文。


背景技术:

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


技术实现要素:

9.一种用于在一个或多个可视化组件之间提供动画的方法可以包括:接收绑定到第一可视化组件的一个或多个数据集;基于一个或多个数据集在虚拟环境中生成第一可视化组件的3d表示;接收将一个或多个数据集过渡到虚拟环境中的第二可视化组件的命令;生成表示一个或多个数据集中在虚拟环境中从第一可视化组件的3d表示移动到第二可视化组件的3d表示的各个数据点的3d对象的动画;以及将一个或多个数据集绑定到第二可视化组件。
10.一种非暂态计算机可读介质可以包括指令,该指令在由一个或多个处理器执行时,使一个或多个处理器执行操作,包括:接收绑定到第一可视化组件的一个或多个数据
集;基于一个或多个数据集在虚拟环境中生成第一可视化组件的3d表示;接收将一个或多个数据集过渡到虚拟环境中的第二可视化组件的命令;生成表示一个或多个数据集中在虚拟环境中从第一可视化组件的3d表示移动到第二可视化组件的3d表示的各个数据点的3d对象的动画;以及将一个或多个数据集绑定到第二可视化组件。
11.一种系统可以包括一个或多个处理器以及可以包括指令的一个或多个存储设备,该指令在由一个或多个处理器执行时,使一个或多个处理器执行操作,包括:接收绑定到第一可视化组件的一个或多个数据集;基于一个或多个数据集在虚拟环境中生成第一可视化组件的3d表示;接收将一个或多个数据集过渡到虚拟环境中的第二可视化组件的命令;生成表示一个或多个数据集中在虚拟环境中从第一可视化组件的3d表示移动到第二可视化组件的3d表示的各个数据点的3d对象的动画;以及将一个或多个数据集绑定到第二可视化组件。
12.在任何实施例中,以下特征中的任何特征可以以任何组合且不受限制地实现。第一可视化组件可以包括漏斗对象。第二可视化组件可以包括烧杯对象。第二可视化组件可以包括简档(profile)布局对象。该方法/操作还可以包括访问故事数据结构,该故事数据结构包括要在虚拟环境中执行的动作的列表,该动作的列表包括用于实例化第一可视化组件的指令;用于实例化第二可视化组件的指令;用于将一个或多个数据集绑定到第一可视化组件的参数化输入的指令;用于使3d对象动画的指令;以及用于将一个或多个数据集绑定到第二可视化组件的参数化输入的指令。动作的列表还可以包括在虚拟环境中在使第一可视化对象的3d表示和第二可视化对象的3d表示之间的3d对象动画之前等待用户输入的指令。接收将一个或多个数据集过渡到第二可视化组件的命令可以触发故事数据结构的执行,以在使3d对象动画之前停止等待用户输入。表示一个或多个数据集中的各个数据点的3d对象可以具有其视觉特性,该视觉特性由对应的各个数据点的属性值确定。表示各个数据点的3d对象可以在第一可视化组件的3d表示中单独可见,并且3d对象可以在第二可视化组件的3d表示中不再单独可见。第一可视化组件的3d表示和第二可视化组件的3d表示可以被布置在虚拟环境中,作为用于在云环境中显示来自一个或多个企业应用的企业数据的虚拟仪表盘的一部分。第一可视化组件和第二可视化组件可以被显示在围绕用户在虚拟环境中的虚拟位置的转盘中。该方法/操作还可以包括:接收第二命令,以将一个或多个数据集过渡到虚拟环境中的第三可视化组件;生成表示一个或多个数据集中在虚拟环境中从第二可视化组件的3d表示移动到第三可视化组件的3d表示的各个数据点的3d对象的动画;以及将一个或多个数据集绑定到第三可视化组件。
附图说明
13.通过参考本说明书的其余部分和附图,可以实现对本发明的本质和优点的进一步理解,其中,贯穿若干附图使用相似的附图标记指代相似的组件。在一些情况下,子标签与附图标记相关联以表示多个相似组件中的一个。当在没有指定现有子标签的情况下参考附图标记时,意在指代所有这样的多个相似组件。
14.图1图示了根据一些实施例的用于创作、提供和使用交互式数据显示的系统。
15.图2图示了根据一些实施例的已经绑定到企业数据集的虚拟对象的示例。
16.图3图示了用于将组件从组件交换器导入到应用中的用户界面。
17.图4图示了根据一些实施例的用于下载和实例化应用中的组件的处理的框图。
18.图5图示了根据一些实施例的在虚拟环境中创建的虚拟仪表盘。
19.图6图示了根据一些实施例的各种类型的客户端设备系统和输入设备如何可以全都与edie环境中的相同虚拟环境同时接口。
20.图7图示了根据一些实施例的通过2d屏幕界面的虚拟环境的视图。
21.图8图示了根据一些实施例的具有多个用户与虚拟仪表盘交互的虚拟环境的视图。
22.图9图示了根据一些实施例的可以用于与虚拟环境交互的现实世界环境的视图。
23.图10图示了根据一些实施例的用于在多维仪表盘中显示数据的方法的流程图。
24.图11图示了根据一些实施例的漏斗形式的可视化对象的示例。
25.图12图示了根据一些实施例的可以从其它可视化组件接收数据点的烧杯可视化组件。
26.图13图示了根据一些实施例的如何可以生成表示各个数据点的3d对象的动画以在可视化组件之间移动。
27.图14图示了根据一些实施例的包括简档布局的第三可视化组件。
28.图15图示了根据一些实施例的用于与特定简档相关的附加信息的显示。
29.图16图示了根据一些实施例的虚拟仪表盘。
30.图17图示了根据一些实施例的故事如何能够在虚拟仪表盘中生成对象的动画。
31.图18图示了根据一些实施例的故事的数据结构。
32.图19图示了根据一些实施例的用于在一个或多个可视化组件之间提供动画的方法的流程图。
33.图20描绘了用于实现一些实施例的分布式系统的简化图。
34.图21是根据一些实施例的可以将由实施例系统的一个或多个组件提供的服务作为云服务供应的系统环境的一个或多个组件的简化框图。
35.图22图示了其中可以实现各种实施例的示例性计算机系统。
具体实施方式
36.本文描述的是沉浸式用户界面(ui)体验的实施例。沉浸式用户界面体验可以被包装为单独的组件,可以插入到组件交换器或交换所中,然后由应用开发人员或服务开发人员用来将交互式ui组件添加到其应用或服务中。这些ui组件可以被用于在拥挤的市场中区分应用并提供用户友好的交互式沉浸式体验,从而为许多不同用户设备上的许多不同数据类型提供详细而直观的数据可视化。
37.图1图示了根据一些实施例的用于创作、提供和使用交互式数据显示的系统。该系统可以包括组件交换器124。组件交换器124可以是应用开发套件的一部分,其允许用户使用自定义开发环境以及预定义工具和/或接口的库来开发应用和/或服务。应用开发套件可以是云托管的开发环境,其可以作为用于许多不同客户端设备的软件即服务(saas)模型进行访问。开发环境可以被配置为开发和/或部署许多不同类型的应用,包括基于云的服务或微服务、web应用、移动设备应用、企业应用等。可以通过代表性状态传输(rest)接口集成在应用开发套件中设计的应用与其它saas应用。
38.应用开发套件中的开发环境可以包括多个用户友好的工具,开发人员可以使用它们来简化开发处理并使得整个应用开发周期更高效。这些工具可以包括所见即所得(wysiwyg)工具和其它图形界面,其允许开发人员将各种预包装的组件拖放到应用开发空间中。各种组件可以由开发环境提供,诸如可重用的业务对象、流程、web控件、用户界面控件、主题、模板和应用的其它方面。
39.开发人员可以使用开发环境来设计和测试应用,然后可以将应用部署到各种操作环境。当将应用部署到操作环境时,开发环境还可以部署应用所需的任何附加代码或库,以使其可以在目标环境中运行。因此,由开发环境提供的灵活性和可重用组件可以移植到任何操作环境,而不会丢失由开发环境提供的任何功能。
40.在这个示例中,开发环境可以包括组件交换器。例如,可以使用任何可商购的开发环境来实现开发环境,诸如来自的visual开发环境可以包括各种工具箱,诸如可以被用于构建应用的专有和/或开源javascript库的集合。例如,开发环境可以包括来自的javascript extension toolkit(jet)的组件。这些工具箱中的组件可以包括丰富用户界面(ui)集合组件,其包括数据模型、视图模型和用于将数据绑定到组件的端口。在一些实施例中,开发环境可以基于诸如w3c web组件标准之类的标准组件提供统一的组件插件机制,同时仍允许自定义组件与标准组件一起工作。
41.组件交换器124可以允许组件开发人员将组件上传到组件交换器124以供应用开发人员使用。这允许组件开发人员提供灵活的组件体系架构,其可以在整个组件生命周期中对其进行维护和升级。例如,这些组件可以包括标准的web组件,诸如可以在各种用户界面中使用的复选框组件(116)或滑块组件(114)。这些组件114、116可以上传到组件交换器124,然后由组件开发团队在其整个生命周期中进行更新和维护。然后可以将它们作为组件交换器124中的组件121、122提供给应用开发人员。
42.除了标准的web组件之外,本文描述的实施例还允许用户开发可以在企业数据交互式资源管理器(edie)环境中使用的特殊可视化对象。这些可视化对象提供企业数据集的多维视图,这些视图可以由多个客户端设备通过分离的网络连接同时查看。这些可视化对象可以以与将标准web组件导入到组件交换器124中相同的方式导入到组件交换器124中。然后可以将这些可视化对象导入正在开发的各个应用中。在那些应用中,开发人员可以将来自许多不同来源的各种企业数据集绑定到可视化对象上的参数化输入。然后,可视化对象可以被用于生成虚拟对象的经渲染的视图,这些虚拟对象表示并可视化多维环境中的企业数据。
43.这些可视化对象的各种示例可以在下面在本公开中更详细地描述。图1图示了可以作为常规对象被导入到组件交换器124中的可视化对象的几个示例。例如,漏斗对象112可以包括旋转漏斗对象,该旋转漏斗对象图示了企业数据集中的数据点随时间的进展。漏斗对象112可以提供各种视觉效果,其可以被用于突出显示绑定到漏斗对象112的数据集的各个方面。例如,用户可以沿着各个维度搜索数据集、更改各个数据点、查看随时间变化的数据点通路、在沿着各个维度随时间加速数据时查看数据的直观表示,等等。
44.图1还图示了可以被用于表示各种企业数据集的三维直方图或条形图对象110。在组件交换器124中,图形对象110可以与任何底层数据集断开连接。但是,当将图形对象110导入到实际应用中时,可以将其绑定到企业数据集,并且可以基于数据绑定来调整图形中
的各个条形的尺寸。可视化对象可以被用于在可由各种客户端设备查看的虚拟环境中生成三维(3d)虚拟对象。例如,图形对象110可以被实现为多个三维圆柱体,每个三维圆柱体表示图形中的条。用户可以进入虚拟环境并在虚拟对象周围走动、与对象交互、改变对象中的值、操纵对象的部分,并使那些改变后的值被其他用户看到并存储回存储数据集的底层数据库。
45.上述可视化对象110、112是作为示例提供的,并不意味着是限制性的。可以被用于可视化企业数据集的任何多维对象都可以用作本公开中的可视化对象。其它可视化对象可以包括图表、动画、图片、图形等。
46.在组件交换器124中,可视化对象可以被表示为组件118,120,这些组件可以由开发人员选择并在开发期间导入到应用中。例如,开发人员可以将漏斗对象112的组件118拖放到应用中。然后,根据实施例,这个可视化对象可以绑定到或者开发环境或者部署环境中的数据集。
47.在一些实施例中,可以将包括一个或多个可视化对象的应用部署到各种环境。这些环境可以包括web应用、移动应用、客户端应用、在游戏系统上运行的应用、在台式机或膝上型计算机上运行的应用、用于虚拟环境的应用(诸如虚拟现实或增强现实系统),和/或任何其它计算环境。当将应用部署到环境时,组件交换器124可以部署运行可视化对象所需的任何必要的库、第三方库或其它软件组件或库。例如,在3d环境中操作的一些可视化对象可以包括其操作所需的opengl库或其它3d可视化库。
48.应用可以被部署到本文一般称为edie环境的环境102,该环境可以包括多个标准组件以及如上所述的一个或多个可视化对象。环境102可以包括可以在其中实例化可视化对象的虚拟环境104。当实例化可视化对象时,可以将它们绑定到一个或多个底层数据集。这些数据集可以从各种源获取,诸如数据库表、多维数据立方体、web服务、服务器端应用、api接口等等。在图1的示例中,企业数据库108可以将来自一个或多个数据库表的值提供给环境102,以与可视化对象中的至少一个一起使用。在这个示例中,漏斗对象112可以被部署到虚拟环境104中的环境102。漏斗对象112可以包括输入的集合,诸如可以分别和/或共同地绑定到来自企业数据库108的企业数据集中的表或行的参数化输入。可以在开发环境中、在部署环境102中和/或在任何其它时间创建数据集值与可视化对象的参数化输入之间的绑定106。绑定106还可以在运行时或在执行应用之前用不同的数据集动态地调整或重新形成。
49.当数据集绑定到可视化对象时,可视化对象可以被用于在虚拟环境104中生成虚拟对象。这可以包括使用数据集中的值来调整虚拟对象各个部分的尺寸或维度。来自数据集的值还可以被用于为虚拟对象内的对象生成动画速度或运动向量。来自数据集的值还可以被用于为虚拟对象中的对象着色或以其它方式影响对象的视觉表示。例如,数据点可以绕由漏斗对象112创建的虚拟漏斗旋转。数据点可以具有由一维确定的颜色、由第二维确定的尺寸或半径、由第三维确定的旋转速度、由第四维确定的轨迹或运动向量方向,等等。
50.在虚拟环境104中生成的可视化对象可以由多个不同的客户端设备126、128、130、132查看和/或与之交互。这些客户端设备可以包括膝上型计算机、台式计算机、工作站、平板计算机、智能电话、智能手表、智能tv、视频游戏控制台、数字家庭助理、智能眼镜、虚拟现实耳机、增强现实耳机以及任何其它计算设备。这些客户端设备126、128、130、132中的每一
个可以接收到虚拟环境104中的唯一视图,该视图与针对每个客户端设备126、128、130、132的唯一放置的虚拟相机对应。然后,用户可以使用虚拟对象105与虚拟环境104中的虚拟对象105进行交互,以查看、操纵、编辑和/或更新底层数据集。如下所述,可以向每个用户提供虚拟对象105的唯一的特定视图,并且不同的设置可以允许用户改变底层数据,使得虚拟对象105在提供给其它客户端设备的视图中改变。在每个客户端设备126、128、130、132处,可以使用自动硬件检测来提供虚拟环境104的正确视图。例如,如果客户端设备126由台式计算机实现,那么环境102可以提供虚拟环境104的二维(2d)视图。相比之下,如果客户端设备128由虚拟现实耳机实现,那么环境102可以提供虚拟环境104的3d视图,使得客户端设备128的用户沉浸在虚拟环境104中以在其中进行交互。
51.图2图示了根据一些实施例的已经绑定到企业数据集的虚拟对象202的示例。如上所述,虚拟对象202可以与在图1的组件交换器124中作为组件118上传的漏斗对象112对应。虚拟对象202可以包括3d漏斗对象,其中漏斗由多个单独的数据点形成。来自数据集的各个数据点可以被用于定义各个数据点中的每个数据点的位置、颜色、轨迹、移动、速度、尺寸、形状和/或任何其它视觉特征。
52.底层数据集可以源自数据库表、多维数据立方体和/或任何其它数据结构。数据集可以包括由数据库表中的行表示的数据点或多维数据立方体中的点。数据库中的各个列或数据立方体中的各个维度可以被用于为虚拟对象202中的每个球体定义特性。例如,数据库中的第一维或第一列可以被用于确定每个球体的尺寸或周长。第二维或列值可以被用于定义应用于虚拟环境中的每个球体的颜色或纹理。第三维或列值可以被用于定义每个球体在漏斗中的位置。第四维或列值可以定义球体绕漏斗的中心轴旋转的速度。第五维或列值可以定义它移动通过漏斗的各个级别的轨迹或运动路径,依此类推。
53.当应用在运行时,数据可以保持绑定到虚拟对象202的每个元素。例如,当戴上虚拟现实耳机时,用户可以在虚拟环境200中接近虚拟对象202。使用虚拟选择手持设备,用户可以伸出并“抓住”绕漏斗轴旋转的球体204之一。用户可以调出显示关于由球体204表示的底层数据的附加信息的用户界面。用户可以改变用户界面中的值以改变对应数据库中的底层值。用户还可以将球体204“放置”回虚拟对象202中的位置。如果球体204的新位置与旧位置不同,那么可以在底层数据库中更新用于确定球体204在虚拟对象202中的位置的维度。
54.图3图示了用于将组件从组件交换器导入到应用中的用户界面300。用户界面300可以包括可以被导入到项目中的可用组件的列表302。通过选择列表302中的组件之一,组件交换器可以显示用于下载、实例化和/或使用该组件的附加信息。在这个示例中,用户已经选择了先前描述的漏斗对象组件。当从列表302做出这个选择时,界面300的右手侧可以显示用于使用漏斗对象组件的附加信息。
55.附加信息可以包括组件的描述306。这个描述306可以描述组件的操作、如何使用它、如何与其它组件交互、典型的使用场景、使用组件的技巧和建议,和/或可以对组件的新的和/或资深用户有用的其它信息。描述306可以附带有说明如何可以将组件集成到应用的代码中的示例代码308。可以以各种编程语言提供示例代码308,并且可以将示例代码308从示例代码308复制和粘贴到应用的代码中。
56.此外,一些实施例可以提供安装按钮304。安装按钮可以执行将组件安装在用户d应用中的处理。选择安装按钮304可以启动附加的窗口、向导和/或界面,这些附加的窗口、
向导和/或界面引导用户完成在其应用中安装组件的处理。例如,安装按钮304可以触发一个或多个web表单的生成,其允许用户选择可以绑定到组件的参数化界面的数据集。例如,安装按钮304可以生成允许用户将漏斗对象中的球体绑定到数据库中的各个列的界面。安装按钮304还可以自动下载用于操作组件所必需的任何代码。这个代码可以包括第三方数据库、图形库、功能库和/或执行由组件提供的操作所需的其它共享代码。
57.图4图示了根据一些实施例的用于下载和实例化应用中的组件的处理的框图。使用上面在图3中描述的用户界面,用户可以选择漏斗对象402用作开发中的应用的一部分。可以将用于漏斗对象402的代码下载到客户端设备上的操作环境,该环境被配置为利用这种类型的组件。例如,漏斗对象402可以被下载到在上述任何客户端设备上操作的edie环境102中。edie环境102可以包括虚拟环境104,该虚拟环境可以提供其中可以针对二维(2d)和3d观看两者实例化三维(3d)分量的环境。
58.除了下载用于漏斗对象402的代码外,组件交换器124还可以提供在edie环境102中运行组件所需的任何附加代码。这个附加代码可以存储在代码库404中,该代码库404由组件交换器124存储并使其可用。附加代码还可以包括未由组件交换器124托管和/或提供的来自第三方的库406。例如,作为用于漏斗对象402的安装处理的一部分,组件交换器124可以使得从第三方网站下载图形操纵代码的库。所有这些代码都可以被下载到edie环境102,使得漏斗对象402可以以其所有需要的功能以独立的方式进行操作。
59.当漏斗对象402被下载到edie环境102并在虚拟环境104中实例化时,edie环境102可以使得在漏斗对象104的参数化输入与一个或多个数据源之间发生绑定。例如,edie环境102可以向用户呈现用户界面,从而允许用户从多个可用数据源之一中进行选择。在选择数据源后,可以向用户发出将数据源中的各个字段绑定到各个参数化输入的请求。例如,用户可以选择数据库中的特定列,使得那一列中的值确定虚拟环境104中的漏斗对象中对应球体的颜色。可以将参数化输入与各个数据源之间的绑定存储为应用的一部分,使得每当用户启动该应用时,漏斗对象402就会从底层数据源中检索数据以在虚拟环境104中生成漏斗对象的显示。这个绑定可以在启动应用时更新和/或改变,或者在应用运行以动态地更新和/或改变,以在虚拟环境104中可视化不同数据集。
60.图4的示例图示了企业数据存储库108,该企业数据存储库108可以被用于将企业数据绑定到各种可视化对象的参数化输入。在其它示例中,不同数据源可以绑定到可视化对象的不同方面。例如,一些实施例可以允许来自多个数据库和多个位置的列或字段被绑定到同一虚拟化对象的参数化输入。一些实施例可以使用将实时数据提供给可视化组件的在线数据源。可以基于各个应用设计人员的需求,将数据源的任何组合提供给虚拟化对象的参数化输入。
61.图3

4中的漏斗对象402的使用仅作为示例提供,并不意味着限制。将理解的是,被设计为在edie环境102中操作的任何可视化对象可以使用类似的过程在edie环境102中实现。
62.图5图示了根据一些实施例的在虚拟环境104中创建的虚拟仪表盘。虽然本文描述的可视化组件可以在任何类型的应用中使用,但它们可能特别适合于设计虚拟仪表盘。如本文所使用的,术语仪表盘可以包括汇总、分析和/或显示来自用户界面中的一个或多个数据源的信息的可视化。可以在组织的网站的主页上提供仪表盘。仪表盘也可以在应用或移
动app中显示为输入屏幕。仪表盘一般在二维环境中显示数据的“小部件”或其它图形表示。用户常常可以选择仪表盘上的各个小部件以显示附加信息。例如,用户可以单击显示当月摘要销售信息的小部件。小部件可以被配置为提供有关显示在仪表盘上的摘要销售信息的其它信息。一些仪表盘可以包括多个小部件,这些小部件可以被配置为在各种用户客户端设备访问该仪表盘时显示来自底层数据源的最新信息。
63.本文描述的实施例使用上述可视化组件在3d虚拟环境104中实现仪表盘。例如,代替在计算机屏幕上显示2d小部件,用户可以使用为了与3d虚拟环境进行交互而启用的客户端设备来提供3d可视化体验,以查看和操纵仪表盘数据。一些实施例可以使用允许用户进入虚拟环境104并与显示仪表盘数据的可视化对象执行实时交互的虚拟现实耳机或增强现实设备。在虚拟环境104中,用户可以在可视化对象周围走动、“抓取”并操纵可视化对象的部分、与其他用户进行交互,并使他们对可视化对象的操作更新底层数据源。这将传统的2d仪表盘体验变为交互式的、沉浸式的虚拟现实体验,在其中可以以交互、实况的方式查看数据。
64.虚拟环境可以包括多个可视化对象。代替多个2d小部件,3d仪表盘可以包括放置在虚拟3d环境104中的可视化对象。当用户进入或查看3d虚拟环境时,他们可以在虚拟对象周围移动以从任何角度查看它们并在任何位置进行操纵。下面更详细地描述与虚拟环境104交互以与可视化对象交互的用户的附加示例。
65.如上所述,可视化对象可以指由代码的主体和/或其相关联的库表示的软件对象。虚拟环境104中显示的内容可以被称为可视化对象的视图。每个可视化对象可以与多个不同的视图相关联,并且每个视图可以为可视化对象提供不同的外观和感觉。例如,漏斗对象可以包括传统业务视图,其以适合于业务环境的更保守的方式显示数据。漏斗对象还可以包括以不太正式的方式显示数据的附加视图,包括更明亮、更鲜艳的颜色、更有趣的形状和/或查看漏斗对象的方式的其它变体。为了简单起见,本公开的其余部分将不会在由可执行代码表示的底层可视化对象与在虚拟环境104中显示的可视化对象的视图之间进行区分。代替地,可视化对象(例如,漏斗对象)可以被统一称为可视化对象,以涵盖虚拟环境104中的代码和显示两者。
66.在这个示例中,虚拟环境104可以包括具有三个可视化对象的仪表盘。漏斗对象508可以链接到上述企业数据存储库502。图形对象510可以链接到多维数据立方体504,其中数据立方体中的维度被绑定到图形对象510的各个元素。人员对象512可以包括在虚拟环境104中的三维网格中的个人的摘要显示(例如,类似于虚拟名片显示)。人员对象可以绑定到web服务506,使得人员对象可以从web服务504下载信息以填充个人的摘要显示中的各个项目。这些可视化对象可以在虚拟环境104中的各个位置(例如,半圆中)被渲染。当用户进入虚拟环境104时,他们可以将可视化对象508、510、512视为在它们前面的区域中的对象。为了开始使用虚拟仪表盘,用户可以根据需要接近可视化对象508、510、512,查看可视化对象,和/或操纵可视化对象的元素。
67.图6图示了根据一些实施例的各种类型的客户端设备系统和输入设备如何可以全都与edie环境102中的相同虚拟环境同时接口。edie环境102可以包括服务于许多不同目的并且提供许多不同益处的3d数据探索平台。例如,edie环境102可以用作重要的、融合的新技术之间的集成的联系,这些新技术可以使企业数据的探索更加沉浸和流畅。这些技术可
以包括对话ui(例如,基于语音或基于聊天的)610、虚拟现实(vr)608、增强现实(ar)604以及许多其它交互式技术。用户还可以使用传统的2d计算工具(例如,移动设备606上的应用、显示屏上的web浏览器612等)访问这些可视化技术。edie环境102可以提供可视化,该可视化通过设备之间的过渡无缝地移动。例如,用户可以在2d环境中(诸如移动设备606的屏幕上)查看3d可视化。然后,用户可以戴上一副虚拟现实护目镜,并过渡到虚拟现实空间,该虚拟现实空间包括以二维方式显示在移动设备606的屏幕上的可视化对象。在虚拟环境中,用户可以使用如下所述的vr系统中通常包括的手动控制器与可视化对象进行交互。
68.edie环境102可以包括检测由客户端设备使用的用户输入设备的类型的硬件检测处理620。例如,如果客户端设备将传统的2d显示屏与web浏览器612一起使用,那么硬件检测处理620可以检测到2d环境正在与虚拟环境104接口。edie环境102可以包括用于图6中所示的这些不同类型的输入设备中的每一个的接口代码。硬件检测处理620可以识别可用的各种输入选项,并且相应地将接口代码加载到edie环境102中。然后,接口代码可以生成与客户端设备上的对应输入设备兼容的虚拟环境104的视图。
69.如下面更详细地描述的,edie环境102可以在网络模式下操作,使得虚拟环境104可以被多个不同的客户端设备同时访问。这允许用户在虚拟环境104中彼此交互,同时查看绑定到底层企业数据的可视化对象。硬件检测模块620允许用户基于他们自己的利用其客户端设备的观看体验在虚拟环境104中一起交互。例如,使用虚拟现实设备608进入虚拟环境104的用户可以在虚拟环境104中可见,作为从web浏览器612的2d屏幕界面查看虚拟环境104的另一个用户的显示头像。
70.图7图示了根据一些实施例的通过2d屏幕界面的虚拟环境104的视图。用户702可以通过配备有2d屏幕界面的台式计算机、膝上型计算机或其它计算设备来访问edie环境102。当在2d屏幕704上观看虚拟环境104时,可以将虚拟相机放置在虚拟环境104中以从虚拟相机的角度渲染虚拟环境104的视图。渲染的图像可以被显示在用户702的屏幕704上。当它们在屏幕704上显示时,用户可以使用鼠标或触摸屏与虚拟环境104中的各种对象进行交互。
71.虚拟环境可以包括如上所述布置在仪表盘显示器中的多个可视化对象。这些可视化对象可以包括漏斗对象508、图形对象510和/或任何其它可视化对象。此外,由虚拟相机捕获并显示在屏幕704上的图像可以包括虚拟环境中其他用户的位置。每个用户的视图可以由虚拟环境104中的对应虚拟相机捕获。代替显示虚拟相机,这些相机的位置可以包括头像的显示或其他用户的其它表示。这个示例包括虚拟环境104中的用户708的可视化。用户702可以通过虚拟环境104与用户708交互并通信,就像他们都在虚拟环境104中一样。当用户708将其虚拟相机转向用户702的虚拟相机时,他们可以在虚拟环境104中看到表示用户702的对应可视化或头像。
72.如上所述,edie环境102可以自动确定屏幕704应当显示虚拟环境104的2d视图。用户708可以戴着一副虚拟现实护目镜,并且在那个客户端设备上运行的edie环境102可以在虚拟环境104中提供虚拟仪表盘的3d视图。因此,用户都可以使用同一虚拟环境中的各种设备一起进行交互。在虚拟环境104中,一些用户使用的设备类型可能对其他用户而言并不明显。例如,用户708可以看虚拟相机以查看用户702在屏幕704上的显示,并且代替看到虚拟相机,他们可以看到虚拟环境104中的头像。用户708可能无法区分用户702是使用虚拟现实
耳机还是2d显示屏704。
73.图8图示了根据一些实施例的具有多个用户与虚拟仪表盘交互的虚拟环境104的视图。在这个示例中,用户804、806由具有人类外观的头像来表示。用户可以选择看起来像他们自己或任何其它虚拟角色的头像。当用户使用虚拟现实耳机在现实世界环境中移动时,这些头像可以在虚拟环境104中移动。当用户在现实环境中移动其头部时,虚拟相机可以移动、旋转、平移、倾斜等。这允许用户在虚拟环境104中的虚拟仪表盘“四周走动”以从不同的角度看到各种可视化对象。
74.可以在虚拟环境104中表示各种用户的移动,以使其他用户可见。例如,兼容的虚拟现实准备包括虚拟现实耳机和可以握在用户手中的选择设备。当选择设备或虚拟现实耳机在现实世界环境中被移动时,该移动可以被用于驱动虚拟环境104头像的移动。例如,当用户408在现实世界环境中举起他们的手时,头像的手也可以在虚拟环境104中举起,使得它们对于用户806可见。这允许用户在虚拟仪表盘中做手势并指向可视化对象,并使其他用户可以看到那些运动。
75.图8还图示了虚拟相机802,该虚拟相机802可以被用于捕获虚拟环境104的视图以获得要显示在2d屏幕上的图像。如上所述,可以用供用户702查看屏幕704的头像来代替虚拟相机802的描绘。可替代地,虚拟相机802可以在虚拟环境104中没有视觉等效物,或者可以由任何其它视觉指示器代替,作为可以被渲染给其他用户观看的3d对象。
76.同时使用上述2d和3d显示的用户可以与虚拟仪表盘中的可视化对象的元素进行交互。例如,用户804可以接近漏斗对象508并选择绕漏斗对象508旋转的球体之一。在2d显示中,可以使用手指点击或鼠标单击来选择球体。在3d显示中,可以通过使用用户804持有的手持虚拟现实设备之一来选择球体,以在球体绕漏斗对象508旋转时伸出并“抓住”其中一个球体。如上所述,可以将球体绑定到数据存储库中的数据对象。例如,球体可以表示数据库中的一行,并且漏斗对象508中的球体的位置、颜色、速度、轨迹等可以由数据库的行的列中的不同值来确定。当用户804握住球体时,可以在用户界面或平视显示器(hud)中显示关于球体的附加信息。例如,可以为用户804显示数据库的行中的每个列值。球体可以在用户804和用户806之间来回传递,使得两个用户804、806都可以查看底层数据对象的细节。
77.当用户804已经完成对球体的检查时,用户804可以将球体放回到漏斗对象508中。在一些实施例中,用户804可以将球体“放回”到漏斗对象508中,并且球体可以自动返回到其在漏斗对象508中的先前位置/旋转。在其它实施例中,用户804可以将球体放置在漏斗对象中与原始位置不同的位置。如上所述,球体在漏斗对象508中的位置可以由与漏斗对象508绑定的底层数据集中的值来确定。当球体在漏斗对象508中的位置改变时,与该位置对应的值也可以改变。在一些实施例中,可以将与漏斗对象508中的新位置对应的值写回到底层数据集。这允许用户操纵虚拟环境104中的虚拟化对象的元素,并改变可视化对象绑定到的数据集中的值。
78.在一些实施例中,提供给用户804、806中的每一个的可视化对象的视图可以是相同的。例如,当用户804如上所述将球体从漏斗对象508中拉出时,用户806将看到球体离开漏斗对象508。类似地,当用户804将球体放回漏斗对象508中时,用户806可以在漏斗对象508中看到球体的新位置。因此,使用虚拟环境104中的虚拟仪表盘,对可视化对象及其底层数据集的改变对于每个用户而言都是共同的。
79.在其它实施例中,可以向用户804、806中的每一个提供他们自己的可视化对象的视图。在这些实施例中,可以为每个用户804、806唯一地保存每个可视化对象的状态。例如,当用户804如上所述将球体从漏斗对象508中拉出时,用户806将继续看到球体在漏斗对象508中旋转。因此,一个用户804对可视化对象的元素所做的改变将仅由该特定用户804看到。其他用户806将继续以未更改的状态看到可视化对象。实施例可以根据存储的偏好来处理一个用户对底层数据集所做的改变。例如,一些实施例可以将改变传播到底层数据集,而其它实施例可以以“只读”配置提供数据集,使得对可视化对象的改变不会反映在底层数据集中。一些实施例可以在它们被写入底层数据集之前呈现对虚拟环境104中存在的所有用户的改变以供批准。
80.如上所述,每个可视化对象可以具有一个或多个与可视化对象相关联的视图或视图模型。这些视图模型可以控制可视化对象在虚拟环境104中被渲染时的外观和感觉。edie环境102允许每个用户为相同的可视化对象选择单独的视图模型。例如,用户804可以选择使用业务视图模型来查看漏斗对象508,该业务视图模型使用柔和的颜色和较小的球体。用户806可以选择使用非正式视图模型查看漏斗对象508,该非正式模型使用较亮的颜色和更大的球体。这允许每个个体用户在虚拟仪表盘中定制可视化对象的外观和感觉,而无需为其他用户改变视图模型。
81.图9图示了根据一些实施例的可以用于与虚拟环境104交互的现实世界环境908的视图。用户902可以使用虚拟现实设备,包括虚拟现实耳机904和/或一个或多个手持选择设备906。当用户902在现实世界环境908中移动时,虚拟环境104中的虚拟相机可以以对应的方式在虚拟环境104中移动。虚拟相机可以捕获通过虚拟现实耳机904显示给用户902的虚拟环境104的视图。当用户902移动他们的握住选择设备906的手时,虚拟环境104中的对应头像的手也可以如上所述移动并选择虚拟环境104中的对象。
82.图10图示了根据一些实施例的用于在多维仪表盘中显示数据的方法的流程图1000。该方法可以包括访问多个3d可视化组件(1002)。3d可视化组件中的每一个可以包括用于接收数据集的参数化输入。可以下载或以其它方式从组件交换器处接收3d可视化组件,该组件交换器允许开发人员提供要在正在开发的多个应用中使用的3d可视化组件。可以将3d可视化组件下载到客户端设备或操作环境(诸如上述edie环境)中。例如,3d可视化组件可以包括漏斗对象、图形对象和/或本文描述的其它可视化组件。
83.该方法还可以包括接收一个或多个数据集(1004)。数据集可以表示从企业应用和/或数据库接收的企业数据。例如,数据集可以包括客户关系管理(crm)数据库、人力资本管理(hcm)数据库、财务软件数据库和/或操作环境可用的任何其它类型的企业数据。
84.该方法可以附加地包括将多个3d可视化组件的参数化输入与一个或多个数据集绑定(1006)。例如,对于3d可视化组件中的每一个,可以将对应的参数化输入绑定到一个或多个数据集之一。3d可视化组件的参数化输入可以使3d可视化组件通用,使得可以借助绑定的数据集对其外观和操作进行定制。当将数据集放置在应用中时,可以在设计时将数据集绑定到对应的3d可视化组件。当在运行时实例化3d可视化组件时,可以可替代地或附加地绑定数据集。在运行时期间,系统可以接收输入(例如,从用户)以将数据集绑定到不同的数据集。一些3d可视化组件可以被绑定到多个不同的数据集,每个数据集可以定义3d可视化组件的视觉或操作方面。
85.该方法还可以包括基于多个3d可视化组件和一个或多个数据集在虚拟环境中渲染多个3d虚拟对象(1008)。3d可视化组件中的每一个可以包括视图模型、动画模型、线框骨架和/或其它可以被用于在虚拟环境中生成3d虚拟对象的图形构造。可以在edie操作环境中实现虚拟环境,以创建3d虚拟场景,该场景包括除来自3d可视化组件的3d虚拟对象以外的对象。例如,虚拟环境可以被配置为3d虚拟对象的圆形转盘。在另一个示例中,虚拟环境可以被配置为将3d对象显示为虚拟“小部件”的企业仪表盘,其可以由虚拟环境中的用户查看。仪表盘中的每个3d虚拟对象可以绑定到来自不同数据库和/或不同应用的不同企业数据集。例如,仪表盘可以在单个虚拟环境中的一个统一显示中为财务、员工、运营、客户等提供摘要数据。
86.该方法还可以包括从多个客户端设备接收与虚拟环境的连接(1010)。一些实施例可以包括其上安装有硬件检测处理的客户端设备,该硬件检测处理被配置为检测与客户端设备一起使用的显示和/或输入设备的类型。硬件检测处理可以自动配置与虚拟环境的交互以匹配客户端设备的类型。例如,如果客户端设备包括虚拟现实耳机,那么硬件检测处理可以被配置为提供沉浸式视图和/或与虚拟环境的交互,以使用户感觉好像他们在虚拟环境中工作,而不是在现实世界环境中工作。如果客户端设备包括2d屏幕(例如,监视器、膝上型计算机等),那么硬件检测处理可以被配置为将虚拟相机放置在虚拟环境中,以在虚拟环境中要在2d屏幕上显示的位置处捕获虚拟环境的2d图像。
87.该方法可以附加地包括将虚拟环境中的多个3d虚拟对象的多个视图提供给多个客户端设备(1012)。可以向每个客户端设备提供虚拟环境的单独视图。此外,每个客户端设备可以被配置为允许用户与虚拟环境中的3d虚拟对象进行交互以更改他们的显示。例如,用户可以从虚拟对象中移除与对应数据集中的各个元素对应的元素。用户可以看到包括有关那个数据元素中数据点的摘要信息的显示,并且可以允许他们改变某些数据点。可以在3d虚拟对象绑定到的底层数据源中更新这些改变。在一些实施例中,改变可以被虚拟环境中的其他用户立即查看。可替代地,一些改变可以仅对进行改变的用户可见,使得为每个用户提供虚拟环境的个性化视图。
88.应当认识到的是,根据各种实施例,图10中所示的具体步骤提供了在多维仪表盘中显示数据的特定方法。根据替代实施例,也可以执行其它步骤序列。例如,本发明的替代实施例可以以不同的次序执行上面概述的步骤。而且,图10中所示的各个步骤可以包括多个子步骤,这些子步骤可以按照适合于各个步骤的各种顺序来执行。此外,取决于特定的应用,可以添加或移除附加步骤。本领域普通技术人员将认识到许多变型、修改和替代。
89.转盘中可视化对象之间的动画
90.在一些实施例中,可以在虚拟环境中使用多个可视化组件来表示一个或多个数据集。例如,单个数据集可以被加载到第一可视化组件中。可以定制第一可视化组件以显示数据集的特定方面或方面集合。但是,为了显示数据集的不同方面或方面集合,第一可视化组件可能不是理想的。因此,这些实施例可以生成从第一可视化组件流向第二可视化组件的数据集的动画。第一可视化组件中的图形元素(诸如,球体或球)可以被动画为流向第二可视化组件,以“填充”第二可视化组件中的体积。第二可视化组件可以特别地被定制以在图形上强调数据集的一个或多个替代方面。
91.虚拟环境中数据集的不同视图和/或表示之间的过渡可以由“故事”集合来控制。
如本文所使用的,术语“故事”可以指使得在虚拟环境中显示数据以经过可视化阶段来使用数据讲述故事的一系列动作。可以使用故事来通过各种可视化组件、数据集和/或视图自动排序用户的视图,而不是控制不同可视化组件之间的每个过渡。故事可以被存储在如下所述的指令或动作的数据结构中。
92.在描述故事中的步骤之间的动画和/或序列之前,本公开可以首先描述多个不同的可视化组件。这些可视化组件仅以示例的方式呈现,并不意味着是限制性的。但是,它们被描述为使得它们可以被用作示例,以说明如何将视图、数据集、可视化组件和/或虚拟环境的其它方面过渡为更大故事的一部分。本公开将首先描述以上简要提到的漏斗可视化组件,以及“烧杯”可视化组件和“简档布局”可视化组件。
93.如上所述,导入的数据集可以由虚拟环境中的一个或多个可视化组件表示。可以将许多不同类型的可视化组件导入虚拟环境,以表示它们被绑定到的数据集。每个可视化组件可用的形状、设计和动画可以经过专门设计,以便为用户提供视觉体验,以供他们查看、理解和操纵复杂的数据集。不仅仅是查看网页上的图形或2d饼图,用户还可以看到三个维度的高级动画,这些动画可以说明数据随时间变化的方式、数据如何彼此交互以及通过数据传播了哪些改变以实现期望的结果。与用于显示企业数据并与企业数据进行交互的传统二维仪表盘相比,这些可视化组件具有明显的优势。
94.图11图示了根据一些实施例的漏斗1100形式的可视化对象的示例。漏斗1100可以被称为最终对象、漏斗可视化组件或漏斗3d表示。漏斗1100对于可视化具有数千或甚至数百万个数据点的大型数据集可以是有用的。漏斗1100可以提供可以共同传达关于每个数据点和关于数据点集合的信息的多个同时视觉指示器。这些视觉指示器可以包括数据点的着色、数据点的尺寸、数据点到漏斗1100的中心的径向距离、数据点的径向角度、数据点绕漏斗1100的旋转速度、沿着漏斗1100的长度的距离等等。数据集中的属性可以被用于在漏斗1100周围绘制各个数据点,并控制其外观和/或动画以将所有这些信息以可视显示的形式同时传达给用户。
95.如上所述,用于漏斗1100的可视化组件可以被设计为对任何特定的数据集都是不可知的。代替地,漏斗1100可以包括现有数据集可以绑定到的参数化输入的集合。通过示例的方式,以下讨论可以使用特定类型的数据集来说明漏斗1100可以如何查看和操纵那个数据集。这个示例数据集可以包括从销售云应用导入或访问的数据表。这个数据表可以在数据表的每一行中包括销售机会。数据表中的不同列可以包括销售机会的所有属性。这些属性可以包括个人之间的互动、分数、进度指示器和/或将销售机会发展为完成的销售的任何其它特征。当将用于漏斗1100的可视化组件导入到应用(诸如虚拟仪表盘应用)时,应用设计者和/或用户可以选择销售机会表作为要由漏斗1100表示的数据集。然后可以使用来自数据表的数据点来构造表示漏斗1100的3d对象,以控制漏斗1100的视觉方面。这些视觉方面将在下面进行详细描述,但是简而言之,数据表中的每一行可以与漏斗1100中绕漏斗1100旋转的球体对应。每个球体的旋转速度、角度、轨迹、颜色、尺寸和/或其它特性可以由对应数据行中的列定义。
96.将理解的是,仅以示例的方式使用针对漏斗1100的底层数据集的销售机会数据的使用,这并不意味着是限制性的。如上面所强调的,用于漏斗1100的可视化组件的设计不依赖于底层数据集。代替地,任何数据集可以绑定到漏斗1100,以便用表示数据点的球体来填
充漏斗1100。销售机会信息仅仅是数据集的一个示例,该数据集说明了如何使用漏斗1100交互地可视化数据点的属性。其它数据集可以包括财务数据、科学数据、测试或实验数据、调查数据和/或任何其它类型的数据源。
97.首先,漏斗1100上的距离1106可以传达每个数据点的含义。距漏斗1100的原点的距离1106可以由与漏斗1100中的球体对应的每一行的列的值来确定。例如,对于每个单独的数据点,距离1106可以指示数据点从开始值到结束值的相对进展。例如,对于表示销售机会的数据点,数据点离漏斗1100的原点越远,销售机会离成功完成越远。因此,数据点1107将表示进度的初始阶段的销售机会,而数据点1108将表示即将成功完成的销售机会。漏斗1100本身的形状也可以传达这种类型的含义。漏斗一般使用其物理对应物在较大的开口处接收新材料,然后将那个材料(例如,液体)“通过漏斗”逐渐朝者漏斗的较小端倒入。通过在虚拟环境中使用漏斗1100的形状,用户可以直观地理解,数据点将从较大的外部区域朝着漏斗内部较小的较小区域发展。因此,漏斗1100对于显示一大组数据点中的各个数据点的进度非常有用。当在虚拟环境中构造漏斗1100时,可以将每个球体放置在漏斗中基于来自数据集的这个值的位置或距离1106处。
98.除了示出数据点的集合中的单个数据点的进度外,漏斗1100对于显示数据点进度的总体趋势也非常有用。在图11的图示中,在漏斗可视化中,数据集中有成千上万个数据点,这些数据点由小球体表示。除了专注于单个数据点的能力外,这个可视化还为用户提供了数据的聚类或自然分组的说明,以说明数据集中的趋势。例如,在漏斗1100的开始阶段(例如,阶段1)中距原点(例如,阶段5)很远的数据点的集合可以表示开始阶段中的大量销售机会;但是,在漏斗1100的原点(例如,阶段5)附近的少量数据点将说明相对少的销售机会已被完成。漏斗1100还可以快速提供评估数据集中的数据点总数的方式。例如,填充稀少的漏斗说明几乎没有销售机会可用。相反,每个级别密集填充的漏斗说明有在不同的进展状态之间平均分配的许多机会。
99.通过创建将在漏斗本身1100的渲染中显示的数据的阈值、分条或分组,可以增强漏斗1100中在视觉上显而易见的数据的自然分组或聚类。例如,漏斗1100可以包括第一阶段1101、第二阶段1102、第三阶段1103、第四阶段1104和第五阶段1105。阶段之间的划分可以通过用户定义的阈值来确定,并且可以表示数据点向最终结果前进的阶段。例如,第一阶段1101可以表示已被识别但尚未评估或未采取行动的销售机会。第五阶段1105可以代表已经被培养成完成的销售的销售机会。在一些实施例中,可以使用定义的边界、不同的配色方案和/或在视觉上区分一个阶段中的数据点与另一个阶段中的数据点的其它手段如图11所示在视觉上描绘每个阶段。在一些实施例中,这可以包括似乎是漏斗本身的表示,而其它实施例可以借助于填充漏斗的数据点简单地形成漏斗形状。
100.不同阶段1101、1102、1103、1104、1105可以沿着漏斗1100的长度规则地间隔开。可以基于由漏斗1100定义的静态间隔来确定阶段1101、1102、1103、1104、1105中的每一个的相对宽度。相对宽度也可以由每个阶段内的多个数据点确定。例如,当较大数量的数据点驻留在这个第一阶段1101中时,第一阶段1101的宽度可以较大。各个阶段的颜色可以是透明的,使得它们遮盖漏斗1100的各个区域,同时仍然允许在其中循环的数据点易于被查看。如上所述,用户可以通过选择在漏斗1100内旋转的各个数据点来与漏斗进行交互。不同阶段不需要在虚拟环境中建模为实体表面,而是用户可以“穿过”每个阶段以与其中循环的数据
点进行交互。
101.一些实施例可以静态地在漏斗1100中呈现数据点而没有运动。可替代地或附加地,一些实施例还可以基于一个或多个属性来对漏斗1100中的数据点的运动进行动画处理。例如,图11中的数据点可以基于涉及具体数据点的动作的频率而被动画处理为绕漏斗1100的中心轴旋转。在表示销售数据的数据点的示例中,各个数据点绕漏斗1100的中心轴旋转的速度可以由对那个数据点(客户联系人、电子邮件、直销等)采取的销售动作的数量或速率来确定。这允许用户在视觉上识别未被作用的数据点,以解释其与漏斗1100的原点的相对距离。没有移动或移动缓慢的数据点指示销售机会没有进展。相反,如果第一阶段1101中的机会在漏斗1100周围以高速率循环,那么该机会可能会快速进展。当数据点向漏斗1100的起点前进时,这也提供了数据点的自然而逼真的可视化。与现实世界的漏斗一样,数据点将通过绕漏斗1100的中心轴旋转而逐渐朝着漏斗1100的原点前进并提高速度直到到达原点。这也提供了有关数据进展的效率和一致性的总体概述。通过对所有数据点进行动画处理,变得可以直观地看出哪些数据点比其它数据点受到更多或更少的关注、哪些数据点比其它数据点进展得慢或快,以及其它易于使用这个可视化对象传达的比较可视化信息。
102.图11还图示了根据一些实施例的用于漏斗1100的控制面板1120,以及如何将尺寸、颜色和阶段细节添加到漏斗1100的动画中。在这个实施方式中,可以召唤控制面板1120在虚拟3d环境中渲染可视化对象以供用户控制。在诸如平板电脑或智能电话屏幕之类的2d渲染中,控制面板1120可以被合成在来自虚拟环境的漏斗1100的任何渲染的图像之上。同时,对于配备有vr/ar设备的用户,控制面板1120可以在虚拟环境中被呈现为三维对象,并且这些用户可以使用vr手动控件直接与表示控制面板1120的对象进行交互。例如,vr用户可以使控制面板1120出现在它们的前面,并且可以使用配备有vr传感器/设备的虚拟手在控件面板1120上“推动”控件。
103.控制面板1120可以控制由漏斗1100显示的所有视觉信息。例如、用户可以如上所述控制舞台着色,每个数据点的半径,角度和比例,以及是否应突出显示某些数据点。控制面板1120还可以被用于在漏斗的不同外观之间进行选择,诸如是光滑的还是阶梯状的。最终阶段之间的过渡可以被打开或关闭,并且可以控制数据点绕漏斗中心轴的动画旋转。还可以在控制面板1120中切换详细信息,例如阶段的标签和每个数据点的信息。
104.除了在虚拟环境中控制漏斗1100的特定外观外,控制面板1120还包括列出可用故事1122的故事部分。如上所述,故事是可以在虚拟环境中使用各种可视化组件、数据集和/或视图来用数据讲述故事的指令或动作的序列。对于每个可视化组件,控制面板1120的故事部分可以显示当前被配置为使用漏斗1100的可用故事1122。用户可以选择控制面板1122中的任何故事1122来执行该故事。如下面更详细描述的,故事可以触发动画、等待用户输入、实例化新的可视化组件、移动向用户显示的虚拟相机的视图,和/或其它视觉操作来经过数据的故事。
105.图12图示了根据一些实施例的可以从其它可视化组件接收数据点的烧杯可视化组件1200。运行故事时可能执行的常见操作之一是将数据集的显示从一个可视化组件过渡到另一个可视化组件。烧杯可视化组件1200可以用作用于表示数据集中的各个数据点的离散对象的容器。代替如以上针对漏斗对象描述的那样将这些显示为单独的数据点,烧杯可
以生成表示预定义范围内的数据点的集合的体积3d对象。
106.在这个示例中,烧杯可视化组件1200可以包括各个烧杯的多个3d表示。在这个示例中,在虚拟环境中以行或序列显示三个烧杯1210、1212、1214。与上述漏斗对象相比,烧杯1210、1212、1214表示落入预定值范围内的数据对象的集合。在漏斗中,所有各个数据点都由围绕漏斗旋转的各个球体表示。基于漏斗中的位置将球体放置到各部分中。这些部分或每个单独球体从漏斗的原点的距离由该数据点的值(例如,数据库表的数据行中的列)确定。因此,数据集中被绑定到漏斗可视化对象的每个单独数据点由虚拟环境中的单独3d对象表示,作为漏斗的3d表示的一部分。
107.相比之下,烧杯可视化组件1200不需要针对其绑定到的每个数据点包括单独的3d对象。替代地,烧杯可视化组件1200可以显示3d体积,其中3d体积的大小取决于要由3d体积表示的数据点的数量。烧杯可视化组件1200可以被划分为多个单独的烧杯1210、1212、1214,以进一步区分数据的类别。在这个示例中,烧杯1210、1212、1214中的每一个表示数据集中表示的非重叠间隔。继续销售数据的示例,可以将数据集中的每个销售机会分类为落入三个不同的年季度之一。注意的是,在上述漏斗中未区分这三个季度。替代地,将每个季度的所有数据点插入到漏斗中以围绕漏斗对象旋转。因此,烧杯可视化组件1200能够从不同角度显示数据并突出显示在漏斗可视化组件中不能立即在视觉上可用的数据的不同属性。这是如何使用不同的可视化组件以对虚拟环境中的用户可能有用的不同方式显示数据的示例。
108.各个烧杯1210、1212、1214中的每一个可以被“填充”有各个数据点。代替用矛(spear)来表示每个数据点,数据点的集合可以由从下往上填充烧杯的液体状3d体积来表示。烧杯中的体积的大小可以由该体积中包括的数据点的数量来确定。例如,烧杯1212中的“液体”的体积大于烧杯1210中的液体的体积。因此,通过将这两个体积进行比较,2014年第四季度中的数据点的数量可能约为2014年第三季度中的数据点的数量的两倍。
109.各个烧杯1210、1212、1214中的每一个也可以将其中表示的数据点划分为如上针对漏斗组件所述的各个阶段。例如,这些阶段可以涉及销售机会朝着完成或谈判的销售前进的阶段。这些阶段由上述漏斗对象中的有色环表示,并且随着表示各个数据点的球体围绕漏斗旋转,它们将逐渐移向漏斗的原点,以经过各个阶段。代替通过将各个数据点放置在各种位置来表示阶段,烧杯可视化组件1200可以包括具有不同视觉特性的液体状体积的垂直层以指示阶段。例如,图11中的漏斗的第一阶段1101由烧杯1214中的底层1201表示。类似地,阶段2

5分别由烧杯1214中的层1202、1203、1204和1205表示。这图示了烧杯可视化对象1200如何可以使用不同的烧杯显示数据的不同划分,同时仍然显示漏斗对象中表示的数据的相同划分(例如,阶段)。
110.图13图示了根据一些实施例的如何可以生成表示各个数据点的3d对象的动画以在可视化组件之间移动。如上所述,动画可以是该数据集的故事的一部分。故事中的第一个动作可以是将数据集绑定到漏斗可视化组件,如上所述。故事中的第二个动作可以是在虚拟环境中生成漏斗对象1100,并生成围绕漏斗旋转的多个3d对象(例如,球体)以表示数据集中的每个单独的数据点。此时,故事可以包括等待用户输入的指令。这可以允许用户视觉上检查和/或操纵在漏斗1100中表示的各个数据点。例如,用户可以走到漏斗1100、虚拟地“抓取”由球体表示的各个数据点、检查与那些各个数据点相关联的数据值、更改值并将这
些更改后的值写回到底层数据源,等等。
111.在用户已经完成使用漏斗1100检查数据之后,他们可以提供使故事过渡到下一个动作的输入。在这个示例中,下一个动作可以是生成或实例化第二可视化组件,诸如烧杯可视化组件1200。注意的是,一些故事可能使得在故事开始时在虚拟环境中生成和/或实例化烧杯组件1200。它可以保持不绑定到任何数据集,直到漏斗1100中的数据集被转移到烧杯1200为止。用户可以看到空的烧杯1200,直到进行过渡成止。
112.动画可以包括使表示第一可视化对象中的数据点的每个单独的3d对象在虚拟环境中从第一可视化对象行进到第二可视化对象。因为各个数据点由漏斗1100中的各个3d对象表示,因此这些对象可以简单地从其在漏斗1100中的旋转位置通过虚拟环境移动到烧杯1200中的对应位置。例如,虽然在漏斗中没有进行这种视觉区分,但3d对象仍可以基于时间间隔(例如,2014年第3季度)在虚拟环境中移动到正确的烧杯中。
113.可以为每个单独的3d对象确定动画路径1302。该动画路径可以由虚拟环境中的物理引擎生成。例如,可以在烧杯上施加虚拟力以吸引3d对象并克服使3d对象围绕漏斗1100旋转的任何虚拟力。这些力可以被施加在物理引擎中,以使每个单独的3d对象跟随自然动画路径1302到烧杯1200的顶部中。例如,因为力在虚拟环境中被克服和施加,因此较大的球体由于其虚拟“质量”可能行进得更慢。因此,小的数据点可能在较大的数据点之前到达第二可视化组件。
114.如上所述,烧杯1200不必包括表示各个数据点的3d对象的位置。替代地,它们包括表示数据点的集合的液体状体积。在这个示例中,当各个3d对象到达烧杯1200时,它们可以从各个对象转变并组合在一起以在烧杯1200中形成液体状体积。例如,物理引擎可以将数据点的这些球体中的每个球体在它们到达烧杯1200内部时建模为水滴。使用物理引擎中的标准功能,当液滴到达烧杯1200时,液滴可以组合以形成3d体积。这提供了使两个可视化组件之间的过渡无缝且连续的流畅动画。
115.结合3d对象被转移到第二可视化组件,底层数据集也可以被绑定到第二可视化组件。在这个示例中,最初绑定到漏斗对象1100的数据集现在可以被绑定到烧杯1200的参数化输入。因此,烧杯1200的外观可以通过底层数据集中的各个数据点的集合的数据属性值来确定。例如,可以从各个数据点汇总数据值,以为烧杯1200中的每个液体体积生成颜色、半透明性、纹理、反射性和/或其它视觉特性。这种绑定可以自动进行,作为故事所指示的动作之一的一部分。注意的是,在一些实施例中,数据集可以保持同时绑定到漏斗1100和烧杯1200。这可以允许一组用户继续查看漏斗1100,而另一组用户移动到烧杯1200。其它实施例可以在数据被绑定到烧杯1200时将数据从漏斗1100解除绑定。随着故事的进行,这可以帮助用户将其注意力从一个可视化组件移动到下一个可视化组件。
116.图14图示了根据一些实施例的包括简档布局的第三可视化组件。简档布局组件1400可以包括多个单独的用户简档。例如,可以在虚拟环境中渲染和显示类似于用户简档(例如,名片)的各个3d对象。这些3d对象中的每一个都可以被渲染为表面或实体/线框多边形,并在虚拟环境中作为渲染对象存在。作为渲染对象,用户可以在虚拟环境中的简档布局组件1400周围走动,并且它可以被显示在其它虚拟组件(诸如上述漏斗和/或烧杯)旁边。
117.简档布局组件1400是可视化组件的示例,该可视化组件可以在数据被显示在虚拟环境中之前对数据执行计算、汇总、变换和/或其它操作。数据集可以与其它组件一样被绑
定到简档布局组件1400。例如,先前绑定到漏斗和/或烧杯的相同销售数据也可以被绑定到简档布局组件1400。但是,记住销售数据包括各个销售机会。销售数据中的数据点不一定包括由简档布局组件1400显示的各个销售人员。为了显示各个销售人员的信息,简档布局组件可以首先对销售数据执行一些操作,以正确格式化和/或汇总数据进行显示。
118.在这个示例中,可以基于每个数据点的属性值之一(例如,数据表的每一行中的销售人员列)对销售数据进行排序。简档布局组件1400的参数化输入可以包括用于销售人员数据源的输入和/或用于销售机会数据源的输入。如果输入数据集被绑定到销售机会参数化输入,那么可以对各个数据点进行分析和汇总,以在显示中形成销售人员数据。另一方面,如果参数化输入被绑定到销售人员数据库,那么可以从数据库中提取数据并显示数据,而无需在虚拟环境中进行进一步变换。
119.当接收到销售机会数据并且识别每个数据点的各个销售人员时,简档布局组件1400可以汇总每个单独的销售人员的所有销售机会。这些汇总可能产生被配置用于在虚拟环境中显示的新的数据点。例如,被显示为简档布局组件1400的一部分的每个3d简档对象可以由特定销售人员在所有销售机会上的一次汇总产生。简档1402可以显示销售人员的姓名和照片以及其它识别信息。简档1402还可以显示已经进展到某个阈值水平(诸如已完成交易)的多个销售机会。
120.可以根据这些新的汇总数据点来组织简档布局组件1400中的数据的显示。可以基于已完成交易的总数来组织简档布局1400中的简档。例如,简档1402具有最多已完成交易并且位于显示的顶部。简档可以从左到右以降序显示在每一列中。另外,可以由简档布局组件1400应用阈值,使得可以在视觉显示中突出显示或强调落入特定阈值以下的简档。在这个示例中,可视化组件1400可以设置100笔交易的阈值。可以使用边框或其它视觉区别突出显示落入低于此阈值的简档1404和1406,以将用户的注意力吸引到这些特定的简档1404、1406。
121.图15图示了根据一些实施例的用于与特定简档相关的附加信息的显示。继续图14中的示例,用户可以选择特定的简档,诸如简档1406。如上所述,用户可以通过在虚拟环境中伸手并抓住旋转球体之一来从漏斗中选择各个数据点或销售机会。类似地,在简档布局组件1400中选择简档1406可以包括伸手并触摸或抓住表示简档1406的3d对象。这可能会导致附加信息被显示在简档布局1400旁边。
122.该附加信息可以使用绑定到可视化组件1400的原始数据点。由于从销售机会数据源接收到的原始数据点已被变换和汇总,以提供各个销售人员的显示,因此该操作为用户提供了一种方式来查看被汇总以生成简档的显示的原始数据点。例如,当选择简档1406时,可以显示销售机会的原始数据集中的数据点列表1500。数据点列表1500还可以通过在虚拟环境中形成被渲染为显示的一部分的表面或薄3d对象来生成。如上所述,这些对象可以在虚拟环境中由用户选择、抓取和/或以其它方式进行交互。数据点列表1500中的每个3d对象可以显示关于被汇总以形成简档的每个数据点的信息(例如,销售机会)。这可以包括销售机会的所有细节,包括金钱、位置、销售细节等等。数据点列表1500被视为简档布局组件1400的一部分,并且可以类似于用于图11中的漏斗1100的控制面板1120。
123.图16图示了根据一些实施例的虚拟仪表盘。如上所述,虚拟仪表盘可以是被组织为小部件的可视化组件的集合,每个小部件可以使用各种显示技术来显示各个数据集和/
或相同数据集。该虚拟仪表盘可以包括漏斗1100、烧杯1200、简档布局1400和/或其它可视化组件。简档布局还可以显示其用于所选择的简档的数据点列表1500。虚拟仪表盘可以允许用户在可视化组件的各种3d表示周围走动,以交互地查看和/或操纵任何显示的数据。例如,用户可以在仪表盘区域组织虚拟会议以讨论可视化信息。在一些实施例中,用户一旦登录到环境中,他们将到达虚拟仪表盘前面的虚拟环境。这操作起来可以类似于企业网站上的主页。从虚拟仪表盘中,用户可以查看和操纵数据和/或移动到使用不同应用的虚拟环境的不同区域。例如,用户可以激活漏斗1100上的控件以被带到第二虚拟环境,以查看与销售机会数据一起工作的附加显示和/或界面。
124.图17图示了根据一些实施例的故事如何能够在虚拟仪表盘中生成对象的动画。这个示例类似于上面图13中所示的示例。在这个示例中,当各个3d对象从烧杯1200移动到简档布局1400中的多个简档中时,可以使它们动画。当将旋转球体从漏斗1100移入到烧杯1200中时,代替将各个3d对象变成对象的汇总体积,该示例可以使用相反的过程。具体而言,当各个数据点从烧杯1200中移出时,可以将液体状体积分解成类似于围绕漏斗1100旋转的球体的球体。这些球体的体积与对应数据点的属性值之一成比例。再次,物理引擎可以用于从汇总的体积中拉出液滴以形成球体。如上所述,物理引擎可以生成从烧杯1200到简档布局1400中的对应简档的运动路径1302。
125.当烧杯1200中的3d对象沿着运动路径1302移动时,它们可以被拉到简档布局1400中的各个简档。如上所述,简档可以根据销售人员属性将不同的销售机会汇总在一起。因此,动画可以按照每个对应数据点的销售人员属性来过滤各个3d对象。代替变成体积或在简档布局1400中维持数据点的独立表示,当3d对象到达时,它们可以简单地由简档布局1400中的对应简档吸收。一些实施例可以生成更复杂的动画,使得当各个3d对象通过动画到达时,简档布局1400在体积上被逐渐地构造。如当将数据点从漏斗1100转移到烧杯1200时的情况一样,底层数据集可以被绑定到第三可视化组件。例如,销售机会数据库可以作为参数化输入被绑定到简档布局组件1400。
126.这些操作中的每个操作都可以由故事数据结构决定,该数据结构用于将这些数据的故事讲述为通过不同的可视化组件依次共享和传递的。继续图13中的示例,数据集可以被绑定到烧杯1200。可以给予用户检查烧杯1200和操纵其中的任何数据的机会。然后,故事可以等待用户输入,以通过烧杯1200和简档布局1400之间的运动路径1302激活数据点的动画。故事还可以在简档布局1400中为不同的销售简档设置阈值,并自动显示与最低销售简档相关的数据点列表1500。
127.通过将这些特定动作放置在故事中,可以生成数据表示,该数据表示讲述关于数据如何进展以及什么导致该进展的故事。例如,漏斗1100可以示出总体销售机会如何作为整体进展通过各个阶段。当使数据动画到烧杯1200时,它们可以显示这种进展如何随着时间的推移而发生,可能图示与先前的销售数量相比,当前季度的当前销售数量如何表现不佳。接下来,当使数据动画到简档布局1400时,可以将特定的简档突出显示为落后于或未达到期望的销售人员,作为导致较低的销售数量的原因。在生成故事时,故事设计者可以添加在虚拟环境中以最有效的视觉方式讲述预期故事的阈值、可视化和数据集。
128.应该强调的是,特定的可视化组件,诸如漏斗1100、烧杯1200和/或简档布局1400,仅作为示例的方式提供,而不是限制性的。其它实施例可以使用不同的布局、不同的虚拟化
组件、不同的动画等等。其它实施例也可以使用任何类型的底层数据源来绑定到可视化组件。销售数据的示例仅作为示例提供,并不意味着限制。
129.图18图示了根据一些实施例的故事1802的数据结构。该故事可以包括多个单独的可视化组件1804、1810、1816。这些可以指示将作为故事的一部分在虚拟环境中被实例化的各个组件。这些组件1804、1810、1816中的每一个可以包括设置,这些设置确定何时以及如何使这些组件可见、何时加载它们、何时实例化它们以及何时将它们绑定到底层数据集。在这个示例中,漏斗可视化组件1804可以最初绑定到销售数据数据集1806。相比之下,占位(placeholder)数据集1812、1818可以被绑定到烧杯组件1810和/或简档布局组件1816。这可以指示当故事在虚拟环境中被执行时,数据集可以在运行时被动态绑定。
130.视觉过渡也可以被插入到故事中,其指示数据如何从一个可视化组件移动到下一个可视化组件。例如,动画组件1808可以在数据集1806和数据集1812之间生成链接1820。具体而言,销售数据集可以从漏斗组件1804转移到烧杯组件1810。根据动画组件1808中的设置,这可以使漏斗组件1804与销售数据集解除绑定,并且使烧杯组件1810与销售数据集绑定。相似的动画组件1814可以包括数据集1812和数据集1816之间的链接1822,以在发生动画时绑定/解除绑定销售数据集。
131.图18中所示的故事1802是可以在实践中使用的故事的简化版本。其它故事可能非常复杂,并且可能包括其它多媒体效果和不同可视化组件的显示。例如,一些实施例可能在虚拟环境中的虚拟屏幕上使用视频演示、使用在对数据进行动画或与数据进行交互时触发的语音和声音记录、使用使虚拟光源集中于不同可视化组件的照明效果、使用对与环境中的虚拟相机相关联的视图的自动更改、使用对虚拟环境中用户位置的自动更改,和/或使用可以应用于虚拟环境的任何其它更改或效果。
132.图19图示了根据一些实施例的用于在一个或多个可视化组件之间提供动画的方法的流程图。该方法可以包括接收绑定到第一可视化组件的一个或多个数据集(1902)。一个或多个数据集可以包括企业数据或来自任何其它数据源的数据。这些数据源可以包括企业应用、web服务、数据库、电子表格、网站、数据存储库、xml文件、在线储存库、备份系统等等。可以通过如上所述的参数化输入将一个或多个数据集绑定到可视化组件。除了未具体公开的以类似方式操作的其它可视化组件之外,可视化组件还可以是本公开中描述的任何可视化组件。
133.该方法还可以包括基于一个或多个数据集在虚拟环境中生成第一可视化组件的3d表示(1904)。3d表示可以包括表示一个或多个数据集中的各个数据点的多个单独的3d对象。这些可以被显示为各个3d对象,或者它们可以被显示为表示数据集中的多个数据点的汇总3d对象。3d表示还可以包括创建可视化组件的预定义形状或结构的任何3d构造或其它结构或渲染组件。这可以包括漏斗的锥形环、烧杯组件的空烧杯和/或用于简档布局的简档卡。如上所述,每个3d对象可以具有由对应数据点(例如,数据行中的列)中的实际值确定的视觉特性。这可以包括颜色、速度、轨迹、运动路径、大小、周长、透明度、纹理、反射率、体积和/或虚拟环境中的任何其它特性。类似地,用于整体上表示可视化组件结构的任何3d构造或表面也可以具有由可视化组件中的数据点和/或设置确定的视觉特性。例如,表征数据的不同阶段可以生成有色环和/或要显示的烧杯的部分。
134.该方法可以另外包括在虚拟环境中接收将一个或多个数据集过渡到第二可视化
组件的命令(1906)。第一可视化组件和第二可视化组件都可以在虚拟环境中被实例化为转盘或虚拟仪表盘的一部分。用于过渡一个或多个数据集的命令可以从用户接收、可以从计时器接收、可以从另一个进程接收、可以借助于由用户在虚拟环境中执行的动作来接收,和/或任何其它触发事件。例如,如果用户从第一可视化组件走到第二可视化组件的阈值距离内,那么这可以作为将数据点从第一可视化组件过渡到第二可视化组件的命令。在另一个示例中,如果用户转动他们的虚拟相机(例如,在现实世界中转动他们的头部),使得他们的视图从第一组件移动到第二组件,那么这也可以作为过渡数据点的命令。取决于实施例,一个或多个数据集可以与该命令相关联地从第一可视化组件解除绑定。
135.该方法还可以包括生成表示一个或多个数据集中在虚拟环境中从第一可视化组件的3d表示移动到第二可视化组件的3d表示的各个数据点的3d对象的动画(1908)。动画可以包括在每个单独的3d对象从第一可视化组件移动到第二可视化组件时使用物理引擎为每个单独的3d对象生成运动路径。在一些实施例中,当3d对象进入第二可视化组件时,它们可以在视觉上变换成合成对象,诸如表示多个数据点的汇总体积对象。当从表示多个数据点的3d对象移动时,也可以调用相反的处理,并且当这些对象在可视化组件之间移动时,这些对象可以被分解成各个3d对象(例如,各个球体)。动画、过渡命令以及可视化组件的3d表示的生成可以由故事数据结构控制,该故事数据结构包括执行这些操作中的每个操作,诸如实例化可视化组件、绑定/解除绑定数据集、生成动画等等。
136.该方法还可以包括将一个或多个数据集绑定到第二可视化组件(1910)。这种绑定可以按照上述故事数据结构的指示进行。可以通过第二可视化组件的参数化输入来进行这种绑定。在一些实施例中,这种绑定可以使得第二可视化组件对一个或多个数据集执行附加的计算、变换和/或操作。例如,第二可视化组件可以将各个数据点的属性值汇总在一起以形成可以由第二可视化组件中的3d对象表示的新的数据点。
137.应当认识到的是,图17中所示的具体步骤提供了根据各种实施例的在一个或多个可视化组件之间提供动画的特定方法。根据替代实施例,也可以执行其它步骤序列。例如,本发明的替代实施例可以以不同的顺序执行上面概述的步骤。而且,图17中所示的各个步骤可以包括多个子步骤,这些子步骤可以按照适合于各个步骤的各种顺序来执行。此外,取决于特定的应用,可以添加或移除附加步骤。本领域普通技术人员将认识到许多变型、修改和替代。
138.本文描述的每个方法可以由计算机系统实现。这些方法的每个步骤可以由计算机系统自动执行,和/或可以设有涉及用户的输入/输出。例如,用户可以为方法中的每个步骤提供输入,并且这些输入中的每一个可以响应于请求这种输入的具体输出,其中输出是由计算机系统生成的。可以响应于对应的请求输出而接收每个输入。此外,输入可以从用户接收、作为数据流从另一个计算机系统接收、从存储器位置检索、通过网络检索、从web服务请求等。同样,可以将输出提供给用户、作为数据流提供给另一个计算机系统、保存在存储器中、通过网络发送、提供给web服务等。简而言之,本文描述的方法的每个步骤都可以由计算机系统执行,并且可以涉及与计算机系统之间可能涉及或可能不涉及用户的任何数量的输入、输出和/或请求。可以说不涉及用户的那些步骤是由计算机系统自动执行的,而无需人工干预。因此,根据本公开将理解的是,本文描述的每种方法的每个步骤可以被更改为包括去往和来自用户的输入和输出,或者可以由计算机系统自动地完成而无需人为干预,其中
任何确定都是由处理器做出的。此外,本文描述的每个方法的一些实施例可以被实现为存储在有形的,非暂态的存储介质上以形成有形的软件产品的指令集。
139.图20描绘了用于实现实施例之一的分布式系统2000的简化图。在所示的实施例中,分布式系统2000包括一个或多个客户端计算设备2002、2004、2006和2008,每个客户端计算设备通过一个或多个网络2010执行和操作客户端应用,诸如web浏览器、专有客户端(例如,oracle forms)等。服务器2012可以经由网络2010与远程客户端计算设备2002、2004、2006和2008通信地耦合。
140.在各种实施例中,服务器2012可以适于运行由系统的一个或多个组件提供的一个或多个服务或软件应用。在一些实施例中,这些服务可以作为基于web的服务或云服务或者在软件即服务(saas)模型下被供应给客户端计算设备2002、2004、2006和/或2008的用户。操作客户端计算设备2002、2004、2006和/或2008的用户进而可以利用一个或多个客户端应用来与服务器2012交互以利用由这些组件提供的服务。
141.在图中描绘的配置中,系统2000的软件组件2018、2020和2022被示出为在服务器2012上实现。在其它实施例中,系统2000的一个或多个组件和/或由这些组件提供的服务也可以由客户端计算设备2002、2004、2006和/或2008中的一个或多个来实现。然后,操作客户端计算设备的用户可以利用一个或多个客户端应用来使用由这些组件提供的服务。这些组件可以用硬件、固件、软件或其组合来实现。应该认识到的是,各种不同的系统配置是可能的,这些配置可能与分布式系统2000不同。图中所示的实施例因此是用于实现实施例系统的分布式系统的一个示例,而不旨在是限制性的。
142.客户端计算设备2002、2004、2006和/或2008可以是便携式手持设备(例如,蜂窝电话、计算平板电脑、个人数字助理(pda))或可穿戴设备(例如,google头戴式显示器),运行诸如microsoft windows和/或各种移动操作系统(诸如ios、windows phone、android、blackberry 10、palm os等)的软件,并且启用互联网、电子邮件、短消息服务(sms)、或其它通信协议。客户端计算设备可以是通用个人计算机,作为示例,包括运行各种版本的microsoftapple和/或linux操作系统的个人计算机和/或膝上型计算机。客户端计算设备可以是运行各种可商业获得的或类unix操作系统(包括但不限于各种gnu/linux操作系统,诸如例如google chrome os)中的任何操作系统的工作站计算机。替代地或附加地,客户端计算设备2002、2004、2006和2008可以是能够通过(一个或多个)网络2010进行通信的任何其它电子设备,诸如瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有手势输入设备的microsoft xbox游戏控制台)和/或个人消息传送设备。
143.虽然示出了具有四个客户端计算设备的示例性分布式系统2000,但是可以支持任何数量的客户端计算设备。其它设备(诸如具有传感器等的设备等)可以与服务器2012交互。
144.分布式系统2000中的(一个或多个)网络2010可以是本领域技术人员熟悉的、可以使用各种可商业获得的协议中的任何协议来支持数据通信的任何类型的网络,其中协议包括但不限于tcp/ip(传输控制协议/互联网协议)、sna(系统网络体系架构)、ipx(互联网分
组交换)、appletalk等。仅仅作为示例,(一个或多个)网络2010可以是局域网(lan),诸如基于以太网、令牌环等的lan。(一个或多个)网络2010可以是广域网和互联网。它可以包括虚拟网络,包括但不限于虚拟专用网络(vpn)、内联网、外联网、公共交换电话网(pstn)、红外网络、无线网络(例如,依据电气和电子协会(ieee)802.11协议套件、和/或任何其它无线协议的任何协议而操作的网络);和/或这些网络和/或其它网络的任何组合。
145.服务器2012可以由一个或多个通用计算机、专用服务器计算机(作为示例,包括pc(个人计算机)服务器、服务器、中档服务器、大型计算机、机架安装的服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合组成。在各种实施例中,服务器2012可以适于运行在前述公开中描述的一个或多个服务或软件应用。例如,服务器2012可以与用于执行以上根据本公开的实施例描述的处理的服务器对应。
146.服务器2012可以运行包括以上讨论的任何操作系统中的操作系统,以及任何可商业获得的服务器操作系统。服务器2012还可以运行各种附加的服务器应用和/或中间层应用中的任何一种,包括http(超文本传输协议)服务器、ftp(文件传输协议)服务器、cgi(公共网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从oracle、microsoft、sybase、ibm(国际商业机器)等商业获得的那些数据库服务器。
147.在一些实施方式中,服务器2012可以包括一个或多个应用,以分析和整合从客户端计算设备2002、2004、2006和2008的用户接收到的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于,馈送、更新或者从一个或多个第三方信息源和连续数据流接收到的实时更新,实时更新可以包括与传感器数据应用、金融价格收报机(financial ticker)、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车交通监视等相关的实时事件。服务器2012还可以包括一个或多个应用,以经由客户端计算设备2002、2004、2006和2008的一个或多个显示设备来显示数据馈送和/或实时事件。
148.分布式系统2000还可以包括一个或多个数据库2014和2016。数据库2014和2016可以驻留在各种位置。作为示例,数据库2014和2016中的一个或多个可以驻留在服务器2012本地(和/或驻留在服务器2012中)的非暂态存储介质上。可替代地,数据库2014和2016可以远离服务器2012并且经由基于网络的连接或专用的连接与服务器2012进行通信。在一组示例中,数据库2014和2016可以驻留在存储区域网络(san)中。类似地,用于执行服务器2012所具有的功能的任何必要文件都可以适当地本地存储在服务器2012上和/或远程存储。在实施例的一个集合中,数据库2014和2016可以包括适于响应sql格式的命令而存储、更新和检索数据的关系数据库,诸如由oracle提供的数据库。
149.图21是根据一些实施例的可以将由实施例系统的一个或多个组件提供的服务作为云服务提供的系统环境2100的一个或多个组件的简化框图。在所示的实施例中,系统环境2100包括可以由用户使用以与提供云服务的云基础设施系统2102交互的一个或多个客户端计算设备2104、2106和2108。客户端计算设备可以被配置为操作客户端应用,诸如web浏览器、专有客户端应用(例如,oracle forms)或某种其它应用,这些应用可以由客户端计算设备的用户用来与云基础设施系统2102交互以使用由云基础设施系统2102提供的服务。
150.应当认识到的是,图中描绘的云基础设施系统2102可以具有与所描绘的组件不同
的其它组件。另外,图中所示的实施例仅仅是可以结合本发明的实施例的云基础设施系统的一个示例。在一些其它实施例中,云基础设施系统2102可以具有比图中所示更多或更少的组件,可以组合两个或更多个组件,或者可以具有组件的不同配置或布置。
151.客户端计算设备2104、2106和2108可以是与上面针对2002、2004、2006和2008所描述的设备类似的设备。
152.虽然示例性系统环境2100被示出具有三个客户端计算设备,但是任何数量的客户端计算设备可以被支持。其它设备(诸如具有传感器的设备等)可以与云基础设施系统2102交互。
153.(一个或多个)网络2110可以促进客户端2104、2106和2108与云基础设施系统2102之间的数据的通信和交换。每个网络可以是本领域技术人员所熟悉的可以使用各种商业上可获得的协议(包括上面针对(一个或多个)网络2010所描述的那些协议)中的任何一种支持数据通信的任何类型的网络。
154.云基础设施系统2102可以包括一个或多个计算机和/或服务器,其可以包括上面针对服务器2012所描述的那些计算机和/或服务器。
155.在某些实施例中,由云基础设施系统提供的服务可以包括按需对云基础设施系统的用户可用的许多服务,诸如在线数据存储和备份解决方案、基于web的电子邮件服务、被托管的办公室(office)套件和文档协作服务、数据库处理、受管理的技术支持服务等。由云基础设施系统提供的服务可以动态扩展以满足云基础设施系统的用户的需要。由云基础设施系统提供的服务的具体实例化在本文中被称为“服务实例”。一般而言,从云服务提供商的系统经由通信网络(诸如互联网)对用户可用的任何服务被称为“云服务”。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自己的室内服务器和系统不同。例如,云服务提供商的系统可以托管应用,并且用户可以经由诸如互联网的通信网络按需订购和使用应用。
156.在一些示例中,计算机网络云基础设施中的服务可以包括对存储装置、被托管的数据库、被托管的web服务器、软件应用或由云供应商向用户提供的其它服务的受保护的计算机网络访问,或者如本领域中另外已知的。例如,服务可以包括通过互联网对云上的远程存储装置进行密码保护的访问。作为另一个示例,服务可以包括基于web服务的被托管的关系数据库和脚本语言中间件引擎,以供联网的开发人员私有使用。作为另一个示例,服务可以包括对在云供应商的网站上托管的电子邮件软件应用的访问。
157.在某些实施例中,云基础设施系统2102可以包括以自助服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式递送给客户的应用、中间件和数据库服务供应的套件。这种云基础设施系统的示例是由本受让人提供的oracle公共云。
158.在各种实施例中,云基础设施系统2102可以适于自动供给、管理和跟踪客户对云基础设施系统2102供应的服务的订阅。云基础设施系统2102可以经由不同的部署模型来提供云服务。例如,可以依据公共云模型提供服务,其中云基础设施系统2102被销售云服务的组织拥有(例如,被oracle拥有),并且服务对一般公众或不同行业的企业可用。作为另一个示例,可以依据私有云模型来提供服务,其中云基础设施系统2102仅针对单个组织操作,并且可以为该组织内的一个或多个实体提供服务。还可以依据社区云模型来提供云服务,其中云基础设施系统2102和由云基础设施系统2102提供的服务由相关社区中的若干组织共
享。云服务还可以依据混合云模型被提供,该混合云模型是两个或更多个不同模型的组合。
159.在一些实施例中,由云基础设施系统2102提供的服务可以包括在软件即服务(saas)类别、平台即服务(paas)类别、基础设施即服务(iaas)类别或包括混合服务的其它服务类别下提供的一个或多个服务。客户经由订阅订单可以订购由云基础设施系统2102提供的一个或多个服务。云基础设施系统2102然后执行处理以提供客户的订阅订单中的服务。
160.在一些实施例中,由云基础设施系统2102提供的服务可以包括但不限于应用服务、平台服务和基础设施服务。在一些示例中,应用服务可以由云基础设施系统经由saas平台提供。saas平台可以被配置为提供落入saas类别的云服务。例如,saas平台可以提供在集成开发和部署平台上构建和递送按需应用套件的能力。saas平台可以管理和控制用于提供saas服务的底层软件和基础设施。通过利用由saas平台提供的服务,客户可以利用在云基础设施系统上执行的应用。客户可以获取应用服务,而无需客户购买单独许可证和支持。可以提供各种不同的saas服务。示例包括但不限于为大型组织提供销售绩效管理、企业集成和商务灵活性的解决方案的服务。
161.在一些实施例中,平台服务可以由云基础设施系统经由paas平台提供。paas平台可以被配置为提供落入paas类别的云服务。平台服务的示例可以包括但不限于使组织(诸如oracle)能够在共享的公共体系架构上整合现有应用以及充分利用平台提供的共享服务来构建新应用的能力的服务。paas平台可以管理和控制用于提供paas服务的底层软件和基础设施。客户可以获取由云基础架构系统提供的paas服务,而无需客户购买单独的许可证和支持。平台服务的示例包括但不限于oracle java云服务(jcs)、oracle数据库云服务(dbcs)等。
162.通过利用由paas平台提供的服务,客户可以采用由云基础设施系统支持的编程语言和工具,并且还控制所部署的服务。在一些实施例中,由云基础设施系统提供的平台服务可以包括数据库云服务、中间件云服务(例如,oracle融合中间件服务)和java云服务。在一个实施例中,数据库云服务可以支持共享服务部署模型,该模型使得组织能够汇集数据库资源并且以数据库云的形式向客户供应数据库即服务。中间件云服务可以为客户提供开发和部署各种商务应用的平台,并且java云服务可以为客户提供在云基础设施系统中部署java应用的平台。
163.各种不同的基础设施服务可以由云基础设施系统中的iaas平台提供。基础设施服务促进底层计算资源(诸如存储装置、网络和其它基础计算资源)的管理和控制,以供客户利用由saas平台和paas平台提供的服务。
164.在某些实施例中,云基础设施系统2102还可以包括基础设施资源2130,用于向云基础设施系统的客户提供用于提供各种服务的资源。在一个实施例中,基础设施资源2130可以包括预先集成和优化的硬件(诸如服务器、存储装置和联网资源)的组合,以执行由paas平台和saas平台提供的服务。
165.在一些实施例中,云基础设施系统2102中的资源可以由多个用户共享并且根据需要动态重新分配。此外,可以将资源分配给在不同时区的用户。例如,云基础设施系统2130可以使在第一时区中的第一组用户能够在指定的小时数内利用云基础设施系统的资源,并且然后使相同资源能够被重新分配给位于不同时区的另一组用户,从而使资源的利用率最
大化。
166.在某些实施例中,可以提供由云基础设施系统2102的不同组件或模块以及由云基础设施系统2102提供的服务共享的多个内部共享服务2132。这些内部共享服务可以包括但不限于:安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
167.在某些实施例中,云基础设施系统2102可以提供云基础设施系统中的云服务(例如,saas、paas和iaas服务)的综合管理。在一个实施例中,云管理功能可以包括用于供给、管理和跟踪由云基础设施系统2102接收到的客户订阅等的能力。
168.在一个实施例中,如图中所描绘的,云管理功能可以由一个或多个模块提供,诸如订单管理模块2120、订单编排模块2122、订单供给模块2124、订单管理和监视模块2126,以及身份管理模块2128。这些模块可以包括一个或多个计算机和/或服务器或者使用一个或多个计算机和/或服务器来提供,这些计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器场、服务器集群或任何其它适当的布置/或组合。
169.在示例性操作2134中,使用客户端设备(诸如客户端设备2104、2106或2108)的客户可以通过请求由云基础设施系统2102提供的一个或多个服务并且下订阅由云基础设施系统2102供应的一个或多个服务来的订单来与云基础设施系统2102交互。在某些示例中,客户可以访问云用户界面(ui)、云ui 2112、云ui 2114和/或云ui2116并经由这些ui下订阅订单。云基础设施系统2102响应于客户下订单而接收到的订单信息可以包括识别客户以及客户想要订阅的云基础设施系统2102供应的一个或多个服务的信息。
170.在客户下订单之后,经由云ui,2112、2114和/或2116,接收订单信息。
171.在操作2136处,订单存储在订单数据库2118中。订单数据库2118可以是由云基础设施系统2118操作和与其它系统元件一起操作的若干数据库之一。
172.在操作2138处,订单信息被转发到订单管理模块2120。在一些情况下,订单管理模块2120可以被配置为执行与订单相关的计费和记账功能,诸如验证订单,并且在验证后,预订订单。
173.在操作2140处,将关于订单的信息传送到订单编排模块2122。订单编排模块2122可以利用订单信息为客户下的订单编排服务和资源的供给。在一些情况下,订单编排模块2122可以使用订单供给模块2124的服务来编排资源的供给以支持订阅的服务。
174.在某些实施例中,订单编排模块2122使得能够管理与每个订单相关联的业务流程并应用业务逻辑来确定订单是否应该进行到供给。在操作2142处,在接收到新订阅的订单时,订单编排模块2122向订单供给模块2124发送请求以分配资源并配置履行订阅订单所需的那些资源。订单供给模块2124使得能够为客户订购的服务分配资源。订单供给模块2124提供由云基础设施系统2100提供的云服务和用于供给用于提供所请求的服务的资源的物理实现层之间的抽象层。因此,订单编排模块2122可以与实现细节隔离,诸如服务和资源是否实际上即时供给或预先供给并仅在请求后才分配/指派。
175.在操作2144处,一旦供给了服务和资源,就可以通过云基础设施系统2102的订单供给模块2124向客户端设备2104、2106和/或2108上的客户发送所提供服务的通知。
176.在操作2146处,订单管理和监视模块2126可以管理和跟踪客户的订阅订单。在一
些情况下,订单管理和监视模块2126可以被配置为收集订阅订单中的服务的使用统计,诸如,所使用的存储量、传输的数据量、用户的数量,以及系统运行时间和系统停机时间量。
177.在某些实施例中,云基础设施系统2100可以包括身份管理模块2128。身份管理模块2128可以被配置为提供身份服务,诸如云基础设施系统2100中的访问管理和授权服务。在一些实施例中,身份管理模块2128可以控制关于希望利用由云基础设施系统2102提供的服务的客户的信息。这样的信息可以包括认证这些客户的身份的信息以及描述这些客户被授权相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段等)执行哪些动作的信息。身份管理模块2128还可以包括对关于每个客户的描述性信息以及关于如何和由谁来访问和修改这些描述性信息的管理。
178.图22图示了其中可以实现各种实施例的示例性计算机系统2200。系统2200可以用于实现上述计算机系统中的任何一个。如图所示,计算机系统2200包括经由总线子系统2202与多个外围子系统通信的处理单元2204。这些外围子系统可以包括处理加速单元2206、i/o子系统2208、存储子系统2218和通信子系统2224。存储子系统2218包括有形计算机可读存储介质2222和系统存储器2210。
179.总线子系统2202提供用于让计算机系统2200的各种组件和子系统按意图彼此进行通信的机制。虽然总线子系统2202被示意性地示出为单条总线,但是总线子系统的替代实施例可以利用多条总线。总线子系统2202可以是若干种类型的总线结构中的任何类型,这些总线类型包括存储器总线或存储器控制器、外围总线、以及使用各种总线体系架构中的任何体系架构的局部总线。例如,这种体系架构可以包括工业标准体系架构(isa)总线、微通道体系架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)局部总线和外围组件互连(pci)总线,这些总线可以被实现为按ieee p1386.1标准制造的mezzanine总线。
180.可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元2204控制计算机系统2200的操作。一个或多个处理器可以被包括在处理单元2204中。这些处理器可以包括单核处理器或多核处理器。在某些实施例中,处理单元2204可以被实现为一个或多个独立的处理单元2232和/或2234,其中在每个处理单元中包括单核处理器或多核处理器。在其它实施例中,处理单元2204也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处理单元。
181.在各种实施例中,处理单元2204可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定的时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或多个)处理器2204中和/或存储子系统2218中。通过适当的编程,(一个或多个)处理器2204可以提供上述各种功能。计算机系统2200可以附加地包括处理加速单元2206,该处理加速单元2206可以包括数字信号处理器(dsp)、专用处理器等。
182.i/o子系统2208可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球的指向设备、结合到显示器中的触摸板或触摸屏、滚动轮、点击轮、拨盘、按钮、开关、小键盘、具有语音命令辨识系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括,例如,运动感测和/或手势辨识设备,诸如microsoft运动传感器,该运动传感器使得用户能够通过使用手势和语音命令的自然用户接口来控制诸如microsoft游戏控制器的输入设备并与输入设
备交互。用户接口输入设备也可以包括眼睛姿势辨识设备,诸如从用户检测眼睛活动(例如,当拍摄照片和/或进行菜单选择时的“眨眼”)并且将眼睛姿势变换为进入输入设备(例如,google)中的输入的google眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音辨识系统(例如,导航器)交互的语音辨识感测设备。
183.用户接口输入设备也可以包括但不限于:三维(3d)鼠标、操纵杆或指向棒(pointing stick)、游戏面板和绘图板,以及音频/视觉设备,诸如扬声器、数码相机、数码摄录机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3d扫描仪、3d打印机、激光测距仪和视线跟踪设备。此外,用户接口输入设备可以包括,例如,医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层显像、医疗超声设备。用户接口输入设备也可以包括,例如,诸如midi键盘、数字乐器等的音频输入设备。
184.用户接口输出设备可以包括显示子系统、指示灯,或者诸如音频输出设备的非可视显示器等。显示子系统可以是阴极射线管(crt)、诸如使用液晶显示器(lcd)或等离子显示器的平板设备、投影设备、触摸屏等。一般而言,术语“输出设备”的使用旨在包括用于从计算机系统2200向用户或其它计算机输出信息的所有可能类型的设备和机制。例如,用户接口输出设备可以包括但不限于:可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备以及调制解调器。
185.计算机系统2200可以包括包含软件元件的被示出为当前位于系统存储器2210内的存储子系统2218。系统存储器2210可以存储可加载并且可在处理单元2204上执行的程序指令,以及在这些程序的执行期间所生成的数据。
186.取决于计算机系统2200的配置和类型,系统存储器2210可以是易失性的(诸如随机存取存储器(ram))和/或非易失性的(诸如只读存储器(rom)、闪存存储器等)。ram通常包含可被处理单元2204立即访问和/或目前正在被处理单元2204操作和执行的数据和/或程序模块。在一些实施方式中,系统存储器2210可以包括多种不同类型的存储器,例如静态随机存取存储器(sram)或动态随机存取存储器(dram)。在一些实施方式中,诸如在启动期间,包含有助于在计算机系统2200内的元件之间传送信息的基本例程的基本输入/输出系统(bios)通常可以被存储在rom中。作为示例但不是限制,系统存储器2210也示出了可以包括客户端应用、web浏览器、中间层应用、关系数据库管理系统(rdbms)等的应用程序2212,程序数据2214、以及操作系统2216。作为示例,操作系统2216可以包括各种版本的microsoftapple和/或linux操作系统、各种可商业获得的或类unix操作系统(包括但不限于各种gnu/linux操作系统、googleos等)和/或诸如ios、phone、os、10os和os操作系统的移动操作系统。
187.存储子系统2218也可以提供用于存储提供一些实施例的功能的基本编程和数据结构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模块、指令)可以被存储在存储子系统2218中。这些软件模块或指令可以被处理单元2204执行。存储子系统2218也可以提供用于存储根据本发明被使用的数据的储存库。
188.存储子系统2200也可以包括可被进一步连接到计算机可读存储介质2222的计算机可读存储介质读取器2220。与系统存储器2210一起并且可选地与系统存储器2210相结合,计算机可读存储介质2222可以全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可读信息的远程、本地、固定和/或可移动的存储设备加存储介质。
189.包含代码或代码的一部分的计算机可读存储介质2222也可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于:以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。这可以包括有形的计算机可读存储介质,诸如ram、rom、电可擦除可编程rom(eeprom)、闪存存储器或其它存储器技术、cd

rom、数字多功能盘(dvd)或其它光学储存器、磁带盒、磁带、磁盘储存装置或其它磁存储设备、或者其它有形计算机可读介质。这也可以包括非有形的计算机可读介质,诸如数据信号、数据传输,或者可以用于发送期望信息并且可以被计算系统2200访问的任何其它介质。
190.作为示例,计算机可读存储介质2222可以包括从不可移动的非易失性磁介质读取或写入到不可移动的非易失性磁介质的硬盘驱动器、从可移动的非易失性磁盘读取或写入到可移动的非易失性磁盘的磁盘驱动器、以及从可移动的非易失性光盘(诸如cd rom、dvd和(蓝光)盘或其它光学介质)读取或写入到可移动的非易失性光盘的光盘驱动器。计算机可读存储介质2222可以包括但不限于:驱动器、闪存卡、通用串行总线(usb)闪存驱动器、安全数字(sd)卡、dvd盘、数字音频带等。计算机可读存储介质2222也可以包括:基于非易失性存储器的固态驱动器(ssd)(诸如基于闪存存储器的ssd、企业闪存驱动器、固态rom等)、基于易失性存储器的ssd(诸如固态ram、动态ram、静态ram,基于dram的ssd、磁阻ram(mram)ssd)、以及使用基于dram和闪存存储器的ssd的组合的混合ssd。盘驱动器及其关联的计算机可读介质可以为计算机系统2200提供计算机可读指令、数据结构、程序模块以及其它数据的非易失性存储。
191.通信子系统2224提供到其它计算机系统和网络的接口。通信子系统2224用作用于从其它系统接收数据和从计算机系统2200向其它系统发送数据的接口。例如,通信子系统2224可以使计算机系统2200能够经由互联网连接到一个或多个设备。在一些实施例中,通信子系统2224可以包括用于访问无线语音和/或数据网络的射频(rf)收发器组件(例如,使用蜂窝电话技术、先进数据网络技术,诸如3g、4g或edge(用于全球演进的增强型数据速率)、wifi(ieee 802.11系列标准)或其它移动通信技术、或者其任何组合)、全球定位系统(gps)接收器组件和/或其它组件。在一些实施例中,作为无线接口的附加或者替代,通信子系统2224可以提供有线网络连接(例如,以太网)。
192.在一些实施例中,通信子系统2224也可以代表可以使用计算机系统2200的一个或多个用户来接收以结构化和/或非结构化数据馈送2226、事件流2228、事件更新2230等形式的输入通信。
193.作为示例,通信子系统2224可以被配置为实时地从社交网络和/或其它通信服务的用户接收数据馈送2226,诸如馈送、更新、诸如丰富站点摘要(rss)馈送的web馈送和/或来自一个或多个第三方信息源的实时更新。
194.此外,通信子系统2224也可以被配置为接收以连续数据流形式的数据,该数据可
以包括本质上可以是连续的或无界的没有明确终止的实时事件的事件流2228和/或事件更新2230。生成连续数据的应用的示例可以包括,例如,传感器数据应用、金融价格收报机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视等。
195.通信子系统2224也可以被配置为向一个或多个数据库输出结构化和/或非结构化的数据馈送2226、事件流2228、事件更新2230等,这一个或多个数据库可以与耦合到计算机系统2200的一个或多个流式数据源计算机进行通信。
196.计算机系统2200可以是各种类型中的一种类型,包括手持便携式设备(例如,蜂窝电话、计算平板电脑、pda)、可穿戴设备(例如,google头戴式显示器)、pc、工作站、大型机、信息站(kiosk)、服务器机架、或任何其它数据处理系统。
197.由于计算机和网络的不断变化的本质,在图中绘出的计算机系统2200的描述仅旨在作为具体的示例。具有比图中绘出的系统更多或更少组件的许多其它配置是可能的。例如,定制的硬件也可以被使用和/或特定的元素可以在硬件、固件、软件(包括小程序应用(applets))或其组合中实现。另外,可以采用到诸如网络输入/输出设备的其它计算设备的连接。基于本文提供的公开内容和教导,本领域普通技术人员将认识到实现各种实施例的其它方式和/或方法。
198.在前面的描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明的各种实施例的透彻理解。但是,对于本领域技术人员将显而易见的是,可以在没有这些具体细节中的一些的情况下实践本发明的实施例。在其它情况下,以框图形式示出了众所周知的结构和设备。
199.前面的描述仅提供示例性实施例,并且无意于限制本公开的范围、适用性或配置。更确切地说,示例性实施例的前述描述将向本领域技术人员提供用于实现示例性实施例的使能描述。应当理解的是,在不脱离所附权利要求书所阐述的本发明的精神和范围的情况下,可以对元件的功能和布置进行各种改变。
200.在前面的描述中给出了具体细节以提供对实施例的透彻理解。但是,本领域普通技术人员将理解的是,可以在没有这些具体细节的情况下实践实施例。例如,电路、系统、网络、处理和其它组件可能已经被示为框图形式的组件,以便不以不必要的细节使实施例晦涩难懂。在其它情况下,可以已经示出了众所周知的电路、处理、算法、结构和技术而没有不必要的细节,以避免使实施例晦涩难懂。
201.而且,要注意的是,各个实施例可以已经被描述为被描绘为流程图、流图、数据流图、结构图或框图的处理。虽然流程图可以已经将操作描述为顺序处理,但是许多操作可以并行或并发地执行。此外,可以重新布置操作的次序。处理在器操作完成时终止,但可以具有图中未包括的附加步骤。处理可以与方法、函数、过程、子例程、子程序等对应。当处理与函数对应时,其终止可以与该函数返回到调用函数或主函数对应。
202.术语“计算机可读介质”包括但不限于便携式或固定存储设备、光学存储设备、无线信道以及能够存储、包含或携带(一个或多个)指令和/或数据的各种其它介质。代码段或机器可执行指令可以表示过程、功能、子程序、程序、例程、子例程、模块、软件包、类或指令、数据结构或程序语句的任意组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储器内容而耦合到另一个代码段或硬件电路。信息、自变量、参数、数据等可以经由任何合适的方式传递、转发或传输,包括存储器共享、消息传递、令牌传递、网络传输等。
203.此外,实施例可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实现。当以软件、固件、中间件或微代码实现时,可以将执行必要任务的程序代码或代码段存储在机器可读介质中。(一个或多个)处理器可以执行必要的任务。
204.在前述说明书中,参考本发明的各方面的具体实施例对本发明的各方面进行了描述,但是本领域技术人员将认识到的是,本发明不限于此。上述发明的各个特征和方面可以被单独使用或联合使用。另外,在不脱离本说明书的更广泛精神和范围的情况下,实施例可以在除本文所述的那些环境和应用之外的任何数目的环境和应用中被使用。相应地,本说明书和附图应当被认为是说明性的而不是限制性的。
205.此外,出于说明的目的,以特定顺序描述了方法。应该认识到的是,在替代示例中,可以以与所描述的顺序不同的顺序执行方法。还应该认识到的是,上述方法可以由硬件组件执行,或者可以以机器可执行指令的序列被实施,机器可执行指令可以用于使机器(诸如编程有指令的通用或专用处理器或逻辑电路)执行方法。这些机器可执行指令可以被存储在一个或多个机器可读介质上,诸如cd

rom或其它类型的光盘、软盘、rom、ram、eprom、eeprom、磁卡或光卡、闪存、或适合于存储电子指令的其它类型的机器可读介质。替代地,可以通过硬件和软件的组合来执行方法。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1