没有合适的资源?快使用搜索试试~ 我知道了~
软件X 19(2022)101180原始软件出版物Commlib:一个易于使用的网络物理系统通信库放大图片创作者:Kristan L. 西梅翁电子和计算机工程学院,塞萨洛尼基亚里士多德大学,54124塞萨洛尼基,希腊ar t i cl e i nf o文章历史记录:收到2022年收到修订版,2022年6月16日接受,2022年关键词:快速开发通信中间件a b st ra ct对象之间的通信和数据交换是信息物理系统的一个基本方面由于域的高度分布式性质,物理和虚拟对象依赖于感测-思考-动作-通信模型,以便提供用于发送和接收传感器数据和致动命令以及用于将处理工件与感测和致动端点互连的远程接口。为了构建这样的接口,必须考虑事物/对象规范,以便编写/调整/使用它们的驱动程序并确保适当的连接;这种方法至少是麻烦的,并且需要硬件工程专业知识。在本文中,我们介绍了Commlib,这是一个Python库,它抽象了底层协议特定的属性和规范,并提供了一个高级API,用于通过异步消息驱动和事件驱动的通信中间件(如MQTT,AMQP,Kafka和Redis代理)创建和管理分布式节点的通信接口我们的方法遵循的顺从端口连接器范例,通过输入和输出端口的消息被转移到节点之间的开放连接模型的互连和相互通信的分布式节点。Commlib易于使用,能够快速开发©2022作者(S)。由爱思唯尔公司出版这是CC BY-NC-ND下的开放获取文章许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。代码元数据当前代码版本v0.8.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-22-00083可复制胶囊的永久链接法律代码许可证MIT使用Git的代码版本控制系统使用Python的软件代码语言、工具和服务编译要求,操作环境依赖性Python 3.5+,Linux OS,任何Python 3包管理器。如果可用,链接到开发人员文档/手册https://github.com/robotics-4-all/commlib-py/README.md问题支持电子邮件klpanagi@gmail.com1. 动机和意义第四次工业革命[1]的核心技术是网络正如互联网改变了人们与信息交互的方式,CPS正在改变人们与*通讯作者。电子邮件地址:klpanagi@ece.auth.gr(Konstantinos Panayiotou).https://doi.org/10.1016/j.softx.2022.101180工程对象和系统。这些系统是自动化系统,通过联网和访问网络世界实现了许多创新功能,从而显著改变了我们的日常生活。CPS将传感、计算、控制和网络集成到物理对象和基础结构中,将它们连接到互联网并相互连接[3]。这些系统由一系列智能物理组件、对象和系统组成,它们包含高通信、计算和存储能力。CPS的应用领域广泛,包括制造业[4]和工业4.0 [5],教育机器人和智能2352-7110/©2022作者。由爱思唯尔公司出版。这是一篇开放获取的文章,使用CC BY-NC-ND许可证(http://creativecommons.org/licenses/by-nc-nd/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxKonstantinos Panayiotou,Emmanouil Tsardoulias和Andreas L.西梅翁软件X 19(2022)1011802Fig. 1. 消息代理在物联网和CPS系统中实现通信和消息传递层的示例应用。边缘设备具有本地代理安装用于内部通信,而边缘代理安装在设备上,充当其他边缘设备的网关环境,除此之外。数字孪生[6]是网络物理系统的一个经典例子,它是通过利用计算技术来提高物理实体性能的一种手段,这些技术本身通过虚拟对应物来实现。另一个例子是智能家居领域[7],其中物理和虚拟对象都存在并合作执行自动化场景,在大多数情况下,自动化场景打开灯或关闭恒温器)。在过去的几年里,物联网和CPS领域的兴起推动了技术突破通信和消息传递中间件[8,9],如MQTT [10],AMQP [11]和Redis [12]。这些方法使用消息队列来实现可靠、高可用和可伸缩的系统[13]。然而,这种系统和应用的开发对于非专家来说是一项具有挑战性的任务,并且除了与功能/应用层相关的知识之外,还需要网络概念的高级知识以及关于通信和消息协议的知识,以便连接物理对象和虚拟对象。这增加了复杂性并降低了开发者的生产率。此外,在IoT和CPS [14,15]的背景下的下一代网络方法(诸如软件定义网络(SDN)[16])正在发展以更容易地集成传感器/致动器设备。CPS可以使用SDS,因为它们依赖于例如交通运输。制造和工业自动化系统。在CPS和物联网的背景下,用于节点间通信的大多数可用库和框架要么是专有的,要么是特定于协议/中间件的,并且需要高端技术知识和编程技能来实现高生产力水平。此外,没有一个开源解决方案基于消息代理技术为分布式节点的混合在这方面,我们-troduce Commlib1,一个开源Python库,专注于通过抽象低级知识并提供符合代理端口连接器模型的高级API [17]来快速开发物联网和CPS应用程序,用于定义分布式系统中各个节点之间的互连和消息流。Commlib是一个协议无关的通信和消息软件库,用于快速开发分布式系统。这种方法可以应用于为云、边缘、边缘到云和云到边缘场景构建混合通信策略,如图所示。1.一、物理和虚拟(软件定义)对象之间的通信通过异步PubSub和同步ReqResp连接传感器和执行器的网络,测量、监控和保护功能在不同的1Commlib Python包中:https://github.com/robotics-4-all/commlib-pyKonstantinos Panayiotou,Emmanouil Tsardoulias和Andreas L.西梅翁软件X 19(2022)1011803图二、通 过 消 息 队 列 中 间 件 实现PubSub和RPC通信模式的 方 法 。通道,实现物联网设备,机器人,边缘设备和基于云的系统和服务的相互通信。2. 软件描述Commlib是一个高级通信和消息传递库,用于CPS应用程序和系统的开发,用Python编写。它支持最流行的通信模式,如请求-响应(ReqResp)和远程过程调用(RPC),异步基于主题的发布 - 订 阅 ( PubSub ) ( 图 1 ) 。 2 ) , 负 载 平 衡 工 作 进 程(LBWQ)和具有异步反馈的可抢占服务,也称为动作(图2)。3)-受到ROS Actions的高度启发,2超过了消息代理技术。消息代理是负责将消息路由到适当端点的通信中间件.消息代理的一些示例是:AMQP代理(例如,RabbitMQ)、Apache Kafka、MQTT代理(例如Moscow和EMQX)和Redis。在物联网和CPS的背景下,通常需要基于相关应用的要求在消息代理之间桥接消息。Commlib在支持的消息代理之间实现协议桥接。例如,在MQTT代理用于边缘通信并且AMQP代理部署在云上的IoT架构中,可以部署Commlib桥用于边缘到云(E2C)和云到边缘(C2E)通信。桥的一个应用示例是以最小的努力在物联网系统的不同层之间镜像信息,例如用于构建数字孪生系统[18]。此外,Commlib桥是定向的,这意味着可以定义消息流,并根据端点的底层通信模式进行区分,例如Topic和RPC桥。节点是一个独立的软件组件,它遵循中间-端口-连接器模型,具有输入、输出和输入-输出端口,用于与其他节点进行定向通信。分布式物联网和CPS系统(图4).输入和输出端口支持的端点的主要类型如表1所示。发布者、RPC客户端和动作客户端可以绑定到输出端口,而订阅者、RPC服务和动作服务绑定到输入端口。代理到代理的桥也根据消息流的方向绑定到Node inout端口每个Node都连接到一个代理,并提供创建端点和将它们附加到输入和输出端口的方法。在每个节点上分配一个唯一的名称空间,用于为通信层构造语义URI此外,对于节点的状态监视和崩溃的动态识别,Commlib实现了心跳机制,用户可以定义向代理发送心跳消息的频率最后,Commlib支持消息驱动开发,并为输入和输出接口实现了消息验证层这意味着端点可以选择使用静态消息类型,可以用语言或通过接口定义语言(IDL)。Comm-IDL,3是作为一个单独的项目开发的,它提供了一个语法来定义RPC、基于主题的PubSub和Actions的消息类型,以及一个代码生成器来自动生成源代码(目前只支持Python)。生成的消息可以导入并用于使用Commlib的项目中,用于端点之间的类型化通信。IDL的元模型在图5中提供,其用于通信消息的定义和代码生成。3. 影响Commlib是CPS和物联网的高级通信和消息传递库,它在中间件不可知的环境中,通过常用的中间件(如AMQP代理、ApacheKafka、MQTT代理和Redis2ROS Actions:http://wiki.ros.org/actionlib3Comm-IDL包:https://github.com/robotics-4-all/comm-idlKonstantinos Panayiotou,Emmanouil Tsardoulias和Andreas L.西梅翁软件X 19(2022)1011804图3.第三章。带有 反馈的可抢占服务,也称为操作。由PubSub和RPC端点组成见图4。基于代理-端口-连接器模型的节点定义。节点通过输入,输出和InOut端口以及通信中间件进行通信,例如RabbitMQ,Apache Kafka,MQTT代理和Redis。表1输入、输出和输入输出端口的可用节点端点端点图案描述输入端口RPCService请求响应单个RPC端点。RPC服务器请求响应多RPC服务容器。多个RPC在单个连接上运行订户PubSub订阅一个主题。PSubscribePubSub基于模式的主题订阅。企业文化ReqResp + PubSub具有反馈的抢先服务。输出端口RPCClient请求响应用于通过消息代理调用RPC的单个RPC端点客户端出版商PubSub单一主题出版商。MPublisherPubSub多主题出版社。不包含消息验证层客户服务ReqResp + PubSub单一动作客户端。先输入再输出端口RPCBridge请求响应RPC服务的桥接实现主题桥PubSub基于主题的PubSub通信的桥接实现PTopicBridgePubSub基于主题模式在两个代理之间桥接PubSub通信方式该项目的目的是实施一种用于一般分布式系统的快速开发的集成的中间件无关解决方案,其通过降低复杂性和所需的专业知识来促进软件制品的可重用性和可扩展性,并期望导致开发者的生产率提高。由于CPS应用开发的困难,目前存在着大量的设备和平台,它们使用不同的接口用于通信(例如,协议和模式)或绑定到专有接口(例如,亚马逊Alexa4和苹果Siri5)。在后一种情况下,集成相关设备/平台的唯一方法4 亚马逊Alexa:https://alexa.amazon.com/5 苹果Siri:https://www.apple.com/siri/Konstantinos Panayiotou,Emmanouil Tsardoulias和Andreas L.西梅翁软件X 19(2022)1011805图五. 接口定义语言的元模型。是使用一个专用网关,在我们的例子中,它将有几个“我们认为Commlib可以解决专有设备和协议的集成问题,尽管它可以与第三方一起使用,以允许在应用层访问更多的设备和功能,并通过不同架构和通信中间件的通用接口进行开发。通过这种方式,开发人员可以专注于高级应用程序开发,而不必处理低级通信和消息传递细节。此外,与Commlib一起开发的专用IDL可以实现低代码定义和通信消息的自动软件生成,这些消息可以以模型的形式此外,消息验证层在输入和输出端口的通信层之上实现,并且可以可选地用于在运行时验证分布式端点之间的消息流。最后,Commlib已成功用于开发各种SYTHES智能家居助手框架、6个TekTrain教育机器人平台、7个EERIS智能能源监控平台等研发项目。8以及CPS和物联网背景下的几个开源项目,例如SmAuto DSL9和ROSBridge DSL10所有的前面-这些项目是高度分布式的系统,混合节点之间的数据交换率过高,例如物联网设备,机器人以及边缘和云网关和服务。我们的低代码方法推动了开发,从而缩短了CPS通信层的开发和维护时间,并使工程师和开发人员能够通过快速实现新功能来专注于3.1. 为例如前所述,Commlib框架已用于研发项目背景下各种CPS案例的通信和 消息传递层的开 发。在 本节中, 我们将重点介绍SYTHES智能助手项目,6 SYTHES项目:https://issel.ee.auth.gr/en/sities/7 TekTrain项目:https://issel.ee.auth.gr/en/en-tektrain/8 EERIS项目:https://issel.ee.auth.gr/en/eeris/9 SmAutoDSL:https://github.com/robotics-4-all/smauto-dsl10 ROSBridge DSL:https://github.com/robotics-4-all/rosbridge-dsl用于构建高度复杂和混合系统的机器人内/机器人间、边缘、云、SYTHES分为三个不同的实体:(a)平台,(b)应用程序商店和(c)ELSA智能助手。该项目的目标是为希腊老年人的环境辅助生活开发CPS,该CPS由云部分和物理设备组成,该物理设备配备了许多传感器和致动器以及SYTHES平台托管服务,数据库和后端服务,以支持应用程序的快速开发,然后可以远程执行或计划执行。此外,该平台允许ELSA设备的远程连接,并通过RabbitMQ消息代理通过双向通道进行通信。在图6中,呈现了架构的视图。设备上组件的相互通信通过本地Redis代理(绿色)实现,而设备到平台和平台到设备的通信通过托管在云上的RabbitMQ代理(洋红色)执行。此外,ELSA托管MQTT桥(M5StickBridge),用于连接监测心率并检测用户可能跌倒的智能腕带。所有上述通信都是使用Commlib开发的,它允许抽象通信中间件并专注于实现系统的逻辑。最后,避免深入到ELSA设备和SYTHES平台的各个组件,因为它超出了本文的范围。4. 结论在本文中,我们介绍了Commlib,一个开源的Pyt- hon图书馆的摘要特定中间件属性,并提供了一种快速开发方法,用于创建和管理分布式节点的通信接口,通过异步消息驱动和事件驱动的通信中间件,如MQTT,AMQP,Kafka和Redis代理。该实现遵循的顺从端口连接器范例,通过输入和输出端口,消息通过节点之间的开放连接传输的分布式节点的互连和互通模型。我们的方法可以应用于构建混合云、边缘、边缘到云和云到边缘系统和应用程序,其中物理和虚拟(软件定义)“事物"之间的通信Konstantinos Panayiotou,Emmanouil Tsardoulias和Andreas L.西梅翁软件X 19(2022)1011806见图6。 SYTHES Architecture.本地设备通信通过Redis代理执行,而对于设备到平台和平台到设备通信,使用托管平台侧的RabbitMQ代理。Commlib框架用于实现通信和消息传递层。通道,实现物联网设备,机器人,边缘设备和基于云的系统和服务的相互通信。我们希望我们的方法能被其他开发人员和研究人员采用,这将在CPS的背景下推进科学和工程竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作数据可用性文章中描述的研究未使用任何数据致谢这项研究是由希腊和欧洲联盟(欧洲社会基金-ESF)通过“人力资源开发、教育和终身学习”业务方案在“通过博士研究加强人力资源研究潜力”项目(MIS- 5000432)的范围内共同资助的,该项目引用[1] SchiltonM,Hovsepian F.第四次工业革命。施普林格; 2018年。[2] 徐华,余伟,格里菲斯,戈尔米.工业物联网调查:网络物理系统视角。IECMS Access2018;6:78238-59.[3] Baheti R,Gill H.网络物理系统Impact Control Technol2011;12(1):161-6.[4]Monostori L,Kádár B,Bauernhansl T,Kondoh S,库马拉S,杨文,李国忠,李国忠.制造业中的网络物理系统。Cirp Annals2016;65(2):621-41.[5]Jazdi N. 工业4.0背景下的网络物理系统。 时间:2014年IEEE自动化、质量与测试、机器人国际会议。IEEE; 2014,p. 一比四[6]Jones D,Snider C,Nassehi A,Yon J,Hicks B.数字孪生的特点:系统性文献综述。 CIRP J Manif Sci Technol2020;29:36-52.[7]施春生,周俊杰,赖杰,郭天伟. 为智能建筑和城市设计CPS/IoT应用。IETCyber-Phys Syst:Theory Appl2016;1(1):3-12.[8]奈克河为物联网系统选择有效的消息传递协议:MQTT,CoAP、AMQP和HTTP。2017年IEEE国际系统工程研讨会IEEE; 2017,p. 1-7号。[9]2005年10月27日,Al-MasriE,Kalyanam KR,Batts J,Kim J,Singh S,VoT,Yan C.投资-物联网(IoT)的门控消息传递协议。IEEE Access2020;8:94880-911.[10]SoniD,Makwana A.物联网协议mqtt综述(IOT)。在:国际会议电信,电力分析和计算技术,卷。20. 2017年,p.173比7[11]维诺斯基湾 高级消息队列协议。 IEEE互联网计算2006;10(6):87-9.[12] 卡尔森·JRedis在行动Simon and Schuster; 2013.[13]傅刚,张英,于刚.消息队列系统的公平比较。IEEEAccess2020;9:421-32.[14]放大图片作者:JawharI,Al-Jaroodi J,Noura H,Mohamed N.网络和通信-网络物理系统中2017年IEEE第37届分布式计算系统研讨会。IEEE; 2017,p.75比82[15]NogueroA,Calvo I,Almeida L.一种时间触发的中间件体系结构用于无处不在的网络物理系统应用。在:国际会议上无处不在的计算和环境智能。 Springer; 2012,p. 73比80[16]放大图片作者:J.网络物理系统中的软件定义网络一个调查。 Comput Electr Eng2018;66:407-19.[17]放大图片作者:Lau K-K,Ornaghi M,Wang Z.软件构件模型及其初步形式化。在:组件和对象的形式方法国际研讨会。Springer; 2005,p.1-21[18]LimKYH,Zheng P,Chen C-H.数字孪生的最新研究:技术-niques,工程产品生命周期管理和业务创新的观点。J Intell Manuf2020;31(6):1313-37。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功