本公开涉及终端,尤其涉及一种软件框架、运行方法、调用服务方法、装置、设备及介质。
背景技术:
1、随着终端技术的快速发展,目前用户家中的智能设备越来越多,如蓝牙、zigbee等设备,而这些设备需要通过网关设备才能连接外网。由于网关的覆盖范围有限,在每个家庭环境中,通常同时需要多个网关,网关的类型诸如蓝牙网关、plc网关等。相关技术中,当针对某个硬件平台完成网关程序的代码开发后,如果更换了硬件平台,则需要在新平台上重新实现网关程序的代码,因为不同平台的硬件接口不同,因而需要为每个平台分别维持一套网关程序的代码,导致业务开发耦合的问题,即会导致网关开发工作量繁重,对网关能力进行扩展非常不便,且不利于网关的后期维护。
技术实现思路
1、为克服相关技术中存在的问题,本公开实施例提供一种软件框架、运行方法、调用服务方法、装置、设备及介质,用以解决相关技术中的缺陷。
2、根据本公开实施例的第一方面,提供一种软件框架,适用于网关设备,所述软件框架包括应用服务层和基础服务层,所述应用服务层中包括预先注册的至少一个设备服务,所述基础服务层中包括预先构建的数据总线,其中:
3、所述设备服务对应于所述网关设备下关联的设备的一个能力;
4、所述数据总线用于实现所述设备服务与外部服务之间的通信,所述外部服务为与所述设备服务属于同一网关设备或不同网关设备的设备服务。
5、在一些实施例中,所述数据总线包括订阅/发布模块;
6、所述订阅/发布模块,用于通过订阅或发布预设的主题的方式实现所述外部服务对所述设备服务的调用。
7、在一些实施例中,所述数据总线包括组网发现模块;
8、所述组网发现模块,用于发现所述网关设备周围的其他网关设备,并与发现的其他网关设备进行组网。
9、在一些实施例中,所述数据总线包括安全认证模块;
10、所述安全认证模块,用于在与其他网关设备建立通信连接之前,通过验证数字证书的方式验证其他网关设备的安全性。
11、在一些实施例中,所述基础服务层中还包括以下至少一种服务;
12、数据存储服务,用于存储所述软件框架的系统数据;
13、数据更新服务,用于更新所述软件框架的系统数据;
14、日志系统服务,用于生成所述软件框架的系统日志;
15、系统监控服务,用于监控所述软件框架中预设服务的状态。
16、根据本公开实施例的第二方面,提供一种软件框架的运行方法,所述方法应用于软件框架,所述软件框架适用于网关设备,所述软件框架包括应用服务层和基础服务层,所述应用服务层中包括预先注册的至少一个设备服务,所述基础服务层中包括预先构建的数据总线,所述方法包括:
17、基于所述设备服务实现所述网关设备下关联的设备的一个能力;
18、基于所述数据总线实现所述设备服务与外部服务之间的通信,所述外部服务为与所述设备服务属于同一网关设备或不同网关设备的设备服务。
19、在一些实施例中,所述方法还包括:
20、基于所述数据总线通过订阅或发布预设的主题的方式实现所述外部服务对所述设备服务的调用。
21、在一些实施例中,所述方法还包括:
22、基于所述数据总线发现所述网关设备周围的其他网关设备,并与发现的其他网关设备进行组网。
23、在一些实施例中,所述方法还包括:
24、基于所述数据总线在与其他网关设备建立通信连接之前,通过验证数字证书的方式验证其他网关设备的安全性。
25、在一些实施例中,所述方法还包括以下至少一项:
26、基于所述基础服务层中的数据存储服务,存储所述软件框架的系统数据;
27、基于所述基础服务层中的数据更新服务,更新所述软件框架的系统数据;
28、基于所述基础服务层中的日志系统服务,生成所述软件框架的系统日志;
29、基于所述基础服务层中的系统监控服务,监控所述软件框架中预设服务的状态。
30、根据本公开实施例的第三方面,提供一种软件框架的运行装置,所述装置应用于软件框架,所述软件框架适用于网关设备,所述软件框架包括应用服务层和基础服务层,所述应用服务层中包括预先注册的至少一个设备服务,所述基础服务层中包括预先构建的数据总线,所述装置包括:
31、能力实现模块,用于基于所述设备服务实现所述网关设备下关联的设备的一个能力;
32、通信实现模块,用于基于所述数据总线实现所述设备服务与外部服务之间的通信,所述外部服务为与所述设备服务属于同一网关设备或不同网关设备的设备服务。
33、在一些实施例中,所述通信实现模块还包括:
34、订阅/发布单元,用于基于所述数据总线通过订阅或发布预设的主题的方式实现所述外部服务对所述设备服务的调用。
35、在一些实施例中,所述通信实现模块还包括:
36、组网发现单元,用于基于所述数据总线发现所述网关设备周围的其他网关设备,并与发现的其他网关设备进行组网。
37、在一些实施例中,所述通信实现模块还包括:
38、安全认证单元,用于基于所述数据总线在与其他网关设备建立通信连接之前,通过验证数字证书的方式验证其他网关设备的安全性。
39、在一些实施例中,所述装置还包括以下至少一项:
40、存储模块,用于基于所述基础服务层中的数据存储服务,存储所述软件框架的系统数据;
41、更新模块,用于基于所述基础服务层中的数据更新服务,更新所述软件框架的系统数据;
42、生成模块,用于基于所述基础服务层中的日志系统服务,生成所述软件框架的系统日志;
43、监控模块,用于基于所述基础服务层中的系统监控服务,监控所述软件框架中预设服务的状态。
44、根据本公开实施例的第四方面,提供一种调用服务的方法,应用于预设软件框架中的第一设备服务,所述预设软件框架适用于网关设备,所述预设软件框架中包括预先注册的多个设备服务,每个所述设备服务对应于当前环境中网关设备下关联的设备的一个能力;
45、所述方法包括:
46、响应于检测到所述当前环境满足调用所述预设软件框架中的第二设备服务的条件,生成服务调用请求信息;
47、将所述服务调用请求信息基于所述预设软件框架中预设的数据总线,发送至所述第二设备服务;
48、接收所述第二网关服务基于所述数据总线发送的服务调用应答信息,所述服务调用应答信息包括所述第二设备服务对接收到的所述服务调用请求信息进行处理后,基于得到的处理结果生成的信息。
49、在一些实施例中,所述将所述服务调用请求信息基于所述预设软件框架中预设的数据总线,发送至所述第二设备服务,包括:
50、将所述服务调用请求信息基于第一预设主题发布至所述数据总线,以使所述第二设备服务基于预先订阅的所述第一预设主题,接收所述数据总线发送的所述服务调用请求信息,所述第一预设主题中包含所述服务调用请求信息的传输范围、所述服务调用请求信息的接收方标识信息以及所述服务调用请求信息的消息类型中的至少一种。
51、在一些实施例中,所述接收所述第二网关服务基于所述数据总线发送的服务调用应答信息,包括:
52、基于预先订阅的第二预设主题,接收所述数据总线发送的所述服务调用应答信息,所述服务调用应答信息包括所述第二设备服务对接收到的所述服务调用请求信息进行处理后,基于得到的处理结果生成并基于所述第二预设主题发布至所述数据总线的信息,所述第二预设主题中包含所述服务调用应答信息的传输范围、所述服务调用应答信息的接收方标识信息以及所述服务调用应答信息的消息类型中的至少一种。
53、在一些实施例中,所述响应于检测到所述当前环境满足调用所述预设软件框架中的第二设备服务的条件,生成服务调用请求信息,包括:
54、响应于检测到所述当前环境满足调用所述预设软件框架中的第二设备服务的条件,基于预先获取的服务查询结果生成服务调用请求信息,所述服务查询结果包括预先通过查询的方式对所述预设软件框架中的服务进行查询后得到的结果。
55、在一些实施例中,所述第一设备服务为预先配置的中枢服务;
56、所述方法还包括:
57、响应于接受所述预设软件框架中的第三设备服务的委托,代理所述第三设备服务对外提供服务,所述第三设备服务为预先配置的非中枢服务。
58、在一些实施例中,所述第一设备服务为预先配置的中枢服务;
59、所述方法还包括:
60、响应于检测到所述预设软件框架中存在两个以上可以提供相同服务的非中枢服务,基于预设的服务调度规则对所述非中枢服务进行调度。
61、根据本公开实施例的第五方面,提供一种调用服务的装置,应用于预设软件框架中的第一设备服务,所述预设软件框架适用于网关设备,所述预设软件框架中包括预先注册的多个设备服务,每个所述设备服务对应于当前环境中网关设备下关联的设备的一个能力;
62、所述装置包括:
63、请求信息生成模块,用于响应于检测到所述当前环境满足调用所述预设软件框架中的第二设备服务的条件,生成服务调用请求信息;
64、请求信息发送模块,用于将所述服务调用请求信息基于所述预设软件框架中预设的数据总线,发送至所述第二设备服务;
65、应答信息接收模块,用于接收所述第二网关服务基于所述数据总线发送的服务调用应答信息,所述服务调用应答信息包括所述第二设备服务对接收到的所述服务调用请求信息进行处理后,基于得到的处理结果生成的信息。
66、在一些实施例中,所述请求信息发送模块还用于将所述服务调用请求信息基于第一预设主题发布至所述数据总线,以使所述第二设备服务基于预先订阅的所述第一预设主题,接收所述数据总线发送的所述服务调用请求信息,所述第一预设主题中包含所述服务调用请求信息的传输范围、所述服务调用请求信息的接收方标识信息以及所述服务调用请求信息的消息类型中的至少一种。
67、在一些实施例中,所述应答信息接收模块还用于基于预先订阅的第二预设主题,接收所述数据总线发送的所述服务调用应答信息,所述服务调用应答信息包括所述第二设备服务对接收到的所述服务调用请求信息进行处理后,基于得到的处理结果生成并基于所述第二预设主题发布至所述数据总线的信息,所述第二预设主题中包含所述服务调用应答信息的传输范围、所述服务调用应答信息的接收方标识信息以及所述服务调用应答信息的消息类型中的至少一种。
68、在一些实施例中,所述请求信息生成模块还用于响应于检测到所述当前环境满足调用所述预设软件框架中的第二设备服务的条件,基于预先获取的服务查询结果生成服务调用请求信息,所述服务查询结果包括预先通过查询的方式对所述预设软件框架中的服务进行查询后得到的结果。
69、在一些实施例中,所述第一设备服务为预先配置的中枢服务;
70、所述装置还包括:
71、服务代理模块,用于响应于接受所述预设软件框架中的第三设备服务的委托,代理所述第三设备服务对外提供服务,所述第三设备服务为预先配置的非中枢服务。
72、在一些实施例中,所述第一设备服务为预先配置的中枢服务;
73、所述装置还包括:
74、服务调度模块,用于响应于检测到所述预设软件框架中存在两个以上可以提供相同服务的非中枢服务,基于预设的服务调度规则对所述非中枢服务进行调度。
75、根据本公开实施例的第六方面,提供一种网关设备,所述设备包括:
76、处理器以及用于存储计算机程序的存储器;
77、其中,所述处理器被配置为在执行所述计算机程序时,实现上述任一项所述的调用服务的方法。
78、根据本公开实施例的第七方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一项所述的调用服务的方法。
79、本公开的实施例提供的技术方案可以包括以下有益效果:
80、本公开中提供的软件框架适用于网关设备,该软件框架包括应用服务层和基础服务层,所述应用服务层中包括预先注册的至少一个设备服务,所述基础服务层中包括预先构建的数据总线,其中:所述设备服务对应于所述网关设备下关联的设备的一个能力;所述数据总线用于实现所述设备服务与外部服务之间的通信,所述外部服务为与所述设备服务属于同一网关设备或不同网关设备的设备服务,由于是将各个设备的能力抽象为该预设软件框架中的各个服务,进而可以通过各个服务之间的通信实现各个设备能力的通信,而且各个服务之间定义的接口和契约是独立于实现服务的硬件平台、操作系统和编程语言的,因而可以使得构建在预设软件框架中的服务可以以统一和通用的方式进行交互,因而可以实现业务开发的解耦,进而可以降低网关开发工作量,有利于后续对网关能力进行扩展,且可以方便后期对网关的维护工作。并且,由于预设软件框架中预先构建了数据总线,因而可以基于该数据总线实现网关设备下的第一设备服务与第二设备服务之间的信息交互,可以极大简化网关中的应用开发逻辑,使得各个应用的开发只需关注自身的算法逻辑,而将网关内部的数据传输统一交给数据总线,实现对信息传输的解耦。
81、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。