【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
目录
相关文章
|
1月前
|
传感器 监控 算法
基于开源鸿蒙(OpenHarmony)的【智能家居综合应用】系统
基于开源鸿蒙(OpenHarmony)的【智能家居综合应用】系统
92 6
|
2月前
设备驱动基础设施 【ChatGPT】
设备驱动基础设施 【ChatGPT】
|
4月前
|
监控 BI 数据处理
LabVIEW与欧陆温控表通讯的实现与应用:厂商软件与自主开发的优缺点
LabVIEW与欧陆温控表通讯的实现与应用:厂商软件与自主开发的优缺点
40 0
|
数据可视化
关于Revit与Navisworks的互操作性(interoperability)
关于Revit与Navisworks的互操作性(interoperability)
关于Revit与Navisworks的互操作性(interoperability)
|
存储 XML 数据处理
授人以鱼不如授人以渔,最快让你搭建运动控制软件框架
授人以鱼不如授人以渔,最快让你搭建运动控制软件框架
389 0
授人以鱼不如授人以渔,最快让你搭建运动控制软件框架
|
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