一種支援動態網站生成的模型與系統

才智咖 人氣:3.24W

論文關鍵詞:Web  動態網站 快速開發

一種支援動態網站生成的模型與系統

論文摘要:首先對網際網路上帶有後臺數據庫的動態網站進行考察,發現佔有相當比例的動態網站結構具有共同性,從而提出了一種對此類動態網站按照功能模組進行縱向劃分的結構體系,以及與之相應的功能組裝式的開發方式,並實現了一個有效、簡單的系統,使一般不懂資料庫的使用者也能夠開發帶有後臺數據庫的動態網站。

1引言及對現狀的分析

隨著網際網路的發展,帶有後臺數據庫的動態網站日益增多。然而對於動態網站的開發,一般都採用橫向的三層(或多層)結構劃分方法,開發中存在一些明顯的問題,最主要的有如下四項:①即使開發一個簡單的系統,也需要專業開發人員;②需要搭建複雜的執行平臺;③開發效率不高,開發週期長;④最終產品中包含的錯誤較多。

為了解決如上的問題,我們對當前網上的動態網站進行了考察,試圖發現其共同點筆者從北京大學主頁出發,採用手工跟蹤連結的方法,對與我們日常生活、工作關係最為密切的一百餘個動態網站進行手工分析和分類,發現動態站點主要的分類和大致比例如表l所示

     

下面對錶1中各項作一簡要說明。

論壇和BBS較為相似,結構複雜、功能強大,但通常功能相對成熟而固定,己經有非常完善的解決方案(如Firehird軟體),因此不是我們考慮的重點問卷、文章評論、身份驗證、列表、報名表、地址簿這六項應用中,每一項應用所佔的比例都不高,但其總和佔到了全部應用的近三分之一,應該說比例很高,再加上留言板,比例已經超過半數。這幾類應用雖然結構都很簡單、但功能各異,因此目前還沒有很好的解決方案,通常都是手工開發,存在下述提到的四個問題,正是我們考慮的重點。

對於動態網站,其關鍵在於後臺中的資料庫操作,因此我們對如上應用的後臺資料庫操作進行分析,發現我們重點考慮的六類不同的應用,其內部的資料庫操作主要都是如下幾類:增加記錄、瀏覽記錄、刪除記錄、查詢記錄、記錄訪問次數、回覆留言、目錄列表、使用者身份認證、資料等。在發現這個規律後,我們對這幾項趁行了詳細考察,發現它們有很強的共同性。多數網站內部實現按照功能劃分,都可分為兩部分:身份認證部分和資料操作部分,而且資料操作部分基本上都是對於單一資料表格的簡單操作,如插人、瀏覽、查詢、刪除等對於身份認證,我們將使用者的身份劃分為非註冊使用者、註冊使用者、資料員、特殊使用者。

由上面的分析,我們可以得到如下的結論:功能和結構都很簡單的專案所佔的比例很高,佔到了50%一60%。而越是這些所佔比例很高的小專案的開發,越存在著我們在上面所提出的四個問題,越是需要巫待解決。下面按照它們的共性重新構造網站的結構。

2基於功能模組的設計模式

2.1傳統的設計模式

我們先按照對於動態網站的典型視角,從頁面、事務、資料儲存這三個層次來觀察一下目前的網站結構。

(I)表現層(頁面層)

①身份認證相關頁面。它包括一般註冊使用者、資料管理員的身份認證,以及對使用者身份進行管理操作的頁面,如修改密碼等。

②資料操作頁面。它包括增加資料、瀏覽資料、修改資料、刪除資料等資料操作的頁面。

③其他頁面。靜態頁面和少量完成其他功能的動態頁面。

(2)事務邏輯與頁面相對應,可以分為:

①身份認證部分。它用來管理一般註冊使用者和資料管理員等賬戶。

②資料操作部分。它也包括增加資料、瀏覽資料、修改資料、刪除資料等資料操作。同樣要說明的一點是:我們關注的應用基本上是對同一個資料表格進行的操作(使用者個人資訊:如密碼等除外)。

