账号创建方法、物联网多租户系统、设备、程序和介质与流程

文档序号:31338913发布日期:2022-08-31 09:34阅读:194来源:国知局
账号创建方法、物联网多租户系统、设备、程序和介质与流程

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.认证中心模块,被配置为对所述物联网多租户平台中的租户信息、用户信息和应用信息进行权限验证。
82.本公开一些实施例提供一种计算处理设备,包括:
83.存储器,其中存储有计算机可读代码;
84.一个或多个处理器,当所述计算机可读代码被所述一个或多个处理器执行时,所述计算处理设备执行如上述的账号创建方法。
85.本公开一些实施例提供一种计算机程序,包括计算机可读代码,当所述计算机可读代码在计算处理设备上运行时,导致所述计算处理设备执行如上述的账号创建方法。
86.本公开一些实施例提供一种非瞬态计算机可读介质,其中存储了如上述的账号创建方法。
87.本公开提供的一种账号创建方法、物联网多租户系统、设备、程序和介质,通过预
设多种不同类型的数据库实例来供用户创建账号时创建账号的数据库使用,避免了静态文件存储数据库配置数据在新增配置时重启设备的问题,提高了账号创建的效率,降低了运维成本。
88.上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
附图说明
89.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
90.图1示意性地示出了本公开一些实施例提供的一种账号创建方法的流程示意图;
91.图2示意性地示出了本公开一些实施例提供的另一种账号创建方法的逻辑示意图之一;
92.图3示意性地示出了本公开一些实施例提供的另一种账号创建方法的流程示意图之一;
93.图4示意性地示出了本公开一些实施例提供的另一种账号创建方法的逻辑示意图之二;
94.图5示意性地示出了本公开一些实施例提供的另一种账号创建方法的流程示意图之二;
95.图6示意性地示出了本公开一些实施例提供的另一种账号创建方法的流程示意图之三;
96.图7示意性地示出了本公开一些实施例提供的另一种账号创建方法的逻辑示意图之三;
97.图8示意性地示出了本公开一些实施例提供的另一种账号创建方法的流程示意图之四;
98.图9示意性地示出了本公开一些实施例提供的另一种账号创建方法的流程示意图之五;
99.图10示意性地示出了本公开一些实施例提供的一种权限管理方法的逻辑示意图;
100.图11示意性地示出了本公开一些实施例提供的另一种账号创建方法的逻辑示意图之四;
101.图12示意性地示出了本公开一些实施例提供的一种设备信息查询方法的流程示意图;
102.图13示意性地示出了本公开一些实施例提供的一种权限认证方法的逻辑示意图;
103.图14示意性地示出了本公开一些实施例提供的一种物联网多租户系统的结构示意图;
104.图15示意性地示出了本公开一些实施例提供的一种物联网多租户系统的架构示意图;
105.图16示意性地示出了本公开一些实施例提供的一种账号创建装置的结构示意图;
106.图17示意性地示出了用于执行根据本公开一些实施例的方法的计算处理设备的框图;
107.图18示意性地示出了用于保持或者携带实现根据本公开一些实施例的方法的程序代码的存储单元。
具体实施方式
108.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
109.图1示意性地示出了本公开提供的一种账号创建方法的流程示意图,应用于物联网多租户平台,所述方法包括:
110.步骤101,接收账号创建请求,所述账号创建请求至少包括:账号标识、数据库实例标识。
111.需要说明的是,本公开的执行主体是物联网设备,可以是不具备ip能力的非直连设备,可通过在网关上集成多租户设备计入sdk(software development kit,软件开发工具包),租户的终端设备可作为子设备连接到网关,并通过网关快速接入到物联网平台,由网关完成终端设备与平台之间的数据转发。当然,物联网设备还可以是运算和存储能力较强且具备ip能力的硬件设备,在设备上直接集成多租户设备接入sdk,通过https(hyper text transfer protocol over securesocket layer,超文本传输协议)、mqtts(message queuing telemetry transport,消息队列遥测传输)或coap(constrained application protocol,受限应用协议)等传输协议快速接入物联网平台,此类设备搭载智能系统。
112.数据库服务器是用于为物联网设备提供租户数据源的服务器,通过在数据库中为终端设备设置数据源,有利于对租户的用户数据进行统一管理,为按照权限对用户数据进行隔离和共享提供了基础,并且数据源集中管理还可以保证用户数据的安全性。
113.需要说明的是,该数据库实例类型包含但不限于独享数据库类型、共享数据库类型,独享数据库类型是表征单一租户独自使用的数据库的类型,共享数据库类型是表征多个租户可以共同使用的数据库的类型,具体可以根据实际需求设置,此处不做限定。账号标识是用于标识用户的唯一标识,可以是由账号名称和用户标识组成,账号名称可以是用户自行设置的,可以是用户的姓名或者昵称,而用户标识是系统为租户生成的唯一标识,从而通过账号名称和用户标识组成的账号标识即可供用户通过识别账号名称来进行辨别,也可以使得系统根据用户标识识别用户。
114.在本公开实施例中,在创建租户的账号时,系统管理员可通过其所使用的终端设备登录物联网多租户平台以接入物联网设备,系统管理员在登录后可在通过查看租户管理列表中查询租户信息,列表内容可以包含账号标识、数据库实例类型、列表创建时间、修改时间以及查询和修改操作控件等。
115.步骤102,根据所述数据库实例标识相对应的数据库实例在数据库服务器中创建所述账号标识相对应的目标租户数据库,其中,所述数据库实例是所述数据库服务器中已
有租户数据库相对应的数据库实例。
116.需要说明的是,数据库实例是构建数据库所需的数据库配置参数。系统管理员可通过选取所需的数据库实例标识来查询相对应的数据库实例的数据库实例id、数据库实例名称等数据库实例信息。值得说明的是,本公开中的数据库实例的来源是数据库服务器中历史已构建的已有租户数据库,也就是已有租户数据库相对应的数据库实例,因此无需重新向数据库服务器中输入数据库实例再重启服务器,来为所需构建的目标租户数据库配置数据库实例。
117.进一步的,不同已有租户数据库的数据库实例标识可以存储在物联网设备上直接系统管理员查询使用,也可以是存在于物联网设备连接的外部存储设备上,可选地,包含有数据库实例标识、数据库实例描述信息等数据库实例相关信息的数据库实例表可以存储在数据库服务器的主数据库中,以系统管理员通过物联网设备创建账号时从主数据库中获取查看和编辑。
118.参照图2,系统管理员可通过浏览器接入多租户管理平台,输入数据库实例编辑请求来对数据库实例进行增删改查的操作。具体的,系统管理管可通过输入所需编辑的数据库实例名称、数据库实例服务地址、数据库实例端口号、数据库实例关联账号、账号密码来编辑数据库实例。物联网设备在对数据库实例关联账号和账号密码验证通过后,即可依据所输入的数据库实例名称、数据库实例服务地址、数据库实例端口号编辑数据库实例,若所输入的数据库实例名称不存在则可依据数据库实例名称、数据库实例服务地址、数据库实例端口号创建数据库实例,若存在直接进行编辑即可。
119.在本公开实施例中,物联网设备响应于系统管理员对于数据库实例标识选取操作,向所连接的数据库服务器发送携带有所述数据库实例标识的数据库创建请求,数据库服务器查询该数据库实例标识相对应的数据库实例,以及基于查询到的数据库实例创建该账号标识相对应的目标租户数据库。
120.步骤103,在所述目标租户数据库创建完成后,输出所述账号标识相对应的账号创建成功通知。
121.在本公开实施例中,数据库服务器在创建完成目标租户数据库后,向物联网设备发送针对账号标识所对应的账号创建成功通知,物联网设备展示该账号创建通知,以告知系统管理员对于该账号标识相对应的目标租户数据库已创建完成,该账号标识所对应的租户信息和账号信息即可存入目标租户数据库进行使用。
122.本公开实施例通过预设多种不同类型的数据库实例来供用户创建账号时创建账号的数据库使用,避免了静态文件存储数据库配置数据在新增配置时重启设备的问题,提高了账号创建的效率,降低了运维成本。
123.可选地,所述账号创建请求还包括:与所述账号标识相关联的业务标识,参照图3,所述步骤103,包括:
124.步骤1031,向所述业务标识相对应的业务服务端发送所述账号标识相对应的账号创建成功通知。
125.在本公开实施例中,物联网多租户平台在为租户创建数据库后,通过事件驱动消息通知的方式实时通知其他服务。
126.步骤1032,接收所述业务服务端根据所述账号创建成功通知发送的数据源标识。
127.在本公开实施例中,业务服务端在监听到租户的账号创建通知后,自动在本地为该账号对应的租户创建独立的数据源,并将数据源标识发送给物联网设备。
128.步骤1033,建立所述数据源标识相对应的数据源与所述账号标识之间的映射关系,所述数据源用于向所述账号提供业务服务数据。
129.在本公开实施例中,物联网设备适应于业务服务端提供的数据源标识将该数据源标识所对应的数据源与账号标识进行关联存储。
130.步骤1034,建立所述目标租户数据库与所述数据源之间的连接池。
131.在本公开实施例中,物联网设备通过与数据库服务器交互,以建立账号标识所对应的目标租户数据库与业务服务端的数据源之间的连接池。
132.步骤1035,获取所述连接池运行参数。
133.步骤1036,基于所述连接池运行参数调整连接池配置参数。
134.步骤1037,向所述业务服务端发送携带有所述连接池配置参数的连接池调整通知。
135.在本公开实施例中,物联网设备在账号标识相对应的独立连接池建立后,可以实时通过网关监控连接池的使用情况来获取连接池运行参数,以基于预先设置的连接池动态调整策略对连接池的配置参数进行调整。具体的,物联网设备可以通过连接池动态调整策略计算出所系调整的连接池配置参数后,通过与业务服务端进行交互来调整连接池的连接数量、最大连接数、最小连接数等配置参数。
136.本公开实施例基于物联网技术场景,整体采用微服务架构,支持分布式部署环境下多服务协调动态创建数据源,租户服务创建租户数据库后,通过事件驱动消息通知的方式实时通知其他服务,其他服务收到通知后为租户创建数据源,数据源初始化完成后可即刻为租户提供数据查询服务,提高了多租户物联网系统的灵活性。
137.所述连接池调整通知用于指示所述业务服务端执行如下连接池配置参数方式中的至少一种:
138.在连接数大于最大连接数时,释放超出所述最大连接数的数目的连接;
139.在空闲连接数大于最大空闲连接数时,释放超出所述最大空闲连接数的数目的空闲连接;
140.在空闲连接数小于最小空闲连接数时,创建低于所述最小空闲连接数的数目的连接。
141.可选地,所述连接池调整通知用于指示所述业务服务端执行如下连接池配置参数方式中的至少一种:
142.连接池配置参数方式1,在连接数大于最大连接数时,释放超出所述最大连接数的数目的连接;
143.连接池配置参数方式2,在空闲连接数大于最大空闲连接数时,释放超出所述最大空闲连接数的数目的空闲连接;
144.连接池配置参数方式3,在空闲连接数小于最小空闲连接数时,创建低于所述最小空闲连接数的数目的连接。
145.在本公开实施例中,针对方式1,可基于网关设备的负载来对连接数据进行调整,即负载过大时可以适当减少连接池的连接数,反之负载较小时可以增加连接池的连接数,
其中最大连接数的计算方式为最大连接数=qps/业务服务端实例节点数量*80%。针对方式2,即使没有数据库连接时依然可以保持空闲连接的数量,而不被清除,随时处于待命状态。通常取最大连接数的20%。针对方式3,连接数少于此值时,连接池会创建连接来补充到该值的数量,通常取最大连接数的5%。
146.本公开实施例支持分布式环境物联网平台多租户模式下多个服务端实时动态调整数据库连接池参数(在网关层,根据识别出的租户计算每个租户的rps(request per second,每秒能处理的请求数量。等效于qps)和平均响应时间,动态调整租户连接池参数(主要包括最大连接数、最大空闲连接数、最小空闲连接数),网关将计算出的数据库连接池参数通过消息通知到其他服务,其他服务根据收到的参数实时调整连接池参数,避免了连接数分配过多导致的资源浪费和连接数分配过少导致的资源排队和竞争。
147.可选地,在所述步骤101之后,所述方法还包括:将所述账号标识和所述数据库实例标识关联存储至主数据库中,所述主数据库用于存储账号相关的租户信息。
148.在本公开实施例中,主数据库是数据库服务器中用于存储租户信息的数据库,租户信息可以包含有租户的账号信息、权限信息和租户数据库的配置信息等,因此在创建新的账号时,需要将所接收到的账号标识和所构建租户数据库使用的数据库实例标识存储至主数据库中,以供后续系统管理员查询和编辑,以便于对物联网多租户平台中的多个租户进行统一编辑。并且创建后的租户数据库的数据库实例标识还可供后续创建账号使用,避免了静态文件存储数据库配置数据在新增配置时重启设备的问题,提高了账号创建的效率,降低了运维成本。
149.可选地,可通过图4所示的流程来对租户信息进行管理;
150.系统管理员通过用户账号登录认证中心后,即可通过页面操作指令对租户信息进行增删改查操作,并通过数据库操作指令编辑数据库服务器中主数据库存储的租户信息,以及租户数据库存储的业务信息。
151.可选地,参照图5,在所述步骤103之后,所述方法还包括:
152.步骤104,在所述目标租户数据库中创建所述账号标识相对应的业务表。
153.步骤105,初始化所述业务表中的业务信息和权限信息,其中,所述业务表用于记录所述账号标识相对应的用户信息,并供所述权限信息所描述的对象查询。
154.在本公开实施例中,业务表是用于存储账号标识所对应的租户使用服务情况的业务信息以及租户的权限信息。在账号标识相对应的目标租户数据库创建完成后,物联网设备可指示数据库服务器在目标租户数据库中未该租户创建相对应的业务表,并初始化其中的业务信息和权限信息,以供后续用户在使用业务服务后将服务信息和后续的设置的权限信息存储至该业务表中。并且该业务表中的内容只有具有查询权限的租户才可查看,从而保证了实现了租户之间的数据隔离,保证了信息安全性。
155.本公开实施例通过orm(object relational mapping,对象关系映射)的方式在租户数据库完成完成后动态为租户创建业务表,避免了手动解析数据库元数据、手动生成建表sql(structured query language,结构化查询语言)脚本带来的大量开发工作及出错风险。
156.可选地,参照图6,所述方法还包括:
157.步骤301,接收所述账号发送的服务注册请求,所述服务注册请求至少包括:业务
标识、账号标识。
158.步骤302,生成所述账号标识相对应的账号密钥和业务密钥。
159.步骤303,将所述账号密钥和业务密钥发送至所述业务标识相对应的业务服务端,完成所述账号的服务注册过程,所述账号密钥和所述业务密钥用于对所述账号的身份进行验证。
160.在本公开实施例中,考虑物联网多租户系统存储第三方业务方接入的需求,若第三方业务方所提供的应用需要为租户单独创建账号且租户在使用第三方业务方所提供服务时需求对不同账号进行多次验证,就会导致不必要的资源浪费和大大影响租户获取第三方业务服务的效率,并且考虑第三方业务方与物联网多租户系统之间账号共享对于系统账号安全性也会造成一定影响。
161.因此参照图7,本公开实施例中的物联网多租户系统在租户的账号创建成功后,若租户需要使用第三方业务方的业务服务,则依据账号发送的服务注册请求中的业务标识和账号标识为账号自动生成与该业务服务端相对应的账号密钥和业务密钥供业务服务端进行账号验证。
162.具体的,物联网平台为租户生成账号密钥access key(ak)、业务密钥secret key(sk),其中,access key(ak)是自动生成,全局唯一,关联租户标识(32位uuid+租户domain),不可修改;secret key(sk):自动生成,全局唯一,不可修改。通过使用access key id/secret access key拼接的加密的方法来验证某个请求的发送者身份。access key id(ak)用于标示用户账号,secret access key(sk)是用户用于加密认证字符串和云厂商用来验证认证字符串的密钥,每个业务服务端对应的业务密钥均不同,该业务密钥可提供给业务方以供器验证使用,必须保密。业务服务端接收到用户的请求后,系统将使用ak对应的相同的sk和同样的认证机制生成认证字符串,并与用户请求中包含的认证字符串进行比对。如果认证字符串相同,系统认为用户拥有指定的操作权限,并执行相关操作;如果认证字符串不同,系统将忽略该操作并返回错误码。
163.可选地,参照图8,业务服务端对物联网设备发送请求的验证过程如下:
164.步骤401,所述物联网设备响应于用户输入,根据所述账号密钥和所述业务密钥生成第一账号签名。
165.步骤402,所述物联网设备向所述业务服务端发送携带有所述账号密钥和所述第二账号签名的服务获取请求。
166.步骤403,所述业务服务端查询与所述账号密钥相关联的业务密钥,并根据所述业务密钥和所述账号密钥生成第二账号签名。
167.步骤404,所述业务服务端在所述第一账号签名和所述第二账号签名比对成功时,向所述物联网设备发送业务服务信息。
168.在本公开实施例中,物联网设备请求iot api(物联网多租户平台中用于构建服务获取请求的功能接口)时先构建请求头,再发起requst;将appkey、时间戳timestamp、随机数random、signature加入打请求头中;其中appkey为ak,timestamp为当前时间,random为随机数字,signature为appkey+timestamp+random+sk使用算法生成;业务服务端收到请求后,使用ak/sk进行认证;首先从请求头获取appkey、timestamp、random、signature参数,然后根据发送的appkey识别租户,查找数据库得到对应的secret_key;iot使用同样的算法将
appkey+timestamp+random+sk一起计算签名(signature);对比用户发送的签名和业务服务端计算的签名,相同则认证通过,否则失败。
169.本公开通过给为账号生成业务密钥和账号密钥以供外部的业务服务端对租户的账号进行验证,使得租户的账号不会直接暴露给业务服务端,也可以使得业务服务端可以对租户的账号进行验证,保证了租户账号的安全性。
170.可选地,参照图9,物联网设备查询设备信息的过程如下:
171.步骤501,所述物联网设备响应于接收到的设备信息查询操作,向所述业务服务端发送携带有所述账号标识的账号验证请求。
172.步骤502,所述业务服务端响应于所述账号验证请求,从所述数据库服务器查询所述账号标识相对应的账号信息。
173.步骤503,所述业务服务端在对所述账号信息验证通过后,向所述物联网设备对所述账号标识的认证通过消息。
174.步骤504,所述物联网设备响应于所述认证通过消息,从所述数据库服务器获取与所述账号标识的账号权限相匹配的设备信息。
175.步骤505,所述物联网设备显示所述设备信息。
176.在本公开实施例中,参照图10,物联网多租户系统对于租户的管理主要分为用户管理模块、角色管理模块、认证中心模块和应用管理模块。对于用户管理模块可包含列表查询,租户添加、删除、修改以及分配角色和权限查看等功能,对于角色管理可包含角色列表查询、添加、删除、修改以及角色分配权限和查看用户角色等功能,对于认证中心模块可提供权限列表查询、添加、修改、删除和查看角色等功能,对于应用管理模块可提供应用列表查询、添加、删除、修改以及应用权限分配和应用权限查看等功能。
177.可选地,参照图11,认证中心负责物联网平台的安全工作:主要负责认证租户,认证用户及应用,认证用户权限及应用权限,认证中心涉及到多个业务服务端的交互,业务服务端之间借助上下文传递租户信息,其中主要功能包括:租户认证:校验租户合法性;用户认证:根据租户路由到租户数据源,校验用户合法性;用户鉴权:根据租户路由到租户数据源,验证用户权限;应用认证:根据租户路由到租户数据源,校验应用合法性;应用鉴权:根据租户路由到租户数据源,验证应用权限。
178.进一步的,参照图12,用户可通过如下步骤实现对于设备信息的查看:
179.步骤1,用户通过在浏览器输入登录界面地址请求网关;
180.步骤2,网关将登录页面发送给浏览器;
181.步骤3,用户在登录页面中输入账号密码;
182.步骤4,浏览器依据用户输入的请求网关的控制器;
183.步骤5,网关对于请求参数进行验证;
184.步骤6,网关依据用户账号请求业务服务端识别租户;
185.步骤7,业务服务端从主数据库服务器查询租户信息;
186.步骤8,数据库服务器向业务服务端返回租户信息;
187.步骤9,业务服务端验证租户信息是否合法;
188.步骤10,业务服务端对租户信息验证通过后,向数据库服务器请求获取用户信息;
189.步骤11,数据库服务器向业务服务端返回用户信息;
190.步骤12,业务服务端验证用户信息是否合法;
191.步骤13,业务服务端向网关发送认证结果;
192.步骤14,网关依据用户查看权限请求业务服务端获取权限列表;
193.步骤15,业务服务端从数据库服务器查询用户权限;
194.步骤16,数据库服务器向业务服务端发送权限列表;
195.步骤17,业务服务端向网关返回用户权限;
196.步骤18,网关依据用户全雄安生成用户token(携带有用户标识);
197.步骤19,网关指示浏览器跳转至首页;
198.步骤20,用户在浏览器选取所需查看的设备信息;
199.步骤21,浏览器向网关发送携带有用户token的请求;
200.步骤22,网关验证用户token是否合法;
201.步骤23,网关根据用户token生成租户标识;
202.步骤24,网关依据租户标识请求业务服务端查询设备信息;
203.步骤25,业务服务端请求数据库服务器在设备信息表中查询设备信息;
204.步骤26,数据库服务器将查询到的设备信息发送给业务服务端;
205.步骤27,业务服务端将设备信息发送给网关;
206.步骤28,网关指示浏览器跳转至设备详情页面以显示设备信息。
207.参照图13,修改租户数据的主要工作流程如下:
208.s1、客户端通过网关请求iot服务,请求被拦截器拦截;
209.s2、请求拦截器将调用认证&鉴权服务;
210.s3、认证鉴权服务执行租户识别、租户认证,认证通过将租户标识加入请求上下文;
211.s4、认证鉴权服务执行用户认证、用户鉴权;
212.s5、认证&鉴权限成功后,请求拦截器携带租户上下文转发请求至网关api处理器;
213.s6、网关api处理器携带租户上下文请求业务服务端;
214.s7、业务服务端根据租户上下文,请求业务服务端;
215.s8、业务服务端调用多租户数据源切换器的功能接口;
216.s9、多租户数据源切换器查询或修改租户数据。
217.其中,redis(remote dictionary server,远程字典服务)是一个开源的使用ansi c语言编写、支持网络、可基于内存亦可持久化的日志型、key-value数据库,并提供多种语言的api。postgresql是一种特性非常齐全的自由软件的对象-关系型数据库管理系统。mqtt(message queuing telemetry transport,消息队列遥测传输)是iso标准(iso/iec prf 20922)下基于发布/订阅范式的消息协议。它工作在tcp/ip协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议。
218.图14示意性地示出了本公开提供的一种物联网多租户系统的结构示意图,所述系统包括:物联网设备100、业务服务端200、数据库服务器300;
219.业务服务端200是用于和物联网设备100提供的逻辑计算、服务数据支持等功能的服务器,可以理解由于物联网设备100的所能提供的算力和存储能力有限,因此可通过外接业务服务端200的方式来减轻物联网设备100的数据处理和数据存储压力,当然通过物联网
设备100连接业务服务端200。
220.所述物联网设备100,被配置为响应于用户输入,向所述数据库服务器300发送账号创建请求,所述账号创建请求包括:账号标识、数据库实例标识、业务标识;
221.所述数据库服务器300,被配置为根据所述数据库实例标识相对应的数据库实例在数据库服务器300中创建所述账号标识相对应的目标租户数据库,其中,所述数据库实例是所述数据库服务器300中已有租户数据库相对应的数据库实例;在所述目标租户数据库创建完成后,向所述物联网设备100和所述业务服务端200发送所述账号标识相对应的数据库创建成功通知;
222.所述业务服务端200,被配置为根据所述数据库创建成功通知,创建与所述账号标识相对应的数据源,并向所述物联网设备100发送所述数据源的数据源标识;
223.所物联网设备100,被配置为建立所述数据源标识相对应的数据源与所述账号标识之间的映射关系,以建立所述目标租户数据库与所述数据源之间的连接池。
224.可选地,所述物联网设备100,还被配置为获取所述连接池运行参数;基于所述连接池运行参数调整连接池配置参数;向所述业务服务端200发送携带有所述连接池配置参数的连接池调整通知;所述业务服务端200根据所述业务服务端200执行如下连接池配置参数方式中的至少一种:
225.在连接数大于最大连接数时,释放超出所述最大连接数的数目的连接;
226.在空闲连接数大于最大空闲连接数时,释放超出所述最大空闲连接数的数目的空闲连接;
227.在空闲连接数小于最小空闲连接数时,创建低于所述最小空闲连接数的数目的连接。
228.可选地,所述物联网设备100,还被配置为生成所述账号标识相对应的账号密钥和业务密钥;将所述账号密钥和业务密钥发送至所述业务标识相对应的业务服务端200,完成所述账号的服务注册过程,所述账号密钥和所述业务密钥用于对所述账号的身份进行验证;
229.所述业务服务端200,还被配置为将所述账号密钥和所述业务密钥进行关联存储。
230.可选地,所述物联网设备100还被配置为响应于用户输入,根据所述账号密钥和所述业务密钥生成第一账号签名;向所述业务服务端200发送携带有所述账号密钥和所述第二账号签名的服务获取请求;
231.所述业务服务端200,还被配置为查询与所述账号密钥相关联的业务密钥,并根据所述业务密钥和所述账号密钥生成第二账号签名;在所述第一账号签名和所述第二账号签名比对成功时,向所述物联网设备100发送业务服务信息。
232.可选地,所述物联网设备100,还被配置为响应于接收到的设备信息查询操作,向所述业务服务端200发送携带有所述账号标识的账号验证请求;
233.所述业务服务端200,还被配置为响应于所述账号验证请求,从所述数据库服务器300查询所述账号标识相对应的账号信息;在对所述账号信息验证通过后,向所述物联网设备100对所述账号标识的认证通过消息;
234.所述物联网设备100,还被配置为响应于所述认证通过消息,从所述数据库服务器300获取与所述账号标识的账号权限相匹配的设备信息;显示所述设备信息。
235.参照图15,本公开一些实施例中的物联网多租户系统中的各功能模块的作用如下:
236.运营管理模块,用于运营管理负责管理和维护数据库实例,在数据库实例中创建租户数据库。
237.租户管理模块,用于租户管理可支持在本平台中创建和管理租户。
238.认证中心模块,用于设置角色,对角色赋予功能权限,然后再将角色赋予到用户上,用户就有了该角色所拥有的权限,需要进行权限修改时,只需修改角色的权限就可。
239.应用管理模块,用于创建和管理第三方应用,管理应用权限,应用只可访问已授权的平台api(application programming interface,应用程序接口)。
240.数据隔离模块,用于用户只能看到租户自有数据,租户之间数据不可见。
241.认证中心模块,包括:租户识别模块,用于识别用户属于哪一个租户认证模块,用于校验租户合法性;用户认证,用于校验用户合法性;用户鉴权,用于验证用户权限;应用认证,用于校验应用合法性;应用鉴权,用于验证应用权限。
242.图16示意性地示出了本公开提供的一种账号创建装置60的结构示意图,应用于物联网多租户平台中的物联网设备,包括:
243.租户管理模块601,被配置为接收账号创建请求,所述账号创建请求至少包括:账号标识、数据库实例标识;
244.数据隔离模块602,被配置为根据所述数据库实例标识相对应的数据库实例在数据库服务器中创建所述账号标识相对应的目标租户数据库,其中,所述数据库实例是所述数据库服务器中已有租户数据库相对应的数据库实例;
245.所述租户管理模块601,还被配置为在所述目标租户数据库创建完成后,输出所述账号标识相对应的账号创建成功通知。
246.可选地,所述账号创建请求还包括:与所述账号标识相关联的业务标识;
247.所述数据隔离模块602,还被配置为:
248.向所述业务标识相对应的业务服务端发送所述账号标识相对应的账号创建成功通知;
249.接收所述业务服务端根据所述账号创建成功通知发送的数据源标识;
250.建立所述数据源标识相对应的数据源与所述账号标识之间的映射关系,所述数据源用于向所述账号提供业务服务数据。
251.可选地,所述数据隔离模块602,还被配置为:
252.建立所述目标租户数据库与所述数据源之间的连接池。
253.可选地,所述装置还包括:监控运维模块603,被配置为:
254.获取所述连接池运行参数;
255.基于所述连接池运行参数调整连接池配置参数;
256.向所述业务服务端发送携带有所述连接池配置参数的连接池调整通知;
257.所述连接池调整通知用于指示所述业务服务端执行如下连接池配置参数方式中的至少一种:
258.在连接数大于最大连接数时,释放超出所述最大连接数的数目的连接;
259.在空闲连接数大于最大空闲连接数时,释放超出所述最大空闲连接数的数目的空
闲连接;
260.在空闲连接数小于最小空闲连接数时,创建低于所述最小空闲连接数的数目的连接。
261.可选地,所述租户管理模块601,还被配置为:
262.将所述账号标识和所述数据库实例标识关联存储至主数据库中,所述主数据库用于存储账号相关的租户信息。
263.可选地,所述数据隔离模块602,还被配置为:
264.在所述目标租户数据库中创建所述账号标识相对应的业务表;
265.初始化所述业务表中的业务信息和权限信息;
266.其中,所述业务表用于记录所述账号标识相对应的用户信息,并供所述权限信息所描述的对象查询。
267.可选地,所述装置还包括:应用管理模块604,被配置为:
268.接收所述账号发送的服务注册请求,所述服务注册请求至少包括:业务标识、账号标识;
269.生成所述账号标识相对应的账号密钥和业务密钥;
270.将所述账号密钥和业务密钥发送至所述业务标识相对应的业务服务端,完成所述账号的服务注册过程,所述账号密钥和所述业务密钥用于对所述账号的身份进行验证。
271.可选地,所述装置还包括:
272.认证中心模块605,被配置为对所述物联网多租户平台中的租户信息、用户信息和应用信息进行权限验证。
273.本公开实施例通过预设多种不同类型的数据库实例来供用户创建账号时创建账号的数据库使用,避免了静态文件存储数据库配置数据在新增配置时重启设备的问题,提高了账号创建的效率,降低了运维成本。
274.以上所描述的设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
275.本公开的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本公开实施例的计算处理设备中的一些或者全部部件的一些或者全部功能。本公开还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本公开的程序可以存储在非瞬态计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
276.例如,图17示出了可以实现根据本公开的方法的计算处理设备。该计算处理设备传统上包括处理器710和以存储器720形式的计算机程序产品或者非瞬态计算机可读介质。存储器720可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之
类的电子存储器。存储器720具有用于执行上述方法中的任何方法步骤的程序代码731的存储空间730。例如,用于程序代码的存储空间730可以包括分别用于实现上面的方法中的各种步骤的各个程序代码731。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(cd)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为如参考图18所述的便携式或者固定存储单元。该存储单元可以具有与图17的计算处理设备中的存储器720类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括计算机可读代码731’,即可以由例如诸如710之类的处理器读取的代码,这些代码当由计算处理设备运行时,导致该计算处理设备执行上面所描述的方法中的各个步骤。
277.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
278.本文中所称的“一个实施例”、“实施例”或者“一个或者多个实施例”意味着,结合实施例描述的特定特征、结构或者特性包括在本公开的至少一个实施例中。此外,请注意,这里“在一个实施例中”的词语例子不一定全指同一个实施例。
279.在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
280.在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
281.最后应说明的是:以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1