RichClient技术对应用架构的影响
Flex,Sliverlight,javaFX,Mozilla Prism,这些RichClient技术纷纷出现。
与ajax这样的改良主义相比,RichClient是一场彻底的革命,让应用可以脱离浏览器而运行。这样的技术变革必然对应用架构产生影响。让我们看一看引入了RichClient会怎样改变应用架构。
RichClient定位于展现层,对应用架构的影响也主要在展现层。我们已经接触了太多的Web Framework,大多数Web Framework都是MVC模式的某种实现。以Struts为例,Struts用jsp form作为View,用Servlet作为前端控制器,并用ActionForm作为Model。一个典型的请求过程为:
浏览器请求控制器
控制器根据请求的类型,调用相应的Action更改Model
Form从Model获取数据
服务器将Form返回给浏览器。
可以看出,传统B/S应用的展现逻辑是在服务器端处理的,浏览器只是展现作为结果的视图;任何请求或数据变化都需要提交给服务器。
ajax技术是对B/S架构的改良,通过ajax,数据请求和数据响应与界面分离开,可以单独进行。
而richClient则更彻底。在RichClient中,客户端可以实现完整的展现逻辑,甚至包括一部分业务逻辑。在RichClient中,前端控制器,Action(或Command),展现数据的Model,以及一部分Business都会包含在Client端。这样,用户的操作在被客户端进行处理,只有Business Object需要对服务器端数据进行操作时,才会通过Service远程调用服务器端。从大的尺度来看,这天然形成了SOA架构。
然而好处不仅如此。由于Client端能够单独处理用户请求,RichClient在缓存了必要的数据后甚至可以离线运行,在需要时再与服务器进行交互。
这样,服务器端不需要再考虑视图,前端控制和展现数据,而仅仅提供业务服务。同时,业务服务需要以一定的协议公开出来,比如HttpService,XML-RPC,或WebService。