面向工作流管理系统的动态构件预取方法 -...

8
35 2012 CHINESEJOURNALOFCOMPUTERS Vol.35No.5 May2012 收稿日期 20090801 最终修改稿收到日期 20100910. 本课题得到中央高校基本科研业务资助项目 JBZR1147 )、 厦门市科技计划项 3502Z20110013 )、 泉州市科技计划项目 2011G5 及福建省高校产学研科技重大项目 2010N5008 资助 李海波 1972 年生 副教授 主要从事工作流技术 软构件技术等研究 .Email huaqiaou 139.com. 战德臣 1965 年生 博士 教授 博士生导师 要研究领域为现代集成制造系统 工作流系统 虚拟企业集成与电子商务系统 徐晓飞 1962 年生 博士 教授 博士生导师 主要 研究领域为企业智能计算 计算机集成制造 CIMS 管理与决策信息系统 企业资源计划 ERP 与供应链管理 SCM 技术 知识工程及应 用等 面向工作流管理系统的动态构件预取方法 李海波 战德臣 徐晓飞 华侨大学计算机科学与技术学院福建厦门 361021 哈尔滨工业大学企业与服务智能计算研究中心哈尔滨 150001 基于软构件和工作流技术的 ESA EnterpriseSoftware&Application 系统运行效率不仅取决于功能性的 因素 还受到非功能性因素的影响 而且常常被忽视 把业务频率这一重要的非功能性因素融入到 ESA 系统中 时结合构件的使用频度和构件出现的间隔这两个因素 提出构件预取模型 包括相对依赖强度和绝对依赖强度两 个计算模型 前者体现了构件使用频度 后者体现了构件出现的间隔 业务频率则通过工作流日志融入两个模型 以此提高构件实例化时缓冲的命中率 缩短应用服务器对用户访问的响应时间 最后的实验结果表明 该方法 具有工作流的优势 能为构件缓冲提供更加准确的预测 关键词 工作流 软构件 预取模型 业务频率 依赖 中图法分类号 TP311 犇犗犐 10.3724 SP.J.1016.2011.01038 狀犪犿犻犮犆狅犿 狅狀犲狀狋犘狉犲犳犲狋犮犺犻狀 犕犲狋犺狅犱犳狅狉犠狅狉犽犳犾狅狑犕犪狀犪 犲犿犲狀狋犛 狊狋犲犿 LIHaiBo ZHANDeChen XUXiaoFei 犆狅犾犾犲 犲狅 犆狅犿 狌狋犲狉犛犮犻犲狀犮犲牔犜犲犮犺狀狅犾狅 犵狔 犎狌犪 犻犪狅犝狀犻狏犲狉狊犻狋 犡犻犪犿犲狀 犉狌 犻犪狀 361021 犆犲狀狋犲狉狅 犐狀狋犲犾犾犻 犲狀狋犆狅犿 狌狋犻狀 犈狀狋犲狉 狉犻狊犲狊牔犛犲狉狏犻犮犲 犎犪狉犫犻狀犐狀狊狋犻狋狌狋犲狅 犜犲犮犺狀狅犾狅 犵狔 犎犪狉犫犻狀 150001 犃犫狊狋狉犪犮狋EfficiencyofESA EnterpriseSoftwareandApplication ), whichbasedonsoftware componentandworkflowtechnologies dependsonnotonlyfunctionalfactors butalsononfunc tionalones.Thesenonfunctionalfactorsareoftenignored.Consideringtheimportantnonfunc tionalfactor businessfrequencyinESA andcombineditwiththeothertwofactors frequency ofinstantiatedcomponentsrepeatedlyandintervalsofcomponentsdefinedinworkfloworcompo nentmodels twocomponentprefetchingmodelsareproposedforESA.Oneisrelativedependen cymodel whichreflectsfrequency andtheotherwasabsolutedependencymodel whichreflects intervalsbetweencomponents.Businessfrequencyismergedintothetwofactorsbymining workflowlog.Themodelcanprovideaccuratepredictionforcomponentcachetoincreasehitratio whencomponentsareinstantiated shortentheapplicationserver sresponsetimeonuseraccess. Thefinalexperimentresultshowsthatourmethodhasadvantageofworkflowtechnologyandcan provideamoreaccurateprediction. 犓犲狔狑狅狉犱狊workflow softwarecomponent prefetchingmodel businessfrequency dependency

Upload: others

Post on 19-Feb-2020

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 面向工作流管理系统的动态构件预取方法 - ict.ac.cncjc.ict.ac.cn/quanwenjiansuo/2012-5/lhb.pdfC1就是A4中的C13的间接前驱.构件间的直接前 驱和间接前驱关系形成的“间隔”也不同,A1中C1

书书书

第35卷 第5期2012年5月

计  算  机  学  报CHINESEJOURNALOFCOMPUTERS

Vol.35No.5May2012

 

