【摘要】信息技術(shù)的發(fā)展使得圖書(shū)隨書(shū)光盤(pán)越來(lái)越多,為了解決隨書(shū)光盤(pán)的利用問(wèn)題,本系統(tǒng)基于B/S模式的思想,采用 asp技術(shù)和 SQL Server2005數(shù)據(jù)庫(kù)技術(shù),結(jié)合圖書(shū)館milnets圖書(shū)自動(dòng)化管理系統(tǒng) ,設(shè)計(jì)了一個(gè)隨書(shū)光盤(pán)管理系統(tǒng)。以實(shí)現(xiàn)隨書(shū)光盤(pán)的檢索、請(qǐng)求、上傳和下載等前后臺(tái)管理功能。
【關(guān)鍵詞】隨書(shū)光盤(pán);B/S體系結(jié)構(gòu);ASP
1.引言
隨書(shū)光盤(pán)是附加在圖書(shū)中的以光盤(pán)為媒介的電子閱讀物,它與圖書(shū)同步發(fā)行,對(duì)圖書(shū)的內(nèi)容起補(bǔ)充或輔助的作用,主要對(duì)圖書(shū)的內(nèi)容進(jìn)行聲、像、圖、文并茂的說(shuō)明、解釋、演繹,有高度的可視性和直觀性,它與圖書(shū)的內(nèi)容是相輔相成的,通過(guò)對(duì)光盤(pán)的閱讀,能更直觀、更深刻地理解書(shū)的內(nèi)容,起到輔助學(xué)習(xí)的作用。隨著隨書(shū)光盤(pán)的不斷增長(zhǎng),如何有效的管理和利用,已成為圖書(shū)館亟需解決的一個(gè)問(wèn)題。目前各院校都建立了高速的校園網(wǎng),基于網(wǎng)絡(luò)化的光盤(pán)管理已成為主要方式,通過(guò)網(wǎng)絡(luò)訪問(wèn)和下載隨書(shū)光盤(pán),一方面讓讀者不受時(shí)間和空間的限制,另一方面,通過(guò)資源共享,豐富并有效利用了館藏資源。而本館的milnets系統(tǒng)沒(méi)有提供隨書(shū)光盤(pán)上傳和下載功能,因此,本文結(jié)合圖書(shū)館的milnets圖書(shū)自動(dòng)管理系統(tǒng),利用ASP技術(shù),開(kāi)發(fā)了隨書(shū)光盤(pán)管理系統(tǒng)。
2.系統(tǒng)分析與總體設(shè)計(jì)
2.1 系統(tǒng)的體系結(jié)構(gòu)
為了便于讀者使用,本系統(tǒng)采用B/S體系結(jié)構(gòu)。B/S模式應(yīng)用系統(tǒng)由瀏覽器和服務(wù)器組成,數(shù)據(jù)和應(yīng)用程序都放在服務(wù)器上,瀏覽器功能可以通過(guò)下載服務(wù)器上的應(yīng)用程序得到動(dòng)態(tài)擴(kuò)展,服務(wù)器具有多層結(jié)構(gòu),B/S系統(tǒng)處理的數(shù)據(jù)類(lèi)型可以動(dòng)態(tài)擴(kuò)展。用戶通過(guò)瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請(qǐng)求,服務(wù)器對(duì)瀏覽器的請(qǐng)求進(jìn)行處理,將用戶所需信息返回到瀏覽器。B/S結(jié)構(gòu)簡(jiǎn)化了客戶機(jī)的工作,客戶機(jī)上只需配置少量的客戶端軟件,服務(wù)器將擔(dān)負(fù)更多的工作,對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)和應(yīng)用程序的執(zhí)行在服務(wù)器上完成。瀏覽器發(fā)出請(qǐng)求,而其他如數(shù)據(jù)請(qǐng)求、加工、結(jié)果返回及動(dòng)態(tài)網(wǎng)頁(yè)生成等工作全部由Web Server完成。實(shí)際上B/S體系結(jié)構(gòu)是把二層Client/Server結(jié)構(gòu)的事務(wù)處理邏輯模塊從客戶機(jī)的任務(wù)中分離出來(lái),由Web服務(wù)器單獨(dú)組成一層來(lái)負(fù)擔(dān)其任務(wù),這樣客戶機(jī)的壓力減輕了,把負(fù)荷分配給了Web服務(wù)器。這種三層體系結(jié)構(gòu)如圖1所示。
圖1 基于Web的B/S體系結(jié)構(gòu)
2.2 功能模塊設(shè)計(jì)
本系統(tǒng)以實(shí)現(xiàn)隨書(shū)光盤(pán)的后臺(tái)管理和方便讀者查詢、下載等功能為核心,其它功能為輔的理念,將系統(tǒng)功能分成兩大模塊。
2.2.1 讀者使用模塊
本模塊主要提供讀者查詢光盤(pán)、顯示光盤(pán)信息、請(qǐng)求未傳光盤(pán)等功能。具體分以下幾個(gè)子模塊:
(1)登錄子模塊:該模塊結(jié)合milnets系統(tǒng)中的讀者數(shù)據(jù)庫(kù)信息,讀者通過(guò)自己的借閱證號(hào)和密碼登錄系統(tǒng) ,登錄不成功則無(wú)法下載光盤(pán)數(shù)據(jù)。對(duì)于下載的光盤(pán)。系統(tǒng)能詳細(xì)地記錄該讀者下載的信息,包括該讀者借閱證號(hào)、下載的時(shí)間、地點(diǎn)、光盤(pán)的內(nèi)容等。
(2)瀏覽檢索子模塊:用戶可以根據(jù)學(xué)科分類(lèi)瀏覽隨書(shū)光盤(pán)信息,或利用系統(tǒng)提供的檢索功能,按光盤(pán)名、索書(shū)號(hào)、出版社、ISBN等字段進(jìn)行檢索。
(3)光盤(pán)信息子模塊:此模塊的設(shè)計(jì)是用來(lái)顯示隨書(shū)光盤(pán)的詳細(xì)信息。包括隨書(shū)光盤(pán)所對(duì)應(yīng)的圖書(shū)書(shū)名、出版社、作者等信息以及光盤(pán)的上傳時(shí)間、光盤(pán)大小、下載次數(shù)和光盤(pán)數(shù)據(jù)下載鏈接等信息。
(4)請(qǐng)求光盤(pán)子模塊:考慮到服務(wù)器數(shù)據(jù)存儲(chǔ)的容量,本系統(tǒng)對(duì)光盤(pán)數(shù)據(jù)進(jìn)行動(dòng)態(tài)的上傳,存儲(chǔ)那些使用頻率較高的和最新的隨書(shū)光盤(pán)。對(duì)于讀者需要的而又沒(méi)有上傳的光盤(pán),讀者可以通過(guò)請(qǐng)求光盤(pán)上傳,后臺(tái)管理員根據(jù)請(qǐng)求信息上傳此光盤(pán)。
(5)更新光盤(pán)子模塊:讀者可以通過(guò)該模塊及時(shí)的了解最新更新的光盤(pán)信息。
(6)統(tǒng)計(jì)子模塊:該模塊統(tǒng)計(jì)了本館現(xiàn)有的光盤(pán)數(shù)量、已傳光盤(pán)數(shù)量、下載次數(shù)、光盤(pán)下載排行等數(shù)據(jù),便于讀者和管理員了解系統(tǒng)中光盤(pán)的使用狀態(tài)。
2.2.2 后臺(tái)管理模塊
本模塊主要是對(duì)隨書(shū)光盤(pán)的后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行管理。包括光盤(pán)的檢索、添加、更新、刪除、數(shù)據(jù)上傳和讀者請(qǐng)求的處理等功能。具體分以下幾個(gè)子模塊:
(1)編目員登陸子模塊:考慮到編目員在利用milnets系統(tǒng)進(jìn)行編書(shū)時(shí),碰到有些書(shū)帶有光盤(pán)時(shí),可以立刻通過(guò)該模塊對(duì)光盤(pán)進(jìn)行處理。因此該模塊結(jié)合milnets系統(tǒng)中的編目員數(shù)據(jù)庫(kù)信息,編目員通過(guò)自己的帳號(hào)和密碼登陸,登陸成功后就進(jìn)入光盤(pán)后臺(tái)處理子模塊。
(2)光盤(pán)后臺(tái)處理子模塊:編目員登陸成功后,可以添加光盤(pán)數(shù)據(jù)、修改光盤(pán)數(shù)據(jù)和查詢光盤(pán)數(shù)據(jù),還可以上傳發(fā)布或刪除光盤(pán)的鏡像文件。
(3)讀者請(qǐng)求處理子模塊:管理員可以通過(guò)此模塊查詢讀者的請(qǐng)求信息和讀者的留言,直接調(diào)出此請(qǐng)求的光盤(pán)處理子模塊,從而添加、更新光盤(pán)數(shù)據(jù),不需要管理員通過(guò)檢索的方式去處理光盤(pán),大大節(jié)省后臺(tái)處理請(qǐng)求光盤(pán)的時(shí)間。
2.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
根據(jù)系統(tǒng)功能設(shè)計(jì),為了便于管理和實(shí)現(xiàn),在milnets系統(tǒng)數(shù)據(jù)庫(kù)中添加了以下幾個(gè)表:
2.3.1 用戶下載記錄表(record):讀者條碼號(hào)(reader_codebar), 包括光盤(pán)編號(hào)(id),下載時(shí)間(jtime), 下載IP(ip)。
2.3.2 光盤(pán)編目表(gban):包括光盤(pán)編號(hào)(id)、光盤(pán)名(title)、圖書(shū)名(tusuname)、索書(shū)號(hào)(sh)、出版社(cbs)、ISBN(isbn)、大小(size)、發(fā)布日期(ftime)、下載次數(shù)(number),是否可下載(yy)、下載地址(ftp)。主要用于存儲(chǔ)隨書(shū)光盤(pán)信息和光盤(pán)鏡像文件的存儲(chǔ)路徑及下載的鏈接路徑。
2.3.3 請(qǐng)求上傳表(gqingqiu):包括光盤(pán)編號(hào)(id)、讀者條碼號(hào)(reader_codebar), 請(qǐng)求時(shí)間 (qtime)、請(qǐng)求備注 (beizhu)。主要用于存儲(chǔ)用戶請(qǐng)求下載的隨書(shū)光盤(pán)信息 。
3.系統(tǒng)實(shí)現(xiàn)及關(guān)鍵技術(shù)
3.1 系統(tǒng)實(shí)現(xiàn)原理
ASP通過(guò)內(nèi)置ActiveX數(shù)據(jù)庫(kù)訪問(wèn)組件ADO(ActiveX Data 0bject)訪問(wèn)數(shù)據(jù)庫(kù)。ADO通過(guò)在Web服務(wù)器上設(shè)定ODBC來(lái)建立與多種數(shù)據(jù)庫(kù)的連接,其中包括Oracle、SQL Server、Access等各種大、中、小型數(shù)據(jù)庫(kù)。ADO的另外一個(gè)功能是“遠(yuǎn)程數(shù)據(jù)訪問(wèn)”(RDS),即能夠通過(guò)一個(gè)來(lái)回的傳輸將數(shù)據(jù)從服務(wù)器傳送到客戶端應(yīng)用程序或Web頁(yè)中,然后在客戶端對(duì)數(shù)據(jù)進(jìn)行操作,最后將更新結(jié)果返回服務(wù)器。本系統(tǒng)以ASP十SQL Server2005為開(kāi)發(fā)工具實(shí)現(xiàn)隨書(shū)光盤(pán)的查詢與下載。
3.1.1 建立與數(shù)據(jù)庫(kù)的連接
為了方便維護(hù),將連接數(shù)據(jù)庫(kù)的代碼單獨(dú)放在一個(gè)頁(yè)面(如 conn.asp)當(dāng)中封裝起來(lái):
<%
dim conn
set conn=server.createobject(“ADODB.
connection”)
con.open”P(pán)ROVIDER=SQLOLEDB;
DATASOURCE=local;
UID=sa;
PWD=****;
DATABASE=milnets”
%>
在要與數(shù)據(jù)庫(kù)連接的各頁(yè)中添加代碼< !——# include file=“conn.asp”一一>,即可實(shí)現(xiàn)與數(shù)據(jù)庫(kù)的連接 。
3.1.2 在連接數(shù)據(jù)庫(kù)的基礎(chǔ)上實(shí)現(xiàn)光盤(pán)信息查詢
部分代碼如下:
< %
dim select1,temp
select1= request.form(“select1”)
select case select1
case “光盤(pán)名”
temp=”select*from gban where title like
‘%”& select1&”%”
case “索書(shū)號(hào)”
temp=”select*from gban where sh like
‘%”& select1&”%”
case “出版社”
temp=”select*from gban where cbs like
‘%”& select1&”%”
case else
temp=”select*from gban where isbn like
‘%”& select1&”%”
end select
%>
3.2 ASP關(guān)鍵技術(shù)
3.2.1 隨書(shū)光盤(pán)鏡像文件的存放技術(shù)
本系統(tǒng)是將隨書(shū)光盤(pán)的數(shù)據(jù)壓縮轉(zhuǎn)換成ISO文件存放在服務(wù)器上,供用戶檢索下載。上傳隨書(shū)光盤(pán)存放可以通過(guò)兩種思路來(lái)實(shí)現(xiàn)。第一,通過(guò)將隨書(shū)光盤(pán)存放于數(shù)據(jù)庫(kù),但這種方式對(duì)于數(shù)據(jù)較大的多媒體數(shù)據(jù)的明顯缺陷是下載時(shí)速度很慢,這對(duì)于同時(shí)多用戶下載影響較大。第二種思路是事先將隨書(shū)光盤(pán)存放的路徑信息存于數(shù)據(jù)庫(kù)。然后ASP程序與數(shù)據(jù)庫(kù)中的數(shù)據(jù)結(jié)合,顯示下載超鏈接通過(guò)數(shù)據(jù)并顯示下載。當(dāng)單擊下載時(shí)實(shí)現(xiàn)數(shù)據(jù)的下載,這種方法下載的速度快。因此,在技術(shù)上我們選擇了后一種方式。
3.2.2 隨書(shū)光盤(pán)鏡像文件的上傳技術(shù)
Adodb.Stream是ASP中ADO的Stream對(duì)象,提供存取二進(jìn)制數(shù)據(jù)或者文本流,從而實(shí)現(xiàn)對(duì)流的讀、寫(xiě)和管理等操作。本系統(tǒng)利用它實(shí)現(xiàn)例如隨書(shū)光盤(pán)的上傳功能。本文只就數(shù)據(jù)處理頁(yè)面(upload.asp)作簡(jiǎn)單介紹,(下轉(zhuǎn)第166頁(yè))(上接第163頁(yè))upload.asp部分代碼如下:
<%
set str=server.CreateObject(“ADODB.
Stream”)‘str為源數(shù)據(jù)流
str.Mode=3‘設(shè)置打開(kāi)模式,3為可讀可寫(xiě)
str.Type=1‘設(shè)置數(shù)據(jù)類(lèi)型,1為二進(jìn)制數(shù)據(jù)
str.Open
set desc=server.CreateObject(“ADODB.
Stream”)‘desc為目標(biāo)數(shù)據(jù)流
desc.Mode=3
Desc.Type=1
desc.Open
%>
<%
formdata=Request.BinaryRead(Request.
TotalBytes)‘formdata為上傳的所有內(nèi)容
str.Write formdata‘ 賦值源數(shù)據(jù)流
str.position=count-lenb(result)-2‘position指出文件的開(kāi)始位置
str.copyto desc,lenb(filecotent)‘lenb(filecontent)表示文件的長(zhǎng)度
desc.SaveToFile fullpath,2‘以fullpath指定的路徑及名稱保存文件
%>
<%
Desc. Close
Set desc=nothing
Str. Close
Set STR=nothing
%>
4.結(jié)束語(yǔ)
對(duì)于中小型院校圖書(shū)館來(lái)說(shuō),由于建設(shè)資金有限,通過(guò)自己的技術(shù)人員結(jié)合本館的實(shí)際情況,研究設(shè)計(jì)一個(gè)簡(jiǎn)單實(shí)用的隨書(shū)光盤(pán)管理系統(tǒng),既豐富了圖書(shū)館的服務(wù)內(nèi)容,又為圖書(shū)館節(jié)約了資金,真可謂是兩全其美的選擇。
參考文獻(xiàn)
[1]朱麗敏.交互式動(dòng)態(tài)網(wǎng)頁(yè)構(gòu)建技術(shù)——ASP技術(shù)[J].太原科技,2006(2):40-41.
[2]李清.基于WEB的隨書(shū)光盤(pán)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].福建電腦,2006(5):22-23.
[3]肖勁陽(yáng).基于ASP技術(shù)的倉(cāng)儲(chǔ)物流管理系統(tǒng)設(shè)計(jì)和開(kāi)發(fā)[J].福建輕紡,2007(9):25-31.
作者簡(jiǎn)介:張凱(1986—),海軍陸戰(zhàn)學(xué)院訓(xùn)練部教??浦砉こ處?。