本發明屬于安防監控領域,尤其涉及一種存儲設備管理方法及裝置。
背景技術:
隨著人們對安防監控的需求持續增長,越來越多的廠商投入到安防監控設備的生產中,在實際應用中,經常會出現在同一場景下,存在多個廠商提供的多個型號的存儲設備的情況。
由于缺乏統一的標準,各個廠商的存儲設備可能會有不同的軟件開發工具包(Software Development Kit,SDK),用戶往往需要依靠各個廠商提供的管理軟件分別對相應的存儲設備進行監控和管理,使用不便且效率低下。
技術實現要素:
鑒于此,本發明實施例提供一種存儲設備管理方法及裝置,以解決現有的存儲設備管理使用不便且效率低下的問題。
本發明實施例提供的一種存儲設備管理方法,包括:
獲取待執行的管理操作和對應的存儲設備型號;
加載與所述存儲設備型號對應的預置的適配庫;
調用與所述適配庫對應的SDK接口執行所述待執行的管理操作。
進一步地,在調用與所述適配庫對應的SDK接口之前,還包括:
判斷所述待執行的管理操作是否屬于預設的通用操作;
若所述待執行的管理操作不屬于預設的通用操作,則執行預設的差異化處理,以使傳入所述適配庫的參數與所述適配庫對應的SDK接口的輸入參數相匹配。
進一步地,在加載與所述存儲設備型號對應的預置的適配庫之前,還包括:
獲取各個廠家的存儲設備的SDK的差異化信息;
將所述差異化信息寫入預設的配置文件。
進一步地,所述差異化處理具體包括:
從所述配置文件中獲取與所述存儲設備型號對應的差異化信息;
根據所述差異化信息對傳入所述適配庫的參數進行解析,得到與所述適配庫對應的SDK接口的輸入參數相匹配的解析結果。
進一步地,在獲取待執行的管理操作和對應的存儲設備型號之前,還包括:
獲取各個廠家的存儲設備的SDK;
分別添加與所述各個廠家的存儲設備的SDK對應的適配庫,所述適配庫的接口與所述各個廠家的存儲設備的SDK接口一致。
本發明實施例提供的一種存儲設備管理裝置,包括:
操作信息獲取模塊,用于獲取待執行的管理操作和對應的存儲設備型號;
加載模塊,用于加載與所述存儲設備型號對應的預置的適配庫;
執行模塊,用于調用與所述適配庫對應的SDK接口執行所述待執行的管理操作。
進一步地,所述裝置還包括:
判斷模塊,用于判斷所述待執行的管理操作是否屬于預設的通用操作;
差異化處理模塊,用于若所述待執行的管理操作不屬于預設的通用操作,則執行預設的差異化處理,以使傳入所述適配庫的參數與所述適配庫對應的SDK接口的輸入參數相匹配。
進一步地,所述裝置還包括:
差異化信息獲取模塊,用于獲取各個廠家的存儲設備的SDK的差異化信息;
寫入模塊,用于將所述差異化信息寫入預設的配置文件。
進一步地,所述差異化處理模塊包括:
獲取單元,用于從所述配置文件中獲取與所述存儲設備型號對應的差異化信息;
解析單元,用于根據所述差異化信息對傳入所述適配庫的參數進行解析,得到與所述適配庫對應的SDK接口的輸入參數相匹配的解析結果。
進一步地,所述裝置還包括:
SDK獲取模塊,用于獲取各個廠家的存儲設備的SDK;
適配庫添加模塊,用于分別添加與所述各個廠家的存儲設備的SDK對應的適配庫,所述適配庫的接口與所述各個廠家的存儲設備的SDK接口一致。
本發明實施例與現有技術相比存在的有益效果是:本發明實施例獲取待執行的管理操作和對應的存儲設備型號;根據所述存儲設備型號加載對應的預置的適配庫;通過所述適配庫調用對應的存儲設備的SDK接口進行所述待執行的管理操作。通過本發明實施例,對不同的存儲設備加載對應的預置的適配庫,調用與適配庫對應的SDK接口執行待執行的管理操作,實現了對各個廠商的存儲設備的統一管理,與之前所采用的對各個廠商的存儲設備分別進行管理相比,使用方便且效率更高。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發明實施例一提供的一種存儲設備管理方法的示意流程圖;
圖2是本發明實施例一提供的一種存儲設備管理方法中所述適配庫的預置過程的示意流程圖;
圖3是本發明實施例二提供的一種存儲設備管理方法的示意流程圖;
圖4是本發明實施例二提供的一種存儲設備管理方法中所述差異化信息預先寫入預設的配置文件的示意流程圖;
圖5是本發明實施例三提供的一種存儲設備管理裝置的示意框圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
應當理解,當在本說明書和所附權利要求書中使用時,術語“包括”指示所描述特征、整體、步驟、操作、元素和/或組件的存在,但并不排除一個或多個其它特征、整體、步驟、操作、元素、組件和/或其集合的存在或添加。
還應當理解,在此本發明說明書中所使用的術語僅僅是出于描述特定實施例的目的而并不意在限制本發明。如在本發明說明書和所附權利要求書中所使用的那樣,除非上下文清楚地指明其它情況,否則單數形式的“一”、“一個”及“該”意在包括復數形式。
還應當進一步理解,在本發明說明書和所附權利要求書中使用的術語“和/或”是指相關聯列出的項中的一個或多個的任何組合以及所有可能組合,并且包括這些組合。
如在本說明書和所附權利要求書中所使用的那樣,術語“如果”可以依據上下文被解釋為“當...時”或“一旦”或“響應于確定”或“響應于檢測到”。類似地,短語“如果確定”或“如果檢測到[所描述條件或事件]”可以依據上下文被解釋為意指“一旦確定”或“響應于確定”或“一旦檢測到[所描述條件或事件]”或“響應于檢測到[所描述條件或事件]”。
為了說明本發明所述的技術方案,下面通過具體實施例來進行說明。
實施例一:
本實施例提供了一種存儲設備管理方法,所述方法要求提供需要進行管理的各個廠家的存儲設備的SDK,并且需要管理的存儲設備在功能上是相似的。
所述方法將存儲設備管理系統分為三層,分別為UI層、業務邏輯層和SDK適配層。其中,UI層用于與管理人員進行交互,SDK適配層用于與各個廠家的存儲設備的SDK進行適配,業務邏輯層位于UI層與SDK適配層之間,承接UI層和SDK適配層的數據交換。每層之間按具體的功能和業務定義統一的接口,這些接口和設備廠家類型沒有關系。UI層和業務邏輯層不對設備的廠家類型做區分,只按具體的業務和功能進行統一處理。
參見圖1,是本發明實施例一提供的一種存儲設備管理方法的示意流程圖。
步驟S101,獲取待執行的管理操作和對應的存儲設備型號。
所述存儲設備可以包括數字視頻錄像機(Digital Video Recorder,DVR)和網絡視頻錄像機(Network Video Recorder,NVR)。
所述DVR采用硬盤錄像,故常常被稱為硬盤錄像機,DVR是一套進行圖像存儲處理的系統,具有對圖像/語音進行長時間錄像、錄音、遠程監視和控制的功能,集合了錄像機、畫面分割器、云臺鏡頭控制、報警控制、網絡傳輸等多種功能于一身。
所述NVR又被稱為網絡硬盤錄像機,NVR最主要的功能是通過網絡接收網絡攝像機(IP Camera,IPC)設備傳輸的數字視頻碼流,并進行存儲、管理,從而實現網絡化帶來的分布式架構優勢。通過NVR,可以同時觀看、瀏覽、回放、管理、存儲多個網絡攝像機。
所述待執行的管理操作可以是由管理人員通過用戶界面(User Interface,UI)對所述存儲設備發出的操作指令。在存在多個不同廠家生產的不同型號的存儲設備的情況下,管理人員可以在UI上選擇一個或多個所要進行操作的存儲設備。容易理解地,所述待執行的管理操作是針對被選擇的存儲設備進行的。
步驟S102,加載與所述存儲設備型號對應的預置的適配庫。
一般地,各個廠家的的存儲設備可以有不同的SDK,本發明實施例所提供的方法可以分別預置與所述各個廠家的存儲設備的SDK對應的適配庫,由所有這些所述預置的適配庫可以組成SDK適配層,所述預置的適配庫可以把各個廠家的SDK接口變成SDK適配層統一接口提供給業務邏輯層。
業務邏輯層可以通過所述存儲設備型號動態加載對應廠家的SDK所對應的預置的適配庫。
步驟S103,調用與所述適配庫對應的SDK接口執行所述待執行的管理操作。
業務邏輯層可以把所述適配庫的地址賦值給所述存儲設備,通過訪問所述存儲設備的這個地址,就能訪問所述存儲設備所對應的所述適配庫,進而訪問所述存儲設備的SDK,進一步地,可以調用與所述適配庫對應的SDK接口執行所述待執行的管理操作。
優選地,參見圖2,步驟S102中所述適配庫可以通過以下步驟進行預置:
步驟S201,獲取各個廠家的存儲設備的SDK。
一般地,各個廠家的存儲設備的SDK的接口和功能都不同,所以首先需要獲取各個廠家的存儲設備的SDK,以供后續添加與之對應的適配庫。
步驟S202,分別添加與所述各個廠家的存儲設備的SDK對應的適配庫,所述適配庫的接口與所述各個廠家的存儲設備的SDK接口一致。
由所有這些所述預置的適配庫可以組成SDK適配層,所述適配庫的接口與所述各個廠家的存儲設備的SDK接口一致,以使所述適配庫和對應的SDK可以兼容。
優選地,所述適配庫還可以將各個廠家的SDK封裝為SDK適配層統一接口提供給業務邏輯層。
為了更直觀地闡述本發明實施例所述內容,下面以對某存儲設備進行登入操作為例進行說明。本發明實施例可以通過UI獲取待執行的管理操作和對應的存儲設備型號,管理人員首先可以通過UI選擇進行登入操作的選項,登入某存儲設備一般需要的輸入參數可以包括:設備名稱、設備型號、設備IP、登入端口、用戶名和密碼等,管理人員可以通過UI輸入這些參數。其中,設備名稱可以由管理人員根據實際情況來命名,跟設備沒有關系;設備型號是要登入的這個存儲設備屬于的廠家的具體型號,可以把所有廠家的設備型號都放在預設的配置文件中,添加新的存儲設備只需要修改所述預設的配置文件即可;設備IP、登入端口、用戶名和密碼等參數在各個廠家設備中的默認值也不一樣,可以在所述預設的配置文件中進行配置。
當管理人員在UI上完成這些參數的輸入,點擊添加按鈕,UI層獲得這些參數,轉換為消息發送給業務邏輯層,消息格式可以為:cmdtype=login,devicetype=HK,deviceip=192.168.0.1,port=443,username=admin,pa ssword=admin,參數之間可以通過逗號隔開,其中cmdtype表示具體的消息命令為登入消息,devicetype表示存儲設備型號,后面表示具體的參數。上述消息格式僅為示例,在實際應用中,所述消息的格式可以根據具體情況來定,在本發明實施例中不做具體限定。
業務邏輯層收到這條UI消息,解析這條消息,根據devicetype所表示的存儲設備型號找到對應的預置的適配庫的地址,加載與所述存儲設備型號對應的預置的適配庫,然后調用與所述適配庫對應的SDK接口執行所述登入操作。
對于各個不同的存儲設備的通用操作來說,只和配置文件和對應的預置的適配庫有關系;中間的UI層和業務邏輯層是直接透傳的,對不同的存儲設備沒有差異。
通過本發明實施例,對不同的存儲設備加載對應的預置的適配庫,調用與適配庫對應的SDK接口執行待執行的管理操作,實現了對各個廠商的存儲設備的統一管理,與之前所采用的對各個廠商的存儲設備分別進行管理相比,使用方便且效率更高。
實施例二:
在實際應用中,可能會出現不同的存儲設備在功能上是相似的,但相關功能有部分的差異或沖突的情況,本發明實施例在實施例一的基礎上,增加了對這些情況的差異化處理過程,把這些差異按廠家類型寫入配置文件,通過業務邏輯層直接透傳到SDK適配層的相應適配庫上,由適配庫做解析,從而達到把這些沖突控制在每個適配庫上,不影響UI層和業務邏輯層。
參見圖3,是本發明實施例二提供的一種存儲設備管理方法的示意流程圖。
步驟S301,獲取待執行的管理操作和對應的存儲設備型號。
步驟S302,加載與所述存儲設備型號對應的預置的適配庫。
步驟S303,判斷所述待執行的管理操作是否屬于預設的通用操作。
步驟S304,若所述待執行的管理操作不屬于預設的通用操作,則執行預設的差異化處理,以使傳入所述適配庫的參數與所述適配庫對應的SDK接口的輸入參數相匹配。
優選地,所述步驟S304具體可以包括:
步驟S3041,從配置文件中獲取與所述存儲設備型號對應的差異化信息。
步驟S3042,根據所述差異化信息對傳入所述適配庫的參數進行解析,得到與所述適配庫對應的SDK接口的輸入參數相匹配的解析結果。
步驟S305,調用與所述適配庫對應的SDK接口執行所述待執行的管理操作。
優選地,參見圖4,本發明實施例中的所述差異化信息可以通過以下步驟預先寫入預設的配置文件:
步驟S401,獲取各個廠家的存儲設備的SDK的差異化信息。
步驟S402,將所述差異化信息寫入預設的配置文件。
本發明實施例所述各步驟中,步驟S301與實施例一中的步驟S101相同,步驟S302與實施例一中的步驟S102相同,步驟S305與實施例一中的步驟S103相同,具體可參考實施例一中的描述,在此不再贅述。
為了更直觀地闡述本發明實施例所述內容,下面以對不同廠家的存儲設備進行錄像搜索操作為例進行具體說明。
使用本實施例所述的方法分別對兩個不同廠家的存儲設備進行錄像搜索,其中,搜索A廠家的存儲設備的錄像,需要根據設備的通道號,時間和錄像文件類型進行搜索,其中錄像文件類型可以包括:所有錄像(All)、手動錄像類型(Mannual)和報警錄像類型(Alarm);搜索B廠家的存儲設備的錄像,需要根據設備的通道號,時間和錄像分區類型搜索,其中錄像分區可以包括:主要區(Prime sector)和長期區(Long sector)。
分析后得到這兩個廠家的存儲設備的SDK的差異化信息為錄像文件類型和分區類型,將所述差異化信息寫入預設的配置文件。
在本例中,對A廠家的差異化信息可以以如下格式寫入預設的配置文件:
在本例中,對B廠家的差異化信息可以以如下格式寫入預設的配置文件:
上述差異化信息的格式僅為示例,在實際應用中,差異化信息的格式可以根據具體情況來定,在本發明實施例中不做具體限定。
當需要進行錄像搜索操作時,對該操作是否屬于預設的通用操作進行判斷,在本例中,錄像搜索操作不屬于預設的通用操作,則執行預設的差異化處理,以使傳入所述適配庫的參數與所述適配庫對應的SDK接口的輸入參數相匹配。所述差異化處理具體可以包括:從所述配置文件中獲取與所述存儲設備型號對應的差異化信息,根據所述差異化信息對傳入所述適配庫的參數進行解析,得到與所述適配庫對應的SDK接口的輸入參數相匹配的解析結果。
在本例中,如果選擇的是A廠家的存儲設備,則可以從所述配置文件中獲取與A廠家的存儲設備型號對應的差異化信息,獲取PlayBackTypeList->DisplayName的值,并把對應的UI的下拉框的顯示名稱修改為這個名稱,即File type,接著獲取PlayBackTypeList->PlayBackType->Name和PlayBackTypeList->PlayBackType->Value的值,修改這個下拉框選擇項的UI名稱和數值,配置文件中定義了幾個PlayBackType就列出幾個選擇項。對于A廠家的存儲設備而言下拉框顯示的就是All、Alarm和Manual。
在本例中,如果選擇的是B廠家的存儲設備,則可以從所述配置文件中獲取與B廠家的存儲設備型號對應的差異化信息,獲取PlayBackTypeList->DisplayName的值,并把對應的UI的下拉框的顯示名稱修改為這個名稱,即Sector,接著獲取PlayBackTypeList->PlayBackType->Name和PlayBackTypeList->PlayBackType->Value的值,修改這個下拉框選擇項的UI名稱和數值,配置文件中定義了幾個PlayBackType就列出幾個選擇項。對于B廠家的存儲設備而言下拉框顯示的就是Prime sector和LongTerm sector。
在UI上點擊錄像搜索按鈕,UI層獲取錄像搜索的設備通道、錄像搜索的時間、錄像分區或錄像文件類型的下拉框選擇項的值,轉換為消息發送給業務邏輯層,對于A廠家的存儲設備而言,消息格式可以為:
cmdtype=record_serch,devicetype=A,deviceip=192.168.0.1,channel=1,starttim e=xxx,endtime=xxx,type=1
對于B廠家的存儲設備而言,消息格式可以為:
cmdtype=record_serch,devicetype=B,deviceip=192.168.0.1,channel=1,starttim e=xxx,endtime=xxx,type=1
參數之間通過逗號隔開,其中cmdtype表示具體的消息命令為錄像搜索消息,devicetype表示廠家設備型號,后面表示具體的參數,其中type為選擇下拉框的值。
上述消息格式僅為示例,在實際應用中,所述消息的格式可以根據具體情況來定,在本發明實施例中不做具體限定。
業務邏輯層收到這條UI消息,解析這條消息,根據devicetype所表示的存儲設備型號找到對應的預置的適配庫的地址,加載與所述存儲設備型號對應的預置的適配庫,在適配庫中解析業務邏輯層傳入的參數。對于A廠家的存儲設備而言,解析出錄像搜索按照錄像文件類型進行;對于B廠家的存儲設備而言,解析出錄像搜索按照錄像分區類型進行。做出上述解析之后,調用與所述適配庫對應的SDK接口執行所述錄像搜索操作。
通過本發明實施例,在實施例一的基礎上,增加了對相關功能有部分的差異或沖突的情況的差異化處理過程,不僅實現了對各個廠商的存儲設備的統一管理,還可以有針對性的進行差異化處理,具有更好的適應性和實用性。
實施例三:
參見圖5,是本發明實施例三提供的一種存儲設備管理裝置的示意框圖,為了便于說明,僅示出與本發明實施例相關的部分。
該存儲設備管理裝置可以是內置于終端(例如手機、平板電腦、筆記本、計算機等)內的軟件單元、硬件單元或者軟硬結合的單元,也可以作為獨立的掛件集成到所述終端中。
所述存儲設備管理裝置可以包括:
操作信息獲取模塊501,用于獲取待執行的管理操作和對應的存儲設備型號;
加載模塊502,用于加載與所述存儲設備型號對應的預置的適配庫;
執行模塊503,用于調用與所述適配庫對應的SDK接口執行所述待執行的管理操作。
進一步地,所述裝置還可以包括:
判斷模塊504,用于判斷所述待執行的管理操作是否屬于預設的通用操作;
差異化處理模塊505,用于若所述待執行的管理操作不屬于預設的通用操作,則執行預設的差異化處理,以使傳入所述適配庫的參數與所述適配庫對應的SDK接口的輸入參數相匹配。
進一步地,所述裝置還可以包括:
差異化信息獲取模塊506,用于獲取各個廠家的存儲設備的SDK的差異化信息;
寫入模塊507,用于將所述差異化信息寫入預設的配置文件。
進一步地,所述差異化處理模塊505可以包括:
獲取單元5051,用于從所述配置文件中獲取與所述存儲設備型號對應的差異化信息;
解析單元5052,用于根據所述差異化信息對傳入所述適配庫的參數進行解析,得到與所述適配庫對應的SDK接口的輸入參數相匹配的解析結果。
進一步地,所述裝置還可以包括:
SDK獲取模塊508,用于獲取各個廠家的存儲設備的SDK;
適配庫添加模塊509,用于分別添加與所述各個廠家的存儲設備的SDK對應的適配庫,所述適配庫的接口與所述各個廠家的存儲設備的SDK接口一致。
本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的模塊及算法步驟,能夠以電子硬件、計算機軟件或者二者的結合來實現,為了清楚地說明硬件和軟件的可互換性,在上述說明中已經按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執行,取決于技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的范圍。
在本發明所提供的實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊或單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通訊連接可以是通過一些接口,裝置或單元的間接耦合或通訊連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能模塊可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
所述集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基于這樣的理解,本發明實施例的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網絡設備等)或處理器(processor)執行本發明實施例各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質。
以上所述實施例僅用以說明本發明的技術方案,而非對其限制;盡管參照前述實施例對本發明進行了詳細的說明,本領域的普通技術人員應當理解:其依然可以對前述各實施例所記載的技術方案進行修改,或者對其中部分技術特征進行等同替換;而這些修改或者替換,并不使相應技術方案的本質脫離本發明實施例各實施例技術方案的精神和范圍。