[摘要]Brower/Server模式已經成為當前開發管理信息系統的流行方式,闡述了利用B/S模式開發管理信息系統的方法,詳細介紹了基于三層結構B/S模式的系統實現的原理和方法,比較了數據庫訪問等關鍵問題的實現方法。
[關鍵詞]三層結構 Brower/Server模式 管理系統
一、概述
Client/Serve模式即客戶機/服務器模式,上個世紀90年代以來,隨著計算機技術、網絡技術和數據庫技術的發展,網絡環境下的管理信息系統的應用已經從傳統的文件服務器系統轉向客戶機/服務器模式。
Client/Serve模式是將一個計算機應用的大型任務分解成若干個子任務,利用網絡將這些子任務分配到組成計算機網絡的多個計算機上運行,實現了計算機資源的均衡利用。在Client/Serve模式下,一個完整的系統中的計算機分為兩部分,即服務器和客戶機。服務器主要用來管理數據庫的共享和向客戶提供服務;客戶機主要管理用戶接口,執行用戶應用程序、向服務器發出數據請求。
Brower/Server模式比C/S模式更加進一步,使服務更加向服務器集中,在客戶端不再需要開發應用程序,只需要一個通用的瀏覽器就可以完成操作,這樣做使系統的維護變得簡單了,只需要維護服務器端,客戶端不再需要維護,并且數據的安全性和完整性更加容易的得到保證。但是,這種方式不適合大量的數據修改和打印輸出。因此,使用C/S模式和B/S模式開發企業管理系統的方式已經成為目前軟件開發的主流。
二、技術方案
目前,比較流行的B/S模型都采用三層模式結構:表示層、中間層和數據服務層。
表示層,提供用戶使用的可視化界面,用戶可以通過表示層界面查看信息和數據,并可以通過表示層發出服務請求。表示層一般都沒有應用程序,采用通用的瀏覽(Internet Explorer ,Netscape等),借助動態WEB頁面技術(ActiveX、JavaScript和VBScript等),顯示結果和向系統發出請求。
中間層由WEB SERVER和Web服務器與數據庫之間的應用程序擔任,Web負責接受遠程或本地的數據請求,然后按照數據請求的要求,執行相應的應用程序,向數據服務層發出數據查詢或數據修改的請求,并將數據服務層響應的結果轉換成HTML文本,發送給表示層。Web Server與數據庫之間的這些應用程序主要有CGI、ASP和JSP三種基本方式。
數據服務層是一個數據庫服務器,他負責管理數據的查詢、更新,保障數據的完整及數據的安全,他可以是集中式的也可以是分布式的,他接受中間層的數據請求,并把結果傳送給中間層。

