網(wǎng)管框架設(shè)計(jì)管理論文

時(shí)間:2022-06-30 03:10:00

導(dǎo)語:網(wǎng)管框架設(shè)計(jì)管理論文一文來源于網(wǎng)友上傳,不代表本站觀點(diǎn),若需要原創(chuàng)文章可咨詢客服老師,歡迎參考。

網(wǎng)管框架設(shè)計(jì)管理論文

伴隨Internet時(shí)代的到來,網(wǎng)絡(luò)技術(shù)的迅猛發(fā)展,越來越多的企業(yè)、政府、學(xué)校、個(gè)人等都融入互聯(lián)網(wǎng)當(dāng)中,網(wǎng)絡(luò)已經(jīng)與人們的學(xué)習(xí)、工作及生活密不可分。而作為整個(gè)互聯(lián)網(wǎng)的基礎(chǔ),電信網(wǎng)穩(wěn)定、高效、準(zhǔn)確的運(yùn)行就顯得極為重要。要做到這一點(diǎn),除了要依靠網(wǎng)絡(luò)設(shè)備本身和網(wǎng)絡(luò)架構(gòu)的可靠性之外,還必須依靠一套有效的網(wǎng)絡(luò)管理手段來監(jiān)測(cè)和管理整個(gè)網(wǎng)絡(luò),而傳統(tǒng)的單層網(wǎng)絡(luò)管理模式已經(jīng)無法適應(yīng)現(xiàn)代網(wǎng)絡(luò)管理的需求。為了有效合理地管理現(xiàn)代網(wǎng)絡(luò),國(guó)際電信聯(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)及其管理功能進(jìn)行分離,使管理功能從電信網(wǎng)中獨(dú)立出來單獨(dú)組成一個(gè)網(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)按照不同的管理需求將整個(gè)電信網(wǎng)管理功能從低到高分作5層:網(wǎng)元層(NEL)、網(wǎng)元管理層(EML)、網(wǎng)絡(luò)管理層(NML)、業(yè)務(wù)管理層(SML)、事務(wù)管理層(BML)。

目前,由于實(shí)際技術(shù)水平和應(yīng)用條件的限制,網(wǎng)絡(luò)管理主要集中在網(wǎng)元管理層和網(wǎng)絡(luò)管理層,真正業(yè)務(wù)級(jí)的管理還只停留在理論研究階段。網(wǎng)元管理層直接管理物理網(wǎng)絡(luò),是整個(gè)管理系統(tǒng)的基礎(chǔ)。對(duì)電信網(wǎng)絡(luò)運(yùn)營(yíng)商來說,隨著通信業(yè)務(wù)量需求的成倍增長(zhǎng),網(wǎng)絡(luò)規(guī)模的日益膨脹,網(wǎng)元設(shè)備的種類和數(shù)量不斷增加,各個(gè)網(wǎng)元都有自己的管理系統(tǒng),這給網(wǎng)絡(luò)的管理維護(hù)帶來了很多困難。為了提高網(wǎng)絡(luò)管理的效率,很有必要對(duì)各網(wǎng)元進(jìn)行集中管理,實(shí)現(xiàn)在一個(gè)統(tǒng)一的平臺(tái)上管理各種設(shè)備。為了適應(yīng)網(wǎng)絡(luò)管理系統(tǒng)可擴(kuò)展性的要求,我們將設(shè)計(jì)模式的思想融入網(wǎng)絡(luò)管理框架設(shè)計(jì)中,保證該框架具有良好的靈活性和可擴(kuò)展性。

2網(wǎng)絡(luò)管理協(xié)議

當(dāng)前最典型的網(wǎng)絡(luò)管理協(xié)議有基于OSI七層模型的公共管理信息協(xié)議(CMIP)和基于TCP/IP的簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(SNMP)。OSI/CMIP系統(tǒng)管理模型是目前理論上最完備的網(wǎng)絡(luò)管理模型,是其他網(wǎng)絡(luò)管理模型的基本參考。但由于該模型比較復(fù)雜,實(shí)現(xiàn)代價(jià)高,因此并沒有得到廣泛的應(yīng)用。相反,當(dāng)初只是為了管理TCP/IP網(wǎng)絡(luò)的SNMP卻得到了迅速的發(fā)展和廣泛應(yīng)用。SNMP網(wǎng)絡(luò)管理模型的突出特點(diǎn)是簡(jiǎn)單、易于實(shí)現(xiàn),因而得到了廠商的支持。特別是在Internet上的成功應(yīng)用,使得它的重要性越來越突出,已經(jīng)成為事實(shí)上的工業(yè)標(biāo)準(zhǔn)。

