亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于RMI的AIX進(jìn)程監(jiān)控系統(tǒng)

        2013-08-20 04:58:52王飛飛楊好利
        電子設(shè)計(jì)工程 2013年21期
        關(guān)鍵詞:配置文件進(jìn)程客戶端

        王飛飛,楊好利

        (平頂山學(xué)院 河南 平頂山 467000)

        基于RMI的AIX進(jìn)程監(jiān)控系統(tǒng)是一個(gè)對(duì)進(jìn)程資源進(jìn)行遠(yuǎn)程管理的應(yīng)用程序。利用Windows下客戶端連接到AIX服務(wù)器,管理、控制AIX下的進(jìn)程資源,不僅有效地提高了系統(tǒng)運(yùn)行的穩(wěn)健性,并且極大程度降低對(duì)系統(tǒng)操作人員的技術(shù)要求[1-3]。本系統(tǒng)完成了在Windows下操作AIX服務(wù)器進(jìn)程的功能,實(shí)現(xiàn)了對(duì)服務(wù)器進(jìn)程啟動(dòng)、停止、監(jiān)控、實(shí)時(shí)顯示進(jìn)程信息的功能。通過(guò)服務(wù)器端的配置文件,可以靈活的控制系統(tǒng)監(jiān)控的范圍,更好的適應(yīng)用戶的需求。

        1 系統(tǒng)分析

        1.1 系統(tǒng)架構(gòu)

        AIX進(jìn)程監(jiān)控主要實(shí)現(xiàn)對(duì)AIX服務(wù)器上運(yùn)行的指定進(jìn)程的遠(yuǎn)程監(jiān)控和管理。本系統(tǒng)采用一對(duì)多的C/S模式,支持多客戶端登錄。其中,客戶端運(yùn)行在Windows上,主要負(fù)責(zé)接收并顯示服務(wù)端發(fā)送的進(jìn)程運(yùn)行信息,并且向服務(wù)器發(fā)送用戶的啟動(dòng)進(jìn)程、終止進(jìn)程請(qǐng)求、修改配置信息的請(qǐng)求;服務(wù)端運(yùn)行在AIX服務(wù)器上,負(fù)責(zé)定時(shí)獲取進(jìn)程運(yùn)行信息,響應(yīng)客戶端的請(qǐng)求;客戶端和服務(wù)器端采用RMI機(jī)制進(jìn)行消息通信[4-5]。系統(tǒng)網(wǎng)絡(luò)架構(gòu)圖如圖1所示。

        1.2 功能分析

        服務(wù)器端,由操作員啟動(dòng)進(jìn)程監(jiān)控系統(tǒng)或是在AIX系統(tǒng)啟動(dòng)時(shí)自動(dòng)啟動(dòng)系統(tǒng)。啟動(dòng)之后實(shí)時(shí)的對(duì)進(jìn)程進(jìn)行監(jiān)控和更新進(jìn)程信息??蛻舳丝梢哉{(diào)用系統(tǒng)中的遠(yuǎn)程方法實(shí)現(xiàn)啟動(dòng)進(jìn)程、啟動(dòng)所有進(jìn)程、結(jié)束進(jìn)程、結(jié)束所有進(jìn)程、配置管理、獲取進(jìn)程信息的功能。

        圖1 系統(tǒng)網(wǎng)絡(luò)架構(gòu)圖Fig.1 Systems network architecture figure

        在客戶端,由操作員啟動(dòng)客戶端,客戶端連接到服務(wù)器獲得一個(gè)遠(yuǎn)程對(duì)象,然后啟動(dòng)一個(gè)進(jìn)程,以設(shè)置的時(shí)間間隔從服務(wù)器上讀取進(jìn)程信息,刷新界面上的進(jìn)程信息列表。操作員可以在界面上執(zhí)行啟動(dòng)進(jìn)程,啟動(dòng)所有進(jìn)程,結(jié)束進(jìn)程,結(jié)束所有進(jìn)程管理配置文件功能。這些功能在服務(wù)器上實(shí)現(xiàn),并提供相應(yīng)的服務(wù),供客戶端調(diào)用??蛻舳擞美鐖D2所示。

        圖2 客戶端用例Fig.2 Client use case

        1.3 流程分析

        系統(tǒng)流程分為客戶端流程和服務(wù)器流程。

        1.3.1 客戶端流程

        在客戶端界面上提供的功能為:

        1)啟動(dòng)進(jìn)程操作:如果在列表中的進(jìn)程沒(méi)有被啟動(dòng),則可以啟動(dòng)進(jìn)程。

        2)結(jié)束進(jìn)程操作:結(jié)束指定的進(jìn)程,如果進(jìn)程已經(jīng)結(jié)束,則不執(zhí)行任何操作。

        3)顯示進(jìn)程信息,顯示服務(wù)器上正在運(yùn)行的進(jìn)程信息。進(jìn)程通過(guò)遠(yuǎn)程方法開(kāi)啟一個(gè)新的線程,一直更新配置文件中指定的進(jìn)程。

        為完成以上功能,進(jìn)一步確定系統(tǒng)流程如圖3所示。用戶開(kāi)啟客戶端后首先輸入服務(wù)器的IP和PORT連接到服務(wù)器,并查找遠(yuǎn)程對(duì)象,取得遠(yuǎn)程對(duì)象后,利用遠(yuǎn)程方法調(diào)用來(lái)實(shí)現(xiàn)客戶端管理服務(wù)器端的功能。

        圖3 客戶端處理流程Fig.3 Client processing flow

        1.3.2 服務(wù)器流程

        監(jiān)控程序啟動(dòng)后首先從配置文件讀取進(jìn)程配置信息,確定需要監(jiān)控的可執(zhí)行程序所在路徑、啟動(dòng)命令及啟動(dòng)失敗后的進(jìn)程最大重啟次數(shù)。然后創(chuàng)建可以供客戶端調(diào)用的遠(yuǎn)程對(duì)象并注冊(cè)到RMI遠(yuǎn)程對(duì)象服務(wù)器中等待客戶端調(diào)用,當(dāng)客戶端發(fā)送一個(gè)調(diào)用請(qǐng)求時(shí),服務(wù)器會(huì)執(zhí)行不同方法,然后返回執(zhí)行的結(jié)果[6-7]。執(zhí)行簡(jiǎn)單流程如圖4所示。

        圖4 服務(wù)器流程Fig.4 Server processing flow

        2 系統(tǒng)實(shí)現(xiàn)

        2.1 RMI通信接口及數(shù)據(jù)規(guī)定

        在遠(yuǎn)程對(duì)象當(dāng)中,客戶端程序只能調(diào)用公開(kāi)的方法,在服務(wù)器的實(shí)現(xiàn)中,具體實(shí)現(xiàn)這些接口。來(lái)完成特定的功能。然后根據(jù)程序利用Java的系統(tǒng)工具來(lái)生成樁 (Stub)和框架(Skeleton)文件,以便注冊(cè)到RMI命名服務(wù),它允許客戶端去發(fā)現(xiàn)這個(gè)遠(yuǎn)程服務(wù)。在客戶端也應(yīng)該存在相應(yīng)的樁(Stub)和框架(Skeleton)文件[8]。

        RMI接口的說(shuō)明,服務(wù)器首先定義遠(yuǎn)程的接口,公開(kāi)這些接口可以讓客戶端來(lái)調(diào)用,公開(kāi)接口說(shuō)明了服務(wù)器實(shí)現(xiàn)的功能和提供的服務(wù),客戶端只能訪問(wèn)接口中指定的功能和服務(wù)。根據(jù)程序需求和功能的定義,在程序中設(shè)計(jì)接口主要分為進(jìn)程監(jiān)控和配置管理兩部分[9-10]。

        2.1.1 RMI接口定義

        1)進(jìn)程監(jiān)控接口

        進(jìn)程監(jiān)控接口完成對(duì)進(jìn)程的操作和進(jìn)程信息的獲取的進(jìn)行說(shuō)明,簡(jiǎn)要說(shuō)明如下:

        ①查詢進(jìn)程的信息.

        ②根據(jù)進(jìn)程名結(jié)束進(jìn)程,開(kāi)啟進(jìn)程

        ③ 開(kāi)啟所有進(jìn)程,根據(jù)進(jìn)程名結(jié)束所有進(jìn)程,根據(jù)進(jìn)程名啟動(dòng)所有進(jìn)程。

        2)配置文件管理接口

        接口主要包括對(duì)進(jìn)程監(jiān)控配置文件的讀取和設(shè)置,管理對(duì)各個(gè)進(jìn)程是否監(jiān)控以及進(jìn)程不正常時(shí)重新啟動(dòng)的次數(shù)。

        2.1.2 進(jìn)程信息結(jié)構(gòu)

        實(shí)時(shí)監(jiān)控進(jìn)程,在獲得進(jìn)程的信息后把數(shù)據(jù)放入一二維數(shù)組中,服務(wù)器端開(kāi)啟一服務(wù)器進(jìn)程,客戶端可以通過(guò)服務(wù)器提供的服務(wù)讀取進(jìn)程信息,顯示在客戶端。在此數(shù)組中共有13列,各列的定義為:進(jìn)程名,進(jìn)程號(hào)(PID),參數(shù)CPU,參數(shù)為CPU利用率或者稱為%CPU參數(shù)為CPU利用率或者稱為%CPU,進(jìn)程的CPU占用時(shí)間,啟動(dòng)時(shí)間,內(nèi)存利用率,物理內(nèi)存使用情況,虛擬內(nèi)存使用情況,用戶名,進(jìn)程狀態(tài),是否自動(dòng)重啟,進(jìn)程重啟次數(shù)。

        2.2 功能模塊說(shuō)明

        2.2.1 實(shí)時(shí)監(jiān)控

        實(shí)時(shí)監(jiān)控是系統(tǒng)的主要功能。實(shí)現(xiàn)進(jìn)程監(jiān)控,如果處于監(jiān)控狀態(tài)的進(jìn)程異常終止,并且同時(shí)重啟次數(shù)沒(méi)有超過(guò)指定配置,則實(shí)時(shí)監(jiān)控線程會(huì)自動(dòng)啟動(dòng)該進(jìn)程,且在該過(guò)程中實(shí)時(shí)更新進(jìn)程信息,以便客戶端查詢顯示。監(jiān)控算法流程:實(shí)時(shí)監(jiān)控進(jìn)程以固定時(shí)間間隔運(yùn)行,在一次操作開(kāi)始,首先調(diào)用shell腳本獲取所有進(jìn)程的信息列表(ps表)。從ps列表中讀取一條信息,在進(jìn)程保存的進(jìn)程信息列表(data表)查詢匹配項(xiàng)(具有同樣的pid)。如果匹配,判斷信息是否完整,如果完整則更新data列表,否則進(jìn)程信息獲得異常,置進(jìn)程信息為“-”。如果查找data列表直至結(jié)尾沒(méi)有找到,則從ps列表中讀取下一條數(shù)據(jù)進(jìn)行匹配操作,直到ps列表到達(dá)結(jié)尾或data表被完全更新。

        在上一個(gè)操作結(jié)束后判斷data表是否完全被更新。如果是,則說(shuō)明程序全部運(yùn)行正常,否則說(shuō)明某些進(jìn)程不存在。如果有進(jìn)程不存在,則判斷標(biāo)志位是否為“T”。如果是,再判斷重啟次數(shù)是否大于配置文件指定的最大重啟次數(shù),如果不大于則啟動(dòng)進(jìn)程,并設(shè)置重啟次數(shù)=重啟次數(shù)+1。如果標(biāo)志位為“F”或是重啟次數(shù)大于配置文件指定的最大重啟次數(shù)則無(wú)任何操作。重復(fù)處理直到所有data表中的數(shù)據(jù)處理完畢。

        經(jīng)過(guò)如上操作,則完成了一次實(shí)時(shí)監(jiān)控的進(jìn)程掃描和進(jìn)程信息更新操作。

        2.2.2 啟動(dòng)功能

        系統(tǒng)利用Java系統(tǒng)的ProcessBuilder來(lái)啟動(dòng)進(jìn)程,啟動(dòng)成功,則更新監(jiān)控列表中的進(jìn)程標(biāo)志和進(jìn)程PID部分,以便在監(jiān)控和操作中使用。在啟動(dòng)時(shí)置進(jìn)程監(jiān)控標(biāo)志位為“T”,在服務(wù)器的實(shí)時(shí)監(jiān)控中對(duì)其進(jìn)行監(jiān)控,同時(shí)復(fù)位進(jìn)程重啟次數(shù)為0。啟動(dòng)完畢,在日志文件中記錄。在啟動(dòng)所有的進(jìn)程操作中,創(chuàng)建多個(gè)線程來(lái)調(diào)用啟動(dòng)單個(gè)進(jìn)程的方法來(lái)啟動(dòng)所有的進(jìn)程,使用線程提高程序的效率。功能核心代碼如下:

        1)創(chuàng)建一個(gè)ProcessBuilder對(duì)象,參數(shù)為要啟動(dòng)的進(jìn)程命令行啟動(dòng)命令。

        2)設(shè)置啟動(dòng)的目錄,在配置文件中指定為taskPath。

        3)調(diào)用 ProcessBuilder對(duì)象的 start()啟動(dòng)程序,生成一Process對(duì)象。

        4)獲得Process對(duì)象的 InputStream,讀取被啟動(dòng)進(jìn)程的輸出。默認(rèn)第一行為進(jìn)程的pid,在進(jìn)程列表data表中記錄進(jìn)程pid。

        5)設(shè)置進(jìn)程的標(biāo)志位為“T”,重置重啟次數(shù)為0。

        6)以上操作完成了啟動(dòng)一個(gè)進(jìn)程的過(guò)程。如果啟動(dòng)讀不到進(jìn)程的信息則由實(shí)時(shí)監(jiān)控程序通過(guò)進(jìn)程名來(lái)查找進(jìn)程pid。

        2.2.3 結(jié)束功能

        采用系統(tǒng)的底層“kill-9 pid”命令來(lái)結(jié)束一個(gè)進(jìn)程,結(jié)束進(jìn)程的流程和啟動(dòng)進(jìn)程相似,只在開(kāi)始構(gòu)造ProcessBuilder時(shí)傳遞不同的參數(shù)。結(jié)束的同時(shí),設(shè)置結(jié)束進(jìn)程的標(biāo)志位為“F”,表示此進(jìn)程正常結(jié)束,實(shí)時(shí)監(jiān)控進(jìn)程不再對(duì)其進(jìn)行監(jiān)控,不會(huì)因?yàn)檫M(jìn)程的結(jié)束而重新啟動(dòng)此進(jìn)程,并重置進(jìn)程重啟次數(shù)為0。在啟動(dòng)功能和結(jié)束功能的操作過(guò)程中都設(shè)置系統(tǒng)的互斥信號(hào)量,保證監(jiān)控操作和啟動(dòng)操作,結(jié)束操作之間不會(huì)有沖突的發(fā)生。

        2.2.4 配置管理

        為提高程序的可移植性和可擴(kuò)展性,本系統(tǒng)將進(jìn)程監(jiān)控的相關(guān)信息保存在服務(wù)端的Montior.conf配置文件中。該配置文件中包含子系統(tǒng)的安裝目錄和進(jìn)程名,進(jìn)程啟動(dòng)命令以及是否監(jiān)控,同時(shí)定義了子系統(tǒng)不正常時(shí)的重啟次數(shù)。

        為了提高程序的可維護(hù)性,和靈活性。系統(tǒng)在客戶端為用戶提供了圖形化的配置管理功能,該功能利用RMI遠(yuǎn)程方法調(diào)用實(shí)現(xiàn)對(duì)遠(yuǎn)程服務(wù)器上配置文件的修改。

        3 結(jié)束語(yǔ)

        AIX進(jìn)程監(jiān)控系統(tǒng)是基于C/S架構(gòu)的應(yīng)用程序,主要實(shí)現(xiàn)用戶啟動(dòng)單個(gè)或多個(gè)進(jìn)程、結(jié)束單個(gè)或多個(gè)進(jìn)程、監(jiān)控進(jìn)程的功能,程序具有很好的配置性和可擴(kuò)展性,系統(tǒng)運(yùn)行穩(wěn)健性得到提高,同時(shí)降低了對(duì)系統(tǒng)操作人員的技術(shù)要求,但由于不同的系統(tǒng)采用的ps有不同的實(shí)現(xiàn),程序的可移植性受到一定限制。

        [1](美)Paul Love,Joe MerLino,等著.Unix入門(mén)經(jīng)典[M].張楚雄,許文昭,譯.北京:清華大學(xué)出版社,2006.

        [2](美)Ellie Quigley,著.Unix Shell范例精解[M].3版.劉洪濤譯.北京:清華大學(xué)出版社,2004.

        [3](美)Amir Afzal,著.Unix初級(jí)教程[M].4版.李石君,曾平,陳愛(ài)莉,等譯.北京:電子工業(yè)出版社,2007.

        [4]蔡敏,徐慧慧,黃炳強(qiáng),編著.UML基礎(chǔ)與Rose建模教程 [M].北京:人民郵電出版社,2006.

        [5]王少鋒.UML面向?qū)ο蠹夹g(shù)教程[M].北京:清華大學(xué)出版社,2004.

        [6]劉楠,金護(hù)平.RMI分布式對(duì)象技術(shù)的研究與應(yīng)用[J].航空計(jì)算技術(shù),2009,39(01):142-145.

        LIU Nan,JIN Hu-ping.RMI distributed object technology researchandapplication[J].AeronauticalComputingTechnique,2009,39(1):142-145.

        [7]楊文嘉,夏士雄.基于Java RMI對(duì)等交互模型的研究與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2008,24(3):194-195,155.

        YANG Wen-jia,Xia Shi-xiong.Research and realization of P2P interaction model based on Java RMI[J].Microcomputer Information,2008,24(3):194-195,155.

        [8]高雅俠,鄒海榮.基于Java的RMI技術(shù)的研究與應(yīng)用[J].計(jì)算機(jī)與數(shù)字工程,2011,39(8):174-177.

        GAO Ya-xia,ZOU Hai-rong.Research and application of RMI technology based on java[J].Computer& Digital Engineering,2011,39(8):174-177.

        [9]呂鋒,鮑剛.基于客戶端緩存提高Java RMI性能的方法[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(17):4450-4452,4457.

        LV Feng,BAO Gang.Method for Java RMI based on client cache with improved performance[J].Computer Engineering and Design,2008,29(17):4450-4452,4457.

        [10](美)Brett Spell著.Java高級(jí)教程[M].2版.董梁,劉艷,譯.北京:清華大學(xué)出版社,2006.

        猜你喜歡
        配置文件進(jìn)程客戶端
        提示用戶配置文件錯(cuò)誤 這樣解決
        搭建簡(jiǎn)單的Kubernetes集群
        互不干涉混用Chromium Edge
        債券市場(chǎng)對(duì)外開(kāi)放的進(jìn)程與展望
        忘記ESXi主機(jī)root密碼怎么辦
        縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
        孵化垂直頻道:新聞客戶端新策略
        基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
        社會(huì)進(jìn)程中的新聞學(xué)探尋
        我國(guó)高等教育改革進(jìn)程與反思
        亚洲av一二三区成人影片| av网站入口在线免费观看| 日本女优免费一区二区三区| 久久久国产精品无码免费专区| 人妻无码一区二区视频| 伊人色网站| 国产麻豆一区二区三区在线播放| 中文字幕亚洲乱码熟女1区| 亚洲午夜经典一区二区日韩| 国产精品国产三级国产专播下| 东北老女人高潮大喊舒服死了| 国产高清在线精品免费| 日本一区二区在线播放观看| 国产91色综合久久高清| 精品国产一二三产品区别在哪| 国产一国产一级新婚之夜| 久久精品国产精品亚洲婷婷| 国产一区二区自拍刺激在线观看 | 亚洲男人的天堂网站| 亚洲精品老司机在线观看 | 亚洲av天堂一区二区| 日韩av毛片在线观看| 国产精品r级最新在线观看| 久久狠狠第一麻豆婷婷天天| 日韩人妖一区二区三区| 日本道色综合久久影院| 青青草原综合久久大伊人| 午夜免费福利一区二区无码AV| 日韩有码中文字幕av| 国产偷国产偷亚洲高清视频| 亚洲av成人噜噜无码网站| 久久久久99精品成人片试看| 国产三级自拍视频在线| 丝袜美腿在线观看一区| 人妻丰满熟妇av无码片| 亚洲AV无码国产精品久久l | 久久久久久夜精品精品免费啦 | 国产91精品清纯白嫩| 奇米影视色777四色在线首页| 色一情一区二| 国产麻豆精品久久一二三|