In the following article, we’ll compare the virtualization and client/server architecture and reflect on the core differences amongst the two concepts.
1. Client/Server Architecture
The client-server architecture is a network type of design in which each of the devices connected to a network is satisfying either a function of a client or that of a server.
The following diagram outlines the Client/Server Architecture design:
The server is a dedicated device that can realize a variety of different roles.
The client, on the other hand, is typically the desktop or a laptop workstation on which user can run the software application(s). It’s significant to note that clients do not count on the servers just for the resources they provide, but sometimes also depend on their processing power.
McCormack (2010) observes that the most common network server roles are as follows:
- file server (network storage)
- print server (manages printers)
- the communication server (handles everyday communication tasks, such as email, fax, remote access, etc.)
- the application server (application hosting)
- database server (database management)
- domain server (authentication and authorization)
2. Virtualization Architecture
During early 1960’s, IBM started the development of the virtual system designed for mainframes, and that was the first time we became aware of the concept of virtualization.
So, what is virtualization? In general, it is “the process of recreating a virtual hardware or software environment by emulation on top of a real system. “ (Nanda, S., and Chiueh, T.-C., 2005). Haque & Islam (2016) states that virtualization of hardware and computing resources is one of the fundamental building blocks of cloud computing and that the use of virtualization has emerged mainly due to the increased popularity of cloud computing.
Nowadays, the field of virtualization covers the wide-ranging area, which contains network virtualization, desktop virtualization and also client program virtualization.
We recognize two primary types of virtualization architectures:
2.1 Hosted Virtualization Architecture
As we can see in Diagram 2 (above), in hosted architecture, we have a hypervisor virtualization layer activated on top of hardware and host operating system. In other words, the Virtual Machine Monitor (VMM hypervisor) is a software installed on the operating system of a client computer. In hosted virtualization architecture, hypervisor facilitates the installation of additional guest operation systems or virtual machines. “Applications are then installed and run on the virtual machines in the same way as on a physical machine.” (Ipswitch, 2016).
Following is the list of hypervisor software that became widely recognized by the people working in IT industry, these are Oracle VirtualBox, Microsoft Virtual Server, Parallels, VMware and Windows Virtual PC. These platforms are also very popular among Internet users and the general public because most of the time they’re licensed as free software under GNU license. VirtualBox is one of the most popular solutions in this space; it’s capable of loading numerous guest operating systems within a single OS. “Each guest can be started, paused and stopped independently within its own virtual machine (VM). The user can independently configure each VM and run it under a choice of software-based virtualization or hardware assisted virtualization if the underlying host hardware supports this.” (VirtualBox, 2016)
Diagram 3 (below) depicts the typical scenario in which the client’s host operating system is capable of hosting applications installed on the native OS, as well as fully virtualized copy of a guest operating system, which in turn is capable of hosting its applications. In this architecture, a single computer can become a host to many different virtual environments and this process is only limited by the memory, storage and computing resources available to host machine.
2.2 Bare Metal Virtualization Architecture
In bare-metal architecture, we see the VMM (hypervisor) configured on the hardware instead of being installed directly onto the primary operating system. Virtual machines and their applications are installed on the hypervisor in the same way we installed them in the hosted architecture. However in bare-metal architecture hypervisor (virtual view manager) is externalized. It means that it’s configured on top of dedicated hardware (typically a bare-metal server) in the data center, and thus it does not require a layer of the operating system (as we’ve seen earlier in hosted virtualized architecture).
Diagram 4, depicts the typical scenario in which the client’s host operating system is capable of hosting applications using the bare-metal virtualization architecture:
3. Advantages and Disadvantages
To analyze the pros and cons we need to look at the particular need of the end user.
As we can see from the architecture diagrams above, one of the distinct advantages of the bare metal design is its speed and efficiency. It is due to operating system setup being only two levels above the physical hardware. As Rohrer (2008) states, some other advantages to bare metal are the scalability, enterprise features, and high data center availability. Disadvantages of bare metal solutions are that they’re not going to be free, and they do not run on user workstations. Meaning, that “hosted virtualization architecture is more useful for software development, running legacy applications, and for supporting of different operating systems” (Ipswitch, 2016).
“Virtualization essentially means to create multiple, logical instances of software or hardware on a single physical hardware resource” (Site, I., 2012). This benefit alone destines the virtualization technology for use by hosting companies and data centers. For example, the server hosting companies always specialized in hosting of mainly physical hardware. Now that the software and hardware virtualization is possible and a common place, we will see the trend of virtualization pushing further as the industry leaders will further specialize in the use of virtualization architecture.
Nanda, S. and Chiueh, T.-C. (2005) A survey on Virtualization technologies. Available at: http://www.ecsl.cs.sunysb.edu/tr/TR179.pdf (Accessed: 22 August 2016).
Haque, S.A., Islam, S. (2016) ‘An architecture for client virtualization: A case study’, Computer Networks, 100, pp. 75–89. doi: 10.1016/j.comnet.2016.02.020.
McCormack, G. (2010) Types of network server. Available at: http://www.sqa.org.uk/e-learning/HardOSEss04CD/page_33.htm (Accessed: 22 August 2016).
Ipswitch (2016) Virtualization architecture best practices. Available at: https://www.ipswitch.com/resources/best-practices/virtualization-architecture (Accessed: 23 August 2016).
Virtualization (2016) in Wikipedia. Available at: https://en.wikipedia.org/wiki/Virtualization (Accessed: 21 August 2016).
Rohrer, J. (2008) Bare metal vs. Hosted OS virtual solutions. Available at: https://citrixxperience.com/2008/02/19/bare-metal-vs-hosted-os-virtual-solutions/ (Accessed: 23 August 2016).
Site, I. (2012) Virtualization: Why do we need it?. Available at: http://insights.wired.com/profiles/blogs/virtualization-why-do-we-need-it#axzz4IBWH7NX1 (Accessed: 23 August 2016).
VirtualBox (2016) in Wikipedia. Available at: https://en.wikipedia.org/wiki/VirtualBox (Accessed: 24 August 2016).