【IT168评论】RIA(Rich Internet Application)为何而产生,它的意义何在?流行的说法是:为Web应用提供丰富的操作体验,提高系统的友好性云云。这种看法不能说错,但是我希望从另一个角度来理解:为什么说RIA的出现是历史的必然,以及RIA对于多层应用的意义究竟是什么。
我们回头来看一看程序分层结构发展的历史。早期的程序是没有什么分层的概念的,包括界面、逻辑和数据在内的所有内容全部编译到单一的执行文件中,如下图所示:
随着应用程序的发展,对数据管理的需求越来越强烈,于是数据库出现了。从而数据这一部分从应用程序中剥离,成为独立于编程语言而单独发展的分支。数据库的独立发展是客户/服务器(C/S)体系结构的前提和必要条件,从此应用程序发展为下图所示的两层结构:
数据库与应用程序的分离,应用程序从单层过度到两层,是分层体系发展历史上的一个重大的里程碑——我个人把它叫做“应用程序的第一次社会大分工”。
想当然耳,有了第一次就会再有第二次。促成第二次社会大分工的是Web的蓬勃发展,HTML成为发布应用界面的标准手段,表现层从逻辑层分离出来,两层结构进化为三层结构:
第二次社会大分工已经发生,三层应用成为标准,那么是不是我们这个历史时代已经结束了呢?接下来是不是应该开始期待四层结构的到来呢?我说不是,三层结构还没有发展到头,革命尚未成功,同志仍需努力。
还有什么任务还没有完成呢?在回答这个问题之前,请你先考虑这样一个问题,多层体系的本质特性是什么?当然不同的人对这个问题会有不同的理解,就我而言,最基础的观点是:一个应用究竟是不是多层应用,要看它的每一层是不是具有独立可替换性。换句话说,把应用程序中的一层完全替换为其他实现,对其他层(理论上)完全没有影响,或者(实际上)只有很小的影响,这个应用才能称为多层应用,否则就是伪多层应用。如果在层与层之间存在严重的耦合,那么分层就没有一点意义了。千万别挂着三层的羊头,卖着两层或单层的狗肉(尽管狗肉不见得不好)。