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

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介: 目前项目与即插即用有关,以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月前
|
自然语言处理 C语言
|
传感器 存储 安全
机器通信 | 《5G移动无线通信技术》之八
本节主要介绍了机器通信的内容以及超可靠机器类通信。
机器通信  | 《5G移动无线通信技术》之八
|
传感器 5G 测试技术
5G系统概念 | 《5G移动无线通信技术》之七
本节介绍满足上述要求的 5G 系统概念。为了达到这些要求,系统需要一个灵活的 平台。5G 不是为某一个“杀手级应用”设计的系统,而是面向众多甚至至今尚未可知 的用例。垂直行业(如汽车、能源、工业制造等)特别需要能够基于同一平台获得定制 方案的灵活性。因此,上述用例可以用来指引 5G 系统的研发,但是系统概念设计并不 限于上述用例。
5G系统概念 | 《5G移动无线通信技术》之七
|
C++ 索引
简单设计并开发一个移动通信程序
网络越来越好,手机之间的互动已经是常态,王者荣耀、微信实时视频等,已经将多屏互动推到各到各种应用场景。 为了让大家能清楚地了解多屏互动,我将结合实例对移动设备实时通信进行研究,并系统性地呈现一些解决方案。 最开始,我尝试给大家展示如何建立一个最简单的点对点通信。 万事开头难,先假定一下需求: 局域网内通信。 写一个你看我画的程序。 纯客户端(一开始,我不打算让服务器参与)。 下面
1180 0
|
物联网 C# Windows
应用SuperIO(SIO)和开源跨平台物联网框架ServerSuperIO(SSIO)构建系统的整体方案
SSIO的更新       在SSIO上增加了UDP通讯方式,可以到Github上下载源代码。在原来的项目中,远端的设备与中心站的数据交互并没有使用过UDP方式。这种短连接的通讯链路,不容易维护,主要体现在:(1)持续的数据交互能力。
948 0
|
物联网 Linux C#
【开源】C#跨平台物联网通讯框架ServerSuperIO(SSIO)
[连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍 [连载]《C#通讯(串口和网络)框架的设计与实现》-2.框架的总体设计   目       录 C#跨平台物联网通讯框架ServerSuperIO(SSIO)正式开源... 1 1.      SSIO的特点 2.      SSIO概述 3.      SSIO与SIO的区别 4.      控制模式 5.      跨平台Windows和Linux   一.SSIO的特点 轻型高性能通信框架,适用于多种应用场,轮询模式、自控模式、并发模式和单例模式。
1225 0
【发布】工业串口和网络软件通讯平台(SuperIO v2.2.4)
SuperIO 下载:本站下载 百度网盘   更新说明: 1.修复无法把数据输出给IAppService的问题,以及无法触发删除操作事件。 2.侦听端口,可以设置。 3.设备接口,增加Object属性,方便平台使用。
639 0
|
监控
【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动
SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1    服务接口的作用  围绕着设备驱动模块采集的数据,根据需求提供多种应用服务,例如:数据上传服务、数据请求服务、4-20mA服务、短信服务、LED服务以及OPC服务等。
1009 0