北京廣利核系統工程有限公司 彭立,胡俊,李寧
核電站專用儀控系統是以核電站KDO、KME、EPP等系統需求為基礎,開發出的用于核電站小規模專用儀控系統的產品系統平臺,該平臺具有高速、高精度等系統特性,主要用于核電站對采樣速度、采樣精度、長期穩定性等方面有特殊要求的相關系統中。
本文將會論述核電專用儀控系統中服務器如何實現分布式部署,以及如何解決服務器不利于擴展和性能降低的問題。
通過服務器的分布式部署研究,可使核電專用儀控系統具有更加良好的擴展能力以及更好的服務性能。
目前核電專用儀控系統整體上采用單網運行的方式實現服務器以及控制站的通訊,服務器只有兩個,所有的服務程序都需要分布在每個服務器上,如圖1所示。隨著應用的逐步擴展,首先單個服務器運行所有服務程序的性能越來越不能滿足用戶的要求,而且控制站上傳數據也只能分別發送給兩個服務器,數據量的增加會導致服務程序性能的降低,因此系統最多只能支持3個控制站。同樣操作員站的訪問請求增加也會導致服務程序性能的降低,因此操作站只能支持3個。這對系統的發展造成了很大的局限性。
同時服務器軟件在實現上采用了共享磁盤等方式,該方式在應用初期是滿足各項目需求的,隨著應用的拓展,越來越多的項目需要采用分布式的部署方式,服務器軟件內部由于使用共享磁盤導致各個軟件任務之間只能通過共享內存、消息隊列等方式進行通訊,因此必須部署在一臺機器上,不利于擴展;同時,如果想增加新的應用,則需要對這些共享內存、消息隊列進行初始化等操作,比較煩瑣,不利于維護。

圖1 核電儀控系統當前結構
核電專用儀控系統處于分布式部署的考慮,需要在服務器性能上有所突破。而服務器性能上要進行突破,最大的障礙在于服務任務都部署在同一臺機器上,如果能實現服務器的分布式部署,則能夠用更多的服務器來平攤系統負荷,達到擴大系統規模的目的。
為了達到服務器分布式部署的目標,在系統軟件總體設計上則需要進行模塊化設計,當服務器的所有模塊都作為組件融入到系統中時,使用不同的服務器來加載這些組件就能實現系統功能,同時系統的擴展性也得到了體現。
針對這種分布式部署的設計目標,服務器進行了基于管理網協議的模塊化設計,將管理網協議設計為網絡中間件通信平臺,服務器上各個模塊可以獨立設計,通過網絡中間件交互信息,同時提供獨立的網絡中間件服務接口。擴展的服務器模塊,可以通過網絡中間件接口進行新的專用功能設計。
同時為了增強系統的可靠性,需對網絡進行冗余設計,網絡中間件還需要實現網絡診斷及選擇網絡自動選擇的功能,如圖2所示。

圖2 核電專用儀控系統設計架構
服務器基于網絡中間件的方式來實現分布式部署。其主要功能通過監控網協議來實現,并且為了滿足核電專用儀控系統的冗余要求,服務器還需要進行服務任務雙網和雙任務的冗余研究。
網絡通訊中間件的設計目標是滿足服務器軟件各任務之間的高性能數據通訊。任務之間的通訊網絡采用雙網冗余配置。服務器任務也采用雙任務冗余配置,分別部署在兩個冗余的服務器上。每個服務任務通過接口函數來對外提供服務。
網絡通訊中間件要求能支持冗余雙網絡,即在一個網絡通訊發生故障時,能快速平滑的切換到另一個正常的冗余網絡,此切換對請求任務應該是透明的。
服務器任務采用冗余配置。單任務運行時,其狀態為主,雙任務運行時,狀態為一主一從,只有主任務對外提供服務。冗余的任務之間應該能保持數據一致性。網絡通訊中間件能自動診斷任務的主從狀態,并能在任務故障時,自動進行狀態和網絡切換。
《教師法》的制定和實施在社會上強調的教師的作用和地位,規范的教師與學生之間的關系,在全社會形成尊重教師尊重教育的風氣。教育是民族振興和社會進步的基礎。《教師法》的貫徹執行重視是重視教育的表現,促進了教育事業的發展。
網絡通訊中間件通過周期診斷對方狀態,作為判斷主從以及是否進行主從切換的依據。診斷的狀態信息還包括是否存在、如果存在當前狀態是主還是從等額外的信息。
應用程序通過調用服務端提供的接口函數向服務軟件發送請求。網絡通訊中間件客戶端將應用程序的請求數據,按選定的通訊網絡發送給指定的服務軟件,并等待返回數據。
網絡通訊中間件服務端收到請求數據,調用服務任務的服務處理函數,執行服務處理。
服務軟件將服務處理結果返回網絡通訊中間件服務端。網絡通訊中間件服務端將處理結果返回客戶端。
網絡通訊中間件客戶端收到返回結果,并返回給發起請求的應用程序。
整個實現方式如圖3所示。

