中国开发网: 论坛: 程序员情感CBD: 贴子 309361
mhappy
学习贴,ZT: SmartClient
智能客户端(SmartClient)是微软dotNet平台中的一个重要组成部分, 它当然不是微软的发明. 事实上SmartClient的很多功能在传统的应用程序中早已存在, 现在dotNet平台只是为SmartClient定义了一个规范化的运行和部署环境, 提供了架构性的支持. IBM在eclipse平台方面的投资无疑也正朝着同一方向进行.
从远古的终端/主机架构发展到客户端/服务器架构, 到如今的浏览器/服务器架构, 再到SmartClient/WebServiceServer架构表面上看起来很象是一次轮回的延续, 是对计算资源的再次分配, 但真实情况远没有这么简单. 浏览器/服务器架构与终端/主机架构最本质的区别在于架构的开放性: 基于开放的协议和纯文本的描述信息. 可以说B/S架构以前所未有的开放态度拥抱了程序员与最终用户, 这最终造就了这个星球上最大也是最成功的分布式应用: Internet. 浏览器与终端的另一个重要区别在于浏览器是有着相当强劲的运算能力的, 它进行着非常复杂的资源管理, 并向html/js提供了创新的程序模型. 实际上现代浏览器的作用已经类似于一个小型操作系统, 并不是完全被动的显示终端.
如果SmartClient之类的技术能够超越B/S架构, 那么与B/S架构超越终端/主机架构的过程类似, 它必须提供一些真正的创新思想. 在微软对于SmartClient的描述中大概有如下特征:
1. 无接触动态部署, 可扩展性和安全性等B/S架构早已成熟的特性
2. 充分利用客户机资源, 如访问本地磁盘, 开启多线程等
3. 离线工作
4. 丰富的界面元素, 快速的用户响应
5. 网络传输量小
相对于浏览器而言, 这里实际所要求客户端所具有的的最重要的能力是脱离中央服务器的状态保持能力. 客户端可以保持复杂的程序状态(多页面之间)才能够提供丰富的界面元素, 才不需要每次都从服务器请求大量数据, 才能够支持离线工作. 但是浏览器与SmartClient在这方面的差距并不是本质性的, 特别是在采用AJAX技术之后, 浏览器所提供的用户友好体验已经大大削弱了本机程序的优势. 而浏览器采用标准的http请求访问远程服务的方式与冗长的web service调用相比要成熟的多, 也轻便的多. 在提供复杂界面方面, 传统的基于API方式构建的应用程序在界面丰富性与开发的简易性上无法与Web技术相比. 现在一个会点FrontPage的人都可以架设自己的网站, 这在C/S时代是不可想象的. 实际上微软新一代的界面开发语言XAML与HTML在设计思想上如出一辙, 只是它专为应用程序开发而设计. 至于离线工作,那是一个非常复杂的问题, 很难有通用的解决方案, 每个离线需求都可能需要大量的程序工作, 而且与数据中心的方案相比显然是难以保证数据的一致性. 特别是需要远程数据同步的方案, 要求众多客户端离线处理后协同工作无疑是一件无比艰难的事情, 另一个更加可行的方案是分布式服务器方案, 即各个客户端连接到局域的服务器, 少数的服务器再进行数据同步等操作, 此时我们的客户端仍然只需要是浏览器. 在利用本机资源方面, web程序因为安全性的考虑不得不接受很多限制, 但是在理论上仍然存在着严谨的解决方案, 如采用数字签名的Applet等. 基于Applet技术完全可以做出非常复杂的应用, 例如在线的Office, http://online.thinkfree.com/. Applet的安全方案无论在理论上还是在实践上都是经过业界严格的检验的, 它所倡导的Mobile Computing的思想也一度是业界关注的中心, 而今天它的没落是一个非常耐人寻味的问题. 其实现在B/S架构应用中存在的很多问题都是可以在浏览器框架下解决的, 最多需要对html协议等进行增强, 并无必要另起炉灶再搞一整套封闭的体系框架. 微软吹捧SmartClient的目的似乎更像是意图在Web世界中重新引入微软的私有技术架构,将Windows转化为网络操作系统, 从而掌控网络的未来, 这与网络的开放性是背道而驰的.
微软现在大力鼓吹SOA架构, 但其宣传集中在web service的调用和封装方面, 而较少提及service的建立. 但是在下一代网络技术中, 我们已经看到了P2P(Peer To Peer), 看到了网格(Grid), 它们才是相对于B/S体系架构的真正的发展. B/S架构最本质的弱点在于它是一种被动访问模式, 即只能是浏览器端访问服务器的资源, 而远程服务器无法主动以异步的方式向浏览器传递数据, 在信息通道上缺失了一个方向, 而P2P这样的技术的第一要点是客户端独立运行的service, 从而真正建立网络节点的自治性. 当网络程序从浏览器的束缚中解脱出来的时候, 我们首先需要的是一种SmallServer技术,是一颗自主的心, 而不仅仅是华丽的外表.


评论人:kevinCheng Thu Apr 06 00:44:07 CST 2006 


(1)web script技术是在是web厂商基于利好匆忙推出。而在script技术上开发富客户端技术,无疑于浮沙上建高台。不但开发繁琐,效率低下,更糟糕的是没有好的调试平台。将来的富客户端技术肯定要替代script的,这是趋势所在。
(2)微软或者其它厂商推出替代富客户端方案是很自然的。微软利用其桌面操作系统占有率的优势,推广自己的富客户端技术,这就是smartclient了。
(3)不是说smartclient技术不好,而是不够开放,没有跨平台性。但在部门企业内部使用已是足够。这也是smartclient的定位所在。
(4)希望将来会有基于web的统一的富客户端方案,拭目以待之。

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录