掌桥专利:专业的专利平台
掌桥专利
首页

一种数据服务汇聚引擎及其管理方法

文献发布时间:2023-06-19 11:16:08


一种数据服务汇聚引擎及其管理方法

技术领域:

本发明涉及多平台大数据管理技术领域,尤其涉及一种数据服务汇聚引擎及其管理方法。

背景技术

目前,随着互联网的发展,在企业内存在各种提供数据的系统,包括但不限于ERP系统(金蝶,用友等),WMS-warehouse management system仓库管理系统,HR系统,门禁系统,各类物联网设备收集数据的系统,企业内部的应用原本各自独立,类似信息孤岛的形式存在,客观上需要把各个地方的数据汇聚到一起,但是大型企业内部系统的数量繁多,访问方式不一,权限要求比较严格,并非简单的把一些功能接口集中放到一处就可以满足需求,

因此急需提供一个统一的入口和访问方式,并且有统一的权限,监控等管理措施等。

发明内容

为了克服现有技术的不足,本发明提供了一种数据服务汇聚引擎及其管理方法,从而可以将企业内部多个系统统一入口和访问方式,从而提高企业内部系统的使用效率。

本发明所采用的技术方案是:一种数据服务汇聚引擎,包括:

数据服务接入模块:用于收集和记录数据服务的访问信息;

数据服务监控模块:用于让各个数据服务提供自身健康状况;

动态路由模块:用于管理请求通过网关的地址转发到后端的数据服务;

客户端注册赋权模块:用于平台提供客户端注册功能和分配ID和密码;

客户端请求模块:用于处理请求方的请求;

动态权限管理模块:用于管理数据服务所需的访问权限。

进一步的,所述访问信息包括域名、IP地址、端口、访问协议、 API文档地址、健康监控地址信息。

进一步的,所述健康状况包括数据服务的UP/DOWN状态,健康数据由各个服务的Spring Boot Actuator接口直接提供。

进一步的,所述动态路由模块包括路由初始数据管理和路由动态修改数据管理,所述初始数据管理的初始路由映射关系写在Spring boot的配置文件中,针对网关组件zuul进行配置;所述路由动态修改数据管理包括平台提供修改路由规则的界面,自由添加修改路由规则数据,并通知网关获取最新路由数据。

进一步的,所述客户端注册赋权模块通过客户端注册系统管理员登记新的客户端,分配ID和密码。

本发明还提供了一种数据服务汇聚引擎的管理方法,包括如下步骤:

S1:请求方通过客户端使用用户ID和密码在认证服务接口登录,成功后生成访问token(access_token),所述token中加密保存了用户ID,role list和token过期时间;

S2:通过动态路由管理将符合条件的请求方IP地址的请求通过网关转发到数据服务接入模块;

S3:数据服务接入模块收集和记录所述请求方的域名、IP地址、端口、访问协议、API文档地址、健康监控地址信息;

S4:服务网关解析检查token的值是否存在/是否合法/是否过期,解析出用户ID和角色信息role list放入http header,数据服务接入模块可直接取得;

S5:由系统管理员登记新的客户端,分配ID和密码,通过邮件/短信途径通知请求方,所述客户端通过该步骤生成的ID,密码认证;

S6:采用动态管理访问权限将权限粒度具体到URL的一个HTTP Method;

S7:由服务网关记录访问记录,每次客户端的请求到达网关后由 ZuulFilter拦截,记录所述客户端访问了的URL,和结果HTTP response status code的数值。

与现有技术相比,本发明的有益效果是:将企业内部多个系统统一入口和访问方式,提高了企业内部系统的使用效率。

附图说明

图1为本发明一种数据服务汇聚引擎及其管理方法的流程图;

图2为本发明一种数据服务汇聚引擎及其管理方法的架构图。

具体实施方式

下面结合附图对本发明进一步说明,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

本发明提供了一种数据服务汇聚引擎,包括:

数据服务接入模块:用于收集和记录数据服务的访问信息;

数据服务监控模块:用于让各个数据服务提供自身健康状况;

动态路由模块:用于管理请求通过网关的地址转发到后端的数据服务;客户端注册赋权模块:用于平台提供客户端注册功能和分配ID和密码;

客户端请求模块:用于处理请求方的请求;

动态权限管理模块:用于管理数据服务所需的访问权限。

数据服务接入模块:用于收集和记录数据服务的访问信息,所述访问信息包括域名、IP地址、端口、访问协议(HTTP或HTTPS)、API 文档地址、健康监控地址信息,其中API文档由Swagger API管理工具生成,项目需要引入必要依赖,开发人员通过注解说明接口的功能,输入输出参数的要求,通过URL可以获得工具生成的API信息,通过收集和记录所述数据服务的访问信息可以把各个数据服务纳入到本平台的管理范围内。

数据服务监控模块:用于让各个数据服务提供自身健康状况,所述健康状况包括数据服务的UP/DOWN状态,健康数据由各个服务的 Spring Boot Actuator接口直接提供,接口地址格式 http://{ip}:{port}/actuator/health

