一种基于动态代理的模型驱动实现的动态交互系统和方法技术方案

技术编号:32188322 阅读:17 留言:0更新日期:2022-02-08 15:52
本发明专利技术公开了一种基于动态代理的模型驱动实现的动态交互系统和方法,包括:事件接收单元、组件逻辑控制单元、组件管理单元、组件动态代理生成单元、组件实例容器单元,组件元数据单元。本发明专利技术无需使用硬编码的方式与其他系统进行交互,而是通过组件管理单元按照组件元数据的唯一编码,查询在组件实例容器中已经实例化的组件并按照业务逻辑创建一个组件的动态代理,将对组件之间的交互通过动态代理来实现,实现了与各个系统之间的解耦,极大的简化系统的复杂度,使得系统更加灵活可用,并且对代码进行复用,避免了大量重复的代理,减轻维护人员的负担和维护复杂度。护人员的负担和维护复杂度。护人员的负担和维护复杂度。

【技术实现步骤摘要】
一种基于动态代理的模型驱动实现的动态交互系统和方法


[0001]本专利技术涉及一种基于动态代理的模型驱动实现的动态交互系统和方法,属于计算机信息处理


技术介绍

[0002]在计算机领域,软件系统间的交互技术已经取得快速地发展,并且由静态交互系统逐渐发展到动态交互系统。
[0003]由于不同软件系统的组件数量较多、内部处理逻辑复杂以及实现语言的限制,导致在各个系统之间耦合更加严重,系统出现大量冗余代码和复杂的处理逻辑,增加了系统的维护难度。
[0004]如何在克服以上问题的基础上,设计出更合理的动态交互系统和方法,是本领域技术人员急需要解决的技术问题。

技术实现思路

