CN108833500B - 服务调用方法、服务提供方法、数据传递方法和服务器 - Google Patents

服务调用方法、服务提供方法、数据传递方法和服务器 Download PDF

Info

Publication number
CN108833500B
CN108833500B CN201810527305.6A CN201810527305A CN108833500B CN 108833500 B CN108833500 B CN 108833500B CN 201810527305 A CN201810527305 A CN 201810527305A CN 108833500 B CN108833500 B CN 108833500B
Authority
CN
China
Prior art keywords
service
cache
data
context
index data
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.)
Active
Application number
CN201810527305.6A
Other languages
English (en)
Other versions
CN108833500A (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.)
Advanced Nova Technology Singapore Holdings Ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201810527305.6A priority Critical patent/CN108833500B/zh
Publication of CN108833500A publication Critical patent/CN108833500A/zh
Application granted granted Critical
Publication of CN108833500B publication Critical patent/CN108833500B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供一种服务调用方法、服务提供方法、数据传递方法和服务器。包括:获取服务调用请求和与服务调用请求关联的服务上下文,并响应于服务调用请求将服务上下文存储至缓存中;将服务上下文在缓存中的索引数据和服务调用请求传递至服务提供方,其中,服务提供方根据索引数据从缓存中获取所述服务上下文,并根据服务上下文返回服务;接收所述服务提供方返回的服务。在本申请实施例中,通过将服务上下文与服务调用请求分离,仅将服务上下文在缓存中的索引数据传递给服务提供方,而不传递服务上下文本身,减少了数据传输量,从而解决了现有方法存在的对资源消耗量大、效率低的技术问题,达到高效、低成本地实现服务调用。

Description

