Posted on 2010-09-15 18:27
TWaver 阅读(2157)
评论(0) 编辑 收藏
也许很多人使用过TWaver并熟悉TNetwork,但对TWaver GIS开发还不是很了解。TWaver GIS中对应也会有一个物理拓扑。在结合GIS开发过程中,很多客户经常会因整合逻辑拓扑和物理拓扑而困惑。
标准的TNetwork组件是用于呈现拓扑节点的逻辑意义,比如呈现网络中的节点,节点之前的链路,子网,节点组等;TWaver GIS则是辅助用户,通过TNetwork组件来呈现拓扑节点的物理意义的,简言之就是将真实世界中某一个网络节点的经纬度信息与计算机系统中屏幕上的位置进行关联,实现网络节点物理位置的真实展现。
这两种意义下的交互模式是相互独立的,例如不能用标准TNetwork组件上的平移(pan)、放缩(zoom in/out)交互行为用于GIS交互;而GIS应用场景下的平移、放缩效果也不能适用于标准的TNetwork组件上。很多用户开始分不清两种交互场景,盲目混淆了这两种场景下的交互,在实际应用中遇到了问题,不知道如何有序组织界面的交互。今天在此介绍结合逻辑拓扑和物理拓扑的一种常用方式,希望能减少TWaver GIS用户前期开发时候的疑惑。
这种典型的应用方式说来也很简单,首先有一个页面专用于显示物理拓扑(带有Map、经纬度信息的GIS应用):
用户可根据自己的应用查看逻辑拓扑,比如,点击Sub1节点之后则进到子网1中,展示业务网的结构,此处我们选择了JTabbedPane作为主要的容器,单击子网后,弹出另一个tab来展示业务网结构:
逻辑拓扑图的右键菜单,选择close,即可退出逻辑拓扑呈现,关闭逻辑拓扑这个页面,退回到地图呈现的主界面上。点击逻辑拓扑上的logic n1,则可以进入子网查看具体的设备面板:
双击空白出可返回到上层的业务网结构图中。这样逻辑拓扑和物理拓扑就互不干扰,但同时还存在一个关联问题,我们来看逻辑拓扑上的网元告警又是如何传到物理拓扑的父节点上的:
在这个例子中,我们采用的是clientProperty进行关联,网元的clientProperty是一个Map对象,里面以属性名和属性值的映射方式存储用户的业务信息, 用户可以用它进行自己业务对象的封装。此例中我们使用了一个businessid的属性,它是模型系统中对于网元的唯一标识,这个例子中建立了一个告警模拟器,它模拟告警采集服务器获取告警对象后,根据businessid这个属性从业务模型中寻找对应element,然后把告警关联上。
这样就完成了物理拓扑和逻辑拓扑的结合。