收稿日期:20090801;最终修改稿收到日期:20100910.本课题得到中央高校基本科研业务资助项目(JBZR1147)、厦门市科技计划项目(3502Z20110013)、泉州市科技计划项目(2011G5)及福建省高校产学研科技重大项目(2010N5008)资助.李海波,男,1972年生,博士,副教授,主要从事工作流技术、软构件技术等研究.Email:huaqiaou@139.com.战德臣,男,1965年生,博士,教授,博士生导师,主要研究领域为现代集成制造系统、工作流系统、虚拟企业集成与电子商务系统.徐晓飞,男,1962年生,博士,教授,博士生导师,主要研究领域为企业智能计算、计算机集成制造CIMS、管理与决策信息系统、企业资源计划ERP与供应链管理SCM技术、知识工程及应用等.

面向工作流管理系统的动态构件预取方法李海波1) 战德臣2) 徐晓飞2)

1)(华侨大学计算机科学与技术学院 福建厦门 361021)2)(哈尔滨工业大学企业与服务智能计算研究中心 哈尔滨 150001)

摘 要 基于软构件和工作流技术的ESA(EnterpriseSoftware&Application)系统运行效率不仅取决于功能性的因素,还受到非功能性因素的影响,而且常常被忽视.把业务频率这一重要的非功能性因素融入到ESA系统中,同时结合构件的使用频度和构件出现的间隔这两个因素,提出构件预取模型,包括相对依赖强度和绝对依赖强度两个计算模型.前者体现了构件使用频度,后者体现了构件出现的间隔.业务频率则通过工作流日志融入两个模型中,以此提高构件实例化时缓冲的命中率,缩短应用服务器对用户访问的响应时间.最后的实验结果表明,该方法具有工作流的优势,能为构件缓冲提供更加准确的预测.

关键词 工作流;软构件;预取模型;业务频率;依赖中图法分类号TP311   犇犗犐号:10.3724/SP.J.1016.2011.01038

犇狔狀犪犿犻犮犆狅犿狆狅狀犲狀狋犘狉犲犳犲狋犮犺犻狀犵犕犲狋犺狅犱犳狅狉犠狅狉犽犳犾狅狑犕犪狀犪犵犲犿犲狀狋犛狔狊狋犲犿LIHaiBo1) ZHANDeChen2) XUXiaoFei2)

1)(犆狅犾犾犲犵犲狅犳犆狅犿狆狌狋犲狉犛犮犻犲狀犮犲牔犜犲犮犺狀狅犾狅犵狔,犎狌犪狇犻犪狅犝狀犻狏犲狉狊犻狋狔,犡犻犪犿犲狀,犉狌犼犻犪狀 361021)2)(犆犲狀狋犲狉狅犳犐狀狋犲犾犾犻犵犲狀狋犆狅犿狆狌狋犻狀犵狅犳犈狀狋犲狉狆狉犻狊犲狊牔犛犲狉狏犻犮犲,犎犪狉犫犻狀犐狀狊狋犻狋狌狋犲狅犳犜犲犮犺狀狅犾狅犵狔,犎犪狉犫犻狀 150001)

犃犫狊狋狉犪犮狋 EfficiencyofESA(EnterpriseSoftwareandApplication),whichbasedonsoftwarecomponentandworkflowtechnologies,dependsonnotonlyfunctionalfactors,butalsononfunctionalones.Thesenonfunctionalfactorsareoftenignored.Consideringtheimportantnonfunctionalfactor,businessfrequencyinESA,andcombineditwiththeothertwofactors,frequencyofinstantiatedcomponentsrepeatedlyandintervalsofcomponentsdefinedinworkfloworcomponentmodels,twocomponentprefetchingmodelsareproposedforESA.Oneisrelativedependencymodel,whichreflectsfrequency,andtheotherwasabsolutedependencymodel,whichreflectsintervalsbetweencomponents.Businessfrequencyismergedintothetwofactorsbyminingworkflowlog.Themodelcanprovideaccuratepredictionforcomponentcachetoincreasehitratiowhencomponentsareinstantiated,shortentheapplicationserver’sresponsetimeonuseraccess.Thefinalexperimentresultshowsthatourmethodhasadvantageofworkflowtechnologyandcanprovideamoreaccurateprediction.

犓犲狔狑狅狉犱狊 workflow;softwarecomponent;prefetchingmodel;businessfrequency;dependency

Page 2: 面向工作流管理系统的动态构件预取方法 - ict.ac.cncjc.ict.ac.cn/quanwenjiansuo/2012-5/lhb.pdfC1就是A4中的C13的间接前驱.构件间的直接前 驱和间接前驱关系形成的“间隔”也不同,A1中C1

1 引 言目前,基于构件的软件工程(ComponentBased

SoftwareEngineering,CBSE)逐渐成为软件开发的主流范型,是软件开发工程化的现实可行途径.同时,工作流技术已经成为实现业务过程自动化的核心技术,基于工作流技术实现的软件系统越来越受到重视.对基于软构件和工作流技术搭建企业应用软件系统(EnterprisesSoftwareandApplication,ESA)的研究也备受关注,而目前的研究大多集中在体系结构方面[1],对于运行层次的效率提高与改善的研究相对较少.

