中山大學校園網路 IBM AIX 網管系統的WAP設計

 

  國立中山大學

計算機與網路中心

作業組

林言  許蒼嶺

 

 

目錄

目錄…………………………………………………………………………….……2

圖表目錄……………………………………………………………………………..3

第一章 WAP發展與網管應用……………………………………………….…….4

1.1   WAP的發展…………………………………………………….…...4

1.2 WAP與網管的應用……………………………………………….….5

1.3章節架構………………………………………………………………5

第二章    WAP Server各項功能介紹……………………………………………….7

2.1 WAP Server…………………………………………………………....7

2.2斷線自動電話通知的程式 : ibm8275.rs………………………….…8

2.3斷線節點自動寫入WAP網頁的程式: callout_down……………….9

2.4恢復節點自動寫入WAP網頁的程式: callout_recovery…………...10

第三章    IBM AIX WAP的設計原理……………………………………………...12

3.1 WAP Server的設定……………………………………………….….12

3.2   ibm8275程式介紹………………………………………………….13

3.3   callout_down.rs以及callout_recovery.rs程式介紹…...…………..16

第四章WAP Server管理者的使用方法:………………………………………......20

4.1 Netview管理者如何使用這三個程式………………………….…...20

4.2管理者如何讓使用者得知目前網路的情況………………………...24

4.3 如何定時清除callout_down.rs以及callout_recovery.rs寫入wml

的斷線節點…………………………………………………………..26

第五章    結論………………………………………………………………………..27

參考文獻……………………………………………………………………………..28

附錄一 (callout原始碼)………………………………………………………….…29

附錄二 (batch)……………………………………………………………………30

 


圖表目錄

 

圖一. WAP Server上所呈現的wbmp圖形檔…………………………………….9

圖二. ibm8275程式中存放使用者電話的視窗…………………………………….10

圖三. 顯示斷線節點的WAP網頁………………………………………………….11

圖四. 顯示恢復節點的WAP網頁………………………………………………….12

圖五. Event Attributes(source)的設定情況………………………………………….14

圖六. Event Attributes(origin)的設定情況…………………………………………..15

圖七. Trap Settings的設定情況……………………………………………………..16

圖八. Thresholds的設定情況, 在這裡是8 in 5的情形……………………………16

圖九. Action的設定情況, 若觸發所有條件, Action便會打出電話給使用者……17

圖十. 程式觸發的六個步驟流程…………………………………………………..17

圖十一. callout_recovery.rsTrap Settings的設定……………………………….18

圖十二. 程式的Thresholds部分的設定情況………………………………………19

圖十三. 當觸發前面所以條件, 就會觸發Action內的命令列……………………19

圖十四. 續圖十三未顯示完的部分………………………………………………..20

圖十五. netview指令於dtterm視窗……………………………………………21

圖十六. Root視窗下的Control Desk裡面有Create這個按鈕……………………22

圖十七. Dynamic Workspace視窗…………………………………………………..23

圖十八. Correlation File Selection視窗……………………………………………..24

圖十九. 載入ibm8275.rs, Dynamic Workspace視窗的情況…….……………..24

圖二十. 展示Tools視窗的所有按鈕, 其中之一即是Ruleset Editor……………..25

圖二十一. Forward方塊指向的Action方塊……………………………………26

圖二十二. Action視窗範例………………………………………………………….27


 

第一章 WAP發展與網管應用

 

1.1         WAP的發展

 

   在全世界電信開放自由化的風潮之下, 行動電話的普及率日益增高, 短短數年, 台灣行動電話的使用者已追過了原本較多的電話撥接上網的使用者, 因此, 為了使每一位行動電話的使用者都能夠藉著手邊的行動電話來查詢所需的資訊, WAP因此被制定出來, WAP(Wireless Application Protocols)是一種無線應用的通訊協定, 它讓行動電話等無線裝置的使用者能夠更快地得到資訊.

 

