A Client-Side Virtualization (CSV) architecture for implementing a method of client-side virtualization using differential synchronization and closed computing, wherein the CSV architecture can be one of an architecture for a service consumer or a service provider, the CSV architecture comprising:
- a virtual desktop infrastructure (VDI) server;
- a virtual mobile infrastructure (VMI) server;
- a CSV client, configured to save user data, an application image, a virtual machine (VM), and a virtual machine monitor (VMM), wherein the CSV client includes:
- a client hardware, configured to implement a BIOS initialization process;
- a client manager, configured to use bi-directional image synchronization to synchronize image between the CSV client and a CSV server;
- and a VDI/VMI client, configured to interact with the VDI/VMI server via a remote desktop protocol;
- the CSV server, comprising a server manager, server virtualization components, server hardware and server storage devices, wherein the server storage devices are configured to save user data, an application image, a VM image, and a VMM binary code;
- wherein the CSV client and the CSV server use a layered architecture, both the CSV client and the CSV server further including:
- user application data and system data, a user application, a company application, an operating system, a repository system, a cache system, and a network connection;
- wherein the BIOS initialization process of the CSV client comprises:
- during BIOS initialization, writing the VMM binary code to a loadable area;
- after the BIOS initialization is completed, starting the VMM;
- using the VMM to upgrade, reset, and switch a guest OS, download the VM image from the CSV server, and upload the VM image to the CSV server for synchronization purpose;
- and
- using the VMM to revert guest OS of a client VM, and switch guest OS amongst multiple OS candidates;
- wherein the bi-directional image synchronization further comprises:
- forming the application image by image decomposition, and forming the operating system image by image composition;
- after a user session for a user associated with the CSV client starts, if the CSV client for the user is offline, then the CSV client gets a read-only golden image and starts creating an image differential, and if the CSV client for the user is online, resources are read/written with the image differential using a differential algorithm;
- and
- the bi-directional image synchronization uses a streaming protocol;
- wherein forming the application image by image decomposition includes creating a compressed file of differentials which includes detected system information but excludes the golden image;
- wherein forming the operating system image by image composition includes:
- decompressing the compressed file resulting from image decomposition, and then adding other detected system information and other files, excluding the golden image, into the golden image of the client VM;
- if the user of the CSV client belongs to a same user group, the client VM uses an upcall and a broadcast function at a server-side VMM to perform image composition;
- and
- during image composition, if the server-side VMM supports Linux and a guest OS is Windows, the procedures to handle Windows virtual application image are:
- first transform a read/write of composed file into the read/write of disk sector, then transform the read/write of disk sector into read/write of a Linux qcow2 file.