基于软构件和工作流技术的ESA软件系统的运行,实际上是软构件在工作流引擎调度下,在应用服务器上往复不断地执行过程.对于一个中等规模的企业和业务量,ESA系统每秒钟要把成千上万个构件装入内存,执行,再销毁.把构件装入内存通常称作构件的实例化.在软件执行这一速度数量级上考虑,提高构件实例化的速度可以极大地缩短应用服务器的响应时间,进而提高ESA系统的整体运行效率.在缩短WEB服务器响应时间上,很多研究者都提出采用WEB预加载技术加以解决[24],WEB预加载又称为主动缓存技术,区别于一般意义上的被动缓存,它通过分析用户访问的历史记录,主动预测用户将来可能浏览的页面,在用户请求该对象前,预先把这些对象装入缓冲区中.当用户请求该对象时,直接把缓存里的对象提交给用户,而不用从磁盘获取,从而减少用户的访问延时.如果预加载足够准确,缓存的性能将得到明显改进[4].

根据当前请求以及历史记录预测用户接下来的访问请求相当于对访问路径的预测,可以大大提高预测的准确性.和这些通用的路径预测方法相比,在基于工作流技术的ESA系统中对构件实例化的预测应该具有明显的优势,因为工作流模型中已经描述了构件的执行顺序.但是,对ESA系统构件的预取还必须综合考虑业务发生频率这一因素.业务过程的各个分支甚至每个业务活动的执行频率都不是固定的,“热门”业务也会逐渐变成“冷门”业务,所以,ESA系统构件的执行频率也会随之变化.完全根据工作流模型预测的构件范围太大,更加精确的预测还必须考虑业务频率.

我们提出一种基于业务频率持续变化的构件预取模型.模型中既体现了构件之间的距离和顺序关

系,又体现了业务发生的频率.区别于现有的路径预测方法,由于现实中的业务频率具有渐变的特点,所以可以通过挖掘工作流日志获得工作流各分支的发生频率.据此可以更加准确地预测下一个要实例化的构件.

2 构件预取影响因素分析工作流模型是对业务逻辑的描述,两个基本的

元素就是活动及其连接关系,如图1(a)所示的采购订单制定过程示意图.而活动则是由构件根据一定的组装模型组装而成,而且对于一个成熟的ESA系统来说,都具有一定规模的构件库,图1(b)中显示了采购订单制定过程相关的构件库.

由于ESA的活动都是由构件组装而成,工作流模型确定了活动的执行顺序,也就决定了其组成构件的执行顺序,例如图1(c)中,A1先于A2执行,A1中的C1,C2,C3,C4,C5,C6就是A2中C7,C11的前驱,由于是相邻执行,所以也是直接前驱,A1中C1就是A4中的C13的间接前驱.构件间的直接前驱和间接前驱关系形成的“间隔”也不同,A1中C1和A2中C7的间隔就比A1中C1和A3中C12的间隔小,C2,C3和C24,C25,C26的间隔最大.同时也应该看到,C4在A1,A2,A3,A4中反复出现,也就被反复执行,从整个模型来看C4,C11和C21被反复执行的次数较多.

通过上面分析,若要预测构件的出现顺序,至少要取决于两个因素:构件被反复执行的程度和构件之间的出现间隔.

虽然有了这两个预测因素,但也仅仅是从工作流模型定义的角度去考虑的,业务的发生频率则是工作流运行时需要考虑的另一个因素.例如,图1(c)中,设备大修期间企业采购的物料多数都是备品备件,那么采购招标构件C14执行的频率就很低,而在年初生产准备阶段,原材料采购业务占多数,C14执行的频率就会变高.因此,业务频率的持续变化因素也应该体现在构件预取模型中,才能更加准确地预测待预取的构件.

3 基于工作流日志的业务频率识别方法业务频率是指一段时期内某项业务发生的频

率.在业务层面,由于工作流模型描述的是业务发生的所有可能性,运行的工作流当遇到选择关系的路

93015期 李海波等:面向工作流管理系统的动态构件预取方法

Page 3: 面向工作流管理系统的动态构件预取方法 - ict.ac.cncjc.ict.ac.cn/quanwenjiansuo/2012-5/lhb.pdfC1就是A4中的C13的间接前驱.构件间的直接前 驱和间接前驱关系形成的“间隔”也不同,A1中C1

图1 采购订单制定过程及构件组成

径时,会根据当时的业务发生情况有选择地执行.因此,在一段时期内,各个活动都有一定的发生频率.同一个活动在不同时期内发生的频率也在变化.同时,企业业务频率的变化大多都是逐渐的,因此挖掘工作流日志能够如实地反映出业务频率的变化趋势.在实现层面,工作流模型中的业务活动都是由构件组装而成,业务活动的执行频率也就是其组成构件的执行频率.因此首先定义工作流日志.

定义1. 工作流日志.设犃为所有工作流实例中出现的活动集合,犃是犃范围内所有工作流实例的集合,则工作流日志犠犔犃,是犃上工作流实例的子集.

工作流日志的定义体现了两个方面:(1)工作流日志定义在已经出现的业务活动上,即使工作流模型中定义了某业务活动,但现实中一直没有执行,那么它也不属于工作流日志范围;(2)强调工作流日志的有效性,实际上,只有一定时期内的工作流日志才能反映当时业务过程的执行情况,一般选取最近发生的工作流日志作为关键路径的计算依据.

工作流模型中规定了4种基本的控制模式:顺序、选择、并发和循环结构.而在一个工作流实例中,活动的前后顺序是调度完的结果.每一个业务活动都

有一个开始时间(starttime)和完成时间(completetime),记录了活动的执行顺序.例如图1(a)中的业务活动所形成的工作流日志片段如表1所示.

表1 工作流日志片段工作流实例ID 活动名称 开始时间 完成时间

1 采购需求制定 2007010208∶002007010208∶101 采购需求审核 2007010208∶202007010208∶221 月采购计划制定2007010308∶302007010308∶321 月采购计划审核2007010308∶402007010308∶421 采购招标管理 2007010409∶002007010409∶421 采购合同管理 2007010509∶552007010510∶301 采购订单制定 2007010608∶152007010608∶201 采购订单审核 2007010609∶222007010609∶251 采购订单下达 2007010609∶302007010609∶322 采购需求制定 2007010208∶252007010208∶302 采购需求审核 2007010211∶302007010211∶322 月采购计划制定2007010308∶302007010308∶322 月采购计划审核2007010308∶402007010308∶42

显然,工作流日志WL中的工作流实例,是一组业务活动的执行序列.设WL中出现的业务活动共有犿种,表示成犃={犪1,犪2,…,犪犿},相应地,WL中每个业务活动被执行的次数为Freq={犳1,犳2,…,犳犿}.下面给出求解Freq的算法.

0401 计  算  机  学  报 2012年

Page 4: 面向工作流管理系统的动态构件预取方法 - ict.ac.cncjc.ict.ac.cn/quanwenjiansuo/2012-5/lhb.pdfC1就是A4中的C13的间接前驱.构件间的直接前 驱和间接前驱关系形成的“间隔”也不同,A1中C1

算法. WLFreq.输入:工作流日志犠犔输出:每种活动的执行犉狉犲狇BeginFor(all犪犻犼∈犐犻,犐犻∈犐)do For(all犪犻∈犃)do  If犪犻=犪犻犼then犳犻=犻+1  EndforEndforRetrun犉狉犲狇=(犳1,犳2,…,犳犿)

End在表1的工作流日志片段中,业务活动:采购需

求制定、采购需求审核以及月采购计划制定出现的频率犉狉犲狇=(2,2,2).在狀个工作流实例中,处于工作流循环控制结构下的活动出现的次数经常都大于狀,说明经常被反复执行.在选择结构下,一个工作流实例里的每个分支只执行一次,处于各分支上的活动在工作流日志中出现的次数一般都小于狀.

4 构件预取计算模型为了使给出的构件预取模型能够反映上述3个

影响因素,即工作流模型中定义的构件间隔和构件被执行的频度以及业务的发生频率,下面首先分析这几个因素对预取模型的影响.

采用犃犅表示构件犃是构件犅的前驱,包括直接前驱和间接前驱,犃犅形成的犅对犃的依赖表示成犃→犅,而构件预取模型就是要反映这种依赖关系的强度.两个构件之间的依赖关系越强,相对于前驱构件来说,后继构件的命中率越高,反之越低.这可以采用绝对依赖强度度量构件间的依赖关系.犃→犅的绝对依赖强度犃犇犛(犃→犅)只考虑犅对犃的依赖程度,而不考虑犃对犅的依赖程度.由于在工作流系统中两个构件往往互为前驱和后继,即犃犅和犅犃同时存在.为了体现方向性,采用相对依赖强度犚犇犛(犃→犅)同时考虑犅对犃的依赖程度和犃对犅的依赖程度,即“扣除”犃对犅依赖程度后犅对犃依赖程度的“净值”.假如业务过程运行1000次,犃犅出现的次数为1000,犅犃出现的次数为0,则犃犇犛(犃→犅)应该最大,如果两者出现的次数基本各占一半,则说明犃和犅之间的执行顺序不确定,犚犇犛(犃→犅)的值应该趋近于0.构件的绝对依赖强度模型和相对依赖强度模型是构件预取计算模型的关键.

若要计算犚犇犛(犃→犅),需要同时考虑犃犅和犅犃的关系,犃犅令犃→犅值增大,犅犃令

犃→犅值减小.同时,犃→犅和犃犅与犅犃关系出现的总次数呈反比.可见,构件犃和犅之间的依赖强度随着二者“距离”的增大而减弱,距离定义为构件所组装成的活动之间间隔的其它活动个数,表示成|犃犅|,犃是犅的直接前驱,则|犃犅|=1.若犃和犅被组装到同一个业务活动中,犃和犅之间不具有时序依赖关系,因此|犃犅|=0.三类影响因素在模型上的体现如下:|犃犅|体现了犃和犅的间隔,这从工作流模型就能得到;犃和犅的间隔增大时绝对依赖强度减弱;在犿次工作流实例取样中,犃犅的绝对依赖强度累加和体现了业务频率;犃犅的使用频度则体现在相对依赖强度上.实际上构件之间的时序依赖强度,总体趋势随着距离以指数关系减小[1011],在此定义系数δ|犃犅|-1,依据实验看δ的增长趋势,δ取0.4较为合适,当|犃犅|=1时,系数δ|犃犅|-1=1表示构件直接相邻.下面先给出犃犇犛(犃→犅)的计算模型:

犃犇犛(犃→犅)=∑|犃犅|×δ|犃犅|-1犿 (1)其中,犿为工作流实例的个数.犚犇犛(犃→犅)的计算模型如下:

犚犇犛(犃→犅)=∑|犃犅|×δ|犃犅|-1-∑|犅犃|×δ|犃犅|-1∑|犃犅|×δ|犃犅|-1+∑|犅犃|×δ|犃犅|-1+1

(2)工作流日志中参与挖掘业务频率的工作流实例

越多越好.例如犃是犅的直接前驱,实验5次该条路径,犃犅出现5次,犅犃出现0次,则犃犇犛(犃→犅)=1,犚犇犛(犃→犅)=0.83.实验10次时,犃犅出现10次,犅犃出现0次,则犃犇犛(犃→犅)=1,犚犇犛(犃→犅)=0.9.样本数目越多对求犚犇犛值越好.

下面分析一下两种依赖关系模型的语义.以图2中显示的工作流模型示意图、其构件组成以及构件之间的顺序关系为例,分别计算执行了100次时的绝对依赖强度和相对依赖强度,计算结果分别见表2和表3.

图2 构件依赖强度示意图

14015期 李海波等:面向工作流管理系统的动态构件预取方法

Page 5: 面向工作流管理系统的动态构件预取方法 - ict.ac.cncjc.ict.ac.cn/quanwenjiansuo/2012-5/lhb.pdfC1就是A4中的C13的间接前驱.构件间的直接前 驱和间接前驱关系形成的“间隔”也不同,A1中C1

表2 绝对依赖强度计算示例犃犇犛(C犻→C犼)

C1 C2 C3 C4 C5C1 0.8 1 1 0.8C2 0.8 1 1 0.8C3 1 1C4 1 1C5

表3 相对依赖强度计算示例犚犇犛(C犻→C犼)

C1 C2 C3 C4 C5C1 0.94120.9524 0.9524 0.9412C2 0 0 0.9412C3 0 0.9524C4 0 0.9524C5

绝对依赖强度虽然度量了两个构件之间的依赖程度,但还不足以体现出这两个构件依赖的反复使用,需要相对依赖强度体现.反之,相对依赖强度掩盖了交错被调用执行的两个构件,需要靠绝对依赖强度体现.表4详细描述了构件的绝对依赖强度和相对依赖强度共同表达的依赖关系含义.

表4 绝对依赖强度和相对依赖强度的语义犃→犅绝对依赖强度

犃→犅相对依赖强度

犃和犅的距离

犃和犅反复使用的次数

大 大 较近 较少小 小 较远 较多小 大 较远 较少大 小 较近 较多

5 性能评价5.1 实验设计  以图1所示的采购订单制定为例,分析构件预

取模型.具体步骤如下:(1)抽取服务器中的工作流日志组成实验数据集;(2)计算工作流模型中构件的依赖强度.

对图1所示的工作流模型,分别抽取1000、2000和3000个工作流实例,各活动出现的频率如表5以及图3所示.

表5 对业务频率的仿真结果运行次数 出现次数

A1A2A3A4A5A6A7A8A91000 10001000100010003576776776776772000 200020002000200068013681368136813683000 300030003000300010082012201220122012

图3 业务频率变化的对比

结论.从运行结果看,A1、A2、A3、A44个活动出现频率最高,A5出现频率最低.运行次数虽然不同,但总体趋势相同.在3种物料的采购业务均等情形下,只针对原材料和备品备件制定订单.3种物料的业务频率也可以不同,做加权处理,这完全取决于对现实业务的反映,此处不赘述.

通过仿真工具,计算出构件之间的相对依赖关系如表6所示,限于篇幅,只显示前13个构件(C1~C13)之间的相对依赖强度.

表6 构件间的相对依赖强度

前序 相对依赖强度C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13

