智能客户端:C/S与B/S的融合



C/S架构与B/S架构都存在不可避免的局限,而智能客户端恰好能克服它们存在的问题,提高用户满意度,降低总体拥有成本。

人们对智能客户端的关注开始于微软。事实上,自微软推出.NET战略以来,其最令人关注的技术新动向之一就是对智能客户端(Smart Client)技术的深入研究与应用推广。尤其是微软公司将这种体系结构纳入到.Net框架后,它立即引起了业界广泛的关注。

微软对于智能客户端的定义是这样的: 智能客户端是易于部署和管理的客户端应用程序,它们通过统筹使用本地资源和到分布式数据资源的智能连接,从而为您提供高适应性的、快速响应的和丰富的交互式体验。

有专家认为,智能客户端技术是瘦客户端应用的代替技术。由于软件巨头微软的大力推动,业内人士预计,它将在软件产业变革中扮演重要的角色。

B/S还是C/S?

你的软件产品是B/S(Browser/Server,浏览器/服务器)还是C/S(Client/Server,客户端/服务器)架构的?如今当软件供应商在应标时,经常被用户问到类似的技术问题。是B/S还是C/S已成为当前软件产业发展中不可回避的技术架构问题。

其实,无论是B/S还是C/S都不新鲜。C/S技术从上世纪90年代初出现至今已经相当成熟,并得到了非常广泛的应用,其结构经历了二层C/S、三层乃至多层C/S的演进。B/S技术则是伴随着Internet的普及而来。

应该说,B/S和C/S各有千秋,它们都是当前非常重要的计算架构。在适用Internet、维护工作量等方面,B/S比C/S要强得多; 但在运行速度、数据安全、人机交互等方面,B/S则远不如C/S。综合起来可以发现,凡是C/S的强项,便是B/S的弱项,反之亦然。因此,问题也就因此而产生了,我们的软件产品到底该用B/S还是C/S架构呢?一场关于C/S与B/S的口水战也由此而在软件业界拉开了序幕。在互联网泡沫盛行的2000年至2002年间,这场口水战达到了顶峰。但直到现在,人们也没有辩出谁是谁非。

事实上,这场口水战不可能有胜负出现,因为B/S与C/S具有不同的优势与特点,它们无法相互取代。例如,对于以浏览为主、录入简单的应用程序,B/S技术有很大的优势,现在全球铺天盖地的Web网站就是明证; 而对于交互复杂的ERP等企业级应用,B/S则很难胜任,从全球范围看,成熟的ERP产品大多采用二层或三层C/S架构,B/S的ERP产品并不多见。

智能客户端: B/S与C/S的融合

包括微软在内的很多软件供应商注意到了软件架构的争论,人们不禁要问: 是否有可能将B/S与C/S的优势融合呢?

微软的答案是肯定的。智能客户端就是它给出的解决方案。微软认为智能客户端应用程序可以将胖客户端应用程序的优点和瘦客户端应用程序的部署和可管理性优点结合起来,使之在资源的利用上达到某种平衡。目前,微软已形成Windows智能客户端、Office智能客户端,以及移动智能客户端等解决方案。

无独有偶,国内也有不少软件公司在进行这方面的研究。新中大在多年的深入研发的基础上,推出了自己的智能客户端技术。该技术完全是基于Web的应用体系,既不属于C/S,也不属于B/S,兼具了二者的优势。

客观地说,用“智能客户端”来描述新中大的产品技术或许不那么准确,因为“智能客户端”只是对客户端而言的,在新中大的技术还包括了服务器端的许多技术,例如Web服务、应用服务以及基于SOA的其他服务。目前,在新中大已有两个基于智能客户端技术的系列产品,GSoft/G6和A3。不过,在GSoft/G6产品中,后端应用的开发采用了符合J2EE标准的应用平台和工具; 新中大A3产品的后端开发则是采用了Microsoft .Net平台。

智能客户端的优势

和B/S或C/S相比,智能客户端技术具有非常明显的优势。总结起来可以概括为三点,即充分本地资源利用和享受本地用户体验、具备离线连接能力,以及智能部署和自动更新。

智能客户端应用程序因功能级别的不同而呈现出多种形式。但所有智能客户端应用程序都具有的一个特性是具有利用本地资源的能力,如用于存储、处理或数据捕获的硬件(例如,闪存、CPU 和扫描仪)。

在企业或 Internet 范围内,智能客户端应用程序能够轻松地与系统连接并与之进行数据交换。Web 服务使智能客户端解决方案能够利用行业标准协议(例如,XML、HTTP 和 SOAP)来与任何类型的远程系统交换信息。更为重要的是,无论是否连接到 Internet,智能客户端应用程序都可以正常工作。在没有网络连接或网络连接断续时,智能客户端能够利用本地缓存和处理进行操作。该功能对于新一代的移动信息工作者来说极具价值,尤其是在指定了移动连接的成本、期限和速度的情况下。

顺便说一句,离线功能不仅可以在移动方案中使用,而且其桌面解决方案也可以利用离线体系结构来更新后台线程上的后端系统,从而保持用户界面的响应并改善最终用户体验。该体系结构还能够提供成本和性能上的优势,这是因为用户界面不需要在智能客户端与服务器之间来回切换。另外,由于智能客户端只在后台与其他系统交换所需的数据,因此它与其他系统交换的数据量得以减少(即使在硬连接的客户端系统上,这种带宽的减少也会带来巨大的好处)。这反过来会增强用户界面 (UI) 的响应,因为UI 不是通过远程系统呈现的。 
表 C/S架构与B/S架构的对比(点击小图看大图)

过去的传统客户端应用程序很难进行部署和更新。经常会出现这样的情况,安装一个应用程序会中断另一个应用程序。诸如“DLL Hell”等问题使得安装和维护客户端应用程序变得很困难和棘手。智能客户端技术有效地解决了该问题。例如,新中大智能客户端尽管不完全是零安装,但是已做到零维护,客户端程序即用即下载、自动匹配版本、支持断点续传,真正体现了“智能”特质。

总体而言,由于C/S与B/S都有不可避免的局限性,而智能客户端恰好能解决他们的问题,能提高用户满意度,并降低TCO,因此,不少专家们认为,智能客户端是企业应用软件发展的新方向。在未来的两至三年,智能客户端将会逐渐得到提供商与用户的认可,产业界也会掀起一股向智能客户端迁移的热潮。(本文作者为新中大软件股份有限公司总工程师

你可能感兴趣的:(JAVA,转载,架构)