抽象与虚拟化的区别
“抽象”一词的含义根据与其结合使用的周围词语和短语略有不同。从一般意义上讲,抽象提供了一个项目的简化图像,它减少了细节,并从观察者的角度揭示了该项目固有的特征。
假设我们除了 PostgreSQL 数据库之外还有一个 MariaDB 数据库。对其进行抽象的观察可以揭示它与其他系统的一些共同特征,例如数据的表格表示以及数据库客户端可用于与数据库通信的网络接口等。
另一方面,虚拟化提供了一个抽象的环境,程序可以在其中执行。
阅读本文以了解抽象与虚拟化的区别。
什么是抽象?
“抽象”是指向应用程序用户和外部世界隐藏程序内部工作原理的过程。抽象级别用于简化事物的描述。它充当应用程序与其可能正在运行的任何客户端应用程序之间的屏障。
数据抽象和过程/控制抽象是属于“抽象”这个总称的两个类别。数据抽象隐藏了数据的复杂性,而控制或过程隐藏了实现细节。使用面向对象的方法,数据和函数都可以被抽象。
另一方面,面向对象编程 (OOP) 通常涉及创建类,以便数据可以对外部世界隐藏,而函数充当公共接口。也就是说,不属于类的函数可以直接访问类的函数,而构成类的函数则间接访问类的隐藏数据。
抽象的概念对于计算机科学领域和软件开发过程至关重要。抽象过程(也称为建模)与理论和设计概念有着密切的联系。由于模型概括了现实的各个方面,因此它们也可以被认为是抽象。
什么是虚拟化?
虚拟化是使用软件在计算机硬件之上构建抽象层的过程。此层使单个计算机的物理组件(如处理器、内存、存储器和其他组件)能够划分为多个虚拟计算机,也称为虚拟机 (VM)。每个虚拟机 (VM) 都有自己的操作系统 (OS) 并独立运行,即使它仅使用底层真实计算机硬件的一小部分。
云计算建立在虚拟化的基础上,因为它可以更有效地利用真实的计算机硬件。它使公司能够提高其硬件投资的回报率。
目前被认为是企业 IT 架构的标准实践。技术也是云计算经济学的首要驱动力。随着工作负载的增长,云客户可以仅购买他们需要的计算资源,而云服务提供商可以使用他们现有的计算机为客户服务。
抽象与虚拟化的比较
下表突出显示了抽象与虚拟化之间的主要区别 -
比较参数 | 抽象 | 虚拟化 |
---|---|---|
描述 | 它是表达关键特征,同时分别向消费者和开发人员隐藏背景信息的行为。 | 它是各种技术和概念的集合,这些技术和概念的目的是提供一个抽象的环境,程序可以在其中执行。 |
依赖性 | 接口和实现的分隔对于抽象实践至关重要。 | 虚拟化通过模拟硬件的功能使用软件构建虚拟计算机系统。 |
类型 | 数据抽象和过程抽象是属于“抽象”这个总称的两个子类别。 | 虚拟化的类型包括:存储虚拟化、网络虚拟化、数据虚拟化、应用程序虚拟化、桌面虚拟化和服务器虚拟化。 |
重要性 | 它使得可以在后端进行修改,而不会影响位于抽象层中的应用程序的功能。 | 虚拟机允许通过同时运行多个环境来划分或塑造计算机资源。这些环境被称为“虚拟机”。 |
结论
抽象使得可以封装物理实现,以便可以向客户隐藏技术细节。虚拟化使得可以创建任何事物的虚拟表示,包括计算资源、虚拟计算机硬件平台或存储设备。
在处理混乱和复杂性时,请考虑您在虚拟化和抽象方面的选择,但请确保您了解每种选择的优缺点。