C1 0.000 0.000 0.000 0.979 0.000 0.000 0.952 0.9410.9410.9410.9790.9410.906C2 0.000 0.000 0.000 0.979 0.000 0.000 0.952 0.9410.9410.9410.9790.9410.906C3 0.000 0.000 0.000 0.979 0.000 0.000 0.952 0.9410.9410.9410.9790.9410.906C4-0.979-0.979-0.979 0.000-0.979-0.979-0.293 0.2360.2360.2360.2660.2360.819C5 0.000 0.000 0.000 0.979 0.000 0.000 0.952 0.9410.9410.9410.9790.9410.906C6 0.000 0.000 0.000 0.979 0.000 0.000 0.952 0.9410.9410.9410.9790.9700.906C7-0.952-0.952-0.952 0.292-0.952-0.952 0.000 0.9520.9520.9520.9740.9520.941C8-0.941-0.941-0.941-0.236-0.941-0.941-0.952 0.0000.0000.0000.0480.0000.952C9-0.941-0.941-0.941-0.236-0.941-0.941-0.952 0.0000.0000.0000.0480.0000.952C10-0.941-0.941-0.941-0.236-0.941-0.941-0.952 0.0000.0000.0000.0480.0000.952C11-0.979-0.979-0.979-0.266-0.979-0.979-0.973-0.048-0.048-0.0480.000-0.0480.354C12-0.941-0.941-0.941-0.236-0.941-0.941-0.952 0.0000.0000.0000.0480.0000.952C13-0.906-0.906-0.906-0.819-0.906-0.906-0.941-0.952-0.952-0.952-0.776-0.9520.000

图4显示了完整的26个构件之间的相对依赖趋势,图中可以看出不同构件之间的相对依赖程度,

据此可以为构件缓冲提供预测.

2401 计  算  机  学  报 2012年

Page 6: 面向工作流管理系统的动态构件预取方法 - ict.ac.cncjc.ict.ac.cn/quanwenjiansuo/2012-5/lhb.pdfC1就是A4中的C13的间接前驱.构件间的直接前 驱和间接前驱关系形成的“间隔”也不同,A1中C1

图4 构件相对依赖强度矩阵

  通过仿真工具,计算出构件之间的绝对依赖关系如表7所示,限于篇幅,只显示前13个构件(C1~C13)之间的绝对依赖强度.

  图5显示了完整的26个构件之间的绝对依赖趋势,可以看出不同构件之间的绝对依赖程度,据此可以为构件缓冲提供预测.

图5 构件绝对依赖强度矩阵图示表7 构件间的绝对依赖强度

前序 绝对依赖强度C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13

C1 0.000 0.000 0.000 0.480 0.000 0.000 1.000 0.8000.8000.8000.6060.8000.480C2 0.000 0.000 0.000 0.480 0.000 0.000 1.000 0.8000.8000.8000.6060.8000.480C3 0.000 0.000 0.000 0.480 0.000 0.000 1.000 0.8000.8000.9000.5930.9000.760C4 0.000 0.000 0.000 0.593 0.000 0.000 0.500 0.6000.6000.9000.5930.9000.760C5 0.000 0.000 0.000 0.606 0.000 0.000 1.000 0.8000.8000.8000.6060.8000.480C6 0.000 0.000 0.000 0.606 0.000 0.000 1.000 0.8000.8000.8000.6060.8000.480C7 0.000 0.000 0.000 0.660 0.000 0.000 0.000 1.0001.0001.0000.6601.0000.800C8 0.000 0.000 0.000 0.612 0.000 0.000 0.000 0.0000.0000.0000.6120.0001.000C9 0.000 0.000 0.000 0.612 0.000 0.000 0.000 0.0000.0000.0000.6120.0001.000C10 0.000 0.000 0.000 0.394 0.000 0.000 0.000 0.0000.0000.0000.3940.0001.000C11 0.000 0.000 0.000 0.343 0.000 0.000 0.000 0.5000.5001.0000.5850.5000.600C12 0.000 0.000 0.000 0.394 0.000 0.000 0.000 0.0000.0000.0000.6120.0001.000C13 0.000 0.000 0.000 0.114 0.000 0.000 0.000 0.0000.0000.0000.2560.0000.000

  根据表4给出的定性分析结果,预测某构件C的后序构件,最好选取那些绝对依赖强度高,同时相对依赖强度低的构件.这里取阈值为0.5,即从表6和表7中选择那些满足:0相对依赖强度0.5和绝对依赖强度0.5的依赖关系,最终得到表5所示的业务发生频率下的构件预取集合:{C7→C4,C4→C8,C4→C9,C4→C10,C4→C11,C8→C11,C9→C11,C12→C11,C20→C11,C21→C11,C22→C11,C4→C12,C11→C13,C11→C15,C11→C17}.5.2 和相关方法做比较

预取方法很多,如基于概率的预取模型,基于分支模型的预取方法,基于数据挖掘的方法(详见下节)等等.为了对比测试模型的预取性能,我们选用和本文方法相似的两个预取方法———基于概率的预

取模型[2]和基于访问路径的预取方法[4]做比较,并且选取命中率作为模型性能评价指标.为了便于叙述,文中将我们提出的模型简称为FCP,将对比模型分别称为PMM和PAP.