WAP的風行讓原本只能接聽電話的行動電話使用者有了更多獲得資訊的空間, 也因為如此, 目前各大電信業者也無不加強建構WAP協定的各項服務, 其他的如民營公司, 公家機構, 學校單位等, 也都為了宣傳或者推廣的效果而陸續地加入了建構WAP網站的行列[1].

 

行動電話的使用者日益增多, 加上WAP網站的陸續建立, 可預見的是, 人們所希望的是以更快更行動化的方式得到最新的訊息, WAP正具有這樣的特性, 有如一般個人電腦上安裝在WindowsIE或者Netscape的網頁瀏覽器, WAP 讓行動電話具有網頁瀏覽的功能, 讓人們不需坐在電腦前面, 一樣可以藉著它上網或收發電子郵件, 不同的是在WAP下瀏覽的超鏈結語言用的是WML, 而一般www上用的是HTML.

 

網路的盛行帶領人們進入更行動化的生活, 加上WAP手機的誕生, 使得個人可以更便利地擷取任何想要的生活資訊, 舉凡: 證券交易, 求職求才, 電子郵件的發送, 電子佈告欄, 購物等, 將來可能發展出更加即時的服務, 例如個人現在位置查詢, 天氣即時預報, 交通狀況預知, 甚至預約餐廳, 醫院掛號, 線上付款等等, 以往只有科幻小說才可能出現的情境, 現在一一由WAP所實現.

 

另外, WAP的技術基礎下, 再加上行動通訊的技術後, 我們還可以透過手機發出訊號尋找行車的駕駛人, 協助處理緊急事件, 以加強行車的安全性, 而行動電話也可以具備無線電子錢包的功能, 未來人們將可利用行動電話進行購物或付費, 於是經由無線網路科技的發展, 行動生活就這樣地來到我們的身邊[2].

 

1.2 WAP與網管的應用

 

另外在網管的角度來看, 運用特別的應用程式, 可透過WAP讓手持行動電話的管理者能夠隨時清楚網路的運作情況, 而本次我們即是運用IBM AIX系統來建立一個WAP Server, 並運用Netview這套網管應用程式在WAP Server上建構一個即時反應網路節點狀態的WAP網管程式.

 

1.3章節架構

 

   在本報告中, 第二章我們將介紹WAP Server的各項功能, 我們在140.117.19.150這台IBM工作站上, 除了增加了它可以展示WAP網頁的能力之外, 我們還另外發展了三個程式, 當校園網路斷線時, 他們可以會自動打電話通知網路管理者, 展示斷線以及恢復節點到WAP網頁上面, 我們將對此有詳細的說明, 第三章將介紹WAP Server的設定, 以及我們所發展出來的三個程式是如何被設計與運作的, 在第四章我們將說明WAP Server管理者如何使用以及維護這三個程式, 在第五章的結論中, 我們將探討我們所發展出來的功能可以帶給網路管理者怎麼樣的便利性, 最後在附錄一裡頭, 收錄了一個C程式的原始碼, 在附錄二裡面, 收錄了一個batch檔案, 它們都是callout_downcallout_recovery這兩個程式裡會用到的兩個檔案.


 

第二章   WAP Server各項功能介紹

 

WAP Server, 我們利用Netview Tools Ruleset Editor以及WAP Server Interface發展了三個程式, 當校園網路斷線時, 他們可以會自動打電話通知網路管理者, 展示斷線以及恢復節點到WAP網頁上面, 在本章我們將對WAP Server以及這三個程式有詳細的說明.

 

2.1 WAP Server

 

  原本的IBM AIX 並沒有WAP Server的功能, 而只有Web Server的功能, 我們將AIXWeb Server的內部設定加以修改, 才使得現在的IBM AIX同時除了具有Web Server的功能, 可以顯示html, flash等普通的網頁, 還可以顯示手機網頁特有的網頁wml以及圖檔wbmp等特殊的檔案

圖一是在140.117.19.150這台AIXWAP Server下所測試的wml網頁裡的wbmp的情況(M3GATE的模擬器測試的結果)

圖一. WAP Server上所呈現的wbmp圖形檔.

 
 

 


