ALLJOYN源码解析:从DAEMON到应用接口

5星 · 超过95%的资源 需积分: 14 219 下载量 176 浏览量 更新于2024-09-13 6 收藏 37KB DOCX 举报
"ALLJOYN源码阅读笔记" ALLJOYN是一个开源的、跨平台的框架,用于设备间实现近场通信和交互。这个框架的核心是它的消息总线(Bus),它允许不同的应用程序和服务通过一个统一的接口进行通信。ALLJOYN的源代码分为两大部分:后台运行的DAEMON和对外提供的接口。DAEMON可视为一个后台服务,负责处理应用间的通信和远程连接的管理。而上层接口则允许开发者创建服务器或客户端应用,将它们连接到后台总线上进行通信。 在ALLJOYN的关键类和对象中,有几个是特别重要的: 1. BusAttachment:这是ALLJOYN的核心对象,负责连接到消息总线,并可选地管理总线。有两种主要的构造函数,一种用于创建DAEMON,另一种用于创建客户端应用。在DAEMON模式下,BusAttachment不仅连接,还管理总线;而在客户端模式下,它仅负责连接。 2. BusController:在DAEMON部分,BusController是最高级别的对象之一,它管理总线上的通信和路由。 3. BusObject:表示在总线上的对象,可以是服务或者客户端,它们提供了接口供其他对象调用。 4. ALLJoynObj和DBusObj:这两个对象可能代表ALLJOYN框架自身的核心对象,以及与DBus(一个底层的消息传递系统)交互的对象。 5. Router:路由机制是ALLJOYN中数据传输的关键,它负责在不同端点之间转发消息。 6. Transport:传输层包含了各种类型的传输方式,如TCP和蓝牙(BTEndpoint),用于实际的数据传输。 7. BusEndpoint:这些包括LocalEndpoint、RemoteEndpoint、TCPEndpoint、BTEndpoint等,表示总线上的不同类型端点,它们负责数据的发送和接收。 8. DaemonRouter、ClientRouter和TransportList:这些是路由相关的组件,它们协同工作以确保消息正确路由到目标端点。 9. DaemonEndpoint、ClientEndpoint和InterfaceDescription:分别代表DAEMON端点、客户端端点和接口描述,接口描述定义了应用可以通过总线提供的服务和方法。 在DAEMON部分,BusController与BusAttachment紧密关联,同时BusAttachment下面有BusEndpoint来负责数据的传输。LocalEndpoint、DaemonEndpoint、RemoteEndpoint(如TCPEndpoint和BTEndpoint)以及VirtualEndpoint是BusEndpoint的不同子类型,它们分别处理不同类型的通信需求。 理解ALLJOYN的这些关键概念和组件对于深入学习和开发基于ALLJOYN的应用至关重要。通过阅读源代码,可以更深入地了解它们是如何协同工作,实现设备间的高效、安全通信的。