微服务云平台接口管控系统及方法与流程

文档序号:17490630发布日期:2019-04-23 20:27阅读:741来源:国知局
微服务云平台接口管控系统及方法与流程

本发明涉及汽车与交通运输技术领域,特别是涉及一种微服务云平台接口管控系统及方法。



背景技术:

随着微服务技术的普及,以saas(软件即服务)方式为第三方企业提供服务的云平台越来越多。在汽车与交通运输领域中,许多接口对安全方面的要求特别高,如远程开关车门、远程上下电等。在技术上除了常规的安全校验之外,也对系统提出了在特殊情况下(如部分车辆远程控车安全码泄漏),禁止调用这些车辆远程控车接口的要求。



技术实现要素:

本发明目的是提供一种微服务云平台接口管控系统及方法。

本发明是通过下述技术方案来解决上述技术问题的:

本发明提供一种微服务云平台接口管控系统,其特点在于,其包括获取模块、同步模块、redis数据库、mysql数据库、创建模块和管控模块;

所述获取模块用于获取各微服务云平台的每个接口的接口信息,所述接口信息包括接口地址、请求方式和接口功能描述;

所述同步模块用于将各微服务云平台的各接口的接口信息同步至redis数据库和mysql数据库中;

所述创建模块用于创建车辆的业务功能与接口的关联关系和建立接口有无被管控的信息;

所述同步模块用于将车辆的业务功能与接口的关联关系和建立接口有无被管控的信息同步至redis数据库和mysql数据库中;

所述管控模块用于对各个接口进行管控,在监控到对某一接口进行调用的请求时进行拦截,解析请求中的接口地址、请求类型、所属微服务云平台名称、车辆识别信息和针对车辆的操作类型,根据所属微服务云平台名称、接口地址和请求类型从redis数据库中查询出该接口是否被管控,在该接口不被管控时该接口被调用,在该接口被管控时中断本次调用。

较佳地,所述创建模块用于在该接口对应多个业务功能时,建立接口对应的各个业务功能有无被管控的信息;

所述管控模块用于基于该接口不被管控进一步根据车辆识别信息和针对车辆的操作类型从redis数据库中查询车辆识别信息对应的该操作类型是否被管控,在该操作类型不被管控时该接口被调用,在该操作类型被管控时中断本次调用。

较佳地,所述获取模块用于在微服务云平台启动时通过增量同步接口信息方式获取各微服务云平台的各接口的接口信息。

较佳地,所述管控模块用于在该接口被管控时中断本次调用且发送一接口被管控的信息。

较佳地,所述系统还包括注解模块,所述注解模块用于对接口的参数进行注解。

本发明还提供一种微服务云平台接口管控方法,其特点在于,其包括以下步骤:

获取各微服务云平台的每个接口的接口信息,所述接口信息包括接口地址、请求方式和接口功能描述;

将各微服务云平台的各接口的接口信息同步至redis数据库和mysql数据库中;

创建车辆的业务功能与接口的关联关系和建立接口有无被管控的信息;

将车辆的业务功能与接口的关联关系和建立接口有无被管控的信息同步至redis数据库和mysql数据库中;

对各个接口进行管控,在监控到对某一接口进行调用的请求时进行拦截,解析请求中的接口地址、请求类型、所属微服务云平台名称、车辆识别信息和针对车辆的操作类型,根据所属微服务云平台名称、接口地址和请求类型从redis数据库中查询出该接口是否被管控,在该接口不被管控时该接口被调用,在该接口被管控时中断本次调用。

较佳地,在该接口对应多个业务功能时,建立接口对应的各个业务功能有无被管控的信息;

基于该接口不被管控进一步根据车辆识别信息和针对车辆的操作类型从redis数据库中查询车辆识别信息对应的该操作类型是否被管控,在该操作类型不被管控时该接口被调用,在该操作类型被管控时中断本次调用。

较佳地,在微服务云平台启动时通过增量同步接口信息方式获取各微服务云平台的各接口的接口信息。

较佳地,在该接口被管控时中断本次调用且发送一接口被管控的信息。

较佳地,对接口的参数进行注解。

在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。

本发明的积极进步效果在于:

本发明灵活方便的搜集接口信息,由于采取增量同步的方式,只有新增的接口信息会被同步到数据库中,除第一次同步外其他同步数据都很小,能很快完成同步。

本发明灵活的管控配置、立即生效,在web界面中创建业务功能,并将业务功能和接口绑定,对该业务功能启用/禁用管控即可关闭/开启接口管控,无须修改代码。

本发明最大限度的让业务代码与管控解耦,管控逻辑对业务代码透明,对代码的侵入度极低。

附图说明

图1为本发明较佳实施例的微服务云平台接口管控系统的结构框图。

图2为本发明较佳实施例的微服务云平台接口管控方法的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本实施例提供一种微服务云平台接口管控系统,包括获取模块1、同步模块2、redis数据库3、mysql数据库4、创建模块5、管控模块6和注解模块7。

