摘 要:對(duì)XML技術(shù)進(jìn)行了全面的闡述,介紹了廣電BOSS架構(gòu)及XML技術(shù)在廣電BOSS中的實(shí)際應(yīng)用。
關(guān)鍵詞:XML技術(shù);廣電綜合業(yè)務(wù)運(yùn)營(yíng)支撐系統(tǒng)(廣電BOSS)
中圖分類號(hào):F49
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1672-3198(2010)19-0316-03
0 前言
近年來,隨著業(yè)務(wù)和技術(shù)的發(fā)展,有線數(shù)字電視行業(yè)為用戶提供的服務(wù)種類越來越多。除了仍然提供傳統(tǒng)的模擬電視業(yè)務(wù)之外,陸續(xù)開通了數(shù)字電視、專業(yè)頻道、互動(dòng)電視、寬帶等業(yè)務(wù),并以此為基礎(chǔ)開發(fā)了一系列增值業(yè)務(wù)。而和業(yè)務(wù)的蓬勃發(fā)展極不相稱的卻是相應(yīng)計(jì)算機(jī)業(yè)務(wù)系統(tǒng)建設(shè)的滯后性:傳統(tǒng)的計(jì)算機(jī)業(yè)務(wù)系統(tǒng)由于建設(shè)時(shí)期不同、業(yè)務(wù)模式不同和缺乏統(tǒng)一規(guī)劃等原因,造成了業(yè)務(wù)系統(tǒng)林立、條塊化分割嚴(yán)重、彼此間很難交互的局面,導(dǎo)致人員、設(shè)備、網(wǎng)絡(luò)、數(shù)據(jù)庫等資源不能共享或者難于共享,增加了系統(tǒng)的管理、開發(fā)等成本,更為重要的是,嚴(yán)重制約了業(yè)務(wù)的發(fā)展速度,難以應(yīng)對(duì)激烈的市場(chǎng)競(jìng)爭(zhēng),難以適應(yīng)不斷發(fā)展的客戶需求,妨礙了服務(wù)水平和服務(wù)質(zhì)量的提高。
因此廣電有線數(shù)字電視行業(yè)急需建立一套“業(yè)務(wù)綜合、資源共享、管理集中、使用靈活”的新一代綜合業(yè)務(wù)運(yùn)營(yíng)支撐平臺(tái),為業(yè)務(wù)的可持續(xù)發(fā)展提供有力支持。
廣電BOSS采用了富客戶端技術(shù),通過XML作為傳輸?shù)姆庋b體靈活的把數(shù)據(jù)分批下載到客戶端,并且充分利用JavaScript把本地化的數(shù)據(jù)靈活運(yùn)用,從而減少客戶端與服務(wù)器端的交互。
廣電BOSS除了主要的業(yè)務(wù)系統(tǒng)外,還包括相對(duì)獨(dú)立的系統(tǒng),例如:CA系統(tǒng)、Call Center系統(tǒng)、GIS系統(tǒng)、銀行系統(tǒng)、短信平臺(tái)等。它們具有不同的數(shù)據(jù)庫、不同的數(shù)據(jù)格式,為了保證系統(tǒng)的高效運(yùn)轉(zhuǎn),這些系統(tǒng)需要統(tǒng)一的標(biāo)準(zhǔn)語言進(jìn)行自動(dòng)交互,而XML的應(yīng)用很好解決了BOSS同它們之間的數(shù)據(jù)交換。
XML第一次提供了一種信息交換模式,這種格式可編輯、易解析,且可表示為任何類型的結(jié)構(gòu)或半結(jié)構(gòu)化信息,在廣電BOSS中,XML很好地解決了數(shù)據(jù)傳輸和交換功能。
1 XML技術(shù)介紹
XML是一種元標(biāo)注語言,是當(dāng)今十大軟件技術(shù)之一,它是一種數(shù)據(jù)交換模式,并且具有跨語言、跨平臺(tái)的強(qiáng)大功能,通過它不同系統(tǒng)和不同程序之間可以進(jìn)行無二性的交互數(shù)據(jù)。另外它還能作為一種層次型數(shù)據(jù)庫進(jìn)行使用,有效的保存數(shù)據(jù),并且能夠存儲(chǔ)其數(shù)據(jù)關(guān)系,它是把數(shù)據(jù)和格式相互分離的一種先進(jìn)技術(shù)。
XML的優(yōu)勢(shì)在于其數(shù)據(jù)可被用戶定義的、有語義的標(biāo)記環(huán)繞,可在數(shù)據(jù)庫中實(shí)現(xiàn)無損的存儲(chǔ)、檢索和修改等操作。XML用于信息交換主要有以下幾個(gè)方面的優(yōu)勢(shì):
(1)可擴(kuò)展性。允許根據(jù)需要定義新的標(biāo)記的能力,使其能夠以意義明確的方式將不同數(shù)據(jù)結(jié)構(gòu)保存在一起。
(2)自我描述性。支持豐富的數(shù)據(jù)類能夠很好地表現(xiàn)許多復(fù)雜的數(shù)據(jù)關(guān)系,使基于XML的應(yīng)用程序可以準(zhǔn)確高效地搜索相關(guān)的數(shù)據(jù)內(nèi)容。
(3)跨平臺(tái)性。使用Unicode編碼的純文本格式使其可以在大部分平臺(tái)上使用,能夠在不同的用戶和程序之間交換數(shù)據(jù),而不論其平臺(tái)如何。
(4)簡(jiǎn)單性。XML文檔是能進(jìn)行文件結(jié)構(gòu)合法性驗(yàn)證的純文本文檔,易于傳輸操作。
通過DOM API(文檔對(duì)象模型API)可輕松地編制讀寫XML的程序,在Web系統(tǒng)應(yīng)用程序中可靈活使用XML。對(duì)于數(shù)據(jù)交換,最重要的是進(jìn)行數(shù)據(jù)交換的雙方要對(duì)數(shù)據(jù)的格式達(dá)成統(tǒng)一的認(rèn)識(shí),只有采用統(tǒng)一的數(shù)據(jù)格式,才能實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)流轉(zhuǎn)、處理等功能。
2 廣電BOSS架構(gòu)
廣電BOSS涵蓋了模擬電視、數(shù)字電視、寬帶業(yè)務(wù)、互動(dòng)電視、高清電視、數(shù)據(jù)專線等各類互動(dòng)增值業(yè)務(wù),充分融入了最新的經(jīng)營(yíng)理念和客戶管理的思想,是一個(gè)“面向融合、面向客戶、可快速響應(yīng)”的新一代綜合業(yè)務(wù)運(yùn)營(yíng)支撐平臺(tái)。
如圖一,BOSS的主要功能架構(gòu)包括:企業(yè)級(jí)客戶管理、計(jì)費(fèi)融合管理、業(yè)務(wù)綜合管理、工單流程管理、移動(dòng)營(yíng)業(yè)廳管理、呼叫中心管理、網(wǎng)上營(yíng)業(yè)廳管理、充值卡管理、工程管理、前置管理等。采用以J2EE的多層體系結(jié)構(gòu)、以XML為數(shù)據(jù)交換標(biāo)準(zhǔn)、以DHTML展現(xiàn)和JAVASCRIPT控制富客戶端展現(xiàn)形式的應(yīng)用體系架構(gòu)。
3.1.1 廣電BOSS中XML應(yīng)用體系結(jié)構(gòu)
廣電BOSS采用了B/S/S架構(gòu)并繼承傳統(tǒng)的C/S靈活性而設(shè)計(jì),由于B/S架構(gòu)不適合大量數(shù)據(jù)傳輸和復(fù)雜業(yè)務(wù)的頻繁交互,而本系統(tǒng)不僅要求數(shù)據(jù)量大并且要求業(yè)務(wù)操作復(fù)雜,為了減少頻繁的數(shù)據(jù)庫讀寫操作,就需要一套單獨(dú)的數(shù)據(jù)處理機(jī)制,基于XML的數(shù)據(jù)交換系統(tǒng)成為BOSS進(jìn)行數(shù)據(jù)交換傳輸?shù)氖走x。如圖二。
圖2 XML應(yīng)用體系結(jié)構(gòu)
(1)客戶端:業(yè)務(wù)員錄入相關(guān)信息后,客戶端腳本首先完成校驗(yàn)和轉(zhuǎn)換,將數(shù)據(jù)打包成XML包。數(shù)據(jù)包到應(yīng)用服務(wù)器,業(yè)務(wù)程序分析數(shù)據(jù)包數(shù)據(jù)的合法性,對(duì)合法性數(shù)據(jù)進(jìn)行下一步業(yè)務(wù)操作,然后把業(yè)務(wù)數(shù)據(jù)通過數(shù)據(jù)交換平臺(tái)發(fā)送到數(shù)據(jù)層。反過來,客戶端從業(yè)務(wù)層接收XML數(shù)據(jù)包,靈活的把數(shù)據(jù)分批下載到客戶端,并且充分利用JavaScript把本地化的數(shù)據(jù)靈活運(yùn)用,展現(xiàn)到瀏覽器。
(2)交換系統(tǒng):它負(fù)責(zé)各系統(tǒng)間的數(shù)據(jù)轉(zhuǎn)發(fā),基于XML標(biāo)準(zhǔn)定義了合適的TAG集合以及Schema定義,統(tǒng)一了數(shù)據(jù)交換標(biāo)準(zhǔn),完成了系統(tǒng)的無縫集成,負(fù)責(zé)把展現(xiàn)層錄入的數(shù)據(jù)傳輸?shù)綌?shù)據(jù)庫及把數(shù)據(jù)庫中的數(shù)據(jù)傳輸?shù)秸宫F(xiàn)層,起到將數(shù)據(jù)打包并解包的功能,同時(shí)完成數(shù)據(jù)的轉(zhuǎn)換和校驗(yàn)。
(3)應(yīng)用層:負(fù)責(zé)對(duì)XML數(shù)據(jù)包進(jìn)行轉(zhuǎn)換和校驗(yàn),將數(shù)據(jù)處理相應(yīng)的SQL語句從而存入數(shù)據(jù)庫,或者把從數(shù)據(jù)庫中得到的數(shù)據(jù)進(jìn)行處理,并打包成XML。
3.1.2 廣電BOSS中XML的格式定義
本系統(tǒng)統(tǒng)一了XML數(shù)據(jù)包的格式,便于數(shù)據(jù)的傳輸和轉(zhuǎn)換。
(1)上傳格式:
……….
…………………
…………………..
(2)下傳格式:
type=”0”表示非查詢操作type=”1”表示查詢操作
……….
3.1.3 展現(xiàn)層的XML技術(shù)應(yīng)用
圖3 展現(xiàn)層的XML技術(shù)應(yīng)用
如圖3,展現(xiàn)層從應(yīng)用層得到XML數(shù)據(jù)包,利用MSXML組件來解析數(shù)據(jù),在客戶端的腳本用到了大量JavaScript公用代碼和JavaScript控件。例如:
(1)xmlHttp.js 構(gòu)造xml和數(shù)據(jù)傳輸
(2)dbutil.js 數(shù)據(jù)包封裝和解釋
createExecutearr()樹組信息的封裝和提交
createExecuteform()form信息的封裝和提交
createDelArray()樹組刪除信息的封裝和提交
createselectArr()樹組查詢信息
createselect()form查詢信息的封裝和提交
fillform()填充form
analyzeReturnXML()解析下傳信息
createDoc()//創(chuàng)建document對(duì)象;
createRootNode()創(chuàng)建根節(jié)點(diǎn);
createActionNode()添加action節(jié)點(diǎn);
createRecorderNode()添加recorder節(jié)點(diǎn);
createFieldNode()添加field節(jié)點(diǎn);
createFieldStrNode()添加field字符串節(jié)點(diǎn)
(3)compack.js 業(yè)務(wù)打包
bc=new BusinessControllor();
bc.preInput=preInput;//需要根據(jù)業(yè)務(wù)需要覆蓋該方法
bc.ask =prototype_ask;
bc.pack=prot_pack;
bc.output=prototype_output;
bc.actionname =“cm2011”;//需要改成自己業(yè)務(wù)的Action代號(hào)
bc.actprop=“type”;
bc.actpropvalue =“ccc”;
bc.recordtype =“query”;
bc.requestPrintInvoice=true;
bc.printVoucher=true;//打印業(yè)務(wù)憑單
bc.printInvoice=true;//打印發(fā)票
bc.printCard=1;//打印用戶證
bc.run();
通過以上方法,完成了對(duì)XML文檔的解析,實(shí)現(xiàn)了對(duì)大量業(yè)務(wù)數(shù)據(jù)的傳輸和轉(zhuǎn)換,從而減少客戶端與服務(wù)器端的交互,大大提高了系統(tǒng)的效率。
3.1.4 應(yīng)用層的XML技術(shù)應(yīng)用
廣電BOSS是基于J2EE的應(yīng)用體系結(jié)構(gòu),在應(yīng)用層用到了大量的Java代碼以及相關(guān)框架,因此在這一層就利用DOM4J來完成對(duì)XML文檔的解析。
圖4 應(yīng)用層的XML技術(shù)應(yīng)用
DOM4J是一個(gè)非常優(yōu)秀的Java XML API,具有性能優(yōu)異、功能強(qiáng)大和極端易用的特點(diǎn)。它應(yīng)用于Java平臺(tái),采用了Java集合框架并完全支持DOM,SAX和JAXP。DOM4J的一個(gè)最大的實(shí)用之處是支持XPath表達(dá)式的查詢,這樣,我們可以在DOM4J的Document結(jié)構(gòu)中使用這種簡(jiǎn)單的表達(dá)式就可以快速找到我們需要的某個(gè)元素了。
在本系統(tǒng)中通過JavaBean讀取前臺(tái)發(fā)送過來的數(shù)據(jù)和從后臺(tái)向前臺(tái)返回?cái)?shù)據(jù),用到的Java類主要有:
(1)ActionRequest.java,負(fù)責(zé)上傳數(shù)據(jù)的解析,主要方法:
單個(gè)Action調(diào)用字段值getFieldValue(String fieldName)
字段類型getFieldType(String fieldName)
字段名稱getFieldLable(String fieldName)
字段舊值getFieldOldValue(String fieldName)
多個(gè)Action調(diào)用字段值getFieldValue(int index,String fieldName)
字段類型getFieldType(int index,String fieldName)
字段名稱getFieldLable(int index,String fieldName)
字段舊值getFieldOldValue(int index,String fieldName)
(2)SQLResponse.java類,負(fù)責(zé)下傳數(shù)據(jù)的封裝,主要方法:
setMessage(String message)//操作結(jié)果信息
setResult(boolean Result)///操作結(jié)果是否正確
setType(int type)//操作類型
setRecordset(RecordSet recordSet)//查詢返回結(jié)果集
setFieldType(String fieldType)//返回字段類型
setFieldName(String fieldName)//返回字段名稱
通過以上方法,實(shí)現(xiàn)了應(yīng)用層對(duì)XML數(shù)據(jù)包的解析,在本層數(shù)據(jù)和業(yè)務(wù)處理相分離,使系統(tǒng)可以靈活處理不同的業(yè)務(wù)。同時(shí),本層實(shí)現(xiàn)了對(duì)不同數(shù)據(jù)庫和數(shù)據(jù)源的支持,使系統(tǒng)具備了良好的可擴(kuò)展性。
3.2 XML在BOSS和子系統(tǒng)之間的應(yīng)用
廣電BOSS除了主要的業(yè)務(wù)系統(tǒng)外,還包括相對(duì)獨(dú)立的系統(tǒng),例如:CA系統(tǒng)、Call Center系統(tǒng)、GIS系統(tǒng)、銀行系統(tǒng)、短信平臺(tái)等。它們具有不同的數(shù)據(jù)庫、不同的數(shù)據(jù)格式,為了保證系統(tǒng)的高效運(yùn)轉(zhuǎn),這些系統(tǒng)需要統(tǒng)一的標(biāo)準(zhǔn)語言進(jìn)行自動(dòng)交互,而XML語言具有平臺(tái)無關(guān)性和自解釋性,所以它成為系統(tǒng)的數(shù)據(jù)交換標(biāo)準(zhǔn)?;赬ML標(biāo)準(zhǔn)定義了合適的TAG集合以及Schema定義,通過數(shù)據(jù)交換系統(tǒng),負(fù)責(zé)各系統(tǒng)間的數(shù)據(jù)轉(zhuǎn)發(fā),統(tǒng)一了數(shù)據(jù)交換標(biāo)準(zhǔn),完成了系統(tǒng)的無縫集成。通過XML格式的指令單控制百萬級(jí)別客戶的CA系統(tǒng)開、關(guān)頻道,Call Center系統(tǒng)可自動(dòng)的提取來電客戶資料、根據(jù)催費(fèi)清單進(jìn)行電話語音自動(dòng)催費(fèi)、支持電話自動(dòng)查費(fèi)交費(fèi)等,客戶可以到國(guó)內(nèi)各大銀行辦理收視費(fèi)交納業(yè)務(wù),客戶可在Internet上查詢費(fèi)用信息、報(bào)修、交費(fèi),統(tǒng)一的XML數(shù)據(jù)格式使短信平臺(tái)具有集成了移動(dòng)、聯(lián)通、網(wǎng)通的短信收發(fā)能力,統(tǒng)一格式的消息管理使得消息具有通過系統(tǒng)、E_mail、短信多渠道傳輸?shù)哪芰?。如圖五。
圖5 XML在BOSS和子系統(tǒng)之間的應(yīng)用
4 結(jié)語
通過在廣電BOSS中利用XML作為數(shù)據(jù)交換的中介,給系統(tǒng)的實(shí)現(xiàn)帶來了極大的靈活性。系統(tǒng)可屏蔽掉后臺(tái)的多種數(shù)據(jù)源,用統(tǒng)一的XML數(shù)據(jù)呈現(xiàn)給用戶。接收數(shù)據(jù)一方根據(jù)XML數(shù)據(jù)的“Schema”,可對(duì)數(shù)據(jù)進(jìn)行任意的處理,如分解出其中需處理的數(shù)據(jù)或是以不同的樣式來呈現(xiàn)。
XML技術(shù)的應(yīng)用,實(shí)現(xiàn)了廣電BOSS系統(tǒng)開放性、靈活性與可擴(kuò)展性、安全可靠性及先進(jìn)性的技術(shù)要求。參考文獻(xiàn)
[1]飛思科技產(chǎn)品研發(fā)中心.JSP應(yīng)用開發(fā)詳解(第二版)[M].北京:電子工業(yè)出版社,2006.
[2]Danny Goodman.JavaScript寶典[M].北京:電子工業(yè)出版社,2002.
[3]余浩東.J2EE應(yīng)用框架設(shè)計(jì)與項(xiàng)目開發(fā)[M].北京:清華大學(xué)出版社,2002.
[4]李剛.基于J2EE的Ajax寶典[M].北京:電子工業(yè)出版社,2007.
[5]Bruce Eckel.Java編程思想(第4版)[M].北京:機(jī)械工業(yè)出版社,2007.
[6]依維恩.XML高級(jí)編程(第1版)[M].北京:清華大學(xué)出版社,2009.