[Alljoyn] 1、物联网开源软件框架alljoyn研究(一)——初步了解

What is AllJoyn?[是一个合作的开源软件框架目的在于连接万物]

An Open Source API Framework For the Internet of Everything
A way devices and applications publish APIs over a network in a standard way
Why APIs?
– Because this is what software developers understand and work with every day
These APIs are the functionality that the “things” on the network expose to other “things”
– E.g. temperature, time of day, etc.…
– Services and/or devices can compose these APIs to provide whatever set of functionality they require
– The APIs are critical to interoperability between devices and services
How do applications know what APIs are available?
– AllJoyn provides application discovery and fine-grained discovery of the APIs supported by applications
– This is accomplished in a platform and radio-link agnostic way

Overview[它是一个分布式软件总线,该总线提供的“介质”能够使AllJoyn应用互相通信,应用可以被固化在微处理器、手机apps或者是传统的PC应用或服务;一个应用既可以是服务器又可以是客户端;该Bus的建立是ad hoc]

AllJoyn implements a “distributed software bus”
– The bus provides the “medium” that enables AllJoyn applications to communicate via published APIs
? Applications may be firmware on microcontrollers, mobile device “apps” or traditional applications on PCs/servers
– Applications publishing APIs are services, while those consuming the APIs are clients
? An application can be both a service and a client: this is makes AllJoyn a peer-to-peer system
– Communication is via messages that map directly to APIs in high-level programming languages
Bus formation is ad hoc
– Based on discovery of applications/services
– Abstracts link-specific discovery mechanisms
Protocol is network-independent
– Wire protocol is based on the D-Bus wire-protocol with extensions
– Can run over Wi-Fi, Wi-Fi Direct, Ethernet, PLC and Bluetooth
? Could likely run over others

High Level System Architecture[高层次体系结构包括路由节点和页节点,路由节点可以连接路由节点或叶节点,叶节点只能连接叶节点]

AllJoyn Bus is composed of two types of nodes:
– Routing Nodes (RN)
– Leaf Nodes (LN)
? LN can only connect to RN
? RN can connect to other RN
– AllJoyn can be thought of as a mesh of stars

Ad Hoc Bus Formation: Discovery[Ad Hoc Bus的发现机制:接口描述包含在About Message中,真正的发现机制是依赖运输层的,不同运输层采用的协议多不相同]

Interface descriptions contained in About message
? Services advertise, and Clients find, About messages
? connect to advertisers supporting desired interfaces
Actual discovery mechanism is transport dependent:
? On Wi-Fi, PLC, Ethernet: lightweight IP multicast protocol
? On Wi-Fi Direct: would use pre-association discovery

Ad Hoc Bus Formation: Session Creation[会话建立将导致bus连接扩展]

Session creation will cause Routing Nodes to connect and extend the bus
? Once connected, buses merge and have a single shared namespace
? Peers can discover when other peers join or leave the bus
? Peers can interact via their APIs
? Session reference counting keeps device-to-device connections alive
? Multicast events can be sent to all peers in the session

AllJoyn Software Framework: High-level architecture[软件框架高层体系结构]

A comprehensive software communication framework

Software Components[AllJoyn由Client Library和Router组成。其中Client Library包括Standard Client(SC)和Thin Client(TC),SC跑在HLOS上,支持多线程,不同开发平台和语言。TC限制比较多,仅有C语言]

AllJoyn has two main architectural components: the Client Library and the Router
Client Library
– This is referred to as a Client Library because all AllJoyn applications are clients of the router
? This is true regardless of if, in their application context, they are exposing services, or are clients of other services
? Applications are peers if they implement both client and service functionality
– The Client Library is what software developers interact with: the API set of the AllJoyn SDK
– There are two implementations of the Client Library: the Standard Client (SC) and the Thin Client (TC)
– The SC is targeted at applications running in HLOS environments
? The SDK APIs for the SC provide a high level of abstraction, and allow complex multi-threaded applications
? Native implementation is in C++ and there are a number of language bindings for various platforms available
– The TC is targeted at applications that would reside on deeply embedded devices (i.e. device firmware)
? Targets a very minimal memory (RAM and ROM) footprint,
? Implemented in C, with no other language bindings
? TC depends on a Routing Node running elsewhere, likely off device

