Sharing virtual environment data
View Patent ↗A virtual environment (e.g., a virtual desktop or virtual application) may be configured to provide an option to share data that exists within the virtual environment. Upon selecting the option, a device that implements the virtual environment (e.g., a virtualization server) may send a sharing command to a client device that is accessing the virtual environment. The client device may receive the sharing command and detect one or more sharing mechanisms available via the client device (e.g., installed applications with a functionality for sharing data). The client device may then provide a list of sharing mechanisms to a user and receive a user selection of a sharing mechanism. The client device may then share the data with another device using the sharing mechanism selected by the user.
1 . A system comprising:
a client device; and
a virtualization server hosting a virtual environment comprising a virtual desktop and a security layer limiting sharing of content from within the virtual environment to outside the virtual environment, wherein the virtualization server is configured to perform steps comprising:
receiving, from the client device, via an established session with the virtual desktop, a request to share content that exists within the virtual desktop outside the virtual environment; and
sending the content and a command to share the content outside the virtual environment to the client device;
wherein the client device is configured to perform steps comprising:
transmitting, to the virtualization server, the request to share the content that exists within the virtual desktop outside the virtual environment;
receiving the content and the command to share the content from the virtualization server;
responsive to the received command, invoking a share action provided by the client device, wherein invoking the share action comprises creating a data object comprising a uniform resource identifier (URI) pointing to the content;
passing the data object to an operating system of the client device;
determining, based on the received data object, one or more applications installed on the client device that are capable of sharing the content;
transmitting an indication of the one or more applications to a user;
receiving a user selection of a first application of the one or more applications; and
in response to receiving the user selection, the first application performing steps comprising:
accessing the content using the data object;
receiving a user selection of a second user associated with a user device; and
sending the content to the user device.
2 . The system of claim 1 , wherein the virtualization server is further configured to perform steps comprising:
determining, by the security layer of the virtual environment, based on one or more of permissions associated with the content or rules specifying policies for sharing content, to grant the request to share the content,
wherein the sending of the content to the client device is responsive to the determining to grant the request to share the content.
3 . The system of claim 2 , wherein the determining to grant the request to share the content is based on the rules specifying policies for sharing content, wherein the rules comprise one or more of:
a first rule specifying types of content that may be shared;
a second rule specifying permissions for content that may be shared;
or a third rule specifying metadata for content that may be shared.
4 . The system of claim 1 , wherein the virtualization server is further configured to perform steps comprising:
determining whether to permit temporary storage of the content on the client device; and
sending, to the client device, an instruction indicating whether temporary storage is permitted.
5 . The system of claim 1 , wherein the receiving of the content further comprises receiving an instruction indicating a maximum time period for storing the content, wherein the client device is further configured to perform steps comprising:
storing the content;
prior to the maximum time period elapsing, sharing the stored content with a second user device associated with a third user; and
responsive to the maximum time period elapsing, deleting the content from storage.
6 . The system of claim 5 , wherein the client device is further configured to perform steps comprising:
after the deleting of the content, receiving, from a first user, a request to share the content; and
responsive to the request from the first user, sending a second request to share the content to the virtualization server.
7 . The system of claim 1 , wherein the virtualization server is further configured to perform steps comprising:
receiving, from the client device, a message indicating that the content was shared with another device; and
generating, based on the message, analytics indicating one or more of a type of the content, the application that was used to share the content, or information about a user that received the content.
8 . A method comprising:
generating, by one or more processors of a virtualization server, a virtual environment comprising a virtual desktop and a security layer limiting sharing of content from within the virtual environment to outside the virtual environment;
establishing, by the one or more processors, a session with a client device, wherein the session allows the client device to interact with the virtual desktop;
receiving, from the client device, via the established session, a request to share content that exists within the virtual desktop outside the virtual environment;
sending the content and a command to share the content outside the virtual environment to the client device;
sending, to the client device, a command configured to cause the client device to determine one or more applications installed on the client device and allow a user of the client device to select an application of the one or more applications in order to share the content outside the virtual environment via the selected application;
wherein the client device performs steps comprising:
transmitting, to the virtualization server, the request to share the content that exists within the virtual desktop outside the virtual environment;
receiving the content and the command to share the content from the virtualization server;
responsive to the received command, invoking a share action provided by the client device, wherein invoking the share action comprises creating a data object comprising a uniform resource identifier (URI) pointing to the content;
passing the data object to an operating system of the client device;
determining, based on the received data object, one or more applications installed on the client device that are capable of sharing the content;
transmitting an indication of the one or more applications to a user;
receiving a user selection of a first application of the one or more applications;
in response to receiving the user selection, the first application performing steps comprising:
accessing the content using the data object;
receiving a user selection of a second user associated with a user device; and
sending the content to the user device.
9 . The method of claim 8 , further comprising:
determining, by the security layer of the virtual environment, based on one or more of permissions associated with the content or rules specifying policies for sharing content, to grant the request to share the content, wherein the sending of the content to the client device is responsive to the determining to grant the request to share the content.
10 . The method of claim 9 , wherein the determining to grant the request to share the content is based on the rules specifying policies for sharing content, wherein the rules comprise one or more of:
a first rule specifying types of content that may be shared;
a second rule specifying permissions for content that may be shared; or
a third rule specifying metadata for content that may be shared.
11 . The method of claim 8 , further comprising:
determining, by the one or more processors, whether to permit temporary storage of the content on the client device; and
sending, to the client device, an instruction indicating whether temporary storage is permitted.
12 . The method of claim 8 , further comprising:
receiving, from the client device, a message indicating that the content was shared with another device; and
generating, based on the message, analytics indicating one or more of a type of the content, the application that was used to share the content, or information about a user that received the content.
13 . A method comprising:
establishing, by one or more processors of a client device, a session with a virtualization server, wherein the session allows the client device to interact with a virtual desktop within a virtual environment comprising a security layer limiting sharing of content from within the virtual environment to outside the virtual environment;
receiving, via a user interface of the client device, input from a user of the client device, the input comprising a request to share content that exists within the virtual desktop outside the virtual environment;
responsive to the transmitted input, receiving, via the established session, content and a command to share the content that exists within the virtual desktop, the content being received outside the virtual desktop;
determining, by the one or more processors, one or more applications capable of sharing content with another device, wherein each of the one or more applications are installed on the client device;
wherein the client device perform steps of:
transmitting, to the virtualization server, the request to share the content that exists within the virtual desktop outside the virtual environment;
receiving the content and the command to share the content from the virtualization server;
responsive to the received command, invoking a share action provided by the client device, wherein invoking the share action comprises creating a data object comprising a uniform resource identifier (URI) pointing to the content;
passing the data object to an operating system of the client device;
determining, based on the received data object, one or more applications installed on the client device that are capable of sharing the content;
transmitting an indication of the one or more applications to a user;
receiving a user selection of a first application of the one or more applications;
in response to receiving the user selection, the first application performing steps comprising:
accessing the content using the data object;
receiving a user selection of a second user associated with a user device; and
sending the content to the user device.
14 . The method of claim 13 , wherein the first application is a messaging application, wherein the sending of the content to the user device comprises sending a message to the user device.
15 . The method of claim 13 , wherein the first application is a social media application, wherein the sending of the content to the user device comprises making the content accessible to the user device via the social media application.
16 . The method of claim 13 , wherein the receiving of the content further comprises receiving an instruction indicating a maximum time period for storing the content, wherein the method further comprises:
storing the content;
prior to the maximum time period elapsing, sharing the stored content with a second user device associated with a third user; and
responsive to the maximum time period elapsing, deleting the content from storage.
17 . The system of claim 1 , wherein sending the content outside the virtual environment to the client device comprises transmitting a uniform resource identifier (URI) and metadata in a signaling channel of an established session of the virtual desktop to the client device.
18 . The method of claim 8 , wherein sending the content outside the virtual environment to the client device comprises transmitting a uniform resource identifier (URI) and metadata in a signaling channel of an established session of the virtual desktop to the client device.