AllJoyn是一个中性平台系统,旨在简化邻近异构分布式移动通信网络系统。这里的异构性不仅表示不同的设备,而且可以是具有不同操作系统和不同类型的设备(例如个人电脑、手机、平板电脑和消费性电子产品),并且使用不同的通信技术。

开源

AllJoyn是在Apache Version 2.0 license授权下作为一个开源项目进行开发的。这代表所有的AllJoyn代码库都是可供查阅的,并且鼓励开发者进行补充和改进。如果AllJoyn缺少某个功能,你可以对此作出改进和贡献。如果你在嵌入式设备中使用AllJoyn,或者有任何技术性问题,我们开源社区中的众多参都会愿意提供帮助和指导。AllJoyn的代码库可以在http://www.alljoyn.org中获得。

操作系统的独立性

AllJoyn提供了一个抽象层,允许AllJoyn及其应用程序运行在多个操作系统平台上。AllJoyn支持大部分的标准Linux发行版本包括Ubuntu等,并可以运行在Android 2.2和更高版本的智能手机和平板设备上。AllJoyn还在常见版本的Microsoft Windows操作系统上进行了测试和验证,包括Windows XP和Windows7。

开发语言的独立性

目前,开发人员可以使用C++或Java语言来创建应用程序。其它语言的支持也将很快面世。

物理网络和协议的独立性

现在,网络设备支持许多的通信技术。AllJoyn提供了一个抽象层,它为底层网络协议栈定义了统一的接口,使得软件工程师可以相对容易地添加和安装新的网络。

最近,Wi-Fi联盟发布了一个Wi-Fi Direct规范,这将允许点对点的Wi-Fi连接。并且Wi-Fi Direct的网络硬件模块也正在积极开发中,它将为AllJoyn开发者增加Wi-Fi Direct功能和可用网络选项的预关联发现机制。

动态配置

通常情况下,移动设备在使用过程中会到达不同的地点,并不断与各种网络进行连接和断开。这意味着它的IP(互联网协议)地址可能会改变,网络接口可能无法使用,服务可能是短暂性的。

AllJoyn可以获知当前服务的断开和新服务的出现,并创建新的连接(如果需要)。AllJoyn准备作为Wi-Fi Hotspot 2.0技术的应用层,这种技术旨在提升手机和信号发射塔对Wi-Fi热点的漫游透明度。

有些情况下,网络拓扑结构对分布式应用程序的性能至关重要。蓝牙网络配置成微微网会比配置成分布式网络达到更好的性能。AllJoyn在内部对这些配置进行管理,而不需要开发人员对每种网络技术的具体特性进行任何了解。

广播和发现服务

当设备需要交互时,必须进行某种形式的广播和发现服务。在静态网络的时代,人作为管理员对设备之间通信作出了精确的安排。最近,零配置网络的概念已经得到了普及,尤其是苹果的Bonjour和微软的Plug and Play技术。我们也看到,现有技术的发现机制如蓝牙服务发现协议,和新兴机制如Wi-Fi Direct P2P发现规范。而AllJoyn提供了一种广播和发现服务的抽象,可以简化定位和应用服务的流程。

安全

分布式应用程序中安全性的固有模型是应用程序到应用程序的。不幸的是,在许多情况下,网络安全模型并不匹配这种固有的协定。例如,蓝牙协议就要求必须在设备之间进行配对。使用这种方法,一旦设备配对成功,两个设备上的所有应用程序都会得到授权。但是当考虑更多比蓝牙耳机更强大的设备时,这就不可取了。例如,两台笔记本电脑通过蓝牙进行连接,那么更精细的安全控制是非常有必要的。AllJoyn在设计上对这种复杂的安全模型提供了广泛的支持,特别是应用程序到应用程序的通信。

对象模型和远程方法调用

AllJoyn采用了一种易于理解的对象模型和远程方法调用(RMI)机制。AllJoyn重新实现了总线协议,基于D-BUS规范和扩展D-BUS协议,以支持分布式设备。

软件组件

根据标准的对象模型和总线协议可以规范各种接口组件。Java接口声明提供的一个与本地实现实例进行交互的规范,也采用了大致相同的方式。AllJoyn对象模型中提供了一个独立于语言的规范,来实现远程交互。

规范中考虑了多种接口的实现,从而可以支持应用程序通信的标准定义。这对于软件组件是可以实现的技术。软件组件已经成为了许多现代系统的核心部分,例如Android系统,它定义了四个主要的组件类型作为与Android应用框架进行交互的唯一渠道;或者在微软系统中,它使用了组件对象模型(COM)系统的子节点。

我们期待出现丰富的接口定义,以实现概述一节中描述的情景。AllJoyn项目希望与用户进行合作,共同定义和公布标准接口支持,并实现共享。

