《应用于OSGI环境下的流程运行装置和流程运行方法.pdf》由会员分享,可在线阅读,更多相关《应用于OSGI环境下的流程运行装置和流程运行方法.pdf(11页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103164243 A(43)申请公布日 2013.06.19CN103164243A*CN103164243A*(21)申请号 201310055557.0(22)申请日 2013.02.21G06F 9/445(2006.01)(71)申请人用友软件股份有限公司地址 100094 北京市海淀区北清路68号用友软件园(72)发明人张道强(74)专利代理机构北京友联知识产权代理事务所(普通合伙) 11343代理人尚志峰 汪海屏(54) 发明名称应用于OSGi环境下的流程运行装置和流程运行方法(57) 摘要本发明提供了一种应用于OSGi环境下的流程运行装置,包括:持久化。
2、单元,当检测到流程中当前运行的第一节点和与其相邻的即将运行的第二节点属于不同模块时,保存所述第一节点对应的第一模块的运行环境;载入单元,当检测到所述流程运行至所述第二节点时,在所述持久化单元中加载所述第二节点对应的第二模块的运行环境。相应地,本发明还提供了一种应用于OSGi环境下的流程运行装置。通过本发明的技术方案,可以解决异步流程中上下文环境会发生冲突的问题,从而避免流程数据传递失败,实现了异步流程和OSGi的结合。(51)Int.Cl.权利要求书1页 说明书5页 附图4页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书1页 说明书5页 附图4页(10)申请公布号 CN 1。
3、03164243 ACN 103164243 A1/1页21.一种应用于OSGi环境下的流程运行装置,其特征在于,包括:持久化单元,当检测到流程中当前运行的第一节点和与其相邻的即将运行的第二节点属于不同模块时,保存所述第一节点对应的第一模块的运行环境;载入单元,当检测到所述流程运行至所述第二节点时,在所述持久化单元中加载所述第二节点对应的第二模块的运行环境。2.根据权利要求1所述的应用于OSGi环境下的流程运行装置,其特征在于,还包括:设置单元,根据接收到的设置指令,设置所述持久化单元的内容。3.根据权利要求2所述的应用于OSGi环境下的流程运行装置,其特征在于,所述持久化单元的内容包括数据库。
4、和/或文件。4.根据权利要求1所述的应用于OSGi环境下的流程运行装置,其特征在于,所述载入单元包括:运行环境查找子单元,查找所述持久化单元中是否保存有所述第二节点对应的第二模块的运行环境;运行环境加载子单元,若检测到所述环境查找子单元查找到所述第二模块的运行环境,则直接在所述持久化单元中加载所述第二模块的运行环境;运行环境创建子单元,若检测到所述运行环境查找单元未查找到所述第二模块的运行环境,则通知OSGi系统创建所述第二模块的运行环境,在创建完成后在所述持久化单元中加载所述第二模块的运行环境。5.根据权利要求1至4中任一项所述的应用于OSGi环境下的流程运行装置,其特征在于,所述流程包括多。
5、个节点,所述多个节点位于多个模块当中。6.一种应用于OSGi环境下的流程运行方法,其特征在于,包括:步骤302,当检测到流程中当前运行的第一节点和与其相邻的即将运行的第二节点属于不同模块时,在持久化单元中保存所述第一节点对应的第一模块的运行环境;步骤304,当检测到所述流程运行至所述第二节点时,在所述持久化单元中加载所述第二节点对应的第二模块的运行环境。7.根据权利要求6所述的应用于OSGi环境下的流程运行方法,其特征在于,所述步骤302还包括:根据接收到的设置指令,设置所述持久化单元的内容。8.根据权利要求7所述的应用于OSGi环境下的流程运行方法,其特征在于,所述持久化单元的内容包括数据库。
6、和/或文件。9.根据权利要求6所述的应用于OSGi环境下的流程运行方法,其特征在于,所述步骤304具体包括:查找所述持久化单元中是否保存有所述第二节点对应的第二模块的运行环境;以及若查找到所述第二模块的运行环境,则直接在所述持久化单元中加载所述第二模块的运行环境;以及若未查找到所述第二模块的运行环境,则通知OSGi系统创建所述第二模块的运行环境,在创建完成后在所述持久化单元中加载所述第二模块的运行环境。10.根据权利要求6至9中任一项所述的应用于OSGi环境下的流程运行方法,其特征在于,所述流程包括多个节点,所述多个节点位于多个模块当中。权 利 要 求 书CN 103164243 A1/5页3。
7、应用于 OSGi 环境下的流程运行装置和流程运行方法技术领域0001 本发明涉及流程技术领域,具体而言,涉及一种应用于OSGi环境下的流程运行装置和流程运行方法。背景技术0002 OSGi(Open Service Gateway Initiative,开放服务网关发起组织)是面向Java的动态模型系统,它为模块化应用的开发定义了一个基础架构,使得应用程序可以实现定义精炼的、可重用的和可协作的标准组件,并能够灵活地、动态地组装和部署到应用系统中。由于这些特性,OSGi已经得到了业界的广泛应用,成为软件集成和企业开发的首选架构之一。0003 随着软件处理的业务复杂性的增加,跨区域,跨部门之间信息。
8、交互方式的需要越来越明显,而且跨区域,跨部门之间业务配合也越来越多。工作流技术以其灵活的设计与部署,将流程逻辑与业务逻辑相分离,可以很轻松地适应业务需求的多变,流程技术已经成为企业解决方案中重要的一部分。0004 然而由于OSGi环境下以模块为单位动态地的加载、部署与运行程序代码,以实现模块间的松散耦合,这种机制与传统的应用程序完全不同。0005 如图1所示,在OSGi环境下,异步流程的节点被分散在两个或多个模块之间,流程在执行的过程中会产生节点运行环境不匹配的情况,流程运行过程中需要在模块m1与m2中切换,即0-t1时间段内在m1环境中运行,而从t1时刻开始要进入m2环境,直至t2时刻;t2。
9、时刻以后流程则返回到原来的m1环境中。这时异步流程前后部分处理时的模块环境就会出现冲突,导致流程数据传递的失败。0006 因此,需要一种新的流程运行技术,可以解决异步流程中上下文环境会发生冲突的问题,从而避免流程数据传递失败。发明内容0007 本发明正是基于上述问题,提出了一种新的流程运行技术,可以解决异步流程中上下文环境会发生冲突的问题,从而避免流程数据传递失败。0008 有鉴于此,本发明提出了一种应用于OSGi环境下的流程运行装置,包括:持久化单元,当检测到流程中当前运行的第一节点和与其相邻的即将运行的第二节点属于不同模块时,保存所述第一节点对应的第一模块的运行环境;载入单元,当检测到所述。
10、流程运行至所述第二节点时,在所述持久化单元中加载所述第二节点对应的第二模块的运行环境。0009 在该技术方案中,通过将模块的运行环境持久化来实现不同模块间的运行环境的切换,从而解决了异步流程中上下文环境会发生冲突的问题,避免流程数据传递失败。0010 在上述技术方案中,优选地,还包括:设置单元,根据接收到的设置指令,设置所述持久化单元的内容。0011 在该技术方案中,用户可以根据自己的需求,任意设置运行环境的持久化位置,这说 明 书CN 103164243 A2/5页4样就会将运行环境持久化到用户想要保存的位置,给用户带来了方便。0012 在上述技术方案中,优选地,所述持久化单元的内容包括数据。
11、库和/或文件。0013 在该技术方案中,持久化单元的内容,即节点运行环境保存的位置可以是数据库也可以是文件。0014 在上述技术方案中,优选地,所述载入单元包括:运行环境查找子单元,查找所述持久化单元中是否保存有所述第二节点对应的第二模块的运行环境;运行环境加载子单元,若检测到所述环境查找子单元查找到所述第二模块的运行环境,则直接在所述持久化单元中加载所述第二模块的运行环境;运行环境创建子单元,若检测到所述运行环境查找单元未查找到所述第二模块的运行环境,则通知OSGi系统创建所述第二模块的运行环境,在创建完成后在所述持久化单元中加载所述第二模块的运行环境。0015 在该技术方案中,对于持久化单。
12、元中已经保存过的模块的运行环境,当运行到此模块的运行环境时,可以直接进行加载,而不需要再重新创建运行环境,节省了时间。0016 在上述技术方案中,优选地,所述流程包括多个节点,所述多个节点位于多个模块当中。0017 在该技术方案中,流程可以在多个不同的模块当中顺利的进行流程数据传递,而不会出现上下文环境冲突的问题。0018 根据本发明的又一方面,还提供了一种应用于OSGi环境下的流程运行方法,包括:步骤302,当检测到流程中当前运行的第一节点和与其相邻的即将运行的第二节点属于不同模块时,在持久化单元中保存所述第一节点对应的第一模块的运行环境;步骤304,当检测到所述流程运行至所述第二节点时,在。
13、所述持久化单元中加载所述第二节点对应的第二模块的运行环境。0019 在该技术方案中,通过将模块的运行环境持久化来实现不同模块间的运行环境的切换,从而解决了异步流程中上下文环境会发生冲突的问题,避免流程数据传递失败。0020 在上述技术方案中,优选地,所述步骤302还包括:根据接收到的设置指令,设置所述持久化单元的内容。0021 在该技术方案中,用户可以根据自己的需求,任意设置运行环境的持久化位置,这样就会将运行环境持久化到用户想要保存的位置,给用户带来了方便。0022 在上述技术方案中,优选地,所述持久化单元的内容包括数据库和/或文件。0023 在该技术方案中,持久化单元的内容,即节点运行环境。
14、保存的位置可以是数据库也可以是文件。0024 在上述技术方案中,优选地,所述步骤304具体包括:查找所述持久化单元中是否保存有所述第二节点对应的第二模块的运行环境;若查找到所述第二模块的运行环境,则直接在所述持久化单元中加载所述第二模块的运行环境;若未查找到所述第二模块的运行环境,则通知OSGi系统创建所述第二模块的运行环境,在创建完成后在所述持久化单元中加载所述第二模块的运行环境。0025 在该技术方案中,对于持久化单元中已经保存过的模块的运行环境,当运行到此模块的运行环境时,可以直接进行加载,而不需要再重新创建运行环境,节省了时间。0026 在上述技术方案中,优选地,所述流程包括多个节点,。
15、所述多个节点位于多个模块当中。说 明 书CN 103164243 A3/5页50027 在该技术方案中,流程可以在多个不同的模块当中顺利的进行流程数据传递,而不会出现上下文环境冲突的问题。0028 通过以上技术方案,可以解决异步流程中上下文环境会发生冲突的问题,从而避免流程数据传递失败,实现了异步流程和OSGi的结合。附图说明0029 图1示出了流程运行过程的示意图;0030 图2示出了根据本发明的实施例的流程运行装置的框图;0031 图3示出了根据本发明的实施例的流程运行方法的流程图;0032 图4示出了根据本发明的实施例的流程运行方法的具体流程图;0033 图5至图7示出了根据本发明的实施。
16、例的流程运行过程的示意图。具体实施方式0034 为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。0035 在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。0036 图2示出了根据本发明的实施例的流程运行装置的框图。0037 如图2所示,根据本发明的实施例的应用于OSGi环境下的流程运行装置200包括:持久化单元202,当检测到流程中当前运行的第。
17、一节点和与其相邻的即将运行的第二节点属于不同模块时,保存所述第一节点对应的第一模块的运行环境;载入单元204,当检测到所述流程运行至所述第二节点时,在所述持久化单元中加载所述第二节点对应的第二模块的运行环境。0038 在该技术方案中,通过将模块的运行环境持久化来实现不同模块间的运行环境的切换,从而解决了异步流程中上下文环境会发生冲突的问题,避免流程数据传递失败。0039 在上述技术方案中,优选地,还包括:设置单元206,根据接收到的设置指令,设置所述持久化单元的内容。0040 在该技术方案中,用户可以根据自己的需求,任意设置运行环境的持久化位置,这样就会将运行环境持久化到用户想要保存的位置,给。
18、用户带来了方便。0041 在上述技术方案中,优选地,所述持久化单元202的内容包括数据库和/或文件。0042 在该技术方案中,持久化单元的内容,即节点运行环境保存的位置可以是数据库也可以是文件。0043 在上述技术方案中,优选地,所述载入单元204包括:运行环境查找子单元2042,查找所述持久化单元202中是否保存有所述第二节点对应的第二模块的运行环境;运行环境加载子单元2044,若检测到所述环境查找子单元2042查找到所述第二模块的运行环境,则直接在所述持久化单元202中加载所述第二模块的运行环境;运行环境创建子单元2046,若检测到所述运行环境查找单元2042未查找到所述第二模块的运行环境。
19、,则通知说 明 书CN 103164243 A4/5页6OSGi系统创建所述第二模块的运行环境,在创建完成后在所述持久化单元202中加载所述第二模块的运行环境。0044 在该技术方案中,对于持久化单元中已经保存过的模块的运行环境,当运行到此模块的运行环境时,可以直接进行加载,而不需要再重新创建运行环境,节省了时间。0045 在上述技术方案中,优选地,所述流程包括多个节点,所述多个节点位于多个模块当中。0046 在该技术方案中,流程可以在多个不同的模块当中顺利的进行流程数据传递,而不会出现上下文环境冲突的问题。0047 图3示出了根据本发明的实施例的流程运行方法的流程图。0048 如图3所示,根。
20、据本发明的实施例的应用于OSGi环境下的流程运行方法,包括:步骤302,当检测到流程中当前运行的第一节点和与其相邻的即将运行的第二节点属于不同模块时,在持久化单元中保存所述第一节点对应的第一模块的运行环境;步骤304,当检测到所述流程运行至所述第二节点时,在所述持久化单元中加载所述第二节点对应的第二模块的运行环境。0049 在该技术方案中,通过将模块的运行环境持久化来实现不同模块间的运行环境的切换,从而解决了异步流程中上下文环境会发生冲突的问题,避免流程数据传递失败。0050 在上述技术方案中,优选地,所述步骤302还包括:根据接收到的设置指令,设置所述持久化单元的内容。0051 在该技术方案。
21、中,用户可以根据自己的需求,任意设置运行环境的持久化位置,这样就会将运行环境持久化到用户想要保存的位置,给用户带来了方便。0052 在上述技术方案中,优选地,所述持久化单元的内容包括数据库和/或文件。0053 在该技术方案中,持久化单元的内容,即节点运行环境保存的位置可以是数据库也可以是文件。0054 在上述技术方案中,优选地,所述步骤304具体包括:查找所述持久化单元中是否保存有所述第二节点对应的第二模块的运行环境;若查找到所述第二模块的运行环境,则直接在所述持久化单元中加载所述第二模块的运行环境;若未查找到所述第二模块的运行环境,则通知OSGi系统创建所述第二模块的运行环境,在创建完成后在。
22、所述持久化单元中加载所述第二模块的运行环境。0055 在该技术方案中,对于持久化单元中已经保存过的模块的运行环境,当运行到此模块的运行环境时,可以直接进行加载,而不需要再重新创建运行环境,节省了时间。0056 在上述技术方案中,优选地,所述流程包括多个节点,所述多个节点位于多个模块当中。0057 在该技术方案中,流程可以在多个不同的模块当中顺利的进行流程数据传递,而不会出现上下文环境冲突的问题。0058 下面以审批流程为例,结合图4至图7,对本发明的技术方案进行详细说明。0059 图4示出了根据本发明的实施例的流程运行方法的具体流程图。0060 如图4所示,根据本发明的实施例的流程运行方法的具。
23、体流程如下:0061 步骤402,保存当前流程运行环境。当流程中相邻的两个节点分别属于两个不同的模块时,节点在流程运行时所需要的环境就会随着模块的不同而不同,就需要对前一个节说 明 书CN 103164243 A5/5页7点进行运行环境的保存,持久化介质可以根据具体情况自行选择,具体如图5所示,当流程运行到审批节点时,这时检测到其一下节点,不是审批节点,而是处理节点,此时,模块的运行环境就不同了,此时就把审批节点所对应的m1模块的运行环境保存。0062 步骤404,载入目标环境。当流程中正在运行的节点与前一个节点不属于一个模块时,需要单独从持久化介质中加载此节点的运行环境,如图6所示,当流程从。
24、审批节点运行到处理节点时,它所需要的环境是模块m2的环境,而这个节点之前的环境是模块m1的环境,这时就需要从数据库或文件中加载模块m2的运行环境。0063 步骤406,恢复持久化的环境。对于持久化介质中已经保存过的模块的运行环境,当运行到此模块的运行环境时,可以直接进行加载,而不需要再重新创建运行环境,节省了时间。如图7所示,当流程再次回转到m1运行环境时,上一个节点的运行环境就会产生冲突,此时就要将之前保存的m1环境从持久化介质中取出来,实现运行环境的切换。0064 以上结合附图详细说明了本发明的技术方案,通过本发明的技术方案,可以解决异步流程中上下文环境会发生冲突的问题,从而避免流程数据传递失败,实现了异步流程和OSGi的结合。0065 术语“多个”指两个或两个以上,除非另有明确的限定。0066 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。说 明 书CN 103164243 A1/4页8图1图2说 明 书 附 图CN 103164243 A2/4页9图3图4说 明 书 附 图CN 103164243 A3/4页10图5图6说 明 书 附 图CN 103164243 A10。