基于工作流和规则引擎的IT运维流程管理系统开发
2020-12-03黄海英张今革叶思斯
黄海英 张今革 叶思斯
(1.南方电网数字电网研究院有限公司 广东省广州市 510663 2.电网数字电网研究院有限公司 广东省广州市 510663)
1 我国IT运维工作管理发展过程与现状
最开始我国的IT 运维的管理工作相对简单,由于当时的互联网没有得到普及,计算机技术算是一门比较新的概念,国内对于计算机软件和硬件的应用相对来说不那么复杂,所以这个时候的IT运维主要管理的是计算机硬件和网络环境等相关设备,这其中技术性比较高的工作主要集中在对于网络的监控和管理,IT 运维人员需要保证网络环境可靠安全。当网络出现故障的时候,应该能够在短时间内定位故障产生的原因和问题发生点,这样能够对系统的各个构件的工作状态做到合理监控。之后,进入21 世纪,尤其是2010年之后,中国的互联网产业迅速发展,IT 技术得到普遍应用,社会上对于IT 系统的需求量增多,要求提升,这就使IT 运维工作变得更加复杂,由于企业的IT 运维管理已经不再仅仅局限于网络监控,而更注重于系统的全面和综合性的管理,对于业务系统有更多的关注,所以更多的企业能够认识到一个具有良好工作状态和工作能力的IT 运维部门对于企业正常业务开展的必要性。单一的网络监控和系统维护不能够满足目前日益增长的企业对于系统综合性管理的需要,系统变得更加复杂的同时节点数目也在不断上升,现在的IT运维管理工作应该集中在如何管控业务系统的各个工作流程。
目前中国企业的IT 运维工作还存在一些普遍性问题,主要有以下几点:
1.1 IT运维工作的流程化程度不高
目前在我国企业发展过程中,规范化的IT 运维工作流程这方面的应用意识还没有形成,运维工作的缺少流程化规定和标准,在很多企业的IT 运维部门,问题的解决和系统的维护,很大程度上依靠有工作经验的自身的IT 运维人员的经验和意识,这样的运维工作可想而知的质量比较差,效率比较低,而且不利于之后其他运维人员对于历史遗留问题的了解和解决。当这部分关键的运维人员从企业离开之后,后来的运维人员对于运维工作由于不了解之前的问题解决措施以及没有标准化的解决方案,所以会对运维工作带来更大的负面影响。目前随着IT 技术在各行各业的企业中显示着越来越重要的作用,很多企业已经意识到运维工作标准化和流程化的必要,我国IT 运维工作开始进行给想运维工作流程的规范制定。
1.2 IT运维工作流程计算机化程度不高
前文已经提到,只有IT 运维工作流程变得流程化以及标准化才能够将企业运维人员的个人因素的影响降到最低限度,企业对于IT 运维工作制定了标准化流程之后,IT 运维人员应该严格按照这样的标准进行,之后即使在流程系统中进行相应流程的设定以此便于实现IT 运维工作的计算机化。但是实际工作中,运维人员在没有流程的情况下处理关键问题只能凭借自己的经验,或者按照模糊的流程处理问题,在多数情况下,运维工作者之间的沟通还停留在面对面交流,电话或者邮件的方式,这种交流都是计算机化程度不高的体现。
1.3 IT运维工作流程软件信息交互性不足
IT 运维工作进行过程中很多工作需要各类子系统之间的交互工作,例如在获取到预警信息时需要与告警系统交互,进行资源设备的变换过程中需要和资源管理系统进行交互便于资源的更新,但是目前看来国内能够使用流程原件整合IT 运维管理系统的企业算是凤毛麟角,信息的交互性在IT 运维中需要提升的地方还很多。
2 基于工作流和规则引擎的IT运维流程管理系统相关技术
2.1 工作流技术
工作流管理系统的主要作用是为了更好进行系统地任务分配和资源调度的系统,可以按照流程定义文件中预先定义好的任务流程逻辑自动进行工作任务的资源分配和优先级分配。工作流引擎在进行任务分配以及流转逻辑的过程中能够自动进行,让不同的参与者共享信息,提高工作过程的效率。工作流管理系统在实际应用中,主要有两种模式,分别是平台式和嵌入式,平台式工作流是相对独立的工作系统,以工作流引擎为基础,氛围权限管理功能模块,用户管理功能模块,报表管理以及表单设计等等,而嵌入式工作流系统由于体量小能够更容易地嵌入其他大型的软件应用之中,这里的嵌入式工作流管理系统主要的作用使维护流程正常进行以及解析工作流定义文件。相比于平台式工作流管理系统,嵌入式工作流管理系统更加简单,功能相对比较少,体量更小,所以具备开发工期短,二次开发耗费少的特点,而平台式工作流系统由于拓展性比较差,业务流程比较复杂并且系统自身更加庞大,所以在开发上显得难度更大,成本更高,但是平台式工作流功能更齐全,功能模块也更加丰富,在实际工作中系统构建工作能够更快进行。所以说,平台式和嵌入式工作流都有各自的优势和不足,在不同的应用情景往往会选择不同的工作流系统进行工作亏的管理工作。
2.2 规则引擎技术
规则引擎也属于引擎模块的一种,在定义上,规则引擎使能读取规则定义脚本中的规则之后通过条件判断以及逻辑分析过程得到规则匹配结果的引擎。应用程序中的规则引擎能够作为组件进行嵌入,应用中的数据被输送到规则引擎中去,通过计算分析得到匹配结果,使用规则引擎对于系统的良性影响主要集中在以下几个方面:
2.2.1 程序与业务逻辑之间分离
业务逻辑在规则文件中得到集中化解读,这样如果规则定义发生了改变,那么只有规则文件需要进行修改,而原本应用程序的结构,工作流转逻辑等等都可以继续保留,这样就实现了程序本身与业务的解耦合,大大提高了系统的灵活性。
2.2.2 降低维护应用的成本
如果一个应用系统中缺少规则引擎,那么进行一个发杂功能的实现往往需要大量的逻辑分析和判断结果,而计算机高级语言往往使用的是条件语句,也就是IF-ELSE 进行判断,一些比较复杂的功能往往存在多层条件语句的嵌套,这样的程序代码缺乏可读性,而且一旦发生了需求上的变更,这种代码结构的改变是巨大的,而且这种逻辑结构如果选择追加逻辑判断存在巨大的潜在风险,很容易因为小小的代码缺陷导致整个系统的崩溃。规则引擎与系统的融合能够有效解决这个问题,他提供的语法规则能够成为高级语言条件判断语句缺陷的补充,在进行规则文件的编写定义过程中不需要很多的条件嵌套就能够完成高级语言多层嵌套才能够实现的业务逻辑,所以即使后续的需求发生变更,基于规则引擎的系统能够以比较小的代价进行应用程序变更支持。
2.2.3 降低应用程序的复杂度
规则引擎应用于系统之后,规则脚本的执行能够是规则引擎工作和流程引擎的工作相结合,例如在BPMN2.0 规范中定义的BusinessRuleTask 就支持这种功能,大大降低了系统运营过程中维护成本的困难程度,在一定程度啊上降低了后期维护代价,能够更好地支持变更。
2.3 基于角色的访问控制
在基于工作流和规则引擎的IT运维流程管理系统开发过程中,应该明确不同业务流程需要不同的参与者,这些参与者在系统中的角色不同,分配的权限也不同,为了对权限管理工作进行规范化和流程化定义,所以设计过程提前引入了权限管理概念,也就是基于角色访问控制(RBAC)权限管理办法。实行该方法进行访问权限管理的过程中,用户并没有在进入系统之初就被分配相应的权限,实际上,系统首先将权限赋予角色,然后为不同的用户赋予不同的角色,这样在实际系统权限管理中,角色,权限以及用户之间主要是这样地关系,用户拥有特定的角色,不同的角色拥有不同的权限。这样一来,这个方法的关键在于角色的分配以及权限功能的控制管理,RBAC 中用户实体,权限,权限角色关联实体,用户角色关联实体这些维护者权限,用户和角色这三个概念。
现在基于角色控制访问权限管理规范和Apache Shiro 框架的整合能够更好进行权限访问的控制,Shiro 能够有效进行会话管理,加密,认证以及授权工作,进入应用系统之后框架会查看用户的类进行用户权限的获取工作,在用户进行系统资源的访问时Shiro 会判定访问该资源的用户角色是否拥有对应的权限,如果符合规定则用户获取资源,反之用户地访问被拦截。Shiro 框架具备一些权限有关的JSP 表现,这些JSP 表现,通过控件能够进行权限判定控制是否展示内容,用户进行应用系统的资源访问时因为Shiro 框架的作用,这一过程中地资源访问并不需要开发人员另外编写代码段控制访问过程,极大的降低了系统开发过程中的难度和总体工作量,这样软件系统的开发者就会有更多的时间和精力去完善功能性需求,系统的核心功能会得到进一步完善。
2.4 JPA技术
JPA 是持久化应用程序接口规范的简称,有Sun 公司制定,JPA 的提出是为了将ORM 框架进行规范和统一,应用系统的整个生命周期的开发能够具备统一性。JPA 的概念出现之后,各类ORM 框架先后在自身的框架中对这一规范进行应用,在这样的情况下,无论开发者选择的ORM框架是哪一种,调用的接口是一致的,这样就为后续工作的开发提供便利。持久层开发和代码编写工作更加规范,而具体选择哪一种ORM 框架和持久性开发工作不再具备强关联关系,提高了系统结构上的灵活性。系统使用JPA 的主要优势有以下几个部分:
2.4.1 实体关系映射更加简洁
JPA 实体关系映射和Hibernate 相似,支持Java 注解和XML配置,在进行实体声明的时侯需要进行一个类的建立,类映射成为表,而类的成员与表中的字段相互映射。通过注解能够指定映射尸体的联合主键以及单一主键,另外各个字段对应的表中的字段名字,类型以及长度可以设定,每个表的外键可以省定,实体之间的多种关系也可以设定。开发人员在已经提前接触过ORM 开发框架的情况下不需要过多的学习和了解,仅仅依靠文档和简单的说明就能够了解JPA 的实体关系映射相关内容。
2.4.2 持久化查询语言强大
JPA 提供了强大的查询语言,即JPQL,JPQL 能够对实体对象进行查询,这样程序和SQL 语句之间的关联关系被弱化,实现了两者的解耦合。查询语言具有结构化查询语言的特点,同时具备结构化查询语句强大的查询能力,JPQL 具备丰富的条件表达式,支持聚合,排序,分组,子查询以及参数查询等基本功能。在仅仅使用JPQL 查询语言的情况下能够完成传统SQL 语言绝大部分的查询功能,而JPQL 查询表达式和SQL 的标准化查询表达式十分相近,所以在进行JPQL 语言的学习时很容易上手,学习成本低,效率高。
2.5 Spring MVC技术
Spring MVC 是Spring 框架中基于MVC 设计架构的一种轻型WEB 框架,由于Spring MVC 具备清楚的试图,控制器结构以及模型,所以结构比较简单,使用上更加方便。Spring MVC 本身具有强大而功能丰富的视图解析器,在实际应用过程中,需要进行URL请求获得XML 数据文件或者JSON 数据文件,通过页面控制层在业务逻辑层获取的MAP,将这种数据格式进行XML 格式的转换,然后传入响应工作流中。Spring MVC 自身具备JSON 文件的格式解析器,可以将MAP 文件自动转变为XML 格式或者JSON 格式,传入响应流种之后,避免了用户显示编码过程中。大大提升了控制层的开发效率,同时本身的学习成本比较低,提高开发人员的系统开发效率。
3 总结
本文系统地分析了目前我国基于工作流和规则引擎的IT 运维流程管理系统开发和应用现状,指出其中存在的不足,之后对基于工作流和规则引擎的IT 运维流程管理系统涉及到的相关技术进行系统的阐述,重点介绍了工作流的概念,作用以及在系统中能够产生的显著优势,介绍了规则引擎在运维管理系统中的积极影响以及作用机制,也简要介绍了其他几种技术在系统中的应用。通过本文的简单概述,希望对相关学者了解基于工作流和规则引擎的IT 运维流程管理系统开发的关键技术有所帮助。