顧文靜 趙春燕 李 娟
(國家氣象信息中心高性能計算室 北京 100081)
基于SpringMVC的高性能計算機監(jiān)視管理系統(tǒng)設(shè)計與實現(xiàn)
顧文靜 趙春燕 李 娟
(國家氣象信息中心高性能計算室 北京 100081)
高性能計算機系統(tǒng)(HPC)是氣象業(yè)務(wù)及科研應(yīng)用的重要基礎(chǔ)平臺[1]。為改變氣象系統(tǒng)內(nèi)部監(jiān)視平臺分散的現(xiàn)狀,規(guī)范故障處理流程,保障系統(tǒng)穩(wěn)定運行,國家氣象信息中心對國家局和區(qū)域中心9套高性能計算機系統(tǒng)建立統(tǒng)一監(jiān)視管理,提供一個能實時監(jiān)視、故障流程化處理、性能分析、日志記錄及統(tǒng)計查詢的共享平臺。監(jiān)視管理系統(tǒng)采用Spring MVC框架技術(shù),結(jié)合MVC設(shè)計模式和分層架構(gòu)思想對系統(tǒng)的體系結(jié)構(gòu)進行設(shè)計,達到了高內(nèi)聚低耦合的目標,提高了項目的擴展性和開發(fā)效率。2016年8月監(jiān)視管理系統(tǒng)業(yè)務(wù)運行,涵蓋監(jiān)視、管理、配置等核心服務(wù)項目,對氣象業(yè)務(wù)和科研起到了有效的保障作用。
高性能計算機系統(tǒng) 監(jiān)視管理 Spring MVC Ajax
高性能計算機系統(tǒng)是天氣、氣候、地球環(huán)境數(shù)值模擬業(yè)務(wù)和相關(guān)科學(xué)研究所必須的基礎(chǔ)平臺[1],為滿足業(yè)務(wù)和科研需求,IBM Flex P460系統(tǒng)于2013年在中國氣象局安裝并投入使用。該系統(tǒng)包括國家級二套子系統(tǒng)及分布在區(qū)域中心的七套子系統(tǒng),總體峰值性能達到1.7 PFlops,數(shù)據(jù)存儲量4.2 TB,目前僅國家局兩套子系統(tǒng)計算集群包括1 120個節(jié)點,37 120個CPU核;存儲集群主要由80個IO節(jié)點和40個DSC3700組成,共計2 400塊900 GB硬盤, 系統(tǒng)內(nèi)部采用Infiniband網(wǎng)絡(luò)互連,通過4臺核心交換機及大量邊緣交換機構(gòu)成高速數(shù)據(jù)網(wǎng)絡(luò)。近期還將引進一套更大規(guī)模的高性能計算機系統(tǒng)。
高性能計算機系統(tǒng)為局內(nèi)各單位及部分省、市氣象局提供科學(xué)計算環(huán)境、數(shù)據(jù)環(huán)境,支持各類氣象、氣候業(yè)務(wù)/準業(yè)務(wù)及相關(guān)科研工作,它是氣象、氣候模式實時業(yè)務(wù)平臺、國內(nèi)外的資料傳輸及處理平臺、存儲平臺[2]。系統(tǒng)運行至今,用戶總數(shù)超過600人,每天有近6萬個作業(yè)運行,如何保證系統(tǒng)穩(wěn)定運行成為一個重要問題。
監(jiān)視管理系統(tǒng)需實時采集國家局和區(qū)域中心的多套高性能計算機系統(tǒng)的運行狀態(tài)、性能指標等監(jiān)視信息,通過監(jiān)視數(shù)據(jù)管理模塊處理后,提供簡明、直觀的展示界面。由于監(jiān)視項繁多,需對監(jiān)視項精確分類,根據(jù)故障等級不同設(shè)計報警或預(yù)警功能,對于不同的告警信息提供報警標識、錯誤信息提示、聲音和短信報警。為方便故障交接處理和重大故障協(xié)同處理,該系統(tǒng)從故障的發(fā)生、指派、處理、恢復(fù)設(shè)計一套規(guī)范的流程。對于相同監(jiān)視項多節(jié)點報警情況,設(shè)計分級處理機制,清晰展示每個節(jié)點的故障情況。
同時,監(jiān)視管理系統(tǒng)提供在線統(tǒng)計分析的功能,根據(jù)查詢條件設(shè)置統(tǒng)計歷史時間段的各類故障數(shù)據(jù),并以圖形或表格的形式形象直觀展示。
監(jiān)視管理系統(tǒng)由監(jiān)視信息采集處理模塊、監(jiān)視數(shù)據(jù)管理模塊、監(jiān)視信息展示及報警模塊、配置管理模塊組成,各模塊功能結(jié)構(gòu)及模塊劃分如圖1所示。監(jiān)視管理系統(tǒng)是“氣候變化應(yīng)對決策支撐系統(tǒng)工程”的子系統(tǒng)之一,用戶管理部分單獨建設(shè),因此用戶注冊、登錄和修改信息等功能本文不作贅述。
圖1 系統(tǒng)模塊結(jié)構(gòu)圖
監(jiān)視管理系統(tǒng)基于B/S架構(gòu)設(shè)計多層框架模型,框架如圖2所示。“四個層次”分別為基礎(chǔ)設(shè)施層、數(shù)據(jù)資源層、應(yīng)用層和表現(xiàn)層,從而保證基礎(chǔ)環(huán)境的穩(wěn)定可靠、數(shù)據(jù)資源的集中管理、應(yīng)用系統(tǒng)的快速開發(fā)、應(yīng)用系統(tǒng)的集成統(tǒng)一。
圖2 系統(tǒng)總體框架圖
(1) 基礎(chǔ)設(shè)施層
通過對硬件設(shè)備、基礎(chǔ)系統(tǒng)軟件的集成,為本系統(tǒng)提供統(tǒng)一、穩(wěn)定的運行環(huán)境。基礎(chǔ)運行環(huán)境包括機房環(huán)境、網(wǎng)絡(luò)交換機、I/O設(shè)備、服務(wù)器、存儲設(shè)備、高性能計算機、操作系統(tǒng)、gpfs文件系統(tǒng)、xCAT、J2EE應(yīng)用中間件等組件。
(2) 數(shù)據(jù)層
通過對數(shù)據(jù)資源的統(tǒng)一規(guī)劃,實現(xiàn)資源的集中存儲、數(shù)據(jù)共享。數(shù)據(jù)資源層存儲本系統(tǒng)產(chǎn)生的結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù),主要包括數(shù)據(jù)采集的狀態(tài)數(shù)據(jù)和性能數(shù)據(jù)、配置數(shù)據(jù)、角色數(shù)據(jù)、日志數(shù)據(jù)。
(3) 應(yīng)用層
包含系統(tǒng)的四大模塊,其中監(jiān)視信息采集處理模塊包括運行狀態(tài)信息采集、系統(tǒng)性能信息采集、監(jiān)視信息預(yù)處理。監(jiān)視數(shù)據(jù)管理模塊包括監(jiān)視數(shù)據(jù)解析入庫、監(jiān)視信息存儲管理。監(jiān)視信息展示及報警模塊包括監(jiān)視信息展示、故障報警、故障日志統(tǒng)計查詢。配置管理模塊包括用戶權(quán)限配置、采集任務(wù)配置、監(jiān)視項配置和處理流程配置。
(4) 表現(xiàn)層
系統(tǒng)主要通過Web頁面以及相關(guān)的桌面程序為用戶提供服務(wù)。優(yōu)良合理的頁面布局和人性化的操作方式,清晰地展現(xiàn)用戶所關(guān)心的信息。
在高性能計算機系統(tǒng)管理節(jié)點上建立監(jiān)視信息采集處理模塊,按照策略定時采集各節(jié)點硬件狀態(tài)(CPU、內(nèi)存、文件系統(tǒng)、內(nèi)置盤、IB端口等)、軟件狀態(tài)(作業(yè)管理進程、文件系統(tǒng)進程、重要的服務(wù)進程)、IB網(wǎng)絡(luò)、磁盤陣列等系統(tǒng)運行信息和各節(jié)點CPU、內(nèi)存使用率、作業(yè)運行情況、節(jié)點負載情況等性能指標??紤]到數(shù)據(jù)解析處理對采集系統(tǒng)的性能影響,通過FTP方式將采集到日志文件發(fā)送到指定日志解析服務(wù)器,在日志解析服務(wù)器上進行統(tǒng)一格式編碼、數(shù)據(jù)驗證、日志解析等處理,流程如圖3所示。
圖3 日志處理流程圖
日志解析結(jié)合Spring和Quartz運行定時任務(wù),根據(jù)采集到的日志信息編寫解析方法,完成日志解析入庫。首先在后臺配置監(jiān)視項,如高性能計算機系統(tǒng)、機柜、監(jiān)視部件等;再配置每個日志解析項的定時任務(wù),包括定時任務(wù)名稱、所屬運行組、運行頻次、解析日志路徑、解析的類方法。定時任務(wù)運行后,可以直觀地在后臺查看不同任務(wù)的運行狀態(tài),后臺運行的解析方法,實現(xiàn)對指定日志的解析。比如,磁盤監(jiān)視項解析。如果日志中出現(xiàn)Storage Subsystem health status = optimal.字段,該監(jiān)視項目為正常,未出現(xiàn)該字段,監(jiān)視項異常,將正常磁盤名稱、異常磁盤名稱、磁盤狀態(tài)、故障信息和采集時間分別錄入數(shù)據(jù)庫。
為了提高數(shù)據(jù)安全性和降低數(shù)據(jù)的冗余,監(jiān)視管理系統(tǒng)數(shù)據(jù)庫創(chuàng)建15張數(shù)據(jù)表,其中基礎(chǔ)信息表包括部件信息表(nodeinfo)、部件屬性表(nodemetainfo)、機柜信息表(cabinetinfo)、監(jiān)視項信息表(monitorinfo);監(jiān)視信息表包括部件狀態(tài)表(nodemonstate)、部件狀態(tài)歷史表(nodemonstate_history)、監(jiān)視項狀態(tài)表(monitorstate)、監(jiān)視項狀態(tài)歷史表(monitorstate_history) 故障處理表(monitorlog)和故障處理過程表(monitorprocess);系統(tǒng)配置表包括狀態(tài)配置表(dictcodeinfo)、角色權(quán)限配置表(roleinfo)、定時任務(wù)配置表(scheduletaskinfo)、菜單節(jié)點配置表(vnodeinfo)、日志路徑配置表(logpathinfo)和值班人員配置表(dutyinfo)。其中監(jiān)視信息表的可統(tǒng)計屬性均與基礎(chǔ)信息表建立主外鍵關(guān)系。數(shù)據(jù)庫表結(jié)構(gòu)如圖4所示。
圖4 監(jiān)視數(shù)據(jù)表結(jié)構(gòu)圖
2.3.1 Spring MVC架構(gòu)
監(jiān)視管理系統(tǒng)建立在Eclipse面向J2EE的開發(fā)平臺、B/S架構(gòu)和Spring MVC設(shè)計模式的基礎(chǔ)上, 將數(shù)據(jù)、業(yè)務(wù)與展現(xiàn)進行分離,形成不同的分模塊,達到模塊間的松耦合性,使整個系統(tǒng)結(jié)構(gòu)清晰,便于開發(fā)維護。
依據(jù)MVC的設(shè)計思想,本系統(tǒng)主要分為四層,即為表現(xiàn)層、控制層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。用戶通過Velocity頁面調(diào)用Ajax發(fā)送HTTP請求到Web端,Web端會在配置文件中匹配請求映射路徑,并將其轉(zhuǎn)交給前端處理器DispatcherServlet,DispatcherServlet接收到請求后根據(jù)請求信息尋找Mapping映射實現(xiàn)控制分派,并通過執(zhí)行具體控制器的方法調(diào)用對應(yīng)的業(yè)務(wù)邏輯類進行處理。Service層應(yīng)用工具類調(diào)用Dao層對象的關(guān)系映射類獲取數(shù)據(jù),進行數(shù)據(jù)信息的加工,實現(xiàn)與POJO類的無縫整合。處理過程中如發(fā)生異常情況,將訪問異常解析器,找到對應(yīng)的異常類進行捕獲處理,最后將數(shù)據(jù)和視圖返回給DispatcherServlet,調(diào)用視圖解析器分析視圖文件,將解析后的數(shù)據(jù)顯示在頁面上返回給客戶端瀏覽器[2]。
2.3.2 應(yīng)用舉例
監(jiān)視管理系統(tǒng)包含5個核心控制類,功能如下所述,實現(xiàn)流程如圖5所示。
1) HomeController: 該類主要實現(xiàn)多套HPC集群和各業(yè)務(wù)模式系統(tǒng)整體監(jiān)視狀態(tài)展示功能。
2) ClusterMonController: 該類主要實現(xiàn)多套HPC集群各項監(jiān)視管理功能。
3) ModelMonController: 該類主要實現(xiàn)各業(yè)務(wù)模式系統(tǒng)多模塊監(jiān)視管理功能。
4) LogManagerController:該類主要實現(xiàn)監(jiān)視信息多維度統(tǒng)計查詢及圖表展示功能。
5) SysConfigController: 該類主要實現(xiàn)監(jiān)視管理系統(tǒng)多種配置功能。
圖5 架構(gòu)實現(xiàn)流程圖
下面以HPC系統(tǒng)監(jiān)視模塊為例,詳述后臺查詢及前臺展示的實現(xiàn)流程。HPC系統(tǒng)監(jiān)視模塊的clustermon.vm頁面引入jQuery的JS文件庫和clustermon.js文件,頁面按策略定時更新監(jiān)視項狀態(tài),JQuery+Ajax通過post方式,將請求提交到DispatcherServlet處理,DispatcherServlet根據(jù)各控制器注釋的Mapping映射查找與URL相對應(yīng)的具體控制器ClusterMonAction,ClusterMonAction調(diào)用業(yè)務(wù)邏輯類ClusterMonservice的getAll-MetaStateMap()方法,ClusterMonservice調(diào)用數(shù)據(jù)訪問類ClusterMonDao的getAllMeta-StateMap()方法訪問數(shù)據(jù)庫,并將查詢結(jié)果逐級返回給控制器類ClusterMonAction,ClusterMonAction再傳遞給前端控制器DispatcherServlet,DispatcherServlet將結(jié)果數(shù)據(jù)返回給vm視圖模板,視圖模板經(jīng)視圖解析器解析,將結(jié)果通過HTTP響應(yīng)返回給客戶瀏覽器。模塊類圖如圖6所示。
圖6 HPC系統(tǒng)監(jiān)視模塊類圖
模塊實現(xiàn)部分代碼和配置文件如下:
1) Web層實現(xiàn)
ClusterMon.prototype = {
getAllMetaStateMap:function (obj) {
var dtd =$.Deferred();
setTimeout(function () {
$.post(—ClusterMon/ getAllMetaStateMap—, null, function (data) {
obj.clustermonData=data;
dtd.resolve();
});
}, 0);
return dtd.promise();
},
class=″org.springframework.web.servlet.view.velocity.VelocityViewResolver″>
2) 控制層實現(xiàn)
org.springframework.web.servlet.DispatcherServlet
classpath:applicationContext.xml
public class ClusterMonAction extends Abstract
-Controller {
//訪問Mapping定義
@RequestMapping(″/getAllMetaStateMap ″)) Public void getAllMetaStateMap (HttpServletRequest req, HttpServletResponse rpos) {
… //對請求關(guān)鍵詞的解碼
… //根據(jù)請求查數(shù)據(jù)庫得到結(jié)果對象
… //將結(jié)果轉(zhuǎn)化為JSON串發(fā)送
}
… //其他功能的Mapping方法
}
3) 數(shù)據(jù)層訪問層實現(xiàn)
本例中,將monitorstate庫表映射為POJO類ClusterMonElement,該表中存儲各監(jiān)視項運行狀態(tài)信息;ClusterMonDao對象調(diào)用JdbcTemplate對象的getAllMetaState
-Map ()方法,實現(xiàn)對ClusterMonElement中數(shù)據(jù)查詢。
將DataSource,JdbcTemplate等對象配置在applicationContext. xml文件中,使用Spring的注入功能,把DataSource注冊到JdbcTemplate之中,數(shù)據(jù)庫連接采用c3p0連接池的方式,使用spring配置Jdbc-Template,JdbcTemplate被注入到Cluster-MonDao中。
applicationContext.xml配置文件如下:
class=″org.springframework.jdbc.core.JdbcTemplate″>
class=″com.mchange.v2.c3p0.ComboPooled DataSource″ destroy-method=″close″> value=″jdbc:oracle:thin:@localhost:pmcs″ /> ……//中間代碼省略
為保障故障通知的時效性,監(jiān)視管理系統(tǒng)增加了信息報警功能,Web頁面發(fā)現(xiàn)故障時,系統(tǒng)通過釘釘客戶端給管理員發(fā)送告警信息,信息包含故障時間和內(nèi)容等。
信息報警涉及到信息過濾、信息配置和消息封裝。首先對實時庫和歷史庫中告警信息進行比對,過濾出需要告警的狀態(tài)信息,根據(jù)故障的影響,定義告警級別。根據(jù)告警級別定義信息發(fā)送的頻率和接收人,最后將信息封裝成消息對象,調(diào)用消息發(fā)送接口推送報警信息到釘釘客戶端。
告警系統(tǒng)由信息處理模塊和信息發(fā)送模塊組成,架構(gòu)如圖7所示。
圖7 信息告警架構(gòu)圖
實現(xiàn)對國家局及區(qū)域中心九套高性能計算機系統(tǒng)的全面監(jiān)控。首頁清晰展示每套系統(tǒng)整體運行情況,分頁面分類展示各系統(tǒng)多種監(jiān)視項狀態(tài)??紤]到多個節(jié)點連續(xù)發(fā)生相同故障,設(shè)計分級處理機制,各監(jiān)視項可顯示多節(jié)點的故障狀態(tài)。
實現(xiàn)故障流程化處理,故障發(fā)生后,Web頁面相關(guān)監(jiān)視項呈現(xiàn)紅色報警狀態(tài)并伴隨聲音提示,值班員將故障監(jiān)視項變更為處理中狀態(tài)(黃色),并指派系統(tǒng)管理員處理,管理員接到指派后處理故障,故障恢復(fù)后填寫故障處理單并提交,Web頁面相關(guān)監(jiān)視項恢復(fù)(綠色)??紤]相同時間發(fā)生多節(jié)點故障,設(shè)計故障單按時間和故障類型合并功能,避免大量故障單累計,有效提高處理效率。
采集高性能計算機系統(tǒng)各節(jié)點CPU、內(nèi)存、作業(yè)運行和節(jié)點負載情況等性能指標數(shù)據(jù)信息,以圖形的方式清晰展示每個節(jié)點性能指標實時變化特征(見圖8)。
圖8 機柜實時監(jiān)視
實現(xiàn)系統(tǒng)日志、故障處理日志和系統(tǒng)可用率等的統(tǒng)計查詢功能,提供數(shù)據(jù)分類導(dǎo)航和統(tǒng)計圖表下載功能。其中日志查詢模塊設(shè)置不同維度的時間、系統(tǒng)、故障類型、機柜、節(jié)點等精細化查詢和各類故障統(tǒng)計查詢及圖表展示功能。故障處理單查詢模塊設(shè)置了多條件精細化查詢和故障單編輯、修改、刪除功能。系統(tǒng)可用率查詢設(shè)置規(guī)定時間段內(nèi)可用率的總體和分段計算及圖表展示。
監(jiān)視管理的后臺管理板塊,只有管理員權(quán)限用戶可以訪問。提供多種配置功能,包含數(shù)據(jù)字典、硬件配置、菜單配置、權(quán)限配置、任務(wù)配置及值班配置等模塊。其中數(shù)字字典模塊實現(xiàn)系統(tǒng)和模式監(jiān)視項的狀態(tài)配置,節(jié)點類型配置和高性能計算機系統(tǒng)配置。硬件配置模塊實現(xiàn)高性能計算機系統(tǒng)機柜、服務(wù)器、硬件屬性、整體監(jiān)視屬性的配置。菜單配置實現(xiàn)高性能計算機系統(tǒng)和結(jié)點的配置。權(quán)限配置模塊實現(xiàn)不同角色訪問權(quán)限設(shè)置。任務(wù)配置模塊實現(xiàn)監(jiān)視任務(wù)路徑、監(jiān)視任務(wù)啟動和日志文件匹配的配置。值班配置實現(xiàn)管理人員配置,有效提升監(jiān)視管理系統(tǒng)的靈活性和可用性。
基于Sping MVC的高性能計算機監(jiān)視管理系統(tǒng)通過Web端和信息報警大幅提升了故障發(fā)現(xiàn)的時效性,并通過故障數(shù)據(jù)分析及各節(jié)點性能指標變化特征進一步掌握系統(tǒng)運行情況,有助于提前排除隱患,有效保障高性能計算機系統(tǒng)運行的穩(wěn)定性。流程化處理方式為故障的交接和協(xié)作處理提供了便捷,系統(tǒng)已業(yè)務(wù)運行,提供給國家局和區(qū)域中心用戶使用。下一步,我們將在ECMWF開發(fā)的ECFLOW基礎(chǔ)上進行二次開發(fā), 通過Ecflow客戶端實時采集Ecflow服務(wù)器端運行模式狀態(tài)數(shù)據(jù),進一步完善數(shù)值預(yù)報業(yè)務(wù)自動化管理系統(tǒng),整合HPC系統(tǒng)和業(yè)務(wù)模式的監(jiān)視管理,進一步提升氣象業(yè)務(wù)保障能力。
[1] 沈瑜,李娟,常飚,等.高性能計算機統(tǒng)一資源管理系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機技術(shù)與自動化,2014,33(1):83-90.
[2] 黃淼,張國平.基于Spring MVC的高校教務(wù)評教系統(tǒng)設(shè)計[J].電子設(shè)計工程,2016,24(8):23-26.
[3] 丁振凡,李馨梅.基于JdbcTemplate的數(shù)據(jù)庫訪問處理[J].智能計算機與應(yīng)用,2012,2(3):29-32.
[4] 張志強,張強,胡星,等.國家氣象業(yè)務(wù)內(nèi)網(wǎng)設(shè)計與實現(xiàn)[J].安徽農(nóng)業(yè)科學(xué),2016,44(6):224-227.
[5] 何玲娟,蟻龍,劉連臣.一種松耦合高復(fù)用MVC模式的Web分頁實現(xiàn)[J].計算機工程與應(yīng)用,2007,43(15):95-97.
[6] 陳雄華,林開雄.Spring 3.x企業(yè)級應(yīng)用開發(fā)實戰(zhàn)[M].北京:電子工業(yè)出版社,2013.
[7] Craig Walls,Ryan Breidenbach.Spring in Action[M].3版.北京:人民郵電出版社,2013.
[8] 劉京華.JavaWeb整合開發(fā)王者歸來(JSP+Servlet+Struts+Hibernate+Spring)[M].北京:清華大學(xué)出版社,2010.
[9] 周桓,王殊宇.JSP項目開發(fā)全程實錄[M].北京:清華大學(xué)出版社,2008.
[10] HighCharts官網(wǎng)[OL].2015.http://www.highcharts.com/demo.
DESIGNANDIMPLEMENTATIONOFHIGHPERFORMANCECOMPUTERMONITORINGMANAGEMENTSYSTEMBASEDONSPRINGMVC
Gu Wenjing Zhao Chunyan Li Juan
(HighPerformanceComputingDivision,NationalMeteorologicalInformationCenter,Beijing100081,China)
High performance computer is an important basic platform for meteorological operations and developments. The aim of this paper is to change the distributed status of the meteorological HPC monitoring platform, to standardize the process of fault handling and to ensure the stable operation of the HPC system. Therefore, the national meteorological information center (NMIC) has established a unified monitor and management for nine sets system of country and regional center, providing a sharing platform for real-time monitoring, fault streamline processing, performance analysis, log records and statistical query. Monitoring management system adopted the Spring MVC framework technology. Moreover, the architecture of the system was designed with the combination of the MVC design pattern and layered architecture, which achieved the goal of high cohesion and low coupling, and improved the expansibility and development efficiency of the project. In August 2016, the monitoring and management system operated, covering the core services such as monitoring, management and configuration. It has played an effective role in ensuring the meteorological service and scientific research.
HPC system Monitor management Spring MVC Ajax
TP302
A
10.3969/j.issn.1000-386x.2017.10.017
2016-10-25??萍疾抗嫘孕袠I(yè)專項(氣象)科研專項(GYHY201106022,GYHY201306062)。顧文靜,工程師,主研領(lǐng)域:高性能計算應(yīng)用支持,軟件開發(fā)。趙春燕,高工。李娟,高工。