APP下载

基于工作流技术的油田问题井管理系统

2014-09-10任伟建王春蕾霍凤财

石油化工自动化 2014年5期
关键词:管理系统流程数据库

任伟建,王春蕾,霍凤财

(东北石油大学 电气信息工程学院,黑龙江 大庆 163318)

目前,油田问题井管理过程采用传统的人工填报、纸质记录方式,存在工作量大、效率低、实时性差和维护困难的问题。在审批过程中,部门协作要求高,信息量大且交换频繁,工作计划在不同部门之间人工传递,造成时间上不必要的损耗。随着工作量的逐渐增加和管理模式的不断细化,问题井管理方式急需改进,配备基于工作流技术的油田问题井管理系统已迫在眉睫。在全球范围内,对工作流的技术研究以及相关的产品开发进入了更为繁荣的阶段,更多更新的技术被集成进来,文件管理系统、数据库、电子邮件、移动式计算、Internet服务等已被容纳到工作流管理系统之中[1-2]。目前,工作流的发展趋势是基于Web的部署、分布式的工作流处理、事务管理以及支持工作流建模的分析与仿真[3-4]。国内外现有很多公司致力于开发商业化的工作流系统,除了IBM的MQSeries WorkFlow, Action Technologies公司的Metro等专业平台外,主要利用SUN的J2EE和Microsoft的.Net等通用平台开发工作流应用[5-7]。笔者利用.Net平台,设计了一种基于工作流技术结合多数据融合技术、动态数据加载技术的油田问题井管理系统。该系统立足现有的管理习惯和工作流程,将单井动、静态设备信息引入到问题井作业数据库,最终形成一套完整的动、静态数据库,实现问题井数据录入、流程信息查询、问题发生率统计和超限提醒功能。工作人员通过不同的访问权限,进入相应的管理界面,完成问题井核实单的上报、审批等业务流程,能够实时、直观、高效地了解问题井的运行情况,切实提高工作效率和管理水平。

1 工作流技术

工作流是一类能够完全或者部分自动执行的经营过程,它根据一系列过程规则,使文档、信息或任务能够在不同的执行者之间传递、执行[8]。工作流系统也称为工作流管理系统,图1给出了工作流管理联盟提出的工作流管理系统参考模型,该模型定义了6个基本模块、5个接口,给出了抽象的工作流管理系统的功能组成部件及工作流服务的核心[9-10],它借助于一个或多个工作流执行引擎,激活并解释工作流的执行,并与外部的应用程序进行交互,完成工作流过程实例的创建、执行与管理。

图1 工作流管理系统模型示意

工作流管理系统的实现原理: 通过分析、建模及系统定义,从企业业务流程中抽象出工作流模型,使用工作流定义的辅助工具编辑并建立工作流模型库;生成模型实例后,交由工作流引擎解释执行[11];工作流引擎按照建立阶段的工作流程定义,调度完成任务所需要的数据和角色等资源,控制任务的开始、结束及其内部运行状态,维护工作流中文档和数据的流向,为工作流程提供运行环境[12]。图2所示为工作流管理系统实现原理。

2 系统设计与实现

2.1 开发环境

该系统采用工作流技术,开发环境为Windows Server 2003(sp4) + IIS6.0 +Oracle 11g。网页框架、布局设计以及静态网页部分采用的开发工具为Microsoft公司的Visual Studio 2008,图像处理使用Photo-shop软件。

2.2 系统功能模块

问题井管理系统分为三大功能模块: 1) 流程管理模块,根据工作人员的不同权限,实现问题井的上报、流转和审批等业务流程;2) 状态管理模块,对完成审核的问题井进行数据录入、流程信息查询及问题发生率统计,将统计结果以GridView自定义报表和图形显示,为问题井管理提供数据支持;3) 系统管理,对处于审核状态的问题井进行限期,超出审批时间则进行超限提醒,完成用户添加和权限配置。系统功能架构如图3所示。

图3 系统功能架构示意

2.2.1流程管理模块

1) 问题井上报。问题井上报模块采用工作流引擎技术,用户通过客户端的流程初始化、获取和结束等操作,将关于流程控制的请求发送到外部接口,判断请求类型,调用相应的处理组件完成数据库中与本次请求相关的读写和更改操作,并将结果返回。工作流引擎在执行过程中维护工作流的控制数据,通过工作流控制数据来辨别每个过程或活动实例的状态,判断流程下步到达的范围,推动工作流过程的执行。工作流引擎流程如图4所示。

