黃悅深
(五邑大學(xué)圖書館,廣東 江門 529020)
圖書館應(yīng)用信息技術(shù),根據(jù)館藏情況自建數(shù)據(jù)庫,為用戶提供信息服務(wù)正是潮流所趨。為了提高本館音像資料的管理效率,讓用戶隨時了解館藏音像情況,筆者設(shè)計了一個音像管理系統(tǒng)。該系統(tǒng)以ASP為搭建平臺,構(gòu)建了音像信息編輯器,實現(xiàn)了在線動態(tài)發(fā)布和音像信息維護,并建立了基于Ajax的音像查詢功能。
ASP全稱Active Server Page,是微軟公司開發(fā)的基于Windows NT Server和IIS的服務(wù)器端腳本編寫環(huán)境。它具有無須編譯,直接執(zhí)行;易于編寫;與數(shù)據(jù)庫連接簡便;源代碼保密等優(yōu)點[1]。ASP提供了6組內(nèi)置對象,應(yīng)用于常見的Web事務(wù)處理,包括收集瀏覽器請求信息、響應(yīng)瀏覽器以及存儲用戶信息等。ASP支持VBScript和JavaScript腳本語言編寫。在實際開發(fā)中,開發(fā)者使用腳本語言結(jié)合調(diào)用ASP內(nèi)置對象,編寫具體的邏輯處理過程。ASP簡單易用,特別適用于中、小型的B/S系統(tǒng)開發(fā),這是本系統(tǒng)選用ASP作為開發(fā)環(huán)境的原因。
Ajax是Asynchronous JavaScript and XML的縮寫。它不是一種新技術(shù)或者新語言,而是一種用于創(chuàng)建更好更快以及交互性更強的Web應(yīng)用程序的技術(shù),它在瀏覽器與Web服務(wù)器之間使用異步數(shù)據(jù)傳輸(HTTP請求),使網(wǎng)頁從服務(wù)器請求少量的信息,而不是整個頁面。Ajax最為人熟悉的應(yīng)用是Google搜索建議、Google地圖等。Ajax主要包含以下技術(shù):①XHTML+CSS,實現(xiàn)網(wǎng)頁界面設(shè)計;②DOM(Document Object Model,文檔對象模型),實現(xiàn)與各種網(wǎng)頁元素的動態(tài)交互;③使用XML和XSLT進行數(shù)據(jù)交換;④使用XMLHttpRequest對象執(zhí)行異步數(shù)據(jù)查詢、檢索;⑤使用JavaScript結(jié)合調(diào)用上述各類對象,完成整個邏輯事務(wù)處理過程[2]。
考慮到系統(tǒng)開發(fā)和用戶使用的簡便性,系統(tǒng)采用B/S架構(gòu)模式,系統(tǒng)內(nèi)部則按照業(yè)務(wù)處理流程進行模塊化功能設(shè)計。
系統(tǒng)采用數(shù)據(jù)庫、服務(wù)器、瀏覽器3層結(jié)構(gòu)模式。服務(wù)器端選用Windows2000 Server+IIS5.0作為ASP的運行環(huán)境。數(shù)據(jù)庫采用微軟Access2003。服務(wù)器和數(shù)據(jù)庫之間的連接采用ADO(ActiveX Data Objects)組件。ADO是微軟公司的一個用于存取數(shù)據(jù)源的COM組件,它提供了編程語言和統(tǒng)一數(shù)據(jù)訪問方式的一個中間層,允許開發(fā)人員編寫訪問數(shù)據(jù)的代碼而不用關(guān)心數(shù)據(jù)庫是如何實現(xiàn)的[3]。ASP、ADO、Access三方協(xié)同運作,共同構(gòu)建起音像管理系統(tǒng)的后臺運作體系。ASP負責(zé)接收客戶端請求,處理邏輯代碼,發(fā)起ADO調(diào)用,返回結(jié)果頁面,它是整個業(yè)務(wù)流程的調(diào)度中心。ADO是連接服務(wù)器和數(shù)據(jù)庫的接口,它負責(zé)連接數(shù)據(jù)庫以及執(zhí)行SQL操作。Access是數(shù)據(jù)存儲中心。系統(tǒng)的完整架構(gòu)和運作過程如圖1所示。
圖1 音像管理系統(tǒng)架構(gòu)及業(yè)務(wù)流程
系統(tǒng)遵循模塊化設(shè)計思想,以功能塊為單位進行程序編寫,目的是降低程序復(fù)雜度,使程序設(shè)計、調(diào)試和維護等操作簡單化。根據(jù)功能劃分,本系統(tǒng)共有4個子模塊,包括用戶界面、管理員登錄模塊、音像管理模塊以及音像查找模塊。每個子模塊下再劃分出具體的功能模塊,每個功能模塊對應(yīng)實現(xiàn)一個業(yè)務(wù)處理流程。圖2描述了系統(tǒng)的模塊組成。
圖2 系統(tǒng)模塊構(gòu)成
數(shù)據(jù)庫包含Admin、Disc、Bigclass、Smallclass4個表。Admin表記錄了管理員的登錄賬戶和密碼。Disc表記錄了音像的信息。Bigclass和Smallclass兩個表分別記錄了音像的大類和小類的劃分情況。表1列出了Disc表結(jié)構(gòu)。
表1 Disc表結(jié)構(gòu)
用戶界面即系統(tǒng)的前臺部分,是用戶與后臺發(fā)生數(shù)據(jù)交互的界面。用戶界面按照功能實現(xiàn)的不同劃分為3個框架頁面:搜索入口、結(jié)果顯示、分類導(dǎo)航。搜索入口和分類導(dǎo)航框架頁面是用戶向服務(wù)器提交查詢請求的入口(對應(yīng)圖1第1步)。相應(yīng)地,結(jié)果顯示框負責(zé)將結(jié)果頁面呈現(xiàn)給用戶(對應(yīng)圖1第6步)。采用框架式設(shè)計的優(yōu)點是,頁面各個組成部分是獨立的,任一框架內(nèi)的數(shù)據(jù)更新不需要刷新整個頁面。當(dāng)用戶多次向服務(wù)器提交查詢請求時,結(jié)果顯示框需要多次更新顯示新的結(jié)果集,但是頁面的其他部分無需刷新,有利于減少服務(wù)器負荷。框架式頁面實現(xiàn)代碼如下:
①管理員登錄模塊既是用戶進入后臺的入口,也是保護后臺系統(tǒng)安全的門戶。為了防止非管理員用戶惡意破解系統(tǒng),登錄模塊采用了一系列安全驗證措施,包括限定IP段登錄、輸入登錄驗證碼、防SQL注入檢驗、防未登錄用戶訪問后臺頁面。
程序代碼如下:
②音像管理模塊實現(xiàn)了音像管理的全部功能,包括信息錄入、音像分類、發(fā)布、修改、刪除。信息錄入模塊除了提供基本的信息錄入框外,還支持圖片插入、文件上傳、頁面再編輯等高級功能。為了方便進行頁面編輯,模塊內(nèi)嵌了word編輯器。用戶可以對輸入的文本內(nèi)容進行文檔格式設(shè)置,包括字體、大小、顏色、樣式等,還可以插入表格和超鏈接。音像的添加、刪除等操作通過服務(wù)器調(diào)用ADO組件來完成。ADO組件通過構(gòu)建Connection對象進行數(shù)據(jù)庫的連接和執(zhí)行SQL查詢操作,完成對Disc表記錄的添加、修改、刪除操作。
③音像查找是重要的功能支撐模塊,其代碼必須具備良好的邏輯結(jié)構(gòu),才能為前臺用戶檢索功能提供充分的支持。為了支持多途徑檢索(提供6種檢索途徑:按音像大類、小類、音像名稱、音像簡介、出版年份、名稱首字母)的需要,代碼的邏輯組織采用Switch結(jié)構(gòu),包括6個分支,每個分支處理一種檢索途徑。檢索過程是:服務(wù)器通過ADO調(diào)用Connection對象構(gòu)建不同查詢字段的SQL表達式,再執(zhí)行數(shù)據(jù)庫查詢操作(對應(yīng)圖1第3步)。待數(shù)據(jù)庫返回結(jié)果后,調(diào)用ADO組件的Recordset對象讀取記錄(對應(yīng)圖1第5步)。最后由結(jié)果顯示模塊構(gòu)建結(jié)果頁面返回用戶(對應(yīng)圖1第6步)。
為了提供更加友好的查找功能,筆者應(yīng)用Ajax構(gòu)建了類似Google搜索提示的音像查找提示功能。實現(xiàn)步驟如下:①構(gòu)建XMLHttpRequest對象。在無刷新網(wǎng)頁的情況下,通過on-KeyUp事件觸發(fā)ajaxFunction函數(shù)。②向服務(wù)器發(fā)出訪問請求。ajaxFunction函數(shù)首先判斷檢索詞輸入框是否有新內(nèi)容輸入,如果有,則創(chuàng)建XMLHttpRequest對象,并通過該對象的open()方法向服務(wù)器發(fā)出通信請求。③服務(wù)器返回html文本。服務(wù)器將訪問請求交給getSuggest.asp頁面處理。getSuggest.asp從保存有全部音像信息的XML文檔中讀取音像名稱標簽的文本內(nèi)容,并以html文本格式返回。getmessage函數(shù)接收返回結(jié)果,并顯示在檢索詞輸入框下方。
程序代碼如下:
當(dāng)前,關(guān)于館藏資源、網(wǎng)絡(luò)資源以及第三方資源在OPAC的集成應(yīng)用正是研究熱點。整合手段除了原有的購買軟件商的資源整合平臺或者是對MARC字段的利用以外,通過利用各種Open API,以及各種Web 2.0技術(shù)成為流行的集成技術(shù)[4]。為了提高音像資源的可發(fā)現(xiàn)性,筆者在本館的OPAC檢索頁面集成了音像查詢。構(gòu)建思路是:當(dāng)用戶在OPAC檢索頁面輸入一個主題檢索詞時,服務(wù)器在執(zhí)行原有館藏查詢的同時,也向音像查找模塊發(fā)出查詢請求,并提供結(jié)果顯示鏈接。筆者應(yīng)用JavaScript實現(xiàn)了上述功能,代碼如下:
上述代碼中,checkbox屬性表示在頁面中增添一個單選框元素,onclick屬性表示當(dāng)點選單選框時,觸發(fā)后續(xù)代碼的運行。這是整段代碼的核心所在,它首先判斷單選框是否選擇,如果已選擇,則執(zhí)行后續(xù)代碼生成指向音像查找結(jié)果的超鏈接。超鏈接標簽中指定了音像查詢接口,用戶在OPAC檢索框中輸入的檢索詞將傳遞至該查詢接口。document.showresult.innerHTML語句表示在ID標志為showresult的頁面元素(一般為 通過筆者的開發(fā)實踐,深入分析了音像管理系統(tǒng)的設(shè)計與實現(xiàn)過程。本次實踐不只是實現(xiàn)了一個具體的應(yīng)用系統(tǒng),而是為日后自建數(shù)據(jù)庫搭建了一個系統(tǒng)原型。從這個意義上講,本系統(tǒng)是日后深入研究的起點。今后,筆者主要研究從3方面改進系統(tǒng)功能,使其能夠作為一個通用平臺,為圖書館自建各類數(shù)據(jù)庫提供有力支撐。①應(yīng)用Lucene全文搜索軟件包增強系統(tǒng)的分詞、索引和搜索能力。②應(yīng)用更多的Web 2.0技術(shù)擴展系統(tǒng)功能,改善用戶體驗。③自建數(shù)據(jù)庫與OPAC無縫整合的實現(xiàn)技術(shù)。 [1]周峰,徐曉軍,李德路.ASP開發(fā)技術(shù)原理與實踐教程[M].北京:電子工業(yè)出版社,2007. [2]陳鋒敏.Ajax原理與系統(tǒng)開發(fā)[M].北京:清華大學(xué)出版社,2009. [3]Sceppa D著.ADO編程技術(shù)[M].石均等譯.北京:清華大學(xué)出版社,2001. [4]王海.基于OPAC的資源整合創(chuàng)新研究與實踐[J].圖書館理論與實踐,2010(10):74-76.5 結(jié)語