CN112102463B - 通过位置虚拟化技术操作3d应用的系统和方法 - Google Patents

通过位置虚拟化技术操作3d应用的系统和方法 Download PDF

Info

Publication number
CN112102463B
CN112102463B CN202010558311.5A CN202010558311A CN112102463B CN 112102463 B CN112102463 B CN 112102463B CN 202010558311 A CN202010558311 A CN 202010558311A CN 112102463 B CN112102463 B CN 112102463B
Authority
CN
China
Prior art keywords
virtual machine
virtual
data
application
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010558311.5A
Other languages
English (en)
Other versions
CN112102463A (zh
Inventor
杰瓦特·耶尔利
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Karan Holdings Ltd
Original Assignee
Karan Holdings Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Karan Holdings Ltd filed Critical Karan Holdings Ltd
Publication of CN112102463A publication Critical patent/CN112102463A/zh
Application granted granted Critical
Publication of CN112102463B publication Critical patent/CN112102463B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/51Server architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Processing Or Creating Images (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种通过位置虚拟化技术操作应用的系统和方法。该系统包括服务器,该服务器包括至少一个处理器和存储器,该存储器存储持久性虚拟世界系统和至少一个应用,该持久性虚拟世界系统包括数据结构,在该数据结构中表示至少一个对应的现实对象的至少一个虚拟副本,并且至少一个应用在虚拟地位于持久性虚拟世界系统的位置中的至少一个虚拟机上运行和托管。虚拟机的供应由存储在服务器的存储器中的虚拟机管理系统来管理。经由网络连接到所述服务器的一个或多个用户设备被配置为访问和执行在所述至少一个服务器的虚拟机上托管的应用,并基于应用要求接收其资源。

Description

通过位置虚拟化技术操作3D应用的系统和方法
相关申请的交叉引用
本申请要求2019年6月18日提交的临时申请号62/863134的权益,出于所有目的,该临时申请的全部公开内容通过引用合并于此。
技术领域
本发明大体上涉及计算机系统。更具体地,本公开涉及操作基于位置的应用的系统和方法。
背景技术
在云中开发,部署和运行基于位置的应用时的一个挑战是执行有效的资源分配。部分地,这是通过虚拟化技术来实现的,例如通过将应用托管在虚拟机(VM)中。VM包括封装应用并提供通常由物理机器提供的所有操作系统和硬件要求的软件。VM使得能够动态分配作为物理机器上可用的计算资源的一部分的计算资源,从而使得多个应用能够在同一物理机器上运行。VM可以使用一个或多个组合的物理计算机来形成用于已优化资源分配的计算资源池。对于每个应用,基于需求,从资源池中提取适当量的资源。因此,可以形成一个VM以适应每个应用以及一个适当的操作系统,从而实现应用与不同操作系统的互操作性以及灵活但不必优化的资源使用。
在通常对VM进行托管的数据中心中,它们通常由称为管理程序(hypervisor)的虚拟机监视器(VMM)来监视和管理。管理程序通常监视和管理定位细节(通常是VM正在运行的主机的IP地址),系统利用参数和计算任务环境。根据这些参数,VMM然后可以通过向VM提供适当的资源,根据使用来激活或去激活VM,并且如果必要的话将它们迁移到其他主机,来优化工作负荷。
随着数字现实技术的进步,更多基于位置的3D应用许多以增强和虚拟现实的形式,以及智能城市和物联网(IoT)的实现,虚拟化技术的使用随着它们的资源需求而增加。因此,当前的VM供应方法不满足新的资源要求,从而需要通过虚拟化技术改进的资源分配解决方案。
发明内容
提供该概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不打算确定权利要求所要求保护的主题的关键特征,也不打算被用来帮助确定权利要求所要求保护的主题的范围。
背景技术中描述的缺点或其他技术问题通过本公开的系统和方法来解决。在一些实施例中,虚拟机(VM)除了通过在虚拟环境中包含代码来保护应用之外,还通过允许物理计算机从公共资源池,通常从云服务器供应资源(例如,计算,网络,存储等)来实现与各种操作系统的互操作性并增强资源利用。VM在包括在云到边缘基础设施中的服务器或其它计算设备上被物理地托管,所述云到边缘基础设施包括使得能够根据当前物理主机的资源容量将VM迁移到不同的物理位置。在一些实施例中,VM位于裸机服务器上,该裸机服务器是专用于单个承租人(例如,租用该物理服务器的人或实体)的物理服务器,但是该裸机服务器可以被承租人授权的多个用户使用。
管理程序,也称为虚拟机监视器(VMM),是创建和运行VM的计算机软件,固件或硬件。管理程序通常监视和管理定位细节(例如,VM正在其中运行的主机的IP地址),系统利用参数和计算任务环境。本公开的管理程序还被配置为获得链接到真实位置的VM的虚拟位置,该虚拟位置可以向VM管理系统提供可以在每个VM和整个系统的资源优化中使用的进一步的数据。
可以在本公开中采用的云到边缘基础设施可以显示采用公共或专用云,雾服务器以及边缘设备和系统(例如企业系统,移动平台和用户设备)的分布式计算能力,所有这些都可以通过网络连接。这样,包括物理服务器和网络设备的资源能够实现共享存储和计算,所述共享存储和计算可以根据诸如用户到资源和网络的距离以及来自用户的计算需求等因素来动态分配。
在实施例中,一种通过本发明的位置虚拟化技术来操作应用(例如3D应用)的系统,包括一个或多个服务器,所述服务器包括至少一个处理器和存储器,一个或多个服务器存储持久性虚拟世界系统和至少一个应用,所述持久性虚拟世界系统包括数据结构,在所述数据结构中表示至少一个对应的现实对象的至少一个虚拟副本,并且至少一个应用在虚拟地位于所述持久性虚拟世界系统的位置中的至少一个虚拟机上运行和托管。所述一个或多个服务器包括硬件基础设施,所述硬件基础设施为所述至少一个虚拟机提供基于所述至少一个应用的要求而分配的资源。虚拟机的供应由存储在服务器的存储器中的虚拟机管理系统基于(例如考虑到用户设备到至少一个虚拟机的距离的)距离优先化参数来管理。在实施例中,所述系统还包括经由网络连接到所述服务器的一个或多个用户设备,所述用户设备被配置为访问和执行在所述至少一个服务器的虚拟机上托管的应用,并基于应用要求接收其资源。
根据一个实施例,VM管理系统包括全局VM管理器,其通过与VM中的至少一个相接口的管理程序来执行VM资源需求评估和供应。所述管理程序还可以包括本地VM管理器,所述本地VM管理器连接到所述全局VM管理器并且被配置为向所述全局VM管理器提供对所述VM中的每一个VM的资源评估。本地VM管理器包括测量VM资源利用的监视组件。在实施例中,本地VM管理器还包括被配置为确定每个VM所需的资源分配的反馈控制器,以及从反馈控制器获取资源分配请求并为每个VM设置资源共享的仲裁器。
在一些实施例中,全局VM管理器是3D引擎的一部分,所述3D引擎使得能够开发,测试和发布链接到现实世界中的位置的虚拟世界中的VM托管的3D应用。因此,应用开发者可以找到在虚拟环境中开发3D应用的适当解决方案,该解决方案可以保护应用代码免受潜在的崩溃或恶意软件,实现应用与不同操作系统的互操作性,增强的资源供应以及在虚拟世界中精确定位应用以实现基于位置的内容。
根据一个实施例,VM管理系统还基于数据相关性过滤器来管理对VM的资源供应,所述数据相关性过滤器考虑了情境数据,虚拟元素的3D数据结构或其他技术,例如场景图,细节级别(LOD)管理,准备渲染阶段,负载平衡和VM迁移等。
在实施例中,用于表示持久性虚拟世界系统和其中的虚拟对象的3D数据结构包括但不限于一个或多个八叉树,四叉树,BSP树,稀疏体素八叉树,3D阵列,kD树,点云,线框,边界表示(B-Rep),建设性实体几何树(CSG树),二叉树或六边形结构,或其组合。3D数据结构起到精确和有效地表示持久性虚拟世界系统中的虚拟对象的每个几何形状的数据的作用。例如,3D数据结构的正确选择取决于数据的起源,在渲染期间所寻求的几何形状的精度;渲染是实时完成还是预渲染;是否经由云服务器,经由用户设备或其组合来执行渲染;使用持久性虚拟世界系统的特定应用,例如,医学或科学应用可能需要比其它类型的应用更高水平的定义;来自服务器和来自用户设备的存储器容量,以及由此所需的存储器消耗;以及其他。
通过本公开中的3D数据结构的优化便于利用在高端游戏和仿真引擎中采用的3D实时图形技术和空间原理。这些技术和原理有助于通过连接到服务器的计算资源的网络来优化数据交换以及应用和服务的分布式计算。
场景图是示意性地绘制的数据结构,用于排列图形场景的逻辑和空间表示。场景图通常在顶部绘制有根节点,并且在底部有叶节点。在一些实施例中,根节点可以包括持久性虚拟世界系统的虚拟世界,然后将其分解成节点的分层结构,表示对象的空间分组,对象的位置设置,对象的动画或对象之间的逻辑关系的定义(例如,用于管理交通信号灯的各种状态)。场景图的叶表示物理对象本身,可绘制的几何形状和它们的材料特性。在性能方面,场景图提供了用于最大化图形性能的适当框架。
LOD管理包括随着模型远离观察者,或根据诸如对象重要性,视点相对速度或位置之类的其它度量,降低3D模型表示的复杂度。LOD是通常用于游戏引擎中以优化实时渲染的特征,仅在用户的视点更接近对象的地方使用更详细的模型。LOD管理通过减少图形管线使用(通常是顶点变换)的工作量来提高渲染的效率。通常,LOD管理可以改善帧率并减少存储器使用。以这种方式,例如,不同的物理模型可以从低保真度模型到高保真度模型与虚拟副本相关联,从而可以根据情况和情形进行不同的仿真。例如,可以使用低保真度模型来计算城市中的交通的宏观模拟,但是使用高保真度模型的微观模拟可以用来辅助车辆的自主驾驶。
准备渲染阶段可以包括在对图形场景进行计算渲染之前使用的任何多个技术,其可优化在场景的实际渲染期间使用的资源利用和时间。例如,准备渲染阶段可以包括诸如深度剔除,平截头体剔除,高级遮挡剔除和预处理的技术。
负载平衡是处理和带宽在诸如网络中的服务器和天线之类的可用资源或存储区域网络(SAN)中的磁盘上的均匀分布。负载平衡可以使用来自特定于用户设备和网络设备之间的距离的宏观环境的信息以及每个用户的单独需求,以便平衡网络资源。负载平衡有助于通过动态分配资源来优化网络带宽,以确保网络的优化使用,从而最小化网络流量。
也可使用其它技术来优化数据计算,渲染和对用户的供应,例如透视图切换,其包括从图形场景的较高资源消耗的可视透视图改变为较低的可视透视图,以便节省资源。其它技术可进一步包括多线程,借此处理器可在共享处理器的单核或多核的资源的同时,同时执行多个进程或线程。数据全局虚拟机管理器还可以利用VM迁移技术,由此当主机的资源容量达到预定水平时,VM从一个主机移动到另一个主机。
在替换实施例中,VM可以被容器替换,该容器还允许在虚拟环境中运行应用并保护应用代码。在该实施例中,容器虚拟化技术也位于链接到现实世界坐标的虚拟位置中,以实现增强的资源评估和供应,但是代替使用管理程序来监视和管理VM和仿真主机OS,容器共享操作系统内核,而不需要单独的客户操作系统,使得容器比VM轻得多并且使用更少的资源。
根据实施例,一种通过虚拟化技术操作应用的方法包括以下步骤:在包括一个或多个服务器的服务器系统的存储器中提供持久性虚拟世界系统,所述持久性虚拟世界系统包括数据结构,在所述数据结构中表示至少一个对应的现实对象的至少一个虚拟副本;在所述服务器系统的存储器中提供VM管理系统和在一个或多个虚拟机上运行和托管的至少一个应用,所述一个或多个虚拟机虚拟地定位在所述持久性虚拟世界系统的位置中,所述应用与经由网络连接到所述服务器系统的一个或多个用户设备交互;向虚拟机提供来自所述服务器系统的资源,所述资源是基于应用的需求而分配的;以及由虚拟机管理系统管理虚拟机的供应,其中管理是基于考虑了用户设备到虚拟机的距离的距离优先化参数。
根据实施例,虚拟机管理系统对虚拟机的供应进行管理包括由全局VM管理器执行资源需求评估的步骤;以及全局VM管理器将资源分配给虚拟机。
根据一个实施例,管理虚拟机的供应还基于数据相关性过滤器,该过滤器考虑了情境数据,虚拟元素的3D数据结构以及其他技术,例如场景图,细节级别(LOD)管理,准备渲染阶段,负载平衡和VM迁移等。
还描述了具有存储在其中的指令的计算机可读介质,该指令被配置为使一个或多个计算机进行本文所述的任何方法。
以上概述不包括本公开的所有方面的详尽列表。预期本公开包括可以从以上概述的各个方面的所有合适的组合来实践的所有系统和方法,以及在以下详细描述中公开的那些以及在随本申请提交的权利要求书中具体指出的那些。这样的组合具有在以上概述中未具体陈述的特定优点。本公开的其它特征和优点将从附图和下面的详细描述中变得显而易见。
附图说明
参考以下描述和附图将更好地理解本公开的具体特征、方面和优点,其中:
图1描绘了根据实施例的通过虚拟化技术操作3D应用的系统的示意性表示。
图2描绘了根据实施例的用于通过全局虚拟机管理器来管理3D应用的系统的示意性表示,所述全局虚拟机管理器与包括多个虚拟机的至少一个主机操作系统通信。
图3示出了根据一个实施例的用于管理本地虚拟机资源利用和需求的本地虚拟机管理器的示意性表示。
图4示出了根据一个实施例的数据相关性过滤器及其参数的示意性表示。
图5示出了根据一个实施例的数据相关性过滤器的微观情境参数的示意性表示。
图6示出了根据一个实施例的数据相关性过滤器的宏观情境参数的示意性表示。
图7示出了根据一个实施例的描述现实世界对象和虚拟对象的样本街区场景的示意性表示,包括在位置虚拟机上托管的应用。
图8描绘了根据一个实施例的设备的示意性表示。
图9描述了根据一个实施例的通过虚拟化技术操作3D应用的方法的框图。
具体实施方式
在以下描述中,参考通过示例方式示出各种实施例的附图。此外,下面将通过参考几个实例来描述各种实施例。应当理解,在不脱离所要求保护的主题的范围的情况下,实施例可以包括设计和结构上的改变。
图1描述了根据实施例的,通过虚拟化技术操作应用102(例如,虚拟世界系统中的3D应用)的系统100的示意图。
通过本发明的位置虚拟化技术来操作3D应用102的系统100包括一个或多个服务器104,其存储和实现在虚拟机(VM)106上运行和托管的至少一个3D应用102,一个或多个服务器104包括硬件基础设施,硬件基础设施根据至少一个3D应用102的需求向至少一个VM106提供资源。VM 106的供应由VM管理系统至少基于距离优先化参数来管理,其中VM 106虚拟地定位在持久性虚拟世界系统的位置中,该持久性虚拟世界系统包括现实世界的虚拟副本并且对应于现实世界中的位置。一个或多个用户设备108经由网络110连接到服务器104,用户设备108被配置为访问并执行托管在一个或多个服务器104的VM的3D应用102,并基于应用资源需求接收其资源。
在一些实施例中,可以使用适于与当前地理定位技术一起使用的参考坐标系来地理定位虚拟副本和VM中的每一个。例如,虚拟副本可以使用诸如WGS84的世界大地测量系统标准,WGS84是GPS使用的当前参考坐标系。
在各种实施例中,虚拟副本可以包括数据存储和模型,其中数据存储包括虚拟副本的属性,并且模型是由虚拟副本表示的现实世界元素的任何方面的图形,数学和逻辑表示。虚拟副本可以包括任何类型的模型,包括至少3D,几何和动态模型。3D和几何模型允许虚拟副本的可视化,并模拟与融合现实世界中的其它实体的冲突和交互。动态模型允许模拟现实世界对象的行为,并且可以包括连续的(例如,代数或微分方程)和离散的(例如,作为状态机或随机模型)动态模型。在其他实施例中,虚拟副本还可以具有相关联的机器学习模型,因此AI技术可以用于通过相应的虚拟副本来优化现实世界元素的操作和/或性能,这可以促进计算优化平台的计算优化。
在一些实施例中,虚拟副本包括3D世界和建筑物数据中的一个或多个,例如基于SLAM或派生映射的数据;3D几何数据;3D点云数据;或者表示现实世界结构特性的地理信息系统数据,其可以用于为数字现实应用建模3D结构。
根据实施例,VM管理系统包括执行VM资源需求评估和对VM 106进行供应的全局VM管理器112。
在一些实施例中,全局VM管理器112是3D引擎的一部分,3D引擎使得能够在链接到现实世界中的位置的虚拟世界中开发,测试和发布VM托管的3D应用102。因此,应用开发者可以找到在虚拟环境中开发3D应用102的适当解决方案,该解决方案可以保护应用代码免受潜在的崩溃或恶意软件,实现应用与不同操作系统的互操作性,增强的资源供应,以及3D应用102在虚拟世界中的精确定位,以便于基于位置的内容。
网络110可以包括被配置为发射和接收无线电波的天线,无线电波使得能够在边缘和云上移动。天线可以通过有线或无线装置连接到计算中心。在其它实施例中,在计算中心和/或计算中心附近的区域内设置天线。在一些实施例中,为了服务用户设备和/或位于户外的现实对象,天线可以包括基于毫米波(mmW)的天线系统或者基于mmW的天线和sub-6GHz天线系统的组合,这里将这些天线分组为5G天线并将其称为5G天线。在其它实施例中,天线可以包括其它类型的天线,例如4G天线,或者可以用作5G天线系统的支持天线。在天线用于服务位于室内的实时基于3D的交互设备的实施例中,天线可以使用Wi-Fi,优选地但不限于,提供60GHz的数据。
在其它实施例中,全球导航卫星系统(GNSS)(其统称为任何基于卫星的导航系统,例如GPS,BDS,Glonass,QZSS,Galileo和IRNSS)可用于实现设备的定位。使用来自足够数量的卫星和诸如三角测量和三边测量的技术的信号,GNSS可以计算设备的位置,速度,高度和时间。在实施例中,外部定位系统由辅助GNSS(AGNSS)通过现有蜂窝通信网络的体系结构来增强,其中现有体系结构包括5G。在其它实施例中,AGNSS跟踪系统还由4G蜂窝通信网络支持。在室内实施例中,通过诸如Wi-Fi之类的无线电无线局域网进一步增强GNSS,优选地,但不限于,提供60GHz的数据。在替代实施例中,通过本领域已知的其它技术来增强GNSS,例如通过差分GPS(DGPS),基于卫星的增强系统(SBAS),实时运动学(RTK)系统。在一些实施例中,通过设备中的AGNSS和惯性传感器的组合来实现设备的跟踪。
根据一个实施例,本公开的系统100可以在云到边缘基础设施中实现,云到边缘基础设施可以使用公共或专用云,雾服务器以及边缘设备和系统(例如企业系统,移动平台和用户设备)来显示分布式计算能力,所有这些都可以通过网络连接。使用云到边缘计算网络,对计算能力,计算机基础设施(例如,通过所谓的基础设施作为服务,或IaaS),应用和商业过程的访问可以根据需要作为服务经由客户端设备被递送给用户。这样,包括物理服务器和网络设备的资源能够实现共享存储和计算,共享存储和计算可以根据诸如用户到资源和网络的距离以及来自用户的计算需求等因素来被动态分配。
在本公开中,术语“持久性”用于表征在没有连续执行处理或网络连接的情况下可以继续存在的系统的状态。例如,术语“持久性”可用于表征虚拟世界系统,其中虚拟世界系统和其中包括的所有虚拟副本、纯虚拟对象和应用在用于创建虚拟副本、纯虚拟对象和应用的进程停止之后继续存在,并且不依赖于用户连接到虚拟世界系统。因此,虚拟世界系统被保存在非易失性存储位置中(例如服务器中)。以这种方式,即使用户没有连接到服务器,虚拟副本,纯虚拟对象和应用在被配置用于实现特定目标时可以相互交互和协作。
在替换实施例中,VM 106可以由容器代替,该容器还允许在虚拟环境中运行应用并保护应用代码。在该实施例中,容器虚拟化技术也位于链接到现实世界坐标的虚拟位置中,以实现增强的资源评估和供应,但是代替使用管理程序来监视和管理VM和仿真主机OS,容器共享操作系统内核,而不需要单独的客户操作系统,使得容器比VM 106轻得多并且使用更少的资源。
图2描绘根据实施例的用于通过全局VM管理器202来管理3D应用102的系统200的示意性表示,全局VM管理器202与包括多个虚拟机106的至少一个主机操作系统204通信。
如图2所示,全局VM管理器202从云基础设施206获得资源,并基于每个单独的3D应用102的需求通过一个或多个主机操作系统204将资源发送到VM 106。在管理程序210中模拟每个VM 106,每个管理程序210包括具有专用软件和/或硬件(例如,传感器)的本地VM管理器212,本地VM管理器212被配置为监视和管理每个VM 106的定位细节,系统利用参数和计算每个VM 106的任务环境,并将每个VM106的需求评估发送到全局VM管理器202。
在实施例中,由管理程序210的本地VM管理器212监视的定位细节包括主机的IP地址,其中VM 106在物理上与链接到现实世界坐标的持久性虚拟世界系统中的虚拟位置一起运行。全局VM管理器202除了存储和管理其他需求参数之外还存储和管理每个VM 106的定位细节,并且利用来自本地VM管理器212的需求评估,以便进行用于向每个管理程序210提供所需资源的总体资源供应评估。管理程序210能够模拟多个客户操作系统214,如3D应用102可能要求的,用于实现互操作性。
图3示出了根据实施例的用于管理本地虚拟机资源利用和需求的本地VM管理器212的示意性表示。图3的一些元件可以与图1-2的元件相似,因此可以使用相似或相同的附图标记来描述那些元件。
本地VM管理器212包括测量VM资源利用的监视组件302,被配置为为每个VM 106确定所需的资源分配的反馈控制器304,以及从反馈控制器304获得资源分配请求并为每个VM106设置资源共享的仲裁器306。
在实施例中,监视组件302在控制间隔中测量VM 106的平均资源利用,这可以由管理员根据本地节点应该多快地对负载作出反应并且还受到仲裁器306所花费的时间的影响来设置。反馈控制器304使用控制理论来确定要给予每个VM 106的所需资源分配,以便将资源利用保持在期望的水平,以维持服务质量或其它目标。仲裁器306从反馈控制器304获取对该特定主机操作系统204的所有VM 106的资源分配请求,并且根据每个VM 106的效用,设置资源共享以最大化本地节点效用功能。期望的资源共享被发送到全局VM管理器202,全局VM管理器202评估所有主机操作系统204的所有VM 106的资源要求,并继续通过本地VM管理器212分配资源。
图4示出了根据实施例的全局VM管理器202的数据相关性过滤器402及其示例参数的示意性表示。图4的一些元件可以与图1-3的元件相似,因此可以使用相似或相同的附图标记来描述那些元件。
数据相关性过滤器402被配置为存储和提供具有规则的数据和计算机指令,当由服务器的处理器实现时,该规则过滤和分析评估和提供具有足够资源的多个虚拟机所需的数据。如参考图3所述,数据相关性过滤器402从管理程序210的本地VM管理器212获得所需数据。根据实施例,数据相关性过滤器402包括结合了情境数据404,3D数据结构406和其它技术408的计算机程序。
如在当前公开中使用的,术语“情境”或“情境数据”可以被分类为微观情境410或宏观情境412。在实施例中,情境指的是与已经访问持久性虚拟世界系统的所采用的用户设备的直接或间接环境有关的数据。在一些实施例中,处理情境数据的方面的计算可以通过机器学习技术来执行。
可以使用特定的数据结构来更有效地实现这里描述的一个或多个方面,并且这样的数据结构被预期在本公开的计算机可执行指令和计算机可用数据的范围内。具体而言,空间数据的表示在持久性虚拟世界系统的编程中是一个重要的问题,涉及计算机图形的计算,渲染和显示,可视化,实体建模以及相关区域,3D数据结构406对于这些可能是特别有用的。根据存储虚拟副本的持久性虚拟世界系统的应用领域以及输入数据的特征和源,可以采用不同类型的表示。3D数据结构406用于表示持久性虚拟世界系统和应用,广告以及存储在其中的其它虚拟对象。3D数据结构406用于准确和有效地表示持久性虚拟世界系统中的虚拟对象的每个几何形状的数据的功能。例如,3D数据结构406允许在持久性虚拟世界系统内的虚拟对象和现实对象之间的更平滑的交互效果,从而促进对象之间的更精确的遮挡或碰撞效果。3D数据结构406的示例包括但不限于八叉树,四叉树,BSP树,稀疏体素八叉树,3D阵列,kD树,点云,线框,边界表示(B-Rep),构造实体几何树(CSG树),二叉树和六边形结构等。
3D数据结构406的正确选择受以下的的影响:数据来源,渲染期间所寻求的几何形状的精度;渲染是实时完成还是预渲染;是否经由服务器,经由用户设备或其组合来进行渲染;使用持久性虚拟世界系统的具体应用;以及来自服务器和来自用户设备的存储器容量,并且因此其中的存储器容量。
例如,八叉树直接表示数据结构中的卷。它们的主要优点是几个目标的快速和容易的组合;实现简单渲染;能够进行快速空间搜索;以及能够通过对现实对象的数字化(例如,LIDAR或其它图像扫描)来实现模型生成。另一方面,八叉树的缺点在于,它们对复杂和弯曲对象的精确近似提出了高存储需求;提出难于实施的变换;并且不允许精确地表示一般对象。在另一个例子中,BSP树显示琐碎的变换;具有正确遮挡的快速渲染;可用于表示一般对象;以及能够基于数字化对象的模型生成。然而,BSP树存在缺点,诸如需要近似曲面;仅限凸多边形的使用;以及呈现高存储器消耗,特别是对于弯曲的和复杂的对象。在另一个例子中,B-rep通过它们的边界来表示所有对象,并且呈现诸如允许容易的变换的优点;实现多个对象的一般表示;以及允许基于数字化对象生成模型。另一方面,B-rep呈现高存储器消耗(尤其对于曲面的精确近似);组合成本高;并且必须对曲面进行近似。如本领域技术人员将理解的,所公开的3D数据结构406和未公开的其它3D数据结构可以显示更多非穷举的优点和缺点,并且正确3D结构的选择将取决于持久性虚拟世界系统的必要应用和系统要求等。
通过本公开中的3D数据结构406的优化便于利用在高端游戏和仿真引擎中采用的3D实时图形技术和空间原理。这些技术和原理有助于通过连接到服务器的计算资源的网络来优化数据交换以及应用和服务的分布式计算。空间原理是在扩展现实中发生的现象之间的空间和时间的联系和约束。物理现象(即,在涉及现实世界元素的现实世界中发生的事件)是连续的数据,而数字表示(即,持久性虚拟世界系统和虚拟副本)对于空间和时间都是离散的。因此,由于参数,时间和空间之间存在相关性,所以更接近的事物与更远离的事物更相关。另外,启用从宏观到微观尺度的多标量表示。
其他技术408可以包括可以帮助过滤和优化计算,渲染和向用户提供数据的方法,并且可以包括使用场景图414,细节管理级别(LOD)416,准备渲染阶段418,负载平衡420和VM迁移422等。
场景图414是示意性地绘制的数据结构,其中根节点在顶部,而叶节点在底部。根节点包括虚拟世界,然后被分解成节点的层次结构,其表示对象的空间分组,对象位置的设置,对象的动画,或者对象之间的逻辑关系的定义,例如用于管理交通信号灯的各种状态的那些。场景图414的叶表示物理对象本身,可绘制的几何形状及其材料特性。在性能方面,场景图414提供了用于最大化图形性能的极好的框架。良好的场景图采用两个关键技术:剔除未显示在视见平截头体上的对象,以及对诸如纹理和材料的属性进行状态分类,从而将所有类似的对象绘制在一起。场景图414也很容易从一个平台迁移到另一个平台,并且还能够管理复杂的硬件配置,例如图形机器的群集,或多处理器/多个系统。
LOD管理416涉及当模型远离观察者移动时,或根据诸如对象重要性,视点相对速度或位置之类的其它度量,降低3D模型表示的复杂度。LOD是通常用于游戏引擎中以优化实时渲染的特征,仅在用户的视点更接近对象的地方使用更详细的模型。LOD管理416通过减少图形管线使用(通常是顶点变换)的工作量来提高渲染的效率。由于当远处或快速移动时对对象外观的影响很小,所以通常不注意模型的视觉质量的降低。通常,LOD管理可以改善帧率并减少存储器使用。以这种方式,例如,不同的物理模型可以从低保真度模型到高保真度模型与虚拟副本相关联,从而可以根据情况和情形进行不同的模拟。例如,可以使用低保真度模型来计算城市中的交通的宏观模拟,但是使用高保真度模型的微观模拟可以用来辅助车辆的自主驾驶。
在实施例中,准备渲染阶段418可以设计在对图形场景进行计算渲染之前使用任何多个技术或技术的组合,其可优化在场景的实际渲染期间使用的资源利用和时间。例如,准备渲染阶段可以包括诸如深度剔除,平截头体剔除,高级遮挡剔除和/或其他预处理的技术。
负载平衡420是在诸如网络中的服务器和天线的可用资源或存储区域网络(SAN)中的磁盘上的处理和带宽的均匀分布。负载平衡420可以使用来自特定于用户设备和网络设备之间的距离的宏观环境的信息以及每个用户的单独需求,以便平衡网络资源。负载平衡420有助于通过动态分配资源来优化网络带宽,以确保网络的优化使用,从而最小化网络流量。
在实施例中,VM迁移422是指在不断开用户设备或应用的情况下在不同的物理机器之间移动运行的VM的过程。全局VM管理器202将相应VM的资源从原始客户机器传送到目的地。VM迁移422可以在托管VM的计算机过载并且需要将一些负载转移到另一个物理机器的情况下发生。
也可以使用其它技术408,以便优化数据计算,渲染和向用户的供应,例如透视图切换。例如,数据相关性过滤器402可以考虑从3D透视图切换到2.5D或2D透视图,以便减少存储器使用并提高总体计算和渲染效率。术语2.5D包括使用限于二维或其它固定透视图的3D图形。其他技术408还可以包括多线程,由此处理器可以在共享处理器的单核或多核的资源的同时执行多个进程或线程。
图5描绘了根据实施例的来自数据相关性过滤器的微观情境410的参数的示意性表示。图5的一些元件可以与图1-4的元件相似,因此可以使用相似或相同的附图标记来描述那些元件。
在实施例中,微观情境410包括用户相关数据502和用户交互半径数据504。用户相关数据502包括专门与用户相关的数据,例如位置数据506;观看位置和朝向508;社交数据510;偏好512;服务情境514;以及特定于用户的服务质量516。用户交互半径数据504可以与预定的交互半径相关,其中用户可以查看并参与持久性虚拟世界系统内的虚拟对象。因此,用户交互半径数据504包括,例如,用户交互半径内的现实世界对象518,VM托管的3D应用,广告,以及用户交互半径内的其它虚拟对象520,以及用户交互半径内的其它用户522。在一些实施例中,广告,交互元素和虚拟副本也托管在它们各自的VM上。
用户位置数据506和观看位置和朝向508可以由用户设备内的感测机构捕获,并且可以被发送到服务器。
用户社交数据510可以指关于用户之间的关系的信息,这可以实现几个特征。例如,用户可以使用持久性虚拟世界系统作为社交网络,其中一些用户可以与其他用户交友。如果两个用户是社交网络内的朋友,并且它们彼此之间具有一定距离(例如,一个用户对另一个用户可见的距离),则可以在用户附近的某处显示诸如用户的姓名或其他数据的某些细节,以便于识别。其它特征可以包括打开通信信道,例如视听或文本,其可以实现持久性虚拟世界系统的用户之间的远程通信。
用户偏好512可以与以下有关:用户可以更频繁地使用的应用的类型,用户所具有的社交联系的类型,用户倾向于去往的地点的类型,用户倾向于购买的物品的类型,用户倾向于消费的媒体内容的类型,用户感兴趣的主题等。所有这些数据可以通过本领域已知的方法来计算,例如通过机器学习算法,并且可以用于向用户突出显示(例如,通过警报消息或声音,或者以闪亮或更多的可见颜色突出显示特定位置或虚拟对象,例如应用,广告,人等)可以吸引用户最多的内容。
服务情境514涉及实际应用正被附近的一个或多个用户使用的应用。当每个应用消耗网络带宽和其它资源时,服务情境514可以向服务器提供评估向每个用户设备提供网络信号所需的有价值的情境数据。服务情境514还涉及用户是在增强现实还是虚拟现实中观看持久性虚拟世界系统。
服务质量516涉及用户正在接收的网络服务的总体性能的测量。例如,可以使用诸如分组丢失,比特率,吞吐量,传输延迟,可用性和抖动之类的服务的方面。
在用户交互半径内的现实世界对象518是在现实世界中找到的元素,其可以是移动或静态实体,其包括人类,车辆,建筑物,对象,娱乐区域,自然构造和街道等。现实世界对象518可以影响现实世界对象518和现实世界系统内的虚拟对象之间的交互,从而影响数据计算,渲染和供应。
用户交互半径内的虚拟对象520都是VM托管的3D应用,广告和可以在用户交互半径内配置的其它元素。
与用户交互半径内的其他用户522相关的数据可以包括其他用户的服务情境和QOS,或其他用户的社交数据,其也可能影响持久性虚拟世界系统内的数据计算和供应。
在实施例中,通过微观情境捕获的所有数据被数据相关性过滤器用来确定对用户的计算,渲染和数据供应的适当的过滤和优化。另外,也可以以任意组合使用少于所有捕获的数据,。
图6示出了根据实施例的来自数据相关性过滤器的宏观情境412的参数的示意性表示。图6的一些元件可以与图1-5的元件相似,因此可以使用相似或相同的附图标记来描述那些元件。
宏观情境412包括与预定义区域中的元素相关的数据。预定区域可以在持久性虚拟世界系统内被确定为指定地理区域中的微观情境的组合。宏观情境412可以包括系统的整体信息,包括制造厂的当前效率,空气质量,气候变化水平,公司效率,城市效率,国家效率和全球效率等。
宏观情境412包括,例如,在围绕VM托管的3D应用或虚拟对象的位置的预定区域中的网络设备602;在预定义区域中的现实世界对象604;预定义区域内的虚拟对象606;预定义区域中的用户数量608;以及预定义区域的资源管理610。在进一步的实施例中,宏观情境412包括系统的整体信息,包括制造厂的当前效率,空气质量,气候变化水平,公司效率,城市效率,国家效率和全球效率。宏观情境412可以使用多个微观情境的数据,以便优化对每个用户设备的数据计算,渲染和供应,同时将持久性虚拟世界系统的总效率保持在适当的预定级别。在参考图4描述的负载平衡420期间,可以特别地使用宏观情境412。
预定义区域内的网络设备602可以表征为该区域中的服务器和网络天线的数量和位置。服务器的数据相关性过滤器可以计算需要网络数据的每个用户与数据供应所需的相应网络天线和数据中心之间的距离,并且之后可以选择能够向用户提供最佳的数据和资源的网络天线和数据中心。
现实世界对象604是在现实世界中找到的元素,可以是在现实世界中找到的移动或静态实体,包括人类,车辆,建筑物,对象,娱乐区域,自然构造和街道等,它们可能影响现实世界对象604和现实世界系统内的虚拟对象之间的交互,从而影响资源供应。虚拟对象是可以在预定义区域内配置的所有VM托管的3D应用,广告和其它元素。
在优化数据计算,渲染和供应时,预定区域内的用户数量608也是一个因素,因为用户数量608可能由于每个用户设备消耗的带宽而影响系统中的服务质量。
资源管理610指的是对资源的管理,资源可以包括诸如能量,水,污染的资源,以及诸如网络带宽的计算资源。例如,如果持久性虚拟世界系统被用于管理街区,区或城市中的能量资源,则系统可以尝试保持能量效率尽可能高,并且可以提醒房主关闭不必要的灯或人工产物。这些信息中的一些可以在持久性虚拟世界系统内向用户显示,在数据计算,渲染和向用户提供方面具有效果。类似的原理可以应用于其它类型的资源管理610,其中系统可以修改持久性虚拟世界系统内的多个方面,以便保持高资源效率,向用户提供对应的实时改变。
图7示出了根据实施例的描述现实世界对象和虚拟对象的样本街区场景的示意性表示,包括在位置虚拟机上托管的应用。图7的一些元件可以与图1-6的元件相似,因此可以使用相似或相同的附图标记来描述那些元件。
参考图7的示例,佩戴用户设备108的两个用户702a-b正在查看包括若干现实世界对象和虚拟对象的不同方向。
例如,用户702a可以能够看到建筑物704,并看到、听到与VM 708a上托管的应用706a和与VM 708a上托管的应用706a进行交互。然而,因为建筑物704的3D数据结构被存储在持久性虚拟世界系统中,所以应用706b,车辆710和广告712可能全部被建筑物704遮挡并且因此对于用户702a可能是不可见的,从而增加了对用户设备108的资源供应的效率。另一方面,用户702a可以听到从VM 708b上托管的应用706b以及VM 708c上托管的广告712发出的任何声音,使得用户702a知道这种虚拟对象的存在。
用户702b可以在与用户702a相反的方向上观看,并且因此可以能够看到和听到广告712和应用706b,但是可能仅能够听到从应用706a发出的任何声音,而不能够看到应用706a。此外,用户702b可能不能看到可能被树714部分遮挡的广告712,但是可能能够听到比应用706b更大的声音。
图8描绘了根据一个实施例的用户设备108的示意性表示。图8的一些元件可以与图1-7的元件相似,因此可以使用相似或相同的附图标记来描述那些元件。
本公开的用户设备108可以包括操作组件,诸如输入/输出(I/O)模块802;电源804;存储器806;形成跟踪模块812的感测机构808和收发器810;以及网络接口814,全部可操作地连接到处理器816。
I/O模块802被实现为被配置为与用户交互并向一个或多个其它系统组件提供用户输入数据的计算硬件和软件。例如,I/O模块802可以被配置为与用户交互,基于交互生成用户输入数据,并且在经由网络传送到其他处理系统(例如服务器)之前将用户输入数据提供给处理器816。在另一示例中,I/O模块802被实现为被配置为与用户设备108交互的外部计算指向设备(例如,触摸屏,鼠标,3D控件,操纵杆,游戏垫等)和/或文本输入设备(例如,键盘,口述工具等)。在其它实施例中,I/O模块802可提供与上述功能不同的额外,或较少的功能。
电源804被实现为被配置为向用户设备108供电的计算硬件和软件。在一个实施例中,电源804可以是电池。电源804可以被内置到用户设备108中或者可以从用户设备108移除,并且可以是可再充电的或不可再充电的。在一个实施例中,用户设备108可以通过用另一个电源804替换一个电源804来重新供电。在另一个实施例中,电源804可以通过连接到充电源的电缆进行再充电,例如连接到个人计算机的通用串行总线(“USB”)火线,以太网,雷电接口或耳机电缆。在又一个实施例中,电源804可以通过感应充电进行再充电,其中,当感应充电器和电源804两者非常接近时,电磁场用于将能量从感应充电器传递到电源804,但不需要通过电缆彼此插入。在另一个实施例中,可以使用扩展坞来促进充电。
存储器806可以被实现为适于存储应用程序指令和存储由多个感测机构808捕获的数据的计算硬件和软件。存储器806可以是能够存储处理器816可访问的信息的任何合适的类型,包括计算机可读介质,或存储可以借助于电子设备读取的数据的其它介质,电子设备例如硬盘驱动器,存储卡,闪存驱动器,ROM,RAM,DVD或其它光盘,以及其它可写和只读存储器。除了永久存储器之外,存储器806还可以包括临时存储器。
感测机构808可以被实现为适于从现实世界获得各种数据并确定/跟踪用户设备108的位置和朝向的计算硬件和软件。感测机构808可以包括但不限于一个或多个温度传感器,接近传感器,惯性传感器,红外传感器,污染传感器(例如,气体传感器),压力传感器,光传感器,超声波传感器,烟雾传感器,触摸传感器,彩色传感器,湿度传感器,水传感器,电传感器或其组合。特别地,感测机构808包括一个或多个惯性测量单元(IMU),加速度计和陀螺仪。IMU被配置为通过使用加速度计和陀螺仪的组合来测量和报告用户设备108的速度,加速度,角动量,平移速度,旋转速度和其它遥测元数据。IMU内的加速度计和/或与IMU分开配置的加速度计可以被配置为测量交互设备的加速度,包括由于地球重力场引起的加速度。在一个实施例中,加速度计包括能够在三个正交方向上测量加速度的三轴加速度计。
收发器810可被实现为计算硬件和软件,其被配置为使用户设备108能够从天线接收无线电波并将数据发送回天线。在一些实施例中,可以使用mmW收发器,其可以被配置为从天线接收mmW波信号,并且当与沉浸式内容交互时将数据发送回天线。收发器810可以是双向通信收发器810。
在一个实施例中,跟踪模块812可以通过将IMU,加速度计和陀螺仪的能力与由收发器810提供的位置跟踪相结合来实现,并且由基于mmW的天线提供的精确跟踪,低等待时间和高QOS功能可以实现亚厘米或亚毫米位置和定向跟踪,这可以在跟踪用户设备108的实时位置和朝向时提高精度。在替代实施例中,感测机构808和收发器810可在单个跟踪模块装置中耦合在一起。
网络接口814可以被实现为计算软件和硬件,以通信地连接到网络,从由服务器或用户设备108发送的网络接收计算机可读程序指令,并转发计算机可读程序指令,以便存储在存储器806中,由处理器816执行。
处理器816可以被实现为被配置成接收和处理数据的计算硬件和软件。举例来说,处理器816可经配置以提供成像请求,接收成像数据,将成像数据处理成环境或其它数据,处理用户输入数据和/或成像数据以产生用户交互数据,执行基于边缘(设备上)的机器学习训练和推断,提供服务器请求,接收服务器响应,和/或将用户交互数据,环境数据和内容对象数据提供到一个或多个其它系统组件。例如,处理器816可以从I/O模块802接收用户输入数据,并且可以分别实现存储在存储器806中的应用。在其它实例中,处理器816可从感测机构808接收从现实世界捕获的数据,或可通过跟踪模块812接收用户设备108的准确位置和朝向,且可在将数据发送到服务器以用于进一步处理之前准备一些数据。作为示例,处理器816可以实现在数据准备期间所需的一些步骤,包括模拟或数字信号处理算法,诸如在将数据发送到服务器之前对数据进行原始数据减少或过滤。
图9描述了根据一个实施例的通过虚拟化技术操作3D应用的方法900的框图。方法900可以在例如参考图1-8描述的系统中实现。
根据一个实施例,通过虚拟化技术操作3D应用的方法900开始于步骤902,在至少一个服务器的存储器中提供包括数据结构的持久性虚拟世界系统,在该数据结构中表示至少一个对应的现实对象的至少一个虚拟副本。方法900在步骤904中继续,在至少一个服务器的存储器中提供至少一个应用,在虚拟地位于持久性虚拟世界系统的位置中的一个或多个虚拟机上运行和托管该至少一个应用,该应用由经由网络连接到至少一个服务器的一个或多个用户设备交互。在步骤906中,该方法继续,向至少一个虚拟机提供来自至少一个服务器的资源,该资源是基于至少一个应用的需求而分配的。该方法可以在步骤908结束,由存储在服务器的存储器中的虚拟机管理系统管理虚拟机的供应,其中该管理基于考虑用户设备到至少一个虚拟机的距离的距离优先化参数。
根据实施例,虚拟机管理系统管理虚拟机的供应还包括由全局VM管理器执行资源需求评估的步骤;全局VM管理器将资源分配给一个或多个虚拟机。
根据一个实施例,管理虚拟机的供应还基于数据相关性过滤器,该数据相关性过滤器考虑了情境数据,虚拟元素的3D数据结构以及其他技术,例如场景图,细节级别(LOD)管理,准备渲染阶段,负载平衡和VM迁移等。
虽然已经在附图中描述和示出了某些实施例,但是应当理解,这样的实施例仅仅是说明性的,而不是对宽泛的公开的限制,并且本公开不限于所示出和描述的具体结构和布置,因为本领域的普通技术人员可以想到各种其他修改。因此,本说明书应被认为是示例性的而不是为了限制本发明。

Claims (20)

1.一种通过虚拟化技术操作应用的系统,其特征在于,所述系统包括:
一个或多个服务器,所述一个或多个服务器包括至少一个处理器和存储器,所述一个或多个服务器存储持久性虚拟世界系统和至少一个应用,所述持久性虚拟世界系统包括数据结构,在所述数据结构中表示至少一个对应的现实对象的至少一个虚拟副本,
所述至少一个应用在虚拟地位于所述持久性虚拟世界系统中的至少一个虚拟机上运行和托管,所述一个或多个服务器包括硬件基础设施,所述硬件基础设施为所述至少一个虚拟机提供基于所述至少一个应用的要求而分配的资源,
其中,所述至少一个虚拟机的供应由存储在所述一个或多个服务器的所述存储器中的虚拟机管理系统基于距离优先化参数、以及在用户设备和链接到现实世界坐标的至少一个虚拟机的位置之间的一个或多个现实世界对象的定位来管理。
2.如权利要求1所述的系统,其特征在于,所述虚拟机管理系统包括全局虚拟机管理器,所述全局虚拟机管理器通过与所述至少一个虚拟机接口的管理程序来进行虚拟机资源需求评估和供应。
3.如权利要求2所述的系统,其特征在于,所述全局虚拟机管理器是3D引擎的一部分,所述3D引擎使得能够开发、测试和发布链接到所述现实世界中的一个或多个位置的所述虚拟世界中的虚拟机托管的3D应用。
4.如权利要求2所述的系统,其特征在于,所述虚拟机管理系统还包括本地虚拟机管理器,所述本地虚拟机管理器连接到所述全局虚拟机管理器,并配置成向所述虚拟机管理器提供所述至少一个虚拟机的资源评估,所述本地虚拟机管理器包括测量虚拟机资源利用的监视组件。
5.如权利要求1所述的系统,其特征在于,所述虚拟机管理系统还基于应用坐标,虚拟副本的3D数据结构,情境数据,用户相关数据,情境数据,场景图,细节管理级别,准备渲染阶段,负载均衡,或虚拟机迁移,或其组合,来管理对所述至少一个虚拟机的所述供应。
6.如权利要求5所述的系统,其特征在于,所述3D数据结构包括一个或多个八叉树,四叉树,BSP树,稀疏体素八叉树,3D阵列,kD树,点云,线框,边界表示(B-Rep),构造实体几何树(CSG树),二叉树或六边形结构,或其组合。
7.如权利要求5所述的系统,其特征在于,所述情境数据还包括微观情境和宏观情境,所述微观情境包括用户相关数据和用户交互半径数据,并且所述宏观情境被确定在预定义区域中,并包括网络设备,所述一个或多个现实世界对象,虚拟对象,用户数量或资源管理,或其组合。
8.如权利要求7所述的系统,其特征在于,所述用户相关数据包括用户位置数据,用户观看位置和朝向,用户社交数据,用户偏好,用户服务情境,或协议相关服务质量水平,或其组合。
9.如权利要求7所述的系统,其特征在于,所述宏观情境还包括与预定区域中的所述服务器,所述预定区域中的所述一个或多个现实世界对象,所述预定区域中的用户数量,所述预定区域中的应用、广告或其它虚拟对象,或所述预定区域的资源管理,或其组合有关的数据。
10.如权利要求1所述的系统,其特征在于,所述至少一个应用包括3D应用,并且其中,所述距离优先化参数考虑到所述用户设备到链接到所述现实世界坐标的所述至少一个虚拟机的所述位置的距离。
11.如权利要求1所述的系统,其特征在于,所述供应在包括客户机设备,云服务器和雾服务器的云到边缘基础设施中进行。
12.如权利要求1所述的系统,其特征在于,包括广告,交互元素和虚拟副本的虚拟对象被托管在相应的虚拟机上。
13.一种通过虚拟化技术操作应用的系统,所述系统包括:
一个或多个服务器,所述一个或多个服务器包括至少一个处理器和存储器,所述一个或多个服务器存储持久性虚拟世界系统和至少一个应用,所述持久性虚拟世界系统包括数据结构,在所述数据结构中表示至少一个对应的现实对象的至少一个虚拟副本,所述至少一个应用在虚拟地位于所述持久性虚拟世界系统中的至少一个容器上被托管,所述一个或多个服务器包括硬件基础设施,所述硬件基础设施为所述至少一个容器提供基于所述至少一个应用的要求而分配的资源,其中所述至少一个容器的供应由容器管理系统基于至少一个距离优先化参数、以及在用户设备和链接到现实世界坐标的所述至少一个容器的位置之间的一个或多个现实世界对象的定位来管理;和
经由网络连接到所述服务器的一个或多个用户设备,所述用户设备被配置为访问和执行托管在所述至少一个服务器的所述容器上的应用,并基于应用要求接收其资源。
14.一种通过虚拟化技术操作应用的方法,所述方法包括:
在包括一个或多个服务器的服务器系统的存储器中提供持久性虚拟世界系统,所述持久性虚拟世界系统包括数据结构,在所述数据结构中表示至少一个对应的现实对象的至少一个虚拟副本;
在所述服务器系统的所述存储器中提供虚拟机管理系统和在虚拟机上运行和托管的至少一个应用,所述虚拟机虚拟地位于所述持久性虚拟世界系统中,所述至少一个应用与经由网络连接到所述服务器系统的一个或多个用户设备交互;
向所述虚拟机提供来自所述服务器系统的基于所述至少一个应用的需求而分配的资源;和
由所述虚拟机管理系统至少部分地基于距离优先化参数、以及在所述一个或多个用户设备和链接到现实世界坐标的所述虚拟机的位置之间的一个或多个现实世界对象的定位来管理所述虚拟机的供应,所述距离优先化参数考虑到所述一个或多个用户设备到链接到所述现实世界坐标的所述虚拟机的位置的距离。
15.如权利要求14所述的方法,其特征在于,所述虚拟机管理系统包括全局虚拟机管理器,所述全局虚拟机管理器通过与所述虚拟机接口的管理程序来进行虚拟机资源需求评估和供应。
16.如权利要求15所述的方法,其特征在于,所述虚拟机管理系统包括本地虚拟机管理器,所述本地虚拟机管理器连接到所述全局虚拟机管理器,并配置成向所述虚拟机管理器提供所述虚拟机的资源评估,所述本地虚拟机管理器包括测量虚拟机资源利用的监视组件、配置成为所述虚拟机确定所需的资源分配的反馈控制器、以及从所述反馈控制器获取资源分配请求并为所述虚拟机设置所述资源共享的仲裁器。
17.根据权利要求15所述的方法,其中管理所述虚拟机的所述供应进一步基于所述全局虚拟机管理器的数据相关性过滤器,所述数据相关性过滤器考虑应用坐标,虚拟副本的3D数据结构,情境数据,用户相关数据,情境数据,场景图,细节管理级别,用于准备渲染阶段,负载平衡,或虚拟机迁移,或其组合。
18.如权利要求15所述的方法,其特征在于,由虚拟机管理系统管理所述虚拟机的供应包括:
由所述全局虚拟机管理器进行资源需求评估;和
由所述全局虚拟机管理器将所述资源分配给所述虚拟机。
19.如权利要求15所述的方法,其特征在于,所述全局虚拟机管理器是3D引擎的一部分,所述3D引擎使得能够开发、测试和发布链接到所述现实世界中的位置的所述虚拟世界中的虚拟机托管的3D应用。
20.一种或多种其上存储有指令的非暂时性计算机可读介质,其特征在于,所述指令被配置成在由一个或多个计算机执行时使所述一个或多个计算机:
提供持久性虚拟世界系统,所述持久性虚拟世界系统包括数据结构,在所述数据结构中表示至少一个对应的现实对象的至少一个虚拟副本;
提供在至少一个虚拟机上运行和托管的至少一个3D应用,所述虚拟机虚拟地位于所述持久性虚拟世界系统中,所述至少一个3D应用被配置为与一个或多个用户设备交互;
向所述一个或多个虚拟机提供来自至少一个服务器的资源,所述资源是基于所述至少一个3D应用的需求而分配的;和
通过虚拟机管理系统来管理所述一个或多个虚拟机的供应,其中管理是基于距离优先化参数、以及在所述一个或多个用户设备和链接到现实世界坐标的所述虚拟机的位置之间的一个或多个现实世界对象的定位,所述距离优先化参数考虑到所述一个或多个用户设备到链接到所述现实世界坐标的所述虚拟机的所述位置的距离。
CN202010558311.5A 2019-06-18 2020-06-18 通过位置虚拟化技术操作3d应用的系统和方法 Active CN112102463B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962863134P 2019-06-18 2019-06-18
US62/863,134 2019-06-18

Publications (2)

Publication Number Publication Date
CN112102463A CN112102463A (zh) 2020-12-18
CN112102463B true CN112102463B (zh) 2024-03-29

Family

ID=71108515

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010558311.5A Active CN112102463B (zh) 2019-06-18 2020-06-18 通过位置虚拟化技术操作3d应用的系统和方法

Country Status (3)

Country Link
US (1) US20200401436A1 (zh)
EP (1) EP3754501A1 (zh)
CN (1) CN112102463B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200403935A1 (en) * 2019-06-18 2020-12-24 Tmrw Foundation Ip & Holding S. À R.L. Software engine virtualization and dynamic resource and task distribution across edge and cloud
CN111161411B (zh) * 2020-04-08 2020-07-14 速度时空信息科技股份有限公司 一种基于八叉树的三维建筑物模型lod方法
US20230072553A1 (en) * 2021-09-08 2023-03-09 International Business Machines Corporation Intelligent container configuring using augmented reality
CN116570925A (zh) * 2023-05-19 2023-08-11 韶关学院 一种基于ar开发的资源管理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2995425A1 (fr) * 2012-09-11 2014-03-14 Bruno Hubert Prely Procede et systeme de mise en oeuvre d'une infrastructure informatique en nuage agregeant des ressources isolees mises a disposition a travers un reseau
WO2015009318A1 (en) * 2013-07-19 2015-01-22 Hewlett-Packard Development Company, L.P. Virtual machine resource management system and method thereof
CN108369533A (zh) * 2015-10-13 2018-08-03 施耐德电器工业公司 软件定义自动化系统的集中化管理

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8433802B2 (en) * 2010-01-26 2013-04-30 International Business Machines Corporation System and method for fair and economical resource partitioning using virtual hypervisor
US8949316B2 (en) * 2010-03-09 2015-02-03 Avistar Communications Corp. Scalable high-performance interactive real-time media architectures for virtual desktop environments
US8924964B2 (en) * 2010-11-01 2014-12-30 Microsoft Corporation Dynamic allocation and assignment of virtual environment
AU2012348348B2 (en) * 2011-10-28 2017-03-30 Magic Leap, Inc. System and method for augmented and virtual reality
US8922590B1 (en) * 2013-10-01 2014-12-30 Myth Innovations, Inc. Augmented reality interface and method of use
US20160198003A1 (en) * 2015-01-02 2016-07-07 Siegfried Luft Architecture and method for sharing dedicated public cloud connectivity
US20160197835A1 (en) * 2015-01-02 2016-07-07 Siegfried Luft Architecture and method for virtualization of cloud networking components
US10200387B2 (en) * 2015-11-30 2019-02-05 International Business Machines Corporation User state tracking and anomaly detection in software-as-a-service environments
US10872145B2 (en) * 2017-10-25 2020-12-22 International Business Machines Corporation Secure processor-based control plane function virtualization in cloud systems
US10206094B1 (en) * 2017-12-15 2019-02-12 Industrial Technology Research Institute Mobile edge platform servers and UE context migration management methods thereof
US11341727B2 (en) * 2019-06-18 2022-05-24 The Calany Holding S. À R.L. Location-based platform for multiple 3D engines for delivering location-based 3D content to a user

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2995425A1 (fr) * 2012-09-11 2014-03-14 Bruno Hubert Prely Procede et systeme de mise en oeuvre d'une infrastructure informatique en nuage agregeant des ressources isolees mises a disposition a travers un reseau
WO2015009318A1 (en) * 2013-07-19 2015-01-22 Hewlett-Packard Development Company, L.P. Virtual machine resource management system and method thereof
CN108369533A (zh) * 2015-10-13 2018-08-03 施耐德电器工业公司 软件定义自动化系统的集中化管理

Also Published As

Publication number Publication date
CN112102463A (zh) 2020-12-18
US20200401436A1 (en) 2020-12-24
EP3754501A1 (en) 2020-12-23

Similar Documents

Publication Publication Date Title
US11245872B2 (en) Merged reality spatial streaming of virtual spaces
KR102236957B1 (ko) 가상 세계를 통해 가상 현실 응용 프로그램을 개발, 테스트하고, 실제 세계로 배포하기 위한 시스템 및 방법
CN112102463B (zh) 通过位置虚拟化技术操作3d应用的系统和方法
JP7302885B2 (ja) 仮想世界または現実世界の多次元3dエンジンコンピューティングおよび仮想化ベースの動的負荷分散
CN112104691B (zh) 跨边缘和云的软件引擎虚拟化以及动态资源和任务分布
KR20210086973A (ko) 협력적인 3d 맵 데이터 융합 플랫폼 및 그것의 가상 세계 시스템을 구현하는 시스템 및 방법
US20240037844A1 (en) 3d structure engine-based computation platform
EP3754589A1 (en) System and method for providing digital reality experiences and decentralized transactions of real estate projects
US11270513B2 (en) System and method for attaching applications and interactions to static objects
Robles-Ortega et al. Efficient visibility determination in urban scenes considering terrain information
US11471772B2 (en) System and method for deploying virtual replicas of real-world elements into a persistent virtual world system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 54 Montorf Road, Betangburg, Luxembourg

Applicant after: Karan Holdings Ltd.

Address before: 54 Montorf Road, Betangburg, Luxembourg

Applicant before: TMRW Foundation IP & Holding S.A.R.L.

CB02 Change of applicant information
CB02 Change of applicant information

Address after: 14-16 Pasteur Avenue, Luxembourg

Applicant after: Karan Holdings Ltd.

Address before: 54 Montorf Road, Betangburg, Luxembourg

Applicant before: Karan Holdings Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant