Patentable/Patents/US-12445515-B2
US-12445515-B2

Accessing files from virtual desktops and applications during interruptions to connectivity

PublishedOctober 14, 2025
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical Abstract

Described embodiments provide systems and methods of providing accessing to a file. A client device may store a copy of a file. The copy may be generated during active use of the file in which content of the file is accessible by the client device via an application hosted on a remote computing device. Responsive to a loss in connectivity that disrupts the active use of the file, the client device may identify a local application on the client device based at least on a type of the file. The client device may use the identified local application to access the copy of the file stored on the client device and continue the active use of content of the file. Subsequent to restoring the connectivity, the client device may provide the file to the remote computing device for synchronization of the file.

Patent Claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method comprising:

2

2. The method of, further comprising receiving, by the client device and responsive to re-establishing connectivity with the remote computing device, a request to provide the copy of the file accessed at the client device during the loss in connectivity to the remote computing device.

3

3. The method of, further comprising maintaining, by the client device and responsive to a rejection of a prompt to continue accessing of the copy of the file using the local application, the file in a cache of the client device.

4

4. The method of, wherein using the local application further comprises invoking the local application to access the copy of the file, responsive to a selection of the local application on the client device.

5

5. The method of, further comprising establishing, by the client device, a session with the remote computing device to provide a virtual desktop via which the client device is to access the file using the remote application.

6

6. A method, comprising:

7

7. The method of, further comprising synchronizing, by the remote computing device, a second copy of the file maintained by the remote computing device with the copy of the file accessed using the local application, subsequent to the disruption.

8

8. The method of, wherein providing further comprises storing an encrypted copy of the file to restrict access to the file from outside the remote application and the local application.

9

9. The method of, wherein providing further comprises providing a virtual desktop via which the client device is to access the file using the remote application.

10

10. The method of, wherein receiving further comprises, responsive to a selection of the local application on the client device identified as configured to access the file, receiving the copy of the file accessed using the local application invoked on the client device.

11

11. The method of, wherein receiving further comprises responsive to determining that the copy of the file was accessed at the client device during the disruption, receiving the file from the client device.

12

12. The method of, further comprising monitoring, by the remote computing device, active uses of a plurality of files by the client device via the remote application hosted on the remote computing device.

13

13. A client device, comprising:

14

14. The client device of, wherein the instructions, when executed by the one or more processors, further cause the client device to determine, responsive to re-establishing connectivity with the remote computing device, a request to provide the copy of the file accessed at the client device during the disruption to the remote computing device.

15

15. The client device of, wherein the instructions, when executed by the one or more processors, further cause the client device to maintain, responsive to a rejection of a prompt to continue accessing of the copy of the file using the local application, the file in a cache of the client device.

16

16. The client device of, wherein the instructions, when executed by the one or more processors, further cause the client device to invoke, responsive to a selection of the local application on the client device, the local application to access the file.

Detailed Description

Complete technical specification and implementation details from the patent document.

This application is a CONTINUATION application of U.S. patent application Ser. No. 17/557,746 (filed Dec. 21, 2021), which is incorporated here by reference in its entirety.

The present application generally relates to computing systems. In particular, the present application relates to systems and methods for continued file use upon loss of connectivity between remote computing devices.

An enterprise service may host various resources to be accessed by a client. To access such resources, the client may rely on a network connection with the enterprise service.

Aspects of the present disclosure are directed to systems and methods for accessing files during interruptions to connectivity between computing devices to enable continued active use of the file on one of the devices. A client device may store a copy of a file. The copy may be generated during active use of the file in which content of the file is accessible by the client device via an application hosted on a remote computing device. Responsive to a loss in connectivity that disrupts the active use of the file, the client device may identify a local application on the client device based at least on a type of the file. The client device may use the identified local application to access the copy of the file stored on the client device and continue the active use of content of the file.

In some embodiments, the client device may receive, responsive to re-establishing connectivity with the remote computing device, a request to provide the copy of the file accessed at the client device during the disruption to the remote computing device. In some embodiments, the client device may, responsive to determining that the file was accessed during the disruption; the copy of the file to synchronize with a second copy of the file maintained by the remote computing device.

In some embodiments, the client device may, responsive to a rejection of a prompt to continue accessing of the file using the local application, maintain the file in a cache of the client device. In some embodiments, the client device may encrypt the file to restrict access to the file from outside the application and the local application.

In some embodiments, the client device may invoke the local application to access the file, responsive to a selection of the local application on the client device. In some embodiments, the client device may establish a session with the remote computing device to provide a virtual desktop via which the client device is to access the file using the remote application.

Aspects of the present disclosure are directed to systems and methods for synchronizing files accessed during interruptions to connectivity. A remote computing device may provide a file to a client device to store a copy of the file during an active use of the file in which content of the file is accessible by the client device via an application hosted on the remote computing device. The remote computing device may identify a loss in connectivity to the client disrupting the active use of the file via the application. The remote computing device may receive, responsive to the client device re-establishing the connectivity with the remote computing device subsequent to the disruption, the copy of the file accessed by the client device using a local application that is identified based at least on the type of the file.

In some embodiments, the remote computing device may synchronize a second copy of the file maintained by the remote computing device with the copy of the file accessed using the local application, subsequent to the disruption. In some embodiments, the client device may store an encrypted copy of the file to restrict access to the file from outside the application and the local application.

In some embodiments, the remote computing device may provide a virtual desktop via which the client device is to access the file using the remote application. In some embodiments, the remote computing device may receive the file accessed using the local application invoked on the client device, responsive to a selection of the local application on the client device identified as configured to access the file.

In some embodiments, the remote computing device may receive the file from the client device, responsive to determining that the file was accessed at the client device during the disruption. In some embodiments, the remote computing device may monitor the active use of a plurality of files by the client device via the application hosted on the remote computing device.

The features and advantages of the present solution will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference characters identify corresponding elements throughout. In the drawings, like reference numbers generally indicate identical, functionally similar, and/or structurally similar elements.

For purposes of reading the description of the various embodiments below, the following descriptions of the sections of the specification and their respective contents may be helpful:

Section A describes a computing environment which may be useful for practicing embodiments described herein;

Section B describes systems and methods for providing virtualized application delivery controllers; and

Section C describes systems and methods for accessing files during interruptions to connectivity.

A. Computing Environment

Prior to discussing the specifics of embodiments of the systems and methods of an appliance and/or client, it may be helpful to discuss the computing environments in which such embodiments may be deployed.

As shown in, computermay include one or more processors, volatile memory(e.g., random access memory (RAM)), non-volatile memory(e.g., one or more hard disk drives (HDDs) or other magnetic or optical storage media, one or more solid state drives (SSDs) such as a flash drive or other solid state storage media, one or more hybrid magnetic and solid state drives, and/or one or more virtual storage volumes, such as a cloud storage, or a combination of such physical storage volumes and virtual storage volumes or arrays thereof), user interface (UI), one or more communications interfaces, and communication bus. User interfacemay include graphical user interface (GUI)(e.g., a touchscreen, a display, etc.) and one or more input/output (I/O) devices(e.g., a mouse, a keyboard, a microphone, one or more speakers, one or more cameras, one or more biometric scanners, one or more environmental sensors, one or more accelerometers, etc.). Non-volatile memorystores operating system, one or more applications, and datasuch that, for example, computer instructions of operating systemand/or applicationsare executed by processor(s)out of volatile memory. In some embodiments, volatile memorymay include one or more types of RAM and/or a cache memory that may offer a faster response time than a main memory. Data may be entered using an input device of GUIor received from I/O device(s). Various elements of computermay communicate via one or more communication buses.

Computeras shown inis shown merely as an example, as clients, servers, intermediary and other networking devices and may be implemented by any computing or processing environment and with any type of machine or set of machines that may have suitable hardware and/or software capable of operating as described herein. Processor(s)may be implemented by one or more programmable processors to execute one or more executable instructions, such as a computer program, to perform the functions of the system. As used herein, the term “processor” describes circuitry that performs a function, an operation, or a sequence of operations. The function, operation, or sequence of operations may be hard coded into the circuitry or soft coded by way of instructions held in a memory device and executed by the circuitry. A “processor” may perform the function, operation, or sequence of operations using digital values and/or using analog signals. In some embodiments, the “processor” can be embodied in one or more application specific integrated circuits (ASICs), microprocessors, digital signal processors (DSPs), graphics processing units (GPUs), microcontrollers, field programmable gate arrays (FPGAs), programmable logic arrays (PLAs), multi-core processors, or general-purpose computers with associated memory. The “processor” may be analog, digital, or mixed-signal. In some embodiments, the “processor” may be one or more physical processors or one or more “virtual” (e.g., remotely located or “cloud”) processors. A processor including multiple processor cores and/or multiple processors multiple processors may provide functionality for parallel, simultaneous execution of instructions or for parallel, simultaneous execution of one instruction on more than one piece of data.

Communications interfacesmay include one or more interfaces to enable computerto access a computer network such as a Local Area Network (LAN), a Wide Area Network (WAN), a Personal Area Network (PAN), or the Internet through a variety of wired and/or wireless or cellular connections.

In described embodiments, the computing devicemay execute an application on behalf of a user of a client computing device. For example, the computing devicemay execute a virtual machine, which provides an execution session within which applications execute on behalf of a user or a client computing device, such as a hosted desktop session. The computing devicemay also execute a terminal services session to provide a hosted desktop environment. The computing devicemay provide access to a computing environment including one or more of: one or more applications, one or more desktop applications, and one or more desktop sessions in which one or more applications may execute.

Referring to, a computing environmentis depicted. Computing environmentmay generally be considered implemented as a cloud computing environment, an on-premises (“on-prem”) computing environment, or a hybrid computing environment including one or more on-prem computing environments and one or more cloud computing environments. When implemented as a cloud computing environment, also referred as a cloud environment, cloud computing, or cloud network, computing environmentcan provide the delivery of shared services (e.g., computer services) and shared resources (e.g., computer resources) to multiple users. For example, the computing environmentcan include an environment or system for providing or delivering access to a plurality of shared services and resources to a plurality of users through the internet. The shared resources and services can include, but not limited to, networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, databases, software, hardware, analytics, and intelligence.

In embodiments, the computing environmentmay provide clientswith one or more resources provided by a network environment. The computing environmentmay include one or more clientsA-N, in communication with a cloudover one or more networks. Clientsmay include, e.g., thick clients, thin clients, and zero clients. The cloudmay include back end platforms, e.g., servers, storage, server farms or data centers. The clientscan be the same as or substantially similar to computerof.

The users or clientscan correspond to a single organization or multiple organizations. For example, the computing environmentcan include a private cloud serving a single organization (e.g., enterprise cloud). The computing environmentcan include a community cloud or public cloud serving multiple organizations. In some embodiments, the computing environmentcan include a hybrid cloud that is a combination of a public cloud and a private cloud; i.e., the cloudmay be public, private, or hybrid. Public cloudsmay include public servers that are maintained by third-parties to the clientsor the owners of the clients. The servers may be located off-site in remote geographical locations as disclosed above or otherwise. Public cloudsmay be connected to the servers over a public network. Private cloudsmay include private servers that are physically maintained by clientsor owners of clients. Private cloudsmay be connected to the servers over a private network. Hybrid cloudsmay include both the private and public networksand servers.

The cloudmay include back end platforms, e.g., servers, storage, server farms, or data centers. For example, the cloudcan include or correspond to a server or system remote from one or more clientsto provide third party control over a pool of shared services and resources. The computing environmentcan provide resource pooling to serve multiple users via clientsthrough a multi-tenant environment or multi-tenant model with different physical and virtual resources dynamically assigned and reassigned responsive to different demands within the respective environment. The multi-tenant environment can include a system or architecture that can provide a single instance of software, an application or a software application to serve multiple users. In embodiments, the computing environmentcan provide on-demand self-service to unilaterally provision computing capabilities (e.g., server time, network storage) across a network for multiple clients. The computing environmentcan provide an elasticity to dynamically scale out or scale in responsive to different demands from one or more clients. In some embodiments, the computing environmentcan include or provide monitoring services to monitor, control, and/or generate reports corresponding to the provided shared services and resources.

