AllJoyn架构

xiaozhu12371237 2016-10-10 10:28:31

AllJoyn总线上的总线对象通过代理(Proxies)访问。代理是一个远程对象的本地表示,通过总线访问。代理是一种常见的术语,不是特定于AllJoyn系统,但是你会经常遇到ProxyBusObject一词,在AllJoyn框架中指出proxy的具体对象,它是一个位于远程对象的本地代理总线。

ProxyBusObject 是底层(low-level)AllJoyn代码的一部分。它使能一个代理对象的基本对象。

通常,一个RMI系统的目标是提供一个代理,实现了一个接口,看起来像是一个我们可以调用的远程对象。

在AllJoyn框架,客户端和服务软件,往往通过特定的编程语言绑定,提供实际的用户级代理对象。这个用户级代理对象使用AllJoyn代理总线对象(AllJoyn proxy bus object)的能力去实现他本地/远程透明的目标

一个AllJoyn总线上的连接作为服务提供接口的实现,通过接口名称来描述。接口的实现在服务中组成接口对象的一个树。客户端希望通过代理对象(proxy objects)使用服务,使用底层的AllJoyn代理总线对象通过逻辑总线对象去安排总线方法、总线信号和总线所有权等相关信息的交付。

为了完成总线寻址,对总线连接的名称必须是唯一的。AllJoyn为每个总线附属(bus attachment)提供一个唯一的临时总线名称。然而,这个唯一的名字是每次服务服务连接到总线自动产生的,因此不适合作为一个持久的服务标识符。必须有一个一致的和持久的方式让服务附属到总线上。 这些持久的名字被称作 well-known names.

正如一台主机系统在互联网上的域名不会随时间变化(e.g., 37iot.com),调用一个AllJoyn总线上的功能部件通过它well-known的总线名称。正如接口名称似乎是反向的域名,总线名字有相同的格式。请注意,这里会产生一些混淆,因为接口名称和well-known总线名称为了方便起见时常选择相同的字符串。记住他们代表不同的目的,接口名称标识客户端和服务之间的合同,由总线对象实现,驻守在总线附属(bus attachment)中;well-known名称标识服务和客户端通过一致的方式连接到那个附属(attachment)。

使用一个well-known名字,一个应用(通过总线连接)必须向总线Router使用这个名字。如果well-known名字没有被另外一个应用使用,同意独家使用这个well-known名字。这就是为什么在任何时间,well-known名字在总线上保证代表唯一的地址。

通常,一个well-known名字意味着约定,相关的总线连接实现了一组总线对象,因此可用服务的一些概念。由于总线名称提供了一个在分布式总线上唯一的地址,他们在总线中必须是唯一的。例如,可以使用总线名称,org.alljoyn.sample.chat,这将表明一个同名的总线连接可以实现聊天服务。由于用了这个名字,人们可以推断,它在一个总线对象的/org/alljoyn/sample/chat目录实现了相应的org.alljoyn.sample.chat接口

这个问题是为了“聊天”,人们会期望看到AllJoyn总线上的另一个类似的组件表明它支持聊天服务。由于总线名称必须唯一地标识一个总线连接,这就需要某种形式的后缀来保证唯一性。这可能需要一个用户名或一个唯一的编号的形式。
...全文
1685 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,851

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