摘要:目的:圖書館系統(tǒng)軟件是典型的信息管理系統(tǒng)(MIS),其開發(fā)主要包括后臺(tái)數(shù)據(jù)庫的建立和維護(hù)以及前端應(yīng)用程序的開發(fā)兩個(gè)方面。對(duì)于前者要求建立起數(shù)據(jù)一致性和完整性強(qiáng)、數(shù)據(jù)安全性好的庫。而對(duì)于后者則要求應(yīng)用程序功能完備,易使用等特點(diǎn)。
關(guān)鍵詞:信息管理系統(tǒng);瀏覽器服務(wù)器架構(gòu);MVC框架
一、開發(fā)背景及意義
(一)開發(fā)背景
當(dāng)今時(shí)代是飛速發(fā)展的信息時(shí)代。在各行各業(yè)中離不開信息處理,這正是計(jì)算機(jī)被廣泛應(yīng)用于信息管理系統(tǒng)的環(huán)境。計(jì)算機(jī)的最大好處在于利用它能夠進(jìn)行信息管理。使用計(jì)算機(jī)進(jìn)行信息控制,不僅提高了工作效率,而且大大的提高了其安全性。
圖書館作為一種信息資源的集散地,圖書和用戶借閱資料繁多,包含很多的信息數(shù)據(jù)的管理,而本次設(shè)計(jì)可以使圖書管理工作規(guī)范化,系統(tǒng)化,程序化,避免圖書管理的隨意性,提高信息處理的速度和準(zhǔn)確性,能夠及時(shí)、準(zhǔn)確、有效的查詢和修改圖書情況。
(二)課題的國內(nèi)外研究現(xiàn)狀
圖書館的信息化從最初的對(duì)圖書館業(yè)務(wù)管理實(shí)行信息化發(fā)展到對(duì)圖書館各個(gè)業(yè)務(wù)流程進(jìn)行系統(tǒng)和網(wǎng)絡(luò)話化管理,并建立大規(guī)模以個(gè)體文獻(xiàn)目錄聯(lián)機(jī)查詢?yōu)橹鞯馁Y源共享系統(tǒng)[1]。
圖書館的計(jì)算機(jī)信息化管理,其根本目的是實(shí)現(xiàn)區(qū)域內(nèi)及地區(qū)、國家、國家間的資源共享。要達(dá)到資源共享的目的,必須制定一定的標(biāo)準(zhǔn),只有各個(gè)系統(tǒng)都遵循這些標(biāo)準(zhǔn),不同的系統(tǒng)間才可以實(shí)現(xiàn)聯(lián)機(jī)查詢、資源共享的效果。
二、開發(fā)工具及運(yùn)行環(huán)境
(一)軟件環(huán)境
1.Struts(開源軟件)
Struts是Apache 基金會(huì)Jakarta 項(xiàng)目組的一個(gè)Open Source 項(xiàng)目,它采用MVC(即模型Mode)、視圖View和控制Controller)模式,能夠很好地幫助java 開發(fā)者利用J2EE開發(fā)Web應(yīng)用。和其他的java架構(gòu)一樣,Struts 也是面向?qū)ο笤O(shè)計(jì),將MVC模式\"分離顯示邏輯和業(yè)務(wù)邏輯\"的能力發(fā)揮得淋漓盡致。Structs 框架的核心是一個(gè)彈性的控制層,基于如 Java Servlets,JavaBeans,ResourceBundles與XML(可擴(kuò)展標(biāo)記語言 Extensible Markup Language)等標(biāo)準(zhǔn)技術(shù),以及 Jakarta Commons 的一些類庫。Struts有一組相互協(xié)作的類(組件)、Servlet以及jsp tag lib組成?;趕truts構(gòu)架的web應(yīng)用程序基本上符合JSP(Java Server Pages,動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)))Model2的設(shè)計(jì)標(biāo)準(zhǔn),可以說是一個(gè)傳統(tǒng) MVC設(shè)計(jì)模式的一種變化類型[2]。
Struts最早是作為Apache Jakarta項(xiàng)目的組成部分問世運(yùn)作。項(xiàng)目的創(chuàng)立者希望通過對(duì)該項(xiàng)目的研究,改進(jìn)和提高Java Server Pages、Servlet、標(biāo)簽庫以及面向?qū)ο蟮募夹g(shù)水準(zhǔn)。
Struts的目的是為了減少在運(yùn)用MVC設(shè)計(jì)模型來開發(fā)Web應(yīng)用的時(shí)間。你仍然需要學(xué)習(xí)和應(yīng)用該架構(gòu),不過它將可以完成其中一些繁重的工作[3]。
Struts跟Tomcat、Turbine等諸多Apache項(xiàng)目一樣,是開源軟件,這是它的一大優(yōu)點(diǎn),使開發(fā)者能更深入的了解其內(nèi)部實(shí)現(xiàn)機(jī)制。
除此之外,Struts的優(yōu)點(diǎn)主要集中體現(xiàn)在兩個(gè)方面:Taglib和頁面導(dǎo)航。Taglib是Struts的標(biāo)記庫,靈活運(yùn)用,能大大提高開發(fā)效率。另外,就目前國內(nèi)的JSP開發(fā)者而言,除了使用JSP自帶的常用標(biāo)記外,很少開發(fā)自己的標(biāo)記,或許Struts是一個(gè)很好的起點(diǎn)。
2. Mysql(小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng))
MySQL默認(rèn)配置了許多不同的存儲(chǔ)引擎,可以預(yù)先設(shè)置或者在MySQL服務(wù)器中啟用。可以選擇適用于服務(wù)器、數(shù)據(jù)庫和表格的存儲(chǔ)引擎,以便在選擇如何存儲(chǔ)信息、如何檢索這些信息以及需要數(shù)據(jù)結(jié)合什么性能和功能的時(shí)候提供最大的靈活性。選擇如何存儲(chǔ)和檢索數(shù)據(jù)的這種靈活性是MySQL為什么如此受歡迎的主要原因。其他數(shù)據(jù)庫系統(tǒng)(包括大多數(shù)商業(yè)選擇)僅支持一種類型的數(shù)據(jù)存儲(chǔ)。遺憾的是,其他類型的數(shù)據(jù)庫解決方案采取的是“一個(gè)尺碼滿足一切需求”的方式,這就意味著要么犧牲一些性能,要么就用幾個(gè)小時(shí)甚至幾天的時(shí)間詳細(xì)調(diào)整數(shù)據(jù)庫。使用MySQL,僅需要修改使用的存儲(chǔ)引擎就可以了。
MySQL中的數(shù)據(jù)用各種不同的技術(shù)存儲(chǔ)在文件或者內(nèi)存中。這些技術(shù)中的每一種都使用不同的存儲(chǔ)機(jī)制、索引技巧、鎖定水平并且最終提供廣泛的不同的功能和能力。通過選擇不同的技術(shù),能夠獲得額外的速度或者功能,從而改善應(yīng)用的整體功能。
3.Tomact(免費(fèi)的開源的Servlet容器)
Tomcat是一個(gè)免費(fèi)的開源的Servlet容器,它是Apache基金會(huì)的一個(gè)核心項(xiàng)目,由Apache、Sun和其他一些公司及個(gè)人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和JSP規(guī)范總能在Tomcat中得到體現(xiàn)。Tomcat被JavaWorld雜志的編輯選為2001年度最具創(chuàng)新的Java產(chǎn)品,可見其在業(yè)界的地位。由于Java的跨平臺(tái)特性,基于Java的Tomcat也具有跨平臺(tái)性。很多中小應(yīng)用不需要采用EJB(Enterprise JavaBean,用于開發(fā)基于組件的企業(yè)多重應(yīng)用程序的標(biāo)準(zhǔn))等技術(shù),JSP和Servlet已經(jīng)足夠,這時(shí)如果用應(yīng)用服務(wù)器就有些浪費(fèi)了。而Tomcat短小精悍,配置方便,能滿足我們的需求,這種情況下我們自然會(huì)選擇Tomcat。Tomcat也可以與其他一些軟件集成起來實(shí)現(xiàn)更多的功能?,F(xiàn)舉例如下。
1.1與JBoss集成起來開發(fā)EJB。
1.2與Cocoon(Apache的另外一個(gè)項(xiàng)目)集成起來開發(fā)基于XML的應(yīng)用。
1.3與OpenJMS集成起來開發(fā)JMS應(yīng)用。
除了以上提到的這幾種,可以與Tomcat集成的軟件還有很多。Tomcat確實(shí)是一個(gè)很好的工具,不僅僅因?yàn)槠涿赓M(fèi),功能強(qiáng)大,更因?yàn)槠溟_放性。如今,開源軟件越來越受到人們的重視,Linux就是一個(gè)成功的典型。人們不再只限于使用軟件,而且已經(jīng)關(guān)心起軟件的具體實(shí)現(xiàn)。我們有理由相信Tomcat會(huì)走得更遠(yuǎn)。
4.軟件環(huán)境的安裝和配置
以上介紹的軟件安裝都很簡單,其中JDK(Java Development Kit)和MySQL的安裝軟件是可運(yùn)行程序。只需直接安裝即可。Tomcat、Hibernate的安裝文件是壓縮軟件包,只需把壓縮文件解壓到本地磁盤,安裝好后需在操作系統(tǒng)中設(shè)置環(huán)境變量。
(二)硬件環(huán)境
該系統(tǒng)較小,對(duì)硬件的需求不大,基本配置如下:cpu 2.8GHz 或更高;512MB 的內(nèi)存;操作系統(tǒng)為windowsXP;網(wǎng)絡(luò)連接速度 512KB。
(三)相關(guān)技術(shù)介紹
1.JSP(Java Server Pages 動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn))簡介
JSP技術(shù)使用Java編程語言編寫類XML的tags和scriptlets,來封裝產(chǎn)生動(dòng)態(tài)網(wǎng)頁的處理邏輯。網(wǎng)頁還能通過tags和scriptlets訪問存在于服務(wù)端的資源的應(yīng)用邏輯。JSP將網(wǎng)頁邏輯與網(wǎng)頁設(shè)計(jì)和顯示分離,支持可重用的基于組件的設(shè)計(jì),使基于Web的應(yīng)用程序的開發(fā)變得迅速和容易。
Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請求時(shí),首先執(zhí)行其中的程序段,然后將執(zhí)行結(jié)果連同JSP文件中的HTML(Hypertext Markup Language,網(wǎng)頁文檔標(biāo)記語言)代碼一起返回給客戶。插入的Java程序段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁等,以實(shí)現(xiàn)建立動(dòng)態(tài)網(wǎng)頁所需要的功能。
JSP與Java Servlet一樣,是在服務(wù)器端執(zhí)行的,通常返回該客戶端的就是一個(gè)HTML文本,因此客戶端只要有瀏覽器就能瀏覽。
JSP的1.0規(guī)范的最后版本是1999年9月推出的,12月又推出了1.1規(guī)范。目前較新的是JSP1.2規(guī)范,JSP2.0規(guī)范的征求意見稿也已出臺(tái)。
JSP頁面由HTML代碼和嵌入其中的Java代碼所組成。服務(wù)器在頁面被客戶端請求以后對(duì)這些Java代碼進(jìn)行處理,然后將生成的HTML頁面返回給客戶端的瀏覽器。Java Servlet 是JSP的技術(shù)基礎(chǔ),而且大型的Web應(yīng)用程序的開發(fā)需要Java Servlet和JSP配合才能完成。JSP具備了Java技術(shù)的簡單易用,完全的面向?qū)ο螅哂衅脚_(tái)無關(guān)性且安全可靠,主要面向因特網(wǎng)的所有特點(diǎn)。自JSP推出后,眾多大公司都支持JSP技術(shù)的服務(wù)器,如IBM、Oracle、Bea公司等,所以JSP迅速成為商業(yè)應(yīng)用的服務(wù)器端語言。JSP可用一種簡單易懂的等式表示為:HTML+Java=JSP。
2.JavaScript(客戶端網(wǎng)頁開發(fā)腳本語言)簡介
JavaScript 是根據(jù) \"ECMAScript\"標(biāo)準(zhǔn)制定的網(wǎng)頁腳本語言。這個(gè)標(biāo)準(zhǔn)由 ECMA 組織發(fā)展和維護(hù)。ECMA-262 是正式的 JavaScript 標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)基于 JavaScript(Netscape)和 JScript(Microsoft)。Netscape(Navigator 2.0)的 Brendan Eich 發(fā)明了這門語言,從1996年開始,已經(jīng)出現(xiàn)在所有的 Netscape 和 Microsoft 瀏覽器中。ECMA-262 的開發(fā)始于 1996年,在 1997年7月,ECMA 會(huì)員大會(huì)采納了它的首個(gè)版本。
在 1998 年,該標(biāo)準(zhǔn)成為了國際 ISO 標(biāo)準(zhǔn)(ISO/IEC 16262)。這個(gè)標(biāo)準(zhǔn)仍然處于發(fā)展之中。
在 2005年12月,ECMA發(fā)布ECMA-357標(biāo)準(zhǔn)(ISO/IEC 22537)出臺(tái),主要增加對(duì)擴(kuò)展標(biāo)記語言XML的有效支持。
目前javascript 的最新版本為1.8。
三、結(jié)論
本系統(tǒng)是一個(gè)面向小型圖書館管理系統(tǒng),具有一定實(shí)用性的數(shù)據(jù)庫信息管理系統(tǒng)。它主要完成對(duì)圖書館的一系列管理,包括進(jìn)入新書、借閱、信息查詢管理。本系統(tǒng)采用當(dāng)前流行的面向?qū)ο蟮拈_發(fā)語言java來完成整個(gè)系統(tǒng)的設(shè)計(jì),在數(shù)據(jù)庫的設(shè)計(jì)上利用了SQL的便利性和實(shí)用性。
【參考文獻(xiàn)】
[1]張海藩.軟件工程導(dǎo)論[M].北京:清華大學(xué)出版社,1998:50-87
[2]丁衛(wèi)群.數(shù)據(jù)庫系統(tǒng)概論[M].北京:科學(xué)出版社,2001:63-79
[3]張桂元.Struts開發(fā)入門與項(xiàng)目實(shí)踐[M].北京:人民郵電出版社,2005:103-118
[4]薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,2003:40-67