版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
畢業(yè)設(shè)計(jì)題目:服務(wù)器應(yīng)用監(jiān)控系統(tǒng)院、系:計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院計(jì)算機(jī)系畢業(yè)設(shè)計(jì)(論文)評(píng)語學(xué)生姓名:學(xué)號(hào):學(xué)院:計(jì)算機(jī)科學(xué)與技術(shù)專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)任務(wù)起止時(shí)間:2013年3月5日至2013年6月20日畢業(yè)設(shè)計(jì)(論文)題目:指導(dǎo)教師對(duì)畢業(yè)設(shè)計(jì)(論文)的評(píng)語:指導(dǎo)教師簽名:指導(dǎo)教師職稱:評(píng)閱教師對(duì)畢業(yè)設(shè)計(jì)(論文)的評(píng)語:評(píng)閱教師簽名:評(píng)閱教師職稱:答辯委員會(huì)對(duì)畢業(yè)設(shè)計(jì)(論文)的評(píng)語:答辯委員會(huì)評(píng)定,該生畢業(yè)設(shè)計(jì)(論文)成績?yōu)椋捍疝q委員會(huì)主席簽名:職稱:年月日任務(wù)書學(xué)生姓名:學(xué)號(hào):學(xué)院:計(jì)算機(jī)科學(xué)與技術(shù)專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)任務(wù)起止時(shí)間:畢業(yè)設(shè)計(jì)(論文)題目:服務(wù)器應(yīng)用監(jiān)控系統(tǒng)畢業(yè)設(shè)計(jì)工作內(nèi)容:收集資料3.1—3.20確定主題3.21—4.1規(guī)劃后臺(tái)與網(wǎng)站4.1—4.2選擇合適的制作工具4.20—5.10實(shí)現(xiàn)設(shè)計(jì)5.10—6.1撰寫論文、準(zhǔn)備答辯6.1—6.20資料:1、Java編程思想作者:BruceEckel著,出版社:機(jī)械工業(yè)出版社2、數(shù)據(jù)結(jié)構(gòu)與算法分析作者:MarkAllenWeiss,出版社:機(jī)械工業(yè)出版社3、操作系統(tǒng)精髓與設(shè)計(jì)原理作者:WilliamStallings,出版社:機(jī)械工業(yè)出版社指導(dǎo)教師意見:簽名:年月日系主任意見:簽名:年月日服務(wù)器應(yīng)用監(jiān)控系統(tǒng)摘要隨著各行業(yè)信息化建設(shè)的不斷深入發(fā)展,單獨(dú)的服務(wù)器已經(jīng)再無法滿足企業(yè)的需求。網(wǎng)絡(luò)和應(yīng)用規(guī)模日趨擴(kuò)大,服務(wù)器網(wǎng)絡(luò)集群大量應(yīng)用于中、小型企業(yè)中,服務(wù)器性能監(jiān)控和日常維護(hù)變得復(fù)雜。服務(wù)器管理員迫切需要一個(gè)實(shí)用的監(jiān)控系統(tǒng)來幫助他們實(shí)時(shí)了解服務(wù)器的運(yùn)行狀態(tài),檢測(cè)服務(wù)器故障,令維護(hù)服務(wù)器的正常運(yùn)行。服務(wù)器性能監(jiān)控是指針對(duì)服務(wù)器系統(tǒng)的運(yùn)行狀態(tài)以及各項(xiàng)指標(biāo)的監(jiān)控。監(jiān)控指標(biāo)包括:CPU使用率、CPU負(fù)載、內(nèi)存使用率、磁盤I/O、磁盤空間、網(wǎng)絡(luò)流量等。并實(shí)時(shí)的將監(jiān)控獲得的服務(wù)器性能參數(shù)傳回來顯示在客戶端,同時(shí)上傳至中心服務(wù)器上的數(shù)據(jù)庫中,便于以后查詢,分析。本文圍繞服務(wù)器應(yīng)用性能監(jiān)控系統(tǒng)的研究與實(shí)現(xiàn),研究了Web服務(wù)技術(shù),服務(wù)器的性能參數(shù)獲取和利用Char組件動(dòng)態(tài)顯示服務(wù)器的運(yùn)行狀態(tài)。Web服務(wù)的使用簡化了客戶端系統(tǒng),服務(wù)器的性能參數(shù)獲取過程封裝在一個(gè)Windows進(jìn)程中,系統(tǒng)具有很好的擴(kuò)展性。系統(tǒng)的實(shí)現(xiàn)目標(biāo)是服務(wù)器性能的遠(yuǎn)程監(jiān)控,一對(duì)多監(jiān)控,服務(wù)器管理員可以查看服務(wù)器歷史一段時(shí)間運(yùn)行狀態(tài)。關(guān)鍵詞服務(wù)器應(yīng)用監(jiān)控;遠(yuǎn)程監(jiān)控;Web服務(wù);Windows性能ServerApplicationMonitoringSystemAbstractWiththerapiddevelopmentofnetworktechnologyandapplication,asingleserverhasfailedtomeettheneedsoftheenterprises.Withtheserverscaleincreasingdayafterday,andserverclusterwidelyusedinthemediumandsmallenterprises,aserver’smanagementandmaintenancearebecomingdifficult.Thesystemadministratorurgentlyneedapracticalserverperformancemonitoringsystemtohelpthemknowserver’soperationstatereal-time,monitoringserverfailure,inordertomaketheserverworknormally.ThisWebservicetechnology,theserverperformanceparametersoftheacquisitionanduseofMicrosoftChartcomponentdynamicdisplayoftheserverrunningstate.Thispaperfocusontheserverperformancemonitoringsystemofresearchandimplementation,researchtheWebservicetechnology,theserverperformanceparametersoftheacquisitionanduseofMicrosoftChartcomponentdynamicdisplayoftheserverrunningstate.WiththeWebservice,theclientbecomesmuchsimple.PackingprocessofgettingtheserverperformanceparametersasaserviceofWindowsmakethesystemhasgoodexpansibility.Systemgoalistorealizetheserverperformanceforremotemonitoring,amonitoringmore,enablethemanagerinquiringtheserver’ssomepastperiodoftimerunningstate.KeywordsServerPerformanceMonitoringSystem;RemoteMonitoring;WebService;WindowsPerformance目錄摘要…… =1\*ROMANIAbstract =2\*ROMANII第1章緒論51.1選題目的和意義51.2國內(nèi)外文獻(xiàn)綜述51.3論文研究內(nèi)容6第2章相關(guān)技術(shù)概述72.1服務(wù)器應(yīng)用性能監(jiān)控72.2服務(wù)器性能參數(shù)獲取7使用Sigar7使用Windows性能計(jì)數(shù)器82.3Web服務(wù)概述82.4本章小結(jié)8第3章系統(tǒng)需求分析93.1需求背景93.2系統(tǒng)總體的需求93.3系統(tǒng)功能性需求分析10系統(tǒng)功能103.3.2WindowsInfoMonitor服務(wù)功能需求103.3.3ShowWinInfo客戶端程序功能需求113.4系統(tǒng)非功能性需求分析12可靠性要求12易用性要求12效率要求12可移植性要求133.5系統(tǒng)開發(fā)環(huán)境13軟件環(huán)境13硬件環(huán)境133.6本章小結(jié)13第4章系統(tǒng)設(shè)計(jì)144.1系統(tǒng)概述144.2系統(tǒng)總體架構(gòu)144.3劃分功能模塊144.4獨(dú)立模塊設(shè)計(jì)154.4.1WindowsInfoMonitor服務(wù)模塊設(shè)計(jì)154.4.2ShowWinInfo客戶端程序設(shè)計(jì)174.5數(shù)據(jù)模型設(shè)計(jì)174.6本章小結(jié)18第5章系統(tǒng)實(shí)現(xiàn)195.1WindowsInfoMonitor服務(wù)實(shí)現(xiàn)19獲取服務(wù)器的性能參數(shù)19向指定數(shù)據(jù)庫持久化服務(wù)器性能參數(shù)245.2ShowWinInfo客戶端程序的實(shí)現(xiàn)25使用Highcharts插件26整站效果27使用tablesorter29使用JSP31使用Ajax31使用Struts315.3本章小結(jié)32結(jié)論33致謝35參考文獻(xiàn)36附錄37附錄A英文原文37附錄B英文譯文39附錄C服務(wù)器信息采集核心代碼41附錄D前臺(tái)展示業(yè)務(wù)核心代碼49緒論選題目的和意義在網(wǎng)絡(luò)中部署的服務(wù)器系統(tǒng),隨著時(shí)間的推移,系統(tǒng)中的用戶數(shù)量和數(shù)據(jù)量不斷增加,系統(tǒng)壓力越來越大,系統(tǒng)速度越來越慢,對(duì)客戶端的響應(yīng)時(shí)間越來越長,有時(shí)服務(wù)器甚至?xí)V狗?wù),無法響應(yīng)用戶請(qǐng)求,從而使整個(gè)網(wǎng)絡(luò)陷入癱瘓。面對(duì)這樣的情況,網(wǎng)絡(luò)管理員總希望在第一時(shí)間找到問題出在哪里,而往往由于缺少必要的分析和診斷工具,無法迅速找到到底是CPU,內(nèi)存,磁盤,網(wǎng)絡(luò)等哪個(gè)部分出了問題,是硬件配置較低需要升級(jí)設(shè)備,還是受到木馬攻擊,被木馬搶占了資源。如何監(jiān)控和解決服務(wù)器性能問題,成為管理員面臨的最棘手的問題。尤其是隨著互聯(lián)網(wǎng)絡(luò)的發(fā)展,單一的服務(wù)器已經(jīng)無法滿足企業(yè)需求,大規(guī)模的服務(wù)器集群得到廣泛應(yīng)用,云計(jì)算發(fā)展勢(shì)頭迅猛,如何調(diào)整服務(wù)器部署,均衡負(fù)載,使服務(wù)器資源得到充分利用,大大提高資源的利用率成為最重要的關(guān)注點(diǎn)。服務(wù)器的性能監(jiān)控顯得越來越重要了。國內(nèi)外文獻(xiàn)綜述當(dāng)前,企業(yè)信息化規(guī)模越來越大,水平不斷提高,如何維護(hù)并有效管理這些資源,已經(jīng)成為企業(yè)信息化過程中面臨的嚴(yán)峻問題和關(guān)注的焦點(diǎn)。在對(duì)這些資源的管理中,服務(wù)器是核心設(shè)備,對(duì)它的管理至關(guān)重要。Windows服務(wù)在企業(yè)中應(yīng)用十分廣泛,對(duì)其性能進(jìn)行管理非常必要。Windows服務(wù)器自帶有性能管理功能,但只能在本機(jī)上才能查看其運(yùn)行情況。而且只能實(shí)時(shí)查看,無法查看過去一段時(shí)間內(nèi)的服務(wù)器運(yùn)行狀態(tài)。目前知名的Windows服務(wù)器性能監(jiān)控系統(tǒng)有NEC公司的MasterScopeSystemManager,Micrisoft公司的WMI,Bakbone公司的SpotlightOnWindows,上海哲濤公司的SUM(ServerUnifiedMonitor&Management),神舟泰岳的Ultr@NMS。相比較而言,國外產(chǎn)品功能強(qiáng)大,但價(jià)格昂貴,操作界面不符合中國人習(xí)慣;而國內(nèi)產(chǎn)品技術(shù)落后,可移植性差。服務(wù)器應(yīng)用性能監(jiān)控可以了解到服務(wù)器的各種狀態(tài),比如CPU的利用率,內(nèi)存的占用率,磁盤的I/O速率,虛擬內(nèi)存的占用率等??梢愿鶕?jù)監(jiān)控的數(shù)據(jù)結(jié)果來判定企業(yè)應(yīng)用的工作情況,可以查看數(shù)據(jù)庫內(nèi)的監(jiān)控?cái)?shù)據(jù),分析出服務(wù)器的性能,便于服務(wù)器的部署,使資源得到更有效更充分的利用。未來服務(wù)器不再是傳統(tǒng)的單服務(wù)器,而是由多個(gè)服務(wù)器構(gòu)成的服務(wù)器群。對(duì)于服務(wù)器群來說,服務(wù)器的管理變得更加重要。合理的利用資源,使所有服務(wù)器資源得到最大化利用,不僅僅可以節(jié)約硬件上的成本,同時(shí)可以加快服務(wù)器的響應(yīng)速度,提高服務(wù)器的吞吐量,而要實(shí)現(xiàn)服務(wù)器的管理,依據(jù)的就是服務(wù)器的性能,了解單服務(wù)器的性能,均衡服務(wù)器,避免服務(wù)器出現(xiàn)“饑飽過度”。服務(wù)器應(yīng)用性能監(jiān)控將在提高服務(wù)器性能方面發(fā)揮重大作用。論文研究內(nèi)容本課題主要研究服務(wù)器應(yīng)用的性能監(jiān)控,獲取服務(wù)器的性能參數(shù),保存至數(shù)據(jù)庫并且顯示,提供用戶可以查看過去一段時(shí)間服務(wù)器的運(yùn)行狀態(tài)。具體內(nèi)容包括以下幾個(gè)方面:獲取服務(wù)器的性能參數(shù):設(shè)計(jì)一個(gè)組件WindowsInfoMonitor,WindowsInfoMonitor是一個(gè)Windows下進(jìn)行的線程,里面使用Sigar獲取服務(wù)器的性能,包括CPU的利用率,內(nèi)存的占用率,磁盤I/O的數(shù)據(jù)傳輸速度,網(wǎng)絡(luò)帶寬等信息。服務(wù)器性能數(shù)據(jù)上傳至中心服務(wù)器數(shù)據(jù)庫:通過在中心服務(wù)器安裝的WebService提供的借口,將服務(wù)器的性能數(shù)據(jù)上傳到中心服務(wù)器的數(shù)據(jù)庫中。客戶端從中心服務(wù)器數(shù)據(jù)庫提取數(shù)據(jù):客戶端通過在中心服務(wù)器安裝的WebService提供的接口,獲取數(shù)據(jù)庫內(nèi)服務(wù)器的性能數(shù)據(jù)。服務(wù)器性能參數(shù)在客戶端界面上的顯示:使用Jsp技術(shù)和Highcharts控件將服務(wù)器的性能數(shù)據(jù)顯示在客戶端界面上,用繪制曲線圖,直方圖條或者文字報(bào)告等形式展示,直觀的向用戶展示服務(wù)器性能。相關(guān)技術(shù)概述本章將主要介紹系統(tǒng)使用到的相關(guān)技術(shù)。服務(wù)器應(yīng)用性能監(jiān)控實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,用到JavaWeb技術(shù)。Web服務(wù)提供接口,將系統(tǒng)的業(yè)務(wù)邏輯從客戶端移到了中心服務(wù)器上,大大簡化客戶端操作。服務(wù)器應(yīng)用性能監(jiān)控服務(wù)器性能監(jiān)控是指針對(duì)服務(wù)器系統(tǒng)的運(yùn)行狀態(tài)以及各項(xiàng)指標(biāo)的監(jiān)控。監(jiān)控指標(biāo)包括:CPU使用率、CPU負(fù)載、內(nèi)存使用率、磁盤I/O、磁盤空間、網(wǎng)絡(luò)流量等。遠(yuǎn)程服務(wù)器監(jiān)控系統(tǒng)是本地計(jì)算機(jī)通過網(wǎng)絡(luò)系統(tǒng)Internet/Intranet,對(duì)遠(yuǎn)程服務(wù)器進(jìn)行監(jiān)控和控制。并實(shí)時(shí)的將監(jiān)控獲得的服務(wù)器性能參數(shù)傳回來顯示在客戶端,同時(shí)上傳至中心服務(wù)器上的數(shù)據(jù)庫中,便于以后查詢,分析。服務(wù)器性能監(jiān)控技術(shù)目前比較成熟,并且應(yīng)用在調(diào)整服務(wù)器部署中。服務(wù)器的穩(wěn)定性及其性能資源利用狀態(tài)需要長時(shí)間的累計(jì)服務(wù)器相關(guān)數(shù)據(jù),然后進(jìn)行分析,最后得出正確結(jié)論??梢葬槍?duì)所有設(shè)備的CPU負(fù)載、內(nèi)存利用率等進(jìn)行全網(wǎng)記錄。也可以對(duì)單獨(dú)的應(yīng)用服務(wù)器等進(jìn)行記錄。服務(wù)器的網(wǎng)絡(luò)流量來自服務(wù)器與外界的數(shù)據(jù)交換。這個(gè)流量包括了正常的應(yīng)用程序與外界的數(shù)據(jù)交換,也包括了非法服務(wù)或進(jìn)程(例如病毒)產(chǎn)生的數(shù)據(jù)量。定期分析一段時(shí)間來的服務(wù)器網(wǎng)卡流量,可以發(fā)現(xiàn)是否有不正常的變化,如突然增高或突然很低,這對(duì)檢查服務(wù)器的運(yùn)行狀態(tài)很有幫助。對(duì)應(yīng)用服務(wù)器的性能資源進(jìn)行記錄,幫助管理人員根據(jù)這些統(tǒng)計(jì)結(jié)果分析出這些設(shè)備的主要運(yùn)行參數(shù)的變化規(guī)律,從而為正確評(píng)定用戶網(wǎng)絡(luò)設(shè)備的承載能力提供依據(jù)。另外,如果必要的話,也可以對(duì)所有的服務(wù)器連接線路的流量指標(biāo)進(jìn)行記錄,以便對(duì)整個(gè)網(wǎng)絡(luò)的流量分布全面了解,以確定網(wǎng)絡(luò)的瓶頸,為今后的網(wǎng)絡(luò)擴(kuò)容提供依據(jù)。服務(wù)器性能參數(shù)獲取服務(wù)器性能參數(shù)獲取是指通過一定的方法,獲取服務(wù)器的性能指標(biāo)的過程。服務(wù)器的性能指標(biāo)包括CPU使用率、內(nèi)存使用率、磁盤I/O、磁盤空間、網(wǎng)絡(luò)流量等。Java語言下服務(wù)器性能參數(shù)選擇利用sigar控件和Windows性能計(jì)數(shù)器。使用SigarSigar是英文SystemInformationGathererAndReporter的簡寫,中文意思是系統(tǒng)信息采集者,是一個(gè)開源的工具,提供了跨平臺(tái)的系統(tǒng)信息收集的API,由C語言實(shí)現(xiàn)的??梢允占男畔ǎ篊PU信息,包括基本信息(vendor、model、mhz、cacheSize)和統(tǒng)計(jì)信息(user、sys、idle、nice、wait);文件系統(tǒng)信息,包括Filesystem、Size、Used、Avail、Use%、Type;事件信息,類似ServiceControlManager;內(nèi)存信息,物理內(nèi)存和交換內(nèi)存的總數(shù)、使用數(shù)、剩余數(shù);RAM的大?。痪W(wǎng)絡(luò)信息,包括網(wǎng)絡(luò)接口信息和網(wǎng)絡(luò)路由信息;進(jìn)程信息,包括每個(gè)進(jìn)程的內(nèi)存、CPU占用數(shù)、狀態(tài)、參數(shù)、句柄;I/O信息,包括I/O的狀態(tài),讀寫大小等;服務(wù)狀態(tài)信息;系統(tǒng)信息,包括操作系統(tǒng)版本,系統(tǒng)資源限制情況,系統(tǒng)運(yùn)行時(shí)間以及負(fù)載,JAVA的版本信息等;使用Windows性能計(jì)數(shù)器服務(wù)器性能監(jiān)視,是WindowsNT提供的一種系統(tǒng)功能。WindowsNT一直以來總是集成了性能監(jiān)視工具,它提供了有關(guān)操作系統(tǒng)當(dāng)前運(yùn)行狀況的信息,針對(duì)各種對(duì)象提供了數(shù)百個(gè)性能計(jì)數(shù)器,在本地計(jì)算機(jī)可以打開管理工具,選擇性能監(jiān)視器,點(diǎn)擊添加計(jì)數(shù)器按鈕,可以查看WindowsNT具體提供了哪些性能計(jì)數(shù)器,同時(shí)可以查看性能監(jiān)視對(duì)象,對(duì)象實(shí)例等。性能計(jì)數(shù)器能實(shí)時(shí)采集系統(tǒng)內(nèi)的應(yīng)用程序、服務(wù)、驅(qū)動(dòng)程序等的性能數(shù)據(jù),以此來分析系統(tǒng)的瓶頸,最終幫助用戶進(jìn)行系統(tǒng)的合理調(diào)配。通過編寫程序可以訪問所有的Windows性能計(jì)數(shù)器,通過計(jì)數(shù)器可以獲得服務(wù)器的性能參數(shù)。Web服務(wù)概述Web服務(wù)(WebService)是一種實(shí)現(xiàn)Internet環(huán)境下組建開發(fā)的技術(shù)。目標(biāo)是把全世界的Internet/Intranet變成一個(gè)虛擬計(jì)算環(huán)境,實(shí)現(xiàn)跨平臺(tái)的可操作性。本章小結(jié)本章主要對(duì)服務(wù)器應(yīng)用監(jiān)控系統(tǒng)用到的技術(shù)進(jìn)行了闡述,包括服務(wù)器性能監(jiān)控,Web服務(wù)技術(shù)。系統(tǒng)需求分析本章將主要對(duì)系統(tǒng)的需求進(jìn)行分析。主要從系統(tǒng)的功能性需求和非功能性需求進(jìn)行深入細(xì)致的分析。對(duì)系統(tǒng)需求進(jìn)行全面細(xì)致的分析是系統(tǒng)快速高效開發(fā)的前提,才能保證設(shè)計(jì)實(shí)現(xiàn)的系統(tǒng)滿足系統(tǒng)的需求。需求背景隨著網(wǎng)絡(luò)的發(fā)展,單一服務(wù)器已經(jīng)無法滿足企業(yè)需要,服務(wù)器集群已廣泛應(yīng)用。服務(wù)器部署,服務(wù)器管理越來越重要。服務(wù)器監(jiān)控是服務(wù)器管理的前提,只有監(jiān)控了服務(wù)器運(yùn)行狀態(tài),才能合理部署服務(wù)器,調(diào)整服務(wù)器,均衡服務(wù)器,使服務(wù)器資源得到充分利用,避免出現(xiàn)服務(wù)器“過度饑飽”的情況。網(wǎng)絡(luò)中的服務(wù)器系統(tǒng)部署完成后,隨著時(shí)間的推移,系統(tǒng)的數(shù)據(jù)量和用戶量不斷增加,系統(tǒng)壓力越來越大,系統(tǒng)運(yùn)行速度越來越慢,客戶端用戶等待時(shí)間越來越長,有時(shí)甚至等待不到響應(yīng)。Windows網(wǎng)絡(luò)服務(wù)系統(tǒng)自帶的服務(wù)器性能監(jiān)視工具只可以在本地監(jiān)視自身系統(tǒng),無法遠(yuǎn)程監(jiān)控其他服務(wù)器,但現(xiàn)在的服務(wù)器不再單一,管理員需要同時(shí)監(jiān)控多個(gè)服務(wù)器,而且有時(shí)管理員有事離開,回來發(fā)現(xiàn)服務(wù)器癱瘓了,無法知道服務(wù)器癱瘓?jiān)?,因此還要求服務(wù)器監(jiān)控系統(tǒng)能提供查詢功能,查詢服務(wù)器過去一段時(shí)間的運(yùn)行狀態(tài)。服務(wù)器性能監(jiān)控技術(shù)已經(jīng)比較成熟了,只是沒有實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,不提供查詢功能,只是提供了日志,而沒有更詳細(xì)的記錄服務(wù)器過去一段時(shí)間的運(yùn)行狀態(tài)。目前云計(jì)算非常流行,幾大云計(jì)算公司都針對(duì)自己的云計(jì)算平臺(tái)開發(fā)了監(jiān)控系統(tǒng),比如盛大的“云監(jiān)控”,亞馬遜的“AWS”等,這些監(jiān)控系統(tǒng)雖然功能很強(qiáng)大,但是系統(tǒng)太大,對(duì)于小企業(yè),小范圍內(nèi)的服務(wù)器群監(jiān)控不太適合,在小規(guī)模的服務(wù)器群遠(yuǎn)程監(jiān)控這一塊,市場(chǎng)幾乎是空白。雖然服務(wù)器群在朝著更大,更集中發(fā)展,但小規(guī)模的服務(wù)器群還將在未來一段時(shí)間長久存在,而服務(wù)器的監(jiān)控則在任何大小的服務(wù)器群中都是必須的,因?yàn)榉?wù)器的監(jiān)控對(duì)服務(wù)器的調(diào)整至關(guān)重要。系統(tǒng)總體的需求本系統(tǒng)主要實(shí)現(xiàn)服務(wù)器遠(yuǎn)程監(jiān)控功能。本系統(tǒng)的設(shè)計(jì)首先滿足服務(wù)器性能監(jiān)控的要求,同時(shí)要考慮到系統(tǒng)的可靠性,靈活性,方便管理員管理監(jiān)視服務(wù)器。服務(wù)器集群數(shù)量比較大,管理員需要同時(shí)監(jiān)控多個(gè)服務(wù)器,管理員可能有事離開,但監(jiān)視不停,之后可以查閱之前一段時(shí)間服務(wù)器的運(yùn)行狀態(tài)。直觀的顯示服務(wù)器運(yùn)行狀態(tài)便于管理員了解服務(wù)器的運(yùn)行情況。本系統(tǒng)正常運(yùn)行需要如下三個(gè)環(huán)節(jié):首先開啟被監(jiān)控服務(wù)器上的WindowsInfoMonitor服務(wù),其次開啟中心服務(wù)器上的ShowWinInfo程序,最后打開瀏覽器根據(jù)設(shè)定進(jìn)行監(jiān)控。本系統(tǒng)功能用組成如圖3-1所示。圖3-1系統(tǒng)功能做成圖系統(tǒng)功能性需求分析本系統(tǒng)在功能上主要分為WindowsInfoMonitor服務(wù)和ShowWinInfo程序。WindowsInfoMonitor服務(wù)又分為獲取服務(wù)器性能和持久化數(shù)據(jù)兩大模塊。ShowWinInfo程序主要為查詢數(shù)據(jù)庫中存儲(chǔ)的持久化數(shù)據(jù),并且在瀏覽器中進(jìn)行顯示,這個(gè)是管理員最直接接觸到的。系統(tǒng)功能本系統(tǒng)的功能是服務(wù)器上WindowsInfoMonitor服務(wù)采集服務(wù)器的運(yùn)行狀態(tài),然后發(fā)送給客戶端提供客戶端顯示,同時(shí)把性能參數(shù)存儲(chǔ)到服務(wù)器上的數(shù)據(jù)庫。遠(yuǎn)程監(jiān)控可以使得一個(gè)管理員可以在客戶端同時(shí)監(jiān)控幾臺(tái)服務(wù)器,中心服務(wù)器提供數(shù)據(jù)庫,使得管理員可以查看過去一段時(shí)間服務(wù)器的運(yùn)行狀態(tài)。WindowsInfoMonitor服務(wù)功能需求WindowsInfoMonitor服務(wù)是安裝在服務(wù)器上,獲取服務(wù)器的性能參數(shù)。在服務(wù)運(yùn)行時(shí)候需要向中心服務(wù)器注冊(cè)自己的服務(wù)器信息,包括服務(wù)器名和服務(wù)器的IP地址,注冊(cè)的目的是客戶端可以訪問中心服務(wù)器獲取服務(wù)器的信息,和服務(wù)器進(jìn)行通信。WindowsInfoMonitor服務(wù)運(yùn)行后要實(shí)時(shí)監(jiān)聽客戶端ShowWinInfo發(fā)來的監(jiān)控命令,包括開始監(jiān)控,停止監(jiān)控等。根據(jù)命令控制服務(wù)器監(jiān)控線程的運(yùn)行。在監(jiān)控線程中,每隔一段時(shí)間獲取一次服務(wù)器的性能參數(shù),然后向中心服務(wù)器發(fā)送性能參數(shù),存入數(shù)據(jù)庫,同時(shí)把性能參數(shù)發(fā)送給客戶端ShowWinInfo用于客戶端顯示。WindowsInfoMonitor服務(wù)功能用組成如圖3-3.圖3-3WindowsInfoMonitor服務(wù)功能組成圖ShowWinInfo客戶端程序功能需求ShowWinInfo客戶端為架設(shè)在中心服務(wù)器上的以web技術(shù)為基礎(chǔ)的程序,管理員可以直接使用,發(fā)出監(jiān)控命令,同時(shí)直觀顯示服務(wù)器的運(yùn)行狀態(tài)供管理員查看,分析調(diào)整服務(wù)器部署。ShowWinInfo客戶端在運(yùn)行時(shí)訪問中心服務(wù)器上的數(shù)據(jù)庫,獲取所存儲(chǔ)的服務(wù)器的信息,添加到服務(wù)器列表中,管理員可以選擇這些服務(wù)器進(jìn)行監(jiān)控。管理員可以通過添加性能計(jì)數(shù)器,移除性能計(jì)數(shù)器選擇要監(jiān)控的服務(wù)器性能參數(shù)。發(fā)送開始監(jiān)控,停止監(jiān)控,更新,查詢過去一段時(shí)間的服務(wù)器的運(yùn)行狀態(tài)等命令,獲取服務(wù)器的性能參數(shù),再以直方圖型,線條,報(bào)告等形式顯示在瀏覽器窗口中。服務(wù)器的性能是實(shí)時(shí)動(dòng)態(tài)顯示的,非常直觀。更新頻率決定了監(jiān)控的強(qiáng)度。更新間隔時(shí)間越短,監(jiān)控強(qiáng)度越大,能發(fā)現(xiàn)服務(wù)器出現(xiàn)的瞬間癱瘓?jiān)颉5皇歉聲r(shí)間越短越好,更新時(shí)間越短。服務(wù)器的開銷越大。ShowWinInfo客戶端程序功能組成圖如3-4。圖3-4ShowWinInfo客戶端程序功能組成圖系統(tǒng)非功能性需求分析系統(tǒng)的非功能性需求,是指系統(tǒng)為滿足用戶業(yè)務(wù)需求而必須具有的妾除功能需求以外的特性。往往包括可靠性、易用性、效率、維護(hù)性、可移植性等。可靠性要求本系統(tǒng)要實(shí)現(xiàn)服務(wù)器性能的遠(yuǎn)程監(jiān)控,服務(wù)器的性能參數(shù)較多,同時(shí)一個(gè)管理員要能同時(shí)監(jiān)控多臺(tái)服務(wù)器,服務(wù)器性能的監(jiān)控過程是間隔一段時(shí)間獲取一次服務(wù)器的性能參數(shù),間隔時(shí)間太長就失去了實(shí)時(shí)監(jiān)控的效果,間隔時(shí)間一般在5S左右,一段時(shí)間內(nèi)產(chǎn)生的數(shù)據(jù)量比較大,對(duì)中心服務(wù)器上的數(shù)據(jù)庫是一個(gè)考驗(yàn),可靠性非常重要。在客戶端要實(shí)時(shí)顯示服務(wù)器運(yùn)行狀態(tài),較短時(shí)間內(nèi)處理較大量的數(shù)據(jù),軟件的壓力比較大,可靠性是非常重要的。易用性要求本系統(tǒng)目標(biāo)是把管理員從復(fù)雜的服務(wù)器監(jiān)控中解放出來,因此要具有很好的易用性。服務(wù)器的性能的參數(shù)很多,選擇必要的性能參數(shù),直觀的顯示給管理員,便于管理員分析然后調(diào)整服務(wù)器的部署,均衡服務(wù)器是非常必要的。管理員不一定對(duì)服務(wù)器的性能有很深的研究,因此易用性,直觀的顯示給管理員是本系統(tǒng)的要求。效率要求本系統(tǒng)是實(shí)時(shí)監(jiān)控,處理的數(shù)據(jù)量較大,效率很重要,要在間隔時(shí)間內(nèi)把數(shù)據(jù)發(fā)存入中心服務(wù)器的數(shù)據(jù)庫,同時(shí)發(fā)送到客戶端顯示,如果效率很低,則這次處理還未完成,下次數(shù)據(jù)已經(jīng)到來,可能沖掉上一次的數(shù)據(jù),這要求系統(tǒng)的處理速度很快,同時(shí)間隔時(shí)間不能太短。還有隨時(shí)間的推移,中心服務(wù)器上數(shù)據(jù)庫的數(shù)據(jù)量逐漸增大,數(shù)據(jù)量可能太大,占滿磁盤空間,因此需要清除一部分?jǐn)?shù)據(jù),只保存一段時(shí)間內(nèi)的數(shù)據(jù)??梢浦残砸笥捎诒鞠到y(tǒng)中的WindowsInfoMonitor是安裝在每個(gè)服務(wù)器上的,因此要有很好的移植性,便于WindowsInfoMonitor的安裝,運(yùn)行。系統(tǒng)開發(fā)環(huán)境系統(tǒng)的開發(fā)環(huán)境包括軟件環(huán)境和硬件環(huán)境兩部分。是開發(fā)系統(tǒng)必備的環(huán)境。軟件環(huán)境客戶端操作系統(tǒng)為MicrosoftWindows7及以上版本。服務(wù)器端和中心服務(wù)器端的操作系統(tǒng)為WindowsServer2000版本及以上版本。采用Windows系統(tǒng)是因?yàn)楸鞠到y(tǒng)是調(diào)用Sigar工具來獲取服務(wù)器的性能數(shù)據(jù)。數(shù)據(jù)庫操作系統(tǒng)為MySQL5.1。系統(tǒng)開發(fā)語言:JAVA程序設(shè)計(jì)語言。系統(tǒng)開發(fā)工具:MyEclipse8.5及MySQL-Front工具。系統(tǒng)運(yùn)行環(huán)境:JDK1.6。硬件環(huán)境客戶機(jī)配置:建議采用Intel處理器(1.5GHz)以上、內(nèi)存2GB、硬盤100GB以上。中心服務(wù)器配置:建議采用Intel雙核處理器(2.0GHz)、內(nèi)存2GB、硬盤150GB以上。服務(wù)器配置:建議采用Intel處理器(1.5GHz)以上、內(nèi)存2GB、硬盤100GB以上。本章小結(jié)本章先闡述了需求的背景,然后對(duì)系統(tǒng)進(jìn)行了各方面的需求分析,主要包括:系統(tǒng)總體需求分析、系統(tǒng)功能性分析、系統(tǒng)非功能性需求分析。在系統(tǒng)的功能需求分析中對(duì)系統(tǒng)功能進(jìn)行了詳細(xì)化劃分,畫出了用例圖,并描述各個(gè)模塊的功能需求。在非功能性分析中對(duì)系統(tǒng)的可靠性、易用性、效率、可移植性需求進(jìn)行了分析。最后,對(duì)系統(tǒng)的開發(fā)環(huán)境進(jìn)行簡要的介紹。系統(tǒng)設(shè)計(jì)本章將主要是系統(tǒng)的設(shè)計(jì)階段。根據(jù)第三章的系統(tǒng)需求分析主要從系統(tǒng)的總體架構(gòu)、系統(tǒng)的功能模塊劃分、獨(dú)立模塊的設(shè)計(jì)以及數(shù)據(jù)模型的設(shè)計(jì)等方面對(duì)系統(tǒng)進(jìn)行了詳細(xì)設(shè)計(jì)。采用了Web服務(wù)技術(shù),使系統(tǒng)具有了松散耦合性,良好的擴(kuò)展性和可移植性特點(diǎn)。系統(tǒng)概述WindowsInfoMonitor服務(wù)和ShowWinInfo程序組成了服務(wù)器應(yīng)用監(jiān)控系統(tǒng)。WindowsInfoMonitor服務(wù)安裝在服務(wù)器上,獲取服務(wù)器的性能參數(shù)。ShowWinInfo程序是管理員操作端,所有的監(jiān)控命令都是由此發(fā)出,監(jiān)控到的服務(wù)器性能參數(shù)返回到瀏覽器中,在瀏覽器中動(dòng)態(tài)直觀的顯示服務(wù)器當(dāng)前的運(yùn)行狀態(tài)。系統(tǒng)總體架構(gòu)本系統(tǒng)主要實(shí)現(xiàn)服務(wù)器遠(yuǎn)程監(jiān)控功能。在一個(gè)客戶端瀏覽器中可以同時(shí)監(jiān)控多臺(tái)服務(wù)器,服務(wù)器的性能參數(shù)上傳至中心服務(wù)器數(shù)據(jù)庫中,在客戶端可以訪問中心服務(wù)器上的數(shù)據(jù)庫,查詢服務(wù)器的性能參數(shù),并在客戶端動(dòng)態(tài)顯示。系統(tǒng)的總體架構(gòu)圖如下圖4-1。圖4-1系統(tǒng)總體架構(gòu)圖劃分功能模塊本系統(tǒng)實(shí)現(xiàn)的服務(wù)器應(yīng)用監(jiān)控。實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。并非本地監(jiān)控,但同時(shí)利用了sigar采集系統(tǒng)性能參數(shù),因此把服務(wù)器性能參數(shù)獲取放在服務(wù)器上,同時(shí)在中心服務(wù)器上保存服務(wù)器的性能參數(shù)及服務(wù)器信息??蛻舳擞糜诠芾韱T操作,發(fā)送監(jiān)控命令,查看服務(wù)器運(yùn)行狀態(tài)。系統(tǒng)分為兩大模塊WindowsInfoMonitor服務(wù)模塊和ShowWinInfo程序模塊。系統(tǒng)的邏輯模塊圖如圖4-2所示。圖4-2系統(tǒng)的邏輯模塊圖獨(dú)立模塊設(shè)計(jì)WindowsInfoMonitor服務(wù)模塊設(shè)計(jì)WindowsInfoMonitor服務(wù)模塊主要用于獲取服務(wù)器的性能參數(shù),并將服務(wù)器的性能參數(shù)發(fā)送到客戶端程序及存入中心服務(wù)器上的數(shù)據(jù)庫。服務(wù)性能參數(shù)的獲取是通過使用Sigar工具包。服務(wù)器的性能參數(shù)根據(jù)性能對(duì)象分為操作系統(tǒng)、文件存儲(chǔ)、CPU_內(nèi)存、分區(qū)、磁盤I/O、TOP進(jìn)程、網(wǎng)卡流量、登錄用戶、用戶操作。操作系統(tǒng)對(duì)象的主要性能參數(shù)有設(shè)備ID、主機(jī)名稱、操作系統(tǒng)版本、操作系統(tǒng)內(nèi)核、開機(jī)時(shí)間等。文件存儲(chǔ)對(duì)象的主要性能參數(shù)有設(shè)備ID、類別、文件存儲(chǔ)目錄、文件大小等。CPU_內(nèi)存對(duì)象的主要性能參數(shù)有設(shè)備ID、CPU個(gè)數(shù)、CPU主頻、CPU使用率、內(nèi)存總量、內(nèi)存使用數(shù)量、內(nèi)存剩余數(shù)量、內(nèi)存使用率等。分區(qū)對(duì)象的主要性能參數(shù)有設(shè)備ID、磁盤名稱、分區(qū)掛載點(diǎn)、分區(qū)名稱、分區(qū)總量、分區(qū)使用量、分區(qū)剩余量、分區(qū)使用率等。磁盤I/O對(duì)象的主要性能參數(shù)有設(shè)備ID、磁盤名稱、單位時(shí)間讀次數(shù)、單位時(shí)間寫次數(shù)。TOP進(jìn)程對(duì)象的主要性能參數(shù)有設(shè)備ID、進(jìn)程名、所屬用戶名、PID、虛擬內(nèi)存、常駐內(nèi)存、共享內(nèi)存、CPU使用率、運(yùn)行時(shí)間長度等。網(wǎng)卡流量對(duì)象的主要性能參數(shù)有設(shè)備ID、網(wǎng)卡名稱、IP地址、單位時(shí)間流量、單位時(shí)間輸入丟包數(shù)、網(wǎng)卡流入使用率、單位時(shí)間流出量、單位時(shí)間丟包數(shù)、單位時(shí)間輸入錯(cuò)包數(shù)、網(wǎng)卡流出使用率等。登錄用戶對(duì)象的主要性能參數(shù)有設(shè)備ID、登陸用戶名、登陸時(shí)間、客戶端IP。用戶操作對(duì)象的主要性能有登陸用戶名、登陸時(shí)間、客戶端IP、操作命令、退出時(shí)間等。WindowsInfoMonitor服務(wù)模塊的運(yùn)行流程圖如4-3。圖4-3WindowsInfoMonitor服務(wù)模塊的運(yùn)行流程圖ShowWinInfo客戶端程序設(shè)計(jì)ShowWinInfo程序模塊主要是安裝在中心服務(wù)器,由管理員直接使用的模塊。管理員在瀏覽器中選擇要監(jiān)控的服務(wù)器,同時(shí)選擇要監(jiān)控的服務(wù)器性能參數(shù),點(diǎn)擊開始監(jiān)控按鈕,開始監(jiān)控。檢索數(shù)據(jù)庫中的服務(wù)器性能參數(shù),然后顯示在客戶端。管理員可以查看過去一段時(shí)間服務(wù)器的運(yùn)行狀態(tài)。為了方便管理員查看服務(wù)器的運(yùn)行狀態(tài),頁面顯示部分使用Highcharts控件,顯示效果為餅形圖,直方圖線條等。ShowWinInfo程序的運(yùn)行流程圖如圖4-4。圖4-4ShowWinInfo程序的運(yùn)行流程圖數(shù)據(jù)模型設(shè)計(jì)本系統(tǒng)主要是在中心服務(wù)器上需要保存數(shù)據(jù),以便客戶端查詢。需要保存的數(shù)據(jù)包括兩部分:服務(wù)器的信息和服務(wù)器性能參數(shù)。服務(wù)器的性能參數(shù)較多,而且每隔一段時(shí)間就會(huì)增加新的信息,因此采用MySQL數(shù)據(jù)庫來管理服務(wù)器性能參數(shù)數(shù)據(jù)。采用數(shù)據(jù)庫數(shù)據(jù)的插入,查詢就變得非常容易了。由于本系統(tǒng)實(shí)現(xiàn)的是同時(shí)監(jiān)控多臺(tái)服務(wù)器,因此對(duì)應(yīng)于每個(gè)服務(wù)器建立一張表,以服務(wù)器的名字作為ID名。由于服務(wù)器的性能參數(shù)都一樣,所以每個(gè)表的字段都是一樣的。表內(nèi)的字段為服務(wù)器的性能參數(shù)。由于需要采集的信息比較多,所以分類型分別制定表的結(jié)構(gòu)為操作系統(tǒng)(sbcj_czxt)、文件存儲(chǔ)(sbcj_wjcc)、CPU_內(nèi)存(sbcj_cpu_nc)、分區(qū)(sbcj_fq)、磁盤I/O(sbcj_cpio)、TOP進(jìn)程(sbcj_top)、網(wǎng)卡流量(sbcj_wkll)、登錄用戶(sbcj_dlyh)、用戶操作(sbcj_yhcz)、狀態(tài)總結(jié)(sbcj_ztzj)。各表詳細(xì)分布如下:操作系統(tǒng)表詳見表4-1;文件存儲(chǔ)表詳見表4-2;表4-1操作系統(tǒng)(sbcj_czxt)描述名稱類型可空備注(P為主鍵)設(shè)備IDSbidNumber(10)NotNull主鍵主機(jī)名稱ZjmcVarchar(200)Null操作系統(tǒng)版本CzxtbbVarchar(200)Null操作系統(tǒng)內(nèi)核CzxtnhVarchar(200)Null開機(jī)時(shí)間KjsjDateNull當(dāng)前時(shí)間DqsjDateNull是否文件只讀SfwjzdNumber(1)Null采集時(shí)間CjsjDateNotNull入庫時(shí)間RksjDateNotNull表4-2文件存儲(chǔ)(sbcj_wjcc)描述名稱類型可空備注(P為主鍵)設(shè)備IDSbidNumber(10)Notnull主鍵類別LbVarchar(100)Notnull文件存儲(chǔ)目錄WjccmlVarchar(100)Notnull文件大小WjdxNumber(20)Notnull采集時(shí)間CjsjDateNotnull入庫時(shí)間RksjDateNotnull本章小結(jié)本章是對(duì)系統(tǒng)進(jìn)行設(shè)計(jì),先對(duì)系統(tǒng)進(jìn)行了整體性概述,設(shè)計(jì)系統(tǒng)整體架構(gòu),然后進(jìn)行系統(tǒng)功能性模塊化劃分,合理的劃分出兩大模塊,并對(duì)兩大模塊進(jìn)行更一步的設(shè)計(jì),最后,進(jìn)行了詳細(xì)的數(shù)據(jù)庫表模型設(shè)計(jì)。系統(tǒng)實(shí)現(xiàn)本章將主要編程實(shí)現(xiàn)系統(tǒng)。在第四章系統(tǒng)設(shè)計(jì)的基礎(chǔ)上編程實(shí)現(xiàn)系統(tǒng)。按照第四章的功能模塊劃分,本章首先實(shí)現(xiàn)獨(dú)立功能模塊,然后是模塊間的數(shù)據(jù)通信,整個(gè)系統(tǒng)整合運(yùn)行起來。系統(tǒng)實(shí)現(xiàn)首先獨(dú)立功能模塊的實(shí)現(xiàn),然后實(shí)現(xiàn)獨(dú)立功能模塊間的通信,使獨(dú)立功能模塊組合連接起來形成系統(tǒng)。WindowsInfoMonitor服務(wù)實(shí)現(xiàn)WindowsInfoMonitor服務(wù)要實(shí)現(xiàn)的功能主要包括以下幾個(gè)方面:獲取服務(wù)器的性能參數(shù)。向指定數(shù)據(jù)庫持久化服務(wù)器性能參數(shù)獲取服務(wù)器的性能參數(shù)WindowsInfoMonito服務(wù)獲取服務(wù)器的性能參數(shù)是通過調(diào)用Sigar工具來實(shí)現(xiàn)。采集服務(wù)器操作系統(tǒng)信息,可獲取到服務(wù)器主機(jī)名稱,操作系統(tǒng)版本,操作系統(tǒng)內(nèi)核,調(diào)用sigar中g(shù)etenv()方法得到數(shù)據(jù),部分代碼如下://操作系統(tǒng)publicvoidCzxt(){ sbcj_czxtczxtVO=newsbcj_czxt(); //獲取主機(jī)名稱 Map<String,String>map=System.getenv(); StringZjmc=map.get("COMPUTERNAME"); //獲取操作系統(tǒng)版本 Propertiesprops=System.getProperties(); StringCzxtbb=props.getProperty(""); //操作系統(tǒng)內(nèi)核 StringCzxtnh=props.getProperty("os.arch"); czxtVO.setZjmc(Zjmc); czxtVO.setCzxtbb(Czxtbb); czxtVO.setCzxtnh(Czxtnh); dao.addSbcj_czxt(czxtVO); }采集服務(wù)器文件存儲(chǔ)信息,可獲取到盤符類型,文件存儲(chǔ)目錄,文件大小,調(diào)用sigar中g(shù)etFileSystemList()方法得到數(shù)據(jù),部分代碼如下://文件存儲(chǔ)publicvoidWjcc()throwsSigarException{ Sigarsigar=newSigar(); FileSystemfslist[]=sigar.getFileSystemList();for(inti=0;i<fslist.length;i++){ sbcj_wjccwjccVO=newsbcj_wjcc(); FileSystemfs=fslist[i]; //獲取盤符類型 StringLb=fs.getSysTypeName(); //文件存儲(chǔ)目錄 StringWjccml=fs.getDirName(); //文件大小longWjdx=0;if(!(fs.getSysTypeName()).equals("cdrom")){ FileSystemUsageusage=null; usage=sigar.getFileSystemUsage(fs.getDirName());switch(fs.getType()){case0://TYPE_UNKNOWN:未知break;case1://TYPE_NONEbreak;case2: Wjdx=usage.getTotal()/1024; } } wjccVO.setLb(Lb); wjccVO.setWjccml(Wjccml); wjccVO.setWjdx(Wjdx); dao.addSbcj_wjcc(wjccVO); } }采集服務(wù)器CPU內(nèi)存信息,可獲取CPU個(gè)數(shù),CPU主頻,調(diào)用sigar中g(shù)etCpuInfoList()方法得到數(shù)據(jù),部分代碼如下: //CPU內(nèi)存publicvoidCPU_nc()throwsSigarException{ sbcj_cpu_nccpu_ncVO=newsbcj_cpu_nc(); Sigarsigar=newSigar(); CpuInfoinfos[]=sigar.getCpuInfoList(); //獲取CPU個(gè)數(shù)intGs=infos.length; //獲取CPU主頻longzp=0;for(inti=0;i<infos.length;i++){ CpuInfoinfo=infos[i]; zp+=info.getMhz(); } Memmem=sigar.getMem();longZl=mem.getTotal()/1024L/1024;longSysl=mem.getUsed()/1024L/1024;longNcsy=mem.getFree()/1024L/1024;floatNc_Syl=Sysl/Zl; cpu_ncVO.setGs(Gs); cpu_ncVO.setZp(zp+""); cpu_ncVO.setZl(Zl); cpu_ncVO.setSysl(Sysl); cpu_ncVO.setNcsy(Ncsy); cpu_ncVO.setNc_Syl(Nc_Syl); dao.addSbcj_cpu_nc(cpu_ncVO); }采集服務(wù)器磁盤I/O信息,可獲取磁盤名稱,單位時(shí)間讀次數(shù),單位時(shí)間寫次數(shù),調(diào)用sigar中g(shù)etFileSystemList()方法得到數(shù)據(jù),部分代碼如下://磁盤I/OpublicvoidCpio()throwsSigarException{ Sigarsigar=newSigar(); FileSystemfslist[]=sigar.getFileSystemList();for(inti=0;i<fslist.length;i++){ sbcj_cpiocpioVO=newsbcj_cpio(); FileSystemfs=fslist[i]; if(!(fs.getSysTypeName()).equals("cdrom")){ //獲取磁盤名稱 StringCpmc=fs.getDevName(); FileSystemUsageusage=null; usage=sigar.getFileSystemUsage(fs.getDirName()); //獲取單位時(shí)間讀次數(shù)floatDcs=usage.getDiskReads(); //獲取單位時(shí)間寫次數(shù)floatXcs=usage.getDiskWrites(); cpioVO.setCpmc(Cpmc); cpioVO.setDcs(Dcs); cpioVO.setXcs(Xcs); dao.addSbcj_cpio(cpioVO); } } }采集服務(wù)器網(wǎng)卡流量信息,可獲取網(wǎng)卡名稱,IP地址,單位時(shí)間流入量,單位時(shí)間輸入丟包數(shù),單位時(shí)間輸入錯(cuò)包數(shù),單位時(shí)間輸入錯(cuò)包數(shù),單位時(shí)間流出量,單位時(shí)間輸出丟包數(shù),單位時(shí)間輸出錯(cuò)包數(shù),調(diào)用sigar中g(shù)etNetInterfaceList()方法得到數(shù)據(jù),部分代碼如下://網(wǎng)卡流量publicvoidWkll()throwsSigarException{ sbcj_wkllwkllVO=newsbcj_wkll(); Sigarsigar=newSigar(); StringifNames[]=sigar.getNetInterfaceList();for(inti=0;i<ifNames.length;i++){ //獲取網(wǎng)卡名稱 Stringname=ifNames[i]; NetInterfaceConfigifconfig=sigar.getNetInterfaceConfig(name); //獲取IP地址 StringIP=ifconfig.getAddress(); NetInterfaceStatifstat=sigar.getNetInterfaceStat(name); //獲取單位時(shí)間流入量longLrl=ifstat.getRxBytes(); //獲取單位時(shí)間輸入丟包數(shù)longSrdbs=ifstat.getRxDropped(); //獲取單位時(shí)間輸入錯(cuò)包數(shù);longSrcbs=ifstat.getRxErrors(); //獲取單位時(shí)間流出量longLcl=ifstat.getTxBytes(); //獲取單位時(shí)間輸出丟包數(shù)longScdbs=ifstat.getTxDropped(); //獲取單位時(shí)間輸出錯(cuò)包數(shù)longSccbs=ifstat.getTxErrors(); dao.addSbcj_wkll(wkllVO); } }采集服務(wù)器登錄用戶信息,可獲取登陸用戶名,登錄用戶IP,調(diào)用sigar中g(shù)etenv()方法得到數(shù)據(jù),部分代碼如下://登錄用戶publicvoidDlyh()throwsUnknownHostException{ sbcj_dlyhdlyhVO=newsbcj_dlyh();//登錄用戶 Map<String,String>map=System.getenv(); StringYhm=map.get("USERNAME");//獲取用戶名 InetAddressaddr; addr=InetAddress.getLocalHost(); StringIP=addr.getHostAddress();//獲取IP dlyhVO.setYhm(Yhm); dlyhVO.setIP(IP); dao.addSbcj_dlyh(dlyhVO); }采集服務(wù)器用戶操作信息,調(diào)用sigar中g(shù)etenv()方法得到數(shù)據(jù),部分代碼如下://用戶操作publicvoidYhcz()throwsUnknownHostException{ sbcj_yhczyhczVO=newsbcj_yhcz();//登錄用戶 Map<String,String>map=System.getenv(); StringYhm=map.get("USERNAME");//獲取用戶名 InetAddressaddr; addr=InetAddress.getLocalHost(); StringIP=addr.getHostAddress();//獲取IP yhczVO.setYhm(Yhm); yhczVO.setIP(IP); dao.addSbcj_yhcz(yhczVO); }采集服務(wù)器狀態(tài)總結(jié)信息的意義在于前臺(tái)頁面的調(diào)用,前臺(tái)需要的數(shù)據(jù)在后臺(tái)存儲(chǔ)的過程中進(jìn)行處理,處理后存在一張?zhí)囟ǖ谋碇?,?dāng)前臺(tái)需要數(shù)據(jù)時(shí)直接到此表中進(jìn)行讀取,減少前臺(tái)頁面的請(qǐng)求時(shí)間,部分代碼如下://狀態(tài)總結(jié)sbcj_ztzjztzjVO=newsbcj_ztzj(); //01.獲取主機(jī)名稱 Map<String,String>map=System.getenv(); StringZjmc=map.get("COMPUTERNAME"); //02.獲取操作系統(tǒng)版本 Propertiesprops=System.getProperties(); StringCzxtbb=props.getProperty(""); //03.操作系統(tǒng)內(nèi)核 StringCzxtnh=props.getProperty("os.arch"); Sigarsigar=newSigar(); CpuInfoinfos[]=sigar.getCpuInfoList(); //04.獲取CPU個(gè)數(shù)intGs=infos.length; //05.獲取CPU主頻longZp=0;for(inti=0;i<infos.length;i++){ CpuInfoinfo=infos[i]; Zp+=info.getMhz(); } //06.CPU使用率 //07.內(nèi)存總量 Memmem=sigar.getMem();longZl=mem.getTotal()/1024L/1024; //08.內(nèi)存使用數(shù)量longSysl=mem.getUsed()/1024L/1024; //09.內(nèi)存使用率floatNc_Syl=Sysl/Zl; FileSystemfslist[]=sigar.getFileSystemList(); //10.磁盤總量longCpzl=0;當(dāng)服務(wù)器運(yùn)行時(shí)間較長之后,表中無用的數(shù)據(jù)過多會(huì)影響系統(tǒng)的運(yùn)行效率,故此可以設(shè)定自動(dòng)清理表數(shù)據(jù)操作,清除無用的舊數(shù)據(jù),部分代碼如下://清空表操作publicvoidtruncate(){ dao.truncate(); }向指定數(shù)據(jù)庫持久化服務(wù)器性能參數(shù)利用mysql-connector-java--bin.jar可以令JAVA連接MySQL數(shù)據(jù)庫。數(shù)據(jù)庫連接驅(qū)動(dòng)工具類代碼如下:/***MySQL數(shù)據(jù)庫連接驅(qū)動(dòng)類*@author孟令偉**/publicstaticConnectiongetConnection(){ Connectionconn=null;//創(chuàng)建用于連接數(shù)據(jù)庫的Connection對(duì)象try{ Class.forName("com.mysql.jdbc.Driver");//加載Mysql數(shù)據(jù)驅(qū)動(dòng) conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql01","root","root");//創(chuàng)建數(shù)據(jù)連接 }catch(Exceptione){ System.out.println("數(shù)據(jù)庫連接失敗"+e.getMessage()); }returnconn;//返回所建立的數(shù)據(jù)庫連接 }利用上述寫好的工具類可以將在中獲取的數(shù)據(jù)寫入數(shù)據(jù)庫中,具體部分SQL代碼如下:/***設(shè)備數(shù)據(jù)采集——狀態(tài)總結(jié)(sbcj_ztzj)*@paramvo*/ insertintosbcj_ztzj(Sbid,Zjmc,Czxtbb,Czxtnh,Kjsj,Dqsj,Sfwjzd,Gs,Zp,Cpu_Syl,Zl,Sysl,Nc_Syl,Cpzl,Cpsyl,Cp_Syl,Lrl,Lcl,Zhdlyh,Zhdlsj,Rksj)values(001,?,?,?,sysdate(),sysdate(),1,?,?,?,?,?,?,?,?,?,?,?,?,sysdate(),sysdate()); 系統(tǒng)運(yùn)行時(shí)間較長時(shí),數(shù)據(jù)庫內(nèi)存儲(chǔ)數(shù)據(jù)過多,可以執(zhí)行下述方法,清空數(shù)據(jù)庫并保留數(shù)據(jù)庫表結(jié)構(gòu),部分SQL代碼如下:/***執(zhí)行此sql會(huì)將數(shù)據(jù)庫中所有數(shù)據(jù)清空,但保留表結(jié)構(gòu)*/truncatetablesbcj_czxtShowWinInfo客戶端程序的實(shí)現(xiàn)ShowWinInfo客戶端程序?yàn)橹饕褂肑SP技術(shù)實(shí)現(xiàn)的網(wǎng)站。為管理員提供操作界面,并在瀏覽器中顯示服務(wù)器的運(yùn)行狀態(tài)。首先設(shè)計(jì)網(wǎng)站界面,網(wǎng)站頁面主要使用html語言和css進(jìn)行編寫。部分css代碼如下:h1{font-size:20px;color:#4D4D4D;}h3{font-size:16px;color:#3D3D3D;}由于使用CSS控制頁面樣式,使得頁面代碼整齊美觀,耦合性較低,且易讀易改。部分網(wǎng)站頁面代碼如下:<divclass="post"><h2>應(yīng)用技術(shù)</h2><li><em>開發(fā)語言:</em></li><li><em>使用框架:</em></li><li><em>軟件平臺(tái):</em></li><li><em>硬件平臺(tái):</em></li><li><em>開發(fā)工具:<em/></li><li><em>數(shù)據(jù)庫☆:</em></li></div>使用Highcharts插件 Highcharts是一個(gè)純JavaScript編寫的一個(gè)圖標(biāo)庫,能夠很簡單便捷的在web網(wǎng)站或是web應(yīng)用程序添加有交互性的圖像,并且免費(fèi)提供給個(gè)人學(xué)習(xí)、個(gè)人網(wǎng)站和非商業(yè)用途使用。目前Highcharts支持的圖表類型有曲線圖、區(qū)域圖、柱狀圖、餅狀圖、散狀點(diǎn)圖和綜合圖表。Highcharts界面美觀,由于使用JavaScript編寫,所以不需要像Flash和Java那樣需要插件才可以運(yùn)行,而且運(yùn)行速度快。部分使用Highcharts的代碼如下:$(document).ready(function(){chart=newHighcharts.Chart({ chart:{ renderTo:'container3_1', backgroundColor:'#F8F8FF', type:'bar' },title:{ text:'CPU'},xAxis:{ categories:['最大值','平均值'], title:{ text:null } }, yAxis:{ min:0, title:{ text:'', align:'high' }, labels:{ overflow:'justify' }},tooltip:{ formatter:function(){ return''+ +':'+this.y+'%';}},series:[{ name:'百分比', data:[71,37]}] });});整站效果網(wǎng)站整體效果見圖5-1。圖5-1網(wǎng)站整體效果圖 點(diǎn)擊右側(cè)菜單欄,即可進(jìn)行相應(yīng)的操作,如圖5-2所示。圖5-2點(diǎn)擊操作系統(tǒng)效果圖 使用Highcharts插件進(jìn)行數(shù)據(jù)顯示,分別點(diǎn)擊文件存儲(chǔ)和磁盤I/O,具體效果如圖5-3.、圖5-4所示。圖5-3Highcharts插件效果圖一圖5-4Highcharts插件效果圖二使用tablesorter在行業(yè)系統(tǒng)的開發(fā)中,數(shù)據(jù)的排序是免不了的,在c/s開發(fā)中,數(shù)據(jù)的排序比較簡單,而在b/s的開發(fā)中,通常排序是靠與服務(wù)端交互來完成,每一次排序都需要提起一次數(shù)據(jù)。這樣很麻煩,而且對(duì)數(shù)據(jù)庫的壓力也很大?,F(xiàn)在我們使用jquery插件tablesorter來完成靜態(tài)排序,大大減輕了數(shù)據(jù)庫的壓力。部分具體使用代碼:$(function(){ $("table") .tablesorter({debug:true,widgets:['zebra']}) .tablesorterPager({container:$("#pager")}); }); <tableborder="1"id="large"class="tablesorter"> <thead> <trclass="header"> <th>設(shè)備ID</th><th>磁盤名稱</th><th>單位時(shí)間讀次數(shù)</th><th>單位時(shí)間寫次數(shù)</th><th>采集時(shí)間</th><th>入庫時(shí)間</th> </tr> </thead> <tbody> <s:iteratorvalue="listCpio"> <tr> <td><s:propertyvalue="Sbid"/></td> <td><s:propertyvalue="Cpmc"/></td> <td><s:propertyvalue="Dcs"/></td> <td><s:propertyvalue="Xcs"/></td> <td><s:propertyvalue="Cjsj"/></td> <td><s:propertyvalue="Rksj"/></td> </tr> </s:iterator><s:iteratorvalue="listCpio"> <tr> <td><s:propertyvalue="Sbid"/></td> <td><s:propertyvalue="Cpmc"/></td> <td><s:propertyvalue="Dcs"/></td> <td><s:propertyvalue="Xcs"/></td> <td><s:propertyvalue="Cjsj"/></td> <td><s:propertyvalue="Rksj"/></td> </tr> </s:iterator> </tbody> </table>使用tablesorter后的表格效果如圖5-5所示。圖5-5tablesorter插件效果圖一 點(diǎn)擊表頭進(jìn)行排序操作,效果如圖5-6所示。圖5-6tablesorter插件效果圖二使用JSPJSP(JavaServerPages)是由SunMicrosystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。用JSP開發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。使用Ajax為了提高頁面的響應(yīng)速率,選擇使用Ajax技術(shù)。AJAX不是一種新的編程語言,而是一種用于創(chuàng)建更好更快以及交互性更強(qiáng)的Web應(yīng)用程序的技術(shù)。通過AJAX,JavaScript可使用JavaScript的XMLHttpRequest對(duì)象來直接與服務(wù)器進(jìn)行通信。通過這個(gè)對(duì)象,JavaScript可在不重載頁面的情況與Web服務(wù)器交換數(shù)據(jù)。AJAX在瀏覽器與Web服務(wù)器之間使用異步數(shù)據(jù)傳輸(HTTP請(qǐng)求),這樣就可使網(wǎng)頁從服務(wù)器請(qǐng)求少量的信息,而不是整個(gè)頁面。使用StrutsStruts是Apache軟件基金會(huì)(ASF)贊助的一個(gè)開源項(xiàng)目。它最初是Jakarta項(xiàng)目中的一個(gè)子項(xiàng)目,并在2004年3月成為ASF的頂級(jí)項(xiàng)目。它通過采用JavaServlet/JSP技術(shù),實(shí)現(xiàn)了基于JavaEEWeb應(yīng)用的MVC設(shè)計(jì)模式的應(yīng)用框架,是MVC經(jīng)典設(shè)計(jì)模式中的一個(gè)經(jīng)典產(chǎn)品。本章小結(jié)本章主要是進(jìn)行系統(tǒng)的編碼實(shí)現(xiàn)。在實(shí)現(xiàn)的時(shí)候先實(shí)現(xiàn)獨(dú)立功能的模塊,然后再實(shí)現(xiàn)幾個(gè)模塊間通信,將模塊連接起來形成服務(wù)器應(yīng)用監(jiān)控系統(tǒng),并詳細(xì)介紹了所用到的各項(xiàng)技術(shù)要點(diǎn)。結(jié)論 論文以目前網(wǎng)絡(luò)發(fā)展,服務(wù)器集群廣泛應(yīng)用為背景,設(shè)計(jì)實(shí)現(xiàn)服務(wù)器應(yīng)用監(jiān)控系統(tǒng)。小型服務(wù)器集群廣泛應(yīng)用于企業(yè)中,服務(wù)器管理耗費(fèi)大量的人力、物力。雖然市面上有很多服務(wù)器應(yīng)用監(jiān)控系統(tǒng),系統(tǒng)功能很豐富,而系統(tǒng)一般較復(fù)雜,而且很多功能往往都用不到。論文設(shè)計(jì)的服務(wù)器應(yīng)用監(jiān)控系統(tǒng)功能簡單,操作方便,非常適合小型服務(wù)器集群的性能監(jiān)控。只監(jiān)控服務(wù)器的一些重要的性能參數(shù),將復(fù)雜的性能監(jiān)控簡單化。 論文實(shí)現(xiàn)的服務(wù)器應(yīng)用監(jiān)控系統(tǒng)實(shí)現(xiàn)了服務(wù)器的遠(yuǎn)程監(jiān)控,同時(shí)監(jiān)控多臺(tái)服務(wù)器,提供查詢服務(wù)器過去一段時(shí)間運(yùn)行狀態(tài)的功能。系統(tǒng)非常人性化交互性很好。 在本文主要在以下幾個(gè)方面做了一些研究工作:對(duì)服務(wù)器監(jiān)控技術(shù)進(jìn)行了全面的分析和研究。學(xué)了sigar工具的原理和使用方法,服務(wù)器性能指標(biāo),如何分析服務(wù)器的性能參數(shù)。系統(tǒng)采用了Web服務(wù)提供接口供客戶端和服務(wù)器訪問,把大量的業(yè)務(wù)邏輯處理放在Web服務(wù)上,簡化客戶端功能。系統(tǒng)實(shí)現(xiàn)遠(yuǎn)程監(jiān)控,全面了解數(shù)據(jù)庫編程知識(shí)??蛻舳朔?wù)器動(dòng)態(tài)顯示服務(wù)器運(yùn)行狀態(tài)。使用了Highcharts插件顯示圖表數(shù)據(jù),使數(shù)據(jù)更加直觀;使用tablesorter插件進(jìn)行表格美觀和表格前端排序,減輕了對(duì)服務(wù)器的壓力;使用JSP技術(shù)減少數(shù)據(jù)耦合度,增強(qiáng)程序的維護(hù)性和可拓展性;使用Ajax技術(shù)提高頁面響應(yīng)速度,減輕中心服務(wù)器壓力。 受時(shí)間、精力以及本人的研究水平等所限,論文所做的研究還不夠細(xì)致和深入,存在諸多不足,有待更一步的研究、補(bǔ)充和完善。今后主要的研究工作有以下幾個(gè)方面:面向服務(wù)是現(xiàn)在網(wǎng)絡(luò)發(fā)展的潮流,云計(jì)算的SaaS技術(shù)就是使用了面向服務(wù)的技術(shù)。本論文只是用到了Web服務(wù),學(xué)會(huì)了Web服務(wù)器的創(chuàng)建,發(fā)布和訪問。對(duì)于Web服務(wù)體系架構(gòu)的實(shí)現(xiàn)原理沒有做全面深入的研究。系統(tǒng)的界面不是很美觀,不能給人賞心悅目的感覺。需要在未來繼續(xù)加強(qiáng)界面美化的學(xué)習(xí)。好的軟件,優(yōu)美的界面,良好的互動(dòng)性操作是前提。本系統(tǒng)對(duì)服務(wù)器性能沒有做深入研究,只是獲取了服務(wù)器的一些主要性能參數(shù),對(duì)服務(wù)器性能參數(shù)的計(jì)算原理沒有做深入研究。本系統(tǒng)實(shí)現(xiàn)一個(gè)客戶端同時(shí)監(jiān)控多臺(tái)服務(wù)器,考慮到數(shù)據(jù)庫的壓力,服務(wù)器性能參數(shù)獲取的時(shí)間間隔較長。提高數(shù)據(jù)庫性能可以更加細(xì)致的分析服務(wù)器運(yùn)行狀態(tài),分析癱瘓?jiān)?。致謝在指導(dǎo)老師的指導(dǎo)和同學(xué)幫助之下,我順利地完成了本次畢業(yè)設(shè)計(jì)。在畢業(yè)設(shè)計(jì)這段時(shí)間里,我認(rèn)識(shí)到了自己的不足并努力的爭(zhēng)取獨(dú)立完成我的設(shè)計(jì),最終收獲很多,學(xué)到了以前很多沒有學(xué)到的知識(shí),同時(shí)也鞏固了所學(xué)過的知識(shí)。首先,感謝我的指導(dǎo)老師沈泓老師。作為我的導(dǎo)師,無論是在理論還是實(shí)踐方面都給我提了很多寶貴的意見,使我的畢業(yè)設(shè)計(jì)在有條不紊的環(huán)境下進(jìn)行,逐步趨于完善,得以順利完成。其次,我也很感謝在開題檢查時(shí)老師給我提出寶貴意見,還有其他老師在此期間的關(guān)懷和幫助,以及學(xué)院為我提供良好的畢業(yè)設(shè)計(jì)環(huán)境。最后,感謝在畢業(yè)設(shè)計(jì)中為我提供幫助的學(xué)院的老師和同學(xué),以及在畢業(yè)設(shè)計(jì)中被我引用或參考的論著的作者,總之感謝在畢業(yè)設(shè)計(jì)期間給予我?guī)椭乃欣蠋熀屯瑢W(xué),感謝你們對(duì)我的支持。參考文獻(xiàn)1[美]BruceEckel著.陳昊鵬譯.Java編程思想[M].機(jī)械工業(yè)出版社,19942胡艷.軟件工程與標(biāo)準(zhǔn)化.信息技術(shù)與標(biāo)準(zhǔn)化.2004:17-213盛仲彪.JSP中數(shù)據(jù)庫訪問的性能優(yōu)化研究.微型電腦應(yīng)用.2008:16-174董紀(jì)陽.軟件設(shè)計(jì)中的需求分析.電腦知識(shí)與技術(shù).2008:56-575林華靈.基于Struts框架技術(shù)的Web應(yīng)用.中國
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年湘教新版第二冊(cè)生物下冊(cè)月考試卷
- 2025年外研版三年級(jí)起點(diǎn)選擇性必修3歷史上冊(cè)階段測(cè)試試卷
- 2025年粵教新版七年級(jí)生物下冊(cè)月考試卷
- 2025年度農(nóng)貿(mào)場(chǎng)農(nóng)產(chǎn)品質(zhì)量檢測(cè)中心建設(shè)合同4篇
- 2025年金融衍生品交易總合同2篇
- 2025年度牛只運(yùn)輸車輛GPS定位與實(shí)時(shí)監(jiān)控服務(wù)合同4篇
- 2025版人工智能語音助手定制開發(fā)合同4篇
- 房屋出租委托代理合同(2篇)
- 2025年度學(xué)校教室窗簾更換項(xiàng)目承包合同4篇
- 二零二五版人工智能教育平臺(tái)合作合并合同2篇
- 2024版塑料購銷合同范本買賣
- 2024-2025學(xué)年人教新版高二(上)英語寒假作業(yè)(五)
- JJF 2184-2025電子計(jì)價(jià)秤型式評(píng)價(jià)大綱(試行)
- GB/T 44890-2024行政許可工作規(guī)范
- 2024年安徽省中考數(shù)學(xué)試卷含答案
- 2025屆山東省德州市物理高三第一學(xué)期期末調(diào)研模擬試題含解析
- 2024年滬教版一年級(jí)上學(xué)期語文期末復(fù)習(xí)習(xí)題
- 兩人退股協(xié)議書范文合伙人簽字
- 2024版【人教精通版】小學(xué)英語六年級(jí)下冊(cè)全冊(cè)教案
- 汽車噴漆勞務(wù)外包合同范本
- 微項(xiàng)目 探討如何利用工業(yè)廢氣中的二氧化碳合成甲醇-2025年高考化學(xué)選擇性必修第一冊(cè)(魯科版)
評(píng)論
0/150
提交評(píng)論