Virtual desktop operation and data continuity preservation

A method includes monitoring, by one or more processor, a communications connection to a client, and detecting a disconnection event. The disconnection occurs when activity over the communications connection drops below a threshold. Based on detecting the disconnection event, the one or more processor creates a cloned virtual environment by cloning an original virtual environment obtained by the client via the communications connection. The original virtual environment and the cloned virtual environment execute in parallel. The one or more processor obtains process information and based on the process information, applies at least one process to the cloned virtual environment and monitors the communications connection, to detect a reconnection event, where the reconnection event includes activity over the communications connection being above or equal to the threshold.

TECHNICAL FIELD

One or more aspects of the present invention relates to both operation continuity and data preservation in a computing environment with inconsistent connectivity, including mobile computing environments.

BACKGROUND

Many users of computer environments are mobile users and the mobility of the users and their devices can impact the consistency of their connection to a computer network. Many mobile devices utilize a virtual desktop environment through a connection to one or more computing resources accessible to the mobile device via a network connection. The virtual desktop, for example, can be hosted on a resource in a computing environment, such as a cloud. When there is an issue with the network connection between the mobile device and the resource providing the virtual environment, for example, a server that is part of a cloud, to preserve the state of the virtual desktop, the virtual desktop's functionality includes executing predetermined processes to automatically save the virtual desktop environment, enabling restoration of the system when the network connection is restored. While the virtual desktop environment at the time of the disconnection can be restored, operation continuity is sacrificed because not only does the execution of these processes interfere with the ability of the user to work on the desktop after the disconnection event, but any changes that user makes would be overwritten when the virtual desktop is restored to its pre-disconnection state when the connection is restored. Additionally, in an environment that is prone to intermittent connectivity loss, the constant execution of these process may impact the availability of the virtual desktop and the timing of the workflow of the user.

SUMMARY

Shortcomings of the prior art are overcome and additional advantages are provided through the provision of a method to preserve operation continuity and data consistency when network connections are broken in a computing environment. The method includes, for instance: monitoring, by one or more processor, a communications connection to a client, and detecting a disconnection event, wherein the disconnection event comprises activity over the communications connection dropping below a threshold; based on detecting the disconnection event, creating, by the one or more processor, a cloned virtual environment by cloning an original virtual environment obtained by the client via the communications connection, wherein based on the creating, the original virtual environment and the cloned virtual environment execute in parallel; obtaining, by the one or more processor, process information and based on the process information, applying at least one process to the cloned virtual environment; and monitoring, by the one or more processor, the communications connection, to detect a reconnection event, wherein the reconnection event comprises activity over the communications connection above or equal to the threshold.

Shortcomings of the prior art are overcome and additional advantages are provided through the provision of a computer program product to preserve operation continuity and data consistency when network connections are broken in a computing environment. The computer program product includes, for instance, a computer readable storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method including: monitoring, by one or more processor, a communications connection to a client, and detecting a disconnection event, wherein the disconnection event comprises activity over the communications connection dropping below a threshold; based on detecting the disconnection event, creating, by the one or more processor, a cloned virtual environment by cloning an original virtual environment obtained by the client via the communications connection, wherein based on the creating, the original virtual environment and the cloned virtual environment execute in parallel; obtaining, by the one or more processor, process information and based on the process information, applying at least one process to the cloned virtual environment; and monitoring, by the one or more processor, the communications connection, to detect a reconnection event, wherein the reconnection event comprises activity over the communications connection above or equal to the threshold.

Computer systems and methods relating to one or more aspects of the technique are also described and may be claimed herein. Further, services relating to one or more aspects of the technique are also described and may be claimed herein.

Additional features and are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.

DETAILED DESCRIPTION

The accompanying figures, in which like reference numerals refer to identical or functionally similar elements throughout the separate views and which are incorporated in and form a part of the specification, further illustrate the present invention and, together with the detailed description of the invention, serve to explain the principles of the present invention.

Embodiments of the present invention can provide both operation continuity and preserve data integrity (e.g., desktop integrity) by providing the user with the ability to continue working on a consistent virtual desktop during a disconnection from a network, but at the same time, executing any processes within the computing environment to retain the state of the virtual desktop. Embodiments of the present invention include methods, computer programs, and/or computer systems that preserve a virtual desktop environment during an unintended disconnection from a network and once the connection is restored, empower the user to select to continue working in a manner that preserves the environment itself, as it was, at the point of disconnection, or the environment at the point of reconnection, as the user, in an embodiment of the present invention, is able to continue working even during the disconnection.

