一種通過cs與bs架構相結合實現(xiàn)硬件設備集中管理控制的方法
【專利說明】-種通過CS與BS架構相結合實現(xiàn)硬件設備集中管理控制的 方法 【技術領域】
[0001] 本發(fā)明設及硬件設備統(tǒng)一管理、遠程操控技術領域,尤其設及一種通過CS與BS架 構相結合實現(xiàn)硬件設備集中管理控制的方法。 【【背景技術】】
[0002] 近年來各類硬件產品如雨后春算般,層出不窮;各種硬件產品都有自己的控制端, 而且大多數(shù)都不支持遠程控制,運樣給使用者帶來很多不便。因此迫切需要一種技術能進 行硬件設備統(tǒng)一管理控制,并且能進行遠程操控。 【
【發(fā)明內容】
】
[0003] 本發(fā)明所要解決的問題在于提供一種通過CS與BS架構相結合實現(xiàn)硬件設備集中 管理控制的方法。
[0004] 本發(fā)明是運樣實現(xiàn)的:
[0005] -種通過CS架構與BS架構相結合實現(xiàn)硬件設備集中管理控制的方法,包括如下步 驟:
[0006] 步驟1:創(chuàng)建服務工程;
[0007] 步驟2:定義服務工程要提供的功能及數(shù)據(jù)結構;
[000引步驟3:實現(xiàn)服務工程定義的功能;
[0009] 步驟4:創(chuàng)建客戶端工程;
[0010] 步驟5:實現(xiàn)客戶端工程功能;
[0011] 步驟6:創(chuàng)建網(wǎng)頁工程;
[0012] 步驟7:定義網(wǎng)頁工程要實現(xiàn)的功能;
[0013] 步驟8:實現(xiàn)網(wǎng)頁工程定義的功能;
[0014] 步驟9:部署服務端、客戶端、網(wǎng)頁端工程;
[0015] 步驟10:任意找個能訪問公網(wǎng)網(wǎng)站的設備訪問本發(fā)明的網(wǎng)頁工程,進行遠程查看 硬件設備的信息及進行遠程控制硬件設備。
[0016] 所述步驟2,具體包括如下步驟:
[0017] 步驟21:定義服務工程提供的功能,包括:接收從硬件客戶端程序發(fā)過來的數(shù)據(jù), 并將數(shù)據(jù)保存起來、推送控制流給硬件客戶端;提供功能接口供步驟6的網(wǎng)頁工程端調用;
[0018] 步驟22:定義數(shù)據(jù)結構,數(shù)據(jù)流參數(shù);規(guī)定硬件客戶端傳過來屬性數(shù)據(jù)的組織方式 為一 json數(shù)組,數(shù)組的元素有如下屬性組成:唯一屬性編碼、屬性名、屬性值、屬性描述、是 否在頁面上顯示、是否允許修改屬性值;控制流參數(shù)定義有:命令常量,攜帶的參數(shù)。
[0019] 所述步驟7,具體包括如下步驟:
[0020] 步驟71:根據(jù)步驟2、步驟3、步驟5所得到的硬件信息,定義要在網(wǎng)頁頁面上顯示的 內容;
[0021] 步驟72:根據(jù)步驟2、步驟3、步驟5所得到的硬件信息,定義出支持遠程控制的功 能。
[0022] 本發(fā)明的優(yōu)點在于:采用本發(fā)明獨創(chuàng)的方法,可W實現(xiàn)硬件設備集中管理及遠程 控制。 【【附圖說明】】
[0023] 下面參照附圖結合實施例對本發(fā)明作進一步的描述。
[0024] 圖1是本發(fā)明中各個工程實現(xiàn)流程、數(shù)據(jù)流流向、控制流流向示意圖。 【【具體實施方式】】
[0025] 本發(fā)明基于編程實現(xiàn),只要是面向對象任何編程語言都可W作為本發(fā)明的實現(xiàn)工 具。本實施例中采用化Wi編程語言。
[0026] 為了便于說明,假設某個硬件設備有:開機時間,IP地址,溫度S個屬性,除了IP地 址不在網(wǎng)頁頁面顯示外,其他兩個屬性都要在網(wǎng)頁上顯示;支持的控制有:遠程關機、調節(jié) 溫度大??;
[0027] 請參閱圖1,一種通過CS與BS架構相結合實現(xiàn)硬件設備集中管理控制的方法,包括 如下步驟:
[002引步驟1:創(chuàng)建服務工程,詳細說明如下:
[0029] 圖1中的A部分與B部分是采用CS、BS混合架構設計,B部分與C部分采用是BS架構設 計:
[0030] (1)A、B部分的關系:A部分存在于各個硬件機子上,需要主動推送數(shù)據(jù)給B部分,同 時B部分需要推送控制流給A部分從而實現(xiàn)對A部分所關聯(lián)的硬件進行控制;因此流向是雙 向的:數(shù)據(jù)流由A推送給B,控制流由B推送給A;
[0031] (2)B、C部分的關系:都是C部分主動向B部分請求,B部分無需向C部分主動推送數(shù) 據(jù)流或者控制流;因此其流向是單向的,都是由C主動請求B,只需要B端提供相應的功能接 口即可;
[0032] 鑒于W上(1),(2)點,在A主動發(fā)送數(shù)據(jù)流給B,此時本發(fā)明采用的是基于ht化協(xié)議 get、post由客戶端(A)主動向服務端(B)推送的機制;B主動發(fā)控制流給A,此時本發(fā)明采用 的是在B端建立TCP/IP協(xié)議服務,B為協(xié)議中的服務端,A為客戶端;B與C,都是由C主動請求, 因此也采取基于http協(xié)議get、post由客戶端(C)主動向服務端(B)主動請求;
[0033] 綜上所述,建立的B工程是運樣的工程:
[0034] 有提供ht化接口請求的功能,客戶端主動調用接口往B推送數(shù)據(jù)或者取數(shù)據(jù);
[0035] 開TCP/IP協(xié)議服務,讓各個客戶端連接進來,服務端通過此連接主動推送控制流 信息給客戶端;
[0036] 步驟2:定義服務工程要提供的功能及數(shù)據(jù)結構;具體包括如下步驟:
[0037] 步驟21:定義服務工程提供的功能,主要有:
[0038] 接收從硬件客戶端程序(A)發(fā)過來的數(shù)據(jù),并將數(shù)據(jù)保存起來,運里可W保存到數(shù) 據(jù)庫或者文件,或者其他的存儲介質;
[0039] 推送控制流給硬件客戶端對硬件設備進行相應的控制,比如說關機、調節(jié)溫度等;
[0040] (3)提供功能接口供網(wǎng)頁工程端(C)調用;
[0041] 功能接口定義類似如下:
[0042] /7功能接口 public interface !Facade { .//接收設備化悉屬性數(shù)搪幼能接口 public ResultClass receiveDeviceInfo(AttriListC!ass attrilistClass); //控制薇備 public..及esultCldss.control.Device(Comm;andParam commandParam); /"獲取設備狀態(tài) public. AttriLis 似泌 S getDev iceln 仿(GetDevieeIn 化Dto gctDcviccrnfoDro); }
[0043] Resul tClass、GetDevi Ce InfoDto的定義見文末類定義部分,其他的定義見步驟 22。
[0044] 其中;
[0045] (1)接收設備狀態(tài)屬性數(shù)據(jù)功能接口是硬件設備客戶端主動推送數(shù)據(jù)給服務端 (B),其對應的http請求地址為:
[0046] http://***/deviceController/receiveDeviceInfo
[0047] (2)控制設備、獲取設備狀態(tài),供網(wǎng)頁工程端(C)通過http調用時使用,因此爆出出 對應的ht化請求地址為:
[0048] http://***/deviceController/controlDevice
[0049] http://***/deviceController/getDeviceInfo
[0050] 步驟22:定義數(shù)據(jù)結構:
[0051] 在數(shù)據(jù)流方面:有硬件IP地址、硬件本身的屬性(溫度、開機時間、所在的物理地址 等);規(guī)定硬件客戶端傳過來屬性數(shù)據(jù)的組織方式為一 json數(shù)組,數(shù)組的元素有如下屬性組 成:唯一屬性編碼、屬性名、屬性值、屬性描述、是否在頁面上顯示、是否允許修改屬性值; 整個平臺會有多個設備,為了區(qū)分出各個設備,因此需要保存設備編碼,具體類似如下的定 義:
[0化2] /* *屬性類定義 */ public class AttriClass implements Serializable{ private static filial long serialVersionUID = -5455275164640479272L; //屬化編碼 private Suing code; //屬化為 private Suing name; //屬性值 private String ¥alue; //描述 private Siring description; //是巧顯示在巧巧上 private boolean showInReport; 八是否允許修改屬性值 private Boolean canUpdafeValue; } /* *屬性數(shù)組類定義 */ public class AttriListClass implements Serializab!e{ private static filial long serialVersionUID = 2636339188129143839L; //設備編碼
[0化3] private Suing deviceCode; //屬化數(shù)組 private LisKAn:riClass> attriClasses; -}
[0054]在例子中,某一時刻,硬件設備有表1的數(shù)據(jù)(開機時間為時間戳):
[0化5] 表1:
[00日7] 那么由AttriLis tClass、AttriClass所定義對應json數(shù)據(jù)將為:
[00 日引{"attriClasses":[{"canUpdateValue":false,"code":"START-TIME"," description":"設備的開機時間","name":"開機時間","showInReport": true,"value":" 1448378888007"},{"canUpdateValue": false,"code":"IP_ADD肥SS","description":"設 備的IP地址","name": "IP地址","showInReport" : false,"value": "58 ? 22 ? 30 ? 37"},{" canUpdateValue" : true,"code" : "T EMPERATURE","description":"設備的溫度" name":"溫度","showin民邱or