Software Components: Router[任何包含路由器的节点是路由节点,路由器使用SC(因此跑在HLOS上)

Router
– Any node containing the router is a Routing Node
– The router is built using the Standard Client library, and so must run on an HLOS
– This can be deployed as a standalone daemon/service or integrated with the SC in an application
? The only platforms on which standalone functionality is currently supported are Linux-based, such as OpenWRT
– The Router functionality consists of bus management and routing AllJoyn messages
? Bus management includes
– Managing the namespace: application addressing over the bus
– Cross-device communication: discovering services and connecting to the routing node supporting that service on behalf leaf nodes
? Message routing consists of delivering messages between applications, or to the router itself
– AllJoyn control signaling also uses AllJoyn messages
– Routing Nodes do the “heavy lifting” in the Alljoyn system
– Leaf Nodes depend on Routing Nodes to interact with other nodes

Software Components: Language Bindings

Standard Client Library supports multiple language bindings
? Java binding available, compatible with Dalvik
? Objective C binding is available for use on iOS and MacOS
? Managed C++, C#, WinJS, and Visual Basic are available for use in Windows 8 style applications
? Unity + C Binding available for use on Android
? NPAPI binding for JavaScript is available
– All of the bindings are currently wrappers around the native C++ implementation
– Same object model for all bindings
– Seamless interoperability between applications written in different languages
Thin Client Library only supports C
– Most appropriate language for embedded RTOS development
– Other language wrappers around the C implementation being investigated

[正版请搜索:beautifulzzzz(看楼主博客园官方博客,享高质量生活)]

[如果您也喜欢智能硬件的东西,可以交个朋友~]

[如果您胸怀大志,能团结各路豪杰的乱世英雄,也可以留下一下信息~]

AllJoyn持续更新中。。。\(^o^)/~ 

时间: 2024-10-27 04:22:42

[Alljoyn] 1、物联网开源软件框架alljoyn研究(一)——初步了解的相关文章

[Alljoyn] 2、物联网开源软件框架alljoyn研究(二)——初步了解

AllJoyn SDK Concepts[AllJoyn应用通过APIs在objects间暴露自己的功能,大多数应用只暴露一个object,有时会自动生成父object(当应用的object不是root时):object能继承一个或多个接口] Exposing FunctionalityAllJoyn applications expose their functionality via APIs implemented in objects– Most applications will ex

OpenSource.com 评出 2014 年十佳开源软件

Docker 应用容器平台 “电源管理和虚拟化以相同的方式允许我们从服务器利用率中获取最大的利益.如何真正的解决虚拟化,这世界第一难题仍然是普遍存在的.Docker 自从 2013 年开源以来,刚好在这开源改革的关键时刻适应了时势的发展,提供扩展构建块,允许类似我们这样的工程师和架构师能够以亘古未有的方式进行分布式平台的扩 展.”—Richard Morrell, Senior software engineer Petazzoni on the breathtaking growth of D

[转]面向物联网的21个开源软件项目

原文链接:https://my.oschina.net/RainyZou/blog/1605337 物联网市场呈现碎片化.无定形.不断变化的特点,其性质需要不仅仅像平常那样关注互操作性.开源在这方面表现不俗也就不足为奇了——客户犹豫不决,不敢将物联网的未来寄托在一种可能销声匿迹或变得难以定制.互联的专有平台上. 我在本文中介绍了主要的开源软件项目,专注于面向家庭和工业自动化的开源技术.我忽略了侧重垂直领域的与物联网有关的项目,比如Automotive Grade Linux和Dronecode,

调侃物联网开源框架,我们什么时候也来开源一个?

前段时间高通公司开源了眼下 较火的开源框架AllJoyn框架 个人对这个框架并不看好, 地址: http://blog.csdn.net/ncscan/article/details/17267327 为了证明我的理论呢.拿出了一个非常久之前的项目! 地址:http://blog.csdn.net/ncscan/article/details/18793117 实践视频:[flash]http://player.youku.com/player.php/sid/XNjY2MzUxMjQ0/v.s

PHP 之 Laravel 框架安装及相关开源软件

Laravel 被称为简洁.优雅的PHP开发框架,但第一次接触此框架的人有不少都卡在了安装上,其实在 Linux 下只需要很简单的几步就可以搞定,这里我们以 CentOS 下 PHP + Nginx + Mysql 的环境为例. 首先需要了解 Laravel 安装依赖,比如 Laravel4.2 就有下面的要求: PHP >= 5.4 - MCrypt PHP 扩展 最主要的是 PHP 版本,正常安装的话相关扩展应该都会包含 另外你的系统需要有 Composer,一个 PHP 依赖管理工具,没装

以后可以研究的49个开源软件

音频工具 1. Audacity 这个跨平台的录音.音频编辑器由于其运行的速度快.操作简单易用而得了高分,主要的功能包括封装编辑.混音.还有内置的特效,支持的格式有WAV, AIFF, Ogg, MP3. 2. Linux MultiMedia Studio 想想你用什么成为一个音乐创作者?LMMS让你在自己电脑上制作音乐,包括音频信号耦合,混响和合成,改编样本等等. 3. Jajuk 如果你在网上down了很多音乐,拥有一个庞大音乐库但是忘记了分类怎么办?Jajuk就是为你设计的,这个软件提供

DM8168 DVRRDK软件框架研究

转载注明:http://blog.csdn.net/guo8113/article/details/41120491 Netra(DM8168)处理器是个多核处理器,每个核之间相互独立却又相互关联,如何高效简洁地利用每个核完成一套系统功能是非常关键的,RDK这套软件平台就是针对这种多核平台设计的一套多通道视频应用方案,主要用于DVR.NVR.IPNC之类的产品. 这个软件框架结构允许用户创建不同的多路数据流来实现视频的采集.视频处理(DEI.Noise Filter.Encode.Decode.

开源软件与知识产权

目录 1.      软件与知识产权... 2 1.1.      引言... 2 1.2.      著作权法与软件... 3 2.      开源软件概述... 3 2.1.      自由软件运动... 3 2.2.      开源软件的发展... 4 2.3.      开源软件涉及的主要权益... 4 2.3.1.       著作权... 4 2.3.2.       专利权... 4 2.3.3.       商标权... 5 2.4.      开源软件的优势与劣势... 5 3

100款开源软件

不知道这些你就OUT了!100款开源软件 好的软件可以极大提高工作效率,完成一些不可能完成工作.然而我们也常常为选择哪款软件而头疼,本次为大家推出的100款软件都是经过整理分类的,而且最重要的是100款软件都是开源免费且使用于Linux环境下,大部分都可以直接从官网上下载使用.如果你完全没有接触过以下我介绍的这100款软件,我只能说一句你OUT了! 图:100款软件分类图 接下来将要介绍的100款开源应用程序,是我花了很多时间为大家整理的,这些软件对大家来说是很有用的.我希望通过这100款软件告