ccidnet????

出版日期:2004-07-05 总期号:1327 本年期号:48

本期导读
要闻综合
中国信息化
网络与通信
软件与服务
产品与应用
渠道与市场
华东专刊
华南专刊
西北专刊
西南专刊
一种新的NC应用架构

余宏亮 沈美明 郑纬民

  本文首先对计算模式的发展进行了研究,在回顾了以往NC运行模式和存在的问题后,提出了一种新的NC应用架构,使得在保持NC原有优势的前提下,缩小了NC和普通PC的差异,增加了其实用性。本文对该架构在具体实现中的一些问题进行了探讨。

  随着计算机网络技术的发展,网络速率不断提高,覆盖范围不断扩大,网络相关应用和设备也得到迅速发展。网络计算机(NC)在这种大背景之下也应运而生,并在上世纪90年代末一度成为业界的热点。然而,随着Internet的退潮,NC也逐渐淡出了大多数人的视野。但在近年来,随着国内CPU和嵌入式系统方面研发工作的广泛深入开展,使得作为其重要应用产品之一的NC又一次走到了前台。


  图1 计算模式的变迁

  

  本文将首先回顾计算机技术发展所带来的计算模式的变化,并在此基础上对以往的NC实现进行探讨,并随之提出一种新的NC应用架构,以及其实现中的一些问题。

  计算模式的发展

  要想对NC区别于普通PC的特点进行详细了解,我们就必须回顾整个计算模式的发展历程。

  最早的计算机系统被称为主机系统(MainFrame),它实际上是一个带有众多终端的大型计算机。在这样的系统当中,系统资源和数据的控制都是集中式的,这样可以保证较高的控制效率,然而,以此对应的是,用户无法轻易对应用程序进行修改以适应其不断变动的需求。

  随后,PC和工作站系统取代了主机系统,并得到广泛应用。这些系统都拥有自己独立的计算和存储资源,可独立工作,但系统的可伸缩性较差。

  网络技术的发展为解决PC系统的可伸缩性问题提供了良好的平台,在它的支持下,网络计算系统逐渐成为了广泛得到应用的一种主流计算模式。通过众多以网络相联系的主机的配合,使得我们可以实现许多新的应用服务,比如E-mail、Ftp、Web、网络存储器、网络打印等。

  NC技术的发展及问题

  毫无疑问,NC是网络计算模式发展的产物。最早的NC是由Sun和Oracle这一类的公司所提出来的,它实际上是一套被设计成一个可以运行Java的硬件平台。这类的NC系统完全依靠网络来下载其所需要的Java应用程序,并在本地执行这些应用程序,而数据的存储则完全依靠网络上的其他服务器来进行。基于Java的NC具有价格便宜、易于管理等优点,但是,由于整个系统都完全依赖于Internet浏览器(进行数据和程序的下载)和Java虚拟机(进行应用程序的执行),使其实际上无法在应用层面上和一般用户所熟悉的传统Windows应用相兼容,从而大大降低了其实用性。

  另一类NC实际上是伴随着浏览器技术的发展而产生的。随着Internet的发展,越来越多的应用程序被从传统的客户/服务器模式(Client/Server模式)移植到了浏览器/服务器(Browser/Server)模式上来。B/S模式的一大好处,就是用户不需要在客户端安装软件,而只需要单纯用浏览器就可以实现一些应用功能,也就是说,B/S模式的客户端是一种瘦客户端。

  毫无疑问,在瘦客户端技术的发展中,基于Web的瘦客户端方案占有非常重要的地位。然而,随着网络计算的发展,基于Web的应用有时候往往难以满足人们的需求(比如在需要从服务器端传送大量数据到客户端的场合),而许多原有的应用程序都是基于传统的Client/Server模式构造的,很难改造成Browser/Server的模式。因此,就产生了新的计算模式:Server-based Computing(SBC模式)。它是将传统的Client程序运行在终端服务器上,并仅仅将其运行时产生的图像传送给远端的用户,以达到降低网络负载,以及客户端软件免安装的目的。由于SBC模式对客户端要求比较低(往往只需要能够显示服务器端的界面),而其所显示的用户界面可以完全兼容一般用户所熟悉的Windows系统,因此,它逐渐被NC的生产厂家所看重,并成为了一种主流NC产品。

  SBC模式中,终端服务器负责实际的程序运行,而客户终端则仅仅负责显示结果。常见的SBC实现包括Citrix的ICA协议、微软的RDP协议以及VNC等。采用SBC模式的瘦客户机实现方案,其瘦客户端可广泛运行于从PC到手持PDA等设备上,具有很好的通用性。但其实质是对最早的MainFrame架构下的终端设备的延续和发展。特别是,随着CPU处理能力的增强,单个NC的处理能力也得到了很大的增强,因此,仍然单纯采用SBC的模式,对众多的NC资源是一个巨大的浪费。而另一方面,由于SBC模式中Server处理能力的局限,使得诸如多媒体播放等对CPU消耗很大的功能无法通过SBC模式实现,这也大大降低了SBC模式NC的适用范围。

  基于Java+SBC的NC

  在网络计算模式下,多数人对计算机的要求已不再是速度和强大的功能,整个系统的可靠性、可管理性、可维护性、执行效率、安全性、可扩展性以及总体拥有成本TCO等,才是人们追求的目标,这也正是NC的发展初衷。然而,正如我们上面所论述的那样,无论是基于Java的NC还是基于SBC模式的NC,都存在着自身的缺陷,从而大大限制了它们的发展。具体来说需要解决两大问题:一是如何给用户提供一个和他们在PC上使用的Windows平台相兼容的用户界面,二是如何充分发挥NC本身的资源,使得其应用范围得到扩大,尤其是在多媒体处理方面的能力得到增强。

  为此,我们充分结合了基于Java和基于SBC模式NC的优缺点,提出了一种新的NC计算模式,如图4、图5所示。

  具体来看,我们的NC仍然采用与SBC相类似的模式与服务器进行连接。也就是说,在这种模式下,服务器仍然是一个Windows的服务器,NC在需要利用该服务器资源的时候,仍然采用RDP、ICA等协议与该服务器进行通讯,并作为该服务器的一个图形终端存在。然而,我们的NC却不仅仅只被作为图形终端来使用,与基于Java的NC类似,它还可以从服务器下载应用程序,并将其在本地执行。

  正如图4中所显示的那样,在用户需要运行Word等Windows应用的时候,由于用户对Windows平台的Word一般都比较熟悉和偏爱,因此,此时的NC将通过RDP等协议与服务器通讯,并作为服务器的一个图形终端存在,用户使用运行于服务器上的Word进行工作,比较前面SBC模式的工作图,可以看到,此时我们的NC与之是完全一样的。

  然而,当用户需要通过NC进行一些多媒体应用的时候(如图4中⑥⑦⑧所示),我们的NC将从服务器把媒体播放器下载到本地,并同时从服务器读取媒体数据,并在本地进行播放。此时的工作模式与基于Java的NC类似,但不同的是,在本NC上运行的不是Java程序,而是编译好的机器码。

  具体实现

  新的NC架构的实现有赖于众多具体的应用,因为它的出发点是,在保持系统负载较低的情况下,让用户得到与用普通PC相同的感受。目前,我们在实现的时候从4个方面来考虑这个问题:

  1. NC的开机

  我们在NC上运行的是Linux操作系统,以降低整个系统的成本。但我们对Linux系统进行了一定修改,使得其:一方面,开机速度较快;另一方面,开机后直接通过RDP协议连接到Windows服务器,这样使得用户所看到的是Windows界面。


  图2 基于Java的NC


  图3 基于SBC模式的NC

  

  2. 在NC上运行Office应用

  NC上的Office应用是NC的基本应用之一,我们在处理该类应用的时候,充分考虑了用户对Windows平台下Office的认可程度。因此,Office应用实际上是通过SBC模式来运行的,NC仅仅充当一个Office应用的图形终端。

  3. 在NC上运行浏览器应用

  NC上进行网络浏览,也是NC的重要而基本的应用之一。我们在实现之初,考虑了两种方案:一是在NC的Linux上运行Mozilla,二是通过RDP协议在Server端运行IE,NC端只做图形终端。两种方法各有优缺点。

  最终我们选定的方法借鉴了Chia-Chen Kuo的思想,具体做法是:当NC向一个Web服务器发送一个HTTP请求的时候,Web服务器所返回的结果由NC上的Mozilla所处理,然而,当Mozilla对其中的某些内容无法识别的时候(通常是类似ActiveX控件的东西),Mozilla将把该无法识别内容的URL发送到一个专门的Windows服务器,并由其对该内容进行解释,并显示结果,然后,所显示的结果又反过来被送回NC,并在NC上的Mozilla界面的合适位置进行显示。

  这里需要指出的是,NC上的Mozilla界面,是完全无缝运行在原有的通过RDP协议产生的Windows界面当中的,对于用户来说,他完全感觉不到这个浏览器是运行于NC之上,而Windows界面实际上是运行于Server端这一回事。

  4. 在NC上进行媒体播放

  NC上进行媒体播放,是以往基于Java的NC或者基于SBC模式的NC都无法解决的一个问题。而在新的NC应用架构下,我们可以把传统的视频点播技术引入到NC当中来,以流式媒体播放的形式取代了传统的媒体文件播放的形式,达到了较好的效果。

  流式媒体的传输特点是在播放前并不下载整个文件,只将开始部分内容存入内存,流媒体的数据流随时传送随时播放,只是在开始时有些许延迟。而其关键技术就是流式传输,而流式传输主要指通过网络传送媒体(如视频、音频)的技术总称。在我们的NC上所涉及的流式传输主要是实时流式传输, 需要专用的流式媒体服务器与传输协议支持,并可以支持随机访问,用户可快进或后退以观看前面或后面的内容。

  具体在实现的时候,我们将NC服务器同时作为一个流式媒体服务器,而NC服务器上的媒体文件就是视频源,当NC端用户通过RDP协议登录进入NC服务器后,他就可以和使用普通PC一样,在Windows的资源管理器当中选择打开播放一个多媒体文件。而NC服务器收到这个播放命令后,将做两件事:一是立即通知NC端启动其流媒体播放程序,并等待接收流媒体数据;二是启动服务器上的流式媒体传输进程,将该多媒体文件的内容逐帧发送给NC客户端。这样,在NC端,我们就可以和使用PC一样播放多媒体文件了。和以往一样,流媒体播放的界面也是完全无缝运行在原有的通过RDP协议产生的Windows界面当中的,用户的感受完全和使用普通PC一样。


  图4 一种新的NC计算模型


  图5 实际运行模式


  图6 浏览器运行模式示例图

  

  结束语

  网络计算机NC是网络计算体系结构演变的必然结果。NC经过多年的发展演变,在许多方面发生了变化,也存在很多问题。我们所设计的新的NC应用架构,可以在保持NC原有优势的前提下,充分利用NC自身资源,将NC与PC的差别大大拉近,具有较好的应用前景。而在将来的研究工作中,我们还将对NC组及其配套的服务器所构成的NC机群进行研究,充分发掘NC潜力,扩大其应用范围,为NC真正由概念走向实用尽自己的一份力。(E1)

  

  相关链接

  清华网络计算机

  清华网络计算机采用中心服务器集中数据与应用,通过网络连接为用户提供图形终端及一定的本地处理应用,能够适应现代高速网络环境下对客户端计算机的要求;而且集中式的数据管理降低了系统的维护与管理成本,提高了整体安全性。

  每台清华网络计算机都有硬件、操作系统、资源/应用程序统一管理层以及无缝连接的操作界面组成。其主要特点在于,上两层——“资源/应用程序统一管理层“将网络计算机本地的应用程序和资源(如打印机、u盘等)与服务器端的应用程序统一管理,并通过“无缝连接的操作界面”将这些资源/应用程序以统一的界面、启动操作方式呈现给最终用户,尽量使得用户感觉不到本地资源和应用程序与服务器端的差别。

  清华网络计算机采用MIPS兼容处理器与Linux OS,其体系结构与软件系统都是开放的,有利于以较低的成本进行灵活配置,以取得所需要的整体性能与功能。


  清华网络计算机内部结构图

  

  硬件构成

  清华网络计算机采用的是PMC-Sierra的RM5231A/7035C 处理器、PM8172系统控制芯片和清华自行研制的主板。处理器采用32位MIPS IV指令集,支持SuperScalar结构。板上集成了多种接口:

  ● SDRAM/Flash/ROM 控制器

  ● PCI 总线控制器

  ● DMA 控制器

  ● 智能卡接口

  ● ATA 33 IDE总线控制器

  ● Consumer IR

  ● 声卡

  ● UART

  ● IEEE 1284并口

  ● GPIO

  ● LPC控制器

  ● USB 1.1 controller

  ● ATI Rage XL显示芯片

  ● RTL-8139 10/100Mb自适应网卡

  同时支持USB接口的存储器、无线网卡和摄像头,并支持外挂打印机。

  软件支持

  系统软件包括:

  ● 引导程序

  ● 操作系统: Linux kernel 2.4.18

  ● 硬件显示加速

  ● 完整的设备驱动支持

  ● 图形化界面

  ● Remote Desktop Protocol 5.1

  ● 网络浏览器

  ● 多媒体播放软件;支持MPEG1 MPEG2 MPEG4/Divx/Xvid等多媒体压缩格式;支持VOD

  ● 字处理软件

  ● 摄像头实时视频播放

  ● 游戏

  ● USB存储盘、USB无线网卡支持

  ● 打印机支持

  ● 支持基于智能卡的用户身份认证

  技术特点

  ● 主板集成了所有的主要设备,并且无本地存储,使得本机的可靠性大大增强。

  ● 网络启动,自动进行网络配置。

  ● 显示分辨率最高为1024x768,24位色。

  ● 强大的多媒体处理功能

  支持MPEG1、MPEG2、MPEG4/Divx/Xvid等多媒体压缩格式的全屏流畅播放;支持视频点播(包括http/ftp/rtp/多播/广播等方式)。

  ● 易于升级

  软件的升级可以集中在服务器端进行,无需对于多台NC进行繁琐的本地升级。

  ● 操作界面的无缝连接

  将Window服务器应用与TNP的本地应用无缝连接起来;用户开机后即见到的是MS Window界面,此界面上有相应的图标和控件,可以轻松地调用TNP的本地程序,在外表上与Windows端应用没有区别。

  ● 网络计算机端资源与服务器的无缝集成

  网络计算机的本地资源,如USB存储、打印机等可以映射到MS Windows服务器上,可供用户以Windows本地资源的形式进行使用,提高了操作的便捷性。


  清华网络计算机体系结构图