服务调用方法、服务提供方法、数据传递方法和服务器
技术领域
本申请属于互联网技术领域,尤其涉及一种服务调用方法、服务提供方法、数据传递方法和服务器。
背景技术
在服务调用的过程中,通常会涉及到多个对象(或称系统)之间的服务调用。例如,可以参阅图1所示,对象A在调用对象B的服务时,往往不能通过对象A直接调用到对象B的服务,而需要按照规则逐级进行调用。具体的,对象A需要先通过调用请求调用对象A的下一级对象,即对象C,再由对象C通过调用请求调用对象C的下一级对象,即对象D,然后由对象D通过调用请求调用到对象B,从而完成对象A向对象B的服务调用。此外,为了能够成功地调用到对象B的服务,往往还需要将与对象A的调用请求关联的参数数据(例如服务上下文)同时传递给对象B。
现有的服务调用方法,大多是将对象A的参数数据与调用请求同时进行逐级传递。例如,对象A将参数数据连同调用请求一同传递给了对象C,对象C再将参数数据连同调用请求一同传递给对象D,对象D再将参数数据连同调用请求一同传递给对象B,从而将与对象A的调用请求关联的参数数据传递到了对象B。由上可见,每一次的传递都需要同时传递参数数据和调用请求,且上述参数数据的数据量往往还相对较大,而中间对象(例如对象C和对象D)往往并不需要到使用上述参数数据。因此,现有的方法在具体实施时,往往存在对资源消耗量大、处理效率低的问题。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本申请目的在于提供一种服务调用方法、服务提供方法、数据传递方法和服务器,仅将服务上下文在缓存中的索引数据传递给服务提供方,而不传递服务上下文本身,减少了数据传输量,从而解决了现有方法存在的对资源消耗量大、处理效率低的技术问题,达到高效、低成本地实现服务调用。
本申请提供的一种服务调用方法、服务提供方法、数据传递方法和服务器是这样实现的:
一种服务调用方法,包括:获取服务调用请求和与所述服务调用请求关联的服务上下文,并响应于所述服务调用请求将所述服务上下文存储至缓存中;将所述服务上下文在所述缓存中的索引数据和所述服务调用请求传递至服务提供方,其中,所述服务提供方根据所述索引数据从所述缓存中获取所述服务上下文,并根据所述服务上下文返回服务;接收所述服务提供方返回的服务。
一种服务提供方法,包括:接收服务调用请求和索引数据,其中,所述索引数据用于指示存储在缓存中的与服务调用方的服务调用请求关联的服务上下文;响应于所述服务调用请求,根据所述索引数据从所述缓存中获取与服务调用方的服务调用请求关联的服务上下文;根据所述服务上下文向所述服务调用方提供服务。
一种数据传递方法,包括:获取第一数据和与所述第一数据关联的第二数据,并将所述第二数据存储至缓存中;将所述第二数据在所述缓存中的索引数据和所述第一数据传递至目标对象,其中,所述目标对象根据所述索引数据从所述缓存中获取所述第二数据。
一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现获取服务调用请求和与所述服务调用请求关联的服务上下文,并响应于所述服务调用请求将所述服务上下文存储至缓存中;将所述服务上下文在所述缓存中的索引数据和所述服务调用请求传递至服务提供方,其中,所述服务提供方根据所述索引数据从所述缓存中获取所述服务上下文,并根据所述服务上下文返回服务;接收所述服务提供方返回的服务。
一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现获取服务调用请求和与所述服务调用请求关联的服务上下文,并响应于所述服务调用请求将所述服务上下文存储至缓存中;将所述服务上下文在所述缓存中的索引数据和所述服务调用请求传递至服务提供方,其中,所述服务提供方根据所述索引数据从所述缓存中获取所述服务上下文,并根据所述服务上下文返回服务;接收所述服务提供方返回的服务。
本申请提供的一种服务调用方法、服务提供方法、数据传递方法和服务器,通过将与服务调用方的服务调用请求关联的服务上下文存储在缓存中,仅将服务上下文在缓存中的索引数据传递给服务提供方,而不传递服务上下文本身,减少了数据传输量,避免了现有方法由于直接将服务上下文和服务调用请求同时进行逐级传递造成对资源的消耗,从而解决了现有方法存在的对资源消耗量大、处理效率低的技术问题,达到高效、低成本地实现服务调用。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是利用现有方法进行服务调用的一个过程示意图;
图2是在一个场景示例中,应用本申请实施例提供的服务调用方法的一种示意图;
图3是在一个场景示例中,应用本申请实施例提供的服务调用方法的另一种示意图;
图4是本申请实施例提供的服务调用方法的流程示意图;
图5是本申请实施例提供的服务提供方法的流程示意图;
图6是本申请实施例提供的数据传递方法的流程示意图;
图7是本申请实施例提供的服务器的结构示意图;
图8是本申请实施例提供的服务调用装置的结构示意图;
图9是本申请实施例提供的服务提供装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
考虑到现有方法在进行服务调用的过程中,通常需要服务调用方按照预设规则逐级向下一级对象传递服务调用请求和与服务调用方的服务调用请求关联的服务上下文直到服务提供方。但是,在服务调用的过程中,除了服务提供方需要使用到上述服务上下文外,服务调用方和服务提供方之间的中间对象,往往并不需要使用到服务上下文。而上述服务上下文往往包含了较多的相关信息,导致所传递的服务上下文的数据量相对较大;相应地,基于现有方法逐级传递服务上下文对资源的消耗也相对较多。因此,现有方法在具体实施时,才会出现对资源消耗量大、效率低的技术问题的问题。
针对产生上述问题的根本原因,本申请考虑只要保证服务提供方在接收到逐级传递的服务调用请求后能够得到与服务调用方的服务调用请求关联的服务上下文即可,而在调用过程中的其他中间对象实际上并不需要使用到数据量相对较大的服务上下文,因此在传递的过程中将服务上下文与服务调用请求分离。具体的,可以从服务提供方开始将服务上下文存储在缓存(例如分布式缓存)中,在逐级传递的过程中仅传递服务调用请求和指示存储在缓存中的服务上下文的索引数据,服务提供方在接收到索引数据后可以根据索引数据从缓存中取出服务上下文,以完成服务的提供。这样可以有效地避免由于每次都要逐级传递服务上下文,对资源造成的消耗,从而解决了现有方法存在的对资源消耗量大、效率低的技术问题,达到高效、低成本地实现服务调用。
在一个场景示例中,可以参阅图2所示,应用本申请实施例提供的服务调用方法进行高效、低成本的服务调用。
在本实施例中,A平台(即服务调用方)需要调用B平台(即服务提供方)的数据服务(例如账户查询服务等),由于A平台与B平台之间的数据服务的调用涉及到其他多个中间对象(例如网关、校验系统等)。因此,按照预设规则,A平台需要逐级地通过调用中间对象C,再由中间对象C调用中间对象D,再由中间对象D调用B平台,从而完成对B平台的数据服务的调用。而B平台在为A平台提供所需要的数据服务时,还需要结合与A平台的数据服务调用请求关联的服务上下文才能完成相应的数据服务的调用。
其中,上述服务上下文(service context)是一种有服务调用方提供,需要随服务调用(或服务调用请求)一同传输至服务提供方,以便服务提供方提供相应服务的属性合集。具体的,上述服务上下文可以包括:环境信息、用户身份信息和支付方式信息等多种信息,数据量相对较大。因此,如果按照现有方法在每一次逐级传递服务调用的过程中都要在传递一次服务上下文,势必会对资源造成浪费,影响整体的调用效率。当然,需要说明的是,上述所列举的服务上下文所包含的信息只是一种为了更好地说明本申请实施方式的示意性说明。具体实施时,根据具体的应用场景,上述服务上下文也可以是包含其他类型信息的参数数据。对此,本申请不作限定。
在本实施例中,应用本申请实施例提供的服务调用方法,具体的,可以先获取A平台的数据服务调用请求和与A平台的数据服务调用请求关联的服务上下文,并将该服务上下文存储在缓存中,将服务上下文在该缓存中的索引数据和A平台的数据服务调用请求一并传递给下一级的中间对象C。
其中,上述索引数据具体可以是用于指示出存储在缓存中的服务上下文的标签数据,该标签数据与存储在缓存中的服务上下文对应。例如,可以是存储在缓存(例如基于NoSQL数据库的缓存)中生成对应的key,将上述key作为索引数据。当然,需要说明的是,上述所列举的索引数据只是为了更好地说明本申请实施方式。具体实施时,也可以根据具体情况选择其他合适的标签数据作为上述索引数据。对此,本申请不作限定。
其中,在将服务上下文存储至缓存中时,具体可以设置Restful接口和上下文服务组件。其中,上述Restful(Representational State Transfer)接口具体可以是一种架构样式的网络系统的数据接口。上述上下文服务组件具体可以是一种提供存储、读取服务的程序。具体实施时,可以利用上下文服务组件通过所提供的Restful接口将上述服务上下文存储至缓存中。当然,需要说明的是,上述所列举的利用上下文服务组件通过Restful接口将服务上下文存储至缓存中只是一种示意性说明的。具体实施时,也可以根据具体的场景选择其他方式实现将服务上下文存储至缓存中。
中间对象C不需要使用上述服务上下文,在接收到A平台的数据服务调用请求后触发对下一级即中间对象D的数据服务调用,进而中间对象C可以将索引数据和数据服务调用请求一并传递给下一级的中间对象D。与中间对象C类似,中间对象D也不需要使用上述服务上下文,在接收到中间对象C的数据服务调用请求后会触发对其下一级即B平台的数据服务调用,进而中间对象D可以将索引数据和数据服务调用请求一并传递给下一级的B平台。
B平台在接收到来自中间对象D的数据服务调用请求后,在向A平台提供相应的具体数据服务时,需要使用到与A平台的数据服务调用请求关联的服务上下文。这时,B平台可以根据中间对象D传递的索引数据从缓存中获取与索引数据对应的服务上下文,进而可以根据上述服务上下文为A平台提供相应的数据服务。
具体的,B平台可以通过所提供的Restful接口,根据索引数据,将之前存储在缓存中的服务提取出来。当然,需要说明的是,上述所列举的通过Restful接口从缓存中获取服务上下文只是一种示意性说明的。具体实施时,也可以根据具体的场景选择其他方式实现从缓存中获取服务上下文。
在另一个场景示例中,为了保证服务上下文的内容不被第三方轻易获取,提高服务上下文的安全性和保密性,在具体实施时,在将与A平台的数据服务的调用请求关联的服务上下文存储至缓存之前,可以先服务上下文进行二进制化处理,即将服务上下文转换为10流中,再将二进制化处理后的服务上下文存储至缓存中。这样,相对于没有进行二进制化处理的服务上下文,二进制化处理后的服务上下文不再是“透明”的了,即不再是除服务调用方和服务提供方以外的第三方能够直接读取的内容数据。这样可以提高服务上下文的安全性和保密性。对应的,在B平台接收到用于指示存储在缓存中的服务上下文的索引数据后,B平台可以根据索引数据从缓存中获取二进制化处理后的服务上下文,这时所获取的服务上下文是10流形式的数据,无法直接读取。B平台可以对上述二进制化处理后的服务上下文进行反二进制化,即将服务上下文从10流中恢复出来,得到可以读取的服务上下文,以便后续使用。当然,需要说明的是,上述所列举的二进制化处理和反二进制化处理分别是序列化处理和反序列化处理的示意性说明。具体实施时,也可以根据具体情况和安全性要求,选择其他的序列化方式和反序列化方式进行相应处理。对此,本申请不作限定。
为了进一步提高存储在缓存中的服务上下文的安全性和保密性,参阅图3,在将与A平台的数据服务调用请求相关联的服务上下文存储至缓存之前,还可以先对上述服务上下文进行加密处理。其中,上述加密处理可以是对称加密,也可以是非对称加密。对于加密处理的具体方式,本申请不作限定。这样可以进一步提高服务上下文的安全性和保密性,以为服务上下文提供更好的保护。需要说明的是,上述加密处理具体可以是A平台自行进行的,并且在加密完毕后,根据A平台具体的加密方式生成对应的秘钥,并将秘钥传递给B平台。B平台在需要使用服务上下文时,可以根据秘钥对加密后的服务上下文进行解密处理,以读取服务上下文的具体内容。而除上述A平台和B平台以外的第三方由于没有秘钥,无法进行解密处理,因此无法读取服务上下文中的具体内容。
在本实施例中,还需要补充的是,再将加密后的服务上下文保存至缓存中,并获取用于指示缓存中的服务上下文的索引数据时,可以通过在索引数据中设置参数以表征存储在缓存中的服务上下文是加密后的数据。这样B平台在接收到索引数据后,可以先对索引数据上的参数进行解读,以确定存储在缓存中的与A平台的数据服务调用关联的服务上下文是否是加密后的数据。在确定该服务上下文是加密后的数据后,再搜索A平台提供的秘钥,利用秘钥对加密后的数据进行解密,完成服务上下文的获取。具体的,例如在存储服务上下文时,可以利用encrypt参数表征所存储的服务上下文是否是加密后的数据。当然,需要说明的是,上述所列举的用于表征加密的参数只是一种示意性说明。具体实施时,也可以根据具体情况选择其他参数表征存储在缓存中的服务上下文的加密状态。对此,本申请不作限定。
在另一个场景示例中,为了便于B平台能够更加高效地获取存储在缓存中的与A平台的数据服务调用请求关联的服务上下文。具体实施时,在将服务上下文存储至缓存中,并获取用于指示缓存中的服务上下文的索引数据时,可以记录下上述服务上下文具体的存储地址,即获取存储服务上下文的具体的地址信息,并将该地址信息连通索引数据一起逐级传递;或者让索引数据携带上述地址信息,逐级传递下去。这样B平台在得到了索引数据后,可以先检索引数据中是否携带有地址信息。在确定索引数据携带有地址信息的情况下,获取地址信息,并根据地址信息确定出服务上下文存储在缓存中的具体位置,进而可以直接从存储有服务上下文的位置上提取服务上下文,提高获取服务上下文的速度,进一步提高了调用效率。
由上述场景示例可见,本申请提供的服务调用方法,由于通过将与服务调用方的服务调用请求关联的服务上下文存储在缓存中,将服务上下文与服务调用请求分离,仅将用于指示存储在缓存中的服务上下文的索引数据与服务调用请求逐级传递至服务提供方,避免了现有方法由于直接将服务上下文和服务调用请求同时进行逐级传递造成对资源的消耗,从而解决了现有方法存在的对资源消耗量大、处理效率低的技术问题,达到高效、低成本地实现服务调用;还通过在将服务上下文存储在缓存前,分别对服务上下文进行加密处理和二进制化处理,将处理后的服务上下文存储至缓存中,提高了存储在缓存中的服务上下文的安全性和保密性;还通过在索引数据上设置表征服务上下文存储位置的地址信息,便于服务提供方可以根据地址信息直接获取服务上下文,进一步提高了处理效率。
参阅图4,本申请实施例提供了一种服务调用方法,其中,该方法具体应用于服务调用方一侧。具体实施时,该方法可以包括以下内容:
S41:获取服务调用请求和与所述服务调用请求关联的服务上下文,并响应于所述服务调用请求将所述服务上下文存储至缓存中;
S42:将所述服务上下文在所述缓存中的索引数据和所述服务调用请求传递至服务提供方,其中,所述服务提供方根据所述索引数据从所述缓存中获取所述服务上下文,并根据所述服务上下文返回服务;
S43:接收所述服务提供方返回的服务。
在本实施方式中,上述服务调用方具体可以理解为需要调用相应服务的系统或对象。上述服务提供方具体可以理解为能够为服务调用方提供所需要的相应服务的系统或对象。上述服务调用请求具体可以理解为服务调用方向服务提供方请求提供相应的服务调用所发出的请求数据。上述服务上下文具体可以理解为由服务调用方提供,需要随服务调用(服务调用请求)一同传输至服务提供方,以便服务提供方提供相应服务的属性合集。
其中,上述服务上下文可以包括:环境信息、用户身份信息和支付方式信息等多种信息,数据量相对较大。通常,服务提供方需要根据与服务调用方的服务调用请求关联的服务上下文才能为服务调用方提供具体的服务。当然,需要说明的是,上述所列举的服务上下文只是为了更好地说明本申请实施方式的示意性说明。对于服务上下文所包含的具体内容,本申请不作限定。
在本实施方式中,需要说明的是,通常在服务调用方与服务提供方之间的链路上会存在多个中间对象(或中间系统)。而基于现有的调用规则,服务调用方往往不能直接越过中间对象直接向服务提供方发送服务调用请求和服务上下文的。服务调用方要调用服务提供方的相应服务,只能通过逐级调用下一级的服务,最终将服务调用方的服务调用请求传递至服务提供方。例如1号对象需要调用3号对象的服务,就需要先调用2号对象,再由2号对象调用3号对象,从而完成对3号对象服务的调用。
在本实施方式中,为了方便服务上下文的存储和读取,具体实施时,上述缓存可以是一种基于分布式缓存技术的缓存,例如基于K/V存储的分布式缓存。具体的,上述缓存可以包括以下至少之一:基于关系型数据库(例如Relational Database ManagementSystem,RDBMS)的缓存、基于HBase(Hadoop Database,一种Hadoop数据库)的缓存、基于Cassandra(一种混合型的非关系的数据库)的缓存、基于Ignite(一种采用h2作为内存数据库)的缓存、基于Redis(一种key-value存储的数据库)的缓存等等。当然,需要说明的是,上述所列举的缓存只是一种示意性说明。具体实施时,也可以根据具体的应用场景和要求选择使用除上述所列举的缓存以外的其他类型的缓存,例如,还可以是基于Memcached(一种分布式的快取系统数据库)的缓存等。对此,本申请不作限定。
在本实施方式中,上述索引数据具体可以理解为是一种能够指示存储在缓存中的服务上下文的索引数据。具体的,例如上述索引数据可以是key值。当然,上述所列举的索引数据只是一种示意性说明。不当构成对本申请实施方式的不当限定。
在本实施方式中,具体实施时,可以在服务调用方一侧,先获取服务调用方的服务调用请求和与所述服务调用方的服务调用请求关联的服务上下文;并根据所述服务调用请求先将所述服务上下文存储至缓存中,得到用于指示存储在缓存中的服务上下文的索引数据;进而可以将索引数据而不是服务上下文连通服务调用请求传递给下一级的对象系统,再由下一级的对象系统逐级传递给服务提供方。服务提供方在接收到服务调用请求和索引数据后,可以根据索引数据获取存储在缓存中的服务上下文,继而可以根据服务调用请求和服务上下文为服务调用方提供对应的服务。
在本实施方式中,为了能够实现将所述服务上下文存储至缓存中,设置一个用于数据存储读取的接口,例如,Restful接口等。这样,具体实施时,还可以设置一种能够提供存储、读取服务的上下文服务组件。这样可以利用该组件通过上述接口将服务上下文存储至缓存中。例如,具体实施时,可以通输入代码将服务上下文存储至缓存中。其中,上述代码的形式可以为:“POST/contexts{<em>payload</em>}?encrypt=true/false:”。代码中的POST可以用于表示存储,payload可以用于保存服务上下文的具体内容。再按照上述方式将服务上下文保存至缓存之后,会返回一个key值,可以将该key值作为索引数据连同服务调用请求传递至下一级对象,逐级传递至服务提供方。相应的,服务提供方在接收到服务调用请求和索引数据后,可以利用相同的接口根据索引数据从缓存中获取服务上下文。例如,可以通过输入代码获取存储在缓存中的服务上下文。其中,上述代码的具体形式可以为:“GET/contexts/XXX:”。代码中的GET表示读取。通过上述代码,结合用于指示存储在缓存中的服务上下文的索引数据能够准确地从缓存中读取获得对应的服务上下文。需要说明的是,上述所列举的接口,以及保存服务上下文、获取服务上下文的实现方式都是一种示意性说明。具体实施时,也可以根据具体情况和要求,选择使用其他的接口或者方式实现将服务上下文存储至缓存中以及获取存储在缓存中的服务上下文。对此,本申请不作限定。
进一步地,还可以将上述接口以及对接口的调用集成到服务通讯框架的服务上下文存储和读取的服务中,以便能够更加高效地通过调用接口完成将服务上下文保存至缓存中,以及从缓存中获取服务上下文。此外,该方式能够兼容多种技术框架,具有较好的适用性,可以在多种数据传递领域进行推广。
在本实施例中,由于通过将与服务调用方的服务调用请求关联的服务上下文存储在缓存中,将服务上下文与服务调用请求分离,仅将服务上下文在缓存中的索引数据传递给服务提供方,而不传递服务上下文本身,减少了数据传输量,从而解决了现有方法存在的对资源消耗量大、处理效率低的技术问题,达到高效、低成本地实现服务调用。
在一个实施方式中,上述将所述服务上下文在所述缓存中的索引数据和所述服务调用请求传递至服务提供方,具体实施时,可以包括:将所述索引数据和所述服务调用请求传递给中间传送方,通过所述中间传送方将所述索引数据和所述服务调用请求转发至所述服务提供方。
在本实施方式中,上述中间传送方具体可以理解为在服务调用方和服务提供方之间的链路上的中间对象。其中,所述中间传送方具体可以包括一个或多个串行的中间传送方。即,在所述服务调用方和服务提供方之间可以存在一个或多个中间对象。其中,任意两个相邻的中间对象或中间传送方之间,靠近服务提供方的中间对象为下一级的中间对象,靠近服务调用方的中间对象为上一级的中间对象。在具体传递索引数据和服务调用请求的过程中,由上一级的中间对象将索引数据和服务调用请求传递给下一级的中间对象。
在一个实施方式中,在服务调用方和所述服务提供方之间存在一个中间对象,其中,所述中间对象为第一中间对象的情况下,将所述服务上下文在所述缓存中的索引数据和所述服务调用请求传递至服务提供方,具体实施时可以包括以下内容:将所述索引数据和所述服务调用请求传递至所述第一中间对象;所述第一中间对象将所述索引数据和服务调用请求传递至所述服务提供方。
在本实施方式中,由于将数据量较大的服务上下文先存储在了缓存中,这样在中间链路逐级传递的过程中,可以通过传递服务调用请求和索引数据来取代现有方法中的传递服务调用请求和服务上下文。从而在保证将服务调用请求和用于指示存储在缓存中的服务上下文准确地传递至服务提供方的同时,能够有效地减少中间链路上由于逐级传递数据量较大的服务上下文对资源的占用与浪费。
在一个实施方式中,在所述服务调用方和所述服务提供方之间存在两个中间对象,其中,所述两个中间对象分别为第一中间对象和第二中间对象,且所述第二中间对象为所述第一中间对象的下一级对象的情况下,将所述服务上下文在所述缓存中的索引数据和所述服务调用请求传递至服务提供方,包括以下步骤:
S1:将所述索引数据和所述服务调用请求传递至所述第一中间对象;
S2:所述第一中间对象将所述索引数据和服务调用请求传递至所述第二中间对象;
S3:所述第二中间对象将所述索引数据和服务调用请求传递至所述服务提供方。
在本实施方式中,需要说明的是,上述只列举了在服务调用方和服务提供方之间的中间链路上存在一个和两个中间对象时,如何逐级传递服务调用请求和索引数据。对于在服务调用方和服务提供方之间的中间链路上存在三个、四个或者更多数量的中间对象时服务调用请求和索引数据的传递可以参阅上述方式实现。对此,本申请不作赘述。
在一个实施方式中,所述服务上下文具体可以包括以下至少之一:环境信息、用户身份信息和支付方式信息等。当然,需要说明的是,上述所列举的服务上下文所包含的信息只是一种为了更好地说明本申请实施方式的示意性说明。具体实施时,根据具体的应用场景,上述服务上下文也可以是包含其他类型信息的参数数据。对此,本申请不作限定。
在一个实施方式中,所述缓存具体可以包括以下至少之一:基于RDBMS数据库的缓存、基于HBase数据库的缓存、基于Cassandra数据库的缓存、基于Ignite数据库的缓存、基于Redis数据库的缓存等。当然,需要说明的是,上述所列举的缓存类型只是一种示意性说明,对本申请不构成限定。具体实施时,也可以根据具体的应用场景,选择使用除上述所列举的缓存之外其他类型的缓存。对此,本申请不作限定。
在一个实施方式中,所述索引数据还可以携带有地址信息,其中,所述地址信息具体可以用于表征所述服务上下文在所述缓存中的存储位置。
在本实施方式中,具体实施时,在将服务上下文存储至缓存中,并获取用于指示存储在缓存中的索引数据时,还可以同时获取服务上下文具体的存储位置,即上述地址信息,并将该地址信息添加至索引数据上,这样索引数据可以携带着地址信息逐级传递到服务提供方。服务提供方在接收到索引数据后,可以先检索引数据中是否携带有地址信息。在确定索引数据携带有地址信息的情况下,获取地址信息,并根据地址信息确定出服务上下文存储在缓存中的具体位置,进而可以直接从存储有服务上下文的位置上提取服务上下文,提高获取服务上下文的速度,进一步提高了调用效率。
在一个实施方式中,上述响应于所述服务调用请求将所述服务上下文存储至缓存中,具体实施可以包括以下内容:
S1:响应于所述服务调用请求,对所述服务上下文进行二进制化处理;
S2:将二进制化处理后的服务上下文存储至缓存中。
在本实施方式中,上述对所述服务上下文进行二进制化处理具体可以理解为将服务上下文的内容转换为10流。再将10流形式的服务上下文存储至缓存中。这样第三方对象不能直接读取到服务上下文的具体内容,从而提供了服务上下文的保密性和安全性。
在本实施方式中,需要说明的是,上述二进制化处理可以理解为是序列化(serialize)处理的一种具体的实现方式。通过序列化处理可以使得服务上下文的内容不是“透明”的,即不是任意的第三方对象可以直接读取。当然,具体实施时,除了利用二进制化方式还可以利用其他处理方式进行上述序列化处理。对此,本申请不作限定。
在一个实施方式中,为了进一步提高存储在缓存中的服务上下文的安全性和保密性,还可以在将服务上下文存储至缓存之前,先对上述服务上下文进行加密处理。其中,上述加密处理可以是对称加密,也可以是非对称加密。对于加密处理的具体方式,本申请不作限定。这样可以进一步提高服务上下文的安全性和保密性,以为服务上下文提供更好的保护。
相应的,在缓存中存储加密后的服务上下文时,可以通过在索引数据中设置参数以表征存储在缓存中的服务上下文是加密后的数据。具体的,可以利用encrypt参数表征所存储的服务上下文是否是加密后的数据。当然,需要说明的是,上述所列举的用于表征加密的参数只是一种示意性说明。具体实施时,也可以根据具体情况选择其他参数表征存储在缓存中的服务上下文的加密状态。对此,本申请不作限定。
由上可见,本申请实施例提供的服务调用方法,由于通过将与服务调用方的服务调用请求关联的服务上下文存储在缓存中,将服务上下文与服务调用请求分离,仅将服务上下文在缓存中的索引数据传递给服务提供方,而不传递服务上下文本身,减少了数据传输量,从而解决了现有方法存在的对资源消耗量大、处理效率低的技术问题,达到高效、低成本地实现服务调用;还通过在将服务上下文存储在缓存前,分别对服务上下文进行加密处理和二进制化处理,将处理后的服务上下文存储至缓存中,提高了存储在缓存中的服务上下文的安全性和保密性;还通过在索引数据上设置表征服务上下文存储位置的地址信息,便于服务提供方可以根据地址信息直接获取服务上下文,进一步提高了处理效率。
参阅图5,本申请实施例还提供了一种服务提供方法,该方法具体可以用于与服务提供方一侧,具体实施时,可以包括以下内容:
S51:接收服务调用请求和索引数据,其中,所述索引数据用于指示存储在缓存中的与服务调用方的服务调用请求关联的服务上下文;
S52:响应于所述服务调用请求,根据所述索引数据从所述缓存中获取与服务调用方的服务调用请求关联的服务上下文;
S53:根据所述服务上下文向所述服务调用方提供服务。
在本实施方式中,具体实施时,服务提供方可以通过逐级传递的方式从上一级对象处接收到服务调用请求和索引数据,而不是直接接收到服务调用请求和服务上下文。在接收到索引数据后,可以根据索引数据,获取事先存储在缓存中没有同时传递来的与服务调用方的服务调用请求关联的服务上下文。进而可以根据服务上下文,结合具体的服务调用请求,为服务调用方提供相应的服务。
在本实施方式中,为了方便服务上下文的存储和读取,具体实施时,上述缓存可以是一种基于分布式缓存技术的缓存,例如基于K/V存储的分布式缓存。具体的,上述缓存可以包括以下至少之一:基于关系型数据库的缓存、基于HBase的缓存、基于Cassandra的缓存、基于Ignite的缓存、基于Redis的缓存等。当然,需要说明的是,上述所列举的缓存只是一种示意性说明。具体实施时,也可以根据具体的应用场景和要求选择使用除上述所列举的缓存以外的其他类型的缓存。对此,本申请不作限定。
在本实施方式中,上述服务上下文可以包括:环境信息、用户身份信息和支付方式信息等多种信息,数据量相对较大。通常,服务提供方需要根据与服务调用方的服务调用请求关联的服务上下文才能为服务调用方提供具体的服务。当然,需要说明的是,上述所列举的服务上下文只是为了更好地说明本申请实施方式的示意性说明。对于服务上下文所包含的具体内容,本申请不作限定。
在一个实施方式中,上述接收服务调用请求和索引数据,具体实施时,可以包括以下内容:接收服务调用方通过中间传送方传递的服务调用请求和索引数据。
在本实施方式中,上述中间传送方具体可以理解为在服务调用方和服务提供方之间的链路上的中间对象。其中,所述中间传送方具体可以包括一个或多个串行的中间传送方。即,在所述服务调用方和服务提供方之间可以存在一个或多个中间对象。其中,任意两个相邻的中间对象或中间传送方之间,靠近服务提供方的中间对象为下一级的中间对象,靠近服务调用方的中间对象为上一级的中间对象。在具体接收索引数据和服务调用请求的过程中,由下一级的中间对象接收上一级的中间对象传递的索引数据和服务调用请求。
在一个实施方式中,在所述服务调用方和服务提供方之间存在一个中间对象,其中,所述中间对象为第一中间对象的情况下,上述接收服务调用请求和索引数据,具体实施时,可以包括以下内容:所述第一中间对象接收来自所述服务调用方传递的服务调用请求和所述索引数据;接收所述第一中间对象传递的服务调用请求和所述索引数据。
在本实施方式中,服务提供方具体可以通过第一中间对象而不是直接从服务调用方出获取服务调用请求和索引数据的。
在一个实施方式中,在所述服务调用方和所述服务提供方之间存在两个中间对象,其中,所述两个中间对象分别为第一中间对象和第二中间对象,且所述第二中间对象为所述第一中间对象的下一级对象的情况下,上述接收服务调用请求和索引数据,具体实施时,可以包括以下内容:
S1:所述第一中间对象接收来自所述服务调用方传递的服务调用请求和所述索引数据;
S2:所述第二中间对象接收来自所述第一中间对象传递的服务调用请求和所述索引数据;
S3:接收所述第二中间对象传递的服务调用请求和所述索引数据。
在本实施方式中,需要说明的是,上述只列举了在服务调用方和服务提供方之间的中间链路上存在一个和两个中间对象时,如何逐级接收服务调用请求和索引数据。对于在服务调用方和服务提供方之间的中间链路上存在三个、四个或者更多数量的中间对象时服务调用请求和索引数据的接收可以参阅上述方式实现。对此,本申请不作赘述。
在一个实施方式中,在接收到所述索引数据后,所述方法具体实施时,还可以包括以下内容:检测所述索引数据是否携带有地址信息,其中,所述地址信息用于表征所述服务上下文在所述缓存中的存储位置;在确定所述索引数据携带有所述地址信息的情况下,获取所述地址信息,并根据所述地址信息获取所述服务上下文。这样在确定索引数据携带有地址信息的情况下,服务提供方可以直接根据地址信息提取出服务上下文,进而可以进一步提高处理效率。
根据所述索引数据,获取二进制化处理后的服务上下文;对所述二进制化处理后的服务上下文进行反二进制化处理,得到所述服务上下文。
在一个实施方式中,考虑到为了进一步提高存储在缓存中的服务上下文的安全性和保密性,在服务调用方一侧在将服务上下文存储至缓存前,还会对服务上下文先进行加密处理,将加密后的服务上下文存储在缓存中。因此,服务提供方在接收了索引数据后,可以先对索引数据进行分析,确定索引数据是否携带有用于表征加密的参数,例如encrypt参数。如果encrypt参数为true,则可以判断直接从缓存中获取的服务上下文是加密后的数据,这时,需要利用由服务调用方或者加密方提供的秘钥进行解密处理,来获取解密后的服务上下文。如果encrypt参数为false,则可以判断直接从缓存中获取的服务上下是没有加密的数据,进而可以直接读取服务上下文中的具体内容。
由上可见,本申请实施例提供的服务提供方法,由于通过将与服务调用方的服务调用请求关联的服务上下文存储在缓存中,将服务上下文与服务调用请求分离,仅逐级接收用于指示存储在缓存中的服务上下文的索引数据与服务调用请求,避免了现有方法由于直接将接收服务上下文和服务调用请求造成对资源的消耗,从而解决了现有方法存在的对资源消耗量大、处理效率低的技术问题,达到高效、低成本地实现服务调用。
参阅图6,本申请实施例还提供了一种数据传递方法,以达到高效地进行数据传递。其中,该方法具体实施时,可以包括以下内容:
S61:获取第一数据和与所述第一数据关联的第二数据,并将所述第二数据存储至缓存中;
S62:将所述第二数据在所述缓存中的索引数据和所述第一数据传递至目标对象,其中,所述目标对象根据所述索引数据从所述缓存中获取所述第二数据。
在本实施方式中,上述第一数据和第二数据具体可以是来自待传递对象的数据。其中,待传递对象需要将第一数据和第二数据一起传递至目标对象。第一数据与第二数据相互关联。并且在待传递对象和目标对象之间的链路上存在多个中间对象,按照规则,待传递对象不能直接将第一数据和第二数据直接传递给目标对象,必须通过逐级传递方式使得目标对象最后能够同时获取上述第一数据和第二数据。由于基于现有方法,每一次的逐级传递都要同时传递第一数据和第二数据两种数据,导致对资源的消耗较大、传递效率也较低。
基于上述情况,应用本申请实施例提供的数据传递方法,具体实施时,可以在待传递对象一侧将第二数据先存储在缓存中,仅将用于指示存储在缓存中的第二数据的索引数据连同第一数据一同传递至下一级对象。通过逐级传递将第一数据和索引数据传递至目标对象。目标对象在接收到了第一数据和索引数据后,可以根据索引数据获取存储在缓存中的第二数据,从而完成了将第一数据和第二数据两种数据的传递。
在本实施方式中,上述待传递对象具体可以是服务调用方。相应的,目标对象可以是服务提供方。第一数据可以是服务调用请求,第二数据则可以是与服务调用请求关联的服务上下文。当然,上述所列举的场景只是一种示意性说明。本申请实施例提供的数据传递方法可以应用于多种场景。对与上数据传递方法的应用场景,本申请不作限定。
由上可见,本申请实施例提供的数据传递方法,由于通过将第二数据先存储在缓存中,将第一数据和第二数据分离,仅将用于指示存储在缓存中的第二数据的索引数据与第一数据逐级传递至目标对象,从而解决了现有方法存在的对资源消耗量大、传递效率低的技术问题,达到高效、低成本地实现数据传递。
本申请实施例还提供一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:获取服务调用请求和与所述服务调用请求关联的服务上下文,并响应于所述服务调用请求将所述服务上下文存储至缓存中;将所述服务上下文在所述缓存中的索引数据和所述服务调用请求传递至服务提供方,其中,所述服务提供方根据所述索引数据从所述缓存中获取所述服务上下文,并根据所述服务上下文返回服务;接收所述服务提供方返回的服务。
为了能够更加准确地完成上述指令,参阅图7,本申请还提供了另一种具体的服务器,其中,所述用户端包括网络通信端口701、处理器702以及存储器703,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。
其中,所述网络通信端口701,具体可以用于获取服务调用请求和与所述服务调用请求关联的服务上下文。还可以用于接收服务提供方返回的服务。
所述处理器702,具体可以用于响应于所述服务调用请求将所述服务上下文存储至缓存中;将所述服务上下文在所述缓存中的索引数据和所述服务调用请求传递至服务提供方,其中,所述服务提供方根据所述索引数据从所述缓存中获取所述服务上下文,并根据所述服务上下文返回服务。
所述存储器703,具体可以用于存储相应的指令程序。
在本实施方式中,所述网络通信端口701可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的80号端口,也可以是负责进行FTP数据通信的21号端口,还可以是负责进行邮件数据通信的25号端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施方式中,所述处理器702可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本申请并不作限定。
在本实施方式中,所述存储器703可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
本申请实施例还提供了一种基于上述支付方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:获取服务调用请求和与所述服务调用请求关联的服务上下文,并响应于所述服务调用请求将所述服务上下文存储至缓存中;将所述服务上下文在所述缓存中的索引数据和所述服务调用请求传递至服务提供方,其中,所述服务提供方根据所述索引数据从所述缓存中获取所述服务上下文,并根据所述服务上下文返回服务;接收所述服务提供方返回的服务。
在本实施方式中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
参阅图8,在软件层面上,本申请实施例还提供了一种服务调用装置,该装置具体可以包括以下的结构模块:
第一获取模块81,具体可以用于获取服务调用请求和与所述服务调用请求关联的服务上下文,并响应于所述服务调用请求将所述服务上下文存储至缓存中;
传递模块82,具体可以用于将所述服务上下文在所述缓存中的索引数据和所述服务调用请求传递至服务提供方,其中,所述服务提供方根据所述索引数据从所述缓存中获取所述服务上下文,并根据所述服务上下文返回服务;
第一接收模块83,具体可以用于接收所述服务提供方返回的服务。
在一个实施方式中,上述传递模块82具体实施时,可以将所述索引数据和所述服务调用请求传递给中间传送方,通过所述中间传送方将所述索引数据和所述服务调用请求转发至所述服务提供方。
参阅图9,在软件层面上,本申请实施例还提供了一种服务提供装置,该装置具体可以包括以下的结构模块:
第二接收模块91,具体可以用于接收服务调用请求和索引数据,其中,所述索引数据用于指示存储在缓存中的与服务调用方的服务调用请求关联的服务上下文;
第二获取模块92,具体可以用于响应于所述服务调用请求,根据所述索引数据从所述缓存中获取与服务调用方的服务调用请求关联的服务上下文;
服务提供模块93,具体可以用于根据所述服务上下文向所述服务调用方提供服务。
在一个实施方式中,上述接第二接收模块91具体实施时,可以将所述索引数据和所述服务调用请求传递给中间传送方,通过所述中间传送方将所述索引数据和所述服务调用请求转发至所述服务提供方。
需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
由上可见,本申请实施例提供的服务调用装置和服务提供装置,由于通过将与服务调用方的服务调用请求关联的服务上下文存储在缓存中,将服务上下文与服务调用请求分离,仅将用于指示存储在缓存中的服务上下文的索引数据与服务调用请求逐级传递至服务提供方,避免了现有方法由于直接将服务上下文和服务调用请求同时进行逐级传递造成对资源的消耗,从而解决了现有方法存在的对资源消耗量大、处理效率低的技术问题,达到高效、低成本地实现服务调用;还通过在将服务上下文存储在缓存前,分别对服务上下文进行加密处理和二进制化处理,将处理后的服务上下文存储至缓存中,提高了存储在缓存中的服务上下文的安全性和保密性。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本申请,本领域普通技术人员知道,本申请有许多变形和变化而不脱离本申请的精神,希望所附的权利要求包括这些变形和变化而不脱离本申请的精神。

