Streaming Windows cloud-based applications through HTML5 is a relatively new domain. But using applications in a browser is only useful if coupled with persistent user storage. How useful can HTML5 applications be if users cannot save persistent data? For this very reason, we created a technology which we call Cloud Drive Virtualization.

HTML5 applications execute on a distant server’s CPU and are rendered through HTML5. There are two traditional ways of coupling storage to remote sessions:

Data storage approach #1: direct access

This is the oldest, simplest method: RDP or HTML5 sessions run on a server which directly has access to the company’s network resources where users can save & load data. This method is convenient for LAN scenarios. However, it is neither practical nor effective when it comes to Internet / cloud / distributed scenarios.

Data storage approach #2: synchronization

This method is about downloading the entire user’s data onto the remote server where applications are to be executed. Much like a roaming profile, the user’s data is first copied onto the local machine, and changes are then synchronized back to the remote (or cloud) storage server. This is the usual method when it comes to Windows platforms. It is also used by some HTML5 products. It comes with some inherent flaws:

  • Efficiency: copying the entire user’s data between servers before each session begins is inefficient both in terms of network traffic and storage. Nowadays storage is counted in Terabytes. Providers like Google, Dropbox and OneDrive offer 1 TB of cloud storage at only a few dollars a month. Assume you have just 50 users – it’s easy to do the math of how much traffic needs to go back and forth between the HTML5 server and storage servers each time a user starts a session. If you plan on hosting your HTML5 server at a cloud provider, take into account additional network costs. Additionally, consider how much space capacity is required on each HTML5 server.
  • Security: cloud storage providers are putting in place tremendous resources for securing their users’ data. Downloading users’ data to a remote-execution HTML5 server effectively reduces the security of that data, becoming the weakest link in the security chain – the easiest target for hackers (arguably easier than aiming at highly-secured datacenters such as Dropbox’s). Do users truly want to see their cloud data downloaded to HTML5 server, increasing their surface of attack?
  • Startup speed: perhaps a detail but not negligible, the time required for downloading the entire user’s data is one more barrier to adoption. Waiting additional time for HTML5 sessions to be “data-ready” may seem quite long for users.

The Cameyo approach

Cloud drive virtualization gives you access to your cloud data without the stated disadvantages. During HTML5 sessions, a virtual storage folder is displayed inside the Desktop folder:

When you enter this folder from a virtual application (for example during File | Open dialogs), your cloud storage is accessed behind-the-scenes and provides the file listing and information to the application as if it were a local Windows folder. Thus the application sees the folder’s contents as if they were local, while in fact its contents are fetched in real-time and simulated to the application. But the file’s contents are not yet downloaded to our HTML5 server. Then, you choose to open any of the files inside (e.g. for viewing / editing it), this is when your cloud drive files are actually copied into the execution server. You can then work on them and any modification will be synchronized back to your cloud drive.

Distant storage appears as a local directory:

How does it work?

Storage virtualization is accomplished thanks to file-system virtualization engine. As you may already know, application virtualization engine generates a 2-way view for virtual applications: the local file-system merged with the virtual application’s files. When running in the HTML5 environment, our engine now generates a 3-way view, combining the local file-system, the virtual application’s files, and your cloud storage.

When your HTML5 session is finished, any cloud files we downloaded are destroyed. In fact any data generated during your session is erased.

This technology is available to Cameyo users for free, both in our cloud and on-premise HTML5 servers. You can add several cloud drives at the same time. The currently supported providers are Dropbox and Google Drive.