EVENT DRIVEN INTELLIGENT HYPERVISOR ON A SMART DEVICE

The invention discloses a computer-implemented method, computer program product, and computer system, for utilizing a hypervisor installed on a smartphone running separate virtual machines (VMs), one configured for personal use and another for work use, thereby allowing for separate operating environments on one piece of hardware. The method includes receiving one or more notifications, or calls, on the smartphone and determining whether the one or more notifications, or calls, are during work hours. The method selects, automatically, the work VM as default if the one or more notifications, or calls, are during work hours. If the one or more notifications, or calls, are not during work hours, the method automatically selects the personal VM as default. The method further notifies a user to switch VMs if the one or more notifications, or calls, occur during a time that is a non-default VM.

BACKGROUND

The present disclosure relates generally to the field of cognitive computing and more particularly to data processing and virtual machines (VMs).

The separation of work and personal life with respect to digital devices has become more complex now that most people always carry at least one smartphone with them. To keep information secure and separate, many people have resorted to carrying separate smartphones: one for business and one for personal affairs.

However, it is a cumbersome task to carry around multiple smartphones since an individual can only use one device at a time.

BRIEF SUMMARY

Embodiments of the present invention disclose a method, a computer program product, and a system, for utilizing a hypervisor installed on a smartphone running separate VMs, thereby allowing for separate operating environments on one piece of hardware.

According to an embodiment, the method receives one or more notifications, or calls, on the smartphone and determines whether the one or more notifications, or calls, are during work hours and if so, automatically selecting the work VM as default. If the one or more notifications, or calls, are not during work hours, the method automatically selects the personal VM as default. The method further prompts a user to switch VMs if the one or more notifications, or calls, come in during a time that is a non-default VM.

A computer program product, according to an embodiment of the invention, includes a non-transitory tangible storage device having program code embodied therewith. The program code is executable by a processor of a computer to perform a method. The method receives one or more notifications, or calls, on the smartphone and determines whether the one or more notifications, or calls, are during work hours and if so, automatically selecting the work VM as default. If the one or more notifications, or calls, are not during work hours, the method automatically selects the personal VM as default. The method further prompts a user to switch VMs if the one or more notifications, or calls, come in during a time that is a non-default VM.

A computer system, according to an embodiment of the invention, includes one or more computer devices each having one or more processors and one or more tangible storage devices; and a program embodied on at least one of the one or more storage devices, the program having a plurality of program instructions for execution by the one or more processors. The program instructions implement a method. The method receives one or more notifications, or calls, on the smartphone and determines whether the one or more notifications, or calls, are during work hours and if so, automatically selecting the work VM as default. If the one or more notifications, or calls, are not during work hours, the method automatically selects the personal VM as default. The method further prompts a user to switch VMs if the one or more notifications, or calls, come in during a time that is a non-default VM.

DETAILED DESCRIPTION

The present invention discloses a method for leveraging a hypervisor installed on a smartphone, or any other electronic device, that is running separate VMs. The separate VMs may be for personal use and work use, thereby distinguishing the operating environments on the same piece of hardware.

Nowadays, many people perform work outside of a traditional office space, and often, while on-the-go. For example, people may respond to their work text messages and e-mails from their car or the supermarket, just to give a few examples. By keeping each VM (personal use and work use) on separate storage devices, a greater separation of confidential and work-related data, can be achieved.

In this separation environment, the hypervisor can enforce various settings such that the VMs are distinguishable. Additionally, the hypervisor can provide smart options to a user such that notifications and calls ring, vibrate, and appear differently when they occur for each VM.

The present invention dynamically handles different mobile virtual environments, plurality of services, and actions to smoothly compute the transition from one VM environment to another on the same device.

The plurality of environments on a user's device (e.g., smartphone, tablet, etc.) may be automatically determined based on various contextual factors such as a user's contacts, geofence, application notifications, home screen setup, background, and so forth.

The present invention is not limited to the exemplary embodiments below but may be implemented with various modifications within the scope of the present invention. In addition, the drawings used herein are for purposes of illustration, and may not show actual dimensions.

FIG.1depicts a diagram graphically illustrating the hardware components of intelligent hypervisor computing environment100and a cloud computing environment in accordance with an embodiment of the present invention.

FIG.2illustrates intelligent hypervisor computing environment200, in accordance with an embodiment of the present invention. Intelligent hypervisor computing environment200includes host server210, and computing device230, and server240all connected via network202. The setup inFIG.2represents an example embodiment configuration for the present invention and is not limited to the depicted setup to derive benefit from the present invention.

