80年代以后,随着IBM等众多厂商陆续推出拥有良好计算能力、而且价格也能被大众市场接受的个人PC机以后,大型机集中计算模式一统天下的局面也随即发生了动摇。很多人都能够拥有属于自己个人的PC机,也就没有必要大家伙都去竞争那些服务器主机有限CPU资源。而且此时集中计算模式的一些缺点也同时被暴露出来了,可想而之,PC机有一定的计算能力,那么为什么不能充分利用这部分计算资源呢?把全部计算压力都推给服务器,使其成为整个系统的瓶颈毕竟不是理想的好方法。所以此时Fat Client / Thin Server结构模式下的PC工作站部署方案到了辉煌时期。特别是通讯技术和计算机相结合并快速发展,导致计算机网络互联技术日益成熟和Internet应用蓬勃发展,更使这种计算工作相对松散的计算模式的优势得以充分发挥。人们很方便地就能组建一个计算机网络,每个人拥有自己相对独立的计算环境,并且利用一些网络服务也能很方便共享一些资料。直至今日,我们国内的众多公司都仍然采用这样一种计算模式的环境下工作。这里值得一提的是我们大家所熟悉无盘工作站,从本质上来分析,无盘工作站的计算模式与上面所说的没什么不同,因为它完成计算的工作量也是分布在各个节点上,与普通PC连成的计算机网络工作方式一样,稍有不同的是,为了管理的方便和降低成本,无盘工作站环境下是把所有的资料全部放在服务器上,各个站点首先依赖网络上的服务器来引导启动系统,之后所有的计算任务仍然在自己各自的节点上。
近些年来,计算机的应用广泛深入到各个领域,应用需求对计算环境的要求更严格、复杂性更高、需要更好的扩展性等等,这些变化使得原来的工作站传统的计算模式暴露出许多难以克服的弱点。如: ·安全变得很脆弱。互连网的蓬勃发展给我们带来了无限美好的机遇,同时也引发了许多新的问题,如安全性,它给我们原来脆弱的系统敲响了安全方面的警钟。这种完全松散的计算模式给我们本来属于绝对内部机密的系统暴露给外界太多扇大门,因此我们不得不把持好每一道关,守好每一道们。我们不可能苛刻地要求到使用这些应用系统的操作人员每个都是计算机安全方面的专业人士,因此我们的系统真是变的太脆弱了。好比一支人数不多、粮草资源有限的部队与强大的敌人展开很长战线的全面战斗一样,形势是非常危险的。当然也许我们会采用其它安全补救措施,例如在系统的每一个站点上都装一个性能很好的安全防火墙,但这不仅使客户需要投入更多额外的资金,并且在每个站点上都实时地运行一个安全防火墙将消耗掉每个节点上有限的计算资源,同时实践还告诉我们的是:这样的系统仍然不够安全的,因为你防守的点太多,可谓是防不胜防!
·系统变得难以管理。也许我们的很多系统管理或维护人员都有以下的情景遭遇,当系统需要修改一处小配置时,系统管理员不得不重复在每个站点上小心翼翼得进行着相同的配置更改。还有系统需要经常进行升级或安装新软件等,系统管理员不得不在多处节点上进行着重复的工作。这样的系统不仅使系统维护成本增加,而且很容易引入错误,使系统变的不稳定。
·系统升级时形成很大浪费。我们知道计算机硬件系统的升级是非常快的,基本四到五年内就会有一个很全面的更新,可是这种传统计算模式的计算机系统在进行系统升级的时候就必然带来巨大的浪费,因为当它的胖客户端工作站节点无法完成新系统的计算任务时,它就只能被淘汰、被抛弃掉。这不仅使企业在系统升级时需要更高的投入外,而且对原来系统投入的浪费无疑对企业更是一种巨大的损失。 ·资源得不到最佳利用。其实这一点我们都深有体会,在系统运行时,大多数节点的CPU使用率一般都在很低的状态下徘徊,因为我们的许多工作任务都处于I/O阻塞中,所以这实际上也是对我们企业的有限资源投入形成了一种很大的潜在的浪费。
·系统的扩展性很差。尽管各个计算终端通过局域或广域网连接在一起,实际上对于企业内部来讲,这是一种非常松散的集合方式,整个企业系统并没有构成一个有机的整体。对于这样一个系统来说,无论是想从性能还是功能角度都无法进行系统性的扩展。也许我们可以轻松的扩展某一个计算终端的性能和功能。
·增加终端用户的学习维护成本。实际上企业内的计算机管理员不可能随时服务每一个终端用户,也就是说终端管理员的若干分内的工作以及相关技术,终端用户在使用计算机终端时需要掌握额外的知识和技能,能在一定程度内解决计算机管理和维护问题。而对于很对政府办公和企业用户来讲,他们的主要目的是完成本职工作,这些只能是加重他们的额外工作负担。
NC应用构架
应用领域需求的特点变化、网络的快速发展,使基于网络的NC应用构架系统应运而生,这种框架的系统在安全性、扩展性、易管理性都有很好的提高。如图3所示:这种NC应用构架系统是把所有的计算任务和资料放在一小部分性能相对较高的服务器(刀片式PC服务器)上,而各个终端只负责简单的与用户交互的任务,所以对终端的要求配置是相当低的。从本质上来分析,NC应用构架的系统属于C/S结构模式(Thin Client / Fat Server),更细致一点地说也即为SBC计算模式(Serverd-based Computing),但它不同于其它许多应用环境下的瘦客户端,因为一般其它所谓的瘦客户端运行时至少还需要操作系统和其它很多系统软件支撑环境,但NC客户机却不需要这些,它只需要终端客户机能够进行图形显示就可以了,所有的计算任务将全部分配在多个刀片式PC服务器上,所以说NC客户机才是真正的超级瘦终端机。同时这种NC应用构架的系统具备有如下特点:系统最初建设时需要投入的成本相对比较低廉。由于NC客户端的配置要求很低,所以构建一个计算能力与传统PC工作站结构相当的NC系统时所需投入的成本就降低了很多; ·系统变得很安全。每个NC节点没有硬盘,也不参与实质上的计算任务,只进行图形终端显示而已,所以它完全可以抵御外界的任何攻击;
·系统易于管理,这一点就像无盘工作站那样,由于所有的资料全部都存储在少数的几个服务器上,系统管理员能很容易进行软硬件的配置更改,系统安装,系统升级等任务;
·系统升级时被淘汰下的机器可以再次重复利用。因为计算任务不在NC客户端,所以NC客户端基本上永远不需要升级,而需要进行升级的只是添加新的刀片式PC服务器节点,即便可能有淘汰下的服务器,也可以再把它当成NC客户端来使用。因此绝不会有任何浪费的事情再发生;
·硬件资源能得到最佳利用率,由于多个刀片式PC服务器能进行很好均衡以协同工作。NC客户端总能找到一个负载相对比较低的刀片式PC服务器来完成计算任务。并且多个NC客户端可以动态共享一个刀片式PC服务器资源。所以系统所有的硬件均能得到最好的利用率。
·建立稳定可靠的工作环境。由于个终端机依靠服务器的资源运行,系统利用服务器负载均衡、数据服务器安全备份等机制确保工作环境不会由于单台刀片式PC服务器的宕机而影响整个系统的工作和运行。
一个成熟的NC产品实现
现在我们回到开始提出的问题:为何像NC这样一个代表非常先进的应用构架在许多地方却成为一个失败的项目呢?上面我们通过深入分析最后得出了NC应用构架的系统其实是一个非常合理、有很多优点的系统,它是计算机软硬件发展到一个非常成熟的阶段后、计算机也被各行各业广泛应用后所带来的一个必然产物。可为什么NC应用在许多地方并不十分成功呢?这里面原因有很多,但最重要的一点是我们现在的一些NC产品实现并不是尽善尽美,产品中包含了许多缺点和实现上的不足。所以可以这样说,NC构架是非常好的,但是目前基于这种NC构架下的一些产品实现并不十分成熟。而一个成熟的NC产品必须应该很好的解决下面几个方面的的问题,第一、由于不同于以前的字符终端,现在的应用要求客户和服务器需要实时地传送图形界面操作的交互信息,所以其数据交互量是非常大的,很容易造成网络上数据包拥堵;第二、如何来避免计算集中的服务器成为瓶颈,能否有很好集群方案或分布式计算方案来均衡服务器的计算。第三、必须有一个很好的管理软件来管理、维护NC构架下系统里面的各种资源。下面我们再来了解当前有那些NC产品实现,并进一步对比、分析这些产品当中各自拥有的一些特点或者是不足。NC产品的最早形式实际上是一个java虚拟机的硬件实现,所以毫无疑问,它的应用范围受到了很大的限制,而且也不能和我们传统意义上的软件习惯使用方式相兼容,所以导致这种NC产品实用性很低。
现在一般常用的NC产品有VNC、微软的Terminal Server、和采用基于压缩X协议技术的共创NC系统。VNC产品中服务器和客户端之间的协议采用的是RFB协议,微软的Terminal Server使用的协议是RDP,VNC和RDP在服务器和客户端之间传送的都是点阵图,而基于压缩X协议传送的是矢量图。我们知道,传送点阵图的方案无疑会形成巨大的网络流量,这样就会对网络形成压力,系统规模不大、节点比较少的情况下也许影响不大,但是如果节点比较多的情况下,NC系统的总体效率就比较低,这时候,NC客户端可能表现为运行不够流畅,严重时有可能对系统中的网络设备形成数据包拥堵,甚至导致网络设备崩溃。所以这两种产品在实际应用上就会受到很多限制,特别是一些界面交互变化比较快的应用更是容易受到影响,例如视频、动画、浏览不停更新变化的网页、实时股票监控系统等等。当然这里需要强调的是RDP和RFB两种协议为什么会采用传点阵图的方式呢?其实这里面还是会有一些背景原因的,如VNC最初的设计目的就是使你的系统更易于管理,实际上就是一个远程控制的工具产品,所以它的设计原则就是使协议尽可能简单,客户端易于实现,甚至现在的VNC的主页上还标榜它的vncclient只有80k大小。而RDP协议是微软的解决方案,所以它会受到微软桌面环境系统的限制,只能采用传点阵图的方式。压缩X技术是基于LINUX系统下的解决方案,它采用的协议是基于X协议基础之上而改进的。我们知道X协议与生俱来就是给网络应用而设计的,它采用的方式是传高效率的矢量图,需要指出的是最初设计X协议的那批人也许当时没想到基于Xwindow的图型桌面的界面今天已经变得如此丰富多彩了,所以如果NC系统只简单采用X协议仍然会给网络带来致命流量。因此压缩X致力于X协议的压缩改进,使改进后的扩展协议相比原来X协议而言,平均只有二十分之一的网络字节流量。这样一来,基于压缩X技术的共创NC系统就大大增强了实用性。 在服务器的集群方面,微软的Terminal Server方案和共创NC系统虽然都各自有自己的实现方案,但它们的基本原理都是差不多的,就是每当有新的NC客户建立连接时,后端的刀片式PC服务器群就计算并选取一个资源负载相对较小的服务节点提供给前端的NC客户进行连接。不过由于在Terminal Server方案中,后面负责计算任务的一组集群服务器只能是微软的操作系统平台组成,所以系统中的所有应用都只能是基于微软平台下的软件应用。共创NC系统后端服务器群是一个由多种不同硬件平台、以Linux操作系统为主体的多种不同操作系统的软件平台所组成的分布式计算环境,所以它对前端NC客户提供的应用服务也更为丰富,更为广泛一些。
在管理软件这一方面,是当前所有NC产品实现中最不足的,但是一个高效的、易用的管理软件却是客户最需要的。
共创NC系统特别适合在国内推广
由于共创NC应用构架所具备的优点,使该系统特别适合在我国进行推广,表现为:
·由于我国经济并不是很发达,很多行业的单位、很多地方的政府部门(特别是西部一些地区)并没有太多的投入来进行信息化系统建设。而NC系统却以非常低廉的成本投入,高性能的计算表现,易于管理、安全性高等特点完美满足这些地区的信息化建设需要。不愧为是一个雪中送炭得方案。
·由于NC客户端硬件配置要求比较低,NC客户端可以在国内得以大量生产,并且可以采用性能相对比较低的国产CPU或其它计算机部件,从而带动与计算机相关的整个产业链的发展。
·NC应用构架系统特别适合在高校建立教学网络系统,它与现在的很多的无盘工作站系统相比有更低廉的成本投入,而且学校教学需要不断跟踪新技术、新产品,系统升级很频繁,NC结构的系统易于升级、不会造成对原有系统投入的浪费等诸多特点更迎合了教学系统的这一需要。
·共创NC系统能更进一步推动Linux桌面操作系统的广泛应用。由于共创NC系统后端担任计算任务的是一个由Linux桌面操作系统为主体的多种操作系统平台有效集群的分布式计算环境,而Linux桌面操作系统是可以免费获取到的,共创NC系统能够使客户轻易地从原来的Windows环境下的许多应用平滑过渡到Linux环境下来,最终不仅使客户投入的软件成本更低廉,而且还使系统更安全、更易管理、更易扩充。