CN107148620A - 用于迁移虚拟机以改善移动用户体验的方法和装置 - Google Patents

用于迁移虚拟机以改善移动用户体验的方法和装置 Download PDF

Info

Publication number
CN107148620A
CN107148620A CN201580061015.1A CN201580061015A CN107148620A CN 107148620 A CN107148620 A CN 107148620A CN 201580061015 A CN201580061015 A CN 201580061015A CN 107148620 A CN107148620 A CN 107148620A
Authority
CN
China
Prior art keywords
mobile device
cloud
virtual machine
server
cloud server
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.)
Granted
Application number
CN201580061015.1A
Other languages
English (en)
Other versions
CN107148620B (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN107148620A publication Critical patent/CN107148620A/zh
Application granted granted Critical
Publication of CN107148620B publication Critical patent/CN107148620B/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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/16Gateway arrangements

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 Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Telephonic Communication Services (AREA)
  • User Interface Of Digital Computer (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

一种提供了一种控制多个云服务器的云控制服务器,云控制服务器包括通信单元,被配置为向移动设备发送关于多个云服务器中的一个或多个云服务器的信息,从移动设备接收由移动设备的用户从一个或多个云服务器中选择的云服务器的识别信息;以及控制器,被配置为将移动设备的虚拟机从移动设备的虚拟机所在的并且来自于多个云服务器中的云服务器迁移到所选择的云服务器,其中移动设备的虚拟机执行从移动设备输出的应用。

Description

用于迁移虚拟机以改善移动用户体验的方法和装置
技术领域
本公开涉及用于通过使用设备来迁移虚拟机的方法和装置。
背景技术
由于在移动设备中执行的应用需要比移动设备中可用的更多的计算资源,所以正在开发将应用的工作负载卸载到服务器的技术。
例如,可以通过使用服务器的计算资源来执行应用,并且移动设备可以从服务器接收执行应用的结果并可以输出执行结果。因此,用户可以具有好像该应用在移动设备中执行的体验。
然而,当用户持续移动时,如果移动设备和服务器之间的距离增加,则移动设备和服务器之间的数据传输可能变慢。此外,移动设备可以根据工作负载的特性而需要具有较高计算能力的虚拟机。因此,需要一种由移动设备将移动设备的虚拟机迁移到高度适合的云服务器的方法。
发明内容
【技术方案】
提供了用于通过使用移动设备迁移虚拟机的方法和装置。
附图说明
通过结合附图对示例性实施例的以下描述,这些和/或其他方面将变得清楚和更容易理解,在附图中:
图1A是用于描述根据示例性实施例的由云控制服务器执行的迁移移动设备的虚拟机的方法的示图;
图1B是用于描述根据示例性实施例的由云控制服务器执行的、基于估计的延迟确定虚拟机要被迁移到的云服务器的方法的示图;
图1C是根据示例性实施例的用于描述基于延迟的、由云控制服务器执行的迁移虚拟机的方法的示图;
图1D是用于描述根据示例性实施例的由云控制服务器执行的、基于估计的收费成本而确定虚拟机要迁移到的云服务器的方法的示图;
图1E是用于描述根据示例性实施例的由云控制服务器执行的、基于移动设备的估计电池消耗而确定虚拟机要迁移到的云服务器的方法的示图;
图1F是用于描述根据示例性实施例的由移动设备执行的提供用于设置关于确定迁移服务器的参考的菜单的方法的示图;
图2是根据示例性实施例的由云控制服务器执行的、基于用户的选择而迁移虚拟机的方法的流程图;
图3是用于描述根据示例性实施例的迁移虚拟机的方法的示图;
图4是根据另一示例性实施例的由云控制服务器执行的、基于用户的选择而迁移虚拟机的方法的流程图;
图5是用于描述根据示例性实施例的由移动设备执行的、提供用于选择移动设备的虚拟机要迁移到的云服务器的用户界面的方法的示图;
图6A是用于描述根据另一示例性实施例的由移动设备执行的、提供用于选择移动设备的虚拟机要迁移到的云服务器的用户界面的方法的示图;
图6B是用于描述根据另一示例性实施例的由移动设备执行的、提供用于选择移动设备的虚拟机要迁移到的云服务器的用户界面的方法的示图;
图7是根据示例性实施例的由云控制服务器执行的、基于移动设备的用户的移动路线信息确定移动设备的虚拟机要迁移到的云服务器的方法的流程图;
图8是根据另一个示例性实施例的由云控制服务器执行的、基于移动设备的用户的移动路线信息而确定移动设备的虚拟机要迁移到的云服务器的方法的流程图;
图9示出根据示例性实施例的存储在云控制服务器中的用户的移动路线信息;
图10是根据另一示例性实施例的由云控制服务器执行的、用于描述根据用户的移动路线信息而确定移动设备的虚拟机要迁移到的云服务器的方法的示图;
图11是根据另一个示例性实施例的由云控制服务器执行的、用于描述根据用户的移动路线信息和延迟而确定移动设备的虚拟机要迁移到的云服务器的方法的示图;
图12是根据示例性实施例的由云控制服务器执行的、基于移动设备要被沿着其移动的估计路线和用户的虚拟机使用模式而迁移移动设备的虚拟机的方法的流程图;
图13A示出根据示例性实施例的存储在云控制服务器中的用户的虚拟机使用模式信息;
图13B是根据另一示例性实施例的由云控制服务器执行的、基于移动设备要被沿着其移动的估计路线和用户的虚拟机使用模式而迁移移动设备的虚拟机的方法的示图;
图14A示出根据另一示例性实施例的关于存储在云控制服务器中的用户的移动路线和虚拟机使用模式的信息;
图14B是根据另一示例性实施例的由云控制服务器执行的、基于移动设备要被沿着其移动的估计的路线和用户的虚拟机使用模式而迁移移动设备的虚拟机的方法的示图;
图15是用于描述根据示例性实施例的当家庭云服务器被注册在云控制服务器中时在家庭云服务器和公共云服务器之一之间迁移虚拟机的方法的示图;
图16是用于描述根据示例性实施例的由家庭云服务器执行的通过使用家庭云系统来执行虚拟机的方法的示图;
图17示出根据示例性实施例的当移动设备进入家庭区域时在移动设备的屏幕上显示的用户界面;
图18是用于描述根据示例性实施例的由移动设备执行的、显示用于接收在家庭云系统中选择设备的输入的用户界面的方法的示图;
图19是根据示例性实施例的云控制服务器的框图;和
图20是示出根据示例性实施例的移动设备的配置的框图。
具体实施方式
另外的方面将在下面的描述中部分地阐述,并且部分地将从描述中变得明显,或者可以通过实施所提供的示例性实施例来了解。
根据示例性实施例的一个方面,控制多个云服务器的云控制服务器包括:通信单元,被配置为向移动设备发送关于多个云服务器中的一个或多个云服务器的信息、从所述移动设备接收由所述移动设备的用户选择的并且来自所述一个或多个云服务器的云服务器的识别信息;以及控制器,被配置为将所述移动设备的虚拟机从所述移动设备的虚拟机所在的、并且来自于所述多个云服务器中的云服务器迁移到所选择的云服务器,其中移动设备的虚拟机执行从移动设备输出的应用。
关于一个或多个云服务器的信息可以包括一个或多个云服务器中的每一个云服务器的识别信息、一个或多个云服务器中的每一个云服务器的名称信息、一个或多个云服务器中的每一个云服务器的位置信息、移动设备与一个或多个云服务器中的每一个云服务器之间的距离的信息、一个或多个云服务器中的每一个云服务器可提供的虚拟机的配置信息以及一个或多个云服务器中的每一个云服务器可提供的虚拟机的计算能力信息中的至少之一。
通信单元还可以被配置成从移动设备接收对关于能够提供虚拟机的一个或多个云服务器的信息的请求,以及当接收到请求时将关于一个或多个云服务器的信息发送到移动设备。
通信单元还可以被配置成:获得移动设备的位置信息、基于移动设备的位置信息而确定位于距移动设备的位置预设距离内的一个或多个云服务器以及将关于一个或多个云服务器的信息发送到移动设备。
通信单元还可以被配置成基于用于执行应用的计算能力而确定能够提供具有计算能力的虚拟机的一个或多个云服务器,并将关于一个或多个云服务器的信息发送到移动设备。
根据另一示例性实施例的一方面,控制多个云服务器的云控制服务器包括:通信单元,被配置成获得移动设备的用户的移动路线信息和移动设备的位置信息;以及控制器,被配置成基于位置信息和所述移动设备的用户的移动路线信息来确定所述移动设备要被沿着其移动的估计路线,基于所述移动设备要被沿着其移动的估计路线而确定移动设备的虚拟机将被迁移到的云服务器,并且将移动设备的虚拟机从其中正被执行的移动设备的虚拟机的、并且来自多个云服务器中的云服务器迁移到所确定的云服务器,其中所述移动设备的虚拟机执行从所述移动设备输出的应用。
移动设备的估计路线可以包括移动设备在估计路线上的估计速度,并且控制器还可以被配置成确定位于距移动设备的估计路线预设距离内的一个或多个云服务器以及基于估计的移动设备的速度来确定来自所述一个或多个云服务器中的并且所述移动设备的虚拟机要被迁移到的云服务器。
控制器还可以被配置为确定位于距移动设备的估计路线的预设距离内的一个或多个云服务器,并且确定一个或多个云服务器中的提供具有最高计算能力的虚拟机的云服务器作为移动设备的虚拟机要迁移到的云服务器。
控制器还可以被配置为获得关于移动设备的虚拟机的用户的使用模式信息、基于使用模式信息而确定迁移移动设备的虚拟机的时间以及在所确定的时间迁移移动设备的虚拟机。
控制器还可以被配置用于基于使用模式信息而确定用户在预设时段期间不使用移动设备的虚拟机的时段作为迁移移动设备的虚拟机的时间,并且在所确定的时间迁移所述移动设备的虚拟机。
根据另一示例性实施例的一方面,一种迁移虚拟机的方法,由控制多个云服务器的云控制服务器执行,该方法包括:向移动设备发送关于多个云服务器中的一个或多个云服务器的信息;从移动设备接收由移动设备的用户选择的、来自于一个或多个云服务器的云服务器的识别信息;以及将移动设备的虚拟机从移动设备的虚拟机所在的、并且来自于所述多个云服务器的云服务器迁移到所选择的云服务器,其中所述移动设备的虚拟机执行从移动设备输出的应用。
关于一个或多个云服务器的信息可以包括一个或多个云服务器中的每一个云服务器的识别信息、一个或多个云服务器中的每一个云服务器的名称信息、一个或多个云服务器中的每一个云服务器的位置信息、移动设备与所述一个或多个云服务器中的每一个云服务器之间的距离的信息、所述一个或多个云服务器中的每一个云服务器可提供的虚拟机的配置信息以及所述一个或多个云服务器中的每一个云服务器可提供的虚拟机的计算能力信息中的至少之一。
信息的发送可以包括从移动设备接收对关于能够提供虚拟机的一个或多个云服务器的信息的请求;以及当接收到所述请求时,将关于所述一个或多个云服务器的信息发送到所述移动设备。
信息的发送可以包括:获得移动设备的位置信息;基于所述移动设备的位置信息而确定位于距所述移动设备的位置预设距离内的所述一个或多个云服务器;以及将关于所述一个或多个云服务器的信息发送到所述移动设备。
信息的发送可以包括基于用于执行应用的计算能力来确定能够提供具有计算能力的虚拟机的一个或多个云服务器;以及将关于所述一个或多个云服务器的信息发送到所述移动设备。
根据另一示例性实施例的一方面,一种迁移虚拟机的方法,由控制多个云服务器的云控制服务器执行,该方法包括:获得移动设备的用户的移动路线信息;获得所述移动设备的位置信息;基于所述移动设备的位置信息和移动设备的用户的移动路线信息而确定所述移动设备要沿着其移动的估计路线;基于所述移动设备要被移动的估计路线而确定所述移动设备的虚拟机要被迁移到的云服务器;以及将移动设备的虚拟机从正被执行的移动设备的虚拟机所在的、并且来自于多个云服务器中的云服务器迁移到所确定的云服务器,其中移动设备的虚拟机执行从所述移动设备输出的应用。
移动设备的估计路线可以包括移动设备在估计路线上的估计速度,并且基于估计路线确定云服务器可以包括确定位于距离移动设备的估计路线预设距离内的一个或多个云服务器、基于移动设备的估计速度而确定来自所述一个或多个云服务器中的、并且所述移动设备的虚拟机要被迁移到的云服务器。
基于估计路线确定云服务器可以包括:确定位于距离移动设备的估计路线预设距离内的一个或多个云服务器;以及确定提供所述一个或多个云服务器中具有最高计算能力的虚拟机的云服务器作为移动设备的虚拟机要迁移到的云服务器。
基于估计路线确定云服务器可以包括:获得关于移动设备的虚拟机的用户的使用模式信息;基于使用模式信息来确定迁移所述移动设备的虚拟机的时间;以及在所确定的时间迁移移动设备的虚拟机。
确定迁移虚拟机的时间可以包括:基于使用模式信息,确定用户在预设时段期间不使用移动设备的虚拟机的时段作为迁移移动设备的虚拟机的时间。
【发明模式】
本申请要求于2014年10月10日在韩国知识产权局提交的韩国专利申请号10-2014-0136963的权益,其公开内容通过引用整体并入本文。
在下文中,将简要描述在说明书中使用的术语,并且将详细描述发明性构思。
本文使用的包括描述性或技术术语的所有术语应被解释为具有对本领域普通技术人员显而易见的含义。然而,根据本领域普通技术人员的意图、先例或新技术的出现,术语可以具有不同的含义。此外,一些术语可以由申请人任意选择,并且在这种情况下,将在本发明性构思的详细描述中详细描述所选术语的含义。因此,本文使用的术语必须基于术语的含义以及整个说明书中的描述来定义。
此外,当部件“包括”或“包含”元件时,除非存在与其相反的特定描述,否则该部件还可以包括其他元件,而不排除其他元件。在下面的描述中,诸如“单元”和“模块”的术语表示用于处理至少一个功能或操作的单元,其中单元和块可以实现为硬件或软件或通过组合硬件和软件来体现。
在整个说明书中,术语“虚拟化”可以指示在一个物理服务器中执行多个操作系统的能力。在这种情况下,操作系统可以分别在彼此独立和分离的硬件环境中操作,并且可以基于操作系统中的每一个来执行应用。
在整个说明书中,术语“虚拟机”可以共同地指示在虚拟化环境中执行的操作系统和应用。虚拟机可以具有其自己的计算资源,包括中央处理单元(CPU)、存储器、硬盘、网络等。例如,具有2GHz CPU、2GB随机存取存储器(RAM)、10GB硬盘和唯一的网际协议(IP)地址的虚拟机可以作为软件实现。
在整个说明书中,术语“虚拟机的配置信息”可以指关于形成虚拟机的硬件资源的信息。例如,虚拟机的配置信息可以包括关于CPU、图形处理单元(GPU)、RAM和硬盘的规格的信息。
在整个说明书中,其中正在执行虚拟机的实际物理设备可以被称为主机设备。此外,其中正在执行虚拟机的实际物理设备的操作系统可以被称为主机操作系统。此外,在虚拟机中执行的操作系统可以被称为客户操作系统。
在整个说明书中,术语“虚拟机迁移”可以指虚拟机从一个物理服务器或设备迁移到另一个物理服务器或设备。例如,被迁移到第二物理设备的第一物理设备中的源虚拟机可以意味着在第二物理设备中生成目标虚拟机,并且源虚拟机中的数据被转发到所生成的目标虚拟机。
例如,一个虚拟机中的数据可以包括虚拟机的硬盘中的数据、虚拟机的存储器中的数据、虚拟机的CPU寄存器数据等。
在整个说明书中,术语“云服务器”通常可以指在多个物理机器中配置的虚拟化计算环境的基础设施。云服务器可以动态地分配或移除硬件资源,并且可以向多个用户提供虚拟机服务。云服务器可以包括公共云服务器和家庭云服务器。
公共云服务器可以指开放式云服务,通过该公共云服务器一般用户可以被分配虚拟机并且可以使用虚拟机。公共云服务器可以由提供用于执行虚拟机的资源的服务提供者运行。加入公共云服务的每个用户可以通过使用在公共云服务器中注册的帐户通过公共云服务器执行虚拟机。
家庭云服务器可以指特定个人或群组的云服务。在一些实施例中,家庭云服务器可以被称为私有云服务器。
在整个说明书中,术语“工作负载(workload)”可以指示设备需要处理的作业。工作负载可以指整个应用或整个操作系统,或者可以指程序的一些代码。当工作负载增加时,也可以增加由CPU处理的代码的数量、存储器的使用、网络的使用和存储器的使用。
在整个说明书中,术语“卸载(offload)”可以指示移动设备的工作负载不由移动设备处理,而是以执行移动设备的工作负载的方式由服务器处理,并且执行工作负载的结果从服务器发送到移动设备。
在整个说明书中,术语“延迟”可以指示从移动设备发送用户输入到云服务器的时间到执行根据用户输入而处理的工作负载的结果从云服务器返回到移动设备的时间的时段。可以基于执行工作负载所需的资源信息、处理工作负载的虚拟机的资源信息以及虚拟机和移动设备之间的通信速度来计算延迟。
在整个说明书中,术语“用户的移动路线信息”可以意味着指示用户根据时间的位置的信息。例如,用户的移动路线信息可以是指示一天中根据时间而变化的用户的位置的信息。
在整个说明书中,术语“关于虚拟机的用户的使用模式”可以是指示用户使用虚拟机的时间点或用户使用虚拟机的位置的信息。
现在将参考附图更全面地描述一个或多个实施例。然而,一个或多个实施例可以以许多不同的形式实施,并且不应被解释为限于本文所阐述的实施例;相反,提供这些实施例以使得本公开将是彻底和完全的,并且将向本领域的普通技术人员充分传达一个或多个实施例的概念。在下面的描述中,不详细描述公知的功能或结构,因为它们将以不必要的细节模糊一个或多个实施例。
如本文所使用的,术语“和/或”包括一个或多个相关所列项目的任何和所有组合。诸如“至少一个”的表述在元素列表之前时修饰整个元素列表,并且不修饰列表的各个元素。
在下文中,第一至第三云服务器2000a至2000c也可以被称为云服务器2000或公共云服务器2000。
图1A是用于描述根据示例性实施例的由云控制服务器1000执行的迁移移动设备100的虚拟机的方法的示图。
参考图1A,执行移动设备100的工作负载的虚拟机可以从第一云服务器2000a被迁移到第二云服务器2000b。
移动设备100的工作负载可以被卸载到也被称为云服务器2000的第一至第三云服务器2000a至2000c中的一个。
例如,需要在移动设备100中执行的应用或操作系统可以被卸载到云服务器2000。云服务器2000可以执行从移动设备100卸载的应用或操作系统,并且向移动设备100可以发送执行应用或操作系统的结果。
例如,当移动设备100请求云服务器2000执行游戏时,云服务器2000可以生成虚拟机以执行所请求的游戏,并且可以控制该虚拟机执行游戏应用。当执行游戏应用时,云服务器2000可以仅将游戏的执行结果(例如游戏执行图像、声音数据等)发送到移动设备100。移动设备100可以接收来自云服务器2000的游戏的执行结果,并且可以输出接收的游戏的执行结果。此外,云服务器2000可以从移动设备100接收移动设备100的用户输入。云服务器2000可以执行接收的用户输入,就好像用户输入直接输入到云服务器2000中的虚拟机。云服务器2000中的虚拟机可以根据接收到的用户输入来执行游戏应用。
此外,要在移动设备100中执行的应用或操作系统的程序的一些代码可以被卸载到云服务器2000。例如,当移动设备100执行运动识别应用时,移动设备100可以向云服务器2000卸载由需要大量计算的代码组成的模块。在这种情况下,可以经由远程过程调用(RPC)进程来实现对卸载的模块的调用。云服务器2000可以由于移动设备100的呼叫而执行卸载的模块,并且执行结果可以自动返回到移动设备100。
移动设备100可以根据用户的选择将工作负载卸载到云服务器2000。此外,根据在移动设备100中设置的标准,移动设备100可以自动将工作负载卸载到云服务器2000。例如,在移动设备100必须执行需要大量计算的工作负载的情况下或者必须执行需要相对于外部数据库的高流量的工作负载的情况下,移动设备100可以自动将工作负载卸载到云服务器2000。
需要大量计算的工作负载或需要相对于外部数据库的高流量的工作负载可以包括光学字符读取器应用、智能字符识别应用、运动识别应用、面部识别应用、面部表情识别应用、对象识别应用、语音识别应用、增强现实应用、智能数据库、图像搜索应用、病毒扫描应用、行为分析应用(behavior profiling application)等。
移动设备100的工作负载的卸载可以应用于网络应用。例如,在发送到移动设备100的网页包括需要大量计算的渲染对象的情况下,作为网络服务器和移动设备100之间的代理服务器操作的云服务器2000可以渲染发送到移动设备100的网页的对象(这需要大量的计算),从而可以执行移动设备100的工作负载。
移动设备100可以将要在移动设备100中执行的工作负载卸载到云服务器2000。例如,移动设备100可以允许移动设备100的工作负载由云服务器2000处理,可以接收来自云服务器2000的工作负载的执行结果,从而可以向用户提供工作负载的执行结果。移动设备100可以从用户接收用户输入,并且可以将用户输入发送到云服务器2000。因此,用户可以具有好像在移动设备100中执行应用的体验。
云控制服务器1000可以是管理云服务器2000的服务器。云控制服务器1000可以是不具有执行虚拟机的能力的单独的服务器,或者可以是能够执行或迁移虚拟机的云服务器2000中之一。
云控制服务器1000可以监视云服务器2000。例如,云控制服务器1000可以从云服务器2000接收关于要由云服务器2000提供的虚拟机的虚拟机信息。虚拟机信息可以包括云服务器2000可以生成的虚拟机的数量。此外,虚拟机信息可以包括虚拟机的资源规格(specification)信息、虚拟机的估计的延迟信息、估计的收费成本信息和估计的电池使用信息。
云控制服务器1000可以监视移动设备100和移动设备100的虚拟机。例如,云控制服务器1000可以周期性地从移动设备100接收移动设备100的位置信息。此外,云控制服务器1000可以监视移动设备100的虚拟机是否正被使用。
云控制服务器1000可以与移动设备100交互操作,从而可以从云服务器2000中确定移动设备100的虚拟机要迁移到的云服务器2000。
例如,云控制服务器1000可以基于执行迁移目标工作负载所需的资源信息、云服务器2000可提供的每个虚拟机的资源信息以及移动设备100和每个虚拟机之间的估计的通信速度来计算延迟,并且可以确定在执行虚拟机时具有最小延迟的云服务器2000作为虚拟机要迁移到的目标云服务器2000。
延迟可以指从移动设备100将用户输入发送到云服务器2000的时间到根据用户输入处理的工作负载的执行结果从云服务器2000返回到移动设备1000的时间的时段。因此,当进一步增加执行工作负载所需的资源的规格,并且云服务器2000可提供的虚拟机的性能进一步降低或者移动设备100和云服务器2000之间的距离进一步增加时,延迟可能增加。
此外,例如,云控制服务器1000可以基于执行迁移目标工作负载所需的资源信息、关于云服务器2000可提供的虚拟机的信息、移动设备100和每个云服务器2000之间的距离以及由于使用资源而导致的估计的收费成本而将具有最低成本的云服务器2000确定为虚拟机要被迁移到的目标云服务器2000。
此外,例如,云控制服务器1000可以基于执行迁移目标工作负载所需的资源信息、关于云服务器2000可提供的虚拟机的信息以及移动设备100与每个云服务器2000之间的距离来计算每个云服务器2000的电池的使用量。然后,基于计算的电池的使用量,云控制服务器1000可以将与最少电池消耗相对应的云服务器2000确定为虚拟机要被迁移到的目标云服务器2000。
此外,例如,云控制服务器1000可以从移动设备100接收由移动设备100的用户选择的云服务器2000的识别信息,并且可以将所选择的云服务器2000确定为虚拟机要被迁移到的目标云服务器2000。
此外,例如,云控制服务器1000可以基于移动设备100的当前位置和移动设备100的用户的移动路线信息来确定移动设备100的估计的移动路线,并且基于移动设备100的估计的移动路线,云控制服务器1000可以将与估计路线最相邻的云服务器2000确定为移动设备100的虚拟机要被迁移到的目标云服务器2000。
此外,例如,云控制服务器1000可以考虑移动设备100的估计路线和估计的速度,并且因此可以确定最少地引起对估计路线的迁移的云服务器2000作为移动设备100的虚拟机要被迁移到的目标云服务器2000。
此外,例如,云控制服务器1000可以基于移动设备100的用户的虚拟机使用模式信息来确定何时迁移移动设备100的虚拟机。例如,基于用户的虚拟机使用模式信息,云控制服务器1000可以确定用户在预定义长度的时间内不使用虚拟机的时段,并且可以在确定的时段内迁移用户的虚拟机。
当确定了虚拟机要被迁移到的目标云服务器2000时,云控制服务器1000可以控制云服务器2000,以允许虚拟机迁移到确定的目标云服务器2000。
图1B是用于描述根据示例性实施例的由云控制服务器1000执行的基于估计的延迟来确定虚拟机要被迁移到的云服务器2000方法的示图。
参考图1B,云控制服务器1000可以分别计算第一、第二和第三云服务器2000a、2000b和2000c的估计的延迟,并且可以将第二云服务器2000b中的虚拟机迁移到具有最小延迟的第三云服务器2000c。
延迟可以指从移动设备发送用户输入到云服务器的时间到根据用户输入处理的工作负载的执行结果从云服务器返回到移动设备的时间的时段。
云控制服务器1000可以确定执行工作负载所需的计算处理能力、存储器规格和网络速度。例如,云控制服务器1000可以从移动设备100接收用于执行工作负载的资源信息。另外,例如,云控制服务器1000可以从其中放置了执行移动设备100的工作负载的虚拟机的云服务器2000接收由云服务器2000计算的用于执行工作负载的资源信息。
云控制服务器1000可以基于用于执行工作负载的资源信息、关于云服务器2000可提供的虚拟机的信息以及移动设备100与每个云服务器2000之间的距离来分别计算与云服务器2000相对应的估计的延迟。
例如,当虚拟机的计算处理速度低于工作负载所请求的计算处理速度时,云控制服务器1000可以确定估计的延迟为高。此外,当虚拟机的存储器小于工作负载所请求的存储器时,云控制服务器1000可以将估计的延迟确定为高。
此外,例如,当移动设备100和云服务器2000之间的距离增加时,云控制服务器1000可以将估计的延迟确定为高。
此外,云控制服务器1000可以向移动设备100发送云服务器2000的网络地址,并且可以请求移动设备100测试(例如ping测试)与云服务器2000的网络状态。当从移动设备100接收到与云服务器2000的网络状态时,因为云服务器2000的分组交换时间和分组丢失率大,所以云控制服务器1000可以确定云服务器2000的估计的延迟为高。
参考图1B,移动设备100和第一云服务器2000a之间的距离最短,但第一云服务器2000a的计算处理速度和存储器容量小于移动设备100的工作负载所请求的最小规格,因此,云控制服务器1000可以确定第一云服务器2000a的估计的延迟高于第三云服务器2000c的估计的延迟。因此,云控制服务器1000可以将第二云服务器2000b中的虚拟机迁移到第三云服务器2000c。
图1C是根据示例性实施例的用于描述由云控制服务器1000执行的、基于延迟的迁移虚拟机的方法的示图。
参考图1C,由于移动设备100被移动,云控制服务器1000可以计算延迟,并且可以基于计算出的延迟来迁移虚拟机。
参考图1C,移动设备100的用户从釜山市开始并通过火车去首尔市。用户识别报纸的字符,并且因此通过使用移动设备100中的光学字符读取器应用来检索信息。此外,云控制服务器1000被设置为基于延迟来迁移用户的虚拟机。用户将光学字符读取器应用程序卸载到作为用户家中的云服务器的服务器1 2000a(例如智能TV),并且用户上火车。服务器12000a中的虚拟机通过与移动设备100交互操作来执行光学字符读取器应用。
云控制服务器1000可以监视移动设备100的虚拟机。当火车启动并且因此移动设备100变得远离服务器1 2000a时,移动设备100和服务器1 2000a之间的延迟可能增加。
由于移动设备100正在朝向东大邱市移动,云控制服务器1000可以计算服务器12000a和服务器2 2000b的延迟。例如,云控制服务器1000可以基于移动设备100与服务器12000a和服务器2 2000b之间的距离以及服务器1 2000a和服务器2 2000b的计算处理速度来计算服务器1 2000a和服务器22000b的延迟。参考图1C,当移动设备100接近服务器22000b时,并且服务器2 2000b的计算处理速度高于服务器1 2000a的计算处理速度时,云控制服务器1000可以将服务器1 2000a中的虚拟机迁移到服务器2 2000b。
由于移动设备100正从东大邱市朝向光明市移动,云控制服务器1000可以计算服务器2 2000b和服务器3 2000c的延迟。当移动设备100更靠近服务器3 2000c,并且服务器32000c的计算处理速度高于服务器2 2000b的计算处理速度时,云控制服务器1000可以将服务器2 2000b中的虚拟机迁移到服务器3 2000c。
由于移动设备100从光明市朝着首尔市移动,云控制服务器1000可以计算服务器32000c和服务器4 2000d的延迟。参考图1C,尽管移动设备100更靠近服务器4 2000d,但是移动设备100和服务器4 2000d之间的距离以及移动设备100和服务器3 2000c之间的距离之差不大,服务器4 2000d的计算处理速度不满足工作负载所需要的计算处理速度,并且服务器4 2000d的计算处理速度显著地小于服务器3 2000c的计算处理速度,因此云控制服务器1000不将服务器3 2000c中的虚拟机迁移到服务器4 2000d,并且可以继续执行服务器32000c中的虚拟机。
图1D是用于描述根据示例性实施例的由云控制服务器1000执行的、基于估计的收费成本来确定虚拟机要被迁移到的云服务器2000的方法的示图。
参考图1D,云控制服务器1000可以分别计算与云服务器2000相对应的估计的收费成本,并且可以将第二云服务器2000b中的虚拟机迁移到其计算的估计收费成本最小的第三云服务器2000c。
云控制服务器1000可以分别存储与云服务器2000相对应的计费策略。例如,可能已经根据构成虚拟机的CPU的性能、CPU的数量、存储器容量、硬件容量、操作系统的类型以及是否设置了GPU和视频图形卡而确定了相应于每个云服务器2000的要收费的成本。此外,例如,可以考虑关于与每个云服务器2000的连接的网络使用费来确定要收费的成本。
云控制服务器1000可以基于用于执行要被迁移的工作负载的资源信息和分别与云服务器2000相对应的计费策略来计算估计的收费成本。例如,云控制服务器1000可以与云服务器2000中的每一个相对应地获得满足由工作负载所请求的最低规格并且来自云服务器2000可提供的虚拟机的虚拟机的价格。例如,在移动设备100的工作负载所请求的最低规格是1GHz的CPU和2GB的存储器的情况下,云控制服务器1000可以确定由具有2GHz的CPU、具有2GB的存储器和具有20GB的硬盘构成的虚拟机的价格,作为与第三云服务器2000c对应的价格,其中虚拟机来自第三云服务器2000c提供的具有不同资源的虚拟机。
参考图1D,云控制服务器1000可以将第二云服务器2000b中的虚拟机迁移到估计的收费成本是免费的第一云服务器2000a。
图1E是用于描述根据示例性实施例的由云控制服务器1000执行的、基于移动设备100的估计的电池消耗来确定虚拟机要被迁移到的云服务器2000的方法的示图。
参考图1E,云控制服务器1000可以分别计算相对于云服务器2000的移动设备100的估计的电池消耗,并且可以将第二云服务器2000b中的虚拟机迁移到相应于最小的计算的电池消耗的云服务器2000。
移动设备100的电池消耗可以根据与云服务器2000连接的网络的类型或状态在每个云服务器2000中变化。例如,如果移动设备100可以经由短距离无线网络(例如Wi-Fi)直接连接到云服务器2000,则可以减少移动设备100的电池消耗。
如果与云服务器2000的通信速度慢或云服务器2000的分组丢失率高,则分组重传时间或分组等待时间增加,使得移动设备100的电池消耗可能增加。
移动设备100的电池消耗可以考虑用于执行工作负载的资源信息和关于云服务器2000可提供的虚拟机的信息而确定。例如,如果云服务器2000不能提供满足要被迁移的工作负载所需的最低规格的虚拟机,则延迟可能增加。当延迟增加时,移动设备100输出执行结果的时段就增加,并且当用于输出执行结果的时段增加时,可能增加移动设备100的电池消耗。
参考图1E,移动设备100和第一云服务器2000a之间的距离最短,并且移动设备100能够与第一云服务器2000a进行短距离无线通信。然而,第一云服务器2000a的计算处理速度和存储器容量小于移动设备100的工作负载所请求的最低规格。此外,移动设备100和第三云服务器2000c之间的距离小于移动设备100和第二云服务器2000b之间的距离。因此,云控制服务器1000可以按照第三云服务器2000c、第一云服务器2000a和第二云服务器2000b的顺序确定估计的电池消耗是最大的。
因此,云控制服务器1000可以将第二云服务器2000b中的虚拟机迁移到第三云服务器2000c。
图1F是用于描述根据示例性实施例的由移动设备100执行的、提供用于设置关于确定迁移服务器的参考的菜单的方法的示图。
参考图1F,移动设备100可以提供用于设置关于确定迁移服务器的参考的菜单。
关于确定迁移服务器的参考可以包括最小延迟、最小收费成本和最小电池消耗。
当接收到选择移动设备100的屏幕上显示的关于确定多个迁移服务器的参考之一的用户输入时,移动设备100可以将所选择的参考发送到云控制服务器1000。在这种情况下,移动设备100还可以向云控制服务器1000发送在云控制服务器1000中注册的用户识别信息和移动设备100的识别信息。
当从移动设备100接收到关于确定迁移服务器的参考的信息时,云控制服务器1000可以相应于用户识别信息或移动设备100的识别信息而存储所接收的关于确定迁移服务器的参考的信息。
此外,云控制服务器1000可以基于由用户选择的关于确定迁移服务器的参考来迁移移动设备100的工作负载。
虽然图1示出了提供用于从多个迁移服务器中选择一个参考的菜单的方法,但是移动设备100可以提供用于选择多个参考的菜单。
图2是根据示例性实施例的由云控制服务器1000执行的、基于用户的选择来迁移虚拟机的方法的流程图。
在操作S210中,控制云服务器2000的云控制服务器1000可以向移动设备100发送关于云服务器2000中的一个或多个云服务器2000的信息。
关于一个或多个云服务器2000的信息可以包括以下中的至少一个:每个云服务器2000的识别信息、名称信息和位置信息;关于移动设备100和每个云服务器2000之间的距离的信息、每个云服务器2000可提供的虚拟机的配置信息以及每个云服务器2000可提供的虚拟机的计算能力信息。
云控制服务器1000可以周期性地向移动设备100发送关于一个或多个云服务器2000的信息。此外,当云控制服务器1000从移动设备100接收到关于能提供虚拟机的至少一个云服务器2000的信息的请求时,云控制服务器1000可以将关于一个或多个云服务器2000的信息发送到移动设备100。
云控制服务器1000可以确定来自云服务器2000中的并且能够执行移动设备100的虚拟机的一个或多个云服务器2000,并且可以将关于一个或多个云服务器2000的信息发送到移动设备100。
例如,云控制服务器1000可以获得移动设备100的位置信息,并且可以基于移动设备100的位置信息来确定位于距离移动设备100的位置预设距离内的一个或多个云服务器2000。
此外,例如,云控制服务器1000可以基于用于执行应用的计算能力来确定能够提供具有用于执行应用的计算能力的虚拟机的一个或多个云服务器2000。
当确定了一个或多个云服务器2000时,云控制服务器1000可以向移动设备100发送关于一个或多个云服务器2000的信息。
在操作S220中,云控制服务器1000可以从移动设备100接收来自一个或多个云服务器2000中的并且由用户选择的云服务器2000的识别信息。
在操作S230中,云控制服务器1000可以将移动设备100的虚拟机从该虚拟机被放置到其中的云服务器2000迁移到来自一个或多个云服务器2000中的被选择的云服务器2000。
移动设备100的虚拟机可以执行从移动设备100输出的应用。云控制服务器1000可以请求移动设备100的虚拟机正在其中执行的云服务器2000来迁移移动设备100的虚拟机到由用户选择的云服务器2000。将参考图3详细描述从正在执行移动设备100的虚拟机的云服务器2000将移动设备100的虚拟机迁移到所选择的云服务器2000的方法。
图3是用于描述根据示例性实施例的迁移虚拟机的方法的示图。
参考图3,第一云服务器2000a和第二云服务器2000b可以将在第一云服务器2000a中执行的虚拟机迁移到第二云服务器2000b。
第一云服务器2000a或第二云服务器2000b可以是主机设备。或者,第一云服务器2000a或第二云服务器2000b可以是家庭云服务器或公共云服务器。
第一云服务器2000a可以包括主机硬件2000a_30、主机操作系统2000a_20和虚拟机管理器2000a_10。
主机硬件2000a_30可以包括第一云服务器2000a中的物理计算资源。例如,主机硬件2000a_30可以包括CPU、硬盘、RAM、网络资源等。
主机操作系统2000a_20可以指安装在第一云服务器2000a中的操作系统。也就是说,主机操作系统2000a_20可以指能够控制主机硬件2000a_30的程序。此外,可以在主机操作系统2000a_20中执行各种应用。虚拟机管理器2000a_10也可以作为主操作系统2000a_20中的应用来执行。
虚拟机管理器2000a_10可以生成虚拟机。例如,虚拟机管理器2000a_10可以从外部设备接收虚拟机生成请求。虚拟机生成请求可以包括虚拟机配置信息。
虚拟机管理器2000a_10可以管理虚拟机。例如,虚拟机管理器2000a_10可以删除或迁移虚拟机。
虚拟机管理器2000a_10可以监视虚拟机。例如,虚拟机管理器2000a_10可以监视用于生成虚拟机的第一云服务器2000a的资源的剩余容量。此外,虚拟机管理器2000a_10可以监视虚拟机和移动设备100之间的延迟。
当从外部设备接收到虚拟机生成请求时,虚拟机管理器2000a_10可以基于虚拟机生成请求而生成虚拟机。例如,虚拟机管理器2000a_10可以基于虚拟机配置信息来虚拟化在执行虚拟机时所请求的资源。
例如,如果虚拟机配置信息指示具有2GHz的两个CPU、具有2GB的RAM和具有10GB的硬盘,则虚拟机管理器2000a_10可以生成具有2GHz的两个CPU、2GB的RAM和10GB的硬盘的虚拟机。
例如,虚拟机管理器2000a_10可以将第一云服务器2000a中的物理存储器分配给虚拟机,以便生成虚拟机的存储器或硬盘。然后,虚拟机管理器2000a_10可以通过将能够实现具有10GB的硬盘的文件(例如虚拟硬盘文件)加载到所分配的存储器来实现硬盘。此外,虚拟机管理器2000a_10可以将所分配的存储器的2GB决定为虚拟机的存储器。
虚拟机管理器2000a_10可以通过复用第一云服务器2000a的CPU来生成具有2GHz的两个CPU,并且因此可以实现虚拟机的CPU。
此外,虚拟机管理器2000a_10可以在虚拟机中执行用于执行应用的操作系统。此外,虚拟机管理器2000a_10可以在虚拟机中执行的操作系统中执行应用。虚拟机的操作系统和应用可以存储在虚拟机的硬盘中,并且当存储在硬盘中的操作系统和应用的执行代码被加载到虚拟机的RAM时,操作系统及应用可以在虚拟机中被执行。
在一些实施例中,硬件资源、操作系统或应用的虚拟化可以被称为硬件资源、操作系统或应用的实例化(instantiation)。
第二云服务器2000b还可以包括主机硬件2000b_30、主机操作系统2000b_20和虚拟机管理器2000b_10,并且主机硬件2000b_30、主机操作系统2000b_20和虚拟机管理器2000b_10的功能可以分别对应于第一云服务器2000a的各部分。
第一云服务器2000a可以将在第一云服务器2000a中执行的第二虚拟机迁移到第二云服务器2000b。
例如,第一云服务器2000a的虚拟机管理器2000a_10可以请求第二云服务器2000b的虚拟机管理器2000b_10将第一云服务器2000a中的第二虚拟机迁移到第二云服务器2000b。在这种情况下,迁移请求可以包括虚拟机配置信息。第一云服务器2000a中的第二虚拟机可以被称为源虚拟机。
当接收到迁移请求时,第二云服务器2000b的虚拟机管理器2000b_10可以生成虚拟机。例如,虚拟机管理器2000b_10可以将第二云服务器2000b的存储容量的一部分分配给用于存储要从第一云服务器2000a接收的源虚拟机中的数据的区域。此外,第二云服务器2000b的虚拟机管理器2000b_10可以基于虚拟机配置信息而生成虚拟机的计算资源。在这种情况下,在第二云服务器2000b中生成的虚拟机可以被称为目标虚拟机。
第一云服务器2000a的虚拟机管理器2000a_10可以将源虚拟机中的数据发送到第二云服务器2000b。
例如,第一云服务器2000a的虚拟机管理器2000a_10可以将源虚拟机中的所有数据发送到第二云服务器2000b。在这种情况下,第一云服务器2000a的虚拟机管理器2000a_10可以通过发送写入到分配给源虚拟机的并且是来自第一云服务器2000a的存储器中的存储器部分的整个数据来迁移虚拟机。因此,在源虚拟机中的CPU寄存器数据和存储在RAM和硬盘中的所有数据可以被发送到第二云服务器2000b。通过这样做,不仅源虚拟机中的应用还有源虚拟机中的操作系统都可以被发送到第二云服务器2000b。
尽管在图3中未示出,第一云服务器2000a的虚拟机管理器2000a_10可以仅将源虚拟机中的应用发送到第二云服务器2000b。
此外,第一云服务器2000a的虚拟机管理器2000a_10可以将与移动设备100的网络协议的状态数据(例如TCP控制块)发送到第二云服务器2000b。
当第二云服务器2000b的虚拟机管理器2000b_10从第一云服务器2000a的虚拟机管理器2000a_10接收到源虚拟机中的数据时,第二云服务器2000b的虚拟机管理器2000b_10可以存储从第一云服务器2000a接收的源虚拟机的RAM数据到第二云服务器2000b中的目标虚拟机的RAM中。此外,第二云服务器2000b的虚拟机管理器2000b_10可以存储从第一云服务器2000a接收的源虚拟机的硬盘数据到目标虚拟机的硬盘中。此外,第二云服务器2000b的虚拟机管理器2000b_10可以将从第一云服务器2000a接收的源虚拟机的CPU寄存器值写入目标虚拟机的CPU寄存器中。
当源虚拟机访问第一云服务器2000a内部或外部的存储设备时,第一云服务器2000a的虚拟机管理器2000a_10可以向第二云服务器2000b发送关于存储设备的访问权限的信息。
第二云服务器2000b的虚拟机管理器2000b_10可以执行目标虚拟机。当在第二云服务器2000b中执行目标虚拟机时,目标虚拟机可以经由网络与移动设备100连接。当目标虚拟机与移动设备100连接时,第二云服务器2000b可以将目标虚拟机的执行结果发送给移动设备100。
在一些实施例中,第一云服务器2000a可以停止执行源虚拟机,并且可以将源虚拟机迁移到第二云服务器2000b。
在一些实施例中,第一云服务器2000a和第二云服务器2000b可以不停止执行源虚拟机,并且可以将源虚拟机迁移到第二云服务器2000b。这里,在执行源虚拟机中的应用并且因此改变源虚拟机中的数据的情况下,可以仅将改变的部分发送到第二云服务器2000b。此外,移动设备100可以从第一云服务器2000a接收源虚拟机的执行结果,直到移动设备1000与第二云服务器2000b连接。
图4是根据另一示例性实施例的由云控制服务器1000执行的、基于用户的选择来迁移虚拟机的方法的流程图。
在操作S410中,移动设备100可以通过使用第一云服务器2000a中的虚拟机来执行应用。
例如,可以在第一云服务器2000a中的虚拟机中执行实际应用和实际操作系统,并且移动设备100可以从第一云服务器2000a接收虚拟机的执行结果,并且可以输出该执行结果。
移动设备100可以将用户输入发送到第一云服务器2000a。当从移动设备100接收到用户输入时,第一云服务器2000a可以基于用户输入而执行应用,并且可以将执行结果发送到移动设备100。
因此,用户可以像在移动设备100中执行实际应用一样使用移动设备100。
在操作S415中,移动设备100可以接收选择用于迁移移动设备100的虚拟机的菜单的用户输入。
例如,当在执行应用的同时接收到用户输入时,移动设备100可以在应用的执行图像上显示用于迁移虚拟机的菜单。
由于用户选择用于迁移正在执行的虚拟机的菜单,所以移动设备100可以接收选择用于迁移移动设备100的虚拟机的菜单的用户输入。
此外,例如,移动设备100可以提供用于迁移虚拟机的单独的应用。在这种情况下,移动设备100可以提供用于不仅迁移所执行的虚拟机而且迁移存储在云服务器2000中的虚拟机的接口。
在操作S420中,移动设备100可以向云控制服务器1000请求关于能够执行移动设备100的虚拟机的一个或多个云服务器2000的信息。
对关于能够执行移动设备100的虚拟机的一个或多个云服务器2000的信息的请求可以包括移动设备100的虚拟机的识别信息。此外,对关于能够执行移动设备100的虚拟机的一个或多个云服务器2000的信息的请求还可以包括移动设备100的位置信息。此外,对关于能够执行移动设备100的虚拟机的一个或多个云服务器2000的信息的请求可以包括在云控制服务器1000中注册的用户识别信息以及移动设备100的识别信息。
在操作S425中,云控制服务器1000可以确定能够执行移动设备100的虚拟机的一个或多个云服务器2000。
例如,云控制服务器1000可以基于移动设备100的位置信息来确定位于距移动设备100的位置预设距离内的一个或多个云服务器2000。
此外,例如,云控制服务器1000可以基于移动设备100的虚拟机的配置信息来确定一个或多个云服务器2000。例如,云控制服务器1000可以基于从移动设备100接收的移动设备100的识别信息来获得移动设备100的虚拟机的配置信息。云控制服务器1000可以确定能够提供包括等于移动设备100的虚拟机的配置的虚拟机的一个或多个云服务器2000。
此外,云控制服务器1000可以通过考虑在移动设备100的虚拟机中执行工作负载所需的虚拟机计算能力、云服务器2000可提供的每个虚拟机的计算能力以及移动设备100与每个云服务器2000之间的距离的全部来计算延迟,并且可以确定其延迟等于或小于预设阈值的一个或多个云服务器2000。
根据移动设备100的虚拟机中的工作负载的特性,云控制服务器1000可以选择移动设备100与每个云服务器2000之间的距离或每个虚拟机的计算能力作为用于确定一个或多个云服务器2000的参考。
例如,在移动设备100的虚拟机中的工作负载导致移动设备100和云服务器2000之间的大量数据交换的情况下,云控制服务器1000可以基于移动设备100和每个云服务器2000之间的距离来确定一个或多个云服务器2000。此外,在移动设备100的虚拟机中的工作负载(例如计算敏感的工作或大数据分析)为大量的计算的情况下,云控制服务器1000可以基于每个虚拟机的计算能力来确定一个或多个云服务器2000。
在操作S430中,云控制服务器1000可以将关于在操作S425中确定的一个或多个云服务器2000的信息发送到移动设备100。
关于一个或多个云服务器2000的信息可以包括关于每个云服务器2000的识别信息、关于每个云服务器2000的名称信息、关于移动设备100和每个云服务器2000之间的距离的信息、每个云服务器2000可提供的虚拟机的配置信息、每个云服务器2000可提供的虚拟机的计算能力信息以及每个云服务器2000的延迟。
在操作S435中,移动设备100可以显示从云控制服务器1000接收的关于一个或多个云服务器2000的信息。
例如,基于从云控制服务器1000接收的一个或多个云服务器2000中的每一个的位置信息,移动设备100可以显示地图图像,并且可以在所显示的地图图像上标记一个或多个云服务器2000的位置。
此外,例如,移动设备100可以在地图图像上的一个或多个云服务器2000的位置上显示一个或多个云服务器2000的名称、关于移动设备100和一个或多个云服务器2000之间的距离的多条信息、一个或多个云服务器2000可提供的虚拟机的多条配置信息、一个或多个云服务器2000可提供的虚拟机的多条计算能力信息、延迟等。
在操作S440中,移动设备100可以接收选择来自显示的一个或多个云服务器2000中的第二云服务器2000b的用户输入。
移动设备100可以向用户提供关于一个或多个云服务器2000的信息,并且可以从用户接收选择一个云服务器2000的输入。
在操作S445中,移动设备100可以请求云控制服务器1000将移动设备100的虚拟机迁移到由用户选择的第二云服务器2000b。
迁移虚拟机的请求(也称为虚拟机迁移请求)可以包括用户选择的第二云服务器2000b的识别信息。
在操作S450中,云控制服务器1000可以请求第一云服务器2000a将移动设备100的虚拟机迁移到第二云服务器2000b。
当云控制服务器1000从移动设备100接收到虚拟机迁移请求时,云控制服务器1000可以基于虚拟机的识别信息而获得存储移动设备100的虚拟机的第一云服务器2000a的识别信息。
当云控制服务器1000获得存储移动设备100的虚拟机的第一云服务器2000a的识别信息时,云控制服务器1000可以请求第一云服务器2000a将移动设备100的虚拟机迁移到用户选择的第二云服务器2000b。
发送到第一云服务器2000a的用于迁移虚拟机的请求(也称为虚拟机迁移请求)可以包括虚拟机的识别信息和第二云服务器2000b的识别信息。
在操作S455中,第一云服务器2000a可以将正在第一云服务器2000a中执行的移动设备100的虚拟机迁移到第二云服务器2000b。
基于虚拟机的识别信息,第一云服务器2000a可以从存储在第一云服务器2000a中的虚拟机中识别移动设备100的迁移目标虚拟机。
当第一云服务器2000a识别移动设备100的虚拟机时,第一云服务器2000a可以将移动设备100的虚拟机迁移到第二云服务器2000b。可以参考图3描述将存储在第一云服务器2000a中的虚拟机从第一云服务器2000a迁移到第二云服务器2000b的方法。
在操作S460中,移动设备100可以通过使用第二云服务器2000b中的虚拟机来执行应用。
由于移动设备100的虚拟机从第一云服务器2000a迁移到第二云服务器2000b,因此移动设备100可以通过使用第二云服务器2000b中的虚拟机来执行应用。
图5是用于描述根据示例性实施例的由移动设备100执行的用于提供用来选择移动设备100的虚拟机要迁移到的云服务器2000的用户界面的方法的示图。
参考图5,移动设备100可以显示用于迁移虚拟机的位置的菜单。
例如,移动设备100可以从云服务器2000接收在移动设备100的虚拟机中执行的应用的执行图像,并且可以在移动设备100的屏幕上显示接收到的执行图像。当虚拟地执行应用的同时移动设备100接收输入预设键的用户输入时,移动设备100可以在所显示的执行图像上显示虚拟机迁移菜单510。
当移动设备100接收到选择虚拟机迁移菜单510的用户输入时,移动设备100可以向云控制服务器1000请求关于至少一个云服务器2000的信息,在该云服务器2000中可以执行移动设备100的虚拟机。
图6A是用于描述根据另一示例性实施例的由移动设备100执行的、提供用于选择移动设备100的虚拟机要迁移到的云服务器2000的用户界面的方法的示图。
参考图6A,移动设备100可以显示地图600,其上标记了区域610-640,其中能够执行虚拟机的云服务器2000位于这些区域中。
例如,移动设备100可以从云控制服务器1000接收关于可以在其中执行移动设备100的虚拟机的一个或多个云服务器2000的信息。
关于一个或多个云服务器2000的信息可以包括关于每个云服务器2000的识别信息、关于每个云服务器2000的名称信息、关于移动设备100和每个云服务器2000之间的距离的信息、每个云服务器2000可提供的虚拟机的配置信息、每个云服务器2000可提供的虚拟机的计算能力信息以及每个云服务器2000的延迟。
基于从云控制服务器1000接收的一个或多个云服务器2000中的每一个的位置信息,移动设备100可以显示地图图像,并且可以在显示的地图图像上标记一个或多个云服务器2000的位置。
此外,移动设备100可以在地图图像上的一个或多个云服务器2000的位置上显示一个或多个云服务器2000的名称、关于移动设备100与一个或多个云服务器2000之间的距离的多条信息、一个或多个云服务器2000可提供的虚拟机的多条计算能力信息以及延迟。
移动设备100可以与指示公共云服务器2000的图像610、620和640不同地显示指示家庭云服务器2000的图像630。
移动设备100可以在地图图像上显示指示移动设备100的当前位置的图像660。
移动设备100可以从用户接收选择一个云服务器2000的用户输入。当移动设备100接收到选择一个云服务器2000的用户输入时,移动设备100可以请求云控制服务器1000将移动设备100的虚拟机迁移到用户选择的一个云服务器2000。迁移虚拟机的请求可以包括用户选择的一个云服务器2000的识别信息。
图6B是用于描述根据另一示例性实施例的由移动设备100执行的、提供用于选择移动设备100的虚拟机要迁移到的云服务器2000的用户界面的方法的示图。
参考图6B,移动设备100可以显示地图600,其上标记了区域610-640,其中能够执行虚拟机的云服务器2000位于这些区域中。
基于从云控制服务器1000接收的每个云服务器2000的位置信息,移动设备100可以显示地图图像,并且可以在显示的地图图像上标记云服务器2000的位置。
此外,移动设备100可以在地图图像上的云服务器2000的位置上显示云服务器2000的名称、延迟、收费成本和电池消耗。基于移动设备100的工作负载所请求的资源信息、每个云服务器2000可提供的虚拟机的资源信息和虚拟机与移动设备100之间的通信速度,云服务器2000的延迟、收费成本和电池消耗可以由云控制服务器1000计算。
移动设备100可以从用户接收选择一个云服务器2000的用户输入。当移动设备100接收到选择一个云服务器2000的用户输入时,移动设备100可以请求云控制服务器1000将移动设备100的虚拟机迁移到用户选择的一个云服务器2000。迁移虚拟机的请求可以包括用户选择的一个云服务器2000的识别信息。
图7是根据示例性实施例的由云控制服务器1000执行的、基于移动设备100的用户的移动路线信息来确定移动设备100的虚拟机要迁移到的云服务器2000的方法的流程图。
在操作S710中,控制云服务器2000的云控制服务器1000可以获得移动设备100的用户的移动路线信息。
用户的移动路线信息可以是指表示根据时间的用户的位置的信息。例如,用户的移动路线信息可以是指一天中根据时间而变化的用户的位置的信息。
在操作S720中,云控制服务器1000可以获得移动设备100的位置信息。
云控制服务器1000可以从移动设备100获得移动设备100的位置信息。在一些实施例中,云控制服务器1000可以从云服务器2000获得移动设备100的位置信息,其中移动设备100的虚拟机位于该云服务器2000中。
移动设备100的位置信息可以包括移动设备100的纬度和经度以及移动设备100的地址信息。此外,移动设备100的位置信息可以包括关于移动设备100的纬度和经度被测量的时间的信息。此外,移动设备100的位置信息可以包括每个位置处移动设备的速度信息。
在操作S730中,云控制服务器1000可以基于移动设备100的位置信息和用户的移动路线信息而确定移动设备100移动所沿着的估计路线。
例如,基于移动设备100的位置信息,云控制服务器1000可以确定用户的移动路线上的点,其中该点对应于移动设备100的位置。在移动路线信息指示根据时间的用户的移动路线的情况下,云控制服务器1000可以基于测量移动设备100的位置信息时的时间来确定移动设备100的移动方向。
当确定了与移动设备100的位置相对应的点以及移动设备100的移动方向时,云控制服务器1000可以基于用户的移动路线信息来计算移动设备100将被移动预定时段所沿着的估计路线。
在操作S740中,基于移动设备100的估计路线,云控制服务器1000可以确定移动设备100的虚拟机要迁移到的云服务器2000。
云控制服务器1000可以将位于最接近移动设备100的估计路线的云服务器2000确定为移动设备100的虚拟机要迁移到的云服务器2000。
或者,云控制服务器1000可以确定位于与移动设备100的所估计的路线相距预设距离范围内的一个或多个云服务器2000,并且可以基于移动设备100的估计速度和一个或多个云服务器2000的每一个可提供的虚拟机的计算能力从一个或多个云服务器2000中确定移动设备100的虚拟机要迁移到的云服务器2000。
在操作S750中,云控制服务器1000可以从正在执行移动设备100的虚拟机的云服务器2000将移动设备100的虚拟机迁移到所确定的云服务器2000,其来自一个或多个云服务器2000。
移动设备100的虚拟机可以是执行从移动设备100输出的应用的虚拟机。云控制服务器1000可以请求移动设备100的虚拟机正在其中被执行的云服务器2000将移动设备100的虚拟机迁移到确定的云服务器2000。将移动设备100的虚拟机从正在执行移动设备100的虚拟机的云服务器2000迁移到确定的云服务器2000的方法可以参考图3来描述。
在这种情况下,云控制服务器1000可以基于用户相对于移动设备100的虚拟机的虚拟机使用模式信息来确定迁移移动设备100的虚拟机的时间,并且可以在所确定的时间迁移移动设备100的虚拟机。例如,云控制服务器1000可以确定用户在预设时段期间不使用移动设备100的虚拟机的时段作为迁移移动设备100的虚拟机的时间。
图8是根据另一示例性实施例的由云控制服务器1000执行的、基于移动设备100的用户的移动路线信息来确定移动设备100的虚拟机要迁移到的云服务器2000的方法的流程图。
在操作S810中,移动设备100可以通过使用第一云服务器2000a中的虚拟机来执行应用。
例如,可以在第一云服务器2000a中的虚拟机中执行实际应用和实际操作系统,并且移动设备100可以从第一云服务器2000a接收虚拟机的执行结果以及可以输出该执行结果。
移动设备100可以将用户输入发送到第一云服务器2000a。当从移动设备100接收到用户输入时,第一云服务器2000a可以基于用户输入而执行应用,并且可以将执行结果发送到移动设备100。
因此,用户可以像在移动设备100中执行实际应用一样使用移动设备100。
在操作S820中,云控制服务器1000可以从移动设备100获得移动设备100的用户的移动路线信息。
云控制服务器1000可以在预设时段内从移动设备100周期性地接收移动设备100的位置信息,并且可以基于接收到的位置信息来生成关于用户的平均移动路线的信息。此外,云控制服务器1000可以从移动设备100接收移动设备100的用户的移动路线信息。此外,云控制服务器1000可以基于设置移动路线的用户输入来获得移动设备100的用户的移动路线信息。
当云控制服务器1000获得用户的移动路线信息时,云控制服务器1000可以将用户的移动路线信息与用户的识别信息相对应地存储。
用户的移动路线信息可以是指表示根据时间的用户的位置的信息。例如,用户的移动路线信息可以是指一天中根据时间而变化的用户的位置的信息。
在操作S830中,云控制服务器1000可以向移动设备100请求移动设备100的位置信息。
云控制服务器1000可以确定是否迁移移动设备100的虚拟机。例如,云控制服务器1000可以周期性地确定是否迁移移动设备100的虚拟机。另外,当移动设备100和第一云服务器2000a之间的通信速度等于或小于阈值时,云控制服务器1000可以确定是否迁移移动设备100的虚拟机。
当云控制服务器1000确定迁移移动设备100的虚拟机时,云控制服务器1000可以向移动设备100请求移动设备100的位置信息。
在操作S840中,移动设备100可将移动设备100的位置信息发送到云控制服务器1000。
移动设备100的位置信息可以包括纬度、经度和地址。此外,移动设备100的位置信息可以包括关于测量纬度、经度和地址时的时间的信息。此外,移动设备100的位置信息可以包括移动设备100在每个位置的速度信息。
在操作S850中,云控制服务器1000可以基于移动设备100的用户的移动路线信息和移动设备100的位置信息来确定移动设备100要移动所沿着的估计路线。
例如,基于移动设备100的位置信息,云控制服务器1000可以确定用户的移动路线上的点,其中该点对应于移动设备100的位置。在移动路线信息指示根据时间的用户的移动路线的情况下,云控制服务器1000可以基于测量移动设备100的位置信息的时间来确定移动设备100的移动方向。
当确定了与移动设备100的位置相对应的点以及移动设备100的移动方向时,云控制服务器1000可以基于用户的移动路线信息来计算移动设备100将被移动预定时段所沿着的估计路线。
在操作S860中,基于移动设备100的估计路线,云控制服务器1000可以将第二云服务器2000b确定为移动设备100的虚拟机要迁移到的云服务器2000。
云控制服务器1000可以将位置最接近移动设备100的估计路线的云服务器2000的第二云服务器2000b确定为移动设备100的虚拟机要迁移到的云服务器2000。
或者,云控制服务器1000可以确定位于与移动设备100的所估计的路线相距预设距离范围内的一个或多个云服务器2000,并且可以基于移动设备100的估计速度以及由一个或多个云服务器2000中的每一个可提供的虚拟机的计算能力来从一个或多个云服务器2000中确定移动设备100的虚拟机要迁移到的第二云服务器2000b。
在用户的移动路线信息包括关于移动路线的速度信息的情况下,云控制服务器1000可以基于移动设备100的位置信息和用户的移动路线信息而获得移动设备100在移动路线上的估计速度。
当云控制服务器1000获得移动设备100的估计速度时,云控制服务器1000可以基于估计速度而确定云服务器2000作为移动设备100的虚拟机所迁移到的第二云服务器2000b,其中所确定的云服务器2000来自一个或多个云服务器2000,并且其在预设时段内距离移动设备100的累积距离最短。也就是说,云控制服务器1000可以基于移动设备100的估计速度而确定云服务器2000作为移动设备100的虚拟机要迁移到的第二云服务器2000b,其中确定的云服务器2000可以最少地导致在所估计的路线上的迁移。
此外,例如,云控制服务器1000可以确定提供具有最高计算能力的虚拟机并且来自一个或多个云服务器2000的云服务器2000作为移动设备100的虚拟机将被迁移到的第二云服务器2000b。
在操作S870中,云控制服务器1000可以请求第一云服务器2000a将移动设备100的虚拟机迁移到第二云服务器2000b。
当云控制服务器1000确定移动设备100的虚拟机要迁移到的云服务器2000时,云控制服务器1000可以获得第一云服务器2000a的识别信息,在第一云服务器2000a中存储了移动设备100的虚拟机。
当云控制服务器1000获得存储有移动设备100的虚拟机的第一云服务器2000a的识别信息时,云控制服务器1000可以请求第一云服务器2000a迁移移动设备100的虚拟机到操作S860中所确定的第二云服务器2000b。发送到第一云服务器2000a的用于迁移虚拟机的请求可以包括虚拟机的识别信息和第二云服务器2000b的识别信息。
在操作S880中,第一云服务器2000a可以将正在第一云服务器2000a中执行的移动设备100的虚拟机迁移到第二云服务器2000b。
基于虚拟机的识别信息,第一云服务器2000a可以从存储在第一云服务器2000a中的虚拟机中识别移动设备100的迁移目标虚拟机。
当第一云服务器2000a识别移动设备100的虚拟机时,第一云服务器2000a可以将移动设备100的虚拟机迁移到第二云服务器2000b。将存储在第一云服务器2000a中的虚拟机从第一云服务器2000a迁移到第二云服务器2000b的方法可以参考图3的描述。
在操作S890中,移动设备100可以通过使用第二云服务器2000b中的虚拟机来执行应用。
由于移动设备100的虚拟机从第一云服务器2000a迁移到第二云服务器2000b,因此移动设备100可以通过使用第二云服务器2000b中的虚拟机来执行应用。
图9示出根据示例性实施例的存储在云控制服务器1000中的用户的移动路线信息900。
参考图9,用户的移动路线信息900可以包括根据时间910的移动设备100的纬度920、经度930和速度940。
可以统计地计算用户的移动路线信息900。例如,云控制服务器1000可以在一个月中从移动设备100接收移动设备100的多条位置信息,并且可以基于多条位置信息来记录移动设备100根据时间的位置和速度。基于记录了一个月的位置和速度,云控制服务器1000可以计算用户的平均移动路线信息。
用户的移动路线信息900可以与用户的识别信息相对应地存储在云控制服务器1000中。
图10是用于描述根据另一示例性实施例的由云控制服务器1000执行的、基于用户的移动路线信息来确定移动设备100的虚拟机要迁移到的云服务器2000的方法的示图。
参考图10,在移动设备100的当前位置1080在服务器1 1010和服务器2 1030之间以及获得关于移动设备100的位置1080的信息的时间是下午6:50的情况下,云控制服务器1000可以将服务器3 1040确定为移动设备100的虚拟机要迁移到的云服务器2000。
例如,当移动设备100和服务器1 1010之间的延迟增加时,云控制服务器1000可以向移动设备100请求移动设备100的位置信息。云控制服务器1000可以从移动设备100接收移动设备100的位置信息。
当云控制服务器1000接收到移动设备100的位置信息时,云控制服务器1000可以基于图9所示的用户的移动路线信息900来确定移动设备100要移动所沿着的估计路线。
例如,云控制服务器1000可以基于用户的移动路线信息,从用户的移动路线上的点中确定与移动设备100的位置相对应的位置1080。此外,在获得移动设备100的位置信息的时间是下午6:50的情况下,云控制服务器1000可以将在用户的移动路线上的移动设备100的移动方向确定为移动设备100从公司1020朝向家庭1060的方向。
当从用户的移动路线上的点中确定与移动设备100的位置相对应的位置1080和移动设备100的移动方向时,云控制服务器1000可以确定移动设备100将沿着用户的移动路线向东移动。
当确定了移动设备100要移动的估计路线时,云控制服务器1000可以确定移动设备100的虚拟机要迁移到的云服务器2000。
考虑到移动设备100的估计路线和估计速度,云控制服务器1000可以确定云服务器作为移动设备100的虚拟机要迁移到的云服务器2000,其中云服务器可以在单位时段内导致最少迁移。
例如,云控制服务器1000可以识别出服务器2 1030和服务器3 1040位于距离移动设备100的估计路线的预设距离内。此外,基于图9所示的用户的移动路线信息900,当移动设备100沿着所估计的路线移动时,云控制服务器1000可以确定从移动设备100到服务器21030的累积距离小于从移动设备100到服务器3 1040的累积距离。也就是说,由于移动设备100经由服务器2 1030朝向服务器3 1040移动,并且服务器2 1030附近的移动设备100的移动速度比服务器3 1040附近的移动设备100的移动速度快,因此云控制服务器1000可以确定移动设备100更靠近服务器3 1040的时段比移动设备100更靠近服务器2 1030的时段长多于阈值。
因此,云控制服务器1000可以从服务器2 1030和服务器3 1040中确定服务器31040作为移动设备100的虚拟机要迁移到的云服务器2000,其中从移动设备100到服务器31040的累计距离在预设时段内是最短的。
图11是用于描述根据另一示例性实施例的由云控制服务器1000、基于用户的移动路线信息和延迟来确定移动设备100的虚拟机要迁移到的云服务器2000的方法的示图。
参考图11,云控制服务器1000可以考虑移动设备100的移动目标位置和延迟来确定移动设备100的虚拟机要迁移到的云服务器2000。
例如,当云控制服务器1000接收到移动设备100的位置信息时,云控制服务器1000可以基于图9所示的用户的移动路线信息900来确定移动设备100要移动所沿着的估计路线。当确定了移动设备100要移动所沿着的估计路线时,云控制服务器1000可以将服务器21030或服务器3 1040确定为位于距移动设备100的估计路线预设距离内的云服务器2000。
延迟可以指从当移动设备100将用户输入发送到云服务器2000时到当根据用户输入处理的工作负载的执行结果从云服务器2000返回到移动设备100时的时段。
云控制服务器1000可以基于在移动设备100的虚拟机中执行工作负载所需的计算能力、云服务器2000可提供的虚拟机的计算能力以及云服务器2000与移动设备100的估计路线之间的距离来计算估计路线上的估计延迟。因此,基于计算出的延迟,云控制服务器1000可以确定移动设备100的虚拟机将要迁移到的云服务器2000。
例如,在移动设备100的虚拟机中执行工作负载所需的计算能力为200、服务器21030可提供的虚拟机的计算能力为200并且服务器2 1030和移动设备100的估计路线之间的距离是10的情况下,云控制服务器1000可以确定相对于服务器2 1030的延迟是10ms。此外,在服务器3 1040可提供的虚拟机的计算能力为100并且服务器3 1040与移动设备100的估计路线之间的距离为10的情况下,云控制服务器1000可以确定相对于服务器3 1040的延迟是20ms。
因此,云控制服务器1000可以不确定更接近移动设备100的估计路线的服务器31040,而可以确定其延迟较小的服务器2 1030作为移动设备100的虚拟机要迁移到的云服务器2000。
图12是根据示例性实施例的由云控制服务器1000执行的、基于移动设备100将要移动的估计路线和用户的虚拟机使用模式来迁移移动设备100的虚拟机的方法的流程图。
在操作S1210中,移动设备1000可以通过使用第一云服务器2000a中的虚拟机来执行应用。在操作S1215中,云控制服务器1000可以从移动设备100获得移动设备100的用户的移动路线信息。在操作S1220中,云控制服务器1000可以向移动设备100请求移动设备100的位置信息。在操作S1225中,移动设备100可以将移动设备100的位置信息发送到云控制服务器1000。在操作S1230中,基于移动设备100的用户的移动路线信息和移动设备100的位置信息,云控制服务器1000可以确定移动设备100将沿着其移动的估计路线。在操作S1235中,基于移动设备100的估计路线,云控制服务器1000可将第二云服务器2000b确定为移动设备100的虚拟机要迁移到的云服务器2000。可以参考图8中的操作S810至S860描述操作S1210至S1235。
在操作S1240中,云控制服务器1000可以获得关于移动设备100的虚拟机的用户的使用模式。
关于虚拟机的用户使用模式可以包括指示用户使用虚拟机的时间或指示用户使用虚拟机的位置的信息。
云控制服务器1000可以周期性地检查用户是否使用虚拟机。可以基于在虚拟机中执行的工作负载的结果是否被发送到移动设备100或者是否从移动设备100接收到用户输入来确定虚拟机是否被使用。
云控制服务器1000可以基于用户在预设时段内的虚拟机使用记录来统计地获得用户的虚拟机使用模式信息。此外,云控制服务器1000可以从移动设备100接收用户的虚拟机使用模式信息。此外,云控制服务器1000可以基于相对于虚拟机设置使用模式的用户输入来获得用户的虚拟机使用模式信息。
云控制服务器1000可以与用户的识别信息相对应地存储用户的虚拟机使用模式信息。
在操作S1245中,云控制服务器1000可以基于相对于移动设备100的虚拟机的用户使用模式来确定迁移移动设备100的虚拟机的时间。
云控制服务器1000可以确定在移动设备100的估计路线上在预设时段内用户不使用虚拟机的时段或路线。云控制服务器1000可以确定用户不使用虚拟机的时段或路线的开始作为迁移点。
当确定了迁移点时,云控制服务器1000可以确定移动设备100到达迁移点的时间作为迁移移动设备100的虚拟机的时间。
例如,如果用户主要在用户移动时使用虚拟机,则云控制服务器1000可以将家庭或工作场所确定为迁移点。如果用户主要在用户到达家庭或工作场所之后使用虚拟机,则云控制服务器1000可以将用户离开家庭或工作场所的点确定为迁移点。
例如,在用户通过公共交通工具移动时用户使用虚拟机并且不在换乘区域中使用虚拟机的情况下,则云控制服务器1000可以将换乘区域确定为迁移点。
在操作S1250中,云控制服务器1000可以在操作S1245中确定的时间,请求第一云服务器2000a将移动设备100的虚拟机迁移到第二云服务器2000b。
云控制服务器1000可以确定移动设备100是否到达迁移点。当移动设备100到达迁移点时,云控制服务器1000可以请求第一云服务器2000a将移动设备100的虚拟机迁移到第二云服务器2000b。
在操作S1255中,第一云服务器2000a可以将正在第一云服务器2000a中执行的移动设备100的虚拟机迁移到第二云服务器2000b。在操作S1260中,移动设备100可以通过使用第二云服务器2000b中的虚拟机来执行应用。可以参考图8中的操作S880至S890来描述操作S1255至S1260。
通常,由于在虚拟机的迁移期间发生的停机时间用户经历临时停止应用的执行的状态。然而,根据本示例性实施例,由于虚拟机在用户不使用虚拟机的时段内迁移,所以用户可能不会经历在用户使用移动设备100时暂时停止应用的执行的状态。
图13A示出根据示例性实施例的存储在云控制服务器1000中的用户的虚拟机使用模式信息1310。
参考图13A,用户的虚拟机使用模式信息1310可以是指示用户是否通过在特定时间或位置使用虚拟机来使用移动设备100的信息。
可以统计地计算用户的虚拟机使用模式信息1310。例如,云控制服务器1000可以记录用户在一个月内使用虚拟机的时间或位置。基于在一个月期间记录的时间和位置,云控制服务器1000可以获得用户的平均虚拟机使用模式。
用户的虚拟机使用模式信息1310可以与用户的识别信息相对应地存储在云控制服务器1000中。
基于用户的虚拟机使用模式信息1310,云控制服务器1000可以确定用户不使用虚拟机的用户的整个移动路线的点或路线。
图13B是用于描述根据另一示例性实施例的由云控制服务器1000执行的、基于移动设备100将要移动所沿着的估计路线和用户的虚拟机使用模式来迁移移动设备100的虚拟机的方法的示图。
参考图13B,云控制服务器1000可以在用户的移动路线的一点处迁移移动设备100的虚拟机,在该点用户不使用虚拟机。
例如,当移动设备100和服务器1 1010之间的延迟增加时,云控制服务器1000可以向移动设备100请求移动设备100的位置信息。云控制服务器1000可以从移动设备100接收移动设备100的位置信息。
当云控制服务器1000接收到移动设备100的位置信息时,云控制服务器1000可以基于图13A所示的用户的移动路线信息来确定移动设备100的移动路线。
例如,云控制服务器1000可以基于用户的移动路线信息来确定与用户的移动路线上的移动设备100的位置相对应的点1080。此外,当获得移动设备100的位置信息的时间是下午6:50时,云控制服务器1000可以确定移动设备100在用户的移动路线上的移动方向,作为移动设备100从公司1020朝向家庭1060的方向。因此,云控制服务器1000可以确定移动设备100将沿着用户的移动路线1090移动的估计路线1410,该路线1410从用户的移动路线上的点1080开始,并且该点对应于移动设备100的位置。此外,基于移动设备100将被移动所沿着的估计路线1410,云控制服务器1000可以确定服务器3 1040作为移动设备100的虚拟机要迁移到的云服务器2000。
当服务器3 1040被确定为移动设备100的虚拟机要迁移到的云服务器2000时,云控制服务器1000可以确定迁移移动设备100的虚拟机的时间。
例如,云控制服务器1000可以在移动设备100的估计路线上的预设时段期间确定用户不使用虚拟机的时段或路线。
例如,基于图13A所示的用户的虚拟机使用模式信息1310,云控制服务器1000可以确定用户在移动设备100的估计路线上的地铁换乘区域1420中5分钟没有使用移动设备100的虚拟机。因此,云控制服务器1000可以将移动设备100的估计路线上的地铁换乘区域1420确定为迁移点。
由于已经确定迁移点,当移动设备100到达迁移点时,云控制服务器1000可以将移动设备100的虚拟机迁移到服务器3 1040。
图14A示出根据另一示例性实施例的存储在云控制服务器1000中的关于用户的移动路线和虚拟机使用模式的信息。
参考图14A,用户的移动路线和虚拟机使用模式可以分别被匹配相同的次数,并且可以被存储。
例如,从作为出勤时间的上午8:00到上午9:00,用户的移动路线和用户的虚拟机使用模式可以是多个。
例如,从家到工作场所,用户可以通过地铁或穿梭巴士移动。当用户通过地铁去工作场所时,用户可以在出勤时间期间使用虚拟机,但是当用户通过穿梭巴士去工作场所时,用户可以不执行工作负载,或者可以不使用虚拟机而可以直接执行移动设备100中的工作负载。
因此,云控制服务器1000可以确定从上午8:00到上午9:00的两条路线以及分别对应于这两条路线的虚拟机使用模式。
图14B是用于描述根据另一示例性实施例的由云控制服务器1000执行的、基于移动设备100将被移动所沿着的估计路线和用户的虚拟机使用模式来迁移移动设备100的虚拟机的方法的示图。
参考图14B,云控制服务器1000可以基于用户的移动路线和虚拟机使用模式信息来确定其虚拟机要被迁移的移动设备100的位置。
例如,云控制服务器1000可以接收移动设备100的位置信息和从移动设备100获得位置信息的时间。
基于用户的移动路线信息,云控制服务器1000可以确定与用户的移动路线上的移动设备100的位置相对应的点1080。
此外,云控制服务器1000可以基于移动设备100的位置和获取位置信息的时间来确定与时间对应的多条移动路线之一作为估计路线。
例如,如图14A所示,在获得位置信息的时间是上午8:10am的情况下,云控制服务器1000可以将移动设备100的移动方向确定为移动设备100从公司1020朝向家庭1060的方向。此外,云控制服务器1000可以从上午8:00至上午9:00的两个移动路线中确定地铁路线作为移动设备100的估计路线。
当基于与所确定的移动路线对应的虚拟机使用模式来确定多个移动路线之一时,云控制服务器1000可以确定其虚拟机要被迁移的移动设备100的位置。
例如,如图14A所示,当用户搭乘地铁去工作场所时,用户在他搭乘地铁移动时继续使用虚拟机。因此,云控制服务器1000可以在换乘站中或在用户到达工作场所时迁移虚拟机,因为用户在换乘站中或在到达时不使用虚拟机。
在用户的移动路线涉及使用穿梭巴士并且移动设备100的工作负载被卸载到云服务器2000的情况下,用户不在穿梭巴士中使用虚拟机,因此,云控制服务器1000可以在用户搭乘穿梭巴士移动时迁移移动设备100的虚拟机。
图15是用于描述根据示例性实施例的当家庭云服务器2000d被注册在云控制服务器1000中时在家庭云服务器2000d与公共云服务器2000a-2000c之一之间迁移虚拟机的方法的示图。
参考图15,家庭云服务器2000d可以注册在云控制服务器1000中。
家庭云服务器2000d可以是包括作为能够管理虚拟机的软件或硬件逻辑门的虚拟机管理器的家庭设备。例如,家庭云服务器2000d可以是平板个人计算机(PC)或智能电话。此外,家庭云服务器2000d可以是包括智能冰箱、智能TV、机器人清洁机等的家用电子电器设备。例如,家庭云服务器2000d可以指控制在用户的家庭中形成的家庭云系统的服务器。
家庭云服务器2000d中的虚拟机管理器可以包括用于执行家庭云服务器2000d中的多个操作系统的虚拟化层。例如,虚拟化层可以通过使用诸如KVM或Xen的管理程序技术来实现。此外,家庭云服务器2000d中的虚拟机管理器可以包括用于管理家庭云服务器2000d的资源或管理虚拟机的云层。例如,可以通过使用诸如Openstack或Cloudstack的云技术来植入云层。
云控制服务器1000可以提供用于注册家庭云服务器2000d的用户界面。用于注册家庭云服务器2000d的用户界面可以包括用于接收用户信息的输入和关于家庭云服务器2000d的信息的用户界面。
关于家庭云服务器2000d的信息可以包括家庭云服务器2000d的识别信息、家庭云服务器2000d可提供的虚拟机的配置信息、家庭云服务器2000d的位置信息和家庭云服务器2000d的链接信息。家庭云服务器2000d的链接信息可以包括家庭云服务器2000d的统一资源定位符(URL)地址。
当接收到注册家庭云服务器2000d的用户输入时,云控制服务器1000可以基于存储在云控制服务器1000中的用户的帐户信息存储关于家庭云服务器2000d的信息。
当家庭云服务器2000d被注册在云控制服务器1000中时,云控制服务器1000可以从家庭云服务器2000d接收关于在家庭云服务器2000d中正在执行的虚拟机的信息。
此外,云控制服务器1000可以控制家庭云服务器2000d和公共云服务器2000a-2000c之一,以使得虚拟机在家庭云服务器2000d和公共云服务器2000a-2000c之一之间被迁移。
云控制服务器1000可以从移动设备100或家庭云服务器2000d接收移动设备100的位置信息,并且可以确定移动设备100是进入家庭区域还是退出家庭区域。当家庭云服务器2000d位于用户家庭内时,家庭区域可以指距家庭云服务器2000d的位置预设距离内的区域。此外,家庭区域可以指用户家庭中的家用电子电器设备或各种传感器可以经由短距离网络识别移动设备100的范围。
例如,云控制服务器1000可以从移动设备100接收移动设备100的位置信息,并且可以基于该位置信息来确定移动设备100是否进入了家庭区域。可以通过使用诸如移动设备100中的全球定位系统(GPS)的位置信息传感器来获得移动设备100的位置信息。另外,例如,云控制服务器1000可以从移动设备100接收指示移动设备100进入家庭区域或退出家庭区域的信息。
或者,云控制服务器1000可以从家庭云服务器2000d接收指示移动设备100进入家庭区域或离开家庭区域的信息。家庭云服务器2000d可以通过使用家庭云系统中的传感器或设备来确定移动设备100是进入家庭区域还是退出家庭区域。例如,在移动设备100连接到家庭云系统中的无线网络设备的情况下,家庭云服务器2000d或移动设备100可以确定移动设备100进入家庭区域。在移动设备100和家庭云系统中的无线网络设备之间的连接断开的情况下,家庭云服务器2000d或移动设备100可以确定移动设备100退出家庭区域。例如,当从家庭云系统中的RFID传感器接收到布置在移动设备100中的射频识别(RFID)标签的识别信息时,家庭云服务器2000d可以确定移动设备100进入家庭区域。
当移动设备100进入家庭区域时,云控制服务器1000可以从移动设备100的虚拟机正在其中执行的公共云服务器2000a-2000c之一将移动设备100的虚拟机迁移到家庭云服务器2000d。当移动设备100退出家庭区域时,云控制服务器1000可以将移动设备100的虚拟机从其中移动设备100的虚拟机正在被执行的家庭云服务器2000d迁移到公共云服务器2000a-2000c之一。
图16是用于描述根据示例性实施例的由家庭云服务器2000d执行的通过使用家庭云系统来执行虚拟机的方法的示图。
参考图16,家庭云服务器2000d可以指控制在用户家中形成的家庭云系统的服务器。例如,家庭云系统可以指以家用电子电器设备300、400、500和700以及用户家中的传感器600经由网络连接的方式形成的系统。家庭云系统可以指以基于数字生活网络联盟(DLNA)的媒体设备经由Wi-Fi连接的方式形成的系统。家用电子电器设备300、400、500和700可以经由有线网络(诸如以太网、电力线通信(PLC)、IEEE1394、HomePNA(家庭电话线网络联盟)、光学家庭局域网(optical home local area network(LAN))等)或者经由无线网络(诸如ZigBee、超宽带(UWB)、无线1394、无线USB等)连接。在一些实施例中,家庭云系统可以被称为家庭网络。
因此,家庭云服务器2000d可以通过使用经由网络连接的家用电子电器设备300、400、500和700的资源来执行虚拟机。
例如,家庭云服务器2000d可以通过复用作为台式计算机的家用电子电器设备300的CPU来实现虚拟机的CPU。此外,家庭云服务器2000d可以将虚拟机加载到包括在作为家用电子电器设备400的TV的机顶盒中的存储器。
家庭云服务器2000d可以提供用于接收用户输入的输入设备或用于向用户提供信息的输出设备,作为虚拟机的输入/输出(I/O)设备。
例如,家庭云服务器2000d可以将虚拟机的执行结果输出到家庭云系统中的TV400的屏幕。此外,家庭云服务器2000d可以经由台式计算机300的键盘接收用户输入。
图17示出根据示例性实施例的当移动设备100进入家庭区域时在移动设备100的屏幕上显示的用户界面。
参考图17,当用户在移动设备100中执行游戏应用时,公共云服务器2000a-2000c之一可以在虚拟机中执行游戏应用,并且可以将执行结果发送到移动设备100。移动设备100可以从公共云服务器2000a-2000c之一接收游戏执行图像1710,并且可以在其屏幕上显示接收的游戏执行图像1710。
当移动设备100进入家庭区域时,移动设备100可以确定移动设备100已经进入家庭区域。或者,移动设备100可以从家庭云服务器2000d或云控制服务器1000接收指示移动设备100已进入家庭区域的信息。
当移动设备100确定其已进入家庭区域时,移动设备100可以在游戏执行图像1710上显示用于迁移正在公共云服务器2000a-2000c之一中执行的移动设备100的虚拟机到家庭云服务器2000d的用户界面1720。
当移动设备100接收到选择用于将移动设备100的虚拟机迁移到家庭云服务器2000d的用户接口1720的用户输入时,移动设备100可以请求云控制服务器1000迁移正在公共云服务器2000a-2000c之一中执行的移动设备100的虚拟机到家庭云服务器2000d。
图18是用于描述根据示例性实施例的由移动设备100执行的显示用于接收在家庭云系统中选择设备的输入的用户界面的方法的示图。
参照图18中的(a),移动设备100可以显示用于接收在家庭云系统中选择设备的输入的用户界面1810。
用于接收在家庭云系统中选择设备的输入的用户界面1810可以包括示出在家庭云系统中注册并且位于家庭云系统内的I/O设备的图像。例如,家庭云系统中的I/O设备可以包括台式计算机、TV、键盘、音频设备等。
当移动设备100接收到选择在移动设备100的屏幕上显示的I/O设备之一的用户输入时,移动设备100可以将所选择的I/O设备的识别信息发送到家庭云服务器2000d。
家庭云服务器2000d可以将用户选择的I/O设备确定为在家庭云服务器2000d中执行的虚拟机的I/O设备。因此,家庭云服务器2000d可以将虚拟机的执行结果输出到所选择的I/O设备。此外,家庭云服务器2000d可以基于从所选择的I/O设备接收的用户输入来执行虚拟机。
例如,当家庭云服务器2000d从显示在移动设备100的屏幕上的I/O设备中接收到选择TV的用户输入时,家庭云服务器2000d可以将虚拟机的I/O设备改变为电视。当虚拟机的I/O设备改变为TV时,家庭云服务器2000d可以将虚拟机的执行结果输出到TV的屏幕。
图19是根据示例性实施例的云控制服务器1000的框图。
如图19所示,云控制服务器1000可以包括控制器1110(也称为处理器1110)、通信单元1200和存储单元1300。但是,图19所示的元件不都是云控制服务器1000的必要元件。也就是说,云控制服务器1000可以以比图19所示的元件更多或更少的元件来实现。
通信单元1200可以将关于云服务器2000中的一个或多个云服务器2000的信息发送到移动设备100,并且可以从移动设备100接收由移动设备100的用户从一个或多个云服务器2000中选择的云服务器2000的识别信息。
此外,通信单元1200可以从移动设备100接收对关于能够提供虚拟机的一个或多个云服务器2000的信息的请求。当通信单元1200接收到请求时,通信单元1200可以向移动设备100发送关于一个或多个云服务器2000的信息。
通信单元1200可以获得移动设备100的位置信息,可以基于移动设备100的位置信息来确定位于距离移动设备100的位置预设距离内的一个或多个云服务器2000,并且可以向移动设备100发送关于一个或多个云服务器2000的信息。
通信单元1200可以基于用于执行应用的计算能力来确定能够提供具有计算能力的虚拟机的一个或多个云服务器2000,并且可以向移动设备100发送关于一个或多个云服务器2000的信息。
控制器1110可以将移动设备100的虚拟机从虚拟机所在的云服务器2000迁移到从一个或多个云服务器2000中选择的云服务器2000。
控制云服务器2000的云控制服务器1000的通信单元1200可以获得移动设备100的用户的移动路线信息和移动设备100的位置信息。
控制器1110可以基于用户的移动路线信息和移动设备100的位置信息来确定移动设备100要沿着其移动的估计路线;可以基于移动设备100的所估计的路线来确定移动设备100的虚拟机要迁移到的云服务器2000;并且可以从来自云服务器2000中并且移动设备100的虚拟机正在其中执行的云服务器2000将移动设备100的虚拟机迁移到所确定的云服务器2000。
控制器1110可以确定位于距移动设备100的估计路线预设距离内的一个或多个云服务器2000;并且可以基于移动设备100的估计速度而从一个或多个云服务器2000中确定在预设时段期间与移动设备100的累积距离最短的云服务器2000,作为移动设备100的虚拟机要迁移到的云服务器2000。
控制器1110可以确定位于距离移动设备100的估计路线预设距离内的一个或多个云服务器2000;并且可以从一个或多个云服务器2000中确定提供最高计算能力的虚拟机的云服务器2000作为要将移动设备100的虚拟机迁移到的云服务器2000。
控制器1110可以获得关于移动设备100的虚拟机的用户的虚拟机使用模式信息;可以基于虚拟机使用模式信息来确定迁移移动设备100的虚拟机的时间;以及可以在所确定的时间迁移移动设备100的虚拟机。
此外,基于虚拟机使用模式信息,控制器1110可以确定用户在预设时段期间不使用移动设备100的虚拟机的时段作为迁移移动设备100的虚拟机的时段,并且可以在所确定的时间迁移移动设备100的虚拟机。存储单元1300可以存储用于迁移虚拟机的信息。此外,存储单元1300可以包括云服务器信息数据库(DB)1330和用户DB1320。
云服务器信息DB1330可以是存储关于由云控制服务器1000控制的云服务器2000的多条信息的DB。例如,云服务器信息DB1330可以存储每个云服务器2000的识别信息、每个云服务器2000的链接信息、每个云服务器2000可提供的虚拟机的配置信息、每个云服务器2000可提供的虚拟机的计算能力信息等。此外,云服务器信息DB1330可以不仅存储关于公共云服务器2000的信息,而且还可以存储对应于用户的识别信息的关于家庭云服务器2000的信息。
用户DB 1320可以是存储关于在云控制服务器1000中注册的用户的信息的DB。例如,用户DB 1320可以存储在云控制服务器1000中注册的用户的识别信息、与用户的识别信息相对应地存储的移动设备100的识别信息、关于与用户的识别信息相对应地存储的移动设备100的虚拟机的信息等。
图20是示出根据示例性实施例的移动设备100的配置的框图。
如图20所示,移动设备100的配置可以应用于各种类型的设备,诸如移动电话、平板PC、个人数字助理(PDA)、MP3播放器、信息亭(kiosk)、电子相框、导航设备、数字电视、智能手表、手表或诸如智能眼镜、头戴式显示器(HMD)等的可穿戴设备。
参考图20,移动设备100可以包括显示单元110、控制单元170、存储器120、GPS芯片125、通信单元130、视频处理器135、音频处理器140、用户输入单元145、麦克风单元150、图像捕获单元155、扬声器单元160和运动检测单元165中至少之一。
当执行云服务器2000中的移动设备100的虚拟机时,显示单元110可以显示从云服务器2000接收的工作负载的执行图像。此外,显示单元110可以显示用于请求在云服务器2000和另一云服务器2000之间迁移移动设备100的虚拟机的用户界面。
显示单元110可以包括显示面板111和控制显示面板111的控制器(未示出)。显示面板111可以实现为各种显示器,包括LCD、有机发光二极管(OLED)显示器、有源矩阵OLED(AMOLED)显示器、等离子显示面板(PDP)等。显示面板111可以形成为柔性的、透明的和/或可佩戴的。显示面板111可以与用户输入单元145的触摸面板147组合,并且因此可以被设置为触摸屏(未示出)。例如,触摸屏可以包括具有包含显示面板111和触摸面板147的堆叠结构的集成模块。
存储器120可以包括内部存储器(未示出)和外部存储器(未示出)中的至少一个。
内部存储器可以包括以下至少之一:易失性存储器(例如动态随机存取存储器(DRAM)、静态RAM(SRAM)、同步动态RAM(SDRAM)等)、非易失性存储器(例如一次性可编程只读存储器(OTPROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、掩模ROM、闪速ROM等)、硬盘驱动器(HDD)和固态驱动器(SSD)。根据本示例性实施例,控制单元170可以将从非易失性存储器和另一元件中的至少一个接收的命令或数据加载到易失性存储器,并且可以处理该命令或数据。此外,控制单元170可以在非易失性存储器中存储从另一元件接收或由另一元件生成的数据。
外部存储器可以包括以下至少之一:紧凑型闪存(CF)存储器、安全数字(SD)存储器、微安全数字(micro-SD)存储器、迷你安全数字(mini-SD)存储器、极限数字(xD)存储器和记忆棒。
存储器120可以存储在移动设备100的操作中使用的各种程序和数据。例如,存储器120可以临时或半永久地存储要在锁定屏幕上显示的内容的一部分。
控制单元170可以控制显示单元110以显示存储在存储器120中的内容的一部分。换句话说,控制单元170可以在显示单元110上显示存储在存储器120中的内容的一部分。或者,当在显示单元110的区域中执行用户的手势时,控制单元170可以执行与用户的手势相对应的控制操作。
控制单元170可以包括RAM 171、只读存储器(ROM)172、CPU 173、GPU174和总线175中的至少一个。RAM 171、ROM 172、CPU 173和GPU 174可以经由总线175彼此连接。例如,控制器170可以仅包括CPU 173或者仅包括CPU 173和GPU 174。
CPU 173可以访问存储器120,并且通过使用存储在存储器120中的操作系统来执行启动操作。此外,CPU 173通过使用存储在存储器120中的各种程序、多个内容、多条数据等等来执行各种操作。
ROM 172存储用于启动系统的命令集。例如,当开启命令被输入到移动设备100并且电源被提供给移动设备100时,CPU 173可以根据ROM 172中存储的命令将存储在存储器120中的操作系统复制到RAM 171,可以执行该操作系统,并且因此可以启动系统。
此外,存储器120可以存储用于执行本公开的各种实施例的至少一个程序。控制器170可以通过执行存储在存储器120中的至少一个程序来控制第一设备100以根据本公开的各种实施例进行操作。例如,CPU 173可以复制存储在存储器120中的至少一个程序到RAM171,并且通过执行复制到RAM 171的程序来执行各种操作。当移动设备100启动时,GPU 174可以在显示单元110的区域中显示用户界面屏幕。更详细地,GPU 174可以生成显示包括各种对象(例如内容、图标、菜单等)的电子文档的屏幕。GPU 174根据用户界面屏幕的布局来计算要显示的对象的坐标值,并计算对象的形状、大小或颜色的属性值。然后,GPU 174可以基于计算的属性值生成具有包括对象的各种布局的用户界面屏幕。由GPU 174生成的用户界面屏幕可以被提供给显示单元110,并且因此可以在显示单元110的区域中显示。
GPS芯片125可以从GPS卫星接收GPS信号,并且可以计算移动设备100的当前位置。在使用导航程序或需要用户的当前位置的情况下,控制单元170可以通过使用GPS芯片125计算用户的位置。
通信单元130可以根据各种类型的通信方法来执行与各种外部设备的通信。通信单元130可以包括从Wi-Fi芯片131、蓝牙芯片132、无线通信芯片133和近场通信(NFC)芯片134中选择的至少一个。控制单元170可以通过使用通信单元130执行与各种外部设备的通信。
Wi-Fi芯片131和蓝牙芯片132可以分别通过使用WiFi和蓝牙来执行通信。如果使用Wi-Fi芯片131或蓝牙芯片132,则WiFi芯片131或蓝牙芯片132可以首先发送和接收包括服务集标识符(SSID)、会话密钥等的各种类型的连接信息,可以通过使用连接信息来建立用于通信的连接,然后可以发送和接收各种类型的信息。无线通信芯片133可以指根据各种通信标准执行通信的芯片,诸如电气和电子工程师协会(IEEE)、ZigBee、第三代(3G)、第三代合作伙伴计划(3GPP)、长期演进(LTE)等。NFC芯片134指一种芯片,该芯片通过使用来自诸如135kHz、13.56MHz、433MHz、860-960MHz、2.45GHz等的各种射频识别(RF-ID)频带中的13.56MHz频带来在使用NFC中操作。
视频处理器135可以处理通过使用通信单元130接收的内容中所包括的视频数据,或者可以处理存储在存储器120中的内容中所包括的视频数据。视频处理器135可以对视频数据执行各种图像处理,诸如解码、缩放、滤噪、帧速率转换、分辨率转换等。
音频处理器140可以处理通过使用通信单元130接收的内容中所包括的音频数据,或者可以处理包括在存储器120中存储的内容中的音频数据。音频处理器140可以对音频数据执行各种处理,诸如解码、放大、滤噪等。
当执行用于多媒体内容的再现程序时,控制单元170可以通过驱动视频处理器135和音频处理器140来再现多媒体内容。扬声器单元160可以输出在音频处理器140中产生的音频数据。
用户输入单元145可以从用户接收各种指令的输入。用户输入单元145可以包括从键146、触摸面板147和笔识别面板148中选择的至少一个。
键146可以是各种类型的,例如机械按钮、滚轮等,其可以形成在移动设备100的主体的外表面的前部、侧部、后部等。
触摸面板147可以感测用户的触摸输入,并且可以输出与由感测的触摸输入产生的信号相对应的触摸事件的值。当触摸面板147与显示面板111组合并因此形成为触摸屏时,触摸屏可以通过使用各种类型的触摸传感器被配置为电容性触摸屏、电阻性触摸屏或压电触摸屏。电容性触摸屏可通过感测当用户的身体部分触摸涂覆有介电材料的电容性触摸屏的表面时产生的少量电力来计算触摸坐标。电阻性触摸屏可以包括两个嵌入的电极板,并且可以通过感测当用户触摸电阻性触摸屏(这使得触摸点的上板和下板彼此接触)时发生的电流的流动来计算触摸坐标。在触摸屏上发生的触摸事件可以主要由人的手指产生,但是也可以由能够改变电容的导电材料形成的物体产生。
笔识别面板148可以感测由用户执行的触摸笔(例如触控笔或手写数字笔(digitizer pen))的接近输入或触摸输入,并且可以输出感测的笔接近事件或感测的笔触摸事件。笔识别面板148可以是电磁共振(EMR)型笔识别面板,并且可以根据电磁场的强度的变化(当触摸笔接近或触摸触摸屏时发生)来感测触摸输入或接近输入。更详细地,笔识别面板148可以包括具有网格结构的电磁感应线圈传感器(未示出)和用于顺序地将具有预定频率的交流(AC)信号提供给电磁感应线圈传感器的每个环形线圈的电信号处理器(未示出)。当具有内部谐振电路的笔位于笔识别面板148的环形线圈附近时,从环形线圈传送的磁场基于相互静电感应而在笔的谐振电路中产生电流。由于该电流,从形成笔的谐振电路的线圈产生感应场,并且笔识别面板148从能够接收信号的环形线圈检测感应场,于是感测通过笔的触摸输入或接近输入。笔识别面板148可以被布置得占据显示面板111下方的预设区域,例如,可以具有能够覆盖显示面板111的显示区域的尺寸。
麦克风单元150可以接收用户的语音或其他声音的输入,并且可以将用户的语音或其他声音转换为音频数据。控制单元170可以在呼叫相关操作中使用经由麦克风单元150输入的用户语音,或者可以将用户语音转换为音频数据,并且可以将音频数据存储在存储器120中。
图像捕获单元155可以根据用户的控制而捕获静止图像或运动图像。图像捕获单元155可以是多个并且包括前摄像头、后摄像头等。
如果形成图像捕获单元155和麦克风单元150,则控制单元170可以根据经由麦克风单元150输入的用户的语音或者由图像捕获单元155识别的用户的运动来执行控制操作。例如,移动设备100可以在运动控制模式或语音控制模式下操作。如果移动设备100在运动控制模式下操作,则控制单元170可以激活图像捕获单元155并且可以捕获用户的图像、跟踪用户的运动变化、并且可以执行与其对应的控制操作。如果移动设备100在语音控制模式(即语音识别模式)中操作,则控制单元170可以分析经由麦克风单元150输入的用户语音,并且可以根据所分析的用户语音执行控制操作。
运动检测单元165可以检测移动设备100的主体的移动。移动设备100可以旋转或可以在各个方向上倾斜。这里,运动检测单元165可以通过使用包括磁传感器、陀螺仪传感器、加速度传感器等的各种传感器中的至少一个来检测诸如旋转方向、旋转角度、倾斜角度等的运动特性。
尽管在图20中未示出,本示例性实施例还可以包括用于连接移动设备100和USB连接器的通用串行总线(USB)端口、包括用于与各种外部端子连接的头戴式耳机、鼠标、LAN等的各种外部输入端口、用于接收和处理DMB信号的数字多媒体广播(DMB)芯片、各种传感器等。
移动设备100的元件的名称可以改变。此外,根据本示例性实施例的移动设备100可以通过包括至少一个元件来实现,或者可以利用比上述元件更多或更少的元件来实现。
一个或多个示例性实施例可以实现为记录介质上的计算机可读代码/指令,例如要在计算机中执行的包括计算机可读命令的程序模块。计算机存储介质可以包括可以由计算机访问的任何可用介质,易失性和非易失性介质以及可拆卸的和不可拆卸的介质。此外,计算机存储介质可以包括计算机存储介质和通信介质。计算机存储介质包括所有易失性和非易失性介质,和可拆卸和不可拆卸的介质,其在技术上实现为存储包括计算机可读命令、数据结构、程序模块或其他数据的信息。通信介质包括计算机可读命令、数据结构、程序模块、作为诸如载波信号的调制类型数据信号的其它数据或其它传输机制,并且包括其他信息传输介质。
然而,本发明性构思可以以许多不同的形式实施,并且不应被解释为限于本文阐述的示例性实施例;相反,提供这些示例性实施例以使得本公开将是彻底和完全的,并且将向本领域的普通技术人员充分地传达本发明性概念。例如,配置为单数形式的元件可以以分布式方式执行,并且分布式配置元件可以被组合然后被执行。
尽管已经参照附图描述了一个或多个示例性实施例,但是本领域普通技术人员将理解,在不脱离由下面的权利要求限定的精神和范围的情况下,可以在形式和细节上进行各种改变。

Claims (20)

1.一种控制多个云服务器的云控制服务器,所述云控制服务器包括:
通信单元,被配置为向移动设备发送关于所述多个云服务器中的一个或多个云服务器的信息,并且从所述移动设备接收由所述移动设备的用户选择的并且来自所述一个或多个云服务器的云服务器的识别信息;和
控制器,被配置为将所述移动设备的虚拟机从所述移动设备的虚拟机所在的、并且来自于所述多个云服务器的云服务器迁移到所选择的云服务器,
其中所述移动设备的虚拟机执行从所述移动设备输出的应用。
2.根据权利要求1所述的云控制服务器,其中关于一个或多个云服务器的信息包括所述一个或多个云服务器中的每一个云服务器的识别信息、所述一个或多个云服务器中的每一个云服务器的名称信息、所述一个或多个云服务器中的每一个云服务器的位置信息、所述移动设备与所述一个或多个云服务器中的每一个云服务器之间的距离的信息、所述一个或多个云服务器中的每一个云服务器可提供的虚拟机的配置信息和所述一个或多个云服务器中的每一个云服务器可提供的虚拟机的计算能力信息中的至少之一。
3.根据权利要求1所述的云控制服务器,其中所述通信单元还被配置为从所述移动设备接收对能够提供所述虚拟机的一个或多个云服务器的信息的请求,并且当接收到所述请求时,将关于一个或多个云服务器的信息发送到所述移动设备。
4.根据权利要求1所述的云控制服务器,其中所述通信单元还被配置为获取所述移动设备的位置信息;基于所述移动设备的位置信息来确定位于距离所述移动设备的位置预设距离内的一个或多个云服务器;以及将关于一个或多个云服务器的信息发送到所述移动设备。
5.根据权利要求1所述的云控制服务器,其中所述通信单元还被配置为基于用于执行所述应用的计算能力来确定能够提供具有所述计算能力的虚拟机的一个或多个云服务器,以及将关于所述一个或多个云服务器的信息发送到所述移动设备。
6.一种控制多个云服务器的云控制服务器,所述云控制服务器包括:
通信单元,被配置为获得移动设备的用户的移动路线信息和所述移动设备的位置信息;和
控制器,被配置为基于所述移动设备的位置信息和所述移动设备的用户的移动路线信息来确定所述移动设备要沿着其移动的估计路线;基于所述移动设备要沿着其移动的所述估计路线来确定所述移动设备的虚拟机要被迁移到的云服务器;以及将所述移动设备的虚拟机从正在其中执行所述移动设备的虚拟机的、并且来自于所述多个云服务器的云服务器迁移到所确定的云服务器,
其中所述移动设备的虚拟机执行从所述移动设备输出的应用。
7.如权利要求6所述的云控制服务器,其中所述移动设备的所述估计路线包括所述移动设备在所述估计路线上的估计速度,以及
所述控制器还被配置为确定位于距离所述移动设备的所述估计路线预设距离内的一个或多个云服务器,并且基于所述移动设备的估计速度来确定来自于所述一个或多个云服务器中的、所述移动设备的虚拟机要被迁移到的云服务器。
8.根据权利要求6所述的云控制服务器,其中所述控制器还被配置为确定位于距离所述移动设备的估计路线预设距离内的一个或多个云服务器,并从所述一个或多个云服务器中确定提供具有最高计算能力的虚拟机的云服务器作为所述移动设备的虚拟机要被迁移到的云服务器。
9.根据权利要求6所述的云控制服务器,其中所述控制器还被配置为获取关于所述移动设备的虚拟机的用户的使用模式信息;基于所述使用模式信息来确定迁移所述移动设备的虚拟机的时间;以及在所确定的时间迁移所述移动设备的虚拟机。
10.根据权利要求9所述的云控制服务器,其中所述控制器还被配置为基于所述使用模式信息来确定所述用户在预设时段期间不使用所述移动设备的虚拟机的时段,作为迁移所述移动设备的虚拟机的时间,并在确定的时间迁移所述移动设备的虚拟机。
11.一种迁移虚拟机的方法,所述方法由控制多个云服务器的云控制服务器执行,并且包括:
向移动设备发送关于来自所述多个云服务器中的一个或多个云服务器的信息;
从所述移动设备接收由所述移动设备的用户选择的并且来自于所述一个或多个云服务器的云服务器的识别信息;和
将所述移动设备的虚拟机从所述移动设备的虚拟机所在的并且来自于所述多个云服务器的云服务器迁移到所选择的云服务器,
其中所述移动设备的虚拟机执行从所述移动设备输出的应用。
12.根据权利要求11所述的方法,其中关于所述一个或多个云服务器的信息包括所述一个或多个云服务器中的每一个云服务器的识别信息、所述一个或多个云服务器中的每一个云服务器的名称信息、所述一个或多个云服务器中的每一个云服务器的位置信息、所述移动设备与所述一个或多个云服务器中的每一个云服务器之间的距离的信息、所述一个或多个云服务器中的每一个云服务器可提供的虚拟机的配置信息以及所述一个或多个云服务器中的每一个云服务器可提供的虚拟机的计算能力信息中的至少之一。
13.根据权利要求11所述的方法,其中发送信息包括:
从所述移动设备接收对关于能够提供所述虚拟机的所述一个或多个云服务器的信息的请求;和
当接收到所述请求时,将关于所述一个或多个云服务器的信息发送到所述移动设备。
14.根据权利要求11所述的方法,其中发送信息包括:
获取所述移动设备的位置信息;
基于所述移动设备的位置信息,确定位于距离所述移动设备的位置预设距离内的所述一个或多个云服务器;和
将关于所述一个或多个云服务器的信息发送到所述移动设备。
15.根据权利要求11所述的方法,其中发送信息包括:
基于用于执行应用的计算能力,确定能够提供具有所述计算能力的虚拟机的所述一个或多个云服务器;和
将关于所述一个或多个云服务器的信息发送到所述移动设备。
16.一种迁移虚拟机的方法,所述方法由控制多个云服务器的云控制服务器执行,所述方法包括:
获取移动设备的用户的移动路线信息;
获取所述移动设备的位置信息;
基于所述移动设备的位置信息和用户的移动路线信息,确定所述移动设备要沿着其移动的估计路线;
基于所述移动设备要沿着其移动的估计路线来确定所述移动设备的虚拟机要被迁移到的云服务器;和
将所述移动设备的虚拟机从正在执行所述移动设备的虚拟机并且来自于所述多个云服务器的云服务器迁移到所确定的云服务器,
其中所述移动设备的虚拟机执行从所述移动设备输出的应用。
17.根据权利要求16所述的方法,其中所述移动设备的所述估计路线包括所述移动设备在所述估计路线上的估计速度,以及
基于所述估计路线确定所述云服务器包括:
确定位于距离所述移动设备的所述估计路线预设距离内的一个或多个云服务器;和
基于所述移动设备的估计速度,确定来自于所述一个或多个云服务器中的并且所述移动设备的虚拟机要被迁移到的云服务器。
18.根据权利要求16所述的方法,其中基于所述估计路线确定云服务器包括:
确定位于距离所述移动设备的估计路线预设距离内的一个或多个云服务器;和
从所述一个或多个云服务器中确定提供具有最高计算能力的虚拟机的云服务器作为所述移动设备的虚拟机要被迁移到的云服务器。
19.根据权利要求16所述的方法,其中基于所述估计路线确定云服务器包括:
获取关于所述移动设备的虚拟机的用户的使用模式信息;
基于所述使用模式信息来确定迁移所述移动设备的虚拟机的时间;和
在所确定的时间迁移所述移动设备的虚拟机。
20.如权利要求19所述的方法,其中确定迁移虚拟机的时间包括:
基于所述使用模式信息,确定所述用户在预设时段期间不使用所述移动设备的虚拟机的时段作为迁移所述移动设备的虚拟机的时间。
CN201580061015.1A 2014-10-10 2015-09-11 用于迁移虚拟机以改善移动用户体验的方法和装置 Active CN107148620B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020140136963A KR102191971B1 (ko) 2014-10-10 2014-10-10 모바일 사용자 경험 개선을 위한 가상 머신 마이그레이션 방법 및 이를 위한 장치
KR10-2014-0136963 2014-10-10
PCT/KR2015/009566 WO2016056760A1 (en) 2014-10-10 2015-09-11 Method and apparatus for migrating virtual machine for improving mobile user experience

Publications (2)

Publication Number Publication Date
CN107148620A true CN107148620A (zh) 2017-09-08
CN107148620B CN107148620B (zh) 2021-02-02

Family

ID=55653329

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580061015.1A Active CN107148620B (zh) 2014-10-10 2015-09-11 用于迁移虚拟机以改善移动用户体验的方法和装置

Country Status (6)

Country Link
US (2) US10303520B2 (zh)
EP (1) EP3204866A4 (zh)
KR (1) KR102191971B1 (zh)
CN (1) CN107148620B (zh)
AU (1) AU2015328933B2 (zh)
WO (1) WO2016056760A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110109702A (zh) * 2019-05-16 2019-08-09 福州大学 基于代码分析的Android计算迁移在线决策方法
CN110673926A (zh) * 2019-09-20 2020-01-10 深圳市发掘科技有限公司 面向移动用户的云系统虚拟机迁移方法及装置、服务器
CN111290835A (zh) * 2020-01-22 2020-06-16 重庆锦禹云能源科技有限公司 用于云平台虚拟机迁移的方法、装置及服务器
CN112102465A (zh) * 2019-06-18 2020-12-18 明日基金知识产权控股有限公司 基于3d结构引擎的计算平台
CN112913196A (zh) * 2018-10-30 2021-06-04 慧与发展有限责任合伙企业 用云服务的虚拟ip地址的软件定义的广域网上行链路选择
CN113342611A (zh) * 2021-06-18 2021-09-03 山东产研信息与人工智能融合研究院有限公司 一种精准定位虚拟计算资源的方法及系统

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10503615B2 (en) * 2011-12-16 2019-12-10 Basen Corporation Spime™ host system, process, object, self-determination apparatus, and host device
US9948493B2 (en) * 2014-04-03 2018-04-17 Centurylink Intellectual Property Llc Network functions virtualization interconnection gateway
KR102018815B1 (ko) * 2014-10-24 2019-11-04 삼성전자주식회사 주변 기기를 활용하여 원격 태스크를 수행하는 방법 및 디바이스
US10063634B2 (en) 2015-11-24 2018-08-28 International Business Machines Corporation Deployment of multi-task analytics applications in multi-clouds
EP3405877B1 (en) * 2016-01-22 2022-09-21 Nokia Solutions and Networks Oy Application relocation between clouds
US10108328B2 (en) 2016-05-20 2018-10-23 Vmware, Inc. Method for linking selectable parameters within a graphical user interface
US10834226B2 (en) * 2016-07-15 2020-11-10 International Business Machines Corporation Live migration of containers based on geo-location
US10162676B2 (en) * 2016-08-15 2018-12-25 International Business Machines Corporation Social objectives-based workload resolution in a cloud environment
US10157071B2 (en) * 2016-08-30 2018-12-18 Vmware, Inc. Method for migrating a virtual machine between a local virtualization infrastructure and a cloud-based virtualization infrastructure
US10108447B2 (en) 2016-08-30 2018-10-23 Vmware, Inc. Method for connecting a local virtualization infrastructure with a cloud-based virtualization infrastructure
CN109937566B (zh) * 2016-09-23 2022-09-27 英特尔公司 用于在联网环境中进行计算卸载的方法和装置
US10666736B2 (en) * 2017-01-10 2020-05-26 Unify Patente Gmbh & Co. Kg Computer-implemented method and system for managing tenants on a multi-tenant SIP server system
US10725885B1 (en) 2017-11-17 2020-07-28 Amazon Technologies, Inc. Methods and apparatus for virtual machine load monitoring
US11405860B2 (en) * 2018-04-25 2022-08-02 Telefonaktiebolaget Lm Ericsson (Publ) Methods, systems and wireless communication devices for handling cloud computing resources
US11455175B2 (en) * 2018-07-16 2022-09-27 Microsoft Technology Licensing, Llc Transparently remote execution of development tool extensions
US10938688B2 (en) * 2018-07-23 2021-03-02 Vmware, Inc. Network costs for hyper-converged infrastructures
US10620987B2 (en) 2018-07-27 2020-04-14 At&T Intellectual Property I, L.P. Increasing blade utilization in a dynamic virtual environment
US10901781B2 (en) 2018-09-13 2021-01-26 Cisco Technology, Inc. System and method for migrating a live stateful container
FR3086493B1 (fr) * 2018-09-20 2020-08-28 Renault Sas Procede de reattribution d’un serveur peripherique de traitement de donnees
WO2020130676A1 (ko) * 2018-12-20 2020-06-25 경희대학교 산학협력단 클라우드 환경 내에서 가상 머신을 위한 마이그레이션을 수행하기 위한 전자장치 및 그의 동작 방법
KR102296940B1 (ko) * 2018-12-20 2021-09-01 경희대학교 산학협력단 클라우드 환경 내에서 가상 머신을 위한 마이그레이션을 수행하기 위한 전자 장치 및 그의 동작 방법
US20220141662A1 (en) * 2019-02-06 2022-05-05 Apple Inc. Enabling interactive service for cloud renderting gaming in 5g systems
CN111796924A (zh) * 2019-04-09 2020-10-20 Oppo广东移动通信有限公司 服务处理方法、装置、存储介质及电子设备
WO2020247484A1 (en) * 2019-06-03 2020-12-10 Hsiung Ping Kang Selection of virtual server for smart cloud gaming application from multiple cloud providers based on user parameters
US11392400B2 (en) * 2019-07-17 2022-07-19 Hewlett Packard Enterprise Development Lp Enhanced migration of clusters based on data accessibility
US20220035658A1 (en) * 2020-07-29 2022-02-03 Mythics, Inc. Migration evaluation system and method
WO2022026561A1 (en) * 2020-07-30 2022-02-03 Accenture Global Solutions Limited Green cloud computing recommendation system
KR102479404B1 (ko) * 2020-12-30 2022-12-21 한국과학기술원 모바일 엣지 컴퓨팅 환경에서 효율적인 서비스 마이그레이션을 위한 서비스 소비 계획을 제공하는 컴퓨터 시스템 및 그의 방법
KR102328173B1 (ko) 2021-07-05 2021-11-17 (주)다윈아이씨티 애플리케이션 마이그레이션 처리 방법, 장치 및 시스템
US20230010231A1 (en) * 2021-07-07 2023-01-12 At&T Intellectual Property I, L.P. Cloud resources for smartphone applications
US11665085B2 (en) * 2021-09-30 2023-05-30 Citrix Systems, Inc. Optimizing selection of gateways based on location and user experience related metrics

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120023223A1 (en) * 2010-07-26 2012-01-26 International Business Machines Corporation Predictive context-based virtual workspace placement
US20120304191A1 (en) * 2011-05-27 2012-11-29 Morgan Christopher Edwin Systems and methods for cloud deployment engine for selective workload migration or federation based on workload conditions
US20130073670A1 (en) * 2011-09-15 2013-03-21 Microsoft Corporation Geo-Migration Of User State
US20130336286A1 (en) * 2012-06-15 2013-12-19 Thomas A. Anschutz Method and apparatus for providing a cloud-based mobility in a wireless network

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS514588B2 (zh) 1972-07-06 1976-02-13
US9565275B2 (en) * 2012-02-09 2017-02-07 Rockwell Automation Technologies, Inc. Transformation of industrial data into useful cloud information
US8468230B2 (en) 2007-10-18 2013-06-18 Fujitsu Limited Method, apparatus and recording medium for migrating a virtual machine
JP5104588B2 (ja) 2007-10-18 2012-12-19 富士通株式会社 マイグレーションプログラム、および仮想マシン管理装置
US9842004B2 (en) * 2008-08-22 2017-12-12 Red Hat, Inc. Adjusting resource usage for cloud-based networks
US8438256B2 (en) 2009-06-26 2013-05-07 Vmware, Inc. Migrating functionality in virtualized mobile devices
KR101165989B1 (ko) 2010-09-10 2012-07-18 서울과학기술대학교 산학협력단 모바일 환경에서 스마트폰의 위치 정보를 맥락으로 한 1:1 타켓 뉴스컨텐츠제공장치 및 방법
US8621058B2 (en) * 2010-10-28 2013-12-31 Hewlett-Packard Development Company, L.P. Providing cloud-based computing services
EP2693336A4 (en) 2011-03-28 2016-03-23 Nec Corp VIRTUAL MACHINE MANAGEMENT SYSTEM AND METHOD FOR MANAGING VIRTUAL MACHINES
EP2575044A1 (en) 2011-09-30 2013-04-03 Deutsche Telekom AG Method and system of using networked virtual machines of mobile devices in the cloud to provide mobile applications and services
US9207989B2 (en) * 2011-12-19 2015-12-08 Intellectual Discovery Co., Ltd. System and method for providing virtual device
US20130182605A1 (en) * 2012-01-13 2013-07-18 Verizon Patent And Licensing Inc. Method and system for providing a mobile virtual router
KR20130127629A (ko) * 2012-05-15 2013-11-25 경희대학교 산학협력단 가상화 애플리케이션 제공 장치 및 그 방법
US8495237B1 (en) * 2012-09-27 2013-07-23 Google Inc. Techniques for providing a media stream to a mobile computing device based on a predicted route of the mobile computing device
US9223635B2 (en) * 2012-10-28 2015-12-29 Citrix Systems, Inc. Network offering in cloud computing environment
US9069608B2 (en) * 2013-03-06 2015-06-30 Vmware, Inc. Method and system for providing a roaming remote desktop
US9763166B2 (en) * 2013-05-10 2017-09-12 Elwha Llc Dynamic point to point mobile network including communication path monitoring and analysis aspects system and method
EP3005629A4 (en) * 2013-05-30 2017-01-18 Empire Technology Development LLC Schemes for providing wireless communication
US9455882B2 (en) * 2013-06-21 2016-09-27 Verizon Patent And Licensing Inc. User defined arrangement of resources in a cloud computing environment
TWI498750B (zh) 2013-06-24 2015-09-01 Chunghwa Telecom Co Ltd Method and system of intelligent cloud migration
US9207976B2 (en) * 2013-08-13 2015-12-08 International Business Machines Corporation Management of prioritizing virtual machines in an operating environment
CN106465200A (zh) * 2014-03-27 2017-02-22 诺基亚通信公司 第5代移动网络中的按需网络服务

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120023223A1 (en) * 2010-07-26 2012-01-26 International Business Machines Corporation Predictive context-based virtual workspace placement
US20120304191A1 (en) * 2011-05-27 2012-11-29 Morgan Christopher Edwin Systems and methods for cloud deployment engine for selective workload migration or federation based on workload conditions
US20130073670A1 (en) * 2011-09-15 2013-03-21 Microsoft Corporation Geo-Migration Of User State
US20130336286A1 (en) * 2012-06-15 2013-12-19 Thomas A. Anschutz Method and apparatus for providing a cloud-based mobility in a wireless network

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112913196A (zh) * 2018-10-30 2021-06-04 慧与发展有限责任合伙企业 用云服务的虚拟ip地址的软件定义的广域网上行链路选择
CN110109702A (zh) * 2019-05-16 2019-08-09 福州大学 基于代码分析的Android计算迁移在线决策方法
CN112102465A (zh) * 2019-06-18 2020-12-18 明日基金知识产权控股有限公司 基于3d结构引擎的计算平台
CN110673926A (zh) * 2019-09-20 2020-01-10 深圳市发掘科技有限公司 面向移动用户的云系统虚拟机迁移方法及装置、服务器
CN110673926B (zh) * 2019-09-20 2023-04-21 深圳市发掘科技有限公司 面向移动用户的云系统虚拟机迁移方法及装置、服务器
CN111290835A (zh) * 2020-01-22 2020-06-16 重庆锦禹云能源科技有限公司 用于云平台虚拟机迁移的方法、装置及服务器
CN111290835B (zh) * 2020-01-22 2023-03-10 重庆锦禹云能源科技有限公司 用于云平台虚拟机迁移的方法、装置及服务器
CN113342611A (zh) * 2021-06-18 2021-09-03 山东产研信息与人工智能融合研究院有限公司 一种精准定位虚拟计算资源的方法及系统
CN113342611B (zh) * 2021-06-18 2023-07-28 山东产研信息与人工智能融合研究院有限公司 一种精准定位虚拟计算资源的方法及系统

Also Published As

Publication number Publication date
KR102191971B1 (ko) 2020-12-16
US20170220394A1 (en) 2017-08-03
EP3204866A1 (en) 2017-08-16
US20190286495A1 (en) 2019-09-19
AU2015328933B2 (en) 2021-01-21
KR20160042699A (ko) 2016-04-20
AU2015328933A2 (en) 2017-04-20
CN107148620B (zh) 2021-02-02
EP3204866A4 (en) 2017-11-15
US11023282B2 (en) 2021-06-01
WO2016056760A1 (en) 2016-04-14
AU2015328933A1 (en) 2017-04-06
US10303520B2 (en) 2019-05-28

Similar Documents

Publication Publication Date Title
CN107148620A (zh) 用于迁移虚拟机以改善移动用户体验的方法和装置
US20210407206A1 (en) Augmented reality interface and method of use
US11757675B2 (en) Facilitating portable, reusable, and sharable internet of things (IoT)-based services and resources
CN103870535B (zh) 信息搜索方法和装置
EP3049908B1 (en) Presentation of a control interface on a touch-enabled device based on a motion or absence thereof
EP2741192A2 (en) Display device for executing a plurality of applications and method for controlling the same
US9383839B1 (en) Configuration of a profile associated with a stylus
CN105474127B (zh) 用于多处理器系统的虚拟每处理器定时器
CN108776599B (zh) 预加载应用的管理方法、装置、存储介质及智能终端
US9411640B2 (en) Method for efficiently managing application and electronic device implementing the method
CN104077046A (zh) 用于切换任务的方法和装置
CN102238282A (zh) 能够提供多层游戏的移动终端及其操作方法
KR20150014553A (ko) 멀티비전 스크린을 구성하는 방법 및 이를 지원하는 전자장치
WO2018045934A1 (zh) 应用进程的管理方法和终端设备
CN107301038A (zh) 应用生产设备、系统、方法和非临时性计算机可读媒介
CN109766160A (zh) 基于情境提供信息的方法和系统
US20180196584A1 (en) Execution of multiple applications on a device
CN103914254A (zh) 用于动态显示盒管理的方法和设备
WO2015138151A1 (en) Application dehydration and rehydration during application-to-application calls
CN113805770B (zh) 一种光标的移动方法及电子设备
CN109298813A (zh) 一种应用展示方法、装置、终端及可读存储介质
US11093041B2 (en) Computer system gesture-based graphical user interface control
CN110502372A (zh) 一种数据处理方法、装置及电子设备

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
GR01 Patent grant
GR01 Patent grant