Certain embodiments of the present invention represent a technological improvement over prior systems and methods for preserving a virtual desktop environment of a client. When the client is unintentionally disconnected from a network in an environment that is unstable and the timing of reconnection after disconnection is undetermined, the provider of the virtual desktop environment that the client accesses, such as a server, will execute certain predetermined processes, such as shutdown of a desktop and saving a file, in an effort to preserve the environment, however, these processes are disruptive to operation continuity. In an environment, such as a mobile environment, which is prone to constant disconnection and reconnection, the repetitive execution of these processes can disrupt the user's workflow. Certain embodiments of the present invention enable operation continuity, even during disconnection, for example, by allowing a user to select operation continuity or application of predetermined processes when accessing a virtual desktop environment in an unstable connection environment.

Aspects of various embodiments of the present invention provide a unique solution for preserving a virtual desktop environment in an unstable connection environment by providing a way for a user to continue working during and immediately after a disconnection state and without sacrificing the data integrity of the virtual environment overall. By cloning the virtual environment during a disconnection state, and applying any predetermined processes to the cloned virtual desktop, while separately preserving the original virtual desktop, an embodiment of the present invention preserves both operation continuity and data integrity.

In mobile environments that utilize virtual desktops, a current architecture is to provide software to the devices and a service, for example, utilizing a cloud computing environment. In embodiments of the present invention, the Software as a Service (SaaS) model enables individual clients to execute software by connecting to virtual desktops, while the application itself, including database elements, much of the program code that comprises the application, and many of the resources that execute the application, reside in the cloud. Utilization of the present invention may be especially relevant to the cloud computing architecture because the SaaS model relies upon connection to cloud resources by individual users, and when this connection is unstable, embodiments of the present invention enable the continuity of the operations of applications provided as SaaS.

FIGS. 1-4depict various aspects of computing, including cloud computing, in accordance with one or more aspects set forth herein.

Characteristics are as follows:

Service Models are as follows:

Deployment Models are as follows:

In cloud computing node10there is a computing resource, which may include, but is not limited to, a system/server12, which is operational with numerous other general purpose or special purpose computing system environments or configurations. A computing resource in cloud computing node10may also include a personal computer and/or a mobile computing device. The term computer system/server12is merely used as an example. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with computer system/server12include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices, and the like.

Workloads layer90provides examples of functionality for which the cloud computing environment may be utilized. Examples of workloads and functions which may be provided from this layer include: mapping and navigation91; software development and lifecycle management92; virtual classroom education delivery93; data analytics processing94; transaction processing95; and providing data and program elements to individual clients to generate the virtual desktop environment96described herein.

FIG. 4depicts a hardware overview of a computing node10, in accordance with one or more aspects set forth herein.

Program/utility40as set forth inFIG. 1can include one or more program440as set forth inFIG. 4. For example, in an embodiment of the present invention, the program440can provide data and program elements to individual clients to generate the virtual desktop environment, as described inFIG. 3, and specifically, workloads layer90.

One or more program440can have a set (at least one) of program modules, and may be stored in memory28by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, program data, and one or more program, or some combination thereof, may include an implementation of a networking environment. One or more program440(and optionally at least one of one or more program441,442,443,444,445) generally carry out the functions and/or methodologies of embodiments of the invention as described herein.

FIG. 5depicts a workflow of an embodiment of the present invention. One or more program440(as depicted inFIG. 4) monitors a communications connection between a client and one more computer resources in a given environment, including, but not limited to, a cloud computing node10(FIG. 1) (510). By monitoring this connection, the one or more program440can detect a disconnection event (520). In an embodiment of the present invention, a disconnection event occurs when the one or more program440determines that activity over the communications connection has dropped below a threshold (e.g., a predetermined threshold). In an embodiment of the present invention, the one or more program writes the disconnection event to a memory resource, including but not limited to, a user situation database.

The one or more program440may preconfigure the threshold and vary the type of threshold the one or more program440relies upon to determine that a disconnection event had taken place. For example, meeting the threshold may mean that there was no activity on the communications connection for a continuous time interval. However, the threshold itself can take different forms dependent on different elements, including the user and/or the elements in the computing environment itself. In certain embodiments of the present invention, elements that factor into setting the threshold for a disconnection event include, but are not limited to, the activity of the user of the client, the packets exchanged over the connection in a given time period, connection situation (network in use), and specifics of the connection environment. In an embodiment of the present invention, the one or more program440monitors the connection by pinging a computing resource, such as a cloud computing node10, and/or a client, for a time period (e.g., a predetermined and/or defined time period). In an embodiment of the present invention, the one or more program440determines a disconnection event based on a continuous lack of activity over the connection for a time period.

