APP下载

一种基于管道方式的数据流监控方法

2014-08-23马天福

计算机与现代化 2014年4期
关键词:联动性数据流关联

马 斌,马天福,张 超,张 毅

(1.国网新疆电力公司信息通信公司,新疆 乌鲁木齐 830002;2.新疆信息产业有限责任公司,新疆 乌鲁木齐 830026)

0 引言

随着信息技术在企业生产经营过程中的深化应用,业务系统中产生了越来越多的生产、项目、资金和物资等数据,对这些数据长期、持续性变化形成的数据流的监控和分析[1],能够有效帮助企业的经营决策,也逐渐受到企业的重视。

目前对数据流的监控主要从2个层面实现:(1)业务系统中的数据监控,主要是针对单独业务,例如,在项目管理系统中对项目进度、项目质量等的数据流监控,对影响项目进度和质量的其他相关因素(例如,资金、设备、施工环境等因素)没有综合监控分析;(2)独立的数据监控系统,其监控目的是针对数据交换的完整性、正确性、实时性[2],而不是从业务角度来实现深度数据监控和分析。

随着企业生产管理的集约化发展,这种传统的数据监控方式已经不能满足业务需求,主要体现在:忽视了业务数据隐含的信息关联性、数据流变化的联动性,没有建立数据流之间的关联关系,从而缺少支持集约化管理的跨业务数据的综合统计分析[3]。因此,需要一种可建立数据流之间关联关系,能够实现基于时间段的联动性数据流监控方法。

1 管道模型

要想实现对关联数据长期变化的监控,需要解决3个问题:(1)从业务流程中找出数据之间隐含的关联性,从中抽象出关键监控项,建立可长期存储数据变化的实体结构[4];(2)构建一种由关键监控项集合组成的封闭性实体,该实体能够建立关键监控项之间的关联关系,为访问监控项提供接口;(3)提供一套实时更新、查询机制,实现长期监控。

1.1 数据流概念

本方法中的数据流,是一种存储数据的实体,在实现上要满足2个需求:

(1)可自定义数据类型:例如,以项目进度为一个数据流单位,则至少具有时间、百分比2种数据类型;以资金收支为一个数据流单位,则具有时间、金额等数据类型。

(2)可存储持续性数据变化:例如,项目进度以状态变迁数据在时间点上的分布为存储值,实现可递增的存储特性。

数据流具有名称标识、编码标识、描述、监控项集合等静态属性,同时具有数据访问、监控项递增等动态属性,数据流可以用一个四元组表示:Ds(N,C,S,M(d)),其中:Ds表示一个业务的数据流集合;N表示数据流的名称;C表示数据流的编码;S表示数据流的描述信息;M(d)表示监控项集合,包含若干个监控项d;d表示控制项,是业务流程中的一个数据项,用于实时记录数据的变化和时间点,也是用户关注和监控的业务数据。监控项可以表示为一个二元组d(h,dv(v,t)),其中:h表示监控项的头部,包括名称、编码、数据类型等属性,每个监控项有一个头部;dv(v,t)表示监控项的数值部分,可表示为一个二元组,可以用链表结构实现,每个链表的节点包括数据值v、时间点t两个属性,数值集合可以递增。

数据流结构对外提供的数据访问接口包括2个函数:Fr(d)和Fw(d)。Fr(d)表示监控项的访问函数,输入参数是监控项编码;Fw(d)表示监控项的递增函数,输入参数包括监控项编码、数据值、时间点。这2个函数只提供给管道访问。

1.2 管道概念

在本方法中,管道[5]特指一个约束若干个数据流的数据结构,具有如下特性:

(1)能够添加用户定义的业务数据流,在方法运行后提供业务数据流的存取管理;

(2)为管道内数据流之间建立关联关系,在方法运行后保存、管理、维护这种关系;

(3)提供管道中数据流的访问方法,包括数据更新、存储、获取等操作。

管道包括一个数据流链表、数据流关联关系表,数据流关联关系表包括数据流关系对、数据流监控项的关系对。管道可以表示为一个五元组P(N,C,S,Mt,Mr),其中:P表示一条管道,由管道编码标识 C唯一识别;N表示管道定义名称;S表示对管道的解释性描述;Mt表示管道中装载的数据流链表,每一条数据流至少有一个关联关系;Mr表示数据流关联链表,保存数据流关系对,可以用一个二元组表示Mr(Rm,Rd),其中:Rm表示2条数据流之间的影响关系,Rd表示数据流关系对Rm中监控项之间的具体关联关系。

