基于扩展三层结构的运维管理平台设计与实现

2017-04-26 12:37郑慧君
计算机时代 2017年4期
关键词:运维管理系统设计

郑慧君

摘 要: 运维管理平台能够提高运维效率,规范运维管理行为,为企业提供更为优质的服务。基于某企业的实际运维管理需求,设计并实现了一个运维管理平台。系统采用B/S结构,选择VS2010和SQL server 2008开发工具。详细地论述了系统的功能,采用扩展三层体系结构对系统进行了軟件结构设计,并通过CURD操作对三层结构的代码进行优化。系统通过测试后运行良好,具有较好的稳定性和可扩展性。

关键词: 运维管理; 三层结构; 权限管理; 系统设计

中图分类号:TP391 文献标志码:A 文章编号:1006-8228(2017)04-50-04

Abstract: Operation management platform can improve the operation efficiency, standardize operation management behavior, and provide better services for enterprises. Based off the operation management needs of an enterprise, an operation management platform is designed and realized. The system uses B/S structure, select VS2010 and server SQL 2008 as the development tools. The system functions is discussed in detail, the extended three-tier architecture is used to design the software structure of the system, and the code of three-tier architecture is optimized through the integration of CURD operations. After testing, the system runs well and has good stability and expansibility.

Key words: operation management; three-tier architecture; authority management; system design

0 引言

随着IT技术的不断发展,企业规模的不断扩大,硬件环境和软件环境日益复杂,对硬件和软件系统的依赖性也越来越强,IT风险也越来越大,给企业运维管理人员带来了极大的压力[1]。传统的运维管理完全依靠手工方式对大量的硬件、软件系统进行监控与管理,实时性差,无法保证各种硬件和软件的正常运行,无法保证企业硬件、软件和网络环境的稳定性,无法采集设备的状态信息,无法进行故障预警、跟踪和快速处理[2-3]。为了规范IT运维管理方法、提高运维服务质量,国内的一些大型企业引入了ITIL、ISO/IEC20000等IT服务管理方法和标准理论,使管理有章可循,降低IT风险[4]。

目前,一些大型软件开发企业也进行了运维管理平台的开发,但是还没有形成统一的标准[5]。运维管理平台主要以“IT业务模型”和“运维管理需求”两个核心进行开发,有机的整合了企业的各种IT基础设施如:网络设备、计算机硬件、软件系统等,能够对运行的设备或系统进行实时监控并以日志的形式记录系统故障,以短信或其他方式通知相关维护人员,缩短故障恢复时间,降低IT风险,提高服务质量[6]。大多数运维管理平台采用B/S架构,只需进行服务器端的部署,使用简单,便于操作,并内置了多种运维管理辅助模块,如各种运维流程管理、可视化的图文报表等[7-8]。本文以某企业的实际运维需求出发,利用Visual Studio 2010平台和SQL Server 2008数据库软件,采用三层体系结构设计了一个运维服务平台。

1 系统功能设计

通过对某企业进行需求调研,分析企业运维管理系统主要包括:运维流程管理、运维护知识库管理、用户资源管理及基础数据管理等四大功能模块。系统功能模块如图1所示。

⑴ 基础数据管理

基础数据管理主要是系统中原始数据的维护,包括设备、故障原因、设备类型、子系统和节点等信息的管理。

⑵ 运维知识库管理

知识库管理主要包括对设备资料的管理,运维标准管理、应急预案管理以及知识库管理。这几种类型的管理主要是文档的管理,都有内容描述,解决方案,以及附件等,直接单一模块化实现,通过type区分各个类型。主要包括增加文档,更新文档,删除文档,查询文件的功能。

⑶ 运维流程管理

运维流程管理是系统的核心模块,包括运维计划管理、故障维修管理以及统计汇总管理。运维计划是一个创建计划到巡检实施的过程,主要包括计划和巡检。运维故障维修管理是系统最核心的业务实施过程,也是一个企业、运维主管及维修人员相互交互的工作流程,从申报故障,到派工,维修,申请费用审批,最后总结并评价运维护人员的工作绩效。

⑷ 用户资源管理

用户资源管理包括员工的信息管理、部门信息管理、运维制度管理、运维绩效评估,以及系统角色权限管理等。管理员通过对用户进行角色授权,实现系统的权限分配。

2 软件体系结构

考虑到运维管理平台的扩展性和迭代开发流程,在设计运维平台时,后端采用当前最流行的三层架构进行设计,并结合ASP.NET成熟稳定而且迅速的开发技术扩展应用。前端网页渲染和处理,采用jQuery技术、Json技术和DWZ框架进行实现[9-10]。图2为该系统的软件体系结构。

⑴ 客户层

客户层通常响应浏览器发来的Hmtl请求,或者Ajax发来的Xhr请求,交由ASP.NET容器进行处理(容器一般是IIS结构ASP.NET的一体化Web服务器)。

⑵ 过滤层

ASP.NET容器将请求传递到过滤层进行登录验证,或者权限判断,验证用户请求的合法性,若不合法则返回错误结果,若合法则交由表示层的Aspx处理器或者Ashx处理器进行处理。

⑶ 表示层

对于普通的查询请求,主要是由Aspx处理器进行解析,而对于增、删、改及导入等特殊功能,则由Ashx处理器进行解析,解析器主要完成请求参数的验证和构造业务环境的工作。

⑷ BLL业务处理层

