今天终于把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好得多了。