What Is Abstraction?
Abstraction is the process of hiding the internal details of an application from the outer world. Abstraction is used to describe things in simple terms. It is used to create a boundary between the application and the client programs.
Abstraction can be of two types, namely, data and process/control abstraction. Data abstraction means hiding the details about the data and control/process means hiding the implementation details. In object-oriented approach, one can abstract both data and functions. However, generally, the classes in OOP are defined in such a way that data is hidden from the outside world and the functions form the public interface. That is, the functions of the class can be directly accessed by other functions outside the class and the hidden data can be accessed indirectly with the help of these functions.
Abstraction in general is a fundamental concept in computer science and software development. The process of abstraction can also be referred to as modeling and is closely related to the concepts of theory and design. Models can also be considered types of abstractions per their generalization of aspects of reality.
What Is Virtualization?
Virtualization uses software to create an abstraction layer over computer hardware that allows the hardware elements of a single computer- processors, memory, storage and more-to be divided into multiple virtual computers, commonly referred to as virtual machines (VMs). Each VM runs its own operating system (OS) and behaves like an independent computer, even though it is running on just a portion of the actual underlying computer hardware.
Virtualization enables more efficient utilization of physical computer hardware and is the foundation of cloud computing. It generally allows a greater return on an organization’s hardware investment.
Today, virtualization is a standard practice in enterprise IT architecture. It is also the technology that drives cloud computing economics. Virtualization enables cloud providers to serve users with their existing physical computer hardware; it enables cloud users to purchase only the computing resources cost-effectively as their workloads grow.
Difference Between Abstraction And Virtualization In Tabular Form
BASIS OF COMPARISON | ABSTRACTION | VIRTUALIZATION |
Description | It is the act of representing essential features while hiding the background details from users and developers. | It is an aggregate of technologies and concepts that are intended to provide an abstract environment to run applications. |
Use | It allows abstraction of the physical implementation to hide technical details from consumers. | It allows creating a virtual version of something, including computer resources, virtual computer hardware platform and storage devices. |
Importance | It allows changes to be occurred in the backend without affecting functionalities of the applications in the abstraction layer. | Computer resources can be divided or shaped by multiple environments simultaneously, which are known as virtual machines. |
Reliance | Abstraction relies on the separation of interface and implementation. | Virtualization relies on software to simulate hardware functionality and create a virtual computer system. |
Types | There are two types of Abstraction: Data Abstraction and Process Abstraction. | Types of virtualization include: Network virtualization, Storage virtualization, data virtualization, desktop virtualization, application virtualization and server virtualization. |