亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        GoAhead 中JSON 與命令行的適配機(jī)制與實(shí)現(xiàn)

        2022-12-23 12:03:18趙苗苗顏昌隆
        電子設(shè)計(jì)工程 2022年24期
        關(guān)鍵詞:頁面嵌入式設(shè)備

        趙苗苗,陳 鵬,顏昌隆

        (1.武漢郵電科學(xué)研究院,湖北武漢 430074;2.烽火通信科技股份有限公司,湖北武漢 430074)

        伴隨著大數(shù)據(jù)和各類云服務(wù)的爆炸式增長,數(shù)據(jù)中心互聯(lián)設(shè)備應(yīng)運(yùn)而生[1-2],該設(shè)備種類繁多,且分別提供不同的配置命令,傳統(tǒng)的CLI(命令行界面)網(wǎng)絡(luò)管理方式對(duì)管理人員和用戶要求比較高,無法滿足數(shù)據(jù)中心網(wǎng)絡(luò)的運(yùn)維要求,該文提出了基于GoAhead 嵌入式Web 服務(wù)器的網(wǎng)絡(luò)管理架構(gòu),這種基于Web 的網(wǎng)絡(luò)管理系統(tǒng)通過標(biāo)準(zhǔn)的網(wǎng)絡(luò)瀏覽器就可以對(duì)設(shè)備進(jìn)行訪問,可以有效地顯示網(wǎng)絡(luò)管理數(shù)據(jù),提高了網(wǎng)絡(luò)管理效率[3-6]。該文重點(diǎn)介紹了嵌入式Web 網(wǎng)絡(luò)管理系統(tǒng)中JSON(Javascript Object Notation)與命令行的適配機(jī)制及實(shí)現(xiàn),選擇JSON 作為AJAX(Asynchronous Javascript And Xml)的數(shù)據(jù)傳輸格式,有效地提高了傳輸效率[7-11]?;谠摍C(jī)制實(shí)現(xiàn)了設(shè)備數(shù)據(jù)的可視化,讓系統(tǒng)具有移植性和擴(kuò)展性,對(duì)于不同配置命令的設(shè)備可實(shí)現(xiàn)個(gè)性化定制,開發(fā)簡(jiǎn)單、便于維護(hù)。

        1 軟件設(shè)計(jì)

        1.1 軟件系統(tǒng)基本架構(gòu)

        該軟件系統(tǒng)主要由Webclient 模塊、GoAhead Webserver模塊、CLI模塊及底層Interface Service 等各項(xiàng)業(yè)務(wù)和協(xié)議模塊組成,實(shí)現(xiàn)了嵌入式Web 網(wǎng)管系統(tǒng)的基本功能,其架構(gòu)如圖1 所示。

        圖1 嵌入式Web網(wǎng)絡(luò)管理系統(tǒng)架構(gòu)

        該軟件系統(tǒng)采用了異步AJAX 技術(shù),客戶端可以在不更新加載整個(gè)頁面的情況下與服務(wù)器交換數(shù)據(jù),并更新部分網(wǎng)頁,從而可以較好地同步交互造成的響應(yīng)慢的問題。AJAX 的核心對(duì)象是XmlHttpRequest,通過XmlHttpRequest 對(duì)象,瀏覽器的JavaScript 可以后臺(tái)與服務(wù)器交換數(shù)據(jù),無需等待服務(wù)器的響應(yīng)[12-13]。因此,在服務(wù)器和瀏覽器之間交換的數(shù)據(jù)大量減少,大大提高了頁面的響應(yīng)速度。

        1.2 軟件系統(tǒng)工作流程

        用戶在客戶端通過瀏覽器(例如Google Chrome、Mozilla Firefox 等)對(duì)目標(biāo)設(shè)備進(jìn)行訪問,通過在地址欄輸入設(shè)備的IP(Internet Protocol,網(wǎng)際互連協(xié)議)地址,Webserver 將設(shè)備的配置頁面信息通過HTTP(Hypertext Transfer Protocol,超文本傳送協(xié)議)傳送到Web 瀏覽器,然后顯示在用戶終端;用戶使用時(shí)在相應(yīng)的配置頁面進(jìn)行參數(shù)配置操作,當(dāng)用戶在Web 瀏覽器配置界面中輸入數(shù)據(jù)時(shí),先由JavaScript 程序?qū)ζ溥M(jìn)行預(yù)處理,檢查輸入數(shù)據(jù)是否符合要求,對(duì)于不符合要求的數(shù)據(jù),在前臺(tái)頁面進(jìn)行返錯(cuò)提示;Web 服務(wù)器執(zhí)行ASP(Active Server Page)過程、GoForms 過程實(shí)現(xiàn)接口,獲取待查詢的或者配置的JSON 數(shù)據(jù);通過映射文件將JSON 數(shù)據(jù)轉(zhuǎn)換成命令行,用于查詢數(shù)據(jù)或處理用戶設(shè)置,其中使用CLI 組件提供的IPS(Inter Process Signal,進(jìn)程間信號(hào)消息)接口與CLI 模塊交互,并且CLI 與業(yè)務(wù)模塊之間不感知HTTP 數(shù)據(jù);將查詢結(jié)果或處理結(jié)果以HTTP 響應(yīng)的方式返回給頁面,當(dāng)請(qǐng)求返回時(shí),客戶端使用JavaScript 來更新相應(yīng)的用戶界面。

        2 基于GoAhead實(shí)現(xiàn)JSON與命令行適配

        該軟件系統(tǒng)的適配模塊主要是由AJAX Actions解析器、映射文件以及CLI 模塊組成,AJAX Actions解析器負(fù)責(zé)解析和組裝前臺(tái)頁面發(fā)送的JSON 格式數(shù)據(jù),通過映射文件interface_map.xml 將JSON 格式數(shù)據(jù)轉(zhuǎn)換為對(duì)應(yīng)的CLI 命令行字符串,然后下發(fā)到CLI 模塊,并將CLI 模塊回復(fù)的操作結(jié)果發(fā)送到前臺(tái)頁面進(jìn)行解析與響應(yīng)。該方案能夠有效地提高Web網(wǎng)管系統(tǒng)的數(shù)據(jù)傳送和處理效率,減少客戶端的請(qǐng)求和響應(yīng)時(shí)間。

        JSON 與CLI 命令行的映射過程如下:

        1)在climap.js文件中定義了一個(gè)對(duì)象configObj,用來與命令行進(jìn)行映射,該對(duì)象支持set、show、no 等方法;

        2)根據(jù)funName 查找映射文件interface_map.xml對(duì)應(yīng)的id,并獲得對(duì)應(yīng)的CLI 命令行字符串,其中,interface_map.xml 文件的參數(shù)說明如表1 所示。

        表1 映射文件參數(shù)說明

        2.1 配置操作

        配置操作流程如圖2 所示。

        圖2 配置操作流程

        如圖2 所示,用戶在配置設(shè)備時(shí),首先在Web 前端配置頁面完成設(shè)備參數(shù)的配置,點(diǎn)擊提交按鈕,用一個(gè)按鍵函數(shù)submitForm 來觸發(fā)AJAX 數(shù)據(jù)請(qǐng)求,這個(gè)過程使用configObj 對(duì)象的set 方法,以CallHome配置為例:

        configObj.set("set_callhome","callhome","");

        根據(jù)funName 和id 找到映射文件interface_map.xml中對(duì)應(yīng)的CLI 命令行字符串:

        <set funName="set_callhome">

        <mo2cli_entry id="callhome" mode="CONFIG_M ODE" cliName="netconf-ch-ssh" cat-id="ip" cat=""/></set>

        取出字符串并以JSON 鍵值對(duì)的形式存放在cli.array 數(shù)組中:

        "cli_array":[{type:"set",cli:"config terminal net conf-ch-ssh "}]

        通過POST 請(qǐng)求把JSON 數(shù)據(jù)發(fā)送到webs2cli_uniform_interface 接口,后臺(tái)解析JSON 字符串并下發(fā)到CLI 模塊,命令行執(zhí)行完之后返回響應(yīng),由handle_config_result 函數(shù)處理返回的響應(yīng),配置錯(cuò)誤時(shí)后臺(tái)返回錯(cuò)誤提示數(shù)據(jù)給前臺(tái)頁面,配置成功則調(diào)用show 命令刷新前臺(tái)頁面,前臺(tái)解析并顯示配置數(shù)據(jù)。

        2.2 查詢操作

        如圖3 所示,用戶在Web 前端點(diǎn)擊查詢功能頁面,頁面首先調(diào)用initTable 函數(shù)初始化表格,在show_config_info 函數(shù)中實(shí)現(xiàn)show 命令的轉(zhuǎn)換。

        圖3 查詢操作流程

        以CallHome 查詢功能為例,使用configObj 的show 方法:

        configObj.show("show_callhome","show_callhome","");

        根據(jù)funName 和id 找到映射文件interface_map.xml中對(duì)應(yīng)的CLI 命令行字符串:

        <show funName="show_callhome">

        <mo2cli_entry id="show_callhome" mode="CON FIG_MODE" cliName="debug show netconf-ch-ssh"cat=" ; ;"/></show>

        因?yàn)镴SON 不能識(shí)別/r/n,故用其實(shí)體 ; 來表示。從而獲得對(duì)應(yīng)的CLI命令行字符串:

        "cli_array":[{"type":"get","cli":"debug show netco nf-ch-ssh "}]

        通過AJAX 請(qǐng)求將命令行下發(fā)后,后臺(tái)返回的是字符串,此時(shí)webs2cli_uniform_interface 接口提供通道作用,handle_show_info 函數(shù)負(fù)責(zé)解析,將字符串解析成JSON 類型數(shù)組并返回給前臺(tái)頁面,前臺(tái)HTML 頁面負(fù)責(zé)用戶界面的組織及數(shù)據(jù)格式化的輸出。

        2.3 JSON庫

        該軟件系統(tǒng)選擇JSON 作為AJAX 的數(shù)據(jù)傳輸格式,同時(shí)選取cJSON 作為JSON 的封裝和解析庫。cJSON 是一個(gè)開源、簡(jiǎn)潔、功能全面的JSON 封裝/解析器。JSON 與命令行模型適配過程中使用的接口函數(shù)如下:

        1)JSON 數(shù)據(jù)包解析接口

        cJSON*cJSON_Parse(const char*value)

        用于解析JSON 數(shù)據(jù)包,并按照cJSON 結(jié)構(gòu)體的結(jié)構(gòu)序列化整個(gè)數(shù)據(jù)包,其中的參數(shù)是JSON 鍵值對(duì)字符串。

        2)JSON 對(duì)象遍歷接口

        char*cJSON_Print(cJSON*item)

        用于將創(chuàng)建好的cJSON 對(duì)象封裝成字符串形式的JSON 數(shù)據(jù),并打印出來,其中的參數(shù)是cJSON 結(jié)構(gòu)數(shù)據(jù)。

        3)查找指定的JSON 對(duì)象接口

        cJSON*cJSON_GetObjectItem(const cJSON*const object,const char*const string);

        用于解析cJSON 結(jié)構(gòu)體中指定名稱的JSON 對(duì)象,返回JSON 格式數(shù)據(jù),其中第一個(gè)參數(shù)是cJSON結(jié)構(gòu)數(shù)據(jù),第二個(gè)參數(shù)是指定的JSON 對(duì)象名稱。

        4)查找JSON數(shù)組中指定索引的JSON對(duì)象接口

        cJSON*cJSON_GetArrayItem(const cJSON *array,int index);

        用于解析cJSON 數(shù)組中指定名稱的JSON 對(duì)象,返回JSON 格式數(shù)據(jù),其中第一個(gè)參數(shù)是cJSON 數(shù)組,第二個(gè)參數(shù)是待查找的JSON 對(duì)象的索引。

        上述接口實(shí)現(xiàn)了JSON 數(shù)據(jù)的封裝和解析,通過webs2cli_uniform_interface 接口調(diào)用實(shí)現(xiàn),JSON 支持嵌套,即一個(gè)JSON 格式中,允許再嵌套一個(gè)JSON 格式的數(shù)據(jù),理論上支持無限層次的JSON 嵌套[14-16]。

        3 測(cè) 試

        該文以CallHome 配置和查詢功能為例來說明管理軟件系統(tǒng)的測(cè)試。CallHome 是一種常用的Netconf 設(shè)備,主動(dòng)連接控制器的配置選項(xiàng)。

        3.1 測(cè)試環(huán)境

        1)測(cè)試工具:Google Chrome/Secure CRT Portable 7.0.4。

        2)測(cè)試設(shè)備:數(shù)據(jù)中心互聯(lián)設(shè)備。

        3.2 測(cè)試方法

        將測(cè)試設(shè)備與PC 端連接,通過軟件Secure CRT Portable 對(duì)測(cè)試設(shè)備進(jìn)行訪問,瀏覽器登錄設(shè)置連接的IP 地址即可訪問測(cè)試設(shè)備。通過下面的測(cè)試用例來測(cè)試該功能的可用性:

        1)在瀏覽器的CallHome 配置頁面中執(zhí)行配置下發(fā)操作,在CLI 中觀察其效果是否一致;

        2)在CLI 中用命令行的方式執(zhí)行配置下發(fā)操作,觀察是否在Web 頁面中能夠同步顯示。

        3.3 測(cè)試結(jié)果

        如圖4 所示,在Web 頁面根據(jù)參數(shù)要求填寫CallHome 的控制器IP 地址及端口,填寫完成后,點(diǎn)擊新增按鈕,頁面顯示配置成功提示,并且頭部列表上顯示剛剛新增的配置數(shù)據(jù),這里默認(rèn)網(wǎng)絡(luò)類型為公網(wǎng)且值為1。然后在CLI 界面通過debug show netconfch-ssh命令來查詢,結(jié)果顯示與Web頁面一致。如圖5所示,在CLI界面通過命令行方式配置控制器IP地址、端口及網(wǎng)絡(luò)類型(私網(wǎng):CTVPN193),配置下發(fā)后通過命令行查詢方式,得到顯示結(jié)果與Web頁面相同。

        圖4 Web頁面配置查詢功能測(cè)試展示圖

        圖5 CLI界面配置查詢功能測(cè)試展示圖

        通過上述測(cè)試結(jié)果可得出如下結(jié)論:

        1)Web 網(wǎng)管和傳統(tǒng)的CLI 網(wǎng)管在功能上可實(shí)現(xiàn)同步,操作結(jié)果完全一致,均能滿足用戶的要求;

        2)Web 網(wǎng)管方式操作簡(jiǎn)單易上手,數(shù)據(jù)直觀,擁有更好的用戶體驗(yàn)。

        4 結(jié)束語

        該文介紹了一種基于GoAhead 的嵌入式Web 網(wǎng)管系統(tǒng)的實(shí)現(xiàn)架構(gòu),并重點(diǎn)介紹了該軟件系統(tǒng)中JSON 與命令行的適配機(jī)制與實(shí)現(xiàn),基于此,可以根據(jù)不同客戶的需求實(shí)現(xiàn)不同設(shè)備管理系統(tǒng)軟件的快速定制和開發(fā)。針對(duì)不同嵌入式設(shè)備和不同的業(yè)務(wù)需求,只需要根據(jù)設(shè)備的配置命令,修改映射文件和底層的封裝接口,即可將該方法成功應(yīng)用到新的管理系統(tǒng)中,開發(fā)簡(jiǎn)單、便于維護(hù),有效降低了嵌入式設(shè)備的運(yùn)行和維護(hù)成本,提高了Web網(wǎng)管系統(tǒng)的開發(fā)和維護(hù)效率。

        猜你喜歡
        頁面嵌入式設(shè)備
        大狗熊在睡覺
        諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
        刷新生活的頁面
        基于MPU6050簡(jiǎn)單控制設(shè)備
        電子制作(2018年11期)2018-08-04 03:26:08
        搭建基于Qt的嵌入式開發(fā)平臺(tái)
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
        500kV輸變電設(shè)備運(yùn)行維護(hù)探討
        原來他們都是可穿戴設(shè)備
        Altera加入嵌入式視覺聯(lián)盟
        倍福 CX8091嵌入式控制器
        中文字幕影片免费在线观看| 夜夜揉揉日日人人青青| 国产午夜福利在线播放| 一本大道久久精品 东京热| 91精品国产乱码久久久| 日韩精品专区在线观看| 又大又粗又爽18禁免费看| 精品人妻无码视频中文字幕一区二区三区| jiZZ国产在线女人水多| 日韩女优图播一区二区| 日韩av无码精品一二三区| 欧美黑人又粗又大久久久| 不打码在线观看一区二区三区视频 | 美女视频在线观看亚洲色图 | 无码尹人久久相蕉无码| 在线视频你懂的国产福利| 国内精品熟女一区二区| 国产午夜视频在线观看免费| 亚洲人成网站18禁止久久影院| 激情人妻在线视频| 91精品福利一区二区三区| 亚洲色精品三区二区一区 | 人妻丝袜中文无码av影音先锋专区| 8ⅹ8x擦拨擦拨成人免费视频 | 亚洲老妇色熟女老太| 日本韩国三级aⅴ在线观看 | 天天做天天爱夜夜爽女人爽| 亚洲国产精品特色大片观看完整版 | 日本视频在线播放一区二区| 国产福利永久在线视频无毒不卡 | 久久久久久无中无码| 国产精品亚洲综合久久系列| 99精品国产在热久久无码| 久久精品片| 加勒比久草免费在线观看| 亚洲国产精品日本无码网站| 亚洲 暴爽 av人人爽日日碰| 无码av永久免费大全| 日本不卡的一区二区三区中文字幕| 亚洲中文字幕国产综合| 国产精品久久久久孕妇|