强志勇 马健 袁梁
[摘 要] 生产作为公司企业生产运营的重要环节,是每个公司企业都必须抓好的重要工作。生产抓的好与坏直接影响公司企业的效益。如何才能抓好生产呢?就拿油田企业采油厂来说,依托先进的信息化科学技术,以油田生产为主线,将生产环节各个方面有效数字化,以信息管理系统为载体深度融合生产业务,实现对生产主营业务延伸的资源,即“生产+”的管理数字化、简单化、高效化,是为油田企业生产管理赋能、辅助生产决策的新型管理模式。文章是基于流行的.NET框架开发采油厂“生产+”信息管理系统的研究与初步实践的讨论。
[关键词] 生产+;三层架构;智能油田;统一认证
0 引 言
随着信息化技术引入油田的生产管理,管理模式从传统人工采集指标参数分析转变为电子化采集数据及图表趋势分析的可视化管理模式,油田生产已进入数字油田发展阶段。信息化管理已成为数字油田生产的核心部分。一个高效、稳定的生产管理系统在提高企业的经济效益,增强企业竞争力,提高科研、生产、经营、管理、决策的效率和水平[1]等方面可以起到决定性的作用。
本文讨论的“生产+”信息管理系统从油田生产管理的各种会议交流的材料角度开始分析需求,并从生产管理主线业务延伸出多个分支进行设计。系统要实现多专业综合交流材料数据采集,提供包括问题分析、预警、跟踪落实等多项功能服务。作为生产例会管理的信息化辅助工具,其功能性需要适应生产管理的改革,用户需求也是不断变化的,对系统的安全性、稳定性、可维护性以及扩展性等都有较高的要求。为此本系统采用稳定性和扩展性好、安全性较高的ASP.NET三层架构设计,在实践中取得了良好的应用效果。
1 ASP.NET三层架构简述
1.1 三层架构的设计思想
三层架构设计思想可描述为:在软件开发过程中,运用分层、分模块的思想来设计软件结构,将每一类型的操作固定在一个层(或模块)中,也就是把同类型的操作作为单独的类模块抽象出来,供其他模块重复调用[2]。这样设计提高了软件模块的可重用性和扩展性。
1.2 ASP.NET的三层架构体系
ASP.NET三层架构体系分为三层,即表示层、业务逻辑层和数据层,每一层只负责完成本层内功能,各层之间都是透明的,因此更改某层都不需要重新编译其他层,有效地实现了系统中各功能模块的相对独立,降低了各模块间的耦合性,使系统具备灵活性、可扩展性和可维护性。ASP.NET三层体系结构如图1所示。
(1)数据层:数据层是所有开发工作的基础,负责完成数据的定义、维护、访问与更新,同时管理并响应业务逻辑层的数据请求[3]。ASP.NET框架使用ADO.NET完成对数据库的访问,各种访问功能被封装为不同的类存放在对应的类库中,可被任何基于.NET设计的应用程序调用。
(2)业务逻辑层:负责接收浏览器传来的请求并将请求传给数据层,同时将处理结果反馈给浏览器。业务逻辑层通过定义与数据层相对应的组件服务完成各种业务的处理,是整个系统的核心。根据应用系统的不同需求,它还可以分为不同模块。
(3)表示层:表示层是系统的用户界面展示部分,负责将用户请求传递给业务逻辑层。表示层是由ASP.NET的Web Forms控件来实现。Web Forms是基于服务器端的动态页面技术[4],可在服务器端根据客户端请求和提交的信息,动态生成与客户端浏览器类型无关的通用HTML页面,也可根据客户端浏览器类型生成特定的数据表现形式。
2 “生产+”信息管理系统架构
本系统初衷是针对采油厂日生产例会模式进行分析提炼业务需求,通过设计一套在线提交会议材料,实现信息共享方式的网上碰头会交流平台。经过试用有良好的应用效果,后根据各类业务需求并对其进行扩展延伸,成为涵盖各类会议交流材料共享、问题预警、处置落实的综合数据采集与数据分析平台,该系统可以将单井、处理站、管输线等生产设备设施产生的采集数据收集起来,将数据分类组合,并以文字、数据表格、图形等方式即时呈现,提供问题预警、处置过程跟踪落实功能,并实现对各类生产管理过程产生的数据进行整合、计算,为生产部门提供辅助决策分析功能。通过此软件平台,最终实现对生产过程各类数据趋势动态监控和辅助生产决策管理。
依据生产业务部门的生产实际需求设计,本系统共包括20大业务模块涉及的36大功能模块,结构如图2所示。
从结构图可见,该系统包含日生产例会、生产情况录入、开发工作会议、生产运行周例会、“5+1”工程汇报、旬度会议纪要、会议纪要管理、生产月度分析、动态分析、增产措施、注水工作管理、修井计划、方案综合管理、停关井管理、井口周边情况、承包商违章登记、技术监督周报、成本分析月报、异常井信息和处理站动态管理二十大业务模块。系统涉及的功能模块包括:日生产例会签到及日志查询、生产情况汇报录入、周重点工作、重点井生产情况、高产井生产情况、生产存在问题、修井工作管理、异常井查询及处置、异常井变化对比、异常井统计查询、沉没比异常井查询、转轮及待修井查询等。对于各个业务模块,系统功能对应包含更为细节的操作功能。以异常井信息管理为例,针对生产中油井从工程角度分析不同区块对应沉没度范围正常产液水平来筛选异常井的功能,每日从生产日报中根据设定好的算法自动分析并筛选异常井,并根据业务需求分不同业务部门落实处置措施的操作也有所不同,异常井分析包含了不同区块、不同沉没度范围的异常诊断、软件智能筛选异常井、转轮井及待修井,給出筛选依据,进行异常天数预警,提示用户维护应对措施,并跟踪落实情况,对于超期处置的异常井根据考核指标措施及时制定措施有效率地考核生产单位工作质量等,对生产管理起到了很好的督促和指导作用。
整个管理系统除了上述业务功能模块外还包含系统管理模块。系统管理模块实现用户、权限、日志管理功能,确保平台的安全、正常使用。同时各个录入模块也增加了对应数据表字段类型精度校验功能,提供录入校验,提高了录入准确率,同时也避免了人为原因产生的错误。
3 系统设计与实现
3.1 系统三层架构设计
对于专业多样、功能众多的管理系统利用.NET的三层架构模式,通过服务的形式实现系统内部及外部的数据通信,对已实现的代码进行复用来快速部署新的需求功能,以提高业务需求处理速度,同时降低开发及维护的成本,其中数据层包括与各种数据表数据的访问控制。业务层包括了对各功能模块的业务处理以及提供适当的服务,后端通过数据库访问DB类实现系统和数据库的通信,前端通过Web Service与表示层交换数据。表示层通过各Web Forms并在ASP.NET统一安全控制下将用户请求传递给业务逻辑层,并将处理结果反馈给用户。
本系统基于.NET Framework 4.0,采用VS2010开发工具,以C#.NET为编程语言,数据库采用Oracle10g,前台展示采用Kendo UI、JQuery等框架,界面美观、操作方便,利用Echart来成展示各种图表(饼图、柱状图、折线图等)。系统输出支持对常用Office系列文档(Excel、Word、PPT)上传及PDF文档附件在线预览以及按Excel模板数据导入。
3.2 数据层设计
数据层主要定义各业务表结构以及实现各种增、删、改、查询以及计算等操作。以异常井管理模块功能为例,涉及的主要数据表有:ABNORMAL_PROCESSING_RESULTS (异常井实时数据表) 、AB_PRO_RE_LS (异常井历史数据表)、APPLY_FOR_TABLE_NEW(异常井措施申请表)、EXCEPT_
WELL_STATICS_DAY(异常井统计表) 等,各表的主要字段及表之间关系见图3。
为了提高对数据的处理速度,对某些数据表使用了视图,例如解除异常井数据建立了对应的物化视图OUT_ABNORMAL,适当利用视图可以简化重复性的操作,提高查询效率。 同时,利用视图查询授权用户的数据,提高数据的安全性。
3.3 业务逻辑层设计
业务逻辑层负责数据层和表示层之间的消息传递。在异常井管理的查询处置模块计算中,根据业务需求,抽象出的逻辑类主要有如下几个:
(1)Dal.cs(数据库操作类):专门用于连接数据库、操作和调用数据库的基本类。
(2)AbnormalProcResultBLL.cs:用于处理异常井筛选及展示功能的各种操作。
(3)AbProReLsBLL.cs:用于处理异常井历史数据筛选及统计提取数据展示功能的各种操作。
(4)ApplyForTableNewBLL.cs:用于实现异常井措施申请管理需求功能的各种操作。
(5)YcjStaticsPrcBLL.cs:用于生成统计异常井信息结果及在前端展示数据的整合逻辑处理和数据求和计算功能。所有的数据都通过调用的Dal类实现,将业务逻辑封装到Web Service之中,表示层调用该Web Service就可以实现相应的功能。
3.4 表示层设计
表示层主要利用ASP.NET的系统组件和第三方Kendo UI、JQuery框架组件,设计Web界面,实现用户和系统的交互。操作用户通过表示层提供的页面输入登录信息,通过统一认证Web Service服务验证登录,通过后再调用系统Web Service权限服务可获得系统授予的操作权限。然后表示层通过Web Forms与业务逻辑层的Web Service通信,在表示层中引入相应的Web Service就可实现有关业务处理。UI界面如图4所示。
UI界面中图形展示利用Echarts前端图形框架来实现,主要是因为它在使用过程中简单易操作、支持按需求打包、代码开源。Echarts.js可以流畅地运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖轻量级的矢量图形库 ZRender,提供直观,交互丰富,可高度个性化地定制数据可视化图表,同时开发时间短、开发成本低。例如生产日报产量趋势图,如图5所示。
4 结 语
本文论述了基于ASP.NET三层架构的采油厂“生产+”信息管理系统的设计开发与生产实践中的应用,以异常井管理为例,描述了表示层、业务逻辑層和数据层的设计及实现方法。在表示层利用了ASP.NET的安全机制与系统页面组件及第三方前端扩展框架,提升了系统的安全性、易用性和交互性;业务逻辑层封装了各种业务操作类,使系统的稳定性、可扩展性和可移植性得到增强;数据层通过使用视图,提高数据访问操作效率和读取数据安全性。综上所述,基于.NET三层架构的采油厂“生产+”信息管理系统有良好的扩展性和安全性,该系统的应用实现对生产过程中各生产专业部门主线业务延伸的资源进行合理调配和整合,辅助生产决策,提升油田信息化管理水平,为智能油田建设开辟了新的方向。
主要参考文献
[1]赵玉国.构建油田综合业务信息平台的研究与实现[J].信息技术与信息化,2006(4):104-106.
[2]范振钧.基于ASP.NET的三层结构实现方法研究[J].计算机科学,2007(4):289-291.
[3]徐冬琳.基于.NET的三层Web应用开发研究[J].重庆科技学院学报:自然科学版,2007(4):78-80,88.
[4]Jeffrey Richter.Microsoft.NET框架程序设计[M].北京:机械工业出版社,2006.