Claims (11)

1.一种服务调用方法,其特征在于,包括:
获取服务调用请求和与所述服务调用请求关联的服务上下文,并响应于所述服务调用请求将所述服务上下文存储至缓存中,以将服务上下文与服务调用请求分离,并记录服务上下文在缓存中的存储地址;
将所述服务上下文在所述缓存中的索引数据和所述服务调用请求传递至服务提供方,其中,所述索引数据携带有所述存储地址,所述服务提供方根据所述索引数据从所述缓存中获取所述服务上下文,并根据所述服务上下文返回服务;其中,将所述服务上下文在所述缓存中的索引数据和所述服务调用请求传递至服务提供方,包括:将所述索引数据和所述服务调用请求传递给中间传送方,通过所述中间传送方将所述索引数据和所述服务调用请求转发至所述服务提供方;
接收所述服务提供方返回的服务。
2.根据权利要求1所述的方法,其特征在于,所述中间传送方包括一个或多个串行的中间传送方。
3.根据权利要求1所述的方法,其特征在于,所述服务上下文包括以下至少之一:环境信息、用户身份信息和支付方式信息。
4.根据权利要求1所述的方法,其特征在于,所述缓存包括以下至少之一:基于关系型数据库的缓存、基于HBase的缓存、基于Cassandra的缓存、基于Ignite的缓存、基于Redis的缓存。
5.根据权利要求1所述的方法,其特征在于,响应于所述服务调用请求将所述服务上下文存储至缓存中,包括:
响应于所述服务调用请求,对所述服务上下文进行二进制化处理;
将二进制化处理后的服务上下文存储至缓存中。
6.一种服务提供方法,其特征在于,包括:
接收服务调用请求和索引数据,其中,所述索引数据用于指示存储在缓存中的与服务调用方的服务调用请求关联的服务上下文;所述调用方用于将所述服务上下文存储至缓存中,以将服务上下文与服务调用请求分离,并记录服务上下文在缓存中的存储地址;所述索引数据携带有存储地址;其中,接收服务调用请求和索引数据,包括:接收服务调用方通过中间传送方传递的服务调用请求和索引数据;
响应于所述服务调用请求,根据所述索引数据从所述缓存中获取与服务调用方的服务调用请求关联的服务上下文;
根据所述服务上下文向所述服务调用方提供服务。
7.根据权利要求6所述的方法,其特征在于,所述中间传送方包括一个或多个串行的中间传送方。
8.根据权利要求6所述的方法,其特征在于,根据所述索引数据从所述缓存中获取与服务调用方的服务调用请求关联的服务上下文,包括:
根据所述索引数据,获取二进制化处理后的服务上下文;
对所述二进制化处理后的服务上下文进行反二进制化处理,得到所述服务上下文。
9.一种数据传递方法,其特征在于,包括:
获取第一数据和与所述第一数据关联的第二数据,并将所述第二数据存储至缓存中,以将第一数据与第二数据分离,并记录第二数据在缓存中的存储地址;
将所述第二数据在所述缓存中的索引数据和所述第一数据传递至目标对象,其中,所述目标对象根据所述索引数据从所述缓存中获取所述第二数据;所述索引数据携带有存储地址;其中,将所述第二数据在所述缓存中的索引数据和所述第一数据传递至目标对象,包括:将所述索引数据和所述第一数据传递给中间传送方,通过所述中间传送方将所述索引数据和所述第一数据转发至所述目标对象。
10.一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至5中任一项所述方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现权利要求1至5中任一项所述方法的步骤。
CN201810527305.6A 2018-05-29 2018-05-29 服务调用方法、服务提供方法、数据传递方法和服务器 Active CN108833500B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810527305.6A CN108833500B (zh) 2018-05-29 2018-05-29 服务调用方法、服务提供方法、数据传递方法和服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810527305.6A CN108833500B (zh) 2018-05-29 2018-05-29 服务调用方法、服务提供方法、数据传递方法和服务器

