網(wǎng)管框架設(shè)計管理論文
時間:2022-06-30 03:10:00
導(dǎo)語:網(wǎng)管框架設(shè)計管理論文一文來源于網(wǎng)友上傳,不代表本站觀點,若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。
伴隨Internet時代的到來,網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,越來越多的企業(yè)、政府、學(xué)校、個人等都融入互聯(lián)網(wǎng)當(dāng)中,網(wǎng)絡(luò)已經(jīng)與人們的學(xué)習(xí)、工作及生活密不可分。而作為整個互聯(lián)網(wǎng)的基礎(chǔ),電信網(wǎng)穩(wěn)定、高效、準(zhǔn)確的運行就顯得極為重要。要做到這一點,除了要依靠網(wǎng)絡(luò)設(shè)備本身和網(wǎng)絡(luò)架構(gòu)的可靠性之外,還必須依靠一套有效的網(wǎng)絡(luò)管理手段來監(jiān)測和管理整個網(wǎng)絡(luò),而傳統(tǒng)的單層網(wǎng)絡(luò)管理模式已經(jīng)無法適應(yīng)現(xiàn)代網(wǎng)絡(luò)管理的需求。為了有效合理地管理現(xiàn)代網(wǎng)絡(luò),國際電信聯(lián)盟電信標(biāo)準(zhǔn)化部門(ITU-T)于1988年,參考OSI系統(tǒng)管理框架提出了具有標(biāo)準(zhǔn)協(xié)議、接口和體系結(jié)構(gòu)的管理網(wǎng)絡(luò)--電信管理網(wǎng)(TelecommunicationManagementNet,TMN),作為管理現(xiàn)代電信網(wǎng)的基礎(chǔ)。考慮將提供業(yè)務(wù)的電信網(wǎng)及其管理功能進行分離,使管理功能從電信網(wǎng)中獨立出來單獨組成一個網(wǎng),即TMN。TMN制定了一系列的標(biāo)準(zhǔn)和管理功能,包括被管網(wǎng)元和網(wǎng)絡(luò)管理系統(tǒng)之間的接口均被標(biāo)準(zhǔn)化了。只要被管網(wǎng)元和網(wǎng)絡(luò)管理系統(tǒng)之間遵循TMN標(biāo)準(zhǔn),完成一定的管理功能,就能夠?qū)崿F(xiàn)不同廠商的不同設(shè)備以及不同網(wǎng)絡(luò)管理系統(tǒng)之間的互連互通操作。TMN體系結(jié)構(gòu)按照不同的管理需求將整個電信網(wǎng)管理功能從低到高分作5層:網(wǎng)元層(NEL)、網(wǎng)元管理層(EML)、網(wǎng)絡(luò)管理層(NML)、業(yè)務(wù)管理層(SML)、事務(wù)管理層(BML)。
目前,由于實際技術(shù)水平和應(yīng)用條件的限制,網(wǎng)絡(luò)管理主要集中在網(wǎng)元管理層和網(wǎng)絡(luò)管理層,真正業(yè)務(wù)級的管理還只停留在理論研究階段。網(wǎng)元管理層直接管理物理網(wǎng)絡(luò),是整個管理系統(tǒng)的基礎(chǔ)。對電信網(wǎng)絡(luò)運營商來說,隨著通信業(yè)務(wù)量需求的成倍增長,網(wǎng)絡(luò)規(guī)模的日益膨脹,網(wǎng)元設(shè)備的種類和數(shù)量不斷增加,各個網(wǎng)元都有自己的管理系統(tǒng),這給網(wǎng)絡(luò)的管理維護帶來了很多困難。為了提高網(wǎng)絡(luò)管理的效率,很有必要對各網(wǎng)元進行集中管理,實現(xiàn)在一個統(tǒng)一的平臺上管理各種設(shè)備。為了適應(yīng)網(wǎng)絡(luò)管理系統(tǒng)可擴展性的要求,我們將設(shè)計模式的思想融入網(wǎng)絡(luò)管理框架設(shè)計中,保證該框架具有良好的靈活性和可擴展性。
2網(wǎng)絡(luò)管理協(xié)議
當(dāng)前最典型的網(wǎng)絡(luò)管理協(xié)議有基于OSI七層模型的公共管理信息協(xié)議(CMIP)和基于TCP/IP的簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)。OSI/CMIP系統(tǒng)管理模型是目前理論上最完備的網(wǎng)絡(luò)管理模型,是其他網(wǎng)絡(luò)管理模型的基本參考。但由于該模型比較復(fù)雜,實現(xiàn)代價高,因此并沒有得到廣泛的應(yīng)用。相反,當(dāng)初只是為了管理TCP/IP網(wǎng)絡(luò)的SNMP卻得到了迅速的發(fā)展和廣泛應(yīng)用。SNMP網(wǎng)絡(luò)管理模型的突出特點是簡單、易于實現(xiàn),因而得到了廠商的支持。特別是在Internet上的成功應(yīng)用,使得它的重要性越來越突出,已經(jīng)成為事實上的工業(yè)標(biāo)準(zhǔn)。
SNMP主要包括SMI(管理信息結(jié)構(gòu))、MIB(管理信息庫)和SNMP協(xié)議幾部分。SMI給出了管理對象定義的一般框架。MIB是設(shè)備所維護的全部被管理對象的結(jié)構(gòu)集合。SNMP協(xié)議包括SNMP操作、SNMP信息的格式以及如何在應(yīng)用程序和設(shè)備間交換消息。SNMP采用/管理站模型進行網(wǎng)絡(luò)管理。
3基于SNMP的統(tǒng)一網(wǎng)管框架設(shè)計
3.1總體結(jié)構(gòu)設(shè)計
統(tǒng)一網(wǎng)管平臺提供一個高分布性,高擴展性的架構(gòu)來保證應(yīng)用的開發(fā)者可以用不同的方法來布置他們的網(wǎng)元管理系統(tǒng)。從橫向分層的角度來看,平臺可以分為支撐層(SupportLayer)、框架層(FrameworkLayer)和應(yīng)用層(ApplicationLayer)。
統(tǒng)一網(wǎng)管平臺從軟件結(jié)構(gòu)上講仍是C/S結(jié)構(gòu),包括網(wǎng)管服務(wù)器和網(wǎng)管終端兩大部分,通過網(wǎng)管服務(wù)器的級聯(lián)構(gòu)成多級網(wǎng)管,實現(xiàn)多級網(wǎng)管的無縫集成。其中框架層和支撐層位于服務(wù)器端,應(yīng)用層位于客戶端。
3.2支撐層的設(shè)計
支撐層作為系統(tǒng)支撐平臺為應(yīng)用提供系統(tǒng)級的服務(wù),包括消息服務(wù)、數(shù)據(jù)庫訪問和SNMP接口。支撐層是整個統(tǒng)一網(wǎng)管平臺的基礎(chǔ)。
3.2.1消息服務(wù)
消息服務(wù)為系統(tǒng)中所有模塊的交互提供支持,實現(xiàn)消息的路由轉(zhuǎn)發(fā),根據(jù)消息類型,轉(zhuǎn)發(fā)到相應(yīng)的處理模塊。消息的格式如下所示:
版本號
消息頭
消息數(shù)據(jù)
消息頭的定義如下:
typedefstructmsg{
void*mlink;//指向結(jié)構(gòu)的指針,形成消息鏈表
PIDsender_pid;//發(fā)送進程標(biāo)識
PIDreceiver_pid;//接收進程標(biāo)識
BYTEmsg_type;//消息類型(2或3,表示同步或異步進程消息)
WORDevent_type;//事件類型
WORDmsg_length;//消息長度,不包括頭
}MSG_HEAD;
我們的系統(tǒng)使用的是非阻塞的異步消息機制,系統(tǒng)維護一個消息隊列,這個消息隊列用來存放系統(tǒng)各個模塊產(chǎn)生的消息。程序中有一小段程序代碼,叫做消息循環(huán),用來從隊列中取出消息,并且將它們發(fā)送給相應(yīng)的消息處理程序。代碼片斷如下:
while(GetNmMessage(&msg,NULL,0,0))
{
TranslateNmMessage(&msg);
DispatchNmMessage(&msg);
}
3.2.2數(shù)據(jù)庫訪問
數(shù)據(jù)庫訪問模塊提供所有訪問數(shù)據(jù)庫的接口調(diào)用,并維護數(shù)據(jù)庫連接池,其他模塊只需向其申請數(shù)據(jù)庫連接即可。
3.2.3SNMP接口
網(wǎng)管系統(tǒng)與網(wǎng)元的交互是基于SNMP協(xié)議的,在SNMP協(xié)議棧的實現(xiàn)中,我們采用了被廣泛使用的CMU(CarnegieMellonUniversity)開發(fā)的開放源代碼CMU-SNMP軟件包,該軟件包對SNMPv2c做了很好的實現(xiàn)。但是對于上層的開發(fā)人員來說,調(diào)用起來不是很方便。例如,一次SNMP操作,就要先后調(diào)用以下這些函數(shù):
char*winsock_startup(void);
voidsnmp_synch_setup(structsnmp_session*Session);
structsnmp_session*snmp_open(structsnmp_session*session);
structsnmp_pdu*snmp_pdu_create(intcommand);
intsnmp_synch_response(structsnmp_session*Session,structsnmp_pdu*PDU,structsnmp_pdu**ResponsePDUP);
intsnmp_close(structsnmp_session*session);
為了方便業(yè)務(wù)開發(fā)人員,我們對該協(xié)議棧進行了簡單封裝。將CMU格式的SNMP消息結(jié)構(gòu)轉(zhuǎn)換為本網(wǎng)管平臺內(nèi)部使用的數(shù)據(jù)結(jié)構(gòu),并提供一系列便于使用的SNMP原子命令接口和其它輔助功能接口,為其上層應(yīng)用和Trap監(jiān)聽進程提供統(tǒng)一的支持。
通常,通過SNMP協(xié)議向SNMP發(fā)送請求,是通過使用MIB中定義的對象標(biāo)識符(OID)來標(biāo)識的。OID是用句點隔開的一組整數(shù),使用起來很不方便,我們可以通過MIB樹中葉子的名稱來訪問和設(shè)置MIB樹中的數(shù)據(jù),而不是通過枯燥的數(shù)字,方便開發(fā)人員進行開發(fā)。
以RFC1213定義的MIB-Ⅱ中的..dod.internet.mgmt.mib-2.system.sysName為例,其定義如下:
sysNameOBJECT-TYPE
SYNTAXDisplayString(SIZE(0..255))
MAX-ACCESSread-write
STATUScurrent
DESCRIPTION
"Anadministratively-assignednameforthismanagednode.
Byconvention,thisisthenode''''sfully-qualifieddomain
name.Ifthenameisunknown,thevalueisthezero-length
string."
::={system5}
如果我們要查詢系統(tǒng)的名稱,我們在發(fā)送GetRequest命令時需要使用1.3.6.1.2.1.1.5.0去向SNMP檢索它,這一長串的OID字符串在程序中的可讀性很差。我們采取的措施是建立一個Hash表,在SNMP模塊初始化的時候先對程序所使用的MIB進行分析,對sysName這個字符串進行Hash操作,將sysName、OID和DisplayString保存在Hash表中。在向上層應(yīng)用提供的SNMPAPI中只需要對sysName.0進行操作,就能查詢到sysName的值,而不是通過枯燥的數(shù)字,方便開發(fā)人員進行開發(fā)。MakeHash函數(shù)如下所示:
ULONGMakeHash(char*str,ULONGlen)
{
ULONGn;
n=0;
#defineHASHCn=*str+++65587*n
if(len>0)
{
intloop;
loop=(len+8-1)>>3;
switch(len&(8-1))
{
case0:
do
{
HASHC;
case7:HASHC;
case6:HASHC;
case5:HASHC;
case4:HASHC;
case3:HASHC;
case2:HASHC;
case1:HASHC;
}while(--loop);
}
}
returnn;
}
另外,由于我們使用的CMU的SNMP協(xié)議棧是非線程安全的,而我們的上層應(yīng)用是基于多線程的,因此,我們在對其進行封裝的過程中一個重要的任務(wù)就是使其線程安全,目前我們采取的方法是采用事件機制,每個SNMP原子命令執(zhí)行前,都調(diào)用系統(tǒng)的同步機制函數(shù)等待一個事件對象mm_hSnmpEvent的觸發(fā)。
3.3框架層和應(yīng)用層
針對網(wǎng)管系統(tǒng)這個特定的應(yīng)用領(lǐng)域,我們抽取出一些公共的軟件框架,這些程序框架統(tǒng)稱為框架層。所有具體的管理應(yīng)用都應(yīng)該基于這個框架層提供的全部或者部分框架來開發(fā)。在具體的應(yīng)用中,我們通過框架導(dǎo)出的API進行二次開發(fā),如圖1所示。框架層分為公共服務(wù)功能、公共應(yīng)用功能、工作站功能和網(wǎng)元中介功能四個部分。公共服務(wù)功能提供網(wǎng)管系統(tǒng)所公有的,和具體網(wǎng)元無關(guān)的服務(wù)功能,如安全、日志等。和網(wǎng)元相關(guān)的管理功能,如告警、性能、配置等,抽取其中的公共部分稱為公共應(yīng)用功能。工作站功能實現(xiàn)客戶端GUI的展現(xiàn)功能,并提供圖形控件。網(wǎng)元中介功能實現(xiàn)網(wǎng)管系統(tǒng)和網(wǎng)元之間的接口轉(zhuǎn)換和適配功能。
應(yīng)用層就是在平臺框架層的基礎(chǔ)上,提供具體的管理應(yīng)用功能,如配置管理、性能管理、故障管理、安全管理等。這些功能都是可以拆卸的,應(yīng)用在使用統(tǒng)一網(wǎng)絡(luò)管理平臺的時候,可以根據(jù)自己的具體需要來選擇需要裝載那些管理功能。
4結(jié)束語
本文介紹了針對網(wǎng)元層的基于SNMP的網(wǎng)絡(luò)管理框架,該框架是在Windows平臺上利用VisualC++開發(fā)出來的,實現(xiàn)了在一個統(tǒng)一平臺上對各種網(wǎng)元進行管理,具有良好的靈活性和可擴展性。通過對各網(wǎng)元進行集中管理,極大地提高了網(wǎng)絡(luò)管理的效率。但是本系統(tǒng)依賴于Windows平臺,在移植性上尚存諸多不足。目前,Java平臺在移植性上做得比較成功,但是對于電信級的網(wǎng)管平臺來說,其性能并不能滿足要求,與此同時,CORBA應(yīng)用日益成熟,C++領(lǐng)域高性能的分布式網(wǎng)絡(luò)框架ACE的異軍突起,為我們提供了跨平臺的最好選擇。我們可以用Java開發(fā)客戶端GUI,用ACE框架來實現(xiàn)服務(wù)器端的網(wǎng)管功能,用CORBA實現(xiàn)客戶端與服務(wù)器端的通信,從而真正實現(xiàn)高性能,可移植的網(wǎng)絡(luò)管理框架。
參考文獻
[1]ManiSubramanian.網(wǎng)絡(luò)管理-原理與實踐(影印版).北京:高等教育出版社,2001
[2]郭軍.網(wǎng)絡(luò)管理[M].北京:北京郵電大學(xué)出版社,2001
[3]賢道,安常青.網(wǎng)絡(luò)管理協(xié)議及應(yīng)用開發(fā)[M].北京:清華大學(xué)出版社,1998
[4]DouglasMauro,KevinSchmidt.EssentialSNMP[M].O′Reilly&Associates,2001
[5]RFC1157.ASimpleNetworkManagementProtocol[S]
DesignandImplementationoftheUniformNetworkManagementSystemBasedonSNMP
(ComputerCenterofEastChinaNormalUniversity,ShangHai,200062)
Abstract:Afterthebriefintroductionofnetworkmanagement,thispaperdesignsandimplementstheuniformnetworkmanagementsystembasedonobject-orientedtechnology.