CN110971680A - 通信方法、装置、***、电子设备及可读存储介质 - Google Patents
通信方法、装置、***、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN110971680A CN110971680A CN201911159044.8A CN201911159044A CN110971680A CN 110971680 A CN110971680 A CN 110971680A CN 201911159044 A CN201911159044 A CN 201911159044A CN 110971680 A CN110971680 A CN 110971680A
- Authority
- CN
- China
- Prior art keywords
- service
- service calling
- request
- public network
- invocation
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 173
- 238000004891 communication Methods 0.000 title claims abstract description 93
- 238000012795 verification Methods 0.000 claims abstract description 179
- 230000004044 response Effects 0.000 claims description 144
- 230000002159 abnormal effect Effects 0.000 claims description 55
- 239000000126 substance Substances 0.000 claims description 2
- 238000004458 analytical method Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 19
- 238000012544 monitoring process Methods 0.000 description 19
- 230000015556 catabolic process Effects 0.000 description 15
- 238000006731 degradation reaction Methods 0.000 description 15
- 238000002955 isolation Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 9
- 238000001514 detection method Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000000605 extraction Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
Abstract
本公开实施例公开了一种通信方法、装置、***、电子设备及可读存储介质。通信方法包括:由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息;由所述服务调用端通过公网发送所述服务调用请求;响应于所述服务调用端通过公网发送服务调用请求,由所述服务调用端生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源。
Description
技术领域
本公开涉及通信技术领域,具体涉及通信方法、装置、***、电子设备及可读存储介质。
背景技术
不同位置的设备和/或服务端应用存在大量的通信需求。例如,随着互联网的发展,通常需要通过跨网络环境(例如,公网)进行服务调用(接口调用),服务调用端可以通过发起服务调用请求,解析服务(接口)返回的响应,进行通信(数据交互)。
跨网络环境服务调用,受复杂网络环境因素影响较大,因时延较大或网络不稳定等问题可能导致服务调用稳定性无法得到保障。而且,跨网络服务调用由于网络环境复杂,服务调用端的身份以及服务调用请求的可靠性都可能存在问题,因此,如何保证跨网络服务调用的稳定性和安全性正在通信技术中变得越来越重要。
发明内容
为了解决相关技术中的问题,本公开实施例提供通信方法、装置、***、电子设备及可读存储介质。
第一方面,本公开实施例中提供了一种通信方法,包括:
由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息;
由所述服务调用端通过公网发送所述服务调用请求;
响应于所述服务调用端通过公网发送服务调用请求,由所述服务调用端生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源。
结合第一方面,本公开在第一方面的第一种实现方式中,所述验证信息包括根据预设数字签名方法生成的签名。
结合第一方面的第一种实现方式中,本公开在第一方面的第二种实现方式中,所述由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息,包括:
通过至少一个处理器获取所述服务调用请求的时间戳;
通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且通过对所述摘要加密生成数字签名;
通过至少一个处理器将所述预设参数、所述时间戳和所述数字签名作为验证信息添加到所述服务调用请求。
结合第一方面,本公开在第一方面的第三种实现方式中,还包括:
由所述服务调用端接收针对所述服务调用请求的响应。
结合第一方面的第三种实现方式,本公开在第一方面的第四种实现方式中,还包括:
根据由所述服务调用端接收到的针对所述服务调用请求的响应处于异常状态,由所述服务调用端根据预设重试方法通过公网重新发送所述服务调用请求。
结合第一方面的第三种实现方式,本公开在第一方面的第五种实现方式中,所述异常状态包括以下至少之一:所述服务调用端接收到针对所述服务调用请求的响应时的网络抖动达到第一阈值;由所述服务调用端接收针对所述服务调用请求的响应的时间超过第二阈值;所述服务调用端对接收到的针对所述服务调用请求的响应解析失败。
结合第一方面的第五种实现方式,本公开在第一方面的第六种实现方式中,还包括:
响应于所述服务调用端对接收到的针对所述服务调用请求的响应解析失败而出现的异常,由所述服务调用端对出现的解析失败的异常进行包装。
结合第一方面的第四种实现方式,本公开在第一方面的第七种实现方式中,还包括:
在由所述服务调用端根据预设重试方法通过公网重新发送所述服务调用请求之后,响应于由所述服务调用端接收到的针对所述服务调用请求的响应处于异常状态,所述服务调用端暂停生成和发送所述服务调用请求并提供表示调用服务失败的信息。
结合第一方面,本公开在第一方面的第八种实现方式中,还包括:
由所述服务调用端向预设监控***发送表示所述服务调用端所发起的服务调用的状态的信息。
结合第一方面,本公开在第一方面的第九种实现方式中,所述由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息,包括:
由所述服务调用端检测公网是否包括多个子网络;
响应于由所述服务调用端检测到所述公网包括多个子网络,由所述服务调用端生成包括经由所述多个子网络的代理设置的服务调用请求。
第二方面,本公开实施例中提供了一种通信方法,包括:
由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息;
由所述服务调用端通过公网向服务提供端发送所述服务调用请求;
响应于所述服务调用端通过公网向服务提供端发送所述服务调用请求,由所述服务调用端生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源;
响应于所述服务提供端通过公网接收到所述服务调用请求,由所述服务提供端对所述服务调用请求中的验证信息进行验证以确定所述服务调用请求是否被允许,并且将验证信息是否被验证通过的响应发送到所述服务调用端。
结合第二方面,本公开在第二方面的第一种实现方式中,所述验证信息包括根据预设数字签名方法生成的签名。
结合第二方面的第一种实现方式,本公开在第二方面的第二种实现方式中,所述由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息,包括:
通过至少一个处理器获取所述服务调用请求的时间戳;
通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且通过对所述摘要加密生成数字签名;
通过至少一个处理器将所述预设参数、所述时间戳和所述数字签名作为验证信息添加到所述服务调用请求。
结合第二方面的第二种实现方式,本公开在第二方面的第三种实现方式中,所述响应于所述服务提供端通过公网接收到所述服务调用请求,由所述服务提供端对所述服务调用请求中的验证信息进行验证以确定所述服务调用请求是否被允许,并且将验证信息是否被验证通过的响应发送到所述服务调用端,包括:
通过至少一个处理器从所述服务调用请求中提取所述预设参数、所述时间戳和所述签名;
通过至少一个处理器基于预设解密方法利用所述预设参数、所述时间戳和第二预设密钥对所述签名进行解密以生成待验证摘要;
通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且比较所生成的摘要与所述待验证摘要是否一致,以确定所述验证信息是否被验证通过。
第三方面,本公开实施例中提供了一种通信装置,包括:
第一生成模块,被配置为生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述通信装置的验证信息;
第一发送模块,被配置为通过公网发送所述服务调用请求;
第二生成模块,被配置为响应于所述第一发送模块通过公网发送服务调用请求,生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述通信装置所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源。
结合第三方面,本公开在第三方面的第一种实现方式中,所述验证信息包括根据预设数字签名方法生成的签名。
结合第三方面的第一种实现方式,本公开在第三方面的第二种实现方式中,所述第一生成模块包括:
获取子模块,被配置为通过至少一个处理器获取所述服务调用请求的时间戳;
加密子模块,被配置为通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且通过对所述摘要加密生成数字签名;
添加子模块,被配置为通过至少一个处理器将所述预设参数、所述时间戳和所述数字签名作为验证信息添加到所述服务调用请求。
结合第三方面,本公开在第三方面的第三种实现方式中,还包括:
接收模块,被配置为接收针对所述服务调用请求的响应。
结合第三方面的第三种实现方式,本公开在第三方面的第四种实现方式中,所述第一发送模块还被配置为:
根据由所述接收模块接收到的针对所述服务调用请求的响应处于异常状态,根据预设重试方法通过公网重新发送所述服务调用请求。
结合第三方面的第三种实现方式,本公开在第三方面的第五种实现方式中,所述异常状态包括以下至少之一:所述接收模块接收到针对所述服务调用请求的响应时的网络抖动达到第一阈值;由所述接收模块接收针对所述服务调用请求的响应的时间超过第二阈值;所述通信装置对接收到的针对所述服务调用请求的响应解析失败。
结合第三方面的第五种实现方式,本公开在第三方面的第六种实现方式中,还包括:
包装模块,被配置为响应于对接收到的针对所述服务调用请求的响应解析失败而出现的异常,由所述通信装置对出现的解析失败的异常进行包装。
结合第三方面的第四种实现方式,本公开在第三方面的第七种实现方式中,还包括:
暂停模块,被配置为在由所述第一发送模块根据预设重试方法通过公网重新发送所述服务调用请求之后,响应于由所述接收模块接收到的针对所述服务调用请求的响应处于异常状态,暂停生成和发送所述服务调用请求并提供表示调用服务失败的信息。
结合第三方面,本公开在第三方面的第八种实现方式中,还包括:
第二发送模块,被配置为向预设监控***发送表示所述通信装置所发起的服务调用的状态的信息。
结合第三方面,本公开在第三方面的第九种实现方式中,所述第一生成模块包括:
检测子模块,被配置为检测公网是否包括多个子网络;
代理设置模块,被配置为响应于所述检测子模块检测到所述公网包括多个子网络,生成包括经由所述多个子网络的代理设置的服务调用请求。
第四方面,本公开实施例中提供了一种通信***,包括:服务调用端和服务提供端,其中:
由所述服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息;
由所述服务调用端通过公网向服务提供端发送所述服务调用请求;
响应于所述服务调用端通过公网向服务提供端发送所述服务调用请求,由所述服务调用端生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源;
响应于所述服务提供端通过公网接收到所述服务调用请求,由所述服务提供端对所述服务调用请求中的验证信息进行验证以确定所述服务调用请求是否被允许,并且将验证信息是否被验证通过的响应发送到所述服务调用端。
结合第四方面,本公开在第四方面的第一种实现方式中,所述验证信息包括根据预设数字签名方法生成的签名。
结合第四方面的第一种实现方式,本公开在第四方面的第二种实现方式中,所述服务调用端包括:
获取模块,被配置为通过至少一个处理器获取所述服务调用请求的时间戳;
加密模块,被配置为通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且通过对所述摘要加密生成数字签名;
添加模块,被配置为通过至少一个处理器将所述预设参数、所述时间戳和所述数字签名作为验证信息添加到所述服务调用请求。
结合第四方面的第二种实现方式,本公开在第四方面的第三种实现方式中,所述服务提供端包括:
提取模块,被配置为通过至少一个处理器从所述服务调用请求中提取所述预设参数、所述时间戳和所述签名;
解密模块,被配置为通过至少一个处理器基于预设解密方法利用所述预设参数、所述时间戳和第二预设密钥对所述签名进行解密以生成待验证摘要;
验证模块,被配置为通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且比较所生成的摘要与所述待验证摘要是否一致,以确定所述验证信息是否被验证通过。
第五方面,本公开实施例中提供了一种电子设备,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如第一方面、第一方面的第一种实现方式至第九种实现方式任一项所述的方法。
第六方面,本公开实施例中提供了一种可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第一方面、第一方面的第一种实现方式至第九种实现方式任一项所述的方法。
本公开实施例提供的技术方案可以包括以下有益效果:
根据本公开实施例提供的技术方案,通过由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息;由所述服务调用端通过公网发送所述服务调用请求;响应于所述服务调用端通过公网发送服务调用请求,由所述服务调用端生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源,可以通过针对跨网络服务调用设置独立线程池来进行线程隔离,防止因网络时延增大导致的***性能下降问题,避免服务调用端***雪崩。而且,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
根据本公开实施例提供的技术方案,通过所述验证信息包括根据预设数字签名方法生成的签名,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
根据本公开实施例提供的技术方案,通过所述由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息,包括:通过至少一个处理器获取所述服务调用请求的时间戳;通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且通过对所述摘要加密生成数字签名;通过至少一个处理器将所述预设参数、所述时间戳和所述数字签名作为验证信息添加到所述服务调用请求,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
根据本公开实施例提供的技术方案,通过由所述服务调用端接收针对所述服务调用请求的响应,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
根据本公开实施例提供的技术方案,通过根据由所述服务调用端接收到的针对所述服务调用请求的响应处于异常状态,由所述服务调用端根据预设重试方法通过公网重新发送所述服务调用请求,可以针对异常状态利用重试方法来保证跨网络服务调用的稳定性。
根据本公开实施例提供的技术方案,通过所述异常状态包括以下至少之一:所述服务调用端接收到针对所述服务调用请求的响应时的网络抖动达到第一阈值;由所述服务调用端接收针对所述服务调用请求的响应的时间超过第二阈值;所述服务调用端对接收到的针对所述服务调用请求的响应解析失败,可以针对异常状态利用重试方法来保证跨网络服务调用的稳定性。
根据本公开实施例提供的技术方案,通过响应于所述服务调用端对接收到的针对所述服务调用请求的响应解析失败而出现的异常,由所述服务调用端对出现的解析失败的异常进行包装,可以在由于对响应解析失败而出现的异常发生时不影响服务调用流程抛出异常错误,保证了跨网络服务调用的稳定性。
根据本公开实施例提供的技术方案,通过在由所述服务调用端根据预设重试方法通过公网重新发送所述服务调用请求之后,响应于由所述服务调用端接收到的针对所述服务调用请求的响应处于异常状态,所述服务调用端暂停生成和发送所述服务调用请求并提供表示调用服务失败的信息,可以在重试方法无效后通过自动降级来保证服务调用端的稳定性,进而保证了跨网络服务调用的稳定性。
根据本公开实施例提供的技术方案,通过由所述服务调用端向预设监控***发送表示所述服务调用端所发起的服务调用的状态的信息,可以对服务调用的情况进行监控,以便保证跨网络服务调用的稳定性和安全性。
根据本公开实施例提供的技术方案,通过所述由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息,包括:由所述服务调用端检测公网是否包括多个子网络;响应于由所述服务调用端检测到所述公网包括多个子网络,由所述服务调用端生成包括经由所述多个子网络的代理设置的服务调用请求,可以通过代理技术来保证跨多个子网络的服务调用的稳定性,同时防止网络故障导致的服务调用失败。
根据本公开实施例提供的技术方案,通过由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息;由所述服务调用端通过公网向服务提供端发送所述服务调用请求;响应于所述服务调用端通过公网向服务提供端发送所述服务调用请求,由所述服务调用端生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源;响应于所述服务提供端通过公网接收到所述服务调用请求,由所述服务提供端对所述服务调用请求中的验证信息进行验证以确定所述服务调用请求是否被允许,并且将验证信息是否被验证通过的响应发送到所述服务调用端,可以通过针对跨网络服务调用设置独立线程池来进行线程隔离,防止因网络时延增大导致的***性能下降问题,避免服务调用端***雪崩。而且,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
根据本公开实施例提供的技术方案,通过所述验证信息包括根据预设数字签名方法生成的签名,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
根据本公开实施例提供的技术方案,通过所述由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息,包括:通过至少一个处理器获取所述服务调用请求的时间戳;通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且通过对所述摘要加密生成数字签名;通过至少一个处理器将所述预设参数、所述时间戳和所述数字签名作为验证信息添加到所述服务调用请求,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
根据本公开实施例提供的技术方案,通过所述响应于所述服务提供端通过公网接收到所述服务调用请求,由所述服务提供端对所述服务调用请求中的验证信息进行验证以确定所述服务调用请求是否被允许,并且将验证信息是否被验证通过的响应发送到所述服务调用端,包括:通过至少一个处理器从所述服务调用请求中提取所述预设参数、所述时间戳和所述签名;通过至少一个处理器基于预设解密方法利用所述预设参数、所述时间戳和第二预设密钥对所述签名进行解密以生成待验证摘要;通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且比较所生成的摘要与所述待验证摘要是否一致,以确定所述验证信息是否被验证通过,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
根据本公开实施例提供的技术方案,通过第一生成模块,被配置为生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述通信装置的验证信息;第一发送模块,被配置为通过公网发送所述服务调用请求;第二生成模块,被配置为响应于所述第一发送模块通过公网发送服务调用请求,生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述通信装置所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源,可以通过针对跨网络服务调用设置独立线程池来进行线程隔离,防止因网络时延增大导致的***性能下降问题,避免服务调用端***雪崩。而且,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
根据本公开实施例提供的技术方案,通过服务调用端和服务提供端,其中:由所述服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息;由所述服务调用端通过公网向服务提供端发送所述服务调用请求;响应于所述服务调用端通过公网向服务提供端发送所述服务调用请求,由所述服务调用端生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源;响应于所述服务提供端通过公网接收到所述服务调用请求,由所述服务提供端对所述服务调用请求中的验证信息进行验证以确定所述服务调用请求是否被允许,并且将验证信息是否被验证通过的响应发送到所述服务调用端,可以通过针对跨网络服务调用设置独立线程池来进行线程隔离,防止因网络时延增大导致的***性能下降问题,避免服务调用端***雪崩。而且,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开一实施方式的通信方法的流程图;
图2示出根据本公开另一实施方式的通信方法的流程图;
图3示出根据本公开又一实施方式的通信方法的流程图;
图4示出根据本公开又一实施方式的通信方法的流程图;
图5示出根据本公开一实施方式的通信方法的实现场景的一个示例的性示意图;
图6示出根据本公开一实施方式的通信方法的实现场景的另一个示例的性示意图;
图7示出根据本公开一实施方式的通信方法的实现场景的又一个示例的性示意图;
图8示出根据本公开又一实施方式的通信方法的流程图;
图9示出根据本公开一实施方式的通信装置的结构框图;
图10示出根据本公开一实施方式的通信***的结构框图;
图11示出根据本公开一实施方式的电子设备的结构框图;
图12是适于用来实现根据本公开一实施方式的通信方法的计算机***的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的标签、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他标签、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的标签可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
根据本公开实施例提供的技术方案,通过由服务调用端生成用于请求进行服务调用的服务调用请求,服务调用请求包括服务调用端的验证信息;由服务调用端通过公网发送服务调用请求;响应于服务调用端通过公网发送服务调用请求,由服务调用端生成第一线程池以供通过公网发送的服务调用请求使用,第一线程池独立于未经过公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源,可以通过针对跨网络服务调用设置独立线程池来进行线程隔离,防止因网络时延增大导致的***性能下降问题,避免服务调用端***雪崩。而且,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
图1示出根据本公开一实施方式的通信方法的流程图。如图1所示,通信方法包括以下步骤S110、S120和S130:
在步骤S110中,由服务调用端生成用于请求进行服务调用的服务调用请求,服务调用请求包括服务调用端的验证信息。在步骤S120中,由所述服务调用端通过公网发送所述服务调用请求。在步骤S130中,响应于服务调用端通过公网发送服务调用请求,由服务调用端生成第一线程池以供通过公网发送的服务调用请求使用,第一线程池独立于未经过公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源。
在本公开的一个实施例中,服务调用请求可以是诸如天气信息调用请求之类的请求。任何发出服务调用请求的装置或应用均可以被认为是服务调用端。在本公开的一个实施例中,验证信息包括根据预设数字签名方法生成的签名。
根据本公开实施例提供的技术方案,通过验证信息包括根据预设数字签名方法生成的签名,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
在本公开的一个实施例中,验证信息包括根据预设数字签名方法生成的签名仅仅是示例,本公开中实施例中的验证信息可以是通过相关技术中已知的各种方式生成用于验证服务调用请求是否是合法请求的信息。
在本公开的一个实施例中,预设数字签名方法可以是密钥签名校验算法。以下对如何在服务调用请求中添加根据密钥签名校验算法生成的验证信息进行说明。
在本公开的一个实施例中,所步骤S110包括:通过至少一个处理器获取服务调用请求的时间戳;通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和时间戳进行加密生成摘要,并且通过对摘要加密生成数字签名;通过至少一个处理器将预设参数、时间戳和签名作为验证信息添加到服务调用请求。
根据本公开实施例提供的技术方案,通过由服务调用端生成用于请求进行服务调用的服务调用请求,服务调用请求包括服务调用端的验证信息,包括:通过至少一个处理器获取服务调用请求的时间戳;通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和时间戳进行加密生成摘要,并且通过对摘要加密生成数字签名;通过至少一个处理器将预设参数、时间戳和签名作为验证信息添加到所述服务调用请求,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
在本公开的一个实施例中,通过至少一个处理器获取服务调用请求的时间戳的方式可以通过服务调用端的***时钟调取。
在本公开的一个实施例中,预设参数可以包括诸如预先约定的信息,例如,服务调用端的身份识别标识(ID)。
在本公开的一个实施例中,第一预设密钥可以包括多个密钥。例如,第一预设密钥可以包括服务调用端用于生成摘要的约定密钥,还可以包括用于生成签名的私钥。
在本公开的一个实施例中,通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要的具体方式可以是将预设参数、约定密钥和时间戳连接起来,通过摘要加密算法来生成摘要。摘要加密算法可以是相关技术中的哈希算法之类的加密算法。哈希算法包括MD5算法、SHA1算法、SHA256算法等。本公开中的摘要加密算法可以包括哈希算法以外的其他算法,本公开对此不做赘述。
在本公开的一个实施例中,通过对摘要加密生成数字签名的具体方式可以是通过第一预设密钥中的私钥对摘要进行加密来生成数字签名。数字签名技术是不对称加密算法的典型应用,可以保证信息传输的完整性、发送端的身份认证、防止信息篡改发生。
在本公开的一个实施例中,可以通过至少一个处理器将预设参数、时间戳和数字签名作为验证信息添加到服务调用请求。这样的服务调用请求中即可包含验证信息以验证服务调用请求是否是合法请求。
在本公开的一个实施例中,公网一般而言指的是广域网,其是连接不同地区局域网或城域网内的终端进行通信的远程网。例如,公网通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络,开放给公众使用。内网也可以被称为局域网,局域网是局部地区形成的一个区域网络,其特点就是分布地区范围有限,可大可小,大到一栋建筑楼与相邻建筑之间的连接,小到可以是办公室之间的联系。划分内网和公网的重要依据主要是判断该网络是不是与广阔的外界相连。例如,一个用户的单位或者家庭内部有内网(局域网),而一个用户的单位或者家庭外部有公网,例如,internet。
在本公开的一个实施例中,通过公网发起服务调用请求会面临稳定性和安全性方面的问题。通过针对专门用于通过公网之类的公网发送的服务调用请求使用的独立线程池,可以使得服务调用端通过不同的独立线程池处理通过不同的网络环境进行服务调用的请求。即,通过公网之类的公网发送的服务调用请求使用第一线程池,第一线程池独立于未经过公网之类的公网发送的服务调用请求所使用的第二线程池,第二线程池可以指的是在服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池。因此,本公开的实施例可以通过经过公网和内网进行服务调用时通过相互独立的线程池分别提供资源,实现了线程隔离,提高了***稳定性。
在本公开的实施例中,在第一次进行跨公网的服务调用时,生成独立的第一线程池,所有的跨公网调用请求均由这个独立的第一线程池调度和运行,由此可以使得服务调用端具备线程隔离、限流的能力,可防止因公网时延增大等各种因素导致的服务调用端***性能下降问题,避免服务调用端***雪崩。
另外,在通过公网进行的服务调用请求中包含验证信息的情况下,可以保证服务调用过程的安全性。在此情况下,如果验证信息未被验证通过,而服务调用请求依然使用第一线程池的线程资源而无法结束,而且服务调用端又不断发起这类请求,则第一线程池的线程资源会很快被耗尽,甚至导致其他正常任务也受到牵连而无法调用第一线程池的线程资源正常执行。在利用独立的第一线程池进行线程隔离以保证服务调用端***稳定性的同时,通过第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源,可以进一步保证服务调用端的***稳定性,而且可以通过在服务调用请求中添加验证信息来保证服务调用的安全性。因此,本公开的实施例的技术方案兼顾了服务调用过程的稳定性和安全性。
以下参照图2描述根据本公开另一实施方式的通信方法。图2示出根据本公开另一实施方式的通信方法的流程图。图2所示的实施例与图1所示的实施例的区别在于还包括步骤S210和S220。
在步骤S210中,由服务调用端接收针对服务调用请求的响应。根据本公开实施例提供的技术方案,通过由服务调用端接收针对服务调用请求的响应,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
在步骤S220中,根据由服务调用端接收到的针对服务调用请求的响应处于异常状态,由服务调用端根据预设重试方法通过公网重新发送服务调用请求。
根据本公开实施例提供的技术方案,通过根据由服务调用端接收到的针对服务调用请求的响应处于异常状态,由服务调用端根据预设重试方法通过公网重新发送服务调用请求,可以针对异常状态利用重试方法来保证跨网络服务调用的稳定性。
在本公开的一个实施例中,预设重试方法包括预设的重试次数和重试时间间隔等设置。例如,在服务调用端接收到的针对服务调用请求的响应处于异常状态的情况下,可以采取如下的重试方法:自动通过公网3次重新发送服务调用请求,发送间隔依次设置为100毫秒、200毫秒和400毫秒。如果在服务调用端完成根据预设重试方法3次通过公网重新发送服务调用请求后,所述服务调用端接收到的针对所述服务调用请求的响应仍然处于异常状态,则可以对服务调用端发起的服务调用执行降级处理。降级处理的更多细节将在下文中描述。本领域技术人员可以理解,按照以上预设时间间隔进行3次重试的重试方法仅仅是示例,本公开的实施例中的预设重试方法可以采用其他任何重试次数和重试时间间隔。
在本公开的一个实施例中,异常状态包括以下至少之一:服务调用端接收到针对服务调用请求的响应时的网络抖动达到第一阈值;由服务调用端接收针对服务调用请求的响应的时间超过第二阈值;服务调用端对接收到的针对服务调用请求的响应解析失败。
根据本公开实施例提供的技术方案,通过异常状态包括以下至少之一:服务调用端接收到针对服务调用请求的响应时的网络抖动达到第一阈值;由服务调用端接收针对服务调用请求的响应的时间超过第二阈值;服务调用端对接收到的针对服务调用请求的响应解析失败,可以针对异常状态利用重试方法来保证跨网络服务调用的稳定性。
在本公开的一个实施例中,网络中的延迟是指信息从发送到接收经过的延迟时间,一般由传输延迟及处理延迟组成;而网络抖动是指最大延迟与最小延迟的时间差。网络抖动对于实时性要求高的服务有较大影响。服务调用端接收到针对服务调用请求的响应时的网络抖动达到第一阈值指的是针对服务调用请求的响应从发送到接收经过的最大延迟时间和最小延长时间的时间差。当服务调用端接收到针对服务调用请求的响应时的网络抖动达到第一阈值时,可以执行重试方法,通过公网重新发送所述服务调用请求。可以根据公网的网络状态和/或服务提供端的处理能力等因素设置第一阈值,本公开对第一阈值的范围和值不作限制。
在本公开的一个实施例中,服务调用端接收针对服务调用请求的响应的时间出现超时情况,即,超过第二阈值,则确定所述服务调用端接收到的针对服务调用请求的响应处于异常状态。当由服务调用端接收到针对服务调用请求的响应的时间超过第二阈值时,可以执行重试方法,通过公网重新发送所述服务调用请求。可以根据公网的网络状态和/或服务提供端的处理能力等因素设置第二阈值,本公开对第二阈值的范围和值不作限制。进行超时设置可以防止网络环境不佳导致的在网络连接、网络传输不稳定,时延增大引发的服务调用端***性能问题。
在本公开的一个实施例中,服务调用端对接收到的针对服务调用请求的响应解析失败,则确定所述服务调用端接收到的针对服务调用请求的响应处于异常状态。对接收到的针对服务调用请求的响应解析失败的原因可能是由于数据丢包、数据篡改、服务提供端发送错误信息等因素。无论是何种因素导致服务调用端对接收到的针对服务调用请求的响应解析失败,本公开的实施例的技术方案采用同样的手段进行处理。
在本公开的一个实施例中,响应于服务调用端对接收到的针对服务调用请求的响应解析失败而出现的异常,由服务调用端对出现的解析失败的异常进行包装。在该实施例中,可以在处理方法中通过实现一个包装类,自动包装因服务调用请求的响应的异常返回导致的数据解析失败异常。在无异常发生时,可以获取到正常数据;在异常发生时,不影响服务调用流程抛出异常错误。
根据本公开实施例提供的技术方案,通过响应于服务调用端对接收到的针对服务调用请求的响应解析失败而出现的异常,由服务调用端对出现的解析失败的异常进行包装,可以在由于对响应解析失败而出现的异常发生时不影响服务调用流程抛出异常错误,保证了跨网络服务调用的稳定性。
以下参照图3对根据本公开又一实施方式的通信方法进行描述。图3示出根据本公开又一实施方式的通信方法的流程图。图3所示的实施例与图2所示的实施例的区别在于还包括步骤S310。
在步骤S310中,在由服务调用端根据预设重试方法通过公网重新发送服务调用请求之后,响应于由服务调用端接收到的针对服务调用请求的响应处于异常状态,服务调用端暂停生成和发送服务调用请求并提供表示调用服务失败的信息。
根据本公开实施例提供的技术方案,通过在由服务调用端根据预设重试方法通过公网重新发送服务调用请求之后,响应于由服务调用端接收到的针对服务调用请求的响应处于异常状态,服务调用端暂停生成和发送服务调用请求并提供表示调用服务失败的信息,可以在重试方法无效后通过自动降级来保证服务调用端的稳定性,进而保证了跨网络服务调用的稳定性。
在本公开的一个实施例中,服务调用端暂停生成和发送服务调用请求并提供表示调用服务失败的信息即为对服务调用请求进行降级。在由服务调用端根据预设重试方法通过公网重新发送服务调用请求之后,如果由服务调用端接收到的针对服务调用请求的响应仍然处于异常状态,此时不应该保持当前服务调用请求对于第一线程池中的线程资源之类的***资源的占用,而是应该对其进行服务降级。这样,可防止因公网时延增大等因素导致的服务调用端***性能下降问题,避免服务调用端***雪崩。
以下参照图4对根据本公开又一实施方式的通信方法进行描述。图4示出根据本公开又一实施方式的通信方法的流程图。图4所示的实施例与图1所示的实施例的区别在于还包括步骤S410。
在步骤S410中,由服务调用端向预设监控***发送表示服务调用端所发起的服务调用的状态的信息。根据本公开实施例提供的技术方案,通过由服务调用端向预设监控***发送表示服务调用端所发起的服务调用的状态的信息,可以对服务调用的情况进行监控,以便保证跨网络服务调用的稳定性和安全性。
在本公开的一个实施例中,预设监控***设置在服务调用端内部,对针对服务调用请求的响应的异常状态,服务调用的耗时等情况进行监控。服务调用端在执行服务调用时,可以向预设监控***发送当次服务调用的情况。预设监控***可以根据获取到的服务调用情况统计出服务调用的整体情况,例如,可以统计出服务调用的成功次数、失败次数、平均耗时、最大耗时之类的各种信息。通过监控***可以发现、回溯服务调用中的各种问题。监控***的实现方式可以从相关技术中获得,本公开对此不做赘述。
在本公开的一个实施例中,步骤S110包括:由服务调用端检测公网是否包括多个子网络;响应于由服务调用端检测到公网包括多个子网络,由服务调用端生成包括经由多个子网络的代理设置的服务调用请求。
根据本公开实施例提供的技术方案,通过由服务调用端生成用于请求进行服务调用的服务调用请求,服务调用请求包括服务调用端的验证信息,包括:由服务调用端检测公网是否包括多个子网络;响应于由服务调用端检测到公网包括多个子网络,由服务调用端生成包括经由多个子网络的代理设置的服务调用请求,可以通过代理技术来保证跨多个子网络的服务调用的稳定性,同时防止网络故障导致的服务调用失败。
在本公开的一个实施例中,可以将进行通信的技术方案进一步扩展为跨多个网络发起服务调用请求的方案。在此情况下,可以认为公网包括多个子网络。例如,服务调用端可以通过多个不同网络运营商提供的网络进行服务调用,这样可以避免由局部网络节点故障导致的***异常。在本公开的实施例中,在进行通过多个子网络进行的服务调用时,可以通过设置代理服务来进行跨多个网络的服务调用。代理服务可以采用正向代理。设置代理服务的具体方式可以从相关技术中获知,本公开对此不做赘述。
以下参照图5、图6和图7对本公开实施方式的通信方法的实现场景进行示例性描述。图5示出根据本公开一实施方式的通信方法的实现场景的一个示例的性示意图。图6示出根据本公开一实施方式的通信方法的实现场景的另一个示例的性示意图。图7示出根据本公开一实施方式的通信方法的实现场景的又一个示例的性示意图。
在图5所示示例性场景中,各个服务调用端510可以通过作为公网的公网向服务提供端530发送服务调用请求。各个服务调用端510可以请求相同或不同的服务。服务提供端530也可以提供相同或不同的服务。例如,图5中的3个服务提供端530可以分别是提供天气信息提供服务的服务提供端、提供图书信息检索服务的服务提供端、提供网络购物服务的服务提供端等。可以理解,图5所示的场景仅仅是示例,服务调用端510和服务提供端530的数量可以为任意个,其类型也可以是任意类型。如果一个设备既向其他服务提供端请求服务,也向其他服务调用端提供服务,则该设备既是服务提供端,又是服务调用端。另外,虽然图5中仅示出了一个完整的公网520作为公网,但是应该注意,公网520还可以包括多个子网络,公网520也可以被替代为其他的网络。
在图6所示示例性场景中,服务调用端响应于服务调用端通过公网向服务提供端发送服务调用请求,由服务调用端生成第一线程池以供通过公网发送的服务调用请求使用。而且,服务调用端响应于服务调用端通过内网向内部服务提供方发送服务调用请求,由服务调用端生成第二线程池以供通过内部服务调用请求使用。第一线程池与第二线程池相互隔离,这样可以防止因公网时延增大导致的服务调用端***性能下降问题,避免服务调用端***雪崩。
在图7所示示例性场景中,由处于其自身所在的内网环境的服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用端通过公网环境向服务提供端发送服务调用请求以发起服务调用。处于自身所在的内网环境的服务提供端对接收到的服务调用请求进行响应,并且通过公网环境将响应发送给服务调用端,服务调用端接收该响应。
在图5、图6和图7所示的示例性场景中,服务调用端可以内置保障安全的密钥签名校验算法,通过对服务调用请求添加利用预设参数、第一预设密钥和所述时间戳生成的验证信息,并且由服务提供端进行校验,这样可以保障公网接口调用的安全性。而且,服务调用端的第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源,这样可以进一步保证服务调用端的***稳定性。
在图5、图6和图7所示的示例性场景中,可以针对网络抖动、响应超时、响应解析失败等异常情况利用重试方法进行重发服务调用请求的操作。在重试后仍然出现异常情况时,进行服务降级。这样可以尽量提高服务调用成功率,还可以防止网络环境不佳导致的在网络连接、网络传输不稳定,时延增大等因素引发的服务调用端***性能问题。在图5、图6和图7所示的示例性场景中,面对响应解析失败而出现的异常,可以实现一个包装类,自动包装因异常返回导致的数据解析失败异常。在无异常发生时,获取到正常数据;在异常发生时,不影响服务调用流程抛出异常错误。
在图5、图6和图7所示的示例性场景中,可以在服务提供端设置预设监控***。监控***对针对服务调用请求的响应的异常状态,服务调用的耗时等情况进行监控。服务调用端在执行服务调用时,可以向预设监控***发送当次服务调用的情况。预设监控***可以根据获取到的服务调用情况统计出服务调用的整体情况,例如,可以统计出服务调用的成功次数、失败次数、平均耗时、最大耗时之类的各种信息。通过监控***可以发现、回溯服务调用中的各种问题。
在图5、图6和图7所示的示例性场景中,可以将此通信方法扩展到包括多个子网的公网中,可以通过添加正向代理的方式,通过不同运营商网络之类的子网的网络出口发起跨公网的调用请求,避免由局部网络节点故障导致的***异常。
因此,本公开的实施例提供一种通用的底层技术方案,适用于跨公网服务调用场景使用,可以解决跨公网服务调用所遇到的共性问题。
以下参照图8描述根据本公开又一实施方式的通信方法的流程图。
图8示出根据本公开又一实施方式的通信方法的流程图。如图8所示,该方法包括步骤S810、S820、S830和S840。
在步骤S810中,由服务调用端生成用于请求进行服务调用的服务调用请求,服务调用请求包括服务调用端的验证信息。
在步骤S820中,由服务调用端通过公网向服务提供端发送服务调用请求。
在步骤S830中,响应于服务调用端通过公网向服务提供端发送服务调用请求,由服务调用端生成第一线程池以供通过公网发送的服务调用请求使用,第一线程池独立于未经过公网发送的服务调用请求所使用的第二线程池,其中,第二线程池是在服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源。
在步骤S840中,响应于服务提供端通过公网接收到服务调用请求,由服务提供端对服务调用请求中的验证信息进行验证以确定服务调用请求是否被允许,并且将验证信息是否被验证通过的响应发送到服务调用端。
根据本公开实施例提供的技术方案,通过由服务调用端生成用于请求进行服务调用的服务调用请求,服务调用请求包括服务调用端的验证信息;由服务调用端通过公网向服务提供端发送服务调用请求;响应于服务调用端通过公网向服务提供端发送服务调用请求,由服务调用端生成第一线程池以供通过公网发送的服务调用请求使用,第一线程池独立于未经过公网发送的服务调用请求所使用的第二线程池,其中,第二线程池是在服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源;响应于服务提供端通过公网接收到服务调用请求,由服务提供端对服务调用请求中的验证信息进行验证以确定服务调用请求是否被允许,并且将验证信息是否被验证通过的响应发送到服务调用端,可以通过针对跨网络服务调用设置独立线程池来进行线程隔离,防止因网络时延增大导致的***性能下降问题,避免服务调用端***雪崩。而且,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
在本公开的一个实施例中,验证信息包括根据预设数字签名方法生成的签名。
根据本公开实施例提供的技术方案,通过验证信息包括根据预设数字签名方法生成的签名,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
在本公开的一个实施例中,步骤S810包括:通过至少一个处理器获取服务调用请求的时间戳;通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和时间戳进行加密生成摘要,并且通过对摘要加密生成数字签名;通过至少一个处理器将预设参数、所述时间戳和所述数字签名作为验证信息添加到所述服务调用请求。
根据本公开实施例提供的技术方案,通过由服务调用端生成用于请求进行服务调用的服务调用请求,服务调用请求包括服务调用端的验证信息,包括:通过至少一个处理器获取服务调用请求的时间戳;通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和时间戳进行加密生成摘要,并且通过对摘要加密生成数字签名;通过至少一个处理器将预设参数、时间戳和数字签名作为验证信息添加到服务调用请求,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
在本公开的一个实施例中,步骤S840包括:通过至少一个处理器从服务调用请求中提取预设参数、时间戳和签名;通过至少一个处理器基于预设解密方法利用预设参数、时间戳和第二预设密钥对签名进行解密以生成待验证摘要;通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和时间戳进行加密生成摘要,并且比较所生成的摘要与待验证摘要是否一致,以确定验证信息是否被验证通过。
根据本公开实施例提供的技术方案,通过响应于服务提供端通过公网接收到服务调用请求,由服务提供端对服务调用请求中的验证信息进行验证以确定服务调用请求是否被允许,并且将验证信息是否被验证通过的响应发送到服务调用端,包括:通过至少一个处理器从服务调用请求中提取预设参数、时间戳和签名;通过至少一个处理器基于预设解密方法利用预设参数、时间戳和第二预设密钥对签名进行解密以生成待验证摘要;通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和时间戳进行加密生成摘要,并且比较所生成的摘要与待验证摘要是否一致,以确定验证信息是否被验证通过,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
在本公开的一个实施例中,服务提供端可以通过以下方式对服务调用请求中的验证信息进行验证以确定服务调用请求是否被允许。首先,服务提供端从服务调用请求中提取预设参数、时间戳和签名。通过至少一个处理器基于与服务调用端的加密方法相匹配的解密方法利用预设参数、第二预设密钥和时间戳对签名进行解密以生成待验证摘要。再通过与服务调用端的摘要加密算法一致的摘要加密算法利用预设参数、第一预设密钥和时间戳进行加密生成摘要,并比较待验证摘要与生成的摘要是否一致。二者一致则认为验证信息通过验证。由此,可以保证信息传输的完整性、发送端的身份认证、防止信息篡改发生。
在本公开的一个实施例中,图8所示的通信方法还可以包括:由所述服务调用端接收针对所述服务调用请求的响应。
根据本公开实施例提供的技术方案,通过由所述服务调用端接收针对所述服务调用请求的响应,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
在本公开的一个实施例中,图8所示的通信方法还可以包括:根据由所述服务调用端接收到的针对所述服务调用请求的响应处于异常状态,由所述服务调用端根据预设重试方法通过公网重新发送所述服务调用请求。
根据本公开实施例提供的技术方案,通过根据由所述服务调用端接收到的针对所述服务调用请求的响应处于异常状态,由所述服务调用端根据预设重试方法通过公网重新发送所述服务调用请求,可以针对异常状态利用重试方法来保证跨网络服务调用的稳定性。
在本公开的一个实施例中,所述异常状态包括以下至少之一:所述服务调用端接收到针对所述服务调用请求的响应时的网络抖动达到第一阈值;由所述服务调用端接收针对所述服务调用请求的响应的时间超过第二阈值;所述服务调用端对接收到的针对所述服务调用请求的响应解析失败。
根据本公开实施例提供的技术方案,通过所述异常状态包括以下至少之一:所述服务调用端接收到针对所述服务调用请求的响应时的网络抖动达到第一阈值;由所述服务调用端接收针对所述服务调用请求的响应的时间超过第二阈值;所述服务调用端对接收到的针对所述服务调用请求的响应解析失败,可以针对异常状态利用重试方法来保证跨网络服务调用的稳定性。
在本公开的一个实施例中,图8所示的通信方法还可以包括:响应于所述服务调用端对接收到的针对所述服务调用请求的响应解析失败而出现的异常,由所述服务调用端对出现的解析失败的异常进行包装。
根据本公开实施例提供的技术方案,通过响应于所述服务调用端对接收到的针对所述服务调用请求的响应解析失败而出现的异常,由所述服务调用端对出现的解析失败的异常进行包装,可以在由于对响应解析失败而出现的异常发生时不影响服务调用流程抛出异常错误,保证了跨网络服务调用的稳定性。
在本公开的一个实施例中,图8所示的通信方法还可以包括:在由所述服务调用端根据预设重试方法通过公网重新发送所述服务调用请求之后,响应于由所述服务调用端接收到的针对所述服务调用请求的响应处于异常状态,所述服务调用端暂停生成和发送所述服务调用请求并提供表示调用服务失败的信息。
根据本公开实施例提供的技术方案,通过在由所述服务调用端根据预设重试方法通过公网重新发送所述服务调用请求之后,响应于由所述服务调用端接收到的针对所述服务调用请求的响应处于异常状态,所述服务调用端暂停生成和发送所述服务调用请求并提供表示调用服务失败的信息,可以在重试方法无效后通过自动降级来保证服务调用端的稳定性,进而保证了跨网络服务调用的稳定性。
在本公开的一个实施例中,图8所示的通信方法还可以包括:由所述服务调用端向预设监控***发送表示所述服务调用端所发起的服务调用的状态的信息。
根据本公开实施例提供的技术方案,通过由所述服务调用端向预设监控***发送表示所述服务调用端所发起的服务调用的状态的信息,可以对服务调用的情况进行监控,以便保证跨网络服务调用的稳定性和安全性。
在本公开的一个实施例中,步骤S810包括:由所述服务调用端检测公网是否包括多个子网络;响应于由所述服务调用端检测到所述公网包括多个子网络,由所述服务调用端生成包括经由所述多个子网络的代理设置的服务调用请求。
根据本公开实施例提供的技术方案,通过所述由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息,包括:由所述服务调用端检测公网是否包括多个子网络;响应于由所述服务调用端检测到所述公网包括多个子网络,由所述服务调用端生成包括经由所述多个子网络的代理设置的服务调用请求,可以通过代理技术来保证跨多个子网络的服务调用的稳定性,同时防止网络故障导致的服务调用失败。
本领域技术人员可以理解,参照图8所讨论的方法可以采用参照图1至图7描述的方法中的部分或全部步骤,从而使得参照图8所讨论的接口测试方法具备参照图1至图7描述的实施例所实现的技术效果。具体内容可以参照以上根据图1至图7进行的描述,其具体内容在此不再赘述。
以下参照图9描述本公开一实施方式的通信装置的结构框图。图9示出根据本公开一实施方式的通信装置900的结构框图。如图9所示,通信装置900包括:第一生成模块910、第一发送模块920和第二生成模块930。
第一生成模块910被配置为生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述通信装置的验证信息。第一发送模块920被配置为通过公网发送所述服务调用请求。第二生成模块930被配置为响应于所述第一发送模块通过公网发送服务调用请求,生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述通信装置所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源。
根据本公开实施例提供的技术方案,通过第一生成模块,被配置为生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述通信装置的验证信息;第一发送模块,被配置为通过公网发送所述服务调用请求;第二生成模块,被配置为响应于所述第一发送模块通过公网发送服务调用请求,生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述通信装置所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源,可以通过针对跨网络服务调用设置独立线程池来进行线程隔离,防止因网络时延增大导致的***性能下降问题,避免服务调用端***雪崩。而且,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
在本公开的一个实施例中,验证信息包括根据预设数字签名方法生成的签名。根据本公开实施例提供的技术方案,通过验证信息包括根据预设数字签名方法生成的签名,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
在本公开的一个实施例中,第一生成模块910包括:获取子模块(图中未示出),被配置为通过至少一个处理器获取所述服务调用请求的时间戳;加密子模块(图中未示出),被配置为通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且通过对所述摘要加密生成数字签名;添加子模块(图中未示出),被配置为通过至少一个处理器将所述预设参数、所述时间戳和所述数字签名作为验证信息添加到所述服务调用请求。
根据本公开实施例提供的技术方案,通过第一生成模块包括:获取子模块,被配置为通过至少一个处理器获取所述服务调用请求的时间戳;加密子模块,被配置为通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且通过对所述摘要加密生成数字签名;添加子模块,被配置为通过至少一个处理器将所述预设参数、所述时间戳和所述数字签名作为验证信息添加到所述服务调用请求,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
在本公开的一个实施例中,通信装置900还包括:接收模块(图中未示出),被配置为接收针对所述服务调用请求的响应。
根据本公开实施例提供的技术方案,通过接收模块,被配置为接收针对所述服务调用请求的响应,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
在本公开的一个实施例中,第一发送模块920还被配置为:根据由所述接收模块接收到的针对所述服务调用请求的响应处于异常状态,根据预设重试方法通过公网重新发送所述服务调用请求。
根据本公开实施例提供的技术方案,通过第一发送模块还被配置为:根据由所述接收模块接收到的针对所述服务调用请求的响应处于异常状态,根据预设重试方法通过公网重新发送所述服务调用请求,可以针对异常状态利用重试方法来保证跨网络服务调用的稳定性。
在本公开的一个实施例中,异常状态包括以下至少之一:接收模块接收到针对所述服务调用请求的响应时的网络抖动达到第一阈值;由所述接收模块接收针对所述服务调用请求的响应的时间超过第二阈值;所述通信装置对接收到的针对所述服务调用请求的响应解析失败。
根据本公开实施例提供的技术方案,通过异常状态包括以下至少之一:所述服务调用端接收到针对所述服务调用请求的响应时的网络抖动达到第一阈值;由所述服务调用端接收针对所述服务调用请求的响应的时间超过第二阈值;所述服务调用端对接收到的针对所述服务调用请求的响应解析失败,可以针对异常状态利用重试方法来保证跨网络服务调用的稳定性。
在本公开的一个实施例中,通信装置900还包括:包装模块(图中未示出),被配置为响应于对接收到的针对所述服务调用请求的响应解析失败而出现的异常,由所述通信装置对出现的解析失败的异常进行包装。
根据本公开实施例提供的技术方案,通过包装模块,被配置为响应于对接收到的针对所述服务调用请求的响应解析失败而出现的异常,由所述通信装置对出现的解析失败的异常进行包装,可以在由于对响应解析失败而出现的异常发生时不影响服务调用流程抛出异常错误,保证了跨网络服务调用的稳定性。
在本公开的一个实施例中,通信装置900还包括:暂停模块(图中未示出),被配置为在由所述第一发送模块根据预设重试方法通过公网重新发送所述服务调用请求之后,响应于由所述接收模块接收到的针对所述服务调用请求的响应处于异常状态,暂停生成和发送所述服务调用请求并提供表示调用服务失败的信息。
根据本公开实施例提供的技术方案,通过暂停模块,被配置为在由所述第一发送模块根据预设重试方法通过公网重新发送所述服务调用请求之后,响应于由所述接收模块接收到的针对所述服务调用请求的响应处于异常状态,暂停生成和发送所述服务调用请求并提供表示调用服务失败的信息,可以在重试方法无效后通过自动降级来保证服务调用端的稳定性,进而保证了跨网络服务调用的稳定性。
在本公开的一个实施例中,通信装置900还包括:第二发送模块(图中未示出),被配置为向预设监控***发送表示所述通信装置所发起的服务调用的状态的信息。
根据本公开实施例提供的技术方案,通过第二发送模块,被配置为向预设监控***发送表示所述通信装置所发起的服务调用的状态的信息,可以对服务调用的情况进行监控,以便保证跨网络服务调用的稳定性和安全性。
在本公开的一个实施例中,第一生成模块包910包括:检测子模块(图中未示出),被配置为检测公网是否包括多个子网络;代理设置模块(图中未示出),被配置为响应于所述检测子模块检测到所述公网包括多个子网络,生成包括经由所述多个子网络的代理设置的服务调用请求。
根据本公开实施例提供的技术方案,通过第一生成模块包包括:检测子模块,被配置为检测公网是否包括多个子网络;代理设置模块,被配置为响应于所述检测子模块检测到所述公网包括多个子网络,生成包括经由所述多个子网络的代理设置的服务调用请求,可以通过代理技术来保证跨多个子网络的服务调用的稳定性,同时防止网络故障导致的服务调用失败。
本领域技术人员可以理解,参照图9所讨论的装置可以采用参照图1至图8描述的方法中的部分或全部步骤,从而使得参照图9所讨论的装置具备参照图1至图8描述的实施例所实现的技术效果。具体内容可以参照以上根据图1至图8进行的描述,其具体内容在此不再赘述。
以下参照图10描述本公开一实施方式的通信***的结构框图。图10示出根据本公开一实施方式的通信***1000的结构框图。如图10所示,通信***1000包括:服务调用端1010和服务提供端1020。服务调用端1010与服务提供端1020通过公网1030通信。
由服务调用端1010生成用于请求进行服务调用的服务调用请求,服务调用请求包括服务调用端1010的验证信息;由服务调用端1010通过公网1030向服务提供端1020发送服务调用请求;响应于服务调用端1010通过公网1030向服务提供端1020发送服务调用请求,由服务调用端1010生成第一线程池以供通过公网1030发送的服务调用请求使用,第一线程池独立于未经过公网1030发送的服务调用请求所使用的第二线程池,其中,第二线程池是在服务调用端1010所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源;响应于服务提供端1020通过公网1030接收到服务调用请求,由服务提供端1020对服务调用请求中的验证信息进行验证以确定服务调用请求是否被允许,并且将验证信息是否被验证通过的响应发送到服务调用端1010。
根据本公开实施例提供的技术方案,通过由服务调用端生成用于请求进行服务调用的服务调用请求,服务调用请求包括服务调用端的验证信息;由服务调用端通过公网向服务提供端发送服务调用请求;响应于服务调用端通过公网向服务提供端发送服务调用请求,由服务调用端生成第一线程池以供通过公网发送的服务调用请求使用,第一线程池独立于未经过公网发送的服务调用请求所使用的第二线程池,其中,第二线程池是在服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源;响应于服务提供端通过公网接收到服务调用请求,由服务提供端对服务调用请求中的验证信息进行验证以确定服务调用请求是否被允许,并且将验证信息是否被验证通过的响应发送到服务调用端,可以通过针对跨网络服务调用设置独立线程池来进行线程隔离,防止因网络时延增大导致的***性能下降问题,避免服务调用端***雪崩。而且,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
在本公开的一个实施例中,验证信息包括根据预设数字签名方法生成的签名。
根据本公开实施例提供的技术方案,通过所述验证信息包括根据预设数字签名方法生成的签名,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
在本公开的一个实施例中,服务调用端1010包括:获取模块(图中未示出),被配置为通过至少一个处理器获取所述服务调用请求的时间戳;加密模块(图中未示出),被配置为通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且通过对所述摘要加密生成数字签名;添加模块(图中未示出),被配置为通过至少一个处理器将所述预设参数、所述时间戳和所述数字签名作为验证信息添加到所述服务调用请求。
根据本公开实施例提供的技术方案,通过服务调用端包括:获取模块,被配置为通过至少一个处理器获取所述服务调用请求的时间戳;加密模块,被配置为通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且通过对所述摘要加密生成数字签名;添加模块,被配置为通过至少一个处理器将所述预设参数、所述时间戳和所述数字签名作为验证信息添加到所述服务调用请求,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
在本公开的一个实施例中,所述服务提供端1020包括:提取模块(图中未示出),被配置为通过至少一个处理器从所述服务调用请求中提取所述预设参数、所述时间戳和所述签名;解密模块(图中未示出),被配置为通过至少一个处理器基于预设解密方法利用所述预设参数、所述时间戳和第二预设密钥对所述签名进行解密以生成待验证摘要;验证模块(图中未示出),被配置为通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且比较所生成的摘要与所述待验证摘要是否一致,以确定所述验证信息是否被验证通过。
根据本公开实施例提供的技术方案,通过所述服务提供端包括:提取模块,被配置为通过至少一个处理器从所述服务调用请求中提取所述预设参数、所述时间戳和所述签名;解密模块,被配置为通过至少一个处理器基于预设解密方法利用所述预设参数、所述时间戳和第二预设密钥对所述签名进行解密以生成待验证摘要;验证模块,被配置为通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且比较所生成的摘要与所述待验证摘要是否一致,以确定所述验证信息是否被验证通过,可以通过在服务调用请求中添加验证信息来保证服务调用的安全性,同时通过释放验证信息未被验证通过的服务调用请求所使用的线程资源来保证服务调用端的***稳定性。因此,本公开实施例的技术方案***性地解决了跨网络服务调用的稳定性和安全性方面的问题。
本领域技术人员可以理解,参照图10所讨论的实施例可以采用参照图1至图9描述的实施例中的部分或全部细节,从而使得参照图10所讨论的实施例具备参照图1至图9描述的实施例所实现的技术效果。具体内容可以参照以上根据图1至图9进行的描述,其具体内容在此不再赘述。
前述实施例描述了通信装置的内部功能和结构,在一个可能的设计中,前述通信装置的结构可实现为电子设备,如图11中所示,该电子设备1100可以包括处理器1101、存储器1102和通信部件1103。
所述存储器1102用于存储支持处理器执行上述任一实施例中通信方法的程序,所述处理器1101被配置为用于执行所述存储器1102中存储的程序。
所述存储器1102用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器1101执行以实现以下步骤:
由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息;
由所述服务调用端通过公网发送所述服务调用请求;
响应于所述服务调用端通过公网发送服务调用请求,由所述服务调用端生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源。
所述处理器1101用于执行前述各方法步骤中的全部或部分步骤。
其中,所述电子设备的结构中还包括通信部件1103,用于电子设备与其他设备或通信网络通信。
需要注意的是,本实施例中的处理器1101可以被实现为两个或两个以上的处理器。一部分处理器,例如,中央处理器,执行第一数据处理方式。另一部分处理器,例如,图形处理器,执行第二数据处理方式。
本公开示例性实施例还提供了一种计算机存储介质,用于储存所述通信装置所用的计算机软件指令,其包含用于执行上述任一实施例中的方法所涉及的程序,从而具备方法所带来的技术效果。
图12是适于用来实现根据本公开一实施方式的通信方法的计算机***的结构示意图。
如图12所示,计算机***1200包括中央处理器(CPU)1201,其可以根据存储在只读存储器(ROM)1202中的程序或者从存储部分1208加载到随机访问存储器(RAM)1203中的程序而执行上述附图所示的实施方式中的部分或全部处理。在RAM1203中,还存储有***1200操作所需的各种程序和数据。CPU1201、ROM1202以及RAM1203通过总线1204彼此相连。输入/输出(I/O)接口1205也连接至总线1204。
以下部件连接至I/O接口1205:包括键盘、鼠标等的输入部分1206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1207;包括硬盘等的存储部分1208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1209。通信部分1209经由诸如因特网的网络执行通信处理。驱动器1210也根据需要连接至I/O接口1205。可拆卸介质1211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1210上,以便于从其上读出的计算机程序根据需要被安装入存储部分1208。
特别地,根据本公开的实施方式,上文参考附图描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行附图中的方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分1209从网络上被下载和安装,和/或从可拆卸介质1211被安装。
附图中的流程图和框图,图示了按照本公开各种实施方式的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法,从而具备方法所带来的技术效果。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
Claims (10)
1.一种通信方法,其特征在于,包括:
由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息;
由所述服务调用端通过公网发送所述服务调用请求;
响应于所述服务调用端通过公网发送服务调用请求,由所述服务调用端生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源。
2.根据权利要求1所述的方法,其特征在于,所述验证信息包括根据预设数字签名方法生成的签名。
3.根据权利要求2所述的方法,其特征在于,所述由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息,包括:
通过至少一个处理器获取所述服务调用请求的时间戳;
通过至少一个处理器基于预设数字签名方法利用预设参数、第一预设密钥和所述时间戳进行加密生成摘要,并且通过对所述摘要加密生成数字签名;
通过至少一个处理器将所述预设参数、所述时间戳和所述数字签名作为验证信息添加到所述服务调用请求。
4.根据权利要求1所述的方法,其特征在于,还包括:
由所述服务调用端接收针对所述服务调用请求的响应。
5.根据权利要求4所述的方法,其特征在于,还包括:
根据由所述服务调用端接收到的针对所述服务调用请求的响应处于异常状态,由所述服务调用端根据预设重试方法通过公网重新发送所述服务调用请求。
6.一种通信方法,其特征在于,包括:
由服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息;
由所述服务调用端通过公网向服务提供端发送所述服务调用请求;
响应于所述服务调用端通过公网向服务提供端发送所述服务调用请求,由所述服务调用端生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源;
响应于所述服务提供端通过公网接收到所述服务调用请求,由所述服务提供端对所述服务调用请求中的验证信息进行验证以确定所述服务调用请求是否被允许,并且将验证信息是否被验证通过的响应发送到所述服务调用端。
7.一种通信装置,其特征在于,包括:
第一生成模块,被配置为生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述通信装置的验证信息;
第一发送模块,被配置为通过公网发送所述服务调用请求;
第二生成模块,被配置为响应于所述第一发送模块通过公网发送服务调用请求,生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述通信装置所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源。
8.一种通信***,其特征在于,包括服务调用端和服务提供端,其中:
由所述服务调用端生成用于请求进行服务调用的服务调用请求,所述服务调用请求包括所述服务调用端的验证信息;
由所述服务调用端通过公网向服务提供端发送所述服务调用请求;
响应于所述服务调用端通过公网向服务提供端发送所述服务调用请求,由所述服务调用端生成第一线程池以供通过所述公网发送的服务调用请求使用,所述第一线程池独立于未经过所述公网发送的服务调用请求所使用的第二线程池,其中,所述第二线程池是在所述服务调用端所在的内网中发起的对内部服务的调用请求所使用的线程池,其中,所述第一线程池释放验证信息未被验证通过的服务调用请求所使用的线程资源;
响应于所述服务提供端通过公网接收到所述服务调用请求,由所述服务提供端对所述服务调用请求中的验证信息进行验证以确定所述服务调用请求是否被允许,并且将验证信息是否被验证通过的响应发送到所述服务调用端。
9.一种电子设备,其特征在于,包括存储器和处理器;其中,
所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如权利要求1-5任一项所述的方法。
10.一种可读存储介质,其上存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现如权利要求1-5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911159044.8A CN110971680B (zh) | 2019-11-22 | 2019-11-22 | 通信方法、装置、***、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911159044.8A CN110971680B (zh) | 2019-11-22 | 2019-11-22 | 通信方法、装置、***、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110971680A true CN110971680A (zh) | 2020-04-07 |
CN110971680B CN110971680B (zh) | 2022-01-28 |
Family
ID=70031318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911159044.8A Active CN110971680B (zh) | 2019-11-22 | 2019-11-22 | 通信方法、装置、***、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110971680B (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6799202B1 (en) * | 1999-12-16 | 2004-09-28 | Hachiro Kawaii | Federated operating system for a server |
CN101282328A (zh) * | 2007-04-02 | 2008-10-08 | 北京下午茶科技有限公司 | 互联网内网Web服务的访问方法 |
EP2031817A1 (en) * | 2007-08-30 | 2009-03-04 | Software Ag | Systems and/or methods for streaming reverse HTTP gateway and network including the same |
CN103455366A (zh) * | 2012-06-01 | 2013-12-18 | 阿里巴巴集团控股有限公司 | 一种调用外部***服务的方法及装置 |
CN104125240A (zh) * | 2014-08-15 | 2014-10-29 | 国家电网公司 | 一种信息外网、信息内网及内外网数据交互***和方法 |
US20170052804A1 (en) * | 2015-08-21 | 2017-02-23 | International Business Machines Corporation | Controlling priority of dynamic compilation |
US20170178626A1 (en) * | 2010-01-18 | 2017-06-22 | Apple Inc. | Intelligent automated assistant |
CN109032783A (zh) * | 2018-08-01 | 2018-12-18 | 杭州朗和科技有限公司 | 信息交互方法、介质、装置和计算设备 |
CN109104491A (zh) * | 2018-08-30 | 2018-12-28 | 郑州云海信息技术有限公司 | 一种微服务调用方法、装置、服务器及存储介质 |
CN109343955A (zh) * | 2018-09-14 | 2019-02-15 | 网易无尾熊(杭州)科技有限公司 | 推荐服务调用方法、介质、装置和计算设备 |
CN109582472A (zh) * | 2018-10-19 | 2019-04-05 | 华为技术有限公司 | 一种微服务处理方法及设备 |
CN110069337A (zh) * | 2018-01-24 | 2019-07-30 | 北京京东尚科信息技术有限公司 | 一种容灾降级的方法和装置 |
CN110231981A (zh) * | 2018-03-06 | 2019-09-13 | 华为软件技术有限公司 | 服务调用方法及装置 |
CN110336753A (zh) * | 2019-06-19 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 一种跨网络区域的服务调用方法、装置、设备及存储介质 |
CN110430065A (zh) * | 2019-08-08 | 2019-11-08 | 浪潮云信息技术有限公司 | 一种应用服务调用方法、装置及*** |
-
2019
- 2019-11-22 CN CN201911159044.8A patent/CN110971680B/zh active Active
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6799202B1 (en) * | 1999-12-16 | 2004-09-28 | Hachiro Kawaii | Federated operating system for a server |
CN101282328A (zh) * | 2007-04-02 | 2008-10-08 | 北京下午茶科技有限公司 | 互联网内网Web服务的访问方法 |
EP2031817A1 (en) * | 2007-08-30 | 2009-03-04 | Software Ag | Systems and/or methods for streaming reverse HTTP gateway and network including the same |
US20170178626A1 (en) * | 2010-01-18 | 2017-06-22 | Apple Inc. | Intelligent automated assistant |
CN103455366A (zh) * | 2012-06-01 | 2013-12-18 | 阿里巴巴集团控股有限公司 | 一种调用外部***服务的方法及装置 |
CN104125240A (zh) * | 2014-08-15 | 2014-10-29 | 国家电网公司 | 一种信息外网、信息内网及内外网数据交互***和方法 |
US20170052804A1 (en) * | 2015-08-21 | 2017-02-23 | International Business Machines Corporation | Controlling priority of dynamic compilation |
CN110069337A (zh) * | 2018-01-24 | 2019-07-30 | 北京京东尚科信息技术有限公司 | 一种容灾降级的方法和装置 |
CN110231981A (zh) * | 2018-03-06 | 2019-09-13 | 华为软件技术有限公司 | 服务调用方法及装置 |
CN109032783A (zh) * | 2018-08-01 | 2018-12-18 | 杭州朗和科技有限公司 | 信息交互方法、介质、装置和计算设备 |
CN109104491A (zh) * | 2018-08-30 | 2018-12-28 | 郑州云海信息技术有限公司 | 一种微服务调用方法、装置、服务器及存储介质 |
CN109343955A (zh) * | 2018-09-14 | 2019-02-15 | 网易无尾熊(杭州)科技有限公司 | 推荐服务调用方法、介质、装置和计算设备 |
CN109582472A (zh) * | 2018-10-19 | 2019-04-05 | 华为技术有限公司 | 一种微服务处理方法及设备 |
CN110336753A (zh) * | 2019-06-19 | 2019-10-15 | 腾讯科技(深圳)有限公司 | 一种跨网络区域的服务调用方法、装置、设备及存储介质 |
CN110430065A (zh) * | 2019-08-08 | 2019-11-08 | 浪潮云信息技术有限公司 | 一种应用服务调用方法、装置及*** |
Non-Patent Citations (3)
Title |
---|
PIETRO COLOMBO ET AL.: "Enforcing Obligations within RelationalDatabase Management Systems", 《IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING》 * |
宋卫平: "四川省电力公司双网隔离环境下内外网交互平台的设计与实现", 《中国优秀硕士学位论文全文数据库》 * |
郑学强: "基于CORBA的实时调度技术研究——动态调度服务的设计与实现", 《中国优秀硕士学位论文全文数据库》 * |
Also Published As
Publication number | Publication date |
---|---|
CN110971680B (zh) | 2022-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111132138B (zh) | 一种移动应用程序透明通信保护方法与装置 | |
US6757822B1 (en) | System, method and computer program product for secure communications using a security service provider manager | |
CN110069241B (zh) | 伪随机数的获取方法、装置、客户端设备和服务器 | |
CN104601550A (zh) | 基于集群阵列的反向隔离文件传输***及其方法 | |
CN108134713B (zh) | 一种通信方法及装置 | |
CN113141365B (zh) | 分布式微服务数据传输的方法、装置、***和电子设备 | |
Hiltunen et al. | Building survivable services using redundancy and adaptation | |
US11716367B2 (en) | Apparatus for monitoring multicast group | |
CN113094190B (zh) | 微服务调用方法、调用装置、电子设备和存储介质 | |
KR102442169B1 (ko) | 엣지 클라우드 시스템에서 이종 사업자 간 로그 검증을 위한 방법 및 장치 | |
CN117834701A (zh) | 远程过程调用装置、分布式***及电子设备 | |
CN110971680B (zh) | 通信方法、装置、***、电子设备及可读存储介质 | |
CN109726564B (zh) | 应用于加密机的信息处理方法及信息处理*** | |
CN111221764B (zh) | 一种跨链路数据传输方法及*** | |
CN116319803A (zh) | 一种云边协同分布式api调用方法及*** | |
CN110995756A (zh) | 调用服务的方法和装置 | |
CN112363887A (zh) | 一种分布式应用监控方法、装置以及存储介质 | |
US10750383B2 (en) | Method of providing management and control of hotspots with reduced messaging | |
CN106713295B (zh) | 一种医学影像传输方法及其装置 | |
Bhattacharya et al. | DetecSec: A framework to detect and mitigate ARP cache poisoning attacks | |
CN110941838B (zh) | 一种数据库访问的方法、装置以及电子设备 | |
CN114884730B (zh) | 一种请求检测方法、装置、设备及可读存储介质 | |
CN117319088B (zh) | 一种阻断违规外联设备的方法、装置、设备及介质 | |
CN115473731B (zh) | 一种混淆http网络协议接口地址的方法 | |
CN113114705B (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 |