基于OSWorkflow的信息设备管理系统设计与实现

2017-05-03 09:14:27林钰杰陈衍鹏
微型电脑应用 2017年3期
关键词:框架管理系统流程

林钰杰, 陈衍鹏

(广东电网有限责任公司 佛山供电局, 佛山 528000)

基于OSWorkflow的信息设备管理系统设计与实现

林钰杰, 陈衍鹏

(广东电网有限责任公司 佛山供电局, 佛山 528000)

随着电网企业信息化的不断发展,企业内部的信息设备种类越来越多,数量越来越大,传统的设备管理模式已显得捉襟见肘。针对这个问题,设计并实现了基于OSWorkflow工作流引擎的信息设备管理系统。介绍了工作流相关技术,对比分析了业界主流的4种工作流引擎并说明了适合OSWorkflow的基本原理,对信息设备管理系统进行功能和性能需求分析,以S2SH搭建系统的总体框架,并详细描述了OSWorkflow的集成和实现方法。实际应用表明,基于OSWorkflow的信息设备管理系统为企业提供了高效的设备管理、设备采购、统计报表等功能,达到了预期开发目标。

OSWorkflow; 信息设备管理; 电网企业; S2SH

0 引言

随着科学技术的发展和信息技术的普及,电网企业现已具备了一定规模的信息系统以管理关乎国计民生的电力设备,确保电网安全稳定地运行。但对于企业内的信息设备,如电脑、平板、PDA等,却缺乏有效的信息化管理手段,仍然采用传统的管理方式,大部分过程资料采用纸张填写、手工传递或使用Email、Office办公软件来完成,这些方式主要存在以下缺点:

1)无法对设备的去向和状态进行有效跟踪和了解;

2)无法避免人为原因造成的笔误或延时处理而影响效率。

与电力设备管理类似,有效的信息设备管理可以提高资产利用率,节约企业运营成本。因此,为了克服上述困难,最直接的方式就是实现“流程化,信息化”。目前,以流程为中心的管理模式已经渗入到各行各业,企业以流程整合各种独立的生产活动,辅以各项管理手段使其落实执行。工作流技术的核心便是流程,引入工作流技术可以有效监督和评价管理方法、效果和收益[1]。一方面,信息设备管理中涉及许多申请和审批流程,而工作流技术可按照约定规则使数据和任务在节点之间传递和被执行。另一方面,工作流技术可对现实中的规程、业务的变化做出快速反应,帮助企业实现管理目标。针对信息设备管理中存在许多工作流技术适用的场景,本文将OSWorkflow引入信息设备管理系统中,并完成相应模块的设计和实现。

1 工作流技术

1.1 技术对比与选型

目前,业界主流的工作流引擎主要有4种:Enhydra公司旗下的Shark、JBoss组织发布的jBPM、Alfresco公司的开源项目Activiti和OpenSymphony开发的OSWorkflow。

Shark是一个可扩展的工作流引擎框架,兼容WfMC(Workflow Management Coalition)的XPDL和OMG(Object Management Group)的BPMN流程定义语言,通过可自定义的持久层API来实现流程的存储和实例化,并且提供了特有的ORM工具DODS(Database Object Design Studio)来完成数据持久化[2]。

jBPM(Java Business Process Management)基于轻量级开源框架J2EE开发,是JBoss企业中间件平台的一个组成部分。jBPM以Petri网的token机制为参考并引入PVM(Process Virtual Machine)的设计理念,采用UML活动图模型和无限状态机模型来管理流程[3]。

Activiti是一个轻量级、可嵌入的业务流程管理引擎,遵循Apache开源许可,基于BPMN2.0标准开发,实现了该标准大部分的执行语义和图元定义。Activiti还定义了多个扩展元素和属性,支持与BPMN2.0规范结合使用,便于业务功能开发[4]。

OSWorkflow基于Petri网和有限状态机的原理进行设计,采用Java开发,具有极强的灵活性,开发人员可根据用户需求设计符合规则的业务流程,也可将其与现有系统集成[5]。

