1 引言
企業(yè)或高校IT運(yùn)維會(huì)產(chǎn)生大量原始數(shù)據(jù),通過對(duì)這些原始數(shù)據(jù)的整合分析,可以及時(shí)地掌握IT運(yùn)維的狀態(tài),有效地預(yù)見信息的發(fā)展趨勢,并為下一步IT決策提供數(shù)據(jù)支持。
本課題計(jì)劃建立一個(gè)統(tǒng)一管理IT運(yùn)維數(shù)據(jù)的IT運(yùn)維數(shù)據(jù)展示系統(tǒng),首先實(shí)現(xiàn)其Web管理方式,例如用戶登錄Web瀏覽器便可以查看一卡通信息、網(wǎng)絡(luò)信息的日?qǐng)?bào)表、月報(bào)表和年報(bào)表,而不需要分別登錄各個(gè)系統(tǒng)去自己統(tǒng)計(jì)分析數(shù)據(jù),這樣可以有效節(jié)省用戶時(shí)間。同時(shí)IT運(yùn)維數(shù)據(jù)展示系統(tǒng)將新增許多統(tǒng)計(jì)功能,提供更強(qiáng)的數(shù)據(jù)分析能力。
其次,考慮到智能手機(jī)終端的普及,憑借其可以隨時(shí)隨地獲取和處理信息的優(yōu)勢,本課題在運(yùn)用Web進(jìn)行管理的同時(shí),以Web服務(wù)器為基礎(chǔ)與手機(jī)客戶端進(jìn)行同步,來完成手機(jī)客戶端IT運(yùn)維系統(tǒng)應(yīng)用程序的開發(fā),實(shí)現(xiàn)用戶無論何時(shí)何地均能通過手機(jī)登錄系統(tǒng)查看所需信息。
Android包括操作系統(tǒng)、用戶界面和應(yīng)用程序等移動(dòng)電話工作所需的全部組件,不存在任何以往阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。由于Android是一個(gè)開放、自由的移動(dòng)終端系統(tǒng),同時(shí)Android系統(tǒng)平臺(tái)的開源性,相比于蘋果的封閉,能夠提供更好的安全性能,Android是真正意義上的為移動(dòng)終端打造的開放性平臺(tái)。于是本系統(tǒng)手機(jī)客戶端開發(fā)選用Android系統(tǒng)平臺(tái)。
2 關(guān)鍵技術(shù)
2.1 Web開發(fā)技術(shù)
Web開發(fā)使用的是支持多平臺(tái)的JSP語言,采用Struts+Spring+Hibernate框架。Struts為構(gòu)建Web應(yīng)用程序提供了一個(gè)穩(wěn)定、成熟的MVC框架,Hibernate是目前最流行的持久層解決方案,Spring為J2EE應(yīng)用程序開發(fā)提供集成的框架。選用Tomcat5.0為Web服務(wù)器,Oraclelog數(shù)據(jù)庫,Ora—cle支持分布式數(shù)據(jù)庫和分布處理,具有可移植性、可兼容性和可連接性。使用Oracle的dblink和觸發(fā)器完成不同數(shù)據(jù)庫之間的同步,以實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)一致性。
2.2 Android開發(fā)技術(shù)
(1)Android客戶端使用RhoStudio開發(fā)環(huán)境、Ruby開發(fā)語言。RhoStudio是RhoMobile Suite的一個(gè)組成部分,RhoMobile Suite用于移動(dòng)應(yīng)用程序的開發(fā)。RhoMobile應(yīng)用是與操作系統(tǒng)平臺(tái)無關(guān)的,能夠支持企業(yè)和消費(fèi)類的操作系統(tǒng),包括Win—dows Mobile,Windows CE,蘋果公司IOS,An—droid,BlackBerry和Symbian。擺脫了操作系統(tǒng)設(shè)計(jì)上的限制,有很好的靈活性。
(2)Ruby是解釋型語言,其程序無需編譯即可輕松執(zhí)行。Ruby的變量沒有類型,因此不必為靜態(tài)的類型匹配而煩惱。它是面向?qū)ο蟮恼Z言,有很好的封裝繼承性,不需要內(nèi)存管理,具有垃圾回收(Garbage Collect,GC)功能,能自動(dòng)回收不再使用的對(duì)象。這些優(yōu)勢使得開發(fā)更為簡單快捷。
3 運(yùn)維數(shù)據(jù)展示系統(tǒng)的分析
3.1系統(tǒng)體系結(jié)構(gòu)
本系統(tǒng)的設(shè)計(jì)目標(biāo)首先是針對(duì)大量分布式IT運(yùn)維數(shù)據(jù)的統(tǒng)一管理,根據(jù)需求將存儲(chǔ)在不同數(shù)據(jù)庫服務(wù)器上的一卡通系統(tǒng)數(shù)據(jù)、網(wǎng)絡(luò)維護(hù)系統(tǒng)數(shù)據(jù)、網(wǎng)絡(luò)計(jì)費(fèi)系統(tǒng)數(shù)據(jù)等通過數(shù)據(jù)庫同步技術(shù)采集到一個(gè)工作數(shù)據(jù)庫服務(wù)器上。并同時(shí)設(shè)置了備份數(shù)據(jù)庫,當(dāng)前數(shù)據(jù)庫出現(xiàn)故障時(shí),可切換到備份數(shù)據(jù)庫,增加數(shù)據(jù)的可靠性。其次,經(jīng)過篩選、統(tǒng)計(jì)、邏輯分析進(jìn)行不同的處理,最終形成不同類別數(shù)據(jù)的日?qǐng)?bào)、月報(bào)和年報(bào)。在展示方式上,首先實(shí)現(xiàn)了Web界面的展示,即在PC機(jī)上的展示。然后重點(diǎn)實(shí)現(xiàn)了基于Android智能手機(jī)客戶端的展示效果。只要IT運(yùn)維管理人員擁有一部裝有Android系統(tǒng)的手機(jī),便可以隨時(shí)隨地掌握IT運(yùn)維情況,大大地提高了工作效率。本系統(tǒng)的體系結(jié)構(gòu)圖如圖1所示。
圖1系統(tǒng)體系結(jié)構(gòu)圖
3.2 Android客戶端訪問服務(wù)器端的分析
我們知道,Web瀏覽器是通過http協(xié)議給Web服務(wù)器提交數(shù)據(jù)、驗(yàn)證數(shù)據(jù)和解析顯示數(shù)據(jù)。那么,Android客戶端要怎樣實(shí)現(xiàn)與Web服務(wù)器的數(shù)據(jù)通信呢?
本系統(tǒng)中開發(fā)手機(jī)客戶端使用的是RhoSutdio開發(fā)環(huán)境,在此開發(fā)環(huán)境中獲取Web服務(wù)器端的數(shù)據(jù)均以http協(xié)議為基礎(chǔ),實(shí)現(xiàn)數(shù)據(jù)的同步有以下兩種方式。
(1)Rhodes內(nèi)部同步系統(tǒng)——SyllcEngineRhoConnect是由后臺(tái)應(yīng)用程序和任何支持Ruby語言的服務(wù)器組件所組成的同步框架。RhoConnect為Rhodes提供同步數(shù)據(jù)是通過產(chǎn)生簡單的模型和使得sync標(biāo)志位有效來完成的。這一操作觸發(fā)了Rhodes內(nèi)部的同步系統(tǒng)——SyncEngine,SyncEngine在http協(xié)議之上,通過JSON數(shù)據(jù)交換格式與RhoConneet進(jìn)行交互,同步頁面的數(shù)據(jù)將以JSON的數(shù)據(jù)格式從RhoConnect傳送到Syn—cEngine。通過調(diào)用SyncEngine的API可實(shí)現(xiàn)數(shù)據(jù)模型的同步,同時(shí)在Rhodes和RhoConnect之間實(shí)現(xiàn)透明的數(shù)據(jù)操作。因此使用RhoConnect框架要求web服務(wù)器返回JSON類型的數(shù)據(jù),同時(shí)要求Rhodes應(yīng)用程序的sync為enable狀態(tài),即達(dá)到同步使能狀態(tài)。RhoConnect接收到Web服務(wù)器端的JSON數(shù)據(jù)后,由Rhodes應(yīng)用程序?qū)ζ溥M(jìn)行解析,獲得所需的數(shù)據(jù)格式。這樣便實(shí)現(xiàn)了Web到Android的數(shù)據(jù)同步。
(2)直接連接到Web服務(wù)器的技術(shù)——Asyn一cHttpRhoSutdio提供了直接連接到Web服務(wù)器的AsyncHttp技術(shù),而不需要使用RhoConnect。AsyncHttp與后臺(tái)Web服務(wù)同步交互是通過調(diào)用AsyncHttp的API實(shí)現(xiàn)的,使用的是http協(xié)議。通過使用AsyncHttp的get、post等方法實(shí)現(xiàn)數(shù)據(jù)的提交和請(qǐng)求,同時(shí)這一方法對(duì)Web服務(wù)器端返回的數(shù)據(jù)格式要求較為靈活,可以是JSON、ⅪvIL甚至可以是用戶自定義的字符串(只要開發(fā)者可以解析)。這種方法可以直接連接到數(shù)據(jù)庫,同時(shí)相對(duì)SyncEngine方法更加靈活。因此本系統(tǒng)實(shí)現(xiàn)時(shí)采用的是AsyncHttp的同步方式。
3.3數(shù)據(jù)解析
本系統(tǒng)采用AsyncHttp方式實(shí)現(xiàn)Android客戶端與Web服務(wù)器端的數(shù)據(jù)交互,交換的數(shù)據(jù)可以是JSON數(shù)據(jù)、XML文檔或者是字符串,如果服務(wù)器端返回的是JSON數(shù)據(jù)模型,則@params[IIbody”]將會(huì)被自動(dòng)解析;如果返回的是XML數(shù)據(jù)模型,在應(yīng)用程序中“rexml extension”設(shè)置為有效狀態(tài)時(shí)@params[-”body”]可以被自動(dòng)解析;如果@paramsE”body”]獲得的是其他字符串形式,則需要開發(fā)者自己進(jìn)行解析。
JSON結(jié)構(gòu)是一種輕量級(jí)的數(shù)據(jù)交換格式,易于閱讀和編寫,同時(shí)也易于機(jī)器解析和生成,JSON格式以一種特定的字符串形式來表示JavaScript對(duì)象,采用與編程語言無關(guān)的文本格式,簡化了數(shù)據(jù)訪問。它是一種比XML更輕、更友好的Web services客戶端的格式。所以本系統(tǒng)采用的是JSON數(shù)據(jù)格式進(jìn)行信息的交互。
4 IT運(yùn)維數(shù)據(jù)展示系統(tǒng)主要功能實(shí)現(xiàn)
IT運(yùn)維數(shù)據(jù)展示系統(tǒng)主要是實(shí)現(xiàn)對(duì)北京交通大學(xué)多個(gè)IT系統(tǒng)的分布式數(shù)據(jù)的集中管理,并以圖表的形式分別展示。在系統(tǒng)開發(fā)過程中首先要實(shí)現(xiàn)其Web頁面圖表展示,其次實(shí)現(xiàn)Android客戶端的圖表展示。
4.1系統(tǒng)功能圖
本系統(tǒng)目前已實(shí)現(xiàn)了一卡通系統(tǒng)、網(wǎng)絡(luò)維護(hù)系統(tǒng)和網(wǎng)絡(luò)計(jì)費(fèi)系統(tǒng)的運(yùn)維數(shù)據(jù)展示,其功能圖如圖2所示。
已經(jīng)實(shí)現(xiàn)的功能包括4個(gè)模塊:用戶驗(yàn)證模塊以及3個(gè)業(yè)務(wù)模塊。
圖2 已實(shí)現(xiàn)功能結(jié)構(gòu)圖
3個(gè)業(yè)務(wù)模塊均是將用戶所需的信息以折線圖、餅圖或者柱形圖的形式按日、月、年的統(tǒng)計(jì)結(jié)果顯示,使得用戶可以直觀地了解信息的變化趨勢,消除了用戶需要查看大量數(shù)據(jù)而陷入分析的苦惱。例如,網(wǎng)絡(luò)維護(hù)管理模塊中的網(wǎng)絡(luò)故障運(yùn)維數(shù)據(jù)展示模塊,它將根據(jù)用戶的查詢條件統(tǒng)計(jì)、分析、展示出故障相關(guān)信息的動(dòng)態(tài)趨勢。這樣用戶便可以實(shí)時(shí)準(zhǔn)確地了解故障出現(xiàn)率、處理效率等,節(jié)省了用戶大量時(shí)間,同時(shí)也有利于用戶快速、準(zhǔn)確地做出決策。4.2 Web開發(fā)實(shí)現(xiàn)
Web開發(fā)主要涉及到Web的數(shù)據(jù)分析、處理,以及Web頁面的展示。
4.2.1 JSON數(shù)據(jù)生成
實(shí)現(xiàn)Android手機(jī)客戶端到Web服務(wù)器的數(shù)據(jù)獲取,采用了JsON數(shù)據(jù)傳輸格式。JSON的解析方法共有兩種:eval(),JSON.parse()。eval在解析字符串時(shí),會(huì)執(zhí)行字符串中的代碼,可能造成變量值的改變,這樣將帶來很大的安全性問題。JSON.parse()方法可以捕捉JSON中的語法錯(cuò)誤,并允許傳人函數(shù),用來過濾或轉(zhuǎn)換解析結(jié)果,有較高的安全性。因此本系統(tǒng)設(shè)計(jì)引入json.js,采用的是JSON.parse()方法。將JSoN文本轉(zhuǎn)化為JSON對(duì)象,通過Ajax將JSON對(duì)象傳到Android手機(jī)客戶端進(jìn)行解析。
4.2.2月報(bào)表功能實(shí)現(xiàn)
本系統(tǒng)實(shí)現(xiàn)了對(duì)數(shù)據(jù)進(jìn)行按日、月、年統(tǒng)計(jì)并以報(bào)表的形式顯示,現(xiàn)以網(wǎng)絡(luò)故障處理查詢?yōu)槔。?dāng)普通用戶成功登錄系統(tǒng)之后,查詢2011年處理故障的情況,用戶提交查詢條件后,程序調(diào)用BugMoth.do方法,該方法將故障處理交給了BugMothActon類進(jìn)行處理。程序設(shè)計(jì)中定義了BugYear類,用于接收數(shù)據(jù)集并實(shí)現(xiàn)按年顯示成各種類型的圖表。對(duì)2011年處理故障的情況查詢,涉及到Oracle數(shù)據(jù)庫中的network_dealprocess表,執(zhí)行sql查詢后,實(shí)例化BugYear類,并將返回的結(jié)果集轉(zhuǎn)化為存放日期字符串的字符數(shù)組date和統(tǒng)計(jì)計(jì)數(shù)的整數(shù)數(shù)組count。作為參數(shù)傳送到BugYear對(duì)象getChart(char date[3,int count[])方法中,通過圖表框架JFreeChart輸出圖表。2011年故障處理情況年報(bào)表在web管理方式下的折線圖顯示如圖3所示。
圖3 Web頁面中的2011年故障處理年報(bào)表
4.3 Andorid開發(fā)功能實(shí)現(xiàn)
Android客戶端的主要功能是實(shí)現(xiàn)從Web服務(wù)器端同步獲取數(shù)據(jù)并以折線圖、餅圖、柱形圖的形式顯示,客戶端模塊設(shè)計(jì)與Web服務(wù)器端是一樣的,包含用戶登錄模塊、一卡通模塊、網(wǎng)絡(luò)維護(hù)模塊和網(wǎng)絡(luò)計(jì)費(fèi)模塊。使用RhoStudio開發(fā)軟件,關(guān)鍵功能是獲得Web服務(wù)器端的數(shù)據(jù),并達(dá)到同步。RhoStudio開發(fā)軟件使用的是Ruby語言,采用直接連接到Web服務(wù)器的方式實(shí)現(xiàn)數(shù)據(jù)的同步獲取。通過調(diào)用http服務(wù),實(shí)現(xiàn)對(duì)Web頁面數(shù)據(jù)的抓取,抓取后的數(shù)據(jù)經(jīng)過解析,作為圖表顯示的數(shù)據(jù)集。
AsyncHttp的get和post方法主要是用來從Web頁面抓取文本數(shù)據(jù)和向Web頁面?zhèn)鬟f文本數(shù)據(jù),本系統(tǒng)使用get方法和post方法,實(shí)現(xiàn)與Web服務(wù)器的同步。以下是利用get方法獲取頁面文字信息的部分代碼:
Rho::AsyncHttp.get(:url=>’http://localhost:8080/query/set.jsp’:authorization=>{:type=>:basic,:uselTlalTle 2>’query’,:password=>’123’),:callback一>(url—for:action一>:httpget—callback),)
Rho::AsyncHttp.get方法中由:url指定抓取頁面的路徑,:authorization指定Web服務(wù)器端需要認(rèn)證的用戶名和密碼,:callback是AsyncHttprequest執(zhí)行完成后執(zhí)行httpget—callback方法。
httpget_callback方法是用來判斷數(shù)據(jù)是否成功獲取,若內(nèi)置@params[‘status’]值為ok,跳轉(zhuǎn)到顯示結(jié)果界面,否則表示獲取數(shù)據(jù)失敗,跳轉(zhuǎn)到錯(cuò)誤界面。同樣以故障處理查詢?yōu)槔?dāng)用戶成功登錄手機(jī)客戶端時(shí),進(jìn)入bugCheck界面,輸入2011年故障處理查詢后,手機(jī)客戶端將用戶的表單提交的信息通過Rho::AsyncHttp.post方法傳遞到Web服務(wù)器,Web服務(wù)器收到客戶端請(qǐng)求,將對(duì)應(yīng)的查詢數(shù)據(jù)結(jié)果集以JSON格式顯示到set.jsp頁面,客戶端讀取set.jsp文件中的JSON,自動(dòng)解析并根據(jù)用戶要求的圖表類型顯示。2011年故障處理折線圖在Android手機(jī)上實(shí)現(xiàn)的顯示圖如圖4所示。
圖4 Android客戶端的2011年故障處理統(tǒng)計(jì)年報(bào)表
結(jié)束語
本文設(shè)計(jì)了一個(gè)IT運(yùn)維數(shù)據(jù)展示系統(tǒng),實(shí)現(xiàn)了3個(gè)業(yè)務(wù)模塊的報(bào)表功能,解決了當(dāng)前高校中IT運(yùn)維系統(tǒng)大量數(shù)據(jù)分布存儲(chǔ)無法統(tǒng)一管理的問題。本系統(tǒng)有很好的安全性、方便性、信息的直觀性,可以使用戶很快地了解多個(gè)業(yè)務(wù)的進(jìn)展?fàn)顩r,便于用戶及時(shí)準(zhǔn)確地做出判斷,達(dá)到提高效率的目的,具有較好的前景。但是本系統(tǒng)也還存在很多可以進(jìn)一步改善的地方,比如用戶可以查看的報(bào)表缺乏靈活性;如何有效地管理系統(tǒng)中存儲(chǔ)的海量數(shù)據(jù),在節(jié)省數(shù)據(jù)存儲(chǔ)空間的同時(shí)提高數(shù)據(jù)的訪問效率,等等,這些問題還有待進(jìn)一步研究。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:IT運(yùn)維數(shù)據(jù)展示系統(tǒng)的研究和實(shí)現(xiàn)
本文網(wǎng)址:http://www.ezxoed.cn/html/support/1112158161.html