KR102191971B1 - 모바일 사용자 경험 개선을 위한 가상 머신 마이그레이션 방법 및 이를 위한 장치 - Google Patents

모바일 사용자 경험 개선을 위한 가상 머신 마이그레이션 방법 및 이를 위한 장치 Download PDF

Info

Publication number
KR102191971B1
KR102191971B1 KR1020140136963A KR20140136963A KR102191971B1 KR 102191971 B1 KR102191971 B1 KR 102191971B1 KR 1020140136963 A KR1020140136963 A KR 1020140136963A KR 20140136963 A KR20140136963 A KR 20140136963A KR 102191971 B1 KR102191971 B1 KR 102191971B1
Authority
KR
South Korea
Prior art keywords
mobile device
virtual machine
cloud
cloud server
information
Prior art date
Application number
KR1020140136963A
Other languages
English (en)
Other versions
KR20160042699A (ko
Inventor
심효택
김종률
임형진
Original Assignee
삼성전자주식회사
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 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020140136963A priority Critical patent/KR102191971B1/ko
Priority to US15/514,924 priority patent/US10303520B2/en
Priority to EP15849228.0A priority patent/EP3204866A4/en
Priority to PCT/KR2015/009566 priority patent/WO2016056760A1/en
Priority to AU2015328933A priority patent/AU2015328933B2/en
Priority to CN201580061015.1A priority patent/CN107148620B/zh
Publication of KR20160042699A publication Critical patent/KR20160042699A/ko
Priority to US16/405,258 priority patent/US11023282B2/en
Application granted granted Critical
Publication of KR102191971B1 publication Critical patent/KR102191971B1/ko

Links

Images

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/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
    • 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
    • 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

모바일 사용자 경험 개선을 위한 가상 머신 마이그레이션 방법 및 이를 위한 장치{METHOD OF MIGRATING A VIRTUAL MACHINE FOR BETTER MOBILE USER EXPERIENCE AND APPARATUS THEREOF}
본 발명은 홈 내의 디바이스를 이용하여, 가상 머신을 마이그레이션하는 방법 및 이를 위한 장치에 관한 것이다.
모바일 디바이스에서 실행되는 어플리케이션이 더 많은 컴퓨팅 리소스을 요구함에 따라, 어플리케이션의 워크로드(Workload)를 서버로 오프로딩(Offloading)하는 기술이 발전하고 있다.
예를 들면, 어플리케이션은 서버의 컴퓨팅 리소스에 의해 실행되고, 모바일 디바이스는 서버로부터 어플리케이션의 실행 결과를 수신하여 출력할 수 있다. 이에 따라, 사용자는 마치 모바일 디바이스에서 어플리케이션을 실행하는 것과 같은 경험을 할 수 있다.
그러나, 사용자는 계속하여 이동하므로, 모바일 디바이스와 서버와의 거리가 멀어지면, 모바일 디바이스와 서버간의 데이터 전송이 느려질 수 있다. 또한, 워크로드의 특성에 따라 보다 높은 연산 능력을 구비한 가상 머신이 필요할 수 있다. 따라서, 모바일 디바이스의 상황에 따라 모바일 디바이스의 가상 머신을 보다 최적화된 클라우드 서버로 마이그레이션하는 방법이 요구된다.
본 발명은 모바일 디바이스를 이용하여, 가상 머신을 마이그레이션하기 위한 다양한 실시예를 개시한다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 제 1 측면은, 복수의 클라우드 서버들을 제어하는 클라우드 제어 서버가, 모바일 디바이스에게, 복수의 클라우드 서버들 중 적어도 하나의 클라우드 서버에 관한 정보를 송신하고, 모바일 디바이스로부터 적어도 하나의 클라우드 서버 중 모바일 디바이스의 사용자에 의해 선택된 클라우드 서버의 식별 정보를 수신하는 통신부, 및 복수의 클라우드 서버들 중 모바일 디바이스의 가상 머신이 위치한 클라우드 서버로부터 선택된 클라우드 서버로 가상 머신을 마이그레이션하는 제어부를 포함하고, 모바일 디바이스의 가상 머신은 모바일 디바이스에서 출력되는 어플리케이션을 실행하는 가상 머신인 클라우드 제어 서버를 제공할 수 있다.
또한, 적어도 하나의 클라우드 서버에 관한 정보는, 적어도 하나의 클라우드 서버의 식별 정보, 이름 정보, 위치 정보, 모바일 디바이스로부터 적어도 하나의 클라우드 서버까지의 거리 정보, 적어도 하나의 클라우드 서버가 제공할 수 있는 가상 머신의 구성 정보 및 적어도 하나의 클라우드 서버가 제공할 수 있는 가상 머신의 연산 능력 정보 중 적어도 하나를 포함할 수 있다.
또한, 통신부는, 모바일 디바이스로부터, 가상 머신을 제공할 수 있는 적어도 하나의 클라우드 서버에 관한 정보 요청을 수신하고, 요청을 수신함에 따라, 모바일 디바이스에게 적어도 하나의 클라우드 서버에 관한 정보를 송신할 수 있다.
또한, 통신부는, 모바일 디바이스의 위치 정보를 획득하고, 모바일 디바이스의 위치 정보에 기초하여, 모바일 디바이스의 위치로부터 기 설정된 거리내에 위치한 적어도 하나의 클라우드 서버를 결정하고, 결정된 적어도 하나의 클라우드 서버에 관한 정보를 모바일 디바이스로 송신할 수 있다.
또한, 통신부는, 어플리케이션을 실행하기 위해 필요한 연산 능력에 기초하여, 연산 능력을 구비한 가상 머신을 제공할 수 있는 적어도 하나의 클라우드 서버를 결정하고, 결정된 적어도 하나의 클라우드 서버에 관한 정보를 모바일 디바이스로 송신할 수 있다.
또한, 본 개시의 제 2 측면은, 복수의 클라우드 서버들을 제어하는 클라우드 제어 서버가, 모바일 디바이스의 사용자의 이동 경로에 관한 정보 및 모바일 디바이스의 위치 정보를 획득하는 통신부, 및 모바일 디바이스의 위치 정보 및 사용자의 이동 경로에 관한 정보에 기초하여, 모바일 디바이스가 이동될 예상 경로를 결정하고, 모바일 디바이스가 이동될 예상 경로에 기초하여, 모바일 디바이스의 가상 머신을 마이그레이션 할 클라우드 서버를 결정하고, 복수의 클라우드 서버들 중 모바일 디바이스의 가상 머신이 실행되는 클라우드 서버로부터 결정된 클라우드 서버로 모바일 디바이스의 가상 머신을 마이그레이션 하는 제어부를 포함하고, 모바일 디바이스의 가상 머신은 모바일 디바이스에서 출력되는 어플리케이션을 실행하는 가상 머신인 클라우드 제어 서버를 제공할 수 있다.
또한, 모바일 디바이스의 예상 경로는, 예상 경로 상에서의 모바일 디바이스의 예상 속도를 포함하고, 제어부는, 모바일 디바이스의 예상 경로로부터 기 설정된 거리내에 위치한 적어도 하나의 클라우드 서버를 결정하고, 모바일 디바이스의 예상 속도에 기초하여, 적어도 하나의 클라우드 서버 중 모바일 디바이스의 가상 머신을 마이그레이션 할 클라우드 서버로 결정할 수 있다.
또한, 제어부는, 모바일 디바이스의 예상 경로로부터 기 설정된 거리내에 위치한 적어도 하나의 클라우드 서버를 결정하고, 적어도 하나의 클라우드 서버 중 가장 높은 연산 능력을 구비한 가상 머신을 제공하는 클라우드 서버를 모바일 디바이스의 가상 머신을 마이그레이션 할 클라우드 서버로 결정할 수 있다.
또한, 제어부는, 모바일 디바이스의 가상 머신에 대한 사용자의 사용 패턴에 관한 정보를 획득하고, 획득된 사용 패턴에 관한 정보에 기초하여, 모바일 디바이스의 가상 머신을 마이그레이션할 시점을 결정하고, 결정된 시점에 모바일 디바이스의 가상 머신을 마이그레이션할 수 있다.
또한, 제어부는, 사용 패턴에 관한 정보에 기초하여, 사용자가 기 결정된 시간 동안 모바일 디바이스의 가상 머신을 사용하지 않는 시점을 모바일 디바이스의 가상 머신을 마이그레이션할 시점으로 결정하고, 결정된 시점에 모바일 디바이스의 가상 머신을 마이그레이션할 수 있다.
또한, 본 개시의 제 3 측면은, 복수의 클라우드 서버들을 제어하는 클라우드 제어 서버가, 모바일 디바이스에게, 복수의 클라우드 서버들 중 적어도 하나의 클라우드 서버에 관한 정보를 송신하는 단계, 모바일 디바이스로부터 적어도 하나의 클라우드 서버 중 모바일 디바이스의 사용자에 의해 선택된 클라우드 서버의 식별 정보를 수신하는 단계, 및 복수의 클라우드 서버들 중 모바일 디바이스의 가상 머신이 위치한 클라우드 서버로부터 선택된 클라우드 서버로 가상 머신을 마이그레이션하는 단계를 포함하고, 모바일 디바이스의 가상 머신은 모바일 디바이스에서 출력되는 어플리케이션을 실행하는 가상 머신인 것인, 가상 머신 마이그레이션 방법을 제공할 수 있다.
또한, 적어도 하나의 클라우드 서버에 관한 정보는, 적어도 하나의 클라우드 서버의 식별 정보, 이름 정보, 위치 정보, 모바일 디바이스로부터 적어도 하나의 클라우드 서버까지의 거리 정보, 적어도 하나의 클라우드 서버가 제공할 수 있는 가상 머신의 구성 정보 및 적어도 하나의 클라우드 서버가 제공할 수 있는 가상 머신의 연산 능력 정보 중 적어도 하나를 포함할 수 있다.
또한, 복수의 클라우드 서버들 중 적어도 하나의 클라우드 서버에 관한 정보를 송신하는 단계는, 모바일 디바이스로부터, 가상 머신을 제공할 수 있는 적어도 하나의 클라우드 서버에 관한 정보 요청을 수신하는 단계, 및 요청을 수신함에 따라, 모바일 디바이스에게 적어도 하나의 클라우드 서버에 관한 정보를 송신하는 단계를 포함할 수 있다.
또한, 복수의 클라우드 서버들 중 적어도 하나의 클라우드 서버에 관한 정보를 송신하는 단계는, 모바일 디바이스의 위치 정보를 획득하는 단계, 모바일 디바이스의 위치 정보에 기초하여, 모바일 디바이스의 위치로부터 기 설정된 거리내에 위치한 적어도 하나의 클라우드 서버를 결정하는 단계, 및 결정된 적어도 하나의 클라우드 서버에 관한 정보를 모바일 디바이스로 송신하는 단계를 포함할 수 있다.
또한, 복수의 클라우드 서버들 중 적어도 하나의 클라우드 서버에 관한 정보를 송신하는 단계는, 어플리케이션을 실행하기 위해 필요한 연산 능력에 기초하여, 연산 능력을 구비한 가상 머신을 제공할 수 있는 적어도 하나의 클라우드 서버를 결정하는 단계, 및 결정된 적어도 하나의 클라우드 서버에 관한 정보를 모바일 디바이스로 송신하는 단계를 포함할 수 있다.
또한, 본 개시의 제 4 측면은 복수의 클라우드 서버들을 제어하는 클라우드 제어 서버가, 모바일 디바이스의 사용자의 이동 경로에 관한 정보를 획득하는 단계, 모바일 디바이스의 위치 정보를 획득하는 단계, 모바일 디바이스의 위치 정보 및 사용자의 이동 경로에 관한 정보에 기초하여, 모바일 디바이스가 이동될 예상 경로를 결정하는 단계, 모바일 디바이스가 이동될 예상 경로에 기초하여, 모바일 디바이스의 가상 머신을 마이그레이션 할 클라우드 서버를 결정하는 단계, 및 복수의 클라우드 서버들 중 모바일 디바이스의 가상 머신이 실행되는 클라우드 서버로부터 결정된 클라우드 서버로 모바일 디바이스의 가상 머신을 마이그레이션하는 단계를 포함하고, 모바일 디바이스의 가상 머신은 모바일 디바이스에서 출력되는 어플리케이션을 실행하는 가상 머신인 것인, 가상 머신 마이그레이션 방법을 제공할 수 있다.
또한, 모바일 디바이스의 예상 경로는, 예상 경로 상에서의 모바일 디바이스의 예상 속도를 포함하고, 모바일 디바이스가 이동될 예상 경로에 기초하여, 모바일 디바이스의 가상 머신을 마이그레이션 할 클라우드 서버를 결정하는 단계는, 모바일 디바이스의 예상 경로로부터 기 설정된 거리내에 위치한 적어도 하나의 클라우드 서버를 결정하는 단계, 및 모바일 디바이스의 예상 속도에 기초하여, 적어도 하나의 클라우드 서버 중 모바일 디바이스의 가상 머신을 마이그레이션 할 클라우드 서버로 결정하는 단계를 포함할 수 있다.
또한, 모바일 디바이스가 이동될 예상 경로에 기초하여, 모바일 디바이스의 가상 머신을 마이그레이션 할 클라우드 서버를 결정하는 단계는, 모바일 디바이스의 예상 경로로부터 기 설정된 거리내에 위치한 적어도 하나의 클라우드 서버를 결정하는 단계, 및 적어도 하나의 클라우드 서버 중 가장 높은 연산 능력을 구비한 가상 머신을 제공하는 클라우드 서버를 모바일 디바이스의 가상 머신을 마이그레이션 할 클라우드 서버로 결정하는 단계를 포함할 수 있다.
또한, 모바일 디바이스가 이동될 예상 경로에 기초하여, 모바일 디바이스의 가상 머신을 마이그레이션 할 클라우드 서버를 결정하는 단계는, 모바일 디바이스의 가상 머신에 대한 사용자의 사용 패턴에 관한 정보를 획득하는 단계, 획득된 사용 패턴에 관한 정보에 기초하여, 모바일 디바이스의 가상 머신을 마이그레이션할 시점을 결정하는 단계, 및 결정된 시점에 모바일 디바이스의 가상 머신을 마이그레이션하는 단계를 포함할 수 있다.
또한, 획득된 사용 패턴에 관한 정보에 기초하여, 모바일 디바이스의 가상 머신을 마이그레이션할 시점을 결정하는 단계는, 사용 패턴에 관한 정보에 기초하여, 사용자가 기 결정된 시간 동안 모바일 디바이스의 가상 머신을 사용하지 않는 시점을 모바일 디바이스의 가상 머신을 마이그레이션할 시점으로 결정하는 단계를 포함할 수 있다.
도 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는 본 개시의 다른 실시 예에 따른 모바일 디바이스의 구성을 나타내는 블록도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
또한, 명세서 전체에서 "가상화"(Virtualization)란, 단일 물리 서버에서 복수 개의 운영체제를 실행 할 수 있는 기능을 의미할 수 있다. 이 경우, 각각의 운영체제는 분리 독립된 하드웨어 환경에서 실행될 수 있으며, 각각의 운영체제를 기반으로 어플리케이션이 실행 될 수 있다.
또한, 명세서 전체에서 "가상 머신"(Virtual Machine)이란, 가상화 환경에서 수행되는 운영체제 및 어플리케이션을 통칭할 수 있다. 가상 머신은 고유의 CPU, 메모리, 하드 디스크 및 네트워크 등의 컴퓨팅 리소스을 가질 수 있다. 예를 들어, 2Ghz CPU, 2GB RAM, 10GB 하드 디스크 및 고유의 IP 주소를 갖는 가상 머신이 소프트웨어로 구현될 수 있다.
또한, 명세서 전체에서, “가상 머신의 구성 정보"는 가상 머신을 구성하는 하드웨어 리소스에 관한 정보를 의미할 수 있다. 예를 들어, 가상 머신의 구성 정보는 가상 머신의 CPU, GPU, RAM, 하드 디스크의 사양에 관한 정보를 포함할 수 있다.
또한, 명세서 전체에서, 가상 머신이 실행되는 실제 물리적인 디바이스는 호스트 디바이스로 언급될 수 있다. 또한, 가상 머신이 실행되는 실제 물리적인 디바이스의 운영체제는 호스트 운영체제로 언급될 수 있다. 또한, 가상 머신 상에서 실행되는 운영체제는 게스트 운영체제로 언급될 수 있다.
또한, 명세서 전체에서 “가상 머신 마이그레이션”(Virtual Machine Migration)이란, 하나의 물리적인 서버 또는 디바이스에서 다른 물리적인 서버 또는 디바이스로 가상 머신이 이동하는 것을 의미할 수 있다. 예를 들어, 제 1 물리적인 디바이스 내의 소스 가상 머신이 제 2 물리적인 디바이스로 마이그레이션 된다는 것은, 제 2 물리적인 디바이스에 타겟 가상 머신이 생성되고, 생성된 타겟 가상 머신으로 소스 가상 머신 내의 데이터가 이동하는 것을 것을 의미할 수 있다.
예를 들어, 하나의 가상 머신 내의 데이터는 가상 머신의 하드 디스크 내의 데이터, 가상 머신의 메모리 내의 데이터, 가상 머신의 CPU 레지스터 데이터 등을 포함할 수 있다.
또한, 명세서 전체에서 “클라우드 서버”(Cloud Server)는 일반적으로 가상화된 컴퓨팅 환경을 복수 개의 물리 머신 상에 구축한 인프라를 의미할 수 있다. 클라우드 서버는 하드웨어 리소스를 동적으로 할당 또는 제거할 수 있으며, 여러 사용자에게 가상 머신 서비스를 제공 할 수 있다. 클라우드 서버는 범용(Public Cloud Server) 클라우드 서버 및 홈 클라우드 서버(Home Cloud Server)를 포함할 수 있다.
범용 클라우드 서버는 일반 사용자가 가상 머신을 할당 받아서 사용할 수 있는 공개된 형태의 클라우드 서비스를 의미할 수 있다. 범용 클라우드 서버는 가상 머신을 실행할 수 있는 리소스를 제공하는 서비스 프로바이더에 의해 운용되는 서버일 수 있다. 범용 클라우드 서비스에 가입한 사용자들은 범용 클라우드 서버에 등록된 계정을 이용하여, 범용 클라우드 서버에서 가상 머신을 실행시킬 수 있다.
홈 클라우드 서버는 특정 개인 또는 단체를 위한 클라우드 서비스를 의미할 수 있다. 실시예에 따라, 홈 클라우드 서버는 개인 클라우드 서버(Private Cloud Server)로 언급될 수 있다.
또한, 명세서 전체에서 “워크로드”란 디바이스가 처리해야하는 일(Job)을 의미할 수 있다. 워크로드는 어플리케이션 또는 운영 체제 프로그램 전체를 의미할 수 있으며, 프로그램의 일부 코드를 의미할 수도 있다. 워크로드가 클수록 CPU에서 처리해야할 코드 수, 메모리 사용량, 네트워크 사용량, 스토리지 사용량 또한 증가할 수 있다.
또한, 명세서 전체에서 “오프로딩”이란 모바일 디바이스의 워크로드가 모바일 디바이스가 아닌 서버에서 처리되고, 서버로부터 워크로드의 실행 결과가 모바일 디바이스로 전송됨으로써 모바일 디바이스가 처리해야 할 워크로드가 실행되는것을 의미할 수 있다.
또한, 명세서 전체에서 “지연 시간"(Latency)이란 모바일 디바이스가 사용자의 입력을 클라우드 서버로 송신한 시점부터 사용자의 입력에 따라 처리된 워크로드의 실행 결과가 클라우드 서버로부터 모바일 디바이스로 돌아오는데까지 소요되는 시간을 의미할 수 있다. 지연 시간은, 워크로드를 실행하기 위해 요구되는 리소스 정보, 워크 로드가 처리되는 가상 머신의 리소스 정보 및 가상 머신과 모바일 디바이스간의 통신 속도에 기초하여 산출될 수 있다.
또한, 명세서 전체에서 “사용자의 이동 경로에 관한 정보”는 시간에 따른 사용자의 위치를 나타내는 정보를 의미할 수 있다. 예를 들어, 사용자의 이동 경로에 관한 정보는 하루 동안 시간에 따라 변경되는 사용자의 위치를 나타내는 정보일 수 있다.
또한, 명세서 전체에서 “가상 머신에 대한 사용자의 사용 패턴”은 사용자가 가상 머신을 사용하는 시점 또는 사용자가 가상 머신을 사용하는 위치를 나타내는 정보일 수 있다.
아래에서는 첨부한 도면을 참고하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다.
도 1A는, 본 발명의 일 실시예에 따른, 클라우드 제어 서버(1000)가 모바일 디바이스(100)의 가상 머신을 마이그레이션하는 방법을 설명하기 위한 도면이다.
도 1A를 참조하면, 모바일 디바이스(100)의 워크 로드를 실행하는 가상 머신이 제 1 클라우드 서버(2000a)에서 제 2 클라우드 서버(2000b)로 마이그레이션 될 수 있다.
모바일 디바이스(100)의 워크로드는 복수의 클라우드 서버(2000) 중 하나로 오프로딩 될 수 있다.
예를 들어, 모바일 디바이스(100)에서 실행되어야할 어플리케이션 또는 운영체제가 클라우드 서버(2000)로 오프로딩 될 수 있다. 클라우드 서버(2000)는 모바일 디바이스(100)로부터 오프로딩된 어플리케이션 또는 운영체제를 실행하고, 어플리케이션 또는 운영체제의 실행 결과를 모바일 디바이스(100)로 송신할 수 있다.
예를 들어, 모바일 디바이스(100)가 클라우드 서버(2000)에게 게임 실행을 요청한 경우, 클라우드 서버(2000)는 요청된 게임을 실행하기 위한 가상 머신을 생성하고, 생성한 가상 머신이 게임 어플리케이션을 실행하도록 제어할 수 있다.게임 어플리케이션이 실행됨에 따라, 클라우드 서버(2000)는 게임의 실행 결과(예를 들어, 게임 실행 이미지, 소리 데이터)만을 모바일 디바이스(100)에게 송신할 수 있다. 모바일 디바이스(100)는 클라우드 서버(2000)로부터 게임의 실행 결과를 수신하고, 수신된 게임의 실행 결과를 출력할 수 있다. 또한, 클라우드 서버(2000)는 모바일 디바이스(100)로부터 모바일 디바이스(100)의 사용자의 입력을 수신할 수 있다. 클라우드 서버(2000)는 수신된 사용자의 입력이 클라우드 서버(2000) 내의 가상 머신으로 입력된 것처럼, 클라우드 서버(2000) 내의 가상 머신을 실행할 수 있다. 클라우드 서버(2000) 내의 가상 머신은 수신된 사용자의 입력에 따라, 게임 어플리케이션을 실행할 수 있다.
또한, 모바일 디바이스(100)에서 실행되어야할 어플리케이션 또는 운영체제 프로그램의 일부 코드가 클라우드 서버(2000)로 오프로딩 될 수도 있다. 예를 들어, 모션 인식 어플리케이션을 실행 중 모바일 디바이스(100)는 많은 연산량을 필요로하는 코드로 구성된 모듈을 클라우드 서버(2000)로 오프로딩할 수 있다. 이 경우, 오프로드 된 모듈에 대한 호출은 RPC(remote procedure call)와 같은 방식으로 구현될 수 있다. 클라우드 서버(2000)는 모바일 디바이스(100)에 의한 호출에 의해 오프로드 된 모듈을 실행하게 되며 실행 결과는 자동으로 단말로 리턴 될 수 있다.
또한, 모바일 디바이스(100)는 사용자의 선택에 따라 워크로드를 클라우드 서버(2000)로 오프로딩할 수 있다. 또한, 모바일 디바이스(100)는 모바일 디바이스(100)에 설정된 기준에 따라, 자동으로 워크로드를 클라우드 서버(2000)로 오프로딩할 수도 있다. 예를 들어, 높은 연산량을 요구하는 워크로드를 실행해야 하거나, 외부 데이터베이스와 많은 트래픽을 요구하는 워크로드를 실행해야 하는 경우, 모바일 디바이스(100)는 자동으로 워크로드를 클라우드 서버(2000)로 오프로딩할 수도 있다.
높은 연산량을 요구하는 워크로드 또는 외부 데이터베이스와 많은 트래픽을 요구하는 워크로드는 광학 문자 판독기(Optical Character Reader), 문자 인식(Intelligent Character Recognition), 모션 인식(Motion Classification), 얼굴 인식(Face Recognition), 얼굴 표정 인식(Facail Expression Recognition), 사물 인식(Object Recognition), 음성 인식(Voice Recognition), 증강 현실(Augmented Reality), 정보 데이터베이스(intelligence database), 이미지 검색(Image Serch), 바이러스 검사(Virus Scaning) 및 행동 프로파일링(Behavior Profiling) 어플리케이션 등을 포함할 수 있다.
또한, 모바일 디바이스(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)가 생성할 수 있는 가상 머신의 개수를 포함할 수 있다. 또한, 가상 머신에 관한 정보는 가상 머신의 리소스 사양 정보 또는 가상 머신의 예상 지연 시간 정보, 예상 과금 정보 및 예상 배터리 사용량 정보를 포함할 수 있다.
또한, 클라우드 제어 서버(1000)는 모바일 디바이스(100) 및 모바일 디바이스(100)의 가상 머신을 모니터링 할 수 있다. 예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)로부터 모바일 디바이스(100)의 위치 정보를 주기적으로 수신할 수 있다. 또한, 예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신이 사용 중인지 여부를 모니터링할 수 있다.
또한, 클라우드 제어 서버(1000)는 모바일 디바이스(100)와 연동하여, 복수의 클라우드 서버(2000) 중, 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)를 결정할 수 있다.
예를 들어, 클라우드 제어 서버(1000)는 마이그레이션될 워크로드를 실행하기 위해 요구되는 리소스 정보, 복수의 클라우드 서버(2000)가 제공 가능한 가상 머신의 리소스 정보 및 가상 머신과 모바일 디바이스(100)와의 예상 통신 속도에 기초하여 지연 시간을 산출하고, 가상 머신 실행시 지연 시간이 가장 작은 클라우드 서버(2000)를 가상 머신을 마이그레이션할 클라우드 서버(2000)로써 결정할 수 있다.
지연 시간은 모바일 디바이스(100)가 사용자의 입력을 클라우드 서버(2000)로 송신한 시점부터 사용자의 입력에 따라 처리된 워크로드의 실행 결과가 클라우드 서버(2000)로부터 모바일 디바이스(100)로 돌아오는데까지 소요되는 시간을 의미할 수 있다. 이에 따라, 워크로드의 실행을 위해 요구되는 리소스의 사양이 높을 수록, 클라우드 서버(2000)가 제공 가능한 가상 머신의 성능이 낮을수록 또는 모바일 디바이스(100)로부터 클라우드 서버(2000)까지의 거리가 커질수록 지연시간은 길어질 수 있다.
또한, 예를 들어, 클라우드 제어 서버(1000)는 마이그레이션될 워크로드를 실행하기 위해 요구되는 리소스 정보, 복수의 클라우드 서버(2000)가 제공 가능한 가상 머신 정보, 복수의 클라우드 서버(2000)와 모바일 디바이스(100)와의 거리 및 리소스 사용에 따른 부과 금액에 기초하여, 예상되는 비용이 최소가 되는 클라우드 서버(2000)를 가상 머신을 마이그레이션할 클라우드 서버(2000)로써 결정할 수 있다.
또한, 예를 들어, 클라우드 제어 서버(1000)는 마이그레이션될 워크로드를 실행하기 위해 요구되는 리소스 정보, 복수의 클라우드 서버(2000)가 제공 가능한 가상 머신 정보, 복수의 클라우드 서버(2000)와 모바일 디바이스(100)와의 거리에 기초하여 배터리 사용양을 산출하고, 산출된 배터리 사용양에 기초하여 예상되는 배터리 사용양이 최소가 되는 클라우드 서버(2000)를 가상 머신을 마이그레이션할 클라우드 서버(2000)로써 결정할 수 있다.
또한, 예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)로부터 모바일 디바이스(100)의 사용자에 의해 선택된 클라우드 서버(2000)의 식별 정보를 수신하고, 선택된 클라우드 서버(2000)를 가상 머신을 마이그레이션할 클라우드 서버(2000)로써 결정할 수 있다.
또한, 예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 현재 위치 및 모바일 디바이스(100)의 사용자의 이동 경로 정보에 기초하여, 모바일 디바이스(100)가 이동할 예상 경로를 결정하고, 모바일 디바이스(100)가 이동할 예상 경로에 기초하여 예상 경로부터 가장 가까운 클라우드 서버(2000)를 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)로써 결정할 수 있다.
또한, 예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 예상 경로뿐만 아니라 예상 속도를 고려하여, 예상 경로 상에서 마이그레이션이 가장 적게 발생할 수 있는 클라우드 서버(2000)를 모바일 디바이스(100)의 가상 머신을 마이그레이션할 제 2 클라우드 서버(2000b)로써 결정할 수 있다.
또한, 예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 사용자의 가상 머신 사용 패턴 정보에 기초하여, 모바일 디바이스(100)의 가상 머신을 마이그레이션할 시점을 결정할 수 있다. 예를 들어, 클라우드 제어 서버(1000)는 사용자의 가상 머신 사용 패턴 정보에 기초하여, 사용자가 일정 시간 동안 가상 머신을 사용하지 않는 시간 구간을 결정하고, 결정된 시간 구간에서 사용자의 가상 머신을 마이그레이션할 수 있다.
가상 머신을 마이그레이션할 클라우드 서버(2000)로써 결정함에 따라, 클라우드 제어 서버(1000)는 결정된 클라우드 서버(2000)로 가상 머신이 마이그레이션 되도록 복수의 클라우드 서버(2000)를 제어할 수 있다.
도 1B는 본 발명의 일 실시예에 따른, 클라우드 제어 서버(1000)가 예상 지연 시간에 기초하여 가상 머신을 마이그레이션할 클라우드 서버(2000)를 결정하는 방법을 설명하는 도면이다.
도 1B를 참조하면, 클라우드 제어 서버(1000)는 복수의 클라우드 서버(2000)에 대응하여 예상 지연 시간을 산출하고, 산출된 예상 지연 시간이 최소인 클라우드 서버(2000)로 제 2 클라우드 서버(2000b) 내의 가상 머신을 마이그레이션 할 수 있다.
지연 시간은 모바일 디바이스가 사용자의 입력을 클라우드 서버로 송신한 시점부터 사용자의 입력에 따라 처리된 워크로드의 실행 결과가 클라우드 서버로부터 모바일 디바이스로 돌아오는데까지 소요되는 시간을 의미할 수 있다.
클라우드 제어 서버(1000)는 워크 로드의 실행을 위해 필요한 연산 처리 능력, 메모리 사양 및 네트워크 속도를 결정할 수 있다. 예를 들어, 클라우드 제어 서버(1000)는 워크 로드의 실행을 위해 필요한 리소스 정보를 모바일 디바이스(100)로부터 수신할 수 있다. 또한, 예를 들어, 모바일 디바이스(100)의 워크로드를 실행하는 가상 머신이 위치하는 클라우드 서버(2000)로부터, 클라우드 서버(2000)에 의해 산출된 워크 로드의 실행을 위해 필요한 리소스 정보 수신할 수도 있다.
클라우드 제어 서버(1000)는 워크 로드의 실행을 위해 필요한 리소스 정보, 복수의 클라우드 서버(2000)가 제공 가능한 가상 머신 정보 및 복수의 클라우드 서버(2000)와 모바일 디바이스(100)와의 거리에 기초하여 복수의 클라우드 서버(2000)에 대응하는 예상 지연 시간을 산출할 수 있다.
예를 들어, 클라우드 제어 서버(1000)는 워크 로드가 요구하는 연산 처리 속도 보다 가상 머신의 연산 처리 속도가 작을수록 예상 지연 시간을 높게 결정할 수 있다. 또한, 클라우드 제어 서버(1000)는 워크 로드가 요구하는 메모리의 크기 보다 가상 머신의 메모리가 작을수록 예상 지연 시간을 높게 결정할 수 있다.
또한, 예를 들어, 클라우드 제어 서버(1000)는 클라우드 서버(2000)와 모바일 디바이스(100)와의 거리가 멀수록 예상 지연 시간을 높게 결정할 수 있다. 또한, 클라우드 제어 서버(1000)는 모바일 디바이스(100)에게 복수의 클라우드 서버(2000)의 네트워크 주소를 송신하고, 복수의 클라우드 서버(2000)와의 네트워크 상태를 테스트(예를 들어, Ping 테스트)할 것을 요청할 수 있다. 모바일 디바이스(100)로부터 복수의 클라우드 서버(2000)와의 네트워크 상태를 수신함에 따라, 클라우드 제어 서버(1000)는 패킷 송수신 시간 및 패킷 손실율이 클수록 예상 지연 시간을 높게 결정할 수 있다.
도 1B에서, 모바일 디바이스(100)와 제 1 클라우드 서버(2000a)간의 거리가 가장 짧지만, 제 1 클라우드 서버(2000a)의 연산 처리 속도와 메모리 용량이 모바일 디바이스(100)의 워크 로드가 요구하는 최소 사양 보다 작으므로 클라우드 제어 서버(1000)는 제 1 클라우드 서버(2000a)의 예상 지연 시간을 제 3 클라우드 서버(2000c)의 예상 지연 시간 보다 높게 결정할 수 있다. 이에 따라, 클라우드 제어 서버(1000)는 제 2 클라우드 서버(2000b) 내의 가상 머신을 제 3 클라우드 서버(2000c)로 마이그레이션 할 수 있다.
도 1C는 본 발명의 일 실시예에 따른, 클라우드 제어 서버(1000)가 지연 시간에 기초하여 가상 머신을 마이그레이션하는 방법을 설명하는 도면이다.
도 1C를 참조하면, 클라우드 제어 서버(1000)는 모바일 디바이스(100)가 이동됨에 따라, 지연 시간을 산출하고, 산출된 지연 시간에 기초하여, 가상 머신을 마이그레이션 할 수 있다.
도 1C에서, 사용자는 열차를 타고, 부산에서 출발하여 서울로 향하고 있다. 또한, 사용자는 모바일 디바이스(100) 내의 광학 문자 판독 어플리케이션을 이용하여 신문에 기재된 문자를 인식하여 정보를 검색하고 있다. 또한, 클라우드 제어 서버(1000)에는 사용자의 가상 머신이 지연 시간에 기초하여 마이그레이션되도록 설정되어 있다. 사용자는 집 내의 클라우드 서버인 서버 1(2000a, 스마트 TV)로 광학 문자 판독 어플리케이션을 오프로딩한 후 열차에 탑승하였다. 서버 1(2000a)내의 가상 머신은 모바일 디바이스(100)와 연동하여 광학 문자 판독 어플리케이션을 실행 하고 있다.
클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신을 모니터링 할 수 있다. 열차가 이동하여 서버 1(2000a)과 멀어짐에 따라 모바일 디바이스(100)와 서버 1(2000a)의 지연 시간이 증가할 수 있다.
모바일 디바이스(100)가 동대구로 향함에 따라, 클라우드 제어 서버(1000)는 서버 1(2000a) 및 서버 2(2000b)의 지연 시간을 산출할 수 있다. 예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)와 클라우드 서버들(2000a, 2000b)간의 거리 및 클라우드 서버들(2000a, 2000b)의 연산 처리 속도에 기초하여, 각각의 클라우드 서버들(2000a, 2000b)의 지연 시간을 산출할 수 있다. 도 1C에서, 모바일 디바이스(100)가 서버 2(2000b)와 가까워지고 있으며, 서버 2(2000b)의 연산 처리 속도가 더 높으므로, 클라우드 제어 서버(1000)는 서버 1(2000a) 내의 가상 머신을 서버 2(2000b)로 마이그레이션할 수 있다.
모바일 디바이스(100)가 동대구에서 광명으로 향함에 따라, 클라우드 제어 서버(1000)는 서버 2(2000b) 및 서버 3(2000c)의 지연 시간을 산출할 수 있다. 모바일 디바이스(100)가 서버 3(2000c)과 가까워지고 있으며, 서버 3(2000c)의 연산 처리 속도가 더 높으므로, 클라우드 제어 서버(1000)는 서버 2(2000b) 내의 가상 머신을 서버 3(2000c)으로 마이그레이션할 수 있다.
열차가 광명에서 서울로 향함에 따라, 클라우드 제어 서버(1000)는 서버 3(2000c) 및 서버 4(2000d)의 지연 시간을 산출할 수 있다. 도 1C에서, 모바일 디바이스(100)가 서버 4(2000d)와 가까워지고 있으나, 모바일 디바이스(100)로부터 서버 4(2000d)까지의 거리와 서버 3(2000c)까지의 거리는 차이가 크지 않으며, 서버 4(2000d)의 연산 처리 속도가 워크로드가 요구하는 연산 처리 속도에 미치지 못하며, 서버 4(2000d)의 연산 처리 속도가 서버 3(2000c)에 비해 현저히 떨어지므로, 클라우드 제어 서버(1000)는 서버 3(2000c) 내의 가상 머신을 서버 4(2000d)로 마이그레이션하지 않고, 서버 3(2000c)에서 계속 가상 머신을 실행시킬 수 있다.
도 1D는 본 발명의 일 실시예에 따른, 클라우드 제어 서버(1000)가 예상 과금에 기초하여, 가상 머신을 마이그레이션할 클라우드 서버(2000)를 결정하는 방법을 설명하는 도면이다.
도 1D를 참조하면, 클라우드 제어 서버(1000)는 복수의 클라우드 서버(2000)에 대응하여 예상 과금을 산출하고, 산출된 예상 과금이 최소인 클라우드 서버(2000)로 제 2 클라우드 서버(2000b) 내의 가상 머신을 마이그레이션 할 수 있다.
클라우드 제어 서버(1000)에는 복수의 클라우드 서버(2000)에 대응하는 과금 정책이 저장되어 있을 수 있다. 예를 들어, 복수의 클라우드 서버(2000) 대응하여 가상 머신을 구성하는 CPU의 성능, CPU의 개수, 메모리 용량, 하드웨어 용량, 운영 체제의 종류 및 GPU, 비디오 그래픽 카드 구비 여부 등에 따라 부과되는 금액이 결정되어 있을 수 있다. 또한, 예를 들어, 클라우드 서버(2000)와 연결되기 위한 네트워크의 사용료를 고려하여 부과되는 금액이 결정될 수 있다.
클라우드 제어 서버(1000)는 마이그레이션할 워크로드를 실행하기 위해 요구되는 리소스 정보 및 복수의 클라우드 서버(2000)에 대응하는 과금 정책에 기초하여 예상 과금을 산출할 수 있다. 예를 들어, 클라우드 제어 서버(1000)는 각각의 클라우드 서버(2000)에 대응하여, 각각의 클라우드 서버(2000)가 제공할 수 있는 가상 머신 중 워크로드가 요구하는 최저 사양을 만족하는 가상 머신의 가격을 획득할 수 있다. 예를 들어, 모바일 디바이스의 워크로드가 요구하는 최저 사양이 CPU 1GHz 1개 및 Memory 2GB 인경우, 클라우드 제어 서버(1000)는 제 3 클라우드 서버(2000c)가 제공하는 서로 다른 리소스를 구비한 가상 머신들 중 CPU 2GHz 1개, Memory 2GB, 하드 디스크 20GB로 구성되는 가상 머신의 가격을 제 3 클라우드 서버(2000c)에 대응하는 가격으로 결정할 수 있다.
도 1D에서, 클라우드 제어 서버(1000)는 제 2 클라우드 서버(2000b) 내의 가상 머신을 예상 과금이 무료인 제 1 클라우드 서버(2000a)로 마이그레이션 할 수 있다.
도 1E는 본 발명의 일 실시예에 따른, 클라우드 제어 서버(1000)가 모바일 디바이스(100)의 예상 배터리 소모량에 기초하여, 가상 머신을 마이그레이션할 클라우드 서버(2000)를 결정하는 방법을 설명하는 도면이다.
도 1E를 참조하면, 클라우드 제어 서버(1000)는 복수의 클라우드 서버(2000)에 대응하여 모바일 디바이스(100)의 예상 배터리 소모량을 산출하고, 산출된 배터리 소모량이 최소인 클라우드 서버(2000)로 제 2 클라우드 서버(2000b) 내의 가상 머신을 마이그레이션 할 수 있다.
모바일 디바이스(100)의 배터리 소모량은 클라우드 서버(2000)에 연결되는 네트워크의 종류 또는 네트워크의 상태에 따라 클라우드 서버(2000) 마다 상이할 수 있다. 예를 들어, 모바일 디바이스(100)가 근거리 무선 네트워크(예를 들어, WiFi)를 통해 클라우드 서버(2000)와 직접 연결될 수 있는 경우, 모바일 디바이스(100)의 배터리 소모량은 줄어들 수 있다.
또한, 클라우드 서버(2000)와의 통신 속도가 느리거나, 패킷 손실율이 높은 경우, 패킷의 재전송 시간 또는 패킷 대기 시간이 늘어남에 따라 모바일 디바이스(100)의 배터리 소모량이 증가 할 수 있다.
또한, 모바일 디바이스(100)의 배터리 소모량은 워크 로드의 실행을 위해 필요한 리소스 정보, 복수의 클라우드 서버(2000)가 제공 가능한 가상 머신의 정보를 고려하여 결정될 수 있다. 예를 들어, 클라우드 서버(2000)가 마이그레이션될 워크로드가 요구하는 최저 사양을 만족하는 가상 머신을 제공하지 못하는 경우, 지연 시간이 길어질 수 있다. 지연 시간이 길어짐에 따라, 모바일 디바이스(100)가 실행 결과를 출력하는 시간이 길어지게 되며, 실행 결과를 출력하는 시간이 길어짐에 따라 모바일 디바이스(100)의 배터리 소모량이 증가할 수 있다.
도 1E에서, 모바일 디바이스(100)와 제 1 클라우드 서버(2000a)간의 거리가 가장 짧고, 모바일 디바이스(100)는 제 1 클라우드 서버(2000a)와 근거리 무선 통신이 가능하지만, 제 1 클라우드 서버(2000a)의 연산 처리 속도와 메모리 용량이 모바일 디바이스(100)의 워크 로드가 요구하는 최소 사양 보다 작다. 또한, 모바일 디바이스(100)와 제 3 클라우드 서버(2000c)간의 거리가 모바일 디바이스(100)와 제 2 클라우드 서버(2000b)간의 거리보다 짧다. 따라서, 클라우드 제어 서버(1000)는 제 3 클라우드 서버(2000c), 제 1 클라우드 서버(2000a), 제 2 클라우드 서버(2000b) 순서로 예상 배터리 소모량이 클것으로 결정할 수 있다.
이에 따라, 클라우드 제어 서버(1000)는 제 2 클라우드 서버(2000b) 내의 가상 머신을 제 3 클라우드 서버(2000c)로 마이그레이션 할 수 있다.
도 1F는 본 발명의 일 실시예에 따른, 모바일 디바이스(100)가 마이그레이션 서버를 결정하는 기준을 설정하기 위한 메뉴를 제공하는 방법을 설명하는 도면이다.
도 1F를 참조하면, 모바일 디바이스(100)는 마이그레이션 서버를 결정하는 기준을 설정하기 위한 메뉴를 제공할 수 있다.
마이그레이션 서버를 결정하는 기준은 최소 지연 시간, 최소 과금, 최소 배터리 소모량을 포함할 수 있다.
화면에 디스플레이된 복수의 마이그레이션 서버를 결정하는 기준 중 하나를 선택하는 사용자 입력을 수신함에 따라, 모바일 디바이스(100)는 선택된 기준을 클라우드 제어 서버(1000)로 송신할 수 있다. 이 경우, 모바일 디바이스(100)는 클라우드 제어 서버(1000)에 등록된 사용자 식별 정보 및 모바일 디바이스(100)의 식별 정보를 함께 송신할 수 있다.
모바일 디바이스(100)로부터 마이그레이션 서버를 결정하는 기준에 관한 정보를 수신함에 따라, 클라우드 제어 서버(1000)는 사용자의 식별 정보 또는 모바일 디바이스(100)의 식별 정보에 대응하여, 수신한 마이그레이션 서버를 결정하는 기준에 관한 정보를 저장할 수 있다.
또한, 클라우드 제어 서버(1000)는 사용자에 의해 선택된 마이그레이션 서버를 결정하는 기준에 기초하여, 모바일 디바이스(100)의 워크 로드를 마이그레이션할 수 있다.
도 1F에는, 복수의 마이그레이션 서버를 결정하는 기준 중 하나만을 선택하는 메뉴를 제공하는 방법을 도시하였으나, 모바일 디바이스(100)는 복수개를 선택하는 메뉴를 제공할 수도 있다.
도 2는 본 발명의 일 실시예에 따른, 클라우드 제어 서버(1000)가 사용자의 선택에 기초하여 가상 머신을 마이그레이션하는 방법을 설명하는 흐름도이다.
단계 S210에서, 복수의 클라우드 서버(2000)들을 제어하는 클라우드 제어 서버(1000)는, 모바일 디바이스(100)에게, 복수의 클라우드 서버(2000)들 중 적어도 하나의 클라우드 서버(2000)에 관한 정보를 송신할 수 있다.
적어도 하나의 클라우드 서버(2000)에 관한 정보는 적어도 하나의 클라우드 서버(2000)의 식별 정보, 이름 정보, 위치 정보, 모바일 디바이스(100)로부터 적어도 하나의 클라우드 서버(2000)까지의 거리 정보, 적어도 하나의 클라우드 서버(2000)가 제공할 수 있는 가상 머신의 구성 정보 및 적어도 하나의 클라우드 서버(2000)가 제공할 수 있는 가상 머신의 연산 능력 정보 중 적어도 하나를 포함할 수 있다.
클라우드 제어 서버(1000)는 주기적으로 적어도 하나의 클라우드 서버(2000)에 관한 정보를 모바일 디바이스(100)에게 송신할 수 있다. 또한, 클라우드 제어 서버(1000)는 모바일 디바이스(100)로부터, 가상 머신을 제공할 수 있는 적어도 하나의 클라우드 서버(2000)에 관한 정보 요청을 수신하는 경우, 모바일 디바이스(100)에게 적어도 하나의 클라우드 서버(2000)에 관한 정보를 송신할 수도 있다.
클라우드 제어 서버(1000)는 복수의 클라우드 서버(2000)들 중 모바일 디바이스(100)의 가상 머신을 실행할 수 있는 적어도 하나의 클라우드 서버(2000)를 결정하고, 결정된 적어도 하나의 클라우드 서버(2000)에 관한 정보를 모바일 디바이스(100)로 송신할 수 있다.
예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 위치 정보를 획득하고, 모바일 디바이스(100)의 위치 정보에 기초하여, 모바일 디바이스(100)의 위치로부터 기 설정된 거리내에 위치한 적어도 하나의 클라우드 서버(2000)를 결정할 수 있다.
또한, 예를 들어, 클라우드 제어 서버(1000)는 어플리케이션을 실행하기 위해 필요한 연산 능력에 기초하여, 어플리케이션을 실행하기 위해 필요한 연산 능력을 구비한 가상 머신을 제공할 수 있는 적어도 하나의 클라우드 서버(2000)를 결정할 수 있다.
적어도 하나의 클라우드 서버(2000)를 결정함에 따라, 클라우드 제어 서버(1000)는 결정된 적어도 하나의 클라우드 서버(2000)에 관한 정보를 모바일 디바이스(100)로 송신할 수 있다.
단계 S220에서, 클라우드 제어 서버(1000)는, 모바일 디바이스(100)로부터 적어도 하나의 클라우드 서버(2000) 중 사용자에 의해 선택된 클라우드 서버(2000)의 식별 정보를 수신할 수 있다.
단계 S230에서, 클라우드 제어 서버(1000)는, 복수의 클라우드 서버(2000)들 중 모바일 디바이스(100)의 가상 머신이 위치한 클라우드 서버(2000)로부터 선택된 클라우드 서버(2000)로 가상 머신을 마이그레이션 할 수 있다.
모바일 디바이스(100)의 가상 머신은 모바일 디바이스(100)에서 출력되는 어플리케이션을 실행하는 가상 머신일 수 있다. 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신이 실행되는 클라우드 서버(2000)에게 모바일 디바이스(100)의 가상 머신을 사용자에 의해 선택된 클라우드 서버(2000)로 마이그레이션할 것을 요청할 수 있다. 모바일 디바이스(100)의 가상 머신이 실행되는 클라우드 서버(2000)로부터, 결정된 클라우드 서버(2000)로 모바일 디바이스(100)의 가상 머신이 마이그레이션되는 방법은 도 3을 참조하여 아래에서 상세히 설명한다.
도 3은 본 발명의 일 실시예에 따른, 가상 머신을 마이그레이션하는 방법을 설명하는 도면이다.
도 3을 참조하면, 제 1 클라우드 서버(2000a) 및 제 2 클라우드 서버(2000b)는 제 1 클라우드 서버(2000a)에서 실행되는 가상 머신을 제 2 클라우드 서버(2000b)로 마이그레이션 할 수 있다.
제 1 클라우드 서버(2000a) 또는 제 2 클라우드 서버(2000b)는 호스트 디바이스일 수 있다. 또한, 제 1 클라우드 서버(2000a) 또는 제 2 클라우드 서버(2000b)는 홈 클라우드 서버일 수 있으며, 범용 클라우드 서버일 수도 있다.
제 1 클라우드 서버(2000a)는 호스트 하드웨어(2000a_30), 호스트 운영 체제(2000a_20) 및 가상 머신 매니져(2000a_10)를 포함할 수 있다.
호스트 하드웨어(2000a_30)는 제 1 클라우드 서버(2000a) 내의 물리적인 컴퓨팅 리소스를 포함할 수 있다. 예를 들어, 호스트 하드웨어는 CPU, 하드 디스크, 램 및 네트워크 리소스 등을 포함할 수 있다.
호스트 운영체제(2000a_20)는 제 1 클라우드 서버(2000a)에 설치된 운영 체제를 의미할 수 있다. 즉, 호스트 운영체제(2000a_20)는 호스트 하드웨어(2000a_30)를 제어할 수 있는 프로그램을 의미할 있다. 또한, 호스트 운영체제(2000a_20)를 기반으로 다양한 어플리케이션이 실행될 수 있다. 가상 머신 매니져(2000a_10) 또한 하나의 어플리케이션으로써 호스트 운영체제(2000a_20) 상에서 실행될 수 있다.
가상 머신 매니져(2000a_10)는 가상 머신을 생성할 수 있다. 예를 들어, 가상 머신 매니져(2000a_10)는 외부 디바이스로부터 가상 머신 생성 요청을 수신할 수 있다. 가상 머신 생성 요청은 가상 머신 구성 정보를 포함할 수 있다.
또한, 가상 머신 매니져(2000a_10)는 가상 머신을 관리할 수 있다. 예를 들어, 가상 머신 매니져(2000a_10)는 가상 머신을 삭제 또는 마이그레이션할 수 있다.
또한, 가상 머신 매니져(2000a_10)는 가상 머신을 모니터링 할 수 있다. 예를 들어, 가상 머신 매니져(2000a_10)는 가상 머신을 생성하기 위한 제 1 클라우드 서버(2000a)의 리소스의 남은 용량을 모니터링할 수 있다. 또한, 가상 머신 매니져(2000a_10)는 가상 머신과 모바일 디바이스(100)간의 지연 시간을 모니터링할 수 있다.
외부 디바이스로부터 가상 머신 생성 요청을 수신함에 따라, 가상 머신 매니져(2000a_10)는 가상 머신 생성 요청에 기초하여, 가상 머신을 생성할 수 있다. 예를 들어, 가상 머신 매니져는(2000a_10)는 가상 머신 구성 정보에 기초하여, 가상 머신 실행에 필요한 리소스를 가상화할 수 있다.
예를 들어, 가상 머신 구성 정보가 2Ghz의 CPU 2개, 2GB RAM, 10GB 하드 디스크인 경우, 가상 머신 매니져는 2Ghz의 CPU 2개, 2GB RAM, 10GB 하드 디스크를 갖는 가상 머신을 생성할 수 있다.
예를 들어, 가상 머신 매니져(2000a_10)는 가상 머신의 메모리 또는 하드 디스크를 생성하기 위해 제 1 클라우드 서버(2000a) 내의 물리적인 메모리를 가상 머신에 할당할 수 있다. 그리고, 가상 머신 매니져(2000a_10)는 할당된 메모리에 10GB 하드 디스크를 구현할 수 있는 파일(예를 들어, 가상 하드 디스크 파일)을 적재함으로써 하드 디스크를 구현할 수 있다. 또한, 가상 머신 매니져(2000a_10)는 할당된 메모리 중 2GB 를 가상 머신의 메모리로 결정할 수 있다.
또한, 가상 머신 매니져(2000a_10)는 제 1 클라우드 서버(2000a)의 CPU를 다중화하여 2Ghz의 CPU 2개를 가상 머신의 CPU로 구현할 수 있다.
또한, 가상 머신 매니져(2000a_10)는 어플리케이션 실행에 필요한 운영 체제를 가상 머신 상에서 실행할 수 있다. 또한, 가상 머신 매니져(2000a_10)는 가상 머신 상에서 실행되는 운영 체제를 기반으로 어플리케이션을 실행할 수 있다. 가상 머신의 운영 체제 및 어플리케이션은 가상 머신의 하드 디스크에 저장될 수 있으며, 하드 디스크에 저장된 운영 체제 및 어플리케이션의 실행 코드가 가상 머신의 램에 적재됨에 따라 가상 머신 내에서 실행될 수 있다.
실시예에 따라, 하드 웨어 리소스, 운영 체제 또는 어플리케이션의 가상화는 하드 웨어 리소스, 운영 체제 또는 어플리케이션의 인스턴스화로 언급될 수 있다.
제 2 클라우드 서버(2000b) 또한, 호스트 하드웨어(2000b_30), 호스트 운영 체제(2000b_20) 및 가상 머신 매니져(2000b_10)를 포함할 수 있으며, 각각의 기능은 대응되는 제 1 클라우드 서버(2000a)의 구성과 동일할 수 있다.
제 1 클라우드 서버(2000a)는 제 1 클라우드 서버(2000a) 상에서 실행되는 제 2 가상 머신을 제 2 클라우드 서버(2000b)로 마이그레이션할 수 있다.
예를 들어, 제 1 클라우드 서버(2000a)의 가상 머신 매니져(2000a_10)는 제 2 클라우드 서버(2000b)의 가상 머신 매니져(2000b_10)에게, 제 1 클라우드 서버(2000a) 내의 제 2 가상 머신을 제 2 클라우드 서버(2000b)로 마이그레이션 할 것을 요청할 수 있다. 이 경우, 마이그레이션 요청은 가상 머신의 구성 정보를 포함할 수 있다. 제 1 클라우드 서버(2000a) 내의 제 2 가상 머신은 소스 가상 머신으로 언급될 수 있다.
제 2 클라우드 서버(2000b)의 가상 머신 매니져(2000b_10)는 마이그레이션 요청을 수신함에 따라, 가상 머신을 생성할 수 있다. 예를 들어, 제 2 클라우드 서버(2000b)의 메모리 중 일정 용량을, 제 1 클라우드 서버(2000a)로부터 수신할 소스 가상 머신 내의 데이터를 저장하기 위한 영역으로 할당할 수 있다. 또한, 제 2 클라우드 서버(2000b)의 가상 머신 매니져(2000b_10)는 가상 머신 구성 정보에 기초하여, 가상 머신의 컴퓨팅 리소스를 생성할 수 있다. 이 경우, 제 2 클라우드 서버(2000b) 내에 생성된 가상 머신은 타겟 가상 머신으로 언급될 수 있다.
또한, 제 1 클라우드 서버(2000a)의 가상 머신 매니져(2000a_10)는 소스 가상 머신 내의 데이터를 제 2 클라우드 서버(2000b)로 전송할 수 있다.
예를 들어, 제 1 클라우드 서버(2000a)의 가상 머신 매니져(2000a_10)는 소스 가상 머신 내의 모든 데이터를 제 2 클라우드 서버(2000b)로 전송할 수 있다. 이 경우, 제 1 클라우드 서버(2000a)의 가상 머신 매니져(2000a_10)는 제 1 클라우드 서버(2000a)의 전체 메모리 중 소스 가상 머신에 할당된 메모리에 기록된 데이터 전체를 이동시킴으로써 가상 머신을 마이그레이션 할 수 있다. 이에 따라, 소스 가상 머신 내의 CPU 레지스터 데이터, 램 및 하드 디스크에 적재된 모든 데이터가 제 2 클라우드 서버(2000b)로 이동될 수 있다. 이에 따라, 소스 가상 머신 내의 어플리케이션뿐만 아니라 운영 체제 또한 제 2 클라우드 서버(2000b)로 이동될 수 있다.
또한, 도 3에 도시되지 않았으나, 제 1 클라우드 서버(2000a)의 가상 머신 매니져(2000a_10)는 소스 가상 머신 내의 어플리케이션만을 제 2 클라우드 서버(2000b)로 전송할 수도 있다.
또한, 제 1 클라우드 서버(2000a)의 가상 머신 매니져(2000a_10)는 모바일 디바이스(100)와의 네트워크 프로토콜 상태 데이터(예를 들어, TCP Control Block) 등을 제 2 클라우드 서버(2000b)로 전송할 수 있다.
제 2 클라우드 서버(2000b)의 가상 머신 매니져(2000b_10)는 제 1 클라우드 서버(2000a)의 가상 머신 매니져(2000a_10)로부터 소스 가상 머신 내의 데이터를 수신함에 따라, 제 2 클라우드 서버(2000b) 내의 타겟 가상 머신의 램에 제 1 클라우드 서버(2000a)로부터 수신한 소스 가상 머신의 램 데이터를 저장할 수 있다. 또한, 제 2 클라우드 서버(2000b)의 가상 머신 매니져(2000b_10)는 타겟 가상 머신의 하드 디스크에 제 1 클라우드 서버(2000a)로부터 수신한 소스 가상 머신의 하드 디스크 데이터를 저장할 수 있다. 또한, 제 2 클라우드 서버(2000b)의 가상 머신 매니져(2000b_10)는 제 1 클라우드 서버(2000a)로부터 수신한 소스 가상 머신의 CPU 레지스터 값을 타겟 가상 머신의 CPU 레지스터에 기록할 수 있다.
또한, 제 1 클라우드 서버(2000a) 내부 또는 외부에 소스 가상 머신이 액세스하는 저장 장치가 있는 경우, 제 1 클라우드 서버(2000a)의 가상 머신 매니져(2000a_10)는 저장 장치에 대한 액세스 권한에 관한 정보를 제 2 클라우드 서버(2000b)로 전송할 수도 있다.
제 2 클라우드 서버(2000b)의 가상 머신 매니져(2000b_10)는 타겟 가상 머신을 실행할 수 있다. 제 2 클라우드 서버(2000b)에서 타겟 가상 머신이 실행됨에 따라, 타겟 가상 머신은 모바일 디바이스(100)와 네트워크를 통해 연결될 수 있다. 타겟 가상 머신이 모바일 디바이스(100)와 연결됨에 따라, 제 2 클라우드 서버(2000b)는 타겟 가상 머신의 실행 결과를 모바일 디바이스(100)로 전송할 수 있다.
실시예에 따라, 제 1 클라우드 서버(2000a)는 소스 가상 머신의 실행을 중지한 후, 소스 가상 머신을 제 2 클라우드 서버(2000b)에 마이그레이션 할 수 있다.
또한, 실시예에 따라, 제 1 클라우드 서버(2000a) 및 제 2 클라우드 서버(2000b)는 소스 가상 머신을 중지하지 않고, 소스 가상 머신을 제 2 클라우드 서버(2000b)로 전송할 수 있다. 이 때, 소스 가상 머신 내의 어플리케이션이 실행됨에 따라, 가상 머신 내의 데이터 등이 변경되는 경우, 변경된 부분만이 다시 제 2 클라우드 서버(2000b)로 전송될 수 있다. 또한, 모바일 디바이스(100)는 제 2 클라우드 서버(2000b)에 연결될 때까지 제 1 클라우드 서버(2000a)로부터 소스 가상 머신의 실행 결과를 수신할 수 있다.
도 4는 본 발명의 다른 실시예에 따른, 클라우드 제어 서버(1000)가 사용자의 선택에 기초하여, 가상 머신을 마이그레이션하는 방법을 설명하는 흐름도이다.
단계 S410에서, 모바일 디바이스(100)는 제 1 클라우드 서버(2000a) 내의 가상 머신을 이용하여 어플리케이션을 실행할 수 있다.
예를 들어, 실제 어플리케이션 및 운영 체제는 제 1 클라우드 서버(2000a) 상의 가상 머신에서 실행되고, 모바일 디바이스(100)는 가상 머신의 실행 결과를 제 1 클라우드 서버(2000a)로부터 수신하여 출력할 수 있다.
또한, 모바일 디바이스(100)는 사용자 입력을 제 1 클라우드 서버(2000a)로 전송할 수 있다. 모바일 디바이스(100)로부터 사용자 입력을 수신함에 따라, 제 1 클라우드 서버(2000a)는 사용자 입력에 기초하여 어플리케이션을 실행하고, 실행된 결과를 모바일 디바이스(100)에게 전송할 수 있다.
이에 따라, 사용자는 실제 어플리케이션이 모바일 디바이스(100)에서 실행되는 것처럼 모바일 디바이스(100)를 사용할 수 있다.
단계 S415에서, 모바일 디바이스(100)는 모바일 디바이스(100)의 가상 머신을 마이그레이션하기 위한 메뉴를 선택하는 사용자 입력을 수신할 수 있다.
예를 들어, 모바일 디바이스(100)는 어플리케이션의 실행 중 사용자의 입력에 따라, 어플리케이션 실행 이미지 상에 가상 머신을 마이그레이션하기 위한 메뉴를 디스플레이할 수 있다.
사용자가 실행 중인 가상 머신을 마이그레이션하기 위한 메뉴를 선택함에 따라, 모바일 디바이스(100)는 모바일 디바이스(100)의 가상 머신을 마이그레이션하기 위한 메뉴를 선택하는 사용자 입력을 수신할 수 있다.
또한, 예를 들어, 모바일 디바이스(100)는 가상 머신을 마이그레이션하기 위한 별도의 어플리케이션을 제공할 수도 있다. 이 경우, 모바일 디바이스(100)는 실행 중인 가상 머신 뿐만 아니라 실행 중이지는 않지만 클라우드 서버(2000) 상에 저장되어 있는 가상 머신들을 마이그레이션하기 하기 위한 인터페이스를 제공할 수도 있다.
단계 S420에서, 모바일 디바이스(100)는 클라우드 제어 서버(1000)에게 모바일 디바이스(100)의 가상 머신을 실행할 수 있는 적어도 하나의 클라우드 서버(2000)에 관한 정보를 요청할 수 있다.
가상 머신을 실행할 수 있는 적어도 하나의 클라우드 서버(2000)에 관한 정보 요청은 모바일 디바이스(100)의 가상 머신의 식별 정보를 포함할 수 있다. 또한, 가상 머신을 실행할 수 있는 적어도 하나의 클라우드 서버(2000)에 관한 정보 요청은 모바일 디바이스(100)의 위치 정보를 더 포함할 수 있다. 또한, 가상 머신을 실행할 수 있는 적어도 하나의 클라우드 서버(2000)에 관한 정보 요청은 클라우드 제어 서버(1000)에 등록된 사용자의 식별 정보 및 모바일 디바이스(100)의 식별 정보를 포함할 수 있다.
단계 S425에서, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신을 실행할 수 있는 적어도 하나의 클라우드 서버(2000)를 결정할 수 있다.
예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 위치 정보에 기초하여 모바일 디바이스(100)의 위치로부터 기 설정된 거리에 위치한 적어도 하나의 클라우드 서버(2000)를 결정할 수 있다.
또한, 예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신의 구성 정보에 기초하여, 적어도 하나의 클라우드 서버(2000)를 결정할 수도 있다. 예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)로부터 수신한 가상 머신의 식별 정보에 기초하여, 모바일 디바이스(100)의 가상 머신의 구성 정보를 획득할 수 있다. 클라우드 제어 서버(1000)는 획득된 모바일 디바이스(100)의 가상 머신의 구성과 동일한 구성을 구비한 가상 머신을 제공할 수 있는 적어도 하나의 클라우드 서버(2000)를 결정할 수 있다.
또한, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신 내의 워크로드의 실행을 위해 요구되는 가상 머신의 연산 능력, 클라우드 서버(2000)가 제공할 수 있는 가상 머신의 연산 능력 및 모바일 디바이스(100)와 클라우드 서버(2000) 간의 거리를 함께 고려하여, 지연 시간을 산출하고, 산출된 지연 시간이 기 설정된 임계값 이하인 적어도 하나의 클라우드 서버(2000)를 결정할 수도 있다.
클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신 내의 워크로드의 특성에 따라, 모바일 디바이스(100)로부터 클라우드 서버(2000)까지의 거리 또는 가상 머신의 연산 능력 중 하나를 적어도 하나의 클라우드 서버(2000)를 결정하는 기준으로 선택할 수도 있다.
예를 들어, 모바일 디바이스(100)의 가상 머신 내의 워크로드가 모바일 디바이스(100)와 클라우드 서버(2000)간의 데이터 이동량이 많은 특성을 갖는 경우, 클라우드 제어 서버(1000)는 모바일 디바이스(100)로부터 클라우드 서버(2000)까지의 거리를 기준으로 적어도 하나의 클라우드 서버(2000)를 결정할 수 있다. 또한, 가상 머신의 워크로드가 많은 연산량을 필요로하는 워크로드(예를 들어, Computing-sensitive work 또는 Big Data analysis)인 경우, 클라우드 제어 서버(1000)는 가상 머신의 연산 능력을 기준으로 적어도 하나의 클라우드 서버(2000)를 결정할 수도 있다.
단계 S430에서, 클라우드 제어 서버(1000)는 단계 S425에서 결정된 적어도 하나의 클라우드 서버(2000)에 관한 정보를 모바일 디바이스(100)에게 전송할 수 있다.
적어도 하나의 클라우드 서버(2000)에 관한 정보는 클라우드 서버(2000)들의 식별 정보, 이름, 모바일 디바이스(100)로부터 클라우드 서버(2000)까지의 거리 정보, 클라우드 서버(2000)들이 제공할 수 있는 가상 머신의 구성 정보, 클라우드 서버(2000)들이 제공할 수 있는 가상 머신의 연산 능력에 관한 정보 및 지연 시간을 포함할 수 있다.
단계 S435에서, 모바일 디바이스(100)는 클라우드 제어 서버(1000)로부터 수신된 적어도 하나의 클라우드 서버(2000)에 관한 정보를 디스플레이할 수 있다.
예를 들어, 모바일 디바이스(100)는 클라우드 제어 서버(1000)로부터 수신한 클라우드 서버(2000)들의 위치 정보에 기초하여, 지도 이미지를 디스플레이하고, 디스플레이된 지도 이미지 상에 클라우드 서버(2000)들의 위치를 표시할 수 있다.
또한, 예를 들어, 모바일 디바이스(100)는 클라우드 서버(2000) 각각에 대응하는 지도상의 위치에, 클라우드 서버(2000)의 이름, 모바일 디바이스(100)로부터 클라우드 서버(2000)까지의 거리 정보, 클라우드 서버(2000)들이 제공할 수 있는 가상 머신의 구성 정보, 클라우드 서버(2000)들이 제공할 수 있는 가상 머신의 연산 능력에 관한 정보 및 지연 시간 등을 디스플레이할 수 있다.
단계 S440에서, 모바일 디바이스(100)는 디스플레이된 적어도 하나의 클라우드 서버(2000) 중 제 2 클라우드 서버(2000b)를 선택하는 사용자 입력을 수신할 수 있다.
모바일 디바이스(100)는 적어도 하나의 클라우드 서버(2000)에 관한 정보를 사용자에게 제공하고, 사용자로부터 하나의 클라우드 서버(2000)를 선택하는 입력을 수신할 수 있다.
단계 S445에서, 모바일 디바이스(100)는 사용자에 의해 선택된 제 2 클라우드 서버(2000b)로 모바일 디바이스(100)의 가상 머신을 마이그레이션할 것을 요청할 수 있다.
가상 머신 마이그레이션 요청은 사용자에 의해 선택된 제 2 클라우드 서버(2000b)의 식별 정보를 포함할 수 있다.
단계 S450에서, 클라우드 제어 서버(1000)는 제 1 클라우드 서버(2000a)에게 모바일 디바이스(100)의 가상 머신을 제 2 클라우드 서버(2000b)로 마이그레이션할 것을 요청할 수 있다.
모바일 디바이스(100)로부터 가상 머신 마이그레이션 요청을 수신함에 따라, 클라우드 제어 서버(1000)는 가상 머신의 식별 정보에 기초하여, 모바일 디바이스(100)의 가상 머신이 저장된 제 1 클라우드 서버(2000a)의 식별 정보를 획득할 수 있다.
모바일 디바이스(100)의 가상 머신이 저장된 제 1 클라우드 서버(2000a)의 식별 정보를 획득함에 따라, 클라우드 제어 서버(1000)는, 제 1 클라우드 서버(2000a)에게 모바일 디바이스(100)의 가상 머신을 사용자에 의해 선택된 제 2 클라우드 서버(2000b)로 마이그레이션할 것을 요청할 수 있다.
제 1 클라우드 서버(2000a)에게 전송되는 가상 머신 마이그레이션 요청은, 가상 머신의 식별 정보 및 제 2 클라우드 서버(2000b)의 식별 정보를 포함할 수 있다.
단계 S455에서, 제 1 클라우드 서버(2000a)는 제 1 클라우드 서버(2000a)에서 실행 중인 모바일 디바이스(100)의 가상 머신을 제 2 클라우드 서버(2000b)로 마이그레이션할 수 있다.
제 1 클라우드 서버(2000a)는 가상 머신의 식별 정보에 기초하여, 제 1 클라우드 서버(2000a) 상에 저장된 복수의 가상 머신 중 마이그레이션 요청된 모바일 디바이스(100)의 가상 머신을 식별할 수 있다.
모바일 디바이스(100)의 가상 머신을 식별함에 따라, 제 1 클라우드 서버(2000a)는, 제 2 클라우드 서버(2000b)로 모바일 디바이스(100)의 가상 머신을 마이그레이션할 수 있다. 제 1 클라우드 서버(2000a)로부터 제 2 클라우드 서버(2000b)로, 제 1 클라우드 서버(2000a)에 저장된 가상 머신을 마이그레이션하는 방법은 도 3을 참조하여 설명될 수 있다.
단계 S460에서, 모바일 디바이스(100)는 제 2 클라우드 서버(2000b) 내의 가상 머신을 이용하여 어플리케이션을 실행할 수 있다.
모바일 디바이스(100)의 가상 머신이 제 1 클라우드 서버(2000a)로부터 제 2 클라우드 서버(2000b)로 마이그레이션됨에 따라, 모바일 디바이스(100)는 제 2 클라우드 서버(2000b) 내의 가상 머신을 이용하여 어플리케이션을 실행할 수 있다.
도 5는 본 발명의 일 실시예에 따른, 모바일 디바이스(100)가 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)를 선택하기 위한 사용자 인터페이스를 제공하는 방법을 설명하는 도면이다.
도 5를 참조하면, 모바일 디바이스(100)는 가상 머신의 위치를 이동시키기 위한 메뉴를 디스플레이할 수 있다.
예를 들어, 모바일 디바이스(100)는 클라우드 서버(2000)로부터 모바일 디바이스(100)의 가상 머신 상에서 실행되는 어플리케이션의 실행 이미지를 수신하고, 수신된 실행 이미지를 모바일 디바이스(100)의 화면에 디스플레이할 수 있다. 모바일 디바이스(100)는 어플리케이션의 가상 실행 중 기 설정된 키를 입력하는 사용자 입력을 수신한 경우, 디스플레이된 실행 이미지 상에 가상 머신을 마이그레이션하기 위한 메뉴(510)를 디스플레이할 수 있다.
가상 머신을 마이그레이션하기 위한 메뉴(510)를 선택하는 사용자 입력을 수신함에 따라, 모바일 디바이스(100)는 클라우드 제어 서버(1000)에게 모바일 디바이스(100)의 가상 머신이 실행될 수 있는 적어도 하나의 클라우드 서버(2000)에 관한 정보를 요청할 수 있다.
도 6A은 본 발명의 다른 실시예에 따른, 모바일 디바이스(100)가 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)를 선택하기 위한 사용자 인터페이스를 제공하는 방법을 설명하는 도면이다.
도 6A을 참조하면, 모바일 디바이스(100)는 가상 머신이 실행될 수 있는 클라우드 서버(2000)가 위치한 지역(610 내지 640)이 표시된 지도(600)를 디스플레이할 수 있다.
예를 들어, 모바일 디바이스(100)는 클라우드 서버(2000)로부터 모바일 디바이스(100)의 가상 머신이 실행될 수 있는 적어도 하나의 클라우드 서버(2000)에 관한 정보를 수신할 수 있다.
적어도 하나의 클라우드 서버(2000)에 관한 정보는 클라우드 서버(2000)들의 식별 정보, 이름, 모바일 디바이스(100)로부터 클라우드 서버(2000)까지의 거리 정보, 클라우드 서버(2000)들이 제공할 수 있는 가상 머신의 구성 정보, 클라우드 서버(2000)들이 제공할 수 있는 가상 머신의 연산 능력에 관한 정보 및 지연 시간을 포함할 수 있다.
모바일 디바이스(100)는 클라우드 제어 서버(1000)로부터 수신한 클라우드 서버(2000)들의 위치 정보에 기초하여, 지도 이미지를 디스플레이하고, 디스플레이된 지도 이미지 상에 클라우드 서버(2000)들의 위치를 표시할 수 있다.
또한, 모바일 디바이스(100)는 클라우드 서버(2000) 각각에 대응하는 지도상의 위치에, 클라우드 서버(2000)의 이름, 모바일 디바이스(100)로부터 클라우드 서버(2000)까지의 거리 정보 및 클라우드 서버(2000)들이 제공할 수 있는 가상 머신의 연산 능력 및 지연 시간을 디스플레이할 수 있다.
또한, 모바일 디바이스(100)는 홈 클라우드 서버(2000)를 나타내는 이미지(640)를 범용 클라우드 서버(2000)를 나타내는 이미지(610, 620, 650)와 구별 되도록 표시할 수 있다.
또한, 모바일 디바이스(100)는 모바일 디바이스(100)의 현재 위치를 나타내는 이미지(660)를 지도상에 디스플레이할 수 있다.
모바일 디바이스(100)는 사용자로부터 하나의 클라우드 서버(2000)를 선택하는 입력을 수신할 수 있다. 하나의 클라우드 서버(2000)를 선택하는 사용자 입력을 수신함에 따라, 모바일 디바이스(100)는 사용자에 의해 선택된 클라우드 서버(2000)로 모바일 디바이스(100)의 가상 머신을 마이그레이션할 것을 클라우드 제어 서버(1000)에게 요청할 수 있다. 가상 머신 마이그레이션 요청은 사용자에 의해 선택된 클라우드 서버(2000)의 식별 정보를 포함할 수 있다.
도 6B는 본 발명의 다른 실시예에 따른, 모바일 디바이스(100)가 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)를 선택하기 위한 사용자 인터페이스를 제공하는 방법을 설명하는 도면이다.
도 6B를 참조하면, 모바일 디바이스(100)는 가상 머신이 실행될 수 있는 클라우드 서버(2000)가 위치한 지역(610 내지 640)이 표시된 지도(600)를 디스플레이할 수 있다.
모바일 디바이스(100)는 클라우드 제어 서버(1000)로부터 수신한 클라우드 서버(2000)들의 위치 정보에 기초하여, 지도 이미지를 디스플레이하고, 디스플레이된 지도 이미지 상에 클라우드 서버(2000)들의 위치를 표시할 수 있다.
또한, 모바일 디바이스(100)는 클라우드 서버(2000) 각각에 대응하는 지도상의 위치에, 클라우드 서버(2000)의 이름, 지연 시간, 과금 및 배터리 소모량을 디스플레이할 수 있다. 클라우드 서버(2000)의 지연 시간, 과금 및 배터리 소모량은 모바일 디바이스(100)의 워크 로드가 요구하는 리소스 정보, 클라우드 서버(2000)가 제공할 수 있는 가상 머신의 리소스 정보 및 가상 머신과 모바일 디바이스간의 통신 속도에 기초하여 클라우드 제어 서버(1000)에 의해 기 산출된 정보일 수 있다.
모바일 디바이스(100)는 사용자로부터 하나의 클라우드 서버(2000)를 선택하는 입력을 수신할 수 있다. 하나의 클라우드 서버(2000)를 선택하는 사용자 입력을 수신함에 따라, 모바일 디바이스(100)는 사용자에 의해 선택된 클라우드 서버(2000)로 모바일 디바이스(100)의 가상 머신을 마이그레이션할 것을 클라우드 제어 서버(1000)에게 요청할 수 있다. 가상 머신 마이그레이션 요청은 사용자에 의해 선택된 클라우드 서버(2000)의 식별 정보를 포함할 수 있다.
도 7은 본 발명의 일 실시예에 따른, 클라우드 제어 서버(1000)가 모바일 디바이스(100)의 사용자의 이동 경로 정보에 기초하여, 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)를 결정하는 방법을 설명하는 흐름도이다.
단계 S710에서, 복수의 클라우드 서버(2000)들을 제어하는 클라우드 제어 서버(1000)는, 모바일 디바이스(100)의 사용자의 이동 경로에 관한 정보를 획득할 수 있다.
사용자의 이동 경로에 관한 정보는 시간에 따른 사용자의 위치를 나타내는 정보를 의미할 수 있다. 예를 들어, 사용자의 이동 경로에 관한 정보는 하루 동안 시간에 따라 변경되는 사용자의 위치를 나타내는 정보일 수 있다.
단계 S720에서, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 위치 정보를 획득할 수 있다.
클라우드 제어 서버(1000)는 모바일 디바이스(100)로부터 모바일 디바이스(100)의 위치 정보를 획득할 수 있다. 실시예에 따라, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신이 위치한 클라우드 서버(2000)로부터 모바일 디바이스(100)의 위치 정보를 획득할 수도 있다.
모바일 디바이스(100)의 위치 정보는 모바일 디바이스의 위도, 경도 및 모바일 디바이스가 위치한 주소 정보를 포함할 수 있다. 또한, 모바일 디바이스(100)의 위치 정보는 위도, 경도 정보가 측정된 시간 정보를 포함할 수도 있다. 또한, 모바일 디바이스(100)의 위치 정보는 각 위치에서의 모바일 디바이스(100)의 속도 정보를 포함할 수 있다.
단계 730에서, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 위치 정보 및 사용자의 이동 경로에 관한 정보에 기초하여, 모바일 디바이스(100)가 이동될 예상 경로를 결정할 수 있다.
예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 위치 정보에 기초하여, 사용자의 이동 경로 상에서 모바일 디바이스(100)의 위치에 대응되는 지점을 결정할 수 있다. 또한, 이동 경로 정보가 시간에 따른 사용자의 이동 경로를 나타내는 경우, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 위치 정보가 측정된 시간에 기초하여, 모바일 디바이스(100)의 이동 방향을 결정할 수 있다.
모바일 디바이스(100)의 위치에 대응되는 지점 및 모바일 디바이스(100)의 이동 방향을 결정함에 따라, 클라우드 제어 서버(1000)는 사용자의 이동 경로 정보로부터 일정 시간 동안의 모바일 디바이스(100)가 이동할 예상 경로를 산출할 수 있다.
단계 S740에서, 클라우드 제어 서버(1000)는 모바일 디바이스(100)가 이동될 예상 경로에 기초하여, 모바일 디바이스(100)의 가상 머신을 마이그레이션 할 클라우드 서버(2000)를 결정할 수 있다.
클라우드 제어 서버(1000)는 모바일 디바이스(100)의 예상 경로로부터 가장 가까운 거리에 위치한 클라우드 서버(2000)를 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)로써 결정할 수 있다.
또한, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 예상 경로로부터 기 설정된 거리내에 위치한 적어도 하나의 클라우드 서버(2000)를 결정하고, 결정한 적어도 하나의 클라우드 서버(2000) 중 모바일 디바이스(100)의 예상 속도, 클라우드 서버(2000)가 제공할 수 있는 가상 머신의 연산 능력에 기초하여 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)를 결정할 수도 있다.
단계 S750에서, 클라우드 제어 서버(1000)는 복수의 클라우드 서버(2000)들 중 모바일 디바이스(100)의 가상 머신이 실행되는 클라우드 서버(2000)로부터, 결정된 클라우드 서버(2000)로 모바일 디바이스(100)의 가상 머신을 마이그레이션할 수 있다.
모바일 디바이스(100)의 가상 머신은 모바일 디바이스(100)에서 출력되는 어플리케이션을 실행하는 가상 머신일 수 있다. 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신이 실행되는 클라우드 서버(2000)에게 모바일 디바이스(100)의 가상 머신을 결정된 클라우드 서버(2000)로 마이그레이션할 것을 요청할 수 있다. 모바일 디바이스(100)의 가상 머신이 실행되는 클라우드 서버(2000)로부터 결정된 클라우드 서버(2000)로 모바일 디바이스(100)의 가상 머신이 마이그레이션되는 방법은 도 3에 의해 설명될 수 있다.
이 경우, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신에 대한 사용자의 사용 패턴에 관한 정보에 기초하여, 모바일 디바이스(100)의 가상 머신을 마이그레이션할 시점을 결정하고, 결정된 시점에 모바일 디바이스(100)의 가상 머신을 마이그레이션할 수 있다. 예를 들어, 사용자가 기 결정된 시간 동안 모바일 디바이스(100)의 가상 머신을 사용하지 않는 시점을 모바일 디바이스(100)의 가상 머신을 마이그레이션할 시점으로 결정할 수 있다.
도 8은 본 발명의 다른 실시예에 따른, 클라우드 제어 서버(1000)가 모바일 디바이스(100)의 사용자의 이동 경로 정보에 기초하여, 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)를 결정하는 방법을 설명하는 흐름도이다.
단계 S810에서, 모바일 디바이스(100)는 제 1 클라우드 서버(2000a) 내의 가상 머신을 이용하여 어플리케이션을 실행할 수 있다.
예를 들어, 실제 어플리케이션 및 운영 체제는 제 1 클라우드 서버(2000a) 상의 가상 머신에서 실행되고, 모바일 디바이스(100)는 가상 머신의 실행 결과를 제 1 클라우드 서버(2000a)로부터 수신하여 출력할 수 있다.
또한, 모바일 디바이스(100)는 사용자 입력을 제 1 클라우드 서버(2000a)로 전송할 수 있다. 모바일 디바이스(100)로부터 사용자 입력을 수신함에 따라, 제 1 클라우드 서버(2000a)는 사용자 입력에 기초하여 어플리케이션을 실행하고, 실행된 결과를 모바일 디바이스(100)에게 전송할 수 있다.
이에 따라, 사용자는 실제 어플리케이션이 모바일 디바이스(100)에 실행되는 것처럼 모바일 디바이스(100)를 사용할 수 있다.
단계 S820에서, 클라우드 제어 서버(1000)는 모바일 디바이스(100)로부터 모바일 디바이스(100)의 사용자의 이동 경로에 관한 정보를 획득할 수 있다.
클라우드 제어 서버(1000)는 주기적으로 일정 기간 동안 모바일 디바이스(100)로부터 모바일 디바이스(100)의 위치 정보를 수신하고, 수신된 위치 정보에 기초하여 사용자의 평균적인 이동 경로에 관한 정보를 생성할 수 있다. 또한, 클라우드 제어 서버(1000)는 모바일 디바이스(100)로부터 사용자의 이동 경로에 관한 정보를 수신할 수도 있다. 또한, 클라우드 제어 서버(1000)는 이동 경로를 설정하는 사용자 입력에 기초하여, 사용자의 이동 경로에 관한 정보를 획득할 수도 있다.
사용자의 이동 경로에 관한 정보를 획득함에 따라, 클라우드 제어 서버(1000)는 사용자의 식별 정보에 대응하여 사용자의 이동 경로에 관한 정보를 저장할 수 있다.
사용자의 이동 경로에 관한 정보는 시간에 따른 사용자의 위치를 나타내는 정보를 의미할 수 있다. 예를 들어, 사용자의 이동 경로에 관한 정보는 하루 동안 시간에 따라 변경되는 사용자의 위치를 나타내는 정보일 수 있다.
단계 S830에서, 클라우드 제어 서버(1000)는 모바일 디바이스(100)에게 모바일 디바이스(100)의 위치 정보를 요청할 수 있다.
클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신을 마이그레이션할지 여부를 결정할 수 있다. 예를 들어, 클라우드 제어 서버(1000)는 주기적으로 모바일 디바이스(100)의 가상 머신을 마이그레이션할 지 여부를 결정할 수 있다. 또한, 클라우드 제어 서버(1000)는 모바일 디바이스(100)와 클라우드 서버(2000)간의 통신 속도가 임계값 이하로 낮아지는 경우, 모바일 디바이스(100)의 가상 머신을 마이그레이션할 지 여부를 결정할 수도 있다.
모바일 디바이스(100)의 가상 머신을 마이그레이션할 것을 결정한 경우, 클라우드 제어 서버(1000)는 모바일 디바이스(100)에게 모바일 디바이스(100)의 위치 정보를 요청할 수 있다.
단계 S840에서, 모바일 디바이스(100)는 클라우드 제어 서버(1000)에게 모바일 디바이스(100)의 위치 정보를 송신할 수 있다.
모바일 디바이스(100)의 위치 정보는 위도, 경도 및 주소를 포함할 수 있다. 또한, 모바일 디바이스(100)의 위치 정보는 위도, 경도 정보가 측정된 시간 정보를 포함할 수도 있다. 또한, 모바일 디바이스(100)의 위치 정보는 각 위치에서의 모바일 디바이스(100)의 속도 정보를 포함할 수 있다.
단계 S850에서, 클라우드 제어 서버(1000)는 사용자의 이동 경로 및 모바일 디바이스(100)의 위치 정보에 기초하여, 모바일 디바이스(100)가 이동할 예상 경로를 결정할 수 있다.
예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 위치 정보에 기초하여, 사용자의 이동 경로 상에서 모바일 디바이스(100)의 위치에 대응되는 지점을 결정할 수 있다. 또한, 이동 경로 정보가 시간에 따른 사용자의 이동 경로를 나타내는 경우, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 위치 정보가 측정된 시간에 기초하여, 모바일 디바이스(100)의 이동 방향을 결정할 수 있다.
모바일 디바이스(100)의 위치에 대응되는 지점 및 모바일 디바이스(100)의 이동 방향을 결정함에 따라, 클라우드 제어 서버(1000)는 사용자의 이동 경로 정보로부터 일정 시간 동안의 모바일 디바이스(100)가 이동할 예상 경로를 산출할 수 있다.
단계 S860에서, 클라우드 제어 서버(1000)는 모바일 디바이스(100)가 이동할 예상 경로에 기초하여, 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)로써 제 2 클라우드 서버(2000b)를 결정할 수 있다.
클라우드 제어 서버(1000)는 모바일 디바이스(100)의 예상 경로로부터 가장 가까운 거리에 위치한 클라우드 서버(2000)를 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)로써 제 2 클라우드 서버(2000b)를 결정할 수 있다.
또한, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 예상 경로로부터 기 설정된 거리내에 위치한 적어도 하나의 클라우드 서버(2000)를 결정하고, 결정한 적어도 하나의 클라우드 서버(2000) 중 모바일 디바이스(100)의 예상 속도, 클라우드 서버(2000)가 제공할 수 있는 가상 머신의 연산 능력에 기초하여 모바일 디바이스(100)의 가상 머신을 마이그레이션할 제 2 클라우드 서버(2000b)를 결정할 수도 있다.
예를 들어, 사용자의 이동 경로 정보가 이동 경로 상에서의 속도 정보를 포함하는 경우, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 위치 정보 및 사용자의 이동 경로에 관한 정보에 기초하여 이동 경로 상에서의 모바일 디바이스(100)의 예상 속도를 획득할 수 있다.
모바일 디바이스(100)의 예상 속도를 획득함에 따라, 클라우드 제어 서버(1000)는 예상 속도를 고려하여, 결정한 적어도 하나의 클라우드 서버(2000) 중 기 설정된 시간 동안 모바일 디바이스(100)와의 누적 거리가 가장 가까운 클라우드 서버(2000)를 모바일 디바이스(100)의 가상 머신을 마이그레이션 할 제 2 클라우드 서버(2000b)로 결정할 수 있다. 즉, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 예상 속도를 고려하여, 예상 경로 상에서 마이그레이션이 가장 적게 발생할 수 있는 클라우드 서버(2000)를 모바일 디바이스(100)의 가상 머신을 마이그레이션할 제 2 클라우드 서버(2000b)로써 결정할 수 있다.
또한, 예를 들어, 클라우드 제어 서버(1000)는 적어도 하나의 클라우드 서버(2000) 중 가장 높은 연산 능력을 구비한 가상 머신을 제공하는 클라우드 서버(2000)를 모바일 디바이스(100)의 가상 머신을 마이그레이션 할 제 2 클라우드 서버(2000b)로 결정할 수도 있다.
단계 S870에서, 클라우드 제어 서버(1000)는 제 1 클라우드 서버(2000a)에게 모바일 디바이스(100)의 가상 머신을 제 2 클라우드 서버(2000b)로 마이그레이션할 것을 요청할 수 있다.
모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)를 결정함에 따라, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신이 저장된 제 1 클라우드 서버(2000a)의 식별 정보를 획득할 수 있다.
모바일 디바이스(100)의 가상 머신이 저장된 제 1 클라우드 서버(2000a)의 식별 정보를 획득함에 따라, 클라우드 제어 서버(1000)는, 제 1 클라우드 서버(2000a)에게 모바일 디바이스(100)의 가상 머신을 단계 S860에서 결정된 제 2 클라우드 서버(2000b)로 마이그레이션할 것을 요청할 수 있다. 제 1 클라우드 서버(2000a)에게 전송되는 가상 머신 마이그레이션 요청은, 가상 머신의 식별 정보 및 제 2 클라우드 서버(2000b)의 식별 정보를 포함할 수 있다.
단계 S880에서, 제 1 클라우드 서버(2000a)는 제 1 클라우드 서버(2000a)에게 실행 중인 모바일 디바이스(100)의 가상 머신을 제 2 클라우드 서버(2000b)로 마이그레이션할 수 있다.
제 1 클라우드 서버(2000a)는 가상 머신의 식별 정보에 기초하여, 제 1 클라우드 서버(2000a) 상에 저장된 복수의 가상 머신 중 마이그레이션 요청된 모바일 디바이스(100)의 가상 머신을 식별할 수 있다.
모바일 디바이스(100)의 가상 머신을 식별함에 따라, 제 1 클라우드 서버(2000a)는, 제 2 클라우드 서버(2000b)로 모바일 디바이스(100)의 가상 머신을 마이그레이션할 수 있다. 제 1 클라우드 서버(2000a)로부터 제 2 클라우드 서버(2000b)로, 제 1 클라우드 서버(2000a)에 저장된 가상 머신을 마이그레이션하는 방법은 도 3을 참조하여 설명될 수 있다.
단계 S890에서, 모바일 디바이스(100)는 제 2 클라우드 서버(2000b) 내의 가상 머신을 이용하여 어플리케이션을 실행할 수 있다.
모바일 디바이스(100)의 가상 머신이 제 1 클라우드 서버(2000a)로부터 제 2 클라우드 서버(2000b)로 마이그레이션됨에 따라, 모바일 디바이스(100)는 제 2 클라우드 서버(2000b) 내의 가상 머신을 이용하여 어플리케이션을 실행할 수 있다.
도 9는 본 발명의 일 실시예에 따른, 클라우드 제어 서버(1000)에 저장된 사용자의 이동 경로에 관한 정보를 나타내는 도면이다.
도 9를 참조하면, 사용자의 이동 경로에 관한 정보(900)는 시간(910)에 따른 모바일 디바이스(100)의 위도(920), 경도(930) 및 속도(940)를 포함할 수 있다.
사용자의 이동 경로에 관한 정보(900)는 통계적으로 산출될 수 있다. 예를 들어, 클라우드 제어 서버(1000)는 한달 동안 모바일 디바이스(100)로부터 모바일 디바이스(100)의 위치 정보를 수신하고, 수신된 위치 정보에 기초하여 시간에 따른 모바일 디바이스(100)의 위치 및 속도를 기록할 수 있다. 한달 동안 기록된 위치 및 속도에 기초하여, 클라우드 제어 서버(1000)는 사용자의 평균 이동 경로 정보를 산출할 수 있다.
사용자의 이동 경로에 관한 정보(900)는 사용자의 식별 정보에 대응하여 클라우드 제어 서버(1000)에 저장될 수 있다.
도 10은 본 발명의 일 실시예에 따른, 클라우드 제어 서버(1000)가 사용자의 이동 경로에 관한 정보에 기초하여 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)를 결정하는 방법을 나타내는 도면이다.
도 10을 참조하면, 모바일 디바이스(100)의 현재 위치(1080)가 Server1(1010)과 Server2(1030) 사이에 위치하고, 모바일 디바이스(100)의 위치(1080)에 관한 정보가 획득된 시간이 오후 6시 50분 인 경우, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)로써 Server3(1040)를 결정할 수 있다.
예를 들어, 모바일 디바이스(100)와 Server1(1010)간의 지연 시간이 커짐에 따라, 클라우드 서버(2000)는 모바일 디바이스(100)로부터 모바일 디바이스(100)의 위치 정보를 요청할 수 있다. 클라우드 제어 서버(1000)는 모바일 디바이스(100)로부터 모바일 디바이스(100)의 위치 정보를 수신할 수 있다.
클라우드 제어 서버(1000)는 모바일 디바이스(100)의 위치 정보를 수신함에 따라, 도 9에 도시된 사용자의 이동 경로 정보에 기초하여, 모바일 디바이스(100)가 이동될 예상 경로를 결정할 수 있다.
예를 들어, 클라우드 제어 서버(1000)는 사용자의 이동 경로에 관한 정보에 기초하여, 사용자의 이동 경로 상의 지점 중 모바일 디바이스(100)의 위치에 대응되는 지점(1080)을 결정할 수 있다. 또한, 모바일 디바이스(100)의 위치 정보가 획득된 시간이 오후 6시 50분인 경우, 모바일 디바이스(100)는 모바일 디바이스(100)의 이동 방향을 사용자의 이동 경로 상에서 회사(1020)에 집(1060)으로 이동하는 방향으로 결정할 수 있다.
사용자의 이동 경로 상의 지점 중 모바일 디바이스(100)의 위치에 대응되는 지점(1020) 및 모바일 디바이스(100)의 이동 방향을 결정함에 따라, 클라우드 제어 서버(1000)는 모바일 디바이스(100)가 사용자의 이동 경로를 따라 동쪽으로 이동할 것임을 결정할 수 있다.
모바일 디바이스(100)가 이동할 예상 경로를 결정함에 따라, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)를 결정할 수 있다.
클라우드 제어 서버(1000)는 모바일 디바이스(100)가 이동할 예상 경로 및 예상 속도를 고려하여, 단위 시간 동안 마이그레이션이 가장 적게 발생할 수 있는 클라우드 서버(2000)를 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)로써 결정할 수 있다.
예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)가 이동할 예상 경로로부터 기 설정된 거리 내에 Server2(1030)와 Server3(1040)가 위치 하고 있음을 결정할 수 있다. 또한, 클라우드 제어 서버(1000)는 도 9에 도시된 사용자의 이동 경로 정보에 기초하였을 때, 모바일 디바이스(100)가 예상 경로를 따라 이동하는 경우, 모바일 디바이스(100)로부터 Server2(1030)까지의 누적 거리가 Server3(1040)까지의 누적 거리 보다 작다고 판단할 수 있다. 즉, 클라우드 제어 서버(1000)는 모바일 디바이스(100)가 Server2(1030) 근방을 거쳐 Server3(1040) 근방으로 이동하며, Server2(1030) 근방에서의 이동 속도가 Server3(1040) 근방에서의 이동 속도 보다 빠르므로, 모바일 디바이스(100)가 Server2(1030) 근방에 머무르는 시간 구간 보다 Server3(1040) 근방에 머무르는 시간 구간이 임계치 이상 긴 것으로 판단할 수 있다.
따라서, 클라우드 제어 서버(1000)는 Server2(1030)와 Server3(1040) 중 기 설정된 시간 동안 모바일 디바이스(100)와의 누적 거리가 가장 가까운 Server3(1040)을 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)로써 결정할 수 있다.
도 11은 본 발명의 일 실시예에 따른, 클라우드 제어 서버(1000)가 사용자의 이동 경로에 관한 정보 및 지연 시간에 기초하여, 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)를 결정하는 방법을 나타내는 도면이다.
도 11을 참조하면, 클라우드 제어 서버(1000)는 모바일 디바이스(100)가 이동할 위치 및 지연 시간을 함께 고려하여 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)를 결정할 수 있다.
예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 위치 정보를 수신함에 따라, 도 9에 도시된 사용자의 이동 경로 정보에 기초하여, 모바일 디바이스(100)가 이동될 예상 경로를 결정할 수 있다. 모바일 디바이스(100)가 이동될 예상 경로를 결정함에 따라, 클라우드 제어 서버(1000)는 모바일 디바이스(100)가 이동할 예상 경로로부터 기 설정된 거리 내에 있는 클라우드 서버(2000)로써 Server2(1030) 또는 Server3(1040)를 결정할 수 있다.
지연 시간은 모바일 디바이스(100)가 사용자의 입력을 클라우드 서버(2000)로 송신한 시점부터 사용자의 입력에 따라 처리된 워크로드의 실행 결과가 클라우드 서버(2000)로부터 모바일 디바이스(100)로 돌아오는데까지 소요되는 시간을 의미할 수 있다.
클라우드 제어 서버(1000)는 가상 머신 내의 워크로드의 실행을 위해 요구되는 연산 능력, 클라우드 서버(2000)가 제공할 수 있는 가상 머신의 연산 능력 및 모바일 디바이스(100)가 이동될 예상 경로로부터 클라우드 서버(2000)까지의 거리에 기초하여 예상 경로 상에서 발생할 지연 시간을 산출할 수 있다. 이에 따라, 클라우드 제어 서버(1000)는 산출한 지연 시간에 기초하여 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)를 결정할 수 있다.
예를 들어, 모바일 디바이스(100)의 가상 머신 내의 워크로드의 실행을 위해 요구되는 연산 능력이 200, Server2(1030)가 제공할 수 있는 가상 머신의 연산 능력이 200이고, 모바일 디바이스(100)가 이동할 예상 경로로부터 Server2(1030)까지의 거리가 10인 경우, 클라우드 제어 서버(1000)는 Server2에 대한 지연 시간을 10ms로 결정할 수 있다. 또한, Server3(1040)가 제공할 수 있는 가상 머신의 연산 능력이 100이고, 모바일 디바이스(100)가 이동할 예상 경로로부터 Server3(1040)까지의 거리가 10인 경우, 클라우드 제어 서버(1000)는 Server3에 대한 지연 시간을 20ms로 결정할 수 있다.
이에 따라, 클라우드 제어 서버(1000)는 모바일 디바이스(100)가 이동할 예상 경로로부터 더 가까운 Server3(1040)가 아닌 지연 시간이 더 작은 Server2(1030)를 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)로써 결정할 수 있다.
도 12는 본 발명의 일 실시예에 따른, 모바일 디바이스(100)가 이동될 예상 경로 및 사용자의 가상 머신 사용 패턴에 기초하여, 클라우드 제어 서버(1000)가 모바일 디바이스(100)의 가상 머신을 마이그레이션하는 방법을 나타내는 흐름도이다.
단계 S1210에서, 모바일 디바이스(100)는 제 1 클라우드 서버(2000a) 내의 가상 머신을 이용하여 어플리케이션을 실행할 수 있다. 단계 S1215에서, 클라우드 제어 서버(1000)는 모바일 디바이스(100)로부터 모바일 디바이스(100)의 사용자의 이동 경로에 관한 정보를 획득할 수 있다. 단계 S1220에서, 클라우드 제어 서버(1000)는 모바일 디바이스(100)에게 모바일 디바이스(100)의 위치 정보를 요청할 수 있다. 단계 S1225에서, 모바일 디바이스(100)는 클라우드 제어 서버(1000)에게 모바일 디바이스(100)의 위치 정보를 송신할 수 있다. 단계 S1230에서, 클라우드 제어 서버(1000)는 사용자의 이동 경로 및 모바일 디바이스(100)의 위치 정보에 기초하여, 모바일 디바이스(100)가 이동할 예상 경로를 결정할 수 있다. 단계 S1235에서, 클라우드 제어 서버(1000)는 모바일 디바이스(100)가 이동될 예상 경로에 기초하여, 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)로써 제 2 클라우드 서버(2000b)를 결정할 수 있다. 단계 S1210 내지 S1235 는 도 8의 단계 S810 내지 S860에 의해 설명될 수 있다.
단계 S1240에서, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신에 대한 사용자의 사용 패턴을 획득할 수 있다.
가상 머신에 대한 사용자의 사용 패턴은 사용자가 가상 머신을 사용하는 시점 또는 사용자가 가상 머신을 사용하는 위치를 나타내는 정보를 포함할 수 있다.
클라우드 제어 서버(1000)는 주기적으로 사용자가 가상 머신을 사용하는지 여부를 확인할 수 있다. 가상 머신이 사용 중인지 여부는 가상 머신에서 실행되는 워크로드의 결과가 모바일 디바이스(100)로 송신되는지 여부 또는 모바일 디바이스(100)로부터 사용자의 입력이 수신되는지 여부에 기초하여 판단될 수 있다.
클라우드 제어 서버(1000)는 일정 기간 동안의 사용자의 가상 머신 사용 기록에 기초하여 통계적으로 사용자의 가상 머신 사용 패턴 정보를 획득할 수 있다. 또한, 또한, 클라우드 제어 서버(1000)는 모바일 디바이스(100)로부터 사용자의 가상 머신 사용 패턴에 관한 정보를 수신할 수도 있다. 또한, 클라우드 제어 서버(1000)는 가상 머신 사용 패턴을 설정하는 사용자 입력에 기초하여, 사용자의 가상 머신 사용 패턴에 관한 정보를 획득할 수도 있다.
또한, 클라우드 제어 서버(1000)는 사용자의 식별 정보에 대응하여 사용자의 가상 머신 사용 패턴 정보를 저장할 수 있다.
단계 S1245에서, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신에 대한 사용자의 사용 패턴에 기초하여, 모바일 디바이스(100)의 가상 머신을 마그레이션할 시점을 결정할 수 있다.
클라우드 제어 서버(1000)는 모바일 디바이스(100)가 이동할 예상 경로 상에서, 사용자가 일정 기간 동안 가상 머신을 사용하지 않는 지점 또는 일부 경로가 있는지 여부를 판단할 수 있다. 사용자가 일정 기간 동안 가상 머신을 사용하지 않는 지점 또는 일부 경로의 시작 지점을 마이그레이션 지점으로 결정할 수 있다.
마이그레이션 지점을 결정함에 따라, 클라우드 제어 서버(1000)는 모바일 디바이스(100)가 마이그레이션 지점에 도착하는 시점을 모바일 디바이스(100)의 가상 머신을 마그레이션할 시점으로 결정할 수 있다.
예를 들어, 사용자가 주로 이동 중에 가상 머신을 사용하는 경우, 클라우드 제어 서버(1000)는 집이나 직장을 마이그레이션 지점으로 결정할 수 있다. 또한, 사용자가 주로 집이나 직장에 도착한 이후에 가상 머신을 사용하는 경우, 클라우드 제어 서버(1000)는 집이나 직장을 벗어나는 지점을 마이그레이션 지점으로 결정할 수 있다.
또한, 예를 들어, 사용자가 대중 교통으로 이동 중에 가상 머신을 사용하고, 환승 지점에서 가상 머신을 사용하지 않는 경우, 클라우드 제어 서버(1000)는 환승 지점을 마이그레이션 지점으로 결정할 수 있다.
단계 S1250에서, 클라우드 제어 서버(1000)는 단계 S1245에서 결정된 시점에, 제 1 클라우드 서버(2000a)에게, 모바일 디바이스(100)의 가상 머신을 제 2 클라우드 서버(2000b)로 마이그레이션할 것을 요청할 수 있다.
클라우드 제어 서버(1000)는 모바일 디바이스(100)가 마이그레이션 지점에 도착하였는지 여부를 판단할 수 있다. 모바일 디바이스(100)가 마이그레이션 지점에 도착함에 따라, 클라우드 제어 서버(1000)는 제 1 클라우드 서버(2000a)에게, 모바일 디바이스(100)의 가상 머신을 제 2 클라우드 서버(2000b)로 마이그레이션할 것을 요청할 수 있다.
단계 S1255에서, 제 1 클라우드 서버(2000a)는 제 1 클라우드 서버(2000a)에게 실행 중인 모바일 디바이스(100)의 가상 머신을 제 2 클라우드 서버(2000b)로 마이그레이션할 수 있다. 단계 S1260에서, 모바일 디바이스(100)는 제 2 클라우드 서버(2000b) 내의 가상 머신을 이용하여 어플리케이션을 실행할 수 있다. 단계 S1255 내지 S1260 는 도 8의 단계 S880 내지 S890에 의해 설명될 수 있다.
일반적으로, 사용자는 가상 머신 마이그레이션 시 발생하는 다운타임(Downtime)의 인하여 어플리케이션의 실행이 일시 중지되는 상태를 경험하게 된다. 사용자가 가상 머신을 사용하지 않는 시간 동안 가상 머신을 마이그레이션함에 따라, 사용자는 모바일 디바이스(100) 사용 중에 어플리케이션의 실행이 일시 중지되는 상태를 경험하지 않을 수 있다.
도 13A는 본 발명의 일 실시예에 따른, 클라우드 제어 서버(1000)에 저장된 사용자의 가상 머신 사용 패턴에 관한 정보를 나타내는 도면이다.
도 13A을 참조하면, 사용자의 가상 머신 사용 패턴에 관한 정보(1310)는 특정 시간 또는 위치에서 사용자가 가상 머신을 이용하여 모바일 디바이스(100)를 사용하는지 여부에 관한 정보일 수있다.
사용자의 가상 머신 사용 패턴에 관한 정보(1310)는 통계적으로 산출될 수 있다. 예를 들어, 클라우드 제어 서버(1000)는 한달 동안 사용자가 가상 머신을 사용하는 시점 또는 위치를 기록할 수 있다. 한달 동안 기록된 시점 및 위치에 기초하여, 클라우드 제어 서버(1000)는 사용자의 평균적인 가상 머신 사용 패턴을 획득할 수 있다.
사용자의 가상 머신 사용 패턴에 관한 정보(1310)는 사용자의 식별 정보에 대응하여 클라우드 제어 서버(1000)에 저장될 수 있다.
클라우드 제어 서버(1000)는 가상 머신 사용 패턴에 관한 정보(1310)에 기초하여, 사용자의 이동 경로 중 사용자가 가상 머신을 사용하지 않는 지점 또는 일부 경로를 결정할 수 있다.
도 13B는 본 발명의 일 실시예에 따른, 모바일 디바이스(100)가 이동될 예상 경로 및 사용자의 가상 머신 사용 패턴에 기초하여, 클라우드 제어 서버(1000)가 모바일 디바이스(100)의 가상 머신을 마이그레이션하는 방법을 나타내는 도면이다.
도 13B를 참조하면, 클라우드 제어 서버(1000)는 사용자의 이동 경로 중 사용자가 가상 머신을 사용하지 않는 지점에서 모바일 디바이스(100)의 가상 머신을 마이그레이션할 수 있다.
예를 들어, 모바일 디바이스(100)와 Server1(1010)간의 지연 시간이 커짐에 따라, 클라우드 서버(2000)는 모바일 디바이스(100)로부터 모바일 디바이스(100)의 위치 정보를 요청할 수 있다. 클라우드 제어 서버(1000)는 모바일 디바이스(100)로부터 모바일 디바이스(100)의 위치 정보를 수신할 수 있다.
클라우드 제어 서버(1000)는 모바일 디바이스(100)의 위치 정보를 수신함에 따라, 도 13A에 도시된 사용자의 이동 경로 정보에 기초하여, 모바일 디바이스(100)의 이동 경로를 결정할 수 있다.
예를 들어, 클라우드 제어 서버(1000)는 사용자의 이동 경로에 관한 정보에 기초하여, 사용자의 이동 경로 상에서, 모바일 디바이스(100)의 위치에 대응되는 지점(1080)을 결정할 수 있다. 또한, 모바일 디바이스(100)의 위치 정보가 획득된 시간이 오후 6시 50분인 경우, 모바일 디바이스(100)는 모바일 디바이스(100)의 이동 방향을 사용자의 이동 경로 상에서 회사(1020)에 집(1060)으로 이동하는 방향으로 결정할 수 있다. 이에 따라, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 위치에 대응되는 사용자의 이동 경로 상의 지점(1080)을 출발점으로 하여, 사용자의 이동 경로(1090)를 따라 모바일 디바이스(100)가 이동할 예상 경로(1410)를 결정할 수 있다. 또한, 클라우드 제어 서버(1000)는 모바일 디바이스(100)가 이동할 예상 경로(1410)에 기초하여 모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)로써 Server3(1040)을 결정할 수 있다.
모바일 디바이스(100)의 가상 머신을 마이그레이션할 클라우드 서버(2000)로써 Server3(1040)을 결정함에 따라, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신을 마이그레이션할 시점을 결정할 수 있다.
예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)가 이동할 예상 경로 상에서, 사용자가 일정 기간 동안 가상 머신을 사용하지 않는 지점 또는 일부 경로가 있는지 여부를 판단할 수 있다.
예를 들어, 도 13A에 도시된 사용자의 사용 패턴에 기초하였을 때, 클라우드 서버(2000)는 모바일 디바이스(100)가 이동할 예상 경로 중 지하철 환승 지점(1420)에서 5분 동안 사용자가 모바일 디바이스(100)의 가상 머신을 사용하지 않는 것으로 판단할 수 있다. 이에 따라, 클라우드 제어 서버(1000)는 모바일 디바이스(100)가 이동할 예상 경로 중 환승 지점(1420)을 마이그레이션 지점으로 결정할 수 있다.
마이그레이션 지점을 결정함에 따라, 클라우드 제어 서버(1000)는 모바일 디바이스(100)가 마이그레이션 지점에 도착하는 시점에 모바일 디바이스(100)의 가상 머신을 마이그레이션할 수 있다.
도 14A는 본 발명의 다른 실시예에 따른, 클라우드 제어 서버(1000)에 저장된 사용자의 이동 경로 및 사용자의 가상 머신 사용 패턴에 관한 정보를 나타내는 도면이다.
도 14A을 참조하면, 복수개의 사용자의 이동 경로 및 사용자의 가상 머신 사용 패턴이 동일한 시간에 대응하여 저장될 수 있다.
예를 들어, 출근 시간대인 오전 8시부터 9시까지, 사용자의 이동 경로 및 사용자의 가상 머신 사용 패턴은 복수개일 수 있다.
예를 들어, 사용자는 집에서 회사까지 지하철로 이동하는 경우가 있고, 셔틀 버스로 이동하는 경우가 있을 수 있다. 사용자는 지하철로 출근하는 경우 출근 시간 동안 가상 머신을 사용하지만, 셔틀 버스로 이동하는 경우에는 워크로드를 실행하지 않거나 또는 가상 머신을 사용하지 않고 모바일 디바이스(100)에서 직접 워크로드를 실행할 수 있다.
이에 따라, 클라우드 제어 서버(1000)는 오전 8시부터 9시까지 두 개의 경로 및 각각의 경로에 대응하는 가상 머신 사용 패턴을 결정할 수 있다.
도 14B는 본 발명의 다른 실시예에 따른, 모바일 디바이스(100)가 이동될 예상 경로 및 사용자의 가상 머신 사용 패턴에 기초하여, 클라우드 제어 서버(1000)가 모바일 디바이스(100)의 가상 머신을 마이그레이션하는 방법을 나타내는 도면이다.
도 14B를 참조하면, 클라우드 제어 서버(1000)는 사용자의 이동 경로 및 사용자의 사용 패턴 정보에 기초하여 가상 머신을 마이그레이션할 모바일 디바이스(100)의 위치를 결정할 수 있다.
예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)로부터 모바일 디바이스(100)의 위치 정보 및 위치 정보가 획득된 시간을 수신할 수 있다.
클라우드 제어 서버(1000)는 사용자의 이동 경로에 관한 정보에 기초하여, 사용자의 이동 경로 상에서, 모바일 디바이스(100)의 위치에 대응되는 지점(1080)을 결정할 수 있다.
또한, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 위치 및 위치 정보가 획득된 시간에 기초하여, 시간에 대응되는 복수개의 이동 경로 중 하나를 예상 경로로써 결정할 수 있다.
예를 들어, 도 14A를 참조하면, 모바일 디바이스(100)의 위치 정보가 획득된 시간이 오전 8시 10분인 경우, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 이동 방향을 회사(1020)에 집(1060)으로 향하는 방향으로 결정할 수 있다. 또한, 클라우드 제어 서버(1000)는 오전 8시부터 9시까지에 대응하는 두 개의 이동 경로 중 지하철 경로를 모바일 디바이스(100)의 예상 경로로 결정할 수 있다.
복수개의 이동 경로 중 하나를 결정함에 따라, 클라우드 제어 서버(1000)는 선택된 경로에 대응하는 가상 머신 사용 패턴에 기초하여 가상 머신을 마이그레이션할 모바일 디바이스(100)의 위치를 결정할 수 있다.
예를 들어, 도 14A를 참조하면, 지하철로 출근하는 경우, 사용자는 지하철로 이동중에 가상 머신을 계속 사용한다. 이에 따라, 클라우드 제어 서버(1000)는 사용자가 가상 머신을 사용하지 않는 시점인, 환승역 또는 회사에 도착하는 시점에 가상 머신을 마이그레이션할 수 있다.
만약, 사용자의 이동 경로가 셔틀 버스로 이동하는 경로이고, 모바일 디바이스(100)의 워크로드가 클라우드 서버(2000)에 오프로딩 되어 있는 경우, 사용자는 셔틀 버스 내에서 가상 머신을 사용하지 않으므로, 클라우드 제어 서버(1000)는 셔틀 버스로 이동하는 중에 모바일 디바이스(100)의 가상 머신을 마이그레이션 할 수 있다.
도 15는 본 발명의 일 실시예에 따른, 홈 클라우드 서버(2000d)가 클라우드 제어 서버(1000)에 등록됨에 따라, 범용 클라우드 서버(2000a 내지 2000c 중 하나)와 홈 클라우드 서버(2000d)간에 가상 머신을 마이그레이션하는 방법을 설명하는 도면이다.
도 15를 참조하면, 홈 클라우드 서버(2000d)는 클라우드 제어 서버(1000)에 등록될 수 있다.
홈 클라우드 서버(2000)는 가상 머신을 관리할 수 있는 소프트웨어 또는 하드웨어 로직인 가상 머신 매니져가 구비된 홈 내의 디바이스일 수 있다. 예를 들어, 홈 클라우드 서버(2000)는 태블릿 PC 또는 스마트 폰일 수 있다. 또한, 홈 클라우드 서버(2000)는 스마트 냉장고, 스마트 TV, 로봇 청소기 등을 포함하는 가전 디바이스일 수 있다. 또한, 예를 들어, 홈 클라우드 서버(2000)는 사용자의 홈에 구축된 홈 클라우드 시스템를 제어하는 서버를 의미할 수도 있다.
홈 클라우드 서버(2000) 내의 가상 머신 매니져는 홈 클라우드 서버(2000)에서 복수의 운영 체제를 실행하기 위한 가상화 레이어를 포함할 수 있다. 예를 들어, 가상화 레이어는 KVM 또는 Xen과 같은 하이퍼바이져 기술로 구축될 수 있다. 또한, 홈 클라우드 서버(2000) 내의 가상 머신 매니져는 홈 클라우드 서버(2000)의 리소스 관리하거나, 가상 머신을 관리하는 클라우드 레이어를 포함할 수 있다. 예를 들어, 클라우드 레이어는 Openstack 또는 Cloudstack과 같은 클라우드 기술로 구축될 수 있다.
클라우드 제어 서버(1000)는 홈 클라우드 서버(2000d)를 등록하기 위한 사용자 인터페이스를 제공할 수 있다. 홈 클라우드 서버(2000d)를 등록하기 위한 사용자 인터페이스는 사용자에 관한 정보 및 홈 클라우드 서버(2000d)에 관한 정보를 입력하기 위한 사용자 인터페이스를 포함할 수 있다.
홈 클라우드 서버(2000d)에 관한 정보는 홈 클라우드 서버(2000d)의 식별 정보, 홈 클라우드 서버(2000d)가 제공 가능한 가상 머신의 구성 정보, 홈 클라우드 서버(2000d)의 위치 정보 및 홈 클라우드 서버(2000d)의 링크 정보를 포함할 수 있다. 홈 클라우드 서버(2000d)의 링크 정보는 홈 클라우드 서버(2000d)의 URL 주소를 포함할 수 있다.
클라우드 제어 서버(1000)는 홈 클라우드 서버(2000d)를 등록하는 사용자 입력을 수신함에 따라, 클라우드 제어 서버(1000)에 등록된 사용자의 계정 정보에 기초하여, 홈 클라우드 서버(2000d)에 관한 정보를 저장할 수 있다.
홈 클라우드 서버(2000d)가 클라우드 제어 서버(1000)에 등록됨에 따라, 클라우드 제어 서버(1000)는 홈 클라우드 서버(2000d)로부터 홈 클라우드 서버(2000d) 상에서 실행되는 가상 머신에 관한 정보를 수신할 수 있다.
또한, 클라우드 제어 서버(1000)는 범용 클라우드 서버(2000a 내지 2000c 중 하나)와 홈 클라우드 서버(2000d)간에 가상 머신이 마이그레이션 되도록 범용 클라우드 서버(2000a 내지 2000c 중 하나)와 홈 클라우드 서버(2000d)를 제어할 수 있다.
클라우드 제어 서버(1000)는 모바일 디바이스(100) 또는 홈 클라우드 서버(2000d)로부터 모바일 디바이스(100)의 위치에 관한 정보를 수신하고, 모바일 디바이스(100)가 홈 영역에 진입하였는지 또는 홈 영역으로부터 벗어낫는지 여부를 판단할 수 있다. 홈 영역은 홈 클라우드 서버(2000d)가 사용자의 홈 내에 위치한 경우 홈 클라우드 서버(2000d)의 위치로부터 기 설정된 거리 내의 영역을 의미할 수 있다. 또한, 홈 영역은 홈 내의 가전 디바이스 또는 홈 내의 다양한 센서들이 근거리 네트워크를 통해 모바일 디바이스(100)를 인식할 수 있는 영역을 의미할 수도 있다.
예를 들어, 클라우드 제어 서버(1000)는 모바일 디바이스(100)로부터 모바일 디바이스(100)의 위치 정보를 수신하고, 수신된 위치 정보에 기초하여, 모바일 디바이스(100)가 홈 영역으로 진입했는지 여부를 판단할 수 있다. 모바일 디바이스(100)의 위치 정보는 모바일 디바이스(100)에 구비된 GPS와 같은 위치 정보 센서에 의해 획득될 수 있다. 또한, 예를 들어, 클라우드 제어 서버(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 중 하나)로부터 홈 클라우드 서버(2000d)로 모바일 디바이스(100)의 가상 머신을 마이그레이션할 수 있다. 또한, 모바일 디바이스(100)가 홈 영역으로부터 벗어난 경우, 클라우드 제어 서버(1000)는 모바일 디바이스(100)의 가상 머신이 실행되는 홈 클라우드 서버(2000d)로부터 범용 클라우드 서버(2000a 내지 2000c 중 하나)로 모바일 디바이스(100)의 가상 머신을 마이그레이션할 수 있다.
도 16은 본 발명의 일 실시예에 따른, 홈 클라우드 서버(2000d)가 홈 클라우드 시스템을 이용하여 가상 머신을 실행하는 방법을 설명하는 도면이다.
도 16을 참조하면, 홈 클라우드 서버(2000d)는 사용자의 홈에 구축된 홈 클라우드 시스템를 제어하는 서버를 의미할 수 있다. 예를 들어, 홈 클라우드 시스템은 사용자의 홈 내의 가전 디바이스(300 내지 500, 700) 또는 센서(600)가 네트워크로 연결되어 구축된 시스템을 의미할 수 있다. 홈 클라우드 시스템은 DLNA(Digital Living Network Alliance) 기반의 미디어 장치들이 WiFi로 연결되어 구축된 시스템을 의미할 수 있다. 홈 내의 가전 디바이스는 이더넷, PLC, IEEE1394, HomePNA, 광홈랜 등의 유선 네트워크로 연결될 수 있으며, ZigBee, UWB, Wireless1394, WirelessUSB 등의 무선 네트워크로 연결될 수도 있다. 실시예에 따라, 홈 클라우드 시스템은 홈 네트워크로 언급될 수 있다.
이에 따라, 홈 클라우드 서버(2000d)는 네트워크로 연결된 홈 내의 가전 디바이스의 리소스를 이용하여 가상 머신을 실행할 수 있다.
예를 들어, 홈 클라우드 서버(2000d)는 데스크 탑 컴퓨터(300)의 CPU를 다중화하여 가상 머신의 CPU를 생성할 수 있다. 또한, 홈 클라우드 서버(2000d)는 TV(400)의 셋탑 박스 내에 구비된 메모리에 가상 머신을 적재할 수도 있다.
또한, 홈 클라우드 서버(2000d)는 사용자의 입력을 수신할 수 있는 사용자 입력 디바이스 또는 사용자에게 정보를 제공할 수 있는 출력 디바이스들을 가상 머신의 입출력 디바이스로써 제공할 수도 있다.
예를 들어, 홈 클라우드 서버(2000d)는 홈 클라우드 시스템 내의 TV(400)의 화면에 가상 머신의 실행 결과를 출력할 수 있다. 또한, 홈 클라우드 서버(2000d)는 데스크 탑 컴퓨터(300)의 키보드로부터 사용자 입력을 수신할 수도 있다.
도 17은 본 발명의 일 실시예에 따른, 모바일 디바이스(100)가 홈 영역 내에 진입함에 따라, 모바일 디바이스(100)의 화면에 표시되는 사용자 인터페이스를 설명하는 도면이다.
도 17을 참조하면, 사용자가 모바일 디바이스(100)에서 게임 어플리케이션을 플레이하는 경우, 범용 클라우드 서버(2000a 내지 2000c 중 하나)는 가상 머신 상에서 게임 어플리케이션을 실행하고, 실행 결과를 모바일 디바이스(100)에게 전송할 수 있다. 모바일 디바이스(100)는 범용 클라우드 서버(2000a 내지 2000c 중 하나)로부터 게임 실행 이미지(1710)를 수신하고, 수신된 게임 실행 이미지(1710)를 화면에 디스플레이할 수 있다.
모바일 디바이스(100)가 홈 영역으로 진입함에 따라, 모바일 디바이스(100)는 모바일 디바이스(100)가 홈 영역내에 진입하였음을 판단할 수 있다. 또한, 모바일 디바이스(100)는 홈 클라우드 서버(2000d) 또는 클라우드 제어 서버(1000)로부터 모바일 디바이스(100)가 홈 영역내에 진입하였음을 알리는 정보를 수신할 수도 있다.
모바일 디바이스(100)가 홈 영역내에 진입하였음을 판단함에 따라, 모바일 디바이스(100)는 범용 클라우드 서버(2000a 내지 2000c 중 하나)에서 실행되는 모바일 디바이스(100)의 가상 머신을 홈 클라우드 서버(2000d)로 마이그레이션 하기 위한 사용자 인터페이스(1720)를 게임 실행 이미지(1710)상에 디스플레이할 수 있다.
홈 클라우드 서버(2000d)로 마이그레이션 하기 위한 사용자 인터페이스(1720)를 선택하는 사용자 입력을 수신함에 따라, 모바일 디바이스(100)는 클라우드 제어 서버(1000)에게, 범용 클라우드 서버(2000a 내지 2000c 중 하나)에서 실행되는 모바일 디바이스(100)의 가상 머신을 홈 클라우드 서버(2000d)로 마이그레이션 할 것을 요청할 수 있다.
도 18은 본 발명의 일 실시예에 따른, 모바일 디바이스(100)가 홈 클라우드 시스템 내의 디바이스를 선택하기 위한 사용자 인터페이스를 디스플레이하는 방법을 설명하는 도면이다.
도 18을 참조하면, 모바일 디바이스(100)는 홈 클라우드 시스템 내의 디바이스를 선택하기 위한 사용자 인터페이스(1810)를 디스플레이할 수 있다.
홈 클라우드 시스템 내의 디바이스를 선택하기 위한 사용자 인터페이스(1810)는 홈 클라우드 시스템에 등록된 홈 클라우드 시스템 내의 입출력 디바이스를 나타내는 이미지를 포함할 수 있다. 예를 들어, 홈 클라우드 시스템 내의 입출력 디바이스는 데스크탑 컴퓨터, TV, 키보드 및 오디오 등을 포함할 수 있다.
화면에 디스플레이된 디바이스 중 하나를 선택하는 사용자 입력을 수신함에 따라, 모바일 디바이스(100)는 선택된 디바이스의 식별 정보를 홈 클라우드 서버(2000d)로 전송할 수 있다.
홈 클라우드 서버(2000d)는 사용자에 의해 선택된 디바이스를 홈 클라우드 서버(2000d)에서 실행되는 가상 머신의 입출력 디바이스로써 결정할 수 있다. 이에 따라, 홈 클라우드 서버(2000d)는 가상 머신의 실행 결과를 선택된 디바이스에 출력할 수 있다. 또한, 선택된 디바이스로부터 수신된 사용자의 입력에 기초하여 가상 머신을 실행할 수 있다.
예를 들어, 모바일 디바이스(100)에 디스플레이된 홈 클라우드 시스템 내의 출력 디바이스 중 TV를 선택하는 사용자 입력을 수신함에 따라, 홈 클라우드 서버(2000d)는 가상 머신의 출력 디바이스를 TV로 변경할 수 있다. 가상 머신의 출력 디바이스가 TV로 변경됨에 따라, 홈 클라우드 서버(2000d)는 가상 머신의 실행 이미지를 TV의 화면에 출력할 수 있다.
도 19은 본 발명의 일 실시예에 따른, 클라우드 제어 서버(1000)에 대한 블록도를 도시한다.
도 19에 도시된 바와 같이, 일 실시예에 따른, 클라우드 제어 서버(1000)는 제어부(1100), 통신부(1200) 및 저장부(1300)을 포함할 수 있다. 그러나 도시된 구성요소 모두가 필수 구성 요소인 것은 아니다. 도시된 구성 요소보다 많은 구성 요소에 의해 클라우드 제어 서버(1000)가 구현될 수도 있고, 그보다 적은 구성 요소에 의해서도 클라우드 제어 서버(1000)는 구현될 수 있다.
통신부(1200)는, 모바일 디바이스(100)에게, 복수의 클라우드 서버(2000)들 중 적어도 하나의 클라우드 서버(2000)에 관한 정보를 송신하고, 모바일 디바이스(100)로부터 적어도 하나의 클라우드 서버(2000) 중 모바일 디바이스(100)의 사용자에 의해 선택된 클라우드 서버(2000)의 식별 정보를 수신할 수 있다.
또한, 통신부(1200)는 모바일 디바이스(100)로부터, 가상 머신을 제공할 수 있는 적어도 하나의 클라우드 서버(2000)에 관한 정보 요청을 수신하고, 요청을 수신함에 따라, 모바일 디바이스(100)에게 적어도 하나의 클라우드 서버(2000)에 관한 정보를 송신할 수 있다.
또한, 통신부(1200)는 모바일 디바이스(100)의 위치 정보를 획득하고, 모바일 디바이스(100)의 위치 정보에 기초하여, 모바일 디바이스(100)의 위치로부터 기 설정된 거리내에 위치한 적어도 하나의 클라우드 서버(2000)를 결정하고, 결정된 적어도 하나의 클라우드 서버(2000)에 관한 정보를 모바일 디바이스(100)로 송신할 수 있다.
또한, 통신부(1200)는 어플리케이션을 실행하기 위해 필요한 연산 능력에 기초하여, 연산 능력을 구비한 가상 머신을 제공할 수 있는 적어도 하나의 클라우드 서버(2000)를 결정하고, 결정된 적어도 하나의 클라우드 서버(2000)에 관한 정보를 모바일 디바이스(100)로 송신할 수 있다.
또한, 제어부(1100)는 복수의 클라우드 서버(2000)들 중 모바일 디바이스(100)의 가상 머신이 위치한 클라우드 서버(2000)로부터 선택된 클라우드 서버(2000)로 가상 머신을 마이그레이션할 수 있다.
또한, 통신부(1200)는 복수의 클라우드 서버(2000)들을 제어하는 클라우드 제어 서버(1000)가, 모바일 디바이스(100)의 사용자의 이동 경로에 관한 정보 및 모바일 디바이스(100)의 위치 정보를 획득할 수 있다.
또한, 제어부(1100)는 모바일 디바이스(100)의 위치 정보 및 사용자의 이동 경로에 관한 정보에 기초하여, 모바일 디바이스(100)가 이동될 예상 경로를 결정하고, 모바일 디바이스(100)가 이동될 예상 경로에 기초하여, 모바일 디바이스(100)의 가상 머신을 마이그레이션 할 클라우드 서버(2000)를 결정하고, 복수의 클라우드 서버(2000)들 중 모바일 디바이스(100)의 가상 머신이 실행되는 클라우드 서버(2000)로부터 결정된 클라우드 서버(2000)로 모바일 디바이스(100)의 가상 머신을 마이그레이션할 수 있다.
또한, 제어부(1100)는, 모바일 디바이스(100)의 예상 경로로부터 기 설정된 거리내에 위치한 적어도 하나의 클라우드 서버(2000)를 결정하고, 모바일 디바이스(100)의 예상 속도에 기초하여, 적어도 하나의 클라우드 서버(2000) 중 기 설정된 시간 동안 모바일 디바이스(100)와의 누적 거리가 가장 가까운 클라우드 서버(2000)를 모바일 디바이스(100)의 가상 머신을 마이그레이션 할 클라우드 서버(2000)로 결정할 수 있다.
또한, 제어부(1100)는, 모바일 디바이스(100)의 예상 경로로부터 기 설정된 거리내에 위치한 적어도 하나의 클라우드 서버(2000)를 결정하고, 적어도 하나의 클라우드 서버(2000) 중 가장 높은 연산 능력을 구비한 가상 머신을 제공하는 클라우드 서버(2000)를 모바일 디바이스(100)의 가상 머신을 마이그레이션 할 클라우드 서버(2000)로 결정할 수 있다.
또한, 제어부(1100)는 모바일 디바이스(100)의 가상 머신에 대한 사용자의 사용 패턴에 관한 정보를 획득하고, 획득된 사용 패턴에 관한 정보에 기초하여, 모바일 디바이스(100)의 가상 머신을 마이그레이션할 시점을 결정하고, 결정된 시점에 모바일 디바이스(100)의 가상 머신을 마이그레이션할 수 있다.
또한, 제어부(1100)는 사용 패턴에 관한 정보에 기초하여, 사용자가 기 결정된 시간 동안 모바일 디바이스(100)의 가상 머신을 사용하지 않는 시점을 모바일 디바이스(100)의 가상 머신을 마이그레이션할 시점으로 결정하고, 결정된 시점에 모바일 디바이스(100)의 가상 머신을 마이그레이션할 수 있다. 저장부(1300)는 가상 머신을 마이그레이션하기 위한 정보를 저장할 수 있다. 또한, 저장부(1300)는 클라우드 서버 정보 데이터베이스(1310) 및 사용자 데이터베이스(1320)을 포함할 수 있다.
클라우드 서버 정보 데이터베이스(1310)는 클라우드 제어 서버(1000)가 제어하는 복수의 클라우드 서버(2000)에 관한 정보를 저장한 데이터베이스일 수 있다. 예를 들어, 클라우드 서버 정보 데이터베이스(1310)는, 클라우드 서버(2000)의 식별 정보, 클라우드 서버(2000)의 링크 정보, 클라우드 서버(2000)의 위치 정보, 클라우드 서버(2000)가 제공할 수 있는 가상 머신의 구성 정보 및 클라우드 서버(2000)가 제공할 수 있는 가상 머신의 연산 능력 정보 등을 저장할 수 있다. 또한, 클라우드 서버 정보 데이터베이스(1310)는 범용 클라우드 서버(2000)에 관한 정보뿐만 아니라 사용자의 식별 정보에 대응하여 홈 클라우드 서버(2000)에 관한 정보를 저장할 수 있다.
또한, 사용자 데이터베이스(1320)은 클라우드 제어 서버(1000)에 등록된 사용자에 관한 정보를 저장한 데이터베이스일 수 있다. 예를 들어, 사용자 데이터베이스(1320)는 클라우드 제어 서버(1000)에 등록된 사용자의 식별 정보, 사용자의 식별 정보에 대응하여 저장된 모바일 디바이스(100)의 식별 정보, 사용자의 식별 정보에 대응하여 저장된 모바일 디바이스(100)의 가상 머신에 관한 정보 등을 저장할 수 있다.
도 20는 본 개시의 다른 실시 예에 따른 모바일 디바이스(100)의 구성을 나타내는 블록도이다.
도 20에 도시된 바와 같이, 모바일 디바이스(100) 의 구성은, 예를 들어, 휴대폰, 태블릿 PC, PDA, MP3 플레이어, 키오스크, 전자 액자, 네비게이션 장치, 디지털 TV, 스마트 워치(Smart watch), 손목 시계(Wrist watch) 또는 스마크 글래스(Smart Glass), HMD(Head-Mounted Display)와 같은 웨어러블 디바이스(Wearable device) 등과 같은 다양한 유형의 장치에 적용될 수 있다.
도 20에 따르면, 모바일 디바이스(100) 는 디스플레이부(110), 제어부(170), 메모리(120), GPS 칩(125), 통신부(130), 비디오 프로세서(135), 오디오 프로세서(140), 사용자 입력부(145), 마이크부(150), 촬상부(155), 스피커부(160), 움직임 감지부(165) 중 적어도 하나를 포함 할 수 있다.
디스플레이부(110)는 클라우드 서버(2000) 내의 모바일 디바이스(100)의 가상 머신이 실행됨에 따라 클라우드 서버(2000)로부터 수신된 워크로드의 실행 이미지를 디스플레이할 수 있다. 또한, 디스플레이부(110)는 클라우드 서버(2000) 상호 간에, 모바일 디바이스(100)의 가상 머신을 마이그레이션 할 것을 요청하기 위한 사용자 인터페이스를 디스플레이할 수 있다.
또한, 디스플레이부(110)는 표시패널(111) 및 표시 패널(111)을 제어하는 컨트롤러(미도시)를 포함할 수 있다. 표시패널(111)에는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, AM-OLED(Active-Matrix Organic Light-Emitting Diode), PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 표시패널(111)은 유연하게(flexible), 투명하게(transparent) 또는 착용할 수 있게(wearable) 구현될 수 있다. 디스플레이부(110)는 사용자 입력부(145)의 터치 패널(147)과 결합되어 터치 스크린(미도시)으로 제공될 수 있다. 예를 들어, 터치 스크린(미도시)은 표시 패널(111)과 터치 패널(147)이 적층 구조로 결합된 일체형의 모듈을 포함할 수 있다.
메모리(120)는 내장 메모리(Internal Memory)(미도시) 및 외장 메모리(External Memory)(미도시) 중 적어도 하나를 포함할 수 있다.
내장 메모리는, 예를 들어, 휘발성 메모리(예를 들면, DRAM(Dynamic RAM), SRAM(Static RAM), SDRAM(Synchronous Dynamic RAM) 등), 비휘발성 메모리(예를 들면, OTPROM(One Time Programmable ROM), PROM(Programmable ROM), EPROM(Erasable and Programmable ROM), EEPROM(Electrically Erasable and Programmable ROM), Mask ROM, Flash ROM 등), 하드 디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 중 적어도 하나를 포함할 수 있다. 일 실시 예에 따르면, 제어부(170)는 비휘발성 메모리 또는 다른 구성요소 중 적어도 하나로부터 수신한 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리할 수 있다. 또한, 제어부(170)는 다른 구성요소로부터 수신하거나 생성된 데이터를 비휘발성 메모리에 보존할 수 있다.
외장 메모리는, 예를 들면, CF(Compact Flash), SD(Secure Digital), Micro-SD(Micro Secure Digital), Mini-SD(Mini Secure Digital), xD(extreme Digital) 및 Memory Stick 중 적어도 하나를 포함할 수 있다.
메모리(120)는 모바일 디바이스(100) 의 동작에 사용되는 각종 프로그램 및 데이터를 저장할 수 있다. 예를 들어, 메모리(120)에는 잠금 화면에 표시될 컨텐츠의 적어도 일부를 임시 또는 반영구적으로 저장할 수 있다.
제어부(170)는 메모리(120)에 저장된 컨텐츠의 일부가 디스플레이부(110)에 표시되도록 디스플레이부(110)를 제어할 수 있다. 다시 말하자면, 제어부(170)는 메모리(120)에 저장된 컨텐츠의 일부를 디스플레이부(110)에 표시할 수 있다. 또는, 제어부(170)는 디스플레이부(110)의 일 영역에서 사용자 제스처가 이루어지면, 사용자의 제스처에 대응되는 제어 동작을 수행할 수 있다.
제어부(170)는 RAM(171), ROM(172), CPU(173), GPU(Graphic Processing Unit)(174) 및 버스(175) 중 적어도 하나를 포함 할 수 있다. RAM(171), ROM(172), CPU(173) 및 GPU(174) 등은 버스(175)를 통해 서로 연결될 수 있다.
CPU(173)는 메모리(120)에 액세스하여, 메모리(120)에 저장된 O/S를 이용하여 부팅을 수행한다. 그리고, 메모리(120)에 저장된 각종 프로그램, 컨텐츠, 데이터 등을 이용하여 다양한 동작을 수행한다.
ROM(172)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 예로, 휴대 단말기(100)는 턴온 명령이 입력되어 전원이 공급되면, CPU(173)가 ROM(172)에 저장된 명령어에 따라 메모리(120)에 저장된 O/S를 RAM(171)에 복사하고, O/S를 실행시켜 시스템을 부팅시킬 수 있다. 부팅이 완료되면, CPU(173)는 메모리(120)에 저장된 각종 프로그램을 RAM(171)에 복사하고, RAM(171)에 복사된 프로그램을 실행시켜 각종 동작을 수행한다. GPU(174)는 모바일 디바이스 (100)의 부팅이 완료되면, 디스플레이부(110)의 영역에 UI 화면을 디스플레이한다. 구체적으로는, GPU(174)는 컨텐츠, 아이콘, 메뉴 등과 같은 다양한 객체를 포함하는 전자문서가 표시된 화면을 생성할 수 있다. GPU(174)는 화면의 레이아웃에 따라 각 객체들이 표시될 좌표값, 형태, 크기, 컬러 등과 같은 속성 값을 연산한다. 그리고, GPU(174)는 연산된 속성값에 기초하여 객체를 포함하는 다양한 레이아웃의 화면을 생성할 수 있다. GPU(174)에서 생성된 화면은 디스플레이부(110)로 제공되어, 디스플레이부(110)의 각 영역에 각각 표시될 수 있다.
GPS 칩(125)은 GPS(Grobal Positioning System) 위성으로부터 GPS 신호를 수신하여, 모바일 디바이스(100)의 현재 위치를 산출할 수 있다. 제어부(170)는 네비게이션 프로그램을 이용할 때나 그 밖에 사용자의 현재 위치가 필요할 경우에, GPS 칩(125)을 이용하여 사용자 위치를 산출할 수 있다.
통신부(130)는 다양한 유형의 통신방식에 따라 다양한 유형의 외부 디바이스와 통신을 수행할 수 있다. 통신부(130)는 와이파이칩(131), 블루투스 칩(132), 무선 통신 칩(133), NFC 칩(134) 중 적어도 하나를 포함할 수 있다. 제어부(170)는 통신부(130)를 이용하여 각종 외부 디바이스와 통신을 수행할 수 있다.
와이파이 칩(131), 블루투스 칩(132)은 각각 WiFi 방식, 블루투스 방식으로 통신을 수행할 수 있다. 와이파이 칩(131)이나 블루투스 칩(132)을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 무선 통신 칩(133)은 IEEE, 지그비, 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다. NFC 칩(134)은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 동작하는 칩을 의미한다.
비디오 프로세서(135)는 통신부(130)를 통해 수신된 컨텐츠 또는, 메모리(120)에 저장된 컨텐츠에 포함된 비디오 데이터를 처리할 수 있다. 비디오 프로세서(135)에서는 비디오 데이터에 대한 디코딩, 스케일링, 노이즈 필터링, 프레임 레이트 변환, 해상도 변환 등과 같은 다양한 이미지 처리를 수행할 수 있다.
오디오 프로세서(140)는 통신부(130)를 통해 수신된 컨텐츠 또는, 메모리(120)에 저장된 컨텐츠에 포함된 오디오 데이터를 처리할 수 있다. 오디오 프로세서(140)에서는 오디오 데이터에 대한 디코딩이나 증폭, 노이즈 필터링 등과 같은 다양한 처리가 수행될 수 있다.
제어부(170)는 멀티미디어 컨텐츠에 대한 재생 프로그램이 실행되면 비디오 프로세서(135) 및 오디오 프로세서(140)를 구동시켜, 해당 컨텐츠를 재생할 수 있다. 스피커부(160)는 오디오 프로세서(140)에서 생성한 오디오 데이터를 출력할 수 있다.
사용자 입력부(145)는 사용자로부터 다양한 명령어를 입력 받을 수 있다. 사용자 입력부(145)는 키(146), 터치 패널(147) 및 펜 인식 패널(148) 중 적어도 하나를 포함할 수 있다.
키(146)는 모바일 디바이스(100)의 본체 외관의 전면부나 측면부, 배면부 등의 다양한 영역에 형성된 기계적 버튼, 휠 등과 같은 다양한 유형의 키를 포함할 수 있다.
터치 패널(147)은 사용자의 터치 입력을 감지하고, 감지된 터치 신호에 해당하는 터치 이벤트 값을 출력할 수 있다. 터치 패널(147)이 표시 패널(111)과 결합하여 터치 스크린(미도시)을 구성한 경우, 터치 스크린은 정전식이나, 감압식, 압전식 등과 같은 다양한 유형의 터치 센서로 구현될 수 있다. 정전식은 터치 스크린 표면에 코팅된 유전체를 이용하여, 사용자의 신체 일부가 터치 스크린 표면에 터치되었을 때 사용자의 인체로 야기되는 미세 전기를 감지하여 터치 좌표를 산출하는 방식이다. 감압식은 터치 스크린에 내장된 두 개의 전극 판을 포함하여, 사용자가 화면을 터치하였을 경우, 터치된 지점의 상하 판이 접촉되어 전류가 흐르게 되는 것을 감지하여 터치 좌표를 산출하는 방식이다. 터치 스크린에서 발생하는 터치 이벤트는 주로 사람의 손가락에 의하여 생성될 수 있으나, 정전 용량 변화를 가할 수 있는 전도성 재질의 물체에 의해서도 생성될 수 있다.
펜 인식 패널(148)은 사용자의 터치용 펜(예컨대, 스타일러스 펜(stylus pen), 디지타이저 펜(digitizer pen))의 운용에 따른 펜의 근접 입력 또는 터치 입력을 감지하고 감지된 펜 근접 이벤트 또는 펜 터치 이벤트를 출력할 수 있다. 펜 인식 패널(148)은, 예로, EMR 방식으로 구현될 수 있으며, 펜의 근접 또는 터치에 의한 전자기장의 세기 변화에 따라 터치 또는 근접 입력을 감지할 수 있다. 상세하게는 펜 인식 패널(148)은 그리드 구조를 가지는 전자 유도 코일 센서(미도시)와 전자 유도 코일 센서의 각 루프 코일에 순차적으로 소정의 주파수를 가지는 교류 신호를 제공하는 전자 신호 처리부(미도시)를 포함하여 구성될 수 있다. 이러한 펜 인식 패널(148)의 루프 코일 근방에 공진회로를 내장하는 펜이 존재하면, 해당 루프 코일로부터 송신되는 자계가 펜 내의 공진회로에 상호 전자 유도에 기초한 전류를 발생시킨다. 이 전류를 기초로 하여, 펜 내의 공진 회로를 구성하는 코일로부터 유도 자계가 발생하게 되고, 펜 인식 패널(148)은 이 유도 자계를 신호 수신 상태에 있는 루프 코일에서 검출하게 되어 펜의 접근 위치 또는 터치 위치가 감지될 수 있다. 펜 인식 패널(148)은 표시 패널(111)의 하부에 일정 면적, 예를 들어, 표시 패널(111)의 표시 영역을 커버할 수 있는 면적을 가지고 마련될 수 있다.
마이크부(150)는 사용자 음성이나 기타 소리를 입력 받아 오디오 데이터로 변환할 수 있다. 제어부(170)는 마이크 부(150)를 통해 입력되는 사용자 음성을 통화 동작에서 이용하거나, 오디오 데이터로 변환하여 메모리(120)에 저장할 수 있다.
촬상부(155)는 사용자의 제어에 따라 정지 영상 또는 동영상을 촬상할 수 있다. 촬상부(155)는 전면 카메라, 후면 카메라와 같이 복수 개로 구현될 수도 있다.
촬상부(155) 및 마이크부(150)가 마련된 경우, 제어부(170)는 마이크부(150)를 통해 입력되는 사용자 음성이나 촬상부(155)에 의해 인식되는 사용자 모션에 따라 제어 동작을 수행할 수도 있다. 예컨대, 모바일 디바이스(100)는 모션 제어 모드나 음성 제어 모드로 동작할 수 있다. 모션 제어 모드로 동작하는 경우, 제어부(170)는 촬상부(155)를 활성화시켜 사용자를 촬상하고, 사용자의 모션 변화를 추적하여 그에 대응되는 제어 동작을 수행할 수 있다. 음성 제어 모드로 동작하는 경우 제어부(170)는 마이크부(150)를 통해 입력된 사용자 음성을 분석하고, 분석된 사용자 음성에 따라 제어 동작을 수행하는 음성 인식 모드로 동작할 수 있다.
움직임 감지부(165)는 모바일 디바이스(100)의 본체 움직임을 감지할 수 있다. 모바일 디바이스(100)는 다양한 방향으로 회전되거나 기울어질 수 있다. 이 때, 움직임 감지부(165)는 지자기 센서, 자이로 센서, 가속도 센서 등과 같은 다양한 센서들 중 적어도 하나를 이용하여 회전 방향 및 각도, 기울기 등과 같은 움직임 특성을 감지할 수 있다.
그 밖에, 도 20에 도시하지는 않았으나, 실시예에는, 모바일 디바이스(100) 내에 USB 커넥터가 연결될 수 있는 USB 포트나, 헤드셋, 마우스, LAN 등과 같은 다양한 외부 단자와 연결하기 위한 다양한 외부 입력 포트, DMB(Digital Multimedia Broadcasting) 신호를 수신하여 처리하는 DMB 칩, 다양한 센서 등을 더 포함할 수 있다.
전술한 모바일 디바이스(100)의 구성 요소들의 명칭은 달라질 수 있다. 또한, 본 개시에 따른 모바일 디바이스(100)는 전술한 구성요소들 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (20)

  1. 모바일 디바이스의 가상 머신을 제공하는 복수의 클라우드 서버들을 제어하는 클라우드 제어 서버에 있어서, 상기 클라우드 제어 서버는,
    상기 모바일 디바이스의 워크로드를 실행하기 위해 필요한 리소스 정보, 상기 복수의 클라우드 서버들에 의해 제공될 수 있는 가상 머신들의 리소스 정보 및 상기 모바일 디바이스와 상기 가상 머신들 간의 통신 속도에 기초하여 상기 복수의 클라우드 서버들 각각의 지연 시간을 계산하고, 상기 지연 시간에 기초하여 적어도 하나의 클라우드 서버를 결정하는 제어부; 및
    상기 모바일 디바이스에게, 상기 결정된 적어도 하나의 클라우드 서버에 관한 정보를 송신하고, 상기 모바일 디바이스로부터 상기 결정된 적어도 하나의 클라우드 서버 중 사용자 입력에 의해 선택된 클라우드 서버의 식별 정보를 수신하는 통신부를 포함하며,
    상기 제어부는, 상기 복수의 클라우드 서버들 중 상기 모바일 디바이스의 가상 머신이 위치한 클라우드 서버로부터 상기 선택된 클라우드 서버로 상기 가상 머신을 마이그레이션하고,
    상기 모바일 디바이스의 가상 머신은, 상기 복수의 클라우드 서버들 중 하나의 클라우드 서버로 오프로드된 상기 모바일 디바이스의 워크로드를 실행하고, 상기 모바일 디바이스로부터 출력되는 어플리케이션을 실행하고, 상기 어플리케이션의 실행 결과를 송신하는 것인, 클라우드 제어 서버.
  2. 제 1 항에 있어서,
    상기 적어도 하나의 클라우드 서버에 관한 정보는,
    상기 적어도 하나의 클라우드 서버의 식별 정보, 이름 정보, 위치 정보, 상기 모바일 디바이스로부터 상기 적어도 하나의 클라우드 서버까지의 거리 정보, 상기 적어도 하나의 클라우드 서버가 제공할 수 있는 가상 머신의 구성 정보 및 상기 적어도 하나의 클라우드 서버가 제공할 수 있는 가상 머신의 연산 능력 정보 중 적어도 하나를 포함하는, 클라우드 제어 서버.
  3. 제 1 항에 있어서,
    상기 통신부는,
    상기 모바일 디바이스로부터, 상기 가상 머신을 제공할 수 있는 적어도 하나의 클라우드 서버에 관한 정보 요청을 수신하고, 상기 요청을 수신함에 따라, 상기 모바일 디바이스에게 상기 적어도 하나의 클라우드 서버에 관한 정보를 송신하는, 클라우드 제어 서버.
  4. 제 1 항에 있어서,
    상기 통신부는,
    상기 모바일 디바이스의 위치 정보를 획득하고, 상기 모바일 디바이스의 위치 정보에 기초하여, 상기 모바일 디바이스의 위치로부터 기 설정된 거리내에 위치한 상기 적어도 하나의 클라우드 서버를 결정하고, 상기 결정된 적어도 하나의 클라우드 서버에 관한 정보를 상기 모바일 디바이스로 송신하는, 클라우드 제어 서버.
  5. 제 1 항에 있어서,
    상기 통신부는,
    상기 어플리케이션을 실행하기 위해 필요한 연산 능력에 기초하여, 상기 연산 능력을 구비한 가상 머신을 제공할 수 있는 상기 적어도 하나의 클라우드 서버를 결정하고, 상기 결정된 적어도 하나의 클라우드 서버에 관한 정보를 상기 모바일 디바이스로 송신하는, 클라우드 제어 서버.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 제 1 항에 있어서,
    상기 제어부는,
    상기 모바일 디바이스의 상기 가상 머신에 대한 상기 사용자의 사용 패턴에 관한 정보를 획득하고, 상기 획득된 사용 패턴에 관한 정보에 기초하여, 상기 모바일 디바이스의 상기 가상 머신을 마이그레이션할 시점을 결정하고, 상기 결정된 시점에 상기 모바일 디바이스의 상기 가상 머신을 마이그레이션하는, 클라우드 제어 서버.
  10. 제 9 항에 있어서,
    상기 제어부는,
    상기 사용 패턴에 관한 정보에 기초하여, 상기 사용자가 기 결정된 시간 동안 상기 모바일 디바이스의 상기 가상 머신을 사용하지 않는 시점을 상기 모바일 디바이스의 상기 가상 머신을 마이그레이션할 시점으로 결정하고, 상기 결정된 시점에 상기 모바일 디바이스의 상기 가상 머신을 마이그레이션하는, 클라우드 제어 서버.
  11. 모바일 디바이스의 가상 머신을 제공하는 복수의 클라우드 서버들을 제어하는 클라우드 제어 서버에서 수행되는 상기 가상 머신의 마이그레이션 방법에 있어서, 상기 방법은,
    상기 모바일 디바이스의 워크로드를 실행하기 위해 필요한 리소스 정보, 상기 복수의 클라우드 서버들에 의해 제공될 수 있는 가상 머신들의 리소스 정보 및 상기 모바일 디바이스와 상기 가상 머신들 간의 통신 속도에 기초하여 상기 복수의 클라우드 서버들 각각의 지연 시간을 계산하는 단계;
    상기 지연 시간에 기초하여 적어도 하나의 클라우드 서버를 결정하는 단계;
    상기 모바일 디바이스에게, 상기 결정된 적어도 하나의 클라우드 서버에 관한 정보를 송신하는 단계;
    상기 모바일 디바이스로부터 상기 결정된 적어도 하나의 클라우드 서버 중 사용자 입력에 의해 선택된 클라우드 서버의 식별 정보를 수신하는 단계; 및
    상기 복수의 클라우드 서버들 중 상기 모바일 디바이스의 가상 머신이 위치한 클라우드 서버로부터 상기 선택된 클라우드 서버로 상기 가상 머신을 마이그레이션하는 단계를 포함하고,
    상기 모바일 디바이스의 가상 머신은, 상기 복수의 클라우드 서버들 중 하나의 클라우드 서버로 오프로드된 상기 모바일 디바이스의 워크로드를 실행하고, 상기 모바일 디바이스로부터 출력되는 어플리케이션을 실행하고, 상기 어플리케이션의 실행 결과를 송신하는 것인, 가상 머신 마이그레이션 방법.
  12. 제 11 항에 있어서,
    상기 적어도 하나의 클라우드 서버에 관한 정보는,
    상기 적어도 하나의 클라우드 서버의 식별 정보, 이름 정보, 위치 정보, 상기 모바일 디바이스로부터 상기 적어도 하나의 클라우드 서버까지의 거리 정보, 상기 적어도 하나의 클라우드 서버가 제공할 수 있는 가상 머신의 구성 정보 및 상기 적어도 하나의 클라우드 서버가 제공할 수 있는 가상 머신의 연산 능력 정보 중 적어도 하나를 포함하는, 방법.
  13. 제 11 항에 있어서,
    상기 적어도 하나의 클라우드 서버에 관한 정보를 송신하는 단계는,
    상기 모바일 디바이스로부터, 상기 가상 머신을 제공할 수 있는 적어도 하나의 클라우드 서버에 관한 정보 요청을 수신하는 단계; 및
    상기 요청을 수신함에 따라, 상기 모바일 디바이스에게 상기 적어도 하나의 클라우드 서버에 관한 정보를 송신하는 단계를 포함하는, 방법.
  14. 제 11 항에 있어서,
    상기 적어도 하나의 클라우드 서버에 관한 정보를 송신하는 단계는,
    상기 모바일 디바이스의 위치 정보를 획득하는 단계;
    상기 모바일 디바이스의 위치 정보에 기초하여, 상기 모바일 디바이스의 위치로부터 기 설정된 거리내에 위치한 상기 적어도 하나의 클라우드 서버를 결정하는 단계; 및
    상기 결정된 적어도 하나의 클라우드 서버에 관한 정보를 상기 모바일 디바이스로 송신하는 단계를 포함하는 방법.
  15. 제 11 항에 있어서,
    상기 적어도 하나의 클라우드 서버에 관한 정보를 송신하는 단계는,
    상기 어플리케이션을 실행하기 위해 필요한 연산 능력에 기초하여, 상기 연산 능력을 구비한 가상 머신을 제공할 수 있는 상기 적어도 하나의 클라우드 서버를 결정하는 단계; 및
    상기 결정된 적어도 하나의 클라우드 서버에 관한 정보를 상기 모바일 디바이스로 송신하는 단계를 포함하는 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 제 11 항에 있어서,
    상기 모바일 디바이스가 이동될 예상 경로에 기초하여, 상기 모바일 디바이스의 가상 머신을 마이그레이션 할 클라우드 서버를 결정하는 단계는,
    상기 모바일 디바이스의 상기 가상 머신에 대한 상기 사용자의 사용 패턴에 관한 정보를 획득하는 단계;
    상기 획득된 사용 패턴에 관한 정보에 기초하여, 상기 모바일 디바이스의 상기 가상 머신을 마이그레이션할 시점을 결정하는 단계; 및
    상기 결정된 시점에 상기 모바일 디바이스의 상기 가상 머신을 마이그레이션하는 단계를 포함하는, 방법.
  20. 제 19 항에 있어서,
    상기 획득된 사용 패턴에 관한 정보에 기초하여, 상기 모바일 디바이스의 상기 가상 머신을 마이그레이션할 시점을 결정하는 단계는,
    상기 사용 패턴에 관한 정보에 기초하여, 상기 사용자가 기 결정된 시간 동안 상기 모바일 디바이스의 상기 가상 머신을 사용하지 않는 시점을 상기 모바일 디바이스의 상기 가상 머신을 마이그레이션할 시점으로 결정하는 단계를 포함하는, 방법.
