今天終于把NodeManager的接口確定下來了。代碼不知改了多少次,才成為今天這個樣子,
每個接口都有明確的定義和責任,真是不容易。2.0中這塊寫得極混亂,代碼重用性不好,可擴
展性受到很大影響。3.0中能把NodeManager的接口設計好,算是整個架構的一個重大改進。
NodeManager完成以下功能:
1.加入網元前,檢查用戶輸入的參數,以及這個網元是否已經存在;
2.加入網元:第一,加入數據庫(持久化);
第二,加入輪詢隊列;
第三,加入到視圖(XML)。
3.刪除網元:同樣三步,與加入網元正好相反的操作。
不定義更新操作,因為各種網元更新數據差別太大,不能統一接口。
Update直接在在service中實現。

NodeManager
|
方法
|
屬性
|
說明
|
1
|
checkVaildBeforeAdd
|
public
|
增加網元之前,檢查網元的有效性。
|
2
|
addNode
|
public
|
增加一個網元。
|
3
|
attachMonitors
|
protected
|
增加后,給網元加上默認監視器。
|
4
|
loadNodes
|
public
|
啟動Tomcat時,從數據庫加載到內存。
|
5
|
loadMonitors
|
protected
|
在loadNodes中調用,加載監視器。
|
6
|
deleteNode
|
public
|
刪除一個網元。
|
7
|
persistNode
|
public
|
持久化一個網元:把網元數據存入MySQL。
|
8
|
persistBase
|
protected
|
在persistNode中調用,把父類數據存入主表。
|
9
|
persistSubNode
|
protected
|
在persistNode中調用,把子類數據存入子表。
|
10
|
persistMonitors
|
protected
|
在persistNode中調用,持久化監視器。
|
11
|
afterPersist
|
public
|
在每個persist方法后調用。
|
12
|
afterDone
|
public
|
關閉Connection等操作。
|
HostManager
因為在HostManager除了實現對host的操作,還有對Subnet和link的操作,所以除了實現
NodeManager中的接口外,還多了好些方法。
|
方法
|
屬性
|
說明
|
1
|
checkVaildBeforeAdd
|
public
|
增加網元之前,檢查網元的有效性。
|
2
|
setDiscoveryConfig
|
public
|
設置發現配置。因為增加主機與發現配置有關系,所以要有這個方法。
|
3
|
loadLinks
|
private
|
加載鏈路,在loadNodes后調用。
|
4
|
loadServerLoginConfig
|
private
|
對Unix或Linux,加載telnet或ssh的參數。
|
5
|
loadIfs
|
private
|
加載接口。
|
6
|
loadSubnets
|
private
|
加載子網。
|
7
|
removeLegacy
|
public
|
重新發現之后,刪除所有以前數據。
|
8
|
persistServerLoginConfig
|
public
|
持久化telnet或ssh的參數。
|
9
|
persistLink
|
public
|
持久化鏈路。
|
10
|
persistSubnet
|
public
|
持久化子網。
|
11
|
persistHostSubetMemberShip
|
public
|
持久化主機與子網的關系。
|
12
|
getMaxElementId
|
public
|
得到網元的最大ID。
|
13
|
persist
|
public
|
用于持久化SNMP表的數據。
|
DBNodeManager和MidWareManager分別管理數據庫網元和中件間網元的增加和刪除,
實現NodeManager中的接口。以后如果還有新種類的網元加入,NodeManager可再擴展,這樣
的設計就比2.0好得多了。