System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及车联网,尤其涉及一种面向服务架构通信矩阵的代码生成系统及方法。
技术介绍
1、面向服务的架构(service-oriented architecture,soa)因其模块化、松耦合和可重用性的优势,逐渐成为汽车软件设计的主流选择。soa的核心在于服务之间的独立性和互操作性,而面向服务的架构建立在面向服务的通信(servic e-orientedcommunication,soc)基础之上。面向服务的通信通过描述通信矩阵,包括服务之间通信的接口以及接口涉及的数据类型,实现服务之间的有效通信与协作。
2、目前,通信矩阵普遍采用arxml(autosar runtime interface xml)格式来描述。arxml格式具有易于机器解析的优点,但是无法直接阅读,需要借助于专门的工具来解析后显示在界面上才能阅读。另一种更为灵活且普及的方法是将arxml文件转换为excel格式或直接编辑excel文件来构建通信矩阵。通过excel工具能够实现对通信矩阵进行增删改查操作。
3、然而,无论是采用arxml还是excel作为soa通信矩阵的存储格式,其最终目的都是为了利用这些信息来自动生成面向服务的通信代码。现有的商业软件,如德国vector公司的达芬奇工具,虽然能够高效地解析通信矩阵并生成代码,但其采购成本高昂,使用流程复杂,学习成本高,且解析和代码生成的高度绑定性。
技术实现思路
1、为了解决以上技术问题,本专利技术提供了一种面向服务架构通信矩阵的代码
2、本专利技术所解决的技术问题可以采用以下技术方案实现:
3、一种面向服务架构通信矩阵的代码生成系统,包括:
4、解析插件模块,用于在接收到通信矩阵时触发解析过程;在所述解析过程中,基于至少一个预定义的信息提取类对接收到的不同格式的所述通信矩阵进行解析处理,得到解析结果;
5、事件监控接口,分别连接所述解析插件模块和抽象解析模块,用于在检测到所述解析插件模块触发所述解析过程时,产生所述解析过程的通知事件,并将所述通知事件发送至所述抽象解析模块;
6、所述抽象解析模块用于在接收到所述通知事件时,根据所述解析结果生成数据模型,并将所述数据模型存储至信息容器中;
7、代码生成模块,连接所述信息容器,用于从所述信息容器中提取模型数据,基于预设的代码模板对提取的所述模型数据进行处理,生成相应的代码。
8、优选地,所述解析插件模块包括:
9、多个解析插件,每个所述解析插件分别对应于所述通信矩阵的一种格式;
10、每个所述解析插件均具有所述预定义的信息提取类。
11、优选地,所述预定义的信息提取类包括数据类型信息提取类、服务接口信息提取类、通信配置信息提取类中的一种或多种组合。
12、优选地,所述事件监控接口包括事件通知接口;
13、每个所述预定义的提取类分别对应一个所述事件通知接口,每个所述事件通知接口中预定义有与所述预定义的提取类对应的多个接口函数,每个所述接口函数用于产生所述解析过程的解析事件对应的通知事件。
14、优选地,所述抽象解析模块基于模型-视图-控制器架构实现。
15、优选地,所述抽象解析模块包括:
16、至少一个解析器,所述解析器与所述预定义的信息提取类一一对应,用于在被调用时,反向调用所述解析插件模块的解析函数以触发所述解析过程;以及在监听到所述通知事件时,基于所述通知事件创建并配置模型对象,生成所述数据模型的模型数据,并将所述数据模型的模型数据存储至所述信息容器中。
17、优选地,所述信息容器的成员属性由至少一个列表组成,每个所述列表用于存储与所述预定义的提取类相对应的对象。
18、优选地,所述代码生成模块包括:
19、数据类型定义代码生成器,用于从所述信息容器中提取模型数据,基于预设的数据类型定义代码模板对提取的所述模型数据进行处理,生成第一代码;
20、服务client代码生成器,用于从所述信息容器中提取模型数据,基于预设的服务client代码模板对提取的所述模型数据进行处理,生成第二代码;
21、服务service代码生成器,用于从所述信息容器中提取模型数据,基于预设的服务service代码模板对提取的所述模型数据进行处理,生成第三代码;
22、配置文件生成器,用于从所述信息容器中提取模型数据,基于预设的配置文件代码模板对提取的所述模型数据进行处理,生成第四代码;
23、每个服务均对应包括所述第一代码、所述第二代码、所述第三代码和所述第四代码。
24、优选地,还包括:调度器,分别连接所述抽象解析模块、所述信息容器、所述代码生成模块和所述代码模板,用于进行所述抽象解析模块、所述信息容器、所述代码生成模块和所述代码模板的调度。
25、本专利技术还提供一种面向服务架构通信矩阵的代码生成方法,应用于如上述的面向服务架构通信矩阵的代码生成系统,包括:
26、在接收到通信矩阵时触发解析过程;在所述解析过程中,基于预定义的信息提取类对接收到的不同格式的所述通信矩阵进行解析处理,得到解析结果;
27、在检测到触发所述解析过程时,产生所述解析过程的通知事件,并将所述通知事件发送至所述抽象解析模块;
28、所述抽象解析模块在接收到所述通知事件时,将所述解析结果转换为数据模型,并将所述数据模型存储至信息容器中;
29、从所述信息容器中提取模型数据,基于预设的代码模板对提取的所述模型数据进行处理,生成相应的代码。
30、本专利技术技术方案的优点或有益效果在于:
31、本专利技术通过采用模块化设计,实现通信矩阵解析和代码生成的解绑,提高了系统的灵活性和可扩展性;同时采用解析插件模块和抽象解析模块将解析过程分成文件解析和抽象解析两个部分,结合解析事件的主动监控,实现解析soa通信矩阵与文件具体格式的解耦,无需针对每种格式单独开发解析器,即可轻松应对并解析多种不同格式的通信矩阵文件,降低了开发与维护成本。
本文档来自技高网...【技术保护点】
1.一种面向服务架构通信矩阵的代码生成系统,其特征在于,包括:
2.根据权利要求1所述的面向服务架构通信矩阵的代码生成系统,其特征在于,所述解析插件模块包括:
3.根据权利要求1所述的面向服务架构通信矩阵的代码生成系统,其特征在于,所述预定义的信息提取类包括数据类型信息提取类、服务接口信息提取类、通信配置信息提取类中的一种或多种组合。
4.根据权利要求1所述的面向服务架构通信矩阵的代码生成系统,其特征在于,所述事件监控接口包括事件通知接口;
5.根据权利要求1所述的面向服务架构通信矩阵的代码生成系统,其特征在于,所述抽象解析模块基于模型-视图-控制器架构实现。
6.根据权利要求1所述的面向服务架构通信矩阵的代码生成系统,其特征在于,所述抽象解析模块包括:
7.根据权利要求1所述的面向服务架构通信矩阵的代码生成系统,其特征在于,所述信息容器的成员属性由至少一个列表组成,每个所述列表用于存储与所述预定义的提取类相对应的对象。
8.根据权利要求1所述的面向服务架构通信矩阵的代码生成系统,其特征在于,所述
9.根据权利要求1所述的面向服务架构通信矩阵的代码生成系统,其特征在于,还包括:调度器,分别连接所述抽象解析模块、所述信息容器、所述代码生成模块和所述代码模板,用于进行所述抽象解析模块、所述信息容器、所述代码生成模块和所述代码模板的调度。
10.一种面向服务架构通信矩阵的代码生成方法,其特征在于,应用于如权利要求1-9任意一项所述的面向服务架构通信矩阵的代码生成系统,包括:
...【技术特征摘要】
1.一种面向服务架构通信矩阵的代码生成系统,其特征在于,包括:
2.根据权利要求1所述的面向服务架构通信矩阵的代码生成系统,其特征在于,所述解析插件模块包括:
3.根据权利要求1所述的面向服务架构通信矩阵的代码生成系统,其特征在于,所述预定义的信息提取类包括数据类型信息提取类、服务接口信息提取类、通信配置信息提取类中的一种或多种组合。
4.根据权利要求1所述的面向服务架构通信矩阵的代码生成系统,其特征在于,所述事件监控接口包括事件通知接口;
5.根据权利要求1所述的面向服务架构通信矩阵的代码生成系统,其特征在于,所述抽象解析模块基于模型-视图-控制器架构实现。
6.根据权利要求1所述的面向服务架构通信矩阵的代码生成系统,其特征在于,所述抽象...
【专利技术属性】
技术研发人员:文小军,
申请(专利权)人:芯安微众上海微电子技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。