基于WF的勘探经营管理系统设计与实现

2011-04-23 12:11沈疆海长江大学计算机科学学院湖北荆州434023
长江大学学报(自科版) 2011年7期
关键词:概算概预算金额

沈疆海 (长江大学计算机科学学院,湖北荆州434023)

王德玲 (长江大学城市建设学院,湖北荆州434023)

随着企业管理水平的升级,业务流程更加规范,办公自动化也越来越被企业所青睐。办公类管理软件的架构一般采用纵向分层、横向分块的方式来实现[1],其中的流程控制一般通过定制数据表及功能模块来实现,这种模式会因系统的需求变化变得难以维护。工作流的发展,很好地解决了这一问题。工作流由一系列活动构成,用以反映客观世界中流程的模型,一般由若干个活动按照某种逻辑组合而成,活动间有一定相互关系,一个工作流包含一组活动及它们间的关系[2]。基于工作流的系统,建立可视化的流程模型[3],把流程控制从业务活动中剥离交由工作流引擎完成,系统则专注于具体的业务逻辑。

在石油勘探领域,勘探管理对油田的发展起着重要作用。科学的概预算工作,能有效控制勘探成本,已成为油田勘探决策部门的一项重要工作。勘探前期,在设计好勘探目标后,专业人员不仅要对勘探流程非常熟悉,而且还需通过已有的定额标准计算各种工程项目的概预算费用;勘探后期,需要根据当前实际消耗物资数量,以及市场物价变动等综合因素,进行实际消耗费用的结算。为解决这一复杂的流程控制问题,笔者设计了一种基于WF(Windows Workflow Foundation,工作流框架)的勘探经营管理系统。

1 WF(Windows Workflow Foundation)

Windows Workflow Foundation是一个广泛且通用的工作流框架,由Runtime Engine、RuntimeServices、Workflow和Base Activity Library组成,如图1所示。基于Windows Workflow Foundation的解决方案,需要建立在宿主程序之上,并且用户可以扩展自己的活动库。Windows Workflow Foundation提供工作流引擎、.NET托管 API、运行库服务以及与 Microsoft Visual Studio 2008集成的可视化设计器和调试器。可使用Windows Workflow Foundation来生成并执行同时跨越客户端和服务器的工作流[4],以及可在所有类型的.NET应用程序内部执行的工作流。

图1 Windows Wordflow Foundation架构

2 系统架构设计

勘探经营管理系统,不仅仅是一个管理系统,其实质是一个工作流控制系统,流程控制是其核心内容。对于勘探经营管理系统的设计,从面向服务SOA[5]的设计原则出发,定义明确的服务边界,而且还应该提高模块间的内聚性,降低模块间的耦合性。该系统可以分为3个服务和1个核心流程——WF流程管理,即定额服务、合同服务、报表服务以及WF流程管理,如图2所示。定额服务主要完成对钻井流程中各环节工作量和费用的核定,如常规测井费用的核定;合同服务主要对专业勘探服务公司进行合同维护、签订、结算、查询等;报表服务则主要完成各种统计要求的报表输出。

图2 系统架构

勘探经营管理系统中的3个基础服务各司其职,相对独立、松散的耦合关系符合SOA设计原则,降低了系统设计与实现的复杂度,为缩短开发周期、提前交付系统奠定了良好的基础。基于服务的架构,也将使其重用性更高,而且能够满足定额等需求变更,不影响流程控制的要求。

3 WF流程管理系统实现

WF流程管理系统模型如图3所示,包括投资计划管理、任务管理、概预算管理、招投标管理和合同管理及成本监控。

1)投资计划管理 投资计划管理是勘探经营管理系统复杂环节的第一步,主要完成的功能为从上级部门获取投资金额,然后分配到特定的勘探区域上。由于勘探计划中只有勘探总金额,因此需要制定详细的金额分配方案,对于复杂的专业流程,在这里进行简化,抽象出2个Activity来满足应用需求:第1个为投资金额输入,这个Activity为WebServiceInput,读取外部信息;另外一个Activity为制定勘探任务,只有在获取勘探投资金额后,才能继续走到这一步。具体流程如图4所示,对于复杂的按区域分配工作,在制定勘探任务内部,由CodeActivity来完成具体的资金分配。

图3 WF流程管理系统模型

2)概预算管理 概预算管理是该系统流程控制中的关键环节,也是最为复杂的流程,其涉及的状态众多,而且各个状态关联度高,状态转换复杂。在通过审核的勘探任务到达后,就跳转到概预算管理流程环节了。概预算管理这一核心流程主要完成的工作为:对下达的任务进行量化处理,以勘探的预期目标为基本准则,确定勘探工序,选择材料,制定详细测试项目,例如试油项目等,其中涉及项目多达数十种,在流程控制中得到简化 (因为所有工序流程基本一致)。

