构架的问题---网络监测2 ( 积分: 300 )

Y

yostgxf

Unregistered / Unconfirmed
GUEST, unregistred user!
设计一个网络监测系统,想征求各位的意见。情况:
监测点(仪器有几种)分布在网络各地,观测点(操作界面)也分布在网络各地。
问题是:如何在观测点能实时的得到各监测点的状态(被那个观测点使用,开关等)?
方法1。监测点主动向观测点发送自己的状态
方法2。观测点查询
方法3。其它方法?
分不是问题,希望大家出出主意。谢谢大家
 
A

appfirst

Unregistered / Unconfirmed
GUEST, unregistred user!
如果你需要检测谁观测信息,建议你引入一个注册服务器,这样不论是查看谁在观测还是仅仅观测的实现和管理都会很简单且部署成本低。
 
Y

yostgxf

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢,能否在具体一点?
是观测点注册,还是监测点注册。还是都要注册?
问题:监测点很难知道谁在使用它?否则类似我的方法1
 
B

bbscom

Unregistered / Unconfirmed
GUEST, unregistred user!
选择数字监测,也就是通过IP可以监测对方的。
 
A

appfirst

Unregistered / Unconfirmed
GUEST, unregistred user!
应该是都要注册,有点类似observer模式,监测点的注册是为了告诉观测点有几个可用的监测点,而观测点注册是为了告诉监测点谁对他关心。
这样监测点信息发生变化时就可以使用这个感兴趣的列表进行发送,观测点也可以很容易知道谁在关心某一个监测点,同时在发布时,发布的工作就集中在这个注册服务器上了(即使有多个监测点、多个观测点的情况下)。
当然这样以来可能会引入一定的复杂性,但这个复杂性与它带来的优势相比是可以忽略不计的。
 
Y

yostgxf

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢提供思路,我考虑一下。
我的监测内容有点复杂,监测点需要观测点提供设置。举例:要监视广播电台的信号情况,需要设置哪个电台、设备信号等
我在帖3723677中考虑了一个结构,好像也存在问题。
 
A

appfirst

Unregistered / Unconfirmed
GUEST, unregistred user!
其实与你的设想是大致相同的,不过我这里没有那么强的层次概念,只是考虑到你的这种网络括扑结构而提出的一种解决方案。至于你说的设置信息(设置哪个电台、设备信号),完全可以在注册的时候设置,应该没有什么麻烦的,如果真的比较麻烦,可以将一个注册过程拆分成可以组合的过程,但复杂性就更高了,因为你要引入事务等比较不容易控制的事情,尤其在这种分布式的环境中。除非必要否则应该尽可能让注册的过程单一简单化。只是一点个人意见,仅供讨论(因为可能还有我没有想到的复杂性在里面,但一般如果有可能我都是让系统在最初的时候看起来更简单一些,以后可以再完善吗^_^)!
 
Y

yostgxf

Unregistered / Unconfirmed
GUEST, unregistred user!
谢谢,最近出差去了没有上来看。
我自己设计了一个结构,是否完善还在考虑中
 
W

wql

Unregistered / Unconfirmed
GUEST, unregistred user!
可以参见QQ的实现方式:
1. 设立有固定IP的服务器!
2. 其他检测点把自己的状态写入固定IP服务器!
3. 其他检测点从固定IP服务器读出其他点的状态!
使用UDP ,TCP 度可以!
 
L

lcmlhs

Unregistered / Unconfirmed
GUEST, unregistred user!
帮你顶,接个分
 
H

htw

Unregistered / Unconfirmed
GUEST, unregistred user!
这个要看被监测试数据分布点数有多少, 数据量大否, 实时性要求高不高, 可靠性又高不高?
可用C/C++编写一个UNIX或windows状态服务器, 各监测点以接口1上传数据到状态服务器,观察点以接口2取得指定点的状态数据, 以接口3取得指定组的状态数据(可能需要多数发包),以接口4取得所以全部状态数据。
一般建议用TCP连接, 需要加心跳考虑定时重连问题。 UDP方式可用于实时性强但数据不重要暂丢失也无所谓的场合。
 
顶部