圖一中戴帽子笑臉, 以及右邊的小叮噹都是wbmp的檔案, 它可以成功地顯示出來!

 

2.2斷線自動電話通知的程式 : ibm8275.rs

存放路徑: /usr/OV/conf/rulesets/ibm8275.rs

 

NetviewIBM AIX上網路管理的應用程式, ibm8275.rs這個程式的功能在於偵測Netview上斷線的各個節點, 並依據斷線的節點的情況適時地撥出行動電話通知管理者, 管理者可根據接到的電話(07-5251744)次數, 得知校園網路目前約有多少節點斷線, 並且在第一時間內遠端login處理[3][4][5].

圖二是它存放使用者電話的Action視窗.

圖二. ibm8275程式中存放使用者電話的視窗.

 
 

 


2.3斷線節點自動寫入WAP網頁的程式: callout_down

存放路徑: /usr/OV/conf/rulesets/callout_down.rs

 

另外callout_down.rs這個程式的功能在於將Netview所偵測到的系所斷線節點以中文表示的方式即時輸出到WAP網頁上, 管理者可在接到斷線電話的通知後, 即時以手機連上140.117.19.150/wap/down.wml觀看目前校園網路各個系所的交換機或路由器斷線的情況, 並且可據此對實體網路作適當的處理.

圖三是斷線節點的WAP顯示畫面(M3GATE模擬器模擬)

圖三. 顯示斷線節點的WAP網頁.

 
 

 

 


2.4恢復節點自動寫入WAP網頁的程式: callout_recovery

存放路徑: /usr/OV/conf/rulesets/callout_recovery.rs

 

callout_recovery.rs這個程式的功能在於將Netview所偵測到的恢復正常的系所網路節點以中文表示的方式輸出到WAP網頁上, 使用者可在處理過斷線事宜後, 過一段時間以手機連上140.117.19.150/wap/up.wml觀看目前校園網路各個系所的交換機或路由器是否恢復正常, 並且可據此得知目前網路的恢復情況.

圖四是恢復節點的WAP顯示畫面(M3GATE模擬器模擬)

圖四. 顯示恢復節點的WAP網頁.

 

 

第三章   IBM AIX WAP的設計原理

 

3.1 WAP Server的設定

 

WAP Server是建構在AIX上的Web Server(Apache)之上的, 欲完成ApacheWAP Server設定, 首先必須以系統管理者的身分登入AIX, 在命令提示字元處, 鍵入ps –ef指令來觀看目前WWW服務工作是否正常(是否有httpd程式執行)

接下來為了增加WML MIME格式, 我們使用vi編輯器來編輯/usr/OV/web/httpd/conf/srm.conf這個檔案, AddType, 增加以下敘述:

AddType text/vnd.wap.wml             .wml

AddType application/vnd.wap.wmlc      .wmlc

AddType text/vnd.wap.wmlscript        .wmls

AddType application/vnd.wap.wmlscriptc  .wmlsc

AddType image/vnd.wap.wbmp          .wbmp

修改後, 存檔離開

最後使用ps –ef指令找出httpdpid, 假設pid555, 在命令提示字元處, 鍵入kill –1 555指令, 可將httpd重新啟動, 此時httpd會讀取剛加入MIMEsrm.conf設定檔[1][6][7].

最後我們將欲測試的網頁放上/…/httpd/ 此目錄夾下, 用模擬器或手機來測試, 即可顯示WAP網頁!

 

3.2         ibm8275程式介紹

 

ibm8275這個程式是用Ruleset Editor做出來的,

它主要可以分為六個步驟, 每個步驟滿足條件才會繼續做下去:

(1)   Event Attributes(source)

(2)   Event Attributes(origin)

(3)   Trap Settings(netview 6000)

(4)   Threshold(8 in5, 20 in 5, 3 in 5)

(5)   Forward

(6)   Action(/…/nvpage “user telephone” “numbers”)

 

 

(1)基本上是預設值, 如同圖五所示.

圖五. Event Attributes(source)的設定情況.

 
 

 