Shark的体积结构比较大,对系统复杂度和运行速度产生了一些负面影响。虽然Shark对传统中间件EJB、CORBA等提供了较好的支持,但对本文使用的S2SH框架的支持较弱。jBPM现已非常完善,通过它建立流程管理系统也比较容易,但其对复杂、特殊流程的支持相对较弱,实际使用时需开发人员进行较多的修改和扩展。另外,JBoss组织的产品较多,旗下的jBPM与JBoss服务器、JBoss Hibernate结合紧密,使得jBPM存在一定局限性。Activiti作为新兴的工作流引擎,其相关文档和社区还不够健全,开发过程中遇到困难时难免会影响项目进度和质量。OSWorkflow轻便灵活、低耦合、易与现有系统集成和业务扩展,适合作为本文的信息设备管理系统的工作流引擎[6]。

1.2 OSWorkflow基本原理

在OSWorkflow中,有限状态机的State由Step和Status组成,State间的流转依赖于Action的发生,在整个工作流生命周期内有至少一个或多个活动的State,涉及的基本概念包括:

1)Step:一个工作流可以有多个Step,每个Step可通过Status进一步细分,工作流可在Step间流转,也可以在Step内流转;

2)Status:用于描述Step在流程中的状态,包括进行中(Underway)、等候中(Queued)、已完成(Finished)三种;

3)Action:用于触发Step的流转,通常由执行此Action的条件和执行此Action后的结果这两部分组成。Action可以是自动执行的动作,也可以是按业务需要制定的动作;

4)Condition:表示工作流中执行动作的逻辑判断条件,支持“and”和“or”两种基本逻辑,复杂逻辑可结合Split和Join实现;

5)Split和Join:Split描述的是工作流程中产生的分支,可以产生多个结果;Join用于根据当前Step的状态合并出一个结果;

6)Result:用于描述执行Action后的结果,该结果可能指向新的Step和Step对应的Status,也可能进入Split和Join的逻辑处理。

2 需求分析

在软件工程领域,完善的需求分析对软件开发的成功起到至关重要的作用。下面分别对信息设备管理系统的功能需求和性能需求进行详细分析。

2.1 功能需求分析

信息设备具有使用周期长、使用地点分散、管理难度大等特点,信息设备管理系统应能提供设备增加、减少、转移、停用、闲置、报废等管理功能,并能提供按业务要求定制的报表、统计和査询功能。系统主要功能需求如下:

1)设备管理功能:设备信息的增加、修改、查看和删除;如果设备在库可执行借出操作,如果设备己被借出可执行归还操作;如果设备发生损坏且在保修期内可执行维修操作,如果设备损坏且不能使用可执行报废操作;如果设备不使用且需移出库,则要执行注销操作;

2)报表统计功能:主要包括现有设备统计、设备使用统计、设备维修统计、设备领用次数统计、设备报废统计等,各种统计均能以图形和报表形式展现;

3)设备采购管理:从设备采购申请、采购资料管理、采购订单跟踪到供应商评价的全部过程,均有专门人员对其施加影响,确保整个采购过程符合企业制度,维护企业利益;

4)用户管理:包括用户的新增、删除,以及用户各项属性的维护,比如个人基本信息、所属部门、权限职责等。由于用户管理功能关系到整个系统的安全,故只有管理员有权限操作;

5)字典管理:主要是对资产类型、组织机构等枚举值进行管理,例如,当有新类型设备入库,或有新的部门成立时,管理员可以新增相应的设备类型和组织机构;当有组织机构更名或撤销时,管理员需修改或删除相应的信息;

6)日志管理:日志可以记录系统产生的所有行为,并按照既定的规范进行表达。日志所记录的信息可以辅助维护人员排错并优化系统性能,或者根据这些信息调整系统的行为。

2.2 性能需求分析

开发信息设备管理系统的目的是充分利用设备数据以提高信息设备管理的效率与质量,为此,系统必须能够满足以下性能要求:

1)可靠性,即系统在运行中不发生或极少发生故障。在停电、宕机、网络故障等问题出现时,或者用户操作失误时,系统应具有较强的自恢复能力,并且在问题消除后,用户可继续之前的工作而不是重头开始。因此,系统应在运行过程中及时记录用户的关键操作,以免在出现故障时丢失数据;