In an embodiment of the present invention, one or more program440may monitor the communications connection to detect the disconnection event by monitoring a login of a user on a client, comparing activity of the user on the client to a threshold, and generating a notification when the activity is below the threshold.

Returning toFIG. 5, based on detecting the disconnection event, the one or more program440creates a cloned virtual environment by cloning an original virtual environment obtained by the client via the communications connection (520). In an embodiment of the present invention, the one or more program440creates the cloned environment so that it can run concurrently with the original virtual environment. In an embodiment of the present invention, the original virtual environment and the cloned virtual environment execute in parallel on a computing resource, for example, a server, which may be a cloud computing node10. In an embodiment of the present invention, the one or more program440creates the cloned virtual environment based on memory in operation at the client. In an embodiment of the present invention, the cloning is operation situation copying.

The one or more program440obtains process information and based on the process information, applied at least one process (e.g., a predetermined process) to the cloned virtual environment (530). In an embodiment of the present invention, the one or more program440obtains the process information from a memory resource within the now closed, due to the disconnection, environment of the client. For example, the one or more program440may obtain the process information from a process saving database based on user activity on the client. In an embodiment of the present invention, the processes or processes can include shutting down the cloned virtual environment, disconnecting a specific application from the cloned virtual environment, saving data in operation in the cloned virtual environment, or executing a file (e.g., a batch or script file) in the cloned virtual environment.

The one or more program monitors the communications connection to detect a reconnection event (540). In an embodiment of the present invention, the one or more program440determines that the reconnection has occurred, i.e., the connection between the client and one or more computing element (e.g., a cloud computing node10) has been restored. In an embodiment of the present invention the one or more program440determines that a reconnection event has occurred when the activity over the communications connection is above or equal to the threshold (e.g., a predetermined or defined threshold). The variety is the threshold for disconnection is applicable to the threshold for reconnection. For example, the one or more programs440may use a login user database as a database to determine whether a connection has been re-established.

At this point, both the cloned virtual environment and the original virtual environment are both executing on the resource generating the virtual desktops that the client accesses over the communications connection. While the original environment has enable the user to continue working (operation continuity), the one or more program440executed the processes on the cloned virtual environment to preserve the environment at the point of disconnection. Thus, in an embodiment of the present invention, after reconnection, the one or more program enables a user or process to select which environment to use moving forward.

Returning toFIG. 5, in an embodiment of the present invention, the one or more program obtains a selection of one of: the original virtual environment or the cloned virtual environment (550). Once a virtual environment has been selected, there is no need to devote resources to sustaining the non-selected environment. Thus, in an embodiment of the present invention, based on the selection, the one or more program440terminates the original virtual environment or the cloned virtual environment (560), i.e., the environment that the user or process did not select.

FIG. 6visually depicts the different instances of a virtual desktop environment in an embodiment of the present invention and highlights how these instances create both operation continuity and data preservation (at the point of disconnection). Referring toFIG. 6, the Case of Short Time Period of Disconnection602is contrasted with Case of Disconnection Exceeding Threshold605to demonstrate the operation of an embodiment of the disclosed system. In both cases, Connection Situation with a Client610A-B is inconsistent. When the one or more program440determines that the threshold has been exceeded, the one or more program440creates the Virtual Desktop Environment (Copy)630. After the cloning, the one or more program440executes the processes, as seen referenced inFIG. 6on the Virtual Desktop Environment (Copy)630. Meanwhile, the Virtual Desktop Environment (Original)620remains active and the user can interact with this instance. Thus, when the Connection Situation with a Client610B is restored, a user and/or process may selectively connect to the Virtual Desktop Environment (Original)620, which was changed only by any user interaction during the disconnection, or the Virtual Desktop Environment (Copy)630, which has been subject to the predetermined processes.

In an embodiment of the present invention, the one or more programs440may manage the methods of the present invention by utilizing certain database elements that may be on a resource local to the client and/or accessible to the client regardless of the state of the communications connection. Table1below describe certain database flags that the one or more programs440may set to assist in the implementation of the invention.

TABLE 1Item NameDetailsLong Time DisconnectionTurn on, in the case of disconnection for aFlagpredetermined time period without log offprocess from userTurn off, in the case of reconnection processCopy Environment FlagTurn on, upon creation of a virtual desktopcopied environment of the target userTurn off, upon deletion after execution ofreconnectionPredetermined ProcessTurn on, upon creation of the copiedExecution Situation Flagenvironment of the virtual desktopenvironmentTurn off, according to execution ofpredetermined processes