Publications (2)

Publication Number Publication Date
CN108833500A CN108833500A (zh) 2018-11-16
CN108833500B true CN108833500B (zh) 2021-03-30

Family

ID=64145853

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810527305.6A Active CN108833500B (zh) 2018-05-29 2018-05-29 服务调用方法、服务提供方法、数据传递方法和服务器

Country Status (1)

Country Link
CN (1) CN108833500B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111444222A (zh) * 2019-01-16 2020-07-24 苏宁易购集团股份有限公司 基于Ignite缓存架构的数据查询方法及系统
CN110659292A (zh) * 2019-09-21 2020-01-07 北京海致星图科技有限公司 一种基于Spark和Ignite的分布式实时图构建和查询的方法及系统
CN112995239B (zh) * 2021-05-24 2021-08-03 武汉中科通达高新技术股份有限公司 一种数据处理方法和装置

Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719069A (zh) * 2010-01-04 2010-06-02 北京航空航天大学 Java系统的Web服务化方法与装置
CN101854311A (zh) * 2009-03-31 2010-10-06 国际商业机器公司 在web服务器上传递上下文信息的方法和装置
CN102869003A (zh) * 2012-08-28 2013-01-09 中兴通讯股份有限公司 一种异构网络下业务内容分发的方法、业务管理平台
CN103595714A (zh) * 2013-11-08 2014-02-19 福建省视通光电网络有限公司 一种通过web服务通道实现数据传输的方法
CN104410702A (zh) * 2014-12-08 2015-03-11 畅捷通信息技术股份有限公司 远程服务请求方法、响应方法、请求装置与响应装置
CN105074659A (zh) * 2013-02-26 2015-11-18 微软公司 云服务的上下文相关用户辅助
CN105630819A (zh) * 2014-11-03 2016-06-01 阿里巴巴集团控股有限公司 一种缓存数据的刷新方法和装置
CN105786478A (zh) * 2014-12-23 2016-07-20 阿里巴巴集团控股有限公司 用于数据处理的方法及设备
CN105871960A (zh) * 2015-01-22 2016-08-17 阿里巴巴集团控股有限公司 调用数据共享的方法、装置及设备
CN106020963A (zh) * 2016-06-07 2016-10-12 中国建设银行股份有限公司 一种跨系统内部服务调用方法和装置
CN106453213A (zh) * 2015-08-11 2017-02-22 阿里巴巴集团控股有限公司 一种系统间调用方法及装置
CN106487596A (zh) * 2016-10-26 2017-03-08 宜人恒业科技发展(北京)有限公司 分布式服务跟踪实现方法
CN106549997A (zh) * 2015-09-22 2017-03-29 阿里巴巴集团控股有限公司 用户上下文信息的获取方法和装置
CN106921648A (zh) * 2016-11-15 2017-07-04 阿里巴巴集团控股有限公司 数据存储方法、应用服务器及远程存储服务器
CN106998343A (zh) * 2016-01-26 2017-08-01 阿里巴巴集团控股有限公司 一种远程过程调用处理方法、装置及系统
CN107018170A (zh) * 2016-10-27 2017-08-04 阿里巴巴集团控股有限公司 一种数据同步方法和设备
CN107391568A (zh) * 2017-06-16 2017-11-24 福建省华渔教育科技有限公司 突破跨域请求限制的方法及其系统
CN107623729A (zh) * 2017-09-08 2018-01-23 华为技术有限公司 一种缓存方法、设备及缓存服务系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7415713B2 (en) * 2000-01-28 2008-08-19 Iona Technologies, Plc Method and system for dynamic configuration of interceptors in a client-server environment
US10416918B2 (en) * 2016-06-28 2019-09-17 Vmware, Inc. Service state management in a decentralized control plane of a computing system