In some embodiments, the computing environmentcan include and provide different types of cloud computing services. For example, the computing environmentcan include Infrastructure as a Service (IaaS). The computing environmentcan include Platform as a Service (PaaS). The computing environmentcan include server-less computing. The computing environmentcan include SaaS. For example, the cloudmay also include a cloud based delivery, e.g., SaaS, PaaS, and IaaS. IaaS may refer to a user renting the use of infrastructure resources that are needed during a specified time period. IaaS providers may offer storage, networking, servers, or virtualization resources from large pools, allowing the users to quickly scale up by accessing more resources as needed. Examples of IaaS include AMAZON WEB SERVICES provided by Amazon.com, Inc., of Seattle, Washington, RACKSPACE CLOUD provided by Rackspace US, Inc., of San Antonio, Texas, Google Compute Engine provided by Google Inc., of Mountain View, California, or RIGHTSCALE provided by RightScale, Inc., of Santa Barbara, California. PaaS providers may offer functionality provided by IaaS, including, e.g., storage, networking, servers, or virtualization, as well as additional resources such as the operating system, middleware, or runtime resources. Examples of PaaS include WINDOWS AZURE provided by Microsoft Corporation of Redmond, Washington, Google App Engine provided by Google Inc., and HEROKU provided by Heroku, Inc., of San Francisco, California. SaaS providers may offer the resources that PaaS provides, including storage, networking, servers, virtualization, operating system, middleware, or runtime resources. In some embodiments, SaaS providers may offer additional resources including, e.g., data and application resources. Examples of SaaS include GOOGLE APPS provided by Google Inc., SALESFORCE provided by Salesforce.com Inc., of San Francisco, California, or OFFICE 365 provided by Microsoft Corporation. Examples of SaaS may also include data storage providers, e.g., DROPBOX provided by Dropbox, Inc., of San Francisco, California, Microsoft SKYDRIVE provided by Microsoft Corporation, Google Drive provided by Google Inc., or Apple ICLOUD provided by Apple Inc., of Cupertino, California.

Clientsmay access IaaS resources with one or more IaaS standards, including, e.g., Amazon Elastic Compute Cloud (EC2), Open Cloud Computing Interface (OCCI), Cloud Infrastructure Management Interface (CIMI), or OpenStack standards. Some IaaS standards may allow clients access to resources over HTTP, and may use Representational State Transfer (REST) protocol or Simple Object Access Protocol (SOAP). Clientsmay access PaaS resources with different PaaS interfaces. Some PaaS interfaces use HTTP packages, standard Java APIs, JavaMail API, Java Data Objects (JDO), Java Persistence API (JPA), Python APIs, web integration APIs for different programming languages including, e.g., Rack for Ruby, WSGI for Python, or PSGI for Perl, or other APIs that may be built on REST, HTTP, XML, or other protocols. Clientsmay access SaaS resources through the use of web-based user interfaces, provided by a web browser (e.g., GOOGLE CHROME, Microsoft EDGE?, or Mozilla Firefox provided by Mozilla Foundation of Mountain View, California). Clientsmay also access SaaS resources through smartphone or tablet applications, including, e.g., Salesforce Sales Cloud, or Google Drive app. Clientsmay also access SaaS resources through the client operating system, including, e.g., Windows file system for DROPBOX.

In some embodiments, access to IaaS, PaaS, or SaaS resources may be authenticated. For example, a server or authentication server may authenticate a user via security certificates, HTTPS, or API keys. API keys may include various encryption standards such as, e.g., Advanced Encryption Standard (AES). Data resources may be sent over Transport Layer Security (TLS) or Secure Sockets Layer (SSL).

B. Systems and Methods for Providing Virtualized Application Delivery Controller

Referring now to, a block diagram of a virtualized environmentis shown. As shown, a computing devicein virtualized environmentincludes a virtualization layer, a hypervisor layer, and a hardware layer. Hypervisor layerincludes one or more hypervisors (or virtualization managers)that allocates and manages access to a number of physical resources in hardware layer(e.g., physical processor(s)and physical disk(s)) by at least one virtual machine (VM) (e.g., one of VMs) executing in virtualization layer. Each VMmay include allocated virtual resources such as virtual processorsand/or virtual disks, as well as virtual resources such as virtual memory and virtual network interfaces. In some embodiments, at least one of VMsmay include a control operating system (e.g.,) in communication with hypervisorand used to execute applications for managing and configuring other VMs (e.g., guest operating systems) on device.

In general, hypervisor(s)may provide virtual resources to an operating system of VMsin any manner that simulates the operating system having access to a physical device. Thus, hypervisor(s)may be used to emulate virtual hardware, partition physical hardware, virtualize physical hardware, and execute virtual machines that provide access to computing environments. In an illustrative embodiment, hypervisor(s)may be implemented as a XEN hypervisor, for example as provided by the open source Xen.org community. In an illustrative embodiment, deviceexecuting a hypervisor that creates a virtual machine platform on which guest operating systems may execute is referred to as a host server. In such an embodiment, devicemay be implemented as a XEN server as provided by Citrix Systems, Inc., of Fort Lauderdale, FL.

Hypervisormay create one or more VMsin which an operating system (e.g., control operating systemand/or guest operating system) executes. For example, the hypervisorloads a virtual machine image to create VMsto execute an operating system. Hypervisormay present VMswith an abstraction of hardware layer, and/or may control how physical capabilities of hardware layerare presented to VMs. For example, hypervisor(s)may manage a pool of resources distributed across multiple physical computing devices.

