CN112835731A - 数据处理方法以及装置 - Google Patents

数据处理方法以及装置 Download PDF

Info

Publication number
CN112835731A
CN112835731A CN202110253658.3A CN202110253658A CN112835731A CN 112835731 A CN112835731 A CN 112835731A CN 202110253658 A CN202110253658 A CN 202110253658A CN 112835731 A CN112835731 A CN 112835731A
Authority
CN
China
Prior art keywords
data
application program
user identity
application
remote procedure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110253658.3A
Other languages
English (en)
Other versions
CN112835731B (zh
Inventor
兰宇识
陈明
张园超
余锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang eCommerce Bank Co Ltd
Original Assignee
Zhejiang eCommerce Bank Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang eCommerce Bank Co Ltd filed Critical Zhejiang eCommerce Bank Co Ltd
Priority to CN202110253658.3A priority Critical patent/CN112835731B/zh
Publication of CN112835731A publication Critical patent/CN112835731A/zh
Application granted granted Critical
Publication of CN112835731B publication Critical patent/CN112835731B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本说明书实施例提供数据处理方法以及装置,其中,所述数据处理方法包括接收携带有数据标识和用户身份标识的数据获取请求,基于所述数据获取请求确定数据调用链路,其中,所述数据调用链路中包括至少三个应用程序;将所述用户身份标识放置在每个应用程序的应用容器的线程本地变量中,并基于所述数据标识和所述线程本地变量中的所述用户身份标识获取对应的数据。

Description

数据处理方法以及装置
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质。
背景技术
近些年大型互联网应用用户数据泄露事件频发,很重要的原因是用户数据权限管理技术不够完善,由于大型互联网应用调用链路复杂,上层服务应用要基于很多底层基础应用支持,底层基础应用负责最终操作用户数据,逻辑上来说底层基础应用应该进行严格的用户数据权限管理,但是实际情况却缺少一种完善的技术可以把用户身份标识简单高效地传输给底层基础应用,底层基础应用获取不到用户身份标识自然无法进行数据权限管理。
因此急需提供一种可以将用户身份标识简单高效地传输到应用调用链路的各个应用节点,给用户数据权限管理提供技术支持的数据处理方法。
发明内容
有鉴于此,本说明书施例提供了一种数据处理方法。本说明书一个或者多个实施例同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据处理方法,包括:
接收携带有数据标识和用户身份标识的数据获取请求,基于所述数据获取请求确定数据调用链路,其中,所述数据调用链路中包括至少三个应用程序;
将所述用户身份标识放置在每个应用程序的应用容器的线程本地变量中,并基于所述数据标识和所述线程本地变量中的所述用户身份标识获取对应的数据。
根据本说明书实施例的第二方面,提供了一种数据处理装置,包括:
请求接收模块,被配置为接收携带有数据标识和用户身份标识的数据获取请求,基于所述数据获取请求确定数据调用链路,其中,所述数据调用链路中包括至少三个应用程序;
数据获取模块,被配置为将所述用户身份标识放置在每个应用程序的应用容器的线程本地变量中,并基于所述数据标识和所述线程本地变量中的所述用户身份标识获取对应的数据。
根据本说明书实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
本说明书一个实施例实现了一种数据处理方法及装置,其中,所述数据处理方法包括接收携带有数据标识和用户身份标识的数据获取请求,基于所述数据获取请求确定数据调用链路,其中,所述数据调用链路中包括至少三个应用程序;将所述用户身份标识放置在每个应用程序的应用容器的线程本地变量中,并基于所述数据标识和所述线程本地变量中的所述用户身份标识获取对应的数据。具体的,所述数据处理方法将数据处理的操作过程从应用中转移到每个应用对应的应用容器中,应用容器每次接收到其他应用的远程过程调用时,会将远程过程调用数据包中的用户身份标识自动绑定到当前的线程本地变量中,以便在进行下一次远程过程调用的时候,会自动将线程本地变量中绑定的用户身份标识取出来放入远程过程调用数据包传给下一个节点,整个过程应用容器中运行的应用无需做任何改造,需要使用用户身份标识的时候可以随时从对应的应用容器的线程本地变量中取出使用,可以将用户身份标识简单高效地传输到应用调用链路的各个应用节点,实现给用户数据权限管理提供技术支持。
附图说明
图1是本说明书一个实施例提供的一种需要实现用户身份标识传输的RPC调用链路的结构示意图;
图2是本说明书一个实施例提供的一种通过改造RPC调用链路上的每个应用程序被调用方法的参数,把要传输的用户身份标识通过方法参数传输给各个应用程序的结构示意图;
图3是本说明书一个实施例提供的一种数据处理方法的流程图;
图4是本说明书一个实施例提供的一种数据处理方法在RPC调用链路的应用的处理过程示意图;
图5是本说明书一个实施例提供的一种数据处理装置的结构示意图;
图6是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
RPC调用:远程过程调用,简单的理解是一个节点请求另一个节点提供的服务。
ThreadLocal:线程本地变量,JDK提供的一个类,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。
为了解决现有技术中无法将用户身份标识传输给底层基础应用的问题,可以采用改造RPC调用链路上的每个应用程序被调用方法的参数,把要传输的用户身份标识通过方法参数传输给各个应用程序。
参见图1,图1示出了一种需要实现用户身份标识传输的RPC调用链路的结构示意图。
图1的RPC调用链路中包括应用程序1(app1)、应用程序2(app2)、应用程序3(app3)、应用程序4(app4)四个应用程序,实际应用中,app1可以理解为部署在互联网上的应用,可以直接获取到用户身份标识,通过该RPC调用链路,app1的方法method1调用app2方法method2(p2),app2的方法method2(p2)调用app3方法method3(p3),app3的方法method3(p3)调用app4的方法method4(p4),最终app4的方法method4(p4)进行用户数据获取等操作。
参见图2,结合图1,图2示出了一种通过改造RPC调用链路上的每个应用程序被调用方法的参数,把要传输的用户身份标识通过方法参数传输给各个应用程序的结构示意图。
具体实施时,若要将app1获取到的用户身份标识数据传输给app4,那么图1中的整个RPC调用链路上的应用程序的方法(method2、method3、method4)均需要添加一个参数P2用来传递用户身份标识数据,通过此种方式,虽然可以实现将app1获取到的用户身份标识数据传输给app4,但是要将用户身份标识从RPC调用链路的第一个应用程序传递到后面的应用程序,整个RPC调用链路中间涉及的各个应用程序的方法都需要改造,如果RPC调用链路中间涉及的应用程序数量较多,则改造成本非常大,并且后续如果需要传递更复杂的数据,还需要对RPC调用链路中间的各个应用程序进行再次改造,在大型互联网应用场景中实现难度非常高。
基于此,在本说明书中,还提供了一种数据处理方法,本说明书同时涉及一种数据处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图3,图3示出了根据本说明书一个实施例提供的一种数据处理方法的流程图,具体包括以下步骤。
步骤102:接收携带有数据标识和用户身份标识的数据获取请求,基于所述数据获取请求确定数据调用链路,其中,所述数据调用链路中包括至少三个应用程序。
具体实施时,所述数据处理方法应用在上述的RPC调用链路上,整个数据处理方法可以理解为整个RPC调用链路上应用程序之间的交互方法,详细介绍如下所述。
其中,数据标识可以理解为由数字、字符和/或特殊标识等组成的唯一数据标识,通过该数据标识可以获取到该数据标识对应的唯一数据内容,例如订单数据等。而用户身份标识包括但不限于用户的证件号码、手机号码和/或其他用于表示用户身份的邮箱、住址等。
具体的,所述数据调用链路中包括至少三个应用程序,且所述数据调用链路通过远程过程调用协议实现数据调用,那么实际应用中接收携带有数据标识和用户身份标识的数据获取请求,可以为所述至少三个应用程序中的某一个应用程序,具体实现方式如下所述:
所述至少三个应用程序包括第一应用程序、第二应用程序、第三应用程序;
相应地,所述接收携带有数据标识和用户身份标识的数据获取请求,包括:
所述第一应用程序接收携带有数据标识和用户身份标识的数据获取请求。
其中,第一应用程序、第二应用程序、第三应用程序分别为不同的应用程序,且第二应用程序至少为一个,一般情况下为两个或两个以上,具体的,第二应用程序的数量根据实际应用进行设置,本说明书对此不作任何限定。
参见上述实施例,第一应用程序可以理解为图1和图2中的app1,第二应用程序可以理解为图1和图2中的app2和app3,第三应用程序可以理解为图1和图2中的app4。
具体实施时,所述第一应用程序接收携带有数据标识和用户身份标识的数据获取请求,也可以理解为第一应用程序接收携带有数据表示的数据获取请求,基于该数据获取请求从发送数据获取请求的请求方获取其用户身份标识,实际应用中,数据获取请求中携带有用户身份标识或者时第一应用程序接收到数据获取请求后,去发送数据获取请求的请求方获取对应的用户身份标识可以根据实际应用进行设置,本说明书对此不作任何限定。
实际应用中,在第一应用程序接收携带有数据标识和用户身份标识的数据获取请求后,还需要基于所述数据获取请求确定数据调用链路。即基于该数据获取请求确定完成该数据获取请求需要经过哪个RPC数据调用链路,该RPC数据调用链路中包括哪些应用程序。
本说明书实施例中,由于RPC数据调用链路中的第一应用程序部署在互联网上,可以直接获取到用户身份标识,因此在进行数据调用的情况下,由第一应用程序接收数据获取请求,以及基于该数据获取请求确定具体的RPC数据调用链路,使得后续可以基于该RPC数据调用链路实现数据的正确调用。
步骤104:将所述用户身份标识放置在每个应用程序的应用容器的线程本地变量中,并基于所述数据标识和所述线程本地变量中的所述用户身份标识获取对应的数据。
实际应用中,每个应用程序均运行在应用容器中,而每个应用容器中又可以存在一个线程本地变量(ThreadLocal),那么在不对RPC数据调用链路中的所有应用程序的方法参数进行改造的情况下,可以将用户身份标识放置到每个应用程序的应用容器的线程本地变量中,以实现在整个数据调用过程中,每个应用容器中的每个应用程序无需做任何改造,就可以在需要使用用户身份标识时随时从各自的线程本地变量中获取使用,具体实现方式如下所述:
所述将所述用户身份标识放置在每个应用程序的应用容器的线程本地变量中,包括:
所述第一应用程序将所述用户身份标识放置在所述第一应用程序的应用容器的线程本地变量中,并基于所述数据标识和所述用户身份标识生成远程过程调用数据包,且向所述第二应用程序发送远程过程调用请求,其中,所述远程过程调用请求中携带有远程过程调用数据包;
所述第二应用程序从所述远程过程调用数据包中获取所述用户身份标识,并将所述用户身份标识放置在所述第二应用程序的应用容器的线程本地变量中,且向所述第三应用程序发送远程过程调用请求,其中,所述远程过程调用请求中携带有远程过程调用数据包;
所述第三应用程序从所述远程过程调用数据包中获取所述用户身份标识,并将所述用户身份标识放置在所述第三应用程序的应用容器的线程本地变量中。
其中,远程过程调用数据包为基于RPC协议生成的RPC数据包,在进行应用程序间RPC调用时,将要传递的用户身份标识放置在RPC数据包的附件头(attachment header),将数据标识放置在RPC数据包的数据体(body)中进行传输。
具体的,在整个RPC数据调用链路中包括第一应用程序、至少一个第二应用程序、第三应用程序的情况下,第一应用程序接收携带有数据标识和用户身份标识的数据获取请求,且基于所述数据获取请求确定对应的数据调用链路;此外,第一应用程序还会将用户身份标识放置在第一应用程序的应用容器的线程本地变量中,并基于该数据标识和用户身份标识生成远程过程调用数据包(RPC数据包),且向至少一个第二应用程序发送远程过程调用请求,其中,该远程过程调用请求中携带有远程过程调用数据包。
至少一个第二应用程序接收到该远程过程调用请求后,从该远程过程调用请求携带的RPC数据包中获取用户身份标识,并将用户身份标识放置第二应用程序的应用容器的线程本地变量中,且向第三应用程序发送远程过程调用请求,其中,该远程过程调用请求中仍旧携带有该RPC数据包。
第三应用程序接收到该远程过程调用请求后,从该远程过程调用请求携带的RPC数据包中获取用户身份标识,并将用户身份标识放置在第三应用程序的应用容器的线程本地变量中。
实际应用中,在进行下一次该RPC数据调用链路的数据调用时,每个应用程序的应用容器会把该用户身份标识数据从各自的线程本地变量中取出来,再通过RPC协议附件头传输给下一个节点(即应用程序),下一个节点重复上述过程,如此传输数据,应用程序代码本身不需要做任何修改。需用使用这部分数据(用户身份标识)的应用程序,随时都可以从各自应用程序的线程本地变量中取出数据来使用,数据传输简单高效。
实际应用中,第二应用程序一般为两个或两个以上,那么在第二应用程序为多个的情况下,每个第二应用程序之间实现数据传输的方法如下所述:
所述第二应用程序为i个,i∈[1,n],且i为正整数;
相应地,所述第二应用程序从所述远程过程调用数据包中获取所述用户身份标识,并将所述用户身份标识放置在所述第二应用程序的应用容器的线程本地变量中,且向所述第三应用程序发送远程过程调用请求,包括:
S2、所述第i个第二应用程序从所述远程过程调用数据包中获取所述用户身份标识,并将所述用户身份标识放置在所述第i个第二应用程序的应用容器的线程本地变量中;
S4、判断i是否大于n,
若是,则向所述第三应用程序发送远程过程调用请求;
若否,则将i自增1,并向所述第i应用程序发送远程过程调用请求,且继续执行步骤S2,其中,所述远程过程调用请求中携带有远程过程调用数据包。
沿用上例,以第二应用程序为上述实施例的app2和app3为例,那么n为2,首先,app2从远程过程调用数据包中获取用户身份标识,并将用户身份标识放置在app2的应用容器的线程本地变量中;且可以确定app2不是最后一个,即第二个第二应用程序,那么则向app3发送远程过程调用请求且继续执行步上述步骤,直至所有的第二应用程序全部执行完毕,向第三应用程序发送远程过程调用请求;且每个第二应用程序分别为不同的应用程序。
本说明书实施例中,通过每个第二应用程序之间的调用,实现将用户身份标识放置在每个第二应用程序的应用容器的线程本地变量中,以便后续方便进行高效的数据使用。
具体实施时,所述基于所述数据标识和所述线程本地变量中的所述用户身份标识获取对应的数据,包括:
所述第三应用程序从应用容器的线程本地变量中,获取所述用户身份标识;以及从所述远程过程调用数据包获取数据标识;
基于所述用户身份标识和所述数据标识获取对应的数据。
具体的,后续使用时,第三应用程序可以直接从其应用容器的线程本地变量中,获取所述用户身份标识,从远程过程调用数据包获取数据标识,基于用户身份标识和数据标识从对应的数据库中获取到准确的数据。
此外,为了保证发送数据获取请求的请求方为安全数据获取方,第三应用程序在接收到该用户身份标识之后还需要对用户身份标识进行验证,以保证数据的安全性,具体实现方式如下所述:
所述基于所述用户身份标识和所述数据标识获取对应的数据,包括:
所述第三应用程序对所述用户身份标识进行验证,在验证通过的情况下,基于所述数据标识从数据库中获取与所述数据标识对应的数据。
其中,第三应用程序的具体验证方式可以有多种,例如用户身份标识匹配表等,本说明书对此不作任何限定。
本说明书另一实施例中,所述基于所述数据标识从数据库中获取与所述数据标识对应的数据之后,还包括:
所述第三应用程序将基于所述数据标识从数据库中获取与所述数据标识对应的数据,发送至所述第二应用程序,所述第二应用程序接收到所述数据之后再发送至所述第一应用程序。
具体的,第三应用程序在对用户身份进行安全验证,且基于数据标识获取到对应的数据之后,将数据返回至第二应用程序,第二应用程序再将数据返回至第一应用程序,实现完整的数据调用,提升用户体验。
本说明书实施例提供的所述数据处理方法,将数据处理的操作过程从应用中转移到每个应用对应的应用容器中,应用容器每次接收到其他应用的远程过程调用时,会将远程过程调用数据包中的用户身份标识自动绑定到当前的线程本地变量中,以便在进行下一次远程过程调用的时候,会自动将线程本地变量中绑定的用户身份标识取出来放入远程过程调用数据包传给下一个节点(即应用程序),整个过程应用容器中运行的应用无需做任何改造,需要使用用户身份标识的时候可以随时从对应的应用容器的线程本地变量中取出使用,可以将用户身份标识简单高效地传输到应用调用链路的各个应用节点,实现给用户数据权限管理提供技术支持。
下述结合附图4,以本说明书提供的数据处理方法在RPC调用链路的应用为例,对所述数据处理方法进行进一步说明。其中,图4示出了本说明书一个实施例提供的一种数据处理方法的处理过程示意图。
图1的RPC调用链路中包括应用程序1(app1)、应用程序2(app2)、应用程序3(app3)、应用程序4(app4)四个应用程序。
具体的,app1接收携带有数据标识和用户身份标识的数据获取请求,基于数据获取请求确定数据调用链路,将用户身份标识放置在app1的应用容器的线程本地变量中,并基于数据标识和用户身份标识生成远程过程调用数据包,且向app2发送远程过程调用请求,其中,远程过程调用请求中携带有RPC数据包;
app2接收到该远程过程调用请求后,从该远程过程调用请求携带的RPC数据包中获取用户身份标识,并将用户身份标识放置app2的应用容器的线程本地变量中,且向app3发送远程过程调用请求,其中,该远程过程调用请求中仍旧携带有该RPC数据包;
app3接收到该远程过程调用请求后,从该远程过程调用请求携带的RPC数据包中获取用户身份标识,并将用户身份标识放置app3的应用容器的线程本地变量中,且向app4发送远程过程调用请求,其中,该远程过程调用请求中仍旧携带有该RPC数据包;
app4接收到该远程过程调用请求后,从该远程过程调用请求携带的RPC数据包中获取用户身份标识,并将用户身份标识放置在app4的应用容器的线程本地变量中;此外,app4从应用容器的线程本地变量中,获取用户身份标识,对用户身份进行验证,在验证通过的情况下,基于从远程过程调用数据包获取的数据标识获取到对应的数据。
具体的,本说明书实施例提供的所述数据处理方法在进行用户身份数据传递,进行应用程序间的RPC调用时,通过将要传递的用户身份数据放在RPC协议的附件头(attachment header)中进行传输,被调用的应用程序的应用容器在接收到RPC调用请求后,会把这部分数据从附件头中取出来,并且放入当前线程本地变量(ThreadLocal)中,再进行下一次RPC调用的时候,该应用程序的应用容器会把这部分数据从线程本地变量中取出来,再通过RPC协议附件头传输给下一个节点,下一个节点重复上述过程,如此传输数据,应用程序代码本身不需要做任何修改。需用使用这部分数据的应用程序,随时都可以从线程本地变量中取出数据来使用。
本说明书实施例提供的所述数据处理方法,在应用RPC调用过程中,不依赖方法参数传递数据,而是靠应用程序的应用容器自动从RPC数据包获取和发送数据,在应用程序不需要进行改造的情况下,完成数据在应用程序调用链路中的各个应用程序间自动传输;并且通过将用户身份标识数据传输到底层基础应用,从而让底层基础应用具备数据权限管理能力,提升使用体验。
与上述方法实施例相对应,本说明书还提供了数据处理装置实施例,图5示出了本说明书一个实施例提供的一种数据处理装置的结构示意图。如图5所示,该装置包括:
请求接收模块502,被配置为接收携带有数据标识和用户身份标识的数据获取请求,基于所述数据获取请求确定数据调用链路,其中,所述数据调用链路中包括至少三个应用程序;
数据获取模块504,被配置为将所述用户身份标识放置在每个应用程序的应用容器的线程本地变量中,并基于所述数据标识和所述线程本地变量中的所述用户身份标识获取对应的数据。
可选地,所述至少三个应用程序包括第一应用程序、第二应用程序、第三应用程序;
相应地,所述请求接收模块502,进一步被配置为:
所述第一应用程序接收携带有数据标识和用户身份标识的数据获取请求。
可选地,所述数据获取模块504,进一步被配置为:
所述第一应用程序将所述用户身份标识放置在所述第一应用程序的应用容器的线程本地变量中,并基于所述数据标识和所述用户身份标识生成远程过程调用数据包,且向所述第二应用程序发送远程过程调用请求,其中,所述远程过程调用请求中携带有远程过程调用数据包;
所述第二应用程序从所述远程过程调用数据包中获取所述用户身份标识,并将所述用户身份标识放置在所述第二应用程序的应用容器的线程本地变量中,且向所述第三应用程序发送远程过程调用请求,其中,所述远程过程调用请求中携带有远程过程调用数据包;
所述第三应用程序从所述远程过程调用数据包中获取所述用户身份标识,并将所述用户身份标识放置在所述第三应用程序的应用容器的线程本地变量中。
可选地,所述第二应用程序为i个,i∈[1,n],且i为正整数;
相应地,所述第二应用程序从所述远程过程调用数据包中获取所述用户身份标识,并将所述用户身份标识放置在所述第二应用程序的应用容器的线程本地变量中,且向所述第三应用程序发送远程过程调用请求,包括:
S2、所述第i个第二应用程序从所述远程过程调用数据包中获取所述用户身份标识,并将所述用户身份标识放置在所述第i个第二应用程序的应用容器的线程本地变量中;
S4、判断i是否大于n,
若是,则向所述第三应用程序发送远程过程调用请求;
若否,则将i自增1,继续执行步骤S2。
可选地,所述数据获取模块504,进一步被配置为:
所述第三应用程序从应用容器的线程本地变量中,获取所述用户身份标识;以及从所述远程过程调用数据包获取数据标识;
基于所述用户身份标识和所述数据标识获取对应的数据。
可选地,所述数据获取模块504,进一步被配置为:
所述第三应用程序对所述用户身份标识进行验证,在验证通过的情况下,基于所述数据标识从数据库中获取与所述数据标识对应的数据。
可选地,所述装置,还包括:
数据发送模块,被配置为所述第三应用程序将基于所述数据标识从数据库中获取与所述数据标识对应的数据,发送至所述第二应用程序,所述第二应用程序接收到所述数据之后再发送至所述第一应用程序。
可选地,所述数据调用链路通过远程过程调用协议实现数据调用。
本说明书实施例提供的所述数据处理装置,将数据处理的操作过程从应用中转移到每个应用对应的应用容器中,应用容器每次接收到其他应用的远程过程调用时,会将远程过程调用数据包中的用户身份标识自动绑定到当前的线程本地变量中,以便在进行下一次远程过程调用的时候,会自动将线程本地变量中绑定的用户身份标识取出来放入远程过程调用数据包传给下一个节点,整个过程应用容器中运行的应用无需做任何改造,需要使用用户身份标识的时候可以随时从对应的应用容器的线程本地变量中取出使用,可以将用户身份标识简单高效地传输到应用调用链路的各个应用节点,实现给用户数据权限管理提供技术支持。
上述为本实施例的一种数据处理装置的示意性方案。需要说明的是,该数据处理装置的技术方案与上述的数据处理方法的技术方案属于同一构思,数据处理装置的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
图6示出了根据本说明书一个实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
其中,处理器620用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述数据处理方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据处理方法的技术方案的描述。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书实施例的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书实施例的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

Claims (11)

1.一种数据处理方法,包括:
接收携带有数据标识和用户身份标识的数据获取请求,基于所述数据获取请求确定数据调用链路,其中,所述数据调用链路中包括至少三个应用程序;
将所述用户身份标识放置在每个应用程序的应用容器的线程本地变量中,并基于所述数据标识和所述线程本地变量中的所述用户身份标识获取对应的数据。
2.根据权利要求1所述的数据处理方法,所述至少三个应用程序包括第一应用程序、第二应用程序、第三应用程序;
相应地,所述接收携带有数据标识和用户身份标识的数据获取请求,包括:
所述第一应用程序接收携带有数据标识和用户身份标识的数据获取请求。
3.根据权利要求2所述的数据处理方法,所述将所述用户身份标识放置在每个应用程序的应用容器的线程本地变量中,包括:
所述第一应用程序将所述用户身份标识放置在所述第一应用程序的应用容器的线程本地变量中,并基于所述数据标识和所述用户身份标识生成远程过程调用数据包,且向所述第二应用程序发送远程过程调用请求,其中,所述远程过程调用请求中携带有远程过程调用数据包;
所述第二应用程序从所述远程过程调用数据包中获取所述用户身份标识,并将所述用户身份标识放置在所述第二应用程序的应用容器的线程本地变量中,且向所述第三应用程序发送远程过程调用请求,其中,所述远程过程调用请求中携带有远程过程调用数据包;
所述第三应用程序从所述远程过程调用数据包中获取所述用户身份标识,并将所述用户身份标识放置在所述第三应用程序的应用容器的线程本地变量中。
4.根据权利要求3所述的数据处理方法,所述第二应用程序为i个,i∈[1,n],且i为正整数;
相应地,所述第二应用程序从所述远程过程调用数据包中获取所述用户身份标识,并将所述用户身份标识放置在所述第二应用程序的应用容器的线程本地变量中,且向所述第三应用程序发送远程过程调用请求,包括:
S2、第i个第二应用程序从所述远程过程调用数据包中获取所述用户身份标识,并将所述用户身份标识放置在所述第i个第二应用程序的应用容器的线程本地变量中;
S4、判断i是否大于n,
若是,则向所述第三应用程序发送远程过程调用请求;
若否,则将i自增1,并向所述第i应用程序发送远程过程调用请求且继续执行步骤S2,其中,所述远程过程调用请求中携带有远程过程调用数据包。
5.根据权利要求3所述的数据处理方法,所述基于所述数据标识和所述线程本地变量中的所述用户身份标识获取对应的数据,包括:
所述第三应用程序从应用容器的线程本地变量中,获取所述用户身份标识;以及从所述远程过程调用数据包获取数据标识;
基于所述用户身份标识和所述数据标识获取对应的数据。
6.根据权利要求5所述的数据处理方法,所述基于所述用户身份标识和所述数据标识获取对应的数据,包括:
所述第三应用程序对所述用户身份标识进行验证,在验证通过的情况下,基于所述数据标识从数据库中获取与所述数据标识对应的数据。
7.根据权利要求6所述的数据处理方法,所述基于所述数据标识从数据库中获取与所述数据标识对应的数据之后,还包括:
所述第三应用程序将基于所述数据标识从数据库中获取与所述数据标识对应的数据,发送至所述第二应用程序,所述第二应用程序接收到所述数据之后再发送至所述第一应用程序。
8.根据权利要求1-7任意一项所述的数据处理方法,所述数据调用链路通过远程过程调用协议实现数据调用。
9.一种数据处理装置,包括:
请求接收模块,被配置为接收携带有数据标识和用户身份标识的数据获取请求,基于所述数据获取请求确定数据调用链路,其中,所述数据调用链路中包括至少三个应用程序;
数据获取模块,被配置为将所述用户身份标识放置在每个应用程序的应用容器的线程本地变量中,并基于所述数据标识和所述线程本地变量中的所述用户身份标识获取对应的数据。
10.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至8任意一项所述数据处理方法的步骤。
11.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至8任意一项所述数据处理方法的步骤。
CN202110253658.3A 2021-03-09 2021-03-09 数据处理方法以及装置 Active CN112835731B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110253658.3A CN112835731B (zh) 2021-03-09 2021-03-09 数据处理方法以及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110253658.3A CN112835731B (zh) 2021-03-09 2021-03-09 数据处理方法以及装置

Publications (2)

Publication Number Publication Date
CN112835731A true CN112835731A (zh) 2021-05-25
CN112835731B CN112835731B (zh) 2024-06-28

Family

ID=75929795

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110253658.3A Active CN112835731B (zh) 2021-03-09 2021-03-09 数据处理方法以及装置

Country Status (1)

Country Link
CN (1) CN112835731B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140089419A1 (en) * 2012-09-22 2014-03-27 Deep River Ventures, Llc Methods, Systems, and Program Products for Processing a Data Object Identification Request in a Communication
CN108933713A (zh) * 2018-07-20 2018-12-04 阿里巴巴集团控股有限公司 基于影子链路实现沙箱调试的方法、装置及业务服务器
US20190158566A1 (en) * 2017-11-22 2019-05-23 International Business Machines Corporation Asynchronously reading http responses in separate process
WO2019127267A1 (zh) * 2017-12-28 2019-07-04 成都天逸星辰信息技术服务有限公司 一种数据处理方法和系统
US20190379650A1 (en) * 2018-06-08 2019-12-12 Pivotal Software, Inc. Reactive programming subscription context
US20200272912A1 (en) * 2019-02-27 2020-08-27 Hcl Technologies Limited System for allowing a secure access to a microservice
CN111639319A (zh) * 2020-06-02 2020-09-08 北京字节跳动网络技术有限公司 用户资源授权方法、装置及计算机可读存储介质
US20200358878A1 (en) * 2019-04-30 2020-11-12 Reliance Jio Infocomm Limited Method and system for routing user data traffic from an edge device to a network entity
CN112015769A (zh) * 2020-09-01 2020-12-01 平安付科技服务有限公司 数据处理方法、装置、计算机设备及存储介质
US20210014211A1 (en) * 2019-07-10 2021-01-14 Advanced New Technologies Co., Ltd. Secure account modification
CN112272169A (zh) * 2020-10-16 2021-01-26 中国联合网络通信集团有限公司 一种用户身份的确定方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140089419A1 (en) * 2012-09-22 2014-03-27 Deep River Ventures, Llc Methods, Systems, and Program Products for Processing a Data Object Identification Request in a Communication
US20190158566A1 (en) * 2017-11-22 2019-05-23 International Business Machines Corporation Asynchronously reading http responses in separate process
WO2019127267A1 (zh) * 2017-12-28 2019-07-04 成都天逸星辰信息技术服务有限公司 一种数据处理方法和系统
US20190379650A1 (en) * 2018-06-08 2019-12-12 Pivotal Software, Inc. Reactive programming subscription context
CN108933713A (zh) * 2018-07-20 2018-12-04 阿里巴巴集团控股有限公司 基于影子链路实现沙箱调试的方法、装置及业务服务器
US20200272912A1 (en) * 2019-02-27 2020-08-27 Hcl Technologies Limited System for allowing a secure access to a microservice
US20200358878A1 (en) * 2019-04-30 2020-11-12 Reliance Jio Infocomm Limited Method and system for routing user data traffic from an edge device to a network entity
US20210014211A1 (en) * 2019-07-10 2021-01-14 Advanced New Technologies Co., Ltd. Secure account modification
CN111639319A (zh) * 2020-06-02 2020-09-08 北京字节跳动网络技术有限公司 用户资源授权方法、装置及计算机可读存储介质
CN112015769A (zh) * 2020-09-01 2020-12-01 平安付科技服务有限公司 数据处理方法、装置、计算机设备及存储介质
CN112272169A (zh) * 2020-10-16 2021-01-26 中国联合网络通信集团有限公司 一种用户身份的确定方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
胡泳霞;: "基于内存模型的Java并发编程", 电子测试, no. 13 *

Also Published As

Publication number Publication date
CN112835731B (zh) 2024-06-28

Similar Documents

Publication Publication Date Title
CN103873692B (zh) 一种分享资源的方法、装置及系统
US11057827B1 (en) Provisioning an embedded universal integrated circuit card (eUICC) of a mobile communication device
CN111538605B (zh) 一种分布式数据访问层中间件及命令执行方法和装置
CN113034154B (zh) 身份认证方法、实现免登授权组件的方法及各自装置
WO2017101186A1 (zh) 用于为用户设备的应用建立无线连接的方法
US20190018657A1 (en) Techniques to configure a web-based application for bot configuration
CN112486074A (zh) 数据处理系统、方法及装置
JP2024525140A (ja) データインタラクションのための方法および装置
CN115396528A (zh) 基于协议族的quic数据传输方法及装置
CN104836800A (zh) 一种服务质量控制的方法、设备及系统
CN110222280A (zh) 用于分享的数据处理方法及装置
CN113422739B (zh) 数据传输方法、发送端及数据传输系统
WO2022134830A1 (zh) 区块节点数据的处理方法、装置、计算机设备和存储介质
CN114221836A (zh) 数据处理方法及装置
CN106357654A (zh) 远程过程调用方法、装置及通信系统
CN113254227B (zh) 跨数据中心的远程方法调用的方法、系统
CN112835731A (zh) 数据处理方法以及装置
CN114598739B (zh) 基于云应用的通信通道的处理方法、装置及系统
CN114461358A (zh) 服务处理方法及系统
CN112671913B (zh) 服务注册方法及装置
CN111866029A (zh) 接入服务器认证下线方法和系统
CN114422456B (zh) 任务处理方法以及装置
CN118337846B (zh) 分布式网络的代理通信方法、装置、系统、设备及介质
CN116010529B (zh) 数据处理方法及系统
WO2023083174A1 (zh) 签约更新的方法、装置、网元及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant