企業(yè)Web應(yīng)用以誰為中心:服務(wù)器?瀏覽器?
前言
企業(yè)Web應(yīng)用,指的是企業(yè)內(nèi)部使用B/S架構(gòu)搭建的企業(yè)信息系統(tǒng),用戶一般局限在企業(yè)內(nèi)部,為了適應(yīng)企業(yè)某個業(yè)務(wù)流程而設(shè)計開發(fā)使用的系統(tǒng)。
出于跨地域部署升級的考慮,一般采用B/S模式進(jìn)行開發(fā),避免在每個客戶端安裝配置的麻煩。
一般情況下,前臺瀏覽器特指IE瀏覽器,前臺操作系統(tǒng)選擇Windows操作系統(tǒng)。
非Windows操作系統(tǒng)的客戶機(jī)與非IE的瀏覽器不在本文討論范圍之內(nèi)。
本文主要討論以J2ee架構(gòu)為基礎(chǔ)的Web應(yīng)用,其他架構(gòu)的暫不討論。
在這種情況下,數(shù)據(jù)存儲在數(shù)據(jù)庫上,一般沒有多大疑問。而附件文件一般存放在Web服務(wù)器上,也沒有太大疑問。
最主要的問題是:整個應(yīng)用應(yīng)該是以瀏覽器為中心,還是以服務(wù)器為中心?
在J2ee出現(xiàn)的早期,這一問題是不存在的,當(dāng)時的瀏覽器,基本上可以看成是互聯(lián)網(wǎng)時代的終端機(jī)。當(dāng)時的計算模式,是完全基于后臺服務(wù)器的計算。
B/S的歷史發(fā)展沿革
計算時代劃分 瀏覽器 服務(wù)器 總結(jié)
史前時代/靜態(tài)頁面的時代 僅支持Html,只能顯示文本和圖片 靜態(tài)文件存儲;
靜態(tài)時代,沒有動態(tài)內(nèi)容
史前時代/CGI動態(tài)頁面時代 僅支持Html 利用CGI方式動態(tài)生成一個HTML文件給瀏覽器 動態(tài)時代,動態(tài)信息由后臺服務(wù)器計算產(chǎn)生,與前臺無關(guān)
Java Applet
ActiveX控件時代 瀏覽器里面可以嵌入其他應(yīng)用程序來顯示動態(tài)內(nèi)容
JavaScript出現(xiàn) 瀏覽器第一次擁有了計算能力,把計算資源從服務(wù)器上解放了出來
J2EE時代
應(yīng)用服務(wù)器時代 Applet被廢棄
Javascript開始發(fā)展 后臺采用J2EE架構(gòu),JSP等多種方式生成動態(tài)頁面 J2EE架構(gòu)把系統(tǒng)的重心牢牢地綁定在后臺的應(yīng)用服務(wù)器上
后J2EE時代
開源運動時代 Javascript開始大發(fā)展,Ajax出現(xiàn) J2EE開始走向沒落,為彌補其缺陷,開源框架出現(xiàn)。
SSH大行其道 應(yīng)用服務(wù)器不堪重負(fù),輕量級別的框架開始出現(xiàn)作為替代品。
客戶端王者歸來
Ajax時代 Ajax風(fēng)靡一時
Javascript框架大量出現(xiàn)。
Flex/SL/ExtJs各行其道 服務(wù)器端處于停滯狀態(tài),JSF曇花一現(xiàn) 后臺的問題已經(jīng)基本解決,現(xiàn)在關(guān)注的重點又轉(zhuǎn)向前臺,解決用戶界面和友好性問題。
未來
自定義瀏覽器時代 瀏覽器中的瀏覽器
Flex大發(fā)展
SL大發(fā)展
自定義ActiveX 大發(fā)展
JavaScript逐漸衰退 服務(wù)器進(jìn)一步弱化,弱化為為前臺提供必要服務(wù),應(yīng)用中心轉(zhuǎn)移 通過Ajax技術(shù),利用DWR等工具。
瀏覽器終于把握了應(yīng)用的全面主動權(quán)。
從整體上來看,整個應(yīng)用架構(gòu)的發(fā)展,體現(xiàn)了從理想的B/S架構(gòu)到C/S架構(gòu)的回歸過程。
計算模式歷史
初步結(jié)論
核心問題在與瀏覽器和服務(wù)器的合理分工。
把所有問題壓在瀏覽器或者都壓在服務(wù)器并不合適。
新模式技術(shù)架構(gòu)
按照上面的演化過程,可以提出一種全新的,以瀏覽器為中心的技術(shù)架構(gòu)模式。
序號 通用功能 瀏覽器功能 服務(wù)器功能 備注
1 用戶界面渲染 渲染Html為標(biāo)準(zhǔn)用戶界面;
可能內(nèi)嵌一個自定義的界面渲染工具;
以純靜態(tài)HTML頁面為主
少數(shù)以JSP形式提供,動態(tài)生成 以瀏覽器為主,服務(wù)器為輔助功能。
訪問采用標(biāo)準(zhǔn)HTTP協(xié)議進(jìn)行
2 動態(tài)數(shù)據(jù)訪問
(數(shù)據(jù)庫讀取/存儲) 調(diào)用后臺功能接口,得到標(biāo)準(zhǔn)格式的數(shù)據(jù)包信息;
并對這些數(shù)據(jù)進(jìn)行渲染 提供標(biāo)準(zhǔn)訪問接口,供瀏覽器進(jìn)行調(diào)用 前臺發(fā)送調(diào)用要求,后臺響應(yīng)返回結(jié)果。
調(diào)用方式可采用DWR模式進(jìn)行
3 界面跳轉(zhuǎn) 瀏覽器根據(jù)本身狀態(tài)變化主動跳轉(zhuǎn) 存儲頁面跳轉(zhuǎn)規(guī)則,將此規(guī)則以標(biāo)準(zhǔn)方式發(fā)送給瀏覽器
4 SQL生成 可以在瀏覽器生成 可以在服務(wù)器生成 兩面都可生成,后臺生成SQL,前臺可以看到
5 業(yè)務(wù)邏輯 可以在瀏覽器實現(xiàn) 可以在服務(wù)器實現(xiàn) 如果在后臺實現(xiàn),前臺通過Ajax或者DWR方式調(diào)用
6 開發(fā)語言工具 JavaScript
ExtJs
ActiveX控件
COM調(diào)用 Pure Java開發(fā)
SSH等開源框架
EasyCare開發(fā)平臺 根據(jù)需要選擇
7 核心問題 數(shù)據(jù)交換規(guī)范 數(shù)據(jù)交換規(guī)范 數(shù)據(jù)交換的標(biāo)準(zhǔn)化是系統(tǒng)框架的核心問題
新模式技術(shù)范圍
序號 運行點 所使用技術(shù) 說明
1 數(shù)據(jù)庫服務(wù)器 SQL
Oracle 標(biāo)準(zhǔn)SQL語句在服務(wù)器端編程開發(fā),創(chuàng)建,維護(hù)數(shù)據(jù)表
2 應(yīng)用服務(wù)器 Java
Servlet
JSP 采用標(biāo)準(zhǔn)Java語言,在應(yīng)用服務(wù)器上編寫Servlet,對外提供標(biāo)準(zhǔn)服務(wù)
3 瀏覽器 HTML
CSS 標(biāo)準(zhǔn)的HTML,CSS樣式來實現(xiàn)渲染,此功能要弱化
4 瀏覽器 JavaScript
ExtJS JavaScript調(diào)用Extjs等來實現(xiàn)數(shù)據(jù)處理,動態(tài)界面內(nèi)容的渲染
5 瀏覽器 ActiveX
Flex 采用插件形式來實現(xiàn)對界面動態(tài)數(shù)據(jù)的界面渲染
6 瀏覽器 JavaScript
Ajax
DWR 通過DWR等Ajax技術(shù)實現(xiàn)前后臺的功能調(diào)用,后臺提供數(shù)據(jù),前臺負(fù)責(zé)對返回數(shù)據(jù)的動態(tài)界面渲染
新模式下人員分工
序號 角色 技術(shù)特長 說明 技術(shù)難度
1 項目經(jīng)理 負(fù)責(zé)項目進(jìn)度管理 中級
2 架構(gòu)師 ALL 確定系統(tǒng)技術(shù)架構(gòu),明確那些技術(shù)可用于此項目,如何使用此技術(shù) 中級
3 DBA 數(shù)據(jù)庫管理 數(shù)據(jù)庫規(guī)范設(shè)計,編寫數(shù)據(jù)字典 中級
4 后臺服務(wù)開發(fā) Java
Servlet
JSP 利用Java語言,編寫后臺的通用服務(wù)功能,編寫前后臺的標(biāo)準(zhǔn)數(shù)據(jù)訪問規(guī)范 高級
5 前臺界面開發(fā)人員 JavaScript
DWR 利用JavaScript,調(diào)用后臺提供服務(wù),編寫前臺的顯示界面,主要語言為JavaScript,可能嵌入其他ActiveX控件,JS控件 初級
6 前臺控件開發(fā)人員 JavaScript
ExtJS
ActiveX
VB,VC 利用JavaScript, VB, VC等工具,編寫前臺通用的頁面級別的控件。
這一控件專注于對數(shù)據(jù)顯示的界面渲染以及對數(shù)據(jù)的處理過程,但此過程不涉及與后臺的數(shù)據(jù)信息交互。 高級
7 項目秘書 Word 編寫各種文檔,將原始文檔歸檔,格式化。 初級
it知識庫:企業(yè)Web應(yīng)用以誰為中心:服務(wù)器?瀏覽器?,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。