一种流程业务数据上传系统及上传方法

文档序号:6358200阅读:178来源:国知局
专利名称:一种流程业务数据上传系统及上传方法
技术领域
本发明属于业务流程管理技术领域,具体地说,本发明涉及一种流程业务数据上传系统及上传方法。
背景技术
业务流程管理技术可以为集成型应用提供支撑环境,帮助企业、单位对业务流程获得可见性并实施控制,在过去的二十余年中得到了广泛研究和应用,其应用范围涉及办公、电子商务、科学计算、应急联动等各个领域。在业务流程管理技术中,流程中的数据主要分为流程业务数据和流程控制数据, 其中,流程业务数据是指业务流程中流转的公文、电子表格以及其他业务相关的资料;流程控制数据是指流程的定义、流程实例的状态、活动的状态、流程变量和任务项等。在流程运行的过程中,对于较大的流程业务数据,用户需要下载到本机,编辑完成后再上传至流程管理服务器,以便修改过后的数据供流程中的其他用户所使用。例如,在文稿审批流程中, 作者需要先上传自己的文章到流程管理服务器,然后审批人把文章下载,加入自己的批注和修改意见后再上传回流程管理服务器。现有技术中,业务数据在流程中每一步活动中的修改往往都是局部性的,而用户却要把修改过后的业务数据整体重新上传,这带来两方面的问题1)数据传输量大,具体表现在上传时间较长,消耗用户的网络流量等。2、流程管理服务器需要保留多个版本的业务数据,而这些业务数据中有很多重复的部分,因此占用了一些不必要的磁盘空间。另一方面,随着互联网计算的兴起以及&iaS (Software as a krvice,软件即服务)模式的流行,越来越多流程管理系统开始以服务的方式提供给用户租用。企业或单位可以以租用的方式通过浏览器使用hternet上服务提供者的软件服务,这样的企业或单位称为租户,软件服务提供商一般会按照网络流量、磁盘空间占用量来对租户收费。因此, 目前的MaS流程管理系统存在以下缺陷1)网络上行带宽小的用户在使用MaS流程管理系统的过程中,就会面临缓慢的业务数据上传速度。2、用户上传过程中产生的流量计费有很多是不必要的。幻对于经常修改、上传的业务数据,如果对每一个版本都保存其完整数据的话,版本之间会存在大量的重复数据,造成了对租户的磁盘容量配额的浪费。综上所述,当前迫切需要一种能够减小业务数据传输量、减小业务数据所占磁盘空间的流程业务数据上传系统及其相应的流程业务数据上传方法。