图4 投资计划流程

基于状态机的工作流正好能够满足概预算管理状态多变的要求,并且触发状态转换的事件都在各状态外部。综合分析,可以分为5个状态,分别为开始、预算、概算、审核与完成,其中预算与概算2个是同级状态,如图5所示。流程控制中,开始状态的初始化活动,获取任务Activity执行完成后,通过任务的种类决定下一步的状态是概算或者预算。概算状态中概算完成事件需要查询前面提到的定额服务,计算任务的概算费用情况,一旦计算失败就跳转到开始状态,流程要重新执行;如果概算完成,将跳转到审核状态。审核状态中,有2个事件,分别为通过和不合格,通过事件触发后,跳转到完成状态,结束本流程控制;不合格触发后,跳转到开始状态,又回到了起点。预算状态的流程与概算一致,在此不再赘述。

3)合同管理及成本监控 合同管理及成本监控的流程控制相对简单,如果施工单位的合同金额没有结清,将一直处于预备结算状态,并且有跨年结算的情形,这个主要在报表中才能体现。另外成本监控,主要是实时收集前线施工数据,来核算实际费用与概预算费用之间是否有差别,供专业人员进行进一步决策研究,具体流程见图6。

图5 概预算流程

图6 合同管理及成本监控流程

预备结算状态有2个事件,一个为施工单位催款,另外一个为年度扎账,触发任意一个事件,都将跳转到合同结算状态。合同结算状态,也有2个事件,一个为季度结算,一为年度结算,一次性付款归为年度结算,触发任意一个事件都跳转到成本核算状态。成本核算状态,包括2个事件,成本预警和成本超出,在结算金额小于等于合同金额时 (在部分勘探设计取消时,结算金额小于合同金额),触发成本预警,跳转到合同完成状态。另外当结算金额大于合同金额时,实际消耗量大于预算消耗量,将触发成本超出事件,跳转到追加投资状态,签订新的合同。

4)工作流宿主程序 勘探经营管理系统的UI层采用的是Web网页,由于核心工作流是长时间非间断运行,对可靠性要求很高,因此以Windows Service服务作为宿主程序,能更好满足其应用要求。对于Windows服务与Web间的数据通讯,则采用的是WCF(Windows Communication Foundation)[6]。WCF的通讯架构,也是运行在CLR之上,与WF能够完美结合,WF实现流程控制逻辑,WCF则建立服务的接口。在该系统中,公开的服务采用的是基于管道命名的内部进程通信IPC方式,因为WCF和WF部署在同一台服务器上,这样能降低通讯成本,提高效率。

5 结 语

笔者详细介绍了基于WF技术的勘探经营管理系统的设计及其实现方案,该方案能够很好满足当前的勘探概预算与结算等要求,把复杂的业务流程化,以数据驱动业务,更加客观反映当前工作的状态,把复杂的工作流管理交由WF处理,有效降低了软件设计人员和编程人员的工作任务量以及系统的复杂度。经过某勘探公司实际数据验证及用户的反馈,采用WF技术的勘探经营管理系统,能利用油田现有的企业网络与计算机资源,有效满足了用户实际工作的需求,系统运行稳定,扩展性和兼容性良好。

[1]张巨俭,甘仞初.管理信息系统的发展方向及实现技术 [J].计算机应用研究,2003(1):8-10.

[2]曹辉,李忠凯,赵永,等.基于工作流的模块化船舶管理系统 [J].计算机应用研究,2007(12):214-216.

[3]朱泽峰,刘建勋.可视化建模工具 Together Workflow Editor分析 [J].微计算机应用,2008(1):87-90.

[4]Dharma S,Bob S.WF本质论[M].周健译.北京:机械工业出版社,2007:24-39.

[5]Norbert Bieberstein.面向服务架构(SOA)指南-业务价值、规划及企业路线图 [M].张宁译.北京:人民邮电出版社,2008:7-10.

[6]Juval Löwy.WCF服务编程 [M].张逸,徐宁 译.北京:机械工业出版社,2008:57-59.

猜你喜欢
概算概预算金额
探讨土建工程概预算编制对工程造价的影响
2001年-2020年县级一般公共预算支出资金来源情况表
建筑CAD与概预算一体化技术研究
水利工程概预算及造价控制分析
土建工程概预算编制对工程造价的影响
EPC项目设计的概算控制和管理探讨
“三新三化”在LNG接收站概算定额标准中应用的探讨
立案
成交金额前10名营业部买入的前3只个股
一周资金净流出金额前20名个股