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.toberp.com/
本文标题:IT运维数据展示系统的研究和实现