[摘要] 本文以房產信息管理為例闡述了一種基于web數據庫的信息管理技術,介紹了ASP開發環境的三層體系結構,重點論述了系統功能設計與實現的關鍵技術。
[關鍵詞] 房產信息管理三層體系結構ADOASP動態導航
一、引言
隨著internet技術的廣泛應用,在許多領域需要進行信息查詢。目前住房體制改革不斷深化,我國城鎮居民的住房管理體制已由原來的福利分房向經濟實用化、商品化、社會化逐步過渡。在這個過渡過程中,由于住房制度改革的分段性、房改政策的連續性以及滾動售房的特殊性,勢必產生大量的房改數據;例如:分期付款數據、原房回收數據、標準價改成本價數據、住房公積金數據及超標住房整改數據等。眾所周知,這些數據與職工的切身利益息息相關,不容出錯。因此,如何利用和管理這些數據是大多數企事業單位的管理者非常關注的問題;其次,為了增加房改的透明度,體現房改過程的公正性及公平性,使職工能了解到歷年的房改政策,隨時查詢與自身相關的房改數據,建立一個基于Intranet或Internet的房產信息查詢系統勢在必行。由于計算機網絡的高速發展及網絡服務的日趨完善,在大多數的企事業單位均建立了Intranet網;基于Web的網絡數據庫技術也日趨成熟,這些都為房產信息管理提供了有效的技術支持。
二、總體功能設計
在B/S(Browser/Server)應用程序開發環境中,微軟公司的IIS以其強大的功能,良好的擴展能力及與其它微軟產品的一致性,迅速地流行起來。目前大多數B/S結構應用系統均采用兩層的體系結構,即用ASP程序直接讀取服務器端數據庫的屬性。兩層體系結構的主要缺陷是:無論用戶界面的改變,還是數據庫的邏輯改變,都需要對.asp文件進行改動;如果數據庫的邏輯結構變化較大,需要改動很多ASP程序,這在信息管理上存在很大缺陷。考慮到房改數據的變化性,本文結合RDBMS(關系數據庫管理系統)的三級體系結構,設計了一個基于B/S的三層體系結構,可以使管理更加靈活。
1.三層體系結構的概念。將系統劃分為三層,即:用戶層、數據庫邏輯層、數據庫層。用戶界面層負責處理用戶的輸入和向用戶的輸出,但并不負責解釋其含義,這一層用前端工具開發(如ASP);數據庫邏輯層是上下兩層的紐帶,它根據實際建立的數據庫連接及用戶的請求,通過應用程序訪問數據庫字典,生成SQL語句檢索或更新數據庫,并把結果返回給客戶端,它與客戶端通訊的接口符合某一特定的組件標準(如COM,CORBA),可以用任何支持這種標準的工具開發;數據庫層負責實際的數據存儲和檢索。
2.三層體系結構的設計。在實際設計中,把Server端的ASP應用程序及客戶端的Web瀏覽器作為用戶層,中間的IIS(Microsoft Internet Information Server)/ASP、Java應用程序及數據庫字典作為數據庫邏輯層,后臺利用SQL Sever 2000建立的用戶數據庫作為數據庫層。其總體結構如下圖所示。
三、 管理層面設計
房產信息管理主要為兩大部分:一是用于客戶瀏覽和登錄的功能頁面,包括會員登錄、相關信息及政策查詢、數據查詢;二是網站的后臺管理功能,包括網站的更新、對數據庫的管理以及相關操作,從類別上可以分為三類:會員注冊、普通客戶、登錄會員。
1.后臺數據處理。本系統中的數據庫采用了SQL Server 2000作為后臺數據庫,共建立了三個數據庫,分別用于會員管理、樹型鏈接及用戶信息,數據庫中包含的數據表如下:
genus.mdf:用于實現房改政策及相關信息的樹型鏈接,包括:book(一級目錄)、geuns(二級目錄)。
house.mdf:用于房改數據查詢,包括:房屋出售、住房補貼、住房明細數據、住房公積金數據、售房歷史、交款情況數據等。
number.mdf:存儲用戶數據,包括book(存放用戶的個人信息)。
系統后臺數據處理是利用ADO技術訪問Web數據庫。ADO是建立在應用程序及OLE DB之上的,特別適用于在Internet這種非連接的網絡上使用。另外,ADO幾乎兼容所有系統,是一項跨越操作平臺和程序語言開發環境的先進技術。ADO可以在任何支持COM和OLE的服務器端操作系統上使用。
系統通過ADO技術及ASP應用程序可將用戶需要查詢的信息傳給中間層的Java應用程序,然后通過數據字典生成訪問數據庫的SQL命令,最終將處理結果通過中間層傳輸給Web瀏覽器。
2.用戶注冊管理。系統主要利用數據庫來存儲用戶的個人資料。首先要用戶填寫注冊表,當用戶提交注冊表后,需要對用戶注冊數據進行處理,如果注冊數據有誤,則導向錯誤處理程序,如果數據正確,則在數據庫中增加用戶信息。在對數據處理時利用客戶端的腳本程序對信息進行判斷比較,檢查用戶是否漏填了一些必須要求填寫的內容,用戶的設定密碼和確認密碼是否輸入一致等。
3.用戶管理。用戶注冊成功之后,可以對會員進行分類管理。如最高級別可以查看所有信息,次級級別查看有限信息,低級級別查看指定信息。總的說來,可以給用戶設置不同的權限,從而達到用戶管理的功能
四、關鍵技術的研究
1.指定頁面的固定瀏覽。在本系統的開發過程中,需要考慮如下問題:由于管理的要求,需要對用戶進行限制,即不是本單位的職工不能注冊;注冊成功的用戶,只能訪問指定的頁面,而不是訪問所有內容。因此,需要建立一個本單位職工信息數據庫,當用戶注冊時,若能在數據庫中檢索到用戶輸入的姓名和密碼就允許訪問該頁面。所以需要增加一層檢查系統,可以設計一登錄頁面record.asp,如果用戶沒有登錄,在進入每個需限權訪問的頁面時強制客戶先訪問頁面record.asp實現登錄,成功登錄之后自動返回到剛才要訪問的頁面。該頁面的設計可用ASP的兩個內建對象cookies和session兩種方法來實現,由于cookies存在客戶端,并有一定生存期,如果某用戶在某瀏覽器登錄查詢,那么他離開后,輸入的數據仍然存在,其他人則可以登錄查詢,存在安全隱患。所以應采用了session方法。session是用戶級的全局變量,將客戶成功登錄的信息記錄到session中后,用戶就可直接瀏覽具有限權頁面。
2.動態導航的實現。由于本系統采用了樹型鏈接結構,如果用戶打開所有的目錄,會造成瀏覽界面過長,將導航欄設在頁首部或頁尾部,都會造成用戶導航欄使用不便。所以,在系統內實現動態導航功能,即將導航系統設置成為隨著用戶瀏覽頁面移動而移動,導航欄始終在瀏覽頁(如右圖所示)。
實現原理如下:首先在頁面內插入一個透明圖層,用來裝載超級鏈接,在層內通過具體實現達到美化和使用效果。設置具體函數,通過不斷檢測透明圖層,來達到圖層移動,從而實現動態導航。
3.ASP中的數據緩存。由于本系統經常利用用戶的身份證號碼進行數據查詢,如果每次都從數據庫中讀取數據進行比較,那么就無形增加了服務器的負擔,類似的情況還有用戶注冊信息,一般情況是直接對用戶提交的個人數據送入數據庫,但是,如果用戶的數據有錯誤,或者用戶更新個人信息,同樣要對數據庫操作,也會增加服務器的負擔。出于以上兩方面的原因,需要對數據進行暫存。本系統主要利用cookies和session完成數據緩存的處理。
實現原理:當用戶第一次登錄成功,將身份證號從數據庫中提取出來,存入一個session或cookies中,數據將一直保存,直到session過期,或者是瀏覽器重新啟動,在本系統中cookies的周期是一個月。
4.樹型網頁鏈接。由于歷年的房改文件眾多,如果不采用樹型結構,網頁深度將達到五層,用戶在瀏覽信息的時候,很容易迷失方向。具有分支和層次關系的樹型結構可以輕松將信息分類顯示,具有明顯的優勢。本系統將歷年的房改文件按年度分類,設計成如下圖所示的樹型結構:
具體實現原理:在數據庫內建立兩個表,一個用來存儲一級目錄,另一個用來存儲二級目錄,依此類推。在一級目錄中,設置字段ID,用來標志該一級目錄的名稱,在二級目錄中,同樣設置字段ID,用來歸類,如果兩個表的ID字段值相等,則在一級目錄下顯示二級目錄值。
五、結束語
本文提出了采用三層體系結構的Web數據庫技術,實現基于B/S結構的房產信息管理,該項技術已在中國石油天然氣集團公司應用,經使用證明:效果良好,得到了用戶的充分肯定。特別是使用本文提出的樹型網頁鏈接,用戶可隨時填加信息;使用指定頁面的固定瀏覽技術,保證了用戶數據的安全性和保密性;使用動態導航欄,可以使用戶瀏覽更加方便。使用該項技術具有安全、方便、快捷的特點,在房產信息管理中已經得到了推廣。