一种网络拓扑中更新用户访问权限的方法及设备
技术领域
本发明涉及通信技术领域,尤其涉及一种网络拓扑中更新用户访问权限的方法及设备。
背景技术
网络拓扑技术是将真实的组网方案按照不同的网络层次划分方法,通过可编辑的图形化方式展示给用户的技术。根据用户对网络展示方式的不同需求,网络拓扑可以被展示为基于IP层协议划分的IP拓扑视图、基于网桥协议和NDP(Neighbor Discovery Protocol,邻居发现协议)协议等层次协议划分的二层拓扑、以某个设备为中心、根据物理连接关系形成的邻居拓扑、以及用户根据个人喜好划分的自定义拓扑等。
目前网络拓扑技术主要依赖于三方面技术:图形展示工具,如iLogJViews;网络拓扑计算技术,网络拓扑计算主要依赖于不同的网络协议和分层需求;数据传输技术,根据C/S(客户端/服务器)和B/S(浏览器/服务器)不同的开发模式,采用的技术各有不同。
在C/S开发模式中,如图1所示,包括:客户端、服务器端处理器和数据源(DB),服务器端处理器包括MDP服务器和DB数据库。服务器端处理器与客户端GUI之间采用JDBC(Java Database Connector,Java数据源连接)请求连接数据库结合MDP(Message Dispatch Protocol,消息转发协议)消息进行信息交互,服务器端处理器。
在B/S开发模式中,如图2所示,包括浏览器、Web服务器和服务器端业务处理程序。用户通过在Web浏览器中输入服务器地址,例如URL(UniformResoure Locator,统一资源定位器),访问Web服务器端的业务处理程序动态生成的HTML(HyperText Markup Language,超文本标注语言)页面,然后通过TCP(Transmission Control Protocol,传输控制协议)连接发送给客户端浏览器。通常在Web浏览器中运行小程序Applet,该小程序被用于内嵌在HTML页面中,用于增强Web应用程序的展示功能。Applet具有平台无关性和很好的安全性,所有的Applet程序在浏览器端均可以安全访问,不用担心不好的程序损坏本地系统。
目前的网络拓扑技术还停留在数据展示的层面上,对于与用户融合的概念还处于初步的尝试阶段,用户权限的处理往往比较简单和直接。图3是一个比较通用的拓扑权限处理流程:在用户登录网管系统时,网管系统获取用户的权限信息,这些权限信息包括用户的系统操作权限、设备管理权限、分组管理权限和视图管理权限等。这些信息会被提交给网管系统的权限计算模块进行计算,计算出当前操作员的权限信息;然后将权限信息提交给拓扑结构计算模块,拓扑结构计算模块计算出拓扑结构并进行拓扑展示。这样,拓扑中展示了用户所需要的网络拓扑视图。
然而,该方案存在如下问题:
1、权限的更新依赖于用户登录。由于整个方案均基于一个前提,即用户登录。只有在用户登录时,网管系统才收集用户的权限信息,作为该用户访问设备等资源的凭证。如果用户在网管系统中的权限发生了变更,比如权限管理的范围变大,可以多管很多设备,或者是权限变小,很多设备不再有权限管理,则如果前提要求用户下线再登录,显然是无法控制的,而且会给网管系统带来管理上的隐患。
2、权限变更相关的动作不会激发权限的变更。例如,在用户查看网络拓扑时,其他用户为网络中增加了新的设备,这些设备经过计算,当前用户是用权限管理的。然而,其他用户的操作并不会触发权限计算,也无法知道别的用户的权限是否变更。所以,形成了消息不对称,当前用户的网络拓扑不会更新,那么网络拓扑展示的实时性被打了折扣。
3、资源的状态更新不及时。网络拓扑要求能够尽量真实的反映当前网络的状况,如果用户的权限不及时更新,那么用户可管理的资源,如设备状态就不能正确更新和显示。
发明内容
本发明提供了一种网络拓扑中更新用户访问权限的方法及设备,以满足网管系统对于网络拓扑的安全性、实时性和正确性的要求。
本发明提供了一种网络拓扑中更新用户访问权限的方法,应用于包括基本权限对象、权限管理中心和业务组件的实现用户权限管理的服务器中,所述方法包括以下步骤:
所述权限管理中心监听并收集所述基本权限对象的变化信息;
所述权限管理中心根据所述变化信息获取所述变化影响的用户权限类型;
所述权限管理中心根据所述业务组件需要的权限类型,将变化的权限类型通知关心权限变更的业务组件。
其中,所述权限管理中心监听并收集所述基本权限对象的变化信息具体包括:
所述权限管理中心收集网管系统中所有在线用户的旧权限信息;
所述权限管理中心监听所有在线用户的新权限信息;
所述权限管理中心根据所述旧权限信息及新权限信息,确定每个在线用户基本权限对象的变化信息。
其中,所述权限管理中心根据所述变化信息获取所述变化影响的用户权限类型具体包括:
所述权限管理中心预先存储各种权限的对应关系;
收集到基本权限对象的变化信息后,所述权限管理中心根据所述对应关系获得所述权限变更影响到的权限类型。
其中,所述权限管理中心根据所述业务组件需要的权限类型,将变化的权限类型通知对应的业务组件具体包括:
所述权限管理中心根据各个业务组件注册的权限类型,与各个在线用户变更的权限类型进行比较,发送权限变更通知给目标业务组件。
其中,所述发送权限变更通知给目标业务组件具体包括:
对预定时间内的权限变更消息进行聚合,将相同的在线用户的同种权限类型的权限变更消息进行聚合成一个权限变更消息发送到目标业务组件。
本发明还提供了一种网络拓扑中更新用户访问设备权限的服务器,包括基本权限对象、权限管理中心和业务组件:
所述权限管理中心具体包括:
监听单元,用于监听并收集所述基本权限对象的变化信息;
用户权限类型确定单元,用于根据所述变化信息获取所述变化影响的用户权限类型;
通知单元,用于根据所述业务组件需要的权限类型,将变化的权限类型通知对应的业务组件。
其中,所述监听单元具体包括:
权限收集子单元,用于收集网管系统中所有在线用户的旧权限信息及新权限信息;
计算子单元,用于根据所述旧权限信息及新权限信息,确定每个在线用户基本权限对象的变化信息。
其中,用户权限类型确定单元具体包括:
对应关系存储子单元,用于预先存储各种权限的对应关系;
确定子单元,用于收集到基本权限对象的变化信息后,根据所述对应关系获得所述权限变更影响到的权限类型。
其中,所述通知单元具体包括:
比较子单元,用于根据各个业务组件注册的权限类型,与各个在线用户变更的权限类型进行比较,确定发送权限变更通知给目标业务组件;
发送子单元,用于向所述目标业务组件发送权限变更通知。
其中,所述通知单元还包括:
聚合子单元,用于对预定时间内的权限变更消息进行聚合,将相同的在
线用户的同种权限类型的权限变更消息进行聚合成一个权限变更消息通过所述发送子单元发送到目标业务组件。
与现有技术相比,本发明具有以下优点:
本发明中,通过对用户权限变更进行实时监控,及时有效地响应,为用户提供智能且高效的系统管理,大大地提高网管系统的安全性;并且由于用户权限的变更被实时处理,避免网管系统存在的权限漏洞,为管理员的实时授权提供了可能。
另外,管理员可以不关心权限变更的细节,提高系统的智能性,实现了网络管理和用户管理的融合,易于用户更好的对网络环境进行管理,可以广泛应用于各种浏览器。
附图说明
图1是现有技术中C/S应用程序的处理流程示意图;
图2是现有技术中B/S应用程序的处理流程示意图;
图3是现有技术中拓扑权限处理流程示意图;
图4是本发明中一种网络拓扑中更新用户访问权限的方法流程图;
图5是本发明中一种用户权限变更处理示意图。
具体实施方式
本发明提供了一种网络拓扑中实时更新用户访问设备权限的方法,可以实时更新用户权限,并保证网络拓扑按照更新后的用户权限进行展示。当用户权限变更或者发生权限变更相关的操作时,在线用户的权限会被重新计算并更新,同时根据实际变更的内容发布广播消息,接收到消息的组件如网络拓扑对消息进行处理,决定是否发生权限变更,变更则刷新网络拓扑的权限,保证拓扑展示的正确性。
本发明提供了一种网络拓扑中更新用户访问权限的方法,应用于包括基本权限对象、权限管理中心和业务组件的实现用户权限管理的服务器中,所述方法如图4所示,包括以下步骤:
步骤s401,所述权限管理中心监听并收集所述基本权限对象的变化信息。具体包括:所述权限管理中心收集网管系统中所有在线用户的旧权限信息;所述权限管理中心监听所有在线用户的新权限信息;所述权限管理中心根据所述旧权限信息及新权限信息,确定每个在线用户基本权限对象的变化信息。
步骤s402,所述权限管理中心根据所述变化信息获取所述变化影响的用户权限类型。具体包括:所述权限管理中心预先存储各种权限的对应关系;收集到基本权限对象的变化信息后,所述权限管理中心根据所述对应关系获得所述权限变更影响到的权限类型。
步骤s403,所述权限管理中心根据所述业务组件需要的权限类型,将变化的权限类型通知对应的业务组件。具体包括:所述权限管理中心根据各个业务模块注册的权限类型,与各个在线用户变更的权限类型进行比较,发送权限变更通知的目标业务模块。另外,在发送通知消息之前还可以包括对预定时间内的权限变更消息进行聚合,将相同的在线用户的同种权限类型的权限变更消息进行聚合成一个权限变更消息发送到目标业务模块。
本发明基于Web系统实现,对于用户权限变更的处理,采用了两层观察者设计模式,如图5所示,通常,称被观察的对象为Subject。例如,对于资源a,模块A想在资源a变化时知道资源a变化的情况,则模块A向资源a提出注册申请,资源a在变化时,向所有提出注册申请的模块发送通知,模块A也会收到通知,获悉资源a的变化。
首先各个基本权限对象是第一层模式的被观察对象,基本对象包括设备权限、设备分组权限、自定义视图权限、用户分组权限、用户权限及其他权限等;而观察者为抽象出来的权限管理中心。在这一层模式中,权限管理中心通过权限Subject接口监听基本权限的变化,收集用户权限变更或者各个用户权限变更操作带了的各种基本权限的变化信息。
然后是第二层观察者模式,权限管理中心为被观察的对象,而各个业务组件为观察者,各个业务组件通过权限中心监听器接口向权限管理中心注册自己关心的权限类型。权限管理中心对于收集的基本权限信息的变化,对当前在线的用户进行权限变更计算(例如,权限类型包括分组权限和设备权限;分组下包含设备,所以设备和分组之间存在关联依赖关系,用户拥有分组权限,则拥有这个分组下所有设备的权限。用户U1具有分组A和B权限,分组A下含设备a和b,分组B下含设备b。操作一:如果管理员去掉用户U1管理分组A的权限,通过计算,用户不能再管理分组A和设备a,权限变更类型为设备权限和分组权限。操作二:如果管理员去掉用户U1管理分组B的权限。对于设备b,同时属于分组A和分组B。因为分组A有权限,所以设备b有权限。那么,这次权限变更的类型仅为分组权限。),计算出本次变更影响到用户以及影响到的用户的权限的类型,然后权限中心根据各个业务组件注册的关心的权限类型进行比对计算(在系统启动时,各个业务组件将向权限中心注册关心的权限类型。例如:组件A向权限中心注册关心设备权限和分组权限;组件B向权限中心注册关心设备权限。那么,在上面的操作一结束后,权限中心发现用户U1的设备权限和分组权限同时变更,则该用户的权限变更消息将同时通知给组件A和组件B;在操作二结束后,权限中心计算后,仅有用户的分组权限变更,则该用户的权限变更消息将通知给组件A,组件B不关心这次变更,不会收到通知),将权限变更的消息发送给各个关心这次变更的业务组件。
图5中用户权限变更处理的流程包括以下步骤:
步骤s501,当用户权限被管理员修改或者其他用户执行了影响当前用户的权限的操作时,基本的权限对象发生变更。由于这些基本权限对象被监听,这些变更会通知给权限中心。
步骤s502,权限管理中心维护着各种权限的关系,收集到基本权限变更时,权限管理中心会计算出此次权限变更影响到的权限类型。
步骤s503,权限管理中心收集网管系统中所有在线用户的旧权限信息,根据变更的权限类型和基本权限数据,计算出每个在线用户真实发生变更的权限类型。
步骤s504,权限管理中心根据各个业务模块注册的关心的权限类型,与各个在线用户变更的权限类型进行比对计算,确认需要向哪些业务模块,发送哪些用户的权限变更通知,以及变更的权限内容。
步骤s505,权限管理中心发送变更通知给各个业务组件;同时,权限管理中心更新各个在线用户的权限,保证网管系统中的在线操作员权限正确。
步骤s506,各个业务组件获取权限通知,根据更新后的用户权限,刷新各个组件的内容。权限消息的消息体为:
--含操作员的权限信息
权限信息::=序列{
<操作员名称,权限类型列表>
}
为了避免权限消息过于集中和无序,对权限变更消息的通知还可以进行如下的优化。由于更新消息存在短暂的延时并不会导致用户使用上的不便,所以对预设时间(例如2秒)内的权限消息进行聚合,将相同的在线用户的同一种权限类型的数据进行聚合,整合成一个权限消息,然后每隔预设时间(例如2秒)发送一次。这样,避免了权限消息的冗余和通知过于频繁的情况。
本发明还提供了一种网络拓扑中更新用户访问设备权限的服务器,包括基本权限对象、权限管理中心和业务组件:所述权限管理中心,用于监听并收集所述基本权限对象的变化信息,根据所述变化信息获取所述变化影响的用户权限类型;并根据所述业务组件需要的权限类型,将变化的权限类型通知对应的业务组件。
所述权限管理中心具体包括:监听单元,用于监听并收集所述基本权限对象的变化信息;用户权限类型确定单元,用于根据所述变化信息获取所述变化影响的用户权限类型;通知单元,用于根据所述业务组件需要的权限类型,将变化的权限类型通知对应的业务组件。
所述监听单元具体包括:权限收集子单元,用于收集网管系统中所有在线用户的旧权限信息及新权限信息;计算子单元,用于根据所述旧权限信息及新权限信息,确定每个在线用户基本权限对象的变化信息。
用户权限类型确定单元具体包括:对应关系存储子单元,用于预先存储各种权限的对应关系;确定子单元,用于收集到基本权限对象的变化信息后,根据所述对应关系获得所述权限变更影响到的权限类型。
所述通知单元具体包括:比较子单元,用于根据各个业务模块注册的权限类型,与各个在线用户变更的权限类型进行比较,确定发送权限变更通知的目标业务模块;发送子单元,用于向所述目标业务模块发送权限变更通知。聚合子单元,用于对预定时间内的权限变更消息进行聚合,将相同的在线用户的同种权限类型的权限变更消息进行聚合成一个权限变更消息通过所述发送子单元发送到目标业务模块。
本发明提升了系统的智能性,达到用户权限变更可以实时更新各个网管组件的效果,保证了用户权限控制的一致性和正确性,同时提高网管系统的安全性。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。