摘 要: 提出了一種基于移動代理的Lon網絡遠程監控系統的實現方案,介紹了系統的構成和設計技術。
關鍵詞: 遠程監控 LonWorks 移動代理 Aglet
計算機與網絡技術的迅速發展,極大地促進了現代制造業的發展。各種基于網絡技術和分布式計算機技術的系統大量應用于工業生產,衍生了許多新的生產方式和制造模式,如網絡制造、聯盟企業和全球制造等。目前,以Internet和現場總線為應用背景的基于B/S或C/S計算模式的實時遠程監控系統是研究和實現遠程監控與故障診斷的熱點,并已得到廣泛應用。這種在遠程監控主機和本地監控系統之間基于B/S或C/S的遠程監控系統,比較適合穩定和快速響應的網絡連接環境。但是基于B/S或C/S的遠程監控系統的流程和功能是固定實現的,缺少可擴展性、靈活性和智能性。為此,本文提出了一種LonWorks與Internet集成架構網絡環境下的基于移動代理(MA)的遠程監控系統的實現方案。
移動代理是一個具有移動性、自治性、并行性和交互性等特點的智能體。它能夠攜帶著自己的代碼、數據及執行狀態,在網絡系統中自主地從一臺主機移動到另一臺主機。在移動過程中,可以根據要求掛起其運行,然后移動到網絡的其他節點重新開始或繼續執行,最后返回結果和消息。移動代理的這些特點和功能,使得移動代理計算模型具有很大的動態性、智能性、靈活性、高效性和可靠性[2]。因此,使用移動代理機制構造的遠程監控系統中,在遠程監控主機和本地監控系統之間采用移動代理計算模式,利用其高智能性和遠程數據處理能力,不需要在遠程監控主機和本地監控系統間傳輸大量的原始數據,使監控和數據分析都通過移動代理在監控系統本地完成,從而降低了對Internet帶寬和可靠性的依賴,提高了系統的遠程實時交互性及運行的可靠性和穩定性,同時可為系統提供更好的靈活性、可擴充性和適應性。
1 系統的設計與實現
1.1 系統結構與實現平臺
系統由LON網絡層、本地監控層和基于移動代理計算模型的遠程監控層三層結構組成,如圖1所示。
LonWorks[3]總線控制網絡由與通信介質相連的設備節點和LonWorks網絡服務器(主機節點)組成。設備節點實現現場設備信號的采集、狀態監測、實時控制以及節點間的數據通信。LonWorks網絡服務器安裝了PCLTA-10 Lon網絡接口卡和Lonmaker for Windows、 LonManager DDE Server等Lon網絡管理和服務工具軟件。Lonmaker for Windows實現設備節點和網絡變量(NV)的管理,LonManager DDE Server以網絡變量的形式實現本地監控層與設備節點的實時數據通信。
本地監控層由本地局域網(Intranet)及互連的本地監控主機和數據庫服務器組成。本地監控主機同時運行了采用VB6.0開發的監控應用程序和LonWorks網絡服務器,實現了本地的生產過程的監控管理。VB監控應用程序利用DDE編程技術通過設置數據綁定控件的若干Link屬性與LonManager DDE Server通信,獲取Lon網絡的各設備節點的網絡輸出變量信息,并寫入MySQL數據庫;同時,通過對MySQL數據庫的訪問,獲取控制數據,并以輸入網絡變量的形式通過LonManager DDE Server和KinkPoke方法傳遞給Lon網絡各節點的Neuron C控制程序,執行數據項的更新和設備控制。
架構于Internet之上的網絡采用移動代理計算模型的移動代理服務器和遠程監控主機二個協作的代理子系統構成了遠程監控層。移動代理服務器和遠程監控主機的移動代理運行平臺采用IBM公司用純Java開發的Aglets,它們均安裝了IBM Aglets2.0.1代理平臺軟件包和JDK1.3.1軟件包,采用多Agent協同的Master-Slave代理計算模式。IBM Aglets2.0.1的可視化的Aglet平臺和由7個包組成的對象模型為Aglet提供了執行任務的環境和用戶開發Aglet代碼的環境。
1.2 代理系統的組成及分類
系統移動代理計算由遠程監控主機代理子系統和移動代理服務器代理子系統組成,采用多Agent協同的工作方式,如圖1所示。系統中的代理分為二類:一類為負責代理系統管理及服務的靜態代理,另一類為負責執行遠程監控任務的移動代理。
代理的描述形式如下:
<Agent>∷=(<標識描述域>,<功能描述域>,<狀態描述域>,<信息描述域>)
標識描述域:Agent的惟一標識號(Agent ID),企業信息(企業號、監控權限等)等。
功能描述域:Agent執行任務的能力和功能等。
狀態描述域:Agent的執行狀態,即工作或休眠。
信息描述域:Agent創建的位置、權限和所在的移動代理系統MAS。
遠程監控主機代理子系統使用Master-Slave計算模式。MasterAgent(HManagerAgent)為靜態代理,實現代理系統管理職能;SlaveAgent為由MasterAgent創建的移動代理,它被委派到移動代理服務器執行監控任務并返回結果或消息。移動代理服務器代理子系統為SlaveAgent等提供代理執行環境,并根據遠程監控主機或其他移動代理服務器的請求或協作,完成相應代理服務和響應職能。其代理由事件代理和管理代理等靜態代理組成。遠程監控主機和移動代理服務器的信息交換是通過Agent間的基于消息傳遞方式的傳遞消息對象來實現的。下面介紹根據系統遠程監控功能的需要而設計的遠程監控主機和移動代理服務器的主要代理的功能和分類。
(1)主機管理代理(HManagerAgent)。執行系統管理任務的靜態代理。它負責啟動系統代理計算,管理SlaveAgent及生成主圖形用戶界面和監控圖形界面。它根據用戶的輸入請求、執行環境或其他Agent傳遞消息對象的信息,通過創建和加載遠端移動代理服務器的SManagerAgent啟動遠端移動代理服務器的代理計算;同時,根據用戶和系統的授權,創建、加載SlaveAgent中相應的移動代理,啟動系統各個遠程監控功能域,為移動代理提供執行任務的參數和指派相應的權限,并委派移動代理至遠端移動代理服務器執行任務。同時,SlaveAgent返回的執行結果及遠端Agent傳遞來的消息對象均由HManagerAgent負責接收、顯示和處理。
(2)初始化代理(InitAgent)。執行系統初始化任務的移動代理。它將HManagerAgent的Agent ID碼、Context地址和用戶設置的數據刷新率等系統初始化數據傳遞給遠端移動代理服務器的SManagerAgent;同時,將SManagerAgent的Agent ID碼和通過對MySQL數據庫的訪問所收集到的由各本地監控主機存入信息數據庫的設備節點和網絡變量等信息返回給HManagerAgent。HManagerAgent根據返回的信息生成監控圖形界面。
(3)監控代理(MoniAgent)。執行實時監控任務的移動代理。系統包含有多個監控代理,每一個監控代理執行一項監控任務。MoniAgent在遠端移動代理服務器端,通過對MySQL數據庫的訪問所獲取的現場設備節點運行狀態的實時和歷史數據,根據監控規則和算法,實現其控制函數運算,并將運算結果的控制數據通過本地監控主機傳遞給節點控制程序,實現對節點的控制。同時,MoniAgent還要將執行結果返回給遠程監控主機的HManagerAgent處理,以實現高層的決策。
(4)巡視代理(ItinAgent)。執行設備節點信息搜尋任務的移動代理。它不斷地在各遠端移動代理服務器間進行巡視,巡視到某一個地點,通過對MySQL數據庫的訪問,動態地獲取整個系統的設備節點信息,并向HManagerAgent報告。HManagerAgent利用該信息自動或在用戶的管理下創建、加載或清除相應代理,完成設備節點和監控任務的動態加入或刪除。
(5)協作代理(CoopAgent)。執行協作任務的移動代理。HManagerAgent通過向各遠端移動代理服務器發送CoopAgent,由CoopAgent在各遠端移動代理服務器間實現基于消息傳遞方式的信息交換,自主制定協作工作計劃,實現共同的監控目標。
(6)服務器管理代理(SManagerAgent)。負責接收、顯示和處理HManagerAgent傳遞的消息對象,生成圖形用戶界面以及創建、加載Up_eventAgent和Al_eventAgent,并為之提供監控數據刷新率及HManagerAgent的Agent ID碼和Context地址等執行參數的靜態代理。
(7)數據刷新事件代理(Up_eventAgent)。由SManagerAgent創建、加載的靜態代理。它根據監控數據刷新率參數,定期訪問MySQL數據庫,獲取現場設備節點運行狀態的數據信息,并通過消息對象傳送給HManagerAgent,實時刷新各設備節點信息。
(8)數據報警事件代理(Al_eventAgent)。由SManagerAgent創建、加載的靜態代理。它通過消息對象將報警信息實時傳送給HManagerAgent,實現遠程實時故障報警。
這幾類職能代理完成了系統主要的職能,并為其他代理提供了基本服務。此外,根據系統應用的需要,可創建新的職能代理,并通過代理間的通信實現特定的服務。
1.3 系統工作流程
系統工作流程如圖2所示。
系統的工作過程為:
(1)啟動HManagerAgent,并通過主圖形用戶界面輸入遠端目標移動代理服務器地址、數據刷新率及企業信息等初始化數據。HManagerAgent根據該地址創建和加載遠端移動代理服務器的SManagerAgent,啟動遠端移動代理服務器的代理計算,并加載和發送InitAgent至各遠端目標移動代理服務器執行初始化任務,啟動代理計算。同時,InitAgent將SManagerAgent的Agent ID碼和通過對MySQL數據庫的訪問所收集到的由各本地監控主機存入數據庫的設備節點和網絡變量等信息返回給HManagerAgent。待InitAgent返回結果后,HManagerAgent根據返回的信息生成監控圖形界面,并向SManagerAgent發送服務請求消息對象。
(2)VB監控應用程序實現本地生產過程的監控管理,它通過 LonManager DDE Server獲取Lon網絡的各設備節點的網絡輸出變量信息,并寫入MySQL數據庫。
(3)SManagerAgent接收到服務請求消息對象后,加載并啟動Up_eventAgent和Al_eventAgent。Up_eventAgent定期檢索MySQL數據庫,獲取現場設備節點運行狀態信息和網絡輸出變量信息,并通過消息對象傳送給HManagerAgent,遠程實時刷新各節點設備信息。若VB獲取的設備信息為報警數據,則VB還必須實時地將數據復制到移動代理服務器的系統共享剪貼板。Al_eventAgent通過剪貼板可實時地粘貼報警數據,并將報警數據實時傳送給HManagerAgent,實現遠程實時數據報警。
(4)當遠程監控主機對現場設備實施控制時,HManagerAgent根據用戶的輸入請求、執行環境或其他Agent傳遞的消息對象的信息,啟動并派遣相應的MoniAgent 或CoopAgent至移動代理服務器。Agent讀取MySQL數據庫中被控設備節點的實時和歷史數據信息,實現其控制函數運算,并將運算結果的控制數據寫入MySQL數據庫。VB監控應用程序讀取該數據項,并將該數據以輸入網絡變量的形式通過LonManager DDE Server和KinkPoke方法傳遞給Lon網絡各節點的Neuron C控制程序,執行數據項的更新和設備控制。
1.4 系統代理代碼的設計
系統代理代碼是基于IBM公司的Aglets設計的。設計中定義并創建了MasterAglet、SlaveAglet和EventAglet三個抽象代理類。系統中各代理均通過繼承該三個類,并按照前面定制的各代理功能,在繼承的各代理子類對象中覆蓋其中相應的方法,完成代理代碼的編寫。
2 系統的應用與結論
目前,本系統在某機床零件加工遠程流程監控系統中實現了應用。實踐表明,在實時性和刷新率均要求很高的情況下,系統具有良好的控制效果和運行的穩定性,取得了預期的效果。
該方案對大范圍的協作生產過程的遠程監控應用顯示了良好的應用前景。
參考文獻
1 Wijata Y I,Nichaus D,Frost V S.A scalable agent-based network measurement infrastructure.IEEE Communications Magazine,2000;(9)
2 Fuggetta A,Picco G,Vigna G.Understanding code mobility IEEE Trans on Software Engineering,1998;24(5)
3 楊育紅.LON網絡控制技術及應用.西安:西安電子科技大 學出版社,1999
4 Danny B,Mitsurn O.Mobile Agents with Java:The Aglet API.World Wide Web Journal,1998;(3)