CN107368373A - 一种基于静态规划的软件总线数据通信管理的方法 - Google Patents
一种基于静态规划的软件总线数据通信管理的方法 Download PDFInfo
- Publication number
- CN107368373A CN107368373A CN201710591407.XA CN201710591407A CN107368373A CN 107368373 A CN107368373 A CN 107368373A CN 201710591407 A CN201710591407 A CN 201710591407A CN 107368373 A CN107368373 A CN 107368373A
- Authority
- CN
- China
- Prior art keywords
- message
- software
- soft ridge
- ridge terrace
- data communication
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及星载软件框架复用下的组成软件的软构件之间实现数据通信的方法,尤其是一种基于静态规划的软件总线数据通信管理的方法,通过分解复用和静态规划优化了软件设计和数据均衡负载,对软构件之间消息采取冗余容错设计,从而可以侦测出消息传递中发生的错误,并通过有限次重发和软件重启来避免进程死锁,解决了传统星载软件总线缺少可靠性、大数据量通信情况下实时性较低、数据交互困难以及总线利用率不高的问题,提高了软件总线架构与软构件之间数据通讯的可靠性、实时性。
Description
技术领域
本发明涉及星载软件框架复用下的组成软件的软构件之间实现数据通信的方法,具体来说是一种基于静态规划的软件总线数据通信管理的方法。
背景技术
软件总线思想在上世纪90年代随着中间件技术的发展而开始出现,软件总线(Software Bus)的概念最早由美国Maryland大学的Purtilo和Suodgras在1994年提出,阐述了一种软件总线原型POLYLITH,POLYLITH在分布式环境下实现了异构构件的集成。
伴随着星载软件规模的日趋庞大,结构高度复杂,不同的开发模式相继推出,软件总线的开发与集成模式显示了强大的活力。对于软件总线技术的研究也成为软件工程学研究的一个热点。通过标准接口,软件总线为星载软件***各构件之间的信息交换提供虚拟的公共数据通道和接口服务。凡是符合该总线接口规范的构件可以通过适配器实现即插即用,获得总线支持,与总线上的其它构件通讯、协调与控制,实现***内消息的分发、传递、转换和过滤,构成动态结构,实现软件***的集成和定制。
然而,在传统的软件总线架构中,缺少对实时性可靠性设计的考虑,总线管理器和总线通讯模块需要负责所有软构件之间命令和业务数据的通讯,在程序和数据上没有冗余设计和数据分流设计,在数据通讯上缺少容错措施。因此,总线管理器进程及总线通讯模块成为了整个星载软件***中的单点故障瓶颈。
为此,针对软件总线技术在大型复杂的星载软件***集成开发领域中具体应用时,需要采取增强软件质量及其可靠性的解决方案,为星载软件服务于卫星整星的安全、可靠运行提供保障,同时可提高开发效率、缩短开发周期、节约开发成本、提高软件实时响应能力。
发明内容
为了解决软件总线框架下软构件数据通信存在竞争和缺少可靠性保障的问题,本发明提供一种基于静态规划的软件总线数据通信管理的方法,以实现提高软件内部构件之间数据传递的可靠性和复用性的目的。
为了解决上述技术问题,本发明采用了如下的技术方案:
一种基于静态规划的软件总线数据通信管理的方法,包括如下步骤:
S1.在软件运行前对软件需求进行分析,设计软构件通信任务静态规划表;
S2.在软件运行后,将软件总线管理器进程初始化,建立软构件地址表;
S3.软件总线消息接收;
S4.软件总线消息解析处理;
S5.目标匹配,以消息的目的构件标识在软构件地址表中查找匹配的软构件,如果在软构件地址表中存在消息订阅者,则进入步骤S6,如果在软构件地址表中不存在消息订阅者,则进入步骤S8;
S6.消息循环冗余校验,如果循环冗余校验结果正确,进入步骤S7,如果循环冗余校验错误,进入步骤S8;
S7.向目的构件发送消息;
S8.向消息发布者发送消息重发命令;
S9.消息重发次数判断,如果次数大于上限,进入步骤S10,如果次数小于等于上限,返回步骤S3;
S10.软件总线重启,返回步骤S2。
进一步地,在步骤S1中,软件需求的分析过程包括以下步骤:
S11.分析***中各软构件通信任务触发方式及周期;
S12.分析各软构件收发数据量;
S13.预估软构件通信任务运行时间;
S14.设计软构件通信任务静态规划表。
进一步地,所述的软构件地址表中每个表项包括软构件的标识和软构件邮箱起始地址。
进一步地,所述的步骤S4中软件总线消息解析处理具体为:根据消息号、消息名、消息发布者标识、消息订阅者标识、消息长度、消息数据和循环冗余校验码的消息格式提取出消息的消息发布者标识、消息订阅者标识、消息数据和循环冗余校验码。
进一步地,在步骤S5中,按照步骤S4解析处理后提取的消息订阅者标识对软构件地址表进行线性查表操作,
如果软构件地址表中存在与消息订阅者标识相同的匹配项,则判定消息订阅者标识在软构件地址表中存在,取出软构件邮箱起始地址;
如果软构件地址表中不存在与消息订阅者标识相同的匹配项,则判定软构件地址表中不存在消息订阅者标识。
进一步地,步骤S6中,消息循环冗余校验的生成多项式为x16+x12+x5+1。
进一步地,所述的消息循环冗余校验具体为:
如果循环冗余校验结果为零,则判定循环冗余校验正确;
如果循环冗余校验结果不为零,则判定循环冗余校验错误。
进一步地,所述的步骤S8具体为:按照消息长度,将消息复制到消息订阅者匹配的软构件邮箱起始地址。
进一步地,在步骤S9之后,步骤S10之前,还包括消息重发次数加1。
进一步地,所述的消息重发次数的上限为3次。
进一步地,所述的软构件通信任务触发方式分为周期性触发、中断触发和事件触发,周期性触发任务需要确定触发周期,中断触发和事件触发需要确定中断或事件的最短发生间隔时间。
进一步地,所述的运行时间通过步骤S12中的软构件收发数据量乘以处理器单位数据处理速率来计算。
进一步地,所述的静态规划表包含按照时间轴进行排列的软件中所有通信任务的最小周期和运行时间。
本发明由于采用以上技术方案,使之与现有技术相比,具有以下的优点和积极效果:
本发明通过软构件分解复用和静态规划优化了软件设计和数据均衡负载,对软构件之间消息采取冗余容错设计,可以侦测出消息传递中发生的错误,并通过有限次重发和软件重启来避免进程死锁,解决了传统星载软件总线缺少可靠性、大数据量通信情况下实时性较低、数据交互困难以及总线利用率不高的问题,提高了软件总线架构与软构件之间数据通讯的可靠性、实时性。
附图说明
图1是本发明的流程图;
图2是本发明中实施例的软构件通信任务静态规划表。
具体实施方式
以下结合附图和具体实施例对本发明提出的技术方案进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式且均使用非精准的比率,仅用于方便、明晰地辅助说明本发明实施例的目的。
如图1所示,为本发明的流程示意图,现结合附图1对本发明基于静态规划的软件总线数据通信管理的方法进行详细介绍。
本方法主要包括以下步骤:
S1.在软件运行前对软件需求进行分析,设计软构件通信任务静态规划表;
该步骤还可细分为以下步骤:
S11.分析***中各软构件通信任务触发方式及周期;
软构件触发方式分为周期性触发、中断触发和事件触发,当软构件的触发方式为周期性触发任务时,需要确定触发周期,而当软构件的触发方式为中断触发和事件触发时,则需要确定中断或事件的最短发生间隔时间。
S12.分析各软构件收发数据量;
S13.预估软构件通信任务运行时间;
需要说明的是,预估软构件通信任务运行时间是通过上述的步骤2中的软构件收发数据量乘以处理器单位数据处理速率来计算;
S14.设计软构件通信任务静态规划表;
静态规划表应包含软件中所有通信任务的最小周期和运行时间,如图2所示,根据静态规划表中通信任务的最小周期和运行时间,按照时间轴进行排列,以确保所有软构件程序在通信任务周期内执行完后,留有至少20%时间余量。
通过上述的S11-14步骤,完成软件实际运行的准备工作,然后可以运行软件。
S2.在软件运行后,将软件总线管理器进程初始化,建立软构件地址表;
其中,软构件地址表中每个表项中应包括软构件的标识和软构件邮箱起始地址,一般地,软构件的标识为32位整型数,在软件启动时分配,每个软构件都拥有唯一确定的标识,软构件邮箱是内存中一片全局性数据结构,仅总线管理器进程可写,所属的软构件可读,大小一般定为64字节;
S3.软件总线消息接收;
软件总线接受到消息的消息格式包括消息号、消息名、消息发布者标识、消息订阅者标识、消息长度、消息数据和循环冗余校验码;
S4.软件总线消息解析处理;
软件总线消息解析处理是根据消息号、消息名、消息发布者标识、消息订阅者标识、消息长度、消息数据和循环冗余校验码的消息格式提取出消息的消息发布者标识、消息订阅者标识、消息数据和循环冗余校验码;
S5.目标匹配,以消息的目的构件标识在软构件地址表中查找匹配的软构件,如果在软构件地址表中存在消息订阅者,则进入步骤S6,如果在软构件地址表中不存在消息订阅者,则进入步骤S8;
进一步地,目标匹配是根据步骤S4提取的消息订阅者标识对软构件地址表进行线性查表操作,如果软构件地址表中存在与消息订阅者标识相同的匹配项,则判定消息订阅者标识在软构件地址表中存在,取出软构件邮箱起始地址,如果软构件地址表中不存在与消息订阅者标识相同的匹配项,则判定软构件地址表中不存在消息订阅者标识;
S6.消息循环冗余校验,如果循环冗余校验正确,进入步骤S7,如果循环冗余校验错误,进入步骤S8;
在消息循环冗余校验这一步骤中,循环冗余校验的生成多项式选取x16+x12+x5+1,循环冗余校验只包括消息长度和消息数据部分,不含消息号、消息名、消息发布者标识、消息订阅者标识,如果循环冗余校验结果为零,则判定循环冗余校验正确,如果循环冗余校验结果不为零,则判定循环冗余校验错误。
S7.向目的构件发送消息;
S8.向消息发布者发送消息重发命令;
向消息发布者发送消息具体是指按照消息长度,将消息复制到消息订阅者匹配的软构件邮箱起始地址。
S9.消息重发次数判断,如果次数大于上限,进入步骤S10,如果次数小于等于上限,返回步骤S3;
在此步骤的操作过程中,判断重发次数之后需将消息重发次数加1,为限制有限次重发,本发明将消息重发次数上限优选为3次。
S10.软件总线重启,执行CPU复位操作,返回步骤S2。
本发明解决了软件总线框架下软构件数据通信存在竞争和缺少可靠性保障的问题,同时避免了大数据量通信情况下实时性遇到瓶颈的问题,提高了软件总线架构下软构件之间数据通讯可靠性和复用性,使得组成软件的软构件能够均衡、有效地利用处理器的时间片,避免软件运行由于数据竞争而死锁,并对软构件之间的消息通信采取检错、纠错和容错措施。
本技术领域的技术人员应理解,本发明可以以许多其他具体形式实现而不脱离本发明的精神或范围,以上公开的仅为本发明优选实施例。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属领域技术人员能很好地利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制,本技术领域的技术人员可如所附权利要求书界定的本发明精神和范围之内作出变化和修改。
Claims (13)
1.一种基于静态规划的软件总线数据通信管理的方法,其特征在于,包括如下步骤:
S1.在软件运行前对软件需求进行分析,设计软构件通信任务静态规划表;
S2.在软件运行后,将软件总线管理器进程初始化,建立软构件地址表;
S3.软件总线消息接收;
S4.软件总线消息解析处理;
S5.目标匹配,以消息的目的构件标识在软构件地址表中查找匹配的软构件,如果在软构件地址表中存在消息订阅者,则进入步骤S6,如果在软构件地址表中不存在消息订阅者,则进入步骤S8;
S6.消息循环冗余校验,如果循环冗余校验结果正确,进入步骤S7,如果循环冗余校验错误,进入步骤S8;
S7.向目的构件发送消息;
S8.向消息发布者发送消息重发命令;
S9.消息重发次数判断,如果次数大于上限,进入步骤S10,如果次数小于等于上限,返回步骤S3;
S10.软件总线重启,返回步骤S2。
2.根据权利要求1所述的一种基于静态规划的软件总线数据通信管理的方法,其特征在于,在步骤S1中,软件需求的分析过程包括以下步骤:
S11.分析***中各软构件通信任务触发方式及周期;
S12.分析各软构件收发数据量;
S13.预估软构件通信任务运行时间;
S14.设计软构件通信任务静态规划表。
3.根据权利要求1所述的一种基于静态规划的软件总线数据通信管理的方法,其特征在于,所述的软构件地址表中每个表项包括软构件的标识和软构件邮箱起始地址。
4.根据权利要求1所述的一种基于静态规划的软件总线数据通信管理的方法,其特征在于,所述的步骤S4中软件总线消息解析处理具体为:根据消息号、消息名、消息发布者标识、消息订阅者标识、消息长度、消息数据和循环冗余校验码的消息格式提取出消息的消息发布者标识、消息订阅者标识、消息数据和循环冗余校验码。
5.根据权利要求1或4所述的一种基于静态规划的软件总线数据通信管理的方法,其特征在于,在步骤S5中,按照步骤S4解析处理后提取的消息订阅者标识对软构件地址表进行线性查表操作,
如果软构件地址表中存在与消息订阅者标识相同的匹配项,则判定消息订阅者标识在软构件地址表中存在,取出软构件邮箱起始地址;
如果软构件地址表中不存在与消息订阅者标识相同的匹配项,则判定软构件地址表中不存在消息订阅者标识。
6.根据权利要求1所述的一种基于静态规划的软件总线数据通信管理的方法,其特征在于,步骤S6中,消息循环冗余校验的生成多项式为x16+x12+x5+1。
7.根据权利要求1所述的一种基于静态规划的软件总线数据通信管理的方法,其特征在于,所述的消息循环冗余校验具体为:
如果循环冗余校验结果为零,则判定循环冗余校验正确;
如果循环冗余校验结果不为零,则判定循环冗余校验错误。
8.根据权利要求1所述的一种基于静态规划的软件总线数据通信管理的方法,其特征在于,所述的步骤S8具体为:按照消息长度,将消息复制到消息订阅者匹配的软构件邮箱起始地址。
9.根据权利要求1所述的一种基于静态规划的软件总线数据通信管理的方法,其特征在于,在步骤S9之后,步骤S10之前,还包括消息重发次数加1。
10.根据权利要求9所述的一种基于静态规划的软件总线数据通信管理的方法,其特征在于,所述的消息重发次数的上限为3次。
11.根据权利要求2所述的一种基于静态规划的软件总线数据通信管理的方法,其特征在于,所述的软构件通信任务触发方式分为周期性触发、中断触发和事件触发,周期性触发任务需要确定触发周期,中断触发和事件触发需要确定中断或事件的最短发生间隔时间。
12.根据权利要求2所述的一种基于静态规划的软件总线数据通信管理的方法,其特征在于,所述的运行时间通过步骤S12中的软构件收发数据量乘以处理器单位数据处理速率来计算。
13.根据权利要求1或2所述的一种基于静态规划的软件总线数据通信管理的方法,其特征在于,所述的静态规划表包含按照时间轴进行排列的软件中所有通信任务的最小周期和运行时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710591407.XA CN107368373A (zh) | 2017-07-19 | 2017-07-19 | 一种基于静态规划的软件总线数据通信管理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710591407.XA CN107368373A (zh) | 2017-07-19 | 2017-07-19 | 一种基于静态规划的软件总线数据通信管理的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107368373A true CN107368373A (zh) | 2017-11-21 |
Family
ID=60308229
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710591407.XA Pending CN107368373A (zh) | 2017-07-19 | 2017-07-19 | 一种基于静态规划的软件总线数据通信管理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107368373A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030083864A (ko) * | 2002-04-22 | 2003-11-01 | 한국전자통신연구원 | 고속 라우터 시스템에서 분산 포워딩 테이블 처리방법 |
CN101299763A (zh) * | 2008-06-13 | 2008-11-05 | 南京邮电大学 | 无线媒体接入控制层协议重配置方法 |
CN101651863A (zh) * | 2008-08-14 | 2010-02-17 | 中兴通讯股份有限公司 | 基于软件总线扩展的消息发送方法 |
CN106293919A (zh) * | 2016-08-12 | 2017-01-04 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种时间触发的嵌入式任务调度装置与方法 |
CN106656706A (zh) * | 2017-02-25 | 2017-05-10 | 华南理工大学 | 基于软件总线的面向服务的机器人开放式控制***及方法 |
CN106649173A (zh) * | 2016-10-10 | 2017-05-10 | 上海航天控制技术研究所 | 基于1553b总线的高可靠星载计算机在轨自修正***及方法 |
-
2017
- 2017-07-19 CN CN201710591407.XA patent/CN107368373A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030083864A (ko) * | 2002-04-22 | 2003-11-01 | 한국전자통신연구원 | 고속 라우터 시스템에서 분산 포워딩 테이블 처리방법 |
CN101299763A (zh) * | 2008-06-13 | 2008-11-05 | 南京邮电大学 | 无线媒体接入控制层协议重配置方法 |
CN101651863A (zh) * | 2008-08-14 | 2010-02-17 | 中兴通讯股份有限公司 | 基于软件总线扩展的消息发送方法 |
CN106293919A (zh) * | 2016-08-12 | 2017-01-04 | 中国航空工业集团公司西安飞行自动控制研究所 | 一种时间触发的嵌入式任务调度装置与方法 |
CN106649173A (zh) * | 2016-10-10 | 2017-05-10 | 上海航天控制技术研究所 | 基于1553b总线的高可靠星载计算机在轨自修正***及方法 |
CN106656706A (zh) * | 2017-02-25 | 2017-05-10 | 华南理工大学 | 基于软件总线的面向服务的机器人开放式控制***及方法 |
Non-Patent Citations (3)
Title |
---|
刘恒光: "基于电源母线的星载CAN总线***研究", 《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》 * |
朱海江 等: "基于设计模式的星载软件体系结构设计方法", 《计算机应用与软件》 * |
贾振宇: "基于软总线的组件式飞行控制软件设计", 《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110247984B (zh) | 业务处理方法、装置及存储介质 | |
WO2020232875A1 (zh) | 一种基于Actor模型的任务调度方法、装置及存储介质 | |
CN103441861B (zh) | 一种数据记录生成方法及装置 | |
CN104679651B (zh) | 一种自动化测试方法及执行节点 | |
CN110519374B (zh) | ZigBee网络化工业控制***的边缘计算方法及其边缘节点 | |
CN112738294B (zh) | 基于区块链的域名解析方法、装置、电子设备和存储介质 | |
AU2020203022A1 (en) | Method and apparatus for sending express delivery information, storage medium, and express delivery locker | |
CN116662038B (zh) | 基于共享内存的工业信息检测方法、装置、设备及介质 | |
WO2021052237A1 (zh) | 事务处理方法、装置、设备、存储介质、数据库 | |
CN111813518A (zh) | 机器人预警方法、装置、计算机设备及存储介质 | |
CN114595084A (zh) | 一种Linux操作***上***级进程间视频共享方法 | |
CN112905668B (zh) | 基于分布式数据流处理引擎的数据库导数方法、设备和介质 | |
WO2018133556A1 (zh) | 一种用于实现用户在应用中通信的方法、装置与设备 | |
CN107368373A (zh) | 一种基于静态规划的软件总线数据通信管理的方法 | |
CN105975359A (zh) | 一种对服务器进行数据清理的方法、装置及服务器 | |
CN110677465B (zh) | 一种分布式锁的控制方法及装置 | |
CN111291109A (zh) | 一种运行信息生成方法、装置、存储介质和服务器 | |
CN109150328B (zh) | 一种接收机自动化检测方法 | |
CN106776033B (zh) | 一种嵌入式设备的资源利用方法及*** | |
CN112988407A (zh) | 数据处理方法和装置、电子设备及计算机可读存储介质 | |
CN107196843B (zh) | 一种即时通信的方法和装置 | |
CN111756834B (zh) | 一种扫码延迟处理方法及装置 | |
CN116521652B (zh) | 一种基于DataX实现分布式异构数据库迁移方法、***和介质 | |
CN114244916B (zh) | 一种智能电子设备的端口识别方法、电子设备和存储介质 | |
TW201910978A (zh) | 透過行動裝置自動完成報到程序之系統及其方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171121 |
|
RJ01 | Rejection of invention patent application after publication |