用戶訪問數據的過程如圖所示,由用戶向WEB服務器發出請求,WEB服務器處理用戶的請求并將該請求轉換成對數據庫的請求,發送到數據庫服務器,數據庫服務器響應該請求,完成數據操作,并將結果返回WEB服務器,WEB服務器將這些數據轉換成HTML格式發送給用戶端。圖為B/S模式下用戶訪問數據庫的過程。
在WEB中與數據庫接口的主要技術有CGI、ASP或Java。
1.CGI(公共網關接口)是一種由應用者開發的應用程序,一般保存在服務器的一個目錄中,如CGI-BIN目錄或CGI-WIN目錄,在Web頁面中,主要是通過HTML表單或者是超級鏈接的方式來執行CGI程序的。當客戶端發出瀏覽請求時,服務器收到請求后進行響應,按照客戶請求中提供的文件名和路徑,執行一個已經存在的CGI程序,在CGI程序中,可以調用其它應用程序如使用數據庫標準查詢(SQL)進行數據庫訪問等,這些被調用的程序將結果返回給CGI,CGI又將結果傳遞給Web服務器,進而輸出到瀏覽器。
可以編寫CGI程序的編程語言有很多,事實上,任何一種程序設計語言所設計的應用程序如果可以在服務器上運行并可以同服務器交換有關信息,則這種語言就可以被認為是一種CGI程序語言。常用的CGI程序設計語言有Perl、UNIX Shell、C、C++、VisualBasic、Java、JavaScript和VBScript等。由于CGI是一個獨立的程序,每一次調用CGI,系統都要為CGI程序創建一個新進程 ,當用戶訪問量很大時,會造成系統資源不足。
2.ASP是Active Server Pages的縮寫,是由微軟開發的一種服務器方編程技術,ASP作為一種可以產生和執行動態、交互式、高效率的獨立于瀏覽器、不需要編譯的Web服務器應用程序開發工具得到了廣泛地應用,ASP可以組合HTML頁、腳本命令和ActiveX組件創建交互的和基于Web的應用程序。
ASP的基本工作原理是:當用戶通過瀏覽器從Web服務器IIS上請求。asp文件時,Web服務器響應HTML請求,調用ASP引擎解釋被申請的文件,當遇到任何與ActiveX Scripting兼容的腳本(VBScript和JavaScript)時,ASP引擎會調用相應的腳本引擎進行處理,并將處理的結果返回瀏覽器。
ASP支持ActiveX組件技術,其中ADO是一種容易使用并且可擴展的將數據庫訪問添加到Web頁的數據庫接口技術。使用ASP進行開發的系統可以方便于用戶進行數據發布、修改。ASP的執行效率很高,支持ASP技術的開發工具很多,并且ASP不像CGI那樣,一個進程只能處理一次客戶請求,一個ASP進程可以處理多個客戶請求,對系統的資源要求較低。但是,ASP技術對Windows的依賴太強烈,從而使他的安全性和穩定性受Windows操作系統的很大影響。由于ASP技術的效率依賴COM組件的效率,程序開發者無法進一步提高ASP程序的工作效率。
3.JSP是Java Server Pages的縮寫,是基于Java Servlet以及整個Java體系的Web開發技術。JSP技術是SUN公司提出的,它充分利用了Java的通用性,同時,針對Java的速度問題進行了優化。另外,由于許多大公司開始支持JSP的Web服務器,這使得JSP已經成為架設動態網站的成熟技術,它利用JDBC(Java Database Connectivity)的API實現對后臺數據服務器的訪問,由于JDBC是獨立于數據庫服務器系統的,要訪問不同的數據庫(SQL Server、Oracle、DB2等),就要針對不同數據庫的JDBC驅動程序來連接這些數據庫;另外SUN公司為了提高JDBC的通用性,提供了一個JDBC-ODBC的驅動序,它可以完成JDBC到ODBC的數據連接,這樣,用戶可以使用ODBC訪問不同的數據庫,再通過JDBC-ODBC完成JDBC和數據庫的連接。
三、系統實現
根據B/S模型的三層結構,本文以學生成績查詢為例,采用ASP技術構造管理信息系統。
本系采用Windows 2000作為服務器端操作系統,在Windows 2000和Windows 2000系統內建的IIS支持系統構建WEB服務器,數據庫采用SQLServer 2000。在ASP程序中,使用ADO提供的對象,完成數據庫操作。
首先,定義數據源,為ADO組件訪問后臺數據庫確定一條通訊途徑,數據庫驅動程序使用DNS(Data Source Name)定位和標識特定的ODBC兼容數據庫,將信息從WEB應用程序傳遞給數據庫。
第二,在ASP應用程序中建立數據庫連接,用ADO提供的Connection對象建立和管理應用程序和ODBC之間的連接。
第三,用Connection對象的Execute方法,發出SQL命令對數據庫進行操作。
第四,使用ADO的Recordset對象完成數據檢索,數據更新。
使用ADO實現數據庫連接和查詢的程序如下:
Set cnnDB = Server.CreateObject(“ADODB.Connection”)
strCon = “DRIVER={SQL Server};SERVER=w28;UID=sa;PWD=123456;DATABASE=aa”
cnnDB.Open strCon
set rs = Server.CreateObject(“ADODB.Recordset”)
rs.Open “SELECT * FROM cj WHERE xh='9901001'”, cnnDB
(輸出顯示)
...
rs.Close
cnnDB.Close
四、結束語
采用B/S模型的三層結構開發基于Web的管理信息系統的技術已經成熟,在許多管理系統中已經被采用,也成為目前開發管理信息系統最流行的方式。
參考文獻:
[1]Intranet.客戶機/服務器應用指南.Norman E.Smith .人民郵電出版社.
[2] 李明,許亮基.于Web的數據倉庫系統研究[J].計算機工程與應用.2002,7.
[3] 馮利軍 .ASPADO.一個完整的Web數據庫訪問解決方案[J].河北農業大學學報,2002,4.
(作者單位: 遼寧鐵嶺師范專科學校理工學院)