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