尚玉梅
(陜西職業(yè)技術(shù)學(xué)院 圖書館, 陜西 西安 710038)
計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,為存儲(chǔ)方法、媒介以及信息資源共享提供了支持[1]。隨著數(shù)字時(shí)代的到來,手機(jī)、電腦以及智能終端被廣泛應(yīng)用和普及,因此,數(shù)字化圖書館建設(shè)改變了原有紙質(zhì)資源的限制,使得圖書館資源共享服務(wù)成為可能[2-3]。由于數(shù)字信息資源供應(yīng)商限制了互聯(lián)網(wǎng)搜索引擎對(duì)圖書館資源的搜索,使得用戶只能瀏覽圖書資源片斷或局部信息,如對(duì)圖書資源進(jìn)行全部瀏覽必須要繳納費(fèi)用,削弱了圖使館作為大眾免費(fèi)資源的社會(huì)功能[4-5]。因此,本設(shè)計(jì)整合了Squid認(rèn)證技術(shù)結(jié)合外部程序使得用戶在外網(wǎng)就能遠(yuǎn)程訪問圖書館信息資源服務(wù)器,通過與資源供應(yīng)商協(xié)商保障了圖書館數(shù)字資源不被非法復(fù)制,為圖書館資源共享提供了參考。
本文設(shè)計(jì)的大型圖書館信息資源共享平臺(tái)采用B/S架構(gòu)、ASP.NET技術(shù)開發(fā),利用Squid反向代理技術(shù)來為用戶提供訪問功能和身份認(rèn)證功能。用戶利用客戶端通過互聯(lián)網(wǎng)進(jìn)行身份認(rèn)證,來獲取圖書資源的訪問權(quán)限,系統(tǒng)管理員可實(shí)現(xiàn)系統(tǒng)分析、日志查看、用戶管理和資源流量控制等功能。系統(tǒng)框架,如圖1所示。
圖1 大型圖書館信息資源共享平臺(tái)系統(tǒng)架構(gòu)
用戶通過互聯(lián)網(wǎng)遠(yuǎn)程訪問圖書館資源的數(shù)據(jù)流圖,如圖2所示。
圖2 數(shù)據(jù)流圖
大型圖書館信息資源共享平臺(tái)是將購買圖書數(shù)字資源與合法用戶建立起聯(lián)系的,用戶可通過Squid反向代理發(fā)送圖書資源訪問請(qǐng)求,并通過監(jiān)控用戶訪問權(quán)限和狀態(tài)對(duì)用戶進(jìn)行管理。系統(tǒng)功能流程,如圖3所示。
圖3 系統(tǒng)功能流程圖
本文使用的Squid程序是Linux系統(tǒng)的技術(shù),該程序具有Windows版本。通過Squid代理服務(wù)器配置,可實(shí)現(xiàn)外網(wǎng)對(duì)內(nèi)網(wǎng)圖書資源信息的遠(yuǎn)程訪問。安裝好Squid后,配置文件在squid.cinf中,可設(shè)置Squid代理服務(wù)器的各項(xiàng)參數(shù),從而實(shí)現(xiàn)相應(yīng)功能。配置的內(nèi)容主要為主機(jī)名配置、訪問控制、認(rèn)證配置、緩存配置、端口配置和認(rèn)證超時(shí)等。
配置完成后即可進(jìn)入認(rèn)證環(huán)節(jié)。由于Squid是Linux系統(tǒng)的代理服務(wù),并不具有用戶認(rèn)證功能,需要通過外部程序來實(shí)現(xiàn)用戶的認(rèn)證,才能獲得圖書館局域網(wǎng)的地址。核心代碼如下。
acl user proxy_auth REQUIRED
http_access allow user
然后,通過如下命令啟動(dòng)Squid:squid-c"/CDlibSquid/bin/RunCache。
本文設(shè)計(jì)的大型圖書館信息資源共享平臺(tái)總體分為前臺(tái)功能和后臺(tái)功能。功能結(jié)構(gòu),如圖4所示。
圖4 系統(tǒng)功能結(jié)構(gòu)
其中,前臺(tái)功能可實(shí)現(xiàn)查看公告、查看用戶個(gè)人狀態(tài)、修改用戶個(gè)人信息、意見反饋和用戶使用明細(xì),需要說明的是該系統(tǒng)沒有用戶在線注冊(cè)功能,用戶需在圖書館辦理“一卡通”后才能使用該平臺(tái);后臺(tái)功能可實(shí)現(xiàn)查詢用戶列表、開通新用戶、用戶審核、在線用戶查詢、批量用戶修改及導(dǎo)入、用戶公告管理及用戶留言管理。
(1) 系統(tǒng)登錄模塊
系統(tǒng)登錄模塊是專門為管理員和認(rèn)證用戶設(shè)計(jì)的登錄模塊,目的是防止非法登錄系統(tǒng)或非系統(tǒng)認(rèn)證人員登錄,保障圖書數(shù)據(jù)資源的安全,系統(tǒng)登錄模塊可通過遠(yuǎn)程登錄實(shí)現(xiàn)系統(tǒng)入口的進(jìn)入。該模塊實(shí)現(xiàn)流程,如圖5所示。
圖5 登錄模塊流程
登錄成功后會(huì)進(jìn)入圖書館資源網(wǎng)絡(luò)共享平臺(tái)的登錄界面,同時(shí)會(huì)顯示用戶或管理員的IP地址以及接入的監(jiān)聽端口。
(2) 待審核用戶模塊
該功能可顯示用戶的申請(qǐng),以便圖書管理員對(duì)用戶進(jìn)一步審核。該功能可完成用戶的分組移動(dòng)、用戶開通(需要“一卡通”)以及刪除用戶等操作,如圖6所示。
圖6 待審核用戶功能流程
該模塊實(shí)現(xiàn)界面,如圖7所示。
圖7 待審核用戶界面
(3) 批量用戶修改模塊
批量用戶修改功能是圖書館信息資源網(wǎng)絡(luò)共享平臺(tái)的重要功能,該功能可實(shí)現(xiàn)對(duì)多個(gè)用戶的使用延期、活躍調(diào)查、凍結(jié)賬號(hào)、刪除用戶等批量操作,如圖8所示。
圖8 批量用戶修改功能流程
核心代碼如下。
StringBuilder strSql=newBuilder();
sreSql.Append(select userID,…,MAC from Tab ReaderView where…);
strSql.Append("Tab ReaderView");
if(strWhere.Trim(!)="");
{
strSql.Append("where"+strWhere);
}
DbHelperSQL.Query(strSql.ToString());
該模塊實(shí)現(xiàn)界面,如圖9所示。
圖9 批量用戶修改界面
(4) 批量用戶導(dǎo)入模塊
以往的圖書館用戶管理系統(tǒng)中,添加用戶是按照事先定義的模板進(jìn)行填寫的,耗時(shí)耗力。批量用戶導(dǎo)入功能可實(shí)現(xiàn)一次性導(dǎo)入全部已開通用戶的信息。該功能是新用戶開通功能的加強(qiáng),將新用戶全部導(dǎo)入系統(tǒng)數(shù)據(jù)庫中,如圖10所示。
圖10 批量用戶導(dǎo)入功能流程
第一步,從圖書館原有的業(yè)務(wù)管理系統(tǒng)中讀取新辦“一卡通”的用戶信息,代碼如下。
Re spons.Clear();
Re spons.Charsset="";
Re spons.ContentType="application/vnd.ms-text";
Re spons.AddHeader("Content-Sispsitiort","attachment;filename=a.txt");
SrtingBuilder builder-new StringBuilder();
for(int i=0; i { DateTime regDate=Convert.ToDateTime(GridView 1.Row[i].Cells[6].Text); String name=… … Re spinse.Write(builder); Re sponse.End(); 第二步,將讀取的新辦用戶數(shù)據(jù)批量導(dǎo)入信息資源網(wǎng)絡(luò)共享平臺(tái)中,代碼如下。 Response.Clear(); Response.Charset=""; Response.ContentType="application/vnd.ms-text"; Response.AddHeader("Content-Disposition", "attachment;filename=a.txt"); StringBuilder builder=new StringBuilder(); for(int i=0;i { DateTime regDate=Convert.ToDateTime(GridView1.Rows[i].Cells[6].Text); 目前,該系統(tǒng)已在某大型圖書館試運(yùn)行,在試運(yùn)行階段筆者進(jìn)行了安全性測(cè)試和系統(tǒng)性能測(cè)試。整個(gè)試運(yùn)行階段,未發(fā)現(xiàn)對(duì)該館圖書信息資源非法復(fù)制的問題。為了驗(yàn)證系統(tǒng)安全性,對(duì)登錄功能進(jìn)行測(cè)試,登錄名為“admin1”,密碼為“pass001”,測(cè)試結(jié)果,如表1所示。 表1 登錄測(cè)試結(jié)果 為了驗(yàn)證系統(tǒng)性能,在試運(yùn)行過程中,根據(jù)該圖書館信息資源共享業(yè)務(wù)情況,對(duì)批量導(dǎo)入用戶這個(gè)數(shù)據(jù)吞吐量比較大的模塊進(jìn)行了性能測(cè)試,測(cè)試結(jié)果,如圖11所示。 圖11 系統(tǒng)性能測(cè)試結(jié)果 安全性測(cè)試可知,當(dāng)用戶輸入錯(cuò)誤的賬號(hào)和密碼后,系統(tǒng)提示錯(cuò)誤并拒絕登錄。性能測(cè)試可知,隨著批量導(dǎo)入用戶信息量的增加,系統(tǒng)CPU占用率和響應(yīng)時(shí)間逐漸增加,系統(tǒng)性能能夠滿足該圖書館實(shí)際業(yè)務(wù)需求。 本文設(shè)計(jì)的大型圖書館信息資源共享平臺(tái)采用B/S架構(gòu)、ASP.NET技術(shù)開發(fā),搭載了Linux系統(tǒng)的Squid代理服務(wù)功能,用戶通過外網(wǎng)即可訪問圖書館內(nèi)網(wǎng),實(shí)現(xiàn)了圖書館內(nèi)網(wǎng)信息資源的共享。在數(shù)字資源知識(shí)產(chǎn)權(quán)保護(hù)方面,該系統(tǒng)為權(quán)衡使用者權(quán)益和圖書資源供應(yīng)商之間的利益提供了解決方案,可在醫(yī)院、學(xué)校、圖書情報(bào)領(lǐng)域推廣。3 系統(tǒng)應(yīng)用測(cè)試
4 總結(jié)