您好,欢迎来到微智科技网。
搜索
您的当前位置:首页面向多租户流程定制的流程版本管理和流程模板演化

面向多租户流程定制的流程版本管理和流程模板演化

来源:微智科技网
原创性声明本人郑重声明:所呈交的学位论文,是本人在导师的指导下,进行研究所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究作出重要贡献的个人和集体,均己在文中以明确方式标明。本声明的法律责任由本人承担。论文作者签名:酶型越日期:迎比竖:塑关于学位论文使用授权的声明本人同意学校保留或向国家有关部门或机构送交论文的印刷件和电子版,允许论文被查阅和借阅;本人授权山东大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段保存论文和汇编本学位论文。(保密论文在解密后应遵守此规定)论支作者签名:噩查蜮基导师签名:山东大学硕士学位论文目{}iii录jl}2;……………………………………………………………………………………………………………….I』dL】[;STRACT……………………………………………………………………………………………………III第一章绪论………………………………………………………………………………..11.1研究背景………………………………………………………………………11.2研究内容………………………………………………………………………21.3主要工作及贡献………………………………………………………………31.4论文的组织结构………………………………………………………………4第二章相关研究………………………………………………………………………………62.1SaaS.…..….………..….…..……..…….………..….….…….….….……….……….……….….…62.2多租户流程定制………………………………………………………………72.3流程版本管理…………………………………………………………………82.4流程演化………………………………………………………………………9第三章多租户环境下的流程定制…………………………………………………………103.1流程定制架构……………………………………………………………….103.2流程模型…………………………………………………………………….123.3流程数据模板与定制……………………………………………………….13第四章基于流程定制的流程版本管理………………………………………………….174.1流程版本管理模型………………………………………………………….174.1.1MBPG……………………………………………………………………………………….174。1.2流程使用记录器……………………………………………………..214.2流程版本管理策略………………………………………………………….224.3版本管理策略的评估……………………………………………………….254.4本章小结…………………………………………………………………….25第五章基于流程定制的流程模板演化………………………………………………….265.1推荐定制…………………………………………………………………….265.2流程模板演化……………………………………………………………….30山东大学硕士学位论文5.3流程模板演化的评估……………………………………………………….335.4本章小结…………………………………………………………………….37第六章总结与展望…………………………………………………………………………386.1总结…………………………………………………………………………………………………..386.2展望………………………………………………………………………….39致谢…………………………………………………………………………………………………………….40参考文献…………………………………………………………………………………41攻读学位期间发表的学术论文目录………………………………………………………45攻读硕士学位期间参与的项目………………………………………………………。46山东大学硕士学位论文TABLEoFCONTENTSAbstractinChinese……………………………………………………………………………………………IAbstractinEnglish………………………………………………………………………………………….IIIChapter1Introduction……………………………………………………………………………………..11.1ResearchBackground….……………………………………………….…………………………11.2ResearchContent……………………………………………………………………………………21.3Mainworksandcontributions.……………………………………………….…………………31.4Structureofthepaper….……………………………………………………….…………………4Chapter2Relatedwork………………………………………………………………………………….62.1SaaS………………………………………….……………………………………………….…………62.2Multi·tenancyprocesscustomization…………….……………………………….…………72.3Processversionmanagement……………………………………………………………………82.4Processtemplateevolution………………………………………………………………………9Chapter3Multi-tenancyprocesscustomization……………………………………………….103.1Processcustomizationframework………………………………………….……………….103.2Processmodel………………………………………………………………………………………123.3Processtemplateandcustomization……………………………………………….……….13Chapter4Processversionmanagementbasedonprocesscustomization………..174.1Processversionmanagementmodel………………………………………………………..174.1.1MBPG…….……….……………………………………………………….……………….174.1.2Processusingrecorder…………………………………………………………………214.2Processversionmanagementstrategy…………………………………….……………….224.3Theevaluationofversionmanagementstrategy……....……..…..….….……………254.4Summaryofchapter4……………………………………………………………………………25Chapter5Processtemplateevolutionbasedonprocesscustomization………………265.1Recommendedcustomization…………………………………………………………………265.2Theevolutionofprocesstemplate…………………………………………………………..30山东大学硕士学位论文5.3Theevaluationoftheevolutionofprocesstemplate………………………………….335.4Summaryofchapter5……………………………………………………………………………37chapter6Conclusionandfutureworks…………………………………………………………….386.1Conclusion…………………………………………………………………………………………..386.2Futureworks………………………………………………………………………………………..39Acknowledgement……………………………………………………………………………………………40References…………………………………………………………………………………………………….…41Paperpublished………………………………………………………………………………………………45Researchprojects…………………………………………………………………………………………….46山东大学硕士学位论文摘要Software…asaservice(软件即服务)是云服务的一种,通过互联网向企业和提供云应用的服务。SaaS服务商将软件部署在自己的服务器上,通过租赁的方式给租户提供应用服务。租户用户通过web门户访问自己租赁的软件应用。这种模式降低了服务提供商的运营成本,也为中小型企业减少了购买、构建和维护基础设施和应用程序的费用。在SaaS服务提供商提供的应用服务中,工作流也是软件应用服务的一部分。在多租户环境下,对于同一工作流,租户的需求不同时,出现许多问题:对于同一个流程,不同租户有不同的要求,并且每个租户对同一个流程的需求往往不是一成不变的。解决这个问题的办法是给租户提供流程定制服务,租户根据自己的需求随时对租赁应用中的工作流进行定制,以满足自身的需求。在工作流定制过程中,ISV给每个流程提供了一个模板,每个租户对流程进行定制,得到多个不同的版本。每个租户的定制各不相同,并且每个租户使用自己的定制的流程版本。为了保证系统中不同租户流程的顺利运行,需要对不同租户定制产生的流程版本进行管理。在保证业务系统中租户的流程顺利运行的同时保留租户的定制历史版本,既方便了租户数据的随时恢复,又保留历史数据以反映租户需求。当租户的定制信息足够多时,ISV可以根据租户定制的信息来演化模板文件,使得模板文件的接受度更高。流程演化的目标是租户在使用流程时,对于流程模板的定制操作更少。演化通过租户定制数据反映出的租户需求对模板进行重构以使得模板更符合整体租户的需求。本文的主要工作如下:1.提出了一个流程定制架构,并提出了一个可定制的工作流数据模型。基于流程数据模型的定制过程来满足用户的个性化需求,实现业务与流程,流程与资源的松耦合。降低SaaS运行成本并且提高租户配置和使用SaaS应用中工作流的灵活性。2.基于流程定制架构,提出了一个对多租户流程版本的管理模型。使用一种山东大学硕士学位论文新型的流程版本管理方法,对所有租户由定制产生的流程模板进行管理,对所有租户的流程数据的当前版本和历史版本进行统一收录,并保证每一个租户流程的正常运行3.提出了一种流程模板的演化方法。根据租户的定制数据,对流程的模板进行演化操作,使得模板文件的接受度更高,用户对流程模板的定制操作更少。关键字:SaaS;工作流;定制;版本管理;演化山东大学硕士学位论文ABSTRACTSoftware…asaservice(SaaS),asakindofcloudservicemode,providesservicestocompaniesthroughtheInternet.SaaSprovidersdeploythesoftwareontheownserver,whilethetenantrenttheserviceaccordingtotheirownneed.TenantsCanaccesstheapplicationsthroughthewebportal.ThismodereducethecostofISVsandthefeesofsmallandmedium—sizedenterprisesinbuyingsoftware,buildingandmaintaininginfrastructureandapplications。TheapplicationwithworkflowtechnologyisalsoapartofSaaS.Inamulti—tenantenvironment,forthesameworkflow,tenant’Sdemandischangeable,whichleadstomanyproblems:forthesameprocess,differenttenantshavedifferentrequirements,andeachtenantdemandforthesameprocessisoftennotimmutable.Ifeverytimefortenant’Srequirementchangebythedevelopersisneededtosolve,thecostistoohigh.Themethodtosolvetheproblemiscustomization.Thiscannotonlyimprovetheflexibilityoftheapplication,andreducethecostofworkflowapplication.Intheprocedureofworkflowcustomization,ISVsprovidesatemplateforeachprocess.Eachtenantgetsanumberofdifferentversionsthroughprocesscustomization.Theseversionsarenotidentical,andeachtenantcanonlyaccesstheirownversionsoftheprocess.It’Snecessarytomanagethecustomizedversionsbyeachtenanttoensurethebusinesssystemsrunningwell.It’Salsonecessarytopreservethehistoricalcustomizedprocesstoreflectthedemandoftenants.Whenthecustomizedinformationoftenantsisenough,ISVsCanevolvethetemplateprocessfileaccordingtothecustomizedinformation,whichCanmaketheacceptanceofthetemplatefilehigher.Theaimoftheevolutionisreducethenumberofcustomoperationwhentenantsuseprocesses.TheevolutionmakestheprocesstemplatetobemorefamiliartotherequirementoftenantsasawholeInthispaper,themainworkisasfollows:1.ProposedaprocesscustomizationframeworkandacustomizableworkflowdataIII山东大学硕士学位论文model.Thecustomizationprocessbasedontheprocessdatamodeltomeetthepersonalizedneedsofusers,realizetheloosecouplingofbusinessandprocess,theloosecouplingofprocessesandresources.ThisreducestheCostofSaaSapplicationsandimprovestheflexibilityofconfigurationanduseofworkflowinSaaSapplications.2.Proposedaprocessformulti-tenantversionmanagementmodelbasedontheprocesscustomizationarchitecture.Themodelusesanewprocessversionmanagementmethodtomanagethecustomizedprocessversions.ItCanalsocollecttheinformationofhistoricalcustomizedprocessandnewcustomizedprocessversions.Thisguaranteestherunningofprocesses。3.Aevolutionmethodofprocesstemplateisproposed.Itevolvestheprocesstemplateaccordingtothetenant’Scustomdata,whichmakestheacceptanceofthetemplatefilehigherandthecustomizationoperationless.Keywords:SaaS;Workflow;Customization;Versionmanagement;Evolution;山东大学硕士学位论文第一章绪论作为信息时代商业模式上的创新,云计算正在给生产方式,生活方式以及商业模式上带来根本性改变。作为一种新的资源使用模式以及交付模式,越来越受到各界的重视[1】。软件即服务(SaaS)是云计算提供的服务中的一种,推动了软件行业的。1.1研究背景SaaS软件模式是租户根据自己需求对软件提供商提供的软件进行租赁,然后使用自己租赁的软件构建业务系统,并可以通过网络门户进行访问【l】。SaaS软件模式使得企业无需购买应用程序并为应用程序构建和维护基础设施,只需要租赁使用并支付租赁费用。软件供应商也省去了为客户上门服务的麻烦,只需要维护好在服务器端的应用。单实例多应用是SaaS的重要特点,SaaS软件提供商对于每个应用使用一个实例来给多个租户使用,这样可以有效地降低软件提供商的运营成本。多个租户在使用同一个应用实例的同时实现数据隔离,保证租户的自身数据安全。SaaS应用中也包括了工作流的使用。ISV对SaaS应用的开发也包括了SaaS应用中的工作流。在多租户环境下,对于同一工作流,不同租户有不同的要求,并且每个租户对同一个流程的需求往往不是一成不变的。对于每个租户的每次需求变更都需要由开发商来解决的话,成本太高。这个问题的解决办法与SaaS中的软件应用的解决办法一样,提供定制操作来满足租户的需求。对每一个流程,平台给所有租户提供了一个流程模板【5J,流程模板既可以直接在系统中使用,又可以作为租户的定制依据。租户可以直接在系统中使用模板流程,也可以根据自身的需求,基于平台对每个流程提供的模板对流程进行定制,得到符合自己需求的流程。在租户自己建立的业务系统中触发工作流实例创建时,使用的就是这些流程。在多租户环境下,每个租户的定制各不相同,除了公共的模板流程之外,每个租户只可以访问自己的定制的流程版本,不可以访问其他租户的流程数据,这就需要在租户定制以及运行架构中实现租户间的数据隔离。山东大学硕士学位论文一定时期内租户的定制数据是有价值的,由于租户的定制都是完全凭自己的理解,不可能每次定制都达到满意的效果。这就需要保留一定时期内的历史版本,使得租户可以随时将流程恢复到一定时期内的任何一个版本,于是需要解决多租户环境下的流程版本管理问题。与非多租户环境下的流程版本管理有所不同,每个租户都有一个最新版本,需要将不同租户的流程版本分开管理。由于每个租户的定制可以反应租户的需求,租户整体的定制情况可以反映租户整体上的需求。如果整体上租户的定制操作更少,系统的运行会更加流畅,系统运行成本会更小,所以,版本管理的另一个重要问题是统计所有租户的定制信息。需要将租户的定制信息以直观的方式展示,以合理的方式进行统计,得到所有租户的整体定制信息。当租户整体定制信息的量足够大时,便可以作为流程模板演化的依据。流程模板演化可以使得流程模板在整体上更符合租户的需求,让租户的整体上操作更少,继而减少运行成本等。为了在运行上达到更好的效果,流程模板演化需要考虑租户定制,租户重要性等多个因素。当系统运行一段时间后,可以根据租户定制数据进行流程模板演化。现阶段的工作流定制架构,有一些能支持多租户环境的流程定制架构,但没有提出针对多租户流程定制的流程版本管理策略【24】。现有的流程版本管理策略‘351143】可以对流程版本的变化进行管理,但是都没有考虑多租户环境,也就没有考虑多个租户同时进行版本变化的情况,也没有根据流程数据对模板进行演化的操作。本文提出一个支持多租户的流程定制架构,并在此基础上提出一种多租户环境下的版本管理方法,以及根据流程定制产生的版本进行的流程模板演化策略。解决了多租户环境下流程定制的实现,流程定制版本管理,基于流程定制数据对流程模板进行演化等问题。1.2研究内容本文的主要研究内容分为两个部分:基于流程定制的流程版本管理和基于定制数据的流程版本演化。本文的两个研究点都基于多租户环境下的流程定制,所以本文首先提出了一种支持多租户特性的流程定制架构,该架构可以在多租户环境下运行。给每个租山东大学硕士学位论文户提供一个流程模板,支持每个租户根据自身的需求依据模板进行流程定制。在整个定制过程中,由于租户间的数据需要保密,所以需要实现租户间的数据隔离。根据系统的要求,本文提出了一种流程数据模型,在流程定制架构中使用。流程数据模型不仅支持定制,还与后文的流程版本管理和流程版本演化相关联。在本文提出的流程定制架构和流程数据模型的基础上,本文提出了对流程定制版本管理的策略。在多租户环境下,流程版本管理需要考虑更多的因素。首先,需要考虑每个租户定制产生的流程数据版本管理,这也是多租户环境下流程版本管理的基础。其次,由于租户的每一次定制并不一定都是合理的,租户随时有可能将最新版本恢复到一定时期内的任何一个版本;而且,租户对流程的最新版本进行更新的时候,流程系统内有可能出现基于多个流程版本进行创建的实例,需要保留多个版本以避免可能出现的版本与实例的混乱。再次,需要统计所有租户的流程定制数据。包括定制流程架构,流程架构的使用时间等。在流程模板演化过程中会使用。流程定制版本管理这部分的工作主要是用流程向量图这种可以记录多个流程版本的方式描述租户的流程定制架构。这种图形化的描述可以直观地反应租户的流程架构变化,并且可以在记录租户最新版本的基础上保留一定时期内的历史版本以便随时可以将流程回复到任何一个版本,并解决了当最新版本流程出现更替时解决不同版本实例同时出现在系统中的混乱问题。为了统计所有租户的流程定制数据。这部分的工作是使用流程使用记录器来记录所有租户的所有版本的演化记录以及运行时间等。流程版本演化主要内容是对模板流程进行更新,使得模板流程更符合租户的要求,表现为租户整体的定制操作更少。流程的模板演化以租户的重要性,租户的定制信息以及流程版本的使用时间等其他因素为依据,建立流程定制的成本模型,分析不同流程版本,得到更新流程模板的依据以更新流程模板。1.3主要工作及贡献本文对多租户环境下的流程定制问题进行研究,工作的重点在于多租户环境下由流程定制引起的多个租户的流程版本管理问题,以及模板演化的问题。山东大学硕士学位论文本文的主要工作在于,1.建立了一个支持多租户特性的流程定制架构,并提出了一个支持定制操作的工作流数据模型。本文提出的基于流程数据模型的定制过程来满足用户的个性化需求,实现业务与流程,流程与资源的松耦合。降低SaaS运行成本并且提高租户配置和使用SaaS应用中工作流的灵活性。流程定制架构和流程数据模型也是进行研究的基础。流程数据模型也与流程数据管理以及版本演化中所使用的模型相关联。2.基于流程定制架构和流程数据模型,提出了一个对多租户流程版本的管理模型。本文分析了多租户环境下流程版本管理问题与非多租户环境下同类问题的不同,使用一种新型的流程版本管理方法,对所有租户由定制产生的流程模板进行管理,对所有租户的流程数据的当前版本和历史版本进行统一收录,在保证每一个租户流程的正常运行的基础上管理每一个租户的历史版本,解决了版本切换时的流程运行问题,并完成对租户的流程运行情况的记录和管理。3.提出了一种流程模板的演化方法。为了使得流程模板更符合租户的要求,本文根据租户的定制数据,对流程的模板进行演化操作,以达到模板文件的接受度更高,用户对流程模板的定制操作更少的目标。本文建立租户定制成本模型,分析怎样对流程模板进行演化才可以使得流程模板在整体上更接近租户的定制数据。并根据对定制数据的分析来对流程模板进行演化。1.4论文的组织结构文章分为六个部分,每部分的主要内容如下:第一章是绪论部分,主要介绍在SaaS应用中应用工作流的过程中出现的问题,根据这些问题提出了本文研究的内容以及主要的工作点。同时提出了本文的主要组织结构。第二章是相关研究,主要介绍当前多租户环境下流程定制领域以及流程版本管理和流程模板演化的研究现状。分析当前的研究成果为什么无法满足本文工作的需求。提出本文研究内容的必要性,间的关系。并提出当前研究成果与本文的研究工作之4山东大学硕士学位论文第三章是多租户环境下的流程定制,主要介绍了本文提出的一种多租户环境下的流程定制架构,该架构能支持多租户环境下的流程定制操作,实现流程隔离的同时满足所有租户对流程的定制操作。而且提出了一种能在该流程定制架构中使用的流程数据模型,该数据模型支持流程租户的定制操作,并与后文中多租户环境下的流程版本管理和流程模板演化相关联。第四章是基于流程定制的流程版本管理,主要介绍了一种面向多租户环境下流程定制的流程版本管理方法。本章分析了多租户环境下流程定制数据的特点,以及在此环境下需要解决的问题,建立了针对多租户环境下流程定制产生的流程数据版本的版本管理策略,并为后文流程模板演化提供了操作的依据。第五章是基于流程定制的流程模板演化,主要介绍了基于流程定制数据的流程模板演化策略。本章提出了根据流程版本管理的结果对流程模板进行演化的方法,实现流程模板的演化,使得模板可以更好地适应租户的需求。第六章是本文工作的总结和对未来工作的展望。山东大学硕士学位论文第二章相关研究本章主要对当前流程定制,版本管理等领域内已有的工作成果进行分析,分析这些已有的成果为什么无法在本文提出的环境内使用。并基于这些工作成果,得出本文的工作内容2.1SaaS随着软件技术的快速发展,应用软件越做越大,功能越做越强,但是软件的使用成本也越来越高,包括购买和维护等。软件使用成本的快速增加也加重了企业的负担。SoftwareasaSeⅣice(软件即服务)【1J的出现在一定程度上解决了这个问题。这种软件模式以租赁为基本模式,依托网络将软件以服务的形式发布。租赁这种形式避免了用户一次性购买软件带来的浪费,租户可以根据自身的需求随时租赁j根据租赁时间付租金。软件部署于服务器端,租户在有网络的地方都可以通过网络门户访问自己租赁的应用,这也方便了租户的使用。国内外的SaaS软件商已经有许多成功的案例。Salesforce[91针对CRM应用,开发了在线销售的CRM应用软件,并成功地从在线CRM软件提供商,转型成SaaS软件提供商。Salesforce在SaaS软件领域取得了巨大的成功。Google公司是SaaS行业的探索者。Googletl】【101通过自己的cMome浏览器推出了一系列的在线办公产品,这是一个对传统软件模式的挑战。Google有巨大的技术力量,广泛的用户认可,雄厚的资本支持,必然会推动SaaS的快速前进。SAP[1。7】等传统软件商也都开始进军SaaS领域。在国内的软件商中,八百客【16】是中国首家提供大型企业级CRM的SaaS服务商。他们的产品包括全球首个中文在线企业管理软件平台800APP,全球首个中文应用软件协同开发平台800APPCOMPOSITE,国内还有很多软件商都将目光投向了SaaS领域,加入了对SaaS市场的争夺。SaaS软件模式中,定制是非常重要的部分。定制是租户对软件实例进行的二次开发,可以使得软件在单实例的情况下满足多个租户的个性化需求。定制操作包括对数据层,’界面层,业务层的定制。工作流的应用是SaaS应用中的一部分,本文主要研究多租户环境下工作流的应用,所以主要关注的是流程的定制。山东大学硕士学位论文2.2多租户流程定制本文主要研究流程的个性化定制。在SaaS中应用工作流,最重要的就是给租户提供定制接口,租户可以根据自己的需求对应用中的流程进行二次开发。租户的定制内容包括改变任务走向,任务的选择与设定等【20|。文献[211r扣提出了一个多重模板来支持动态创建工作流实例的模型,来支持动态的执行过程中指定活动的任务实例创建。模型中分为全局模板和本地模板,全局模板控制着整体流程的运行,本地模板控制一个具体任务的分配。文献[22】中为了提高流程的使用灵活性,使用选择和调整两种方式相结合的方法。选择模式分为前期模型和后期模型,在前期模型中,在执行前就完成了流程的选择,而在后期模型中,需要在流程的执行过程中对流程进行动态选择。调整模式则是根据已有的选择来生成新的工作流。选择和调整两种模式的有效结合可以增强工作流的使用灵活性。文献[23]中提出了一种对工作流中任务的调整方法。主要分为前期调整和后期调整,前期调整是根据对流程的感知,事先将可能会用到的任务节点加入到工作流中,后期调整是对工作流的当前执行情况进行分析,得出后面可能会执行的任务,这种方式可以避免工作流中执行无用的任务。文献【24]使用可变点的方式实现业务流程的定制。作为流程中可定制的部分,每个可变点中包含多个可选项,可变点的指定基于租户的自身需求。各可变点的之间存在一定的依赖关系。文献[25】中提出了一个面向组件的工作流定制系统。该系统由用户来选择参数,并根据这些参数以及相应的规则自动生成工作流组件服务,并由这些服务形成定制工作流。文献【26】中提出了一个面向SaaS的多用户工作流引擎模型以及设计实现方法。该模型支持多租户特性,多个租户共享一个工作流引擎,工作流引擎只需部署一次,达到资源的最大利用。该模型屏蔽了底层多租户的特征,使得开发商开发工作流时不需要考虑多租户的特征,降低了开发难度。Azeez在文献[33]中介绍WS02carbon平台的开源中间件框架,使用OSGi的组件化模型来构建服务器,以各种功能的组件来构建产品(包括ESB,工作流服务器等)。使用Axis2作为底层引擎,在消息传递时使用AxisConfiguration来区分租户。租户内部使用超级管理员来管理用户。文献【34】介绍了SaaS架构中的配置山东大学硕士学位论文设计和实现。提出的支持多租户的工作流引擎,在传统的工作流引擎的上提出了多租户感知层,自动根据当前租户获得租户上下文,并在流程引擎处理租户流程信息时,进行租户数据映像,实现租户数据隔离。2.3流程版本管理文献【38]提出了一个当流程模式演化时需要解决的问题。如果流程模式出现了演化,当前的流程实例需要根据演化后的流程模式进行迁移。本文认为,解决这个问题的更好方法是记录一定时期内的流程数据版本。这样,当流程出现演化的时候,可以根据流程历史版本找到流程实例对应的历史数据,根据租户用户的要求来决定是否对流程实例进行模式迁移。文献[40】中提出了一种面向xml数据的版本管理方法versiontree,这种方法可以反应多个版本的变化趋势,但是这种面向xml数据的版本管理方法在应用到流程数据上的时候,不够直观,无法用图形化的方式直接反应流程的架构的变化。也没有多租户的特性支持,无法应用于多租户的环境。文献[41】中提出了一种关于对流程模式版本变化的记录方法versionblock,可以直观地反映不同流程中节点的变化,但灵活性不够强,不能支持多个版本的同时运行,也就无法适应租户多变的需求。该方法没有对多租户特性的支持文献[35]为了解决业务流程描述文件的暂时性演化和永久性演化,提出了一种基于流程模式演化的版本管理策略,使用多级演化图表和版本保留图来表示历史版本以及流程模式版本间的结构性变化,并支持不同版本流程实例同时运行。该文献针对多种流程模式,提出的方法不仅能解决在一个有向图中记录多个版本的问题,还可以在同一时刻用图形化的方式保留多个历史版本。并且记录不同版本的变化趋势。这种业务流程版本管理策略能解决暂时性演化和永久性演化的问题,用图形化的方式直观记录流程模式的变化特点,处理模式迁移时流程实例的版本保留问题,完成不同演化方式带来的流程数据版本记录工作。但是这种版本管理问题没有涉及多租户的概念。如果有多个租户的流程数据版本需要管理,则每个租户都有一组数据需要管理,并且,全体租户的数据也是很重要的历史数据,这种版本管理方法无法直接用于多租户的环境。山东大学硕士学位论文2.4流程演化为了使得模板数据更符合租户的要求,租户的定制操作更少,需要对流程模板进行演化。文献[37】提出了一个面向xml数据模式的模式匹配方法。针对xml数据模型,进行节点匹配和语义匹配等操作,分析xml树的各种匹配方式,最终计算出两棵不同xml树的匹配元素。匹配可以分析两组数据模式的不同,但还需要演化的方法。文献【36】提出了一种面向流程历史数据的模板演化方法。该文献以SaaS环境下的定制为基础,根据定制操作来对模板数据进行演化。该文献对租户的历史定制数据进行研究分析,针对特定的演化客体,对模板进行演化。该演化以模板和定制数据的匹配度作为模板的重要参考。但是该文献提出的方法在本文中应用有一些需要解决的问题。一是演化参考的历史数据有一定的局限性,参考的范本不够强,二是演化没有专门针对流程数据。针对以上研究成果中的问题本文提出了一种多租户环境下的流程定制架构,一并提出了在该流程定制架构中使用的流程数据模型。根据流程定制,提出了面向多租户的流程定制数据版本管理。并根据流程版本管理的情况,提出了一种对流程模板的演化策略。9山东大学硕士学位论文第三章多租户环境下的流程定制为了实现多租户环境下的流程模式定制,保证数据隔离并实现流程与资源的松耦合,本章基于以前的研究成果【391提出一种多租户流程定制架构,在实现多租户数据隔离的情况下支持租户对流程的定制与执行。租户可以根据自身的需求对流程进行定制,以满足租户的个性化需求。本章还提出了一种支持多租户定制和运行的流程模型,这个模型是下面对流程进行讨论的基础。3.1流程定制架构展示层l租鼻言制lI用妄誊作任务表单界面操作层f二趸!≮。≥歹罕—二壶l流繁制卜-鬻I\l流帮署f器l流繁行巨—H表訾理器INl9器数据层』鬻爹f{锱爹I』深争JI%孑lJ肇享图3.1工作流定制架构展示层:是用户与系统进行交互的接口。包括租户定制界面和用户操作界面以及任务表单。租户定制界面是租户定制流程过程中与系统进行交互的接口,在租户构建系统时使用。租户管理员通过用户定制界面使用流程定制器来对可定制元素进行定制。山东大学硕士学位论文用户操作界面是指用户在系统中看到的页面。当用户在操作页面的某些操作触发工作流实例创建或执行时,指令传送给流程驱动接口。任务表单页面是一组表单,当流程运行到相应的任务时被调用。具体运行要根据租户的设置。操作层:包括租户信息加载器,流程定制器,流程部署器,流程执行器,表单管理器。租户信息加载器:负责感知当前用户的租户ID,并根据租户ID从租户用户DB中得到租户信息,并根据用户访问类型(流程定制还是流程驱动)将信息发送到流程定制器。流程定制器:负责进行流程的定制操作,只有每个租户的管理员才能访问。租户管理员通过用户定制界面来对流程定制器进行操作。流程定制器分为流程文件定制模块和任务表单定制模块。流程文件定制模块负责完成流程描述文件的定制操作。通过工作流引擎的部署模块从流程模板DB中取得模板流程,然后由流程文件定制模块进行定制操作,将模板流程定制为符合租户需求的流程。然后再通过工作流引擎的部署模块将定制流程保存到定制流程DB中。任务表单定制模块的作用是定制任务表单,租户管理员可以通过任务表单定制模块定制任务表单的信息,包括初始化规则,返回值等。流程部署器:功能是与流程文件定制器以及流程模板DB和定制流程DB进行交互,将模板流程从流程模板DB中取出传给流程文件定制器进行定制,将定制后的流程保存到定制流程DB中。流程执行器:功能是在流程驱动时从定制流程DB和流程模板DB中获得流程描述文件并根据流程描述文件来创建流程实例并将流程实例保存到流程实例DB中。表单管理器:负责管理任务表单。部署时负责任务表单数据进行存取;流程实例执行到任务节点时负责根据任务表单数据完成任务表单的初始化,形成任务表单页面。数据层:包括流程模板DB,定制流程DB,流程实例DB,租户用户DB,任务表单DB。山东大学硕士学位论文流程模板DB:一组数据库,用于存储定制前的流程数据。模板流程即ISV开发的流程。模板流程是没定制过的,没有租户标识。所有租户都可以读取模板流程。模板流程除了给租户在定制时提供模板外,也可以用来执行。流程驱动时,若该流程没有被定制,则驱动该流程的模板流程。定制流程DB:一组数据库,用于存储定制后的流程数据。流程定制之后,在流程名后面增加租户标识和该流程属于的业务系统的标识。租户在定制流程DB中读取数据时只能读取到标有自己标识的数据。租户用户DB:一组数据库,用于存储租户信息,当需要对当前租户信息进行加载时由租户信息加载器来调用。流程实例DB:一组数据库,用于存储流程实例。任务表单DB:负责存储定制前后的任务表单数据。3.2流程模型流程定制架构使用流程描述文件和流程驱动接口来描述流程。流程实例创建时由流程执行器根据工作流的流程描述文件与流程驱动接口来创建流程实例。流程描述文件表明流程的执行顺序,起止条件等。流程描述的数据模型可以表示为元组bp。Bp2<B,P,D,Task,JAVA>B节点是端点节点,B={start,end,。B节点是成对出现,前面的是start,后面的是end。Start控制流程实例的创建,end控制流程实例的终止。P节点控制流程的并发。P={Forks,Joins)。P的n个节点都有编号,称为P={p1..….P。),P是成对出现的,前端的是fork节点,后端的是join节点。£(Fork节点)和ji(join节点)负责处理流程需要并发执行的情况。Fork节点可以使流程在一条主干上出现并行的分支,ioin节点可以使流程的并行分支聚合成一条主干。Decision节点为多选一节点组合,简称为D。D--{d1..….d。}。负责处理在多个流转路径中选择其中一条来通过的情况。当流程实例到达decision活动时,会根据最先匹配成功的一个条件自动地通过相应的流出转移。Task节点仍为任务节点组合,简称为T,系统给定n个任务节点,则12山东大学硕士学位论文T={t1..….t。)。T节点定义了需要人机交互的活动。当流程实例运行到某个任务时,需要由相关角色对任务进行处理来推动流程实例的运行。Java节点。系统给定n个java节点,Java=Oaval……java札)图3.2流程数据文件3.3流程数据模板与定制ISV在开发的每个应用中都提供了许多模板流程。这些流程可以作为业务流程在业务系统中使用,如果租户认为模板流程能够满足业务系统的要求,则可以不进行定制操作,直接使用模板流程。如果租户认为模板流程无法满足自己构建的业务系统的个性化需求,那么租户可以进行流程定制,在业务系统中使用定制后的流程。租户在构建系统时,对系统中某个应用的流程进行定制,得到自己需要的流程。流程定制根据模板流程来进行,定制的模板由工作流引擎从模板流程DB中取出。对于某个流程,根据自身需求,设置流程中任务的属性来确定任务的关联页面和执行角色等。然后将定制后的流程文件增加租户标识并部署于定制流程DB中。租户的定制操作包括对流程描述文件中节点的增删,节点的属性设置,节点山东大学硕士学位论文的流出转移方向的定制。定制约束规定了可定制的操作范围。包括节点可添加范围,节点依赖规则,节点是否可删除,以及节点初始化规则和返回值设定等。流程描述文件中每个可以定制的位置被称为定制点。在本文中,所有的可定制节点都是给定的,租户不能创建节点。同时,我们规定,在一个租户定制的流程文件中,节点不会重复出现,即平台针对流程描述文件提供的每个节点在每个租户的一个定制流程中只会出现一次。在可定制节点中,控制流程转向的节点(decision节点,fork-join节点)租户在定制过程中可以通过对属性进行赋值来直接使用,但是不能对属性进行增删与更改。Start节点、end节点、Task节点和iava节点租户可以进行定制,并且可以修改参数。所有的定制操作都必须在定制约束范围内进行。租户定制后的流程信息是带有租户标识的,只有租户自己可以访问,其他租户无法访问。对于同一个流程,租户可以进行多次定制得到多个版本,创建流程实例时根据自身的需求来决定使用哪一个版本的流程。图3.3模板流程AppidTypeNameContentlApp001%rkflowenroll<CLOB>表3.1模板流程上图是一组模板流程数据实例,包括模板流程描述文件和模板流程驱动接口。模板流程文件的标记为Appid(本例为App001)。如果某个租户为自己建立的某个系统对本应用进行定制,得到的结果需要增加租户标识Tenancyid和系统标识Systemid(本例为tenancyl和system01)。同时,流程数据由模板流程名enroll改为定制流程名enrollTenancylSystem01。由名字的改变可以推知,定制后的流程数据只可以在指定租户(tenancyl)中的指定系统(system01)中使用。14山东大学硕士学位论文图3.4定制流程SystemidSystem01TenancyidTenancylTypeworkflowNameenrollTenancContentl<CLOB>yl——System01表3.2定制流程对于流程enroll,模板流程使用流程描述文件描述了流程的执行顺序以及任务节点与任务表单信息的关联;使用流程驱动接口规定了触发工作流实例创建的页面(pagel),页面上触发工作流实例创建的操作(saveInfo),以及表单描述信息。租户1对自己的01系统中的enroll流程进行定制,在流程描述文件上更改的内容包括触发工作流的页面(由pagel页面改为page2),以及增加了两个decision节点以及一个java节点,使用decision节点来进行路径选择,使用iava节点来调用服务。每个租户对同一个流程进行定制,并且每个租户根据需求的变化定制多个版本,而租户的流程定制数据可以反映租户一段时间内对该租户的需求。同时,由于租户需求的不确定性,租户随时有可能恢复任何一个历史版本。这就需要对租户的流程数据进行版本管理。流程定制数据版本管理的目的有二:其一,保存一段时间以内的历史版本,以便租户可以快速回复到短时期内任何一个数据版本,方便用户使用;其二,对单个租户以及全体租户的定制数据进行分析,从数据层面分析得到单个租户以及全体租户的需求,继而根据租户的需求改造流程模板,使得租户的定制操作尽量少,使得应用更符合租户的要求。山东大学硕士学位论文定制之后,流程文件在存储时增加了租户标识。对比定制前后可知定制前的流程文件是没有租户的,所有用户都可以访问,而定制后的流程是有租户id和业务系统id的,只有相应租户下的相应业务系统中的用户才可以访问。AppidTypeNameContentApp001%rkflowEnroll<CLOB>SystemidTenancyidTypeNameTenancyobjectidContentSystem01TenancylworkflowEnrollEnroll_Tenancyl——System01<CLOB>System02Tenancy2workflowEnrollEnroll——Tenancy2——System02<CLOB>表3.3定制数据的租户标识流程的版本管理基于流程的定制。在研究流程版本管理时,由于java节点由第三方开发,不属于系统平台,运行过程中随时有可能出现变化。为了简化讨论,本文在下面的定制流程管理过程中默认iava节点会在一定时期内稳定。关于流程定制的定制约束,本文没有给出一个完整的描述,但本文在余下的讨论中假定所有的定制操作都在定制约束范围内进行,并且定制约束是有效的,可以保证租户的流程定制操作不会引发流程的正确性问题。Templateproeess。customizedprocesslpL—o一customJz碰厂—、process27◎蕊。图3.5模板流程和定制流程16山东大学硕士学位论文第四章基于流程定制的流程版本管理对于租户的定制数据,有一些问题需要解决。对于每个租户来说,在流程版本更替时,流程实例的创建有可能出现混乱,并且一定时期内的定制数据需要保留以便随时恢复;而对于ISV来说,全体租户定制的流程数据可以反映租户的需求,租户的重要性及租户定制数据是流程模板进行演化的重要参考依据。4.1流程版本管理模型针对流程定制产生的定制数据,需要进行数据版本的管理。已有的研究成果主要集中于图形化的展示以及流程变化的记录,没有考虑多租户的特性,也没有考虑流程使用情况等。为了解决这些问题,本章使用了一个双重的流程版本管理策略来管理定制流程,并解决多租户特性带来的问题。使用一种扩展的流程向量图(MBPG)来图形化地展示定制流程,使用一种记录方式(流程使用记录器)来记录定制流程的信息,记录内容包括租户重要性,流程使用时间等。4.1.1MBPG本文根据多租户环境下版本管理与普通环境下版本管理的不同,针对流程描述文件的定制建立版本管理模型传统流程描述文件中,每个描述文件只能记录一个流程的信息,无法记录一个租户的历史定制信息,更无法记录所有租户的定制信息。这就无法用最直观的方式展示一个租户的需求情况以及所有租户的整体需求情况。所以在流程版本管理过程中,为了以图形方式描述业务流程的架构,我们扩展传统的有向图来表示不同版本的程序架构。用有向图来表示多个版本,特别是版本族的保存。这个扩展的有向图被命名为多流程向量图(MBPG)。一个MBPG可以保存多个流程描述文件的描述信息,并且用图形化的方式最直观地展示一组流程的版本变化趋势。MBPG的元素包括:NODEs:流程节点。NODE对应于流程描述文件中的所有节点(starttaskf.ork山东大学硕士学位论文joinend)ARCs:连线。ARC对应流程描述文件中的连线。Versions:版本号。每一个NODE和ARC都有版本号(可以不止一个),版本号标记于ARC上,ARC以及ARC两端的NODE每一个流程版本对应一个版本号。如果一个流程元素(NODE或ARC)对应多个版本号,则这个流程元素同时属于多个版本。特殊地,Start节点和end节点是两个特殊的流程元素,属于所有的版本。在每个租户的MBPG中,使用一维的版本号,在MBPGcollection中,使用二维的版本号。对于应用中的每一个流程,本文使用MBPG来记录每个租户的历史定制数据以及所有租户的最新定制数据。每个租户有一个属于自己的MBPG。当该租户租赁应用中的流程时,属于该用户的MBPG初始化。当租户进行一次定制后,对应的MBPG增加一个版本号,并进行相关更新。由MBPG可以清楚的看到每一个租户的流程版本演化记录,也反映了该租户在这个流程方面的需求变化。当租户进行一次定制的时候,该租户的MBPG进行一次更新。对于一个流程来说,定制前只有模板流程(version0)。当有租户租赁它时,该租户对应的MBPG创建。如果该租户使用的是模板流程,则该租户的初始化状态为version0。如果该租户在租赁的最开始就进行了定制,则除了version0之外,MBPG中还增加了version1。无论租户是在租赁该应用的初始状态还是在使用了一段时间之后进行定制,MBPG中都会增加version1。只要version1出现,就说明模板流程不符合租户的需求,也就是说version0与version1不会完全相同。此时,将version0中与version1相同的部分增加一个版本号version1,version0中的其他部分不变。将version0中与version1不相同的部分进行分叉,并将新的分叉中的流程元素增加版本号version1。MBPG中增加version2的过程与增加version1的过程类似。为了方便管理,在一个MBPG中相同的任务节点只允许出现一次,如t1不允许在一个MBPG中多次出现,所有使用t1的流程版本使用的都是同一个t1。上表中的三个流程可以用下面的MBPG来表示山东大学硕士学位论文图4.1MBPG一开始MBPG中只有version0。当增加了versionl之后,除了start和end两个节点之外,t1同属于两个版本。T1和e节点的连线也同属于两个版本,所以该连线增加了版本号version1。Version1中相比version0增加了节点d和t2。故从S节点进行了分叉得到d节点,而d节点后面与tl和t2相连。Version0中有t1,没有t2,故d节点之后除了与t1想连之外,增加了t2节点。新增的d和t2以及相关连线增加版本号version1。MBPG中增加version2的过程与增加version1的过程类似。如果要在MBPG中寻找一个特定的版本,需要根据版本号到MBPG中查找。不论哪个版本,必然包含start和end两个节点。从start节点开始往下找,与start节点相连的哪个ARC是属于这个版本。然后顺着ARC往下找,与ARC相连的另一个NODE必然也属于这个版本。然后再找与这个NODE相连的ARC,哪个属于这个版本。以此类推,最终找到END节点。在上图中,如果要从MBPG中找到versionl对应的流程描述文件,首先,找到start节点。Start节点相连的ARC有三条,找到version1对应的那条。标有version1的ARC相连的节点是decision节点。Decision节点再往下找,相连的ARC有两条,这两条ARC的版本号都是version1,所以这两条ARC都属于version1对应的流程描述文件。然后再往下找,其中一条连接的节点是taskl节点,再往下找找到的两条ARC其中一条是version0,1,这条ARC属于version1对应的流程描述19山东大学硕士学位论文文件,再往下找节点找到的是end节点;另一条ARC用同样的方式,找到了task2节点,属于version1的ARC,以及end节点。于是,从MBPG中还原得到version1对应的流程描述文件(如下图)图4.2流程描述文件MBPG的一大好处是能解决好多个最新版本在系统中并存的问题。假设在某一时刻,系统中选择version1为最新版本,此时,业务系统创建了某些实例,则1来创建的。如果在这些实例还没有执行结束的时候,由于某种原因,租户需要选择version2为最新版本。此时,如果没有MBPG,为了1的所有实例都执行完毕后再将version2设置成最新版本,再进行流程实例创建等操作。但是MBPG的存在可以让version1和version2的流程描述文件同时出现在MBPG中,由于version1的流程实例能找到对应的版本,所以此时系统可以根据version2创建了某些流程实例。此时,1和version2两个版本创建的实例同时在系统中存在,并且都能根据MBPG的好处不仅在于可以用图形化的方式直观反映每一个租户的流程定制这种需求是对流程模板进行演化的依据。不过MBPG也有自己的缺点。虽然MBPG能以图形化的方式展示所有租户的定制版本的流程数据,却无法从更宏观的角度展示出流程定制数据的其他信息,比如当前租户正在使用的是哪个版本等。如果租户在定制多个版本之后使用了老的版本,在查找当前版本时,就会出现问题。而租户定制的多个版本的使用累计时间是无法统计的,但流程版本的累计使用时间是流程演化时的一个重要依据。为了解决这些问题,下面提出了一种和MBPG同时使用的流程数据管理方式,流这些实例是根据version避免混乱,很有可能就会选择等version根据versionMBPG找到对应的流程描述,系统不会出现混乱。变化,在租户想恢复历史定制版本数据时随时可以恢复,还可以使用MBPGcollection来反映所有租户的定制方向,也就是所有租户对这个流程的整体性需求。20山东大学硕士学位论文程使用记录器。4.1.2流程使用记录器流程使用记录器以页面的形式展示。页面上的每个点都代表了一个定制版本的数据,数据包括当前版本、总版本数以及每个版本的使用时间等。流程使用记录器的数据空间由多个页面组成,页面上的每个点对应一个流程数据版本。每个点保存的信息包括该流程数据版本的版本号,累计计时,是否最新版本等。每个租户有一个自己的页面作为流程使用记录器,流程使用记录器页面上的每一个点与MBPG中的每一个流程数据版本相对应。少弋流程使用记录器的数据页面图4.3流程使用记录器的数据版本号:和MBPG中的命名方式类似,租户自己页面上的每个点被命名为versionX。一次定制会在该租户的流程使用记录器页面上增加一个点。版本号是区分不同版本的唯一标识。最新版本:在每个页面上的多个点中,有一个点所对应的版本被指定为最新版本。最新版本可能是最后定制的,也可能是租户定制之后恢复历史版本得到的。当租户的系统需要创建流程实例时,使用的版本就是最新版本。也就是说,最新版本是当前系统运行所使用的版本。每时每刻一个流程都有且只有一个最新版本,即每个页面有且只有一个版本的“是否最新版本”为1,其余的“是否最新版本”均为0。累计计时:当一个版本被指定为最新版本时,可以认为此时这个版本的流程数据正在系统中使用,所有该版本的累计计时器开始累计计时,累计计时在系统山东大学硕士学位论文停止运行或者另一个版本被指定为最新版本是终止。此时,另一个版本的累计计时器开始计时。对每个租户来说,每时每刻一个流程都有且只有一个最新版本,也只有这个版本的累计计时器在计时。4.2流程版本管理策略本文采用的流程版本管理策略是MBPG和流程使用记录器共同作用的策略。新增一个租户时,系统给该租户分配一个的MBPG和流程使用记录器中一个的数据页面。MBPG的初始化状态只有模板流程的图形化描述,数据页面的初始化状态只有模板流程对应的数据点。当租户进行一次定制,产生一个定制数据版本的时候,该租户的MBPG和流流程使用记录器的数据页面上对应的点的计时器开始计时,直到该租户选择另一版本号:是否最新版本:/T‘^ojVil^Versionx—~累计计时:流程使用记录器皿PG图4.4流程版本管理为了了解所有租户的整体需求,系统需要记录所有租户的流程定制信息,本collection。collection来记录所有的流程,包括模板流程和租户的定制流程。本文使用collection来记录所有租户的定制流程。MBPGcollection在记录过程中,需要将不同租户的信息区分开。所以不同于collection中的版本号是二维的,格式为(租户号;版为了区分不同租户的定制情况,不同租户的模板文件视为不同的文件。MBPG程使用记录器的数据页面都进行更新。当这个版本的流程数据被作为最新版本时,个版本作为最新版本时该版本的计时停止。章使用MBPG和流程使用记录器来管理数据,在各自的管理方法上使用一个collection来统计租户定制信息。在MBPG中,除了每个租户的MBPG流程演化记录之外,还使用一个MBPG来记录所有租户的定制信息,称为MBPGMBPG一个MBPG单个租户的MBPG,MBPG本号)。山东大学硕士学位论文collection一开始为空。当有租户对应用进行租赁时,在该租户对应的MBPG进行创建的同时,该租户对应的流程模板文件加入到MBPGcollection中。如果该租户进行定制,对应的版本除了在租户自己的MBPG中进行更新之外,还在MBPGcollection中进行更新。再有其他租户进行租赁时,新的租户的流程模板文件加入到MBPGcollection中。如此操作,可保证每个租户的所有版本均可以正确的方式出现在MBPGcollection中,并且相互之间不发生冲突。图4.5MBPGcollectionMBPGcollection一开始为空。当租户1对该应用进行租赁时,(1;0)作为租户1的流程模板添加在MBPGcollection中。随着租户1的定制,产生了租户1的版本1和版本2,标识为version(1;1)和version(1;2)。这两个版本以类似在MBPG中更新数据的方式添加到MBPGcollection中,MBPGcollection里增加了版本号为version(1;1)和version(1;2)的流程定制数据信息。当租户2对应用进行租赁时,version(2;0)最先添加到MBPGcollection中。租户2进行了一次定制,租户2的MBPG中增加了version1;MBPGcollection中增加了version(2:1):由于在一个MBPG中相同的任务节点只允许出现一次,所以所有租户的流程模板的ARC必然完全重合。如果来自不同租户的定制流程数据版本完全相同,则这两个流程的ARC必然完全重合。任务节点的唯一性保证了相同版本在MBPG中有完全相同的描述。如果想在MBPGcollection中查找某个租户的某个版本的流程描述文件,与在山东大学硕士学位论文单个租户MBPG中进行查找的方式类似,唯一的不同是版本号按照version(租户号;版本号)的形式。图4.6流程使用记录器collection与MBPGcollection一样,在流程使用记录器中,有一个页面作为collection来统计所有租户在流程使用记录器的信息。所有租户页面上的每一个点都会映射到collection上面。其中,累计计时和版本信息不做任何改变直接映射到collection上面,为了将租户间的信息区分开,collection中的版本号与MBPG中类似,格式同样为(租户号;版本号)。如果多个租户定制产生了相同的定制流程,则代表这几个相同定制流程的点会从不同的租户页面上向collection上映射时,会在collection的同一个点上重合,但仍然是彼此不同的点,各种保留最新版本和累计运行时间等数据。特殊地,模板流程作为原始流程出现在每个页面的中心,由一道轴线穿过。但在下文流程模板演化时,这几个点会被视为相同的点,累计运行时间会叠加。由MBPG和流程使用记录器组成的流程版本管理模型,由MBPG来直观地反应一个租户以及所有租户的定制流程图形化表示,并反映租户定制流程的变化趋势,流程使用记录器则可以支持MBPG在租户建立的系统中的实时应用,并统计24山东大学硕士学位论文与对比租户的定制流程的使用信息。管理和分析租户的定制信息是为了分析租户的需求;整体上看租户的定制数据与模板越接近,说明模板流程越合理,能更好地满足租户的需求。当租户的定制信息量足够大时,便可以作为流程模板演化的依据。4.3版本管理策略的评估本章提出的版本管理策略,与以前的研究工作进行对比,可以得到如下的结论:VersionTimeVPG和多级演化图[41]有可以无无MBPG和流程使用记录器有可以有有Stamp[47】多版本版本切换多租户特性定制数据使用情况记录资源利用率局Stamp[46】有难进行无无有可以无无同同同表4.1版本管理方法对比由对比可以看出,本章提出的MBPG和流程使用记录器配合使用的方法应用于多租户的环境比以前的研究成果更为合适。4.4本章小结基于上一章的流程数据模型及流程定制,为了解决租户历史数据恢复,最新版本迁移等问题,本章使用一种保存多个流程数据文件的流程向量图以及流程使用记录器来对多租户环境下的流程定制数据版本进行管理。这种流程数据版本管理的方式解决了租户历史版本数据保留,版本切换时的流程实例混乱等问题,还收集租户定制流程的使用信息,为ISV提供了流程定制数据的使用情况,这是下一章进行流程模板演化的依据。山东大学硕士学位论文第五章基于流程定制的流程模板演化租户的定制在一定程度上反应了租户的需求。我们可以认为租户的需求之间存在某种共性,即认为大多数租户的需求在某些程度上是相似的。为了更好地满足租户的需求,我们根据已有的租户数据为新建的租户进行定制的推荐。当租户定制数据达到一定量的时候,我们根据流程定制数据对流程模板进行演化,以提高租户对系统的满意度。推荐定制及流程模板演化所参考的因素是1.已有的每个租户对系统平台的重要性2。已有的租户定制的流程结构。3.已有的每个租户定制的流程的累计使用时间。5.1推荐定制节点匹配的目的是使给新增的租户一个指向性作用。流程模板演化的依据就是租户的定制数据,只有租户的定制数据才能正确反映租户的需求。本文假设租户的需求在一段时间内相对稳定,一定时期内的历史数据对租户未来一段时间内的需求有参考价值,对租户过去一段时间内的版本进行分析,将租户的定制数据中的流程结构根据参考因素选择合适的推荐给新增租户。由于租户内用户数量不同等种种原因,每个租户对系统平台的重要性并不一样,所以本文为平衡租户对系统平台重要性的影响,设置了一个k值乘数(0<=k<=1)。重要性高的租户k值高,重要性低的租户k值低。如果在演化中完全忽略对每个租户k的赋值本章节暂不讨论,仅仅将每个租户的k值作为一个平衡因子在系统中使用。每个租户定制的每一个版本,在运行时都由累计计时器来记录使用时间。本文认为,如果更多的租户选择了同一个结构,并且这个结构相比于其他结构出现了更长的累计时间,则这个结构应该被推荐给租户。在上一章节的流程定制版本管理过程中,提出了一个不同用户定制得到相同26山东大学硕士学位论文版本的问题。在本节中,不同用户定制得到相同版本,运行的时间累加。特殊地,对于当前的模板流程,由于不同租户使用相同的模板流程但是分别计时,不同租户使用模板流程的累计时间也进行累加。首先,将图形化的流程描述进行形式化。形式化将会去掉ARC连线,只剩下NODE节点。如果不同租户的两个版本的定制流程数据是相同的,则这两个版本的流程在MBPG中的元素必然相同,映射到流程使用记录器上的点重合,这两个版本的形式化描述也必然等价。当前流程模板的使用情况也是流程模板演化的参考,所以各个租户流程模板的使用情况也是形式化的一部分。这样,由MBPGcollection可以得到所有版本的形式化描述。由流程使用记录器collection可以得到所有版本的累计使用计时以及k值。如下图:MBPGcollection流程使用记录器collection流程编号流程描述定制版本号累计使用计时k1StleVersion1.0T1.OKlVersion2.0T2.OK22Sdl(t1)(rE)eVersion1.1T1.1K1Version2.2T2.2K23St2eVersion2.1T2.1K24Sf1(t1)(t3)jleVersion1.2T1.2K1表5.1流程演化的参考因素对流程数据进行建模,以树形化的结构表示流程版本以及版本中的所有分支图5.1流程的树形表示27山东大学硕士学位论文由图形描述可知,在树形结构中,根节点为端点节点b(start或end),叶节点为任务节点或Java节点,中间的是分支控制节点,包括d节点与P节点。在本章的所有树型结构都与上图相似。表现为树的最大高度为3。其中,最高层是根节点b,也就是开始和终止节点。第二层(如果存在)是流程控制节点Decision节点或P节点,底层节点(叶节点)是iava节点或任务节点。对该树进行前序遍历可得到流程描述。本文的推荐定制模型主要对针对流程模式。推荐的对象是流程中的节点。在推荐过程中,不考虑节点内部的结构。由于定制产生了多个版本,每个版本都有租户号,但是所有的版本中,可选节点都是系统规定的,只要是两个节点名字相同,就认为是相同。例如,租户l定制的versionl中的t】,和租户2定制的version3中的tl,都源自默认模板中的tl,所以这两个节点在推荐时,认为是相同的。从所有的定制数据中查找相似点。做法是抽取两棵树中的相似点来计算这两棵树的相似度。对于每棵树,可以从根节点找到通往每一个叶节点的路线,每棵树可以认为是一个从根节点到各个叶节点的路线的集合。如果说,从根节点到叶节点,每个节点都有相同的名字,则认为这两条路线是相同的。上图的树形结构可以表示为6条路线:卜_t1;b__d1(1卜_t2:b-_dl(2卜_t3;b-_p1(1卜也;b__p1(1Haval;b-_pl(2H5。由于在第三章提出的流程数据模型中,流程的可用节点都是确定的,无法增加,可定制部分是流程的逻辑顺序和流程的属性。所以本文使用的演化模型中,节点都是确定的,不会出现重复,只需要节点ID就可以准确确定节点。在流程数据模型中,所有的task节点和iava节点都是有顺序的,如果在一个流程分支中出现task节点和iava节点,按照系统规则,执行顺序是不可逆的,故一个分支中所有的task节点和iava节点只要出现就确定了顺序。由于涉及到转向的条件,而decision节点这种多选一的选项控制是有条件的,所以decision节点的分支是不等价的,上图中,dl(1)和dl(2)是不同的分支,也是不等价的。如上图,b_司1(1—2;b__dl(2卜t3不等价于b_一1(2H2;b._dl(1H3。而P节点是并行节点,所以pl(1)和pl(2)是是不同的分支,但这两个分支是等价的,如上图,b-呻l(1卜也;山东大学硕士学位论文呻l(1Hava];呻l(2H5等价于呻l(2H;呻l(2Haval;呻1(1H5。每个分支(path)对应流程描述文件的一部分。每个分支在系统中被使用的程度是这个分支是否被推荐的依据。如果一个分支不在流程描述模板中,而这个分支结构在系统中使用的比较多,则这个分支所代表的流程结构在租户进行定制的时候被推荐给租户的可能性比较大。由于不同的租户定制可能出现相同的分支,所以,这些分支的使用是要累计叠加的。对于某个流程分支在系统中所占的分量,本文使用权值W这个概念来表示。设某个分支在系统中的n个版本中出现,这n个版本称为v1..….v。,经过的的总时间为T,累计用时是t1..….tfl,所属于版本的租户k值分别是kI..….k。。则这个分支的权值为w.(∑ti半kt)ITi=1为了计算出推荐定制的流程结构分支,需要对所有定制版本中的的分支和流程模板中的所有分支的权值进行计算。由于在一个流程中,同样编号的task节点和java节点都不会多次出现,所以本文采用task节点和iava节点作为分支的标示符。如果两个分支有相同的标示符,则这两个分支必然只能出现一个。卜p1(2H5和卜c5都以t5为标示符。在流程模板中,因为每个任务节点和iava节点只出现一次,所以不会出现不同分支有相同的标示符的情况,所以流程模板中所有的分支在计算权值W时不会出现重复。而定制流程数量大,版本比较多,有可能出现多个版本有相同任务节点或iava节点的情况,所以有可能出现不同的分支有相同的标示符的情况。这里,必须要对不同的分支进行选择,每个标示符所代表的多个分支中,计算W值过后,选择W值最大的一个分支作为该标示符的代表。表5.2的分支描述的情况如下图由表格给出的数据以及上文给出的公式可以算出每一个标示符对应路径的W值。每个标示符对应多个路径时,选择W最大值对应的路径以及W值。除了在定制流程中对树形结构的各个分支的W值进行计算之外,还需要对模板流程中的树形结构的分支进行W值的计算。如果对于同一个节点来说,在定制流程中W值最大的分支,它的W值大于在模板流程中的分支,则租户在定制时,29山东大学硕士学位论文出现对应节点的时候,系统将该分支对应的流程结构推荐给租户。分支标示符分支描述分支所述版本号累计使用计时Ktl¨l;Version1.0T1.0K1Version2.0T2.0K2t1b__dl(1卜t1Version1.1T1.1K1Version2.2T2.2K2t2b-—d1(2卜t2Version1.1T1.1K1Version2.2T2.2K2t2¨2Version2.1T2.1K2tlb_呻l(1—1Version1.2T1.2K1t3b_一p1(2H3Version1.2T1.2Kl表5.2流程的分支描述例:假设tl对应的定制流程中的各个分支,b_.d1(1H1对应的w值最大,并且大于tl在模板流程中对应分支卜tl的W值,则如果租户在定制流程的过程中使用到了t】,则b__d1(1H1所对应的结构会被推荐给租户。推荐定制只是推荐的关于一个节点的流程分支,为了满足相关的定制约束,流程还需要租户自己来调整,推荐定制只是一个给租户的参考建议,最终的定制还是根据租户自己的需求。推荐定制是随时发生的,只要租户进行定制,就会有推荐定制。最能体现推荐定制的还是流程模板,当一段时间过后,可以对流程模板进行演化。5.2流程模板演化流程模板的演化与推荐定制类似,也是根据W值来进行演化,不同的是演化的W值是在一定的时刻选取的。并且是直接对模板进行的更改而不是给租户的推荐。由于task节点和java节点都是一开始给定的,所以,每个task节点和每java节点在每个定制流程中都能计算出一个W值(记作wt。n卸。y),也都能在模板流程中计算出一个w值(记作w印p)。特殊地,如果某个task节点或jaVa节点没有出现在30山东大学硕士学位论文定制流程或模板流程中,则t值取0。W也一定为0。Wten锄。y和wapp进行对比可以算出在流程演化过程中,出现演化的分支。对与某个分支来说,(wten锄cy)一(wapp)>we,o(w“o是常数,O<we。o<1,为进行演化的临界差值,由ISV指定或者系统平台设定)时,我们认为,此时对应的分支从统计角度可以进行演化,演化的方式是在树形结构中,用定制流程所代表的分支取代由模板流程代表的分支。然而,演化还需要考虑流程结构的正确性。如果一次演化过程中,某个分支的W值计算达到了触发演化的条件,但是,进行该演化需要触及的其他分支进行的演化条件没有满足,演化还是不能进行。图5.2演化实例如上图,左边的树形结构中,tl的路径为b__tl,右边的树形结构中,tl的路径为b_—dl(1)--tl。假设左边的是模板流程的树形结构,右边的是定制流程的树形结构。当、Ⅳte。如。,.wapp>We。条件满足时,已经可以考虑进行演化操作。但是,如果想将b_.tl演化成bl—l(1)--tI,还需要考虑演化触及的其他分支。这里是t2所相关的分支。如果t2的Wtenancy-wapp>w。。o条件满足,并且演化方向是从卜t2到b__d1。2,-t2,则tl可以与t2同时进行演化,因为这两个task节点同时进行演化时,不会引发流程结构的错误。此例中,如果tl的演化条件满足,而t2的演化条件不满足,或者t2的演化方向不是从¨2到n司l(2)一2,则演化无法进行。下面给出流程模板演化算法山东大学硕士学位论文流程模板演化算法:输入:模板流程,定制流程数据描述,版本运行时间Ti,总运行时间T,每个租户的k,We。。输出:新的模板流程(任务节点:从1到m;java节点:从1到n)将定制流程的数据转化为树型结构,再转化成路径Patht。。粕。y(从1到m+n),以task节点(从1到m)和java节点(从1到n)作为标识将模板流程的数据转化为xml树,再转化成路径Path。pp(从1到m+n),以task节点(从1到m)和java节点(从1到n)作为标识计算每条pathte。柚cy和path印p的wten锄cyw=(∑ti木ki)/Ti=lFor(index--1;index<=m+n;index++)If((Wtenancy)index一(w印p)index>wevo){(Patht。nall。y)ind戥添加到数组candidate[m+n]))取candidate[]Ij勺N大子集,最大子集中,每条路径Pathte。彻。y的演化都是合乎定制约束的。根据candidate口的最大子集对模板流程进行演化,得到新的模板流程。表5.3流程演化山东大学硕士学位论文5.3流程模板演化的评估为评估本章提出的流程演化算法的有效性,本节对本章提出的方法进行验证。本章提出的演化算法的目标是使得模板在整体上更接近租户的需求,所以本节以流程模板和流程定制数据的匹配度作为流程模板演化好坏的评判标准。在计算流程模板和流程定制数据的匹配度时,以分支的匹配为基本单位。如果两个分支完全相同,则这两个分支完全匹配。如果对于两个分支来说,分支的标识(task或iava)相同,并且这两个分支完全相同,则这两个分支的匹配度记为1,如果这两个分支的标识相同,但分支不完全相同,则这两个分支的匹配度记为O.5。本文认为,更重要的租户使用了更长时间的流程数据结构更应该出现在流程模板中,所以分支的匹配度计算过程中还要考虑不同分支在整个系统中所使用的时间和租户权重等因素。w值作为每个分支的附加乘数加入到匹配度的计算中,以体现不同租户重要性的不同。在计算模板流程和定制流程的匹配度时,先将模板流程和定制流程都分解成以task或java为标识的分支,然后计算不同分支的匹配度,最后根据不同分支的匹配度和w得到模板流程和定制流程的匹配度。本节使用职业资格服务体系公共基础支撑平台中选取定制数据。平台采用ApacheTomcat为工作流服务器,Oracle作为工作流数据库。服务器为Intel(R1Xeon(R)CPUX5620幸16CPU,2.4GHz主频,8G内存,500G'2硬盘的PC机。Oracle数据服务器部署在RedHatEnterpriseLinuxServerrelease5.5X32作为操作系统的服务器上,工作流服务器部署在MicrosoftWindowsServer2003R2EnterpriseEditionServicePack2为操作系统的服务器上。原始工作流引擎采用JBPM引擎。本节选取平台中流程的定制数据,选取一段时间内的定制数据作为流程模板演化的依据,对流程模板进行演化,然后分析演化前后两个流程模板与定制流程数据的整体匹配度,并设置不同的we。o取值以及流程中不同的分支数,分析本章提出流程模板演化方法的效果。山东大学硕士学位论文图5.3第一组实验第一组实验选取了10个租户,w钾。的值设定为0.05。第一组实验选取了T=500的10组定制数据。对演化前后的模板与定制数据的匹配度进行分析。对于演化前后的流程模板,与定制数据的匹配度如上图所示。由上图可知,对于实验中进行演化的10组数据,使用演化后的模板流程,与定制流程的匹配度要高于原模板。这就表明,演化后的流程模板从整体来看更符合租户的需求。由第一组实验的情况可以得出,本章提出的模型在一定程度上是正确的。流程演化得到了更好的效果,演化后的流程模板更有可能符合租户的要求。下面的第二组实验分析w“o的值对于模型运行效果的影响。第二组实验对相同的定制数据,进行两次演化,第二组实验与第一组实验选取了相同的定制数据,wwo的值设定为0.10,T=500。两组实验的实验结果对比见图5.4。将第一组实验和第二组实验得到的数据进行对比,可以看出,相比于原模板,这两次演化都起到了优化模板的作用,但是不同的w“o的值还是会带来不同的效果。设定一个合理的wc,o值对本文提出的模型的效果有重要影响。w“。值的设定需要考虑k值,T等诸多因素34山东大学硕士学位论文图5.4第一组实验和第二组实验的对比第三组实验分析流程分支(fork-join和decision)对演化效果的影响。为了反应分支个数带来的影响,第三组实验设置实验组和对照组,实验组中的定制点都是带分支的,对照组的定制点都不带分支。图5.5第三组实验的实验组图5.6第三组实验的对照组山东大学硕士学位论文由第三组实验的结果可以看出,实验组和对照组流程演化都起到了一定的效果,演化后的流程模板与定制数据的匹配度都有所改善。两个组使用的是不同的数据,由实验结果可推知,无论模板流程是否有分支,演化都能使得流程模板更接近租户需求。第四组实验分析定制操作数量对实验结果的影响。第四组实验设置实验组与对照组,实验组中定制操作的数量较多,对照组中定制操作数量较少,对比分析实验结果。图5.7第四组实验实验组图5.8第四组实验对照组第四组实验表明,定制操作多少对模型运行的正确性没有太大影响。流程模板的演化都能使得流程模板更接近租户需求。上述实验表明,本章提出的流程模板演化算法在一定程度上是有效的,演化可以使得流程模板更接近租户的需求。36山东大学硕士学位论文5.4本章小结本章分析了多租户环境下流程模板演化的必要性,并根据定制数据建立了一个流程模板演化模型。根据这个模型,流程模板在保证流程结构正确性的基础上进行演化,以达到更好地满足租户需求的目的。本章的模型被证明在一定程度上是正确的,若想对模型进一步的提升,需要对Ww。,k,T的合理设定进行研究。山东大学硕士学位论文第六章总结与展望6.1总结本文首先对SaaS应用中的多租户定制进行探索,提出了一种支持多租户特性的流程定制架构。该架构支持多租户特性,通过提供定制操作来满足不同租户对SaaS应用中流程的个性化需求。这样在平台中实现多租户化,完成租户应用数据的隔离,可以实现流程与资源的松耦合,使得SaaS应用开发商可以完全不需要考虑多租户化的问题,减小其压力。本文提出了一种在流程定制架构中使用的流程数据模型。该数据模型支持租户的定制操作,以及定制之后在系统中的运行。流程的定制是本文的核心问题,流程的定制基于应用中的流程模板。租户可以根据自己的个性化需求来选择使用模板流程还是选择自己的定制流程。一定时期内租户定制的流程历史数据对租户及系统都有意义。对租户来说,并不是每一次定制都是合适的。如果出现了不合适的定制,租户有可能选择将流程恢复到一定时期内的某个版本。对应用开发者来说,分析租户一定时期的定制数据,可以更好的把握租户的需求。所以需要对租户定制的数据进行版本管理。与非多租户环境下的数据版本管理有所不同,多租户环境下,每个租户都有一套数据版本需要管理,并且这些版本有交集。而且考虑到租户重要性,版本运行时间等问题,多租户环境下的流程数据版本管理需要做更多的工作。本文选择了一种保存多个流程数据文件的流程向量图以及流程使用记录器来对多租户环境下的流程定制数据版本进行管理。解决了租户历史版本数据保留,版本切换时的流程实例混乱等问题,还为ISV提供了流程定制数据的使用情况,这是进行流程模板演化的依据。基于流程定制数据及其使用情况,本文对流程模板进行了演化。流程模板演化可以使得流程能更好地满足租户的需求,使得租户的需求更好的被满足。本文基于模式匹配方法,对流程数据进行建模,并提出了一种基于树形建模的流程模板演化方法。该方法使用流程定制数据的模型对流程模板进行演化,以达到更好地匹配租户需求的目的。山东大学硕士学位论文6.2展望本文对面向多租户环境下的流程定制问题进行了研究。提出了一种支持多租户特性的流程定制架构,在流程定制架构中使用的流程数据模型,并针对流程定制数据提出了一种版本管理方法,以及一种基于流程定制数据的流程模板演化方法。本文解决了一些面向流程定制的数据问题,但有一些问题需要更好地解决。以后的工作点如下:1.本文提出的流程数据模型在实现服务组合上有一定的局限性,不利于实现更好的服务组合。流程数据模型解决了多租户环境下的定制和运行的问题,但是在对流程数据实现多租户化的同时,一定程度上降低了系统运行的效率。为了解决这些问题,需要提出一种更完善的数据模型。2.针对流程定制,需要有一种适应性更完善的定制约束。定制约束是保证系统稳定运行的重要因素。本文在多处都假设不会出现流程结构错误的问题,这需要很好的定制约束来保证。3.本文提出流程模板演化过程中,没有对演化过程的参数的设置给出确定的方法。这些值的计算需要考虑系统需求,租户需求等诸多问题。如果想保证整个过程能够正确运行,并取得预期的效果,需要对这些参数进行精确的定位。本文中的研究成果为了适应越来越大的数据量,需要考虑到大数据环境带来的问题。在实现可行性的基础上提高经济性,降低运行成本。下一步的工作主要在于对流程定制的问题进行更深入的研究,探讨更灵活的数据模型和更节省成本的数据管理模式.39山东大学硕士学位论文致谢首先要衷心的感谢我最尊敬的导师李庆忠教授,感谢导师在我攻读硕士学位期间无微不至的关怀和孜孜不倦的教诲。导师不仅在学业上严格要求,在为人处事、待人接物方面也言传身教,使我受益匪浅。三年来,导师渊博的知识、严谨的治学态度、活跃的学术思想、高尚的为师品德无时无刻不在影响着我,为我将来的工作和学习树立了榜样,在此,对表示我最诚挚的谢意!同时,我还要感谢软件与数据工程中心这个实验室。在这三年的时间里,给我提供了良好的学习环境,先进的科研设备,卓越的工作团队,耐心的专业指导。一个人的成长离不开环境的作用,软件与数据工程中心这个良好的科研环境在学习生活中给了我很好的支持,软件与数据工程中心SaaS小组中的各位老师和同学,在我进行研究的过程中给我很大的帮助。他们在我遇到疑问时给出耐心的解答,在研究中给予我具体细致的建议,并在工作的进展中热心地与我讨论,及时指出我研究中的不足。他们的支持和帮助使我顺利地完成学习和科研任务。最后,我要深深地感谢支持、关心和鼓励我完成硕士学业的家人以及各位朋友,他们的支持是我在科研过程中不断前进的精神支柱。山东大学硕士学位论文参考文献[1]叶伟等“互联网时代的软件一SaaS架构设计”,电子工业出版社,2008【2]2EspadasJ,ConchaD,MolinaA.software…asApplicationdevelopmentoveraserviceplatforms.In:SoftwareEngineeringAdvances,2008.ICSEA’08.TheThirdInternationalConferenceon.IEEE,2008。pp:97·104。【3]MertzS,EschingerC,EidT,eta1.Dataquestinsight:Saasdemandsettooutpaceenterpriseapplicationsoftwaremarketgrowth[J].Gartnerreport,2007.【4]WatersB.Softwareasaservice:Alookatthecustomerbenefits[J].JournalofDigitalAssetManagement,2005,1(1):32—39.【5]GuoCJ,SunW,HuangYeta1.Aframeworkfornativemulti-tenancyapplicationdevelopmentandmanagement.In:E—CommerceTechnologyandthe4thIEEEInternationalConferenceonEnterpriseComputing,E·Commerce,andE—Services,2007.CEC/EEE2007.The9thIEEEInternationalConferenceon.IEEE,2007.PP:551.558.[6】SunW,ZhangX,GuoCJ,eta1.Softwareasaservice:Configurationandcustomizationperspectives.In:CongressonServicesPartII,2008.SERVICES-2.IEEE.IEEE,2008.PP:18-25.[7]FishedS.:TheArchitectureoftheApexPlatform,salesforce.com’sPlatformforBuildingOn-DemandApplications.In:29thIEEEIntemationalConferenceonSoftwareEngineering,PP.3.IEEEPress,NewY6rk(2007)[8]Aulbach,S.,Grust,T.,Jacobs,D.,KempedA.,RittingedJ.:Multi·TenantDatabasesforSoftwareasaService:Schema-MappingTechniques.In:SIGMODConference,PP.1195—206.(2008)[9】Salesforce,http:Hwww.salesforce.corn/[10】GoogleDocs,http://docs.google.com/[11】霍小军,“SaaS模式在电子政务中的应用初探”,电子政务,2008,(1):73-87[12]Band,W.,LeavedS.andRogan,M.A.,”Trends2007:Customerrelationship41山东大学硕士学位论文management,”ForresterResearch,Cambridge,MA,2007.[13]SAEhttp://wwwl.sap.com/china/sme/solutions/businessmanagemenffbusinessbydesign/index.epx[14】Coghead2.0,http://www.coghead.corn/【15]Lon西ump,http://longiump.corn/[16】800CRMProject,http://www.800app.com/[17]MathewR,SpraetzR.TestautomationonaSaaSplatformIn:SoftwareTestingVerificationandValidation,2009.ICST’09.InternationalConferenceon.IEEE.2009:pp:317-325.[18]LiaoHC,TaoCQ.AnanatomytoSaaSbusinessmodebasedonIntemet.In:Managementofe-Commerceande.Government,2008.ICMECG,08.IntemationalConferenceon.IEEE,2008.PP:215—220.[19]JBoss,jbpm-4.1.GA,http://www.jboss。orzdjbpm[20]_SentiesOB,LasserreAA,FloresFO,eta1.Atoolfordecisionmakinginmanufacturingprocessfexible.In:Proceedingsofthe2008.SeventhMexicallInternationalConferenceonArtificialIntelligence.IEEEComputerSociety,2008.PP:157—162.【21】DouglasPaulBogia.SupportingFlexible,ExtensibleTaskDescriptionsinandAmongTasks.PhDthesis,UniversityofIllinoisatUrbana—Champaign,1995.AvailableontheWebfrom邱://ftp.CS.uiuc.edu/pubs.[22】HeinlP,HornS,JablonskiS.eta1.Acomprehensiveapproachtoflexibilityinworkflowmanagementsystems.In:ACMSIGSOFTSoftwareEngineeringNotes.ACM,1999,24(2).pp:79-88.[23】MiillerR,GreinerU,RahmE.Agentwork:aworkflowsystemsupportingrule-basedworkflowadaptation[J].In:Data&KnowledgeEngineering,2004,51(2):223-256.[24】M.Ralph,“UsingVariabilityDescriptorstoDescribeCustomizableSaaSApplicationTemplates”,InstituteofArchitectureofApplicationSystems,January42山东大学硕士学位论文18,2008,PP.1—27[25】ChunS,AtluriVAdamNR.DynamiccompositionofworkflowsforcustomizedeGovemmentservicedelivery.In:Proceedingsofthe2002annualnationalconferenceonDigitalgovemmentresearch.DigitalGovernmentSocietyofNorthAmerica,2002.PP:1-7.[26]LvB,ZhangS,LiuZ,eta1.WFFS:ASaaS-BasedMulti—tenantWorkflowEngine.In:EmergingComputationandInformationtechnologiesforEducation.SpringerBerlinHeidelberg,2012.PP:77-83.[27]H.Mourgo,P.Antunes,Supportingworkfloweffectiveunexpectedexceptionshandlinginmanagementsystems,in:Proc.SAC’07,2007,PP.1242—1249.[28]史美林,杨光信.WfMS:-F作流管理系统[J】.计算机学报,1999,22(3):325-334.【29】WUB,DengS,LiYeta1.ReferencemodelsforSaaSorientedbusinessworkflowmanagementsystems.In:ServicesComputing(scc),201lIEEEInternationalConferenceon.IEEE,2011.PP:242-249.[30】孙卫琴,李洪成.Tomcat与JavaW.eb开发技术详解.社,2005:137.138C.ActionScfiptforFlash北京:电子工业出版[31]MoockMX:thedefinitiveguide[M].”O’ReillyMedia’Inc.”,2003.[32]PereraS,HerathC,EkanayakeJ,eta1.Axis2,middlewarefornextgenerationwebConferenceon.IEEE,services.In:WebServices,2006.ICWS’06.International2006.PP:833-840.[33]AzeezA,PereraS,GamageD,eta1.Multi-tenantSOAmiddlewarefor.cloudcomputing.In:Cloudcomputing(cloud),2010ieee3rdinternationalconferenceon.IEEE,2010.PP:458—465.[34]张雷,扈飞.软件即服务应用框架中配置的设计与实现【J】.计算机系统应用,2009.6:27—32.[35]ZhaoX,LiuC.Versionmanagementforbusinessprocessschemaevolution[J].InformationSystems,2013,38(8):1046-1069.43山东大学硕士学位论文[36]XiaojunR,YongqingZ,LanjuK.SaaSTemplateEvolutionModelBasedonTenancyHistory.In:IntelligentSystemDesignandEngineeringApplications(ISDEA),2013ThirdInternationalConferenceon.IEEE,2013.pp:1242—1247..[37】XiuzhenF,NiC.Astudyontreematchingmodelandalgorithmtowardsmetadata.InformationManagementandEngineering(ICIME),2010The2ndIEEEInternationalConferenceon.IEEE,2010:259—262.[38】SunP.WorkflowInstanceMigrationRespondingtoProcessEvolution.SoftwareEngineeringandKnowledgeEngineering:TheoryandPractice.SpringerBerlinHeidelberg,2012.pp:393-401.[39]ChenD,LiQ,KongL.ProcessCustomizationFrameworkinSaaSApplications.In:WebInformationSystemandApplicationConference(WISA),201310th.IEEE,2013.pp:471—474.[40】RosadoLJA,M矗rquezAP,GonzAlezJMF.RepresentingversionsinXMLdocumentsusingversionstamp.In:AdvancesinConceptualModeling-TheoryandPractice.SpringerBerlinHeidelberg,2006:257—267.[41】LeeN,KimD,KimM,eta1.Aversionmanagementmethodformanagingbusinessprocesschangesbasedonversion-stampedbusinessprocesschangepatterns.In:InnovativeComputingInformationandControl,2008.ICICIC’08.3rdInternationalConferenceon.IEEE,2008.PP:243·243.山东大学硕士学位论文攻读学位期间发表的学术论文目录Chen,Dapeng,QingzhongLi,andLanjuSaaSKong.”ProcessCustomizationFrameworkinApplicationApplications.”WebInformationSystemandConference(WISA),2013lOth.IEEE,2013.ElAccessionnumber:20141817668222(WISA2013第一作者EI检索)45学位论文评阅及答辩情况表专业技术职姓名是否博导(硕导)论又评瓣募姓撇,务所在单位总体评价※数攒移、始灸掇否山彘建氛樽婊欠嗜侈呤阅人名专业技术职域。极搬誓犀欺门接南务是否博导(硕导)国所在单位答辩委员稚。瑶雾迅敞疋山寿建镟大誓幽孝《学冬是歪山春胖委会成口贝口贝答辩委员会对论文的总体评价※备注8答辩秘书飞嗡答辩日期加阼《。冲※优秀为“A”;良好为“B”;合格为“C”;不合格为“D”。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务