KR1020140136963A 2014-10-10 2014-10-10 모바일 사용자 경험 개선을 위한 가상 머신 마이그레이션 방법 및 이를 위한 장치 KR102191971B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
KR1020140136963A KR102191971B1 (ko) 2014-10-10 2014-10-10 모바일 사용자 경험 개선을 위한 가상 머신 마이그레이션 방법 및 이를 위한 장치
US15/514,924 US10303520B2 (en) 2014-10-10 2015-09-11 Method and apparatus for migrating virtual machine for improving mobile user experience
EP15849228.0A EP3204866A4 (en) 2014-10-10 2015-09-11 Method and apparatus for migrating virtual machine for improving mobile user experience
PCT/KR2015/009566 WO2016056760A1 (en) 2014-10-10 2015-09-11 Method and apparatus for migrating virtual machine for improving mobile user experience
AU2015328933A AU2015328933B2 (en) 2014-10-10 2015-09-11 Method and apparatus for migrating virtual machine for improving mobile user experience
CN201580061015.1A CN107148620B (zh) 2014-10-10 2015-09-11 用于迁移虚拟机以改善移动用户体验的方法和装置
US16/405,258 US11023282B2 (en) 2014-10-10 2019-05-07 Method and apparatus for migrating virtual machine for improving mobile user experience

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140136963A KR102191971B1 (ko) 2014-10-10 2014-10-10 모바일 사용자 경험 개선을 위한 가상 머신 마이그레이션 방법 및 이를 위한 장치