以图1所示的工作流模型为例,分别用不同的方法进行模拟实验,比较在相同的硬件条件下,系统运行开始后的不同时间段内,按照不同方法计算出的预取构件的命中率及适应度.同时运行的工作流实例个数也相同,每当一个工作流实例运行结束立即补充一个新的工作流实例,始终保持犖工作流实例在运行,该实验取犖=20.命中率犺=狆/(犖×犆),其中狆为从缓存中获取的构件个数,犆为工作流模型定义的构件总数,该例中犆=37.实验结果如图6所示.

34015期 李海波等:面向工作流管理系统的动态构件预取方法

Page 7: 面向工作流管理系统的动态构件预取方法 - ict.ac.cncjc.ict.ac.cn/quanwenjiansuo/2012-5/lhb.pdfC1就是A4中的C13的间接前驱.构件间的直接前 驱和间接前驱关系形成的“间隔”也不同,A1中C1

图6 和其它方法的命中率相比较

  实验结果表明,本文提出的方法从系统运行的开始就表现出命中率的优势,这是因为该方法除通过工作流日志挖掘业务频率语义外,更重要的是建立在工作流模型基础之上,被预取的对象本身就能确定出顺序,具有先天优势.而基于访问路径的预取方法,被预取的对象起初是无序的,必须先通过训练数据确定顺序关系,至于基于概率的预取方法,则取决于用户的访问偏好,而且很大程度上还取决于用户操作的熟练程度.

6 相关工作预取概念可以追溯到分布式与并行系统的设计

中,其目的是隐藏通信延迟.根据目前Web预取方面的工作和成果,将预取算法分为以下几种类型:

(1)基于访问概率的预取算法.由Markov模型派生的技术已经被广泛应用于

对用户行为的预测上,如果已知用户先前的行为序列,则根据Markov模型可以对其将来的行为进行预测.一般地,Markov模型都需要一个操作集、状态集以及二者的转移概率矩阵.传统的Markov链模型是一种简单而有效的预测模型,但它存在预测准确率低等缺点,常用于对Web访问请求的预测,典型的如基于Web流行度的Markov模型[2]、基于隐式Markov链的预测模型[3]、基于路径分析的预测模型[4].除对Web页访问的预测外,Markov链也常常用于数值预取模型上[56].

(2)基于数据挖掘的预取算法.数据挖掘是从大量的数据中采掘出隐含的、先

前未知的、对决策有潜在价值的知识和规则的一种技术.可以根据用户访问的历史数据和当前访问的数据、利用数据挖掘技术来预测用户将来的可能行为,从而为用户预取相关Web页面.用户缓冲器中的数据可以作为数据挖掘时的历史数据.文献[78]利用数据挖掘技术挖掘用户的兴趣关联规则,作为

对用户即将访问的页面进行预取的依据.基于数据挖掘的方法更适合于用户的个性化推荐领域.

(3)基于Web语义的预取算法.通过提炼用户会话特征,按语义对用户会话进

行分类,根据当前用户访问路径与各类别中心的距离,确定会话特征,预测用户可能访问的文档,如文献[9].被挖掘对象的语义很多,如论文的相互引用语义[10]、上下文语义[11]、网页超链描述文字信息[12]

等等.(4)基于网络性能的预取算法.许多Web智能加速技术都是建立在如RTT

(RoundTripTime)等网络性能指标基础上的[13],在对Web代理服务器上的业务进行分析和对网络RTT进行测量的基础上,提出了智能预取控制技术及新的缓存替换方法.文献[14]则在有限的网络带宽下基于距离和时间的计算预取对象,在相对合理的时间与空间开销下获取较高的性能.

7 结束语本文方法建立在工作流系统之上,预取的对象

是在已知调用顺序的基础上确定的,因此,性能上占有绝对优势.在现今ESA系统开发的主流技术———软构件和工作流技术背景下,提供了更好的构件预取策略以减轻应用服务器的运行负载和缩短用户访问的响应时间.本文提出的是工作流管理系统中基于业务频率持续变化的构件预取方法,为构件缓冲提供了更加准确的预测,提高了从构件缓冲实例化时的命中率,从而提高应用服务器对用户访问的响应速度.构件预取模型分为构件的绝对依赖强度和相对依赖强度两个模型,全方位地体现出影响构件预取的3个因素.

参考文献

[1]LiHaiBo,ZhanDeChen,XuXiaoFei.Architectureofcomponentcompositionbasedonworkflowengine.JournalofSoftware,2006,17(6):14011410(inChinese)(李海波,战德臣,徐晓飞.基于工作流引擎的构件组装体系结构.软件学报,2006,17(6):14011410)

[2]ShiLei,GuZhimin,WeiLinetal.PopularitybasedselectiveMarkovmodel//ProceedingsoftheIEEE/WIC/ACMInternationalConferenceonWebIntelligence.Beijing,China,2004:504507

[3]GalassiUgo,BottaMarco,GiordanaAttilio.HierarchicalhiddenMarkovmodelsforuser/processprofilelearning.FundamentaInformaticae,2007,78(4):487505