2)安全性,首先,系统要预防信息泄漏、假冒身份和恶意攻击等安全问题,主要预防措施包括对系统进行安全配置、设置防火墙等;其次,系统需加入权限管理功能,任何用户都必须使用用户名和密码登录系统,以确定用户的操作权限;再者,当用户进行了不当操作时,系统能进行相应的错误处理并给予提示或警示,不影响正常运行;

3)易用性,一方面,系统的部署、配置、维护简单方便,具有良好的人机交互界面,能够方便地进行跨平台移植;另一方面,用户只需掌握基本的计算机操作,便可在系统中进行日常管理工作。

3 系统设计与实现

3.1 总体框架

系统总体框架采用轻量级J2EE体系中的S2SH(Struts2、Spring、Hibernate)框架技术进行搭建,如图1所示。

图1 系统总体框架

其中,Spring是搭建整个框架的基础,负责整合Struts2和Hibernate。表示层和控制层负责与用户交互,包括接收用户请求并将处理结果返回给用户,这些可以采用Struts2框架处理。业务逻辑层负责实现具体的业务处理,可以通过Spring框架的IoC和AOP技术将各个功能模块耦合相连。数据持久层基于Hibernate框架实现实体类与数据库表间的映射,减轻了开发人员创建和维护数据的工作。

3.2 Spring集成OSWorkflow

OSWorkflow在Spring容器中可方便得到依赖解析和组件装配,同时也得到了全生命周期的支持,整合过程需要配置以下4个组件:

1)SpringHibernateWorkflowStore:WorkflowStore表示对工作流数据的访问支持,除了Hibernate方式,OSWorkflow还提供了其他配置,例如,JDBCWorkflowStore(JDBC方式管理数据)、JDBCTemplateWorkflowStore(JDBCTemplate方式管理数据)、MemoryWorkflowStore(内存方式管理数据),等等。Hibernate方式的配置代码如下:

WorkflowStore的属性propertySetDelegate引用的是对Hibernate提供支持的代理类:

2)SpringWorkflowFactory:此组件确保了Spring容器可以注入工作流配置对象WorkflowConfiguration,而无需从其他XML配置文件中读取;

3)SpringConfiguration:一个WorkflowConfiguration接口的实现类,包含了指向Factory和Store的引用,可在Spring容器中注入或连接;

4)SpringTypeResolver:此组件可使OSWorkflow从Spring的配置ApplicationContext中解析获得OSWorkflow的业务逻辑组件,如FunctionProvider、Validator、Condition等。

3.3 工作流引擎类实现

信息设备管理系统的核心组件是工作流引擎,相关的类实现主要是扩展AbstractWorkflow接口中的方法,这里以本文的实现类ProcessManagementWorkflow的核心方法doAction为例来说明,该方法的功能是完成流程步骤,推动流程运转,主要实现代码如下:

List functions;

WorkflowStore store=getPersistence();

WorkflowStore entry=store.findEntry(id);

if(entry.getState()!=WorkflowEntry.ACTIVATED){

return;

}

//取得当前所有步骤

List currentSteps=store.findCurrentSteps(id);

//遍历每个步骤

for(Iterator it=currentSteps.iterator();!validAction && it.hasNext();){

Step step=(Step)it.next;

StepDescriptor sd=wf.getStep(step.getStepId());

for(Iterator it2=sd.getActins().iterator();!validAction && it2.hasNext();){

ActionDescriptor ad=(ActionDescriptor)it2.next();

//遍历当前动作描述的所有动作

for(Iterator it3=ad.iterator; it3.hasNext();){

Action action=(Action)it3.next();

//添加当前动作的所有方法

functions.add(action.getFunctions());

}

}

}

//遍历方法列表,执行业务流程

for(Iterator it=functions.iterator(); it.hasNext();){

Function f=Class.forName(((Function)it.Next()).getName());

f.execute(),

}

