本申请涉及数据处理技术领域,特别涉及一种运行于多内核的数据分发服务方法及装置。
背景技术:
dds(datadistributionservice,数据分发服务)是由omg发布的分布式通讯规范。在传统的用法中,dds一般是运行于分时系统(linux,mac,window)中,或者运行于实时系统中。
但是,当dds运行在分时系统时,无法满足一些对时延的要求较高的应用场景,如机器手臂,无人驾驶等;当dds运行在实时系统时,无法像分时系统一样获得丰富的生态环境,亟待解决。
申请内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的第一目的在于提出一种运行于多内核的数据分发服务方法,解决了相关技术中dds在分时系统时,无法满足一些对时延的要求较高的应用场景,dds运行在实时系统时,无法像分时系统一样获得丰富的生态环境的技术问题,大大提升了用户的体验。
本发明的第二个目的在于提出一种运行于多内核的数据分发服务装置。
本发明的第三个目的在于提出一种电子设备。
本发明的第四个目的在于提出一种计算机可读存储介质。
为达到上述目的,本申请第一方面实施例提供一种运行于多内核的数据分发服务方法,包括以下步骤:
获取话题数据的处理域标识;
将所述处理域标识与预设的实时域和非实时域中的标识进行匹配;以及
若所述处理域标识与所述实时域中标识匹配,则采用所述实时域处理所述话题数据;
若所述处理域标识与所述非实时域中标识匹配,则利用所述非实时域处理所述话题数据。
另外,根据本发明上述实施例的运行于多内核的数据分发服务方法还可以具有以下附加的技术特征:
可选地,在获取所述话题数据的处理域标识之前,还包括:
创建实时域和非实时域,所述实时域的标识包括实时话题数据的标识,所述非实时域的标识包括非实时话题数据的标识,其中,所述实时域的处理优先级高于所述非实时域的处理优先级。
可选地,上述的运行于多内核的数据分发服务方法,还包括:
判断由所述话题数据产生的新话题数据是否存在跨域需求;
若存在所述跨域需求,则将所述处理后的话题数据切换到实时域或非实时域。
可选地,上述的运行于多内核的数据分发服务方法,还包括:
接收用户的跨域指令;
根据所述跨域指令将处理后的话题数据切换到实时域或非实时域。
为达到上述目的,本申请第二方面实施例提供一种运行于多内核的数据分发服务装置,包括:
获取模块,用于获取话题数据的处理域标识;
匹配模块,用于将所述处理域标识与预设的实时域和非实时域中的标识进行匹配;以及
处理模块,用于在所述处理域标识与所述实时域中标识匹配时,采用所述实时域处理所述话题数据;在所述处理域标识与所述非实时域中标识匹配时,利用所述非实时域处理所述话题数据。
可选地,在获取所述话题数据的处理域标识之前,所述获取模块,还包括:
创建单元,用于创建实时域和非实时域,所述实时域的标识包括实时话题数据的标识,所述非实时域的标识包括非实时话题数据的标识,其中,所述实时域的处理优先级高于所述非实时域的处理优先级。
可选地,上述的运行于多内核的数据分发服务装置,还包括:
判断模块,用于判断由所述话题数据产生的新话题数据是否存在跨域需求;
第一切换模块,用于存在所述跨域需求时,将所述处理后的话题数据切换到实时域或非实时域。
可选地,上述的运行于多内核的数据分发服务装置,还包括:
接收模块,用于接收用户的跨域指令;
第二切换模块,用于根据所述跨域指令将处理后的话题数据切换到实时域或非实时域。
为达到上述目的,本申请第三方面实施例提供一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行如上述实施例所述的运行于多内核的数据分发服务方法。
为达到上述目的,本申请第四方面实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上述实施例所述的运行于多内核的数据分发服务方法。
由此,可以获取话题数据的处理域标识,并将处理域标识与预设的实时域和非实时域中的标识进行匹配,并在处理域标识与实时域中标识匹配时,采用实时域处理话题数据,否则在实时域处理数据之后,利用非实时域处理话题数据,解决了相关技术中dds在分时系统时,无法满足一些对时延的要求较高的应用场景,dds运行在实时系统时,无法像分时系统一样获得丰富的生态环境的技术问题,使dds既能获得像实时系统一样的实时性,又能获得分时系统丰富的生态环境,大大提升了用户的体验。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本申请实施例提供的一种运行于多内核的数据分发服务方法的流程图;
图2为dds的数据通讯的示意图;
图3为根据本申请一个实施例的基于adeos的结构体系的示意图;
图4为根据本申请一个实施例的应用程序创建实时域实体和非实时域实体的框架示例图;
图5为根据本申请一个实施例的运行于多内核的数据分发服务方法的流程图;
图6为根据本申请一个实施例的判断由话题数据产生的新话题数据是否存在跨域需求的流程图;
图7为根据本申请一个实施例的将处理后的话题数据切换到实时域的流程图;
图8为根据本申请一个实施例的发送跨域话题的详细流程图;
图9为根据本申请实施例的运行于多内核的数据分发服务装置的示例图;
图10为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参照附图描述根据本发明实施例提出的运行于多内核的数据分发服务方法及装置,首先将参照附图描述根据本发明实施例提出的运行于多内核的数据分发服务方法。
具体而言,图1为本申请实施例所提供的一种运行于多内核的数据分发服务方法的流程示意图。
如图1所示,该运行于多内核的数据分发服务方法包括以下步骤:
在步骤s101中,获取话题数据的处理域标识。
可以理解的是,ddsapi创建域时需要传递域id,通常是一个整数类型,具有相同域id的参与者可以实现域内数据通讯,其中,处理域标识即为传递域id。可选地,在一些实施例中,在获取话题数据的处理域标识之前,还包括:创建实时域和非实时域,实时域的标识包括实时话题数据的标识,非实时域的标识包括非实时话题数据的标识,其中,实时域的处理优先级高于非实时域的处理优先级。
可以理解的是,如图2所示,dds的数据通讯只能在域内进行,只有属于同一域的实体才能通过匹配的主题相互发现,并因此在发布者和订阅者之间交换数据。dds的域没有优先级概念,只是限制域与域之间的通讯。因此,本申请实施例可以结合adoes域概念,如图3所示,图3为基于adeos的结构体系示意图,在基于adeos的系统中,每个操作系统都在独立的域内运行(但不一定所有的域内实现的都是操作系统,也可以是完成其它功能的软件实体),每个域可以有独立的地址空间和类似于进程、虚拟内存等的软件抽象层,而且这些资源也可以由不同的域共享,adeos通过中断管道机制实现了域间优先级。
应用程序创建实时域实体和非实时域实体(实体指参与者,话题,发布者,订阅者),实时域有更高优先级,实时域内的发布订阅线程运行于优先级高的adoes域。框架图如图4所示:实时域内运行的是具有高优先级的参与者,这些参与者都有高优先级话题。比如急停,起步,具有高精度的数据采样等等。非实时域的话题通常是跨机器网络通讯,参与者匹配等。
在步骤s102中,将处理域标识与预设的实时域和非实时域中的标识进行匹配。
在步骤s103中,若处理域标识与实时域中标识匹配,则采用实时域处理话题数据,若处理域标识与非实时域中标识匹配,则利用非实时域处理话题数据。
具体而言,本申请实施例可以预先定义哪些id号为实时域id,哪些为非实时域id,比如0到100为实时域,大于100为非实时域,如果步骤s101中获取到的话题数据的处理域标识id在0-100内,则采用实时域处理话题数据,如果步骤s101中获取到的话题数据的处理域标识id在大于100的范围内,则在实时域处理数据之后,利用非实时域处理该话题数据。
需要说明的是,即使同为实时域,域id不同也不能实现域内通讯,由于adeos中实时系统的跨域系统调用会减低实时性,所以实时域的实体底层自动调用实时接口,完全避免非实时系统接口的调用,同理,非实时域的实体底层自动调用非实时接口,完全避免实时系统接口的调用,用户层不必关心底层系统调用。
举例而言,如图5所示,上述的运行于多内核的数据分发服务方法包括以下步骤:
s501,创建参与者,并获取话题数据的处理域标识。
s502,系统调用:是否传递实时域id,如果是,执行步骤s503,否则,执行步骤s504。
s503,调用实时域系统调用(位于命名空间)。
s504,调用常规系统调用。
s505,结束。
可选地,在一些实施例中,上述的运行于多内核的数据分发服务方法,还包括:判断由话题数据产生的新话题数据是否存在跨域需求;若存在跨域需求,则将处理后的话题数据切换到实时域或非实时域。
可以理解的是,如果在非实时域接收到某些特殊话题,经过对话题的数据进行处理后可能会产生新新话题数据,而新话题数据必须通过实时域进行发送;或者,如果在实时域接收到某些特殊话题,经过对话题的数据进行处理后可能会产生新话题数据,而新话题数据必须通过非实时域进行发送。由此即可确定由话题数据产生的新话题数据存在跨域需求。需要说明的是,在对话题数据进行处理的方式有很多种,例如特征识别等操作,在此不做具体限定。
另外,由于于adeos域间不能使用常用互斥锁,条件变量等进程间通讯技术,其提供了专门用于域间通讯的接口。如果直接调用这些域间通信接口,操作不当,有可能会导致实时域和非实时域切换,因此,本申请实施例可以把域间通讯隐藏在调用发送跨域话题之下,同样可以使用话题,接收者,发布者,域概念,非实时域可以通过publish接口发布该实时话题,该publisher可以模拟dds接口编写,可以实现不同域的通信,从而实现非实时域到实时域的切换。对于用户来说,不需要关心域间通信的过程,只需要直接发送实时话题就可以,转换层可以通过发送的话题切换到对应的域名。
举例而言,如图6所示,图6为本申请一个实施例的判断由话题数据产生的新话题数据是否存在跨域需求的流程图。
s601,非实时域参与者。
s602,接收并处理非实时话题。
s603,判断是否产生新话题数据,如果是,则执行步骤s604,否则执行步骤s607。
s604,判断是否是实时话题数据,如果是,执行步骤s605,否则,执行步骤s606。
s605,发布实时话题数据。
s606,发布非实时话题数据。
s607,结束。
进一步的,如图7所示,图7为本申请一个实施例的将处理后的话题数据切换到实时域的流程图。
具体而言,非实时域参与者可以调用publish发布接口,然后调用跨域通信发送接口,然后调用跨域通信接收接口,最后通过调用sublisher订阅接口发送至实时域参与者。
综上,如图8所示,图8为本申请一个实施例的发送跨域话题的详细流程图。
s801,非实时域参与者。
s802,接收并处理非实时话题。
s803,判断是否产生新话题数据,如果是,则执行步骤s804,否则执行步骤s810。
s804,判断是否是实时话题数据,如果是,执行步骤s805,否则,执行步骤s809。
s805,发送跨域话题。.
s806,实时域参与者。
s807,接收跨域话题
s808,发布实时话题数据。
s809,发布非实时话题数据。
s810,结束。
可选地,在一些实施例中,上述的运行于多内核的数据分发服务方法,还包括:接收用户的跨域指令;根据跨域指令将处理后的话题数据切换到实时域或非实时域。
也就是说,本申请实施例还可以根据用户的跨域指令将处理后的话题数据切换到实时域或非实时域,具体的处理方式与上述一致,为避免冗余,在此不做详细赘述。
根据本申请实施例提出的运行于多内核的数据分发服务方法,可以获取话题数据的处理域标识,并将处理域标识与预设的实时域和非实时域中的标识进行匹配,并在处理域标识与实时域中标识匹配时,采用实时域处理话题数据,否则在实时域处理数据之后,利用非实时域处理话题数据,解决了相关技术中dds在分时系统时,无法满足一些对时延的要求较高的应用场景,dds运行在实时系统时,无法像分时系统一样获得丰富的生态环境的技术问题,使dds既能获得像实时系统一样的实时性,又能获得分时系统丰富的生态环境,大大提升了用户的体验。
其次参照附图描述根据本申请实施例提出的运行于多内核的数据分发服务装置。
图9是本申请实施例的运行于多内核的数据分发服务装置的方框示意图。
如图9所示,该运行于多内核的数据分发服务装置10包括:获取模块100、匹配模块200和处理模块300。
其中,获取模块100用于获取话题数据的处理域标识;
匹配模块200用于将处理域标识与预设的实时域和非实时域中的标识进行匹配;以及
处理模块300用于在处理域标识与实时域中标识匹配时,采用实时域处理话题数据;在所述处理域标识与所述非实时域中标识匹配时,利用非实时域处理话题数据。
可选地,在获取话题数据的处理域标识之前,获取模块100还包括:
创建单元,用于创建实时域和非实时域,实时域的标识包括实时话题数据的标识,非实时域的标识包括非实时话题数据的标识,其中,实时域的处理优先级高于非实时域的处理优先级。
可选地,上述的运行于多内核的数据分发服务装置10,还包括:
判断模块,用于判断由话题数据产生的新话题数据是否存在跨域需求;
第一切换模块,用于存在跨域需求时,将处理后的话题数据切换到实时域或非实时域。
可选地,上述的运行于多内核的数据分发服务装置10,还包括:
接收模块,用于接收用户的跨域指令;
第二切换模块,用于根据跨域指令将处理后的话题数据切换到实时域或非实时域。
需要说明的是,前述对运行于多内核的数据分发服务方法实施例的解释说明也适用于该实施例的运行于多内核的数据分发服务装置,此处不再赘述。
根据本申请实施例提出的运行于多内核的数据分发服务装置,可以获取话题数据的处理域标识,并将处理域标识与预设的实时域和非实时域中的标识进行匹配,并在处理域标识与实时域中标识匹配时,采用实时域处理话题数据,否则在实时域处理数据之后,利用非实时域处理话题数据,解决了相关技术中dds在分时系统时,无法满足一些对时延的要求较高的应用场景,dds运行在实时系统时,无法像分时系统一样获得丰富的生态环境的技术问题,使dds既能获得像实时系统一样的实时性,又能获得分时系统丰富的生态环境,大大提升了用户的体验。
图10为本申请实施例提供的电子设备的结构示意图。该电子设备可以包括:
存储器1201、处理器1202及存储在存储器1201上并可在处理器1202上运行的计算机程序。
处理器1202执行程序时实现上述实施例中提供的运行于多内核的数据分发服务方法。
进一步地,电子设备还包括:
通信接口1203,用于存储器1201和处理器1202之间的通信。
存储器1201,用于存放可在处理器1202上运行的计算机程序。
存储器1201可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
如果存储器1201、处理器1202和通信接口1203独立实现,则通信接口1203、存储器1201和处理器1202可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构(industrystandardarchitecture,简称为isa)总线、外部设备互连(peripheralcomponent,简称为pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,简称为eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器1201、处理器1202及通信接口1203,集成在一块芯片上实现,则存储器1201、处理器1202及通信接口1203可以通过内部接口完成相互间的通信。
处理器1202可能是一个中央处理器(centralprocessingunit,简称为cpu),或者是特定集成电路(applicationspecificintegratedcircuit,简称为asic),或者是被配置成实施本申请实施例的一个或多个集成电路。
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上的运行于多内核的数据分发服务方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或n个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
1.一种运行于多内核的数据分发服务方法,其特征在于,包括以下步骤:
获取话题数据的处理域标识;
将所述处理域标识与预设的实时域和非实时域中的标识进行匹配;以及
若所述处理域标识与所述实时域中标识匹配,则采用所述实时域处理所述话题数据;
若所述处理域标识与所述非实时域中标识匹配,则利用所述非实时域处理所述话题数据。
2.根据权利要求1所述的方法,其特征在于,在获取所述话题数据的处理域标识之前,还包括:
创建实时域和非实时域,所述实时域的标识包括实时话题数据的标识,所述非实时域的标识包括非实时话题数据的标识,其中,所述实时域的处理优先级高于所述非实时域的处理优先级。
3.根据权利要求1所述的方法,其特征在于,还包括:
判断由所述话题数据产生的新话题数据是否存在跨域需求;
若存在所述跨域需求,则将所述处理后的话题数据切换到实时域或非实时域。
4.根据权利要求1所述的方法,其特征在于,还包括:
接收用户的跨域指令;
根据所述跨域指令将处理后的话题数据切换到实时域或非实时域。
5.一种运行于多内核的数据分发服务装置,其特征在于,包括:
获取模块,用于获取话题数据的处理域标识;
匹配模块,用于将所述处理域标识与预设的实时域和非实时域中的标识进行匹配;以及
处理模块,用于在所述处理域标识与所述实时域中标识匹配时,采用所述实时域处理所述话题数据;在所述处理域标识与所述非实时域中标识匹配时,利用所述非实时域处理所述话题数据。
6.根据权利要求5所述的装置,其特征在于,在获取所述话题数据的处理域标识之前,所述获取模块,还包括:
创建单元,用于创建实时域和非实时域,所述实时域的标识包括实时话题数据的标识,所述非实时域的标识包括非实时话题数据的标识,其中,所述实时域的处理优先级高于所述非实时域的处理优先级。
7.根据权利要求5所述的装置,其特征在于,还包括:
判断模块,用于判断由所述话题数据产生的新话题数据是否存在跨域需求;
第一切换模块,用于存在所述跨域需求时,将所述处理后的话题数据切换到实时域或非实时域。
8.根据权利要求5所述的装置,其特征在于,还包括:
接收模块,用于接收用户的跨域指令;
第二切换模块,用于根据所述跨域指令将处理后的话题数据切换到实时域或非实时域。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如权利要求1-4任一项所述的运行于多内核的数据分发服务方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行,以用于实现如权利要求1-4任一项所述的运行于多内核的数据分发服务方法。
技术总结