(2)AttributeOrigin, Comparison TypeEqual to , 會去偵測Value (IP)的情況, 以圖六的情況來講會偵測140.117.28.253的情況.

 

圖六. Event Attributes(origin)的設定情況

 
 

 


(3) 然後在圖七中, 設定以下兩種反白設定, 並選Equal to, 其中IBM_NVDWN_EV是偵測down節點的, 如果這個IP的情況是down, 也就是節點斷掉了, 它就會進行下一步

圖七. Trap Settings的設定情況.

 
 

 


(4) 接著在圖八中, 進行若5分鐘內發生down的情況有8, 則進行下一步驟

而第四步驟除了下圖這種情況外, 還有Count=3, Count=20等兩種方塊, 若條件成立, 這三種方塊有可能都會觸發.

圖八. Thresholds的設定情況, 在這裡是8 in 5的情形.

 
 

(5)Forward, 並沒有做特別的事, 只是做forward罷了

(6)Action, 若以上條件成立的話, 它就會利用nvpage這個程式來打手機號碼給使用者, 如圖九所示.

圖九. Action的設定情況, 若觸發所有條件, Action便會打出電話給使用者.

 
 

 


3.3         callout_down.rs以及callout_recovery.rs程式介紹

 

這兩個程式也是用Ruleset Editor做出來的,

它主要也可以分為六個步驟, 每個步驟滿足條件才會繼續做下去[3][4][5]:

大致的流程如圖十所示:

 

圖十. 程式觸發的六個步驟流程

 
 

(1)Event Attributes(source)

(2)Event Attributes(origin)

(3)Trap Settings(netview 6000)

(4)Threshold(1 in5)

(5)Forward

(6)Action(/wap/callout ‘<br>節點unicode, 節點英文名稱<br>’)

(7)   Action(/wap/batch)

 

(1)~(2)的步驟與ibm8275.rs的步驟相同, 不再贅述!

 

(3), callout_down.rs的設定和ibm8275.rs相同, Equal to, IBM_NVDWN_EV以偵測down節點, 但在callout_recovery.rs, 因為要偵測的是恢復的節點所以不選IBM_NVDWN_EV, 改選IBM_NVUP_EV, 如圖十一, 整個過程中, callout_recovery.rscallout_down.rs主要的不同在於此, 其他都相似, (其他的不同只有其檔案的放置處不同罷了)

圖十一. callout_recovery.rsTrap Settings的設定.

 
 

 (4)Threshold(1 in 5), 進行若此一節點5分鐘內只要發生任何down的情況, 則進行下一步驟, 如圖十二.

圖十二. 程式的Thresholds部分的設定情況.

 
 

 


(5)Forward, 並沒有做特別的事, 只是做forward罷了

(6)Action, 如圖十三, 若以上條件成立的話, 它就會利用callout這個程式將節點的中文unicode以及英文, wml的換行字元<br/>輸出到暫存檔上面, 下圖中<br/>wml必須的換行符號, &#x9AD4;…..這些是體育館這三個中文字的unicode型態, 另外圖十三中, callout這個程式原始碼放在附錄一, calloutrcallout的原始碼只有寫入路徑的地方不同, 所以不再放入附錄.

 

圖十三. 當觸發前面所以條件, 就會觸發Action內的命令列

 
 

圖十四. 續圖十三未顯示完的部分

 
 

 


(7)Action(/wap/batch)

它會去啟動/wap/batch這個檔案, 做一連串的動作將剛剛的暫存檔轉化為標準的WAP網頁, 放到WAP Server上面去, 這個batch檔放在附錄二.

 


 

第四章WAP Server管理者的使用方法

 

4.1 Netview管理者如何使用這三個程式

 

1. 首先進入IBM AIX, 輸入username

2. 輸入password

3. 進入AIX, 叫出dtterm命令視窗, 輸入netview, Enter, 以啟動網管軟體Netview(如圖十五)

 

圖十五. netview指令於dtterm視窗.

 
 

 


