第三次浪潮:从Brower/Server向RIA的转变
B/S架构的缺陷从一开始就体现出来了:基于Html的表现层能力有限,而且Http是一种非连接的协议。因此,B/S并没有能够完全取代C/S架构,在很多场合,我们仍然需要一个在本地运行的客户端。彻底解决这一问题的答案是RIA。
RIA(Rich Internet Application)似乎并不是一个正式的名称,但在本文中,我将它作为这种模型的通称。RIA本质上是B/S的改进,不同之处在于,RIA不但可以通过解释Html(或其他脚本)来创建用户界面,而且可以提供已编译的客户端应用程序的运行环境。换言之,客户端可以拥有本地应用程序的能力,同时又象Web一样易于发布和维护。目前,Macromedia的Flash/Flex和Mozilla的XUL都是RIA解决方案,但更令人期待的似乎是来自Microsoft和IBM的解决方案。
Microsoft的Longhorn(已经正式命名为Windows Vista)是一个雄心勃勃的计划。Microsoft定义了一种新的标记语言XAML,XAML可以内嵌程序代码,或引用外部的程序代码。XAML和相应的程序代码被下载以后,由图形引擎Avalon重建一个本地的用户界面。Microsoft宣称,Longhorn应用程序将完全建立在XAML的基础之上,不论它们来自本地还是远程机器。这样就彻底模糊了本地应用和远程应用之间的界限。
RCP(Rich Client Platform)是IBM基于Eclipse的解决方案。事实证明,Eclipse决不仅仅是一个供开发人员使用的IDE,它还是一个强大的客户端平台。在RCP架构中,Eclipse可以从远程机器上下载XML格式的界面文件和Java代码,由SWT引擎重建本地界面,其机制与Longhorn类似。IBM正在着手将著名的Lotus全部转移到RCP架构上,这个名为Workplace的新产品也许是有史以来最大的RIA产品。
RIA之战最吸引人的地方在于,它正在进行中,有许多问题悬而未决。例如,RIA和B/S模型的一个明显区别是,B/S基于一些平台中立的标准,例如http和html标准都不是私有的。但Longhorn和RCP似乎是不可调和的,因为无法在Eclipse中执行.NET代码,就象无法在Avalon中执行Java代码一样。这会导致软件界的彻底分裂吗?Microsoft的计划是最宏伟的,但是步伐缓慢,而低调的IBM已经通过Eclipse的繁荣悄悄占领了先机。不过,Microsoft的长处是后来居上。这一次还会重演Windows 和OS/2战争的结果吗?
查看本文来源