SNMP主要包括SMI(管理信息結(jié)構(gòu))、MIB(管理信息庫(kù))和SNMP協(xié)議幾部分。SMI給出了管理對(duì)象定義的一般框架。MIB是設(shè)備所維護(hù)的全部被管理對(duì)象的結(jié)構(gòu)集合。SNMP協(xié)議包括SNMP操作、SNMP信息的格式以及如何在應(yīng)用程序和設(shè)備間交換消息。SNMP采用/管理站模型進(jìn)行網(wǎng)絡(luò)管理。

3基于SNMP的統(tǒng)一網(wǎng)管框架設(shè)計(jì)

3.1總體結(jié)構(gòu)設(shè)計(jì)

統(tǒng)一網(wǎng)管平臺(tái)提供一個(gè)高分布性,高擴(kuò)展性的架構(gòu)來保證應(yīng)用的開發(fā)者可以用不同的方法來布置他們的網(wǎng)元管理系統(tǒng)。從橫向分層的角度來看,平臺(tái)可以分為支撐層(SupportLayer)、框架層(FrameworkLayer)和應(yīng)用層(ApplicationLayer)。

統(tǒng)一網(wǎng)管平臺(tái)從軟件結(jié)構(gòu)上講仍是C/S結(jié)構(gòu),包括網(wǎng)管服務(wù)器和網(wǎng)管終端兩大部分,通過網(wǎng)管服務(wù)器的級(jí)聯(lián)構(gòu)成多級(jí)網(wǎng)管,實(shí)現(xiàn)多級(jí)網(wǎng)管的無縫集成。其中框架層和支撐層位于服務(wù)器端,應(yīng)用層位于客戶端。

3.2支撐層的設(shè)計(jì)

支撐層作為系統(tǒng)支撐平臺(tái)為應(yīng)用提供系統(tǒng)級(jí)的服務(wù),包括消息服務(wù)、數(shù)據(jù)庫(kù)訪問和SNMP接口。支撐層是整個(gè)統(tǒng)一網(wǎng)管平臺(tái)的基礎(chǔ)。

3.2.1消息服務(wù)

消息服務(wù)為系統(tǒng)中所有模塊的交互提供支持,實(shí)現(xiàn)消息的路由轉(zhuǎn)發(fā),根據(jù)消息類型,轉(zhuǎn)發(fā)到相應(yīng)的處理模塊。消息的格式如下所示:

版本號(hào)

消息頭

消息數(shù)據(jù)

消息頭的定義如下:

typedefstructmsg{

void*mlink;//指向結(jié)構(gòu)的指針,形成消息鏈表

PIDsender_pid;//發(fā)送進(jìn)程標(biāo)識(shí)

PIDreceiver_pid;//接收進(jìn)程標(biāo)識(shí)

BYTEmsg_type;//消息類型(2或3,表示同步或異步進(jìn)程消息)

WORDevent_type;//事件類型

WORDmsg_length;//消息長(zhǎng)度,不包括頭

}MSG_HEAD;

我們的系統(tǒng)使用的是非阻塞的異步消息機(jī)制,系統(tǒng)維護(hù)一個(gè)消息隊(duì)列,這個(gè)消息隊(duì)列用來存放系統(tǒng)各個(gè)模塊產(chǎn)生的消息。程序中有一小段程序代碼,叫做消息循環(huán),用來從隊(duì)列中取出消息,并且將它們發(fā)送給相應(yīng)的消息處理程序。代碼片斷如下:

while(GetNmMessage(&msg,NULL,0,0))

{

TranslateNmMessage(&msg);

DispatchNmMessage(&msg);

}

3.2.2數(shù)據(jù)庫(kù)訪問

數(shù)據(jù)庫(kù)訪問模塊提供所有訪問數(shù)據(jù)庫(kù)的接口調(diào)用,并維護(hù)數(shù)據(jù)庫(kù)連接池,其他模塊只需向其申請(qǐng)數(shù)據(jù)庫(kù)連接即可。

3.2.3SNMP接口

網(wǎng)管系統(tǒng)與網(wǎng)元的交互是基于SNMP協(xié)議的,在SNMP協(xié)議棧的實(shí)現(xiàn)中,我們采用了被廣泛使用的CMU(CarnegieMellonUniversity)開發(fā)的開放源代碼CMU-SNMP軟件包,該軟件包對(duì)SNMPv2c做了很好的實(shí)現(xiàn)。但是對(duì)于上層的開發(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ā)人員,我們對(duì)該協(xié)議棧進(jìn)行了簡(jiǎn)單封裝。將CMU格式的SNMP消息結(jié)構(gòu)轉(zhuǎn)換為本網(wǎng)管平臺(tái)內(nèi)部使用的數(shù)據(jù)結(jié)構(gòu),并提供一系列便于使用的SNMP原子命令接口和其它輔助功能接口,為其上層應(yīng)用和Trap監(jiān)聽進(jìn)程提供統(tǒng)一的支持。

