我个人认为这样第一是好维护好管理;第二是方便加入安全策略;第三点扩展性强 ...
扩展性强不敢苟同,这实际是facade模式和command模式的区别,面向对象方法让我们细分,每个业务应用一个对象servlet去处理,或者说是REST方式比较好。
将所有应用打包在协议里,这是过去很多人的思路,是一种归纳法,归纳法一般很难得到真理,灵活性不够,最后协议中充满冗余的各种字段,因为对于每个小应用,用比较复杂协议去协调很重。
至于“Servlet会越来越庞大,而且对外的接口太多,安全性也无法保证。”接口很多是正常,分析细化的结果,但不能推算出安全性没有保障,因为现在软件组件化技术已经做到运行时组装,可以为每个servlet增加安全插件比如servlet filter,或者Acegi这样专门安全组件,甚至Web容器本身都提供了安全机制。无论什么样监控,都是对事件的拦截,现在有基于事件的架构EDA,可以让我们很好监控事件。
过去我们对安全的朴素思路是设定一个总出入口,这样安全容易把握(现实中会诞生统一监管的社会制度),这是一种静态思路,忘记了软件是动态运行特点(不只是软件是动态,社会也是动态,是失控的)。
以上只是个人建议。
[该贴被banq于2011-08-20 09:25修改过]