接口返回数据样例

{

"status":"UP"

}

对于不具备上述接口条件的数据服务,在接入时提供自身的健康检查 URL,只要访问后返回HTTP Response status code为2XX即为正常状态。

动态路由模块:用于管理请求通过网关的地址转发到后端的数据服务,因为需要提供权限管理,访问记录等功能,客户端不能直接访问后端的各个数据服务。

所有访问必须通过本平台的服务网关,这就需要一个访问路径的映射关系管理,也就是路由管理,所述动态路由模块包括路由初始数据管理和路由动态修改数据管理,所述初始数据管理的初始路由映射关系写在Spring boot的配置文件中,针对网关组件zuul进行配置;样例如下

sslHostnameValidationEnabled:false

routes:

reading:

path:/

path:/

需要转发的URL全部小写,一般格式是`/gw/服务名/具体路径...`,服务名全局唯一。

假设本地8809端口启动了本平台,发送给

http://localhost:8809/gw/httpbin/ip的请求会被转发到

路径的匹配采用Spring AntPathMatcher规则,通配符说明如下:

-"?"匹配一个字符

-"*"匹配0到n个字符

-"**"匹配0到n个路径中的目录

举例说明:

-/user-service/?它可以匹配/user-service/之后拼接一个字符的路径,比如:/user-service/a、/user-service/b、

/user-service/c

-/user-service/*它可以匹配/user-service/之后拼接任意个字符的路径,比如:/user-service/a、/user-service/aaa、

/user-service/bbb。但是它无法匹配/user-service/a/b

-/user-service/**它可以匹配/user-service/*包含的内容之外,还可以匹配形如/user-service/a/b的多级目录路径。

所述路由动态修改数据管理包括平台提供修改路由规则的界面,自由添加修改路由规则数据,并通知网关获取最新路由数据。

客户端注册赋权模块:用于平台提供客户端注册功能和分配ID和密码;所述客户端注册赋权模块通过客户端注册系统管理员登记新的客户端,分配ID和密码。

客户端请求模块:用于处理请求方的请求;客户端使用用户ID和密码在认证服务接口登录,成功后生成访问token(access_token), token中加密保存了用户ID,role list和token过期时间,Token机制在服务端不需要存储session信息,因为Token自身包含了所有用户的相关信息,同时在验证Token时不用再去访问数据库或者远程服务进行权限校验,可以提升性能。以后客户的请求中一律在http header中包含这个access_token作为自己身份的标示,服务网关会解析检查token的值是否存在,是否合法,是否过期等,解析出用户ID和角色信息role list放入http header,后端服务即可直接取得。

动态权限管理模块:用于管理数据服务所需的访问权限。采用动态管理访问权限将权限粒度具体到URL的一个HTTP Method,配置示范数据:

[

"/gw/be/swagger.json:GET:ANONYMOUS",

"/gw/be/health:GET:ANONYMOUS",

"/gw/be/health/deep:GET:ANONYMOUS",

"/gw/be/**:*:SYS_ADMIN,ADMIN",

"/gw/httpbin/**:GET:SYS_ADMIN,ADMIN"

]

第一行表示有一个名为httpbin的后端服务,需要客户端具备的role 是SYS_ADMIN或者ADMIN才可通过GET请求访问/gw/httpbin/**

通过合理安排url的路径可以达到灵活设置服务内子功能权限的目的。例如:

/gw/svc1/func1/**

/gw/svc1/func2/**

注意要避免一个请求符合多条权限记录中的地址。

约定特殊角色ANONYMOUS表示任何客户端(包括没登录过的)都可访问此地址。

同时,权限规则也可由管理员在页面上维护,修改后立即生效。本发明还提供了一种数据服务汇聚引擎的管理方法,包括如下步骤:

S1:请求方通过客户端使用用户ID和密码在认证服务接口登录,成功后生成访问token(access_token),所述token中加密保存了用户ID,role list和token过期时间;

S2:通过动态路由管理将符合条件的请求方IP地址的请求通过网关转发到数据服务接入模块;

S3:数据服务接入模块收集和记录所述请求方的域名、IP地址、端口、访问协议、API文档地址、健康监控地址信息;

S4:服务网关解析检查token的值是否存在/是否合法/是否过期,解析出用户ID和角色信息role list放入http header,数据服务接入模块可直接取得;

S5:由系统管理员登记新的客户端,分配ID和密码,通过邮件/短信途径通知请求方,所述客户端通过该步骤生成的ID,密码认证;

S6:采用动态管理访问权限将权限粒度具体到URL的一个HTTP Method;

S7:由服务网关记录访问记录,每次客户端的请求到达网关后由ZuulFilter拦截。

上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明,因此无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。

相关技术
  • 一种数据服务汇聚引擎及其管理方法
  • 一种基于多引擎集成技术的医疗健康大数据服务方法
技术分类

06120112859392