尚玉梅
(陜西職業技術學院 圖書館, 陜西 西安 710038)
計算機網絡技術的發展,為存儲方法、媒介以及信息資源共享提供了支持[1]。隨著數字時代的到來,手機、電腦以及智能終端被廣泛應用和普及,因此,數字化圖書館建設改變了原有紙質資源的限制,使得圖書館資源共享服務成為可能[2-3]。由于數字信息資源供應商限制了互聯網搜索引擎對圖書館資源的搜索,使得用戶只能瀏覽圖書資源片斷或局部信息,如對圖書資源進行全部瀏覽必須要繳納費用,削弱了圖使館作為大眾免費資源的社會功能[4-5]。因此,本設計整合了Squid認證技術結合外部程序使得用戶在外網就能遠程訪問圖書館信息資源服務器,通過與資源供應商協商保障了圖書館數字資源不被非法復制,為圖書館資源共享提供了參考。
本文設計的大型圖書館信息資源共享平臺采用B/S架構、ASP.NET技術開發,利用Squid反向代理技術來為用戶提供訪問功能和身份認證功能。用戶利用客戶端通過互聯網進行身份認證,來獲取圖書資源的訪問權限,系統管理員可實現系統分析、日志查看、用戶管理和資源流量控制等功能。系統框架,如圖1所示。

圖1 大型圖書館信息資源共享平臺系統架構
用戶通過互聯網遠程訪問圖書館資源的數據流圖,如圖2所示。

圖2 數據流圖
大型圖書館信息資源共享平臺是將購買圖書數字資源與合法用戶建立起聯系的,用戶可通過Squid反向代理發送圖書資源訪問請求,并通過監控用戶訪問權限和狀態對用戶進行管理。系統功能流程,如圖3所示。

圖3 系統功能流程圖
本文使用的Squid程序是Linux系統的技術,該程序具有Windows版本。通過Squid代理服務器配置,可實現外網對內網圖書資源信息的遠程訪問。安裝好Squid后,配置文件在squid.cinf中,可設置Squid代理服務器的各項參數,從而實現相應功能。配置的內容主要為主機名配置、訪問控制、認證配置、緩存配置、端口配置和認證超時等。
配置完成后即可進入認證環節。由于Squid是Linux系統的代理服務,并不具有用戶認證功能,需要通過外部程序來實現用戶的認證,才能獲得圖書館局域網的地址。核心代碼如下。
acl user proxy_auth REQUIRED
http_access allow user
然后,通過如下命令啟動Squid:squid-c"/CDlibSquid/bin/RunCache。
本文設計的大型圖書館信息資源共享平臺總體分為前臺功能和后臺功能。功能結構,如圖4所示。

圖4 系統功能結構
其中,前臺功能可實現查看公告、查看用戶個人狀態、修改用戶個人信息、意見反饋和用戶使用明細,需要說明的是該系統沒有用戶在線注冊功能,用戶需在圖書館辦理“一卡通”后才能使用該平臺;后臺功能可實現查詢用戶列表、開通新用戶、用戶審核、在線用戶查詢、批量用戶修改及導入、用戶公告管理及用戶留言管理。
(1) 系統登錄模塊
系統登錄模塊是專門為管理員和認證用戶設計的登錄模塊,目的是防止非法登錄系統或非系統認證人員登錄,保障圖書數據資源的安全,系統登錄模塊可通過遠程登錄實現系統入口的進入。該模塊實現流程,如圖5所示。

圖5 登錄模塊流程
登錄成功后會進入圖書館資源網絡共享平臺的登錄界面,同時會顯示用戶或管理員的IP地址以及接入的監聽端口。
(2) 待審核用戶模塊
該功能可顯示用戶的申請,以便圖書管理員對用戶進一步審核。該功能可完成用戶的分組移動、用戶開通(需要“一卡通”)以及刪除用戶等操作,如圖6所示。

圖6 待審核用戶功能流程
該模塊實現界面,如圖7所示。

圖7 待審核用戶界面
(3) 批量用戶修改模塊
批量用戶修改功能是圖書館信息資源網絡共享平臺的重要功能,該功能可實現對多個用戶的使用延期、活躍調查、凍結賬號、刪除用戶等批量操作,如圖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());
該模塊實現界面,如圖9所示。

圖9 批量用戶修改界面
(4) 批量用戶導入模塊
以往的圖書館用戶管理系統中,添加用戶是按照事先定義的模板進行填寫的,耗時耗力。批量用戶導入功能可實現一次性導入全部已開通用戶的信息。該功能是新用戶開通功能的加強,將新用戶全部導入系統數據庫中,如圖10所示。

圖10 批量用戶導入功能流程
第一步,從圖書館原有的業務管理系統中讀取新辦“一卡通”的用戶信息,代碼如下。
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(); 第二步,將讀取的新辦用戶數據批量導入信息資源網絡共享平臺中,代碼如下。 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); 目前,該系統已在某大型圖書館試運行,在試運行階段筆者進行了安全性測試和系統性能測試。整個試運行階段,未發現對該館圖書信息資源非法復制的問題。為了驗證系統安全性,對登錄功能進行測試,登錄名為“admin1”,密碼為“pass001”,測試結果,如表1所示。 表1 登錄測試結果 為了驗證系統性能,在試運行過程中,根據該圖書館信息資源共享業務情況,對批量導入用戶這個數據吞吐量比較大的模塊進行了性能測試,測試結果,如圖11所示。 圖11 系統性能測試結果 安全性測試可知,當用戶輸入錯誤的賬號和密碼后,系統提示錯誤并拒絕登錄。性能測試可知,隨著批量導入用戶信息量的增加,系統CPU占用率和響應時間逐漸增加,系統性能能夠滿足該圖書館實際業務需求。 本文設計的大型圖書館信息資源共享平臺采用B/S架構、ASP.NET技術開發,搭載了Linux系統的Squid代理服務功能,用戶通過外網即可訪問圖書館內網,實現了圖書館內網信息資源的共享。在數字資源知識產權保護方面,該系統為權衡使用者權益和圖書資源供應商之間的利益提供了解決方案,可在醫院、學校、圖書情報領域推廣。3 系統應用測試


4 總結