2) 问题井审核。在问题井管理过程中,通过人工填报问题井核实单,逐级传递完成审核并下发工作计划,造成大量人力、物力及工作时间的浪费,效率非常低下,本文采用工作流驱动技术实现问题井的审批流程。通过分析各个模块工作流程,分析流程中的数据,得出工作流驱动的模型,其体系结构如图5所示。工作流参考模型可以抽象地表示工作流管理系统的功能组成部件和接口,建立起互动操作的公共平台[13-14]。由图5可以看出,工作流管理系统主要由过程信息、组织信息和资源信息三部分组件构成。过程信息用来定义和描述工作流的过程逻辑,是整个工作流模型的基础与核心;组织信息为组织结构建模,表述工作流模型中有关人员的视图和内部层次关系;资源信息用来定义工作流运行过程中需要用到的数据。

流程管理根据工作人员的不同权限,显示不同的界面,通过提取数据库中的动、静态数据,完成问题井核实单的上报,经由相关人员审批完成归档,并记录相应流程节点的信息。

图4 工作流引擎流程示意

图5 工作流驱动模型示意

2.2.2状态管理模块

1) 问题井数据录入。问题井数据录入采用ADO.NET技术读取指定的XML文件,提取问题井基本信息显示到数据页面,并在页面录入新数据。通过ADO的Connection对象和ODBC与数据库建立链接,执行指定的SQL语句,利用XMLReaders 显示对 XML 数据流的访问,生成数据集。DOM将预先定义好的XSL文件中的样式信息添加到XML数据中,使其变成可以在浏览器上显示的样式化数据,完成数据交换[15]。ADO与XML数据交换模型如图6所示。

图6 ADO与XML数据交换模型示意

问题井数据录入自动提取完成审批的问题井,工程技术人员通过选定问题井的井号,显示问题井的基本信息,根据问题井的设计及完成情况,依次完成问题井的设计录入、开工录入、完工录入,系统自动在数据库中更新当前节点处的用户和录入时间。

2) 流程信息查询。流程信息查询利用多数据融合技术,设计了1个包括三个层次(数据、信息和决策)和两个过程(抽象、归类)的多数据源数据融合模型[16],如图7所示。数据层包括单井动、静态数据库和作业数据库等数据源,解决不同数据类型的格式归并、关键字匹配等问题;信息层利用数据层的数据进行模式匹配,是具体数据模式化过程;决策层是整个系统的高层,主要完成系统中的态势评估和决策分析。这三个层次通过两个过程衔接起来,数据层经过抽象过程过渡到信息层,信息层的模型由归类过程完成态势评估和决策任务。

通过多数据融合模型,将单井动、静态数据和作业数据进行合成,完成问题井各项数据的引用和维护,并使设计所需数据以固定格式直接提取,通过水晶报表生成打印模板,根据用户输入的筛选条件过滤数据集中的数据,填充报表模板并生成所需要的报表文件。通过对模板解析出的不同标签,执行导出打印操作,便于查阅。问题井及施工情况管理界面如图8所示。

图7 多数据融合模型示意

图8 问题井及施工情况管理界面示意

3) 问题井发生率统计。问题井发生率统计应用复杂SQL语句技术和临时表技术,复杂SQL语句由基础SQL语句复合嵌套、排列组合而成,对Oracle数据库中的问题井发生情况进行定制查询,查询结果缓存在数据库临时表中。临时表技术用于下述情况: 多表链接查询中数据表结构复杂、内容繁多;链接操作对数据量大的表频繁访问但范围固定集中;访问得到的结果集非常小[17-18]。临时表避免了传统数据链接中对源数据表的频繁读操作,将对大数据量表的访问改为对临时表的链接运算。作为数据处理的中间表,在会话结束后,临时表中的数据被清空,从而减少系统开销,提高大数据量的实时处理性能。

通过合并单元格,自定义多行多列的GridView不规则表头,将查询结果按照矿别、队别、井别显示在GridView控件中。首先清空并隐藏GridView默认的表格头行,创建字符串数组存放表头单元格文本作为标题,在标题文本中插入换行符来形成多行标题。其次在每个表头单元格的属性中设置Rowspan和Colspan的数值来合并对应行和列中的单元格,以达到自定义Gridview不规则表头显示数据的目的。图9所显示的是问题井发生率统计界面。

4) 图表可视化。图表可视化采用ExtJS技术,ExtJS是一种通过JavaScript动态创建页面标记元素的Ajax框架。ExtJS由一系列类库组成, 在页面成功加载ExtJS库后,Ext.data.DataProxy获取服务器端或本地的问题井相关数据,数据读取器格式化数据并将其解析为Ext.data.Record的数据集,存储在Ext.data.Store中,通过调用 ExtJS 的类及图表控件将问题井数据进行可视化[19-20]。问题井统计表会随同图形、曲线发布,图形、曲线随着数据的变化而改变,用户可以准确、直观地获取生产数据信息,并根据数据变化趋势做出相应的分析和决策。

图9 问题井发生率统计界面示意

2.2.3系统管理模块

