AllJoyn核心应用教程【第一章】:框架与概念

AllJoyn的概念

假设你现在位于一个人群拥挤的地方,如酒吧或咖啡厅。 身边的很多人都是你要交流的对象,但是这个环境下其他人都在熙熙攘攘的发出声响,对话与交谈。 AllJoyn应用就像是一个团队情景。 队伍里的”人”可以与另外的“某人”进行“交谈”、“分享想法”或者“广播信息”

首先我们来解决AllJoyn网络中的“交谈”概念。 我们首先需要让另外一个人关注到我们, 这样我们才能够与他直接进行交流。 在AllJoyn框架中,这等同于加入一个session然后执行一个BusMethod调用。 我们首先与其他应用进行连接,然后发送我们需要让他知道的消息,最后获得一个反馈。

“分享”的概念也非常简单。 当某个体需要让人群中的某个人了解一个重要信息时, 你通过申明在人群中进行传播。 在AllJoyn框架下, 这等同于加入一个session并发送一个型号。 最终,我们对于这个申明不需要任何有意义的反馈。 我们只需要确保人群中的所有人在同一时间内获得了这个消息。

“广播”的概念则需要让房间中的每个人听到他的消息,也就是说任何房间内的人都要收到。 我们身嘶力竭的说明我们的感觉与信息。 有些人会选择无视我们的信息, 但是其他人将会收到我信息并作出行动。 在AllJoyn框架下, 我们将其称作Sessionless信号。该机制允许应用发布其认为非常重要而且有意义的信息,并在网络中广为传播,信息在一段时间后也将不复存在。 网络中的任何应用都可以挑选感兴趣的信息。对于应用本身来说,它不需要跟踪sessionID或者试图去解释谁加入了网络, AllJoyn本身能够处理这些复杂度问题。

作为“人”这样一种个体,我们具有观察并认知彼此的能力。 我们能够识别很多他人的特殊特征如身高、眼镜颜色、性别等。 我们还能够在人群中识别出我们的朋友,通过他/她的着装等。 在AllJoyn框架中,我们基于应用的About Feature对另一个设备或者实体进行识别。 About Feature这个特性能够告诉我们设备的:名称、制造商、模型等。 此外,它还能告知设备所具有的特殊接口。 这些接口定义了设备的特性,而且接口都是可以交互的。

接下来我们就通过代码编写来建立第一个AllJoyn应用,并广播我们的能力, 寻找其他兼容应用,并实现上述三种通讯方式:与某应用的一对一通讯、与某个集群的一对多通讯以及与全部应用的一对多通讯。

AllJoyn框架代码理解

本代码所有代码可以通过Git下载

在设计案例应用前,我们尝试将应用分解成三个功能区,从而更好地理解框架的构成:
主要应用代码:Main
 处理命令行的输入信息
 在代码中创建并放置调用信息,从而与AllJoyn的API进行交互
Alljoyon的API代码:MyAlljoyonCode
 阐述如何启动AllJoyn框架
 使用About Feature为服务层的广播/接口做准备
 绑定session并跟踪主机的ID
 跟踪ID的用户
 与MyFirstBusObject类进行交互,从而与其他AllJoyn的实体进行交流

BusObject的实现:MyFirstBusObject
 创建并实现一个AllJoyn接口
 阐述如何发送一个BusMethod事件并获得反馈
 阐述如何发送一个信号与Sessionless信号
 阐述佮收取信号

在进一步学习AllJoyn框架前,大家可以去我的博客了解一下AllJoyn环境的搭建方式,先根据自己的情况搭建所需的开发环境。

你可能感兴趣的:(AllJoyn核心应用教程【第一章】:框架与概念)