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