文章試讀
不拘一個遍程序系列:編程序不能一個腦袋鑽到底,有時要學會變通,即所謂的曲線救國。一、二、三、四
職場規劃:一些雜七雜八的職場感悟吧。不值錢的軟件人才 精力充沛與事業成功 讓系分來得更猛烈些吧 不值錢的系統分析師 經濟危機下大學生如何就業
我的詩歌:都是我的打油詩,但是很值得一讀。不要工作還衣食無憂之四難歌 香格裡拉美人圖
寶寶圖片:超可愛的小寶寶 寫博客
考試培訓:主要是關於考研、軟考和等級的相關題解。2009考研試題分析 2008年12月程序員試題分析 2009年軟考備考全攻略 2008年5月程序員試題解析 輕松寫系分論文
第21章 系統監控技術之信息轉發模塊
作者:朱雲翔,胡平
信息轉發模塊一邊匯總監控主機發送來的信息,一邊將這些信息發散地傳遞到各個顯示端,在系統監控項目中,它處於承上啟下的位置。
本章將設計一個系統監控項目的信息轉發模塊,它不但能夠接收並轉發主機發送的監控信息,同時還可以為顯示端提供用戶簽到服務。
21.1 系統分析與設計
信息轉發模塊負責接收被監控主機的系統信息和應用信息,並根據顯示端的簽到情況選擇發送或者不發送監控信息。信息轉發模塊由三個部分組成,分別是用戶模塊、簽到程序和轉發程序。
1. 用戶模塊
我們並不希望人人都可以獲得主機信息,因此需要為每個顯示端備案,信息轉發進程只會將數據發送到備案的顯示端。通常我們會為每個顯示端分配一個用戶,這個用戶信息至少包括以下幾項內容:
(1) 顯示端的IP地址與端口號。
(2) 為顯示端分配的用戶信息,包括用戶名和密碼。
(3) 顯示端簽到標志,這個標志決定了是否向顯示端發送信息。
(4) 顯示端注冊標志組。顯示端不一定需要監控全部的數據,這個數組中的每個元素都對應一個特別的監控類型,只有當這個標志打開時,其對應的監控信息才可以轉發到顯示端。
實踐經驗】在大多數系統中,諸如用戶等配置信息都存在兩種狀態,分別為存儲態和運行態:
(1) 存儲態。
又可以稱為靜態存儲,是指當系統尚未運行時配置信息的存儲方式,一般有文件系統存儲和數據庫存儲等方式。比如系統監控項目中主機進程尚未啟動前,監控代碼信息就以文件的形式存儲在配置文件“config.ini”中。
(2) 運行態。
又可以稱為動態存儲,系統啟動時都會載入配置信息,運行態就是指配置信息被載入系統後的存儲方式,一般有內存數據存儲和數據庫存儲等方式。比如在系統監控項目中,主機進程啟動時將監控代碼信息讀入內存結構“SIMTIMER”中保存,以後監控信息的所有改變都發生在內存中,與配置文件無關。
在程序啟動前,本項目的用戶信息靜態存儲於配置文件“config.ini”中。在程序啟動時,這些用戶信息將被讀入到內存相應的結構中。
2. 簽到程序
當系統初啟,載入用戶信息時,並不會自動打開用戶簽到等標志,只有當接收並審核通過顯示端發送來的簽到申請報文時,才更改用戶簽到標志。
本部分專門負責與顯示端的TCP通信連接,它接收顯示端的請求信息,並按要求修改用戶動態配置的信息。常見的受理信息有:
(1) 簽到報文,顯示端開始監控時發送。
(2) 簽退報文,顯示端結束監控時發送。
(3) 注冊報文,顯示端選擇監控信息時發送。
3. 轉發程序
本程序負責將監控到的主機信息轉發到顯示端,它的處理流程如下:
(1) 系統啟動,讀入用戶配置信息用戶配置由靜態轉動態)。
(2) 以阻塞方式接收監控到的主機系統信息。
(3) 如果接收主機信息成功,則遍歷全部的用戶動態存儲信息。
(4) 查找滿足該條信息接收條件的顯示端,並發送數據。
綜上得知,在本項目中簽到模塊和轉發模塊都操作了顯示端用戶信息,前者將實時更新用戶信息,後者則需要經常讀取信息,因此必須選擇一種可供多個進程共享的動態存儲方式,共享內存無疑是最佳選擇。
本項目三個組成模塊的關系如圖21-1所示:
圖21-1 信息轉發模塊分解圖
相關文章:
封面 前言 目錄 策劃 作者
動態庫 變長參數 文件鎖 外設 僵死進程
定時器 I/O重定向 消息隊列 共享內存
實踐項目:
開發網頁投票器一) 二)
開發網頁投票器 字符串報文
銀行代發工資報文
Unix下遠程控制程序
監控程序主機模塊
監控程序信息轉發模塊
本文出自 “編程浪子朱雲翔” 博客,請務必保留此出處http://zhuyunxiang.blog.51cto.com/653596/145037