本發明涉及設備升級領域,具體而言,涉及一種設備升級的方法、裝置和系統。
背景技術:
工業設備在出廠時設置有預定的程序,在使用的過程中,隨著新的程序的研發,還需要進行設備的升級。以智能開關為例,現有技術中對智能開關等設備或其他工業品的軟件升級,一般是利用編程線纜進行芯片編程或使用文件拷貝等方式替換執行文件。還有一些技術采用無線傳輸等技術進行軟件升級。
但使用編程線的方式,復雜繁瑣,必須有運行維護人員親自進行操作,從而導致成本高昂,費時費力。
針對現有技術中設備的升級通常使用編程線的方式,必須有運行維護人員親自進行操作,從而導致升級成本高的問題,目前尚未提出有效的解決方案。
技術實現要素:
本發明實施例提供了一種設備升級的方法、裝置和系統,以至少解決現有技術中設備的升級通常使用編程線的方式,必須有運行維護人員親自進行操作,從而導致升級成本高的技術問題。
根據本發明實施例的一個方面,提供了一種設備升級的方法,包括:接收設備發送的更新許可,其中,更新許可與設備的設備信息相對應;對設備的更新許可進行驗證;如果驗證成功,則將預存的固件數據發送至設備。
根據本發明實施例的另一方面,還提供了一種設備升級的方法,包括:向遠端服務器發送更新許可,其中,更新許可用于遠端服務器對待更新固件的設備進行驗證;接收遠端服務器返回的固件數據,并根據固件數據進行更新。
根據本發明實施例的另一方面,還提供了一種設備升級的裝置,包括:接收模塊,用于接收設備發送的更新許可,其中,更新許可與設備的設備信息相對應;驗證模塊,用于對設備的更新許可進行驗證;發送模塊,用于如果驗證成功,則將預存的固件數據發送至設備。
根據本發明實施例的另一方面,還提供了一種設備升級的裝置,包括:發送模塊,用于向遠端服務器發送更新許可,其中,更新許可用于遠端服務器對待更新固件的設備進行驗證;更新模塊,用于接收遠端服務器返回的固件數據,并根據固件數據進行更新。
根據本發明實施例的另一方面,還提供了一種存儲介質,存儲介質包括存儲的程序,其中,在程序運行時控制存儲介質所在設備執行上述任意一項的設備升級的方法。
根據本發明實施例的另一方面,還提供了一種處理器,處理器用于運行程序,其中,程序運行時執行上述任意一項的設備升級的方法。
根據本發明實施例的另一方面,還提供了一種存儲介質,存儲介質包括存儲的程序,其中,在程序運行時控制存儲介質所在設備執行上述任意一項的設備升級的方法。
根據本發明實施例的另一方面,還提供了一種處理器,處理器用于運行程序,其中,程序運行時執行上述任意一項的設備升級的方法。
在本發明實施例中,接收設備發送的更新許可,對設備的更新許可進行驗證,如果驗證成功,則將預存的固件數據發送至設備。上述方案通過對與設備的設備信息對應的更新許可進行驗證,從而確定更新設備是否滿足更新固件的條件,在驗證成功的情況下確定設備可以進行固件更新,并將固件數據發送至設備。上述方案不僅不需要人為的將固件數據導入設備,還能夠確保固件設備的升級安全問題。從而解決了現有技術中設備的升級通常使用編程線的方式,必須有運行維護人員親自進行操作,從而導致升級成本高的技術問題。
附圖說明
此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:
圖1是根據本發明實施例的設備升級的方法的流程圖;
圖2是根據本發明實施例的設備升級的方法的流程圖;
圖3是根據本申請實施例的一種可選的設備升級的方法的流程圖;
圖4是根據本申請實施例的一種可選的設備升級的裝置的示意圖;
圖5是根據本申請實施例的一種可選的設備升級的裝置的示意圖;以及
圖6是根據本申請實施例的一種設備升級的系統的示意圖。
具體實施方式
為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。
需要說明的是,本發明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數據在適當情況下可以互換,以便這里描述的本發明的實施例能夠以除了在這里圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
為了便于理解,下面,將下述實施例中的名詞進行解釋:
空中升級:即ota(over-the-air)升級,其本質是利用了移動互聯網絡,進行的獲取固件、校驗、運行文件替換升級等一系列流程。
bootloader:用于在軟件正式執行之前,執行例如升級將要執行的軟件等其他操作,然后引導設備跳轉到軟件的起始位置開始執行程序。
實施例1
根據本發明實施例,提供了一種設備升級的方法的實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執行指令的計算機系統中執行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟。
圖1是根據本發明實施例的設備升級的方法的流程圖,如圖1所示,該方法包括如下步驟:
步驟s102,接收設備發送的更新許可,其中,更新許可與設備的設備信息相對應。
具體的,可以通過遠程服務器來接收上述設備發送的更新許可,上述設備可以是待進行固件更新的智能開關,設備發送的更新許可可以為證書等數據,用于遠程服務器驗證是否能夠對設備進行更新,遠程服務器可以存儲有待更新的固件數據。
以智能開關為例,設備的設備信息可以是每個智能開關在出廠后固有的憑證,例如,可以是智能開關電路板中cpu的標識,可以是智能開關的出廠設備串號等信息。一個設備僅有對應的唯一一個設備信息,也即一個設備在一次更新中只能有對應的唯一一個更新許可。
步驟s104,對設備的更新許可進行驗證。
在上述步驟中,設備可以將設備發送的更新許可預存的更新許可進行比對,來驗證設備的更新許可。
步驟s106,如果驗證成功,則將預存的固件數據發送至設備。
在一種可選的實施例中,在商家向用戶出售智能開關之后,用戶得知智能開關中的固件存在新的可更新的版本,需要對智能開關進行更新,因此智能開關向遠端服務器發送與智能開關的設備信息對應的更新許可,遠程服務器對更新許可驗證成功后,向智能開關返回固件數據,以使智能開關使用遠程服務器返回的固件數據進行固件更新。
在另一種可選的實施例中,仿造的智能開關為了獲取商家在遠端服務器中存儲的更新的固件數據,偽造更新許可,并將偽造的更新許可發送至遠端服務器,由于更新許可為偽造的更新許可,因此遠端服務器對更新許可進行驗證失敗,在驗證失敗的情況下,禁止將固件數據下發至智能開關,從而杜絕偽造的智能開關獲取更新固件。
此處需要說明的是,上述向設備發送更新許可的設備可以是一個待進行固件更新的設備,也可以是多個待進行固件更新的設備集群。遠端服務器可以一次更新一個設備,也可以一次更新多個設備。
此處還需要說明的是,由于上述方案在設備升級時需要驗證更新許可,因此遠程服務器可以在客戶端查詢的時候靈活的根據用戶設定的策略,選擇是否頒發升級的許可。而不是像目前的設備升級系統,發布新軟件后所有設備都可以直接升級。
由上可知,本申請上述實施例接收設備發送的更新許可,對設備的更新許可進行驗證,如果驗證成功,則將預存的固件數據發送至設備。上述方案通過對與設備的設備信息對應的更新許可進行驗證,從而確定更新設備是否滿足更新固件的條件,在驗證成功的情況下確定設備可以進行固件更新,并將固件數據發送至設備。上述方案不僅不需要人為的將固件數據導入設備,還能夠確保固件設備的升級安全問題。從而解決了現有技術中設備的升級通常使用編程線的方式,必須有運行維護人員親自進行操作,從而導致升級成本高的技術問題。
可選的,根據本申請上述實施例,在接收設備發送的更新許可之前,方法還包括:
步驟s108,接收設備發送的設備信息,并對設備信息進行驗證。
仍以智能開關為例,上述設備信息可以為智能開關,智能開關的設備信息可以是每個智能開關在出廠后固有的憑證,例如,可以是智能開關電路板上的cpu標識,可以是智能開關的出廠設備串號等信息,一個設備僅有對應的唯一一個設備信息。
步驟s1010,在設備信息驗證成功的情況下,根據設備信息生成更新許可,并向設備發送更新許可和固件信息,其中,固件信息用于表征待更新固件的屬性信息。
具體的,上述待更新固件的屬性信息可以包括:待更新固件的版本號、數據大小等信息。根據設備信息生成的更新許可與設備信息一一對應,即一個設備信息再一次更新過程中僅能生成一個更新許可。
上述步驟可以由遠端服務器中的查詢接口服務器執行。
可選的,根據本申請上述實施例,在將固件數據發送至設備的同時,上述方法還包括:
步驟s1014,生成任務標志信息,其中,任務標志信息用于表征向設備發送固件數據的進度。
具體的,上述任務標識信息由遠端服務器生成。例如,遠端服務器已將75%的固件數據發送至設備,則任務標志信息可以為75%。
步驟s1016,將任務標志信息發送至進度監控服務器。
具體的,上述進度監控服務器用于監控設備升級的進度,包括控遠端服務器向設備發送固件數據的進度。
實施例2
根據本發明實施例,提供了一種設備升級的方法的實施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執行指令的計算機系統中執行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟。
圖2是根據本發明實施例的設備升級的方法的流程圖,如圖2所示,該方法包括如下步驟:
步驟s202,向遠端服務器發送更新許可,其中,所述更新許可用于所述遠端服務器對待更新固件的設備進行驗證。
在上述步驟中,向遠端服務器發送更新許可,可以是向遠端服務器中的固件下載服務器發送的更新許可,如果遠端服務器對更新許可驗證成功,則向設備發送待更新固件的固件數據。
步驟s204,接收遠端服務器返回的固件數據,并根據固件數據進行更新。
具體的,上述固件數據可以是遠端服務器中的固件下載服務器向設備發送。在一種可選的實施例中,固件下載服務器在接收到設備發送的更新許可之后對更新許可進行驗證,在驗證成功的情況下向設備返回固件數據,設備根據固件數據進行固件更新。
由上可知,本申請上述實施例,向固件下載服務器發送更新許可,接收固件下載服務器返回的固件數據,并根據固件數據進行更新。上述方案通過向遠端服務器發送待驗證的更新許可,從而使遠端服務器確定設備是否滿足更新固件的條件,在驗證成功的情況下確定設備可以進行固件更新,并將固件數據發送至設備。上述方案不僅不需要人為的將固件數據導入設備,還能夠確保固件設備的升級安全問題。從而解決了現有技術中設備的升級通常使用編程線的方式,必須有運行維護人員親自進行操作,從而導致升級成本高的技術問題。
可選的,根據本申請上述實施例,在向遠端服務器發送更新許可之前,方法還包括:
步驟s206,根據預設指令觸發啟動更新。
具體的,上述預設指令可以是設備端的ota組件接收到的遠程指令,也可以是設備端本地的控制命令。遠程指令和控制命令都可以對設備進行單一更新控制,或對多個設備構成的設備集群進行批量更新控制。為了便于發送遠程服務器是否存在最新的可更新固件,設備端可以選擇遠程服務器在生成新的可更新固件時向設備端進行推送,再由用戶在設備端確定是否進行更新,或設備端對遠端服務器進行主動巡檢,在檢查到新的可更新固件時,再由用戶在設備端確定是否進行固件的更新。
步驟s208,向接口服務器發送設備信息。
具體的,上述設備信息可以是與設備一一對應的標識信息,以智能開關為例,設備的設備信息可以是每個智能開關在出廠后固有的憑證,例如,可以是智能開關電路板上的cpu標識,可以是智能開關的出廠設備串號等信息。
接收接口服務器返回的固件信息和更新許可,其中,固件信息用于表征待更新固件的屬性信息。
可選的,根據本申請上述實施例,接收遠端服務器返回的固件數據,并根據固件數據進行更新,包括:
步驟s2041,根據固件信息生成臨時存儲區,并將固件數據存儲至臨時存儲區。
步驟s2043,將固件數據中的驗證信息與固件信息中的驗證信息進行比對。
具體的,上述驗證信息可以為簽名信息,驗證步驟用于確定接收到的固件數據為待更新的固件數據,在固件數據中的簽名與固件信息中的簽名不一致的情況下,可以禁止設備進行更新,并向遠端服務器返回驗證結果。
步驟s2045,在固件數據中的驗證信息與固件數據中的驗證信息一致的情況下,根據固件數據對設備進行更新。
可選的,根據本申請上述實施例,在根據固件數據對設備進行更新之后,方法還包括:
步驟s2010,清空臨時存儲區。
步驟s2012,將升級結果發送至進度監控服務器。
具體的,上述進度監控服務器可以屬于遠端服務器中的進度監控服務器,用于監控設備升級的進度。在進度監控服務器接收到升級結果,設備以更新后的固件運行,完成設備的ota。
圖3是根據本申請實施例的一種可選的設備升級的方法的流程圖,下面,結合圖3所示的示例,對一種設備的升級方法的實施例進行描述,在該示例中,設備處于本地的設備端,查詢接口服務器
步驟s301,設備60向查詢接口服務器621發送設備信息。
具體的,以設備為智能開關為例,上述設備信息可以為智能開關在出廠后固有的憑證,例如,可以是智能開關電路板上的cpu標識,可以是智能開關的出廠設備串號等信息。
在上述步驟中,設備的ota組件接收到遠程命令或本地控制命令,啟動更新流程。啟動后將設備系統信息提交到遠端升級服務端的查詢接口服務中,以獲取當前遠端服務端所提供的最新軟件信息。
步驟s302,查詢接口服務器621向設備60返回固件信息和更新許可。
具體的,上述更新許可根據設備的設備信息生成,因此預設被具有一一對應的關系,上述固件信息可以為固件的屬性信息,例如固件的版本號、文件大小等信息。
在上述步驟中,遠端服務器將最新提供的固件信息返回給設備。返回的信息中包含一份對于此次升級生成的升級許可,即上述更新許可。此許可用于驗證升級操作的有效性,以及作為升級過程保存在遠端服務端的憑據。
步驟s303,查詢接口服務器621將更新許可的信息發送至固件下載服務器623。
在上述步驟中,查詢接口服務器將設備的更新許可發送至固件下載服務器,用于固件下載服務器對更新許可進行驗證。
步驟s304,設備60根據固件信息準備臨時存儲區,并向固件下載服務器623發送更新許可。
在上述步驟中,按照固件信息中描述,準備出用于存儲下載的固件數據的臨時存儲區,并將更新許可提交給下載服務以啟動數據下載。
步驟s305,在固件下載服務器623對設備60的更新許可驗證成功的情況下,將固件數據發送至設備。
當臨時存儲區準備就緒后,遠端的固件下載服務將許可中標記的固件數據以流的形式傳輸給設備,設備將數據保存到剛準備的臨時存儲區。
步驟s306,固件下載服務器623在對設備60發送固件數據的同時,向進度監控服務器625返回發送固件數據的進度數據。
遠端服務器在發送數據完成之后,將發送的結果以及下一步的信息告知給進度監控服務用以監控設備端的升級進度。
步驟s307,設備60使用固件數據進行更新。
設備在接收到固件數據之后,首先將固件數據中的驗證信息(例如:簽名)與固件信息中的驗證信息進行匹配,在匹配成功的情況下確定給固件數據為向遠端服務器所請求的固件數據。在對固件數據驗證成功后,升級組件通知bootloader(引導模式)下載數據位置等信息,然后重新引導設備。在bootloader啟動后,如果檢測到標記位中包含升級軟件的標記,則將會執行軟件主程序更新的操作,替換芯片內程序的存儲區內容為bootloader下載的新軟件數據(即在臨時存儲區中存儲的固件數據),然后進行數據校驗,最后清除臨時存儲區。
步驟s308,設備60更新固件成功后,生成升級結果報告,并將升級結果發送至進度監控服務器625,進度監控服務器用于監控設備的升級進度,記錄此次升級的所有流程和結果,還能夠將此次升級的流程和結果顯示至供用戶查詢的界面中。
實施例3
根據本發明實施例,提供了一種設備升級的裝置的實施例,圖4是根據本申請實施例的一種可選的設備升級的裝置的示意圖,結合圖4所示,該裝置包括:
接收模塊40,用于接收設備發送的更新許可,其中,更新許可與設備的設備信息相對應。
具體的,可以通過遠程服務器來接收上述設備發送的更新許可,上述設備可以是待進行固件更新的智能開關,設備發送的更新許可可以為證書等數據,用于遠程服務器驗證是否能夠對設備進行更新,遠程服務器可以存儲有待更新的固件數據。
驗證模塊42,用于對設備的更新許可進行驗證。
發送模塊44,用于如果驗證成功,則將預存的固件數據發送至設備。
此處需要說明的是,上述向設備發送更新許可的設備可以是一個待進行固件更新的設備,也可以是多個待進行固件更新的設備集群。遠端服務器可以一次更新一個設備,也可以一次更新多個設備。
此處還需要說明的是,由于上述方案在設備升級時需要驗證更新許可,因此遠程服務器可以在客戶端查詢的時候靈活的根據用戶設定的策略,選擇是否頒發升級的許可。而不是像目前的設備升級系統,發布新軟件后所有設備都可以直接升級。
由上可知,本申請上述實施例通過接收模塊接收設備發送的更新許可,通過驗證模塊對設備的更新許可進行驗證,如果驗證成功,則通過發送模塊將預存的固件數據發送至設備。上述方案通過對與設備的設備信息對應的更新許可進行驗證,從而確定更新設備是否滿足更新固件的條件,在驗證成功的情況下確定設備可以進行固件更新,并將固件數據發送至設備。上述方案不僅不需要人為的將固件數據導入設備,還能夠確保固件設備的升級安全問題。從而解決了現有技術中設備的升級通常使用編程線的方式,必須有運行維護人員親自進行操作,從而導致升級成本高的技術問題。
實施例4
根據本發明實施例,提供了一種設備升級的裝置的實施例,圖5是根據本申請實施例的一種可選的設備升級的裝置的示意圖,結合圖5所示,該裝置包括:
發送模塊50,用于向遠端服務器發送更新許可,其中,更新許可用于遠端服務器對待更新固件的設備進行驗證。
更新模塊52,用于接收遠端服務器返回的固件數據,并根據固件數據進行更新。
由上可知,本申請上述實施例,通過發送模塊向固件下載服務器發送更新許可,通過更新模塊接收固件下載服務器返回的固件數據,并根據固件數據進行更新。上述方案通過向遠端服務器發送待驗證的更新許可,從而使遠端服務器確定設備是否滿足更新固件的條件,在驗證成功的情況下確定設備可以進行固件更新,并將固件數據發送至設備。上述方案不僅不需要人為的將固件數據導入設備,還能夠確保固件設備的升級安全問題。從而解決了現有技術中設備的升級通常使用編程線的方式,必須有運行維護人員親自進行操作,從而導致升級成本高的技術問題。
實施例5
根據本發明實施例,提供了一種設備升級的系統的實施例,圖6是根據本申請實施例的一種設備升級的系統的示意圖,結合圖6所示,該系統包括:
設備60,向遠端服務器發送更新許可。
遠端服務器62,與設備通信,對更新許可進行驗證,如果驗證成功,則將預存的固件數據發送至設備。
此處需要說明的是,上述向設備發送更新許可的設備可以是一個待進行固件更新的設備,也可以是多個待進行固件更新的設備集群。遠端服務器可以一次更新一個設備,也可以一次更新多個設備。
此處還需要說明的是,由于上述方案在設備升級時需要驗證更新許可,因此遠程服務器可以在客戶端查詢的時候靈活的根據用戶設定的策略,選擇是否頒發升級的許可。而不是像目前的設備升級系統,發布新軟件后所有設備都可以直接升級。
由上可知,本申請上述實施例接收設備發送的更新許可,對設備的更新許可進行驗證,如果驗證成功,則將預存的固件數據發送至設備。上述方案通過對與設備的設備信息對應的更新許可進行驗證,從而確定更新設備是否滿足更新固件的條件,在驗證成功的情況下確定設備可以進行固件更新,并將固件數據發送至設備。上述方案不僅不需要人為的將固件數據導入設備,還能夠確保固件設備的升級安全問題。從而解決了現有技術中設備的升級通常使用編程線的方式,必須有運行維護人員親自進行操作,從而導致升級成本高的技術問題。
實施例6
根據本發明實施例,提供了一種存儲介質,存儲介質包括存儲的程序,其中,在程序運行時控制存儲介質所在設備執行實施例1中任意一項的設備升級的方法。
上述設備升級的方法可如實施例1所示,此處不再贅述。
實施例7
根據本發明實施例,提供了一種處理器,處理器用于運行程序,其中,程序運行時執行實施例1中任意一項的設備升級的方法。
上述設備升級的方法可如實施例1所示,此處不再贅述。
實施例8
根據本發明實施例,提供了一種存儲介質,存儲介質包括存儲的程序,其中,在程序運行時控制存儲介質所在設備執行實施例2中任意一項的設備升級的方法。
上述設備升級的方法可如實施例2所示,此處不再贅述。
實施例9
根據本發明實施例,提供了一種處理器,處理器用于運行程序,其中,程序運行時執行實施例2中任意一項的設備升級的方法。
上述設備升級的方法可如實施例2所示,此處不再贅述。
上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。
在本發明的上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的技術內容,可通過其它的方式實現。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,可以為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可為個人計算機、服務器或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:u盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。