【AllJoyn框架-06】关于基于AllJoyn的即插即用的进展总结

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 目前项目与即插即用有关,以alljoyn为底层支撑,以VS为开发环境,以Mongodb为数据库而实现的。目前实现的功能有: 1、系统以多对一方式运行,多个客户端,一个服务端 2、服务端可定期收集客户端的描述信息,包括客户端有哪些资源,在哪里等等 3、当有设备加入或离开时,服务端可以立即了解到 4、描述信息以JSON格式写入Mongodb数据库,可供上层应用获取利用 5、目前平台仅

目前项目与即插即用有关,以alljoyn为底层支撑,以VS为开发环境,以Mongodb为数据库而实现的。目前实现的功能有:

1、系统以多对一方式运行,多个客户端,一个服务端

2、服务端可定期收集客户端的描述信息,包括客户端有哪些资源,在哪里等等

3、当有设备加入或离开时,服务端可以立即了解到

4、描述信息以JSON格式写入Mongodb数据库,可供上层应用获取利用

5、目前平台仅涉及PC和arduino due(arduino平台我暂未负责)


存在的问题有:

1、当多个地方开启同名服务时,客户只识别其中一个,如何判断?

2、随着客户端的增多,加入会话的时间会相应延长,怎样解决?

3、当有2个或2个以上的客户端启动时,CPU占用率高达90%


目前成果图文说明

1、准备阶段

配置好mongodb数据库,启动mongo客户端以方便观察数据库变化;准备好服务端与客户端的执行文件及相应的配置xml文件;设置好boost和mongoclient动态库路径,运行时需要


2、启动服务端程序和数据库客户端mongo


上图表明连接数据库成功,且正在等待接收客户会话请求。服务名是:org.alljoyn.service.test



已经连上mongodb服务端


3、启动第一个客户端实例


由上图可知客户寻找服务成功,加入会话。接下来收到服务发送的命令,该命令要求客户发送自己的描述信息,于是客户开始发送描述信息,发完后继续等待接收命令

客户一启动,服务端的反应是:


接受了客户的连接请求。设备一加入,就立刻发送获取描述信息命令。上图显示了两次命令发送,所以收到了两次描述信息,并将之写入数据库。目前此描述信息只是模板,后期需要调整。这里将信息以JSON格式打印出来以方便展示

此时我们可观察数据库是否有无添加。预先已经在service.xml文件中设置好数据库名alljoyn,集合名为clientdesc,见下图:


由图可知描述信息已经写入了数据库。其中由于编码问题,导致中文的乱码。当然这不是重点,毕竟已经成功写入了数据库。此后关于此客户的信息会定期由服务端发送命令面更新。


4、启动第二个客户端实例

客户反应如上,服务端也能立刻识别,见下图:


立刻识别出了新增的客户:XwpuCV6U.2,数据库的数量从1变成了2.此时再查看数据库:


已经多增加了一条记录


5、断开一个客户端

比如随便断开一个客户端,服务能否立刻感知到呢?可以


服务端检测到有客户退出。当然此时数据库也少了一项


大概就是如此。当然,还有很多不足,可能最让人困惑的是这东西能干啥。用在PC上确实感觉不到,不过用在嵌入式终端上就会有它的好处了,目前还需继续探讨。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
6月前
|
存储 Linux API
软件体系结构 - 嵌入式系统(2)- 嵌入式操作系统
软件体系结构 - 嵌入式系统(2)- 嵌入式操作系统
102 0
|
4月前
|
监控 BI 数据处理
LabVIEW与欧陆温控表通讯的实现与应用:厂商软件与自主开发的优缺点
LabVIEW与欧陆温控表通讯的实现与应用:厂商软件与自主开发的优缺点
40 0
|
存储 XML 数据处理
授人以鱼不如授人以渔,最快让你搭建运动控制软件框架
授人以鱼不如授人以渔,最快让你搭建运动控制软件框架
393 0
授人以鱼不如授人以渔,最快让你搭建运动控制软件框架
|
传感器 5G 测试技术
5G系统概念 | 《5G移动无线通信技术》之七
本节介绍满足上述要求的 5G 系统概念。为了达到这些要求,系统需要一个灵活的 平台。5G 不是为某一个“杀手级应用”设计的系统,而是面向众多甚至至今尚未可知 的用例。垂直行业(如汽车、能源、工业制造等)特别需要能够基于同一平台获得定制 方案的灵活性。因此,上述用例可以用来指引 5G 系统的研发,但是系统概念设计并不 限于上述用例。
5G系统概念 | 《5G移动无线通信技术》之七
|
Java 物联网 测试技术
物联网框架ServerSuperIO在.NetCore实现跨平台的实践路线
正所谓天下大势,不跟风不行。你不跨平台,很low嘛。java说:你们能跨嘛,跨给我看看。C#说:不要强人所难嘛。java说:能部署在云上吗?docker?微服务?C#说:不要强人所难嘛。
1551 0
|
IDE 物联网 C#
ServerSuperIO Designer IDE 发布,打造物联网通讯大脑,随心而联。附:C#驱动源代码。
1.概况       注:ServerSuperIO Designer IDE 同行业网友随便使用,不涉及到软件使用限制的问题。      从2015年到现在的将近两年的时间,一直在开发、完善ServerSuperIO(SSIO)的基础框架,包括:多通讯机制、稳定性、扩展性等,没有太多时间把工作放在UI的设计与开发上,从二次开发者角度来讲易用性是短板。
1486 0
|
缓存 物联网
《连载 | 物联网框架ServerSuperIO教程》- 3.设备驱动介绍
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 《连载 | 物联网框架ServerSuperIO教程》1.4种通讯模式机制。 《连载 | 物联网框架ServerSuperIO教程》2.
726 0
|
物联网 C# Windows
应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案
SSIO的更新       在SSIO上增加了UDP通讯方式,可以到Github上下载源代码。在原来的项目中,远端的设备与中心站的数据交互并没有使用过UDP方式。这种短连接的通讯链路,不容易维护,主要体现在:(1)持续的数据交互能力。
981 0
【发布】工业串口和网络软件通讯平台(SuperIO v2.2.4)
SuperIO 下载:本站下载 百度网盘   更新说明: 1.修复无法把数据输出给IAppService的问题,以及无法触发删除操作事件。 2.侦听端口,可以设置。 3.设备接口,增加Object属性,方便平台使用。
669 0