引言
近年来,云计算无疑是最热门的技术话题之一,云计算技术是IT产业界的一场伟大的技术革命,已经成为了IT行业未来发展的方向。在云计算环境下,虚拟化理念得到了前所未有的普及,通过虚拟化可以为应用提供灵活可变、可扩展的服务,它将应用程序以及数据,在不同的层次以不同的面貌加以展现,从而使得不同层次的使用者、开发人员及维持人员,能够方便的使用存储的数据和应用程序。随着智能终端的发展,随时随地方便的应用成了企业或用户的终极目标,所以加速着应用虚拟化技术的快速发展。当前应用虚拟化以崭新的架构和强大的功能,突破了应用的瓶颈问题,满足了巨大而迫切的市场需求。
云计算将虚拟化和SaaS结合在一起,为部署定制和商业应用创造了一个灵活的并且可扩展的环境,实现了按需定制和现收现付的访问模式。SaaS是云计算上的应用表现,云计算是SaaS的后端基础服务保障,作为一种在21世纪开始兴起的创新的软件应用模式,SaaS是软件科技发展的最新趋势。今天的SaaS,大家谈论基本上是基于浏览器的应用,能够满足各种应用的需求,而正是由于浏览器方式的限制,导致很多saas不能提供更为丰富的应用服务,而且通过浏览器访问使得SaaS应用的实现过程过于缓慢等缺点,而应用虚拟化正好解决了这些缺点,所以得到了业界很大的重视。
1 云计算及其虚拟化技术
1.1 云计算
1.1.1云计算的定史和特点
云计算是分布式处理(Distributed Computing)、并行处理(Parallel Computillg)和网格计算(Grid Computillg)的延续和发展,或者说是这些计算机科学概念的商业实现。它不完全是计算,也不纯粹是存储,而是集计算和存储于一身,将服务器、网络、应用程序以及数据库等各种资源通过互联网为用户提供综合服务的一种理念。云计箅环境具有以下特点:数据安全可靠、客户端需求低、高灵活度、超大计算能力资源等。
1.1.2云计算服务层次
典型的云计算分为三个基本层次:基础设施层、平台层、应用层,每一层都可以单独为用户提供服务,进而出现了三种不同的云服务类型:基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS),根据所提供服务的类型划分层次的云计算,其层次足可以完全分开的。也就意味着层次中的某一层可以不依赖于其他层单独完成相应的用户请求。图1所示的是云计算的服务层次及相应的服务。
图1 云计算的服务层次划分
1.1.3云计算技术层次
云计算中所使用的技术主要是基于云计算系统所持有的属性及系统设计需要来划分云,它说明了软硬件资源在云计算中的具体功能。云计算可分为:物理资源,虚拟化资源,系统管理和服务接口四个部分,所以云计算的关键技术主要包括:虚拟化技术,并行编程模型,海量数据分布存储技术,海量数据管理技术和云平台管理技术等。
1.2虚拟化技术
1.2.1应拟化技术概述
云计算中的核心技术就是虚拟化,可以说虚拟化是云计算区别于传统计算模式的重要特点。采用虚拟化可以将应用程序的整个执行环境以打包的形式转到云计算平台中的其他节点处,实现了程序的执行环境与物理环境的隔离,使得应用程序的环境改变变得易于实现。正是由于虚拟化技术的成熟和广泛应用,云计算中的计算、存储、应用和服务都变成了资源,这些资源可以被动态扩一展和配置,云计算最终才能在逻辑上以单一整体的形式呈现。随着虚拟化技术的不断发展,虚拟化概念巳经延伸到IT技术的多个层面,目前的虚拟化技术主要包括:完全虚拟化、准虚拟化、操作系统层虚拟化、硬件虚拟化、应用虚拟化等。
1.2.2虚拟化技术在云计算环境中的应用
云计算环境的特征体现在虚拟化、分布式和动态可扩展。虚拟化是它的主要特点,通过虚拟平台进行管理、扩展、迁移、备份,这些操作都通过虚拟化层次完成。很多软件和硬件可以把各种IT资源、软件、硬件、操作系统和存储网络等要素都进行虚拟化,放在云计算平台中统一管理。虚拟化技术打破了物理结构之间的壁垒,代表着把物理资源转变为逻辑可管理资源的必然趋势。未来的资源将透明地运行在各种物理平台上,资源的管理都按逻辑方式进行,完全实现资源的自动化分配,而虚拟化技术则是实现这一理想的唯一工具。虚拟化技术的统一底层基础构架、统一标准化、统一管理手段三个特征,极大推动了云计算平台的发展,可以说虚拟化是云计算的前提,云计算是虚拟化的最终目的。
2 应用虚拟化
2.1应用虚拟化的概念
SaaS和云计算作为近几年IT界讨论的热点,它们之间存在着重要的关系,saaS是云计算上的应用表现,云计算是SaaS的后端基础服务保障。SaaS是一种以互联网为载体。以浏览器为交互方式,把服务端的程序软件传给远程用户来提供软件服务的应用模式。也就是说如今的saaS,大家谈论基本上就谈论的是基于浏览器的应用,而正是由于这种方式的限制,导致很多SaaS不能提供更为丰富的应用服务,而且在此模式下saaS应用的实现过程过于缓慢等,基于以上的缺点,应用虚拟化应运而生,应用虚拟化的出现,解决了信息化的困惑,必将为信息化建设的推进奠定划时代的意义。
应用虚拟化用于提供对集中化应用资源的多用户远程访问,从而将应用作为一种服务交付给用户。其基本原理是:分离应用程序的计算逻辑和显示逻辑,即界面抽象化,而不用在用户端安装软件。当用户访问虚拟化后的应用时,用户计算机只需把用户端人机交互数据传给服务器端。服务器端会为用户开设独立的会话来运行应用程序的计算逻辑,并把处理后的显示逻辑传回用户端,从而使得用户获得如同在本地运行应用程序一样的体验感受。虚拟化原理如图2所示。
图2 应用虚拟化原理
国内外有不少科研机构已经开展了一些云计算环境下应用虚拟化方面的研究,一些IT厂商纷纷推出了各自的应用虚拟化产品,如:Vmware TninApp、Cjtrix XenApp和MicmsoftApp-V等,但总体宗旨都是将应用程序的应用界面和实际应用分开,在用户访问服务器发布的应用时,在服务器上会为用户开设独立的会话,占用独立的内存空间,应用程序的计算逻辑指令在这个会话空间中运行,应用程序的界面会通过协议传送到用户计算机上,用户计算机只需要通过网络把键盘、鼠标及其他外设的操作传送到服务器端,从服务器端接收变化的应用程序界面,并且在用户端显示出来就可以获得在本地运行应用一样的访问感受,最终实现用户客户端使用人员不受终端设备和网络带宽的限制,在任何时间、任何地点、使用任何设备、采用任何网络连接,都能够高效、安全地访问服务器上的各种应用软件。
2.2 应用虚拟化的优势
把应用程序从操作系统解放出来,使应用程序不受用户端计算机环境变幻等带来的影响,带来了极大的机动性、灵活性、IT效率以及安全性和控制力。从用户角度而言,用户无需在自己的计算机上安装完整的应用程序,也不受自身有限的计算条件的限制即可获得极高的用户体验。应用虚拟化在云计算环境中的应用比基于浏览器的应用会更有效、快速地推动SaaS时代的到来,它具有以下几点优势:
(1)应用虚拟化可以实现基于浏览器方式无法实现的应用,让SaaS应用更丰富。从而提供更多的应用给用户。
(2)应用虚拟化可以以最快的速度实现SaaS,比如:要改写当前的成熟应用,使用浏览器编程,会遇到大量的问题,除了内在逻辑,还有大量的优化,而使用应用虚拟化,无须重写应用,就可以直接将现有应用转变为SaaS模式,这也是为什么运营商对使用应用虚拟化技术实现SaaS非常有兴趣的原因之一。
(3)虚拟的应用使用和操作都与原来应用没有任何差别,用户体验没有任何变化,所以更容易成功被接受。
(4)可以在同一台计算机上运行不同版本的应用程序[2],透过应用虚拟化,使用者可以在相同的机器上运行不同版本的相同软件。
(5)应用虚拟化对于终端的广泛支持也会进一步推动其成功,其需要满足一定条件的设备即可,包括电视、pc和瘦客户端等,而并不需要终端必须运行浏览器。
2.3 应用虚拟化的模式研究
在应用虚拟化的研究过程中,有必要对应用虚拟化的模式问题进行相关研究,也就是研究如何从实体的应用得到抽象的、用户理解的虚拟化应用,以及什么样的实体应用可以虚拟化为目标虚拟化应用。我们把实际的、物理执行的应用系统或应用软件称为实体应用(EA),而把用户调用的虚拟化以后的应用称为虚拟化应用(VA)。一方面,实体应用到虚拟化应用的过程相当于一个映射,这个过程首先需要一些基础条件的支持,如虚拟化计算、存储和虚拟操作系统等,最终实现一个虚拟化应用的运行环境;另一方面,这个虚拟化过程需要若干模型的支持,包括实体应用关系的描述、实体与虚拟化应用映射关系的描述、以及虚拟化范式,以确定哪些实体应用可以虚拟化为特定的虚拟化应用;在该系统支持下,实体应用与虚拟化应用之间可以存在一对一、一对多、多对一、多对多等多种虚拟化模式,以满足实际业务的需求。最终,应用软件或应用系统经 过虚拟化过程,可以以一种透明的方式提供给用户使用。
从实体应用到虚拟化应用的映射关系角度考虑,主要有四种虚拟化模式,分别是单一映射虚拟化模式(a)、拆分虚拟化模式(b)、组合虚拟化模式(c、d)和复杂虚拟化模式(e)。图3给出了主要的应用虚拟化模式。
图3 主要的应用虚拟化模式
3 应用虚拟化需要重视的问题
任何技术从萌芽到成型,再到成熟,都需要经历一个过程。应用虚拟化技术在云计算环境中的应用作为一项有着广泛应用前景的新兴前沿技术,处在成型阶段的它,也面临着一些问题。
首先是可用性问题。应用虚拟化会有集中存储在一个地方,使用者透过网络下载,所以在架构设计上,必须考虑网络的负载,以及使用者的并发量;此外,应用虚拟化由于本身的技术框架的限制,并不是每个应用程序均可以进行虚拟化,所以必须考虑其虚拟化之后的可用性问题。
其次是安全问题。使用者对于应用虚拟化只有使用的能力,安全性的管理还是由管理员负责,管理员除了管理一些常用的应用设置外,还需要考虑到对于企业的机密软件是否允许使用者离线使用,避免在公司的网络环境外让有心人士轻易地泄露公司机密。而且在云计算复杂的网络环境下,对于原本就病毒、木马、黑客满天飞的互联网,让架于云计算环境之上的应用虚拟化的安全问题进一步加深。当然,由于虚拟过的应用程序是在虚拟的执行空间运行,所以在一定程度上可以避免恶意软件或者病毒的攻击。
4 结语
云计算作为互联网全球统一化的必然趋势,其统一虚拟的基础设施平台,方便透明的上层调用接口,计算信息的资源共享等特点完全是在充分考虑了各行各业的整合需求下才形成的拯救互联网的诺亚方舟。尽管,目前应用虚拟化还处在探索测试的阶段,但相信随着云计箅的发展以及应用虚拟化的日趋成熟,该技术必会给云计算的发展带来伟大的变革。本文围绕云计算环境下应用虚拟化的问题研究总结了应用虚拟化的原理、优势,提出单映射、拆分映射、聚合映射、复杂映射四种主要的应用虚拟化映射模式,为构建虚拟化应用提供了实践经验支持。