掌桥专利:专业的专利平台
掌桥专利
首页

共享內存的数据分发服务的系统及其运作方法

文献发布时间:2023-06-19 11:11:32


共享內存的数据分发服务的系统及其运作方法

技术领域

本发明涉及一种系统及其运作方法,尤指一种共享内存的数据分发服务的系统及其运作方法,特别涉及一种适于工业自动化设备的共享内存的数据分发服务的系统及其运作方法。

背景技术

随着物联网科技的出现开启了第四次工业革命,并从传统的工业自动化迈入以物联网为基础的高度自动化智慧制造,透过自主式移动机器人(Autonomous Mobile Robot,AMR)以及人机协同(Collaborative Robot,COBOT)制造已是未来工厂的必要建置,当现代工厂导入各式自动化联网生产设备,工厂数位化的需求与机具与设备间的互联共通接口标准也随之提高,以提供实时控制和可靠通信的系统架构。

而未来工厂的概念则是以智慧制造为核心,将资讯科技、操作技术与通信科技完整的连结在一起,并运用新世代机器人作业系统(Robot Operating System2,ROS2)提供高效率数据互传中介层(Middleware Layer),已逐渐成为智慧型机器人的应用程式接口(API)标准,更以具备高度服务质量(Quality of Service,QoS)控制能力的数据分发服务(Data Distribution Service,DDS)来提供分散式/非同步数据交换机制,使未来工厂内部设备之间具有实时通信能力、高可靠的数据交换与共享,以及高度智慧处理数据的能力。举例来说,工厂的静态设备及移动机具,甚至人机接口及感测器等,都可以利用机器人作业系统平台导入数据分发服务的发布与订阅机制的传输协定来进行实时相互联网与协作沟通,并将数据传送至云端运用人工智慧进行存储及分析,使厂内各式移动机器人投产、无人机(UAV)取件、自动导引车(AGV)搬运物流与自动仓储等,皆在无人无线或人机协作环境下完成,借以实现各种未来工厂中智慧制造的应用场景。

而分散式数据管理系统架构系以数据为中心的数据交换模型,可大幅改善主从式(Client/Server)或集中式系统架构数据交换常见的问题,包括单一节点故障所引发的网路延迟、数据传输模式常造成频宽浪费与拥塞,以及无法满足巨量端点实时数据交换的物联网需求等问题。因此,分散式数据管理系统架构不但具有简单、扁平、解耦等特性,并允许点对点(Peer-to-peer)沟通、组播(Multi-cast)及动态探索(Dynamic discovery)功能,相当适合实时性的系统高效的数据传输需求,此种系统架构是基于数据分发服务主题的发布与订阅传输机制,更可让所有的机器人或感测器都可将其数据传送到数据控制器(DataRiver/DDS Bus)或主题(Topic)上,有需要的机器人或新加入的机器人透过订阅主题就可取得数据,不需另改写程式,使整个系统的容错程度更高,也更具有弹性。

如图5所示,其为在单一电脑200上执行单程序架构的分散式数据管理应用程式的示意图,其中该单程序架构的分散式数据管理通信会将所有管理应用程式的各种服务(如持续性Durability、迭接Spliced、简单物件存取协定SOAP、数据库管理系统DBMS、传输协定DDSI)结合上层的应用程式包装成为一个父程序(如使用者程序User process A、B),当该程序间进行通信时,最终都会将数据堆迭到网路(Network)的实体层进行相互沟通交换。

此外,由于各程序间都会需要经过互操作性的自动发现机制(DDSIInteroperability)来互相发现彼此的存在,并且会互相交互各种信息,如域参与者(Participant)、写入器(Writer)、读取器(Reader)、主题(Topic)、服务质量(QoS)等各种的信息,其信息量相对相当庞大。如此一来,即使是在同一台电脑进行通信,单程序架构依然会将资源(如网路频宽)耗费在最末端的网路实体通信层上,该单程序架构同时也会因为执行许多单程序,使系统占用过多的内存,进而导致整体的效能下降,即为本领域所亟欲研究改善的方向所在。

发明内容

有鉴于上述现有技术的不足,本发明提出一种共享内存的数据分发服务的系统及其运作方法,其利用数据分发服务的架构,使被定义为发布者的参与者以及被定义为订阅者的参与者可根据相同的主题来读写相同的内存分区,减少数据占用过多内存,以提升整体系统的效能。

本发明的主要目的乃在于利用共享内存优化数据分发服务的系统,其基于数据分发服务通信通信协议来作为系统与应用程式之间的中间件。该数据分发服务包括管理应用程式,用以借由配置文件指定特定大小的共享内存来创建和初始化数据库,使发布者发布的数据根据主题对应存储于该数据库,并使订阅者跟据订阅的主题于数据库取得数据。

