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

一种多平台互联互通的云连接器系统

文献发布时间:2023-06-19 19:30:30


一种多平台互联互通的云连接器系统

技术领域

本发明涉及汽车制造技术领域,特别是一种多平台互联互通的云连接器系统。

背景技术

目前汽车产业价值链之间的联系逐渐增强,多链间的业务发展日益密切,价值链之间的业务协作不仅需要以核心制造企业为主与其上下游企业间的纵向协作,还需要多条链式价值链的横向跨链协作,形成包含纵向与横向协同关系的网状结构的价值链协作联盟。

但目前汽车产业多价值链协作中,无论是核心制造企业,还是上、下游企业间,都设置有各自的数据云平台以及服务云平台,这些云平台之间存在数据、服务、资源等调配效率低下和数据孤岛等多方面的问题,不能很好的实现多源异构的数据共享、服务共享以及资源协调,并且在实现上述多源异构的数据共享、服务共享、资源协调的过程中,相关数据内容、服务内容、资源内容易泄露,导致内容被篡改、无法追溯等问题,进一步加深了调配效率低下和数据孤岛。

发明内容

鉴于上述问题,本发明提供一种多平台互联互通的云连接器系统,可以有效提高数据内容、服务内容、资源内容安全性,提升调配效率,打破数据孤岛。

本发明实施例提供了一种多平台互联互通的云连接器系统,所述云连接器系统包括:多个云平台和云连接器,其中,多个所述云平台包括:汽车制造业企业信息化云平台、第三方多价值链协同云平台、汽车集团企业多基地价值链协同云平台;

所述云连接器包括:网关模块、用户模块、访问控制模块、认证模块以及异步处理模块;

所述网关模块集成多个对外接口和多个对内接口,所述网关模块利用多个所述对外接口与多个数据集成服务器、多个服务集成服务器连接,所述网关模块结合EurekaServer实现用户注册微服务、多个所述数据集成服务器的注册微服务以及多个所述服务集成服务器的注册微服务;

所述网关模块利用所述对外接口与用户终端相连,实现用户身份认证、鉴权、管理、监控服务;

所述网关模块利用多个所述对内接口与所述用户模块、所述访问控制模块、所述认证模块以及所述异步处理模块连接,实现消息异步处理、访问控制、令牌生成;

所述网关模块利用ribbon实现负载均衡算法,对用户的请求进行负载均衡;

所述用户模块结合所述网关模块、所述用户终端,实现用户信息的添加、更新、删除、属性信息查询以及用户信息查询;

所述访问控制模块结合所述网关模块、所述认证模块,验证通过用户信息校验的用户对于一项资源的访问权限,进行访问控制,同时设置有访问策略,对于每一个资源的访问策略进行添加、删除、更新,并且实现资源的发布、查询、删除、更新;

所述认证模块结合所述网关模块、所述用户终端,基于OAuth2.0实现用户认证功能,对用户信息进行校验,同时根据用户注册的信息,封装生成并发放令牌;

所述异步处理模块结合所述网关模块、所述用户终端、多个所述数据集成服务器、多个所述服务集成服务器,针对数据集成内容或服务集成内容中有异步需求的任务,注册相应的消息队列,并设置任务监听器对消息队列进行监听;

其中,所述数据集成服务器和所述服务集成服务器是指:跨平台将所述汽车制造业企业信息化云平台、所述第三方多价值链协同云平台、所述汽车集团企业多基地价值链协同云平台各自的内容按照数据类型和服务类型进行分类后,得到数据集成内容和服务集成内容,将所述数据集成内容存储在多个所述数据集成服务器中,将所述服务集成内容存储在多个所述服务集成服务器中,多个所述数据集成服务器、多个所述服务集成服务器采用分布式的方式进行部署。

可选地,多个所述数据集成服务器和多个所述服务集成服务器构成服务器集群;

在运行的初期,使用基于轮询的方式,均匀的将用户发送的请求,发送到对应的所述服务器集群中各个服务器上进行处理;

当经过一定运行时间后,所述网关模块利用ribbon周期性的获取所述服务器集群中每个服务器的负载和资源情况,并计算每个服务器的得分,基于得分来进行所述负载均衡,具体包括:

获取每台服务器的性能情况,并计算平均性能,得到基准的CPU性能值P

