预计阅读本页时间:-
5.7 瘦客户机
多年来,主流计算范式一直在中心化计算和分散化计算之间振荡。最早的计算机(例如ENIAC)虽然是庞然大物,但实际上是个人计算机,因为一次只有一个人能够使用它。然后出现的是分时系统,在分时系统中许多远程用户在简单的终端上共享一个大型的中心计算机。接下来是PC时代,在这一阶段用户再次拥有他们自己的个人计算机。
虽然分散化的PC模型具有长处,但是它也有着某些严重的不利之处,人们刚刚开始认真思考这些不利之处。或许最大的问题是,每台PC机都有一个大容量的硬盘以及复杂的软件必须维护。例如,当操作系统的一个新版本发布时,必须做大量的工作分别在每台机器上进行升级。在大多数公司中,做这类软件维护的劳动力成本大大高于实际的硬件与软件成本。对于家庭用户而言,在技术上劳动力是免费的,但是很少有人能够正确地做这件事,并且更少有人乐于做这件事。对于一个中心化的系统,只有一台或几台机器必须升级,并且有专家班子做这些工作。
一个相关的问题是,用户应该定期地备份他们的几吉字节的文件系统,但是很少有用户这样做。当灾难袭来时,相随的将是仰天长叹和捶胸顿足。对于一个中心化的系统,自动化的磁带机器人在每天夜里都可以做备份。
广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元
中心化系统的另一个长处是资源共享更加容易。一个系统具有256个远程用户,每个用户拥有256MB RAM,在大多数时间这个系统的这些RAM大多是空闲的,然而某些用户临时需要大量的RAM但是却得不到,因为RAM在别人的PC上。对于一个具有64GB RAM的中心化系统,这样的事情决不会发生。同样的论据对于磁盘空间和其他资源也是有效的。
最后,我们将开始考察从以PC为中心的计算到以Web为中心的计算的转移。一个领域是电子邮件,在该领域中这种转移是长远的。人们过去获取投送到他们家庭计算机上的电子邮件,并且在家庭计算机上阅读。今天,许多人登录到Gmail、Hotmail或者Yahoo上,并且在那里阅读他们的邮件。下一步人们会登录到其他网站中,进行字处理、建立电子数据表以及做其他过去需要PC软件才能做的事情。最后甚至有可能人们在自己的PC上运行的惟一软件是一个Web浏览器,或许甚至没有软件。
一个合理的结论大概是:大多数用户想要高性能的交互式计算,但是实在不想管理一台计算机。这一结论导致研究人员重新研究了分时系统使用的哑终端(现在文雅地称为瘦客户机(thin client)),它们符合现代终端的期望。X是这一方向的一个步骤并且专用的X终端一度十分流行,但是它们现在已经失宠,因为它们的价格与PC相仿,能做的事情更少,并且仍然需要某些软件维护。圣杯(holy grail)应该是一个高性能的交互式计算系统,在该系统中用户的机器根本就没有软件。十分有趣的是,这一目标是可以达到的。下面我们将描述一个这样的瘦客户机系统,称为THINC,它是由哥伦比亚大学的研究人员开发的(Baratto等人,2005;Kim等人,2006;Lai和Nieh,2006)。
此处的基本思想是从客户机剥离一切智能和软件,只是将其用作一台显示器,使所有计算(包括建立待显示的位图)都在服务器端完成。客户机和服务器之间的协议只是通知显示器如何更新视频RAM,再无其他。两端之间的协议中使用了五条命令,它们列在图5-44中。

现在我们将考察这些命令。Raw用于传输像素数据并且将它们逐字地显示在屏幕上。原则上,这是惟一需要的命令。其他命令只是为了优化。
Copy指示显示器从其视频RAM的一个部分移动数据到另一个部分。这对于滚卷屏幕而不必重新传输所有数据是有用的。
Sfill以单一的像素值填充屏幕的一个区域。许多屏幕具有某种颜色的一致的背景,该命令用于首先生成背景,然后可以绘制文本、图标和其他项目。
Pfill在某个区域上复制一个模式。它还可以用于背景,但是某些背景比单一颜色要复杂一些,在这种情况下,该命令可以完成工作。
最后,Bitmap也是用于绘制区域,但是具有前景色和背景色。总而言之,这些是非常简单的命令,在客户端需要非常少的软件。所有建立位图填充屏幕的复杂操作都是在服务器上完成的。为了改进效率,多条命令可以聚集成单一的数据包,通过网络从服务器传送到客户机。
在服务器端,图形程序使用高级命令以绘制屏幕。这些命令被THINC软件截获,并且翻译成可以发送到客户机的命令。命令可能要重排序以改进效率。
论文通过在距客户机10~10 000km距离的服务器上运行众多的常用应用程序,给出了大量的性能测量。一般而言,性能超过了其他广域网系统,即使对于实时视频也是如此。关于更多的信息,请读者参阅论文。