从软件托管战略角度理解应用虚拟化

日期: 2009-06-29 作者:Tom Nolle翻译:王越 来源:TechTarget中国 英文

目前,仍然有相当一部分企业还没有完全采用最灵活的软件托管战略之一——应用虚拟化。当然这也是合情合理的,从成本节约框架来讲,采用应用虚拟化技术是最难以把握的。   很多软件既没有安装在用户自身的系统上,也没有在客户端或服务器模式中的服务器上运行。然而,客户端或服务器应用程序可能会有性能问题,另外随着配置参数和注册表参数的不断增多和可能会与本地库文件产生冲突,以及中间件越来越相似,本地软件的安装工作也变得相当复杂。

对于很多公司来讲,简单地按顺序保持运行桌面应用的系统上所有的公司软件需求是技术支持部门的工作。   应用虚拟化可以使用一种客户端/服务器、两步流程的方法解决这些问题。这个是好消息,坏消息……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

目前,仍然有相当一部分企业还没有完全采用最灵活的软件托管战略之一——应用虚拟化。当然这也是合情合理的,从成本节约框架来讲,采用应用虚拟化技术是最难以把握的。

  很多软件既没有安装在用户自身的系统上,也没有在客户端或服务器模式中的服务器上运行。然而,客户端或服务器应用程序可能会有性能问题,另外随着配置参数和注册表参数的不断增多和可能会与本地库文件产生冲突,以及中间件越来越相似,本地软件的安装工作也变得相当复杂。对于很多公司来讲,简单地按顺序保持运行桌面应用的系统上所有的公司软件需求是技术支持部门的工作。

  应用虚拟化可以使用一种客户端/服务器、两步流程的方法解决这些问题。这个是好消息,坏消息是这个流程不太容易理解。其中部分原因是因为像IT产业的很多术语一样,“应用虚拟化”被赋予过多的含义了。

  最直观地来看,提到虚拟化的应用程序,就会认为是一个宿主在某个平台上的虚拟服务器。然而实际上是由于中间件存在的问题,这个情况不太可能出现。应用程序在操作系统和物理平台上运行,但是也使用到其它系统软件工具,如通信系统工作、数据库访问工具和图形用户界面等。比如,如果有一个用在Windows平台上的应用程序,需要在Linux平台上运行,就需要一个复杂的应用程序中间件集合,即所谓的“动态链接库(DLL:Dynamic Link Libraries)”;同样,如果试图在Linux平台上运行Windows DLL,也会遇到兼容性问题和相当多的性能问题。

  当前很多应用程序虚拟化都基于双元素模型——一个客户端或者目标系统和一个宿主系统。宿主系统用来运行应用程序,有时也用来通过称作“sequencing”的进程构建所谓的“应用程序包(Application Package)”。在应用程序组件装载和运行的时候创建一系列“机器镜像”,这样的话就可以在创建镜像时保证注册表参数和配置参数都已经得到了处理。在使用应用程序的时候,这些应用程序组件就可以“流向”客户端系统。

  由于这些镜像已经和注册表参数和配置参数无关了,所以在客户端就只需要一个兼容的应用程序接口(API)来提供操作系统正常运行所需要的机器镜像集合和中间件接口。在理论上,这就是整合应用程序和不兼容的软件、甚至硬件的原因。只要客户端系统能够模拟宿主系统的执行环境,任何程序都可以正常运行。但是在大多数情况下,为了保证应用程序的可用性最大化,硬件平台(x86)和软件操作系统(Windows)最好能够相同。

  应用虚拟化的最大好处就是排除了配置上不兼容的常见问题,尤其是和注册表或者配置数据不兼容问题。很多公司都有应用程序和配置变量不兼容或者完全相冲突的问题,此时找到合适的应用程序就是主要问题了。应用程序虚拟化也能够辅助完成系统保护,因为不会使用受到破坏的系统库文件——流线化应用程序是独立的。

  这个方法的问题出在难以对应用程序序列化,序列化可以从轻微不方便到高度复杂性。如果不打算广泛使用应用程序虚拟化技术的话,可能就没有必要花费精力序列化应用程序。另外一个需要考虑的问题是很多应用程序要么根本就没有次序,要么就是序列化之后就不能再正常运行。最好是有一个需要虚拟化的应用程序完整目录,在使用“序列化”这个概念之前,检查这些应用程序与“序列化”和“流线化能力”的兼容性。

  对于跨一种操作系统多个版本的应用程序虚拟化,在业界的经验非常有限,因此需要考虑到即将发布的Windows 7的部署。知道虚拟化以何种方式支持新操作系统非常重要,开发人员在正式版本发行的较长一段时间会公布一个预发布版本,用来提供过渡时期的体验。为了安全起见,有必要考虑在任何操作系统的早期版本下所做的应用程序序列化和流线化工作都有可能在新的操作系统下必须重新序列化,并且宿主和目标或者客户端操作系统也必须相同。

  应用程序虚拟化是有潜力价值的强大工具,并且一天天变得越来越成熟、越来越功能化、也越来越有用。该项技术也应该是任何一家企业在操作层节支的重要手段,并且需要留意技术方面的不断演进。

翻译

王越
王越

相关推荐