关注“Linux宝库”畅游开源世界!

一、本文由来

这周接到绪总的“命题作文”任务,准备写一篇关于英特尔开源技术中心的开源项目DPS(Distributed Publish/Subscribe)的介绍。接到这个任务,我十分兴奋。作为英特尔开源技术中心开发的开源软件DPS最初的开发者之一,我有十分的理由来推广这个项目。也感谢绪总为推广开源软件DPS已经和将要做的努力。

二、项目技术背景

在谈论DPS项目的由来之前,我们需要先了解一下DPS的技术背景。DPS是一种实现发布/订阅通信模式的新协议。

目前,发布/订阅通信模式的协议在物联网应用中得到大量使用,比如MQTT和DDS等。发布/订阅通信模式的两个特点决定了其对物联网用户的吸引力,它支持发布者和订阅者的松耦合,并支持点对多点消息传递。

但是,从目前的物联网的发展来看,现在使用的发布/订阅通信模式的协议都存在着不同的缺陷。比如MQTT使用中介方法实现发布/订阅通信模式,但中介方法的缺点是代理单点必须是100%可用,发布/订阅通信网络的performance和代理单点的带宽和处理能力相关。此外,所有消息都要通过代理单点进行往返传输,从而降低通信延迟。而对于DDS使用多播实现发布/订阅通信模式,将导致发布/订阅通信信息难以扩展到单个子网之外……

DPS协议的出现,正是为了解决目前物联网中发布/订阅通信模式协议使用中遇到的这些问题。