In an exemplary embodiment, host server210includes intelligent hypervisor program220. In various embodiments, host server210may be a laptop computer, tablet computer, netbook computer, personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable electronic device capable of communicating with computing device230and server240via network202. Host server210may include internal and external hardware components, as depicted, and described in further detail with reference toFIG.1. In other embodiments, host server210may be implemented in a cloud computing environment, as further described in relation toFIG.1herein. Host server210may also have wireless connectivity capabilities allowing it to communicate with computing device230, server240, and other computers or servers over network202.

With continued reference toFIG.2, computing device230includes user interface232and may be a laptop computer, tablet computer, netbook computer, personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable electronic device capable of communicating with host server210and server240via network202. Computing device230may include internal and external hardware components, as depicted, and described in further detail below with reference toFIG.1. In other embodiments, computing device230may be implemented in a cloud computing environment, as described in relation toFIG.1, herein.

In exemplary embodiments, user interface232is a computer program which allows a user to interact with computing device230and other connected devices via network202. For example, user interface232may be a graphical user interface (GUI). In addition to comprising a computer program, user interface232may be connectively coupled to hardware components, such as those depicted inFIG.1, for receiving user input. In an exemplary embodiment, user interface232may be a web browser, however in other embodiments user interface232may be a different program capable of receiving user interaction and communicating with other devices.

With continued reference toFIG.2, server240comprises user database242and may be a laptop computer, tablet computer, netbook computer, personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable electronic device capable of communicating with host server210and computing device230via network202.

In exemplary embodiments user database242comprises various sets of user information related to separate VMs on computing device230. For example, one set of user data may include the user's personal data such as family and friends' contact information, personal notes, lists, text messages, home screen set up with personalized applications (e.g., personal banking information, social media and e-mail logins, and so forth). Another set of user data may include the user's work-related data such as colleagues and clients' contact information, work-related documents and text messages, home screen set up with work-related applications (e.g., company portal log in, etc.).

In exemplary embodiments, user database242may also keep track of a user's daily routine and schedule to determine working hours versus personal hours during a twenty-four-hour period. Users have the option to opt-in, and out, of any service that tracks daily activities and routines.

With continued reference toFIG.2, host server210includes intelligent hypervisor program220. Host server210may be a laptop computer, tablet computer, netbook computer, personal computer (PC), a desktop computer, a personal digital assistant (PDA), a smart phone, or any programmable electronic device capable of communicating with computing device230and server240via network202.

Intelligent hypervisor program220provides the ability to generate custom virtualized management to enable different mobile environments in a single mobile device (e.g., a phone, a tablet, etc.). In alternative embodiments, intelligent hypervisor program220may be utilized as a service in a cloud environment.

With continued reference toFIG.2, intelligent hypervisor program220, in an exemplary embodiment, may be a computer application on host server210that contains instruction sets, executable by a processor. The instruction sets may be described using a set of functional modules. In exemplary embodiments, intelligent hypervisor program220may receive input from computing device230and server240over network202. In alternative embodiments, intelligent hypervisor program220may be a computer application on computing device230, or a standalone program on a separate electronic device.

With continued reference toFIG.2, the functional modules of intelligent hypervisor program220include receiving module222, determining module224, selecting module226, and notifying module228.

FIG.3is a flowchart illustrating the operation of intelligent hypervisor program220ofFIG.2, in accordance with embodiments of the present disclosure.

With reference toFIGS.2and3, receiving module222includes a set of programming instructions, in intelligent hypervisor program220, to receive one or more notifications, or calls, on a smartphone (step302). The set of programming instructions is executable by a processor.

In exemplary embodiments, a smartphone receives the incoming notifications and/or calls. In alternative embodiments, any electronic device, known to one of ordinary skill in the art, that can receive incoming notifications (i.e., text messages, pop-ups, banner notifications, badges, and so forth) and calls can be used.

In exemplary embodiments, the hypervisor installed on the electronic device (i.e., smartphone) separates personal and work-related operating environments. A VM on the electronic device is configured for personal use and a separate VM is for work-related use.

Intelligent hypervisor program220may keep data physically separate on the smartphone by using internal storage of the smartphone for one VM and using a Secure Digital (SD) card in the smartphone for the other VM.

In alternative embodiments, depending on the hardware more than two VMs could possibly be utilized. Leveraging a third VM, or more, for a second job or potentially a dedicated environment for a specific client may be utilized on the smartphone.

In exemplary embodiments, each VM may contain its own data storage solution as depicted inFIG.1.

In exemplary embodiments, intelligent hypervisor program220has rules in place that enforce different background images, notification sounds, haptic feedback patterns, vibration patterns, and ringtones for each VM on the smartphone.

