楊洪雪,劉業(yè)輝,詹曉東
(1.北京電子科技職業(yè)學(xué)院,北京 100015;2.北京工業(yè)職業(yè)技術(shù)學(xué)院,北京 100042)
當(dāng)前無線網(wǎng)絡(luò)應(yīng)用方興未艾,隨著應(yīng)用的應(yīng)用的廣泛發(fā)展,網(wǎng)優(yōu)和網(wǎng)絡(luò)維護(hù)問題愈發(fā)突出,網(wǎng)絡(luò)服務(wù)商為了提供更好的網(wǎng)絡(luò)服務(wù),需要對(duì)自己的網(wǎng)優(yōu)設(shè)備進(jìn)行實(shí)時(shí)監(jiān)控并及時(shí)維護(hù),但是由于網(wǎng)優(yōu)設(shè)備的監(jiān)控參數(shù)多,涉及管理的部門多,造成網(wǎng)優(yōu)監(jiān)控系統(tǒng)接口復(fù)雜,響應(yīng)速度慢,擴(kuò)展性差,多部門交叉使用,安全性差,筆者在進(jìn)行一個(gè)網(wǎng)優(yōu)設(shè)備站點(diǎn)監(jiān)控網(wǎng)絡(luò)設(shè)計(jì)時(shí)提出了一種利用LDAP協(xié)議和負(fù)載均衡及業(yè)務(wù)分配中間件對(duì)各站點(diǎn)上傳的監(jiān)控?cái)?shù)據(jù)進(jìn)行處理的應(yīng)用模型,該系統(tǒng)除能夠采集網(wǎng)優(yōu)設(shè)備信息外,還能夠根據(jù)監(jiān)控網(wǎng)絡(luò)的負(fù)載或“在線”情況將報(bào)警信息發(fā)到有效在線或“空閑”的監(jiān)控站,本在實(shí)際應(yīng)用中得到了用戶的好評(píng),對(duì)數(shù)據(jù)監(jiān)控網(wǎng)絡(luò)的的設(shè)計(jì)提供了一種參考。
LDAP(輕量級(jí)目錄訪問協(xié)議,Lightweight Directory Access Protocol)是一種標(biāo)準(zhǔn)的目錄服務(wù)技術(shù),它基于X.500 標(biāo)準(zhǔn),可以根據(jù)應(yīng)用的需要進(jìn)行定制和擴(kuò)展。LDAP 對(duì)Internet 訪問支持非常好,并且對(duì)瀏覽和查找目錄及讀取內(nèi)容進(jìn)行了專門的優(yōu)化,使得它讀取的速度比一般的關(guān)系型數(shù)據(jù)庫(kù)要快。
LDAP協(xié)議規(guī)定了信息的形式和特性、信息存放的索引和組織方式、分步式的操作模型等內(nèi)容。LDAP存儲(chǔ)模型包括四個(gè)部分:信息模型、命名模型、功能模型和安全模型。LDAP 信息模型是指使用LDAP模式腳本定義對(duì)象類和屬性;LDAP命名模型是說明如何在目錄樹中組織條目的規(guī)則;LDAP 功能模型是指提供訪問目錄信息的方法;LDAP 安全模型考慮的是數(shù)據(jù)安全性問題。LDAP目錄中可以存放各種不同類型的數(shù)據(jù),如簡(jiǎn)單文本、圖片信息、URL、二進(jìn)制數(shù)據(jù)、證書等。
LDAP 協(xié)議已經(jīng)成為一個(gè)被廣范支持的標(biāo)準(zhǔn)協(xié)議,除用于認(rèn)證外也易于集成不同應(yīng)用系統(tǒng)的特點(diǎn),成為支持網(wǎng)絡(luò)系統(tǒng)的重要底層基礎(chǔ)技術(shù)之一。
監(jiān)控?cái)?shù)據(jù)采集系統(tǒng)的總體設(shè)計(jì)架構(gòu)采用如下的設(shè)計(jì)拓?fù)洌?由控制管理服務(wù)器、LDAP目錄服務(wù)器、監(jiān)控?cái)?shù)據(jù)存儲(chǔ)服務(wù)器群組成,如圖1所示。
控制管理服務(wù)器的作用是組成資源活動(dòng)目錄,承擔(dān)監(jiān)控網(wǎng)絡(luò)中的各種管理角色及管理任務(wù),向監(jiān)控中的所有終端提供認(rèn)證服務(wù),并以控制管理服務(wù)器為安全邊界維持監(jiān)控網(wǎng)絡(luò)內(nèi)部的安全。監(jiān)控網(wǎng)絡(luò)中的賬號(hào)信息通過LDAP目錄服務(wù)器查詢獲得,目錄服務(wù)器包含了監(jiān)控網(wǎng)絡(luò)內(nèi)部的賬戶、密碼以及數(shù)據(jù)庫(kù)的連接字段等信息構(gòu)成的數(shù)據(jù)庫(kù)。
圖1 監(jiān)控?cái)?shù)據(jù)采集系統(tǒng)的總體架構(gòu)
當(dāng)被監(jiān)控設(shè)備或監(jiān)控終端聯(lián)入網(wǎng)絡(luò)時(shí),控制管理服務(wù)器首先要鑒別這個(gè)設(shè)備或計(jì)算機(jī)是否是屬于這個(gè)監(jiān)控網(wǎng)絡(luò),用戶使用的登錄賬號(hào)是否存在、密碼是否正確,如果以上信息有不正確,那么控制管理服務(wù)器就會(huì)拒絕這個(gè)設(shè)備或計(jì)算機(jī)登錄網(wǎng)絡(luò)。從而保證監(jiān)控網(wǎng)絡(luò)內(nèi)部的安全。
由于要保證監(jiān)控和數(shù)據(jù)采集的實(shí)時(shí)性,系統(tǒng)要求每個(gè)服務(wù)器只采集32個(gè)被控網(wǎng)優(yōu)站點(diǎn)的數(shù)據(jù),而每個(gè)監(jiān)控工作站最多負(fù)責(zé)監(jiān)控16個(gè)網(wǎng)優(yōu)站點(diǎn)的狀態(tài),除工作人員可以挑選被監(jiān)控的網(wǎng)優(yōu)站點(diǎn)外,若網(wǎng)優(yōu)站點(diǎn)設(shè)備若發(fā)生負(fù)載過大等報(bào)警(預(yù)警)信息,可以主動(dòng)聯(lián)系監(jiān)控工作站,這就需要系統(tǒng)能為被監(jiān)控設(shè)備尋找到在線并空閑的監(jiān)控工作站,被監(jiān)控設(shè)備監(jiān)控終端連接到以控制管理服務(wù)器為入口的數(shù)據(jù)記錄處理服務(wù)器群,控制管理服務(wù)器利用搭建在服務(wù)器內(nèi)部的負(fù)載均衡以及業(yè)務(wù)分配中間件,通過負(fù)載分配以及業(yè)務(wù)功能分派算法,根據(jù)被監(jiān)控設(shè)備的業(yè)務(wù)類型(報(bào)警、實(shí)時(shí)監(jiān)控、監(jiān)控?cái)?shù)據(jù)采集、設(shè)備參數(shù)設(shè)置等)將被監(jiān)控設(shè)備鏈接到不同的監(jiān)控終端或服務(wù)器。這時(shí)被監(jiān)控設(shè)備將直接與監(jiān)控終端或數(shù)據(jù)采集服務(wù)器鏈接而不再通過LDAP服務(wù)器和控制管理服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù)從而減輕了接入層的負(fù)載,了提高了網(wǎng)絡(luò)整體的數(shù)據(jù)處理能力。
被控網(wǎng)優(yōu)站點(diǎn)連接監(jiān)控網(wǎng)絡(luò)時(shí),需要將設(shè)備信息(驗(yàn)證碼)通過LDAP目錄服務(wù)器進(jìn)行驗(yàn)證,以保證監(jiān)控網(wǎng)絡(luò)安全。如果驗(yàn)證碼匹配,則允許連接。否則,拒絕連接。被控設(shè)備信息驗(yàn)證成功后,繼續(xù)從LDAP目錄服務(wù)器取得相應(yīng)的業(yè)務(wù)代碼信息??刂乒芾矸?wù)器驗(yàn)證該被控站點(diǎn)的業(yè)務(wù)是否需要調(diào)度。如果需要調(diào)度,系統(tǒng)會(huì)結(jié)合LDAP目錄服務(wù)器上取得的業(yè)務(wù)信息,根據(jù)業(yè)務(wù)類型并利用Constenet Hash算法從待選監(jiān)控工作站中選擇一臺(tái)供被控站點(diǎn)連接。這時(shí),被控站點(diǎn)得到“在線并空閑”的監(jiān)控工作站的鏈接信息,被控站點(diǎn)利用鏈接信息完成與監(jiān)控工作站的鏈接,這時(shí)不再需要LDAP服務(wù)器和控制管理服務(wù)器的協(xié)助,從而提高了接入端效率。系統(tǒng)的工作流程圖為圖2所示。
圖2 系統(tǒng)業(yè)務(wù)流程
LDAP 將數(shù)據(jù)組織為目錄信息樹DIT(Directory Information Tree),目錄樹DIT結(jié)構(gòu)需要符合RFC 2308bis 推薦標(biāo)準(zhǔn)。LDAP目錄中的具體信息存儲(chǔ)在條目(entry)的數(shù)據(jù)結(jié)構(gòu)中。條目相當(dāng)于關(guān)系數(shù)據(jù)庫(kù)中表的記錄;條目是具有區(qū)別名DN(Distinguished Name)的屬性(Attribute),DN是用來引用條目的,DN相當(dāng)于關(guān)系數(shù)據(jù)庫(kù)表中的關(guān)鍵字(Primary Key)。屬性由類型(Type)和一個(gè)或多個(gè)值(Values)組成,相當(dāng)于關(guān)系數(shù)據(jù)庫(kù)中的字段(Field)由字段名和數(shù)據(jù)類型組成,只是為了方便檢索的需要,LDAP中的Type可以有多個(gè)Value,而不是關(guān)系數(shù)據(jù)庫(kù)中為降低數(shù)據(jù)的冗余性要求實(shí)現(xiàn)的各個(gè)域必須是不相關(guān)的。LDAP中條目的組織一般按照地理位置和組織關(guān)系進(jìn)行組織,非常的直觀。本系統(tǒng)的LDAP目錄樹以Dc=monitor,Dc=cn為樹根,下面定義了一個(gè)子目錄樹Dc=mobilemonitor(即一個(gè)組織),在子目錄樹下定義了四個(gè)子樹(即組織單元):ou=Users 存儲(chǔ)使用者的賬號(hào),ou=Computer 存儲(chǔ)受控監(jiān)控端的系統(tǒng)ID,ou=Groups 存儲(chǔ)數(shù)據(jù)記錄組和監(jiān)控組組,ou=DSA 存儲(chǔ)與LDAP安全相關(guān)的特殊賬戶。
當(dāng)設(shè)備通過認(rèn)證后,根據(jù)業(yè)務(wù)類型并利用Constenet Hash算法從待選監(jiān)控工作站中選擇一臺(tái)供被控站點(diǎn)連接。而由于本系統(tǒng)有多個(gè)數(shù)據(jù)采集服務(wù)器和監(jiān)控工作站,為了將被控對(duì)象鏈接到正確的數(shù)據(jù)采集服務(wù)器和監(jiān)控工作站并利用好服務(wù)器的cache上最簡(jiǎn)單的方法計(jì)算各個(gè)鏈接的hash值,然后均勻的映射到到N個(gè)cache上:
但是若某一服務(wù)器m 出現(xiàn)故障則需要把cache(m)從cache鏈中移除,這時(shí)候映射公式為:
另外若某一監(jiān)控站上線則映射公式將變成:
式(2)式(3)表示所有映射必須重新計(jì)算,在服務(wù)器上的所有數(shù)據(jù)將重新分布,這對(duì)后臺(tái)服務(wù)器和監(jiān)控工作站造成了嚴(yán)重的數(shù)據(jù)沖擊,甚至造成一段時(shí)間的響應(yīng)遲緩和。另外在本系統(tǒng)中,需要根據(jù)實(shí)際情況讓某一節(jié)點(diǎn)擔(dān)負(fù)更多工作,顯然普通的hash算法做不到這點(diǎn)。所以本系統(tǒng)使用了consistent hash算法,Consistent hash是一種hash算法,簡(jiǎn)單的說,在移除/添加一個(gè)cache時(shí),它能夠盡可能小的改變已存在key映射關(guān)系,即盡可能的滿足單調(diào)性的要求。通常,hash算法都是將value映射到一個(gè)32位的key值,value的容量是0~2^32-1次方的數(shù)值空間;為方便起見可以將這個(gè)空間想象成一個(gè)首(0)尾(2^32-1)相接的圓環(huán),本項(xiàng)目將IP地址作為hash輸入。但普通hash求余的方法帶來的最大問題就在于不能滿足單調(diào)性,所以當(dāng)cache數(shù)量有所變動(dòng)時(shí),cache機(jī)制會(huì)失效,進(jìn)而對(duì)后臺(tái)服務(wù)器造成巨大的沖擊, Consistent hash算法的基本思想就是將對(duì)象和cache都映射到同一個(gè)hash數(shù)值空間中,并且使用相同的hash算法。如圖3所示假設(shè)cache B丟失,根據(jù)上面講到的映射方法,這時(shí)受影響的將僅是那些沿cache B逆時(shí)針遍歷直到下一個(gè)cache(cache C)之間的對(duì)象,也即是本來映射到cache B上的那些對(duì)象。因此這里僅需要變動(dòng)object4,將其重新映射到cache C上即可。
圖3 Cache B被移除后的cache映射
而考慮添加一個(gè)新的業(yè)務(wù)(添加cache D)的情況,假設(shè)在這個(gè)環(huán)形hash空間中,cache D被映射在對(duì)象object2和object3之間。這時(shí)受影響的將僅是那些沿cache D逆時(shí)針遍歷直到下一個(gè)cache(cache B)之間的對(duì)象(它們是也本來映射到cache C上對(duì)象的一部分),將這些對(duì)象重新映射到cache D上即可。因此這里僅需要變動(dòng)對(duì)象object2,將其重新映射到cache D上;參見圖4。
圖4 添加cache D后的映射關(guān)系
利用LDAP 目錄服務(wù)技術(shù)以及負(fù)載分布技術(shù)設(shè)計(jì)的網(wǎng)優(yōu)基站數(shù)據(jù)采集系統(tǒng),即實(shí)現(xiàn)了多認(rèn)證源的統(tǒng)一認(rèn)證管理,業(yè)務(wù)均衡負(fù)載和智能分配。實(shí)踐證明,不僅提高了網(wǎng)絡(luò)的訪問速度、安全性、可靠性,也給用戶提供了極大的方便,達(dá)到了統(tǒng)一身份認(rèn)證的設(shè)計(jì)目標(biāo),客服了原有監(jiān)控網(wǎng)絡(luò)由于負(fù)載分配原因造成阻塞和效率減低的缺陷,為網(wǎng)優(yōu)設(shè)備的監(jiān)控管理網(wǎng)絡(luò)提供一種參考模型。
[1] 曾斌, 姚路, 陳志誠(chéng).基于負(fù)載平衡智能體的分布式Web代理群集研究[J].計(jì)算機(jī)工程與設(shè)計(jì), 2011, 32(9): 2631-2635.
[2] 于劍, 等.LDAP目錄服務(wù)在Web開發(fā)中的應(yīng)用[J].計(jì)算機(jī)應(yīng)用, 2003, 23(10): 82-84.
[3] Mark Wahl.A Summary of the x.500(96)User Schema for use with LDAPv3[S].RFC2256, 1997.
[4] 趙春, 趙成棟, 康建初.在基于域的網(wǎng)絡(luò)管理中應(yīng)用的研究[J].計(jì)算機(jī)工程與應(yīng)用, 2004, 18: 141-143.
[5] http://blog.csdn.net/yq76034150/article/details/6776044