因此,在此系统架构中各个主题节点和数据都会共享该管理应用程式的各种服务,并将共享内存视为同一个节点而无须繁琐的互相交互各种信息,借此,所有数据交换和参照都在共享内存内部进行,可有效提高系统的运作效能。

为使能更进一步了解本发明的特征及技术内容,请参阅以下有关本发明的详细说明与附图,但是此等说明与附图仅是用来说明本发明,而非对本发明的权利范围作任何的限制。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为根据本发明实施例的实现数据分发服务的系统架构的实施例示意图;

图2为根据本发明实施例的数据分发服务的管理应用程式的实施例示意图;

图3为根据本发明实施例的数据分发服务的运作实施例示意图;

图4为根据本发明实施例的数据分发服务的步骤流程图;

图5为单程序架构的分散式数据管理应用程式的示意图。

附图标记

100 电脑

110 处理器

120 通信模块

130 记忆模块

131 持续性服务

132 迭接服务

133 简单物件存取协定服务

134 数据库管理系统服务

135 DDS传输协定服务

140 数据库

200 电脑

APP 应用程式

Domain 域

DDS 数据分发服务

IP/Port 网路接口

Network 网路

OS 机器人作业系统

P1、P2、P3、P4 内存分区

Shmem 共享内存

Ta、Tb、Tc、Td、Te 主题

XML 配置文件

S410~S430 步骤

具体实施方式

为达成上述目的及功效,本发明所采用的技术手段及其构造,绘图就本发明的较佳实施例详加说明其构造与功能如下,以使完全了解。

请参阅图1,图1为实施于单一电脑100的本发明的基于数据分发服务的系统架构的示意图,所述电脑100可至少包括处理器110、通信模块120、记忆模块130以及数据库140,且所述处理器110与所述通信模块120、所述记忆模块130以及所述数据库140电性连接。

所述通信模块120用以提供网路通信接口,以与网域中的其他自动化设备通信连接,其中,所述自动化设备例如为机械手臂、感测器、无人机、自动导引车等,且本发明不以此为限制。

所述记忆模块130用以存储所述电脑100运作时所需的程式,于本实施例中,所述记忆模块130至少存储有实现机器人作业系统(Operating System)OS、数据分发服务DDS以及多个应用程式(Application,APP)的程式,其中,本发明的系统架构是基于所述数据分发服务DDS标准通信通信协议来作为机器人作业系统OS与应用程式APP之间的中间件,借此,所述处理器110可执行所述记忆模块130所存储的程式来达到本发明的运作方法。

于一个实施例中,所述电脑100可为机器人控制器,且本发明不以此为限制。

于一个实施例中,机器人作业系统OS可以新世代机器人作业系统(RobotOperating System2,ROS2)来实现,且本发明不以此为限制。

请参考图2,所述数据分发服务DDS包括管理应用程式,用于提供持续性(Durability)服务131、迭接(Spliced)服务132、简单物件存取协定(SOAP)服务133、数据库管理系统(DBMS)服务134及DDS传输协定(DDSI/DDSI2)服务135。所述数据分发服务DDS的基础通信范围定义为「域(Domain)」,并通过所述管理应用程式来控制所述域内所有包含发布者/订阅者的参与者(Participant)的服务,且所述管理应用程式是通过配置文件XML,如可扩展置标语言(XML)的设置文件,指定特定大小的共享内存Shmem来创建和初始化图1所述的所述数据库140,其中,所述数据库140用于提供所有的应用程式APP之间共享共有的服务与数据。

在本实施例中,所述管理应用程式的持续性服务131,是负责数据同步及数据回补的服务;所述迭接服务132是整个所述数据分发服务DDS的入口,是负责管理监控各个服务间的运作状态;所述简单物件存取协定服务133,是负责各种数据分发服务测试、研发等工具的接口服务;所述数据库管理系统服务134,是负责控制数据存储的服务;以及DDS传输协定服务135,是负责控制所述数据分发服务DDS底层互操作性的服务,基于该数据分发服务DDS的标准通信框架实现包含自动发现机制、相容性、数据通信及UDP/TCP/IP的通信实作等功能。

