本申请涉及航天型号地面类软件设计的,特别是一种基于分层软总线的软件模块交互方法和电子设备。
背景技术:
1、传统航天型号地面类软件往往承担着多种设备的综合控制、数据及状态实时处理显示、实时数据分发等功能,软件各模块功能复杂,软件的通信接口较多,软件对通信可靠性的要求较高,导致软件设计时常常面临数据通信效率、稳定性和可扩展性等方面的问题。对于承担多种类型数据的产生、发送、接收和处理等任务的软件,不同类型数据的传输要求往往不同,由此导致内外部数据通信接口的设计、开发工作量和技术风险随之提升。
技术实现思路
1、本申请提供一种基于分层软总线的软件模块交互方法和电子设备,目的是针对航天型号地面类软件的上述特点,满足高质量、高效率、高效益的新形势发展要求。
2、第一方面,提供了一种软件模块交互方法,包括:
3、发布软件模块通过软总线的发布者创建接口,创建目标主题对应的发布者,所述发布者属于软总线;
4、订阅软件模块通过所述软总线的订阅者创建接口,创建所述目标主题对应的订阅者,所述订阅者属于所述软总线;
5、所述发布软件模块通过所述软总线的数据发布接口,发送所述目标主题的目标消息,所述数据发布接口属于所述发布者;
6、所述软总线根据所述目标主题向所述订阅软件模块传输所述目标消息;
7、所述订阅软件模块通过所述软总线的数据订阅接口,获取所述目标消息,所述数据订阅接口属于所述订阅者。
8、第二方面,提供了一种软件模块交互方法,包括:
9、发布软件模块通过软总线的发布者创建接口,创建目标主题对应的发布者,所述发布者属于软总线,所述软总线还具有所述目标主题对应的订阅者,所述订阅者由订阅软件模块通过所述软总线的订阅者创建接口创建;
10、所述发布软件模块通过所述发布者的数据发布接口,发送所述目标主题的目标消息,其中,所述目标消息通过所述软总线传输至所述订阅软件模块,所述订阅软件模块通过所述软总线的数据订阅接口获取所述目标消息,所述数据订阅接口属于所述订阅者。
11、第三方面,提供了一种软件模块交互方法,包括:
12、订阅软件模块通过软总线的订阅者创建接口,创建目标主题对应的订阅者,所述订阅者属于所述软总线,所述软总线还具有所述目标主题对应的发布者,所述发布者由发布软件模块通过所述软总线的发布者创建接口创建;
13、所述订阅软件模块通过所述订阅者的数据订阅接口,获取所述目标主题的目标消息,其中,所述目标消息由所述发布软件模块通过所述软总线的数据发布接口发送,并通过所述软总线传输,所述数据发布接口属于所述发布者。
14、结合第一方面至第三方面,在第一方面至第三方面的某些实现方式中,所述软总线为分层软总线,所述软总线通过多个消息层传输数据,所述软总线根据所述目标主题向所述订阅软件模块传输所述目标消息,包括:
15、所述软总线根据所述目标主题,确定所述目标主题对应的目标消息层,所述目标消息层为所述多个消息层中的一个;
16、所述软总线通过所述目标消息层传输所述目标消息。
17、结合第一方面至第三方面,在第一方面至第三方面的某些实现方式中,所述多个消息层包括内存消息层、tcp可靠消息层、udp海量消息层和组播消息层中的一个或多个。
18、结合第一方面至第三方面,在第一方面至第三方面的某些实现方式中,所述交互方法满足以下至少一项:
19、所述内存消息层对应的主题包括以下至少一项:日志消息和解析后状态数据;
20、所述tcp可靠消息层对应的主题包括以下至少一项:指令和装订参数;
21、所述内存消息层对应的主题包括以下至少一项:心跳、图像数据和原码数据;
22、所述内存消息层对应的主题包括以下至少一项:试验信息、流程信息和判读数据。
23、结合第一方面至第三方面,在第一方面至第三方面的某些实现方式中,在创建所述发布者的过程中,所述方法还包括:
24、所述软总线获取所述发布软件模块的发布进程信息;
25、在创建所述订阅者的过程中,所述方法还包括:
26、所述软总线获取所述订阅软件模块的订阅进程信息;
27、所述软总线通过所述目标消息层传输所述目标消息,包括:
28、在所述目标消息层对应内存消息层,且所述发布进程信息和所述订阅进程信息指示同一进程的情况下,所述软总线通过内存传输所述目标消息;
29、在所述目标消息层对应内存消息层,且所述发布进程信息和所述订阅进程信息指示不同进程的情况下,所述软总线通过socket传输所述目标消息。
30、结合第一方面至第三方面,在第一方面至第三方面的某些实现方式中,所述软总线包括第一数据传输管理模块、第二数据传输管理模块和传输链路,所述传输链路连接在所述第一数据传输管理模块和所述第二数据传输管理模块之间,所述第一数据传输管理模块和所述发布软件模块属于同一设备,所述第二数据传输管理模块和所述订阅软件模块属于同一设备。
31、结合第一方面至第三方面,在第一方面至第三方面的某些实现方式中,所述发布者创建接口的输入包括主题名和qos参数集合;所述订阅者创建接口的输入包括主题名和qos参数集合。
32、结合第一方面至第三方面,在第一方面至第三方面的某些实现方式中,在所述发布者创建接口或所述订阅者创建接口的输入中,qos参数集合包括以下至少一项:
33、消息层字段,所述消息层字段用于指示主题名对应的消息层;
34、可靠性字段,所述可靠性字段用于指示是否为可靠传输;
35、持久化字段,所述持久化字段用于指示是否开启持久化;
36、资源限制字段,所述资源限制字段用于指示最大样本数。
37、第四方面,提供了一种电子设备,所述电子设备用于执行如上述第一方面至第三方面中的任意一种实现方式中所述的软件模块交互方法。
38、与现有技术相比,本申请提供的方案至少包括以下有益技术效果:
39、本发明所设计的基于分层软总线的软件架构,使整个软件架构层次清晰、接口一致,降低了内部和外部数据通信的难度与软件维护成本,提升了软件的可靠性;针对航天型号试验中地面软件的使用场景,为软总线设计了四个层次的通讯方式,包括内存消息层、tcp可靠消息层、udp海量消息层和组播消息层,内存消息层提供最为快速的消息分发,tcp可靠消息层提供消息的可靠通信,udp海量消息层提供大数据量通信,组播消息层解决一对多通信时消息重复分发的问题,使软件不同通信数据的传输要求都能得到很好的满足;分层软总线,应用发布/订阅模式实现消息传递,降低了软件模块间的耦合度,保证了软件的可扩展性。
1.一种软件模块交互方法,其特征在于,包括:
2.根据权利要求1所述的软件模块交互方法,其特征在于,所述软总线为分层软总线,所述软总线通过多个消息层传输数据,所述软总线根据所述目标主题向所述订阅软件模块传输所述目标消息,包括:
3.根据权利要求2所述的软件模块交互方法,其特征在于,所述多个消息层包括内存消息层、tcp可靠消息层、udp海量消息层和组播消息层中的一个或多个。
4.根据权利要求3所述的软件模块交互方法,其特征在于,所述交互方法满足以下至少一项:
5.根据权利要求2至4中任一项所述的软件模块交互方法,其特征在于,在创建所述发布者的过程中,所述方法还包括:
6.根据权利要求1所述的软件模块交互方法,其特征在于,所述软总线包括第一数据传输管理模块、第二数据传输管理模块和传输链路,所述传输链路连接在所述第一数据传输管理模块和所述第二数据传输管理模块之间,所述第一数据传输管理模块和所述发布软件模块属于同一设备,所述第二数据传输管理模块和所述订阅软件模块属于同一设备。
7.根据权利要求1所述的软件模块交互方法,其特征在于,所述发布者创建接口的输入包括主题名和qos参数集合;所述订阅者创建接口的输入包括主题名和qos参数集合。
8.根据权利要求7所述的软件模块交互方法,其特征在于,在所述发布者创建接口或所述订阅者创建接口的输入中,qos参数集合包括以下至少一项:
9.一种软件模块交互方法,其特征在于,包括:
10.一种软件模块交互方法,其特征在于,包括:
11.一种电子设备,其特征在于,所述电子设备用于执行如权利要求1至10中任一项所述的软件模块交互方法。