定义每台服务器的性能向量[p

获取每台服务器的CPU负载率L(C

根据每个服务器的性能向量计算每个服务器的总体性能得分S1

S1

其中,k

获取每台服务器的平均响应时间TimeAvg

S2

其中,S2

根据式(1)和式(2)计算得到的得分,计算第i台服务器的得分S

S

根据式(3),得到一个包含当前所有服务器的得分集合,将所述得分集合内的所有分数映射成一个ScoreSet:

ScoreSet={a*S1

其中,a+b=1,a,b表示各指标的权重。

可选地,所述网关模块利用ribbon实现负载均衡算法,对用户的请求进行负载均衡的具体步骤包括:

初始化一个定时任务,指定所述定时任务的开始时间和周期性执行的时间,该定时任务负责周期性的维护所述服务器集群的节点个数和性能数据;

在用户请求到达时,若任一服务器的所述ScoreSet为空,则基于轮询的方式,返回下一个可用的服务器地址;

在所述定时任务开始时,周期性的收集每台服务器的性能和负载指标,所述性能和负载指标:包括CPU、内存大小、带宽大小、CPU占用率、内存占用率、带宽占用率,以及各个服务器的平均响应时间;

根据式(1)和式(2)分别计算各个服务器的性能得分S1

基于式(3)计算加权的得分结果S

当有新的用户请求到达时,此时所述ScoreSet不为空,计算总的得分TotalScore,并将各个服务器的得分映射到区间[0,TotalScore],使得所有服务器根据自身得分获得了相应长度的区间,得到一个该区间内的随机数random,所述随机数random所在范围的服务器即为所述负载均衡的结果。

可选地,所述认证模块结合所述网关模块、所述用户终端,基于OAuth2.0实现根据用户注册的信息,封装生成并发放令牌的具体步骤包括:

用户发起认证请求,所述认证请求中携带用户名和密码,所述网关模块将所述认证请求路由到认证中心;

所述认证中心利用所述Eureka Server提供的用户微服务,查询所述用户信息,对所述用户信息进行验证;

若验证通过,则根据用户的属性信息,作为令牌的载体生成JWT令牌,并将令牌标识返回给用户,同时将JWT令牌存储到redis中。

可选地,所述访问控制模块结合所述网关模块、所述认证模块,验证通过用户信息校验的用户对于一项资源的访问权限,进行访问控制的具体步骤包括:

用户在进行资源访问时,向所述网关模块发送资源访问请求,该资源访问请求携带令牌,所述资源是指:数据集成内容或者对服务集成内容;

所述认证模块利用访问控制服务进行所述令牌的验证,该验证包括:令牌合法性的验证,过期时间的验证;

验证无误后,所述认证模块进行所述令牌的载体的解析,获取所述用户的属性信息,再验证所述用户的属性信息的完整性;

所述访问控制模块根据所述资源访问请求的资源信息,查询对应资源信息的访问策略;

所述访问控制模块调用基于属性的访问控制方法校验所述用户的属性信息是否符合对应资源信息的访问策略;

所述访问控制模块将检验结果返回给所述网关模块;

所述网关模块基于所述校验结果对所述资源访问请求进行放行或者拒绝操作。

可选地,所述访问策略基于CP-ABE加密方案实现,将用户的解密私钥和一组所述用户的属性信息相关联起来,将所述访问策略与数据集成内容或者服务集成内容进行关联,所述用户的属性信息包括:至少一个平台ID、至少一个企业ID、至少一个企业的类型,其中平台ID是指:所述云连接器向用户提供的用于用户操作使用的多个云平台中任一云平台的ID,所述平台ID是最粗的划分粒度,企业ID是指:所有为所述云连接器系统提供数据集成内容和服务集成内容的企业的ID,所述企业ID是最细的粒度;

所述访问策略是一组树形结构,在存储时通过字符串的形式来表示,其中非叶子节点的值用字符串k of n的方式来表示,其中n表示子节点个数,而k表示至少需要满足的子节点个数;

当节点值为1of n时,表示或门,子节点中属性满足其一即可,当节点值为n of n时,则表示与门,只有所有子节点满足条件时才会返回true,叶子节点代表相应的属性和取值,用*号来表示匹配当前属性的所有取值;

以平台ID为例:*表示所有平台ID组成的集合{P01,P02...},P01表示一个云平台的具体ID,P02表示另一个云平台具体ID;

以企业ID为例:*表示指定平台ID下所有企业集合{C01,C02...},C01表示为云平台P01提供数据集成内容和服务集成内容的企业的具体ID,C02表示为云平台P01提供数据集成内容和服务集成内容的另一个企业的具体ID;

以企业类型为例:*表示指定平台ID下所有企业类型集合{T01,T02..},T01表示为云平台P02提供数据集成内容和服务集成内容企业的企业类型,T02表示为云平台P02提供数据集成内容和服务集成内容另一个企业的企业类型;

只有当树结构中的每一个节点都满足条件时,对于该资源的访问控制结果才能返回true,否则将返回false。

可选地,进行访问控制的流程包括:

初始化加密算法阶段:通过输入安全参数k,生成系统公钥PK和系统主密钥MK,其中PK在所述云连接器系统中公开,供用户进行属性加密,而MK则由所述云连接器系统进行秘密保管;

密钥生成阶段:在用户注册时执行,所述云连接器系统根据所述系统主密钥MK和所述用户的属性信息为用户生成属性私钥;

资源发布阶段:通过属性加密算法为数据集成和服务集成各自对应的外部接口设置访问策略,其中M是外部接口的明文信息,通过输入所述M、所述系统公钥PK、访问控制策略T,根据访问控制策略对所述M进行属性加密生成密文CT;

资源获取阶段:用于判断用户的权限是否符合资源信息的访问策略,将用户的属性解密私钥SK

可选地,所述异步处理模块处理异步需求任务的过程中,定义三个角色:生产端、消息队列以及消费端,使得消息在投递过程中拥有可靠性;

对于所述生产端:在所述生产端开启消息确认机制,为每一条消息生成唯一标识,在进行消息投递前将消息标识、消息内容、投递的消息队列存入Redis中,再进行实际消息的投递;

若消息被投递到指定的消息队列中,消息队列返回一个确认给所述生产端,该确认中包含消息的唯一标识,通过该唯一标识,将暂存在Redis中的消息进行删除;

若消息投递失败,所述生产端收到投递错误的确认,该确认中包含指定的消息标识,通过该消息标识,将存储在Redis中的消息再次取出来,进行重投递,保证所述生产端发送的消息不丢失;

对于所述消息队列:在进行交换机的创建时,进行交换机的持久化,消息队列元数据的持久化,在进行消息投递时,也将消息持久化到本地磁盘中,以避免当消息中间件出现宕机,导致消息队列元数据和没来得及消费的消息丢失;

对于消费端:在所述消费端通过开启手动确认的方式对每条消息进行确认,在所述消费端成功处理消息后,返回ACK,所述消息队列收到确认后,会删除相应消息;

若所述消费端处理失败则返回NACK,使消息重回所述消息队列中被再次消费,确保业务处理过程中发生异常时不会导致该条消息丢失。

与现有技术相比,本发明提供的多平台互联互通的云连接器系统,将汽车产业涉及到的多方企业各自的云平台,利用云连接器结合起来,其作为一种跨平台的消息总线,提供消息传递机制、跨平台数据格式转换、功能适配接口等功能。针对多源异构的汽车产业大数据,基于云连接器的多平台分布式数据集成与服务集成,包括数据模式关联网络、业务同步与协调等关键技术,实现多种类型云平台的互联互通集成,支撑多价值链业务流程融合与系统集成,实现多平台之间的数据/服务资源开发、资源的统一管理、多平台间的数据共享以及服务协同,打破数据孤立状态,便捷实现了数据共享、服务共享、资源协调,实现了内容的不可篡改、可追溯等需求,更好的服务于广泛的汽车制造核心企业以及相关企业。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1是本发明实施例中负载均衡架构图;

图2是本发明实施例中访问控制策略示意图;

图3是本发明实施例的云连接器总体功能模块结构示意图;

图4是本发明实施例中云连接器总体功能模块结构示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。应当理解,此处所描述的具体实施例仅用以解释本发明,仅仅是本发明一部分实施例,而不是全部的实施例,并不用于限定本发明。

本发明提出的多平台互联互通的云连接器系统,包括:多个云平台和云连接器,其中,多个云平台包括:汽车制造业企业信息化云平台、第三方多价值链协同云平台、汽车集团企业多基地价值链协同云平台等等。即只要涉及到汽车产业的云平台,或者企业自行架设的网站、平台等,都可以视作多个云平台。

而云连接器作为一种跨平台的消息总线,提供消息传递机制、跨平台数据格式转换、功能适配接口等功能。针对多源异构的制造大数据,基于云连接器的多平台分布式数据集成与服务集成。云连接器采用数据模式关联网络、业务同步与协调等关键技术,实现多种类型平台的互联互通集成。例如多个平台示例性的包括:第三方多价值链协同云服务平台、集团企业多基地价值链协同云服务平台以及企业信息化平台。

云连接器支撑多价值链业务流程融合与系统集成,将上述平台的数据内容和服务内容集成在一起,实现多平台之间的数据/服务资源开发、资源的统一管理、多平台间的数据共享以及服务协同。

为了更好的解释和说明本发明实施例的云连接器系统,示例性的以图1所示的云连接器总体架构示意图为例,说明整体结构。图1中云连接器与第三方多价值链协同云服务平台、集团企业多基地价值链协同云服务平台以及企业信息化平台连接,接收这些平台的数据,进行跨平台数据格式转换,进行消息传递机制,进行负载均衡,提供功能适配接口。

通过上述功能和接口,实现对外提供数据集成和服务集成的调用接口、负载均衡、身份管理与访问控制。其中,负载均衡包括但不限于:综合考虑服务器资源和资源占用率,以及实际运行状况中的响应时间,基于这些指标来计算得分,并根据得分来进行负载均衡。身份管理与访问控制包括但不限于:基于属性的细粒度访问控制、统一身份管理。最终达到数据/服务各自资源的开发,资源(指数据资源和服务资源)统一、数据共享、服务协同以及身份、权限认证的目标。

本发明实施例中,云连接器包括:网关模块、用户模块、访问控制模块、认证模块以及异步处理模块。网关模块集成多个对外接口和多个对内接口,网关模块利用多个对外接口与多个数据集成服务器、多个服务集成服务器连接。这其中,数据集成服务器和服务集成服务器是指:跨平台将汽车制造业企业信息化云平台、第三方多价值链协同云平台、汽车集团企业多基地价值链协同云平台等等,各种平台各自的内容按照数据类型和服务类型进行分类后,得到数据集成内容和服务集成内容,将数据集成内容存储在多个数据集成服务器中,将服务集成内容存储在多个服务集成服务器中,多个数据集成服务器、多个服务集成服务器采用分布式的方式进行部署。

数据集成和服务集成作为互联互通模块对外提供的核心服务,需要具有高可用性,高性能等特点,因此采用分布式的方式进行部署,多台服务器同时提供数据集成和服务集成功能,避免了单点失效问题。

网关模块还结合Eureka Server实现用户注册微服务、多个数据集成服务器的注册微服务以及多个服务集成服务器的注册微服务;网关模块利用对外接口与用户终端相连,实现用户身份认证、鉴权、管理、监控服务;网关模块利用多个对内接口与用户模块、访问控制模块、认证模块以及异步处理模块连接,实现消息异步处理、访问控制、令牌生成;

网关模块还利用ribbon实现负载均衡算法,对用户的请求进行负载均衡。例如以图2所示的负载均衡架构图为例:将数据集成和服务集成以及服务网关(即网关模块)等以微服务的方式注册在Eureka Server中。在分布式部署下,由于多台服务器(图2中示例性的示出服务集成服务器1、数据集成服务器1、数据集成服务器2)可能由于自身CPU、内存、带宽等资源或者部署环境的不同导致性能不一,因此本发明实施例采用负载均衡算法,综合考虑服务器资源和资源占用率,以及实际运行状况中的响应时间,基于这些指标来计算得分,并根据得分来进行负载均衡。

本发明实施例中,可以认为多个数据集成服务器和多个服务集成服务器构成服务器集群;在运行的初期,服务器的负载相对较低,因此在初始时不考虑服务器负载情况,使用基于轮询的方式,均匀的将用户发送的请求,发送到对应的服务器集群中各个服务器上进行处理。

当经过一定运行时间后,网关模块利用ribbon周期性的获取服务器集群中每个服务器的负载和资源情况,并计算每个服务器的得分,基于得分来进行负载均衡,具体包括:

获取每台服务器的性能情况,并计算平均性能,得到基准的CPU性能值P

定义每台服务器的性能向量[p

获取每台服务器的CPU负载率L(C

根据每个服务器的性能向量计算每个服务器的总体性能得分S1

S1

其中,k

获取每台服务器的平均响应时间TimeAvg

S2

其中,S2

根据式(1)和式(2)计算得到的得分,计算第i台服务器的得分S

S

根据式(3),得到一个包含当前所有服务器的得分集合,将得分集合内的所有分数映射成一个ScoreSet:

ScoreSet={a*S1

其中,a+b=1,a,b表示各指标的权重。

本发明实施例中,网关模块利用ribbon实现负载均衡算法,对用户的请求进行负载均衡的具体步骤包括:

步骤S1:初始化一个定时任务,指定定时任务的开始时间和周期性执行的时间,该定时任务负责周期性的维护服务器集群的节点个数和性能数据;

步骤S2:在用户请求到达时,若任一服务器的ScoreSet为空,说明还没有进行各个服务器得分的计算,则基于轮询的方式,返回下一个可用的服务器地址;

步骤S3:在定时任务开始时,周期性的收集每台服务器的性能和负载指标,性能和负载指标:包括CPU、内存大小、带宽大小、CPU占用率、内存占用率、带宽占用率,以及各个服务器的平均响应时间;

步骤S4:根据式(1)和式(2)分别计算各个服务器的性能得分S1

步骤S5:基于式(3)计算加权的得分结果S

步骤S6:当有新的用户请求到达时,此时ScoreSet不为空,计算总的得分TotalScore,并将各个服务器的得分映射到区间[0,TotalScore],使得所有服务器根据自身得分获得了相应长度的区间,得到一个该区间内的随机数random,这个随机数random所在范围的服务器即为负载均衡的结果。

本发明实施例中,用户模块结合网关模块、用户终端,实现用户信息的添加、更新、删除、属性信息查询以及用户信息查询。

本发明实施例中,访问控制模块结合网关模块、认证模块,验证通过用户信息校验的用户对于一项资源的访问权限,进行访问控制,同时设置有访问策略,对于每一个资源的访问策略进行添加、删除、更新,并且实现资源的发布、查询、删除、更新。

多平台互联互通过程中存在大量企业供应/营销/服务的价值链重要数据,如配件采购、仓储、配送等信息,在数据共享和服务协同中,存在用户重复认证、访问管理繁琐等问题,目前基于角色的访问控制机制难以精确界定价值链上用户的权限结构,一旦权限管理出现漏洞,将造成价值链数据的非法访问。

针对这些问题,本发明实施例中,采用统一身份管理和基于属性基加密的细粒度访问控制机制,为多价值链平台间的数据集成和服务集成提供可信的身份管理和授权。同时,采用基于令牌的无状态权限认证机制,降低权限分配时安全风险,提高数据集成和服务集成的权限认证效率。

对于身份认证:认证模块结合网关模块、用户终端,基于OAuth2.0实现用户认证功能,对用户信息进行校验,同时根据用户注册的信息,封装生成并发放令牌,身份认证具体步骤包括:

步骤T1:用户发起认证请求,认证请求中携带用户名和密码,网关模块将认证请求路由到认证中心;

步骤T2:认证中心利用Eureka Server提供的用户微服务,查询用户信息,对用户信息进行验证;

步骤T3:若验证通过,则根据用户的属性信息,作为令牌的载体生成JWT令牌,并将令牌标识返回给用户,同时将JWT令牌存储到redis中。

对于访问控制来说,一般需要与认证、鉴权相互结合,才可以实现对访问的控制。进行访问控制的具体步骤包括:

步骤V1:用户在进行资源访问时,向网关模块发送资源信息访问请求,该资源访问请求携带令牌,资源是指:数据集成内容或者对服务集成内容;

步骤V2:认证模块利用访问控制服务进行令牌的验证,该验证包括:令牌合法性的验证,过期时间的验证;

步骤V3:验证无误后,认证模块进行令牌的载体的解析,获取用户的属性信息,再验证用户的属性信息的完整性;

步骤V4:访问控制模块根据资源访问请求的资源信息,查询对应资源信息的访问策略;

步骤V5:访问控制模块调用基于属性的访问控制方法校验用户的属性信息是否符合对应资源信息的访问策略;

步骤V6:访问控制模块将检验结果返回给网关模块;

步骤V7:网关模块基于校验结果对资源访问请求进行放行或者拒绝操作。

本发明实施例中,采用CP-ABE的方式对服务集成和数据集成的外部接口进行访问控制,需要访问用户具有满足策略的属性结构才能成功解密密文。

数据的共享是由提供服务的汽车制造企业或生产厂商向潜在的需求客户发布空闲的产能信息,在多平台中参与共享的企业包含了整个汽车产业生态的各个环节,一方面企业一般只与其在业务上存在上下游关系的企业存在交互行为,不同企业有着不同的目标服务群体,另一方面由于企业自身的某些因素,只愿意将数据共享给部分用户,所以需要对产能数据的共享进行访问控制。在数据共享中,企业是参与到数据共享的基本单位,所以用户的属性信息包括:至少一个平台ID、至少一个企业ID、至少一个企业的类型。其中平台ID是指:云连接器向用户提供的用于用户操作使用的多个云平台中任一云平台的ID,该平台ID是最粗的划分粒度。企业ID是指:所有为云连接器系统提供数据集成内容和服务集成内容的企业的ID,该企业ID属性是最细的粒度。

本发明实施例中产能数据共享的属性定义的可选范围如下表1所示:

表1数据共享属性定义表

上述表1仅是为了更好的解释说明本发明而例举的,并不代表数据共享属性定义仅可为这样的形式,或者仅由这些内容组成。

在基于CP-ABE加密方案中,将用户的解密私钥和一组属性相关联起来,而访问策略与数据进行关联。访问策略是根据属性取值为数据资源构造的一组树形结构的规则。访问策略可以由表1中提到的平台ID、企业ID、企业类型等属性的随意组合构成,在访问策略中既可以包含用户的属性信息中所有属性,或者也可以包含用户的属性信息中部分属性。

例如以图3所示的访问控制策略示意图为例:将策略P定义为平台P01中的企业类型为T01的企业可以访问,那么用户A的属性信息(平台P01、C01、T01)符合此策略可以访问资源,用户B的属性信息(平台P02、C01、T01)中平台ID属性不符合,则会被拒绝访问。

由此可知,访问策略是一组树形结构,在存储时通过字符串的形式来表示,其中非叶子节点的值用字符串k of n的方式来表示,其中n表示子节点个数,而k表示至少需要满足的子节点个数;

当节点值为1of n时,表示或门,子节点中属性满足其一即可,当节点值为n of n时,则表示与门,只有所有子节点满足条件时才会返回true,叶子节点代表相应的属性和取值,用*号来表示匹配当前属性的所有取值;

以平台ID为例:*表示所有平台ID组成的集合{P01,P02...},P01表示一个云平台的具体ID,P02表示另一个云平台具体ID;

以企业ID为例:*表示指定平台ID下所有企业集合{C01,C02...},C01表示为云平台P01提供数据集成内容和服务集成内容的企业的具体ID,C02表示为云平台P01提供数据集成内容和服务集成内容的另一个企业的具体ID;

以企业类型为例:*表示指定平台ID下所有企业类型集合{T01,T02..},T01表示为云平台P02提供数据集成内容和服务集成内容企业的企业类型,T02表示为云平台P02提供数据集成内容和服务集成内容另一个企业的企业类型;

只有当树结构中的每一个节点都满足条件时,对于该资源的访问控制结果才能返回true,否则将返回false。

本发明实施例中,进行访问控制的流程包括如下阶段:

初始化加密算法阶段Setup(k)→(PK,MK):通过输入安全参数k,生成系统公钥PK和系统主密钥MK,其中PK在云连接器系统中公开,供用户进行属性加密,而MK则由云连接器系统进行秘密保管;

密钥生成阶段KeyGen(MK,S

资源发布阶段Encrypt(PK,M,T)→CT:通过属性加密算法为数据集成和服务集成各自对应的外部接口设置访问策略,其中M是外部接口的明文信息,通过输入M、系统公钥PK、访问控制策略T,根据访问控制策略对M进行属性加密生成密文CT;

资源获取阶段Decrypt(SK

本发明实施例中,异步处理模块结合网关模块、用户终端、多个数据集成服务器、多个服务集成服务器,针对数据集成内容或服务集成内容中有异步需求的任务,注册相应的消息队列,并设置任务监听器对消息队列进行监听。

异步处理模块提供异步处理功能,针对数据集成和服务集成中有异步需求任务,可以将功能剥离出来,注册相应的消息队列,并设置任务监听器对消息队列进行监听。那么在进行具体任务处理时,便可以直接调用异步处理的内部接口,指定投递的交换机、路由key、消息内容,转而继续处理其它任务,不需要阻塞地等待任务完成。收到消息后的异步处理接口将作为消息的生产者进行消息的投递,然后由消息中间件将消息转发指定的队列中,当作为监听器的消费者收到消息时,即可完成任务的异步处理。

本发明实施例中,异步处理模块处理异步需求任务的过程中,定义三个角色:生产端、消息队列以及消费端,使得消息在投递过程中拥有可靠性;

对于生产端:在生产端开启消息确认机制,为每一条消息生成唯一标识,在进行消息投递前将消息标识、消息内容、投递的消息队列存入Redis中,再进行实际消息的投递;

若消息被投递到指定的消息队列中,消息队列返回一个确认给生产端,该确认中包含消息的唯一标识,通过该唯一标识,将暂存在Redis中的消息进行删除;

若消息投递失败,生产端收到投递错误的确认,该确认中包含指定的消息标识,通过该消息标识,将存储在Redis中的消息再次取出来,进行重投递,保证生产端发送的消息不丢失;

对于消息队列:在进行交换机的创建时,进行交换机的持久化,消息队列元数据的持久化,在进行消息投递时,也将消息持久化到本地磁盘中,以避免当消息中间件出现宕机,导致消息队列元数据和没来得及消费的消息丢失;

对于消费端:在消费端通过开启手动确认的方式对每条消息进行确认,在消费端成功处理消息后,返回ACK,消息队列收到确认后,会删除相应消息;

若消费端处理失败则返回NACK,使消息重回消息队列中被再次消费,确保业务处理过程中发生异常时不会导致该条消息丢失。

对于消息处理流程,其具体可以包括:

步骤X1:预先定义好相应的交换机、消息队列名称、路由方法,并设置监听器对消息队列进行监听,当有异步需求任务,需要接入消息队列时,把异步需求任务的代码集成到监听器中;

步骤X2:通过feignclient的方式调用对应异步处理模块的内部接口,指定投递的交换机、路由key、消息内容,转而继续处理其它任务;

步骤X3:异步处理模块的内部接口在收到消息之后,为每个消息生成唯一标识,然后将消息内容、投递的交换机、路由key封装成map,以key-hash的方式存储到Redis后,将该消息投递给相应的交换机;

步骤X4:消息中间件在收到消息后,先进行消息的持久化,再由交换机根据路由key把消息投递到指定的消息队列中;

步骤X5:监听器不断检测相应队列是否有消息到达,有新消息时便从消息队列中进行获取,进行具体异步需求任务的执行,并在执行结束后手动向消息队列返回确认消息或失败消息,监听器可指定为消费端;

步骤X6:在整个消息处理流程中,若消息投递失败,将存储在Redis中的消息再次取出来,进行重投递;

步骤X7:若消息中间件宕机,持久化到本地磁盘中的消息可以在消息中间件重启后自动恢复;

步骤X8:若消费端的任务执行异常,指定消息重回队列,被重新消费;

步骤X9:若消费端处理消息成功,生产端根据确认中携带的消息标识,删除Redis中暂存的消息,同时消息队列则会清除持久化在本地硬盘中的消息内容。

上述内容所描述的生产端可以是汽车产业相关的企业等人员使用的终端,消费端可以使消费者使用的终端。

以下,为了更为清楚的解释说明本发明的云连接器系统,以较优的结构设计、接口设计为例,说明云连接器的各个模块。

网关模块中主要集成了包含数据集成和服务集成的对外接口,以及云连接器中的统一身份认证和鉴权,用户管理,监控服务等对外接口。

/>

/>

网关模块中内部接口包括:异步处理模块中消息异步处理的接口,访问控制接口,令牌发放接口等。

网关模块注册用户服务,鉴权服务,身份认证服务,以及数据集成和服务集成的接口,并统一向外暴露,负责这些接口的路由转发。同时在网关模块中使用令牌桶算法对请求进行限流,避免请求过载。此外结合EurekaServer注册中心,注册多个数据集成和服务集成微服务,在网关模块中基于ribbon实现了自定义的负载均衡算法,对用户发送的请求进行负载均衡。云连接器总体功能模块结构示意图如图4所示,图4中为了图示的简洁,示例性的示出了各个模块的部分功能,各个模块的全部功能可参见前述解释说明。

其中,消息异步处理接口:

功能:指定要投递的交换机名称,路由key,消息内容,向指定消息队列投递消息,实现请求处理的异步、削峰以及解耦。

访问方式:GET/synhandler

请求参数:

返回参数:

无。

用户模块负责用户信息的添加、更新、删除,以及用户信息的查询。一方面配合认证功能,给认证模块提供用户信息的查询接口,同时向页面提供用户管理的接口。

(1)用户信息查询

功能:根据用户名查询信息

访问方式:GET/user/{username}

请求参数:

返回参数:

返回指定用户信息,User类,包含用户的详细信息,例如:

其中flag表示成功还是失败,code为状态码,message为包含的字符串信息,data中为具体的数据信息。

(2)用户添加

功能:添加用户

访问方式:POST/user

请求参数:

返回参数:

若通过校验返回true,否则返回false。

(3)用户删除

功能:根据用户名删除用户信息

访问方式:DELETE/user/{username}

请求参数:

返回参数:

若删除成功返回true,否则返回false。

(4)用户更新

功能:更新用户详细信息

访问方式:PUT/user

请求参数:

返回参数:

若更新成功返回true,否则返回false。

访问控制模块提供访问控制的接口用于验证用户对于一项资源的访问权限,主要在网关模块汇总进行使用,请求通过网关时,可以调用该接口进行访问控制,同时对于每一个资源可以对资源的访问策略进行添加、删除、更新。

(1)资源发布

功能:给指定资源添加访问策略

访问方式:POST/resource

请求参数:

/>

返回参数:

若添加成功返回true,否则返回false。

(2)资源查询

功能:给指定资源添加访问策略

访问方式:GET/resource/{id}

请求参数:

返回参数:

返回资源的详细信息。

(3)资源删除

功能:给指定资源添加访问策略

访问方式:DELETE/resource/{id}

请求参数:

返回参数:

若删除成功返回true,否则返回false。

(4)资源更新

功能:给指定资源添加访问策略

访问方式:PUT/resource

请求参数:

返回参数:

若更新成功返回true,否则返回false。

(5)访问控制

功能:根据用户令牌中携带的属性信息和访问资源id,查询相应的访问策略,根据策略进行判定用户是否具有访问资源的权限

访问方式:GET/resource/access

请求参数:

返回参数:

若通过校验返回true,否则返回false。

(6)访问策略删除

功能:删除指定资源的访问策略

访问方式:DELETE/resource/policy

请求参数:

返回参数:

若删除成功返回true,否则返回false。

(7)访问策略更新

功能:更新指定资源的访问策略

访问方式:PUT/resource/policy

请求参数:

返回参数:

若更新成功返回true,否则返回false。

(8)访问策略添加

功能:给指定资源添加访问策略

访问方式:POST/resource/policy

请求参数:

返回参数:

若添加成功返回true,否则返回false。

(9)访问策略查询

功能:查询指定资源的访问策略并解析,加载用户属性信息转换为前端下拉框中显示的格式,返回访问策略在用户属性中的选中情况

访问方式:GET/resource/policy

请求参数:

认证模块基于OAuth2.0实现用户认证功能,对用户信息进行校验,同时可以根据用户信息,封装生成令牌。

(1)身份认证

功能:根据用户名、密码等信息验证用户身份,返回令牌标识

访问方式:GET/oauth/login

请求参数:

返回参数:

返回令牌标识。

(2)令牌发放

功能:生成令牌,封装用户属性信息,并返回令牌标识和令牌主体

访问方式:GET/oauth/token

请求参数:

返回参数:

返回jti令牌标识和jwt令牌主体。

综上所述,本发明提供的多平台互联互通的云连接器系统,将汽车产业涉及到的多方企业各自的云平台,利用云连接器结合起来,其作为一种跨平台的消息总线,提供消息传递机制、跨平台数据格式转换、功能适配接口等功能。针对多源异构的汽车产业大数据,基于云连接器的多平台分布式数据集成与服务集成,包括数据模式关联网络、业务同步与协调等关键技术,实现多种类型云平台的互联互通集成,支撑多价值链业务流程融合与系统集成,实现多平台之间的数据/服务资源开发、资源的统一管理、多平台间的数据共享以及服务协同,打破数据孤立状态,便捷实现了数据共享、服务共享、资源协调,实现了内容的不可篡改、可追溯等需求,更好的服务于广泛的汽车制造核心企业以及相关企业。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

相关技术
  • 一种船端业务服务互联互通平台系统
  • 一种张力腿平台筋腱连接器的试验加载系统
  • 一种基于图形化编程平台实现同步云变量的方法及其系统
  • 一种机械制造系统用云监测平台
  • 一种实现IMS系统与云视讯会议系统互联互通的方法
  • 一种实现IMS系统与云视讯会议系统互联互通的方法
技术分类

06120115934296