呂翠霞
(江蘇廣播電視大學(xué),江蘇 南京 210036)
利用PHP+MySql+LDAP實(shí)現(xiàn)機(jī)房管理系統(tǒng)
呂翠霞
(江蘇廣播電視大學(xué),江蘇 南京 210036)
本文在簡(jiǎn)要介紹了LDAP及相關(guān)技術(shù)的基礎(chǔ)上,利用PHP+MySql編程方法設(shè)計(jì)了一種基于LDAP協(xié)議的適應(yīng)性廣、通用性強(qiáng)的機(jī)房管理系統(tǒng)。并對(duì)其中涉及的關(guān)鍵技術(shù)進(jìn)行了論述,同時(shí)介紹了該系統(tǒng)的設(shè)計(jì)思想、技術(shù)特色和系統(tǒng)結(jié)構(gòu)。
機(jī)房;管理系統(tǒng);LDAP;PHP
隨著信息化程度的提高和教育改革的發(fā)展,越來(lái)越多的學(xué)校開(kāi)始普及計(jì)算機(jī)教學(xué),伴隨而來(lái)的是電腦數(shù)量的劇增,計(jì)算機(jī)機(jī)房的管理任務(wù)趨向復(fù)雜化。機(jī)房管理人員開(kāi)始投入大量的人力和物力對(duì)電腦設(shè)備進(jìn)行管理和維護(hù),盡管如此在機(jī)房管理的過(guò)程中仍取得不了好的效果。主要常見(jiàn)的問(wèn)題有:①學(xué)生上機(jī)不需要認(rèn)證,計(jì)算機(jī)資源得不到合理有效的
利用。②當(dāng)機(jī)器出現(xiàn)故障時(shí),需要手工查找學(xué)生的上機(jī)記錄,費(fèi)事費(fèi)力。筆者根據(jù)多年的機(jī)房管理經(jīng)驗(yàn),設(shè)計(jì)了一套機(jī)房管理系統(tǒng),可以實(shí)現(xiàn)學(xué)校機(jī)房管理智能化。
系統(tǒng)概述:本系統(tǒng)采用當(dāng)前流行的B/S模式,即在客戶端和服務(wù)端增加一個(gè)代理層,當(dāng)學(xué)生用戶登陸時(shí),通過(guò)PHP環(huán)境下的Web代理層轉(zhuǎn)發(fā)用戶登陸信息,實(shí)現(xiàn)和LDAP服務(wù)器端的用戶認(rèn)證通信。當(dāng)用戶登陸后,Web代理層將學(xué)生的詳細(xì)信息,比如上機(jī)時(shí)間、個(gè)人用戶信息等內(nèi)容記錄到MySql數(shù)據(jù)庫(kù)中,實(shí)現(xiàn)上機(jī)行為的統(tǒng)計(jì)和分析。系統(tǒng)結(jié)構(gòu)圖見(jiàn)圖一:
LDAP簡(jiǎn)介:LDAP代表輕型目錄訪問(wèn)協(xié)議,它是一個(gè)用來(lái)訪問(wèn)目錄服務(wù),尤其是基于X.500的目錄服務(wù)的輕型協(xié)議。LDAP運(yùn)行在TCP/IP協(xié)議或者其他的面向連接的傳輸服務(wù)之上。LDAP的信息模型是建立在“條目”(entries)的基礎(chǔ)上。一個(gè)條目是一個(gè)屬性的集合,并且具有一個(gè)全局唯一的“可區(qū)分名稱”DN,該DN被用來(lái)唯一的引用該條目。LDAP客戶端不保存任何用戶信息,它所需要的用戶信息通過(guò)LDAP服務(wù)器從主存儲(chǔ)節(jié)點(diǎn)中獲取。LDAP服務(wù)端負(fù)責(zé)給LDAP客戶端提供用戶信息的獲取、查詢和修改服務(wù)。
圖一 系統(tǒng)結(jié)構(gòu)圖
用戶認(rèn)證模塊設(shè)計(jì):利用PHP程序連接LDAP服務(wù)器,向LDAP服務(wù)器發(fā)出用戶認(rèn)證請(qǐng)求,如果用戶名和密碼正確,則登陸成功。如果用戶信息和LDAP服務(wù)器中記錄的不一樣,則退回登陸界面。PHP實(shí)現(xiàn)代碼如下:
上機(jī)行為記錄模塊設(shè)計(jì):當(dāng)用戶登陸成功后,利用PHP程序從LDAP服務(wù)器中讀取用戶的身份信息,登陸時(shí)間等,并將這些信息寫入MySql數(shù)據(jù)庫(kù)中。其中MySql數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)如下(UserAction):
列名 數(shù)據(jù)類型 長(zhǎng)度FileID numeric 9 UserName varchar 32 PassWord varchar 15 LogInTime numeric 9 LogOutTime numeric 9 UserClass varchar 32
上機(jī)行為記錄模塊中PHP實(shí)現(xiàn)代碼下:
LDAP認(rèn)證過(guò)程:LDAP客戶端和服務(wù)器之間的信息傳遞采用信息交換的模式,LDAP客戶端給LDAP服務(wù)器傳遞需要執(zhí)行的協(xié)議請(qǐng)求,LDAP服務(wù)器在目錄中執(zhí)行完成后,返回一個(gè)包括任何結(jié)果或錯(cuò)誤的應(yīng)當(dāng)。在協(xié)議交換的過(guò)程中,所有的協(xié)議操作都被封裝成一個(gè)信息包。發(fā)送的請(qǐng)求的包格式如下:
LDAP服務(wù)器處理完成后,返回一個(gè)包括請(qǐng)求所對(duì)應(yīng)的應(yīng)答信息或出錯(cuò)信息包。在上述協(xié)議包中,除了一些必添的信息字段外,還包括了不少預(yù)留項(xiàng),這主要是考慮到以后的擴(kuò)充,以做到向后兼容。
LDAP用戶管理:包括添加新用戶、修改用戶信息、刪除用戶。PHP實(shí)現(xiàn)代碼如下:
用戶管理系統(tǒng)的另一個(gè)重要的問(wèn)題就是數(shù)據(jù)存儲(chǔ)的穩(wěn)定性、可靠性。為了保證數(shù)據(jù)存儲(chǔ)的穩(wěn)定性、可靠性,在服務(wù)端設(shè)計(jì)和采用管理與存儲(chǔ)分離的思想,數(shù)據(jù)單獨(dú)存儲(chǔ)在與LDAP服務(wù)器不同的存儲(chǔ)節(jié)點(diǎn)上,并且采用數(shù)據(jù)動(dòng)態(tài)實(shí)時(shí)更新的技術(shù),當(dāng)數(shù)據(jù)改動(dòng)時(shí),主存儲(chǔ)節(jié)點(diǎn)實(shí)時(shí)地把修改的數(shù)據(jù)更新到存儲(chǔ)節(jié)點(diǎn),主、從存儲(chǔ)節(jié)點(diǎn)間的信息復(fù)制遵循LDAP協(xié)議。只更新修改數(shù)據(jù)的優(yōu)點(diǎn)是,它不僅保證了主、從存儲(chǔ)節(jié)點(diǎn)上數(shù)據(jù)的一致性,而且因?yàn)楦碌臄?shù)據(jù)量少,更新的速度得到了大幅度提高。采用這種主、從存儲(chǔ)結(jié)構(gòu),當(dāng)主存儲(chǔ)節(jié)點(diǎn)的數(shù)據(jù)被破壞時(shí),從存儲(chǔ)節(jié)點(diǎn)馬上代替主存儲(chǔ)節(jié)點(diǎn)的工作,使服務(wù)保持不間斷性。并且由于LDAP服務(wù)器與數(shù)據(jù)不在同一節(jié)點(diǎn)上,所以當(dāng)LDAP服務(wù)器受到網(wǎng)絡(luò)攻擊而遭到破壞時(shí),也不會(huì)損壞到數(shù)據(jù),這在一定程度上也保證了數(shù)據(jù)的可靠性。
在本機(jī)房管理系統(tǒng)中,使用最多的是用戶登陸和信息查詢。當(dāng)客戶端多用戶并發(fā)登陸或查詢時(shí),每次操作都要經(jīng)過(guò)三個(gè)過(guò)程。①客戶端首先通過(guò)Web代理層向LDAP服務(wù)端發(fā)送認(rèn)證或查詢請(qǐng)求。②再由LDAP服務(wù)器從目錄服務(wù)中獲取信息后返回給客戶端。③同時(shí)Web代理層再將系統(tǒng)所需的信息存儲(chǔ)到MySql數(shù)據(jù)庫(kù)中。這中間涉及到三個(gè)環(huán)節(jié)速度問(wèn)題。因此本系統(tǒng)的運(yùn)行速度跟這三項(xiàng)服務(wù)密切相關(guān),要高效運(yùn)行本機(jī)房管理系統(tǒng),必須分別優(yōu)化PHP環(huán)境、MySql數(shù)據(jù)庫(kù)、LDAP服務(wù)器。
[1] 羅明,檀文釗.跨平臺(tái)的PHP+MySql[M].北京:清華大學(xué)出版社,2001.
[2] R.Padmini S.Nivedita.TCP/IP詳解[M].北京:電子工業(yè)出版社,2003.
PHP + MySql Computer Lab Management System Based on LDAP
LV Cui-xia
Based on LDAP protocol, a computer lab management system written in PHP using MySql as database is presented in this paper. The design thought、technology feature and structure of the system are provided.
LDAP,computer lab, management system, PHP
TP308
A
1008-7427(2012)07-0159-02
2012-04-06