企业Web应用以谁为中心:服务器?浏览器? 
前言 
企业Web应用,指的是企业内部使用B/S架构搭建的企业信息系统,用户一般局限在企业内部,为了适应企业某个业务流程而设计开发使用的系统。 
出于跨地域部署升级的考虑,一般采用B/S模式进行开发,避免在每个客户端安装配置的麻烦。 
一般情况下,前台浏览器特指IE浏览器,前台操作系统选择Windows操作系统。 
非Windows操作系统的客户机与非IE的浏览器不在本文讨论范围之内。 
本文主要讨论以J2ee架构为基础的Web应用,其他架构的暂不讨论。 
在这种情况下,数据存储在数据库上,一般没有多大疑问。而附件文件一般存放在Web服务器上,也没有太大疑问。 
最主要的问题是:整个应用应该是以浏览器为中心,还是以服务器为中心?  
 
在J2ee出现的早期,这一问题是不存在的,当时的浏览器,基本上可以看成是互联网时代的终端机。当时的计算模式,是完全基于后台服务器的计算。 
B/S的历史发展沿革 
计算时代划分 浏览器 服务器 总结 
史前时代/静态页面的时代 仅支持Html,只能显示文本和图片 静态文件存储; 
静态时代,没有动态内容 
史前时代/CGI动态页面时代 仅支持Html 利用CGI方式动态生成一个HTML文件给浏览器 动态时代,动态信息由后台服务器计算产生,与前台无关 
Java Applet 
ActiveX控件时代 浏览器里面可以嵌入其他应用程序来显示动态内容 
javascript出现 浏览器第一次拥有了计算能力,把计算资源从服务器上解放了出来 
J2EE时代 
应用服务器时代 Applet被废弃 
javascript开始发展 后台采用J2EE架构,JSP等多种方式生成动态页面 J2EE架构把系统的重心牢牢地绑定在后台的应用服务器上 
后J2EE时代 
开源运动时代 javascript开始大发展,Ajax出现 J2EE开始走向没落,为弥补其缺陷,开源框架出现。 
SSH大行其道 应用服务器不堪重负,轻量级别的框架开始出现作为替代品。 
客户端王者归来 
Ajax时代 Ajax风靡一时 
javascript框架大量出现。 
Flex/SL/ExtJs各行其道 服务器端处于停滞状态,JSF昙花一现 后台的问题已经基本解决,现在关注的重点又转向前台,解决用户界面和友好性问题。 
未来 
自定义浏览器时代 浏览器中的浏览器 
Flex大发展 
SL大发展 
自定义ActiveX 大发展 
javascript逐渐衰退 服务器进一步弱化,弱化为为前台提供必要服务,应用中心转移 通过Ajax技术,利用DWR等工具。 
浏览器终于把握了应用的全面主动权。 
从整体上来看,整个应用架构的发展,体现了从理想的B/S架构到C/S架构的回归过程。 
计算模式历史  
 
初步结论 
核心问题在与浏览器和服务器的合理分工。 
把所有问题压在浏览器或者都压在服务器并不合适。 
新模式技术架构 
按照上面的演化过程,可以提出一种全新的,以浏览器为中心的技术架构模式。 
序号 通用功能 浏览器功能 服务器功能 备注 
1 用户界面渲染 渲染Html为标准用户界面; 
可能内嵌一个自定义的界面渲染工具; 
以纯静态HTML页面为主 
少数以JSP形式提供,动态生成 以浏览器为主,服务器为辅助功能。 
访问采用标准HTTP协议进行 
2 动态数据访问 
(数据库读取/存储) 调用后台功能接口,得到标准格式的数据包信息; 
并对这些数据进行渲染 提供标准访问接口,供浏览器进行调用 前台发送调用要求,后台响应返回结果。 
调用方式可采用DWR模式进行 
3 界面跳转 浏览器根据本身状态变化主动跳转 存储页面跳转规则,将此规则以标准方式发送给浏览器 
4 SQL生成 可以在浏览器生成 可以在服务器生成 两面都可生成,后台生成SQL,前台可以看到 
5 业务逻辑 可以在浏览器实现 可以在服务器实现 如果在后台实现,前台通过Ajax或者DWR方式调用 
6 开发语言工具 javascript 
ExtJs 
ActiveX控件 
COM调用 Pure Java开发 
SSH等开源框架 
EasyCare开发平台 根据需要选择 
7 核心问题 数据交换规范 数据交换规范 数据交换的标准化是系统框架的核心问题  
 
新模式技术范围 
序号 运行点 所使用技术 说明 
1 数据库服务器 SQL 
Oracle 标准SQL语句在服务器端编程开发,创建,维护数据表 
2 应用服务器 Java 
Servlet 
JSP 采用标准Java语言,在应用服务器上编写Servlet,对外提供标准服务 
3 浏览器 HTML 
CSS 标准的HTML,CSS样式来实现渲染,此功能要弱化 
4 浏览器 javascript 
ExtJS javascript调用Extjs等来实现数据处理,动态界面内容的渲染 
5 浏览器 ActiveX 
Flex 采用插件形式来实现对界面动态数据的界面渲染 
6 浏览器 javascript 
Ajax 
DWR 通过DWR等Ajax技术实现前后台的功能调用,后台提供数据,前台负责对返回数据的动态界面渲染 
新模式下人员分工 
序号 角色 技术特长 说明 技术难度 
1 项目经理 负责项目进度管理 中级 
2 架构师 ALL 确定系统技术架构,明确那些技术可用于此项目,如何使用此技术 中级 
3 DBA 数据库管理 数据库规范设计,编写数据字典 中级 
4 后台服务开发 Java 
Servlet 
JSP 利用Java语言,编写后台的通用服务功能,编写前后台的标准数据访问规范 高级 
5 前台界面开发人员 javascript 
DWR 利用javascript,调用后台提供服务,编写前台的显示界面,主要语言为javascript,可能嵌入其他ActiveX控件,JS控件 初级 
6 前台控件开发人员 javascript 
ExtJS 
ActiveX 
VB,VC 利用javascript, VB, VC等工具,编写前台通用的页面级别的控件。 
这一控件专注于对数据显示的界面渲染以及对数据的处理过程,但此过程不涉及与后台的数据信息交互。 高级 
7 项目秘书 Word 编写各种文档,将原始文档归档,格式化。 初级



 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                 
            
                