学习是一种信仰。
分类: 架构设计与优化
2013-07-30 21:41:06
Merry Zhang
最近企业信息化系统(特质运行在专用网里的特定行业应用系统)中,需要开发新的销售系统。由于销售分布于全国各地分公司,有人便提出来,为了方便部署,需要开发Web版的销售信息系统。企业原有一套C/S的三层架构的软件快速开发平台,而为了开发Web版的销售信息系统,则有需要开发一个基于B/S的三层架构的开发平台,众所周知,Web版的应用的开发的难度是大于桌面应用系统的难度的,最重要表现在:
(1)Web技术体系复杂,需要掌握CSS,JavaScript,HTML,JSP,Servlet知识,需要掌握如Cookies, Session,Web缓存技术等。
(2)Web前端是无状态的。
(3)多线程问题,需要更多地考虑线程安全。
(4)在C/S下,Session是可控的,而B/S下,Session需要和Cookie进行协调,而且Cookie的时效性是有限制的。
(5)还需要在成熟框架上进行二次开发,而C/S可以构建自己的客户端的开发框架(MVC)。
对于基于J2EE的C/S三层架构来说,企业目前已经有了一个现成的已经开发的快速开发平台,开发的团队对于这种开发模式也十分熟悉了,开发销售信息系统时,则只需要在总结之前的系统的开发经验的基础上,进行架构设计的完善,开发人员不需要转变太多的设计思维,不需要掌握复杂的Web开发体系。
除上述之外,C/S和B/S三层架构在构建企业应用系统到底有哪些优缺点呢?我们如何选择呢?
问过企业内部支持B/S的三层架构的人员,他们的观点主要是:
(1)觉得J2EE(B/S)代表了时尚潮流,代表了先进。
(2)为了数据和业务逻辑集中,实现部署、升级的方便。
(3)为了应用服务器集中、方便做集群和各种负载均衡。
(4)觉得B/S的应用客户端只需要IE浏览器,不需要安装其它软件,软件更新方便。
针对上述的观点,
(1)评价系统优劣最直接的三要素:方便、快捷、稳定,而不是技术看上去有多先进,根据企业现有的条件以及已经开发了的系统来看,C/S的系统从实用的角度来看,的确是更加方便,快捷和稳定,主要表现在,用户交互性更好,客户界面组件,想开发成如何样子,便可以自己定制,开发快捷,不需要考虑会话,Cookies等。
(2)三层C/S一样可以做到为了数据和业务逻辑集中,实现部署、升级的方便。
(3)三层C/S一样可以实现应用服务器集群和负载均衡。
(4)客户端的软件自动远程更新做得完善,可以弥补C/S在(4)的方面的不足。
此外,B/S还存在以下两个弱点:
(1)实时响应速度差。
(2)人机交互能力太弱,有些特殊的地方还不得不借助技术ActiveX和Applet。使得B/S仅有的一点点部署方便的优势荡然无存。
综合企业应用系统的特点,开发团队的力量,C/S与B/S三层架构的特点,企业没有理由选择B/S的三层架构而不选C/S三层架构。