圖3 網絡通訊中間件實現方式
基于上述的通訊方式,服務器軟件可以部署不同的服務端,同時其它依賴這些服務的程序作為客戶端使用,服務端所具有的服務功能可以根據整個核電專用儀控系統的設計來決定,將相類似的功能放在一個服務端,服務端之間的通訊只需要在同一網段即可進行,這樣不僅能將功能作為組件進行部署,還能基于性能的考慮對服務端進行拆分,更好地滿足系統的總體要求。
網絡通訊中間件以DLL形式,加載到其它服務模塊進程中。服務模塊通過繼承網絡通訊接口,保留基本功能的同時,對它進行擴展來二次開發。
網絡通訊中間件根據其功能需求,被分為如下4個模塊來進行實現:數據發送模塊、數據接收模塊、主從診斷模塊和網絡診斷模塊。其工作方式如圖4所示。

圖4 網絡通訊任務內部模塊設計
數據發送模塊主要實現進程間和主機間的數據交換。在實現上通過網絡診斷模塊進行選網,這樣可以獲得能進行正常通信的網絡,如果選網失敗,則返回應用層此次請求失敗。客戶端發送數據之后開始等待服務端的應答,如果接收到說明服務器端已收到數據,那么可以繼續等待數據。如果等待應答時返回超時則需要重復發送,超時時間根據發送的數據量來自行設定,如果超過超時時間還未接收到應答則定義此次請求失敗,返回給客戶端。如果發生超時,則最多重發兩次后定義此操作失敗。在獲得服務端應答后,準備開始接收服務端返回的實際數據。同時根據應用層定義的超時時間進行判斷,如果在超時時間內數據還沒有接收完畢,也定義此次請求失敗。接收完畢后向服務端發送確認應答,令服務端主動退出服務。這樣就能將數據發送出去。
數據接收模塊主要進行數據的接收,在實現上首先根據網絡參數的設置,來監聽指定的網絡端口,接收到數據后,將數據傳遞給進程進行處理。服務器應用程序通過配置文件來注冊服務端。配置好的端口可以交給網絡通訊中間件的接收數據模塊進行處理。當端口有數據到達時,網絡通訊中間件將接收到的數據交給數據接收線程池中的線程去處理。數據接收線程將數據重組并且接收到所有的數據后,將數據交給服務端處理。這樣就能實現數據的接收。數據接收模塊主要進行的是數據的重組和拼包操作,同時在數據接收模塊中還需要進行線程池的分配工作以滿足并發的客戶端請求。
主從診斷模塊通過主從診斷規則,獲得和設置當前服務器的主從狀態。主從診斷僅對服務端而言,客戶端不會進行主從的任何操作。只有主服務任務才向其它任務提供服務。具體實現上服務任務處理程序可以通過重載網絡中間件提供的接口,來繼承主從診斷功能。服務任務之間的主從數據對齊由服務任務自己實現,網絡中間件只是提供主從狀態的獲取。每個服務任務,通過檢測本機網絡故障情況以及檢測對方任務的狀態,來決定自己的主從。因此,主從診斷依賴于對本機網絡故障的檢測以及任務之間的數據通信。在設計上應該在一定時間間隔內周期進行診斷,以便在需要進行主從切換時能迅速進行主從屬性切換,而又不會影響計算機CPU的瞬時負荷。對于主從模塊的診斷,屬于是冗余設計的一部分,實現其自動和快速的主從切換是研究的重點。
雙網冗余模塊在一個網絡出現故障時以不影響數據傳輸為前提將數據從備用網發送出去。在研究中如果應用層的客戶端選擇具體的網絡,則可以根據其客戶端的選擇直接進行數據的發送。同時提供任意網絡發送的功能,任意網絡發送時網絡中間件可以隨機選擇一個進行診斷,如果診斷成功,則使用此網絡進行發送,并且記錄下此網絡屬性,在以后的請求中繼續使用此網絡,如果診斷失敗,則需要切換到另外一個進行發送,同時也記錄下此網絡的屬性,在以后的請求中使用此網絡。通過這樣的手段可以達到網絡診斷的目的。對于網絡診斷而言,其自動的網絡切換和數據的選網發送是研究的重點。
核電專用儀控系統服務器軟件分布式部署的研究成功,為核電專用儀控系統的維護和擴展提供了良好的平臺,在不斷新建的核電站中,核電專用儀控系統作為核電站運行過程中的關鍵系統,能滿足核電站多種多樣以及不斷擴展的新需求,不僅能為實現系統易用性提供擴展的基礎,同時也能為核電站提供更多的安全保障。
[1]高陽, 鄒樹梁. 論我國核電產業的自主化新征程[J]. 北京: 中國投資, 2009.5.
[2]劉俊明. 數字控制系統原理: 分析與設計[M]. 北京: 國防科技大學出版社1990.7.
[3]何克忠, 郝忠恕. 計算機控制系統分析與設計[M]. 北京: 清華大學, 1989.
[4]趙仁愷.中國核電的可持續發展[J].北京:中國工程科學,2000.6.
[5]顧興元. 計算機控制系統[M]. 北京: 冶金工業出版社, 1981.
[6]Martin J. Principles of Data Base Management[M].1976.
[7]Fry James P,Sibley Edgor H. Evolution of Data Base Management Systems[M]. ACM Computing Surveys. 1986.
[8]Deen S M. Fundamentals of Data Base System [J].1977.
[9]Matin J. Computer Data Base Organization[M]. 1997.
[10]Cardenas A F. Data Base Architecture[M]. 1979.