码迷,mamicode.com
首页 > 其他好文 > 详细

【I am a coder】虚拟应用架构分析

时间:2015-02-11 16:46:20      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:虚拟应用   virtual application   

虚拟应用架构分析

一、概述

        传统的软件应用是用户必须预先在本地安装软件,然后用户才可以使用。虚拟应用(Virtual Application)是一种“软件即服务”的概念,软件部署在虚拟应用服务器,客户端无需在本地安装,在浏览器中通过浏览器插件远程启动应用软件。软件进程运行在应用服务器上,用户是以域账号的身份打开的。

1. 优点

1. 无需安装,即需即用。用户只需要点击图标、链接或者其他形式的启动标识,即可使用该虚拟应用,而传统应用则需要本地安装。

2. 节省资源。软件启动后进程是运行在应用服务器上的,消耗的是应用服务器上的计算资源,对本地客户机的硬件资源需求较少,也可以这么说值需要一个浏览器即可。

3. 节约成本。购买正版软件的授权是很昂贵的,使用虚拟应用则可以很好的解决这一问题,将正版软件部署在应用服务器上发布出去,则可以支持很多用户的同时使用,不再面临软件的授权问题。

2. 缺点

1. 受网络因素影响较大。客户端操作的指令流以及应用服务器端的软件图像流是通过网络来传输的,因此网络环境条件影响虚拟应用使用的流畅度,2M的带宽基本可以满足。

2. 软件发布流程复杂,发布的应用软件必须由管理员在应用服务器上安装部署后才能发布出来。

二、网络架构分析

                                    技术分享  

1. 架构角色说明

1) AD-DC

       域控:域控用于统一管理平台账号,在平台中每创建一个用户会通过ldapWindows域控中添加一个用户,因此该用户就可以登录所有虚拟应用服务器。

2) AD-GW

       网关:网关用来做调到内网的接口,因为客户端需要远程访问所有的虚拟应用服务器,因此需要通过一个入口跳进去,网关就是这样的角色。当前的一种做法就是网关也配置内网地址,在路由器上做一个映射将网关的内网地址映射到外网,这样位于公网上的用户就可以识别到该网关,就可以通过网关跳到内网登陆所有的虚拟应用服务器。

3) DIMSTORAGE

       存储服务器:存储服务器为平台用户提供统一的存储。在平台中每注册一个用户,都会在存储服务器上为用户创建一个私有空间(通过samba进行共享),并设置磁盘配额。当用户通过打开虚拟应用软件时,通过执行登陆脚本将自己的存储自动挂载到虚拟应用软件所在的虚拟应用服务器上,这样用户就可以将使用软件编辑的文件保存在自己的空间中。用户的空间属于私有的,别的用户无法访问。

4) VAMSERVER

       虚拟应用后台管理服务器:虚拟应用后台管理服务器主要负责虚拟应用服务器的管理、软件的发布与管理等。它是虚拟应用使用的关键。

5) PORTAL-SERVER

      门户服务器:顾名思义,门户服务器部署web站点,对外提供web访问入口,并完成主要业务逻辑。门户建站,坚持分站的原则,不同的站点完成不同的功能,各站点间通过对外提供接口来完成通信。例如:用户管理站点,就主要负责用户的管理,其它站点的登录和注册都是跳转到该用户管理站点来完成。

2. 系统运行说明

        首先,用户通过外网访问PORTAL-SERVER上的web站点,点击“注册”会跳转到用户管理中心站点,该站点完成用户数据的入库、LDAPWindows AD-DC域控上添加账号、在DIMSTORAGE上创建用户空间(写samba配置文件)并设置用户磁盘配额,完成上述所有操作,注册流程完成。

其次,用户登录平台,点击某虚拟应用软件,会去请求VAMSERVERVAMSERVER会去检索请求的应用软件都在哪些虚拟应用服务器上进行了部署,然后通过根据当时的系统资源消耗,选择消耗最小的虚拟应用服务器,并将它的机器名返回给请求端。

        然后,请求端回根据相关信息(用户名、密码、机器名、网关等)生成rdp文件,然后通过该rdp文件远程打开应用软件。该过程是通过远程登陆的方式去启动的软件,通过在应用服务器上配置策略,使用户登录时都会执行某一脚本,该脚本通过获取到的信息将用户的存储空间挂载到该应用服务器上,至此,软件打开,在文件浏览器中可以看到挂载的属于用户自己的用户目录。

        最后,用户利用软件进行若干创作,最终将该文件保存到自己的存储空间中,注意:用户无法将创作完的文件保存到本地,因为软件进程是运行在虚拟应用服务器上的,在点击保存时出现的文件位置选择也是虚拟应用服务器上的。

三、应用场景

发布虚拟应用,既可以发布软件也可以发布服务。

发布软件很好理解,就是可以让客户端用户使用软件;而发布服务则可以理解为提供服务,一个应用场景是我当前有一个文件,需要用到某软件进行处理,但是该过程是自动化的,无需我界面进行操作,我只需要提交一个文件即可,然后你最终给我生成的文件。这个过程是用过调用某软件的处理程序完成的,例如某个exe。下面就分别说下这两种方式分别是如何实现的:

1. 虚拟应用软件

发布软件很容易实现,过程略。

2. 虚拟应用服务

        首先,在虚拟应用服务器上部署某类软件,用以将来执行时调用某类子程序完成功能;其次,在DIMSTORAGE存储服务器上单独开辟一个独立的空间,用于存放客户在web门户上传时的文件,然后再将该目录挂载到某虚拟应用服务器上,就可以使用用户提交的文件进行处理了。然后,在应用服务器上,编写守护进程,用来接收用户提交的http请求(webservicesoap),当收到处理请求后就调用软件程序对文件进行处理,最终生成目的文件;最后,将该文件拷贝到用户存储空间即可。

四、展望

        虚拟应用是云中“软件即服务”概念的一种应用方式,具有非常广阔的引用前景。无论是满足何种需求(当然大部分是节约成本着想),虚拟应用都是一种很好的解决方案。

       虚拟应用的使用不单单在PC端可以使用,在AndroidIOS设备上同样可以使用。

【I am a coder】虚拟应用架构分析

标签:虚拟应用   virtual application   

原文地址:http://blog.csdn.net/houqd2012/article/details/43734011

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!