4401 计  算  机  学  报 2012年

Page 8: 面向工作流管理系统的动态构件预取方法 - ict.ac.cncjc.ict.ac.cn/quanwenjiansuo/2012-5/lhb.pdfC1就是A4中的C13的间接前驱.构件间的直接前 驱和间接前驱关系形成的“间隔”也不同,A1中C1

[4]XuHuanQing,WangYongCheng.AWebprefetchingmodelbasedonanalyzinguseraccesspattern.JournalofSoftware,2003,14(6):11421147(inChinese)(许欢庆,王永成.基于用户访问路径分析的网页预取模型.软件学报,2003,14(6):11421147)

[5]VelevMN.Usingabstractionforefficientformalverificationofpipelinedprocessorswithvalueprediction//Proceedingsofthe7thInternationalSymposiumonQualityElectronicDesign.WashingtonDC,USA:IEEEComputerSociety,2006:5156

[6]XieXueJun,YeYiZheng,QiuShanQin,YuMingYan.DatavalueprefetchingmethodbasedonMarkovmodel.ActaElectronicaSinica,2007,35(2):307310(inChinese)(谢学军,叶以正,邱善勤,喻明艳.基于马尔可夫模型的数据值预取方案.电子学报,2007,35(2):307310)

[7]JensenKyleL,StyczynskiMarkP,RigoutsosIsidore,StephanopoulosGregoryN.Agenericmotifdiscoveryalgorithmforsequentialdata.Bioinformatics,2006,22(1):2128

[8]LiC,WangJ.Efficientlyminingclosedsubsequenceswithgapconstraints//ProceedingsoftheSIAMInternationalConferenceonDataMining.Atlanta,Georgia,USA,2008,4:313322

[9]MabroukehNizarR,EzeifeChristieI.SemanticrichMarkovmodelsforWebprefetching//ProceedingsoftheIEEEInter

nationalConferenceonDataMiningWorkshops.MiamiFlorida,USA,2009:465470

[10]ChenWeiling,YinShiqun,QiuYuhui.Schemareasoningandsemanticrepresentationforcitationsemanticlinknetwork//Proceedingsofthe3rdInternationalConferenceonIntelligentInformationTechnologyApplication.Nanchang,China,2009:366369

[11]DrakatosaStylianos,PissinouaNiki,MakkiaKia,DouligerisbChristos.Acontextawarecachestructureformobilecomputingenvironments.JournalofSystemsandSoftware,2007,80(7):11021119

[12]PonsAP.Objectprefetchingusingsemanticlinks.TheDataBaseforAdvancesinInformationSystems,2006,37(1):97109

[13]JinZhiGang,ZhangGang,ShuYanTai.Intelligentprefetchandcachetechniquesbasedonnetworkperformance.JournalofComputerResearchandDevelopment,2001,38(8):10001004(inChinese)(金志刚,张钢,舒炎泰.基于网络性能的智能Web加速技术一缓存与预取.计算机研究与发展,2001,38(8):10001004)

[14]LimS,LeeWC,CaoG,DasCR.Anovelcachingschemeforimprovinginternetbasedmobileadhocnetworksperformance.AdHocNetworks,2006,4(2):225239

犔犐犎犪犻犅狅,bornin1972,Ph.D.,associateprofessor.Hisresearchinterestsincludeserviceorientedcomputing,workflowsystemandcomponentorienteddevelopment.

犣犎犃犖犇犲犆犺犲狀,bornin1965,Ph.D.,professor,Ph.D.supervisor.HiscurrentresearchinterestsincludeERP,workflowsystems,CSCW(computersupportedcooperativework).

犡犝犡犻犪狅犉犲犻,bornin1962,Ph.D.,professor,Ph.D.supervisor.Hiscurrentresearchinterestsincludeintelligentcomputingofenterprises,computerintegratedmanufacturingsystems,database,andmanagementanddecisioninformationsystem.

犅犪犮犽犵狉狅狌狀犱Businesschangehappensfrequently,mostofwhichare

functional.Butnonfunctionalchangesuchasbusinessfrequencyisneglectedoften,whichwillresultinfrequencychangingofrelatedexecutedcomponents.Componentprefetchingcanimproveefficiencyofapplicationserver.Todothis,weneedagoodprefetchingmodelwhichthenonfunctionalfactorshouldbeconsidered.Sowedigthesefactorsrecently,andbendourselvestoresearchorganizationmodeof

componentlibrarytoimproveESAefficiency.OurworkissupportedbytheFundamentalResearchFundsfortheCentralUniversitiesGrantNo.JBZR1147,theScienceandTechnologyProjectsofXiamenGrantNo.3502Z20110013,theScienceandTechnologyProjectsofQuanzhouGrantNo.2011G5,andKeyProjectsforUniversityIntegrationofProduction,EducationandResearch,FujianProvinceGrantNo.2010N5008.

54015期 李海波等:面向工作流管理系统的动态构件预取方法