CN103793232A - 一种基于aop的构件调用和扩展框架实现方法 - Google Patents
一种基于aop的构件调用和扩展框架实现方法 Download PDFInfo
- Publication number
- CN103793232A CN103793232A CN201410057757.4A CN201410057757A CN103793232A CN 103793232 A CN103793232 A CN 103793232A CN 201410057757 A CN201410057757 A CN 201410057757A CN 103793232 A CN103793232 A CN 103793232A
- Authority
- CN
- China
- Prior art keywords
- expansion
- aop
- extension
- calls
- extensible processor
- 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
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于AOP的构件调用和扩展框架实现方法,包括步骤:S10:定义构件的主实体,并配置其AOP扩展点;S11:对有效的扩展点注册构件扩展监听,进行构件扩展定义;S12:调用定义好的构件;S13:判断是否存在有效的、且注册了业务逻辑扩展的扩展点,若存在,则调用业务逻辑扩展处理器对注册的业务逻辑扩展监听进行处理;S14:重复步骤S12和S13,分别对构件参数解析后的扩展点、构件调用前扩展点、构件调用后扩展点进行处理。本发明可以对构件的调用过程进行灵活的扩展,按需配置整个调用过程中业务逻辑的调用过程,以更好的适应用户特定的业务场景,充分满足多变的客户需求。
Description
技术领域
本发明属于计算机信息处理技术领域,涉及一种基于AOP的构件调用和扩展框架实现方法。
背景技术
最近几十年,软件开发技术得到了迅猛发展,先后经历了从汇编语言、面向过程、到面向对象、再到现在流行的面向构件、面向服务开发的过程。
面向构件开发是九十年代初提出的一种新的软件开发方式,它是在一定构件模型的支持下,复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件系统的过程。软件构件相当于工业流水线生产上的“标准件”,其最大特点就是可以通过不断复用,有效的缩减开发周期、降低成本。随着以分布式对象为基础的构件实现技术日趋成熟,它已经成为现今软件复用技术的研究热点,被认为是最具潜力的软件工程发展方向之一。
在基于构件的开发过程中,最重要的就是要进行细粒度的构件定义和复用、进行灵活的组装和扩展、以及已有构件的沉淀和积累。这就需要有一个灵活、可扩展的构件调用和扩展引擎、及其所依赖的企业构件库。
但是,目前很多现有的构件调用和扩展引擎,都存在着诸多的严重不足,无法满足用户对易用性、灵活组装和强大的可扩展能力、以及在构件扩展时进行选择过滤的需求。
故,针对上述目前现有技术存在的不足,实有必要进行开发研究,以提供一种方案,可以对构件的调用过程进行灵活的扩展,按需配置整个调用过程中业务逻辑的调用过程,以更好的适应用户特定的业务场景,充分满足多变的客户需求。
发明内容
为解决上述问题,本发明的目的在于提供一种基于AOP的构件调用和扩展框架实现方法,可以对构件的调用过程进行灵活的扩展,按需配置整个调用过程中业务逻辑的调用过程,以更好的适应用户特定的业务场景,充分满足多变的客户需求。
为实现上述目的,本发明的技术方案为:
一种基于AOP的构件调用和扩展框架实现方法,包括下步骤:
S10:定义构件的主实体,并配置其AOP扩展点;
S11:对有效的扩展点注册构件扩展监听,进行构件扩展定义;
S12:调用定义好的构件;
S13:判断是否存在有效的、且注册了业务逻辑扩展的扩展点,若存在,则调用业务逻辑扩展处理器对注册的业务逻辑扩展监听进行处理;
S14:重复步骤S12和S13,分别对构件参数解析后的扩展点、构件调用前扩展点、构件调用后扩展点进行处理。
进一步地,步骤S10中,所述的构件主实体的定义具体包括构件编号定义、程序集定义、待执行方法的形参定义;主实体定义完成后,设置预定义的AOP扩展点的Enable属性;所述扩展点包括构件参数解析前扩展、构件参数解析后扩展、构件调用前扩展、构件调用后扩展。
进一步地,步骤S11中,构件扩展定义包括构件扩展处理器组ExtHandlerGroup定义、构件扩展处理器ExtHandler定义、以及构件扩展可执行过滤器ExtFilter定义。
进一步地,件扩展定义时,首先定义构件扩展监听ExtHandlerGroups的基本信息,然后定义其下的构件扩展处理器组ExtHandlerGroup实体列表,每一个构件扩展处理器组都采用双重过滤机制,其实体包含构件扩展处理器ExtHandler列表和构件扩展可执行过滤器ExtFilter列表。
进一步地,步骤S12中,构件调用引擎首先通过扩展点管理器查找该构件上有效的构件参数解析调用前扩展点,及注册在该扩展点之上的业务逻辑扩展组;其中,构件调用引擎对一个构件的调用具体包括:
S120:构件参数解析,包括构件参数解析前AOP扩展、构件参数解析、构件参数解析后AOP扩展;
S121:构件逻辑调用,包括构件调用前AOP扩展、构件业务逻辑调用、构件调用后AOP扩展。
进一步地,步骤S13中,所述的构件扩展监听的执行包括如下步骤:
S130:遍历构件扩展监听(ExtHandlerGroups)中的每一个构件扩展处理器组;
S131:计算扩展处理器组上的扩展执行过滤器链:如果扩展执行过滤器链上的所有扩展执行过滤器都校验通过了,才可以进入下一步;否则,就退出该扩展处理器组的处理,继续遍历下一个扩展处理器组;
S132:对于校验通过的扩展处理器组,会继续执行:遍历其下的每一个扩展处理器;
S133:扩展处理器上也有一个扩展执行过滤器链,如果扩展执行过滤器链上的所有扩展执行过滤器都校验通过了,才可以进入下一步;否则,就退出该扩展处理器的处理,继续遍历下一个扩展处理器;
S134:执行扩展执行程序:每一个扩展处理器都注册有一个扩展执行程序,包括构件及其参数转换原则。期执行过程就是根据参数转换原则进行生成构件调用实参,并对该构件进行调用。
相较于现有技术,本发明一种基于AOP的构件调用和扩展框架实现方法可以对构件的调用过程进行灵活的扩展,按需配置整个调用过程中业务逻辑的调用过程,以更好的适应用户特定的业务场景,充分满足多变的客户需求。
附图说明
图1是本发明的流程图示;
图2是构件调用过程示意图;
图3是构件扩展注册类结构示意图;
图4是构件扩展调用过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,本发明一种基于AOP的构件调用和扩展框架实现方法,包括如下步骤:
S10:定义构件的主实体,并配置其AOP扩展点(AopExtPoint)
步骤S10中,所述的构件主实体的定义具体包括构件编号定义、程序集定义、待执行方法的形参定义;主实体定义完成后,设置预定义的AOP扩展点的Enable属性,改属性为True时才可以被扩展,即该扩展点有效。
所述扩展点包括构件参数解析前扩展、构件参数解析后扩展、构件调用前扩展、构件调用后扩展。
S11:对有效的扩展点注册构件扩展监听,进行构件扩展定义
步骤S11中,构件扩展定义包括构件扩展处理器组ExtHandlerGroup定义、构件扩展处理器ExtHandler定义、以及构件扩展可执行过滤器ExtFilter定义)。
构件扩展定义时,首先定义构件扩展监听ExtHandlerGroups的基本信息,然后定义其下的构件扩展处理器组ExtHandlerGroup实体列表,每一个构件扩展处理器组都采用双重过滤机制,其实体包含构件扩展处理器ExtHandler列表和构件扩展可执行过滤器ExtFilter列表。
其中,构件扩展处理器ExtHandler中定义ExtFilter列表及索要执行的扩展业务逻辑,该业务逻辑也是一个构件;构件扩展执行过滤器ExtFilter中定义一个返回bool值得过滤条件,改过滤条件也是一个构件。如果扩展执行过滤器的过滤条件返回值为true,则该扩展可以被执行;否则,该扩展不能被继续执行。
S12:调用定义好的构件
步骤S12中,构件调用引擎首先通过扩展点管理器查找该构件上有效的构件参数解析调用前扩展点,及注册在该扩展点之上的业务逻辑扩展组。
构件调用引擎对一个构件的调用具体包括:
S120:构件参数解析,包括构件参数解析前AOP扩展、构件参数解析、构件参数解析后AOP扩展;
S121:构件逻辑调用,包括构件调用前AOP扩展、构件业务逻辑调用、构件调用后AOP扩展。
S13:判断是否存在有效的、且注册了业务逻辑扩展的扩展点,若存在,则调用业务逻辑扩展处理器对注册的业务逻辑扩展监听进行处理。
步骤S13中,所述的构件扩展监听的执行包括如下步骤:
S130:遍历构件扩展监听(ExtHandlerGroups)中的每一个构件扩展处理器组;
S131:计算扩展处理器组上的扩展执行过滤器链:如果扩展执行过滤器链上的所有扩展执行过滤器都校验通过了,才可以进入下一步;否则,就退出该扩展处理器组的处理,继续遍历下一个扩展处理器组。
S132:对于校验通过的扩展处理器组,会继续执行:遍历其下的每一个扩展处理器。
S133:扩展处理器上也有一个扩展执行过滤器链,如果扩展执行过滤器链上的所有扩展执行过滤器都校验通过了,才可以进入下一步;否则,就退出该扩展处理器的处理,继续遍历下一个扩展处理器。
S134:执行扩展执行程序:每一个扩展处理器都注册有一个扩展执行程序,包括构件及其参数转换原则。期执行过程就是根据参数转换原则进行生成构件调用实参,并对该构件进行调用。
S14:重复步骤S12和S13,分别对构件参数解析后的扩展点、构件调用前扩展点、构件调用后扩展点进行处理。
本发明实施例中,构件调用引擎对一个构件的调用时依次执行:构件参数解析前AOP扩展、构件参数解析后AOP扩展、构件调用前AOP扩展、构件调用后AOP扩展,共4个AOP扩展点。
本发明通过引入AOP机制,在构件调用过程中设置多个固定的AOP扩展点,与传统的基于事件的扩展点相结合,使得本发明比其他构件调用引擎在扩展机制上更加灵活,并同时支持了基于条件的构件编排功能。同时,本发明提供了一套基于多重条件链过滤的扩展执行框架,通过分别对构件扩展处理器进行分组,可以灵活的支持多种方案分组和分层扩展;通过引入扩展可执行过滤器,达到可以动态的对扩展构件进行条件编排和动态过滤的目的;而且扩展可执行过滤器可以配置在扩展处理器组、扩展处理器上,以便于更好的进行方案分组和提高校验效率。
如图2所示,本发明实施例中,该具有AOP扩展功能的构件调用引擎,对一个构件的调用过程分为如下:
构件参数解析,包括构件参数解析前AOP扩展、构件参数解析、构件参数解析后AOP扩展;
构件逻辑调用,包括构件调用前AOP扩展、构件业务逻辑调用、构件调用后AOP扩展。
如图3所示,本发明实施例中,构件扩展监听ExtHandlerGroups注册在构件的一个AOP扩展点上,一个扩展点至多只能定义一个构件扩展监听。构件扩展处理器组ExtHandlerGroup对应于一个扩展方案或者场景,包含构件扩展处理器ExtHandler列表和构件扩展可执行过滤器ExtFilter列表。而构件扩展处理器ExtHandler是构件扩展业务逻辑的载体,其定义了ExtFilter列表及索要执行的扩展业务逻辑,该业务逻辑也是一个构件。构件扩展执行过滤器ExtFilter是构件扩展处理器或者构件扩展处理器组是否可被执行的一系列过滤条件,其定义了一个返回bool值得过滤条件,改过滤条件也是一个构件。如果扩展执行过滤器的过滤条件返回值为true,则该扩展可以被执行;否则,该扩展不能被继续执行。
如图4所示,对构件扩展监听的执行过程为如下:
遍历构件扩展监听(ExtHandlerGroups)中的每一个构件扩展处理器组;
计算扩展处理器组上的扩展执行过滤器链:如果扩展执行过滤器链上的所有扩展执行过滤器都校验通过了,才可以进入下一步;否则,就退出该扩展处理器组的处理,继续遍历下一个扩展处理器组。
对于校验通过的扩展处理器组,会继续执行:遍历其下的每一个扩展处理器。
扩展处理器上也有一个扩展执行过滤器链,如果扩展执行过滤器链上的所有扩展执行过滤器都校验通过了,才可以进入下一步;否则,就退出该扩展处理器的处理,继续遍历下一个扩展处理器。
执行扩展执行程序:每一个扩展处理器都注册有一个扩展执行程序,包括构件及其参数转换原则。期执行过程就是根据参数转换原则进行生成构件调用实参,并对该构件进行调用。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种基于AOP的构件调用和扩展框架实现方法,其特征在于,包括如下步骤:
S10:定义构件的主实体,并配置其AOP扩展点;
S11:对有效的扩展点注册构件扩展监听,进行构件扩展定义;
S12:调用定义好的构件;
S13:判断是否存在有效的、且注册了业务逻辑扩展的扩展点,若存在,则调用业务逻辑扩展处理器对注册的业务逻辑扩展监听进行处理;
S14:重复步骤S12和S13,分别对构件参数解析后的扩展点、构件调用前扩展点、构件调用后扩展点进行处理。
2.根据权利要求1所述基于AOP的构件调用和扩展框架实现方法,其特征在于:步骤S10中,所述的构件主实体的定义具体包括构件编号定义、程序集定义、待执行方法的形参定义;主实体定义完成后,设置预定义的AOP扩展点的Enable属性;所述扩展点包括构件参数解析前扩展、构件参数解析后扩展、构件调用前扩展、构件调用后扩展。
3.根据权利要求2所述基于AOP的构件调用和扩展框架实现方法,其特征在于:步骤S11中,构件扩展定义包括构件扩展处理器组ExtHandlerGroup定义、构件扩展处理器ExtHandler定义、以及构件扩展可执行过滤器ExtFilter定义。
4.根据权利要求3所述基于AOP的构件调用和扩展框架实现方法,其特征在于:构件扩展定义时,首先定义构件扩展监听ExtHandlerGroups的基本信息,然后定义其下的构件扩展处理器组ExtHandlerGroup实体列表,每一个构件扩展处理器组都采用双重过滤机制,其实体包含构件扩展处理器ExtHandler列表和构件扩展可执行过滤器ExtFilter列表。
5.根据权利要求4所述基于AOP的构件调用和扩展框架实现方法,其特征在于:步骤S12中,构件调用引擎首先通过扩展点管理器查找该构件上有效的构件参数解析调用前扩展点,及注册在该扩展点之上的业务逻辑扩展组;其中,构件调用引擎对一个构件的调用具体包括:
S120:构件参数解析,包括构件参数解析前AOP扩展、构件参数解析、构件参数解析后AOP扩展;
S121:构件逻辑调用,包括构件调用前AOP扩展、构件业务逻辑调用、构件调用后AOP扩展。
6.根据权利要求5所述基于AOP的构件调用和扩展框架实现方法,其特征在于,步骤S13中,所述的构件扩展监听的执行包括如下步骤:
S130:遍历构件扩展监听(ExtHandlerGroups)中的每一个构件扩展处理器组;
S131:计算扩展处理器组上的扩展执行过滤器链:如果扩展执行过滤器链上的所有扩展执行过滤器都校验通过了,才可以进入下一步;否则,就退出该扩展处理器组的处理,继续遍历下一个扩展处理器组;
S132:对于校验通过的扩展处理器组,会继续执行:遍历其下的每一个扩展处理器;
S133:扩展处理器上也有一个扩展执行过滤器链,如果扩展执行过滤器链上的所有扩展执行过滤器都校验通过了,才可以进入下一步;否则,就退出该扩展处理器的处理,继续遍历下一个扩展处理器;
S134:执行扩展执行程序:每一个扩展处理器都注册有一个扩展执行程序,包括构件及其参数转换原则,期执行过程就是根据参数转换原则进行生成构件调用实参,并对该构件进行调用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410057757.4A CN103793232A (zh) | 2014-02-20 | 2014-02-20 | 一种基于aop的构件调用和扩展框架实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410057757.4A CN103793232A (zh) | 2014-02-20 | 2014-02-20 | 一种基于aop的构件调用和扩展框架实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103793232A true CN103793232A (zh) | 2014-05-14 |
Family
ID=50668949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410057757.4A Pending CN103793232A (zh) | 2014-02-20 | 2014-02-20 | 一种基于aop的构件调用和扩展框架实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103793232A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808241A (zh) * | 2016-03-01 | 2016-07-27 | 武汉工程大学 | 可复用方面库的构建方法及系统 |
CN106372266A (zh) * | 2016-11-21 | 2017-02-01 | 郑州云海信息技术有限公司 | 一种基于切面和配置文件的云操作系统缓存及访问方法 |
CN108196833A (zh) * | 2018-01-09 | 2018-06-22 | 武汉斗鱼网络科技有限公司 | Aop代理框架的实现方法、存储介质、电子设备及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021786A (zh) * | 2007-03-15 | 2007-08-22 | 浪潮集团山东通用软件有限公司 | 一种调用通用构件的方法 |
CN101482817A (zh) * | 2008-12-18 | 2009-07-15 | 浙江大学 | 基于黑盒的大粒度Java构件组装方法 |
CN102087594A (zh) * | 2010-12-27 | 2011-06-08 | 用友软件股份有限公司 | 扩展点和插件的管理方法和装置 |
CN102221998A (zh) * | 2011-06-07 | 2011-10-19 | 北京大学 | 一种扩展构件运行支撑平台中ejb容器的方法 |
CN102508668A (zh) * | 2011-11-11 | 2012-06-20 | 西安交通大学 | 一种基于动态栈的ejb3 容器aop 实现方法 |
CN102868747A (zh) * | 2012-09-19 | 2013-01-09 | 深圳中兴网信科技有限公司 | 资源信息管理方法和资源信息管理装置 |
-
2014
- 2014-02-20 CN CN201410057757.4A patent/CN103793232A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101021786A (zh) * | 2007-03-15 | 2007-08-22 | 浪潮集团山东通用软件有限公司 | 一种调用通用构件的方法 |
CN101482817A (zh) * | 2008-12-18 | 2009-07-15 | 浙江大学 | 基于黑盒的大粒度Java构件组装方法 |
CN102087594A (zh) * | 2010-12-27 | 2011-06-08 | 用友软件股份有限公司 | 扩展点和插件的管理方法和装置 |
CN102221998A (zh) * | 2011-06-07 | 2011-10-19 | 北京大学 | 一种扩展构件运行支撑平台中ejb容器的方法 |
CN102508668A (zh) * | 2011-11-11 | 2012-06-20 | 西安交通大学 | 一种基于动态栈的ejb3 容器aop 实现方法 |
CN102868747A (zh) * | 2012-09-19 | 2013-01-09 | 深圳中兴网信科技有限公司 | 资源信息管理方法和资源信息管理装置 |
Non-Patent Citations (3)
Title |
---|
万灿军: "《基于动态AOP的构件交互行为检测器》", 《计算机应用》 * |
叶婷婷: "《一种基于AOP的构件合约化测试方法与实现》", 《计算机技术与发展》 * |
尹博: "《基于CAR的动态织入AOP技术》", 《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808241A (zh) * | 2016-03-01 | 2016-07-27 | 武汉工程大学 | 可复用方面库的构建方法及系统 |
CN105808241B (zh) * | 2016-03-01 | 2018-12-14 | 武汉工程大学 | 可复用方面库的构建方法及系统 |
CN106372266A (zh) * | 2016-11-21 | 2017-02-01 | 郑州云海信息技术有限公司 | 一种基于切面和配置文件的云操作系统缓存及访问方法 |
CN108196833A (zh) * | 2018-01-09 | 2018-06-22 | 武汉斗鱼网络科技有限公司 | Aop代理框架的实现方法、存储介质、电子设备及系统 |
CN108196833B (zh) * | 2018-01-09 | 2021-02-02 | 武汉斗鱼网络科技有限公司 | Aop代理框架的实现方法、存储介质、电子设备及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10061858B2 (en) | Method and apparatus for processing exploding data stream | |
Zdravevski et al. | From Big Data to business analytics: The case study of churn prediction | |
US9098344B2 (en) | Cloud-edge topologies | |
JP5298117B2 (ja) | 分散コンピューティングにおけるデータマージング | |
US20160283610A1 (en) | Hybrid flows containing a continous flow | |
Walter et al. | An expandable extraction framework for architectural performance models | |
CN104424018A (zh) | 分布式计算事务处理方法及装置 | |
CN110019308A (zh) | 数据查询方法、装置、设备及存储介质 | |
US20150106794A1 (en) | Transparent performance inference of whole software layers and context-sensitive performance debugging | |
WO2023197864A1 (zh) | 一种调用拓扑图生成方法及装置 | |
US9329971B2 (en) | Performance analysis system for analyzing inter-thread communications to enhance performance in multithreaded system | |
CN109684319A (zh) | 数据清洗系统、方法、装置及存储介质 | |
CN103793232A (zh) | 一种基于aop的构件调用和扩展框架实现方法 | |
CN103092866A (zh) | 数据监控方法及监控装置 | |
JP2018521391A (ja) | ビッグデータの計算方法及びシステム、プログラムならびに記録媒体 | |
CN112637263A (zh) | 一种多数据中心资源优化提升方法、系统和存储介质 | |
CN104239038A (zh) | 一种ehk规则引擎及其实现方法 | |
CN106339315B (zh) | 定位缺陷的方法及装置 | |
CN105224629A (zh) | 一种xbrl应用平台业务流程一体化的实现方法 | |
EP2052325B1 (en) | Reduction of message flow between bus-connected consumers and producers | |
CN103514026A (zh) | 一种通过javascript直接调用java api的方法 | |
CN102982147A (zh) | 一种提高数据信息整合效率的方法和装置 | |
CN106776644B (zh) | 一种报表系统配置方法和装置 | |
CN102591714B (zh) | 一种流程调用方法、系统及应用服务器 | |
CN103942135B (zh) | 一种基于sap平台的性能监控方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140514 |
|
WD01 | Invention patent application deemed withdrawn after publication |