Posted on 2010-09-15 18:27
TWaver 閱讀(2164)
評論(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,然后把告警關聯上。
這樣就完成了物理拓撲和邏輯拓撲的結合。