请参考图3,图3为本发明在单一电脑100上执行所述数据分发服务DDS的实施例示意图,以下并配合图1来进行说明。由于所述数据分发服务DDS的服务定义为域(Domain)服务,并于同一个域内的数据才可相互通信,所述域内任何一个节点的加入都视为参与者。作为发布者的参与者将单个至多个主题(如图3所示的Ta、Tb、Tc、Td、Te)所对应的信息发布到所述数据分发服务DDS,且所述发布者是通过写入器(用作读取/消化数据的实体)将信息发送到所述域内的特定内存分区,而所述订阅者以读取器(用作写入/产生数据的实体)根据订阅的主题读取接收不同类型的数据或应用程式,其中所述主题中为引入有所述数据库140的逻辑分区的字串集,并以所述字串集的字串名称来控制所述数据分发服务DDS的所述数据库140分区与发布者及订阅者的特定实例之间的关联,即所述数据分发服务DDS以主题为数据传输参考准则,每一个读取器/写入器会针对同一个主题来交换数据,且彼此关联的发布者以及订阅者对应于相同的内存分区(Partition,如图3的P1、P2、P3、P4),借此,订阅者才会从对应的发布者接收数据,其中,每一个主题的信息是与主题名称、数据类型及所述数据分发服务DDS所定义的服务质量(QoS)策略相关,又服务质量策略设定的参数是由所述配置文件XML配置,并对所述写入器、所述读取器及所述参与者作设定。

上述的共享内存的所述数据分发服务DDS的系统架构中,使用者只须自行管理所述数据分发服务DDS的应用程式,在这种模式下,域服务会被当作是一个独立执行的过程,而所述数据分发服务DDS的管理应用程式将会控制所有参与者参与域的服务;然后,可借由上述的配置文件XML来指定特定大小的共享内存Shmem来创建和/或初始化所述数据库140。此外,由于所述些应用程式APP间都会需要经过互操作性的自动发现机制(DDSIInteroperability)来互相发现彼此的存在,并且会互相交互,如域参与者(Participant)、写入器(Writer)、读取器(Reader)、主题(Topic)、服务质量(QoS)等各种的信息,其信息量相对相当庞大,但在此系统架构中,借由共享内存模式,所有应用程式APP之间共享共有的服务与数据索引等,自动发现机制DDSI服务会将其视为同一个节点并且无须繁琐的互相交换,因此可以省下很大的网路频宽。在所述共享内存系统架构内,各个主题节点和数据都会共享管理应用程式的各种服务(如Durability、Spliced、SOAP、DBMS、DDSI),此外网路层则是共享单一个网路接口IP/Port来发送信息,例如发现封包(Discovery pkt),所有数据的交换和参照等都在共享内存Shmem内部进行,如此可有效提高系统至少3~5倍的运作效能。

因此,在此联合的(Federated)共享内存系统架构中,数据在任何电脑上实际上只存在一次,但是所述数据分发服务DDS的所述管理应用程式,仍然会为每个使用者提供自己的私有数据表示视图,如关联式数据表式法或统一塑模语言(Unified ModelingLanguage,UML)。所述数据分发服务DDS的应用程式APP和管理应用程式都直接在共享内存Shmem内互相交互数据,应用程式APP都会参考共同的数据而不是将各种数据互相复制。

由本发明的上述较佳实施例及应用方式可归纳出适于工业自动化设备的共享内存的数据分发服务的系统及其运作方法,所述数据分发服务的系统以上述的所述管理应用程式来实现,如图4所示,所述方法包括以下步骤:

步骤S410:建立数据库。于此步骤中,所述管理应用程式以所述配置文件XML,指定特定大小的共享内存Shmem来创建和初始化图1所示的所述数据库140。

步骤S420:根据对应的主题存储所述发布者发布的数据。所述管理应用程式根据所述发布者发布的数据所对应的主题,使数据存储于对应的内存分区。

步骤S430:根据对应的主题提供数据给订阅者。所述管理应用程式根据所述订阅者订阅的主题,使所述订阅者读取取得对应所述主题的内存分区的数据。

综上所述,借由使用所述数据分发服务DDS的所述管理应用程式,所述订阅者可以依照主题的内容来订阅感兴趣的数据,且在此系统架构下,可以将所述订阅者的数据暂存(Cache)起来,并且可将这些数据看作是一个单独的数据库,并且可以对所述数据库的内容进行过滤,查询及在本地进行数据关联的运作等。而对于进阶的使用者而言,共享内存系统架构是一种更强大的运作方式,每个读写器都是各自拥有自己的存储空间,实作方式即是将共享空间(即共享内存)视为一个通信端点,即历史数据(包括读取器和写入器上的历史数据),在同一平台内需要移动数据的索引值来存取数据。

上述详细说明为针对本发明一种较佳的可行实施例说明而已,惟所述实施例并非用以限定本发明的申请专利范围,凡其他未脱离本发明所公开的技艺精神下所完成的均等变化与修饰变更,均应包含于本发明所涵盖的专利范围中。

相关技术
  • 共享內存的数据分发服务的系统及其运作方法
  • 一种无线胶囊食道医疗內视镜系统及其运作方法
技术分类

06120112832887