应对新的发展潮流,微软强力推广 Smart Clients 概念,在这一领域的竞争对手包括 Macromedia 的 Rich Internet Applications。
企业级程序架构经历了这些阶段:
(1)单机版程序:最初的程序仅在一台机器上运行,操作也完全在这台机器上进行。它适应当时电脑并不十分普及、网络连接并不十分便捷的年代。
(2)Client/Server架构:网络的发展,单机版程序满足不了企业管理等各方面的需求,企业需要将来自终端的数据汇总到服务器,统一管理。
(3)Browser/Server架构:C/S有部署繁琐、更新难度高等缺点。Web技术的发展,给企业新的选择。Browser/Server可以让企业应用随时、随地,只要有浏览器即可使用。
C/S 的缺点主要是部署、更新的问题,需要在众多终端机器中安装程序;遇到更新,也需要一台一台做。
B/S 的缺点主要是受制于HTML的限制,无法像C/S那样使用丰富的效果来展示数据,用户体验比较难以保证。另外,稳定的客户端/服务器连接,也是必要条件,网络中断将是B/S无法运行。
经过一些比较,我认为,Macromedia 推广的 Rich Internet Applications 更像是从 B/S 出发,关注于解决 B/S 的缺点。而 Microsoft 推广的 Smart Client 则更像是从 C/S 出发,关注于解决 C/S 的缺点。
比如:Macromedia Rich Internet Applications 理念的重要实践者 Flex,就是利用了“Flash 客户端在全世界的高普及率(高达95%以上)”、“Flash 相比 HTML 而言丰富的展现能力”这些已有优势,在服务端根据 mxml(Macromedia 扩展的 XML 标记语言)的标记,动态的生成 Flash SWF 文件返回给浏览器客户端,并以此向用户提供接近 C/S 一般的用户体验。(Flex 等技术接触时间较短,如有谬误,敬请指出。)
微软给出的 Smart Client 示例,重点向我们展示了 Auto-Update自动更新,Offline离线状态下的数据处理等特征;而它本身也是在已有的 .NET Windows Forms 技术或者 Office 技术等基础上,补足了一些以往的缺点。
另一方面,Smart Client 概念宣传中,强调了一点叫做“可以使用本地资源”的特征,我认为这是个“进攻手段”,正好打在 Rich Clients 的软肋上,因为 Flash 很难操作本地的一些资源,比如访问文件系统就非常困难:Flash 可以很方便的从网络中下载并读取一个 XML 文件,却不知道怎样才能把它保存到本地。(当然,只要使用者同意,Flash 可以很容易的访问你的麦克风、摄像头等多媒体资源,这一点倒也是很方便的。)毕竟 Flash 更多的是运行在浏览器中的,在浏览器环境中的 Flash 的确是不应该能够访问文件系统的。不知是不是因为技术原因,Macromedia 为什么也同时不允许 standalone 的 Flash 访问文件系统。类似的,Flex 的 RoadMap 中说,他们将会实现 Offline 特征;而且还会在将来发布 .NET Native 的版本。
就目前而言,Smart Clients 和 Rich Internet Applications 应该各有各的优势和市场。Smart Clients 应该更适合于企业级程序的模式,因为它就是在那个基础上发展来的。添加了自动更新,解决了企业非常头疼的部署难题的 Smart Clients ,相信能受到企业的欢迎。另一方面,Rich Internet Applications 在需要更多丰富效果的、面向 Internet 用户的 Web 程序中,也会有其市场,Smart Clients 暂时还无法替代:因为你不可能让每个访问站点的人,都去下载一个Smart Client,或者,仅仅让他/她点击一个具有 *.exe 后缀的超链接,就够让人“提心吊胆”了。
一个 Flex 示例:http://coenraets.com/apps/load.jsp?app=restaurant/restaurantv1
打印 | 张贴于 2004-10-20 21:45:00 | Tag:暂无标签
留言反馈
我觉得MM的RIA很不错,但是现在flex的价格太高了(server似乎是12000$),在小企业很难普及.
大企业到是更在乎维护和技术支持,这个也许MS给人的信心会足一些.
不过我个人是看好MM的Flex+Central的,如果能解决flex server的价格,以及减轻server端的访问压力问题的话(上次上海研讨会有人问过这个问题)。
我觉得smart client可能在嵌入式设备上有更好的应用
你的确没有搞懂RIAs的含义,RIAs和smart client的目的都是为了脱离标准参差不一的浏览器限制,而RIAs的重要部分Flash,正是不同浏览器都能够支持的。你所谈的都是浏览器之间的兼容性,跟smart client和RIAs没有什么关系。
2,目前,Mirosoft提供的Updater Application Block很烂,我在实际的项目中曾经采用过这个application block,很多问题。有些client端可以,有些不可以,问题一大堆。后来,只好抛弃掉,然后自己动手。
3,Microsoft肯定会推出更易用的解决方案。
你似乎没有弄懂 Macromedia 的 Rich Internet Applications 涵义,你可以先看看文中结尾处给出的 Flex 示例,你可以尝试使用不同的浏览器去查看,只要浏览器支持 Flash 版本 7,效果都是一样的。
如《网站重构》书中所说的那样:
正是因为浏览器的兼容性实在太差,使用 HTML 模型难以达到统一的效果,这才加速了一些网站向 Flash 方案的靠拢,因为 Flash 可以满足他们关于跨浏览器、跨操作系统的需求。
至少 Macromedia 推出的这些 Rich Internet Applications 方案不存在你所说的那些毛病。
BTW,Flash 不是 W3C Recommendation,Macromedia 掌控着它的发展,不会出现像浏览器那样混乱的局面。
又比如,很多internet application依赖于ActiveX来实现一些复杂功能的封装或者是提高性能。这就必须要求IE和Windows。其他浏览器都多少有问题。
更别谈如果浏览器标准化以后....
我还是用IE 6.0 sp2多一些。FireFox比Mozilla好,比Safari好,但还是间或有些小小不舒服的地方。
Smart Client是一个概念,不是一种新技术,但
“.NET有天生的优势用以实现Smart Client”(开心就好语)
to archer:
RIA 应该是可以让程序员使用的。它在服务端只是对 mxml 解析生成 Flash 返回客户端。mxml 就像 html 一样只是一种文本,程序开发者可以通过 ASP.NET, ASP, PHP, Java Servlet, JSP 等技术来动态生成 mxml。
另一方面,第一次看到flex制作的网站,就被其所震撼,虽然目前的版本在效率等方面还有待改进,但他在交互性方面的优势完全可以弥补这个不足,并且,可以预见的是,未来RIA中还将会增加对3D效果的支持。
smart client现在还缺乏杀手级的应用,叫好的不多,叫座就更难。而RIA不管是否可以取代现有的的web应用模式,起码东西很漂亮。
好像RIA不是为程序员的吧?不能处理复杂逻辑?