摘 要: 提出了一种具有云计算特点的可伸缩的服务器架构,通过采用模块化的方式有效地分割服务功能,能以对用户透明的方式满足三维网络应用的各种存储和带宽的需要。将该方案在一个三维虚拟现实项目中进行测试,结果表明,该方案有较好的伸缩性和效率。
关键词: 网络计算模型; 云计算; 客户/服务器模式; 三维虚拟现实
随着计算机三维动画图形技术的不断发展,三维网络技术受到越来越多的重视。现实世界是三维的,采用三维技术表达信息更加直接,尤其适合那些尚未实现或准备实施的立体创意,借助三维网络技术可使用户提前领略到最终的实施效果。正因为三维动画比平面图更直观,并能给观赏者身临其境的感觉,从而创造全新的人机交互体验。三维技术已经应用于军事、航天、医疗和娱乐领域,并在远程教育、工程设计与制造、网络仿真和电子商务等方面显示出了良好的应用前景。
当前,大部分三维网络应用都采用客户端—服务器(C/S)(或浏览器-服务器(B/S)模式)[1-2]。客户机/服务器系统是两层架构,但随着三维服务器软件系统规模越来越大,功能越来越多,应用业务逻辑复杂并且易变,这样做会有很多缺点,例如冗余代码,不利于重用,不利于分工等。为解决这些问题,通过区分表示层、应用逻辑层和数据访问层,服务器模型进一步演化为多层服务器架构,这样能简化三维软件的开发,但集中式的服务器的访问仍然是系统的性能瓶颈,常常无法满足大规模三维网络应用中用户对响应延迟、下载延迟等要求。
针对该问题,本文提出了一种面向三维数据密集应用的可伸缩服务器架构,它通过区分连接和应用的各个功能,并采用核心通信服务器统一管理服务器系统,从而以一种对用户透明的方式,改善三维应用的整体性能。该系统服务架构由多个部分组成,除了核心通信服务器,其他服务功能在安装的同时,向核心通信服务器进行自动注册,从而根据服务类型对带宽和存储的需求差异,服务提供商具有可以自由地、透明地扩展系统的能力。基于所提出的服务框架,用户只需知道用户连接服务器的地址,就可以透明地访问系统的所有服务,从而在提高服务器性能的同时,实现对用户的透明性。
1 网络服务模型演化
回顾IT产业的发展历程,计算服务经历了从大型机架构,到客户端-服务器架构(C/S),最后到多层服务架构的演化历程[3],如图1所示。20世纪80年代以后,传统的集中式处理和主机/哑终端模式越来越不能适应人们的需要,特别是随着微软微机操作系统的出现,PC进入千家万户,网络互联逐渐成为主流。20世纪90年代后,Internet高速发展,大部分网络服务(如WWW、FTP等)采用客户端—服务器(C/S)或浏览器-服务器(B/S)模式,并进一步演化为多层服务器架构。
客户/服务器架构(C/S)实质就是将数据存取和应用程序分离开来[3],用数据服务器执行数据操作,客户机来执行应用程序,用户在客户端通过网络同服务器打交道。客户端又包括用户界面和企业逻辑,网络上传输的数据主要是客户端向服务器发出的请求以及服务器发给客户端的响应结果或出错信息。
当前,客户服务器模式仍然是市场的主流软件模式,但传统的客户服务器模式优点和缺点并存。
(1)提高了可伸缩性。通过客户端分担服务器端功能,降低服务器端计算开销和通信开销,提高了服务器端支持的客户端数目,因而可伸缩性得到提高。
(2)不利于软件维护。需要在客户端和服务器端同时安装并维护软件功能,如果软件需要更新,常常需要客户端和服务器端分别更新软件,由于通常有大量的客户端,安装麻烦,且易出错,一致性不易保证。
(3)不利于代码重用。随着软件系统规模越来越大,功能越来越多,应用业务逻辑复杂并且易变时,简单的服务器设计,导致冗余代码,不利于重用,不利于分工。
(4)存在性能瓶颈。大量的客户端依赖单一的服务器功能,服务器端常常是性能瓶颈。如果服务器失效,则整个系统软件失败,由于传统的TCP/IP通信机制是一种尽力传输的机制,不能保证QoS可靠性,因而也导致稳定性难以保障。
针对客户端/服务器端架构存在的缺点,人们提出了许多改进方法,其中一种思路是,针对简单的服务器端设计不利于重用和不利于分工的缺点,提出了多层服务器架构。随着面向对象的编程思想流行,人们采用类似细分的方法将传统的客户机/服务器两层架构扩展到3层,甚至更多层。3层架构包括表现层、中间层和数据源层。表现层实现用户界面,中间层实现业务逻辑,在数据源层存取数据。这种方式可以将复杂的领域逻辑从界面中抽离出来,用对象加以建模和组织。由于三维网络应用的特殊性,它通常涉及大量的数据交互,导致服务器的访问仍然是系统的性能瓶颈[4-5]。
2 可伸缩云服务器系统框架
在典型的三维应用实践中,模型下载常常占用大量带宽,当用户增多时,常常导致服务器反应延迟显著增加,用户体验较差。简单地增加服务器,能够改进延迟性能,但导致每个客户端都需要分别为多个服务器进行特殊配置,安装和维护费用激增。调查用户需求表明,用户希望服务器端的变更对客户端是透明的,简化客户端的安装和维护难度。通过分析用户访问服务器的过程发现,用户客户端访问三维服务时,通常要经历登录、模型定位和模型下载等过程,当用户规模大时,用户的模型下载过程常常导致其他用户无法正常登录。为了改善用户访问性能,特别是访问延迟,并保持用户访问的透明性,本文提出了一种具有云计算特点的可伸缩的服务器架构,通过将连接资源虚拟化,区分连接和其他功能需求,以支持三维计算的透明访问需求。
多层可伸缩的服务器框架结构图如图2所示,服务器端包括用户连接服务器(UCS)、核心通信服务器(KCS)、认证计费服务器(CAS)、认证计费服务器(CAS)、内容服务器(CS)、消息服务器(MS)、应用服务器(AS)和中继服务器(PS)。
2.1 用户连接服务器(UCS)
用户连接服务器的主要功能是接收客户端首次连接,并提供客户端对其他服务器的地址查询。为了使客户端总知道如何访问服务器,UCS采用公开地址。当有多种类型的用户终端接入时,如3G或Wi-Fi,则通常可以部署两个服务器,分别具有相应的物理通信接口。
2.2 核心通信服务器(KCS)
整个系统里只允许有一个核心通信服务器,它是系统的根服务器,其主要功能是负责其他所有服务器之间的协调。其他服务器都需要向KCS进行注册,离开或失效时,则由KCS进行注销。KCS维护服务器系统目录,并按照预定策略将客户端请求重定向到特定服务器。为了安全目的,也可以为系统增加备份的KCS服务器,这是可选的。
2.3 认证计费服务器(CAS)
CAS的主要功能是管理用户权限,支持VIP认证。如果用户访问的是收费服务,则对用户的访问和流量进行计费,并支持对其他服务器的用户认证查询功能。
2.4 内容服务器(CS)
CS的主要功能是负责内容管理,所有与服务内容相关的数据信息都存储在CS上,并允许客户端进行下载或对内容信息进行更新。客户端对CS的任何访问都必须得到CAS的认证,以决定是否提供相应服务。
2.5 消息服务器(MS)
MS的主要功能是处理各种系统消息,包括:场景同步消息、内容更新消息、认证通知消息、服务器自动切换和故障通知等。用户登录时,如需要提升权限(如VIP认证),也需要通过MS进行消息管理。
2.6 应用服务器(AS)
AS的主要功能是提供与应用相关的服务,如系统需求配置、公告发布和新功能部署等。
2.7 中继服务器(PS)
为了支持服务器间的负载均衡,管理用户在不同服务器间切换,中继服务器负责重定向连接请求和资源定位。
3 服务器工作流程
从功能上看,所有服务器功能可以安装在同一台服务器设备上,但为了获得最佳性能,每个服务器可以安装在不同设备上,通过KCS管理,确保对客户端的透明性。每个服务器安装后自动向KCS注册,不需要单独配置。可以看出,借助本项目的多层易扩展服务架构,极大地减少了服务器集群的配置工作,并能根据系统负荷容易的增加服务器设备,扩充系统容量。
同样,借助多层易扩展服务架构,客户端访问服务器端的流程也非常直接。客户端的登录流程如下:
(1)用户通过UCS向KCS查询得到一个CS和一个MS的地址;
(2)用户向MS登录(发送VIP认证信息),MS向CAS注册用户成功,为用户分配通行证ID,并将ID返回给用户;
(3)用户使用ID向CS请求访问资源,CS向CAS认证用户ID,并报告资源使用状况,CAS对用户进行计费,若无需计费,则进行日志记录(Log)。
可以看出,整个系统的部署非常简单,考虑了未来业务发展和容量扩展需求,且便于负载均衡,功能非常灵活。多个客户端之间可以通过MS进行交互。用户也可以通过AS方便地发布新的应用。
4 系统性能测试
本文提出的多层可伸缩的服务器架构尤其适合数据密集型应用。为验证本文所提服务框架的可行性及性能,在一个三维虚拟现实原型系统里对所提方法进行验证。
初步演示效果如图3所示,所需管理的服务内容以三维内容为主,特别是模型数据和纹理材质数据,占用存储和带宽最大(包括人物及场景,约4 MB),因而在小规模测试阶段,系统配置了数台内容服务器CS,其他所有服务内容运行于同一台服务器上。
为测试系统的可扩展性能,本文保持系统其他条件不变,改变CS的个数。系统日志(Log)记录每个客户端对服务器的各种访问操作(连接请求、下载完成等)及其时间戳。
用到的性能指标有登录延迟(Login Latency)、定位延迟(Shapebox Latency)及下载延迟(Download Latency)3个。登录延迟指从初次连接请求发起时刻到成功登录之间的时间长度。由于三维虚拟现实应用中通常都采用模型的外包(即Shapebox)确定模型的位置,因此在下载模型前,必须知道模型的外包,以判断模型是否在视野内,是否需要下载。有了外包信息,客户端显示过程中不需要下载所有三维模型数据,而只需要下载当前视野附近的模型即可。模型外包相关的信息成为定位信息,下载定位信息所需的时间长度称为定位延迟。下载延迟则指需要下载的模型从下载请求发出时刻到下载完成之间的时间长度。
图4和图5显示了各个参数指标与CS个数之间的关系,图中显示10次客户端访问的平均值,置信度为90%。结果表明,随着CS个数增加,登录延迟几乎没有变化,这是由于登录过程与CS无关。定位延迟及下载延迟都逐渐减少,这是由于增加的CS分担了已有CS的下载压力,因而总体延迟下降。此外,测试过程还表明,CS的增加过程或减少过程无需重启服务端,而且不会中断客户端的下载,验证了所提服务框架的灵活性和高效性。
本文针对数据密集型应用的服务需求,提出了一种具有云计算特点的服务架构,能够以对客户端透明的方式支持各种服务类型对带宽和存储要求的巨大差异。系统服务架构由多个部分组成,除了核心通信服务器,其他服务功能在安装的同时,向核心通信服务器进行自动注册,从而根据服务类型对带宽和存储的需求差异,服务提供商具有可以自由、透明地扩展系统的能力。
基于所提出的服务框架,用户只需知道核心连接服务器的地址,就可以透明地访问系统的所有服务,从而实现了云计算的最重要特点——透明性。未来进一步的工作是研究服务资源的自动负载均衡机制,以更智能的方式支持更广泛的服务类型需求。
参考文献
[1] COMER D E . Computer networks and internets(international edition)[M]. Prentice Hall International Inc., Upper Saddle River, NJ, 1999.
[2] LEWANDOWSKI S M. Frameworks for component-based client/server computing[J]. ACM Computing Surveys (CSUR), 1998, 30 (1):3-27.
[3] HAYES B. Cloud computing[J]. Communications of the ACM, 2008, 51(7):9-11.
[4] 尹国定,卫红.云计算——实现概念计算的方法[J].东南大学学报:自然科学版,2003,33(4):502-506.
[5] BUYYA R, YEO C S, VENUGOPAL S. Market-oriented cloud computing: vision, hype, and reality for delivering IT services as computing utilities[C]. 10th IEEE International Conference on High Performance Computing and Communica?鄄 tions, HPCC′08, 2008:5-13.