4.     啟動之後, Netview會連帶啟動數個視窗, 我們要在它的主視窗root之下的control desk, 先按下creat這個選項, 如圖十六.

圖十六. Root視窗下的Control Desk裡面有Create這個按鈕.

 
 

 


5.     按下creat後出現兩個選項, static workspace以及dynamic workspace, 按下dynamic workspace會出現Dynamic Workspace這個視窗(如圖十七):

圖十七. Dynamic Workspace視窗

 
 

 


6. 若您要載入自動通知網路斷線的程式ibm8275.rs的話, 你可以在Workspace Title下輸入ibm8275(基本上這個欄位會顯示在Root那個視窗上的, 看你想要給這個程式的Title是什麼, 就可以輸入什麼)

然後按下右邊的Rules List, 會出現圖十八這個視窗

 

圖十八. Correlation File Selection視窗.

 
 

 


7.     這時你只要點選右邊的子視窗Files中的ibm8275.rs這個檔案讓它反白, 再按下下面的OK, 就可以將ibm8275.rs這個程式載入到Correlation Rule!載入後的情況如圖十九.

 

圖十九. 載入ibm8275.rs, Dynamic Workspace視窗的情況

 
 

 


8.     接下來按下這個視窗最下面的OK, 就可以成功地將此程式載入到Netview裡面了!

9.     同樣的我們可以重複以上幾個步驟, 但在第六個步驟時改在子視窗Files選擇callout_down.rscallout_recovery.rs這兩個檔案, 也可以達到載入這兩個程式的目的

 

4.2管理者如何讓使用者得知目前網路的情況

1. 首先管理者必須將使用者的手機號碼登錄在ibm8275.rs這個程式之中, 登錄的方法為

圖二十. 展示Tools視窗的所有按鈕, 其中之一即是Ruleset Editor.

 
 

 


雙點選Ruleset Editor(如圖二十中Tools視窗的Ruleset Editor), 會出現Templates以及default.rs這兩個視窗, 按下default.rs這個視窗的 ”file” , 再選擇open, 這時會有許多個rs檔案可選, 選擇ibm8275.rs, OK, 即可進入ibm8275.rsRule結構, ibm8275.rs的每一個rule結束之處都是Action, 此時利用另外一個視窗Templates, 將裡面的一個Action按住, 移到ibm8275.rs的視窗, 便可新增一個新的Actionibm8275.rs, 此時你可以先將設定兩個Forward方格指向我們新增的這個Action, (設定指向的方法為Edit->connect two nodes),  再來修改這個Action的內容(如圖二十一)[3][4][5].

圖二十一. Forward方塊指向的Action方塊

 
 

 


接著你可以在我們新增的Action上點兩下, 進入修改它的內容

修改的方式為:

 

/usr/OV/bin/nvpage “使用者手機號碼” “使用者手機接聽的數字響聲

如圖二十二為一Action的範例, 附帶說明的一點是nvpage是一個啟動數據機打電話的一個應用程式,

圖二十二. Action視窗範例

 
 

 


在建立了使用者的手機號碼到Action, 請按File , 然後按save重新儲存ibm8275.rs, 此時必須重新載入ibm8275.rsNetview.

若管理者將我們所建立的三個程式載入在Netview中則之後在每次網路節點有斷線的情況時, 使用者便可接到電話, 接到的次數越多, 表示目前網路的斷線情況越嚴重, 使用者在接到電話後, 可利用手中的行動電話上網(斷線節點的網址在: 140.117.19.150/wap/down.wml)查看目前的斷線情況如何, 並且根據網路上的說明, 前往發生問題的系所處理, 等到問題解決了, 可以上網查看這些節點是何時恢復的(恢復節點的網址在: 140.117.19.150/wap/up.wml).

 

4.3 如何定時清除callout_down.rs以及callout_recovery.rs寫入wml的斷線節點

callout_down.rs會寫nodedown.wml, callout_recovery.rs會寫到up.wml, 所以管理者只要在有需要時清理140.117.19.150裡面的/wap/nodes還有/wapr/nodes這兩個檔清成空白, 再將/usr/OV/web/httpd/htdocs/wap/up.wml以及down.wml的有寫node的地方清掉即可


 