首先,根据工作流实例id,调用WorkflowStore类对象的findEntry方法得到该实例的实体类对象entry,在获取该实例对应的所有步骤前,还需判断其是否处于激活状态,若是便进行后续的处理,否则返回。然后,遍历取得的所有步骤Step,得到每个步骤的步骤描述符StepDescriptor;通过描述符可以得到每个步骤中包含的所有动作描述符ActionDescriptor;通过第三层嵌套循环得到所有动作Action,把每个动作中包含的业务逻辑方法Function添加到列表中。最后,遍历列表,执行方法,完成流程实例。

4 总结

本文着眼于电网企业的信息设备管理现状,在分析传统管理模式的基础上,以进一步提高信息设备管理工作效率为目标,研究了基于工作流技术的信息设备管理模式,设计并实现了一个基于B/S分层架构,使用S2SH框架搭建并集成OSWorkflow工作流引擎的信息设备管理系统。自系统正式上线运行后,整个信息设备管理流程愈加公开和透明,管理者对业务流程状态、设备库存状况等了如指掌,在进行决策管理时也可以使用更多的科学依据,从而证明了本系统的实用性;由于系统总体框架使用轻量级、低耦合的技术搭建,对于需求的变化和扩展均能比较容易地进行相应修改,减轻了开发人员的工作量,也较好体现了本系统的灵活性。

[1] 朱永华, 张倩, 吴俊杰. 基于操作的轻量级工作流模型的研究与设计[J]. 计算机工程与设计, 2012, 33(1): 153-157.

[2] 肖春水, 陈中育, 郭婷. 基于构件的工作流建模研究[J]. 计算机与现代化, 2013, 3: 106-109.

[3] 杨波, 严坤, 姜劲松, 胡谷雨. 面向Web服务架构的协同工作流模型[J]. 计算机工程与设计, 2011, 32(3): 927-930.

[4] 肖飞, 张为华, 王东辉. 面向科学过程的工作流技术研究现状与趋势[J]. 计算机应用研究, 2011, 28(11): 4013-4019.

[5] 罗国涛, 裴广, 邓祖朴, 刘勇军. 面向物联网的工作流服务架构模型[J]. 计算机应用与软件, 2014, 31(2): 9-13.

[6] 戴小平, 周松. 一种基于Web服务的工作流协作系统模型[J]. 工业控制计算机, 2013, 26(2): 79-81.

Design and Implementation of the Information Equipment Management System Based on OSWorkflow

Lin Yujie,Chen Yanpeng

(Foshan Power Supply Bureau,Guangdong Power Grid Limited Corporation,Foshan 528000,China)

With the continuous development of information technology in power grid enterprises, the numbers of type and amount of internal information equipment are growing increasingly, and result in a stretched situation of the traditional equipment management mode. Aiming at this problem, an information equipment management system based on OSWorkflow workflow engine is designed and implemented in this paper. Firstly, the related technology of workflow is introduced and four mainstream workflow engines are compared. After that, the basic principle of OSWorkflow which is suitable for this paper is explained. Secondly, the analysis of the function and performance requirements of the system is performed. Finally, the integration and implementation of OSWorkflow are described based on the overall framework built with S2SH. In practice, the system achieves the expected development goals by providing enterprises with efficient equipment management, procurement, statistical report and other functions.

OSWorkflow; Information equipment management; Power grid enterprise; S2SH

林钰杰(1987-),男,通信作者,硕士研究生,研究方向:信息系统开发和管理、营配信息集成 陈衍鹏(1990-),男,本科生,研究方向:信息系统开发和管理、数据库

1007-757X(2017)03-0067-04

TP311

A

2016.04.20)

猜你喜欢
框架管理系统流程
基于James的院内邮件管理系统的实现
框架
吃水果有套“清洗流程”
今日农业(2021年10期)2021-07-28 06:28:12
广义框架的不相交性
基于LED联动显示的违停管理系统
违反流程 致命误判
劳动保护(2018年5期)2018-06-05 02:12:10
海盾压载水管理系统
中国船检(2017年3期)2017-05-18 11:33:08
WTO框架下
法大研究生(2017年1期)2017-04-10 08:55:06
本刊审稿流程
析OGSA-DAI工作流程