Publications (2)

Publication Number Publication Date
KR20160042699A KR20160042699A (ko) 2016-04-20
KR102191971B1 true KR102191971B1 (ko) 2020-12-16

Family

ID=55653329

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140136963A KR102191971B1 (ko) 2014-10-10 2014-10-10 모바일 사용자 경험 개선을 위한 가상 머신 마이그레이션 방법 및 이를 위한 장치

Country Status (6)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102328173B1 (ko) 2021-07-05 2021-11-17 (주)다윈아이씨티 애플리케이션 마이그레이션 처리 방법, 장치 및 시스템

Families Citing this family (36)

* 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
US20150288767A1 (en) * 2014-04-03 2015-10-08 Centurylink Intellectual Property Llc Network Functions Virtualization Interconnection Hub
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
WO2017127102A1 (en) * 2016-01-22 2017-07-27 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 英特尔公司 用于在联网环境中进行计算卸载的方法和装置
EP3346383A1 (en) * 2017-01-10 2018-07-11 Unify Patente GmbH & Co. KG Computer-implemented method of managing tenants on a multi-tenant sip server system and multi-tenant sip server system
US10725885B1 (en) 2017-11-17 2020-07-28 Amazon Technologies, Inc. Methods and apparatus for virtual machine load monitoring
EP3785422A1 (en) * 2018-04-25 2021-03-03 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
WO2020091737A1 (en) * 2018-10-30 2020-05-07 Hewlett Packard Enterprise Development Lp Software defined wide area network uplink selection with a virtual ip address for a cloud service
KR102296940B1 (ko) * 2018-12-20 2021-09-01 경희대학교 산학협력단 클라우드 환경 내에서 가상 머신을 위한 마이그레이션을 수행하기 위한 전자 장치 및 그의 동작 방법
WO2020130676A1 (ko) * 2018-12-20 2020-06-25 경희대학교 산학협력단 클라우드 환경 내에서 가상 머신을 위한 마이그레이션을 수행하기 위한 전자장치 및 그의 동작 방법
WO2020163635A1 (en) * 2019-02-06 2020-08-13 Apple Inc. Enabling interactive service for cloud rendering gaming in 5g systems
CN111796924A (zh) * 2019-04-09 2020-10-20 Oppo广东移动通信有限公司 服务处理方法、装置、存储介质及电子设备
CN110109702B (zh) * 2019-05-16 2021-07-13 福州大学 基于代码分析的Android计算迁移在线决策方法
US20220226736A1 (en) * 2019-06-03 2022-07-21 Ping-Kang Hsiung Selection of virtual server for smart cloud gaming application from multiple cloud providers based on user parameters
US20200402294A1 (en) * 2019-06-18 2020-12-24 Tmrw Foundation Ip & Holding S. À R.L. 3d structure engine-based computation platform
US11392400B2 (en) * 2019-07-17 2022-07-19 Hewlett Packard Enterprise Development Lp Enhanced migration of clusters based on data accessibility
CN110673926B (zh) * 2019-09-20 2023-04-21 深圳市发掘科技有限公司 面向移动用户的云***虚拟机迁移方法及装置、服务器
CN111290835B (zh) * 2020-01-22 2023-03-10 重庆锦禹云能源科技有限公司 用于云平台虚拟机迁移的方法、装置及服务器
US20220035659A1 (en) * 2020-07-29 2022-02-03 Mythics, Inc. Migration evaluation system and method
EP4162363A1 (en) * 2020-07-30 2023-04-12 Accenture Global Solutions Limited Green cloud computing recommendation system
KR102479404B1 (ko) * 2020-12-30 2022-12-21 한국과학기술원 모바일 엣지 컴퓨팅 환경에서 효율적인 서비스 마이그레이션을 위한 서비스 소비 계획을 제공하는 컴퓨터 시스템 및 그의 방법
CN113342611B (zh) * 2021-06-18 2023-07-28 山东产研信息与人工智能融合研究院有限公司 一种精准定位虚拟计算资源的方法及***
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 (3)