发明内容
本发明的目的是提供一种能够减小业务数据传输量、减小业务数据所占磁盘空间的流程业务数据上传系统及其相应的流程业务数据上传方法。为实现上述发明目的,本发明提供了一种流程业务数据上传系统,包括位于服务器端的业务数据仓库和位于客户端的上传装置;所述业务数据仓库用于存储业务数据的元信息和数据块;并用于向所述上传装置提供所需的业务数据的元信息;所述上传装置包括增量计算模块和增量上传模块,增量计算模块用于获取存储于所述业务数据仓库中的与待上传业务数据相应的业务数据的元信息,然后根据所述相应的业务数据的元信息,识别出待上传业务数据相对于业务数据仓库所存储的相应业务数据的增量数据;所述增量上传模块用于向所述业务数据仓库上传所述增量数据。其中,所述上传装置还包括全量上传模块,用于向所述业务数据仓库上传待上传业务数据的全部数据;所述全量上传模块的全量上传线程与增量计算模块的增量计算线程并行执行,当增量计算线程完成时,如果全量上传线程中还未上传的数据量大于增量计算线程所识别出的增量数据的数据量,则停止全量上传线程,开始增量上传线程以上传增量数据;否则,继续保持全量上传线程。其中,所述上传装置还包括上传界面模块,用于和用户进行交互,以选定需要上传的业务数据,以及显示上传进度条。本发明还提供了相应的流程业务数据上传方法,包括下列步骤1)在需要上传业务数据时,上传装置请求业务数据仓库中的与待上传业务数据相应的业务数据的元信息;2)业务数据仓库向上传装置返回所述相应的业务数据的元信息;3)上传装置根据所述相应的业务数据的元信息,识别出待上传业务数据相对于业务数据仓库所存储的相应业务数据的增量数据;4)上传装置向所述业务数据仓库上传所述增量数据。其中,还包括与步骤1) 幻并行执行的步骤la),步骤la)为全量上传所述待上传业务数据;如果步骤3)完成时,步骤la)中还未上传的数据量大于步骤3)所识别出的增量数据的数据量,则停止执行步骤la),开始执行步骤4);否则,继续执行步骤la),不执行步骤4)。其中,所述步骤1)中,所述相应的业务数据的元信息包括业务数据ID、每个数据块的强校验值、弱校验值、数据块长度和块序号。 其中,所述强校验值是通过MD5或MD4算法作用于数据块得到的校验值,所述弱校验值通过Rabin-Karp或adler-32算法作用于数据块得到的校验值。其中,所述步骤幻包括下列子步骤31)上传装置从待上传的业务数据的头部以长度为N的窗口滑动计算校验值,N等于所述相应的业务数据的元信息中的数据块长度;窗口每次滑动的步长为1或者N ;32)对于当前窗口内的数据,首先进行弱校验值的运算,如果弱检验值W不在元信息的弱校验值集合中,则将窗口下一次滑动的步长设置为1,否则,执行步骤33);33)进一步计算当前窗口内数据的强校验值S,检测其是否在元信息的强校验值集合中,如果S在其中,则当前窗口内的数据块被标记为旧数据(标记方式可以是记录窗口左右的偏移位置),并且将窗口下一次滑动的步长设置为N,否则,将窗口下一次滑动的步长为1;34)重复步骤32)至33)直至窗口的右端到达业务数据的尾部;35)上述过程结束后,仍没有被标记为旧数据的数据块都判定为增量数据块。
其中,在执行所述步骤4)后,还执行步骤5);5)业务数据仓库将增量数据块和业务数据仓库中已有的数据块合并,得到更新后的完整的业务数据。与现有技术相比,本发明具有下列技术效果1、本发明能够降低传输的数据量,进而减少了用户上传业务数据所需要的时间, 提升了流程运行的整体效率,降低对租户网络流量配额的消耗。2、本发明消除了多版本业务数据的冗余,提高了磁盘的利用率,降低了对租户的磁盘配额消耗。3、本发明的增量上传装置是基于浏览器的,对用户端没有侵入性。4、本发明采用了全量上传和计算增量并行进行的方法,可以广泛地适应各种修改程度不同的业务数据上传。