所述获取模块1用于在微服务云平台启动时通过增量同步接口信息方式获取各微服务云平台的每个接口的接口信息,所述接口信息包括接口地址、请求方式和接口功能描述。

所述同步模块2用于将各微服务云平台的各接口的接口信息同步至redis数据库3和mysql数据库4中。

所述创建模块5用于创建车辆的业务功能与接口的关联关系和建立接口有无被管控的信息,以及在该接口对应多个业务功能时,建立接口对应的各个业务功能有无被管控的信息。

所述同步模块2用于将车辆的业务功能与接口的关联关系和建立接口有无被管控的信息同步至redis数据库3和mysql数据库4中。

所述管控模块6用于对各个接口进行管控,在监控到对某一接口进行调用的请求时进行拦截,解析请求中的接口地址、请求类型、所属微服务云平台名称、车辆识别信息和针对车辆的操作类型,根据所属微服务云平台名称、接口地址和请求类型从redis数据库中查询出该接口是否被管控,在该接口不被管控时该接口被调用,在该接口被管控时中断本次调用且发送一接口被管控的信息。基于该接口不被管控进一步根据车辆识别信息和针对车辆的操作类型从redis数据库中查询车辆识别信息对应的该操作类型是否被管控,在该操作类型不被管控时该接口被调用,在该操作类型被管控时中断本次调用且发送一该操作类型被管控的信息。

大多数情况下,一个接口对应一个业务功能(如:车况查询、车辆定位分别对应两个接口),但也存在一个接口对应多个业务功能的特殊情况,如远程控车只有一个接口:通过传入不同的operationtype(操作类型:包括开关车门、开关空调、开关发动机等)来区分具体的操作,称此类接口为复合型接口。

对于复合型接口的管控需要获取运行时的operationtype,通过解析operationtype的值来区分到底是哪种业务功能(开车门还是开空调)。这种场景对业务功能提出了更高的要求,即部分业务功能需要与operationtype的值进行关联,如:远程鸣笛这个业务功能与operationtype为honk相关联。可以事先管控远程鸣笛这个功能,当远程控车接口被调用时,解析接口中的operationtype参数。如果operationtype为honk,则限制本次调用,否则不做限制。

在本方案中业务功能分为2种类型:默认和远程控车。业务功能的类型是可以自定义的,根据具体的业务要求进行设置即可(远程控车本身可看做一个设置)。默认的业务功能不需要与operationtype关联,而远程控车必须与operationtype的值关联。在远程控车业务功能的关联界面中会通过下拉列表的方式让用户选择operationtype,从而避免手动录入出错。下拉列表的值就来自于名为opertiontype的枚举。

所述注解模块7用于对接口的参数进行注解。车辆id为1的车不能调用车况查询接口和车辆定位接口,其他车辆能正常调用车况查询接口和车辆定位接口。假设这2个接口由于历史原因,对车辆id这个字段采取了不同的命名方式,如车况查询接口参数命名为vid,车辆定位接口参数命名为vehicleid。此时,在使用aop反射解析参数的时候就会由于参数名字的不同而做不到统一解析。为了解决此类问题,本解决方案利用java注解技术,定义名为@vehicleid的注解,该注解类型为parameter和field,可以用于接口参数或者字段上。在aop解析逻辑中先默认解析vehicleid,如果没有解析到则尝试解析被@vehicleid注解的参数或者字段。因此对于命名不统一的车况查询接口(命名统一的接口则无须修改),可以在vid参数前面添加@vehicleid注解,这样只需对代码进行微小改动即可使其支持接口管控。

如图2所示,本实施例还提供一种微服务云平台接口管控方法,其包括以下步骤:

步骤101、在微服务云平台启动时通过增量同步接口信息方式获取各微服务云平台的每个接口的接口信息,所述接口信息包括接口地址、请求方式和接口功能描述。

步骤102、将各微服务云平台的各接口的接口信息同步至redis数据库和mysql数据库中。

步骤103、创建车辆的业务功能与接口的关联关系和建立接口有无被管控的信息,在该接口对应多个业务功能时,建立接口对应的各个业务功能有无被管控的信息。

步骤104、将车辆的业务功能与接口的关联关系和建立接口有无被管控的信息同步至redis数据库和mysql数据库中。

步骤105、对各个接口进行管控,在监控到对某一接口进行调用的请求时进行拦截,解析请求中的接口地址、请求类型、所属微服务云平台名称、车辆识别信息和针对车辆的操作类型,根据所属微服务云平台名称、接口地址和请求类型从redis数据库中查询出该接口是否被管控,在该接口不被管控时该接口被调用,在该接口被管控时中断本次调用且发送一车辆被管控的信息;根据车辆识别信息和针对车辆的操作类型从redis数据库中查询车辆识别信息对应的该操作类型是否被管控,在该操作类型不被管控时该接口被调用,在该操作类型被管控时中断本次调用。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

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