请求处理器调用根据请求,调用BLL层的业务接口进行业务处理,如故障、计划、巡检等业务处理,或者知识库、用户等业务的处理,又或者一些数据统计汇总的处理,又或者是文件请求处理,报表打印的处理等。

⑸ DAL数据处理层

BLL层是大粒度的业务流程管理,业务的处理会对应到各个数据表的读写等操作,在进行适当的业务处理过程,BLL业务接口将调用DAL层一个或多个DAL模块读写数据,如故障管理的业务功能可能会同时使用故障表的读取,设备表的读取。

⑹ 数据连接池

为了方便统一数据连接池的管理,对数据库底层进行一层封装,这样在系DAL模块读写数据的时候,一方面可以减少连接池或缓存的请求,另一方面可以设计统一的事务管理,保证数据库的完整性。

ASP.NET是面向对象的开发技术,系统为每个基本数据实体设计了实体对象类,对数据库进行一层ORM转换,将基本数据数据映射成标准的对象结构,方便于整个系统API的调用。

3 系统关键技术实现

3.1 三层结构的实现

本文在软件系统的开发过程中尝试对三层架构的代码进行优化处理,通过继承机制以及泛型机制,将各个模块通过CURD操作进行抽像统一处理,使各模块之间水平上分层,垂直成为一个整体。

首先为DAL层定义一个BaseDal基类,整合所有的通用的数据库CURD(Create、Update、Retrieve和Delete)操作,即增加、删除、修改和查询操作,同时包括批量更新,批量删除以及特殊SQL语句的转换等,底层数据库由BaseDal进行控制并转换成对象结果集。

其次为BLL层定义一个BaseBll基类,也将所有通用的业务操作,如增加,删除,更新,分页查询等操作,在继承处理上,采用泛型操作,每个子类继承其父类,并指定具体的实体对象,从而实现对不同实体表的CURD操作。

当定义新的模块,如增加Fault管理模块时,则可以创建Fault实体对象,定义FaultDal类继承BaseDal基类并设置泛型对象为Fault,同时定义FaultBll为继承BaseBll基类,设置泛型对象为Fault,这样系统将为FaultDal及FaultBll自动生成一系列针对User实体增删改查的数据操作,一系列针对用户的业务操作,并可以被表示层直接调用处理。

3.2 SQLHelper类的实现

SQLHelper类实现系统所有数据的操作,是系统对底层数据库操作的接口,供DAL层调用,使用ADO.NET的SqlConnection类、Dataset类、SqlCommand类、SqlDataAdapter类、IDataParameter类进行SQLHelper类的封装,实现执行SQL查询和添加、删除和修改操作,还可以执行查询和增删改存储过程。以下为SQLHelper类的函数:

⑴ SQLHelper:构造函数读取web.config文件中的数据库连接语句;

⑵ GetDatasetBySQL:执行SQL查询语句,返回数据集;

⑶ ExecuteNonQuery:执行增删改SQL语句;

⑷ GetDatasetByProc:执行带参数的查询存储过程;

⑸ ExeProc:执行带参数的存储过程。

由于以上函数的参数都是SQL语句或存储过程名称,跟具体的数据库和表无关,因此SQLHelper类具有很好的通用性,可以一次编写,多次使用。

4 结束语

本文详细阐述基于某企业运维管理工作的需求,以ASP.NET和Web技术为支撑,進行了软件工程的开发流程设计,实现了运维管理平台。利用扩展的三层体系结构对系统进行了软件体系结构设计,并利用CURD操作对三层结构进行了优化,以提高软件的可扩展性。经过测试,项目运行效果较好。下一步将从运维管理工作的工作流优化,数据报告的挖掘和实现,系统开放接口的设计和实现,以及运维平台的手机系统开发等方面着手开展研究工作。

参考文献(References):

[1] 宋莹,潘振祥,王志勇.政府部门外网运维管理研究[J].电子设计工程,2012.11(20):32-35

[2] 邢守志.企业运维服务管理系统在线告警子系统设计与实现.计算机与数字工程[J].2013:5(41)858-861

[3] 万润泽,张兴艳,李亮.基于ITSS的故障智能诊断和处理系统的设计[J].计算机与数字工程,2014.1(42)145-149

[4] 文必龙,赵晶浩,张璇,赵满.IT系统运维管理研究[J].计算机系统应用,2013.3(22):1-5

[5] 陈 林,崔 糖,袁德砦.基于Web的运维流程管理系统的设计与实现[J].计算机应用,2015.1(35):189-191

[6] 武佳宁.云计算环境下IT运维管理模式研究[J].信息技术,2015.8:51-53

[7] 周宇洁.大数据时代动环集中运维管理浅析[J].信息技术,2015.11:144-146

[8] 赵建华.数字化校园建设下大数据时代高效IT运维管理[J].长春师范大学学报,2015.34(12):47-49

[9] 马丽,封蕾.基于MVC三层架构的美术资源库的设计与实现[J].电子设计工程,2016.15(24)85-87

[10] 孟勋.MVC与三层结构技术的应用研究[J].软件工程师,2013.9:23-25

猜你喜欢
运维管理系统设计
电能计量中用电信息采集的实践研究
在数据集中模式下电网企业级信息系统运维管理初探
一种基于SATA硬盘阵列的数据存储与控制系统设计研究
目标特性测量雷达平台建设构想
信息管理服务平台项目应用系统设计探析