1) 系统超限提醒。为了避免工作人员疏忽影响问题井上报和审批进程,超限提醒模块利用流程监控、业务提醒技术,启动在本地驻留的监控程序,自动采集问题井进度和数据库操作信息,监控和管理问题井的节点和状态。当数据库中的内容发生了申请、设计、审批、分发等操作时,工作流程处于相应的节点,当该节点的用户登录后,监控程序自动更新问题井发生情况,对超过期限未上报、待审核的问题井形成预警通知,提醒用户,并能监控整个流程发生的变化,使各项工作流程顺利推进。

2) 用户管理。该功能实现了人员维护和权限设定。人员维护完成人员信息,人员部门信息的录入、删除、修改等管理;权限设定用于分配和管理工作人员对流程中各个节点的权限,由于系统权限设置的不同,系统呈现给用户的菜单及功能也不相同,根据工作流的特点,系统可以依据业务流程方向个性化定制用户的权限,配置人员的职务信息和管理范围,实现灵活的权限分配及资源授权原则,打破了传统的固定分级模式,提高了流程灵活性和系统可适应性。

3 结束语

笔者研发的油田问题井管理系统,是在工作流管理系统模型上结合油田问题井管理需求开发的标准化系统。文中利用工作流驱动技术,通过分析审批流程数据,得出工作流驱动模型,实现问题井核实单上报和逐级审批;结合多数据融合技术以及ADO.NET技术实现问题井数据录入、流程信息查询、超限提醒和导出打印等功能,通过自定义多行多列的不规则GridView表头实现问题发生率统计,利用ExtJS技术完成图表可视化展示;系统管理可以个性化定制审批流程中的用户权限,从而体现出流程的灵活性。该系统让用户直观、方便、快捷地了解问题井的运行状态,为油田生产提供数据支持。通过使用该系统实现对问题井信息化、可视化、实时化管理,为问题井的高效管理提供了保障。

参考文献:

[1]龙军一.基于自定义工作流的办公自动化系统的设计与实现[D].华南理工大学,2012.

[2]李涛,朱一凡,魏洪涛.基于.Net的工作流管理系统设计[J].计算机工程与设计,2005,26(10): 2798-2801.

[3]陈洪娜,祖旭,周峰.工作流技术研究发展状况、研究内容及趋势[J].重庆工学院学报,2006,20(02): 65-69.

[4]范玉顺.工作流管理技术研究与产品现状及发展趋势[J].计算机集成制造系统,2000,6(01): 1-7.

[5]胡华,宋荷庆,王回进.面向 Web 的工作流管理[J].计算机工程与设计,2002(04): 31-33.

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

[7]张涛,战洪飞,孙静,等.基于Web的企业工作流管理系统的研究[J].计算机应用研究,2002(05): 130-133.

[8]王志晓,吕林涛,门文耀.基于ASP.NET技术和工作流模型的网上审批系统[J].计算机工程,2004,30(01): 83-84.

[9]胡卫军,陈传波.通用工作流管理模式的分折与研究[M].计算机工程与应用,1999,7(03): 32-34.

[10]汪家常,徐昶,季小明.基于工作流的高校学费管理系统研究[J].计算机应用与软件,2012(06): 294-297.

[11]杨明顺,韩周鹏,余婷.一种轻型工作流引擎的设计与实现[J].西安理工大学学报,2013(01): 20-26.

[12]范会联.基于自定义表单的工作流过程定义分析与设计[J].计算机应用研究,2009(09): 3372-3374.

[13]杨雨图,缑斌丽.基于工作流的技术文件审查系统设计与实现[J].制造业自动化,2011(33): 28-34.

[14]毛根生,毛波影,王丹亚.文档管理系统中的工作流技术[J].浙江大学学报(工学版),2000,34(01): 60-64.

[15]梅中辉,经亚枝..NET技术中的数据访问技术——ADO.NET[J].微计算机信息,2003,19(01): 70-71.

[16]朱付保,徐显景,霍晓齐.多源数据融合技术在后备干部管理系统中的应用[J].微型电脑应用,2014,30(01): 10-12.

[17]胡配祥,张成叔,陈良敏.SQL临时表在科研管理系统数据处理中的应用[J].洛阳理工学院学报(自然科学版),2011,21(02): 45-48.

[18]许宁.临时表在数据库中的应用[J].沈阳化工学院学报,2009,20(03): 234-236.

[19]鞠凤娟,吴志峰.EXT技术在Web界面设计与实现中的应用研究[J].计算机与现代化,2008(11): 102-104.

[20]王晓燕,宋绍云.EXT的组件体系结构研究[J].电脑知识与技术,2011,7(09): 1999-2001.

猜你喜欢

管理系统流程数据库
基于James的院内邮件管理系统的实现
吃水果有套“清洗流程”
基于LED联动显示的违停管理系统
违反流程 致命误判
海盾压载水管理系统
数据库
本刊审稿流程
析OGSA-DAI工作流程
数据库
数据库