CN103186826A - 业务处理方法及装置 - Google Patents
业务处理方法及装置 Download PDFInfo
- Publication number
- CN103186826A CN103186826A CN2011104544858A CN201110454485A CN103186826A CN 103186826 A CN103186826 A CN 103186826A CN 2011104544858 A CN2011104544858 A CN 2011104544858A CN 201110454485 A CN201110454485 A CN 201110454485A CN 103186826 A CN103186826 A CN 103186826A
- Authority
- CN
- China
- Prior art keywords
- event
- point
- business
- contact
- logic
- 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.)
- Pending
Links
- 238000012545 processing Methods 0.000 title claims abstract description 48
- 238000003672 processing method Methods 0.000 title abstract 3
- 238000000034 method Methods 0.000 claims abstract description 84
- 230000008859 change Effects 0.000 claims description 12
- 230000008520 organization Effects 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 abstract 1
- 238000012550 audit Methods 0.000 description 64
- 238000004321 preservation Methods 0.000 description 31
- 238000006243 chemical reaction Methods 0.000 description 16
- 238000011161 development Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 9
- 238000012423 maintenance Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000005520 cutting process Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000013439 planning Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000012467 final product Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000035515 penetration Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 235000012364 Peperomia pellucida Nutrition 0.000 description 1
- 240000007711 Peperomia pellucida Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000009941 weaving Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种业务处理方法,应用在一业务处理系统中,所述业务处理系统包括至少一业务功能,包括以下步骤:通过至少一切点事件,自所述业务功能的主业务逻辑中区隔出至少一易变业务逻辑;通过方法接口组织所述主业务逻辑;通过事件接口组织所述所有切点事件;所述业务功能实现时,实现所述方法接口中的所述主业务逻辑;以及所述主业务逻辑实现时,引发所述事件接口中对应的切点事件,执行对应的易变业务逻辑。易变业务逻辑由切片承载,通过组合切片的方式可以扩充业务功能,使得切片更容易被复用也更容易管理和维护。
Description
技术领域
本发明涉及企业资源规划领域,尤其涉及一种业务处理方法及装置。
背景技术
ERP(Enterprise Resource Planning,企业资源规划)是指建立在信息技术基础上,以系统化的管理思想,为企业决策层及员工提供决策运行手段的管理平台。它把企业的物流、人流、资金流、信息流统一起来进行管理,以求最大限度地利用企业现有资源,实现企业经济效益的最大化。在企业中,一般的管理主要包括三方面的内容:生产控制(计划、制造)、物流管理(分销、采购、库存管理)和财务管理(会计核算、财务管理)。这三大系统本身就是集成体,它们互相之间有相应的接口,能够很好的整合在一起来对企业进行管理。ERP系统的设计目标是满足业务需求,这就需要对复杂的业务功能进行建模。
传统的业务功能建模方式是根据业务流程建立各个功能模块或者组件,每个功能模块或者组件完成其业务功能的完整逻辑。对于不同的应用场景每个功能的业务逻辑可能存在差异,例如部分单据要求保存后立即生效,部分单据在审核后需要对相关人员发送通知等等。若要使一个功能模块的定义能够满足不同应用场景的需求,就需要在实现逻辑中判断应用场景,造成实现逻辑复杂,难以维护和扩展。若将不同应用场景的功能实现划分成不同子模块,则造成系统结构复杂,同样难以维护。当需求发生变更时,往往需要进行重构,增加了二次开发的成本。
参考附图1所示是一种应用AOP的现有业务处理方法的流程示意图,采用AOP(Aspect Oriented Programming,面向切面的编程)技术解决上述问题,易变逻辑通过切入点(point cut)配置,由切面(Aspect )承载,切面是对象操作过程中的截面,如权限检查、日志、事务处理等;切入点是一系列连接点的集合,它指明切面上承载的处理逻辑在什么时候被触发;连接点是程序运行中的某个阶段点,如某个方法执行前,执行后或有异常抛出时等。切面通过固定在主逻辑两端的连接点接入到主逻辑中,即切面逻辑织入到业务流程中,实际上是更改了原有的主逻辑;连接点固定在方法体外部,不可扩展;连接点的定义与业务逻辑分离,预定义通用的扩展点,一般不考虑与业务关联;当需求发生变更时,同样可能需要进行重构,增加了二次开发的成本。
发明内容
本发明所要解决的技术问题是,提供一种业务处理方法及装置,解决现有技术中传统的业务功能建模方式中实现逻辑复杂,难以维护和扩展,以及当需求发生变更时,往往需要进行重构,增加了二次开发的成本的问题。
为了解决上述问题,本发明提供了一种业务处理方法,应用在一业务处理系统中,所述业务处理系统包括至少一业务功能,包括以下步骤:通过至少一切点事件,自所述业务功能的主业务逻辑中区隔出至少一易变业务逻辑;通过方法接口组织所述主业务逻辑;通过事件接口组织所述所有切点事件;所述业务功能实现时,实现所述方法接口中的所述主业务逻辑;以及所述主业务逻辑实现时,引发所述事件接口中对应的切点事件,执行对应的易变业务逻辑。
进一步,所述易变业务逻辑为所述业务功能的公用功能中容易发生变化或需要扩展的业务逻辑,在逻辑上与所述主业务逻辑区隔。
进一步,至少一所述易变业务逻辑由一切片承载。
进一步,至少一所述切片注册于所述切点事件中。
进一步,所述切点事件被引发时,执行注册于所述切点事件中的所述所有切片所承载的易变业务逻辑。
进一步,所述切片中包括显式定义切片间的依赖关系。
进一步,在执行所述切点事件中注册的所有切片所承载的易变业务逻辑时,若显式定义了切片之间的依赖关系,则按照该依赖关系执行所述所有易变业务逻辑;否则按所有切片注册于切点事件中的顺序依次执行所述所有易变业务逻辑。
进一步,所述容易发生变化或需要扩展的业务逻辑存在于不同业务领域、不同业务对象或不同版本的业务处理系统。
为了解决上述问题,本发明还提供了一种业务处理装置,应用在一业务处理系统中,所述业务处理系统包括至少一业务功能,包括:
主业务逻辑单元,用于实现所述业务功能对应的主业务逻辑;
方法接口单元,用于组织所述主业务逻辑单元中的主业务逻辑;
切点事件定义单元,用于将易变业务逻辑发生的时机点定义为切点事件,并为所述切点事件配置至少一易变业务逻辑;
事件接口单元,用于组织所述切点事件定义单元中的切点事件。
本发明所述业务处理装置进一步包括一切片单元和一切片注册单元,所述切片单元包括至少一个切片,所述切片通过程序代码实现易变业务逻辑;所述切片注册单元,用于将所述切片单元中的切片注册到所述切点事件定义单元的相应切点事件中。
本发明的有益技术效果在于,由于切片中实现了易变业务逻辑与主业务逻辑的区隔,撰写切片的人员无需关心事件的发起者是谁,只需要关心事件上下文数据,使开发者关注点更集中,也使切片可以复用;使用事件接口管理切点事件,事件接口之间可以互相扩展;并且切片使用配置的方式加入到系统,切片之间可以定义依赖关系,使得不同切片上承载的易变业务逻辑具有先后次序,形成了易变的业务流程,并且使切片定义的易变业务逻辑的粒度可以很小;通过组合切片的方式可以扩充业务功能,使得切片更容易被复用也更容易管理和维护;应用切片的方式后,主业务逻辑中实现的是公用逻辑,可以在各种应用场景中通用,若需变更业务逻辑,只需替换切片,使得整个ERP系统更易于开发、二次开发与行业类别的开发与维护。
附图说明
图1,一种应用AOP的现有业务处理方法的流程示意图;
图2,本发明所述业务处理方法的步骤示意图;
图3,本发明所述业务处理方法的业务流程图;
图4,本发明所述业务处理方法的实施例的架构示意图;
图5,本发明所述业务处理装置的结构示意图。
具体实施方式
下面结合附图对本发明提供的业务处理方法及装置的具体实施方式做详细说明。
本发明所述的业务处理方法及装置,应用于业务处理系统中,所述业务处理系统包括至少一业务功能。例如ERP系统中物流管理的库存管理时,会涉及到编辑、保存、审核等业务功能。ERP系统的设计目标是满足业务需求,本发明采取事件注册与事件引发机制实现易变业务逻辑的业务处理,进而完成相应业务功能。
参考附图2所示是本发明所述业务处理方法的步骤示意图,接下来对附图2所示的步骤做详细说明。
S21:通过至少一切点事件,自所述业务功能的主业务逻辑中区隔出至少一易变业务逻辑。
分析业务流程中所包括的业务功能,可以确定实现相应业务功能的主业务逻辑。对业务功能进行进一步分析,从主业务逻辑中区隔出易变业务逻辑。
易变业务逻辑即为业务功能中容易发生变化的逻辑,包括在软件系统版本改变、应用领域不同以及应用对象不同时,业务功能中容易发生改变或需要扩展的部分,并且在逻辑上与业务功能的主业务逻辑区隔(即易变业务逻辑与主业务逻辑之间在逻辑上无紧密关联)。比如说,同样是保存功能,有些公司可能需要在保存后通知相关负责人,有些公司就不需要通知相关负责人,因此通知这一业务逻辑就是一易变业务逻辑;再比如系统版本改变时,保存前合法性检查所检查的内容或规则也可能发生变化。
将容易发生改变或需要扩展的业务逻辑发生的时机点定义为切点事件,通过所述切点事件,自所述业务功能的主业务逻辑中区隔出至少一易变业务逻辑。所述切点事件并不是固定在相应主业务逻辑的两端,而是根据业务决定的,所以是在方法体内部引发切点事件,即在业务流程内部,与业务逻辑紧密关联。同一个切点事件中可以同时配置多个易变业务逻辑。
切点事件中配置的易变业务逻辑的具体实现由切片承载,每一切点事件配置至少一易变业务逻辑,每一易变业务逻辑由一切片(aspect)承载,切片由程序代码实现。通过在程序代码中标记切片的类型和应用领域,以便被相应的解释器解释;定义切片方法,并在切片方法中标记该切片所监听的切点事件。在程序设计时通过切片配置的方式配置切片,在软件系统运行时运用切片解释器,把该切片中的切片方法注册到所监听的切点事件中。在业务功能主业务逻辑执行到易变业务逻辑位置时,会引发该易变业务逻辑所监听的切点事件,执行该切片中的易变业务逻辑。同一个切点事件中可以同时注册多个切片,当该切点事件被引发时,执行所有已注册的切片中的易变业务逻辑的实现。
以业务单据处理流程为例,单据处理流程中至少包括编辑、保存与审核等业务功能。分析保存与审核功能,可以确定保存功能的主业务逻辑为保存主逻辑、审核功能的主业务逻辑为审核主逻辑。对保存与审核功能进行进一步分析,发现在单据保存前、保存后、审核前、审核后可能需要对不同的单据类型做特殊处理,不同的用户对这些时机点的需求可能也不同,例如会有要求在保存、审核前进行数据合法性检查;或是在保存前对单据进行单位转换或根据单据上某一个字段的内容,填写其它字段内容;以及保存、审核后进行通知或记录日志的需求等。所以,定义保存功能的2个切点事件,保存前、保存后切点事件;以及定义审核功能的2个切点事件,审核前和审核后切点事件。通过所述4个切点事件,自保存与审核业务功能的主业务逻辑中区隔出至少4个易变业务逻辑。
分析需求发现客户A要求在保存前对单据进行单位转换和数据合法性检查,在保存后对保存事件进行通知;所以为保存前切点事件配置两个易变业务逻辑,分别为单位转换和保存前数据合法性检查,实现单位转换的切片和保存前数据合法性检查的切片,均标记应用到保存前切点事件,配置到保存功能中;为保存后切点事件配置一通知业务逻辑,由通知切片承载,标记应用到保存后切点事件,同样配置到保存功能中;同时发现客户A要求在审核前对单据进行数据合法性检查,在审核后对审核事件进行通知,所以为审核前切点事件配置一审核前数据合法性检查业务逻辑,实现审核前数据合法性检查业务逻辑的切片,标记应用到审核前切点事件,配置到审核功能中;为审核后切点事件配置一通知业务逻辑,由通知切片承载,标记应用到审核后切点事件,同样配置到审核功能中。
S22:通过方法接口组织所述主业务逻辑。
方法接口是对功能实现的约束,方法接口中至少定义有一方法,但不包含方法的具体实现。主业务逻辑实现时必须实现方法接口中定义的方法,外界在使用主业务逻辑实现时也是通过调用方法接口中的方法来达成。
例如单据处理中,用保存方法接口组织保存主逻辑;用审核方法接口组织审核主逻辑。在保存方法接口中定义了Save方法,保存主逻辑在保存服务中实现,则保存服务需要实现保存方法接口,并实现Save方法。单据处理过程中通过调用保存服务的Save方法来执行保存主逻辑。
S23:通过事件接口组织所述所有切点事件。
事件接口用于组织各切点事件,事件接口中至少定义有一切点事件,每一切点事件对应主业务逻辑中一易变业务逻辑发生的时间点。在主业务逻辑实现时,在易变业务逻辑发生的代码位置加入引发对应切点事件的逻辑。
比如在单据处理流程中,定义了4个切点事件,保存前、保存后、审核前和审核后,将保存前和保存后切点事件定义在保存功能的事件接口中,将审核前和审核后切点事件定义在审核功能的事件接口中。保存主逻辑在保存服务中实现。在保存服务实现时,如上步骤S22中的示例,需要实现Save方法,在Save方法实现时,首先引发保存事件接口中定义的保存前切点事件,然后将数据写入数据库,最后引发保存接口中定义的保存后切点事件。
考虑到切点事件并不是固定在相应主业务逻辑的两端,所以当业务流程发生改变或发现新的易变业务逻辑时,考虑是否需要增加新的切点事件,以及是否需要定义新的事件接口。切片中的易变业务逻辑是注册到切点事件中的,若业务流程发生改变,不需要该易变业务逻辑时,直接通过切片配置的方式移除该切片即可。若需要新增一易变业务逻辑,而承载该易变业务逻辑的切片是现有的,可以直接通过切片配置的方式增加该切片即可。若需要新增一易变业务逻辑,而承载该易变业务逻辑的切片并不是现有的,需要新增并编译易变业务逻辑的承载切片的代码,并考虑是否可以注册到现有的切点事件中,若可以则通过切片配置的方式在程序设计时加入到切点事件中;若没有可以注册的现有切点事件,则考虑是否需要在主业务逻辑中定义新的事件接口,若新定义事件接口,则在该新的事件接口中定义一新的切点事件,将承载该易变业务逻辑的切片注册到新的切点事件中,并完成配置。
事件接口之间可以相互扩展。如果一个事件接口扩展了另一个事件接口,则扩展后的事件接口包含本事件接口及其扩展的事件接口中所有的切点事件,在业务功能实现时,会同时实现两个事件接口中的所有切点事件所对应的易变业务逻辑。
同一功能的方法接口一般是固定不变的,如果对同一功能有不同的业务需求,可以通过提供不同的事件接口来提供不同的切点以便对业务逻辑进行扩展。例如对于日志记录有2种实现方式,记录日志到文件和记录日志到数据库。只需定义一个日志记录的方法接口,其中定义了Log方法。而记录日志到文件和数据库这两种实现方式中易变逻辑发生的时间点不同,记录日志到文件时可能在记录前、记录后发生逻辑改变;记录日志到数据库可能在记录前、连接到数据库后和记录后发生逻辑改变。所以定义2个事件接口,文件日志事件接口和数据库日志事件接口。在文件日志服务实现时,实现日志记录的方法接口和文件日志事件接口;在数据库日志服务实现时,实现日志记录的方法接口和数据库日志事件接口。
S24:所述业务功能实现时,实现所述方法接口中的所述主业务逻辑。
所述方法接口及每一事件接口具有一实现对象,所述实现对象实现时,会实现所述方法接口中的方法,在所述方法中实现主业务逻辑。比如在单据处理业务流程中,保存主逻辑以及保存前和保存后的切点事件,共同实现保存功能。保存的方法接口中定义了Save方法,保存功能实现时依照保存的方法接口在Save方法中实现具体保存主逻辑。保存主逻辑在实现时会先引发保存前切点事件,之后将单据中的数据写入数据库,写入完成后引发保存后切点事件,至此即实现了保存功能的保存主逻辑。
S25:所述业务功能实现时,实现所述易变业务逻辑对应的切片,并将所述切片注册到切点事件中。
切片由程序代码实现。切片中主要通过程序代码实现切片方法,在切片方法中实现易变业务逻辑。在程序代码中还需标记切片应用到哪个切点事件中,以便在运行时被注册到对应的切点事件中。切片是注册于相应切点事件中的,同一个切点事件中可以同时注册多个切片;切片之间可以定义依赖关系,使得不同切片上承载的易变业务逻辑具有先后次序,形成了易变的业务流程,并且使切片定义的易变业务逻辑的粒度可以很小。依赖关系的定义可以在切片的代码实现中显式定义。切片和切点事件不是一对一的关系,同一个切点事件中可以同时注册多个切片,一个切片也可以同时注册到不同的切点事件中。
比如在单据处理业务流程中,保存功能包含单位转换、数据合法性检查和通知这三个易变业务逻辑。为此,定义单位转换切片,数据合法性检查切片和通知切片。在实现单位转换切片和数据合法性检查切片时,在代码中标记应用到保存前切点事件,在实现通知切片时,在代码中标记应用到保存后切点事件。
S26:所述主业务逻辑实现时,引发所述事件接口中的所有易变业务逻辑的实现。
易变业务逻辑由切片承载,切片是在设计时通过切片配置的方式配置到业务系统中,在系统运行时,通过加载切片配置,将切片上所承载的易变业务逻辑通过事件注册的方式合并到相应的主业务逻辑中,与主业务逻辑一起共同完成相应的业务功能的实现。同一个切点事件中可以同时注册多个切片,当该切点事件被引发时,如果多个切片中没有定义依赖关系,则会按照切片注册顺序依次执行切片中的易变业务逻辑;如果定义有依赖关系,则会按照依赖关系进行执行。
比如在单据处理业务流程中,保存功能事件接口中定义了保存前和保存后切点事件,保存前切点事件中配置了单位转换以及数据合法性检查两个易变业务逻辑,保存后切点事件中配置了通知业务逻辑。系统在运行时会加载相应的切片配置并注册到相应的切点事件中,注册即是所述相应的切片中的易变业务逻辑会监听所述对应的切点事件。当业务功能执行到保存主逻辑时,引发保存前切点事件,即会先执行单位转换以及数据合法性检查这两个易变业务逻辑;在执行完保存主逻辑后,引发保存后切点事件的执行,即执行通知业务逻辑,至此完成了保存功能。同样审核功能事件接口中定义了审核前和审核后切点事件,审核前切点事件中配置了审核前数据合法性检查,审核后切点事件中配置了通知业务逻辑;当业务功能执行到审核主逻辑时,先引发审核前切点事件,执行审核前数据合法性检查;在执行完审核主逻辑后,引发审核后切点事件的执行,即执行通知业务逻辑,至此完成了审核功能。
附图3为本发明所述业务处理方法的业务流程图,切片上承载易变业务逻辑,切片由程序代码实现;通过切片配置指明切片上承载的易变业务逻辑在什么时候被触发;切片通过切点与业务流程进行关联;切点是业务流程运行中的某个容易发生改变或需要扩展的逻辑发生的时机点,切点上配置有相应的切点事件;通过相应的事件接口组织各切点事件。一个事件接口中可以包含多个切点,每个切点对应一切点事件,每个切点事件上可以配置多个切片。一个切片也可以同时配置到不同的切点事件中,从而应用到不同的业务功能中。业务流程执行到主业务逻辑时,会引发相应的事件接口中的所有切片承载的易变业务逻辑的实现。
由于切片逻辑并不织入(Weaving,是把切片应用到目标对象来创建新的代理对象的过程)到业务流程中,而是在运行时通过切点与业务流程进行关联,即通过事件注册的方式将切片中的易变业务逻辑注册到切点事件中,并不会更改原有的主业务逻辑,因此撰写切片的人员无需关心事件的发起者是谁,只需要关心事件上下文数据,也使切片可以复用。切点定义在业务流程内部,与主业务逻辑紧密关联(在方法体内部),当需求发生变更时,可以及时增加或删除相应切片,使得整个ERP系统更易于开发、二次开发与行业类别的开发与维护。
参考附图4所示是本发明所述业务处理方法的实施例的架构示意图,以单据处理流程为例对本发明所述业务处理方法进行详细说明。
首先,分析单据处理流程,抽取出编辑、保存与审核3个业务功能。
然后,可以确定实现保存的业务功能的主业务逻辑为保存主逻辑、实现审核的业务功能的主业务逻辑为审核主逻辑。保存主逻辑与审核主逻辑分别由相应的方法接口组织实现。
接着,对编辑、保存与审核3个业务功能进行进一步分析,发现在单据保存前、保存后、审核前以及审核后,可能需要对不同的单据类型做特殊处理,不同的用户对这些时机点的需求可能也不同,例如会有要求在保存前以及审核前进行数据合法性检查,或是在保存前对单据进行单位转换或根据单据上某一个字段的内容,填写其它字段内容;保存后以及审核后进行通知或记录日志的需求。所以,定义出4个切点事件,保存前、保存后、审核前和审核后。通过事件接口方式组织各切点事件,将保存前和保存后切点事件定义在保存功能的事件接口中,审核前和审核后切点事件定义在审核功能的事件接口中。
分析需求发现客户A要求在保存前对单据进行单位转换和数据合法性检查,为此,将实现单位转换的切片和保存前数据检查的切片,标志应用到保存前切点事件,配置到保存功能的事件接口中,并且在单位转换之后才能进行数据合法性检查,所以在保存前数据合法性检查切片中显式定义依赖于单位转换切片。客户A要求在保存后以及审核后对事件进行通知,为此,将实现通知的切片,注册到保存后切点事件中,配置到保存功能的事件接口中,同时注册到审核后切点事件中,配置到审核功能的事件接口中。客户A要求在审核前对单据进行数据合法性检查,为此,将实现审核前数据检查的切片,标志应用到审核前切点事件,配置到审核功能的事件接口中。
最后,实现编辑、保存与审核的具体逻辑。
系统在运行时会加载切片配置,将单位转换切片和保存前数据检查切片注册到保存前切点事件中,将通知切片注册到保存后切点事件以及审核后切点事件中,将审核前数据检查切片注册到审核前切点事件中。
当执行到保存主逻辑时,引发保存前切点事件,发现注册有2个切片,其中,保存前数据检查切片依赖于单位转换切片,所以先执行单位转换切片中定义的易变业务逻辑再执行保存前数据检查切片中定义的易变业务逻辑。保存前切点事件中包含的易变业务逻辑执行完后,执行保存主逻辑,读取单据数据并写入数据库。写入完成后引发保存后切点事件,执行通知切片中定义的易变业务逻辑至此,即实现了保存功能。审核功能的实现与保存功能的实现过程相似,此处不再重复描述。
本发明在实现业务功能时,分析出业务功能中容易发生变化的逻辑,将这些易变业务逻辑从主业务逻辑中抽离出来,在系统实现时通过代码在切片中实现易变业务逻辑,并通过切片配置的方式将切片加入到业务系统中,在运行时系统自动将切片注册到相应切点事件中;执行主业务逻辑时,执行到易变业务逻辑发生的时机点时,会引发相应切点事件,执行切片中定义的易变业务逻辑。由于切片中实现了易变业务逻辑与主业务逻辑的区隔,撰写切片的人员无需关心事件的发起者是谁,只需要关心事件上下文数据,使开发者关注点更集中,也使切片可以复用;使用事件接口管理切点事件,事件接口之间可以互相扩展;并且切片使用配置的方式加入到系统,切片之间可以定义依赖关系,使得不同切片上承载的易变业务逻辑具有先后次序,形成了易变的业务流程,并且使切片定义的易变业务逻辑的粒度可以很小。通过组合切片的方式可以扩充业务功能,使得切片更容易被复用也更容易管理和维护;应用切片的方式后,主业务逻辑中实现的是公用逻辑,可以在各种应用场景中通用,若需变更业务逻辑,只需替换切片,使得整个ERP系统更易于开发、二次开发与行业类别的开发与维护。
参考附图5所示是本发明所述业务处理装置的结构示意图,与本发明所述业务处理方法相对应,包括:
主业务逻辑单元M51,用于实现业务功能对应的主业务逻辑。比如单据处理流程中至少包括编辑、保存与审核等业务功能;分析单据处理流程,可以确定实现保存功能的主业务逻辑为保存主逻辑、实现审核功能的主业务逻辑为审核主逻辑。
方法接口单元M52,用于组织所述主业务逻辑单元M51中的主业务逻辑。
切点事件定义单元M53,用于将易变业务逻辑发生的时机点定义为切点事件,并为所述切点事件配置至少一易变业务逻辑。
事件接口单元M54,用于组织所述切点事件定义单元M53中的切点事件。通过事件接口方式组织各切点事件,将一组切点事件定义在一个事件接口中。
进一步,本发明所述装置还包括切片单元M55和切片注册单元M56。
切片单元M55包括至少一个切片,所述切片通过程序代码实现易变业务逻辑。
切片注册单元M56,用于将所述切片单元M55中的切片注册到所述切点事件定义单元M53的相应切点事件中。一个切点事件中可以注册多个切片,多个切片间可以定义依赖关系,当该切点事件被引发时,如果多个切片中没有定义依赖关系,则会按照切片注册顺序依次执行切片中的易变业务逻辑;如果定义有依赖关系,则会按照依赖关系进行执行。
系统在运行时会通过切片注册单元M56,将切片单元M55中的切片注册到切点事件定义单元M53中相应的切点事件中。当执行方法接口单元M52中由主业务逻辑单元M51中的主业务逻辑时,引发相应切点事件中注册的切片单元M55中切片定义的易变业务逻辑的执行,之后执行所述主业务逻辑,完成后引发相应切点事件中注册的切片所定义的易变业务逻辑的执行。至此,即实现了主业务逻辑相应的业务功能。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种业务处理方法,应用在一业务处理系统中,所述业务处理系统包括至少一业务功能,其特征在于,包括以下步骤:
通过至少一切点事件,自所述业务功能的主业务逻辑中区隔出至少一易变业务逻辑;
通过方法接口组织所述主业务逻辑;
通过事件接口组织所述所有切点事件;
所述业务功能实现时,实现所述方法接口中的所述主业务逻辑;以及
所述主业务逻辑实现时,引发所述事件接口中对应的切点事件,执行对应的易变业务逻辑。
2.如权利要求1所述的业务处理方法,其特征在于:所述易变业务逻辑为所述业务功能的中容易发生变化或需要扩展的业务逻辑,在逻辑上与所述主业务逻辑区隔。
3.如权利要求1所述的业务处理方法,其特征在于:至少一所述易变业务逻辑由一切片承载。
4.如权利要求3所述的业务处理方法,其特征在于:至少一所述切片注册于所述切点事件中。
5.如权利要求3所述的业务处理方法,其特征在于:所述切点事件被引发时,执行注册于所述切点事件中的所述所有切片所承载的易变业务逻辑。
6.如权利要求4所述的业务处理方法,其特征在于:所述切片中包括显式定义切片间的依赖关系。
7.如权利要求5或6所述的业务处理方法,其特征在于:在执行所述切点事件中注册的所有切片所承载的易变业务逻辑时,若显式定义了切片之间的依赖关系,则按照该依赖关系执行所述所有易变业务逻辑;否则按所有切片注册于切点事件中的顺序依次执行所述所有易变业务逻辑。
8.如权利要求2所述的业务处理方法,其特征在于:所述容易发生变化或需要扩展的业务逻辑存在于不同业务领域、不同业务对象或不同版本的业务处理系统。
9.一种业务处理装置,应用在一业务处理系统中,所述业务处理系统包括至少一业务功能,其特征在于,包括:
主业务逻辑单元,用于实现所述业务功能对应的主业务逻辑;
方法接口单元,用于组织所述主业务逻辑单元中的主业务逻辑;
切点事件定义单元,用于将易变业务逻辑发生的时机点定义为切点事件,并为所述切点事件配置至少一易变业务逻辑;
事件接口单元,用于组织所述切点事件定义单元中的切点事件。
10.如权利要求9所述的业务处理装置,其特征在于:进一步包括一切片单元和一切片注册单元,所述切片单元包括至少一个切片,所述切片通过程序代码实现易变业务逻辑;所述切片注册单元,用于将所述切片单元中的切片注册到所述切点事件定义单元的相应切点事件中。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104544858A CN103186826A (zh) | 2011-12-30 | 2011-12-30 | 业务处理方法及装置 |
TW101122420A TWI576776B (zh) | 2011-12-30 | 2012-06-22 | 業務邏輯處理方法及裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011104544858A CN103186826A (zh) | 2011-12-30 | 2011-12-30 | 业务处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103186826A true CN103186826A (zh) | 2013-07-03 |
Family
ID=48677986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011104544858A Pending CN103186826A (zh) | 2011-12-30 | 2011-12-30 | 业务处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN103186826A (zh) |
TW (1) | TWI576776B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388958A (zh) * | 2018-09-30 | 2019-02-26 | 四川长虹电器股份有限公司 | 一种基于切面的数据权限管理服务中间件平台方案 |
CN113689172A (zh) * | 2021-04-06 | 2021-11-23 | 鼎捷软件股份有限公司 | 业务流程管理系统及业务流程管理方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1686528A2 (en) * | 2005-01-27 | 2006-08-02 | Market Axess Inc. | A method and apparatus for automated order protection trading |
CN1946042A (zh) * | 2006-10-09 | 2007-04-11 | 西安交通大学 | 基于aop技术的大规模集群管理监控系统中的报警方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5634127A (en) * | 1994-11-30 | 1997-05-27 | International Business Machines Corporation | Methods and apparatus for implementing a message driven processor in a client-server environment |
CN100411367C (zh) * | 2002-11-19 | 2008-08-13 | 华为技术有限公司 | 一种服务器同时处理多业务逻辑的实现方法和装置 |
CN101388089A (zh) * | 2005-08-09 | 2009-03-18 | 金蝶软件(中国)有限公司 | 一种工作流中业务逻辑处理的方法和装置 |
CN100520722C (zh) * | 2007-12-29 | 2009-07-29 | 北京方正国际软件系统有限公司 | 一种分布式多业务逻辑异步处理的方法、系统及装置 |
TW200947222A (en) * | 2008-05-02 | 2009-11-16 | Hon Hai Prec Ind Co Ltd | System and method for calling data openly |
-
2011
- 2011-12-30 CN CN2011104544858A patent/CN103186826A/zh active Pending
-
2012
- 2012-06-22 TW TW101122420A patent/TWI576776B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1686528A2 (en) * | 2005-01-27 | 2006-08-02 | Market Axess Inc. | A method and apparatus for automated order protection trading |
CN1946042A (zh) * | 2006-10-09 | 2007-04-11 | 西安交通大学 | 基于aop技术的大规模集群管理监控系统中的报警方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388958A (zh) * | 2018-09-30 | 2019-02-26 | 四川长虹电器股份有限公司 | 一种基于切面的数据权限管理服务中间件平台方案 |
CN113689172A (zh) * | 2021-04-06 | 2021-11-23 | 鼎捷软件股份有限公司 | 业务流程管理系统及业务流程管理方法 |
CN113689172B (zh) * | 2021-04-06 | 2023-11-28 | 鼎捷软件股份有限公司 | 业务流程管理系统及业务流程管理方法 |
Also Published As
Publication number | Publication date |
---|---|
TWI576776B (zh) | 2017-04-01 |
TW201327436A (zh) | 2013-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8775389B2 (en) | Implementing continuous control monitoring for audit purposes using a complex event processing environment | |
Schmidt et al. | Strategic alignment of cloud-based architectures for big data | |
CN109284251A (zh) | 日志管理方法、装置、计算机设备以及存储介质 | |
CN107015853B (zh) | 多阶段任务的实现方法和装置 | |
CN104216948B (zh) | 一种数据模型的差异控制方法 | |
CN105721193A (zh) | 一种系统信息监控的方法和设备 | |
CN107193539B (zh) | 多线程并发处理方法和多线程并发处理系统 | |
CN102043682A (zh) | 一种工作流异常处理方法和系统 | |
CN107391532B (zh) | 数据过滤的方法和装置 | |
Li et al. | Assessment of machine learning algorithms in cloud computing frameworks | |
CN101826144A (zh) | 标签流动方向的确定方法及装置 | |
CN110599093A (zh) | 机场行李全流程追踪方法及系统 | |
US10394793B1 (en) | Method and system for governed replay for compliance applications | |
CN103186826A (zh) | 业务处理方法及装置 | |
Fahrenkrog-Petersen | Providing Privacy Guarantees in Process Mining. | |
Rifqi et al. | Lean 4.0, six Sigma-Big data toward future industrial opportunities and challenges: A literature review | |
Daugėla et al. | Real-time anomaly detection for distributed systems logs using Apache Kafka and H2O. ai | |
CN102346666B (zh) | 捕获和处理在erp临时阶段中生成的数据 | |
Bhagattjee | Emergence and taxonomy of big data as a service | |
Ibtissame et al. | Real time processing technologies in big data: Comparative study | |
CN102999554A (zh) | 业务数据处理方法和装置 | |
CN110502219B (zh) | 企业级it架构资产管理系统及方法 | |
CN104753692A (zh) | 对传输网络进行智能故障定位和派单的方法和系统 | |
US9286112B2 (en) | Determining and dispatching processing agent for transaction processing | |
CN102073836A (zh) | 标签流动方向的确定方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130703 |