In some embodiments, one of VMs(e.g., the VM executing control operating system) may manage and configure other of VMs, for example by managing the execution and/or termination of a VM and/or managing allocation of virtual resources to a VM. In various embodiments, VMs may communicate with hypervisor(s)and/or other VMs via, for example, one or more Application Programming Interfaces (APIs), shared memory, and/or other techniques.

In general, VMsmay provide a user of devicewith access to resources within virtualized computing environment, for example, one or more programs, applications, documents, files, desktop and/or computing environments, or other resources. In some embodiments, VMsmay be implemented as fully virtualized VMs that are not aware that they are virtual machines (e.g., a Hardware Virtual Machine or HVM). In other embodiments, the VM may be aware that it is a virtual machine, and/or the VM may be implemented as a paravirtualized (PV) VM.

Although shown inas including a single virtualized device, virtualized environmentmay include a plurality of networked devices in a system in which at least one physical host executes a virtual machine. A device on which a VM executes may be referred to as a physical host and/or a host machine. For example, appliancemay be additionally or alternatively implemented in a virtualized environmenton any computing device, such as a client, serveror appliance. Virtual appliances may provide functionality for availability, performance, health monitoring, caching and compression, connection multiplexing and pooling and/or security processing (e.g., firewall, VPN, encryption/decryption, etc.), similarly as described in regard to appliance.

In some embodiments, a server may execute multiple virtual machines, for example on various cores of a multi-core processing system and/or various processors of a multiple processor device. For example, although generally shown herein as “processors”, one or more of the processors may be implemented as either single- or multi-core processors to provide a multi-threaded, parallel architecture and/or multi-core architecture. Each processor and/or core may have or use memory that is allocated or assigned for private or local use that is only accessible by that processor/core, and/or may have or use memory that is public or shared and accessible by multiple processors/cores. Such architectures may allow work, task, load or network traffic distribution across one or more processors and/or one or more cores (e.g., by functional parallelism, data parallelism, flow-based data parallelism, etc.).

Further, instead of (or in addition to) the functionality of the cores being implemented in the form of a physical processor/core, such functionality may be implemented in a virtualized environment (e.g.,) on a clientor server, such that the functionality may be implemented across multiple devices, such as a cluster of computing devices, a server farm or network of computing devices, etc. The various processors/cores may interface or communicate with each other using a variety of interface techniques, such as core to core messaging, shared memory, kernel APIs, etc.

In embodiments employing multiple processors and/or multiple processor cores, described embodiments may distribute data packets among cores or processors, for example to balance the flows across the cores. For example, packet distribution may be based upon determinations of functions performed by each core, source and destination addresses, and/or whether: a load on the associated core is above a predetermined threshold; the load on the associated core is below a predetermined threshold; the load on the associated core is less than the load on the other cores; or any other metric that can be used to determine where to forward data packets based in part on the amount of load on a processor.

For example, data packets may be distributed among cores or processes using receive-side scaling (RSS) in order to process packets using multiple processors/cores in a network. RSS generally allows packet processing to be balanced across multiple processors/cores while maintaining in-order delivery of the packets. In some embodiments, RSS may use a hashing scheme to determine a core or processor for processing a packet.

The RSS may generate hashes from any type and form of input, such as a sequence of values. This sequence of values can include any portion of the network packet, such as any header, field or payload of network packet, and include any tuples of information associated with a network packet or data flow, such as addresses and ports. The hash result or any portion thereof may be used to identify a processor, core, engine, etc., for distributing a network packet, for example via a hash table, indirection table, or other mapping technique

C. Systems and Methods for Accessing Files During Interruptions to Connectivity

In a networked environment, an enterprise may provide various services, such as virtual applications or desktops, to clients associated with the enterprise. The enterprise may host and maintain resources for these services on a remote server (e.g., a cloud-based service) to facilitate access to the virtual applications and desktops and to provide scalability, security, and ease of access. To access these services, a client may establish a session with the remote server, relying on an active network connection (e.g., the Internet). Through the virtual desktop or application, the client may access files hosted on the remote server. A user of the client may open, read, and edit the files using the virtual applications provided through the session.

In some cases, the network connection may be lost due to various reasons, such as power outage at the client, a breakdown at the network connection provider, or a failure at the remote server, among others. Due to the loss in network connection, the session would be disconnected and the client would be unable to access the virtual desktop or application, or any of the other resources, until the network connection is re-established. As a result, the client would be unable to continue accessing the files previously accessed via the session. The inability to access resources would lead to loss of functionality at the client and remote server, because the virtual desktop and services hosted on the remote server become inaccessible. In addition, there may be loss of data (e.g., loss of changes to a document) from the loss of connectivity, forcing the user to rework to recreate the changes. This would also degrade the quality of human-computer interactions (HCI) between the user and services, as the user may have to wait to access the file once the network connection is re-established.

To address these and other challenges, the files accessed through the session while the network connection is active may be securely stored and maintained on a local cache at the client, so that the files may be accessed when the network connection is lost. In conjunction, the remote server may also keep track and identify files that are accessed and actively used on the client via the session. For security purposes, the files stored and maintained in the cache may be encrypted to prevent entities besides the user of the client or the remote server to access the files. The time interval at which the copy of the file is stored and the synchronized may be configured by an administrator of the remote server. For example, the administrator can set a policy to store or synchronize the file at the set time interval while session is running over the network connection.

When the network connection is lost resulting in a disruption to the session, a virtual driver running on the client may transition to an offline mode. During the offline mode, the virtual driver may also prompt the user of the client whether to continue working on the same files actively used while the connection was active. If the user chooses to continue working via the prompt, the virtual driver may decrypt the file stored on the local cache and may identify a local application capable of opening the file based on a type of the file. If the user chooses not to continue working, the virtual driver may maintain the files stored on the local cache for a defined amount of time, allowing the user to access the file at a later time. The defined amount of time may be set by the administrator of the remote server, and upon expiration of the amount of time, the file may be deleted from the local cache. With the identification, the virtual driver may invoke the local application to access and open the file.

Afterwards, when the network connection is restored, the client may re-establish the session with the remote server. Having kept track of which files were actively being used prior to the loss of connectivity, the client may provide the previously accessed files were by the client during the outage. Upon receipt, the remote server may place the copy of file retrieved from the client in the same location (e.g., file directory) as the original file maintained by the service. The retrieved copy may have the same name with an indicator that the file was retrieved from the client, such as “_offline” suffix added to the name identifying that file was worked on during the disruption. The user of the client may view and select from the two copies of the file via the virtual desktop or application in the session to continue accessing and working on one of the files.

By storing the encrypted files on the local cache, the client may continue to access the previously used files while maintaining security over the files, despite the loss to the network connection and the resultant disruption to the session. In this manner, the client may also alleviate the loss of functionality arising from the inability to access the virtual desktop, application, and other resources hosted on the remote server. Additionally, the HCI between the user and the session would be improved, as the user no longer has to wait to access the file until restoration of the network connection.

Referring now to, depicted is a block diagram of a systemfor accessing files. In brief overview, the systemmay include at least one server(sometimes herein referred to as a remote computing device or remote service) and at least one clientcommunicatively coupled with each other via at least one network. The servermay include at least one session handler(sometimes herein referred to as a server-side virtual driver), at least one file monitor, a set of remote applicationsA-N (hereinafter referred to as remote applications), and at least one remote cache. In some embodiments, the file monitormay be a part of the session handler. The clientmay include at least one virtual driver(sometimes herein referred to as a client-side virtual driver), at least one cache manager, at least one interruption handler, a set of local applicationsA-N (hereinafter referred to as local applications), and at least one local cache, among others. In some embodiments, the cache manageror the interruption handlermay be a part of the virtual driver. In some embodiments, the local cachemay be a part of the cache manageror the virtual driveron the client.

Each of the above-mentioned elements or entities is implemented in hardware, or a combination of hardware and software, in one or more embodiments. Each component of the systemmay be implemented using hardware or a combination of hardware or software detailed above in connection with. For instance, each of these elements or entities can include any application, program, library, script, task, service, process or any type and form of executable instructions executing on hardware of the server(including the session handler, the file monitor, the remote applications, and the remote cache) and the client(including the virtual driver, cache manager, the interruption handler, the local applications, and the local cache). In some embodiments, the servermay be an instance of the deviceas discussed above. The hardware includes circuitry such as one or more processors in one or more embodiments.

Patent Metadata

Filing Date

Unknown

Publication Date

October 14, 2025

Inventors

Unknown

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “Accessing files from virtual desktops and applications during interruptions to connectivity” (US-12445515-B2). https://patentable.app/patents/US-12445515-B2

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.