Web开发正从基于MVC的Web架构向着被称为RIA+SOA基于客户端/服务器的模式发展,RIA表现出来的丰富的用户界面和SOA表现出来的服务将越来越受到吸引。现在已经有很多潮流的Web 2.0应用程序,但他们不会成为主流,因为下一代的网络平台已经出现,它就是RIA+SOA,它是一个更加完整的平台。
B/S和C/S这两种泾渭分明的软件设计架构源于上世纪90年代末。在当时,B/S架构的软件主要运用于一些Internet应用,而C/S架构的软件则主要是企业运用。但那时候B/S应用还较少,C/S架构成为主要的企业应用开发架构。进入21世纪,随着Internet的普及,B/S应用软件飞速发展。因为B/S程序有着零布署、跨平台等一些天生优势,导致很多企业应用纷纷转向B/S架构。一时间B/S架构成为先进技术的代名词。而在近两年来,Ajax技术在B/S软件开发中炙手可热,很多人觉得Ajax是新瓶装旧酒,因为Ajax所采用的技术早在几年前就有人使用,只是那时候还没有这样一个响亮的名字而已。如果不站在技术的角度去看待Ajax现象,Ajax的流行不是因为出现了一个什么新技术,而是代表了用户对体验需求的提升,用户已经不满足于有这个功能就可以,而是还要求要用得舒服。
从软件架构的发展来看,以前纯B/S结构的应用程序,由于客户对体验的需求提高,导致客户端的处理量越来越大,Ajax技术的流行正是这个结果。而从纯C/S结构的应用来看,由于受到客户对无须部署的要求和一些开发上的限制,导致客户端越来越瘦,除了完全转换到B/S的开发商以外,剩下的也慢慢转成了C/S/S这样的结构(比如SmartClient技术)。
如果说B/S代表了Internet应用,而C/S代表了企业应用(其实企业应用对Internet的依赖也慢慢增加)。则近十年来的发展趋势可以证明,无论是互联网应用还是企业应用,其实大家都在向着同一个中间点靠拢:RIA。 RIA的全称是Rich Internet Application(富互联网应用)。这里的Rich(富)其实是相对于Thin(瘦)来说的,指的是应用软件客户端的复杂程度。一个可以被称之为RIA的应用一般具有以下几个特点:
总而言之,RIA就是在保留B/S架构的所有优势情况下,尽量提升瘦客户端的处理能力,以达到和桌面应用差不多的效果。
就现有的技术来说, Flex和Silverlight是目前最有前途的两个RIA平台。Flex的优势是成熟的Flash技术和大量的设计人员,而Silverlight的优势是更先进的技术和大量的开发人员。未来或许是一场设计人员vs开发人员的对决。