管道具有封闭性,只能添加或删除数据流及其关系对,对数据流中监控项的数据访问通过对外提供的接口实现,并且只对算法中的其他模块提供,而不能直接与外部系统连接。管道结构提供了3个访问接口函数:Fm(M)、Fd(Rm)、Fr(Rd),其中:Fm(M)表示管道中数据流链表访问函数,返回所有的数据流编码;Fd(Rm)表示数据流关联表的访问函数,返回所有的数据流关联对;Fr(Rd)表示某一个数据流关系对中监控项关联对的访问函数,返回该数据流关系对中所有监控项的关系对。

1.3 管道构造方法

构造一个管道模型,其过程主要包括:(1)构造与业务相关联的若干数据流的模型;(2)为管道命名,并建立一个管道的唯一标识;(3)在管道中加入已经定义好的数据流;(4)为管道中的数据流添加相互之间的约束,即定义数据流关系。其原理如图1所示。

图1 管道构造模型

管道模型构建好以后,保存在管道数据库中,用户可以同时构建多条管道。管道并不能直接应用于实时监控,需要在监控流程中加载和实例化才能应用,当监控流程接收到其他系统通过接口传入的参数后,加载相应的管道并注入实时接收的数据到数据流的监控项中,此时,管道数据将保存在监控数据库中,直到该管道关闭。管道的关闭,有2种方式:(1)正常方式,即在设定的时间段到期后自动关闭,从实时监控流程和监控数据库中移除;(2)非正常停止正在监控的管道,将管道置于停止状态,如需继续监控还可以激活停止状态的管道,否则将停止状态的管道移除。

2 基于管道的数据流监控构件

基于管道方式的数据流监控算法,被封装为一个独立的构件[8],其功能模块包括:应用系统接口、监控引擎、数据流构造器、管道构造器、联动性自适应模块和曲面监控输出模块。

2.1 数据流监控流程

当监控算法被封装为独立的构件后,通过应用系统接口构建了各类应用系统的业务数据集成通道,由数据流构造器和管道构造器建立数据流监控的数据实体,监控引擎将业务变化的数据装载到数据流和管道中,实时监控各业务数据流变化的联动性,联动性自适应模块则根据数据流中监控项的变化频率、对其他数据流中监控项的影响顺序,动态调整数据流中关联关系的优先级和监控项的优先级,最后将一个时间段内形成的具有联动关系的数据流节点的变化情况展示到输出模块。该方法的流程说明如图2所示。

图2 基于管道方式的数据流监控流程

数据流构造器用于构造一个存储业务数据流的数据结构,通过数据流标识确认一条业务数据流。管道构造器用于构造一个管道,通过管道标识唯一识别一条管道,每条管道可以添加多条有业务关联关系的数据流。通过构造器构建的数据流和管道,是一个没有实际数据的模型,保存在管道数据库中。

监控引擎从管道数据库装载一个管道,接收应用系统接口传递的业务数据,启动管道并加载业务数据到各数据流的监控项中,将实时接收的数据保存在监控数据库中,并实时监控数据流中监控项的变化,记录变化的联动性、时间点。

联动性自适应模块会根据监控数据的实际联动性、时间段的大小,来自动调整监控项的关联关系。由于管道中数据流的关联关系是在模型中设置的,在监控引擎启动管道、加载数据后,自适应模块会根据监控数据库中,实际监控项的状态变化、联动变化情况而修正关联关系中的优先级、关联顺序。

曲面监控输出模块用于输出一个管道中所有数据流联动变化的一个状态,该状态是一个管道中所有数据流的监控项在不同时间点形成的数值变化的关联表。

2.2 基于时间段的曲面监控

基于管道方式的数据流监控算法,其目的是通过业务数据状态变化的监控,揭示在一个时间段内业务流中隐含的关联性,最终输出的是一个基于时间点序列的业务数据状态变化关联表。由于数据变化引起的联动性具有延迟性,所以发起变化的监控项的时间点较早,引起其他监控项的数值变化的时间点较晚,基于业务数据状态变化的时间点序列通过关联关系,构成一个曲面,因此,形象化地称之为基于时间段的曲面监控。

图3 基于时间段的曲面监控原理

如图3 所示,由4 条数据流 D1、D2、D3、D4构建的一个管道,在时间点t0监控到D1中的数据首先发生变化,其后监控到D2、D3、D4中的数据依次在时间点t1、t3、t2发生变化,从而构成一个以时间点ti序列为顶点,以业务流Di的关联关系为边的曲面。如果用xi表示业务数据变化的程度,例如,项目进度在t0时刻增加了10%,则x0=10%,最终形成如表1所示的关联表。

表1 基于时间点序列的业务数据状态变化关联表

结合表1和图3可以分析得出:业务数据的联动性是以 D1、D2、D3、D4序列为顺序;D1是发起变化的业务数据,D4是最后受影响的业务数据;时间点ti序列之间的差值越小,则在该时间段对应的业务流Di之间的联动性越强;受影响的业务数据变化的程度xi越大,则与发起变化的业务数据的关联性越紧密。由于发起变化的监控项可能不同,通过对发起监控项、引起变化监控项的持续性观测,能够有效帮助用户找到业务流程中数据变化的规律。

3 应用实例

基于管道方式的数据流监控构件,与现有信息系统的集成包括2个层次:界面层次的集成,将构件的功能页面以iframe方式二次加载到信息系统的主界面中;数据访问层次的集成,在信息系统中创建加管道数据库,引入监控构件的数据访问方法,通过监控构件的应用程序接口实现与信息系统的数据交互。

基于管道方式的数据流监控方法已经应用于企业的业务系统,对跨应用系统、业务交叉场景下的数据关联性具有良好的监控效果。方法的应用,有效帮助了企业对业务流程中隐含的数据关联性、数据流变化的规律性进行监测,辅助企业实施业务流程重组、改善经营管理活动。图4是该方法在统计分析中的应用。

图4 应用实例

4 结束语

业务应用系统产生的项目、产品、资金、物资设备等数据信息,对企业生产经营活动很重要,当前企业信息化建设没有统一规划,无法实现信息共享,使得对这些数据长期、持续性变化和关联关系的监控缺少有效方法。为解决目前存在的问题,本文论述了一种基于管道方式的数据流监控方法,详细阐述了数据流、管道的概念和构建方法,介绍了该方法的监控流程、基于时间段的曲面监控效果,最后给出了应用实例。

在完成上述算法功能和应用场景的基础上,对算法的性能提升、应用领域的拓展将是下一阶段的重点工作。提升性能的主要方法有:(1)加载管道数据实现局部数据的载入,即发生变化的监控项数据的载入,改变当前整个管道全部加载的过程;(2)改进自适应模块的算法模型,提升算法对关联关系的修正精度。应用领域的拓展将考虑增加用户自定义监控项的功能,以适应更多的业务领域,并且积极推广算法在更多企业业务系统中的应用。

:

[1]方旭华,颜慧佳.基于工作流的办公自动化系统的设计方案[J].计算机时代,2010(10):62-63.

[2]陈姣娟,曹健.服务流程中的数据流处理[J].计算机科学,2013,40(1):14-18.

[3]卢辉.数据挖掘与数据化运营实践:思路,方法,技巧与应用[M].北京:机械工业出版社,2013:105-123.

[4]吴跃,李树全,尚明生,等.数据结构与算法[M].北京:机械工业出版社,2010:179-206.

[5]蒋静,徐志伟.操作系统原理,技术与编程[M].北京:机械工业出版社,2004:181-213.

[6]常倬林,等.Java Web从入门到精通[M].北京:机械工业出版社,2011:461-504.

[7]张友生,王勇.系统分析师教程[M].北京:清华大学出版社,2010:23-50.

[8]董荣胜,古天龙.计算机科学与技术方法论[M].北京:人民邮电出版社,2002:132-147.

[9]龙腾芳.数据挖掘技术在农业领域中的应用研究[J].微计算机信息,2005,21(23):42-43.

[10]周国烛,杨洪雪.Java Web项目开发教程[M].北京:机械工业出版社,2012:143-150.

[11]刘磊.程序分析方法[M].北京:机械工业出版社,2013:43-72.

[12]孙卫琴.Java面向对象编程[M].北京:电子工业出版社,2009:312-365.

[13]刘军,戴金山.基于Spring MVC与iBATIS的轻量级Web应用研究[J].计算机应用,2006,26(4):840-843.

[14]符培炯,杜忠军.Spring在实现MVC构架中的应用[J].计算机技术与发展,2006,16(6):236-238.

[15]刘星沙,罗昔军.基于MVC模式的Struts和Spring整合框架的研究与应用[J].湘潭大学自然科学学报,2007,29(1):92-95.

猜你喜欢

联动性数据流关联
汽车维修数据流基础(下)
“一带一路”递进,关联民生更紧
一种提高TCP与UDP数据流公平性的拥塞控制机制
奇趣搭配
智趣
我国胶合板和纤维板期货与CME木材期货价格联动性分析
沪港通对沪港两地股市联动影响机制分析
基于时变条件相关系数英美日股票市场联动性研究
基于数据流聚类的多目标跟踪算法
北医三院 数据流疏通就诊量