以下,结合附图来详细说明本发明的实施例,其中图1示出了本发明一个实施例的^aS环境下流程业务数据上传系统的结构示意图;图2示出了本发明一个实施例的MaS环境下流程业务数据上传方法的流程图;图3示出了本发明一个实施例的MaS环境下流程业务数据上传方法应用于文章出版流程场景中的示意图;该文章出版流程场景是某杂志社租用了采用^aS流程管理系统来处理其稿件从投稿到最终拟出版的全过程。
具体实施例方式下面结合附图和具体实施例对本发明做进一步地描述。如图1所示,根据本发明的一个实施例,提供了一种MaS环境下流程业务数据上传系统,该系统包括两个部分位于客户端的基于浏览器的上传装置和位于服务器端的业务数据仓库。服务器端的业务数据仓库包括元信息管理模块和数据块管理模块。元信息管理模块主要管理业务数据的元信息。参考图1,业务数据被分块管理,每个数据块的元信息包括业务数据ID、数据块的强校验值、数据块的弱校验值、数据块大小(即数据块长度)和块序号。在一个优选实施例中,业务数据ID和流程管理系统中的流程变量名是一一对应的, 流程变量是流程运行的过程中数据和状态的载体。流程变量一般有一个便于流程设计者记忆的名字。强校验值通过MD5或MD4算法作用于数据块得到,弱校验值通过Rabin-Karp或 adler-32算法作用于数据块得到。块序号即该数据块在一个完整业务数据中的分块序号。 元信息管理模块一般可采用关系数据库技术来实现。参考图1,在一个优选实施例中,数据块管理模块采用键值对的存储方式,键为该数据块的强校验值,值就是数据块的内容。数据块管理模块在实现上可采用分布式键值存储系统来实现。基于浏览器的上传装置包括上传界面模块、增量计算模块和数据传输模块。上传界面模块负责和用户(如用户的鼠标行为)进行交互,以选定需要上传的业务数据,此外还用于上传进度条和一些提示对话框的显示。增量计算模块负责获得服务器端的业务数据元信息并和本地业务数据进行对比计算出增量部分。传输模块负责上传数据到服务器端的业务数据仓库,在一个优选实施例中,传输模块有两种工作模式全量上传和增量上传,默认启动全量上传,当增量计算模块计算出的增量数据量小于当前没有上传的数据的大小时, 传输模块会终止全量上传模式而改为增量上传模式。这样,能够结合全量上传和增量上传各自的优点。对于修改幅度小的业务数据,采用增量上传能够有效降低传输的数据量,进而减少用户上传业务数据所需要的时间,提升流程运行的整体效率;同时还能够消除多版本业务数据的冗余,提高磁盘的利用率。而对于有些修改幅度大的业务数据,由于省去了计算增量的时间,全量上传可能反而比增量上传快,此时采用全量上传,能够减少用户上传业务数据所需要的时间,提升流程运行的整体效率。当然,本发明并不限于上述优选实施例,在其它实施例中,传输模块也可以只提供增量上传的工作模式,这是本领域技术人员易于理解的。图2示出了本发明一个实施例的MaS环境下流程业务数据上传方法的流程图,包括下列步骤SPl SP7 SPl 用户在执行业务流程的某一活动时通过基于浏览器的上传装置选择要上传的业务数据。在一个优选实施例中,SPl包括下列子步骤(1)用户在执行到流程的某一业务活动时,如果该活动需要上传业务数据,网页上将呈现出上传装置。(2)上传装置判断用户浏览器的版本,对于不支持HTML5的浏览器,上传的业务数据的大小不能超过100M(受到Flash技术的限制),对于支持HTML5的浏览器,上传的业务数据的大小在技术上不受限制。(3)用户点击上传装置上的按钮,选择要上传的业务数据。SP2 上传装置开始对所选择的要上传的业务数据进行全量上传,同时启动后台线程向业务数据仓库请求该业务数据所属业务流程的相应业务数据的元信息。这里,业务数据仓库中的相应业务数据是指与待上传的业务数据有着相同ID的业务数据仓库中的数据。业务数据仓库中的数据是相对较旧的数据,而用户要上传的数据是新版的数据。在一个优选实施例中,SP2包括下列子步骤(1)用户点击“开始上传”,开始进行全量上传,并显示上传的进度条。(2)开启与全量上传任务并行的增量计算任务,如果用户端浏览器支持HTML5则增量计算任务采用Web Worker实现;否则,增量计算任务使用Flash技术中的异步事件回调实现。增量计算任务由下文中的步骤SP3和SP4完成。SP3 业务数据仓库接到上传装置对业务数据的元信息的请求后,将业务数据仓库中具有相同ID的业务数据的元信息发送给上传装置。在一个优选实施例中,业务数据仓库发送给上传装置的元信息包括数据块长度、弱校验值集合和强校验值集合。元信息采用 JS0N(全称为JSON-—JavaScript Object Notation)作为数据交换的格式。弱校验值集合和强校验值集合均采用哈希表作为数据结构,便于上传装置能在常数复杂度的时间内查找。弱校验值集合是由各个数据块所对应的弱校验值组成的集合,强校验值集合是由各个数据块所对应的强校验值组成的集合。进一步地,在另一个优选实施例中,SP3步骤中业务数据仓库先将元信息进行压缩,然后再将压缩后的元信息发送给上传装置,最后由上传装置将压缩后的元信息解压得到所述业务数据的。SP4 上传装置通过将待上传业务数据和业务数据仓库发来的元信息的对比,识别出业务数据仓库中没有的数据块,即增量数据块。在一个优选实施例中,SP4中识别增量数据块的过程包括下列子步骤⑴至(5)(1)上传装置从待上传的业务数据的头部以长度为N的窗口滑动计算校验值,N等于元信息中约定的数据块长度。窗口每次滑动的步长为1或者N。(2)对于当前窗口内的数据,首先进行弱校验值的运算,如果弱检验值W不在元信息的弱校验值集合中,则将窗口下一次滑动的步长设置为1,否则,执行步骤(3);(3)进一步计算当前窗口内数据的强校验值S,检测其是否在元信息的强校验值集合中,如果S在其中,则当前窗口内的数据块被标记为旧数据(标记方式可以是记录窗口左右的偏移位置),并且将窗口下一次滑动的步长设置为N,否则,将窗口下一次滑动的步长为1;(4)重复步骤(2)至(3)直至窗口的右端到达业务数据的尾部;(5)上述过程结束后,仍没有被标记为旧数据的数据块都判定为增量数据块。上述实施例中将强校验值和弱校验值相结合来实现增量数据块的识别,一方面能够提高重复数据的识别率,减少不必要的数据传输;另一方面能够保证计算复杂度处于较低水平。具体地,上述增量数据块的识别方案中,计算复杂度是线性的,即计算复杂度和待上传的数据的长度是线性关系。具体地,上述识别增量数据块的方法中,利用了弱校验值可以滚动计算(Rabin-Karp或adler-32算法)的特点,当滑动步长为1时,可以根据上一个窗口的弱校验值经过一次运算得到,而不用遍历窗口内的所有数据。此外,当需要使用强校验算法时,虽然没有滚动计算的特点,需要遍历窗口内所有的数据,但是窗口的滑动步长为 N。因此,其平均的复杂度仍然是线性的。SP5 如果SP4步骤完成时,全量上传的线程还未上传的数据量大于SP4识别出的增量数据块大小,则停止全量上传线程,开始上传增量数据;否则,继续保持全量上传。这样的好处是对于有些修改幅度大的业务数据,全量上传反而比增量上传快,因为省去了计算增量的时间。另外,在一个优选实施例中,每个增量数据块被识别出来后不立即提交,而是先识别出全部增量数据块,然后再一次性提交,这样能够增强数据上传的稳定性,尤其适合用于网络不稳定的情况。在一个优选实施例中,所上传的增量数据是由数据块和强校验值混合而成的有序表,该有序表中按照块序号排序。其中,对业务数据仓库中已有的块,上传时只传递了其强校验值,否则,上传时传递数据和强校验值组成的二元组。SP6 如果SP5是增量上传的模式,则需要将增量数据块和业务数据仓库中已有的数据块合并成完整的业务数据。在一个优选实施例中,数据块合并的过程就是遍历一遍SP5上传来的增量数据, 如果是二元组则将强校验值、数据块保存到业务数据仓库的数据库管理模块。SP7 对更新后的业务数据进行分块,在业务数据仓库中记录下元信息。在一个优选实施例中,根据更新后的数据库管理模块的由强校验值和数据块组成的二元组,得出更新后的业务数据的元信息。参考图1,元信息管理模块中,同一个业务数据ID对应着多个数据块,这些数据块通过各自唯一的强校验值来标识,而数据的实际内容则存储于数据块管理模块中。图3示出了本发明一个实施例的MaS环境下流程业务数据上传方法应用于文章出版流程场景中的示意图。该文章出版流程场景是某杂志社租用了采用^aS流程管理系统来处理其稿件从投稿到最终拟出版的全过程,具体步骤如下(1)作者写出初稿后,通过流程管理系统上传初稿,这里的稿件即本发明所说的 “流程业务数据”。在这一个过程中由于没有该稿件的历史版本,所以增量上传装置检测出的增量大小等于整个稿件的大小,显然,按照本发明SP5中的规则,此次上传将以全量上传的方式进行。(2)编辑在“批阅”这一业务活动中,将可以下载作者提交的初稿,对该稿件进行一定的修改和批注后再次将其上传。由于此次修改很有可能只是局部性的,当上传装置检测到增量部分的大小小于此时未上传部分的大小,则启动增量上传方式,从而加快了上传的速度,减少了上行带宽的占用,尤其是稿件较大时效果更加明显。(3)如果在“批阅”这一活动中,编辑对修改稿可能还不满意,则作者需要再次进行修改。作者下载下来编辑批注过的稿件后,按照编辑的意见修改后再次提交。这一过程会视编辑的意见而反复进行直到编辑满意为止,因此该稿件会产生许多版本,而版本之间的差异通常不会太大,本发明的业务数据仓库将业务数据分块后进行存储,因此消除了不同版本之间的冗余数据,提高了磁盘的利用率。(4)当编辑满意稿件的某个版本后,则流程进入最后一个业务活动即拟出版,这一活动可以是一个自动任务,例如,将该稿件归入杂志社的某一期出版库中。可以看出,采用流程业务数据上传方法,能够降低传输的数据量,进而减少了用户上传业务数据所需要的时间,提升了流程运行的整体效率,降低对租户网络流量配额的消耗;并且,能够消除了多版本业务数据的冗余,提高了磁盘的利用率,降低了对租户的磁盘配额消耗。需要说明的是,虽然上述实施例是应用于MaS环境下的流程业务数据上传方法及系统,但本发明并不限于应用于MaS环境,这是本领域技术人员易于理解的。另外,SaaS (软件即服务)的一大特色就是免安装、零部署;而浏览器又是一种最为广泛使用的客户端软件。上述实施例中,用户只需要有浏览器就能使用流程业务数据上传系统,极大地提高了本发明的通用性。然而,本发明中的上传技术也不局限于浏览器本身,前文实施例中的上传机制是用主流浏览器支持的编程技术实现的,但本领域技术人员易于理解,本发明的位于客户端的上传装置不是必须基于浏览器,本发明也可以用其他客户端编程语言来实现。最后应说明的是,以上实施例仅用以说明本发明的技术方案而非对其限制,并且在应用上可以延伸到其他的修改、变化、应用和实施例,同时认为所有这样的修改、变化、应用、实施例都在本发明的精神和范围内。
权利要求
1.一种流程业务数据上传系统,包括位于服务器端的业务数据仓库和位于客户端的上传装置;所述业务数据仓库用于存储业务数据的元信息和数据块;并用于向所述上传装置提供所需的业务数据的元信息;所述上传装置包括增量计算模块和增量上传模块,增量计算模块用于获取存储于所述业务数据仓库中的与待上传业务数据相应的业务数据的元信息,然后根据所述相应的业务数据的元信息,识别出待上传业务数据相对于业务数据仓库所存储的相应业务数据的增量数据;所述增量上传模块用于向所述业务数据仓库上传所述增量数据。
2.根据权利要求1所述的流程业务数据上传系统,其特征在于,所述上传装置还包括全量上传模块,用于向所述业务数据仓库上传待上传业务数据的全部数据;所述全量上传模块的全量上传线程与增量计算模块的增量计算线程并行执行,当增量计算线程完成时, 如果全量上传线程中还未上传的数据量大于增量计算线程所识别出的增量数据的数据量, 则停止全量上传线程,开始增量上传线程以上传增量数据;否则,继续保持全量上传线程。
3.根据权利要求1所述的流程业务数据上传系统,其特征在于,所述上传装置还包括上传界面模块,用于和用户进行交互,以选定需要上传的业务数据,以及显示上传进度条。
4.一种利用权利要求1所述的流程业务数据上传系统的流程业务数据上传方法,包括下列步骤1)在需要上传业务数据时,上传装置请求业务数据仓库中的与待上传业务数据相应的业务数据的元信息;2)业务数据仓库向上传装置返回所述相应的业务数据的元信息;3)上传装置根据所述相应的业务数据的元信息,识别出待上传业务数据相对于业务数据仓库所存储的相应业务数据的增量数据;4)上传装置向所述业务数据仓库上传所述增量数据。
5.根据权利要求4所述的流程业务数据上传方法,其特征在于,还包括与步骤1) 3) 并行执行的步骤la),步骤la)为全量上传所述待上传业务数据;如果步骤3)完成时,步骤la)中还未上传的数据量大于步骤3)所识别出的增量数据的数据量,则停止执行步骤la),开始执行步骤4);否则,继续执行步骤la),不执行步骤4)。
6.根据权利要求5所述的流程业务数据上传方法,其特征在于,所述步骤1)中,所述相应的业务数据的元信息包括业务数据ID、每个数据块的强校验值、弱校验值、数据块长度和块序号。
7.根据权利要求6所述的流程业务数据上传方法,其特征在于,所述强校验值是通过 MD5或MD4算法作用于数据块得到的校验值,所述弱校验值通过Rabin-Karp或adler-32算法作用于数据块得到的校验值。
8.根据权利要求7所述的流程业务数据上传方法,其特征在于,所述步骤幻包括下列子步骤31)上传装置从待上传的业务数据的头部以长度为N的窗口滑动计算校验值,N等于所述相应的业务数据的元信息中的数据块长度;窗口每次滑动的步长为1或者N ;32)对于当前窗口内的数据,首先进行弱校验值的运算,如果弱检验值W不在元信息的弱校验值集合中,则将窗口下一次滑动的步长设置为1,否则,执行步骤33);
33)进一步计算当前窗口内数据的强校验值S,检测其是否在元信息的强校验值集合中,如果S在其中,则当前窗口内的数据块被标记为旧数据(标记方式可以是记录窗口左右的偏移位置),并且将窗口下一次滑动的步长设置为N,否则,将窗口下一次滑动的步长为 1 ;34)重复步骤3 至3 直至窗口的右端到达业务数据的尾部;35)上述过程结束后,仍没有被标记为旧数据的数据块都判定为增量数据块。9.根据权利要求4所述的流程业务数据上传方法,其特征在于,在执行所述步骤4)后, 还执行步骤5);5)业务数据仓库将增量数据块和业务数据仓库中已有的数据块合并,得到更新后的完整的业务数据。
全文摘要
本发明提供一种流程业务数据上传系统,包括位于服务器端的业务数据仓库和位于客户端的上传装置;所述业务数据仓库用于存储业务数据的元信息和数据块,并向所述上传装置提供所需的业务数据的元信息;所述上传装置包括用于获取存储于所述业务数据仓库中的与待上传业务数据相应的业务数据的元信息,然后根据所述相应的业务数据的元信息,识别出待上传业务数据相对于业务数据仓库所存储的相应业务数据的增量数据;还用于向所述业务数据仓库上传所述增量数据。本发明还提供了相应的流程业务数据上传方法。本发明能够降低传输的数据量,提升流程运行的整体效率;能够提高磁盘的利用率,降低了对租户的磁盘配额消耗。
文档编号G06Q10/00GK102163308SQ20111009660
公开日2011年8月24日 申请日期2011年4月18日 优先权日2011年4月18日
发明者孙君意, 李厚福, 陈大伟, 韩燕波 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1