【摘要】文章分析了基于開源平臺(tái)建設(shè)高校就業(yè)信息系統(tǒng)的優(yōu)勢。通過比較各種開源軟件,提出了一套開源平臺(tái)解決方案,并以某高校就業(yè)信息系統(tǒng)為例,闡述了基于開源平臺(tái)構(gòu)建高校就業(yè)信息系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)過程,對構(gòu)建其他類似的中小型信息系統(tǒng)具有一定的借鑒作用。
【關(guān)鍵詞】開源平臺(tái);就業(yè)信息系統(tǒng);解決方案
【中圖分類號】G40-057 【文獻(xiàn)標(biāo)識(shí)碼】A 【論文編號】1009—8097(2011)04—0148—04
一 引言
隨著信息技術(shù)的發(fā)展,建立現(xiàn)代化的高校就業(yè)信息系統(tǒng),能充分發(fā)揮網(wǎng)絡(luò)信息量大、傳播快、溝通方便、費(fèi)用低廉、不受時(shí)空限制等優(yōu)點(diǎn),更好的滿足高校就業(yè)形勢的需要。
近年來,開源運(yùn)動(dòng)蔚然成風(fēng),開源項(xiàng)目和軟件也越來越豐富[1]?;陂_源平臺(tái)建構(gòu)高校就業(yè)信息系統(tǒng)具有諸多優(yōu)勢:
1 成本低廉。開源軟件不需要授權(quán)費(fèi)用,也不需要維護(hù)費(fèi)用[2];
2 良好的安全性和穩(wěn)定性。開源軟件的開放性使得軟件中的漏洞能很快的被發(fā)現(xiàn)并修復(fù),因此具有良好的安全性和穩(wěn)定性;
3 可擴(kuò)展性強(qiáng)。開源軟件開放源碼,因此用戶可以根據(jù)自己的需求對軟件進(jìn)行定制;
4 廣泛的技術(shù)支持。開源軟件有網(wǎng)上的互助社區(qū),因此很容易獲得免費(fèi)的在線幫助[3];
綜上原因,本文通過比較當(dāng)前流行的開源軟件,提出了一套開源平臺(tái)解決方案,并在此基礎(chǔ)上設(shè)計(jì)并實(shí)現(xiàn)了某高校就業(yè)信息系統(tǒng)。
二 開源軟件的比較和選擇
目前開源軟件數(shù)目眾多,作者認(rèn)為選擇開源軟件時(shí)應(yīng)主要從以下五個(gè)方面考慮:
1 功能和性能:功能強(qiáng)大的開源軟件往往更能夠滿足系統(tǒng)的需求。系統(tǒng)的性能包括系統(tǒng)的運(yùn)行速度、吞吐量、并發(fā)用戶數(shù)、資源利用率等,性能好的開源軟件能在同樣的硬件條件下提供更好的用戶體驗(yàn)。在選擇開源軟件時(shí),應(yīng)根據(jù)系統(tǒng)的具體需求,平衡考慮功能和性能兩方面因素。
2 安全性和穩(wěn)定性:安全性高的系統(tǒng)漏洞較少,漏洞能快速的被發(fā)現(xiàn)和修復(fù)。穩(wěn)定性高的系統(tǒng)容錯(cuò)性高,能長期穩(wěn)定的運(yùn)行。對于高校就業(yè)信息系統(tǒng),既需要保護(hù)各項(xiàng)數(shù)據(jù)的安全,又需要保證系統(tǒng)長期穩(wěn)定運(yùn)行,應(yīng)選擇安全性和穩(wěn)定性的都較高的軟件。
3 流行度:包括用戶的占有率和開發(fā)人員的活躍程度。用戶占有率越高,相對生命周期越長,越能得到更多的技術(shù)和社區(qū)支持,漏洞也能被更快的發(fā)現(xiàn)。開發(fā)人員越活躍,新功能推出的越快,漏洞也能被更快的修復(fù)。同時(shí),流行度也間接的反映了某開源軟件的各項(xiàng)性能,流行度高的軟件,往往各項(xiàng)性能也越高。在選擇開源軟件時(shí),可優(yōu)先考慮流行度最高的軟件。
4 定制性和擴(kuò)展性:定制性指軟件可以方便的修改以滿足不同的需求。擴(kuò)展性指軟件可以方便的增加新功能。定制性和擴(kuò)展性越高,開發(fā)和維護(hù)越方便、高效。
5 開發(fā)人員的熟悉程度:開發(fā)人員對所選軟件的熟悉程度越高,學(xué)習(xí)的成本越低,同時(shí)開發(fā)的速度和質(zhì)量越高。
以上五方面因素相互作用、相互影響,應(yīng)根據(jù)實(shí)際需求綜合考慮。
本方案結(jié)合高校就業(yè)信息系統(tǒng)的需求特點(diǎn)和各開源軟件的優(yōu)點(diǎn),選擇以下開源軟件來構(gòu)建系統(tǒng):
1 操作系統(tǒng)的選擇: 開源操作系統(tǒng)分為Linux、BSD和Open Solaris三個(gè)系列,其中BSD和Open Solaris系列相對冷門,而Linux是當(dāng)今最熱門的開源操作系統(tǒng),其社區(qū)活躍度要遠(yuǎn)遠(yuǎn)高于后兩種。Linux又有很多發(fā)行版本,以Red Hat系列的安全性和穩(wěn)定性最高。Red Hat系統(tǒng)中Red Hat Enterprise Linux(RHEL)是Red Hat公司自己推出的服務(wù)器版本,但Red Hat是商業(yè)公司,RHEL中部分配套軟件和技術(shù)支持是需要收費(fèi)的。CentOS是一款由RHEL按開放源碼規(guī)定釋出的源碼重新編譯而成的企業(yè)級Linux發(fā)行版[3],并在RHEL基礎(chǔ)上修正了不少已知的Bugs,其穩(wěn)定性和可靠性也非常出色,同時(shí)具有很好社區(qū)支持,是目前最流行的服務(wù)器Linux發(fā)行版[4]。綜合上述因素,我們選擇CentOS作為平臺(tái)的操作系統(tǒng)。
2 Web服務(wù)器的選擇:基于Linux的開源Web服務(wù)器很多,其中最流行的是Apache[5],其性能和安全性均很好。JBoss企業(yè)級Web服務(wù)器整合了Apache Tomcat、Apache Tomcat-Native和Apache Web Server 技術(shù),結(jié)合了市場領(lǐng)先的開源技術(shù)和企業(yè)級性能[6]。其全面遵守J2EE規(guī)范,由純Java開發(fā),并采用JMX體系結(jié)構(gòu)實(shí),具有跨平臺(tái)、安裝簡單、支持熱部署、安全性高等優(yōu)點(diǎn)。綜合上述因素,我們選擇JBoss作為Web服務(wù)器。
3 數(shù)據(jù)庫的選擇:數(shù)據(jù)庫中以MySQL、MS SQL-Server和Oracle等最為流行,其中只有MySQL是開源的。MySQL具有跨平臺(tái)、支持多線程、查詢速度快等優(yōu)點(diǎn),是最流行的開放源碼SQL數(shù)據(jù)庫管理系統(tǒng)[7]。因此,數(shù)據(jù)庫采用MySQL。
4 開發(fā)語言的選擇:最常用的三種Web開發(fā)語言為JSP、ASP和PHP。其中ASP依賴于Windows商業(yè)平臺(tái)而非開源技術(shù)。JSP與PHP均為開源,兩者相比,JSP的性能、擴(kuò)展性、安全性、跨平臺(tái)性等方面要更勝一籌,已經(jīng)成為當(dāng)今Web技術(shù)三層結(jié)構(gòu)的發(fā)展潮流[8]。因此選擇JSP作為開發(fā)語言。
5 開發(fā)框架采用Struts2+Hibernate3+Spring2:該框架是目前最流行的JSP開發(fā)框架。對于Web技術(shù)的三層結(jié)構(gòu),表現(xiàn)層使用Struts2,業(yè)務(wù)層使用Spring2,持久層使用Hibernate3。綜合使用這三個(gè)框架,發(fā)揮每個(gè)框架的優(yōu)勢,系統(tǒng)結(jié)構(gòu)清晰、可重用性高、靈活性好。整個(gè)框架的組合如圖1所示:
通過以上分析,我們整合利用上述開源軟件,以開發(fā)一個(gè)免費(fèi)的、高性能、高穩(wěn)定性的高校就業(yè)信息系統(tǒng)。
三 某高校就業(yè)信息系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
1 系統(tǒng)的架構(gòu)設(shè)計(jì)
系統(tǒng)分為采用標(biāo)準(zhǔn)B/S三層架構(gòu),分別為:用戶層(表現(xiàn)層)、業(yè)務(wù)層、持久層(數(shù)據(jù)層)。如圖2所示:
其中,用戶層負(fù)責(zé)與用戶交互,包括將數(shù)據(jù)展現(xiàn)給用戶、接收和驗(yàn)證用戶的輸入;業(yè)務(wù)層負(fù)責(zé)應(yīng)用的業(yè)務(wù)邏輯,并分別與用戶層和數(shù)據(jù)層交互;數(shù)據(jù)層負(fù)責(zé)處理數(shù)據(jù),包括查詢、保存、更新、刪除數(shù)據(jù)。
2 系統(tǒng)的功能模塊
就業(yè)信息系統(tǒng)的用戶包括畢業(yè)生、用戶單位和管理員。通過分析三種用戶的需求,給出系統(tǒng)的功能模塊如圖3所示:
功能模塊劃分如下:
公共服務(wù)模塊主要用于展示政策信息和招聘信息,具體包括:就業(yè)政策(用于發(fā)布就業(yè)相關(guān)的政策文件,并提供相關(guān)的文檔下載);新聞公告(用于發(fā)布學(xué)校關(guān)于就業(yè)的新聞);招聘信息(用于發(fā)布招聘信息以及招聘會(huì)信息);跟蹤調(diào)查(畢業(yè)生就業(yè)需求或者就業(yè)滿意度調(diào)查)。
學(xué)生服務(wù)模塊主要用于畢業(yè)生登錄填寫個(gè)人信息和畢業(yè)信息,并具有上傳和打印個(gè)人簡歷的功能,為學(xué)生提供了向用人單位展示自己的平臺(tái)。同時(shí)該模塊還方便了學(xué)生辦理畢業(yè)手續(xù),方便了學(xué)校統(tǒng)計(jì)學(xué)生的畢業(yè)信息。
用人單位服務(wù)模塊主要用于用人單位發(fā)布招聘信息和預(yù)約學(xué)校場地以召開專場招聘會(huì),同時(shí)提供了各院系和專業(yè)的介紹,用人單位也可以在此搜索和查看學(xué)生的信息和簡歷,方便用人單位找到需要的人才。
院系管理模塊主要用于各院系管理員發(fā)布相關(guān)的信息和招聘信息,以及各畢業(yè)班班主任管理本班的學(xué)生。
職業(yè)生涯模塊提供職前教育網(wǎng)絡(luò)學(xué)堂、職業(yè)測評、咨詢服務(wù)、在線問答四個(gè)子功能模塊。
后臺(tái)管理模塊為系統(tǒng)管理員提供方便的系統(tǒng)管理功能。包括:管理文章、審核和管理用人單位信息、管理畢業(yè)生信息、審核和管理招聘信息和招聘會(huì)信息、管理招聘會(huì)場地信息、導(dǎo)入導(dǎo)出畢業(yè)生數(shù)據(jù)等。
3 關(guān)鍵技術(shù)的討論
在設(shè)計(jì)和開發(fā)過程中需要重點(diǎn)解決二個(gè)方面的關(guān)鍵技術(shù)問題。
首先,招聘會(huì)場地的管理流程。學(xué)校有報(bào)告廳等場地用于招聘會(huì),并可以網(wǎng)上預(yù)約,既方便了用人單位預(yù)約場地,也提高了場地的利用率。
整個(gè)流程如下:用人單位登錄系統(tǒng)并進(jìn)入用人單位服務(wù)區(qū),通過招聘會(huì)場地列表頁,查看各場地的信息,并可以預(yù)約兩個(gè)月之內(nèi)某場地某時(shí)間段的使用權(quán),如果該場地在此時(shí)間段已被預(yù)約,系統(tǒng)將提示選擇其他時(shí)間段。成功預(yù)約后,系統(tǒng)管理員在后臺(tái)審核,審核通過后,用人單位即可發(fā)布招聘會(huì)信息。
其次,畢業(yè)生數(shù)據(jù)導(dǎo)入導(dǎo)出。系統(tǒng)每年會(huì)在畢業(yè)生畢業(yè)工作完成后將畢業(yè)生信息表清空,并在下一屆畢業(yè)生畢業(yè)工作開展期間將該屆的學(xué)生數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫,導(dǎo)入的信息為csv文件,信息包括學(xué)號、姓名、出生年月、性別、學(xué)制、學(xué)歷、培養(yǎng)方式和畢業(yè)時(shí)間。
導(dǎo)入功能利用Java的輸入流實(shí)現(xiàn),代碼如下:
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(myFile), \"utf-8\"));//將上傳文件讀入輸入流
String line = br.readLine(); // 跳過第一行,字段名
while ((line = br.readLine()) != 1) {//再讀到文件尾部之前,循環(huán)讀取文件每一行
String[] array = line.split(\",\");//將每行中的信息分割成數(shù)組
Student stu = new Student();//新建一個(gè)學(xué)生信息
stu.setUsercode(array[0]);//導(dǎo)入該行中的學(xué)號信息
…//導(dǎo)入該行中的其他信息
studentDao.save(stu);//將學(xué)生信息存入數(shù)據(jù)庫
}
另外,系統(tǒng)還提供將畢業(yè)生信息導(dǎo)出為csv文件,導(dǎo)出功能利用HttpServletResponse類和PrintWriter類實(shí)現(xiàn),代碼如下:
String date = …//data為從數(shù)據(jù)庫中讀出的學(xué)生數(shù)據(jù)
HttpServletResponse response = ServletActionContext.getResponse();
response.setHeader(\"Content-Disposition\", \"attachment; filename=\\\"out.csv\" + \"\\\"\");//輸出文件為out.csv
PrintWriter out = 1;
try {
out = response.getWriter();//輸出到文件
} catch (IOException e) {
System.out.println(“Export error!”);//出錯(cuò)時(shí)輸出提示信息
}
…;
學(xué)生數(shù)據(jù)的導(dǎo)入導(dǎo)出功能,提高了畢業(yè)生就業(yè)工作的效率,同時(shí)也為學(xué)校的專業(yè)設(shè)置、招生辦學(xué)提供了參考。
四 結(jié)束語
本文根據(jù)高校學(xué)生就業(yè)信息管理工作的特點(diǎn),通過分析開源軟件的優(yōu)勢和特點(diǎn),提出了一套開源平臺(tái)解決方案。系統(tǒng)完全采用開源軟件,成本低、安全性和穩(wěn)定性高,同時(shí)具有良好的可維護(hù)性和可擴(kuò)展性。目前該系統(tǒng)已在某高校成功運(yùn)行了三年多,并取得了良好的效果。同時(shí),該解決方案完全可以用于建設(shè)類似的中小型信息系統(tǒng)。
參考文獻(xiàn)
[1] 張文正.開源軟件在高校中的應(yīng)用參考[J].現(xiàn)代教育技術(shù), 2008,18(10):110-113.
[2] Jason Williams, Peter Clegg, Emmett Dulaney.Expanding Choice: Moving to Linux and Open Source with Novell Open Enterprise Server[M].Novell Press,2005.
[3] CentOS Overview[EB/OL].
[4] Usage of Linux for websites [EB/OL] .
[5] Usage of web servers for websites [EB/OL].
[6] JBoss Enterprise Web Server [EB/OL] .
[7] MySQL Enterprise Server 5.1 [EB/OL].
[8] 楊茹,張愛文.基于JSP的高校就業(yè)服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].中國教育信息化,2007,(2):57-59.
[9] Mark Eagle. Wiring Your Web Application with Open Source Java[EB/OL].
The Open Source Solution for University Employee Information Systems
ZHENG Wen-xi WU Min
(Modern Education Technology Center, University of Science and Technology of China, Hefei, Anhui 230026, China)
Abstract: This paper discusses the advantages of building university employee information systems based on open source platform. By comparing the open source technologies, proposed a set of open-source platform solution. Use a university’s employee information system as example, introduced the design and exploitation on employee information system based on open source platform. The solution can apply to similar types of small and medium sized information systems.
Keywords: open-source platform; university employee information system; solution
收稿日期:2011年2月19日
編輯:紅葉