版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 畢 業(yè) 設 計</b></p><p> 題 目: 服務器應用監(jiān)控系統(tǒng)</p><p> 院、 系: 計算機科學與技術學院 計算機系</p><p><b> 任務書</b></p><p> 學生姓名:
2、 學號:</p><p> 學 院:計算機科學與技術 專業(yè):計算機科學與技術</p><p> 任務起止時間: </p><p> 畢業(yè)設計(論文)題目:服務器應用監(jiān)控系統(tǒng)</p><p> 畢業(yè)設計工作內容: 收集資料 3.1 — 3.20確定主題 3.21 — 4.
3、1規(guī)劃后臺與網(wǎng)站 4.1 — 4.2選擇合適的制作工具 4.20 — 5.10實現(xiàn)設計 5.10 — 6.1撰寫論文、準備答辯 6.1 — 6.20</p><p> 資料:1、Java編程思想 作者:Bruce Eckel著,出版社:機械工業(yè)出版社2、數(shù)據(jù)結構與算法分析 作者:Mark Allen Weiss,出版社:機械工業(yè)出版社3、操作系統(tǒng)精髓與設
4、計原理 作者:William Stallings,出版社:機械工業(yè)出版社</p><p> 指導教師意見:簽名:年 月 日系主任意見:簽名:年 月 日</p><p><b> 服務器應用監(jiān)控系統(tǒng)</b></p><p><b> 摘 要</b></p><p>
5、隨著各行業(yè)信息化建設的不斷深入發(fā)展,單獨的服務器已經(jīng)再無法滿足企業(yè)的需求。網(wǎng)絡和應用規(guī)模日趨擴大,服務器網(wǎng)絡集群大量應用于中、小型企業(yè)中,服務器性能監(jiān)控和日常維護變得復雜。服務器管理員迫切需要一個實用的監(jiān)控系統(tǒng)來幫助他們實時了解服務器的運行狀態(tài),檢測服務器故障,令維護服務器的正常運行。</p><p> 服務器性能監(jiān)控是指針對服務器系統(tǒng)的運行狀態(tài)以及各項指標的監(jiān)控。監(jiān)控指標包括:CPU 使用率、CPU 負載、內
6、存使用率、磁盤 I/O、磁盤空間、網(wǎng)絡流量等。并實時的將監(jiān)控獲得的服務器性能參數(shù)傳回來顯示在客戶端,同時上傳至中心服務器上的數(shù)據(jù)庫中,便于以后查詢,分析。</p><p> 本文圍繞服務器應用性能監(jiān)控系統(tǒng)的研究與實現(xiàn),研究了Web服務技術,服務器的性能參數(shù)獲取和利用Char組件動態(tài)顯示服務器的運行狀態(tài)。Web服務的使用簡化了客戶端系統(tǒng),服務器的性能參數(shù)獲取過程封裝在一個Windows進程中,系統(tǒng)具有很好的擴展性
7、。系統(tǒng)的實現(xiàn)目標是服務器性能的遠程監(jiān)控,一對多監(jiān)控,服務器管理員可以查看服務器歷史一段時間運行狀態(tài)。</p><p> 關鍵詞 服務器應用監(jiān)控;遠程監(jiān)控;Web服務;Windows性能</p><p> Server Application Monitoring System</p><p><b> Abstract</b><
8、/p><p> With the rapid development of network technology and application, a single server has failed to meet the needs of the enterprises. With the server scale increasing day after day, and server cluster wid
9、ely used in the medium and small enterprises, a server’s management and maintenance are becoming difficult. The system administrator urgently need a practical server performance monitoring system to help them know server
10、’s operation state real-time, monitoring server failure, in order to make the s</p><p> This Web service technology, the server performance parameters of the acquisition and use of Microsoft Chart component
11、 dynamic display of the server running state.</p><p> This paper focus on the server performance monitoring system of research and implementation, research the Web service technology, the server performance
12、 parameters of the acquisition and use of Microsoft Chart component dynamic display of the server running state. With the Web service, the client becomes much simple. Packing process of getting the server performance par
13、ameters as a service of Windows make the system has good expansibility. System goal is to realize the server performance for rem</p><p> Keywords ServerPerformanceMonitoringSystem; Remote Monitoring;</p
14、><p> Web Service; Windows Performance</p><p><b> 目 錄</b></p><p><b> 摘要……I</b></p><p> AbstractII</p><p><b> 第1章 緒論5&l
15、t;/b></p><p> 1.1 選題目的和意義5</p><p> 1.2 國內外文獻綜述5</p><p> 1.3 論文研究內容6</p><p> 第2章 相關技術概述7</p><p> 2.1 服務器應用性能監(jiān)控7</p><p> 2.2 服務器性能
16、參數(shù)獲取7</p><p> 2.2.1 使用Sigar7</p><p> 2.2.2 使用Windows性能計數(shù)器8</p><p> 2.3 Web服務概述8</p><p> 2.4 本章小結8</p><p> 第3章 系統(tǒng)需求分析9</p><p> 3.1
17、需求背景9</p><p> 3.2 系統(tǒng)總體的需求9</p><p> 3.3 系統(tǒng)功能性需求分析10</p><p> 3.3.1 系統(tǒng)功能10</p><p> 3.3.2 WindowsInfoMonitor服務功能需求10</p><p> 3.3.3 ShowWinInfo客戶端程序功能
18、需求11</p><p> 3.4 系統(tǒng)非功能性需求分析12</p><p> 3.4.1 可靠性要求12</p><p> 3.4.2 易用性要求12</p><p> 3.4.3 效率要求12</p><p> 3.4.4 可移植性要求13</p><p> 3.5
19、系統(tǒng)開發(fā)環(huán)境13</p><p> 3.5.1 軟件環(huán)境13</p><p> 3.5.2 硬件環(huán)境13</p><p> 3.6 本章小結13</p><p> 第4章 系統(tǒng)設計14</p><p> 4.1 系統(tǒng)概述14</p><p> 4.2 系統(tǒng)總體架構14&
20、lt;/p><p> 4.3 劃分功能模塊14</p><p> 4.4 獨立模塊設計15</p><p> 4.4.1 WindowsInfoMonitor服務模塊設計15</p><p> 4.4.2 ShowWinInfo客戶端程序設計17</p><p> 4.5 數(shù)據(jù)模型設計17</p&
21、gt;<p> 4.6 本章小結18</p><p> 第5章 系統(tǒng)實現(xiàn)19</p><p> 5.1 WindowsInfoMonitor服務實現(xiàn)19</p><p> 5.1.1 獲取服務器的性能參數(shù)19</p><p> 5.1.2 向指定數(shù)據(jù)庫持久化服務器性能參數(shù)24</p><p
22、> 5.2 ShowWinInfo客戶端程序的實現(xiàn)25</p><p> 5.2.1 使用Highcharts插件26</p><p> 5.2.2 整站效果27</p><p> 5.2.3 使用tablesorter29</p><p> 5.2.4 使用JSP31</p><p> 5
23、.2.5 使用Ajax31</p><p> 5.2.6 使用Struts31</p><p> 5.3 本章小結32</p><p><b> 結 論33</b></p><p><b> 致 謝35</b></p><p><b>
24、參考文獻36</b></p><p><b> 附 錄37</b></p><p> 附錄A 英文原文37</p><p> 附錄B 英文譯文39</p><p> 附錄C 服務器信息采集核心代碼41</p><p> 附錄D 前臺展示業(yè)務核心代碼49<
25、/p><p><b> 緒論</b></p><p><b> 選題目的和意義</b></p><p> 在網(wǎng)絡中部署的服務器系統(tǒng),隨著時間的推移,系統(tǒng)中的用戶數(shù)量和數(shù)據(jù)量不斷增加,系統(tǒng)壓力越來越大,系統(tǒng)速度越來越慢,對客戶端的響應時間越來越長,有時服務器甚至會停止服務,無法響應用戶請求,從而使整個網(wǎng)絡陷入癱瘓。面對這樣
26、的情況,網(wǎng)絡管理員總希望在第一時間找到問題出在哪里,而往往由于缺少必要的分析和診斷工具,無法迅速找到到底是CPU,內存,磁盤,網(wǎng)絡等哪個部分出了問題,是硬件配置較低需要升級設備,還是受到木馬攻擊,被木馬搶占了資源。如何監(jiān)控和解決服務器性能問題,成為管理員面臨的最棘手的問題。尤其是隨著互聯(lián)網(wǎng)絡的發(fā)展,單一的服務器已經(jīng)無法滿足企業(yè)需求,大規(guī)模的服務器集群得到廣泛應用,云計算發(fā)展勢頭迅猛,如何調整服務器部署,均衡負載,使服務器資源得到充分利用
27、,大大提高資源的利用率成為最重要的關注點。服務器的性能監(jiān)控顯得越來越重要了。</p><p><b> 國內外文獻綜述</b></p><p> 當前,企業(yè)信息化規(guī)模越來越大,水平不斷提高,如何維護并有效管理這些資源,已經(jīng)成為企業(yè)信息化過程中面臨的嚴峻問題和關注的焦點。在對這些資源的管理中,服務器是核心設備,對它的管理至關重要。Windows服務在企業(yè)中應用十分廣
28、泛,對其性能進行管理非常必要。Windows服務器自帶有性能管理功能,但只能在本機上才能查看其運行情況。而且只能實時查看,無法查看過去一段時間內的服務器運行狀態(tài)。目前知名的Windows服務器性能監(jiān)控系統(tǒng)有NEC公司的MasterScopeSystemManager,Micrisoft公司的WMI,Bakbone公司的Spotlight On Windows,上海哲濤公司的SUM(Server Unified Monitor &
29、 Management),神舟泰岳的Ultr@NMS。相比較而言,國外產(chǎn)品功能強大,但價格昂貴,操作界面不符合中國人習慣;而國內產(chǎn)品技術落后,可移植性差。</p><p> 服務器應用性能監(jiān)控可以了解到服務器的各種狀態(tài),比如CPU的利用率,內存的占用率,磁盤的I/O速率,虛擬內存的占用率等。可以根據(jù)監(jiān)控的數(shù)據(jù)結果來判定企業(yè)應用的工作情況,可以查看數(shù)據(jù)庫內的監(jiān)控數(shù)據(jù),分析出服務器的性能,便于服務器的部署,使資源得
30、到更有效更充分的利用。</p><p> 未來服務器不再是傳統(tǒng)的單服務器,而是由多個服務器構成的服務器群。對于服務器群來說,服務器的管理變得更加重要。合理的利用資源,使所有服務器資源得到最大化利用,不僅僅可以節(jié)約硬件上的成本,同時可以加快服務器的響應速度,提高服務器的吞吐量,而要實現(xiàn)服務器的管理,依據(jù)的就是服務器的性能,了解單服務器的性能,均衡服務器,避免服務器出現(xiàn)“饑飽過度”。服務器應用性能監(jiān)控將在提高服務器
31、性能方面發(fā)揮重大作用。</p><p><b> 論文研究內容</b></p><p> 本課題主要研究服務器應用的性能監(jiān)控,獲取服務器的性能參數(shù),保存至數(shù)據(jù)庫并且顯示,提供用戶可以查看過去一段時間服務器的運行狀態(tài)。具體內容包括以下幾個方面:</p><p> 獲取服務器的性能參數(shù):設計一個組件WindowsInfoMonitor,Win
32、dowsInfoMonitor是一個Windows下進行的線程,里面使用Sigar獲取服務器的性能,包括CPU的利用率,內存的占用率,磁盤I/O的數(shù)據(jù)傳輸速度,網(wǎng)絡帶寬等信息。</p><p> 服務器性能數(shù)據(jù)上傳至中心服務器數(shù)據(jù)庫:通過在中心服務器安裝的WebService提供的借口,將服務器的性能數(shù)據(jù)上傳到中心服務器的數(shù)據(jù)庫中。</p><p> 客戶端從中心服務器數(shù)據(jù)庫提取數(shù)據(jù):
33、客戶端通過在中心服務器安裝的WebService提供的接口,獲取數(shù)據(jù)庫內服務器的性能數(shù)據(jù)。</p><p> 服務器性能參數(shù)在客戶端界面上的顯示:使用Jsp技術和Highcharts控件將服務器的性能數(shù)據(jù)顯示在客戶端界面上,用繪制曲線圖,直方圖條或者文字報告等形式展示,直觀的向用戶展示服務器性能。</p><p><b> 相關技術概述</b></p>
34、<p> 本章將主要介紹系統(tǒng)使用到的相關技術。服務器應用性能監(jiān)控實現(xiàn)遠程監(jiān)控,用到Java Web技術。Web服務提供接口,將系統(tǒng)的業(yè)務邏輯從客戶端移到了中心服務器上,大大簡化客戶端操作。</p><p><b> 服務器應用性能監(jiān)控</b></p><p> 服務器性能監(jiān)控是指針對服務器系統(tǒng)的運行狀態(tài)以及各項指標的監(jiān)控。監(jiān)控指標包括:CPU 使用
35、率、CPU 負載、內存使用率、磁盤 I/O、磁盤空間、網(wǎng)絡流量等。遠程服務器監(jiān)控系統(tǒng)是本地計算機通過網(wǎng)絡系統(tǒng)Internet/Intranet,對遠程服務器進行監(jiān)控和控制。并實時的將監(jiān)控獲得的服務器性能參數(shù)傳回來顯示在客戶端,同時上傳至中心服務器上的數(shù)據(jù)庫中,便于以后查詢,分析。 </p><p> 服務器性能監(jiān)控技術目前比較成熟,并且應用在調整服務器部署中。服務器的穩(wěn)定性及其性能資源利用狀態(tài)需要長時間的累計服
36、務器相關數(shù)據(jù),然后進行分析,最后得出正確結論??梢葬槍λ性O備的 CPU 負載、內存利用率等進行全網(wǎng)記錄。也可以對單獨的應用服務器等進行記錄。 </p><p> 服務器的網(wǎng)絡流量來自服務器與外界的數(shù)據(jù)交換。這個流量包括了正常的應用程序與外界的數(shù)據(jù)交換,也包括了非法服務或進程(例如病毒)產(chǎn)生的數(shù)據(jù)量。定期分析一段時間來的服務器網(wǎng)卡流量,可以發(fā)現(xiàn)是否有不正常的變化,如突然增高或突然很低,這對檢查服務器的運行狀態(tài)很
37、有幫助。 </p><p> 對應用服務器的性能資源進行記錄,幫助管理人員根據(jù)這些統(tǒng)計結果分析出這些設備的主要運行參數(shù)的變化規(guī)律,從而為正確評定用戶網(wǎng)絡設備的承載能力提供依據(jù)。另外,如果必要的話,也可以對所有的服務器連接線路的流量指標進行記錄,以便對整個網(wǎng)絡的流量分布全面了解,以確定網(wǎng)絡的瓶頸,為今后的網(wǎng)絡擴容提供依據(jù)。 </p><p><b> 服務器性能參數(shù)獲取<
38、/b></p><p> 服務器性能參數(shù)獲取是指通過一定的方法,獲取服務器的性能指標的過程。服務器的性能指標包括CPU使用率、內存使用率、磁盤I/O、磁盤空間、網(wǎng)絡流量等。Java語言下服務器性能參數(shù)選擇利用sigar控件和Windows性能計數(shù)器。</p><p><b> 使用Sigar</b></p><p> Sigar是英
39、文System Information Gatherer And Reporter的簡寫,中文意思是系統(tǒng)信息采集者,是一個開源的工具,提供了跨平臺的系統(tǒng)信息收集的API,由C語言實現(xiàn)的。</p><p> 可以收集的信息包括:</p><p> CPU信息,包括基本信息(vendor、model、mhz、cacheSize)和統(tǒng)計信息(user、sys、idle、nice、wait);
40、</p><p> 文件系統(tǒng)信息,包括Filesystem、Size、Used、Avail、Use%、Type;</p><p> 事件信息,類似Service Control Manager;</p><p> 內存信息,物理內存和交換內存的總數(shù)、使用數(shù)、剩余數(shù);RAM的大?。?lt;/p><p> 網(wǎng)絡信息,包括網(wǎng)絡接口信息和網(wǎng)絡路由
41、信息;</p><p> 進程信息,包括每個進程的內存、CPU占用數(shù)、狀態(tài)、參數(shù)、句柄;</p><p> I/O信息,包括I/O的狀態(tài),讀寫大小等;</p><p><b> 服務狀態(tài)信息;</b></p><p> 系統(tǒng)信息,包括操作系統(tǒng)版本,系統(tǒng)資源限制情況,系統(tǒng)運行時間以及負載,JAVA的版本信息等;&l
42、t;/p><p> 使用Windows性能計數(shù)器</p><p> 服務器性能監(jiān)視,是Windows NT提供的一種系統(tǒng)功能。Windows NT一直以來總是集成了性能監(jiān)視工具,它提供了有關操作系統(tǒng)當前運行狀況的信息,針對各種對象提供了數(shù)百個性能計數(shù)器,在本地計算機可以打開管理工具,選擇性能監(jiān)視器,點擊添加計數(shù)器按鈕,可以查看Windows NT具體提供了哪些性能計數(shù)器,同時可以查看性能監(jiān)
43、視對象,對象實例等。性能計數(shù)器能實時采集系統(tǒng)內的應用程序、服務、驅動程序等的性能數(shù)據(jù),以此來分析系統(tǒng)的瓶頸,最終幫助用戶進行系統(tǒng)的合理調配。通過編寫程序可以訪問所有的Windows性能計數(shù)器,通過計數(shù)器可以獲得服務器的性能參數(shù)。</p><p><b> Web服務概述</b></p><p> Web服務(Web Service)是一種實現(xiàn)Internet環(huán)境下
44、組建開發(fā)的技術。目標是把全世界的Internet/Intranet變成一個虛擬計算環(huán)境,實現(xiàn)跨平臺的可操作性。</p><p><b> 本章小結</b></p><p> 本章主要對服務器應用監(jiān)控系統(tǒng)用到的技術進行了闡述,包括服務器性能監(jiān)控,Web服務技術。</p><p><b> 系統(tǒng)需求分析</b></
45、p><p> 本章將主要對系統(tǒng)的需求進行分析。主要從系統(tǒng)的功能性需求和非功能性需求進行深入細致的分析。對系統(tǒng)需求進行全面細致的分析是系統(tǒng)快速高效開發(fā)的前提,才能保證設計實現(xiàn)的系統(tǒng)滿足系統(tǒng)的需求。</p><p><b> 需求背景</b></p><p> 隨著網(wǎng)絡的發(fā)展,單一服務器已經(jīng)無法滿足企業(yè)需要,服務器集群已廣泛應用。服務器部署,服務
46、器管理越來越重要。服務器監(jiān)控是服務器管理的前提,只有監(jiān)控了服務器運行狀態(tài),才能合理部署服務器,調整服務器,均衡服務器,使服務器資源得到充分利用,避免出現(xiàn)服務器“過度饑飽”的情況。網(wǎng)絡中的服務器系統(tǒng)部署完成后,隨著時間的推移,系統(tǒng)的數(shù)據(jù)量和用戶量不斷增加,系統(tǒng)壓力越來越大,系統(tǒng)運行速度越來越慢,客戶端用戶等待時間越來越長,有時甚至等待不到響應。Windows 網(wǎng)絡服務系統(tǒng)自帶的服務器性能監(jiān)視工具只可以在本地監(jiān)視自身系統(tǒng),無法遠程監(jiān)控其他服
47、務器,但現(xiàn)在的服務器不再單一,管理員需要同時監(jiān)控多個服務器,而且有時管理員有事離開,回來發(fā)現(xiàn)服務器癱瘓了,無法知道服務器癱瘓原因,因此還要求服務器監(jiān)控系統(tǒng)能提供查詢功能,查詢服務器過去一段時間的運行狀態(tài)。</p><p> 服務器性能監(jiān)控技術已經(jīng)比較成熟了,只是沒有實現(xiàn)遠程監(jiān)控,不提供查詢功能,只是提供了日志,而沒有更詳細的記錄服務器過去一段時間的運行狀態(tài)。目前云計算非常流行,幾大云計算公司都針對自己的云計算平
48、臺開發(fā)了監(jiān)控系統(tǒng),比如盛大的“云監(jiān)控” ,亞馬遜的“AWS”等,這些監(jiān)控系統(tǒng)雖然功能很強大,但是系統(tǒng)太大,對于小企業(yè),小范圍內的服務器群監(jiān)控不太適合,在小規(guī)模的服務器群遠程監(jiān)控這一塊,市場幾乎是空白。雖然服務器群在朝著更大,更集中發(fā)展,但小規(guī)模的服務器群還將在未來一段時間長久存在,而服務器的監(jiān)控則在任何大小的服務器群中都是必須的,因為服務器的監(jiān)控對服務器的調整至關重要。</p><p><b> 系統(tǒng)
49、總體的需求</b></p><p> 本系統(tǒng)主要實現(xiàn)服務器遠程監(jiān)控功能。本系統(tǒng)的設計首先滿足服務器性能監(jiān)控的要求,同時要考慮到系統(tǒng)的可靠性,靈活性,方便管理員管理監(jiān)視服務器。服務器集群數(shù)量比較大,管理員需要同時監(jiān)控多個服務器,管理員可能有事離開,但監(jiān)視不停,之后可以查閱之前一段時間服務器的運行狀態(tài)。直觀的顯示服務器運行狀態(tài)便于管理員了解服務器的運行情況。本系統(tǒng)正常運行需要如下三個環(huán)節(jié):首先開啟被監(jiān)控
50、服務器上的WindowsInfoMonitor服務,其次開啟中心服務器上的ShowWinInfo程序,最后打開瀏覽器根據(jù)設定進行監(jiān)控。本系統(tǒng)功能用組成如圖 3-1 所示。</p><p> 圖 3-1系統(tǒng)功能做成圖</p><p><b> 系統(tǒng)功能性需求分析</b></p><p> 本系統(tǒng)在功能上主要分為WindowsInfoMoni
51、tor服務和ShowWinInfo程序。WindowsInfoMonitor服務又分為獲取服務器性能和持久化數(shù)據(jù)兩大模塊。ShowWinInfo程序主要為查詢數(shù)據(jù)庫中存儲的持久化數(shù)據(jù),并且在瀏覽器中進行顯示,這個是管理員最直接接觸到的。</p><p><b> 系統(tǒng)功能</b></p><p> 本系統(tǒng)的功能是服務器上WindowsInfoMonitor服務采集
52、服務器的運行狀態(tài),然后發(fā)送給客戶端提供客戶端顯示,同時把性能參數(shù)存儲到服務器上的數(shù)據(jù)庫。遠程監(jiān)控可以使得一個管理員可以在客戶端同時監(jiān)控幾臺服務器,中心服務器提供數(shù)據(jù)庫,使得管理員可以查看過去一段時間服務器的運行狀態(tài)。</p><p> WindowsInfoMonitor服務功能需求</p><p> WindowsInfoMonitor服務是安裝在服務器上,獲取服務器的性能參數(shù)。在服
53、務運行時候需要向中心服務器注冊自己的服務器信息,包括服務器名和服務器的IP地址,注冊的目的是客戶端可以訪問中心服務器獲取服務器的信息,和服務器進行通信。WindowsInfoMonitor服務運行后要實時監(jiān)聽客戶端ShowWinInfo發(fā)來的監(jiān)控命令,包括開始監(jiān)控,停止監(jiān)控等。根據(jù)命令控制服務器監(jiān)控線程的運行。在監(jiān)控線程中,每隔一段時間獲取一次服務器的性能參數(shù),然后向中心服務器發(fā)送性能參數(shù),存入數(shù)據(jù)庫,同時把性能參數(shù)發(fā)送給客戶端Show
54、WinInfo用于客戶端顯示。WindowsInfoMonitor服務功能用組成如圖3-3.</p><p> 圖3-3 WindowsInfoMonitor服務功能組成圖</p><p> ShowWinInfo客戶端程序功能需求</p><p> ShowWinInfo客戶端為架設在中心服務器上的以web技術為基礎的程序,管理員可以直接使用,發(fā)出監(jiān)控命令
55、,同時直觀顯示服務器的運行狀態(tài)供管理員查看,分析調整服務器部署。ShowWinInfo客戶端在運行時訪問中心服務器上的數(shù)據(jù)庫,獲取所存儲的服務器的信息,添加到服務器列表中,管理員可以選擇這些服務器進行監(jiān)控。管理員可以通過添加性能計數(shù)器,移除性能計數(shù)器選擇要監(jiān)控的服務器性能參數(shù)。發(fā)送開始監(jiān)控,停止監(jiān)控,更新,查詢過去一段時間的服務器的運行狀態(tài)等命令,獲取服務器的性能參數(shù),再以直方圖型,線條,報告等形式顯示在瀏覽器窗口中。服務器的性能是實時
56、動態(tài)顯示的,非常直觀。更新頻率決定了監(jiān)控的強度。更新間隔時間越短,監(jiān)控強度越大,能發(fā)現(xiàn)服務器出現(xiàn)的瞬間癱瘓原因。但不是更新時間越短越好,更新時間越短。服務器的開銷越大。ShowWinInfo客戶端程序功能組成圖如3-4。</p><p> 圖3-4 ShowWinInfo客戶端程序功能組成圖</p><p> 系統(tǒng)非功能性需求分析</p><p> 系統(tǒng)的非
57、功能性需求,是指系統(tǒng)為滿足用戶業(yè)務需求而必須具有的妾除功能需求以外的特性。往往包括可靠性、易用性、效率、維護性、可移植性等。</p><p><b> 可靠性要求</b></p><p> 本系統(tǒng)要實現(xiàn)服務器性能的遠程監(jiān)控,服務器的性能參數(shù)較多,同時一個管理員要能同時監(jiān)控多臺服務器,服務器性能的監(jiān)控過程是間隔一段時間獲取一次服務器的性能參數(shù),間隔時間太長就失去了實
58、時監(jiān)控的效果,間隔時間一般在5S左右,一段時間內產(chǎn)生的數(shù)據(jù)量比較大,對中心服務器上的數(shù)據(jù)庫是一個考驗,可靠性非常重要。在客戶端要實時顯示服務器運行狀態(tài),較短時間內處理較大量的數(shù)據(jù),軟件的壓力比較大,可靠性是非常重要的。</p><p><b> 易用性要求</b></p><p> 本系統(tǒng)目標是把管理員從復雜的服務器監(jiān)控中解放出來,因此要具有很好的易用性。服務器的
59、性能的參數(shù)很多,選擇必要的性能參數(shù),直觀的顯示給管理員,便于管理員分析然后調整服務器的部署,均衡服務器是非常必要的。管理員不一定對服務器的性能有很深的研究,因此易用性,直觀的顯示給管理員是本系統(tǒng)的要求。</p><p><b> 效率要求</b></p><p> 本系統(tǒng)是實時監(jiān)控,處理的數(shù)據(jù)量較大,效率很重要,要在間隔時間內把數(shù)據(jù)發(fā)存入中心服務器的數(shù)據(jù)庫,同時發(fā)
60、送到客戶端顯示,如果效率很低,則這次處理還未完成,下次數(shù)據(jù)已經(jīng)到來,可能沖掉上一次的數(shù)據(jù),這要求系統(tǒng)的處理速度很快,同時間隔時間不能太短。還有隨時間的推移,中心服務器上數(shù)據(jù)庫的數(shù)據(jù)量逐漸增大,數(shù)據(jù)量可能太大,占滿磁盤空間,因此需要清除一部分數(shù)據(jù),只保存一段時間內的數(shù)據(jù)。</p><p><b> 可移植性要求</b></p><p> 由于本系統(tǒng)中的Windows
61、InfoMonitor是安裝在每個服務器上的,因此要有很好的移植性,便于WindowsInfoMonitor的安裝,運行。</p><p><b> 系統(tǒng)開發(fā)環(huán)境</b></p><p> 系統(tǒng)的開發(fā)環(huán)境包括軟件環(huán)境和硬件環(huán)境兩部分。是開發(fā)系統(tǒng)必備的環(huán)境。</p><p><b> 軟件環(huán)境</b></p>
62、;<p> 客戶端操作系統(tǒng)為Microsoft Windows 7及以上版本。</p><p> 服務器端和中心服務器端的操作系統(tǒng)為Windows Server 2000版本及以上版本。采用Windows系統(tǒng)是因為本系統(tǒng)是調用Sigar工具來獲取服務器的性能數(shù)據(jù)。</p><p> 數(shù)據(jù)庫操作系統(tǒng)為MySQL5.1。</p><p> 系統(tǒng)開發(fā)
63、語言:JAVA程序設計語言。</p><p> 系統(tǒng)開發(fā)工具:MyEclipse8.5及MySQL-Front工具。</p><p> 系統(tǒng)運行環(huán)境:JDK1.6。</p><p><b> 硬件環(huán)境</b></p><p> 客戶機配置:建議采用Intel處理器(1.5GHz)以上、內存2GB、硬盤100GB以
64、上。</p><p> 中心服務器配置:建議采用Intel雙核處理器(2.0GHz)、內存2GB、硬盤150GB以上。</p><p> 服務器配置:建議采用Intel處理器(1.5GHz)以上、內存2GB、硬盤100GB以上。</p><p><b> 本章小結</b></p><p> 本章先闡述了需求的背景
65、,然后對系統(tǒng)進行了各方面的需求分析,主要包括:系統(tǒng)總體需求分析、系統(tǒng)功能性分析、系統(tǒng)非功能性需求分析。在系統(tǒng)的功能需求分析中對系統(tǒng)功能進行了詳細化劃分,畫出了用例圖,并描述各個模塊的功能需求。在非功能性分析中對系統(tǒng)的可靠性、易用性、效率、可移植性需求進行了分析。最后,對系統(tǒng)的開發(fā)環(huán)境進行簡要的介紹。</p><p><b> 系統(tǒng)設計</b></p><p> 本
66、章將主要是系統(tǒng)的設計階段。根據(jù)第三章的系統(tǒng)需求分析主要從系統(tǒng)的總體架構、系統(tǒng)的功能模塊劃分、獨立模塊的設計以及數(shù)據(jù)模型的設計等方面對系統(tǒng)進行了詳細設計。采用了Web服務技術,使系統(tǒng)具有了松散耦合性,良好的擴展性和可移植性特點。</p><p><b> 系統(tǒng)概述</b></p><p> WindowsInfoMonitor服務和ShowWinInfo程序組成了服
67、務器應用監(jiān)控系統(tǒng)。WindowsInfoMonitor服務安裝在服務器上,獲取服務器的性能參數(shù)。ShowWinInfo程序是管理員操作端,所有的監(jiān)控命令都是由此發(fā)出,監(jiān)控到的服務器性能參數(shù)返回到瀏覽器中,在瀏覽器中動態(tài)直觀的顯示服務器當前的運行狀態(tài)。</p><p><b> 系統(tǒng)總體架構</b></p><p> 本系統(tǒng)主要實現(xiàn)服務器遠程監(jiān)控功能。在一個客戶端瀏
68、覽器中可以同時監(jiān)控多臺服務器,服務器的性能參數(shù)上傳至中心服務器數(shù)據(jù)庫中,在客戶端可以訪問中心服務器上的數(shù)據(jù)庫,查詢服務器的性能參數(shù),并在客戶端動態(tài)顯示。系統(tǒng)的總體架構圖如下圖4-1。</p><p> 圖4-1 系統(tǒng)總體架構圖</p><p><b> 劃分功能模塊</b></p><p> 本系統(tǒng)實現(xiàn)的服務器應用監(jiān)控。實現(xiàn)遠程監(jiān)控。并
69、非本地監(jiān)控,但同時利用了sigar采集系統(tǒng)性能參數(shù),因此把服務器性能參數(shù)獲取放在服務器上,同時在中心服務器上保存服務器的性能參數(shù)及服務器信息??蛻舳擞糜诠芾韱T操作,發(fā)送監(jiān)控命令,查看服務器運行狀態(tài)。系統(tǒng)分為兩大模塊WindowsInfoMonitor服務模塊和ShowWinInfo程序模塊。系統(tǒng)的邏輯模塊圖如圖4-2所示。</p><p> 圖4-2 系統(tǒng)的邏輯模塊圖</p><p>
70、<b> 獨立模塊設計</b></p><p> WindowsInfoMonitor服務模塊設計</p><p> WindowsInfoMonitor服務模塊主要用于獲取服務器的性能參數(shù),并將服務器的性能參數(shù)發(fā)送到客戶端程序及存入中心服務器上的數(shù)據(jù)庫。服務性能參數(shù)的獲取是通過使用Sigar工具包。</p><p> 服務器的性能參數(shù)
71、根據(jù)性能對象分為操作系統(tǒng)、文件存儲、CPU_內存、分區(qū)、磁盤I/O、TOP進程、網(wǎng)卡流量、登錄用戶、用戶操作。</p><p> 操作系統(tǒng)對象的主要性能參數(shù)有設備ID、主機名稱、操作系統(tǒng)版本、操作系統(tǒng)內核、開機時間等。</p><p> 文件存儲對象的主要性能參數(shù)有設備ID、類別、文件存儲目錄、文件大小等。</p><p> CPU_內存對象的主要性能參數(shù)有設
72、備ID、CPU個數(shù)、CPU主頻、CPU使用率、內存總量、內存使用數(shù)量、內存剩余數(shù)量、內存使用率等。</p><p> 分區(qū)對象的主要性能參數(shù)有設備ID、磁盤名稱、分區(qū)掛載點、分區(qū)名稱、分區(qū)總量、分區(qū)使用量、分區(qū)剩余量、分區(qū)使用率等。</p><p> 磁盤I/O對象的主要性能參數(shù)有設備ID、磁盤名稱、單位時間讀次數(shù)、單位時間寫次數(shù)。</p><p> TOP進
73、程對象的主要性能參數(shù)有設備ID、進程名、所屬用戶名、PID、虛擬內存、常駐內存、共享內存、CPU使用率、運行時間長度等。</p><p> 網(wǎng)卡流量對象的主要性能參數(shù)有設備ID、網(wǎng)卡名稱、IP地址、單位時間流量、單位時間輸入丟包數(shù)、網(wǎng)卡流入使用率、單位時間流出量、單位時間丟包數(shù)、單位時間輸入錯包數(shù)、網(wǎng)卡流出使用率等。</p><p> 登錄用戶對象的主要性能參數(shù)有設備ID、登陸用戶名、
74、登陸時間、客戶端IP。</p><p> 用戶操作對象的主要性能有登陸用戶名、登陸時間、客戶端IP、操作命令、退出時間等。</p><p> WindowsInfoMonitor服務模塊的運行流程圖如4-3。</p><p> 圖4-3 WindowsInfoMonitor服務模塊的運行流程圖</p><p> ShowWinInf
75、o客戶端程序設計</p><p> ShowWinInfo程序模塊主要是安裝在中心服務器,由管理員直接使用的模塊。管理員在瀏覽器中選擇要監(jiān)控的服務器,同時選擇要監(jiān)控的服務器性能參數(shù),點擊開始監(jiān)控按鈕,開始監(jiān)控。檢索數(shù)據(jù)庫中的服務器性能參數(shù),然后顯示在客戶端。管理員可以查看過去一段時間服務器的運行狀態(tài)。為了方便管理員查看服務器的運行狀態(tài),頁面顯示部分使用Highcharts控件,顯示效果為餅形圖,直方圖線條等。S
76、howWinInfo程序的運行流程圖如圖4-4。</p><p> 圖4-4 ShowWinInfo程序的運行流程圖</p><p><b> 數(shù)據(jù)模型設計</b></p><p> 本系統(tǒng)主要是在中心服務器上需要保存數(shù)據(jù),以便客戶端查詢。需要保存的數(shù)據(jù)包括兩部分:服務器的信息和服務器性能參數(shù)。</p><p>
77、 服務器的性能參數(shù)較多,而且每隔一段時間就會增加新的信息,因此采用MySQL數(shù)據(jù)庫來管理服務器性能參數(shù)數(shù)據(jù)。采用數(shù)據(jù)庫數(shù)據(jù)的插入,查詢就變得非常容易了。由于本系統(tǒng)實現(xiàn)的是同時監(jiān)控多臺服務器,因此對應于每個服務器建立一張表,以服務器的名字作為ID名。由于服務器的性能參數(shù)都一樣,所以每個表的字段都是一樣的。表內的字段為服務器的性能參數(shù)。由于需要采集的信息比較多,所以分類型分別制定表的結構為操作系統(tǒng)(sbcj_czxt)、文件存儲(sbcj
78、_wjcc)、CPU_內存(sbcj_cpu_nc)、分區(qū)(sbcj_fq)、磁盤I/O(sbcj_cpio)、TOP進程(sbcj_top)、網(wǎng)卡流量(sbcj_wkll)、登錄用戶(sbcj_dlyh)、用戶操作(sbcj_yhcz)、狀態(tài)總結(sbcj_ztzj)。各表詳細分布如下:</p><p> 操作系統(tǒng)表詳見表4-1;</p><p> 文件存儲表詳見表4-2;</
79、p><p> 表4-1操作系統(tǒng)(sbcj_czxt)</p><p> 表4-2 文件存儲(sbcj_wjcc)</p><p><b> 本章小結</b></p><p> 本章是對系統(tǒng)進行設計,先對系統(tǒng)進行了整體性概述,設計系統(tǒng)整體架構,然后進行系統(tǒng)功能性模塊化劃分,合理的劃分出兩大模塊,并對兩大模塊進行更一步的
80、設計,最后,進行了詳細的數(shù)據(jù)庫表模型設計。</p><p><b> 系統(tǒng)實現(xiàn)</b></p><p> 本章將主要編程實現(xiàn)系統(tǒng)。在第四章系統(tǒng)設計的基礎上編程實現(xiàn)系統(tǒng)。按照第四章的功能模塊劃分,本章首先實現(xiàn)獨立功能模塊,然后是模塊間的數(shù)據(jù)通信,整個系統(tǒng)整合運行起來。</p><p> 系統(tǒng)實現(xiàn)首先獨立功能模塊的實現(xiàn),然后實現(xiàn)獨立功能模塊間
81、的通信,使獨立功能模塊組合連接起來形成系統(tǒng)。</p><p> WindowsInfoMonitor服務實現(xiàn)</p><p> WindowsInfoMonitor服務要實現(xiàn)的功能主要包括以下幾個方面:</p><p> 獲取服務器的性能參數(shù)。</p><p> 向指定數(shù)據(jù)庫持久化服務器性能參數(shù)</p><p>
82、; 獲取服務器的性能參數(shù)</p><p> WindowsInfoMonito服務獲取服務器的性能參數(shù)是通過調用Sigar工具來實現(xiàn)。</p><p> 采集服務器操作系統(tǒng)信息,可獲取到服務器主機名稱,操作系統(tǒng)版本,操作系統(tǒng)內核,調用sigar中getenv()方法得到數(shù)據(jù),部分代碼如下:</p><p><b> //操作系統(tǒng)</b>
83、</p><p> public void Czxt(){</p><p> sbcj_czxt czxtVO = new sbcj_czxt(); </p><p><b> //獲取主機名稱</b></p><p> Map<String, String> map = System
84、.getenv();</p><p> String Zjmc = map.get("COMPUTERNAME"); </p><p> //獲取操作系統(tǒng)版本</p><p> Properties props = System.getProperties(); </p><p> String C
85、zxtbb = props.getProperty("os.name");</p><p> //操作系統(tǒng)內核</p><p> String Czxtnh = props.getProperty("os.arch");</p><p> czxtVO.setZjmc(Zjmc);</p><p
86、> czxtVO.setCzxtbb(Czxtbb);</p><p> czxtVO.setCzxtnh(Czxtnh);</p><p> dao.addSbcj_czxt(czxtVO);</p><p><b> }</b></p><p> 采集服務器文件存儲信息,可獲取到盤符類型,文件存儲
87、目錄,文件大小,調用sigar中getFileSystemList()方法得到數(shù)據(jù),部分代碼如下:</p><p><b> //文件存儲</b></p><p> public void Wjcc() throws SigarException{</p><p> Sigar sigar = new Sigar();</p>
88、;<p> FileSystem fslist[] = sigar.getFileSystemList();</p><p> for(int i=0;i<fslist.length;i++){</p><p> sbcj_wjcc wjccVO = new sbcj_wjcc();</p><p> FileSystem fs = fs
89、list[i];</p><p><b> //獲取盤符類型</b></p><p> String Lb = fs.getSysTypeName();</p><p><b> //文件存儲目錄</b></p><p> String Wjccml = fs.getDirName();&l
90、t;/p><p><b> //文件大小</b></p><p> long Wjdx = 0;</p><p> if(!(fs.getSysTypeName()).equals("cdrom")){</p><p> FileSystemUsage usage = null;</p
91、><p> usage = sigar.getFileSystemUsage(fs.getDirName());</p><p> switch (fs.getType()) {</p><p> case 0: // TYPE_UNKNOWN :未知</p><p><b> break;</b></p>
92、;<p> case 1: // TYPE_NONE</p><p><b> break;</b></p><p><b> case 2: </b></p><p> Wjdx = usage.getTotal()/1024;</p><p><b> }<
93、;/b></p><p><b> }</b></p><p> wjccVO.setLb(Lb);</p><p> wjccVO.setWjccml(Wjccml);</p><p> wjccVO.setWjdx(Wjdx);</p><p> dao.addSbcj_wjc
94、c(wjccVO);</p><p><b> }</b></p><p><b> }</b></p><p> 采集服務器CPU內存信息,可獲取CPU個數(shù),CPU主頻,調用sigar中getCpuInfoList()方法得到數(shù)據(jù),部分代碼如下:</p><p><b> //C
95、PU內存</b></p><p> public void CPU_nc() throws SigarException{</p><p> sbcj_cpu_nc cpu_ncVO= new sbcj_cpu_nc(); </p><p> Sigar sigar = new Sigar();</p><p> CpuI
96、nfo infos[] = sigar.getCpuInfoList();</p><p><b> //獲取CPU個數(shù)</b></p><p> int Gs = infos.length;</p><p><b> //獲取CPU主頻</b></p><p> long zp = 0;&
97、lt;/p><p> for (int i = 0; i < infos.length; i++) {</p><p> CpuInfo info = infos[i];</p><p> zp += info.getMhz();</p><p><b> }</b></p><p>
98、; Mem mem = sigar.getMem();</p><p> long Zl = mem.getTotal() / 1024L/1024;</p><p> long Sysl = mem.getUsed() / 1024L/1024;</p><p> long Ncsy = mem.getFree() / 1024L/1024;</p&
99、gt;<p> float Nc_Syl = Sysl/Zl;</p><p> cpu_ncVO.setGs(Gs);</p><p> cpu_ncVO.setZp(zp+"");</p><p> cpu_ncVO.setZl(Zl);</p><p> cpu_ncVO.setSysl(Sy
100、sl);</p><p> cpu_ncVO.setNcsy(Ncsy);</p><p> cpu_ncVO.setNc_Syl(Nc_Syl);</p><p> dao.addSbcj_cpu_nc(cpu_ncVO);</p><p><b> }</b></p><p>
101、采集服務器磁盤I/O信息,可獲取磁盤名稱,單位時間讀次數(shù),單位時間寫次數(shù),調用sigar中getFileSystemList ()方法得到數(shù)據(jù),部分代碼如下: </p><p><b> //磁盤I/O</b></p><p> public void Cpio() throws SigarException{ </p><p&g
102、t; Sigar sigar = new Sigar();</p><p> FileSystem fslist[] = sigar.getFileSystemList();</p><p> for(int i=0;i<fslist.length;i++){</p><p> sbcj_cpio cpioVO = new sbcj_cpio();&l
103、t;/p><p> FileSystem fs = fslist[i];</p><p> if(!(fs.getSysTypeName()).equals("cdrom")){</p><p><b> //獲取磁盤名稱</b></p><p> String Cpmc = fs.getD
104、evName();</p><p> FileSystemUsage usage = null;</p><p> usage = sigar.getFileSystemUsage(fs.getDirName());</p><p> //獲取單位時間讀次數(shù)</p><p> float Dcs = usage.getDiskRead
105、s();</p><p> //獲取單位時間寫次數(shù)</p><p> float Xcs = usage.getDiskWrites();</p><p> cpioVO.setCpmc(Cpmc);</p><p> cpioVO.setDcs(Dcs);</p><p> cpioVO.setXcs(Xc
106、s);</p><p> dao.addSbcj_cpio(cpioVO);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 采集服務器網(wǎng)卡流量信息,可獲
107、取網(wǎng)卡名稱,IP地址,單位時間流入量,單位時間輸入丟包數(shù),單位時間輸入錯包數(shù),單位時間輸入錯包數(shù),單位時間流出量,單位時間輸出丟包數(shù),單位時間輸出錯包數(shù),調用sigar中getNetInterfaceList()方法得到數(shù)據(jù),部分代碼如下:</p><p><b> //網(wǎng)卡流量</b></p><p> public void Wkll() throws Sig
108、arException{</p><p> sbcj_wkll wkllVO = new sbcj_wkll();</p><p> Sigar sigar = new Sigar();</p><p> String ifNames[] = sigar.getNetInterfaceList();</p><p> for(int
109、i = 0;i<ifNames.length;i++){</p><p><b> //獲取網(wǎng)卡名稱</b></p><p> String name = ifNames[i];</p><p> NetInterfaceConfig ifconfig = sigar.getNetInt
110、erfaceConfig(name);</p><p><b> //獲取IP地址</b></p><p> String IP = ifconfig.getAddress();</p><p> NetInterfaceStat ifstat = sigar.getNetInterfaceStat(name);</p>&
111、lt;p> //獲取單位時間流入量</p><p> long Lrl = ifstat.getRxBytes();</p><p> //獲取單位時間輸入丟包數(shù)</p><p> long Srdbs = ifstat.getRxDropped();</p><p> //獲取單位時間輸入錯包數(shù);</p>&l
112、t;p> long Srcbs = ifstat.getRxErrors();</p><p> //獲取單位時間流出量</p><p> long Lcl = ifstat.getTxBytes();</p><p> //獲取單位時間輸出丟包數(shù)</p><p> long Scdbs = ifstat.getTxDropp
113、ed();</p><p> //獲取單位時間輸出錯包數(shù)</p><p> long Sccbs = ifstat.getTxErrors();</p><p> dao.addSbcj_wkll(wkllVO);</p><p><b> }</b></p><p><b>
114、 }</b></p><p> 采集服務器登錄用戶信息,可獲取登陸用戶名,登錄用戶IP,調用sigar中getenv ()方法得到數(shù)據(jù),部分代碼如下:</p><p><b> //登錄用戶</b></p><p> public void Dlyh() throws UnknownHostException{</p&g
115、t;<p> sbcj_dlyh dlyhVO = new sbcj_dlyh(); //登錄用戶</p><p> Map<String, String> map = System.getenv();</p><p> String Yhm = map.get("USERNAME"); // 獲取用戶
116、名</p><p> InetAddress addr;</p><p> addr = InetAddress.getLocalHost();</p><p> String IP = addr.getHostAddress(); //獲取IP</p><p> dlyhVO.setYhm(Yhm);</p&
117、gt;<p> dlyhVO.setIP(IP);</p><p> dao.addSbcj_dlyh(dlyhVO);</p><p><b> }</b></p><p> 采集服務器用戶操作信息,調用sigar中getenv ()方法得到數(shù)據(jù),部分代碼如下:</p><p><b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 火災監(jiān)控系統(tǒng)畢業(yè)設計說明書
- 畢業(yè)設計說明書---供暖鍋爐監(jiān)控系統(tǒng)設計
- 網(wǎng)絡遠程監(jiān)控及管理系統(tǒng)畢業(yè)設計說明書
- 畢業(yè)設計--畢業(yè)設計管理系統(tǒng)設計說明書
- 結晶器畢業(yè)設計說明書
- 再沸器畢業(yè)設計說明書
- 攪拌器畢業(yè)設計說明書
- 液壓系統(tǒng)畢業(yè)設計說明書
- 畢業(yè)設計說明書—
- 電子計分器畢業(yè)設計說明書
- 高樓逃生器畢業(yè)設計說明書
- 畢業(yè)設計說明書任務分發(fā)監(jiān)控系統(tǒng)的設計與實現(xiàn)
- 論壇系統(tǒng)畢業(yè)設計說明書
- 空調系統(tǒng)設計 畢業(yè)設計說明書
- 財務系統(tǒng)設計畢業(yè)設計說明書
- 空調系統(tǒng)設計畢業(yè)設計說明書
- 畢業(yè)設計--離合器設計說明書
- 畢業(yè)設計---離合器設計說明書
- 畢業(yè)設計說明書
- 攤鋪機液壓系統(tǒng)畢業(yè)設計說明書
評論
0/150
提交評論