颜 涛 蔡美芳 谢潇睿 杨东宁 赵伟杰
(1.云南电网有限责任公司 2.南昌工学院人工智能学院)
相对于其他工程,电网工程项目更加繁杂,涉及的方面更多,工程结算审核系统面临着巨大的压力,如何提高结算审核系统对数据的处理能力,使其更符合实际需要成为当前研究的重点[1,2]。
当前结算审核系统之所以在面对大数据时表现较差,主要原因在于对大数据的处理上,即当前系统多采用集中式任务处理模式,因此单靠一个系统服务器的运算能力是无法处理过大的数据量的,最终造成系统响应能力变差,需要运行很长时间才能给出反馈结果。针对这一原因,有效安排计算任务,分散系统运算压力成为改善当前结算审核系统处理性能的关键[3]。为此,设计了基于数据驱动的电网工程竣工结算自动审核系统。以期提升电网工程竣工结算审核效率,降低电网工程结算审核压力,促进电网建设。
数据驱动的电网工程竣工结算自动审核系统在采集大量电网工程项目数据的基础上,对项目数据进行分类整理,然后根据分类数目,在靠近结算审核系统中心服务器的边缘布设边缘网络MEC服务器,将本身都属于结算审核系统中心服务器业务分散给边缘服务器,从而减轻系统中心服务器的计算负担,在边缘服务器完成结算审核后,将审核结果反馈给中心服务器,中心服务器再进行总结、归纳,最后将结算审核结果以报表或图形的形式反馈给审核人员[4,5]。
电网工程竣工结算自动审核系统采用B/S三层架构,有效提高数据处理性能[6]。三层结构具体为采集层、处理层以及客户端层。
1)采集层从工程竣工结算大数据源中提取、导入需要审核结果,从业务系统中集成支持审核结果的凭证数据,将其存储到数据库中[7]。
2)处理层把预结算项目划分为若干组,并将分组任务分给边缘网络MEC服务器。在边缘网络MEC服务器中对预结算进行审核,并将审核结果反馈给系统中心服务器。系统中心服务器综合各个边缘服务器审核结果,绘制审核报表,给出预结算结果是否准确的判断,以及指出审核存在偏差的数据,并给出原因分析。
3)客户端层主要是系统与用户交互层,将系统审核结果通过客户端将结果显示出来。
传统集中式结算审核系统响应变慢,多业务处理需要很长时间才能给予客户反馈,影响了系统服务质量[8]。针对上述问题,本文系统在原有系统服务器部署的基础上,在靠近结算审核系统中心服务器的边缘布设边缘网络MEC服务器,将运算任务调度给边缘网络MEC服务器,以缓解中心服务器压力。基于SDN控制架构设计移动边缘服务器组网方案如图1所示。
图1 移动边缘服务器组网方案
图1a为底层物理网络结构图,包含了各种基础硬件设施,为实现与系统中心服务器相连,提供了接入方式,主要选取OpenFlow交换机作为传输节点,光纤作为传输链路,以一跳的形式,实现MEC服务器与中心服务器的连接。图1b为组网方案的控制编排平面设计图,控制编排平面主要部署在MEC服务器上,主要作用为:一方面对底层网络交换设备进行管理;另一方面根据需求灵活组建边缘网络拓扑,缓解网络延迟。
1.3.1 数据采集模块
工程竣工结算与审核都需要以相关大数据作为支撑,如合同条款、工程项目和数量表、约定计价表、各项费用计取表、洽商变更记录、各种设计和施工图纸等。审核需要对涉及结算金额的数据一项项核对,因此首要功能模块就是数据采集模块。数据采集模块中主要使用数据仓库的ETL工具来完成。ETL工具从不同数据库系统当中抽取工程结算元数据,然后集中到中间层,对其清洗、转换、整理,最后加载到数据集市当中,作为后期结算审核的凭证数据[9]。
1.3.2 数据压缩存储模块
采集到的结算审核相关数据规模十分庞大,而系统数据库空间有限,因此需要对数据进行压缩处理,以方便系统数据库存储,缓解存储资源不足的问题。数据压缩存储流程如图2所示。
图2 数据采集模块流程
1.3.3 项目分组模块
step1:准备结算审核所需要的所有数据;
step2:确定项目分组划分标准。在这里基于电网全生命周期来进行划分,按照工程前期准备阶段费用结算审核、施工建设阶段费用结算审核以及电网工程竣工费用结算审核;
step3:确定三个项目分组各种费用名称;
step4:以各种费用类型名称作为聚类中心,将采集到的数据进行聚类;
step5:根据聚类结果将数据划分到不同的项目小组。
1.3.4 审核任务分配与调度模块
将项目分组结果其打包分发到边缘MEC服务器上,每个边缘服务器上负责一部分的核算任务。审核任务分配与调度如图3所示。
图3 审核任务分配与调度模型
1)用户通过系统窗口发布结算审核任务。
2)系统对结算审核任务进行分析,并对任务分解,分成若干个子任务,实现任务分布式化。
3)将子任务提供给任务调度器。
4)将子任务按照分配策略,将任务分配给边缘MEC服务器。
1.3.5 结算审核模块
在各个边缘MEC服务器中对分配到的任务进行处理,实现一部分的结算审核,然后将结果反馈给中心服务器。中心服务器进行进一步的归纳和整理,完成结算审核确认。结流程如下:
step1:登录系统;
step2:是否是结算管理员;
step 3:结算数据与预结算结果录入;
step 4:预结算结果是否准确?预结算结果准确,则进行结算审批确认。否则,进入下一步;
step5:结算偏差分析;
step6:修改原报金额;
step7:录入核减内容以及金额;
step8:审核后的金额录入。
step9:判断审核后结算金额小于预算金额,进行结算审批确认,并录入日期与日志。否则,回到step5重复执行。
通过审核,能准确判断预结算是否准确,明确存在偏差的部分,以便进行核查和纠正,最终呈现一份较为精准的工程竣工结算表。
以某已经竣工的电网工程为例,借助工具Loadrunner进行系统性能测试,并与集中式结算审核系统进行对比实验,参数如表1所示。
表1 仿真测试参数设置表
将1280个审核任务分配给4个MEC服务器和1个中心服务器,分配结果如图4所示。
图4 审核任务分配图
(1)响应延迟
响应延迟是指用户从输出操作指令到系统给出反馈之间的时间差值。其平均值计算公式如下:
式中,Δt代表平均响应延迟;T1代表操作指令输出时间;T2代表系统反馈时间;n代表操作指令数量。
(2)吞吐量
吞吐量是指单位时间内系统能够处理的任务数量。
(3)并发数
并发数是指在一段时间内允许用户同时登录的数量。
相同测试条件下,利用所设计的系统以及集中式结算审核系统进行结算审核,然后统计审核过程中平均响应延迟、吞吐量以及并发数。结果如表2所示。从表2可知,本文系统的响应延迟更短、吞吐量以及并发数更大,比集中式结算审核系统表现要好,说明通过将任务分散出去,能有效提升系统的运算能力,更适用于电网工程竣工结算自动审核工作。
表2 系统性能测试结果
综上所述,为满足各地用电需要,通过电网工程建设,可以使电网覆盖面更广泛。然而,电网工程项目繁杂,当工程竣工后,结算审核工作量巨大。为此,设计基于数据驱动的电网工程竣工结算自动审核系统。该系统通过采集到的大数据来驱动结算自动审核的完成。最后对系统进行实现与测试,测试结果证明本文系统的数据处理能力更强。然而,本系统测试中,仅是进行仿真测试,而现实情况下,数据量更是庞大,因此有待进一步实践测试。