[0005]目的:为了克服现有软件系统技术中存在的不足,本专利技术提供一种基于动态代理的模型驱动实现的动态交互系统和方法。
[0006]技术方案:为解决上述技术问题,本专利技术采用的技术方案为:第一方面,一种基于动态代理的模型驱动实现的动态交互系统,包括:事件接收单元、组件逻辑控制单元、组件管理单元、组件动态代理生成单元、组件实例容器单元,组件元数据单元。
[0007]事件接收单元,捕获组件的触发请求,根据组件的触发请求获取组件编码索引、组件接口方法。
[0008]组件元数据单元,存储多个组件的元数据信息、组件实例名称与组件编码索引。所述元数据信息包括:组件之间的调用逻辑关系、组件接口方法和组件接口参数。
[0009]组件逻辑控制单元,根据组件编码索引从组件元数据单元中获取元数据信息,根据组件接口方法获取对应的组件之间的调用逻辑关系和组件接口参数。
[0010]件实例容器单元,在系统启动时,对组件进行实例化,以组件编码索引作为实例的索引名,以组件实例名称作为索引值建立索引。
[0011]组件管理单元,根据组件编码索引从组件元数据单元获取该组件的组件实例名称,根据组件接口方法从组件逻辑控制单元获取该组件的组件之间的调用逻辑关系,再根据组件之间的调用逻辑关系从组件实例容器单元中获取相关联的实例,根据相关联的实例对组件实例名称对应的组件实例的进行初始化,得到初始化后的组件实例。
[0012]组件动态代理生成单元,根据初始化后的组件实例、组件接口方法生成组件的动态代理对象,根据组件接口方法对应的组件接口参数执行动态代理对象返回调用结果。
[0013]作为优选方案,组件编码索引采用唯一编码值,通过组件编码索引获取组件实例名称,对应组件的元数据信息。
[0014]第二方面,一种基于动态代理的模型驱动实现的动态交互方法,包括如下步骤:接受事件触发请求对应的组件编码索引、组件接口方法。
[0015]根据组件编码索引获取组件实例名称,根据组件接口方法获取对应的组件之间的调用逻辑关系和组件接口参数;根据组件之间的调用逻辑关系获取组件有逻辑关系的实例,根据组件有逻辑关系的实例对组件实例名称对应的组件实例进行初始化,得到初始化后的组件实例。
[0016]根据初始化后的组件实例和组件接口方法生成组件的动态代理对象。
[0017]根据组件接口方法对应的组件接口参数,执行组件的动态代理对象并返回调用结果。
[0018]作为优选方案,所述实例均在系统启动时,将系统中所有的组件进行实例化,并且以组件编码索引为索引名,组件实例名称为索引值对所有的组件实例建立索引。
[0019]作为优选方案,所述有逻辑关系的实例组件数量至少是一个。
[0020]作为优选方案,所述组件接口方法为不少于一个组件所共同具有的方法。
[0021]有益效果:本专利技术提供的一种基于动态代理的模型驱动实现的动态交互系统和方法,无需使用硬编码的方式与其他系统进行交互,而是通过组件管理单元按照组件元数据的唯一编码,查询在组件实例容器中已经实例化的组件并按照业务逻辑创建一个组件的动态代理,将对组件之间的交互通过动态代理来实现,实现了与各个系统之间的解耦,极大的简化系统的复杂度,使得系统更加灵活可用,并且对代码进行复用,避免了大量重复的代理,减轻维护人员的负担和维护复杂度。
附图说明
[0022]图1为组件管理容器结构示意图。
[0023]图2为基于动态代理的模型驱动实现的动态交互方法流程示意图。
[0024]图3为组件调用过程示意图。
[0025]图4为本实施例动态交互示意图。
具体实施方式
[0026]下面结合具体实施例对本专利技术作更进一步的说明。
[0027]实施例1:如图1所示,本实例所述的基于动态代理的模型驱动实现的动态交互系统,包括:事件接收单元、组件逻辑控制单元、组件管理单元、组件动态代理生成单元、组件实例容器单元,组件元数据单元。
[0028](1)事件接收单元,捕获组件的触发请求,根据组件的触发请求获取组件编码索引、组件接口方法。
[0029](2)组件元数据单元,存储多个组件的元数据信息、组件实例名称与组件编码索引。所述元数据信息包括:组件之间的调用逻辑关系、组件接口方法和组件接口参数。
[0030]其中,组件编码索引是以组件唯一编码值作为索引值,组件实例名称为索引值,可以通过组件唯一编码值获取到唯一的组件实例名称,通过组件唯一编码值获取到组件的元数据信息。
[0031](3)组件逻辑控制单元,根据组件编码索引从组件元数据单元中获取元数据信息,根据组件接口方法获取对应的组件之间的调用逻辑关系和组件接口参数。
[0032](4)组件实例容器单元,在系统启动时,对组件进行实例化,以组件编码索引作为实例的索引名,以组件实例名称作为索引值建立索引。
[0033](5)组件管理单元,根据组件编码索引从组件元数据单元获取该组件的组件实例名称,根据组件接口方法从组件逻辑控制单元获取该组件的组件之间的调用逻辑关系,再根据组件之间的调用逻辑关系从组件实例容器单元中获取相关联的实例,根据相关联的实例对组件实例名称对应的组件实例的进行初始化,得到初始化后的组件实例。
[0034](6)组件动态代理生成单元,根据初始化后的组件实例、组件接口方法生成组件的动态代理对象,根据组件接口方法对应的组件接口参数执行动态代理对象返回调用结果。
[0035]如图2所示,本实施例中基于动态代理的模型驱动实现的动态交互方法,包括如下步骤:S1,组件实例容器单元在系统启动时实例化系统中所有的组件,并且以组件编码索引为索引名,组件实例名称为索引值对所有的组件实例建立索引。
[0036]S2,事件接收单元接受事件触发请求对应的组件编码索引、组件接口方法。
[0037]S3,组件管理单元从根据步骤S2中获取的组件编码索引从组件实例容器单元获取组件实例名称;根据组件接口方法从组件逻辑控制单元中获取组件接口方法对应的组件之间的调用逻辑关系和组件接口参数;根据组件之间的调用逻辑关系获取组件有逻辑关系的实例,其中,与所述组件有逻辑关系的实例数量为一个或者多个。根据组件有逻辑关系的实例对组件实例名称对应的实例本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于动态代理的模型驱动实现的动态交互系统,其特征在于:包括:事件接收单元、组件逻辑控制单元、组件管理单元、组件动态代理生成单元、组件实例容器单元,组件元数据单元;事件接收单元,捕获组件的触发请求,根据组件的触发请求获取组件编码索引、组件接口方法;组件元数据单元,存储多个组件的元数据信息、组件实例名称与组件编码索引;所述元数据信息包括:组件之间的调用逻辑关系、组件接口方法和组件接口参数;组件逻辑控制单元,根据组件编码索引从组件元数据单元中获取元数据信息,根据组件接口方法获取对应的组件之间的调用逻辑关系和组件接口参数;件实例容器单元,在系统启动时,对组件进行实例化,以组件编码索引作为实例的索引名,以组件实例名称作为索引值建立索引;组件管理单元,根据组件编码索引从组件元数据单元获取该组件的组件实例名称,根据组件接口方法从组件逻辑控制单元获取该组件的组件之间的调用逻辑关系,再根据组件之间的调用逻辑关系从组件实例容器单元中获取相关联的实例,根据相关联的实例对组件实例名称对应的组件实例的进行初始化,得到初始化后的组件实例;组件动态代理生成单元,根据初始化后的组件实例、组件接口方法生成组件的动态代理对象,根据组件接口方法对应的组件接口参数执行动态代理对象返回调用结果。2.根据权利要求1所述的一种基于动...

【专利技术属性】
技术研发人员:许吉良刘士进蒋元晨胡牧徐成龙郭伟程伟郑浩泉
申请(专利权)人:南京南瑞信息通信科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1