With reference to an illustrative example, Joe works at a corporate law office where he needs to have a smartphone just for work, since he needs to respond to text messages, notifications, and phone calls. He also has a personal smartphone. Joe needs to carry these two smartphones whenever he leaves the house, and he finds it burdensome. Joe wishes he could combine his work phone and his personal phone into one device. Intelligent hypervisor program220is just what Joe needs to receive separate phone calls and messages for both personal and work, all the while only using one smartphone device.

With continued reference toFIGS.2and3, determining module234includes a set of programming instructions in intelligent hypervisor program220, to determine whether the one or more notifications, or calls, are during work hours (step304). The set of programming instructions is executable by a processor.

In exemplary embodiments, work hours may be designated by the user or set to a default 9 am-5 pm setup. Determining module234accesses computing device230to automatically obtain a geographic location via global positioning system (GPS), time zone, current time, and user identification.

With continued reference toFIGS.2and3, selecting module236includes a set of programming instructions in intelligent hypervisor program220, to automatically select the work VM as default if the one or more notifications, or calls, are during work hours (step306). The set of programming instructions is executable by a processor.

Selecting module236further includes a set of programming instructions in intelligent hypervisor program220, to automatically select the personal VM as default if the one or more notifications, or calls, are not during work hours (step308). The set of programming instructions is executable by a processor.

In exemplary embodiments, determining module234determines whether the user is physically at a work location, if a current time is not during work hours and if so, automatically selecting, via selecting module236, the work VM as default.

In alternative embodiments, determining module234determines whether the user is physically at home, if a current time is during work hours and if so, automatically selecting, via selecting module236, the personal VM as default.

In further exemplary embodiments, determining module234determines a default VM based upon known contact information for one or more incoming notifications, text messages, or calls and automatically selects, via selecting module236, a default VM for one or more outbound notifications, text messages, or calls based upon associated criteria such as time, location, and user contact information.

With reference to the illustrative example above, Joe is at home for his lunch break on a workday and receives an incoming phone call. Determining module234determines that Joe is in his house based on GPS information of his smartphone. Additionally, the incoming phone call is from one of Joe's personal contacts. Based on this information, selecting module236selects Joe's personal VM on his smartphone to answer the incoming phone call. Since Joe was occupied making himself a sandwich, his personal voicemail message answered the incoming phone call and Joe's friend was able to leave a message.

With continued reference toFIGS.2and3, notifying module238includes a set of programming instructions in intelligent hypervisor program220, to notify a user to switch VMs if the one or more notifications, or calls, occur during a time that is a non-default VM (step310). The set of programming instructions is executable by a processor.

In exemplary embodiments, a lock screen on the smartphone device can be a primary interface allowing the user to toggle between, and see, the one or more received notifications, or calls, for both VMs on a home screen of the smartphone.

Furthermore, notifying module238alerts the user when the one or more notifications, or calls, occur during a time that is the non-default VM (e.g., when a work call is received after working hours or a personal call is received during working hours, and so forth), and switching over to the non-default VM to take additional action. The additional action may be sending the phone call directly to the appropriate VM voice mailbox, automatically responding with a personalized message, or answering the phone call with the appropriate greeting.

In exemplary embodiments, the alert may be a separate sound or vibration pattern, or a visual cue that appears on the home screen of the user's smartphone.

With continued reference to the illustrative example above, notifying module238sends a ringtone to Joe's smartphone alerting him to a work call while he is at home for his lunch break. Since Joe's phone has identified Joe as being at his home and away from his office, Joe can switch from the smartphone's personal default VM mode to work VM mode. Joe switches the phone to work VM mode to answer the incoming call. Since Joe is still busy making his sandwich and does not answer his phone, his voice mail answers with his work voicemail message, rather than his personal voicemail greeting. Joe's co-worker is thus able to leave a message.

In alternative embodiments, intelligent hypervisor program220can dynamically deploy an encapsulated user environment on the user's smartphone based on the user's daily routine.

For example, if the user took a vacation day from work then intelligent hypervisor program220can switch the smartphone to the user's personal VM for the entire day.

In exemplary embodiments, network202is a communication channel capable of transferring data between connected devices and may be a telecommunications network used to facilitate telephone calls between two or more parties comprising a landline network, a wireless network, a closed network, a satellite network, or any combination thereof. In another embodiment, network202may be the Internet, representing a worldwide collection of networks and gateways to support communications between devices connected to the Internet. In this other embodiment, network202may include, for example, wired, wireless, or fiber optic connections which may be implemented as an intranet network, a local area network (LAN), a wide area network (WAN), or any combination thereof. In further embodiments, network202may be a Bluetooth network, a WiFi network, or a combination thereof. In general, network202can be any combination of connections and protocols that will support communications between host server210, computing device230, and server240.