NodeManager
今天終于把NodeManager的接口確定下來(lái)了。代碼不知改了多少次,才成為今天這個(gè)樣子,
每個(gè)接口都有明確的定義和責(zé)任,真是不容易。2.0中這塊寫得極混亂,代碼重用性不好,可擴(kuò)
展性受到很大影響。3.0中能把NodeManager的接口設(shè)計(jì)好,算是整個(gè)架構(gòu)的一個(gè)重大改進(jìn)。
NodeManager完成以下功能:
1.加入網(wǎng)元前,檢查用戶輸入的參數(shù),以及這個(gè)網(wǎng)元是否已經(jīng)存在;
2.加入網(wǎng)元:第一,加入數(shù)據(jù)庫(kù)(持久化);
第二,加入輪詢隊(duì)列;
第三,加入到視圖(XML)。
3.刪除網(wǎng)元:同樣三步,與加入網(wǎng)元正好相反的操作。
不定義更新操作,因為各種網(wǎng)元更新數(shù)據(jù)差別太大,不能統(tǒng)一接口。
Update直接在在service中實(shí)現(xiàn)。
NodeManager
|
方法 |
屬性 |
說(shuō)明 |
1 |
checkVaildBeforeAdd |
public |
增加網(wǎng)元之前,檢查網(wǎng)元的有效性。 |
2 |
addNode |
public |
增加一個(gè)網(wǎng)元。 |
3 |
attachMonitors |
protected |
增加后,給網(wǎng)元加上默認(rèn)監(jiān)視器。 |
4 |
loadNodes |
public |
啟動(dòng)Tomcat時(shí),從數(shù)據(jù)庫(kù)加載到內(nèi)存。 |
5 |
loadMonitors |
protected |
在loadNodes中調(diào)用,加載監(jiān)視器。 |
6 |
deleteNode |
public |
刪除一個(gè)網(wǎng)元。 |
7 |
persistNode |
public |
持久化一個(gè)網(wǎng)元:把網(wǎng)元數(shù)據(jù)存入MySQL。 |
8 |
persistBase |
protected |
在persistNode中調(diào)用,把父類數(shù)據(jù)存入主表。 |
9 |
persistSubNode |
protected |
在persistNode中調(diào)用,把子類數(shù)據(jù)存入子表。 |
10 |
persistMonitors |
protected |
在persistNode中調(diào)用,持久化監(jiān)視器。 |
11 |
afterPersist |
public |
在每個(gè)persist方法后調(diào)用。 |
12 |
afterDone |
public |
關(guān)閉Connection等操作。 |
HostManager
因為在HostManager除了實(shí)現(xiàn)對(duì)host的操作,還有對(duì)Subnet和link的操作,所以除了實(shí)現(xiàn)
NodeManager中的接口外,還多了好些方法。
|
方法 |
屬性 |
說(shuō)明 |
1 |
checkVaildBeforeAdd |
public |
增加網(wǎng)元之前,檢查網(wǎng)元的有效性。 |
2 |
setDiscoveryConfig |
public |
設(shè)置發(fā)現(xiàn)配置。因為增加主機(jī)與發(fā)現(xiàn)配置有關(guān)系,所以要有這個(gè)方法。 |
3 |
loadLinks |
private |
加載鏈路,在loadNodes后調(diào)用。 |
4 |
loadServerLoginConfig |
private |
對(duì)Unix或Linux,加載telnet或ssh的參數(shù)。 |
5 |
loadIfs |
private |
加載接口。 |
6 |
loadSubnets |
private |
加載子網(wǎng)。 |
7 |
removeLegacy |
public |
重新發(fā)現(xiàn)之后,刪除所有以前數(shù)據(jù)。 |
8 |
persistServerLoginConfig |
public |
持久化telnet或ssh的參數(shù)。 |
9 |
persistLink |
public |
持久化鏈路。 |
10 |
persistSubnet |
public |
持久化子網(wǎng)。 |
11 |
persistHostSubetMemberShip |
public |
持久化主機(jī)與子網(wǎng)的關(guān)系。 |
12 |
getMaxElementId |
public |
得到網(wǎng)元的最大ID。 |
13 |
persist |
public |
用于持久化SNMP表的數(shù)據(jù)。 |
DBNodeManager和MidWareManager分別管理數(shù)據(jù)庫(kù)網(wǎng)元和中件間網(wǎng)元的增加和刪除,
實(shí)現(xiàn)NodeManager中的接口。以后如果還有新種類的網(wǎng)元加入,NodeManager可再擴(kuò)展,這樣
的設(shè)計(jì)就比2.0好得多了。
posted on 2009-01-25 17:06 afunms 閱讀(366) 評(píng)論(0) 編輯 收藏