CN104915193A - 一种流程引擎的处理方法和装置 - Google Patents
一种流程引擎的处理方法和装置 Download PDFInfo
- Publication number
- CN104915193A CN104915193A CN201510221569.5A CN201510221569A CN104915193A CN 104915193 A CN104915193 A CN 104915193A CN 201510221569 A CN201510221569 A CN 201510221569A CN 104915193 A CN104915193 A CN 104915193A
- Authority
- CN
- China
- Prior art keywords
- assembly
- process step
- flow
- module
- class
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明实施例提供了一种流程引擎的处理方法和装置,其中的方法包括:在流程执行过程中,动态加载流程步骤对应的组件,以实现所述流程步骤的逻辑功能;对未执行的流程步骤对应的组件进行更新。本发明实施例能够提高流程的执行效率。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种流程引擎的处理方法和装置。
背景技术
随着管理信息化的普遍应用和迅速发展,对流程管理和流程自动化提出了更高的要求,为了应对不断变化的企业内外环境和流程需求,各种用于流程管理的流程引擎不断涌现。然而,随着企业规模的壮大,流程人员及流程本身的变更也在增加,在传统的流程引擎中,若要对流程配置进行更新,则必须中断整个流程。
例如,JBPM(JBoss Business Process Management,业务流程管理)是一个覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。在JBPM中,正在处理一个请假申请流程时,如果请假申请流程已经发起,此时该请假申请的流程数据已经被固定到JBPM的流程表中,若要对该请假申请流程进行更新,且要将新流程实时应用到所有请假申请中,则需要中断当前所有正在运行的请假申请流程,更新完毕后再重新发起请假申请,按照更新后流程重新开始,由此以来,当需要更新的流程较多时,会影响流程的执行效率。
发明内容
本发明实施例所要解决的技术问题是提供一种流程引擎的处理方法和装置,能够提高流程的执行效率。
为了解决上述问题,本发明公开了一种流程引擎的处理方法,包括:
在流程执行过程中,动态加载流程步骤对应的组件,以实现所述流程步骤的逻辑功能;
对未执行的流程步骤对应的组件进行更新。
优选地,所述对未执行的流程步骤进行实时更新的步骤,包括:
对所述未执行的流程步骤对应的原组件进行更新,并导出更新后新组件对应的文件;
在组件运行环境中,停止所述原组件对应的服务;
在所述组件运行环境中移除所述原组件;
将所述新组件对应的文件安装到所述组件运行环境中;
启动所述新组件。
优选地,所述组件具有唯一的标识信息;所述在流程执行过程中,动态加载流程步骤对应的组件,以实现所述流程步骤的逻辑功能的步骤,包括:
在流程执行过程中,依据组件的标识信息获取所述组件对应的类加载器;其中,组件和类加载器具有一一对应的关系;
利用所述类加载器对实现所述组件逻辑功能所需要的类资源进行加载,以动态执行流程步骤的逻辑功能。
优选地,在流程中包括数据处理的流程步骤时,所述方法还包括:
依据配置管理数据库定义所述数据处理的流程及流程步骤;
设置所述数据处理的流程步骤的完整类路径,以及确定该流程步骤对应的组件名称;
将所述完整类路径设置为独立的组件,以实现对应的数据处理功能。
优选地,所述流程中包括审批功能的流程步骤,所述方法还包括:
依据配置管理数据库,在所述审批功能的流程步骤中配置所要关联的人员信息,将所述人员信息作为该流程步骤的审核人员。
优选地,所述方法还包括:
建立包括各流程步骤对应组件的组件库;
在流程执行过程中对所述组件库中的各组件进行复用。
依据本发明的另一个方面,提供了一种流程引擎的处理装置,包括:
加载模块,用于在流程执行过程中,动态加载流程步骤对应的组件,以实现所述流程步骤的逻辑功能;以及
更新模块,用于对未执行的流程步骤对应的组件进行更新。
优选地,所述更新模块,包括:
更新子模块,用于对所述未执行的流程步骤对应的原组件进行更新,并导出更新后新组件对应的文件;
停止服务子模块,用于在组件运行环境中,停止所述原组件对应的服务;
移除子模块,用于在所述组件运行环境中移除所述原组件;
安装子模块,用于将所述新组件对应的文件安装到所述组件运行环境中;
启动子模块,用于启动所述新组件。
优选地,所述组件具有唯一的标识信息;所述加载模块,包括:
获取子模块,用于在流程执行过程中,依据组件的标识信息获取所述组件对应的类加载器;其中,组件和类加载器具有一一对应的关系;
资源加载子模块,用于利用所述类加载器对实现所述组件逻辑功能所需要的类资源进行加载,以动态执行流程步骤的逻辑功能。
优选地,所述装置还包括:
定义模块,用于依据配置管理数据库定义所述数据处理的流程及流程步骤;
设置类路径模块,用于设置所述数据处理的流程步骤的完整类路径,以及确定该流程步骤对应的组件名称;
设置组件模块,用于将所述完整类路径设置为独立的组件,以实现对应的数据处理功能。
优选地,所述装置还包括:
审批模块,用于依据配置管理数据库,在所述审批功能的流程步骤中配置所要关联的人员信息,将所述人员信息作为该流程步骤的审核人员。
优选地,所述装置还包括:
建立组件库模块,用于建立包括各流程步骤对应组件的组件库;
组件复用模块,用于在流程执行过程中对所述组件库中的各组件进行复用。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例将流程中的各步骤配置成独立的组件,并且在流程执行过程中对各步骤对应的组件动态进行加载,使得流程引擎的各流程步骤相互独立,从而可以在流程执行过程中对指定的未执行的流程步骤进行实时更新,例如,当流程执行到某一步骤时,可因业务需求动态更新流程后续未执行步骤的处理逻辑,来适应动态多变的业务需求,并且无需中断整个流程,从而可以提高流程的执行效率。
附图说明
图1示出了本发明的一种流程引擎的处理方法实施例的步骤流程图;
图2示出了本发明的一种通用接口的示意图;
图3示出了本发明的一种依据CMDB核心表定义流程步骤的步骤流程图;
图4示出了本发明的一种流程引擎的处理系统的系统流程图;
图5示出了本发明的一种将与第三方系统有数据交互行为的流程步骤设置为组件的步骤;
图6示出了本发明的一种流程执行过程的步骤流程图;
图7示出了示出了本发明的一种流程执行的步骤流程图;及
图8示出了本发明一种流程引擎的处理装置的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
组件化实施例
参见图1,示出了本发明的一种流程引擎的处理方法实施例的步骤流程图,具体可以包括:
步骤101、在流程执行过程中,动态加载流程步骤对应的组件,以实现所述流程步骤的逻辑功能;
为了实现流程执行过程中流程步骤的实时更新,本发明实施例将流程步骤设计成独立的组件,由组件实现流程步骤的逻辑功能。其中,组件的设计可以依据以下几个原则:
自包含:一个组件应该是一个业务逻辑的整体。它应该可以作为一个独立的整体被移动、安装和卸载。组件不是一个最小单位,它可以包含多个更小的部分,但这些部分不能独立存在。
高内聚:一个组件不应该做很多不相关的事情,它应该专注于一个业务逻辑的目标并尽全力实现这个目标。
低耦合:一个组件不应该关注其他组件的内部实现,松散的联系允许更改某个特定的组件,而不会影响到其他的组件。
对于如何将流程步骤设计成组件,本发明对此不加以限制,本领域技术人员可以根据实际需要进行灵活设计。在本发明的一种应用示例中,可以依据OSGi(Open Service Gateway Initiative,开放服务网关规范)标准将流程中的各步骤设置成独立的组件(Bundle);其中,OSGi是面向Java的动态模型系统,其核心组件是OSGI框架,这个框架为Bundle提供了一个标准环境。
在具体应用中,一个Bundle具体可以包括以下内容:
部署描述文件MANIFEST.MF、超文本标记语言(Hyper Text MarkupLanguage,HTML)、可扩展标记语言(Extensible Markup Language,XML)等各类资源文件、以及类文件。其中,Bundle的名称标识等元数据信息可以保存在MANIFEST.MF文件中,实现组件对应的流程步骤逻辑功能的类可以保存在类文件中。
下面给出本发明的一种将流程步骤StepOne设计成Bundle的应用示例,具体可以包括以下步骤:
步骤A1、基于Eclipse集成开发环境新建组件项目;
步骤A2、在新建的该组件项目中新建java类,该Java类用于实现流程引擎的接口:ExecuteService;
步骤A3、通过实现(implements)ExecuteService接口中的execute方法,实现流程步骤StepOne的处理逻辑,如系统交互、数据计算等;
具体代码示例如下:
步骤A4、将该组件项目以jar的方式导出,放入OSGi运行环境中,并启动该组件项目。
在完成了将流程步骤设计成OSGi组件之后,为了解决将这些组件化的流程步骤能够准确无误的在一个流程中执行的问题,可以设计一个流程引擎控制器,该流程引擎控制器可以用于串联各流程步骤对应的各个Bundle,以控制流程按照指定的顺序执行,例如,在执行流程的过程中,读取配置信息,先执行步骤1,则根据步骤1对应的组件名称加载步骤1的组件,步骤1执行完成后再执行步骤2、步骤3等等。其中,配置信息主要包括:该流程步骤执行类Class名称、该Class所在组件的名称、该流程步骤所关联的审批人员信息、以及流程步骤的执行顺序。上述配置信息可以在流程开始使用前进行配置。
在具体应用中,Bundle的运行主要依靠于OSGi框架为其创建的类加载器(ClassLoader),类加载器负责查找和加载Bundle自身或所依赖的类资源。
在本发明的一种优选实施例中,所述组件具有唯一的标识信息;所述在流程执行过程中,对流程步骤对应的组件动态进行加载,以动态执行流程步骤的逻辑功能的步骤,可以包括:
在流程执行过程中,依据组件的标识信息获取所述组件对应的类加载器;其中,组件和类加载器具有一一对应的关系;
所述类加载器对实现所述组件逻辑功能所需要的类资源进行加载,以动态执行流程步骤的逻辑功能。
本实施例在流程引擎中可以提供一个动态获取流程步骤所在Bundle的ClassLoader的方法,当动态获得该ClassLoader时,便可以根据流程指定的配置信息,动态的实现Bundle对应流程步骤的处理逻辑。具体地,ClassLoader的获得,可以根据OSGi模式在运行时每个Bundle都有唯一一个确定的标识信息,即组件名称BundleName找到该运行的Bundle,然后获得该Bundle的ClassLoader。
在本发明的一种应用示例中,获得Bundle的ClassLoader具体可以包括以下步骤:
B1、向获取ClassLoader的方法传递Bundle参数,如该Bundle的标识信息;
B2、根据所述Bundle参数,得到与所述Bundle对应的一个类文件的URL(Uniform Resource Locator,统一资源定位符);
B3、依据所述URL得到所述Bundle对应流程步骤所设定的完整类路径的类Class;
B4、得到流程执行类的Class类型(ClassType),依据该ClassType便可获得所述Bundle的ClassLoader。
下面给出本发明的一种获得Bundle的ClassLoader的代码示例,具体可以包括:
在具体应用中,除了在运行时动态获得流程步骤Bundle的ClassLoader之外,还需要设计一个能够调度执行流程步骤处理逻辑的通用接口ExecuteService:所有的流程步骤都实现该接口,通过实现(implements)ExecuteService接口中的execute方法,实现流程步骤的处理逻辑,如系统交互、数据计算等,然后利用Java多态特点,流程引擎控制器能够准确的执行具体的流程步骤逻辑。参照图2,示出了本发明的一种通用接口的示意图。
优选地,所述方法还可以包括:
建立包括各流程步骤对应组件的组件库;
在流程执行过程中对所述组件库中的各组件进行复用。
本发明实施例可以为各流程步骤对应的组件建立组件库,由于组件具有标准化的接口和平台独立性,因此可以方便地对组件复用,从而可以缩减流程引擎开发和维护的成本。
步骤102、对未执行的流程步骤对应的组件进行更新。
本发明实施例对流程步骤进行组件化设计,使得各组件为高内聚、低耦合、以及实现独立逻辑功能的整体,使得流程步骤可以热插拔的方式实现,因此,在流程运行状态中可以依据需要对未执行的流程步骤进行实时更新。
在基于OSGi的框架中,对未执行的流程步骤进行实时更新可以包括以下子步骤:
步骤C1、对所述未执行的流程步骤对应的原组件逻辑代码进行更新,并导出更新后新组件的jar文件;
步骤C2、在OSGi运行环境中停止所述未执行的流程步骤对应的原组件的服务;
步骤C3、在OSGi运行环境中移除所述原组件;
步骤C4、将所述新组件对应的jar文件安装到所述OSGi环境中;
步骤C5、启动所述新组件。
在本发明的一种应用示例中,用户申请一个负载均衡应用,该应用的流程为先执行步骤甲,再执行步骤乙。当用户点击申请负载均衡应用时,触发该流程的执行,此流程走到步骤甲,步骤甲对应一个独立的组件bundle1,通过加载bundle1执行步骤甲对应的算法或计算逻辑得到运算结果,此时,若需要对步骤乙的算法或计算逻辑进行修正,则可以采用上述更新步骤对步骤乙对应的bundle2进行更新,而不用中断整个申请流程。
综上,本发明流程引擎的处理方法将流程中的各步骤配置成独立的组件,并且在流程执行过程中对各步骤对应的组件动态进行加载,使得流程引擎的各流程步骤相互独立,从而可以在流程执行过程中对指定的未执行的流程步骤进行实时更新,例如,当流程执行到某一步骤时,可因业务需求动态更新流程后续未执行步骤的处理逻辑,来适应动态多变的业务需求,并且无需中断整个流程,从而可以提高流程的执行效率。
数据处理实施例一
传统的流程引擎无法同时具备业务流程与数据集成的功能,需要独立引入两个开源框架。本发明实施例在CMDB(Configuration ManagementDatabase,配置管理数据库)数据模型中实现流程引擎,该流程引擎可以同时具备业务流程功能和数据集成功能,使得在流程执行的同时能够根据流程配置中的条件和需求与其它系统进行数据交互。
CMDB可以将现有常规二维表的固定结构打散开来,用动态可配置的方式,按照需要动态生成可配置的二维表。也就是将表的列变成独立的单元,然后依照配置信息,将打散开来的列拼成需要的表,该表中的列可动态添加或删除。
在本发明实施例中,流程引擎中的流程定义,流程步骤定义,以及流程步骤涉及审批功能的关系设计都依据CMDB的核心表来完成。CMDB的核心表具体可以包括:ConstraintType约束类型、PropertyPool属性池、ClassTree配置树、ConfigItem配置项、CIRelationShip配置项关系、CIPropertyValue配置项属性。
其中,ConstraintType:将要接入系统的数据模型之属性的数据类型抽象化成约束种类,进而可重复使用。如:数值类型、字符类型、日期类型、数组类型等。
PropertyPool:数据模型的属性池,用于数据模型的选用配置。
ClassTree:配置树具有把数据模型所需要的属性进行串联的功能。
ConfigItem:数据模型在配置树定义完属性后的数据具体表现。
CIRelationShip:数据模型与数据模型的数据具体表现之间的关系。
CIPropertyValue:一个数据模型中不同属性的具体值,作用是将传统二维的表结构变成单个的数据单元,当需要表现具体数据结构时,则是在这些数据单元依照已经配置好的关系展现成数据的具体完整表现。
本发明的流程引擎依据上述6张核心表处理各种数据模型,从而形成一个完全基于配置化的流程引擎系统。
参照图3,示出了本发明的一种依据CMDB核心表定义流程步骤的步骤流程图,具体可以包括:
步骤301、定义流程步骤所需要的字段;
具体地,例如可以定义流程步骤名称、流程步骤执行类Class、流程步骤所在组件名称BundleName等。
步骤302、确定所述字段的约束类型;
例如字符类型、数组类型、数字类型、关联类型等,这些约束类型可以在CMDB的ConstraintType表中进行创建。
步骤303、在CMDB中的PropertyPool表中创建步骤301中定义字段的属性;
具体地,在创建属性时会关联该属性的约束类型。
步骤304、在CMDB的ClassTree表中将流程定义步骤所需的属性关联起来;
具体地,涉及(Class_Tree、Property_Pool、Class_Property_Rel)表。
步骤305、依照ClassTree定义信息,在Config_Item、CIPropertyValue中将流程步骤数据表现出来。
在本发明的一种优选实施例中,在所述流程中包括审批步骤;
则可以利用CIRelationShip对配置项关系的指向,即ConfigItem(CI)与ConfigItem的关系,起到流程与相关审批人员关联的作用。
其中,CIRelationship用于存放配置类中的数据表现CI与CI中的关系,相当于与对系统中的两个数据建立起关系,比如:“我是男生”是“我是人(ClassTree_User)”的一个实例(ConfigItem);“男生”是“性别(ClassTree_Gender)”的一个实例(ConfigItem);这两个ConfigItem之间有着“我是男生”的关联关系。
在传统的流程引擎中,需要横向添加表的方式来存放流程引擎信息,例如,至少需要添加审批人员表、审批流程步骤定义表、审批流程顺序定义表、审批流程与审批数据关联表,审批历史表来实现业务流程功能。
而本发明实施例可以在CMDB数据模型中配置流程所需信息,用这种方式进行配置可以将原来的二维表抽象为可配置的动态二维表,以减少原来所需定制的二维表数量,最少化使用独立表来为流程引擎服务,无需像传统横向添加表的方式来存放流程引擎信息。此外,采用CMDB建模的系统,可减少流程引擎对数据表的依赖,从而可减少运维人员维护数据表难度,并且,无需独立引入业务流程和系统集成两个开源框架即可同时具备业务流程与系统集成的功能,从而可以减少系统开发的难度,实现轻量级的流程引擎。
数据处理实施例二
本实施例的流程引擎的处理方法在上述实施例的基础上,进一步还可以包括如下可选技术方案。
参照图4,示出了本发明的一种流程引擎的处理系统的系统流程图,在该流程引擎中,流程中可以包括数据处理的流程步骤,该流程步骤可以实现与第三方系统的数据交互。在本发明的一种应用示例中(如图4),在流程引擎系统中可以包括若干个与第三系统进行数据交互的组件,如Bundle1、Bundle2至Bundle n,并且依据这些组件建立了组件库,系统人员可以依据组件库中各组件实现的逻辑功能来完成各流程步骤的定义,以实现组件的复用。在有权限用户登录流程引擎系统之后,可以对流程信息进行配置,如配置流程步骤执行类Class名称、该Class所在组件的名称、该流程步骤所关联的审批人员信息、以及流程步骤的执行顺序等信息,以及将上述配置完成后的配置信息保存在CMDB中。在流程的配置信息配置完成之后,即可执行该流程。
参照图5,示出了本发明的一种将与第三方系统有数据交互行为的流程步骤设置为组件的步骤,也即上述图4中的Bundle1、Bundle2等组件的设置步骤,具体可以包括:
步骤501、依据配置管理数据库定义所述数据处理的流程及流程步骤;
具体地,在ClassTree中建立流程定义的ClassTree、流程步骤定义的ClassTree;
步骤502、设置所述数据处理的流程步骤的完整类路径,以及确定该流程步骤对应的组件名称;
在流程执行过程中,可以根据组件名称找到该组件名称下实现该组件逻辑功能的类,然后运行该类。
步骤503、将所述完整类路径设置为独立的组件,以实现对应的数据处理功能。
具体地,将所述完整类路径设置为独立的组件,也即将完整类路径下的java class设置为独立的组件,该java class用于实现对应流程步骤的逻辑功能,可以在独立的java插件项目中进行开发。
优选地,所述方法还可以包括:
若包括审批功能,则依据所述配置管理数据库,在所述审批功能的流程步骤中配置所要关联的人员信息,将所述人员信息作为该流程步骤的审核人员。
在本实施例中,当流程中包括数据处理的流程步骤时,将该步骤设置成独立的组件,在流程运行的过程中,可以实现与第三方系统的数据交互功能,使得流程引擎既可以满足业务流程功能,同时又可以满足系统集成功能,而且无需独立引入业务流程和系统集成两个开源框架,从而可以减少系统开发的难度,实现轻量级的流程引擎。
流程执行实施例
参照图6,示出了本发明的一种流程执行过程的步骤流程图,当流程开始时,可以按照预先配置的流程步骤的顺序依次执行各流程步骤,如先执行流程步骤1,判断是否关联审核人员,若关联,则进入审核步骤,审核通过则再执行完流程步骤1之后执行流程步骤2;若不关联审核人员,则在执行完流程步骤1之后直接执行流程步骤2;重复执行上述步骤直至最后一个流程步骤n执行完成,流程结束。其中,在流程运行状态,可以利用OSGi热部署方式对未执行的流程步骤组件进行实时更新。
参照图7,示出了本发明的一种流程执行的步骤流程图,具体可以包括:
步骤701、流程开始;
步骤702、按照预先配置的流程步骤的顺序依次执行各流程步骤;
步骤703、若当前流程步骤涉及审批功能,则提示关联审批人进行审批;
在实际应用中,可以邮件或短信等方式提示关联审批人进行审批,本发明对于提示方式不加以限制。
步骤704、若不需要审批则执行完当前步骤逻辑,重复执行上述步骤直至流程执行结束;
步骤705、在流程运行状态,可以对需要更新的未执行的流程步骤进行实时更新。
装置实施例
参照图8,示出了本发明一种流程引擎的处理装置的结构框图,具体可以包括:
加载模块810,用于在流程执行过程中,动态加载流程步骤对应的组件,以实现所述流程步骤的逻辑功能;以及
更新模块820,用于对未执行的流程步骤对应的组件进行更新。
优选地,所述更新模块820,具体可以包括:
更新子模块,用于对所述未执行的流程步骤对应的原组件进行更新,并导出更新后新组件对应的文件;
停止服务子模块,用于在组件运行环境中,停止所述原组件对应的服务;
移除子模块,用于在所述组件运行环境中移除所述原组件;
安装子模块,用于将所述新组件对应的文件安装到所述组件运行环境中;
启动子模块,用于启动所述新组件。
优选地,所述组件具有唯一的标识信息;所述加载模块710,具体可以包括:
获取子模块,用于在流程执行过程中,依据组件的标识信息获取所述组件对应的类加载器;其中,组件和类加载器具有一一对应的关系;
资源加载子模块,用于利用所述类加载器对实现所述组件逻辑功能所需要的类资源进行加载,以动态执行流程步骤的逻辑功能。
优选地,所述装置还可以包括:
定义模块,用于依据配置管理数据库定义所述数据处理的流程及流程步骤;
设置类路径模块,用于设置所述数据处理的流程步骤的完整类路径,以及确定该流程步骤对应的组件名称;
设置组件模块,用于将所述完整类路径设置为独立的组件,以实现对应的数据处理功能。
优选地,所述装置可以还包括:
审批模块,用于依据配置管理数据库,在所述审批功能的流程步骤中配置所要关联的人员信息,将所述人员信息作为该流程步骤的审核人员。
优选地,所述装置还可以包括:
建立组件库模块,用于建立包括各流程步骤对应组件的组件库;
组件复用模块,用于在流程执行过程中对所述组件库中的各组件进行复用。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种流程引擎的处理方法和装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种流程引擎的处理方法,其特征在于,所述方法包括:
在流程执行过程中,动态加载流程步骤对应的组件,以实现所述流程步骤的逻辑功能;
对未执行的流程步骤对应的组件进行更新。
2.如权利要求1所述的方法,其特征在于,所述对未执行的流程步骤进行实时更新的步骤,包括:
对所述未执行的流程步骤对应的原组件进行更新,并导出更新后新组件对应的文件;
在组件运行环境中,停止所述原组件对应的服务;
在所述组件运行环境中移除所述原组件;
将所述新组件对应的文件安装到所述组件运行环境中;
启动所述新组件。
3.如权利要求1所述的方法,其特征在于,所述组件具有唯一的标识信息;所述在流程执行过程中,动态加载流程步骤对应的组件,以实现所述流程步骤的逻辑功能的步骤,包括:
在流程执行过程中,依据组件的标识信息获取所述组件对应的类加载器;其中,组件和类加载器具有一一对应的关系;
利用所述类加载器对实现所述组件逻辑功能所需要的类资源进行加载,以动态执行流程步骤的逻辑功能。
4.如权利要求1所述的方法,其特征在于,在流程中包括数据处理的流程步骤时,所述方法还包括:
依据配置管理数据库定义所述数据处理的流程及流程步骤;
设置所述数据处理的流程步骤的完整类路径,以及确定该流程步骤对应的组件名称;
将所述完整类路径设置为独立的组件,以实现对应的数据处理功能。
5.如权利要求1所述的方法,其特征在于,所述流程中包括审批功能的流程步骤,所述方法还包括:
依据配置管理数据库,在所述审批功能的流程步骤中配置所要关联的人员信息,将所述人员信息作为该流程步骤的审核人员。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
建立包括各流程步骤对应组件的组件库;
在流程执行过程中对所述组件库中的各组件进行复用。
7.一种流程引擎的处理装置,其特征在于,所述装置包括:
加载模块,用于在流程执行过程中,动态加载流程步骤对应的组件,以实现所述流程步骤的逻辑功能;以及
更新模块,用于对未执行的流程步骤对应的组件进行更新。
8.如权利要求7所述的装置,其特征在于,所述更新模块,包括:
更新子模块,用于对所述未执行的流程步骤对应的原组件进行更新,并导出更新后新组件对应的文件;
停止服务子模块,用于在组件运行环境中,停止所述原组件对应的服务;
移除子模块,用于在所述组件运行环境中移除所述原组件;
安装子模块,用于将所述新组件对应的文件安装到所述组件运行环境中;
启动子模块,用于启动所述新组件。
9.如权利要求7所述的装置,其特征在于,所述组件具有唯一的标识信息;所述加载模块,包括:
获取子模块,用于在流程执行过程中,依据组件的标识信息获取所述组件对应的类加载器;其中,组件和类加载器具有一一对应的关系;
资源加载子模块,用于利用所述类加载器对实现所述组件逻辑功能所需要的类资源进行加载,以动态执行流程步骤的逻辑功能。
10.如权利要求7所述的装置,其特征在于,所述装置还包括:
定义模块,用于依据配置管理数据库定义所述数据处理的流程及流程步骤;
设置类路径模块,用于设置所述数据处理的流程步骤的完整类路径,以及确定该流程步骤对应的组件名称;
设置组件模块,用于将所述完整类路径设置为独立的组件,以实现对应的数据处理功能。
11.如权利要求7所述的装置,其特征在于,所述装置还包括:
审批模块,用于依据配置管理数据库,在所述审批功能的流程步骤中配置所要关联的人员信息,将所述人员信息作为该流程步骤的审核人员。
12.如权利要求7所述的装置,其特征在于,所述装置还包括:
建立组件库模块,用于建立包括各流程步骤对应组件的组件库;
组件复用模块,用于在流程执行过程中对所述组件库中的各组件进行复用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510221569.5A CN104915193B (zh) | 2015-05-04 | 2015-05-04 | 一种流程引擎的处理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510221569.5A CN104915193B (zh) | 2015-05-04 | 2015-05-04 | 一种流程引擎的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104915193A true CN104915193A (zh) | 2015-09-16 |
CN104915193B CN104915193B (zh) | 2018-02-23 |
Family
ID=54084277
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510221569.5A Active CN104915193B (zh) | 2015-05-04 | 2015-05-04 | 一种流程引擎的处理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104915193B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106056311A (zh) * | 2016-06-21 | 2016-10-26 | 武汉斗鱼网络科技有限公司 | 一种基于职位的可视化审批链配置方法与系统 |
CN106716371A (zh) * | 2016-11-09 | 2017-05-24 | 达闼科技(北京)有限公司 | 打开应用的方法、电子设备及管理服务器 |
CN109144549A (zh) * | 2018-08-29 | 2019-01-04 | 北京城市网邻信息技术有限公司 | 管理外部扩展资源的方法、装置、设备及可读存储介质 |
WO2020015215A1 (zh) * | 2018-07-19 | 2020-01-23 | 平安科技(深圳)有限公司 | 工作流引擎的管理方法及装置、存储介质、计算机设备 |
CN111258567A (zh) * | 2018-12-01 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 服务代码开发处理方法及装置 |
CN112990769A (zh) * | 2021-04-21 | 2021-06-18 | 北京宇信科技集团股份有限公司 | 业务处理方法、装置、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030037324A1 (en) * | 2001-08-17 | 2003-02-20 | Sun Microsystems, Inc. And Netscape Communications Corporation | Profile management for upgrade utility |
CN101634946A (zh) * | 2009-08-20 | 2010-01-27 | 华南理工大学 | 一种rfid构件的生成方法 |
CN102541598A (zh) * | 2011-12-26 | 2012-07-04 | 深圳联友科技有限公司 | 一种动态加载组件的方法及系统 |
-
2015
- 2015-05-04 CN CN201510221569.5A patent/CN104915193B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030037324A1 (en) * | 2001-08-17 | 2003-02-20 | Sun Microsystems, Inc. And Netscape Communications Corporation | Profile management for upgrade utility |
CN101634946A (zh) * | 2009-08-20 | 2010-01-27 | 华南理工大学 | 一种rfid构件的生成方法 |
CN102541598A (zh) * | 2011-12-26 | 2012-07-04 | 深圳联友科技有限公司 | 一种动态加载组件的方法及系统 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106056311A (zh) * | 2016-06-21 | 2016-10-26 | 武汉斗鱼网络科技有限公司 | 一种基于职位的可视化审批链配置方法与系统 |
CN106716371A (zh) * | 2016-11-09 | 2017-05-24 | 达闼科技(北京)有限公司 | 打开应用的方法、电子设备及管理服务器 |
WO2018086017A1 (zh) * | 2016-11-09 | 2018-05-17 | 达闼科技(北京)有限公司 | 打开应用的方法、电子设备及管理服务器 |
CN106716371B (zh) * | 2016-11-09 | 2020-11-10 | 达闼科技(北京)有限公司 | 打开应用的方法、电子设备及管理服务器 |
WO2020015215A1 (zh) * | 2018-07-19 | 2020-01-23 | 平安科技(深圳)有限公司 | 工作流引擎的管理方法及装置、存储介质、计算机设备 |
CN109144549A (zh) * | 2018-08-29 | 2019-01-04 | 北京城市网邻信息技术有限公司 | 管理外部扩展资源的方法、装置、设备及可读存储介质 |
CN111258567A (zh) * | 2018-12-01 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 服务代码开发处理方法及装置 |
CN111258567B (zh) * | 2018-12-01 | 2023-06-16 | 阿里巴巴集团控股有限公司 | 服务代码开发处理方法及装置 |
CN112990769A (zh) * | 2021-04-21 | 2021-06-18 | 北京宇信科技集团股份有限公司 | 业务处理方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104915193B (zh) | 2018-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104915193A (zh) | 一种流程引擎的处理方法和装置 | |
CN102656557B (zh) | 自动化企业软件开发 | |
US8776009B2 (en) | Method and system for task modeling of mobile phone applications | |
US8630969B2 (en) | Systems and methods for implementing business rules designed with cloud computing | |
US20150006469A1 (en) | Methodology supported business intelligence (BI) software and system | |
CN106055325B (zh) | 一种支撑多系统同时运行的服务构建方法 | |
CN108965375B (zh) | 服务调用代理控制系统、方法、服务器及可读存储介质 | |
CN112860260B (zh) | 一种在高校场景下基于web的跨平台应用构建工具及方法 | |
WO2021057252A1 (zh) | 一种业务处理流程配置方法、业务请求处理方法及装置 | |
CN109298900A (zh) | 一种应用拆分以及按需加载方法、装置 | |
CN115993966B (zh) | 应用开发系统及方法 | |
CN107294750A (zh) | 一种云集群能自识别的分布配置管理方法和装置 | |
Cai et al. | A pattern-based code transformation approach for cloud application migration | |
CN103678396B (zh) | 一种基于数据模型的数据备份方法和装置 | |
JP2011525269A (ja) | 共同サービス指向ワークショップ向けデータ管理方法 | |
Hou | Design and implementation of the framework for Spring+ SpringMVC+ MyBatis in the development of web application | |
US10732948B2 (en) | System and method for implementing automated deployment | |
Khaliluzzaman et al. | Pre and post controller based MVC architecture for web application | |
CN113760462A (zh) | 一种调度自动化系统验证环境的构建方法及装置 | |
CN112988123A (zh) | 面向ddd的软件设计方法及系统 | |
US8984016B2 (en) | Method of process management in a collaborative service-oriented framework | |
CN112068879A (zh) | 基于配置化的客户端应用程序开发框架构建方法及装置 | |
Mukhtar et al. | Enhanced approach for developing web applications using model driven architecture | |
CN116483707A (zh) | 测试方法、装置、设备、存储介质及程序产品 | |
CN116029648A (zh) | 基于产品bom结构的关系建模管理方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |