一种基于AllJoyn框架处理远程调用的方法及系统与流程

文档序号:11148081阅读:486来源:国知局
一种基于AllJoyn框架处理远程调用的方法及系统与制造工艺

本发明涉及通信技术领域,尤其涉及一种基于AllJoyn框架处理远程调用的方法及系统。



背景技术:

为了充分实现物联网的愿景,设备和应用程序需要一种通用的语言进行交互。AllJoyn框架即作为通用语言,以允许来自不同公司的设备,在不同的操作系统,进行灵活通信。

AllJoyn框架是一个合作的开源软件框架,主要用于近距离无线传输,通过WiFi或蓝牙技术,定位和点对点文件传输。程序员可以很方便的编写出搜索附近设备的应用程序,并且无论对方的品牌、类别、系统都可以在不需要云环境的情况下连接。

参考图1,现有基于AllJoyn框架处理远程调用方法的流程示意图。在AllJoyn框架中服务提供端(Provider APP)和服务消费端(Consumer APP)均包括应用(APP)和AllJoyn核心库(AJ Core Library);服务提供端有服务提供端路由,服务消费端有服务消费端路由。

现有基于AllJoyn框架处理远程调用方法的流程为:

1)服务提供端和服务消费端分别与自己的路由进程建立连接;

2)服务提供端注册bus对象,绑定会话(session)端口;AllJoyn服务公告和发现,即在bus上面公告自己提供的服务;和服务消费端建立会话;

3)服务消费端获取代理bus对象,发送方法调用(method call)消息给服务消费端对应的路由进程;

4)服务消费端路由进程再将方法调用消息发送给服务提供端路由进程;

5)服务提供端路由进程将方法调用消息发送给服务提供端;

6)服务提供端调用响应的方法调用函数获取响应,从方法调用消息过来的路径将方法返回(method return)消息发送回去。发送method return消息

现有基于AllJoyn框架处理远程调用过程中,每次调用方法调用时,都需要服务提供端和服务消费端两端的路由参与,需要完成路由转发的过程;由于路由之间消息多次发送,消耗比较大,速度响应比较慢。



技术实现要素:

针对现有在使用AllJoyn框架时,发现在大数据量调用方法调用时,响应时间和执行效率都不理想的技术问题,本发明目的在于提供一种基于AllJoyn框架处理远程调用的方法及系统,提高调用效率,优化AllJoyn框架的方法调用的执行效率和响应时间。

为实现上述目的,本发明提供了一种基于AllJoyn框架处理远程调用的方法,所述方法包括:1)在服务消费端建立路由缓存表,所述服务消费端在第一次调用方法调用时,保存所述方法调用消息的目的地址至所述路由缓存表; 2)所述服务消费端再次调用所述方法调用时,在所述路由缓存表中查询所述方法调用的目的地址,根据所述目的地址直接发送方法调用消息给所述方法调用的服务提供端。

在一实施例中,所述方法进一步包括:当所述服务消费端离开会话时,释放所述路由缓存表中已经保存的路由缓存信息所占用的内存。

在一实施例中,所述方法调用消息的目的地址在所述路由缓存表中以链表的形式存储。所述链表中每个路由缓存项包括:目的地址、接口、方法调用的调用名。通过所述接口和所述方法调用的调用名来获得所述目的地址。

为实现上述目的,本发明还提供了一种基于AllJoyn框架处理远程调用的系统,包括:服务消费端和服务提供端,所述服务消费端中建有路由缓存表;所述服务消费端,在第一次调用方法调用时,保存所述方法调用消息的目的地址至所述路由缓存表,再次调用所述方法调用时,在所述路由缓存表中查询所述方法调用的目的地址,根据所述目的地址直接发送方法调用消息给所述方法调用的服务提供端。

在一实施例中,所述服务消费端进一步在离开会话时,释放所述路由缓存表中已经保存的路由缓存信息所占用的内存。

在一实施例中,所述方法调用消息的目的地址在所述路由缓存表中以链表的形式存储。所述链表中每个路由缓存项包括:目的地址、接口、方法调用的调用名。通过所述接口和所述方法调用的调用名来获得所述目的地址。

本发明的优点在于:本发明通过空间换时间的方式,优化了AllJoyn框架的方法调用的执行效率和响应时间;通过路由缓存将会使调用速度提高,优化频繁的调用操作,减少了消息交互,提升处理速度,提高调用效率。省掉服务消费端和服务提供端两端的路由的参与和服务消费端发送给与其连接的路由、两路由之间、路由与其连接的服务提供端之间的消息交互。当这个方法调用流程被调用无数次之后,调用效率会极大提高。

附图说明

图1,现有基于AllJoyn框架处理远程调用方法的流程示意图;

图2,本发明所述的基于AllJoyn框架处理远程调用方法的流程示意图;

图3,本发明所述的基于AllJoyn框架处理远程调用方法再次调用相同的方法调用的流程示意图。

具体实施方式

现有基于AllJoyn框架处理远程调用过程中,每次调用方法调用时,都需要服务提供端和服务消费端两端的路由参与。研究发现很多配置过程中使用方法调用的提供端和消费端双方的调用关系是固定的,而且使用的频度很高,特别像配置这样的过程。本发明通过建立路由缓存表,通过对方法调用中的路由信息做缓存,将方法调用中的目的地址保存下来,下次调用相同的方法调用时直接通过保存的目的地址发送消息。

参考图2,本发明所述的基于AllJoyn框架处理远程调用方法的流程示意图。所述的方法,包括如下步骤:S21:在服务消费端建立路由缓存表,所述服务消费端在第一次调用方法调用时,保存所述方法调用消息的目的地址至所述路由缓存表;S22:所述服务消费端再次调用所述方法调用时,在所述路由缓存表中查询所述方法调用的目的地址,根据所述目的地址直接发送方法调用消息给所述方法调用的服务提供端。

本发明通过空间换时间的方式,优化AllJoyn框架的方法调用的执行效率和响应时间;通过路由缓存将会使调用速度提高,优化频繁的调用操作,减少了消息交互,提升处理速度,提高调用效率。

其中,所述方法调用消息的目的地址在所述路由缓存表中以链表的形式存储。所述链表中每个路由缓存项包括:目的地址、接口、方法调用的调用名。通过所述接口和所述方法调用的调用名来获得所述目的地址。再次调用相同的方法调用时,获取目的地址后,服务消费端直接发送方法调用消息给相应的方法调用的服务提供端。

优选的,所述方法进一步包括步骤S23:当所述服务消费端离开会话时,释放所述路由缓存表中已经保存的路由缓存信息所占用的内存。也即,当方法调用的调用者离开会话时,将释放已经保存的路由缓存信息所占用的内存,完成路由缓存的清楚,释放路由缓存所占空间。

以下结合附图对本发明所述的基于AllJoyn框架处理远程调用的方法做进一步说明。请一并参考图1以及图3,其中,图3为本发明所述的基于AllJoyn框架处理远程调用方法再次调用相同的方法调用的流程示意图。

第一次调用method call的流程参考图1所示,即:1)服务提供端和服务消费端分别与自己的路由进程建立连接;2)服务提供端注册bus对象,绑定会话(session)端口;在bus上面公告自己提供的服务,并和服务消费端建立会话;3)服务消费端获取代理bus对象,发送method call消息给服务消费端对应的路由进程;4)服务消费端路由进程再将method call消息发送给服务提供端路由进程;5)服务提供端路由进程将method call消息发送给服务提供端;6)服务提供端调用响应的method call函数获取响应,从method call消息过来的路径将method return消息发送回去。

本发明所述的路由缓存表的建立:在服务消费端建立路由缓存表,在调用者(服务消费端)第一次调用method call时,保存当前的method call消息的目的地址。

本发明增加了路由缓存表,在建立了路由缓存表之后的基于AllJoyn框架处理远程调用的方法,再次调用相同的method call的流程参考图3所示,即:1)服务提供端和服务消费端分别与自己的路由进程建立连接;2)服务提供端注册bus对象,绑定session端口;在bus上面公告自己提供的服务,并和服务消费端建立会话;3)服务消费端获取代理bus对象,并在路由缓存表中查询当前method call的目的地址,发送method call消息给目的地址对应的服务提供端;4)服务提供端调用响应的method call函数获取响应,将method return消息依次通过服务提供端路由、服务消费端路由发送回服务消费端。

也即,当后面调用同一个method call时,在路由缓存表中查询当前method call的目的地址,直接发送method call消息给method call的提供端,省掉两端的路由的参与和服务消费端发送给与其连接的路由、两路由之间、路由与其连接的服务提供端之间的消息交互。当这个方法调用流程被调用无数次之后,调用效率会极大提高。

所述method call消息的目的地址在路由缓存表中的存储方式可以以链表的形式组织;每个路由缓存项包括<目的地址、interface、method call调用名>, 通过interface和method call调用名来获得目的地址。获取目的地址后,服务消费端直接发送method call消息给相应的method call提供端。

本发明所述的路由缓存表的清除:当method call的调用者离开session时,将释放已经保存的路由缓存信息所占用的内存。

本发明通过空间换时间的方式,优化AllJoyn框架的方法调用的执行效率和响应时间;通过路由缓存将会使调用速度提高,优化频繁的调用操作,减少了消息交互,提升处理速度,提高调用效率。省掉服务消费端和服务提供端两端的路由的参与和服务消费端发送给与其连接的路由、两路由之间、路由与其连接的服务提供端之间的消息交互。当这个方法调用流程被调用无数次之后,调用效率会极大提高。

本发明还提供了一种基于AllJoyn框架处理远程调用的系统,包括:服务消费端和服务提供端,所述服务消费端中建有路由缓存表。所述服务消费端在第一次调用方法调用时,保存所述方法调用消息的目的地址至所述路由缓存表;所述服务消费端再次调用所述方法调用时,在所述路由缓存表中查询所述方法调用的目的地址,根据所述目的地址直接发送方法调用消息给所述方法调用的服务提供端。

其中,所述方法调用消息的目的地址在所述路由缓存表中以链表的形式存储。所述链表中每个路由缓存项包括:目的地址、接口、方法调用的调用名。通过所述接口和所述方法调用的调用名来获得所述目的地址。

优选的,所述服务消费端进一步在离开会话时,释放所述路由缓存表中已经保存的路由缓存信息所占用的内存。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1