开源项目 AllJoyn 框架

本文详细介绍了AllJoyn框架,一个分布式软件总线,支持点对点通信,屏蔽底层网络差异。文章涵盖了AllJoyn的高层系统框架、软件组件(包括Client Library和Router)、SDK API及安全框架。AllJoyn通过API对象实现,方法、信号和属性接口提供交互,安全框架强调应用间的鉴权和加密,确保接口安全性。
摘要由CSDN通过智能技术生成

AllJoyn框架概述

  • AllJoyn实现的是一个”分布式软件总线”

  • 总线为点对点模式

  • 协议不依赖于网络

这三点是从介绍的PPT中翻过来的,但理解简单理解一下看以认为,这个框架是分布式的一个中间层通信框架,主要是支持点对点通信,并且由中间层屏蔽了底层物理网络的差异,对上层高级编程语言直接提供接口。

高层系统框架

这里写图片描述
此图摘自(AllJoyn - Tech Overview v3_for Brooks)

从高层的这个框架中可以看出系统中只有两种节点:

  • Routing Nodes (RN)

  • Leaf Nodes(LN)

其规则是RN可以与RN和LN通信,LN只能和RN通信。


这里两张图片展示了Router间通信的一个过程,发现和建立Session。这是High-Level System Architecture中通信的一个简单的实例。

Ad Hoc Bus Formation: Discovery
这里写图片描述

这里Client App和设备内部Router建立了内部链接,Client端的Router会通过查找interface找到Service的Router。

Ad Hoc Bus Formation: Session Creation
这里写图片描述

Router间建立了Session使得Client能获得Service的服务。


Software Components

这部分相算是开始进入了正题。

软件组件的高层的框架:分为了基础服务框架(Base Service Frameworks 和 核心框架 Core Framework )
这里写图片描述

软件组件也可以划分为 Client Library 和 Router

Client Library:

  • 开发用户的接口

  • 以SDK API的形式对外发布

  • 分为两种Stand Client 和 Thin Client
    SC针对High Level 的操作系统,Thin Client针对嵌入式系统或小内存系统使用。

Router:

  • 任何App包含了Router,它便可以认为是一个Router Node

  • Router 必须使用 Stand Client Library 构建,必须运行在HLOS中。

  • 它可以被部署为单独的服务或守护进程

  • Router功能包含了Bus管理和AllJoyn消息路由


关于AllJoyn 的SDK

AllJoyn 程序是通过 API的形式对外提供功能的,它是一个对象实现的。
大部分的程序都只是对外保留一个对象。对象会对外提供很多接口,这些API可以通过About来查询。

接口由三种形式组成:

  • Method(方法):与对象进行交互
  • Signals(信号):异步事件的通知
  • Property(属性): 读取或设置数据

下面的图示是关于API接口的使用过程。
首先是连接到Bus

  • Applications 要Attach到Bus上

  • 左侧对象会被发布到Bus 本地的Attachment上。

  • 在对端会定义一个代理对象(Proxy Object)

  • 信号处理的Handler会被注册到右端的Bus Attachment上来处理Object 发出的信号。

这里写图片描述


  • Method(方法)的使用是通过使用Proxy Object来实现的。

  • 调用右侧Proxy的接口时,会触发左侧Method Handler注册的处理函数,执行后并返回值到Proxy Object中。

  • Signal(信号)是由左侧Object触发,通过右侧注册的Signal Handler进行处理。

这里写图片描述

有了这两张图,一个基本的操作流程就被串起来了。这个还是有点像CORBA的思路。


AllJoyn Security 框架

Security Framework的几个特点

  • 鉴权和加密被设计为 App 到 App的。设备间并不存在关系。

  • 每一个接口的安全性。
    App中可以有加密的接口和开放的接口,如果有需要的话在初始化时app 间会交换key。

  • 安全的启用接口。
    调用方法时需要认证,接受Signal时需要认证,消息都是加密的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值