Microsemi AN1256 Web Polokalama Talosaga
Folasaga
JSON (JavaScript Object Notation) o se tulaga tatala file fa'asologa e fa'aoga ai tusitusiga e mafai ona faitau e tagata mo le fesuia'iga o fa'amaumauga. Ose fa'amaumauga masani e fa'aogaina mo feso'ota'iga su'esu'e/server asynchronous.
Mo le fou web mamanu itulau, JSON format e mafai ona suitulaga mo le uluai sitaili AJAX. Faʻatusatusa i le AJAX, faʻaaoga JSON faia le Web faigofie ma faigofie le faatinoga. E na'o le tagata fa'atupu e mana'omia le taula'i i ai web mamanu itulau ma le Web e mafai ona le fa'atinoina le fa'atinoina o le fa'atinoga talu ai ua uma ona lagolagoina le JSON auala i totonu ta'itasi WebStaX software modules.
O lenei pepa o loʻo taʻu mai ai le taʻiala a le au fai polokalame mo le inisinia software e manaʻomia ona atiaʻe le Web itulau e ala i le JSON. O auiliiliga taualumaga ma exampo lo'o aofia fo'i i vaega nei.
JSON fa'amatalaga avanoa avanoa
Ua umaview
O le JSON data access flow lea o se HTTP feso'ota'iga e amata mai le kalani(su'esu'e). O le laulau HTML o lo'o faia fa'amalosi e tusa ai ma fa'amaumauga a le JOSN na maua mai le 'au'aunaga(DUT) itu.
Ata 1. Le avanoa e tafe i le va o tagata o tausia ma le server
Talosaga/Tali JSON fa'amaumauga
O le pepa talosaga a le JSON e faʻavae i luga o le HTTP talosaga post method ma o mea e tatau ona mulimulitaʻi i le MSCC JSON format.
- Talosaga JSON syntax:{“auala”:” ”,”params”:[ ], “id:”jsonrpc”}
- Tali JSON syntax: {“sese”: ,”i'uga”: , “id:”jsonrpc”}
O ata nei o loʻo faʻaalia ai le JSON i le va o le browser ma le DUT.
Ata 2. Ata o le talosaga HTTP mai le tagata o tausia
Ata 3. Ata o le tali HTTP mai le server
MSCC JSON faʻamatalaga
Ina ia maua le faʻamatalaga atoa a le JSON e aofia ai le metotia, parakalafa, faʻamatalaga ma isi. Faʻapipiʻi "http:// /json_spec" i luga o lau tuatusi tuatusi pa. O loʻo i ai se isi auala avanoa e ala i le igoa ole igoa ole JSON "jsonRpc.status.introspection.specific.inventory.get", e faʻaaogaina mo se auala faʻapitoa.
Ata 4. Ata o le JSON faʻamatalaga web itulau
Web fa'avae
O le Web fa'avae i totonu WebStaX software e fa'avae i luga o se punaoa tatala MooTools. O se aofa'iga o mea fa'aoga JavaScript ma laisene MIT. (http://mootools.net/license.txt) O le lisi o meaʻai ma le tele o web o itulau e fa'avae i luga o le fa'avae. O le AJAX ma le JSON algorithm ua uma ona tuʻufaʻatasia i ana faʻaoga.
E lē gata i lea, WebStaX software e maua ai isi mea aoga e aoga mo le JSON web mamanu itulau.
- json.js – Fa'aoga mo le fa'asalalauina/maua mai o fa'amatalaga fa'amalosi ma le syntax JSON.
- dynforms.js – Fa'aoga mo le fatuina o le laulau HTML ma le malosi.
- validate.js – Fa'aoga mo le fa'amaoniaina ole fomu HTML.
O lo'o iai le faletusi atoa a le JavaScript i lalo o le la'au fa'apogai: webstax2\ vtss_appl\web\html\lib.
Taiala mo JSON Web mamanu itulau
O lenei vaega o loʻo taʻitaʻia pe faʻapefea ona mamanuina a web itulau fa'avae ile MSCC JavaScript library. Matou te faʻaogaina le Mirror global configured web itulau e pei o le example iinei. Ole feso'ota'iga asynchronous e fa'avae ile HTTP JSON auala avanoa ma o fa'asologa uma o le lalolagi o lo'o lisiina ile laulau HTML e tasi.
O le web fa'asologa o itulau o lo'o lisiina i lalo ma o le fa'ailoga atoa o lo'o i lalo o le fa'atonuga o la'au: webstax2\vtss_appl\mirror\html\mirror_ctrl.htm. Ina ia maua atili masani web itulau faasino, tagai i le vaega faaopoopo.
Fa'ata & RMirror Confiquration Laulau
Ata 5. Example o laulau fa'atulagaina fa'avaomalo
Fa'atonu Web itulau
ulutala HTML
Fa'aaofia faletusi JS e mana'omia ile HTML tag.
Fa'amata le punaoa laulau fa'amalosi
- A'o sauni le pepa HTML, vala'au DynamicTable() e amatalia le punaoa laulau fa'amalosi.
- Ole DynamicTable() e fa'aaogaina e fatu ai le laulau fa'amalosi pe a uma ona maua fa'amaumauga a le JSON.
- Ona valaʻau lea o le requestUpdate e amata ai le faʻatonuga o le JSON.
- window.addEvent('domready', galuega() {
- // Fausia se fomu faʻatasi ma le tino laulau mo le mauaina / faʻasalalau faʻamatalaga JSON
- myDynamicTable = fou DynamicTable(“myTableContent”, “config”,”plusRowCtrlBar”);
4 - requestUpdate();
- });
Talosaga/Tali JSON fa'amaumauga
- A sauni le pepa HTML, faʻaaoga requestJsonDoc() e lafo ai le talosaga a le JSON "mirror.config.session.get" e maua ai faʻamatalaga e uiga i sauniga faʻatulagaina.
- A maeʻa ona maua le faʻamaumauga a le JSON mo le "mirror.capabilities.get", o le a faʻagasolo le galuega callback requestUpdate(). O le galuega requestUpdate o le a valaau "mirror.config.session.get" e maua ai le faʻatulagaga o loʻo iai nei. A maua le faʻatulagaga o loʻo i ai nei, e valaʻau le function processUpdate e fausia le laulau e faʻaalia.
- galuega requestUpdate()
- {
- // Toe faʻafoʻi mea o le laulau
- myDynamicTable.restore();
5 - // O lenei laulau lua faʻamatalaga JSON.
- requestJsonDoc(“mirror.config.session.get”, null, processUpdate, “config”);
- }
Fa'agasolo le fa'amaumauga a le JSON na maua
- O le faagasologa o galuegaUpdate() e faʻaaogaina e faʻapipiʻi ai le laulau faʻamalosi pe a uma ona maua faʻamaumauga a le JSON.
- Ole addRows() e fa'aoga e fa'aopoopo ai laina laulau. myDynamicTable.update() fa'atulagaina le
laulau HTML e tusa ai ma faʻamatalaga i laina laulau.
- galuega fa'afouFa'afouina(recv_json, igoa)
- {
- // Le amanaʻia le faagasologa pe a leai se faʻamatalaga e maua
- afai (!recv_json) {
- alert("Ua le manuia le maua o faʻamatalaga malosi.");
- toe foi mai;
- }
- // Faasaoina le faʻamaumauga a le JSON na maua
- myDynamicTable.saveRecvJson(“config”, recv_json);
- // Faaopoopo laina laulau
- var table_rows = addRows(recv_json);
- myDynamicTable.addRows(table_rows);
- // Faʻafouina lenei laulau faʻamalosi
- myDynamicTable.update();
- // Toe faafou le taimi
- var autorefresh = document.getElementById(“autorefresh”);
- afai (autorefresh && autorefresh.checked) {
- afai (timerID) {
- clearTimeout(taimi ID);
- }
- timerID = setTimeout('requestUpdate()', settingsRefreshInterval());
- }
- }
Faaopoopo laina laulau
- I le addRows () galuega, matou te faʻaogaina le JSON format e faʻatumu ai taʻiala taʻitasi i le lalolagi i le laina laulau.
- O fanua HTML uma o lo'o lisiina i le JSON array ("table_rows") ma le syntax o le laulau laulau o lo'o i lalo.
Syntax:
laulau_laina:[ , , … ] : { , , … }
: {“ituaiga”: , “params”:[ , , …, ]}
- I lenei tulaga, o laina taitasi e lima fanua: "Session ID", "Mode", "Type", "VLAN ID" ma le "Reflector Port" Mo example,
ID Sauniga (Igoa fanua: int32_t) | 1 (Id o le sauniga fa'ata) |
Faiga (Igoa fanua: vtss_bool_t) | moni (O lona uiga ua mafai le sauniga fa'ata) |
Ituaiga (Igoa fanua: enumeration
{fa'ata, rMirrorSource, rMirrorDestination} |
RMirror Punavai (O le puna lea o se sauniga faʻata mamao |
VLAN ID (Igoa fanua: uint16_t) | 200 (le vlan fa'aoga mo fa'ata) |
Taulaga Reflector (Igoa fanua: vtss_ifindex_t) | Ki 1/1 (O le uafu e lafo i ai le felauaiga faʻata |
- O le myDynamicTable.addRows() o le a faʻaliliuina le JSON faʻamaumauga i le HTML format ma faʻaalia le laulau HTML.
- galuega addRow(ki, val)
- {
- var none_map_val = 0xFFFFFFFF, none_map_text = “Leai”, none_interface_text = “LEAI”;
- var tunnel_mode_suffix = val.TunnelMode == “useglobal” ? ” (” + oTTunnelMode[oVTunnelMode.indexOf(global_conf.tunnelMode)] + “)” : “”;
- var laina = {fanua:[
- {type:”link”, params:[“cr”, “mirror.htm?session_id=” + ki, ki]},
- {ituaiga:”tusitala”, params:[oTMode[oVMode.indexOf(val.Mode)], “c”]},
- {ituaiga:”tusitusiga”, params:[oTType[oVType.indexOf(val.Type)], “c”]},
- {type:”text”, params:[val.Type == “faata” ? “-“:
val.RMirrorVlan, “c”]}, - {type:”text”, params:[val.Type == “rMirrorSource” ?
val.ReflectorPort : “-” , “c”]} - ]};
- toe fo'i laina;
- }
- galuega addRows(recv_json)
- {
- laina laina, avanoa_colspan = 7;
- var table_rows = fou Array();
- // Fa'aopoopo le ulutala laulau
- addHeader( laulau_laina);
- // Fa'aopoopo le laina tasi
- Object.each(recv_json, galuega(faamaumauga) {
- table_rows.push(addRow(record.key, record.val));
- });
- toe faafoi laulau_laina;
- }
Web itulau fesoasoani
Mo le web fesoasoani itulau mamanu, o le fesoasoani faʻamatalaga e mafai ona faʻasino i le JSON faʻamatalaga, o le faʻamatalaga faʻamatalaga e mafai ona ogatasi ma le JSON galuega ma fesoasoani e faʻaitiitia faʻamatalaga faʻasalalau. ExampO iinei o loʻo maua mai le dhcp6 relay configuration.
Hyper-sootaga i le puna file
Tofi le fesoasoani file nofoaga i lona puna file HTML tag. Ole igoa fesuia'i tumau "help_page" e fa'aoga mo le web fesoasoani itulau tofiga.
- // Fesoasoani itulau togafiti
- var help_page = “/help/help_xxx.htm”;
Faʻafouina faʻamatalaga fanua HTML mai faʻamatalaga JSON
- Fa'aoga pe HTML tag e fa'ailoa le fa'amatalaga laulau HTML ma tu'uina atu se ID tulaga ese mo le tag.
- A sauni le pepa HTML, valaʻau loadXMLDoc() e maua ai le faʻamatalaga atoa a le JSON poʻo le mauaina o le faʻamatalaga metotia faʻapitoa e ala ile igoa ole JSON "jsonRpc.status.introspection.specific.inventory.get".
- O le processTableDesc() e fa'aaogaina e fa'afou ai le fa'amatalaga laulau ma processUpdate() fa'aaogaina e fa'afou ai le fa'amatalaga o le laulau.
- I le processUpdate (), valaʻau updateTableParamsDesc () e faʻafouina elemene JSON e fetaui ma igoa elemene patino.
- Fa'afou le pe tag HTML totonu e tusa ai ma le faʻamatalaga elemene.
- /* Fa'afouina fanua fa'amatalaga HTML */
- function processTableDesc(req) {
- afai (!req.responseText) {
- toe foi mai;
- }
- var json_spec = JSON.decode(req.responseText);
- // Faʻafouina faʻamatalaga laulau
- $(“TableDesc”).innerHTML = getJsonSpecElement(json_spec, “groups”, “dhcp6_relay.config.vlan”).faamatalaga;
- }
- /* Fa'afouina le fa'amatalaga o le laulau HTML */
- galuega fa'afouFa'afouina(recv_json) {
- // Faʻafouina faʻamatalaga faʻasologa o laulau
- var param_names = [
- {
- “alias”: “Fesootaiga”,
- “ituaiga”: “vtss_ifindex_t”,
- “igoa”: “vlanInterface”,
- “suffix”: “.”
- },
- {
- “alias”: “Fesoasoani Fesootaiga”,
- “ituaiga”: “vtss_ifindex_t”,
- “igoa”: “relayVlanInterface”,
- “suffix”: “. Le id o le faʻaoga faʻaoga mo le faʻafeiloaʻi."
- },
- {
- “Alias”: “Fa'asinomaga Tulaga”,
- “ituaiga”: “mesa_ipv6_t”,
- “igoa”: “relay_destination”,
- “suffix”: “. O le tuatusi IPv6 o le DHCPv6 server o lo'o talosagaina e tatau ona fa'afeiloa'i i ai. O le tau fa'aletonu 'ff05::1:3' o lo'o iai 'so'o se DHCP server'.”
- }
- ];
- updateTableParamsDesc(“TableParamsDesc”, recv_json, “dhcp6_relay.config.vlan.get”, param_names);
- }
- /* Maua JSON faʻamatalaga */
- window.addEvent('domready', galuega () {
- loadXMLDoc(“/json_spec”, processTableDesc);
- requestJsonDoc(“jsonRpc.status.introspection.specific.inventory.get”, “dhcp6_relay.config.vlan”, processUpdate);
- });
Hyper-so'otaga i le lisi o mea'ai
- O le HTML source code of menu bar e fa'atupu mai file webstax2\vtss_appl\web\ menu_default.cxx.
- Fa'asa'o mea o lo'o i ai file mo le Web itulau hyperlink.
- #pe a fa'amatala(VTSS_SW_OPTION_DHCP6_RELAY)
- ITEM(” Relay,dhcp6_relay.htm”);
- #endif //VTSS_SW_OPTION_DHCP6_RELAY
FAAMANATU
Matauina o le numera o uiga avanoa i ITEM(“”), lea e faʻaaogaina e filifili ai le tulaga o vaega i le lisi o meaʻai. I lenei tulaga, o mea uma web itulau o lo'o i lalo o le vaega "DHCPv6".
Ata 6. Esample o laulau fa'atulagaina fa'avaomalo
Fa'aopoopo
masani web itulau
E i ai le tele o mea masani web e mafai ona fa'aoga itulau mo le mamanu fa'asino. Tasi fa'aopoopo exampLe fa'aalia iinei o le fa'atulagaina o se fa'ata fa'ata e tasi o lo'o maua i vtss_appl\mirror\html\mirror.htm.
O le web itulau o loʻo tuʻuina atu ai faʻamatalaga auʻiliʻili mo se faʻata faʻata e tasi. O lo'o lisiina uma fa'asologa fa'atulagaina.
- Kiliki le "Save" button e faʻaoga ai le faʻatulagaga o loʻo iai nei.
- Kiliki le "Reset" button e toe setiina ai le faatulagaga o iai nei.
- Kiliki "Fa'aleaogaina" e toe fo'i i le pitoview o sauniga fa'ata
Fa'ata&RMirror Configuration
Fa'atonuga ole lalolagi
Punaoa VLAN(s) Fa'atonuga
Fa'atonuga o Taulaga
Ata 7. Example o fa'amatalaga auiliili o le sauniga fa'ata
O faʻamau "Save", "Reset" ma le "Cancel" e faʻaopoopoina e le html code:
JSON Poloaiga tafe
O lenei itulau e manaʻomia se faʻatonuga e lua laasaga:
- Muamua e tatau ona maua le gafatia o le masini ma le metotia "mirror.capabilities.get". E le suia ia agava'a ma e na'o le tasi lava le taimi e faitau ai.
- Ona manaʻomia lea ona maua le faʻatulagaga o loʻo i ai nei o le masini e faʻaaoga ai metotia "mirror.config.session.get", "port.status.get" ma i le tulaga o le faʻaputuina "topo.config.stacking.get".
O le valaau o le "mirror.capabilities.get" e amataina e le "domready" mea na tupu ma o le taunuuga ua faʻatulagaina e faʻatautaia e le galuega requestUpdate.
O le talosagaUpdate o le a amataina le valaau o le "mirror.config.session.get",
“port.status.get” ma i le tulaga o le faaputuina “topo.config.stacking.get” ma o taunuuga o nei valaau ua configured e taulimaina e le galuega prepareUpdate.
O le galuega prepareUpdate o le a aoina uma iʻuga, ma naʻo le taimi lava e maua uma ai o le a taʻua ai le galuega processUpdate o le a fausia ai laulau e faʻaalia i luga o le web.
Fa'asinomaga
- Wikipedia Javascript https://en.wikipedia.org/wiki/JavaScript
- JSON https://www.json.org/
- MoonTools https://mootools.net/
Pepa / Punaoa
![]() |
Microsemi AN1256 Web Polokalama Talosaga [pdf] Taiala mo Tagata Fa'aoga AN1256, AN1256 Web Polokalama Talosaga, Web Polokalama Talosaga, Talosaga |