(3)資料儲存。它主要儲存在資料庫和檔案系統中,對我們影響不大。

2.2基於功能的網站結構

根據上述分析,我們可以重新定義帶有後臺數據庫操作的動態網站。這裡,我們將暫時忽略靜態頁面和資料儲存部分。對於資料儲存部分的忽略,是因為即使對於完成不同功能的網站,其資料儲存部分可以設計為相同的平臺。因此,我們可以如此定義動態網站:動態網站是多個功能頁面組成的集合。

每個功能頁面含有一個身份認證部分和一個數據操作部分。

身份認證部分表明了使用者要訪問該頁面需要的身份許可權,如系統管理員、註冊使用者、非註冊使用者等。此處我們特別提到“非註冊使用者”實際上對應了毋需身份認證的情況,之所以這樣稱呼,是為了在實現上能夠簡化而統一。網站由身份認證部分和資料區域兩部分構成。圖1(b)身份認證區域的結構相對固定,在不同系統中的結構非常相似。而圖1(a)資料區域的具體功能在不同系統中變化相對較大,但結構卻始終如圖l所示。

        

2.3基於功能的網站結構下的開發方式

(l)動態專案開發公式的提出先考慮結構固定的“身份認證區域”。其模型包括兩部分:①資料區域的頁面結合;②每一項操作都有對應的Web頁面或Web頁面上對應的功能。因此,“身份認證區域”這部分可以被專業開發人員事先開發好,只由一般開發人員在實際構建系統時根據需要選擇何種認證級別,如一般註冊使用者等。

再來看“資料區域”,其結構比較複雜。我們將其再拆分為身份認證部分、頁面功能和資料項。這三項由開發人員來設定,而其餘的如具體的資料操作和資料儲存則由系統完成。因此我們提出瞭如下的動態網站的“開發公式”:

專案=功能頁面+資料項+身份認證資訊

注意,該公式是為了降低系統開發難度而提出的,而不是系統實際結構的拆分。因此,系統可能還含有一些在公式之外的屬性,如系統名稱、系統URL地址等。這些資訊對系統的結構幾乎沒有影響,設定也非常簡單,因此不必考慮。以下對公式中的各個專案一一說明:

①功能頁面。它就是我們平常通過瀏覽器訪問的.網頁,但這個頁面常常對應了一個具體的資料操作,如“投票頁面”就對應了插入新記錄的操作。

②資料項。它是指我們在頁面的表單中見到的資料控制元件所代表的內容。注意:此處是資料項,而不是資料。因為這個公式的用途是設計Web系統。在設計時要考慮的是資料專案,而不是使用實際填寫的資料。一個數據項含有資料的型別、在頁面的表現形式、資料檢查和約束等非常多的屬性。

③身份認證資訊。它是指使用者在使用系統時的身份資格。利用這個資訊,我們就可以區分非註冊使用者、註冊使用者和資料管理員等使用者身份。

(2)動態專案的結構根據我們的開發公式,在非專業開發人員的眼中,網站的結構將如圖2所示。

        

在這個結構中,系統僅僅由多個功能頁面和資料項組成,身份認證資訊為功能頁面的一部分。這樣做就進一步簡化了系統的結構,有利於降低對開發人員的要求。我們只需要設定功能頁面對使用者許可權的要求—比如只有註冊使用者才可以訪問投票頁面,就可以完成身份認證資訊的設定。

2.4問題的回顧

讓我們再來回顧一下在文章開始時提出的四個期待:(l)降低對開發人員的專業水平要求,最好能由一般辦公室工作人員進行開發(2)提高開發效率(3)減少專案中存在的錯誤數量(4)簡化執行平臺的搭建,或不再需要搭建其中的第一二項顯然已經解決;對於第三項,由於程式碼完全自動生成,沒有人工干預,只要系統的質量有保障,這一項也就基本解決;而對於第四項,如果我們地解決方案是以網站的形式出現的話,則也就解決了。因此可以說,我們已經較好地解決了文章開始時提出的四個問題。