徐烈英
(唐山職業(yè)技術(shù)學(xué)院 宣傳部,唐山 063004)
計(jì)算機(jī)網(wǎng)絡(luò)在人民生活和社會(huì)發(fā)展中扮演著越來(lái)越重要的角色。WWW網(wǎng)站運(yùn)行作為互連網(wǎng)的重要應(yīng)用之一已成為具有最廣泛用戶的首要應(yīng)用。Web網(wǎng)站是直接向用戶或潛在的客戶提供產(chǎn)品信息和服務(wù)信息的一種途徑,其內(nèi)容是由超文本的文本、聲音、圖形圖像甚至電影等形式組成,它們能夠有機(jī)地關(guān)聯(lián)并可被瀏覽器識(shí)別,是通過(guò)HTML語(yǔ)言實(shí)現(xiàn)的。同時(shí),CGI又使Web具有交互功能。Web網(wǎng)站能指引用戶瀏覽該站點(diǎn)或其他站點(diǎn)上的分頁(yè)信息,可以通過(guò)表單或電子郵件的連接提供雙向交互方式。
網(wǎng)站是未來(lái)開(kāi)展電子商務(wù)與遠(yuǎn)程教育的基礎(chǔ)設(shè)施和信息平臺(tái),它是知識(shí)經(jīng)濟(jì)的制高點(diǎn),企業(yè)的網(wǎng)址猶如企業(yè)的品牌和商標(biāo)一樣,是反映企業(yè)形象和文化的巨大的無(wú)形資產(chǎn)。Web網(wǎng)站的設(shè)計(jì)猶如報(bào)紙中設(shè)計(jì)的一頁(yè)篇幅,又像電視中設(shè)計(jì)的一個(gè)片段,能給讀者或觀眾留下深刻的印象,從而產(chǎn)生廣告效應(yīng)。Web網(wǎng)站的管理與維護(hù)不單要對(duì)網(wǎng)站的內(nèi)容進(jìn)行修改與更新,還要與瀏覽者通過(guò)各種因特網(wǎng)方式進(jìn)行互動(dòng),從而產(chǎn)生“客戶群”等作用。本文主要介紹了數(shù)據(jù)庫(kù)軟件系統(tǒng)在網(wǎng)站的設(shè)計(jì)和維護(hù)等方面的作用。
網(wǎng)站是宣傳的工具,是一個(gè)組織的形象窗口,不論是商業(yè)性還是非商業(yè)性網(wǎng)站,都希望以最小的投入達(dá)到最好的運(yùn)行效果。通過(guò)合理的網(wǎng)站設(shè)計(jì),可以獲得一個(gè)更好的模式和更好的運(yùn)行效果。目前,基于數(shù)據(jù)庫(kù)的運(yùn)行和管理的網(wǎng)站運(yùn)行模式就是一種典型設(shè)計(jì)。
整個(gè)設(shè)計(jì)開(kāi)發(fā)過(guò)程,都是本著技術(shù)先進(jìn)、界面友好、功能全面、維護(hù)性好的設(shè)計(jì)目標(biāo),以軟件工程學(xué)的觀點(diǎn)和方法系統(tǒng)的研究了整個(gè)開(kāi)發(fā)過(guò)程,有計(jì)劃、有步驟地分模塊進(jìn)行軟件開(kāi)發(fā),以提高其效率,保證質(zhì)量。當(dāng)前,動(dòng)態(tài)模式是將編程腳本技術(shù)(SCRIPT)、層迭樣式技術(shù)(CSS)和文本對(duì)象技術(shù)(DOM)應(yīng)用于網(wǎng)站設(shè)計(jì),從而實(shí)現(xiàn)生動(dòng)、豐富的頁(yè)面效果。在信息化的今天,頁(yè)面內(nèi)容更新速度的增快,直接加大了網(wǎng)站運(yùn)行維護(hù)的成本。因此,越來(lái)越多的網(wǎng)站使用了基于數(shù)據(jù)庫(kù)的網(wǎng)站設(shè)計(jì)技術(shù),即B/S結(jié)構(gòu)的網(wǎng)站設(shè)計(jì)技術(shù)。
B/S結(jié)構(gòu)是一種具有二級(jí)的Client/Server模式(亦即三層C/S結(jié)構(gòu)),如圖1所示。
圖1 B/S結(jié)構(gòu)模型示意圖
第一級(jí)C/S結(jié)構(gòu)是給Web服務(wù)器提供的WWW服務(wù),同時(shí)又給客戶端瀏覽器提供瀏覽服務(wù)。在Web Server上安裝著預(yù)先建立的網(wǎng)頁(yè)文件,這些頁(yè)面描述語(yǔ)言可以包括運(yùn)行在客戶端的HTML、DHTML標(biāo)注語(yǔ)言,VBscript、Javascript腳本語(yǔ)言和運(yùn)行在服務(wù)器上的ASP、PHP、JSP 等多種編程語(yǔ)言。服務(wù)器將執(zhí)行結(jié)果轉(zhuǎn)換成對(duì)應(yīng)的HTML語(yǔ)言文本傳送到客戶端,再由客戶端軟件解釋運(yùn)行,產(chǎn)生顯示結(jié)果。第二級(jí)C/S結(jié)構(gòu)則是將Web服務(wù)器作為客戶機(jī),進(jìn)行以數(shù)據(jù)庫(kù)系統(tǒng)為服務(wù)器的C/S運(yùn)行模式??蛻舳艘跃幊陶Z(yǔ)言C++、ASP、PHP、JSP等的程序作為客戶端軟件進(jìn)行數(shù)據(jù)庫(kù)的訪問(wèn)操作。通過(guò)CGI或者其他方式實(shí)現(xiàn)Web服務(wù)器端與客戶端實(shí)現(xiàn)信息互動(dòng)。服務(wù)器端同時(shí)使用第三方數(shù)據(jù)庫(kù)系統(tǒng)(如Ac2cess、SQL Server、Oracle等)作為數(shù)據(jù)庫(kù)的支持與管理系統(tǒng)來(lái)提供第二級(jí)C/S結(jié)構(gòu)的數(shù)據(jù)庫(kù)服務(wù)。
早期的不少的網(wǎng)站設(shè)計(jì)主要只包含第一級(jí)C/S結(jié)構(gòu)。這樣的網(wǎng)站缺乏互動(dòng)成分,且更新速度慢。這也是許多非商業(yè)性網(wǎng)站存在的弱點(diǎn)。即使是有些商業(yè)性網(wǎng)站,數(shù)據(jù)庫(kù)的應(yīng)用也主要體現(xiàn)在用戶的注冊(cè)登錄,信息檢索等方面,而在信息的更新、編輯仍然需要大量熟練工程技術(shù)人員參與。這毫無(wú)疑問(wèn)會(huì)大大增加網(wǎng)站的運(yùn)行成本。而B(niǎo)/S結(jié)構(gòu)的網(wǎng)站設(shè)計(jì)技術(shù),就能很好的解決這一問(wèn)題。
當(dāng)網(wǎng)站建設(shè)有了一定規(guī)模以后,尤其是對(duì)于那些流量較大、內(nèi)容較多的網(wǎng)站,每天更新站點(diǎn)成了網(wǎng)站管理員維護(hù)網(wǎng)站的首要任務(wù)之一。然而,往往是有了資料以后,還要先做出與其相關(guān)的頁(yè)面,然后才能對(duì)網(wǎng)站進(jìn)行更新,這對(duì)于那些流量小,且時(shí)間充裕的管理員來(lái)說(shuō)問(wèn)題不大;但當(dāng)站點(diǎn)是一個(gè)企業(yè)網(wǎng)站,有較大規(guī)模,每天的新聞或公告等信息發(fā)布較多,這樣的更新就成了一項(xiàng)繁重的任務(wù)。根據(jù)制作網(wǎng)站的經(jīng)驗(yàn),將信息動(dòng)態(tài)存入數(shù)據(jù)庫(kù),并利用ASP技術(shù),及時(shí)把數(shù)據(jù)庫(kù)信息顯示到頁(yè)面上。這樣就不用每一條信息都做一幅靜態(tài)頁(yè)面,然后再鏈接到網(wǎng)頁(yè)條目中,而讓頁(yè)面能保持自動(dòng)更新和自動(dòng)生成瀏覽頁(yè)面。下面重點(diǎn)介紹在網(wǎng)站的動(dòng)態(tài)設(shè)計(jì)過(guò)程中如何建立數(shù)據(jù)庫(kù)連接和數(shù)據(jù)庫(kù)記錄的添加、修改、檢索和刪除。
一個(gè)真正的、完整的站點(diǎn)離不開(kāi)數(shù)據(jù)庫(kù)。利用數(shù)據(jù)庫(kù)管理數(shù)據(jù),可使查詢和更新方便、快捷。數(shù)據(jù)庫(kù)有很多種,如Fox數(shù)據(jù)庫(kù)( .dbf )、Access數(shù)據(jù)庫(kù)( .mdb)、Informix、Oracle和SQL Server等等。下面以Mi2crosoft Access數(shù)據(jù)庫(kù)和SQL Server 2000為例來(lái)說(shuō)明如何訪問(wèn)數(shù)據(jù)庫(kù)。訪問(wèn)數(shù)據(jù)庫(kù)首先要連接數(shù)據(jù)庫(kù),這要用到ADO對(duì)象,下面簡(jiǎn)單介紹ADO的概念,然后給出具體數(shù)據(jù)庫(kù)連接的例子。
瀏覽器為客戶端的操作平臺(tái),Web服務(wù)器可以基于IIS服務(wù)器或PWS的個(gè)人服務(wù)器。為了使數(shù)據(jù)更新方便,現(xiàn)代Web網(wǎng)站大量使用動(dòng)態(tài)網(wǎng)頁(yè),這類(lèi)網(wǎng)頁(yè)的數(shù)據(jù)一般通過(guò)數(shù)據(jù)庫(kù)來(lái)管理, 因此應(yīng)設(shè)置后臺(tái)數(shù)據(jù)庫(kù)來(lái)存放所有數(shù)據(jù)。Web服務(wù)器要訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù),需通過(guò)ASP文件的ADO對(duì)象來(lái)實(shí)現(xiàn)。如圖2所示。
圖2 原理模型
ADO是以ActiveX技術(shù)為基礎(chǔ)的數(shù)據(jù)存取方法,其特點(diǎn)是使用簡(jiǎn)單、訪問(wèn)速度快。此外,還可以通過(guò)具有遠(yuǎn)程數(shù)據(jù)服務(wù)功能的RDS,在一次循環(huán)中就能把服務(wù)器端的數(shù)據(jù)傳送到客戶端的應(yīng)用程序或Web頁(yè)面中,在客戶端對(duì)數(shù)據(jù)進(jìn)行處理后,便能立即更新服務(wù)器端的數(shù)據(jù)。ASP是一種動(dòng)態(tài)服務(wù)器主頁(yè),利用它可以建立和運(yùn)行動(dòng)態(tài)的、高效的、交互的Web服務(wù)器的應(yīng)用程序。Web服務(wù)器能自動(dòng)將ASP程序解讀成標(biāo)準(zhǔn)的HTML格式的網(wǎng)頁(yè)內(nèi)容,并送到用戶的瀏覽器得以顯示。因此,用戶只要使用支持HTML代碼的瀏覽器,就可以瀏覽所有用ASP設(shè)計(jì)的網(wǎng)頁(yè)。若客戶的瀏覽器向Web服務(wù)器請(qǐng)求下載文件時(shí),Web服務(wù)器會(huì)在提取文件后,隨即判斷該文件的類(lèi)型,如果是HTML文件,就可直接將文件下載給客戶。若是ASP文件,IIS、PWS則會(huì)先予以解讀,在解讀的過(guò)程中,如遇到HTML標(biāo)記或一般文字,會(huì)直接將有關(guān)內(nèi)容下載給客戶瀏覽器;如遇到< % % >的標(biāo)記,則將其中內(nèi)容視為程序,按下述步驟予以解釋執(zhí)行:
1)使用ASP程序中的ADO對(duì)象發(fā)送SQL指令,從數(shù)據(jù)庫(kù)中取出所需數(shù)據(jù)。
2)由ASP程序的ADO對(duì)象發(fā)出指令,把從數(shù)據(jù)庫(kù)中取出的數(shù)據(jù)傳送給Web服務(wù)器。
3)通過(guò)HTTP傳輸協(xié)議將有關(guān)數(shù)據(jù)下載到客戶端,送往瀏覽器顯示。
在上述過(guò)程中,ASP程序是直接在服務(wù)器上解釋執(zhí)行,其源代碼不用下載到客戶端,進(jìn)一步保證了源程序的安全。
2.3.1 模塊組成
Web網(wǎng)站維護(hù)方法可以分為以下三個(gè)模塊予以編程實(shí)現(xiàn)。
1)數(shù)據(jù)編輯模塊
此模塊主要是實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)內(nèi)容的添加、刪除與修改。用戶只需通過(guò)客戶端的瀏覽器進(jìn)入網(wǎng)站的主頁(yè),即可調(diào)用維護(hù)程序進(jìn)行操作。如果是添加內(nèi)容操作,只需按界面提示填寫(xiě)內(nèi)容后提交即可。如果是進(jìn)行修改或刪除操作,則應(yīng)先從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù)后,再按界面提示逐一操作,之后再將處理結(jié)果予以提交。為防止非法用戶隨意更改網(wǎng)站 內(nèi)容,除了使用網(wǎng)絡(luò)系統(tǒng)平臺(tái)的安全體系對(duì)用戶進(jìn)行一般的身份認(rèn)證外,在此模塊的界面上還采取了頁(yè)面加密措施,包括在IIS和在有關(guān)文件夾中設(shè)立權(quán)限等。此外,此模塊還自動(dòng)識(shí)別用戶所提交數(shù)據(jù)的格式是否正確,不正確時(shí)將要求用戶重新填寫(xiě)。
2)數(shù)據(jù)的存儲(chǔ)
將用戶通過(guò)數(shù)據(jù)編輯模塊提交的結(jié)果按要求入庫(kù),是數(shù)據(jù)存儲(chǔ)模塊的主要功能。該模塊使用ASP程序接收用戶的提交請(qǐng)求,通過(guò)ADO對(duì)象發(fā)送相應(yīng)的SQL指令,將相應(yīng)數(shù)據(jù)存入數(shù)據(jù)庫(kù)。
3)用戶瀏覽器接口
客戶端瀏覽器必須通過(guò)該接口才能瀏覽數(shù)據(jù)庫(kù)中的數(shù)據(jù),該接口同時(shí)還能提高網(wǎng)頁(yè)的瀏覽速度。當(dāng)接口收到用戶的瀏覽請(qǐng)求時(shí),將先通過(guò)ASP程序所提供的對(duì)象到庫(kù)中提取數(shù)據(jù),然后由Web服務(wù)器送給瀏覽器。
2.3.2 開(kāi)發(fā)環(huán)境
1)系統(tǒng)平臺(tái)
可以在Windows NT 和IIS服務(wù)器系統(tǒng)平臺(tái),也可以基于Unix或PWS個(gè)人服務(wù)器等平臺(tái)上開(kāi)發(fā)。
2)數(shù)據(jù)庫(kù)的選擇
目前可用的數(shù)據(jù)庫(kù)系統(tǒng)有很多,如Oracle、Sybase、Access等都是很好的產(chǎn)品。但Oracle數(shù)據(jù)庫(kù)對(duì)系統(tǒng)的軟硬件環(huán)境、使用及維護(hù)等方面要求較高, 且投資大;Sybase主要適合與PowerBuilder配套使用;Access則是小型數(shù)據(jù)庫(kù)。根據(jù)系統(tǒng)規(guī)模和所需處理數(shù)據(jù)的容量,以及與系統(tǒng)平臺(tái)的無(wú)縫集成等綜合因素,選取恰當(dāng)?shù)臄?shù)據(jù)庫(kù)系統(tǒng)。
3)開(kāi)發(fā)工具的選擇
Java Script、VBScript、CGI與ASP都是可用于動(dòng)態(tài)網(wǎng)頁(yè)腳本制作的工具。但是,JavaScript和VBScript在執(zhí)行時(shí),需要先把程序下載到客戶端,再由瀏覽器進(jìn)行解釋執(zhí)行,這樣會(huì)導(dǎo)致源代碼被公開(kāi),從而影響網(wǎng)絡(luò)安全性。ASP程序則是CGI程序的改進(jìn)版,它跟CGI程序一樣是在Web服務(wù)器端執(zhí)行,因此安全性較好。相對(duì)而言, 在收集網(wǎng)頁(yè)數(shù)據(jù)時(shí),ASP比CGI的解析速度快、解析效果好, 因而選用ASP最為合適。
數(shù)據(jù)庫(kù)在WWW服務(wù)應(yīng)用中能幫助Web站點(diǎn)更好地運(yùn)行,但同時(shí)也有一定的負(fù)面影響。主要問(wèn)題表現(xiàn)為:
1)用戶在對(duì)頁(yè)面進(jìn)行訪問(wèn)時(shí),如果同時(shí)要進(jìn)行大量的數(shù)據(jù)庫(kù)查詢與讀取工作,會(huì)對(duì)用戶的訪問(wèn)速度有一定的影響。
2)由數(shù)據(jù)庫(kù)系統(tǒng)是與Web服務(wù)器共同完成Web服務(wù)的,這便使Web服務(wù)器增加對(duì)系統(tǒng)的依賴性,也增加了它被攻擊的潛在因素。
3)對(duì)編程技術(shù)具有更高的要求。若對(duì)數(shù)據(jù)庫(kù)編程不當(dāng),可能使得數(shù)據(jù)庫(kù)因負(fù)載過(guò)重而出現(xiàn)故障,從而影響系統(tǒng)的穩(wěn)定性。然而,這些問(wèn)題都可以通過(guò)恰當(dāng)?shù)姆绞郊右越鉀Q。
4)解決辦法
對(duì)問(wèn)題1)和2)可以采用雙以太結(jié)構(gòu)方式加以改善。如圖3(a)和(b)分別為單以太結(jié)構(gòu)和雙以太結(jié)構(gòu)設(shè)計(jì)的邏輯結(jié)構(gòu)。
圖3 連接數(shù)據(jù)庫(kù)服務(wù)器的兩種網(wǎng)絡(luò)結(jié)構(gòu)
雙以太結(jié)構(gòu)可以有效的進(jìn)行數(shù)據(jù)流負(fù)載分流,改善以太負(fù)載曲線。同時(shí)隱藏?cái)?shù)據(jù)庫(kù),保障其安全。對(duì)于問(wèn)題3),主要是通過(guò)軟件設(shè)施加以解決。例如選用適當(dāng)?shù)臄?shù)據(jù)庫(kù),加強(qiáng)程序緩沖能力,及時(shí)關(guān)閉鏈接,增強(qiáng)程序堅(jiān)固性等。
由于網(wǎng)絡(luò)具有傳播信息容量極大、形態(tài)多樣、迅速方便、覆蓋面廣、自由和交互的特點(diǎn),已成為新的傳播媒體。隨著網(wǎng)絡(luò)技術(shù)的突飛猛進(jìn),各行各業(yè)都渴望加入到IT行業(yè)中來(lái)。如何設(shè)計(jì)出達(dá)到用戶目的的網(wǎng)站,吸引盡可能多的人參觀訪問(wèn)是網(wǎng)站設(shè)計(jì)人員值得研究的課題。不斷探索,將越來(lái)越多的網(wǎng)站建設(shè)中的新技術(shù)應(yīng)用到“科學(xué)數(shù)據(jù)庫(kù)網(wǎng)站”中來(lái)。
[1] 馬莉,王歌.基于Web網(wǎng)企業(yè)動(dòng)態(tài)信息發(fā)布系統(tǒng)[J].計(jì)算機(jī)工程與應(yīng)用,2002,38(5):166 -171.
[2] 鄭源,王加陽(yáng).基于ASP技術(shù)的Web數(shù)據(jù)庫(kù)遠(yuǎn)程維護(hù)[J].計(jì)算機(jī)工程與應(yīng)用,2002,38 (11):193-195.
[3] 王劍釗,陳萍.數(shù)據(jù)庫(kù)技術(shù)在網(wǎng)站設(shè)計(jì)中的應(yīng)用[J].技術(shù)交流,2003(8):46-49.
[4] 董麗.WEB網(wǎng)站的設(shè)計(jì)與維護(hù)[J].石油工業(yè)計(jì)算機(jī)應(yīng)用,2007,15(1)45-47.