企业应用系统:C/S vs B/S三层J2EE架构之争

Merry Zhang

 

最近企业信息化系统(特质运行在专用网里的特定行业应用系统)中,需要开发新的销售系统。由于销售分布于全国各地分公司,有人便提出来,为了方便部署,需要开发Web版的销售信息系统。企业原有一套C/S的三层架构的软件快速开发平台,而为了开发Web版的销售信息系统,则有需要开发一个基于B/S的三层架构的开发平台,众所周知,Web版的应用的开发的难度是大于桌面应用系统的难度的,最重要表现在:

1Web技术体系复杂,需要掌握CSSJavaScriptHTMLJSPServlet知识,需要掌握如Cookies, SessionWeb缓存技术等。

2Web前端是无状态的。

3多线程问题,需要更多地考虑线程安全。

4)在C/S下,Session是可控的,而B/S下,Session需要和Cookie进行协调,而且Cookie的时效性是有限制的。

5)还需要在成熟框架上进行二次开发,而C/S可以构建自己的客户端的开发框架(MVC)。

 

对于基于J2EEC/S三层架构来说,企业目前已经有了一个现成的已经开发的快速开发平台,开发的团队对于这种开发模式也十分熟悉了,开发销售信息系统时,则只需要在总结之前的系统的开发经验的基础上,进行架构设计的完善,开发人员不需要转变太多的设计思维,不需要掌握复杂的Web开发体系。

 

除上述之外,C/SB/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)人机交互能力太弱,有些特殊的地方还不得不借助技术ActiveXApplet。使得B/S仅有的一点点部署方便的优势荡然无存。 

 

综合企业应用系统的特点,开发团队的力量,C/SB/S三层架构的特点,企业没有理由选择B/S的三层架构而不选C/S三层架构。

09-05 06:10