AllJoyn 了解的更多相关文章

  1. 物联网实验4 alljoyn物联网实验之手机局域网控制设备

    AllJoyn开源物联网协议框架,官方描述是一个能够使连接设备之间进行互操作的通用软件框架和系统服务核心集,也是一个跨制造商来创建动态近端网络的软件应用.高通已经将该项目捐赠给了一个名为“AllSee ...

  2. (原创) alljoyn物联网实验之手机局域网控制设备

    AllJoyn开源物联网协议框架,官方描述是一个能够使连接设备之间进行互操作的通用软件框架和系统服务核心集,也是一个跨制造商来创建动态近端网络的软件应用.高通已经将该项目捐赠给了一个名为“AllSee ...

  3. Alljoyn瘦客户端库介绍(官方文档翻译 下)

    由于其他事情耽误,这个翻译现在才完成.接上篇—— 4 瘦客户端核心库架构 由于AllJoyn瘦客户端核心库(AJTCL)必须运行在那些功耗受限.计算能力有限.资源紧缺的设备上,因此它无法像运行在通用型 ...

  4. Alljoyn瘦客户端库介绍(官方文档翻译)

    Alljoyn瘦客户端库介绍(上) 1.简介 本文档对AllJoynTM瘦客户端的核心库文件(AJTCL)进行了详尽的介绍.本文档介绍了系统整体架构,AllJoyn框架结构,并着重于介绍如何将嵌入式设 ...

  5. 深入浅出Alljoyn——实例分析之远程调用(Method)篇

    深入浅出就是很深入的学习了很久,还是只学了毛皮,呵呵! 服务端完整代码: #include <qcc/platform.h> #include <assert.h> #incl ...

  6. Alljoyn之管中窥豹

    Alljoyn之管中窥豹 一.历史: Alljoyn是高通2011年推出的近距离P2P通讯技术,它为分布式应用程序在不同设备中提供了运行环境,特别是移动性.安全性和动态配置,支持Microsoft W ...

  7. 嵌入式设备上运行AllJoyn注意事项

    1. 交叉编译AllJoyn库.编译成功后的文件位于:alljoyn-3.3.0-src\build\linux\arm\debug\dist\目录下: 2. 程序要使用AllJoyn,必须要启动al ...

  8. alljoyn连接时-fno-rtti选项测试结果

    以AllJoyn自带的chat示例在pc上测试结果如下: libAllJoyn.a编译选项 Chat编译选项 测试结果 -Wall -Werror=non-virtual-dtor -pipe -st ...

  9. AllJoyn Bundled Daemon 使用方式研究

    关于AllJoyn不多做介绍,请看官网:www.alljoyn.org/ 0. 问题来源: 应用程序要使用AllJoyn库,就必须启动deamon. 目前有两种方式: 使用standalone形式,单 ...

  10. 【开源推荐】AllJoyn:打造全球物联网的通用开源框架

    摘要:随着智能设备的发展,物联网逐渐进入了人们的生活.据预测,未来几乎一切东西(超过500亿台设备)都可以互联.高通公司发布了开源项目AllJoyn,这是一个能够使连接设备间进行互操作的通用软件框架和 ...

随机推荐

  1. Confluence 6 启用嵌套用户组

    一些目录服务器能够允许你在一个组中定义另外一个组.在这种结构下的用户组称为用户组嵌套.嵌套组的配置能够让子用户组继承上级用户组的权限,使系统的权限配置变得简单. 这个页面描述了 Confluence ...

  2. 51 jquery 节点操作和 bootstrapt

    jquery 和 bootstrapt1.jquery each 函数 1.each 循环方式一: 可循环对象: var arr =["alex","deng" ...

  3. P1758 [NOI2009]管道取珠

    考虑这个式子的意义. 不妨看做进行了两轮操作,这个式子显然等价于两次操作后得到的序列相同的方案数. 这个东西显然是可以dp的. 随便优化一下就成了O(n^3)

  4. Memory and Casinos CodeForces - 712E (概率,线段树)

    题目链接 题目大意:$n$个点, 每个点$i$有成功率$p_i$, 若成功走到$i+1$, 否则走到走到$i-1$, 多组询问, 求从$l$出发, 在$l$处不失败, 最后在$r$处胜利的概率 设$L ...

  5. Cron\CronExpression::setPart("24")

    利用laravle实现定时器的功能的时候,报错说:Cron\CronExpression::setPart("24"). 后来发现是时间设置的问题,他不能设置("24:0 ...

  6. seekg()/seekp()与tellg()/tellp()的用法详解

    本文转载于:http://blog.csdn.net/mafuli007/article/details/7314917 (在tcp的文件发送部分有应用) 对输入流操作:seekg()与tellg() ...

  7. Windows系统下修改Erlang默认路径

    新建.erlang文件: io:format("consulting .erlang in ~p~n",[element(2, file:get_cwd())]). c:cd(&q ...

  8. 使用路径arc

    <!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    < ...

  9. ElasticSearch-hadoop saveToEs源码分析

    ElasticSearch-hadoop saveToEs源码分析: 类的调用路径关系为: EsSpark -> EsRDDWriter -> RestService -> Rest ...

  10. 跟我一起学习ASP.NET 4.5 MVC4.0(三)

    今天我们继续ASP.NET 4.5 MVC 4.0,前两天熟悉了MVC4.0在VS11和win8下的更新,以及MVC中的基础语法和几个关键字的使用.了解了这些就可以对MVC进一步认识,相信很多人都对M ...