第五章   結論

 

網路的發展影響了人們, 近年來行動通訊的盛行更帶動了人們走向更快速, 更有效率的e世代生活, 可預見的, 未來行動電話將成為人們不可或缺的利器, WAP給予行動電話上網瀏覽的功能, 它加速了人們的到資訊的速度, 並且提供了更多的服務.

 

由於WAP具有無線且便利的特性, 因此我們便想到身為一個網路的管理者必須隨時隨地都能夠監控網路的各種狀況, 但管理者卻不可能隨時隨地待在計算機與網路中心內去監控網路, 因此我們便想到利用AIX這台工作站來發展一套好用又便利的WAP網管程式來解決這個問題.

 

因此在這篇報告中, 我們描述我們如何運用新的技術以及軟體, 發展出一套網管的工具程式來;  利用AIX工作站, 架設出最熱門的WAP Server並且利用IBM所提供的一套可靠的網管流量擷取軟體Netview,  在上面發展三個對網路管理者極為便利的網管程式, 第一個程式ibm8275.rs在網路有問題時會自動打電話給網路管理者, 第二個程式callout_down.rs可以將當掉的網路位置節點自動地寫到AIX上的WAP Server, 第三個程式callout_recovery.rs可以將當掉後又恢復回來的網路位置節點自動地寫到AIX上的WAP Server上面來.

 

發展出來WAP Server以及這三個程式, 如此一來, 即使網路管理者身處在一個離網路很遠的地方, 依然可以隨時隨地的運用WAP手機, 輕鬆自在地清楚網路每一刻的狀況, 也就不須擔心網路會發生任何的問題了!


 

參考文獻

 

1.     Wireless Application Protocol & Wireless Markup Language, 祥泉

2.     中時電子報網站資訊http://www.chinatimes.com.tw/wap/wap.htm (“何謂WAP”一文)

3.     IBM NetView Installation and Configuration Version 5

4.     IBM NetView Mid-Level Manager User’s Guide Version 5

5.     IBM TME 10 Netview For Aix administrator’s Guide Version 5

6.     WAP無線網頁製作實務, 李驥, 張子仁

7.     Wireless Application Protocol Architecture Specification, WAP Forum.

8.     C函數使用大全, 蔡明志

9.     Turbo C語言實務, 施威銘

10.  Linux 指令參考手冊, 施威銘研究室


 

附錄一 (callout原始碼)[8][9]

 

#include<stdio.h>

#include<time.h>

 

main (argc,argv)

int argc;

char *argv[];

{

FILE *fp1;

  int ch, ch1;

  static char str1[30];

  long t; /* t is time */

  int i, j=0;

  time(&t);

  if( (fp1 = fopen ("/wap/node", "w") ) == NULL )

   {

     printf("open file error\n");

     exit(1);

   }

/*  for (i=1; i < argc; i++)

     printf("%s\n", argv[i]); */

  for(j=0; argv[1][j]!= NULL; j++)

    putc(argv[1][j], fp1);

  strcpy(str1, ctime(&t));

  for(i=0; i<4; i++)

   putc(' ', fp1);

/*   puts(str1); */ 

   for (i=0; str1[i] !='\0' ; i++)

   {

    putc(str1[i] , fp1);

   }

/*  putc('\n', fp1); */

  fclose(fp1);

}

 

附錄二 (batch)[10]

 

cp /wap/nodes /wap/bak; cp /wap/log_b /wap/log; cat /wap/node /wap/bak > /wap/nodes; cat /wap/node /wap/log > /wap/log_b; cat /wap/upper /wap/nodes /wap/below > /usr/OV/web/httpd/htdocs/wap/callout.wml; cat /wap/upper /wap/log_b /wap/below > /usr/OV/web/httpd/htdocs/wap/log.wml; cp /usr/OV/web/httpd/htdocs/wap/callout.wml /usr/OV/web/httpd/htdocs/wap/down.wml