应用程序和路由器可以生活在同一个物理设备,或在不同的设备上。从AllJoyn的角度,没关系。在现实中,存在三种常见的拓扑结构:
一个应用程序使用它自己的路由器。在这种情况下,路由器被称为“捆绑的路由器”,因为它是与应用程序捆绑。AllJoyn应用程序在移动操作系统像Android和iOS和桌面操作系统,如Mac OS X和Windows一般倒在这组。
在同一设备上的多个应用程序使用一个路由器。在这种情况下,路由器被称为一个“独立的路由器”,它通常运行在后台/服务过程中。这是常见的Linux系统在AllJoyn路由器作为一个守护进程运行过程与其他应用程序连接到独立的路由器AllJoyn。通过在同一设备上使用常见的AllJoyn路由器有多个应用程序,设备消耗更少的整体资源。
一个应用程序在不同的设备上使用路由器。嵌入式设备(使用AllJoyn框架,薄变稍后)通常属于这一阵营的嵌入式设备通常没有足够的CPU和内存运行AllJoyn路由器。
AllJoyn框架运行在本地网络。它目前支持Wi-Fi、以太网、串口和电源线(PLC),但由于AllJoyn软件是写在运输无关的,因为AllJoyn系统是一个不断发展的开源项目,为更多的运输支持,可以说在未来。
此外,桥梁软件可以创建桥AllJoyn框架,其他系统如ZigBee、Z-Wave、或云。事实上,一个工作小组正在研究增加了网关代理作为一个标准的AllJoyn服务。
AllJoyn网络包括AllJoyn应用和AllJoyn路由器。
一个AllJoyn应用包括:
AllJoyn软件代码
AllJoyn框架图书馆服务
AllJoyn核心库
一个路由器可以运行AllJoyn作为独立的或有时是捆绑在一起的AllJoyn核心库。
AllJoyn核心库提供了最低水平的API集与AllJoyn网络互动。它提供了直接访问:广告与发现、 会话创建、方法、属性和信号接口定义,对象创建和处理
、开发人员使用这些API来实现AllJoyn服务框架,或实行私有的接口。
AllJoyn服务框架实施一套共同的服务,如入职、通知、或控制面板。采用常见的AllJoyn服务框架、应用程序和设备可以进行互操作的执行特定的功能。 服务框架被分成了AllSeen工作组:
基础服务 如下:提供一个一致的方法,将一个新的设备到Wi-Fi网络、允许一个应用程序/设备的某些属性,例如它的友好名称、允许文本通知被发送和接收的设备在AllJoyn网络,还通过网址支持音频和图像、允许设备向远程控制的虚拟控制做广告。
AllJoyn框架提供了两个形式:
标准形式。非嵌入式设备,如Android、iOS、Linux。
瘦客户端。资源受限的嵌入式设备,如Arduino,ThreadX,内存有限的Linux。