本發明涉及儲能系統系統通訊和管理方法,尤其涉及一種儲能系統的通訊管理系統及方法。
背景技術:
隨著計算機技術,尤其是網絡技術的飛速發展,如今的程序開發人員不僅僅局限于基于單機運行或單一線程的應用程序的開發。服務器端/客戶端模式的最顯著的特點是一個服務器端應用能同時為多個客戶端提供服務。而傳統的服務器端/客戶端模式通常為每一個客戶端創建一個獨立的線程,這種實現方式在客戶端數量不多的情況下問題不大,但對于類似于儲能系統這種客戶數量巨大的系統來說,效率極端低下。這是因為一方面創建新線程操作系統開銷較大,另一方面同時有許多線程處于運行狀態,操作系統內核需要花費大量時間進行上下文切換,而沒有在線程執行上花更多的時間。
公司儲能系統與服務器的通訊需要實時上傳數據,并且需要實時下發控制指令。為了滿足實際業務需求,儲能系統客戶端需要實時上傳發電、用電、買電、賣電等數據和實時接收服務器的調度指令,所以客戶端必須與服務器保持持續連接,這對服務器的連接穩定性及處理數據的性能要求比較高,而且現有的通訊采用整體數據打包形式,這種整體數據打包形成的數據包大,傳輸時對占用帶寬多,而且服務器在進行解析是所耗費的時間多,易造成穩定性差、效率低的問題,從而降低服務器的性能。
針對現有技術存在的缺陷,結合公司產品需同時調度多臺系統的技術特性,我們設計了一種能在進程之間通過socket進行通信,以達到數據交換的目的管理系統,其主要作用在于建立服務端與客戶端或者其他端點的通信,管理,維護,并提供常見的通信協議,解析等,也可以自定義協議和協議處理相關接口,從而解決儲能系統的通訊和管理問題。
技術實現要素:
為克服現有技術的缺陷,本發明提供了一種儲能系統的通訊管理系統,在進程之間通過socket進行通信,以達到數據交換目的的管理系統,其主要作用在于建立服務端與客戶端或者其他端點的通信,管理,維護,并提供常見的通信協議,解析等,也可以自定義協議和協議處理相關接口,從而解決儲能系統的通訊和管理問題。
本發明揭示了一種儲能系統的通訊管理系統,包括通訊服務器實現與儲能客戶端之間的通訊,通訊服務器包括會話管理模塊,會話池,數據處理模塊及存儲模塊,其中:
會話管理模塊,實現與儲能客戶端之間的會話建立,接收儲能客戶端發送的數據,并送入會話池等待處理,同時將數據處理模塊反饋的調度數據傳輸至對應的儲能客戶端;
會話池為會話線程的排隊等候區;
數據處理模塊內部預先設置有多種通訊協議,對會話池內的排隊的數據進行拆包解析,根據解析的信息調取數據庫內對應的控制指令,再將控制指令進行編碼打包送入會話管理模,反饋至對應的儲能系統中。
所述會話管理模塊在會話建立時給予每個儲能客戶端一個唯一標識,將該唯一標識存儲至存儲模塊,數據處理模塊反饋的數據通過查找唯一標識確定對應儲能客戶端。
所述數據處理模塊調取會話池內的二進制數據通過協議過濾器映射成單獨的協議實體,根據內部的通訊協議對實體進行解析,處理。
所述儲能客戶端內預設有連接通訊服務器的域名及多個端口號,通過域名或者端口號連接對應的通訊服務器。
一種儲能系統的通訊管理方法,包括如下內容:
s1、儲能客戶端通過內部預設的域名和端口號查找并連接通訊服務器,當儲能客戶端與通訊服務器的建立連接后,會話管理模塊建立一個會話線程,并在會話線程建立后給予該儲能客戶端一個唯一標識;
s2、會話建立后,儲能客戶端發送二進制數據請求包,會話管理模塊將該二進制數據請求包送入會話池排隊等待處理,并在二進制數據請求包發送結束沒有通信情況下,會自動釋放會話線程;
s3、數據處理模塊依次調取會話池內的二進制數據請求包,將該數據包通過協議過濾器映射成請求協議實體,根據該請求實體類型結合內部專用的通信協議進行解析、存儲;
s4、根據解析結果讀取數據庫中對應的控制指令,并將該控制指令按照對應的通信協議進行編碼打包形成反饋數據包,傳送給會話管理模塊;
s5、會話管理模塊將接收的反饋數據包通過查詢唯一標識進行儲能客戶端的確認,建立與該儲能客戶端的會話線程,將反饋數據包發送至對應的儲能客戶端。
上述步驟中,所述儲能客戶端與通訊服務器連接時,通過互聯網進行域名查找,在網絡異常時采用多端口號輪流嘗試的形式進行連接。
上述步驟中,專用的通信協議包括心跳協議、注冊接口、登錄接口、系統配置接口、常規數據發送接口、控制指令接口、故障報警接口、文件傳輸接口等。
與現有技術相比,本發明的一種儲能系統的通訊管理系統,具有如下有益之處:
儲能客戶端根據數據類型進行分類打包(根據不同的通信協議進行操作,對應的通信協議預先存儲在通訊服務器內),這樣每個數據包比較小,進行打包及解包操作時壓力比較小,而且傳輸時占用帶寬少,不容易造成網絡堵塞的情況,提高了整個系統的穩定性,同時較小的數據包降低服務器拆包壓力,從而保障了服務器的性能;
對于儲能客戶端與服務器之間采用預設域名和多個端口號進行查找連接,在網絡出現異常導致域名無法使用時,可以采用多端口號輪流嘗試的方式進行連接,為了防止部分地區或者防火墻對某些端口進行了限制,采用多個端口輪流嘗試,確保連接的可靠性;
在通訊服務器中,根據功能不同進行區域模塊劃分,且每個區域模塊之間相互獨立,在后續協議增加或者擴展時,獨立的區域模塊給優化帶來了方便,不需要進行整體改進,只需要對模塊本體進行改進即可;
在通訊服務器內采用線程池來管理儲能客戶端的連接和處理每個會話的數據收發,在會話線程建立并傳輸完成數據后,只需要將待處理的數據包送入線程池進行排隊處理,對客戶端與服務器之間的數據處理完成的線程進行回收,等到下次需要是再建立,即保證了數據傳輸時處于連接狀態,同時實現了服務器線程資源了有效利用,可以將收回的線程用于處理其余終端的接入,提高了接入數量,進而提高服務器的處理效率;
對于反饋數據線程的連接,在數據從儲能客戶端發送至會話管理模塊時,就將每一個儲能客戶端進行唯一標識記錄,在后續數據反饋時通過查找唯一標識即可知道對應的是哪個儲能客戶端,確保連接的可靠和準確性。
附圖說明
圖1是本發明所揭示的防止能量管理系統遠程升級失效的系統的框架圖。
具體實施方式
下面將結合本發明的附圖,對本發明實施例的技術方案進行清楚、完整的描述。
本發明所揭示的一種儲能系統的通訊管理系統,包括通訊服務器實現與儲能客戶端之間的通訊,通訊服務器包括會話管理模塊,會話池,數據處理模塊及存儲模塊。
所述儲能客戶端(圖中的ems)內預設有連接通訊服務器的域名及多個端口號,在互聯網正常時通過域名進行通訊服務器查找,在網絡出現異常無法連接時,則通過端口號進行查找,為了防止客戶端所在的系統或防火墻對端口號的屏蔽,采用多個端口輪流嘗試的方式進行連接操作。
會話管理模塊,實現與儲能客戶端之間的會話建立,接收儲能客戶端發送的數據,并送入會話池等待處理,同時將數據處理模塊反饋的調度數據傳輸至對應的儲能客戶端,會話管理模塊在會話建立時給予每個儲能客戶端一個唯一標識,將該唯一標識存儲至存儲模塊,數據處理模塊反饋的數據通過查找唯一標識確定對應儲能客戶端。
會話池為會話線程的排隊等候區;
數據處理模塊內部預先設置有多種通訊協議,對會話池內的排隊的數據進行拆包解析,根據解析的信息調取數據庫內對應的控制指令,再將控制指令進行編碼打包送入會話管理模,反饋至對應的儲能系統中。
所述數據處理模塊調取會話池內的二進制數據通過協議過濾器映射成單獨的協議實體,根據內部的通訊協議對實體進行解析,處理,并將解析后的數據對應數據庫進行控制指令獲取,將獲取的控制指令進行反向編碼打包,再通過會話管理模塊進行反饋。
一種儲能系統的通訊管理方法,包括如下內容:
s1、儲能客戶端通過內部預設的域名和端口號查找并連接通訊服務器,當客戶端與服務器連接異常時,客戶端會自動嘗試使用其它備用的端口號循環嘗試連接,直至連接成功為止,當儲能客戶端與通訊服務器建立連接后,會話管理模塊會為客戶端創建一個唯一標識,并把此客戶端的會話放到會話線程池中進行管理;
s2、會話建立后,針對儲能客戶端發送二進制數據請求包,會話管理模塊會在線程池中為此模塊申請獨立的線程來處理該二進制數據請求包,并將處理好的數據請求包送到數據處理模塊排隊等待處理,在線程中處理完成請求包后,會話管理管理模塊會自動釋放此線程;
s3、數據處理模塊依次調取數據處理隊列內的二進制數據請求包,將該數據包通過協議過濾器映射成請求協議實體,根據該請求實體類型結合內部專用的通信協議進行解析、存儲;
s4、根據解析結果讀取數據庫中對應的控制指令,并將該控制指令按照對應的通信協議進行編碼打包形成反饋數據包,傳送給會話管理模塊;
s5、會話管理模塊將接收的反饋數據包通過查詢唯一標識進行儲能客戶端的確認,建立與該儲能客戶端的會話線程,將反饋數據包發送至對應的儲能客戶端;
所述儲能客戶端與通訊服務器連接時,通過互聯網進行域名查找,在網絡異常時采用多端口號輪流嘗試的形式進行連接。
本發明的技術內容及技術特征已揭示如上,然而熟悉本領域的技術人員仍可能基于本發明的揭示而作種種不背離本發明精神的替換及修飾,因此,本發明保護范圍應不限于實施例所揭示的內容,而應包括各種不背離本發明的替換及修飾,并為本專利申請權利要求所涵蓋。