目前,DPS项目已经成为英特尔开源技术中心的正式项目,并在github上可以获得开源代码(https://github.com/intel/dps-for-iot)。读者也可以查看DPS项目的官方文档https://intel.github.io/dps-for-iot/获取相应的技术细节。

三、DPS项目

DPS项目是由英特尔开源技术中心物联网首席软件技术专家Gregory Burns提出并开发的。作为物联网行业大名鼎鼎的AllJoy项目,Allseen联盟的技术指导委员会主席,Gregory Burns在来英特尔之前,就指导并开发了AllJoy项目。事实上,这个项目基本上被物联网行业各个公司作为物联网设备互联互通协议的标准。在Gregory Burns以物联网首席软件技术专家的身份加入英特尔开源技术中心后,便开始了DPS项目的启动以及开发工作。这样,DPS便在英特尔开源技术中心立项了。

作为在物联网网络领域工作多年的专家,Gregory Burns在项目开发方向的把握上,能力勿容质疑。怀着这个想法,我加入了DPS项目,我相信以我十多年的嵌入式网络开发经验,在Gregory Burns指导下,一定可以帮助到DPS项目的成功开发。在和Gregory Burns一起为DPS项目工作的那段时间中,我们的目标很单纯,就是尽快地完成DPS项目代码的编写工作,让DPS成为英特尔开源技术中心的一个官方开源项目。

虽然项目开发的时间被安排得很紧,但Gregory Burns对代码和和项目的技术实现确是一丝不苟。比如,我们在开发DPS的security部分的时候,就反复的使用不同的实现代码来实现DTLS的功能,再对比了这些不同的DTLS实现方式后,才最终选择一种最适合的方式来实现DPS的security部分。另外,Gregory Burns对DPS中网络通信的格式的实现要求也十分严谨,DPS的网络通信信息都必须遵循现有网络支持的信息封装标准来实现。

这样,在DPS的网络通信中,不会出现任何只有在DPS协议中才出现的非标准信息封装格式。并且,作为30多年IT行业的老专家,Gregory Burns也会亲自上阵,编写代码。这一点让人钦佩。在Gregory Burns对DPS项目严格的要求下,DPS物联网网络协议的框架实现的质量也就有了保证。

经过几个月的艰苦开发之后,DPS项目的大部分代码已经编写完成,并且成功地成为英特尔开源技术中心的官方开源项目。这是DPS项目最值得庆祝的milestone的时刻,但同时也给我们提出了一个很大的挑战。因为我们知道,DPS项目只有落地被不同的项目使用,才是它真正成功的时候。

所以之后,我们努力的方面变成了DPS项目的落地。我相信在Gregory Burns的心中,应该早计划。DPS作为新的物联网的网络协议,它不但可以用到智能设备/边缘计算/云计算中,而且也可以作为操作系统本身各个进程间的通讯协议。这样机器人系统(ROS)以及无人机系统(OS)这样的松耦合系统就都可以用DPS作为系统的基础构件,来构建机器人/无人机系统(OS)。

如果DPS可以作为智能设备/边缘计算/云/机器人系统(ROS)以及无人机系统(OS)等产品中的网络协议,那么这些产品就会使用同一种协议互联起来,各个设备间的无缝通信将成为可能,不同设备将可能形成一个很大的物联网,在这个网络中的各个设备将会因为同一标准的互联互通而受益。我想,那时才是DPS协议真正成功的时候。

四、物联网中DPS网络协议应用场景

作为是一个完全分布式的发布/订阅通信协议框架,DPS最适合使用在利用边缘计算与基于云的分析相结合的应用程序中。

这其中包括:

a. 嵌入式设备中的数据实时分发。

b. 智能设备(比如智能电视,智能冰箱等)间的互联互通。

c. 嵌入式设备,智能设备以及边缘计算设备之间的信息互通。

(目前,边缘计算概念大火,“雾”设备在相对本地的物联网网络中部署。轻量级/易部署的网络通信协议,是连接“雾”设备和嵌入式设备,智能设备最好的办法)

d. 云设备和“雾“设备以及嵌入式/智能设备的网络通信。

也可以用在进程间通信的系统架构中

e. 作为机器人系统(ROS)以及无人机系统(OS)中的进程间通信的网络协议。

(机器人系统(ROS)以及无人机系统(OS)都是松耦合的进程架构,十分适合使用DPS实现这类系统的基础通信架构。)

五、DPS特性

a. DPS是一个完全分布式的发布/订阅通信协议框架。不像MQTT,DPS没有代理单点。设备或应用程序(DPS中称之为节点)运行DPS协议形成一个动态的多连接网络,其中每个节点充当消息路由器。DPS形成的网络,就是目前最流行的mesh网络架构。

b. DPS支持类似MQTT用户十分熟悉的主题字符串语法,并且还支持类似MQTT的保留消息。

c. DPS使用Mesh网络架构的拓扑图结构。相对于其它发布/订阅通信协议框架提出的星型网络架构等,DPS的Mesh网络通过使用IP多播,目录服务或明确的URL进行自举。

d. DPS协议是轻量级网络协议,可以部署在十分小的设备上(如数据传感器设备上),是充分考虑了物联网设备的相应特性,而开发的网络协议。

e. DPS支持DTLS网络加密,为物联网网络提供加密保护的服务。DPS协议注重网络加密部分的实现,这对于使用在数据敏感的物联网场景中的产品,DPS有很大的优势。

f. 在传统的发布/订阅通信协议框架中,发布者和订阅者向主题发送主题字符串。系统中的代理单点基本上可以看到每一个经过的主题。在DPS中,节点仅发布路由消息到具有匹配订阅者的节点,因此通常没有单个点传递所有消息。

g. DPS十分适合利用边缘计算与基于云的分析相结合的应用程序。

上图就是DPS的发布/订阅消息传播图。

六、开发人员简介

Gregory Burns目前在英特尔开源技术中心担任物联网首席软件技术专家。之前,曾在高通任副总裁工程师/Allseen联盟的技术指导委员会主席,主导Alljoy项目开发,以及指导Allseen联盟的技术工作。也曾经在Open Interface North America担任CTO,在微软担任Group PM。在IT公司担任高级技术/管理职位超过35年,比很多技术开发人员的年龄还大,是名符其实的技术大牛。

郑武,英特尔开源技术中心资深软件工程师。从事Linux网络开发十多年,为Bluez / Connman / Yocto / Ostro / Tizen等多个Linux开源项目贡献代码。曾经作为Tizen的Bluetooth部分的maintainer,为Tizen设计/开发下一代Bluetooth框架。来英特尔工作之前,曾经为Sony Ericsson/大唐开发Bluetooth/2G/3G网络协议。有丰富的编程/项目经验。

关于作者:

郑武,英特尔开源技术中心资深软件工程师。从事Linux网络开发十多年,为Bluez / Connman / Yocto / Ostro / Tizen等多个Linux开源项目贡献代码。曾经作为Tizen的Bluetooth部分的maintainer,为Tizen设计/开发下一代Bluetooth框架。来英特尔工作之前,曾经为Sony Ericsson/大唐开发Bluetooth/2G/3G网络协议。有丰富的编程/项目经验。

关于“Linux宝库”微信公众号:

欢迎关注"Linux宝库"微信公众号,这里每天发布最新的开源人物和开源事件。谨以此号记录Linux和开源业界的点点滴滴,为开源爱好者和从业者点亮人生。

- 责任编辑:陈绪 -
- FIN -

Linux宝库

长按扫码,关注我们

为开源爱好者和从业者点亮人生!

物联网数据分发利器DPS相关推荐

  1. DDS——工业物联网中间件的正确选择(Data Distribute Service,数据分发服务)

    关键字:物联网 数据分发服务 DDS RTPS OMG 1.工业物联网是激动人心的未来 互联网和智能手机将人们与海量信息连接起来,从而对世界产生了深远的影响.互联网上大约有10亿个节点,包括笔记本电脑 ...

  2. 物联网大数据存储利器IoTDB介绍

    非物联网场景下的大数据应用通常是从业务库比如关系数据库同步数据到数仓,然后进行离线分析处理和展示.而在实时场景中,实时数据通常借助中间件消息系统如Kafka等转储,然后通过实时处理引擎如Spark,F ...

  3. 5G网下通过网络编码增强转发策略的NDN物联网内容分发模型

    5G网下通过网络编码增强转发策略的NDN物联网内容分发模型 期刊:iee顶刊 时间:2018 1. 论文的场景及假设条件 根据视频流量的数据,未来会有大量的视频流量产生.有效的内容分发是5g网亟需解决 ...

  4. tcp实时传输kafka数据_将物联网数据和MQTT消息流式传输到Apache Kafka

    Apache Kafka是一个实时流媒体平台,在大型和小型组织中得到广泛采用.Kafka的分布式微服务架构和发布/订阅协议使其成为在企业系统和应用程序之间移动实时数据的理想选择.据一些人称,超过三分之 ...

  5. 构建能源物联网,助力电力物联网数据服务

    摘要:F5G具备大带宽.低时延.高可靠.海量接入的特点,EIoT是安科瑞推出的基于物联网数据中台的能源物联网云平台,本文结合F5G和EIoT,为分布广泛的互联网用户提供PAAS服务的平台.用户完成安科 ...

  6. “F5G+EIoT“构建能源物联网,助力电力物联网数据服务

    一.引言 随着互联网固定网络领域的代际演进,F5G悄然来临.在数字中国.智慧社会的数字化转型过程中,带宽.联接.体验的第五代提升将更好的实现人与人之间的情感传递,更全面的赋能新业务模式. 对电力行业来 ...

  7. 构建能源物联网,助力电力物联网数据服务F5G+EIoT

    摘要:F5G具备大带宽.低时延.高可靠.海量接入的特点,EIoT是安科瑞推出的基于物联网数据中台的能源物联网云平台,本文结合F5G和EIoT,为分布广泛的互联网用户提供PAAS服务的平台.用户完成安科 ...

  8. 首届“中国物联网数据基础设施最佳案例评选”结果出炉

    供稿 | 映云科技 出品 | CSDN云计算 随着物联网技术的成熟与普及,如今的世界早已进入万物互联的时代,全球年活跃连接的物联网设备已达数百亿规模 (IoT Analytics, 2021).海量物 ...

  9. 论文《基于区块链技术的物联网数据感知与自动交易系统设计与实现》学习报告

    <基于区块链技术的物联网数据感知与自动交易系统设计与实现> 相关介绍 智能合约模型 数据感知与交易系统架构设计 系统网络架构 系统总体架构设计 平平台区块链层的实现 1.Fabric 区区 ...

  10. 一种基于物联网技术的能源物联网数据服务平台

    摘要:随着物联网技术的快速发展,同时考虑到能源互联网的重要性以及传统电力通信技术的不足,本文提出了一种基于物联网技术的能源物联网数据服务平台,可为分布广泛的互联网用户提供PAAS服务.用户完成安科瑞物 ...

最新文章

  1. log4j, common-logging, slf4j 关系
  2. 滴滴高管今年集体不拿年终奖 员工奖励力度缩减一半
  3. 浅析网络推广外包公司如何完成营销型网站建设完成网络推广外包?
  4. mysql -ss -e_课内资源 - 基于ssm框架和mysql的网上选课系统
  5. JPA持久化异常:PersistenceException: org.hibernate.PersistentObjectException
  6. 指针和引用的区别和联系
  7. 计算机专业排版有哪些,计算机专业英语词汇(完美排版_大容量打印版).pdf
  8. mysql 修改多表数据库_mysql数据库:mysql增删改、单表、多表及子查询
  9. 海康GB28181接入SRS服务器,实现低延迟直播
  10. 多线程_18_并发_同步_快乐影院_快乐火车票
  11. war文件放到服务器乱码,maven 打war包tomcat服务器乱码问题
  12. python自带的库有哪些_python自带库
  13. xcode13 找不到图片Slicing入口
  14. 二级Office知识点整合
  15. vue导入音乐_vue中添加mp3音频文件的方法
  16. 2025年,我的人生全被互联网巨头垄断了
  17. python调用linux命令
  18. 农行2021计算机专业面试题,2021年农业银行面试备考:半结构化往年面试题(五)...
  19. mpirun 遇到 forrtl: severe (174): SIGSEGV, segmentation fault occurred
  20. 【高等代数】第一章:多项式部分【1】

热门文章

  1. windows下批量更改文件名
  2. MySQL-快速入门(11)用户管理
  3. Java-数据库连接池第一篇
  4. Java-注解第一篇认识Annotation
  5. ECharts-第一篇最简单的应用
  6. MySQL-第九篇分组和组函数
  7. 织梦搜索结果增加dede:type、dede:arclist、dede:channelartlist、dede:tag等标签支持
  8. day-1 用python编写一个简易的FTP服务器
  9. form表单提交的时候,传过去的值是键值对的形式
  10. 一句话讲清楚什么是JavaEE