Patent Citations (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101854311A (zh) * 2009-03-31 2010-10-06 国际商业机器公司 在web服务器上传递上下文信息的方法和装置
CN101719069A (zh) * 2010-01-04 2010-06-02 北京航空航天大学 Java系统的Web服务化方法与装置
CN102869003A (zh) * 2012-08-28 2013-01-09 中兴通讯股份有限公司 一种异构网络下业务内容分发的方法、业务管理平台
CN105074659A (zh) * 2013-02-26 2015-11-18 微软公司 云服务的上下文相关用户辅助
CN103595714A (zh) * 2013-11-08 2014-02-19 福建省视通光电网络有限公司 一种通过web服务通道实现数据传输的方法
CN105630819A (zh) * 2014-11-03 2016-06-01 阿里巴巴集团控股有限公司 一种缓存数据的刷新方法和装置
CN104410702A (zh) * 2014-12-08 2015-03-11 畅捷通信息技术股份有限公司 远程服务请求方法、响应方法、请求装置与响应装置
CN105786478A (zh) * 2014-12-23 2016-07-20 阿里巴巴集团控股有限公司 用于数据处理的方法及设备
CN105871960A (zh) * 2015-01-22 2016-08-17 阿里巴巴集团控股有限公司 调用数据共享的方法、装置及设备
CN106453213A (zh) * 2015-08-11 2017-02-22 阿里巴巴集团控股有限公司 一种系统间调用方法及装置
CN106549997A (zh) * 2015-09-22 2017-03-29 阿里巴巴集团控股有限公司 用户上下文信息的获取方法和装置
CN106998343A (zh) * 2016-01-26 2017-08-01 阿里巴巴集团控股有限公司 一种远程过程调用处理方法、装置及系统
CN106020963A (zh) * 2016-06-07 2016-10-12 中国建设银行股份有限公司 一种跨系统内部服务调用方法和装置
CN106487596A (zh) * 2016-10-26 2017-03-08 宜人恒业科技发展(北京)有限公司 分布式服务跟踪实现方法
CN107018170A (zh) * 2016-10-27 2017-08-04 阿里巴巴集团控股有限公司 一种数据同步方法和设备
CN106921648A (zh) * 2016-11-15 2017-07-04 阿里巴巴集团控股有限公司 数据存储方法、应用服务器及远程存储服务器
CN107391568A (zh) * 2017-06-16 2017-11-24 福建省华渔教育科技有限公司 突破跨域请求限制的方法及其系统
CN107623729A (zh) * 2017-09-08 2018-01-23 华为技术有限公司 一种缓存方法、设备及缓存服务系统

Also Published As

Publication number Publication date
CN108833500A (zh) 2018-11-16

Similar Documents

Publication Publication Date Title
US10956596B2 (en) System and method for automatically securing sensitive data in public cloud using a serverless architecture
US20170371625A1 (en) Content delivery method
CN111614761B (zh) 区块链消息传输方法、装置、计算机以及可读存储介质
CN104852925A (zh) 移动智能终端数据防泄漏安全存储、备份方法
CN108833500B (zh) 服务调用方法、服务提供方法、数据传递方法和服务器
CN104144081A (zh) 一种通用应用日志管理方法、装置和系统
CN109639819B (zh) 文件传输方法、客户端、服务器及系统
Fan et al. Secure ultra-lightweight RFID mutual authentication protocol based on transparent computing for IoV
CN110795741A (zh) 对数据进行安全性处理的方法和装置
CN115130075A (zh) 一种数字签章方法、装置、电子设备及存储介质
CN114519197A (zh) 一种基于区块链和云服务的数据存储架构和方法
CN109525550B (zh) 一种数据报文的处理方法、装置以及系统
CN116743481A (zh) 服务安全管控方法、装置、设备及存储介质
CN110866240A (zh) 智能密码钥匙调用方法和系统
CN106537962A (zh) 无线网络配置、接入和访问方法、装置及设备
WO2016091210A1 (en) Content delivery method
CN113645025A (zh) 数据加密存储方法、存储设备、用户设备及存储介质
Alshenaifi et al. IoT Forensics: Machine to Machine Embedded with SIM Card
CN113962675B (zh) 单据处理方法、装置、计算机设备和存储介质
CN115599983B (zh) 数据查询方法、装置、可读存储介质及电子设备
WO2023091032A1 (en) Digital document authentication management
CN117354255A (zh) 区块链网络的事务处理方法、装置、产品、设备和介质
CN117376439A (zh) 一种信息网站系统的访问方法、装置及可读存储介质
CN115134133A (zh) 数据处理方法、装置和计算机设备
CN117061221A (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
TA01 Transfer of patent application right

Effective date of registration: 20201022

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201022

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: Greater Cayman, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240226

Address after: Guohao Times City # 20-01, 128 Meizhi Road, Singapore

Patentee after: Advanced Nova Technology (Singapore) Holdings Ltd.

Country or region after: Singapore

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Patentee before: Innovative advanced technology Co.,Ltd.

Country or region before: Cayman Islands

TR01 Transfer of patent right