基于模型驱动的利用反射机制进行动态交互的系统及方法

文档序号:9304432阅读:318来源:国知局
基于模型驱动的利用反射机制进行动态交互的系统及方法
【技术领域】
[0001]本发明涉及计算机信息技术领域,尤其涉及一种基于模型驱动的利用反射机制进行动态交互的系统及方法。
【背景技术】
[0002]组件是对数据和方法的简单封装。在计算机技术领域,组件之间的交互技术已经发展了很多年。组件的交互技术已经从静态交互发展到动态交互,但是通常因为组件本身以及组件的实现方式和实现语言的不同而导致组件间的交互区别很大,而在现有客户端界面中,组件的调用和交互方式通常被固化在程序逻辑中,这又造成编写组件的代码非常繁琐,组件的重用性低且组件之间的依赖性高的问题。

【发明内容】

[0003]本发明的目的在于提供一种基于模型驱动的利用反射机制进行动态交互的系统及方法,从而解决现有技术中存在的前述问题。
[0004]为了实现上述目的,本发明所述基于模型驱动的利用反射机制进行动态交互的系统,所述系统包括:
[0005]一个组件管理容器和与所述组件管理容器关联的多个组件;
[0006]每个所述组件的元数据信息和与其他组件之间的调用逻辑关系存储在所述组件管理容器中;
[0007]所述组件管理容器负责产生每个组件的组件实例,并根据每个组件的调用逻辑关系查找和创建组件实例;在组件间交互逻辑和组件元数据信息描述的基础上,动态调用和组织与组件实例相关的组件中存储的方法。
[0008]优选地,所述组件管理容器包括:组件逻辑控制模块、组件管理中心、事件管理器、组件生成器、组件包装器;
[0009]组件逻辑控制模块,根据组件间交互逻辑和驱动模型,获取与发出事件触发请求的组件A有逻辑关系的组件实例;
[0010]组件管理中心,用于读取所述组件A的元数据信息和与所述组件A存在逻辑关系的组件信息;
[0011]事件管理器,用于接收所述组件A发出的事件触发请求并获取所述组件A中触发相应事件的参数信息;
[0012]所述参数信息包括:方法和参数;
[0013]组件生成器,根据组件元数据信息生成每个组件的组件实例;
[0014]组件包装器,用于包装与所述组件A有逻辑关系且产生所述事件触发请求所触发的事件类型的组件所产生的组件实例。
[0015]更优选地,所述驱动模型包括所有组件驱动唯一序列号表、组件元数据管理信息表和组件方法管理表,所述所有组件驱动唯一序列号表、所述组件元数据管理信息表和所述组件方法管理表通过组件的唯一序列号关联。
[0016]本发明所述基于模型驱动的利用反射机制进行动态的交互方法,该方法包括:
[0017]SI,事件管理器接收组件A发出的事件触发请求;
[0018]S2,在所述驱动模型的基础上,组件管理中心获取与所述组件A有逻辑关系且与所述事件触发请求触发的事件类型相对应的组件的信息;
[0019]S3,判断所述组件管理容器内部是否存储与所述组件相对应的组件实例,如果存在,则进入S4 ;如果不存在,则进入S5 ;
[0020]S4,组件生成器获取所述组件实例,组件包装器反射调用与所述组件实例相相关联的组件中存储的方法;
[0021]S5,组件生成器调用产生所述组件实例的方法,创建所述组件实例,组件包装器依据所述组件实例反射调用与所述组件实例相关联的组件中存储的方法。
[0022]优选地,在步骤SI之前还存在以下步骤:
[0023]组件管理容器中预先存储与所述组件管理容器连接的各个组件的描述信息和各个组件的逻辑关系信息,同时,组件管理容器中的组件逻辑控制模块依据组件逻辑关系信息和组件描述信息产生组件实例,并将所述组件实例存储在组件容器的存储单元中。
[0024]优选地,步骤SI具体按照下述方法实现:
[0025]Al,所述事件管理器捕获组件A发出的事件触发请求;
[0026]A2,从组件A中,获取与触发事件类型相关联的方法及参数;
[0027]A3,将所述事件触发请求触发的事件类型和获取的与触发事件类型相关联的方法及参数,发送给所述组件管理中心的事件管理器。
[0028]优选地,步骤S2具体按照下述方法实现:
[0029]BI,所述组件管理中心中的驱动模型依据组件A的元数据信息和组件A中与触发事件类型相关联的方法及参数,在元模型中读取与组件A有逻辑驱动关系的组件集合和/或组件方法集合;
[0030]B2,在所述组件集合和/或组件方法集合中,依据所述事件类型查找与产生所述事件类型相对应的组件;
[0031]B3,从元模型中读取所述组件的元数据信息;
[0032]优选地,步骤S2中,与所述事件触发请求触发的事件类型相对应的组件的数量为I个或多个。
[0033]本发明的有益效果是:
[0034]本发明提出了基于模型驱动的利用反射机制进行动态交互方法,它不需要显性硬编码组件之间的调用和交互,而是通过组件管理容器按照组件元数据信息进行查找和创建组件,把组件之间的直接交互通过组件管理容器调用来进行,这种实现方法简单,解决组件构件之间的非侵入性和组件解耦等问题,大大降低了组件之间的依赖性和硬编码,减少了代码集成工作量,在项目的具体实施中可得到了非常好的效果。
【附图说明】
[0035]图1是组件管理容器生成组件实例的原理示意图;
[0036]图2是组件管理容器的结构示意图;
[0037]图3是基于模型驱动的利用反射机制进行动态交互方法流程示意图;
[0038]图4是所有组件驱动唯一序列号表不意图;
[0039]图5是组件元数据管理信息表示意图;
[0040]图6是组件方法管理表示意图;
[0041]图7是现有组件调用技术中组件静态调用模型示意图;
[0042]图8是本发明组件调用模型示意图。
【具体实施方式】
[0043]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。应当理解,此处所描述的【具体实施方式】仅仅用以解释本发明,并不用于限定本发明。
[0044]实施例
[0045]参照图1和图2,本实施例中所述基于模型驱动的利用反射机制进行动态交互的系统,所述系统包括:一个组件管理容器和与所述组件管理容器关联的多个组件;每个所述组件的元数据信息和与其他组件之间的调用逻辑关系存储在所述组件管理容器中;所述组件管理容器负责产生每个组件的组件实例,并根据每个组件的调用逻辑关系查找和创建组件实例;在组件间交互逻辑和组件元数据信息描述的基础上,动态调用和组织与组件实例相关的组件中存储的方法。关于组件管理容器更详细的说明如下:
[0046]所述组件管理容器包括:组件逻辑控制模块、组件管理中心、事件管理器、组件生成器、组件包装器;
[0047](I)、组件逻辑控制模块,根据组件间交互逻辑和驱动模型,获取与发出事件触发请求的组件A有逻辑关系的组件实例;所述驱动模型包括所有组件驱动唯一序列号表、组件元数据管理信息表和组件方法管理表,所述所有组件驱动唯一序列号表、所述组件元数据管理信息表和所述组件方法管理表通过组件的唯一序列号关联;
[0048]其中,所述所有组件驱动唯一序列号表包括每个组件的唯一序列号、唯一驱动序列号、该组件可生成的组件实例ID、目标组件实例的ID、该组件的驱动方式和驱动事件的类型,参照图4。
[0049]所述组件元数据管理信息表包括:每个组件的唯一序列号、组件名称、实现类型、运行环境、分类、开放语言、组件版本、开发者、开发日期、是否可视、组件的长宽高和组件地址,参照图5。
[0050]所述组件方法管理表包括:每个组件的唯一序列号、组件中存储的方法ID,方法的名称、对方法的描述、是否返回值及返回值的类型,参照图6。
[0051](2)、组件管理中心,用于读取所述组件A的元数据信息和与所述组件A存在逻辑关系的组件信息。
[0052](3)、事件管理器,用于接收所述组件A发出的事件触发请求并获取所述组件A中触发相应事件的参数信息;所述参数信息包括触发相应时间的方法和参数。
[0053](4)、组件生成器,根据组
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1