本公開內(nèi)容涉及一種雙工ems服務(wù)器,且更具體地涉及一種管理雙工服務(wù)器之間的數(shù)據(jù)庫(db)的方法,可以通過該方法通過使用名稱鍵來同步服務(wù)器之間的db。
背景技術(shù):
能量管理系統(tǒng)(ems)監(jiān)視且管理較大電力公司電網(wǎng)且為預(yù)測(cè)許多區(qū)域的電力需求且控制發(fā)電的重要系統(tǒng)。這種ems是工業(yè)控制系統(tǒng)且可以具有用于安全操作的雙工服務(wù)器,即主服務(wù)器和備用服務(wù)器或者活動(dòng)服務(wù)器和備份服務(wù)器。
圖1是概念性地示出典型雙工ems服務(wù)器的示意圖。
圖1示出雙工ems服務(wù)器的活動(dòng)服務(wù)器和備份服務(wù)器之間的db傳遞。
圖1示出其中db從活動(dòng)服務(wù)器被備份到備份服務(wù)器的示例。在該示例中,db的內(nèi)容即存儲(chǔ)器結(jié)構(gòu)(例如活動(dòng)服務(wù)器的存儲(chǔ)器的尺寸、順序、位置等)等于備份服務(wù)器的那些,使得活動(dòng)服務(wù)器的db可以通過直接存儲(chǔ)它在備份服務(wù)器中而被備份。在此,該條件是說db在活動(dòng)服務(wù)器和備份服務(wù)器之間被同步。
如圖1所示,當(dāng)活動(dòng)服務(wù)器的版本與備份服務(wù)器的那些(在該示例中,v1.0)相同時(shí),活動(dòng)服務(wù)器的db內(nèi)容可以與備份服務(wù)器的那些相同。
另一方面,在圖2中示出的示例中,活動(dòng)服務(wù)器的db版本與備份服務(wù)器的那個(gè)不相同,例如活動(dòng)服務(wù)器的db版本為v1.0而備份服務(wù)器的db版本為v1.1,使得存儲(chǔ)器的內(nèi)容即尺寸、順序、位置等被改變。在該示例中,如果活動(dòng)服務(wù)器中的db被直接存儲(chǔ)在備份服務(wù)器,則db可能彼此沖突或者某些數(shù)據(jù)可能丟失。
因此,db不能在活動(dòng)服務(wù)器和備份服務(wù)器之間被同步。
換言之,當(dāng)版本相同時(shí),雙工服務(wù)器之間的db同步是可能的,而當(dāng)服務(wù)器具有不同db版本時(shí),雙工服務(wù)器之間的db同步是不可能的。
可以存在其中活動(dòng)服務(wù)器和備份服務(wù)器具有不同db版本的許多情況。例如,當(dāng)備份服務(wù)器中的db在活動(dòng)服務(wù)器中的db之前按照db更新指令被更新時(shí),活動(dòng)服務(wù)器的db版本從那個(gè)時(shí)間點(diǎn)變得與備份服務(wù)器的那個(gè)不同。
然而,如果意外錯(cuò)誤發(fā)生在驅(qū)動(dòng)能量管理系統(tǒng)的過程中,則該系統(tǒng)可以被切換。當(dāng)這發(fā)生時(shí),為了提供與在該系統(tǒng)被切換之前相同的數(shù)據(jù)和操作環(huán)境,在雙工服務(wù)器之間同步db是必要的。
因此,在該系統(tǒng)被切換之前甚至在db更新期間僅當(dāng)針對(duì)必要數(shù)據(jù)同步db時(shí)可以開始且穩(wěn)定操作該系統(tǒng)。
技術(shù)實(shí)現(xiàn)要素:
本公開內(nèi)容的一個(gè)方面在于提供一種管理雙工服務(wù)器之間的db的方法使得在該系統(tǒng)被切換之前同步db。
本公開內(nèi)容的另一個(gè)方面在于提供一種管理雙工服務(wù)器之間的db的方法,通過該方法,具有不同版本的db可以基于名稱鍵而在服務(wù)器之間被同步。
本公開內(nèi)容的又一個(gè)方面在于提供一種管理雙工服務(wù)器之間的db的方法,通過該方法,可以更有效管理db且可以更穩(wěn)定操作該系統(tǒng)。
本公開內(nèi)容的目的不限于上述目標(biāo),并且其他目標(biāo)和優(yōu)點(diǎn)可以由本領(lǐng)域技術(shù)人員從下面的描述中認(rèn)識(shí)到。另外,將容易認(rèn)識(shí)到,本公開內(nèi)容的目標(biāo)和優(yōu)點(diǎn)可以由在隨附權(quán)利要求和其組合中記載的裝置來實(shí)踐。
根據(jù)本公開內(nèi)容的一個(gè)方面,一種管理雙工服務(wù)器中的數(shù)據(jù)庫(db)的方法包括:將備份服務(wù)器中的db更新到第一版本;將備份服務(wù)器中的名稱鍵列表發(fā)送到活動(dòng)服務(wù)器;將在活動(dòng)服務(wù)器和備份服務(wù)器之間相同的名稱鍵發(fā)送到備份服務(wù)器;且通過使用相同的名稱鍵來同步活動(dòng)服務(wù)器和備份服務(wù)器之間的db。
活動(dòng)服務(wù)器中的db的版本可以為第二版本。
將名稱鍵列表發(fā)送到活動(dòng)服務(wù)器可以包括:識(shí)別備份服務(wù)器中的db的版本與活動(dòng)服務(wù)器中的db的版本不同。
將名稱鍵發(fā)送到備份服務(wù)器可以包括:基于通過將活動(dòng)服務(wù)器中的名稱鍵列表與備份服務(wù)器的名稱鍵列表進(jìn)行比較而獲得的結(jié)果來提取相同的名稱鍵。
在活動(dòng)服務(wù)器和備份服務(wù)器之間同步db可以包括復(fù)制且存儲(chǔ)與從活動(dòng)服務(wù)器接收到的名稱鍵對(duì)應(yīng)的數(shù)據(jù)。
名稱鍵中的每個(gè)可以被定義為指派訪問db中的數(shù)據(jù)對(duì)象id。
同步活動(dòng)服務(wù)器和備份服務(wù)器之間的db可以包括確定是否復(fù)制且存儲(chǔ)與從活動(dòng)服務(wù)器接收到的名稱鍵對(duì)應(yīng)的數(shù)據(jù)。
同步活動(dòng)服務(wù)器和備份服務(wù)器之間的db可以包括從活動(dòng)服務(wù)器根據(jù)在備份服務(wù)器處接收到的名稱鍵列表而請(qǐng)求同步。
根據(jù)本公開內(nèi)容的示例性實(shí)施例,db可以在雙工服務(wù)器之間被同步。
根據(jù)本公開內(nèi)容的另一個(gè)示例性實(shí)施例,具有不同版本的db可以基于名稱鍵來同步。
根據(jù)本公開內(nèi)容的又一個(gè)示例性實(shí)施例,可以更有效管理db且因此可以更穩(wěn)定操作該系統(tǒng)。
附圖說明
圖1是概念性地示出典型雙工ems服務(wù)器中的db同步的示意圖;
圖2是圖形地示出在典型雙工ems服務(wù)器中未同步db的示意圖;
圖3示出根據(jù)本公開內(nèi)容的示例性實(shí)施例的ems系統(tǒng)中的db同步過程;
圖4示出根據(jù)本公開內(nèi)容的示例性實(shí)施例的ems系統(tǒng)中的db同步過程。
圖5是用于示出在圖3和圖4中示出的ems系統(tǒng)中的db同步過程的流程圖。
具體實(shí)施方式
將省略對(duì)本文并入的公知功能和結(jié)構(gòu)的詳細(xì)描述以避免使本公開內(nèi)容的主題模糊不清。另外,在本說明書和權(quán)利要求書中使用的術(shù)語或詞語不應(yīng)僅僅在常規(guī)的且詞典的定義上來理解,而是應(yīng)當(dāng)基于允許發(fā)明人恰當(dāng)?shù)囟x術(shù)語的概念以便以最好的方式描述他的或她的發(fā)明的原理在與本發(fā)明的技術(shù)構(gòu)思相對(duì)應(yīng)的意義和概念上來理解。因此,諸如在常用詞典中定義的術(shù)語的術(shù)語應(yīng)當(dāng)被解釋為具有與它們?cè)谙嚓P(guān)領(lǐng)域和/或本申請(qǐng)的背景下的意義一致的意義。
附圖中的框的組合和流程圖中的步驟可以根據(jù)計(jì)算機(jī)程序指令來執(zhí)行。這些計(jì)算機(jī)程序指令可以被安裝在通用計(jì)算機(jī)、專用計(jì)算機(jī)或可編程數(shù)據(jù)處理設(shè)備的其它處理器中。因此,由計(jì)算機(jī)或者可編程數(shù)據(jù)處理設(shè)備的其它處理器執(zhí)行的指令創(chuàng)建用于執(zhí)行在附圖中的框或流程圖中的步驟中描述的功能的裝置。
這些計(jì)算機(jī)程序指令可以被存儲(chǔ)在計(jì)算機(jī)可用的或者計(jì)算機(jī)可讀的存儲(chǔ)器中,其可以輔助計(jì)算機(jī)或者可編程數(shù)據(jù)處理設(shè)備的其它處理器以特定方式實(shí)現(xiàn)特定功能。因此,在計(jì)算機(jī)可用的或者計(jì)算機(jī)可讀的存儲(chǔ)器中存儲(chǔ)的指令可以用于制造包括用于執(zhí)行在附圖中的框或者流程圖中的步驟中描述的功能的指令裝置的產(chǎn)品。
計(jì)算機(jī)程序指令也可以被安裝在計(jì)算機(jī)或者可編程數(shù)據(jù)處理設(shè)備的其它處理器中。因此,操作步驟的序列可以在計(jì)算機(jī)或者可編程數(shù)據(jù)處理設(shè)備的其它處理器上執(zhí)行以產(chǎn)生計(jì)算機(jī)可執(zhí)行過程。此外,操作計(jì)算機(jī)或者可編程數(shù)據(jù)處理設(shè)備的其它處理器的指令可以提供用于執(zhí)行在附圖中的框或流程圖中的步驟中描述的功能的步驟。
此外,框或步驟可以表示模塊的一部分、包括用于執(zhí)行特定邏輯功能的一個(gè)或多個(gè)可執(zhí)行指令的片段或代碼。此外,在一些可替換實(shí)施例中,應(yīng)當(dāng)注意的是框或步驟中描述的功能可以缺乏特定序列而執(zhí)行。例如,兩個(gè)連續(xù)框或步驟可以基本上立即執(zhí)行或者可以有時(shí)取決于對(duì)應(yīng)功能而以倒序執(zhí)行。
圖3和圖4示出根據(jù)本公開內(nèi)容的示例性實(shí)施例的ems系統(tǒng)中的db同步過程。
根據(jù)本公開內(nèi)容的示例性實(shí)施例,具有活動(dòng)服務(wù)器和備份服務(wù)器的雙工ems服務(wù)器可以通過使用名稱鍵列表而執(zhí)行活動(dòng)服務(wù)器和備份服務(wù)器之間的db同步。
以前,當(dāng)發(fā)布db更新指令時(shí),首先更新備份服務(wù)器,且活動(dòng)服務(wù)器繼續(xù)用當(dāng)前db操作,因?yàn)樵撓到y(tǒng)必須被操作。然后,在更新了備份服務(wù)器之后,活動(dòng)服務(wù)器被更新以具有與備份服務(wù)器的那個(gè)相同的db。
然而,如果在更新了備份服務(wù)器之后但還未更新活動(dòng)服務(wù)器錯(cuò)誤出現(xiàn)在該系統(tǒng)中使得該系統(tǒng)被切換,則備份服務(wù)器的db的版本變得與活動(dòng)服務(wù)器的那個(gè)不同。因此,db同步失敗。因此,在該系統(tǒng)被切換之后,備份服務(wù)器不能與活動(dòng)服務(wù)器同步且被初始化。
相比之下,根據(jù)本公開內(nèi)容的示例性實(shí)施例,即使活動(dòng)服務(wù)器中的db的版本與備份服務(wù)器的那個(gè)不同,則通過使用名稱鍵列表,可以同步db中的具有相同名稱鍵的一些。
每個(gè)服務(wù)器包括處理器,且處理器提供名稱鍵列表。當(dāng)數(shù)據(jù)被存儲(chǔ)在db中時(shí),創(chuàng)建名稱鍵列表。當(dāng)操作ems時(shí),處理器創(chuàng)建名稱鍵列表。名稱鍵可以被視作指派訪問數(shù)據(jù)對(duì)象的id。每當(dāng)添加數(shù)據(jù)對(duì)象,就添加名稱鍵。當(dāng)數(shù)據(jù)的位置和順序改變時(shí),列出的名稱鍵也改變。
當(dāng)操作員從外部經(jīng)由操作員終端發(fā)行db更新指令時(shí),執(zhí)行db更新指令且更新備份服務(wù)器。
例如,讓我們假設(shè)更新的備份服務(wù)器的db版本為v1.1。
讓我們假設(shè)當(dāng)前正在工作的活動(dòng)服務(wù)器的db版本是v1.0。
因此,可以看出備份服務(wù)器的db版本與活動(dòng)服務(wù)器的db版本不同。當(dāng)這發(fā)生時(shí),在現(xiàn)有技術(shù)中,服務(wù)器不能被同步直到更新活動(dòng)服務(wù)器為止。
當(dāng)備份服務(wù)器中的處理器識(shí)別備份服務(wù)器的db與活動(dòng)服務(wù)器的db不同時(shí),將名稱鍵列表從備份服務(wù)器發(fā)送到活動(dòng)服務(wù)器。
因此,如圖3所示,在更新了備份服務(wù)器之后,它將更新的名稱鍵列表發(fā)送到活動(dòng)服務(wù)器。
隨后,如圖4所示,活動(dòng)服務(wù)器接收來自備份服務(wù)器的名稱鍵列表且僅將與當(dāng)前db版本的名稱鍵列表一致的名稱鍵發(fā)送到備份服務(wù)器。
這些操作可以由活動(dòng)服務(wù)器的處理器執(zhí)行。
具體地,當(dāng)備份服務(wù)器發(fā)送名稱鍵列表時(shí),活動(dòng)服務(wù)器的處理器確定活動(dòng)服務(wù)器中的db的當(dāng)前版本的名稱鍵列表與更新的備份服務(wù)器的名稱鍵列表是否相同,且從列表中提取相同的名稱鍵。然后,活動(dòng)服務(wù)器的處理器將相同名稱鍵的列表發(fā)送到備份服務(wù)器,且備份服務(wù)器根據(jù)該列表請(qǐng)求同步,由此將活動(dòng)服務(wù)器中的db與備份服務(wù)器中的db同步。
另一方面,不相同的名稱鍵即存在于備份服務(wù)器中的db中而不存在于活動(dòng)服務(wù)器中的db中的數(shù)據(jù)不被同步。
當(dāng)該系統(tǒng)被切換且稍后重新啟動(dòng)時(shí),與備份服務(wù)器中的db同步的活動(dòng)服務(wù)器中的db的一些數(shù)據(jù)被備份,且因此可以防止備份服務(wù)器中的所有數(shù)據(jù)被初始化。
圖5是用于示出在圖3和圖4中示出的ems系統(tǒng)中的db同步過程的流程圖。
按照用戶的意圖執(zhí)行db更新指令。
因此,首先更新備份服務(wù)器中的db(步驟s110)。
雖然在該示例性實(shí)施例中首先按照更新指令來更新備份服務(wù)器中的db,但是在一些實(shí)現(xiàn)方式中可以首先更新活動(dòng)服務(wù)器中的db。更新的備份服務(wù)器中的db的名稱鍵列表被發(fā)送到活動(dòng)服務(wù)器(步驟s120)。
當(dāng)備份服務(wù)器中的處理器識(shí)別備份服務(wù)器的db與活動(dòng)服務(wù)器的db不同時(shí),將名稱鍵列表從備份服務(wù)器發(fā)送到活動(dòng)服務(wù)器。
例如,如果按照更新指令在備份服務(wù)器中執(zhí)行更新操作,則將名稱鍵列表發(fā)送到活動(dòng)服務(wù)器,且然后活動(dòng)服務(wù)器可以識(shí)別備份服務(wù)器可以被更新。
通過這樣來做,活動(dòng)服務(wù)器接收來自備份服務(wù)器的名稱鍵列表且提取在活動(dòng)服務(wù)器和備份服務(wù)器之間的列表之間的相同的名稱鍵,以將僅相同名稱鍵發(fā)送到備份服務(wù)器(步驟s130)。
活動(dòng)服務(wù)器的db與備份服務(wù)器的那個(gè)同步(步驟s140)。
這可以在當(dāng)備份服務(wù)器中的處理器復(fù)制且存儲(chǔ)與從活動(dòng)服務(wù)器接收到的名稱鍵對(duì)應(yīng)的數(shù)據(jù)時(shí)完成。
后來,當(dāng)該系統(tǒng)被切換時(shí),與由備份服務(wù)器的處理器未從活動(dòng)服務(wù)器接收到的名稱鍵對(duì)應(yīng)的所有數(shù)據(jù)被初始化,且與活動(dòng)服務(wù)器同步的數(shù)據(jù)被存儲(chǔ)且可以在重新啟動(dòng)該系統(tǒng)時(shí)再次使用。因此,可以在備份服務(wù)器的db更新期間甚至針對(duì)具有不同db版本的活動(dòng)服務(wù)器同步數(shù)據(jù)。
因此,如果db的版本彼此不同時(shí),操作員可以根據(jù)需要在雙工服務(wù)器之間同步db。
而且,根據(jù)本公開內(nèi)容的示例性實(shí)施例,具有不同版本的db可以基于名稱鍵來同步,使得活動(dòng)服務(wù)器和備份服務(wù)器之間的db的一致和同步可以被實(shí)現(xiàn),這是重要要素。因此,可以更有效管理db且可以更穩(wěn)定操作該系統(tǒng)。
以上描述的本公開內(nèi)容可以由本發(fā)明屬于的本領(lǐng)域技術(shù)人員在不脫離本公開內(nèi)容的范圍和精神的情況下來不同地替代、更改和修改。因此,本公開內(nèi)容不限于上述示例性實(shí)施例和附圖。