通常,通過SNMP協(xié)議向SNMP發(fā)送請(qǐng)求,是通過使用MIB中定義的對(duì)象標(biāo)識(shí)符(OID)來標(biāo)識(shí)的。OID是用句點(diǎn)隔開的一組整數(shù),使用起來很不方便,我們可以通過MIB樹中葉子的名稱來訪問和設(shè)置MIB樹中的數(shù)據(jù),而不是通過枯燥的數(shù)字,方便開發(fā)人員進(jìn)行開發(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)的名稱,我們?cè)诎l(fā)送GetRequest命令時(shí)需要使用1.3.6.1.2.1.1.5.0去向SNMP檢索它,這一長(zhǎng)串的OID字符串在程序中的可讀性很差。我們采取的措施是建立一個(gè)Hash表,在SNMP模塊初始化的時(shí)候先對(duì)程序所使用的MIB進(jìn)行分析,對(duì)sysName這個(gè)字符串進(jìn)行Hash操作,將sysName、OID和DisplayString保存在Hash表中。在向上層應(yīng)用提供的SNMPAPI中只需要對(duì)sysName.0進(jìn)行操作,就能查詢到sysName的值,而不是通過枯燥的數(shù)字,方便開發(fā)人員進(jìn)行開發(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)用是基于多線程的,因此,我們?cè)趯?duì)其進(jìn)行封裝的過程中一個(gè)重要的任務(wù)就是使其線程安全,目前我們采取的方法是采用事件機(jī)制,每個(gè)SNMP原子命令執(zhí)行前,都調(diào)用系統(tǒng)的同步機(jī)制函數(shù)等待一個(gè)事件對(duì)象mm_hSnmpEvent的觸發(fā)。

3.3框架層和應(yīng)用層

針對(duì)網(wǎng)管系統(tǒng)這個(gè)特定的應(yīng)用領(lǐng)域,我們抽取出一些公共的軟件框架,這些程序框架統(tǒng)稱為框架層。所有具體的管理應(yīng)用都應(yīng)該基于這個(gè)框架層提供的全部或者部分框架來開發(fā)。在具體的應(yīng)用中,我們通過框架導(dǎo)出的API進(jìn)行二次開發(fā),如圖1所示??蚣軐臃譃楣卜?wù)功能、公共應(yīng)用功能、工作站功能和網(wǎng)元中介功能四個(gè)部分。公共服務(wù)功能提供網(wǎng)管系統(tǒng)所公有的,和具體網(wǎng)元無關(guān)的服務(wù)功能,如安全、日志等。和網(wǎng)元相關(guān)的管理功能,如告警、性能、配置等,抽取其中的公共部分稱為公共應(yīng)用功能。工作站功能實(shí)現(xiàn)客戶端GUI的展現(xiàn)功能,并提供圖形控件。網(wǎng)元中介功能實(shí)現(xiàn)網(wǎng)管系統(tǒng)和網(wǎng)元之間的接口轉(zhuǎn)換和適配功能。

應(yīng)用層就是在平臺(tái)框架層的基礎(chǔ)上,提供具體的管理應(yīng)用功能,如配置管理、性能管理、故障管理、安全管理等。這些功能都是可以拆卸的,應(yīng)用在使用統(tǒng)一網(wǎng)絡(luò)管理平臺(tái)的時(shí)候,可以根據(jù)自己的具體需要來選擇需要裝載那些管理功能。

4結(jié)束語

本文介紹了針對(duì)網(wǎng)元層的基于SNMP的網(wǎng)絡(luò)管理框架,該框架是在Windows平臺(tái)上利用VisualC++開發(fā)出來的,實(shí)現(xiàn)了在一個(gè)統(tǒng)一平臺(tái)上對(duì)各種網(wǎng)元進(jìn)行管理,具有良好的靈活性和可擴(kuò)展性。通過對(duì)各網(wǎng)元進(jìn)行集中管理,極大地提高了網(wǎng)絡(luò)管理的效率。但是本系統(tǒng)依賴于Windows平臺(tái),在移植性上尚存諸多不足。目前,Java平臺(tái)在移植性上做得比較成功,但是對(duì)于電信級(jí)的網(wǎng)管平臺(tái)來說,其性能并不能滿足要求,與此同時(shí),CORBA應(yīng)用日益成熟,C++領(lǐng)域高性能的分布式網(wǎng)絡(luò)框架ACE的異軍突起,為我們提供了跨平臺(tái)的最好選擇。我們可以用Java開發(fā)客戶端GUI,用ACE框架來實(shí)現(xiàn)服務(wù)器端的網(wǎng)管功能,用CORBA實(shí)現(xiàn)客戶端與服務(wù)器端的通信,從而真正實(shí)現(xiàn)高性能,可移植的網(wǎng)絡(luò)管理框架。

參考文獻(xiàn)

[1]ManiSubramanian.網(wǎng)絡(luò)管理-原理與實(shí)踐(影印版).北京:高等教育出版社,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.