* 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
US20130159392A1 (en) * 2011-12-19 2013-06-20 Intellectual Discovery Co., Ltd. System and method for providing virtual device
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 (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS514588B2 (ko) 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
JP5863771B2 (ja) 2011-03-28 2016-02-17 日本電気株式会社 仮想マシン管理システム、及び仮想マシン管理方法
US8631099B2 (en) * 2011-05-27 2014-01-14 Red Hat, Inc. 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
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
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
US20170111187A1 (en) * 2014-03-27 2017-04-20 Nokia Solutions And Networks Oy On demand network service in 5th generation mobile networks

Patent Citations (3)

* 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
US20130159392A1 (en) * 2011-12-19 2013-06-20 Intellectual Discovery Co., Ltd. System and method for providing virtual device
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102328173B1 (ko) 2021-07-05 2021-11-17 (주)다윈아이씨티 애플리케이션 마이그레이션 처리 방법, 장치 및 시스템

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102191971B1 (ko) 모바일 사용자 경험 개선을 위한 가상 머신 마이그레이션 방법 및 이를 위한 장치
US20240039752A1 (en) FACILITATING PORTABLE, REUSABLE, AND SHARABLE INTERNET OF THINGS (IoT)-BASED SERVICES AND RESOURCES
US9626102B2 (en) Method for controlling screen and electronic device thereof
US10534509B2 (en) Electronic device having touchscreen and input processing method thereof
WO2018045934A1 (zh) 应用进程的管理方法和终端设备
US20140351729A1 (en) Method of operating application and electronic device implementing the same
KR20160069443A (ko) 웹 어플리케이션 서비스 제공 장치 및 방법, 그리고 이를 위한 사용자 장치
KR20150014553A (ko) 멀티비전 스크린을 구성하는 방법 및 이를 지원하는 전자장치
US9411640B2 (en) Method for efficiently managing application and electronic device implementing the method
US9760417B2 (en) Application dehydration and rehydration during application-to-application calls
CN107301038A (zh) 应用生产设备、***、方法和非临时性计算机可读媒介
CN107924286B (zh) 电子设备及电子设备的输入方法
US20210326151A1 (en) Methods, devices and computer-readable storage media for processing a hosted application
CN104303145A (zh) 根据应用的转化配置文件将触摸输入转化成本地输入
US20150130761A1 (en) Method and apparatus for allocating computing resources in touch-based mobile device
CN105721510A (zh) 一种账号登录方法与终端设备
US20230094880A1 (en) Rendering Method and Apparatus
US20150325254A1 (en) Method and apparatus for displaying speech recognition information
US20160019602A1 (en) Advertisement method of electronic device and electronic device thereof
CN104102367A (zh) 一种信息处理方法及装置
US20150381766A1 (en) Application transfer system, application transfer method, terminal, and program
US11429249B2 (en) Application program data processing method and device
CN112005217A (zh) 服务于请求的独立线程api调用
KR102320810B1 (ko) 전자 장치 및 이의 제어 방법
KR101799413B1 (ko) 스크롤 입력 기반 인터랙티브 노선정보 제공 시스템 및 방법, 그리고 이를 위한 사용자 장치 및 컴퓨터 프로그램이 기록된 기록매체

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant