徐勇
傳統(tǒng)的電信綜合網(wǎng)管主要基于C/S架構(gòu)開發(fā),隨著Web和移動(dòng)Web技術(shù)的快速發(fā)展,開發(fā)以Web技術(shù)為核心的新一代綜合網(wǎng)管平臺(tái)成為各運(yùn)營商、設(shè)備廠家的必然需求,Node.js技術(shù)為實(shí)現(xiàn)前后端統(tǒng)一的Web開發(fā)平臺(tái)提供了技術(shù)選擇。
【關(guān)鍵詞】Node.js 綜合網(wǎng)管 Web開發(fā)
傳統(tǒng)的電信設(shè)備綜合網(wǎng)管軟件都是基于C/S架構(gòu)的,C/S軟件響應(yīng)快、界面表現(xiàn)力強(qiáng),在實(shí)現(xiàn)實(shí)時(shí)通信、復(fù)雜拓?fù)洹⒃O(shè)備仿真等網(wǎng)管功能時(shí)具有明顯優(yōu)勢。而B/S架構(gòu)的軟件雖然有著易于部署、使用簡單、可跨互聯(lián)網(wǎng)訪問等優(yōu)勢,但在電信網(wǎng)管領(lǐng)域,應(yīng)用還不多。
從整個(gè)桌面應(yīng)用軟件行業(yè)的技術(shù)發(fā)展來看,未來軟件Web化、移動(dòng)化的趨勢已經(jīng)很明顯,這些方面的新技術(shù)、新平臺(tái)也處于快速更新迭代的過程中,尤其是近期的Web開發(fā)技術(shù)已經(jīng)發(fā)展到能同時(shí)兼顧PC端和移動(dòng)端,軟件界面表現(xiàn)力超過傳統(tǒng)桌面應(yīng)用的程度,這為將電信綜合網(wǎng)管全面遷移到Web平臺(tái)提供了技術(shù)基礎(chǔ)。另外,一些全新的技術(shù),如云計(jì)算、大數(shù)據(jù)等也和Web開發(fā)技術(shù)結(jié)合緊密,這為電信設(shè)備領(lǐng)域未來“智能運(yùn)維”、SDN(軟件定義網(wǎng)絡(luò))等新概念的落地也提供了新的技術(shù)推動(dòng)力。
對(duì)于電信綜合網(wǎng)管這樣的“傳統(tǒng)”專業(yè)軟件,如果要全面轉(zhuǎn)換到全新的Web架構(gòu)上來,面臨的技術(shù)挑戰(zhàn)依然還存在,比如研發(fā)投入較高、新技術(shù)風(fēng)險(xiǎn)大,在網(wǎng)的設(shè)備也還在需要用上一代綜合網(wǎng)管軟件統(tǒng)一管理。在這種情況下,大部分設(shè)備廠家都還沒有實(shí)際啟動(dòng)新網(wǎng)管平臺(tái)的研發(fā)。但長遠(yuǎn)來看,綜合網(wǎng)管類應(yīng)用升級(jí)到B/S平臺(tái)上,仍然是必然的和有意義的,提前進(jìn)行平臺(tái)的預(yù)研和開發(fā)準(zhǔn)備工作,可以在未來的市場競爭中取得優(yōu)勢地位。
1 以Node.js為核心的Web網(wǎng)管架構(gòu)
Web平臺(tái)技術(shù)的選擇很多,本設(shè)計(jì)方案不同于OpenNMS那樣的“經(jīng)典”Web網(wǎng)管軟件框架(OpenNMS是著名的開源網(wǎng)絡(luò)管理軟件,主要采用Java + PostgreSQL + JSP技術(shù)架構(gòu)),而采用了近年成熟的Web前端和后端技術(shù)搭建,代表了Web開發(fā)的最新潮流,其主要技術(shù)架構(gòu)如圖1所示。
新Web網(wǎng)管平臺(tái)后端采用Node.js + Socket.IO + PHP + MySQL,前端采用Ext.JS + HTML5等技術(shù)實(shí)現(xiàn),這也是現(xiàn)在Web應(yīng)用開發(fā)的一種比較先進(jìn)的架構(gòu)選擇,兼顧了系統(tǒng)性能、雙向通信、表現(xiàn)力、快速開發(fā)等要求。
Node.js是一個(gè)基于Chrome JavaScript運(yùn)行時(shí)建立的服務(wù)端平臺(tái), 用于方便地搭建響應(yīng)速度快、易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。Node.js 使用事件驅(qū)動(dòng),非阻塞I/O 模型而得以輕量和高效,非常適合在分布式設(shè)備上運(yùn)行的數(shù)據(jù)密集型的實(shí)時(shí)應(yīng)用。另外,使用Node.js開發(fā)服務(wù)端,那么前端和后端都用同一種JavaScript語言開發(fā),在項(xiàng)目人員招聘、組織、技能培養(yǎng)時(shí)很占優(yōu)勢。Node.js也提供SNMP協(xié)議的組件,可用于實(shí)現(xiàn)基于SNMP協(xié)議的設(shè)備通信模塊。
對(duì)于網(wǎng)管軟件來說,服務(wù)端實(shí)現(xiàn)設(shè)備通信代理,服務(wù)端實(shí)時(shí)推送通知消息到客戶端,都是必須滿足的基本需求,但HTTP協(xié)議本身并不適合用來開發(fā)實(shí)時(shí)的通信程序。為實(shí)現(xiàn)設(shè)備參數(shù)操作、告警實(shí)時(shí)通知等功能,需要用到HTML5的新特性WebSocket。WebSocket是HTML5新支持的一種全新通信協(xié)議,它實(shí)現(xiàn)了瀏覽器與服務(wù)器全雙工通信(full-duplex)。Socket.IO則是一個(gè)完全由JavaScript實(shí)現(xiàn)、基于Node.js的WebSocket實(shí)現(xiàn),是一個(gè)跨平臺(tái)的開源框架,它包括了客戶端的JavaScript和服務(wù)器端的Node.js。Socket.IO除了支持WebSocket通訊協(xié)議外,還支持許多種輪詢(Polling)機(jī)制以及其它實(shí)時(shí)通信方式,并封裝成了通用的接口,并且在服務(wù)端實(shí)現(xiàn)了這些實(shí)時(shí)機(jī)制的相應(yīng)代碼(用于低版本瀏覽器的降級(jí)使用)。Socket.IO實(shí)現(xiàn)的Polling通信機(jī)制包括Adobe Flash Socket、AJAX長輪詢、AJAX multipart streaming、持久Iframe、JSONP輪詢等。Socket.IO能夠根據(jù)瀏覽器對(duì)通訊機(jī)制的支持情況自動(dòng)地選擇最佳的方式來實(shí)現(xiàn)網(wǎng)絡(luò)實(shí)時(shí)應(yīng)用。
2 其他關(guān)鍵技術(shù)
3 結(jié)束語
完全基于Web技術(shù)開發(fā)的全功能綜合網(wǎng)管系統(tǒng),目前還沒有成為主流。但隨著各種Web開發(fā)技術(shù)的成熟,新一代的運(yùn)營商運(yùn)維平臺(tái)如OSS/BSS系統(tǒng)對(duì)Web技術(shù)的應(yīng)用成熟,各廠商開發(fā)的綜合網(wǎng)管系統(tǒng)也會(huì)逐漸遷移到Web技術(shù)上來,屆時(shí)包括PTN、SDN、IMS這些復(fù)雜的通信設(shè)備,也能夠納入到統(tǒng)一的Web網(wǎng)管框架下進(jìn)行管理,這非常有利于整個(gè)通信設(shè)備網(wǎng)管網(wǎng)絡(luò)的融合統(tǒng)一、智能運(yùn)維和移動(dòng)監(jiān)控,是多年來網(wǎng)管技術(shù)領(lǐng)域的一次重要躍進(jìn)。
作者單位
廣州市高科通信技術(shù)股份有限公司 廣東省廣州市 510663