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